Initial work to update to 3.0.1.
This commit is contained in:
parent
597d10c50b
commit
f98fbbdac0
211
cyrus-imapd.spec
211
cyrus-imapd.spec
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user