# see also http://thread.gmane.org/gmane.linux.pld.devel.english/2509/focus=2509
# - fix manpages:
# [set $man.base.url.for.relative.links]/maildirquota.html
+# - Review -toplevel.patch
#
# Conditional build:
%bcond_with toplevel # Allow toplevel folders. More info: http://www.ricky-chan.co.uk/courier/
+%bcond_without fam # FAM for enhanced IMAP IDLE and locking
+%bcond_with gnutls # GnuTLS instead of OpenSSL
+%bcond_with socks # (Courier) Socks support
Summary: Courier-IMAP server
Summary(pl.UTF-8): Serwer Courier-IMAP
Name: courier-imap
-Version: 4.10.0
+Version: 5.2.2
Release: 1
-License: GPL
+License: GPL v3 with OpenSSL exception
Group: Networking/Daemons
-Source0: http://downloads.sourceforge.net/courier/%{name}-%{version}.tar.bz2
-# Source0-md5: 2f95c99b9ad1380b9f3ac733ccd741a2
+Source0: https://downloads.sourceforge.net/courier/%{name}-%{version}.tar.bz2
+# Source0-md5: 7f210160a19ec973ea39d9ef32e25053
Source1: %{name}.init
Source2: %{name}-ssl.init
Source3: %{name}-pop3.init
Patch2: %{name}-maildir.patch
Patch3: %{name}-toplevel.patch
Patch4: %{name}-drop-makedat.patch
+Patch5: %{name}-disable-courierlogger-check.patch
URL: http://www.courier-mta.org/imap/
-BuildRequires: autoconf >= 2.54
+BuildRequires: autoconf >= 2.59
BuildRequires: automake
-BuildRequires: courier-authlib-devel >= 0.61
+BuildRequires: courier-authlib-devel >= 0.71.0
+%{?with_socks:BuildRequires: courier-sox-devel}
+BuildRequires: courier-unicode-devel >= 2.1
BuildRequires: db-devel
-BuildRequires: gdbm-devel
-BuildRequires: gnet-devel
-BuildRequires: libidn-devel
+BuildRequires: libidn2-devel >= 0.0.0
+%{?with_fam:BuildRequires: gamin-devel}
+%{?with_gnutls:BuildRequires: gnutls-devel >= 3.0}
+%{?with_gnutls:BuildRequires: libgcrypt-devel}
+%{?with_gnutls:BuildRequires: libgpg-error-devel}
BuildRequires: libstdc++-devel
-BuildRequires: libtool
-BuildRequires: openssl-devel >= 0.9.7d
+BuildRequires: libtool >= 2:2
+%{!?with_gnutls:BuildRequires: openssl-devel >= 0.9.7d}
+BuildRequires: perl-base
BuildRequires: pkgconfig
BuildRequires: procps
BuildRequires: rpmbuild(macros) >= 1.268
Requires(post,preun): /sbin/chkconfig
Requires: %{name}-common = %{version}-%{release}
Requires: /sbin/chkconfig
+Requires: courier-unicode >= 2.1
Requires: pam >= 0.79.0
Requires: rc-scripts
Provides: imapdaemon
Conflicts: imap
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _libexecdir /usr/%{_lib}/courier-imap
%define _sysconfdir /etc/courier-imap
%define _certsdir %{_sysconfdir}/certs
%define _localstatedir /var/spool/courier-imap
Group: Networking/Daemons
Requires(post,preun): /sbin/chkconfig
Requires: /sbin/chkconfig
-Requires: courier-authlib
+# even if using OpenSSL libraries, Courier uses certtool from GnuTLS
+Requires: /usr/bin/certtool
+Requires: courier-authlib >= 0.71.0
Requires: procps
Requires: rc-scripts
+Conflicts: maildrop < 3
%description common
Common files for imap and pop3 daemons.
%patch3 -p1
%endif
%patch4 -p1
+%patch5 -p1
-install %{SOURCE1} courier-imap.in
-install %{SOURCE2} courier-imap-ssl.in
-install %{SOURCE3} courier-pop3.in
-install %{SOURCE4} courier-pop3-ssl.in
-rm -f makedat/configure.in
+cp -p %{SOURCE1} courier-imap.in
+cp -p %{SOURCE2} courier-imap-ssl.in
+cp -p %{SOURCE3} courier-pop3.in
+cp -p %{SOURCE4} courier-pop3-ssl.in
%build
+%{__libtoolize}
# Change Makefile.am files and force recreate Makefile.in's.
-find -type f -a '(' -name configure.in -o -name configure.ac ')' | while read FILE; do
+find -type f -a -name configure.ac | while read FILE; do
cd "$(dirname "$FILE")"
- if [ -f Makefile.am ]; then
- %{__sed} -i -e '/_[L]DFLAGS=-static/d' Makefile.am
- fi
+ %{__sed} -i -e '/_[L]DFLAGS=-static/d' Makefile.am
- %{__libtoolize}
%{__aclocal}
%{__autoconf}
- if grep -q AC_CONFIG_HEADER configure.in; then
+ if grep -q AC_CONFIG_HEADER configure.ac; then
%{__autoheader}
fi
%{__automake}
done
%configure \
- --with-db=db \
+ CERTOOL=/usr/bin/certtool \
+%if %{without fam}
+ ac_cv_header_fam_h=no \
+ ac_cv_lib_fam_FAMOpen=no \
+%endif
+ --libexecdir=%{_libexecdir}/courier-imap \
--enable-unicode \
--with-authchangepwdir=/var/tmp \
--with-certsdir=%{_certsdir} \
- --with-mailer=/usr/lib/sendmail
+ --with-db=db \
+ %{?with_gnutls:--with-gnutls} \
+ --with-mailer=/usr/lib/sendmail \
+ --with-notice=unicode \
+ %{!?with_socks:--without-socks}
%{__make} -j1
install -p courier-imap-ssl $RPM_BUILD_ROOT/etc/rc.d/init.d/courier-imap-ssl
install -p courier-pop3 $RPM_BUILD_ROOT/etc/rc.d/init.d/courier-pop3
install -p courier-pop3-ssl $RPM_BUILD_ROOT/etc/rc.d/init.d/courier-pop3-ssl
-cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/imap
-cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/pop3
-
-rm -rf $RPM_BUILD_ROOT%{_sbindir}/mk*cert
-
-cp -af imap/README README.imap
-cp -af imap/ChangeLog ChangeLog
-cp -af maildir/README.maildirquota.txt README.maildirquota
+cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/imap
+cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/pop3
-mv -f $RPM_BUILD_ROOT%{_datadir}/mk*cert $RPM_BUILD_ROOT%{_sbindir}
+# install directly instead of symlinking
+%{__rm} $RPM_BUILD_ROOT%{_sbindir}/mk{dhparams,imapdcert,pop3dcert}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/mk{dhparams,imapdcert,pop3dcert} $RPM_BUILD_ROOT%{_sbindir}
-cp -a tcpd/couriertls.1 $RPM_BUILD_ROOT%{_mandir}/man8/couriertls.8
-cp -a imap/courierpop3d.8 $RPM_BUILD_ROOT%{_mandir}/man8/courierpop3d.8
+# missing from make install
+cp -p libs/imap/courierpop3d.8 $RPM_BUILD_ROOT%{_mandir}/man8
+cp -p libs/tcpd/couriertls.1 $RPM_BUILD_ROOT%{_mandir}/man1
touch $RPM_BUILD_ROOT/etc/security/blacklist.{pop3,imap}
touch $RPM_BUILD_ROOT%{_sysconfdir}/shared/index
sed -i 's/^IMAPDSTART.*/IMAPDSTART=YES/' $RPM_BUILD_ROOT%{_sysconfdir}/imapd
# remove unpackaged files
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/*.dist
+%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/*.dist
%clean
rm -rf $RPM_BUILD_ROOT
fi
-%triggerin -- %{name} < 3.0.5
+%triggerin -- %{name} < 3.0.6
+# 3.0.5
if [ -f /var/lib/openssl/certs/imapd.pem ]; then
echo
echo imapd.pem has been moved automatically to %{_certsdir}
fi
%service -q courier-imap restart
-%triggerin -- %{name} < 3.0.6
+# 3.0.6
. %{_sysconfdir}/imapd-ssl
if [ $TLS_CACHEFILE = "/var/couriersslcache" ]; then
sed -i s/^TLS_CACHEFILE=.*/"TLS_CACHEFILE=\/var\/spool\/courier-imap\/couriersslcache"/ %{_sysconfdir}/imapd-ssl
fi
echo
echo Changes to version 3.0.5 :
-echo - config files has been splited and moved to %{_sysconfdir}
+echo - config files has been split and moved to %{_sysconfdir}
echo - certificates directory has changed to %{_certsdir}
echo
+%triggerpostun common -- %{name}-common < 5
+%banner -e courier-imap-unicode <<EOF
+WARNING: you have to convert any existing maildirs to Unicode naming scheme.
+See INSTALL file for details.
+EOF
+
%post pop3
/sbin/chkconfig --add courier-pop3
/sbin/chkconfig --add courier-pop3-ssl
/sbin/chkconfig --del courier-pop3-ssl
fi
-%triggerin -n %{name}-pop3 -- %{name}-pop3 < 3.0.5
+%triggerin -n %{name}-pop3 -- %{name}-pop3 < 3.0.6
+# 3.0.5
if [ -f /var/lib/openssl/certs/pop3d.pem ]; then
echo
echo pop3d.pem has been moved automatically to %{_certsdir}
fi
%service courier-pop3 restart
-%triggerin -n %{name}-pop3 -- %{name}-pop3 < 3.0.6
+# 3.0.6
. %{_sysconfdir}/pop3d-ssl
if [ $TLS_CACHEFILE = "/var/couriersslcache" ]; then
sed -i s/^TLS_CACHEFILE=.*/"TLS_CACHEFILE=\/var\/spool\/courier-imap\/couriersslcache"/ %{_sysconfdir}/pop3d-ssl
%files
%defattr(644,root,root,755)
-%doc maildir/README.sharedfolders.txt imap/README.proxy tcpd/README.couriertls
+%doc libs/maildir/README.sharedfolders.txt libs/imap/README.proxy libs/tcpd/README.couriertls
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/imap
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.imap
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/imapd
%attr(755,root,root) %{_bindir}/imapd
%attr(755,root,root) %{_bindir}/maildiracl
%attr(755,root,root) %{_bindir}/maildirkw
+%attr(755,root,root) %{_bindir}/makeimapaccess
%attr(755,root,root) %{_sbindir}/imaplogin
%attr(755,root,root) %{_sbindir}/mkimapdcert
%attr(755,root,root) %{_sbindir}/sharedindexinstall
%attr(755,root,root) %{_sbindir}/sharedindexsplit
-%attr(755,root,root) %{_libexecdir}/imapd.rc
-%attr(755,root,root) %{_libexecdir}/imapd-ssl.rc
-%{_mandir}/man8/imapd*
+%attr(755,root,root) %{_libexecdir}/courier-imap/imapd.rc
+%attr(755,root,root) %{_libexecdir}/courier-imap/imapd-ssl.rc
%{_mandir}/man1/maildiracl.1*
%{_mandir}/man1/maildirkw.1*
+%{_mandir}/man8/imapd.8*
+%{_mandir}/man8/makeimapaccess.8*
+%{_mandir}/man8/mkimapdcert.8*
%files common
%defattr(644,root,root,755)
-%doc AUTHORS ChangeLog imap/BUGS INSTALL README*
+%doc AUTHORS COPYING INSTALL NEWS README libs/imap/{BUGS,ChangeLog} libs/maildir/README.maildirquota.txt
%attr(751,root,root) %dir %{_sysconfdir}
%attr(750,root,root) %dir %{_certsdir}
%attr(770,daemon,daemon) %dir %{_localstatedir}
-%dir %{_libexecdir}
+%dir %{_libexecdir}/courier-imap
%{_sysconfdir}/quotawarnmsg.example
%attr(755,root,root) %{_bindir}/couriertls
-%attr(755,root,root) %{_libexecdir}/couriertcpd
-%{_mandir}/man1/couriert*
-%{_mandir}/man8/couriert*
-%{_mandir}/man8/mk*
+%attr(755,root,root) %{_sbindir}/mkdhparams
+%attr(755,root,root) %{_libexecdir}/courier-imap/couriertcpd
+%{_mandir}/man1/couriertcpd.1*
+%{_mandir}/man1/couriertls.1*
+%{_mandir}/man8/mkdhparams.8*
%files deliverquota
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/deliverquota
-%{_mandir}/man8/deliverquota*
+%{_mandir}/man8/deliverquota.8*
%files maildirmake
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/maildirmake
-%{_mandir}/man1/maildirmake*
+%{_mandir}/man1/maildirmake.1*
%files pop3
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/pop3d
%attr(755,root,root) %{_sbindir}/mkpop3dcert
%attr(755,root,root) %{_sbindir}/pop3login
-%attr(755,root,root) %{_libexecdir}/pop3d.rc
-%attr(755,root,root) %{_libexecdir}/pop3d-ssl.rc
-%{_mandir}/man8/courierpop*
+%attr(755,root,root) %{_libexecdir}/courier-imap/pop3d.rc
+%attr(755,root,root) %{_libexecdir}/courier-imap/pop3d-ssl.rc
+%{_mandir}/man8/courierpop3d.8*
+%{_mandir}/man8/mkpop3dcert.8*