diff --git a/.gitignore b/.gitignore index 72db243..92dcc4f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,19 +7,3 @@ /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.spec b/aerc.spec index d3ceec8..987d75c 100644 --- a/aerc.spec +++ b/aerc.spec @@ -1,108 +1,90 @@ -# 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. +# Generated by go2rpm 1.6.0 +%bcond_without check # https://git.sr.ht/~rjarry/aerc %global goipath git.sr.ht/~rjarry/aerc -%global version0 0.21.0 +Version: 0.15.2 +%global topdir %{name}-%{version} -%gometa -L -f +%gometa %global common_description %{expand: -Aerc is an email client that runs in your terminal. It is highly +Aerc is an email client that runs in your terminal. It's 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 -SourceLicense: MIT -# Generated by go-vendor-tools -License: MIT AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC +License: MIT URL: %{gourl} -Source0: %{gosource} -# Generated by go-vendor-tools -Source1: %{archivename}-vendor.tar.bz2 -Source2: go-vendor-tools.toml +# 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 +BuildRequires: scdoc 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: gcc -# 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 +Requires: notmuch -%description %{common_description} +%description +%{common_description} %prep -%goprep -A -%setup -q -T -D -a1 %{forgesetupargs} +%goprep %autopatch -p1 -%generate_buildrequires -%go_vendor_license_buildrequires -c %{S:2} +# Disable building of aerc that we handle manually in the SPEC and +# preserve mtimes +sed -e 's|install: $(DOCS) aerc wrap|install: $(DOCS)|' \ + -e 's|install -m|install -pm|' \ + -i Makefile +# From go.mod replace statements: +# replace golang.org/x/crypto => github.com/ProtonMail/go-crypto v0.0.0-20200420072808-71bec3603bf3 +# replace github.com/zenhack/go.notmuch => github.com/brunnre8/go.notmuch v0.0.0-20201126061756-caa2daf7093c +sed -i "s|golang.org/x/crypto|github.com/ProtonMail/go-crypto|" $(find . -name "*.go" -type f) +sed -i "s|github.com/zenhack/go.notmuch|github.com/brunnre8/go.notmuch|" $(find . -name "*.go" -type f) + +%generate_buildrequires +%go_generate_buildrequires +echo 'golang(github.com/brunnre8/go.notmuch)' %build %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} \ +make wrap colorize +export BUILDTAGS=notmuch +export LDFLAGS="-X main.Version=%{version} \ + -X main.Prefix=%{_prefix} \ + -X main.Flags=$(echo -- $(GOFLAGS) | base64 | tr -d '\r\n') \ + -X git.sr.ht/~rjarry/aerc/config.shareDir=%{_datadir} \ + -X git.sr.ht/~rjarry/aerc/config.libexecDir=%{_libexecdir}" +%gobuild -o aerc %{goipath} %install export PREFIX=%{_prefix} %make_install desktop-file-validate %{buildroot}/%{_datadir}/applications/aerc.desktop -%go_vendor_license_install -c %{S:2} -%check -%go_vendor_license_check -c %{S:2} %if %{with check} -LANG=en_US.UTF-8 ./filters/test.sh +%check %gocheck %endif -%files -f %{go_vendor_license_filelist} -%license vendor/modules.txt -%doc README.md CHANGELOG.md +%files +%license LICENSE +%doc doc README.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.* diff --git a/go-vendor-tools.toml b/go-vendor-tools.toml deleted file mode 100644 index a04291c..0000000 --- a/go-vendor-tools.toml +++ /dev/null @@ -1,2 +0,0 @@ -[licensing] -detector = "trivy" diff --git a/sources b/sources index 12ae86a..e0a0b5e 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (aerc-0.21.0.tar.gz) = b58b3ba9fe36a22b5717d48d7b1caf37303003cb4f32138e79f9775a96dbc5d8b27700091dbfe56f31954be5881467a7c5d8c1895d9161eda19a0d7e5c4750aa -SHA512 (aerc-0.21.0-vendor.tar.bz2) = 5deb3e85cdeed9d0366e08ba851bbc4382dfafd3e2ecfb561cfc9b0afdd90183d72683a4c055d95a474144a2a5ba816c2946a1ade9acc85119d0e3242ef8af60 +SHA512 (aerc-0.15.2.tar.gz) = 8744c6c5ea45fc8ad2ab46367e92d3859fab962843db4329c7655b0afe7b72dbea21dae588d44eab314a31da89d15e5b6543224699556aed31e0b3b9c7b0ddbc