1
0
forked from pool/mutt
mutt/mutt.spec
2017-03-06 10:38:16 +00:00

303 lines
8.7 KiB
RPMSpec

#
# spec file for package mutt
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
Name: mutt
#!BuildIgnore: sendmail
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: cyrus-sasl-devel
BuildRequires: cyrus-sasl-gssapi
BuildRequires: docbook-xsl-stylesheets
BuildRequires: docbook_4
BuildRequires: fdupes
BuildRequires: gdbm-devel
BuildRequires: glibc-i18ndata
BuildRequires: ispell
BuildRequires: krb5-devel
BuildRequires: libcom_err
%if 0%{?suse_version} <= 1230
BuildRequires: libgcrypt
%else
BuildRequires: libgcrypt-devel
%endif
BuildRequires: libgnutls-devel
BuildRequires: libgpg-error-devel
BuildRequires: libidn-devel
BuildRequires: libopenssl-devel
BuildRequires: libxml2
BuildRequires: libxslt
BuildRequires: lynx
BuildRequires: ncurses-devel
%if 0%{?is_opensuse}
BuildRequires: notmuch-devel
%endif
BuildRequires: postfix
BuildRequires: sgml-skel
BuildRequires: update-desktop-files
BuildRequires: xli
#if
%if 0%{?suse_version} > 1130
BuildRequires: libassuan-devel
BuildRequires: libgpgme-devel
%else
BuildRequires: gpgme-devel
%endif
Url: http://www.mutt.org
Provides: muttssl
Obsoletes: muttssl
Recommends: smtp_daemon
Recommends: urlscan
Recommends: urlview
Recommends: w3m
%if 0%{?suse_version} > 1130
Requires(post): shared-mime-info
Requires(postun): shared-mime-info
%endif
Requires: perl(Expect)
# NOTE: We don't want this dependency and desktop-data-SuSE is in all
# desktop selections.
#Requires: desktop-data-SuSE
%global neo 20160826
Version: 1.6.2
Release: 0
Summary: Mail Program
License: GPL-2.0+
Group: Productivity/Networking/Email/Clients
# ftp://ftp.mutt.org/mutt/devel/
Source0: https://bitbucket.org/mutt/mutt/downloads/%name-%version.tar.gz
Source1: Signature_conversion
Source2: README.alternates
Source3: mutt.png
Source4: mutt.desktop
Source5: skel.muttrc
Source6: krb5-config
Source7: mutt-1.5.21.de.po
Source9: mutt.mailcap
# http://www.neomutt.org/
Source10: neomutt-distro-%neo.tar.gz
Patch: %name-%version.dif
# http://www.spinnaker.de/mutt/compressed/
Patch2: %name-1.5.9i-pgpewrap.diff
Patch3: %name-1.5.20-sendgroupreplyto.diff
Patch4: %name-1.5.15-wrapcolumn.diff
Patch7: mutt-1.6.1-opennfs.dif
Patch9: bug-676388-largefile.patch
# http://www.wolfermann.org/mutt.html
Patch11: aw.listreply.diff
Patch12: patch-1.5.24.vk.pgp_verbose_mime
# PATCH-FIX-OPENSUSE: bnc#813498 - mutt crashes in fgetwc in text_enriched_handler
Patch15: widechar.sidebar.dif
# PATCH-FIX-OPENSUSE: Be able to read signed/encrypted messsages even with CRLF
Patch16: mutt-1.5.23-carriage-return.path
# PATCH-FIX-OPENSUSE bnc#899712 - fallback mailcap for e.g text/html
Patch18: mutt-1.5.21-mailcap.diff
# PATCH-FIX-SUSE: bsc#907453 - CVE-2014-9116: mutt: heap-based buffer overflow in mutt_substrdup()
Patch19: bsc907453-CVE-2014-9116-jessie.patch
# PATCH-FIX-OPENSUSE boo#980830 ... remove if fixed upstream
Patch20: COLS-workaround.dif
# PATCH-FIX-OPENSUSE avoid name space trouble with latest libgppme
Patch21: mutt-1.6.2-gpgme_set_sender.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%global _sysconfdir %{_sysconfdir}
%description
A very powerful mail user agent. It supports (among other nice things)
highlighting, threading, and PGP. It takes some time to get used to,
however.
%prep
%setup -q -n mutt-%version -a 10
for p in neomutt-distro-%neo/bugs-common/*.patch
do
patch -s -p1 --fuzz=%_default_patch_fuzz < $p
done
for p in neomutt-distro-%neo/features-common/*.patch
do
patch -s -p1 --fuzz=%_default_patch_fuzz < $p
done
for p in neomutt-distro-%neo/features-extra/*.patch
do
patch -s -p1 --fuzz=%_default_patch_fuzz < $p
done
for p in neomutt-distro-%neo/bugs-neomutt/*.patch
do
patch -s -p1 --fuzz=%_default_patch_fuzz < $p
done
%patch -p0 -b .p0
%patch2 -p0 -b .pgpewrap
%patch3 -p0 -b .sendgroupreplyto
%patch4 -p0 -b .wrapcolumn
%patch7 -p0 -b .opennfs
%patch9 -p0 -b .largefile
%patch11 -p0 -b .listreply
%patch12 -p0 -b .pgp_verbose_mtime
%patch15 -p0 -b .widechar.sidebar
%patch16 -p0 -b .crlf
%patch18 -p0 -b .mailcap
%patch19 -p0 -b .cvw2014.9116
%patch20 -p0 -b .cols
%patch21 -p0 -b .ssend
rm -vf README*.orig
rm -vf PATCHES*.orig
cp doc/Muttrc Muttrc.SuSE
cp %{S:2} .
%build
%if 0%{?suse_version} > 1100
autoreconf -fi
%endif
cflags ()
{
local flag=$1; shift
local var=$1; shift
test -n "${flag}" -a -n "${var}" || return
case "${!var}" in
*${flag}*) return
esac
set -o noclobber
case "$flag" in
-Wl,*)
if echo 'int main () { return 0; }' | \
${CC:-gcc} -Werror $flag -o /dev/null -xc - > /dev/null 2>&1 ; then
eval $var=\${$var:+\$$var\ }$flag
fi
;;
*)
if ${CC:-gcc} -Werror $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then
eval $var=\${$var:+\$$var\ }$flag
fi
esac
set +o noclobber
}
CC=gcc
CFLAGS="-Wall $RPM_OPT_FLAGS -I. -D_GNU_SOURCE"
#cflags -DSUSE_IMAP_FORCE_SSL CFLAGS
cflags -fno-strict-aliasing CFLAGS
cflags -fstack-protector CFLAGS
cflags -fPIE CFLAGS
cflags -g3 CFLAGS
cflags -pipe CFLAGS
cflags -Wl,--as-needed LDFLAGS
cflags -Wl,-O2 LDFLAGS
cflags -Wl,--hash-size=8599 LDFLAGS
cflags -pie LDFLAGS
KRB5CFGPATH=%{S:6}
export CC CFLAGS LDFLAGS KRB5CFGPATH
chmod 755 $KRB5CFGPATH
./configure $RPM_ARCH-suse-linux \
--prefix=%{_prefix} \
--datadir=%{_datadir} \
--sysconfdir=%{_sysconfdir} \
--mandir=%{_mandir} \
--with-docdir=%{_docdir}/%name \
--enable-imap \
--enable-pop \
--enable-pgp \
%if 0%{?suse_version} >= 1100
--enable-gpgme \
%endif
--enable-nfs-fix \
--enable-mailtool \
--enable-compressed \
--enable-sidebar \
%if 0%{?is_opensuse}
--enable-notmuch \
%endif
--enable-hcache \
--disable-external-dotlock \
--with-ssl=%{_prefix} \
--with-sasl=%{_prefix} \
--with-gss=%{_prefix} \
--with-gnutls=%{_prefix} \
--with-curses=%{_prefix} \
--with-regex \
--enable-smtp \
--enable-hcache \
--with-idn
make -C doc clean
make -C po update-po
cp %{S:7} po/de.po
make
make -C doc
%install
make install DESTDIR=%{buildroot}
mv Muttrc.SuSE %{buildroot}%{_sysconfdir}/Muttrc
install -m 755 %{S:1} %{buildroot}%{_bindir}
gzip -9 doc/manu*.txt
rm -f contrib/Makefile*
# datadir not automatically created:
mkdir -p %{buildroot}%{_datadir}/mutt
# INSTALL file should be removed:
rm -rf %{buildroot}%{_docdir}/%{name}/INSTALL
# mbox/mmdf manual page conflicts with the one from tin, so rename it
mv %{buildroot}%{_mandir}/man5/mbox.5 \
%{buildroot}%{_mandir}/man5/mbox_mutt.5
mv %{buildroot}%{_mandir}/man5/mmdf.5 \
%{buildroot}%{_mandir}/man5/mmdf_mutt.5
%find_lang %name
# We get mime.types from aaa_base
rm -f %{buildroot}%{_sysconfdir}/mime.types
# Mutt BTS is gone
rm -f %{buildroot}%{_mandir}/man1/{flea*,muttbug*}
rm -f %{buildroot}%{_bindir}/{flea,muttbug}
rm -f %{buildroot}%{_sysconfdir}/Muttrc.dist
rm -f %{buildroot}%{_sysconfdir}/mime.types.dist
mkdir -p %{buildroot}%{_datadir}/pixmaps
install -m 644 %{SOURCE3} %{buildroot}%{_datadir}/pixmaps/
mkdir -p %{buildroot}%{_datadir}/applications
install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/
install -D -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/skel/.muttrc
install -D -m 644 %{SOURCE9} %{buildroot}%{_datadir}/mutt/mailcap
%suse_update_desktop_file mutt
%if 0%{?suse_version} >= 1140
%post
%mime_database_post
%postun
%mime_database_postun
%endif
%files -f %name.lang
%defattr(-,root,root)
%doc doc/manual*.html doc/manual.txt.gz COPYRIGHT README* NEWS TODO
%doc doc/PGP-Notes.txt doc/applying-patches.txt doc/devel-notes.txt
%config(noreplace) %{_sysconfdir}/skel/.muttrc
%{_bindir}/mutt
%{_bindir}/pgpewrap
%{_bindir}/pgpring
%{_bindir}/smime_keys
%{_bindir}/Signature_conversion
%{_datadir}/applications/*.desktop
%{_datadir}/pixmaps/mutt.png
%{_mandir}/man1/mutt.1.gz
%{_mandir}/man1/pgp*.1.gz
%{_mandir}/man1/smime_keys.1.gz
%{_mandir}/man5/mmdf_mutt.5.gz
%{_mandir}/man5/muttrc.5.gz
%{_mandir}/man5/mbox_mutt.5.gz
%{_datadir}/mutt
%{_datadir}/mutt/mailcap
%doc %{_docdir}/%name
%config(noreplace) %{_sysconfdir}/Muttrc
%changelog