8287ce3299
Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/1177359 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/alpine?expand=0&rev=59
301 lines
9.9 KiB
RPMSpec
301 lines
9.9 KiB
RPMSpec
#
|
|
# spec file for package alpine
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
# grep '\*version' for new pico version number
|
|
# grep 'PILOT_VERSION' for new pilot version number
|
|
Name: alpine
|
|
# For debugging only:
|
|
%define build_vanilla 0
|
|
Version: 2.26
|
|
Release: 0
|
|
Summary: Mail User Agent
|
|
License: Apache-2.0
|
|
Group: Productivity/Networking/Email/Clients
|
|
URL: https://alpineapp.email/
|
|
#Git-Clone: https://repo.or.cz/alpine.git
|
|
|
|
#Source: %name-%version.tar.xz
|
|
Source: https://alpineapp.email/alpine/release/src/alpine-%version.tar.xz
|
|
Source2: https://alpineapp.email/alpine/release/src/sig/alpine-%version.tar.xz.sig
|
|
Source3: %name.png
|
|
Source4: %name.desktop
|
|
Source9: UPDATING.txt
|
|
Patch2: make-use-of-strncat-safer.diff
|
|
Patch3: operation-may-be-undefined-warning.diff
|
|
Patch4: fix-implicit.patch
|
|
Patch5: alpine-gcc44.diff
|
|
Patch6: alpine-timestamp.patch
|
|
Patch10: pico-fix-spurious-undef-warnings.diff
|
|
Patch20: pine-expression-warnings.diff
|
|
Patch60: signal-and-panic-improvements.diff
|
|
Patch61: return-values.diff
|
|
Patch62: alpine-qsort.patch
|
|
#
|
|
# Eduardo Chappa's patches.
|
|
# http://patches.freeiz.com/alpine/
|
|
#
|
|
Source600: chappa-colortext.txt
|
|
Patch600: chappa-colortext.patch
|
|
Source601: chappa-fancy.txt
|
|
Patch601: chappa-fancy.patch
|
|
Source603: chappa-insertpat.txt
|
|
Patch603: chappa-insertpat.patch
|
|
Source604: chappa-maildir.txt
|
|
Patch604: chappa-maildir.patch
|
|
Source614: chappa-fillpara.txt
|
|
Patch614: chappa-fillpara.patch
|
|
Source615: chappa-fromheader.txt
|
|
Patch615: chappa-fromheader.patch
|
|
Source616: chappa-rules.txt
|
|
Patch616: chappa-rules.patch
|
|
Source617: chappa-DelText.txt
|
|
Patch617: chappa-DelText.patch
|
|
BuildRequires: autoconf >= 2.69
|
|
BuildRequires: krb5-devel
|
|
BuildRequires: libtool
|
|
BuildRequires: ncurses-devel
|
|
BuildRequires: openldap2-devel
|
|
BuildRequires: openssl-devel
|
|
BuildRequires: pam-devel
|
|
BuildRequires: update-desktop-files
|
|
BuildRequires: xz
|
|
# pgp4pine requires pine: (6.20 is what alpine writes to ~/.pinerc)
|
|
Provides: pine = 6.20
|
|
Obsoletes: pine4
|
|
Provides: pine4
|
|
|
|
%description
|
|
Alpine is a display-oriented email client that is suitable for both
|
|
the inexperienced email user as well as for the most demanding of
|
|
power users. Alpine is based on the Pine® Message System, which was
|
|
also developed at the University of Washington. Alpine can be learned
|
|
by exploration and the use of context-sensitive help. The user
|
|
experience is highly customizable through the use of the Alpine Setup
|
|
command.
|
|
|
|
%package -n pico
|
|
Summary: A small, easy to use editor
|
|
Group: Productivity/Editors/Other
|
|
Version: 5.09
|
|
Release: 0
|
|
|
|
%description -n pico
|
|
Pico is a simple, display-oriented text editor based on the Pine
|
|
message system composer. As with Pine, commands are displayed at the
|
|
bottom of the screen, and context-sensitive help is provided.
|
|
Characters are inserted into the text as they are typed.
|
|
|
|
%package -n pilot
|
|
Summary: Simple file system browser
|
|
Group: Productivity/File utilities
|
|
Version: 2.99
|
|
Release: 0
|
|
|
|
%description -n pilot
|
|
Pilot is a simple, display-oriented file system browser based on the
|
|
Pine message system composer. As with Pine, commands are displayed at
|
|
the bottom of the screen, and context-sensitive help is provided.
|
|
|
|
%prep
|
|
%setup -q
|
|
%if !0%{?build_vanilla}
|
|
#
|
|
# This is here to support checking if any patches add new warnings:
|
|
#
|
|
if [ ! -s %{_sourcedir}/compile-warnings-%{suse_version}-%{_arch}.log ]; then
|
|
echo "No warnings check possible, set build_vanilla to 1 and"
|
|
echo "add compile-warnings-%{suse_version}-%{_arch}.log from"
|
|
echo "that build to the rpm build process so that it's found here".
|
|
else
|
|
sed 's/:[0-9]*//' %{_sourcedir}/compile-warnings-%{suse_version}-%{_arch}.log \
|
|
>compile-warnings-allowed.log
|
|
fi
|
|
#
|
|
# "Chappa" patches
|
|
#
|
|
%patch -P 600 -p1
|
|
%patch -P 601 -p1
|
|
%patch -P 603 -p1
|
|
%patch -P 604 -p1
|
|
%patch -P 614 -p1
|
|
%patch -P 615 -p1
|
|
%patch -P 616 -p1
|
|
%patch -P 617 -p1
|
|
#
|
|
# SuSE patches - warning fixes, etc:
|
|
#
|
|
%patch -P 2 -p1
|
|
%patch -P 3 -p1
|
|
%patch -P 4 -p1
|
|
%patch -P 5 -p1
|
|
%patch -P 6 -p1
|
|
%patch -P 10 -p1
|
|
%patch -P 20 -p1
|
|
%patch -P 60 -p1
|
|
%patch -P 61 -p1
|
|
%patch -P 62
|
|
%endif
|
|
|
|
%build
|
|
#
|
|
# Comment on disabled warnings: The disabled warnings are rather harmless
|
|
# and disabling them allows to focus on the really serious warnings:
|
|
#
|
|
export CFLAGS="${RPM_OPT_FLAGS/-O2/-Os} \
|
|
-Wno-unused-value -fno-strict-aliasing -Wno-pointer-sign -Wno-unused \
|
|
-Wno-address \
|
|
"
|
|
#
|
|
# On -Waddress:
|
|
#
|
|
# Added with gcc-4.2: It warns when the address of a variable (not a pointer)
|
|
# is used in an expression. Since addresses of variables are always non-zero,
|
|
# they are always true and can be safely removed from the expression,
|
|
# but the code is safe nontheless.
|
|
#
|
|
# -Waddress generates >100 warnings in alpine and we disabled them to
|
|
# concentrate on the really important warnings which could be real bugs better.
|
|
#
|
|
:
|
|
#
|
|
# Used in conjunction with signal-and-panic-improvements.diff:
|
|
#
|
|
export LDFLAGS="-rdynamic" # -rdynamic is used for backtrace_symbols:
|
|
:
|
|
autoreconf -fiv
|
|
%configure \
|
|
--with-ssl-dir="%{_prefix}" \
|
|
--with-smtp-msa="%{_sbindir}/sendmail" \
|
|
--with-password-prog="%{_bindir}/passwd" \
|
|
--with-npa="%{_bindir}/inews" \
|
|
--with-spellcheck-prog="please set Speller to eg. 'aspell -c' in SETUP/Configuration"\
|
|
--with-system-pinerc=%_sysconfdir/pine.conf \
|
|
--with-system-fixed-pinerc=%_sysconfdir/pine.conf.fixed \
|
|
--with-debug-level=0 \
|
|
--with-debug-files=2 \
|
|
--with-file=.alpine-debug \
|
|
--with-default-mail-directory=Mail \
|
|
--with-web-bin=%_libdir/%name \
|
|
--with-passfile=.pinepw || {
|
|
grep -B9 -A20 'failed program was' config.log | grep -A24 checking
|
|
exit 5
|
|
}
|
|
%{?fedora_version: tag=LFD}
|
|
%{?mandriva_version: tag=LMD}
|
|
%{?redhat_version: tag=LRH}
|
|
%{?centos_version: tag=LRH}
|
|
%{?suse_version: tag=LSU}
|
|
perl -i -pe 's{(define SYSTYPE) "LNX"}{$1 "'"$tag"'"}g' include/config.h
|
|
|
|
#
|
|
# imap does not use CFLAGS from configure, needs EXTRACFLAGS/EXTRALDFLAGS:
|
|
#
|
|
%make_build EXTRACFLAGS="$CFLAGS" EXTRALDFLAGS="$EXTRALDFLAGS" \
|
|
MAILSPOOL="%{_localstatedir}/mail" -j1
|
|
|
|
%install
|
|
%make_install
|
|
#
|
|
# When called as alpinef, alpine uses function keys instead of Control keys:
|
|
#
|
|
ln %{buildroot}/%{_bindir}/alpine %{buildroot}/%{_bindir}/alpinef
|
|
install -D -m644 %{SOURCE3} %{buildroot}/%{_datadir}/pixmaps/%name.png
|
|
install -D -m644 %{SOURCE4} %{buildroot}/%{_datadir}/applications/%name.desktop
|
|
%suse_update_desktop_file %name
|
|
:
|
|
ln -sf alpine %{buildroot}/%{_bindir}/pine
|
|
:
|
|
install -m755 pico/{pico,pilot} %{buildroot}/%{_bindir}
|
|
install -m644 doc/man1/{pico.1,pilot.1} %{buildroot}/%{_mandir}/man1/
|
|
|
|
%check
|
|
#since there are no logs in the package at the moment, there are no checks,
|
|
#but the warning logs can be recreated for regression tracking in warnings:
|
|
if [ -s %{_sourcedir}/compile-warnings-%{suse_version}-%{_arch}.log ]; then
|
|
grep -e '^[a-z0-9_]*.[cho]:' -e 'Entering directory' make.log |
|
|
sed "s/^make\[.\]: //;/Entering directory/s/[\`']//g;" \
|
|
>compile-warnings-%{suse_version}-%{_arch}.log
|
|
# Sort the combined allowed warnings:
|
|
grep -v -e 'In function' -e 'Entering directory' \
|
|
compile-warnings-allowed.log |
|
|
sort -u > compile-warnings-%{suse_version}-%{_arch}-reference.sort
|
|
# Sort the warnings which occured now:
|
|
grep -v -e 'In function' -e 'Entering directory' \
|
|
compile-warnings-%{suse_version}-%{_arch}.log |
|
|
sed 's/:[0-9]*//' | sort -u \
|
|
>compile-warnings-%{suse_version}-%{_arch}-thisbuild.sort
|
|
# diff them:
|
|
diff compile-warnings-%{suse_version}-%{_arch}-{reference,thisbuild}.sort |
|
|
tee compile-warnings-%{suse_version}-%{_arch}-sorted.diff
|
|
if test -s compile-warnings-%{suse_version}-%{_arch}-sorted.diff; then
|
|
grep '^>' compile-warnings-%{suse_version}-%{_arch}-sorted.diff >new-warnings ||:
|
|
if [ -s new-warnings ]; then
|
|
diff -u %{_sourcedir}/compile-warnings-%{suse_version}-%{_arch}.log \
|
|
compile-warnings-%{suse_version}-%{_arch}.log ||
|
|
echo "New warnings:"
|
|
cat new-warnings
|
|
sed 's/> //;s/:/:[0-9]*:/' new-warnings >new-warnings.pattern
|
|
: diff: %_builddir}/compile-warnings-%{suse_version}-%{_arch}-sorted.diff
|
|
grep -B1 -f new-warnings.pattern compile-warnings-%{suse_version}-%{_arch}.log
|
|
grep -e 'Entering directory' -f new-warnings.pattern \
|
|
compile-warnings-%{suse_version}-%{_arch}.log |
|
|
grep -B1 -f new-warnings.pattern |
|
|
tee warnings.where
|
|
while IFS='[: ]' read file line message; do
|
|
if [ "$file" = Entering ]; then
|
|
dir="${message#%_builddir/%buildsubdir/}"
|
|
else
|
|
path="$dir/$file"
|
|
echo "$path:$line: $message" >>warnings-with-code
|
|
head -"$line" "$path"|tail -1 >>warnings-with-code
|
|
fi
|
|
done <warnings.where
|
|
cat warnings-with-code
|
|
exit 5
|
|
else
|
|
echo "Fixed warnings:"
|
|
grep '^<' compile-warnings-%{suse_version}-%{_arch}-sorted.diff
|
|
fi
|
|
else
|
|
echo "No fixed warnings and no new warnings"
|
|
fi
|
|
fi
|
|
|
|
%files
|
|
%doc %{_mandir}/man1/alpine.*
|
|
%doc %{_mandir}/man1/rpdump.*
|
|
%doc %{_mandir}/man1/rpload.*
|
|
%doc README
|
|
%license LICENSE NOTICE
|
|
%doc doc/mailcap.unx doc/mime.types doc/tech-notes/tech-notes.txt doc/tech-notes/*.html
|
|
%{_bindir}/*pine
|
|
%{_bindir}/alpinef
|
|
%{_bindir}/rp*
|
|
%{_datadir}/applications/%name.desktop
|
|
%{_datadir}/pixmaps/%name.png
|
|
|
|
%files -n pico
|
|
%{_bindir}/pico
|
|
%doc %{_mandir}/man1/pico.*
|
|
|
|
%files -n pilot
|
|
%{_bindir}/pilot
|
|
%doc %{_mandir}/man1/pilot.*
|
|
|
|
%changelog
|