File mutt.spec of Package mutt.17505

#
# spec file for package mutt
#
# Copyright (c) 2018 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/
#


%bcond_with    mutt_openssl
%bcond_without mutt_gnutls

Name:           mutt
%if %{with mutt_openssl}
BuildRequires:  pkgconfig(openssl)
%endif
%if %{with mutt_gnutls}
BuildRequires:  pkgconfig(gnutls)
%endif
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  cyrus-sasl-gssapi
BuildRequires:  docbook-xsl-stylesheets
BuildRequires:  hunspell
BuildRequires:  iso_ent
BuildRequires:  libgpgme-devel
BuildRequires:  libxslt-tools
BuildRequires:  opensp
BuildRequires:  pkgconfig(gssrpc)
BuildRequires:  pkgconfig(krb5)
%if 0%{?suse_version} > 1315
BuildRequires:  pkgconfig(kyotocabinet)
%else
BuildRequires:  libkyotocabinet-devel
%endif
%if 0%{?suse_version} > 1315
BuildRequires:  pkgconfig(libidn2)
%else
BuildRequires:  pkgconfig(libidn)
%endif
BuildRequires:  pkgconfig(libsasl2)
%if 0%{?suse_version} > 1315
BuildRequires:  pkgconfig(ncurses)
%else
BuildRequires:  ncurses-devel
%endif
%if 0%{?suse_version} > 1130
BuildRequires:  pkgconfig(shared-mime-info)
%endif
%if 0%{?suse_version}
BuildRequires:  update-desktop-files
%endif
BuildRequires:  w3m
Url:            http://www.mutt.org
Recommends:     hunspell
Provides:       muttssl
Obsoletes:      muttssl
Recommends:     mutt-doc
Recommends:     mutt-lang
Recommends:     urlscan
Recommends:     urlview
Recommends:     w3m
%if 0%{?suse_version} > 1130
Requires(post):   shared-mime-info
Requires(postun): shared-mime-info
%endif
Version:        1.10.1
Release:        0
Summary:        Mail Program
# ftp://ftp.mutt.org/mutt/devel/
# https:///bitbucket.org/mutt/mutt/downloads/%%name-%%version.tar.gz
License:        GPL-2.0-or-later
Group:          Productivity/Networking/Email/Clients
Source0:        https://bitbucket.org/mutt/mutt/downloads/mutt-%version.tar.gz
Source1:        Signature_conversion
Source2:        README.alternates
Source3:        mutt.png
Source4:        mutt.desktop
Source5:        skel.muttrc
Source9:        mutt.mailcap
Patch:          %name-1.10.0.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-SUSE: Silent gcc about truncated buffer with snprintf()
Patch20:        truncate.patch
Patch21:        3e88866dc60b5fa6aaba6fd7c1710c12c1c3cd01.patch
Patch22:        mutt-1.10.1-backport-mutt_ssl_gnutls-1.14.3.dif
Patch23:        c547433cdf2e79191b15c6932c57f1472bfb5ff4.dif
Patch24:        CVE-2020-28896.patch
Patch25:        nofreeze-c72f740a.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. This version is based on NeoMutt, that is it includes many
enhancements.

%package doc
Summary:        Additional Documentation about Mutt
Group:          Documentation/Other
Requires:       %{name} = %{version}
Recommends:     perl(Expect)
Provides:       %{name}:%{_docdir}/%name/COPYRIGHT
BuildArch:      noarch

%description doc
Some extend documentation about mutt together with muttrc examples
for different environments and requirements.

%package lang
Summary:        Languages for Mutt
Group:          System/Localization
Provides:       mutt:/usr/share/locale/en_GB/LC_MESSAGES/mutt.mo
Requires:       %{name} = %{version}
BuildArch:      noarch

%description lang
Provides translations to the package mutt.

%prep
%setup -q -D -n mutt-%version
%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 .trc
%patch21 -p0 -b .p21
%patch22 -p0 -b .p22
%patch23 -p0 -b .p23
%patch24 -p0 -b .p24
%patch25 -p0 -b .p25

cp %{S:2} .

%build
%if %{with mutt_gnutls}
echo 'set ssl_ca_certificates_file="/etc/ssl/ca-bundle.pem"' >> doc/Muttrc.head
%endif
autoreconf -fi
  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 -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 -pie				LDFLAGS
export CC CFLAGS LDFLAGS
export SENDMAIL=/usr/sbin/sendmail
export ISPELL=/usr/bin/hunspell
export PATH="/usr/lib/mit/bin:$PATH"
export KRB5CFGPATH="$(type -p krb5-config)"
$KRB5CFGPATH --cflags gssapi
$KRB5CFGPATH --libs gssapi
$KRB5CFGPATH --version
%configure \
	--with-docdir=%{_docdir}/%name \
%if %{with mutt_openssl}
	--without-gnutls \
	--with-ssl=%{_prefix} \
%endif
%if %{with mutt_gnutls}
	--without-ssl \
	--with-gnutls=%{_prefix} \
%endif
	--enable-imap \
	--enable-pop \
	--enable-pgp \
	--enable-gpgme \
	--enable-nfs-fix \
	--enable-mailtool \
	--enable-compressed \
	--enable-sidebar \
	--disable-external-dotlock \
	--with-kyotocabinet \
	--with-sasl=%{_prefix} \
	--with-gss=%{_prefix} \
	--with-curses=%{_prefix} \
	--enable-smtp \
	--enable-hcache \
	--with-regex \
%if 0%{?suse_version} > 1315
	--with-idn2
%else
	--with-idn
%endif
make -C doc clean
make
make -C doc

%install
make install DESTDIR=%{buildroot}
install -m 755 %{S:1} %{buildroot}%{_bindir}
gzip -n -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}/%name/mailcap
rm -vf %{buildroot}%{_docdir}/%name/manual.txt
install -D -m 644 doc/manual.txt.gz %{buildroot}%{_docdir}/%name/
%if 0%{?suse_version}
%suse_update_desktop_file mutt
%endif

%if 0%{?suse_version} > 1130
%post
%mime_database_post

%postun
%mime_database_postun
%endif

%files
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/skel/.muttrc
%config(noreplace) %{_sysconfdir}/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
%dir %{_datadir}/mutt/
%{_datadir}/mutt/mailcap
%dir %doc %{_docdir}/%name/
%doc %{_docdir}/%name/manual.txt.gz

%files doc
%defattr(-,root,root)
%doc %{_docdir}/%name/COPYRIGHT
%doc %{_docdir}/%name/ChangeLog
%doc %{_docdir}/%name/GPL
%doc %{_docdir}/%name/NEWS
%doc %{_docdir}/%name/README*
%doc %{_docdir}/%name/TODO
%doc %{_docdir}/%name/*.html
%doc %{_docdir}/%name/*.txt
%dir %doc %{_docdir}/%name/samples/
%doc %{_docdir}/%name/samples/*.rc
%doc %{_docdir}/%name/samples/ca-bundle.crt
%doc %{_docdir}/%name/samples/colors.*
%doc %{_docdir}/%name/samples/mutt_xtitle
%doc %{_docdir}/%name/samples/sample.*
%doc %{_docdir}/%name/samples/smime_keys_test.pl
%dir %doc %{_docdir}/%name/samples/iconv/
%doc %{_docdir}/%name/samples/iconv/*.rc

%files lang -f %name.lang
%defattr(-,root,root)

%changelog
openSUSE Build Service is sponsored by