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
|
||||
Version: 2.5.10
|
||||
Release: 3%{?dist}
|
||||
Version: 3.0.1
|
||||
Release: 1%{?dist}
|
||||
|
||||
%define ssl_pem_file /etc/pki/%name/%name.pem
|
||||
|
||||
@ -10,38 +14,46 @@ Release: 3%{?dist}
|
||||
|
||||
%define cyrususer cyrus
|
||||
%define cyrusgroup mail
|
||||
# RF hardcoded-library-path in %%_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
|
||||
URL: http://www.cyrusimap.org/
|
||||
Source0: http://www.cyrusimap.org/releases/%name-%version.tar.gz
|
||||
Source1: cyrus-imapd.logrotate
|
||||
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
|
||||
Source1: https://github.com/cyrusimap/cassandane/archive/%cmt1.tar.gz#/cassandane-%{scmt %cmt1}.tar.gz
|
||||
|
||||
# There is a conflict between the sched_param structure defined in the source
|
||||
# and one defined by a system header. Fixed upstream as
|
||||
# https://github.com/cyrusimap/cyrus-imapd/commit/a288b4fea15f843e309dcdf7039a1ebcc3d19616
|
||||
# but was not fixed on the 2.5 branch
|
||||
Patch0: fix-sched_param.patch
|
||||
Source11: cyrus-imapd.logrotate
|
||||
Source13: cyrus-imapd.pam-config
|
||||
Source17: cyrus-imapd.sysconfig
|
||||
Source18: cyrus-imapd.cvt_cyrusdb_all
|
||||
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: pkgconfig systemd tcp_wrappers transfig
|
||||
|
||||
BuildRequires: perl-devel perl-generators perl(ExtUtils::MakeMaker) perl(Pod::Html)
|
||||
|
||||
BuildRequires: cyrus-sasl-devel glib2-devel jansson-devel krb5-devel
|
||||
BuildRequires: libical-devel libxml2-devel net-snmp-devel openldap-devel
|
||||
BuildRequires: openssl-devel sqlite-devel
|
||||
BuildRequires: clamav-devel CUnit-devel cyrus-sasl-devel glib2-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(post): /sbin/ldconfig
|
||||
@ -56,32 +68,27 @@ Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
|
||||
%{?perl_default_filter}
|
||||
|
||||
%description
|
||||
The cyrus-imapd package contains the core of the Cyrus IMAP server.
|
||||
It is a scaleable enterprise mail system designed for use from
|
||||
small to large enterprise environments using standards-based
|
||||
internet mail technologies.
|
||||
The Cyrus IMAP (Internet Message Access Protocol) server provides access to
|
||||
personal mail, system-wide bulletin boards, news-feeds, calendar and contacts
|
||||
through the IMAP, JMAP, NNTP, CalDAV and CardDAV protocols. The Cyrus IMAP
|
||||
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
|
||||
board environment to be set up across multiple servers. It differs from
|
||||
other IMAP server implementations in that it is run on "sealed"
|
||||
servers, where users are not normally permitted to log in and have no
|
||||
system account on the server. The mailbox database is stored in parts
|
||||
of the file system that are private to the Cyrus IMAP server. All user
|
||||
access to mail is through software using the IMAP, POP3 or KPOP
|
||||
protocols. It also includes support for virtual domains, NNTP,
|
||||
mailbox annotations, and much more. The private mailbox database design
|
||||
gives the server large advantages in efficiency, scalability and
|
||||
administratability. Multiple concurrent read/write connections to the
|
||||
same mailbox are permitted. The server supports access control lists on
|
||||
mailboxes and storage quotas on mailbox hierarchies.
|
||||
A full Cyrus IMAP implementation allows a seamless mail and bulletin board
|
||||
environment to be set up across one or more nodes. It differs from other IMAP
|
||||
server implementations in that it is run on sealed nodes, where users are not
|
||||
normally permitted to log in. The mailbox database is stored in parts of the
|
||||
filesystem that are private to the Cyrus IMAP system. All user access to mail
|
||||
is through software using the IMAP, IMAPS, JMAP, POP3, POP3S, KPOP, CalDAV
|
||||
and/or CardDAV protocols.
|
||||
|
||||
The private mailbox database design gives the Cyrus IMAP server large
|
||||
advantages in efficiency, scalability, and administratability. Multiple
|
||||
concurrent read/write connections to the same mailbox are permitted. The server
|
||||
supports access control lists on mailboxes and storage quotas on mailbox
|
||||
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
|
||||
Summary: Utilities to convert timezone database files
|
||||
@ -123,45 +130,69 @@ one running the server.
|
||||
|
||||
%prep
|
||||
%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
|
||||
sed -i -e "s/master(8)/cyrus-master(8)/" man/*5 man/*8 lib/imapoptions
|
||||
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' \
|
||||
man/master.8 doc/man.html
|
||||
#sed -i -e "s/master(8)/cyrus-master(8)/" man/*5 man/*8 lib/imapoptions
|
||||
#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' \
|
||||
# man/master.8 doc/man.html
|
||||
|
||||
# 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
|
||||
sed -i -e "s/# idled/ idled/" master/conf/*.conf
|
||||
#sed -i -e "s/# idled/ idled/" master/conf/*.conf
|
||||
|
||||
# Fix permissions on perl programs
|
||||
find . -type f -name "*.pl" -exec chmod 755 {} \;
|
||||
#find . -type f -name "*.pl" -exec chmod 755 {} \;
|
||||
|
||||
%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
|
||||
%{configure} \
|
||||
--with-bdb-incdir=%_includedir/libdb \
|
||||
--with-cyrus-prefix=%cyrexecdir \
|
||||
--disable-silent-rules \
|
||||
\
|
||||
--with-extraident="Fedora-RPM-%version-%release" \
|
||||
--with-krbimpl=mit \
|
||||
--with-ldap=/usr \
|
||||
--with-mysql \
|
||||
--with-pgsql \
|
||||
--with-perl=%__perl \
|
||||
--with-service-path=%cyrexecdir \
|
||||
--with-snmp \
|
||||
--with-syslogfacility=MAIL \
|
||||
\
|
||||
--enable-autocreate \
|
||||
--enable-backup \
|
||||
--enable-calalarmd \
|
||||
--enable-http \
|
||||
--enable-idled \
|
||||
--enable-jmap \
|
||||
--enable-murder \
|
||||
--enable-netscapehack \
|
||||
--enable-nntp \
|
||||
--enable-replication \
|
||||
--enable-unit-tests \
|
||||
--enable-xapian \
|
||||
#
|
||||
|
||||
# The configure script will set up the Perl makefiles, but not in the way
|
||||
# Fedora needs them. So regenerate them manually.
|
||||
@ -182,6 +213,7 @@ make -C tools/vzic
|
||||
#make -C man -f Makefile.dist
|
||||
#make -C doc -f Makefile.dist
|
||||
|
||||
|
||||
%install
|
||||
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/ptclient \
|
||||
%buildroot/%_datadir/%name/rpm \
|
||||
%buildroot/%cyrexecdir \
|
||||
%buildroot/etc/pki/%name
|
||||
|
||||
|
||||
# Some tools which aren't installed by the makefile which we want
|
||||
install -m 755 notifyd/notifytest %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
|
||||
|
||||
# Install additional files
|
||||
install -m 755 %{SOURCE8} %{buildroot}%{cyrexecdir}/cvt_cyrusdb_all
|
||||
install -m 644 %{SOURCE9} %{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 -m 755 %SOURCE18 %buildroot/%cyrexecdir/cvt_cyrusdb_all
|
||||
install -m 644 %SOURCE19 %buildroot/%_datadir/%name/rpm/magic
|
||||
|
||||
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 -D -m 755 %{SOURCE14} %{buildroot}%{cyrexecdir}/cyr_systemd_helper
|
||||
|
||||
install -p -m 644 %SOURCE13 %buildroot/etc/pam.d/pop
|
||||
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
|
||||
find doc perl -name CVS -type d -prune -exec rm -rf {} \;
|
||||
@ -239,11 +286,11 @@ rm -f doc/text/Makefile
|
||||
rm -rf doc/man
|
||||
|
||||
# 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
|
||||
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/imapd.8 %buildroot/%_mandir/man8/imapd.8cyrus
|
||||
mv %buildroot/%_mandir/man8/pop3d.8 %buildroot/%_mandir/man8/pop3d.8cyrus
|
||||
|
||||
# Install templates
|
||||
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/*
|
||||
|
||||
%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
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user