Blob Blame History Raw
# Generated by go2rpm 1.6.0
%bcond check 1
# 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
%bcond vendor 1

# https://git.sr.ht/~rjarry/aerc
%global goipath         git.sr.ht/~rjarry/aerc
%global version0        0.17.0

%gometa

%global common_description %{expand:
Aerc is an email client that runs in your terminal. It is highly
efficient and extensible, perfect for the discerning hacker.}

Name:           aerc
Version:        %{forgeversion}
Release:        %autorelease
Summary:        Email client for your terminal

SourceLicense:  MIT
# See LICENSES.dependencies
License:        MIT AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC
URL:            %{gourl}
Source0         %{forgesource}
Source1:        aerc-%{version}-vendor.tar.gz
# https://git.sr.ht/~gotmax23/fedora-scripts/tree/main/item/go-sig/go_vendor_licenses.py
Source2:        LICENSES.dependencies

BuildRequires:  desktop-file-utils
# wrap and colorize filters are written in C
BuildRequires:  gcc
BuildRequires:  glibc-all-langpacks
BuildRequires:  gnupg
BuildRequires:  notmuch-devel
BuildRequires:  scdoc

Requires:       notmuch

%description
%{common_description}

%prep
%autosetup -p1 %{forgesetupargs} %{?with_vendor:-b1}
%goprep -e %{?with_vendor:-k}
cp %{SOURCE2} .

%if %{without vendor}
# From go.mod replace statements:
# replace golang.org/x/crypto => github.com/ProtonMail/go-crypto v0.0.0-20200420072808-71bec3603bf3
sed -i "s|golang.org/x/crypto|github.com/ProtonMail/go-crypto|" $(find . -name "*.go" -type f)
%endif

%generate_buildrequires
%if %{without vendor}
%go_generate_buildrequires
%endif

%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} \

%install
export PREFIX=%{_prefix}
%make_install
desktop-file-validate %{buildroot}/%{_datadir}/applications/aerc.desktop

%if %{with check}
%check
LANG=en_US.UTF-8 ./filters/test.sh
%gocheck
%endif

%files
%license LICENSE %{?with_vendor:vendor/modules.txt LICENSES.dependencies}
%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.*

%changelog
%autochangelog