diff --git a/.gitignore b/.gitignore index 0a3b7bf..72db243 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,24 @@ /aerc-c303b953360994966ff657c4e17670853198ecf7.tar.gz /aerc-f81d8871c7007c7fa17f3779f711631d747f22df.tar.gz /aerc-0.7.1.tar.gz +/aerc-0.10.0.tar.gz +/aerc-0.12.0.tar.gz +/aerc-0.13.0.tar.gz +/aerc-0.14.0.tar.gz +/aerc-0.15.2.tar.gz +/aerc-0.16.0.tar.gz +/aerc-0.16.0-vendor.tar.gz +/aerc-0.17.0.tar.gz +/aerc-0.17.0-vendor.tar.gz +/aerc-0.18.0.tar.gz +/aerc-0.18.0-vendor.tar.bz2 +/aerc-0.18.2.tar.gz +/aerc-0.18.2-vendor.tar.bz2 +/aerc-0.19.0.tar.gz +/aerc-0.19.0-vendor.tar.bz2 +/aerc-0.20.0.tar.gz +/aerc-0.20.0-vendor.tar.bz2 +/aerc-0.20.1.tar.gz +/aerc-0.20.1-vendor.tar.bz2 +/aerc-0.21.0.tar.gz +/aerc-0.21.0-vendor.tar.bz2 diff --git a/aerc-fix-makefile.patch b/aerc-fix-makefile.patch deleted file mode 100644 index 592ae10..0000000 --- a/aerc-fix-makefile.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff -up aerc-f81d8871c7007c7fa17f3779f711631d747f22df/Makefile.orig aerc-f81d8871c7007c7fa17f3779f711631d747f22df/Makefile ---- aerc-f81d8871c7007c7fa17f3779f711631d747f22df/Makefile.orig 2022-01-15 12:14:32.000000000 +0100 -+++ aerc-f81d8871c7007c7fa17f3779f711631d747f22df/Makefile 2022-01-21 12:54:37.525936280 +0100 -@@ -70,7 +70,7 @@ DOCS := \ - - doc: $(DOCS) - --all: aerc aerc.conf doc -+all: aerc.conf doc - - # Exists in GNUMake but not in NetBSD make and others. - RM?=rm -f -@@ -81,27 +81,26 @@ clean: - install: all - 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 -- 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 -- install -m644 aerc-config.5 $(DESTDIR)$(MANDIR)/man5/aerc-config.5 -- install -m644 aerc-imap.5 $(DESTDIR)$(MANDIR)/man5/aerc-imap.5 -- install -m644 aerc-maildir.5 $(DESTDIR)$(MANDIR)/man5/aerc-maildir.5 -- install -m644 aerc-sendmail.5 $(DESTDIR)$(MANDIR)/man5/aerc-sendmail.5 -- install -m644 aerc-notmuch.5 $(DESTDIR)$(MANDIR)/man5/aerc-notmuch.5 -- install -m644 aerc-smtp.5 $(DESTDIR)$(MANDIR)/man5/aerc-smtp.5 -- install -m644 aerc-tutorial.7 $(DESTDIR)$(MANDIR)/man7/aerc-tutorial.7 -- install -m644 aerc-templates.7 $(DESTDIR)$(MANDIR)/man7/aerc-templates.7 -- install -m644 aerc-stylesets.7 $(DESTDIR)$(MANDIR)/man7/aerc-stylesets.7 -- install -m644 config/accounts.conf $(DESTDIR)$(SHAREDIR)/accounts.conf -- install -m644 aerc.conf $(DESTDIR)$(SHAREDIR)/aerc.conf -- install -m644 config/binds.conf $(DESTDIR)$(SHAREDIR)/binds.conf -- install -m755 filters/hldiff $(DESTDIR)$(SHAREDIR)/filters/hldiff -- install -m755 filters/html $(DESTDIR)$(SHAREDIR)/filters/html -- install -m755 filters/plaintext $(DESTDIR)$(SHAREDIR)/filters/plaintext -- install -m644 templates/quoted_reply $(DESTDIR)$(SHAREDIR)/templates/quoted_reply -- install -m644 templates/forward_as_body $(DESTDIR)$(SHAREDIR)/templates/forward_as_body -- install -m644 config/default_styleset $(DESTDIR)$(SHAREDIR)/stylesets/default -+ install -pm644 aerc.1 $(DESTDIR)$(MANDIR)/man1/aerc.1 -+ install -pm644 aerc-search.1 $(DESTDIR)$(MANDIR)/man1/aerc-search.1 -+ install -pm644 aerc-config.5 $(DESTDIR)$(MANDIR)/man5/aerc-config.5 -+ install -pm644 aerc-imap.5 $(DESTDIR)$(MANDIR)/man5/aerc-imap.5 -+ install -pm644 aerc-maildir.5 $(DESTDIR)$(MANDIR)/man5/aerc-maildir.5 -+ install -pm644 aerc-sendmail.5 $(DESTDIR)$(MANDIR)/man5/aerc-sendmail.5 -+ install -pm644 aerc-notmuch.5 $(DESTDIR)$(MANDIR)/man5/aerc-notmuch.5 -+ install -pm644 aerc-smtp.5 $(DESTDIR)$(MANDIR)/man5/aerc-smtp.5 -+ install -pm644 aerc-tutorial.7 $(DESTDIR)$(MANDIR)/man7/aerc-tutorial.7 -+ install -pm644 aerc-templates.7 $(DESTDIR)$(MANDIR)/man7/aerc-templates.7 -+ install -pm644 aerc-stylesets.7 $(DESTDIR)$(MANDIR)/man7/aerc-stylesets.7 -+ install -pm644 config/accounts.conf $(DESTDIR)$(SHAREDIR)/accounts.conf -+ install -pm644 aerc.conf $(DESTDIR)$(SHAREDIR)/aerc.conf -+ install -pm644 config/binds.conf $(DESTDIR)$(SHAREDIR)/binds.conf -+ install -pm755 filters/hldiff $(DESTDIR)$(SHAREDIR)/filters/hldiff -+ install -pm755 filters/html $(DESTDIR)$(SHAREDIR)/filters/html -+ install -pm755 filters/plaintext $(DESTDIR)$(SHAREDIR)/filters/plaintext -+ install -pm644 templates/quoted_reply $(DESTDIR)$(SHAREDIR)/templates/quoted_reply -+ install -pm644 templates/forward_as_body $(DESTDIR)$(SHAREDIR)/templates/forward_as_body -+ install -pm644 config/default_styleset $(DESTDIR)$(SHAREDIR)/stylesets/default - - RMDIR_IF_EMPTY:=sh -c '\ - if test -d $$0 && ! ls -1qA $$0 | grep -q . ; then \ diff --git a/aerc.spec b/aerc.spec index 04c24f6..d3ceec8 100644 --- a/aerc.spec +++ b/aerc.spec @@ -1,113 +1,111 @@ -# Generated by go2rpm 1.6.0 -%bcond_without check +# Generated by go2rpm 1.14.0 +%bcond check 1 + +# We use vendored deps, as aerc has a lot of dependencies and is picky about +# them. Upstream does a good job at keeping them updated. aerc is prone to +# crashes with Fedora's dependency versions, many of which are out of date. # https://git.sr.ht/~rjarry/aerc %global goipath git.sr.ht/~rjarry/aerc -%global forgeurl https://git.sr.ht/~rjarry/aerc -Version: 0.7.1 -%global tag 0.7.1 -%global repo aerc -%global archivename %{repo}-%{tag} -%global archiveext tar.gz -%global archiveurl %{forgeurl}/archive/%{tag}.%{archiveext} -%global topdir %{archivename} -%global extractdir %{archivename} -%global scm git +%global version0 0.21.0 -%gometa +%gometa -L -f %global common_description %{expand: -Aerc is an email client that runs in your terminal. It's highly +Aerc is an email client that runs in your terminal. It is highly efficient and extensible, perfect for the discerning hacker.} -%global golicenses LICENSE -%global godocs doc README.md - Name: aerc +Version: %{forgeversion} Release: %autorelease Summary: Email client for your terminal -License: MIT +SourceLicense: MIT +# Generated by go-vendor-tools +License: MIT AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC URL: %{gourl} Source0: %{gosource} -# Disable building of aerc that we handle manually in the SPEC -Patch0: aerc-fix-makefile.patch +# Generated by go-vendor-tools +Source1: %{archivename}-vendor.tar.bz2 +Source2: go-vendor-tools.toml +BuildRequires: desktop-file-utils +# wrap and colorize filters are written in C +BuildRequires: gcc +BuildRequires: glibc-all-langpacks +BuildRequires: go-vendor-tools +BuildRequires: gnupg +BuildRequires: notmuch-devel BuildRequires: scdoc -BuildRequires: golang(git.sr.ht/~sircmpwn/getopt) -BuildRequires: golang(github.com/creack/pty) -BuildRequires: golang(github.com/danwakefield/fnmatch) -BuildRequires: golang(github.com/ddevault/go-libvterm) -BuildRequires: golang(github.com/emersion/go-imap) -BuildRequires: golang(github.com/emersion/go-imap-sortthread) -BuildRequires: golang(github.com/emersion/go-imap/client) -BuildRequires: golang(github.com/emersion/go-maildir) -BuildRequires: golang(github.com/emersion/go-message) -BuildRequires: golang(github.com/emersion/go-message/charset) -BuildRequires: golang(github.com/emersion/go-message/mail) -BuildRequires: golang(github.com/emersion/go-message/textproto) -BuildRequires: golang(github.com/emersion/go-pgpmail) -BuildRequires: golang(github.com/emersion/go-sasl) -BuildRequires: golang(github.com/emersion/go-smtp) -BuildRequires: golang(github.com/fsnotify/fsnotify) -BuildRequires: golang(github.com/gdamore/tcell/v2) -BuildRequires: golang(github.com/gdamore/tcell/v2/views) -BuildRequires: golang(github.com/go-ini/ini) -BuildRequires: golang(github.com/google/shlex) -BuildRequires: golang(github.com/imdario/mergo) -BuildRequires: golang(github.com/kyoh86/xdg) -BuildRequires: golang(github.com/mattn/go-isatty) -BuildRequires: golang(github.com/mattn/go-runewidth) -BuildRequires: golang(github.com/miolini/datacounter) -BuildRequires: golang(github.com/mitchellh/go-homedir) -BuildRequires: golang(github.com/pkg/errors) -BuildRequires: golang(github.com/ProtonMail/go-crypto/openpgp) -BuildRequires: golang(github.com/ProtonMail/go-crypto/openpgp/errors) -BuildRequires: golang(github.com/ProtonMail/go-crypto/openpgp/packet) -BuildRequires: golang(github.com/riywo/loginshell) -BuildRequires: golang(golang.org/x/oauth2) -Requires: notmuch -%if %{with check} -# Tests -BuildRequires: golang(github.com/stretchr/testify/assert) -%endif +# used in the builtin `html` filter +Requires: w3m +# aerc is mainly targeted at developers using a git+email workflow +Recommends: git-email +# for email signing/verification, encryption/decryption +Recommends: gnupg2 +# for network isolation with unshare in the builtin `html` filter +Recommends: util-linux - -%description -%{common_description} +%description %{common_description} %prep -%goprep -%patch0 -p1 +%goprep -A +%setup -q -T -D -a1 %{forgesetupargs} +%autopatch -p1 + +%generate_buildrequires +%go_vendor_license_buildrequires -c %{S:2} + %build -export GOFLAGS=-tags=notmuch -export LDFLAGS="-X main.Prefix=%{_prefix} \ - -X main.ShareDir=%{_datadir}/aerc \ - -X main.Version=%{version} " -%gobuild -o %{gobuilddir}/bin/aerc %{goipath} +%set_build_flags +# GO_BUILDTAGS: Enable notmuch explicitly instead of relying on auto-detection +# in build script. +# GO_LDFLAGS: Set to an empty string so the C LDFLAGS set by %%set_build_flags +# aren't read instead. +GO_BUILDTAGS=notmuch GO_LDFLAGS="" + +# BUILD_OPTS: Set `go build` flags +# DATE: Set DATE based on SOURCE_DATE_EPOCH. The Makefile sets it based on the +# current time. +# GOFLAGS: Set to an empty string. We want to clear the definition from the Makefile. +# GO_EXTRA_LDFLAGS: Set `go build -ldflags` argument +# Other values should be self-explanatory +%make_build \ + BUILD_OPTS=%{gobuild_baseflags_shescaped} \ + DATE="$(date -d "@${SOURCE_DATE_EPOCH}" +%Y-%m-%d)" \ + GOFLAGS= \ + GO_EXTRA_LDFLAGS=%{gobuild_ldflags_shescaped} \ + PREFIX=%{_prefix} \ + VERSION=%{version} \ %install -install -m 0755 -vd %{buildroot}%{_bindir} -install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ export PREFIX=%{_prefix} %make_install +desktop-file-validate %{buildroot}/%{_datadir}/applications/aerc.desktop +%go_vendor_license_install -c %{S:2} -%if %{with check} %check +%go_vendor_license_check -c %{S:2} +%if %{with check} +LANG=en_US.UTF-8 ./filters/test.sh %gocheck %endif -%files -%license LICENSE -%doc doc README.md -%{_bindir}/* -%{_mandir}/man1/%{name}.1* -%{_mandir}/man1/%{name}-*.1.* -%{_mandir}/man5/%{name}-*.5.* -%{_mandir}/man7/%{name}-*.7.* -%{_datadir}/aerc +%files -f %{go_vendor_license_filelist} +%license vendor/modules.txt +%doc README.md CHANGELOG.md +%{_bindir}/aerc +%{_bindir}/carddav-query +%{_datadir}/aerc/ +%{_datadir}/applications/aerc.desktop +%{_libexecdir}/aerc/ +%{_mandir}/man1/aerc-*.1.* +%{_mandir}/man1/carddav-query.1* +%{_mandir}/man1/aerc.1* +%{_mandir}/man5/aerc-*.5.* +%{_mandir}/man7/aerc-*.7.* %changelog %autochangelog diff --git a/go-vendor-tools.toml b/go-vendor-tools.toml new file mode 100644 index 0000000..a04291c --- /dev/null +++ b/go-vendor-tools.toml @@ -0,0 +1,2 @@ +[licensing] +detector = "trivy" diff --git a/sources b/sources index b4fcc66..12ae86a 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (aerc-0.7.1.tar.gz) = 34ddc3d3e10e66f8341b985f9d654b05f48dd56fe403bbd5327a514a89f8bc2c1ec81c82ddc508a1289267eafda8f4d54770f17767e1c74b6195e468d19e3088 +SHA512 (aerc-0.21.0.tar.gz) = b58b3ba9fe36a22b5717d48d7b1caf37303003cb4f32138e79f9775a96dbc5d8b27700091dbfe56f31954be5881467a7c5d8c1895d9161eda19a0d7e5c4750aa +SHA512 (aerc-0.21.0-vendor.tar.bz2) = 5deb3e85cdeed9d0366e08ba851bbc4382dfafd3e2ecfb561cfc9b0afdd90183d72683a4c055d95a474144a2a5ba816c2946a1ade9acc85119d0e3242ef8af60