diff --git a/0001-doc-fix-English-typos.patch b/0001-doc-fix-English-typos.patch new file mode 100644 index 0000000..4cf74fa --- /dev/null +++ b/0001-doc-fix-English-typos.patch @@ -0,0 +1,80 @@ +From 7faaeb2eef58129b86ebcb6689b6f67381afd0df Mon Sep 17 00:00:00 2001 +From: Robin Jarry +Date: Wed, 4 Jan 2023 23:44:35 +0100 +Subject: [PATCH 1/2] doc: fix English typos + +Reported by Lintian (Debian). + +Signed-off-by: Robin Jarry +Acked-by: Moritz Poldrack +--- + commands/account/import-mbox.go | 2 +- + doc/aerc-config.5.scd | 4 ++-- + doc/aerc-search.1.scd | 2 +- + widgets/compose.go | 2 +- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/commands/account/import-mbox.go b/commands/account/import-mbox.go +index 7dab195..59fdfab 100644 +--- a/commands/account/import-mbox.go ++++ b/commands/account/import-mbox.go +@@ -122,7 +122,7 @@ func (ImportMbox) Execute(aerc *widgets.Aerc, args []string) error { + } + } + } +- infoStr := fmt.Sprintf("%s: imported %d of %d sucessfully.", args[0], appended, len(messages)) ++ infoStr := fmt.Sprintf("%s: imported %d of %d successfully.", args[0], appended, len(messages)) + log.Debugf(infoStr) + aerc.SetStatus(infoStr) + } +diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd +index d48e38a..45b41c6 100644 +--- a/doc/aerc-config.5.scd ++++ b/doc/aerc-config.5.scd +@@ -539,7 +539,7 @@ These options are configured in the *[compose]* section of _aerc.conf_. + *address-book-cmd* = _khard email --remove-first-line --parsable %s_ + + *file-picker-cmd* = __ +- Specifies the command to be used to select attachments. Any occurence of ++ Specifies the command to be used to select attachments. Any occurrence of + _%s_ in the *file-picker-cmd* will be replaced with the argument __ + to *:attach -m* __. + +@@ -570,7 +570,7 @@ These options are configured in the *[compose]* section of _aerc.conf_. + + # MULTIPART CONVERTERS + +-Converters allow to generate _multipart/alternative_ messages by converting the ++Converters allow generating _multipart/alternative_ messages by converting the + main _text/plain_ body into any other text MIME type with the *:multipart* + command. Only exact MIME types are accepted. The commands are invoked with + _sh -c_ and are expected to output valid UTF-8 text. +diff --git a/doc/aerc-search.1.scd b/doc/aerc-search.1.scd +index 8349874..9b375d5 100644 +--- a/doc/aerc-search.1.scd ++++ b/doc/aerc-search.1.scd +@@ -57,7 +57,7 @@ aerc-search - search and filter patterns and options for *aerc*(1) + + __ *(y[ear]|m[onth]|w[eek]|d[ay])* + __ is a positive integer that represents the number +- of the time units in the past. Mutiple relative terms ++ of the time units in the past. Multiple relative terms + can will be accumulated. The units can also be + abbreviated by a single letter such that yesterday would + correspond to _1d_ (equivalent to _1 day_ or _1_day_) +diff --git a/widgets/compose.go b/widgets/compose.go +index 4f08afa..c4e3ad5 100644 +--- a/widgets/compose.go ++++ b/widgets/compose.go +@@ -127,7 +127,7 @@ func (c *Composer) SwitchAccount(newAcct *AccountView) error { + editor.loadValue() + } + c.Invalidate() +- log.Debugf("account sucessfully switched") ++ log.Debugf("account successfully switched") + return nil + } + +-- +2.39.0 + diff --git a/0002-filters-install-them-in-PREFIX-libexec-aerc-filters.patch b/0002-filters-install-them-in-PREFIX-libexec-aerc-filters.patch new file mode 100644 index 0000000..6e82cb1 --- /dev/null +++ b/0002-filters-install-them-in-PREFIX-libexec-aerc-filters.patch @@ -0,0 +1,186 @@ +From 04921a023831f71dbe97eaebc1e44000a311dbab Mon Sep 17 00:00:00 2001 +From: Robin Jarry +Date: Sun, 8 Jan 2023 20:44:22 +0100 +Subject: [PATCH 2/2] filters: install them in $PREFIX/libexec/aerc/filters + +The filesystem hierarchy standard describes /usr/share as +"Architecture-independent data". This folder is not intended for +executable scripts and especially not for arch specific binary files +(such as the wrap filter). + +Lintian reports an error with aerc 0.14.0: + + arch-dependent-file-in-usr-share [usr/share/aerc/filters/wrap] + +Which I had to fix by moving the filter into /usr/libexec. + +Install all filters into $PREFIX/libexec/aerc/filters and update the +default SearchDirs to look them up in here as well. + +Link: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s11.html +Link: https://salsa.debian.org/go-team/packages/aerc/-/commit/a0ca00260ffd +Signed-off-by: Robin Jarry +Acked-by: Moritz Poldrack +--- + Makefile | 21 ++++++++++++--------- + config/config.go | 12 +++++++++++- + doc/aerc-config.5.scd | 7 +++++-- + doc/aerc-templates.7.scd | 4 ++-- + 4 files changed, 30 insertions(+), 14 deletions(-) + +diff --git a/Makefile b/Makefile +index aa0ac4a..9f6bd0d 100644 +--- a/Makefile ++++ b/Makefile +@@ -7,6 +7,7 @@ VPATH=doc + PREFIX?=/usr/local + BINDIR?=$(PREFIX)/bin + SHAREDIR?=$(PREFIX)/share/aerc ++LIBEXECDIR?=$(PREFIX)/libexec/aerc + MANDIR?=$(PREFIX)/share/man + GO?=go + GOFLAGS?= +@@ -17,6 +18,7 @@ GO_LDFLAGS:= + GO_LDFLAGS+=-X main.Version=$(VERSION) + GO_LDFLAGS+=-X main.Flags=$(flags) + GO_LDFLAGS+=-X git.sr.ht/~rjarry/aerc/config.shareDir=$(SHAREDIR) ++GO_LDFLAGS+=-X git.sr.ht/~rjarry/aerc/config.libexecDir=$(LIBEXECDIR) + GO_LDFLAGS+=$(GO_EXTRA_LDFLAGS) + + GOSRC!=find * -name '*.go' | grep -v filters/wrap.go +@@ -109,7 +111,7 @@ clean: + install: $(DOCS) aerc wrap + mkdir -m755 -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1 $(DESTDIR)$(MANDIR)/man5 $(DESTDIR)$(MANDIR)/man7 \ + $(DESTDIR)$(SHAREDIR) $(DESTDIR)$(SHAREDIR)/filters $(DESTDIR)$(SHAREDIR)/templates $(DESTDIR)$(SHAREDIR)/stylesets \ +- $(DESTDIR)$(PREFIX)/share/applications ++ $(DESTDIR)$(PREFIX)/share/applications $(DESTDIR)$(LIBEXECDIR)/filters + install -m755 aerc $(DESTDIR)$(BINDIR)/aerc + install -m644 aerc.1 $(DESTDIR)$(MANDIR)/man1/aerc.1 + install -m644 aerc-search.1 $(DESTDIR)$(MANDIR)/man1/aerc-search.1 +@@ -127,14 +129,14 @@ install: $(DOCS) aerc wrap + install -m644 config/accounts.conf $(DESTDIR)$(SHAREDIR)/accounts.conf + install -m644 config/aerc.conf $(DESTDIR)$(SHAREDIR)/aerc.conf + install -m644 config/binds.conf $(DESTDIR)$(SHAREDIR)/binds.conf +- install -m755 filters/calendar $(DESTDIR)$(SHAREDIR)/filters/calendar +- install -m755 filters/colorize $(DESTDIR)$(SHAREDIR)/filters/colorize +- install -m755 filters/hldiff $(DESTDIR)$(SHAREDIR)/filters/hldiff +- install -m755 filters/html $(DESTDIR)$(SHAREDIR)/filters/html +- install -m755 filters/html-unsafe $(DESTDIR)$(SHAREDIR)/filters/html-unsafe +- install -m755 filters/plaintext $(DESTDIR)$(SHAREDIR)/filters/plaintext +- install -m755 filters/show-ics-details.py $(DESTDIR)$(SHAREDIR)/filters/show-ics-details.py +- install -m755 wrap $(DESTDIR)$(SHAREDIR)/filters/wrap ++ install -m755 filters/calendar $(DESTDIR)$(LIBEXECDIR)/filters/calendar ++ install -m755 filters/colorize $(DESTDIR)$(LIBEXECDIR)/filters/colorize ++ install -m755 filters/hldiff $(DESTDIR)$(LIBEXECDIR)/filters/hldiff ++ install -m755 filters/html $(DESTDIR)$(LIBEXECDIR)/filters/html ++ install -m755 filters/html-unsafe $(DESTDIR)$(LIBEXECDIR)/filters/html-unsafe ++ install -m755 filters/plaintext $(DESTDIR)$(LIBEXECDIR)/filters/plaintext ++ install -m755 filters/show-ics-details.py $(DESTDIR)$(LIBEXECDIR)/filters/show-ics-details.py ++ install -m755 wrap $(DESTDIR)$(LIBEXECDIR)/filters/wrap + install -m644 templates/new_message $(DESTDIR)$(SHAREDIR)/templates/new_message + install -m644 templates/quoted_reply $(DESTDIR)$(SHAREDIR)/templates/quoted_reply + install -m644 templates/forward_as_body $(DESTDIR)$(SHAREDIR)/templates/forward_as_body +@@ -177,6 +179,7 @@ uninstall: + $(RM) $(DESTDIR)$(MANDIR)/man7/aerc-templates.7 + $(RM) $(DESTDIR)$(MANDIR)/man7/aerc-stylesets.7 + $(RM) -r $(DESTDIR)$(SHAREDIR) ++ $(RM) -r $(DESTDIR)$(LIBEXECDIR) + ${RMDIR_IF_EMPTY} $(DESTDIR)$(BINDIR) + $(RMDIR_IF_EMPTY) $(DESTDIR)$(MANDIR)/man1 + $(RMDIR_IF_EMPTY) $(DESTDIR)$(MANDIR)/man5 +diff --git a/config/config.go b/config/config.go +index 09fb5ef..12da665 100644 +--- a/config/config.go ++++ b/config/config.go +@@ -31,12 +31,14 @@ func mapName(raw string) string { + + // Set at build time + var shareDir string ++var libexecDir string + + func buildDefaultDirs() []string { + var defaultDirs []string + + prefixes := []string{ + xdg.ConfigHome(), ++ "~/.local/libexec", + xdg.DataHome(), + } + +@@ -51,7 +53,13 @@ func buildDefaultDirs() []string { + } + } + +- // Add custom buildtime shareDir ++ // Add custom buildtime dirs ++ if libexecDir != "" && libexecDir != "/usr/local/libexec/aerc" { ++ libexecDir, err := homedir.Expand(libexecDir) ++ if err == nil { ++ defaultDirs = append(defaultDirs, libexecDir) ++ } ++ } + if shareDir != "" && shareDir != "/usr/local/share/aerc" { + shareDir, err := homedir.Expand(shareDir) + if err == nil { +@@ -60,7 +68,9 @@ func buildDefaultDirs() []string { + } + + // Add fixed fallback locations ++ defaultDirs = append(defaultDirs, "/usr/local/libexec/aerc") + defaultDirs = append(defaultDirs, "/usr/local/share/aerc") ++ defaultDirs = append(defaultDirs, "/usr/libexec/aerc") + defaultDirs = append(defaultDirs, "/usr/share/aerc") + + return defaultDirs +diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd +index 45b41c6..1330856 100644 +--- a/doc/aerc-config.5.scd ++++ b/doc/aerc-config.5.scd +@@ -616,8 +616,8 @@ filters need to be able to read from standard input. Many programs support + reading from stdin by putting _-_ instead of a path to a file. You can also + chain together multiple filters by piping with _|_. + +-aerc ships with some default filters installed in the share directory (usually +-_/usr/share/aerc/filters_). Note that these may have additional dependencies ++aerc ships with some default filters installed in the libexec directory (usually ++_/usr/libexec/aerc/filters_). Note that these may have additional dependencies + that aerc does not have alone. + + The filter commands are invoked with _sh -c command_. The following folders are +@@ -625,8 +625,11 @@ appended to the system *$PATH* to allow referencing filters from their name only + + ``` + ${XDG_CONFIG_HOME:-~/.config}/aerc/filters ++~/.local/libexec/aerc/filters + ${XDG_DATA_HOME:-~/.local/share}/aerc/filters ++$PREFIX/libexec/aerc/filters + $PREFIX/share/aerc/filters ++/usr/libexec/aerc/filters + /usr/share/aerc/filters + ``` + +diff --git a/doc/aerc-templates.7.scd b/doc/aerc-templates.7.scd +index 6c9e319..2f0d5f2 100644 +--- a/doc/aerc-templates.7.scd ++++ b/doc/aerc-templates.7.scd +@@ -111,7 +111,7 @@ aerc provides the following additional functions: + Execute external command, provide the second argument to its stdin. + + ``` +- {{exec `/usr/local/share/aerc/filters/html` .OriginalText}} ++ {{exec `/usr/libexec/aerc/filters/html` .OriginalText}} + ``` + + *toLocal* +@@ -142,7 +142,7 @@ aerc provides the following additional functions: + Example: Automatic HTML parsing for text/html mime type messages + ``` + {{if eq .OriginalMIMEType "text/html"}} +- {{exec `/usr/local/share/aerc/filters/html` .OriginalText | wrap 72 | quote}} ++ {{exec `/usr/libexec/aerc/filters/html` .OriginalText | wrap 72 | quote}} + {{else}} + {{wrap 72 .OriginalText | quote}} + {{end}} +-- +2.39.0 + diff --git a/aerc.spec b/aerc.spec index dbd8843..ffe2638 100644 --- a/aerc.spec +++ b/aerc.spec @@ -24,6 +24,13 @@ URL: %{gourl} # The forge macros don't support Sourcehut. # https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/209 Source: %{gourl}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +# doc: fix English typos +# https://git.sr.ht/~rjarry/aerc/commit/10b995f0196c8243132c3f435d4e11b3c9700e35 +Patch: 0001-doc-fix-English-typos.patch +# filters: install them in $PREFIX/libexec/aerc/filters +# https://git.sr.ht/~rjarry/aerc/commit/04303172d4f96b284e0c915ce4a7b87e1439bb87 +# Depends on previous patch. Slightly modified to remove CHANGELOG.md conflict. +Patch: 0002-filters-install-them-in-PREFIX-libexec-aerc-filters.patch BuildRequires: scdoc BuildRequires: desktop-file-utils @@ -37,6 +44,7 @@ Requires: notmuch %prep %goprep +%autopatch -p1 # Disable building of aerc that we handle manually in the SPEC and # preserve mtimes @@ -79,6 +87,7 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/aerc.desktop %{_bindir}/aerc %{_datadir}/aerc/ %{_datadir}/applications/aerc.desktop +%{_libexecdir}/aerc/ %{_mandir}/man1/aerc-*.1.* %{_mandir}/man1/aerc.1* %{_mandir}/man5/aerc-*.5.*