commit
719250c1df
2 changed files with 104 additions and 62 deletions
|
@ -1,21 +1,27 @@
|
|||
{ lib, buildGoModule, fetchFromSourcehut
|
||||
, ncurses, notmuch, scdoc
|
||||
, python3, w3m, dante
|
||||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromSourcehut
|
||||
, ncurses
|
||||
, notmuch
|
||||
, scdoc
|
||||
, python3
|
||||
, w3m
|
||||
, dante
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "aerc";
|
||||
version = "0.7.1";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~rjarry";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-wiylBBqnivDnMUyCg3Zateu4jcjicTfrQFALT8dg5No=";
|
||||
sha256 = "sha256-D4cZVNh3YFaVRHGFn5Nt6kMSRCShj0w5n7pTxgYik2s=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorSha256 = "sha256-hpGd78PWk3tIwB+TPmPy0gKkU8+t5NTm9RzPuLae+Fk=";
|
||||
vendorSha256 = "sha256-fGQ15i3mWNmmfypRt5A7SAVYSEg9m4so4FYlUY+7mW8=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -28,6 +34,12 @@ buildGoModule rec {
|
|||
./runtime-sharedir.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteAllInPlace config/aerc.conf
|
||||
substituteAllInPlace config/config.go
|
||||
substituteAllInPlace doc/aerc-config.5.scd
|
||||
'';
|
||||
|
||||
pythonPath = [
|
||||
python3.pkgs.colorama
|
||||
];
|
||||
|
|
|
@ -1,60 +1,90 @@
|
|||
From c715a96c693baa0e6c8ab3c96b6c10e0a40bf7af Mon Sep 17 00:00:00 2001
|
||||
From: Tadeo Kondrak <me@tadeo.ca>
|
||||
Date: Thu, 21 Jan 2021 10:40:49 +0100
|
||||
Subject: [PATCH] Fix aerc breaking every time the package is rebuilt.
|
||||
|
||||
On NixOS, the SHAREDIR changes on every rebuild to the package, but aerc
|
||||
fills it in as part of the default config and then installs that config
|
||||
to the users home folder. Fix this by not substituting @SHAREDIR@ in the
|
||||
default config until runtime.
|
||||
---
|
||||
Makefile | 2 +-
|
||||
config/config.go | 13 +++++++++++++
|
||||
2 files changed, 14 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 77f5e61..98cbc11 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -23,7 +23,7 @@ aerc: $(GOSRC)
|
||||
-o $@
|
||||
|
||||
aerc.conf: config/aerc.conf.in
|
||||
- sed -e 's:@SHAREDIR@:$(SHAREDIR):g' > $@ < config/aerc.conf.in
|
||||
+ cat config/aerc.conf.in > $@
|
||||
|
||||
debug: $(GOSRC)
|
||||
GOFLAGS="-tags=notmuch" \
|
||||
diff --git a/config/aerc.conf b/config/aerc.conf
|
||||
index fbbf587..ede1a03 100644
|
||||
--- a/config/aerc.conf
|
||||
+++ b/config/aerc.conf
|
||||
@@ -107,8 +107,7 @@ next-message-on-delete=true
|
||||
#
|
||||
# ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
|
||||
# ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
|
||||
-# /usr/local/share/aerc/stylesets
|
||||
-# /usr/share/aerc/stylesets
|
||||
+# @out@/share/aerc/stylesets
|
||||
#
|
||||
# default: ""
|
||||
stylesets-dirs=
|
||||
@@ -254,8 +253,7 @@ new-email=
|
||||
#
|
||||
# ${XDG_CONFIG_HOME:-~/.config}/aerc/templates
|
||||
# ${XDG_DATA_HOME:-~/.local/share}/aerc/templates
|
||||
-# /usr/local/share/aerc/templates
|
||||
-# /usr/share/aerc/templates
|
||||
+# @out@/share/aerc/templates
|
||||
#
|
||||
# default: ""
|
||||
template-dirs=
|
||||
diff --git a/config/config.go b/config/config.go
|
||||
index 87d183a..cb6611a 100644
|
||||
index 2120310..92b7655 100644
|
||||
--- a/config/config.go
|
||||
+++ b/config/config.go
|
||||
@@ -470,6 +470,16 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
|
||||
return nil, err
|
||||
}
|
||||
@@ -331,8 +331,8 @@ func buildDefaultDirs() []string {
|
||||
}
|
||||
+ if sec, err := file.GetSection("templates"); err == nil {
|
||||
+ if key, err := sec.GetKey("template-dirs"); err == nil {
|
||||
+ sec.NewKey("template-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir))
|
||||
+ }
|
||||
+ }
|
||||
+ if sec, err := file.GetSection("ui"); err == nil {
|
||||
+ if key, err := sec.GetKey("stylesets-dirs"); err == nil {
|
||||
+ sec.NewKey("stylesets-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir))
|
||||
+ }
|
||||
+ }
|
||||
file.NameMapper = mapName
|
||||
config := &AercConfig{
|
||||
Bindings: BindingConfig{
|
||||
@@ -547,6 +557,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
+ for i, filter := range config.Filters {
|
||||
+ config.Filters[i].Command = strings.ReplaceAll(filter.Command, "@SHAREDIR@", sharedir)
|
||||
+ }
|
||||
if ui, err := file.GetSection("general"); err == nil {
|
||||
if err := ui.MapTo(&config.General); err != nil {
|
||||
return nil, err
|
||||
--
|
||||
2.30.0
|
||||
|
||||
// Add fixed fallback locations
|
||||
- defaultDirs = append(defaultDirs, "/usr/local/share/aerc")
|
||||
- defaultDirs = append(defaultDirs, "/usr/share/aerc")
|
||||
+ defaultDirs = append(defaultDirs, "@out@/local/share/aerc")
|
||||
+ defaultDirs = append(defaultDirs, "@out@/share/aerc")
|
||||
|
||||
return defaultDirs
|
||||
}
|
||||
diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd
|
||||
index 885c4f8..77a853e 100644
|
||||
--- a/doc/aerc-config.5.scd
|
||||
+++ b/doc/aerc-config.5.scd
|
||||
@@ -12,7 +12,7 @@ account credentials. We look for these files in your XDG config home plus
|
||||
"aerc", which defaults to ~/.config/aerc.
|
||||
|
||||
Examples of these config files are typically included with your installation of
|
||||
-aerc and are usually installed in /usr/share/aerc.
|
||||
+aerc and are usually installed in @out@/share/aerc.
|
||||
|
||||
Each file uses the _ini_ format, and consists of sections with keys and values.
|
||||
A line beginning with # is considered a comment and ignored, as are empty lines.
|
||||
@@ -221,8 +221,7 @@ These options are configured in the *[ui]* section of aerc.conf.
|
||||
```
|
||||
${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
|
||||
${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
|
||||
- /usr/local/share/aerc/stylesets
|
||||
- /usr/share/aerc/stylesets
|
||||
+ @out@/share/aerc/stylesets
|
||||
```
|
||||
|
||||
Default: ""
|
||||
@@ -381,7 +380,7 @@ against (non-case-sensitive) and a comma, e.g. subject,text will match a
|
||||
subject which contains "text". Use header,~regex to match against a regex.
|
||||
|
||||
aerc ships with some default filters installed in the share directory (usually
|
||||
-_/usr/share/aerc/filters_). Note that these may have additional dependencies
|
||||
+_@out@/share/aerc/filters_). Note that these may have additional dependencies
|
||||
that aerc does not have alone.
|
||||
|
||||
## TRIGGERS
|
||||
@@ -407,7 +406,7 @@ and forward commands can be called with the -T flag with the name of the
|
||||
template name.
|
||||
|
||||
aerc ships with some default templates installed in the share directory (usually
|
||||
-_/usr/share/aerc/templates_).
|
||||
+_@out@/share/aerc/templates_).
|
||||
|
||||
These options are configured in the *[templates]* section of aerc.conf.
|
||||
|
||||
@@ -419,8 +418,7 @@ These options are configured in the *[templates]* section of aerc.conf.
|
||||
```
|
||||
${XDG_CONFIG_HOME:-~/.config}/aerc/templates
|
||||
${XDG_DATA_HOME:-~/.local/share}/aerc/templates
|
||||
- /usr/local/share/aerc/templates
|
||||
- /usr/share/aerc/templates
|
||||
+ @out@/share/aerc/templates
|
||||
```
|
||||
|
||||
Default: ""
|
||||
|
|
Loading…
Reference in a new issue