Initial work to update to 3.0.1.

This commit is contained in:
Jason Tibbitts 2017-05-22 11:59:16 -05:00
parent 597d10c50b
commit f98fbbdac0

View File

@ -1,6 +1,10 @@
# Cassandane doesn't have releases often. This was fetched on 20170412.
%global cmt1 9fed6232e4bf202987b5b8a57bac018797fbb6c6
%define scmt(l:) %(c=%1; echo ${c:0:%{-l:%{-l*}}%{!-l:7}})
Name: cyrus-imapd Name: cyrus-imapd
Version: 2.5.10 Version: 3.0.1
Release: 3%{?dist} Release: 1%{?dist}
%define ssl_pem_file /etc/pki/%name/%name.pem %define ssl_pem_file /etc/pki/%name/%name.pem
@ -10,38 +14,46 @@ Release: 3%{?dist}
%define cyrususer cyrus %define cyrususer cyrus
%define cyrusgroup mail %define cyrusgroup mail
# RF hardcoded-library-path in %%_prefix/lib/%%name
%define cyrexecdir %_prefix/lib/%name %define cyrexecdir %_prefix/lib/%name
Summary: A high-performance mail server with IMAP, POP3, NNTP and SIEVE support Summary: A high-performance email, contacts and calendar server
License: BSD License: BSD
URL: http://www.cyrusimap.org/ URL: http://www.cyrusimap.org/
Source0: http://www.cyrusimap.org/releases/%name-%version.tar.gz Source0: http://www.cyrusimap.org/releases/%name-%version.tar.gz
Source1: cyrus-imapd.logrotate Source1: https://github.com/cyrusimap/cassandane/archive/%cmt1.tar.gz#/cassandane-%{scmt %cmt1}.tar.gz
Source2: cyrus-imapd.imap-2.5.x-conf
Source3: cyrus-imapd.pam-config
Source7: cyrus-imapd.sysconfig
Source8: cyrus-imapd.cvt_cyrusdb_all
Source9: cyrus-imapd.magic
Source10: cyrus-imapd.cron-daily
Source11: README.rpm
Source12: cyrus-imapd.service
Source13: cyrus-imapd-init.service
Source14: cyr_systemd_helper
# There is a conflict between the sched_param structure defined in the source Source11: cyrus-imapd.logrotate
# and one defined by a system header. Fixed upstream as Source13: cyrus-imapd.pam-config
# https://github.com/cyrusimap/cyrus-imapd/commit/a288b4fea15f843e309dcdf7039a1ebcc3d19616 Source17: cyrus-imapd.sysconfig
# but was not fixed on the 2.5 branch Source18: cyrus-imapd.cvt_cyrusdb_all
Patch0: fix-sched_param.patch Source19: cyrus-imapd.magic
Source20: cyrus-imapd.cron-daily
Source21: README.rpm
Source22: cyrus-imapd.service
Source23: cyrus-imapd-init.service
Source24: cyr_systemd_helper
BuildRequires: autoconf automake bison flex groff libtool BuildRequires: autoconf automake bison flex groff libtool
BuildRequires: pkgconfig systemd tcp_wrappers transfig BuildRequires: pkgconfig systemd tcp_wrappers transfig
BuildRequires: perl-devel perl-generators perl(ExtUtils::MakeMaker) perl(Pod::Html) BuildRequires: perl-devel perl-generators perl(ExtUtils::MakeMaker) perl(Pod::Html)
BuildRequires: cyrus-sasl-devel glib2-devel jansson-devel krb5-devel BuildRequires: clamav-devel CUnit-devel cyrus-sasl-devel glib2-devel
BuildRequires: libical-devel libxml2-devel net-snmp-devel openldap-devel
BuildRequires: openssl-devel sqlite-devel BuildRequires: jansson-devel krb5-devel libical-devel libnghttp2-devel
BuildRequires: libxml2-devel mariadb-devel net-snmp-devel openldap-devel
BuildRequires: openssl-devel postgresql-devel shapelib-devel sqlite-devel
BuildRequires: xapian-core-devel
# Perl modules required for cassandane to function
BuildRequires: perl(AnyEvent) perl(BSD::Resource) perl(Clone)
BuildRequires: perl(File::chdir) perl(IO::Socket::INET6) perl(Mail::IMAPTalk)
BuildRequires: perl(Config::IniFiles) perl(Mail::JMAPTalk) perl(Math::Int64)
BuildRequires: perl(Net::CalDAVTalk) perl(Net::CardDAVTalk)
BuildRequires: perl(News::NNTPClient) perl(String::CRC32) perl(Sys::Syslog)
BuildRequires: perl(Test::Unit::TestRunner) perl(Time::HiRes) perl(XML::DOM)
BuildRequires: perl(XML::Generator)
Requires(pre): shadow-utils Requires(pre): shadow-utils
Requires(post): /sbin/ldconfig Requires(post): /sbin/ldconfig
@ -56,32 +68,27 @@ Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%{?perl_default_filter} %{?perl_default_filter}
%description %description
The cyrus-imapd package contains the core of the Cyrus IMAP server. The Cyrus IMAP (Internet Message Access Protocol) server provides access to
It is a scaleable enterprise mail system designed for use from personal mail, system-wide bulletin boards, news-feeds, calendar and contacts
small to large enterprise environments using standards-based through the IMAP, JMAP, NNTP, CalDAV and CardDAV protocols. The Cyrus IMAP
internet mail technologies. server is a scalable enterprise groupware system designed for use from small to
large enterprise environments using technologies based on well-established Open
Standards.
A full Cyrus IMAP implementation allows a seamless mail and bulletin A full Cyrus IMAP implementation allows a seamless mail and bulletin board
board environment to be set up across multiple servers. It differs from environment to be set up across one or more nodes. It differs from other IMAP
other IMAP server implementations in that it is run on "sealed" server implementations in that it is run on sealed nodes, where users are not
servers, where users are not normally permitted to log in and have no normally permitted to log in. The mailbox database is stored in parts of the
system account on the server. The mailbox database is stored in parts filesystem that are private to the Cyrus IMAP system. All user access to mail
of the file system that are private to the Cyrus IMAP server. All user is through software using the IMAP, IMAPS, JMAP, POP3, POP3S, KPOP, CalDAV
access to mail is through software using the IMAP, POP3 or KPOP and/or CardDAV protocols.
protocols. It also includes support for virtual domains, NNTP,
mailbox annotations, and much more. The private mailbox database design The private mailbox database design gives the Cyrus IMAP server large
gives the server large advantages in efficiency, scalability and advantages in efficiency, scalability, and administratability. Multiple
administratability. Multiple concurrent read/write connections to the concurrent read/write connections to the same mailbox are permitted. The server
same mailbox are permitted. The server supports access control lists on supports access control lists on mailboxes and storage quotas on mailbox
mailboxes and storage quotas on mailbox hierarchies. hierarchies.
The Cyrus IMAP server supports the IMAP4rev1 protocol described
in RFC 3501. IMAP4rev1 has been approved as a proposed standard.
It supports any authentication mechanism available from the SASL
library, imaps/pop3s/nntps (IMAP/POP3/NNTP encrypted using SSL and
TLSv1) can be used for security. The server supports single instance
store where possible when an email message is addressed to multiple
recipients, SIEVE provides server side email filtering.
%package vzic %package vzic
Summary: Utilities to convert timezone database files Summary: Utilities to convert timezone database files
@ -123,45 +130,69 @@ one running the server.
%prep %prep
%autosetup -p1 %autosetup -p1
install -m 644 %SOURCE11 doc/ tar xf %SOURCE1
ln -s cassandane-%cmt1 cassandane
install -m 644 %SOURCE21 doc/
# Modify the documentation to change master --> cyrus-master # Modify the documentation to change master --> cyrus-master
sed -i -e "s/master(8)/cyrus-master(8)/" man/*5 man/*8 lib/imapoptions #sed -i -e "s/master(8)/cyrus-master(8)/" man/*5 man/*8 lib/imapoptions
sed -i -e 's|\([^-]\)master|\1cyrus-master|g' \ #sed -i -e 's|\([^-]\)master|\1cyrus-master|g' \
-e 's|^master|cyrus-master|g' \ # -e 's|^master|cyrus-master|g' \
-e 's|Master|Cyrus-master|g' \ # -e 's|Master|Cyrus-master|g' \
-e 's|MASTER|CYRUS-MASTER|g' \ # -e 's|MASTER|CYRUS-MASTER|g' \
man/master.8 doc/man.html # man/master.8 doc/man.html
# modify lmtp socket path in .conf files # modify lmtp socket path in .conf files
sed -i -e "s@/var/imap/@/var/lib/imap/@" master/conf/*.conf doc/cyrusv2.mc #sed -i -e "s@/var/imap/@/var/lib/imap/@" master/conf/*.conf doc/cyrusv2.mc
# enable idled in .conf files to prevent error messages # enable idled in .conf files to prevent error messages
sed -i -e "s/# idled/ idled/" master/conf/*.conf #sed -i -e "s/# idled/ idled/" master/conf/*.conf
# Fix permissions on perl programs # Fix permissions on perl programs
find . -type f -name "*.pl" -exec chmod 755 {} \; #find . -type f -name "*.pl" -exec chmod 755 {} \;
%build %build
# This is the test suite, which doesn't build much but does verify its dependencies.
# If this is done after the configure call, the one thing it does build fails
# because the configure macro puts some hardening flags into the environment.
pushd cassandane
make
popd
# Options not enabled:
# --enable-objectstore
# It's experimental, and it doesn't appear that either openio or caringo are
# in Fedora.
# XXX --with-cyrus-prefix and --with-service-path went away.
autoreconf -vi autoreconf -vi
%{configure} \ %{configure} \
--with-bdb-incdir=%_includedir/libdb \ --disable-silent-rules \
--with-cyrus-prefix=%cyrexecdir \ \
--with-extraident="Fedora-RPM-%version-%release" \ --with-extraident="Fedora-RPM-%version-%release" \
--with-krbimpl=mit \ --with-krbimpl=mit \
--with-ldap=/usr \ --with-ldap=/usr \
--with-mysql \
--with-pgsql \
--with-perl=%__perl \ --with-perl=%__perl \
--with-service-path=%cyrexecdir \
--with-snmp \ --with-snmp \
--with-syslogfacility=MAIL \ --with-syslogfacility=MAIL \
\
--enable-autocreate \ --enable-autocreate \
--enable-backup \
--enable-calalarmd \
--enable-http \ --enable-http \
--enable-idled \ --enable-idled \
--enable-jmap \
--enable-murder \ --enable-murder \
--enable-netscapehack \
--enable-nntp \ --enable-nntp \
--enable-replication \ --enable-replication \
--enable-unit-tests \ --enable-unit-tests \
--enable-xapian \
#
# The configure script will set up the Perl makefiles, but not in the way # The configure script will set up the Perl makefiles, but not in the way
# Fedora needs them. So regenerate them manually. # Fedora needs them. So regenerate them manually.
@ -182,6 +213,7 @@ make -C tools/vzic
#make -C man -f Makefile.dist #make -C man -f Makefile.dist
#make -C doc -f Makefile.dist #make -C doc -f Makefile.dist
%install %install
make install DESTDIR=%buildroot make install DESTDIR=%buildroot
@ -195,8 +227,10 @@ install -d \
%buildroot/var/lib/imap/{user,quota,proc,log,msg,socket,db,sieve,sync,md5,rpm,backup,meta} \ %buildroot/var/lib/imap/{user,quota,proc,log,msg,socket,db,sieve,sync,md5,rpm,backup,meta} \
%buildroot/var/lib/imap/ptclient \ %buildroot/var/lib/imap/ptclient \
%buildroot/%_datadir/%name/rpm \ %buildroot/%_datadir/%name/rpm \
%buildroot/%cyrexecdir \
%buildroot/etc/pki/%name %buildroot/etc/pki/%name
# Some tools which aren't installed by the makefile which we want # Some tools which aren't installed by the makefile which we want
install -m 755 notifyd/notifytest %buildroot%_bindir/ install -m 755 notifyd/notifytest %buildroot%_bindir/
install -m 755 perl/imap/cyradm %buildroot%_bindir/ install -m 755 perl/imap/cyradm %buildroot%_bindir/
@ -211,24 +245,37 @@ for i in vzic vzic-test.pl vzic-merge.pl vzic-dump.pl; do
done done
# Install additional files # Install additional files
install -m 755 %{SOURCE8} %{buildroot}%{cyrexecdir}/cvt_cyrusdb_all install -m 755 %SOURCE18 %buildroot/%cyrexecdir/cvt_cyrusdb_all
install -m 644 %{SOURCE9} %{buildroot}%{_datadir}/%{name}/rpm/magic install -m 644 %SOURCE19 %buildroot/%_datadir/%name/rpm/magic
install -p -m 644 master/conf/prefork.conf %{buildroot}/etc/cyrus.conf
install -p -m 644 %{SOURCE2} %{buildroot}/etc/imapd.conf
install -p -m 644 %{SOURCE3} %{buildroot}/etc/pam.d/pop
install -p -m 644 %{SOURCE3} %{buildroot}/etc/pam.d/imap
install -p -m 644 %{SOURCE3} %{buildroot}/etc/pam.d/sieve
install -p -m 644 %{SOURCE3} %{buildroot}/etc/pam.d/mupdate
install -p -m 644 %{SOURCE3} %{buildroot}/etc/pam.d/lmtp
install -p -m 644 %{SOURCE3} %{buildroot}/etc/pam.d/nntp
install -p -m 644 %{SOURCE3} %{buildroot}/etc/pam.d/csync
install -p -m 644 %{SOURCE1} %{buildroot}/etc/logrotate.d/%{name}
install -p -m 644 %{SOURCE7} %{buildroot}/etc/sysconfig/%{name}
install -p -m 755 %{SOURCE10} %{buildroot}/etc/cron.daily/%{name}
install -p -D -m 644 %{SOURCE12} %{buildroot}%{_unitdir}/cyrus-imapd.service
install -p -D -m 644 %{SOURCE13} %{buildroot}%{_unitdir}/cyrus-imapd-init.service install -p -m 644 %SOURCE13 %buildroot/etc/pam.d/pop
install -p -D -m 755 %{SOURCE14} %{buildroot}%{cyrexecdir}/cyr_systemd_helper install -p -m 644 %SOURCE13 %buildroot/etc/pam.d/imap
install -p -m 644 %SOURCE13 %buildroot/etc/pam.d/sieve
install -p -m 644 %SOURCE13 %buildroot/etc/pam.d/mupdate
install -p -m 644 %SOURCE13 %buildroot/etc/pam.d/lmtp
install -p -m 644 %SOURCE13 %buildroot/etc/pam.d/nntp
install -p -m 644 %SOURCE13 %buildroot/etc/pam.d/csync
install -p -m 644 %SOURCE11 %buildroot/etc/logrotate.d/%name
install -p -m 644 %SOURCE17 %buildroot/etc/sysconfig/%name
install -p -m 755 %SOURCE20 %buildroot/etc/cron.daily/%name
install -p -m 644 doc/examples/cyrus_conf/prefork.conf %buildroot/etc/cyrus.conf
install -p -m 644 doc/examples/imapd_conf/normal.conf %buildroot/etc/imapd.conf
cat >> %buildroot/etc/imapd.conf <<END
# These three files will automatically be generated by the systemd unit when
# the service starts for the first time.
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd-key.pem
tls_ca_file: /etc/pki/cyrus-imapd/cyrus-imapd-ca.pem
END
install -p -D -m 644 %SOURCE22 %buildroot/%_unitdir/cyrus-imapd.service
install -p -D -m 644 %SOURCE23 %buildroot/%_unitdir/cyrus-imapd-init.service
install -p -D -m 755 %SOURCE24 %buildroot/%cyrexecdir/cyr_systemd_helper
# Cleanup of doc dir # Cleanup of doc dir
find doc perl -name CVS -type d -prune -exec rm -rf {} \; find doc perl -name CVS -type d -prune -exec rm -rf {} \;
@ -239,11 +286,11 @@ rm -f doc/text/Makefile
rm -rf doc/man rm -rf doc/man
# fix permissions on perl .so files # fix permissions on perl .so files
find %{buildroot}%{_libdir}/perl5/ -type f -name "*.so" -exec chmod 755 {} \; find %buildroot/%_libdir/perl5/ -type f -name "*.so" -exec chmod 755 {} \;
# fix conflicts with uw-imap # fix conflicts with uw-imap
mv %{buildroot}%{_mandir}/man8/imapd.8 %{buildroot}%{_mandir}/man8/imapd.8cyrus mv %buildroot/%_mandir/man8/imapd.8 %buildroot/%_mandir/man8/imapd.8cyrus
mv %{buildroot}%{_mandir}/man8/pop3d.8 %{buildroot}%{_mandir}/man8/pop3d.8cyrus mv %buildroot/%_mandir/man8/pop3d.8 %buildroot/%_mandir/man8/pop3d.8cyrus
# Install templates # Install templates
install -m 755 -d doc/conf install -m 755 -d doc/conf
@ -367,6 +414,10 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v
%{_mandir}/man1/* %{_mandir}/man1/*
%changelog %changelog
* Thu Apr 20 2017 Jason L Tibbitts III <tibbs@math.uh.edu> - 3.0.1-1
- Initial attempt at importing 3.0. Many new dependencies.
- Use a stock sample imapd.conf file instead of a Fedora-provided one.
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.5.10-3 * Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.5.10-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild