515 lines
15 KiB
RPMSpec
515 lines
15 KiB
RPMSpec
#
|
|
# spec file for package mailutils
|
|
#
|
|
# Copyright (c) 2023 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/
|
|
#
|
|
|
|
|
|
%if 0%{?suse_version} > 1500
|
|
%bcond_without libalternatives
|
|
%else
|
|
%bcond_with libalternatives
|
|
%endif
|
|
|
|
%define somajor 9
|
|
# See bug boo#1095783
|
|
# Currently disabled suid/sgid program dotlock and maidag
|
|
%bcond_with set_user_identity
|
|
%bcond_with guile_22
|
|
Name: mailutils
|
|
Version: 3.16
|
|
Release: 0
|
|
Summary: GNU Mailutils
|
|
License: GPL-3.0-or-later AND LGPL-3.0-or-later
|
|
Group: Productivity/Networking/Email/Clients
|
|
URL: https://mailutils.org/
|
|
Source: https://ftp.gnu.org/gnu/mailutils/%{name}-%{version}.tar.xz
|
|
Source1: %{name}-3.5-guile-2.0.tar.xz
|
|
Source2: %{name}-rpmlintrc
|
|
Source3: https://ftp.gnu.org/gnu/mailutils/%{name}-%{version}.tar.xz.sig
|
|
Source4: %{name}.keyring
|
|
Patch0: lisp-load-silent.patch
|
|
Patch2: silent-rpmlint-with_initgroups.patch
|
|
Patch3: mailutils-3.5-guile-2.0.patch
|
|
BuildRequires: autoconf
|
|
BuildRequires: automake
|
|
BuildRequires: bison
|
|
BuildRequires: cpio
|
|
BuildRequires: cyrus-sasl-gssapi
|
|
BuildRequires: fdupes
|
|
BuildRequires: flex
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: guile-devel
|
|
BuildRequires: help2man
|
|
BuildRequires: libmysqld-devel
|
|
BuildRequires: libtool
|
|
BuildRequires: m4
|
|
BuildRequires: makeinfo
|
|
BuildRequires: openldap2-devel
|
|
BuildRequires: pam-devel
|
|
BuildRequires: pkgconfig
|
|
# Does not compile due API changes
|
|
BuildRequires: readline-devel
|
|
BuildRequires: tcpd-devel
|
|
BuildRequires: update-alternatives
|
|
BuildRequires: pkgconfig(fribidi)
|
|
BuildRequires: pkgconfig(gnutls)
|
|
BuildRequires: pkgconfig(krb5-gssapi)
|
|
BuildRequires: pkgconfig(kyotocabinet)
|
|
BuildRequires: pkgconfig(libgsasl)
|
|
BuildRequires: pkgconfig(python3)
|
|
%if %{with libalternatives}
|
|
BuildRequires: alts
|
|
Requires: alts
|
|
%else
|
|
Requires(post): update-alternatives
|
|
Requires(postun):update-alternatives
|
|
%endif
|
|
Requires: guile = %(rpm -q --queryformat '%%{VERSION}' guile-devel)
|
|
%if 0
|
|
# Seems not compatible with original radius (missing debug.h)
|
|
BuildRequires: freeradius-server-devel
|
|
%endif
|
|
%if %{with set_user_identity}
|
|
Requires(post): permissions
|
|
Requires(verify):permissions
|
|
%endif
|
|
# Hard requirement as mimeview uses /usr/share/cups/mime/mime.types
|
|
Requires: cups
|
|
|
|
%description
|
|
Mailutils is a set of utilities and daemons for processing e-mail.
|
|
|
|
All Mailutils programs are able to operate on mailboxes of various
|
|
formats, including UNIX maildrops, maildir, and transparently
|
|
accessed remote mailboxes (IMAP4, POP3, SMTP).
|
|
|
|
Included is an implementation of the traditional UNIX mail reader,
|
|
"mail", command line utilities such as "frm", "messages", "readmsg",
|
|
as well as "sieve", a flexible utility for filtering the incoming
|
|
mail.
|
|
|
|
A special feature of Mailutils is an implementation of the
|
|
MH Message Handling System, which combines the UNIX
|
|
philosophy with a flexibility of Mailutils libraries, thus
|
|
allowing to incorporate mail from remote mailboxes.
|
|
|
|
For system administrators, Mailutils provides a set of daemons
|
|
for delivering and reading electronic mail, including
|
|
pop3d, imap4d and a universal mail delivery agent, called maidag.
|
|
|
|
%package mh
|
|
Summary: MH mailbox format support for Mailutils
|
|
Group: Productivity/Networking/Email/Clients
|
|
|
|
%description mh
|
|
The implementation provides an interface between Mailutils and Emacs
|
|
using the mh-e module.
|
|
|
|
To use Mailutils MH with Emacs, add the following line to
|
|
site-start.el or .gnu-emacs file: (load "mailutils-mh")
|
|
|
|
%package delivery
|
|
Summary: Mailutils's delivery agents
|
|
Group: Productivity/Networking/Email/Servers
|
|
|
|
%description delivery
|
|
The name 'maidag' stands for Mail delivery agent. It is a
|
|
general-purpose MDA offering a number of features. It can operate
|
|
both in traditional mode, reading a message from standard input,
|
|
and in LMTP mode. 'Maidag' is able to deliver mail to any mailbox
|
|
format supported by GNU Mailutils. These formats, among others,
|
|
include 'smtp://', 'prog://' and 'sendmail://', which are equivalent to
|
|
forwarding a message over SMTP to a remote node.
|
|
|
|
%package notify
|
|
Summary: Mailutils's incoming e-mail notification daemon
|
|
Group: Productivity/Networking/Email/Servers
|
|
|
|
%description notify
|
|
Comsatd is the server which receives reports of incoming mail and
|
|
notifies users wishing to get this service.
|
|
|
|
%package imap4d
|
|
Summary: IMAP4 daemon from GNU Mailutils
|
|
Group: Productivity/Networking/Email/Servers
|
|
Conflicts: courier-imap
|
|
Conflicts: cyrus-imapd
|
|
Conflicts: imap
|
|
|
|
%description imap4d
|
|
GNU 'imap4d' is a daemon implementing IMAP4 rev1 protocol for accessing
|
|
and handling electronic mail messages on a server.
|
|
|
|
%package pop3d
|
|
Summary: POP3 daemon from GNU Mailutils
|
|
Group: Productivity/Networking/Email/Servers
|
|
Conflicts: courier-imap
|
|
Conflicts: cyrus-imapd
|
|
Conflicts: imap
|
|
|
|
%description pop3d
|
|
The 'pop3d' daemon implements the Post Office Protocol Version 3 server.
|
|
|
|
%package devel
|
|
Summary: Development files for GNU Mailutils
|
|
Group: Development/Libraries/C and C++
|
|
Requires: libmailutils%{somajor} = %{version}
|
|
Requires: mailutils = %{version}
|
|
|
|
%description devel
|
|
This package includes libraries and header files for building tools to
|
|
access mailutils features.
|
|
|
|
%package -n libmailutils%{somajor}
|
|
Summary: Generalized mailbox access library
|
|
Group: System/Libraries
|
|
|
|
%description -n libmailutils%{somajor}
|
|
At the core of Mailutils is 'libmailutils', a library which provides
|
|
an API for accessing a generalized mailbox. A set of complementary
|
|
libraries provide methods for handling particular mailbox
|
|
implementations: UNIX mailbox, Maildir, MH, POP3, IMAP4, even SMTP.
|
|
|
|
%prep
|
|
%setup -q
|
|
%patch -P 0
|
|
%patch -P 2
|
|
set -- %(rpm -q --queryformat '%%{VERSION}' guile-devel | sed -r 's@\.@ @g')
|
|
(cat > guile.list)<<-EOF
|
|
%dir %{_datadir}/guile/site/$1.$2/
|
|
%dir %{_datadir}/guile/site/$1.$2/mailutils/
|
|
%{_datadir}/guile/site/$1.$2/mailutils/*
|
|
EOF
|
|
if test $1 -gt 2 -o \( $1 -eq 2 -a $2 -ge 2 \)
|
|
then
|
|
echo Using guile $1.$2.$3
|
|
else
|
|
echo Using guile $1.$2.$3
|
|
mv libmu_scm libmu_scm-guile-2.2
|
|
mv include/mailutils/guile.h include/mailutils/guile-2.2.h
|
|
tar xfJ %{SOURCE1}
|
|
%patch -P 3 -b .p3
|
|
autoreconf -fiv
|
|
fi
|
|
#
|
|
# Check our somajor value with the actual value of VI_CURRENT
|
|
#
|
|
test %{somajor} == $(sed -rn '/^VI_CURRENT=/{ s/VI_CURRENT[[:space:]]*=[[:space:]]*//p; }' < ./configure)
|
|
|
|
#
|
|
# Avoid build require for emacs as emacs does
|
|
# build require one the sub packages herein!
|
|
#
|
|
mkdir bin
|
|
(cat > bin/emacs)<<-'EOF'
|
|
#!/bin/sh
|
|
case "$@" in
|
|
*byte-compile*)
|
|
for arg
|
|
do
|
|
case "$arg" in
|
|
*.elc)
|
|
> "$arg"
|
|
;;
|
|
*)
|
|
esac
|
|
done
|
|
;;
|
|
*load-path*)
|
|
echo %{_datadir}/emacs/site-lisp
|
|
;;
|
|
*)
|
|
esac
|
|
EOF
|
|
chmod 755 bin/emacs
|
|
#
|
|
# There is no python-config for python3
|
|
#
|
|
if type -p python3-config > /dev/null 2>&1
|
|
then
|
|
sed -ri '\@python-config@{ s@python-config@python3-config@ }' configure
|
|
fi
|
|
|
|
%build
|
|
PATH="$PWD/bin:$PATH"
|
|
CC=gcc
|
|
CXX=g++
|
|
#
|
|
# In frm/frm.h wrong definition of MB_LEN_MAX if not defined
|
|
#
|
|
CFLAGS="-Wall %{optflags} -fexceptions -D_GNU_SOURCE -DMB_LEN_MAX=16 -fno-strict-aliasing"
|
|
CXXFLAGS="-Wall %{optflags} -D_GNU_SOURCE -DMB_LEN_MAX=16 -fno-strict-aliasing"
|
|
export PATH CC CXX CFLAGS CXXFLAGS
|
|
%configure --enable-ipv6 \
|
|
--enable-build-servers \
|
|
--enable-build-clients \
|
|
--disable-debug \
|
|
--disable-rpath \
|
|
%if %{without set_user_identity}
|
|
--disable-build-dotlock \
|
|
--disable-build-mda \
|
|
%endif
|
|
%if 0
|
|
--disable-silent-rules \
|
|
%endif
|
|
--disable-static \
|
|
--with-gnu-ld \
|
|
--with-gssapi \
|
|
--with-tcp-wrappers \
|
|
--with-ldap \
|
|
--with-lispdir=%{_datadir}/emacs/site-lisp \
|
|
--with-log-facility=LOG_MAIL \
|
|
--with-kyotocabinet \
|
|
CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" \
|
|
DEFAULT_CUPS_CONFDIR=%{_datarootdir}/cups/mime
|
|
|
|
make %{?_smp_mflags} V=1
|
|
|
|
%install
|
|
PATH="$PWD/bin:$PATH"
|
|
%make_install
|
|
#
|
|
# Remove dir, .la and .elc files
|
|
#
|
|
find %{buildroot} \( -name dir -o -name '*.la' -o -name '*.elc' \) -print -delete
|
|
|
|
#
|
|
#
|
|
#
|
|
%if %{with set_user_identity}
|
|
mkdir -p %{buildroot}%{_sysconfdir}/permissions.d
|
|
(cat > %{buildroot}%{_sysconfdir}/permissions.d/mailutils) <<-'EOF'
|
|
%{_bindir}/dotlock root:root 02755
|
|
%{_sbindir}/maidag root:root 04755
|
|
EOF
|
|
(cat > %{buildroot}%{_sysconfdir}/permissions.d/mailutils.paranoid) <<-'EOF'
|
|
%{_bindir}/dotlock root:root 00755
|
|
%{_sbindir}/maidag root:root 00755
|
|
EOF
|
|
%endif
|
|
|
|
# Move system manual pages
|
|
mkdir -p %{buildroot}%{_mandir}/man8
|
|
for m in pop3d imap4d
|
|
do
|
|
mv %{buildroot}%{_mandir}/man1/${m}.1 %{buildroot}%{_mandir}/man8/${m}.8
|
|
done
|
|
# Create missing manual pages
|
|
for m in %{buildroot}%{_bindir}/*
|
|
do
|
|
case "${m##*/}" in
|
|
guimb|mailutils-config|mu-mh) continue ;;
|
|
esac
|
|
if test ! -e %{buildroot}%{_mandir}/man1/${m##*/}.1
|
|
then
|
|
LD_LIBRARY_PATH=%{buildroot}%{_libdir} help2man $m > %{buildroot}%{_mandir}/man1/${m##*/}.1
|
|
fi
|
|
done
|
|
for m in %{buildroot}%{_sbindir}/*
|
|
do
|
|
if test ! -e %{buildroot}%{_mandir}/man8/${m##*/}.8
|
|
then
|
|
LD_LIBRARY_PATH=%{buildroot}%{_libdir} help2man $m > %{buildroot}%{_mandir}/man8/${m##*/}.8
|
|
fi
|
|
done
|
|
|
|
#
|
|
# Rename the mail program to avoid conflicts
|
|
#
|
|
mv %{buildroot}%{_bindir}/mail %{buildroot}%{_bindir}/mu-mail
|
|
mv %{buildroot}%{_mandir}/man1/mail.1 %{buildroot}%{_mandir}/man1/mu-mail.1
|
|
|
|
mkdir -p %{buildroot}/bin
|
|
|
|
%if ! %{with libalternatives}
|
|
# update-alternatives
|
|
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
|
|
%if 0%{?suse_version} < 1550
|
|
ln -sf %{_sysconfdir}/alternatives/binmail %{buildroot}/bin/mail
|
|
%endif
|
|
ln -sf %{_sysconfdir}/alternatives/Mail %{buildroot}%{_bindir}/Mail
|
|
ln -sf %{_sysconfdir}/alternatives/mail %{buildroot}%{_bindir}/mail
|
|
ln -sf %{_sysconfdir}/alternatives/Mail.1%{?ext_man} %{buildroot}%{_mandir}/man1/Mail.1%{?ext_man}
|
|
ln -sf %{_sysconfdir}/alternatives/mail.1%{?ext_man} %{buildroot}%{_mandir}/man1/mail.1%{?ext_man}
|
|
#
|
|
%if 0%{?suse_version} < 1550
|
|
ln -sf %{_bindir}/mu-mail %{buildroot}%{_sysconfdir}/alternatives/binmail
|
|
%endif
|
|
ln -sf %{_bindir}/mu-mail %{buildroot}%{_sysconfdir}/alternatives/Mail
|
|
ln -sf %{_bindir}/mu-mail %{buildroot}%{_sysconfdir}/alternatives/mail
|
|
ln -sf %{_mandir}/man1/mu-mail.1%{?ext_man} %{buildroot}%{_sysconfdir}/alternatives/Mail.1%{?ext_man}
|
|
ln -sf %{_mandir}/man1/mu-mail.1%{?ext_man} %{buildroot}%{_sysconfdir}/alternatives/mail.1%{?ext_man}
|
|
%else
|
|
# libalternatives
|
|
ln -sf %{_bindir}/alts %{buildroot}%{_bindir}/Mail
|
|
%if 0%{?suse_version} < 1550
|
|
ln -sf %{_bindir}/alts %{buildroot}/bin/Mail
|
|
%endif
|
|
mkdir -p %{buildroot}%{_datadir}/libalternatives/Mail
|
|
cat > %{buildroot}%{_datadir}/libalternatives/Mail/10.conf <<EOF
|
|
binary=%{_bindir}/mu-mailx
|
|
man=mu-mail.1
|
|
group=mail, Mail
|
|
EOF
|
|
ln -sf %{_bindir}/alts %{buildroot}%{_bindir}/mail
|
|
%if 0%{?suse_version} < 1550
|
|
ln -sf %{_bindir}/alts %{buildroot}/bin/mail
|
|
%endif
|
|
mkdir -p %{buildroot}%{_datadir}/libalternatives/mail
|
|
cat > %{buildroot}%{_datadir}/libalternatives/mail/10.conf <<EOF
|
|
binary=%{_bindir}/mu-mail
|
|
man=mu-mail.1
|
|
group=mail, Mail
|
|
EOF
|
|
%endif
|
|
|
|
%fdupes -s %{buildroot}%{python3_sitelib}/mailutils/
|
|
|
|
%find_lang %{name}
|
|
|
|
%post
|
|
%if ! %{with libalternatives}
|
|
%{_sbindir}/update-alternatives --quiet --force \
|
|
--install %{_bindir}/mail mail %{_bindir}/mu-mail 10 \
|
|
%if 0%{?suse_version} < 1550
|
|
--slave /bin/mail binmail %{_bindir}/mu-mail \
|
|
%endif
|
|
--slave %{_bindir}/Mail Mail %{_bindir}/mu-mail \
|
|
--slave %{_mandir}/man1/mail.1%{?ext_man} mail.1%{?ext_man} %{_mandir}/man1/mu-mail.1%{?ext_man} \
|
|
--slave %{_mandir}/man1/Mail.1%{?ext_man} Mail.1%{?ext_man} %{_mandir}/man1/mu-mail.1%{?ext_man}
|
|
%endif
|
|
%if %{with set_user_identity}
|
|
%set_permissions %{_bindir}/dotlock
|
|
%set_permissions %{_sbindir}/maidag
|
|
%endif
|
|
|
|
%if ! %{with libalternatives}
|
|
%postun
|
|
if test ! -e %{_bindir}/mu-mail; then
|
|
%{_sbindir}/update-alternatives --quiet --force --remove mail %{_bindir}/mu-mail
|
|
fi
|
|
%else
|
|
|
|
%pre
|
|
# removing old update-alternatives entries
|
|
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
|
|
%{_sbindir}/update-alternatives --quiet --force --remove mail %{_bindir}/mu-mail
|
|
fi
|
|
%endif
|
|
|
|
%post -n libmailutils%{somajor} -p /sbin/ldconfig
|
|
%postun -n libmailutils%{somajor} -p /sbin/ldconfig
|
|
|
|
%if %{with set_user_identity}
|
|
%verifyscript
|
|
%verify_permissions %{_bindir}/dotlock
|
|
%verify_permissions %{_sbindir}/maidag
|
|
%endif
|
|
|
|
%files -f %{name}.lang -f guile.list
|
|
%license COPYING COPYING.LESSER
|
|
%doc ChangeLog README NEWS AUTHORS THANKS
|
|
%{_infodir}/mailutils.info*.gz
|
|
%{_mandir}/man1/*.1%{?ext_man}
|
|
%if %{with set_user_identity}
|
|
%config %{_sysconfdir}/permissions.d/mailutils*
|
|
%endif
|
|
%if ! 0%{with libalternatives}
|
|
%if 0%{?suse_version} < 1550
|
|
%ghost %config %{_sysconfdir}/alternatives/binmail
|
|
/bin/mail
|
|
%endif
|
|
%ghost %config %{_sysconfdir}/alternatives/Mail
|
|
%ghost %config %{_sysconfdir}/alternatives/mail
|
|
%ghost %config %{_sysconfdir}/alternatives/Mail.1%{?ext_man}
|
|
%ghost %config %{_sysconfdir}/alternatives/mail.1%{?ext_man}
|
|
%else
|
|
%dir %{_datadir}/libalternatives
|
|
%dir %{_datadir}/libalternatives/mail
|
|
%dir %{_datadir}/libalternatives/Mail
|
|
%{_datadir}/libalternatives/Mail/10.conf
|
|
%{_datadir}/libalternatives/mail/10.conf
|
|
%endif
|
|
%{_bindir}/decodemail
|
|
%if %{with set_user_identity}
|
|
%attr(02755,root,root) %verify(not mode) %{_bindir}/dotlock
|
|
%endif
|
|
%{_bindir}/frm
|
|
%{_bindir}/from
|
|
%{_bindir}/guimb
|
|
%{_bindir}/Mail
|
|
%{_bindir}/mail
|
|
%{_bindir}/mu-mail
|
|
%{_bindir}/mailutils
|
|
%{_bindir}/mailutils-config
|
|
%{_bindir}/messages
|
|
%{_bindir}/mimeview
|
|
%{_bindir}/movemail
|
|
%{_bindir}/popauth
|
|
%{_bindir}/readmsg
|
|
%{_bindir}/sieve
|
|
%dir %{_libexecdir}/mailutils/
|
|
%{_libexecdir}/mailutils/mailutils-*
|
|
%dir %{python3_sitelib}/mailutils/
|
|
%{python3_sitelib}/mailutils/*.p*
|
|
%dir %{python3_sitelib}/mailutils/__pycache__/
|
|
%{python3_sitelib}/mailutils/__pycache__/*
|
|
%dir %{_libdir}/mailutils/
|
|
%{_libdir}/mailutils/*.so
|
|
%dir %{python3_sitearch}/mailutils/
|
|
%{python3_sitearch}/mailutils/c_api.so
|
|
|
|
%files mh
|
|
%dir %{_bindir}/mu-mh/
|
|
%{_bindir}/mu-mh/*
|
|
%{_datadir}/emacs/site-lisp/mailutils-mh.el
|
|
%dir %{_datadir}/mailutils/
|
|
%dir %{_datadir}/mailutils/mh/
|
|
%{_datadir}/mailutils/mh/*
|
|
|
|
%files delivery
|
|
%{_sbindir}/lmtpd
|
|
%if %{with set_user_identity}
|
|
%attr(04755,root,root) %verify(not mode) %{_sbindir}/mda
|
|
%{_mandir}/man8/mda.8%{?ext_man}
|
|
%endif
|
|
%{_bindir}/putmail
|
|
%{_mandir}/man8/lmtpd.8%{?ext_man}
|
|
|
|
%files notify
|
|
%{_sbindir}/comsatd
|
|
%{_mandir}/man8/comsatd.8%{?ext_man}
|
|
|
|
%files imap4d
|
|
%{_sbindir}/imap4d
|
|
%{_mandir}/man8/imap4d.8%{?ext_man}
|
|
|
|
%files pop3d
|
|
%{_sbindir}/pop3d
|
|
%{_mandir}/man8/pop3d.8%{?ext_man}
|
|
|
|
%files devel
|
|
%{_libdir}/*.so
|
|
%dir %{_includedir}/mailutils/
|
|
%{_includedir}/mailutils/*.h
|
|
%dir %{_includedir}/mailutils/sys/
|
|
%{_includedir}/mailutils/sys/*.h
|
|
%{_datadir}/aclocal/mailutils.m4
|
|
|
|
%files -n libmailutils%{somajor}
|
|
%{_libdir}/*.so.*
|
|
|
|
%changelog
|