%bcond_without ldap # without LDAP support
%bcond_without mysql # without MySQL support
%bcond_without pgsql # without PostgreSQL support
+#
Summary: Courier-IMAP server
Summary(pl): Serwer Courier-IMAP
Name: courier-imap
-Version: 3.0.3
-Release: 4
+Version: 3.0.5
+Release: 1
License: GPL
Group: Networking/Daemons
Source0: http://dl.sourceforge.net/courier/%{name}-%{version}.tar.bz2
-# Source0-md5: 6a882a12b5d94ab0b2b22f9ef56a9b9f
+# Source0-md5: 8b0c79997905dc46cfe4cc13be74ceaf
Source1: %{name}.init
Source2: %{name}-pop3.init
-Source3: %{name}-authdaemon.init
-Source4: %{name}.pamd
-Source5: %{name}-pop3.pamd
-Source6: %{name}.sysconfig
-Source7: %{name}-pop3.sysconfig
-Source8: %{name}-authdaemon.sysconfig
+Source3: %{name}.pamd
+Source4: %{name}-pop3.pamd
+Patch0: %{name}-dirs.patch
+Patch1: %{name}-certsdir.patch
+Patch2: %{name}-maildir.patch
URL: http://www.inter7.com/courierimap/
BuildRequires: autoconf >= 2.54
BuildRequires: automake
Conflicts: imap
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _libexecdir /usr/lib/courier-imap
+%define _libexecdir /usr/%{_lib}/courier-imap
%define _sysconfdir /etc/courier-imap
+%define _certsdir %{_sysconfdir}/certs
%description
Courier-IMAP is an IMAP server for Maildir mailboxes.
Courier-IMAP jest serwerem IMAP dla skrzynek pocztowych Maildir.
%package common
-Summary: Common files for imap and pop daemons
-Summary(pl): Pliki wspólne dla serwerów imap i pop
+Summary: Common files for imap and pop3 daemons
+Summary(pl): Pliki wspólne dla serwerów imap i pop3
Group: Networking/Daemons
PreReq: rc-scripts
Requires(post,preun): /sbin/chkconfig
Requires: procps
%description common
-Common files for imap and pop daemons.
+Common files for imap and pop3 daemons.
%description common -l pl
-Pliki wspólne dla serwerów imap i pop.
+Pliki wspólne dla serwerów imap i pop3.
%package userdb
Summary: Commands used to create the /etc/userdb.dat
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+
+install %{SOURCE1} courier-imap.in
+install %{SOURCE2} courier-pop3.in
%build
cp -f /usr/share/automake/config.sub .
cp -f /usr/share/automake/config.sub maildir
+
+%{__aclocal}
+%{__automake}
+%{__autoconf}
+
cd authlib
%{__aclocal}
%{__automake}
%{__autoconf}
+cd ../imap
+%{__aclocal}
+%{__automake}
+%{__autoconf}
cd ..
+
%configure \
+ --libexecdir=%{_libexecdir} \
--enable-unicode \
--with-authchangepwdir=/var/tmp \
--with-authdaemonvar=/var/lib/authdaemon \
+ --with-certsdir=%{_certsdir} \
%{?with_mysql:--with-mysql-libs=%{_libdir} --with-mysql-includes=%{_includedir}/mysql} \
%{!?with_mysql:--without-authmysql} \
%{?with_pgsql:--with-pgsql-libs=%{_libdir} --with-pgsql-includes=%{_includedir}/postgresql} \
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/etc/{pam.d,rc.d/init.d,security,sysconfig} \
- $RPM_BUILD_ROOT{%{_sysconfdir}/shared,/var/lib/authdaemon}
+ $RPM_BUILD_ROOT{%{_sysconfdir}/shared,%{_certsdir},/var/lib/authdaemon}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/courier-imap
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/courier-pop3
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/authdaemon
-
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/pam.d/imap
-install %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/pop3
-
-install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/courier-imap
-install %{SOURCE7} $RPM_BUILD_ROOT/etc/sysconfig/courier-pop3
-install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/authdaemon
+install courier-imap $RPM_BUILD_ROOT/etc/rc.d/init.d/courier-imap
+install courier-pop3 $RPM_BUILD_ROOT/etc/rc.d/init.d/courier-pop3
+install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/imap
+install %{SOURCE4} $RPM_BUILD_ROOT/etc/pam.d/pop3
rm -rf $RPM_BUILD_ROOT%{_mandir}/man8/{authcram,authpam,authpwd,authshadow,authuserdb,authvchkpw,pw2userdb,vchkpw2userdb,authdaemon,authdaemond,authldap,authmysql}.8 \
$RPM_BUILD_ROOT%{_sbindir}/{*db,mk*cert}
touch $RPM_BUILD_ROOT/etc/security/blacklist.{pop3,imap}
+# make config files
+./sysconftool $RPM_BUILD_ROOT%{_sysconfdir}/*.dist
+
+# set yes to start imapd and pop3d
+sed 's/^POP3DSTART.*/POP3DSTART=YES/' < $RPM_BUILD_ROOT%{_sysconfdir}/pop3d > $RPM_BUILD_ROOT%{_sysconfdir}/pop3d.new
+mv -f $RPM_BUILD_ROOT%{_sysconfdir}/pop3d.new $RPM_BUILD_ROOT%{_sysconfdir}/pop3d
+
+sed 's/^IMAPDSTART.*/IMAPDSTART=YES/' < $RPM_BUILD_ROOT%{_sysconfdir}/imapd > $RPM_BUILD_ROOT%{_sysconfdir}/imapd.new
+mv -f $RPM_BUILD_ROOT%{_sysconfdir}/imapd.new $RPM_BUILD_ROOT%{_sysconfdir}/imapd
+
# remove unpackaged files
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/*.dist
-rm -f $RPM_BUILD_ROOT%{_libexecdir}/*.rc
%clean
rm -rf $RPM_BUILD_ROOT
/sbin/chkconfig --del courier-imap
fi
-%post common
-/sbin/chkconfig --add authdaemon
+%triggerin -- %{name} < 3.0.5
+if [ -f /var/lib/openssl/certs/imapd.pem ]; then
+ echo
+ echo imapd.pem has been moved automatically to %{_certsdir}
+ echo
+ mv -f /var/lib/openssl/certs/imapd.pem %{_certsdir}
+fi
+if [ -f /etc/sysconfig/courier-imap ]; then
+ . /etc/sysconfig/courier-imap
+ for opt in `grep ^[^#] /etc/sysconfig/courier-imap |grep -v TLS_CERTFILE |grep -v COURIERTLS |cut -d= -f1`;
+ do
+ eval opt2=\$$opt
+ sed s/^$opt=.*/"$opt=\"$opt2\""/ < %{_sysconfdir}/imapd > %{_sysconfdir}/imapd.new
+ mv -f %{_sysconfdir}/imapd.new %{_sysconfdir}/imapd
+ sed s/^$opt=.*/"$opt=\"$opt2\""/ < %{_sysconfdir}/imapd-ssl > %{_sysconfdir}/imapd-ssl.new
+ mv -f %{_sysconfdir}/imapd-ssl.new %{_sysconfdir}/imapd-ssl
+ done
+ sed s/^SSLADDRESS=.*/"SSLADDRESS=$ADDRESS_SSL"/ < %{_sysconfdir}/imapd-ssl > %{_sysconfdir}/imapd-ssl.new
+ sed s/^SSLPORT=.*/"SSLPORT=$PORTS_SSL"/ < %{_sysconfdir}/imapd-ssl.new > %{_sysconfdir}/imapd-ssl
+ rm -f %{_sysconfdir}/imapd-ssl.new
+ chmod 640 %{_sysconfdir}/imapd-ssl
+ chmod 640 %{_sysconfdir}/imapd
+ echo
+ echo IMAPD config file has been rewriten to %{_sysconfdir}/imapd,imapd-ssl
+ echo please look at them
+ echo
+fi
+if [ -f /var/lock/subsys/courier-imap ]; then
+ /etc/rc.d/init.d/courier-imap restart >&2
+fi
+%triggerin -n %{name}-common -- %{name}-common < 3.0.5
+/sbin/chkconfig --del authdaemon
if [ -f /var/lock/subsys/authdaemon ]; then
- /etc/rc.d/init.d/authdaemon restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/authdaemon start\" to start courier-imap authdaemon."
+ kill `cat /var/lib/authdaemon/pid`
+ rm -f /var/lock/subsys/authdaemon
fi
-
-%preun common
-if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/authdaemon ]; then
- /etc/rc.d/init.d/authdaemon stop >&2
- fi
-
- /sbin/chkconfig --del authdaemon
+if [ -f /etc/sysconfig/authdaemon ]; then
+ . /etc/sysconfig/authdaemon
+ sed s/^version.*/version=authdaemond.$METHOD/ <%{_sysconfdir}/authdaemonrc >%{_sysconfdir}/authdaemonrc.new
+ mv -f %{_sysconfdir}/authdaemonrc.new %{_sysconfdir}/authdaemonrc
+ chmod 640 %{_sysconfdir}/authdaemonrc
fi
+echo
+echo Changes to version 3.0.5 :
+echo - config files has been splited and moved to %{_sysconfdir}
+echo - certificates directory has changed to %{_certsdir}
+echo
%post pop3
/sbin/chkconfig --add courier-pop3
else
echo "Run \"/etc/rc.d/init.d/courier-pop3 start\" to start courier-pop3 daemon."
fi
-rm -f /etc/rc.d/init.d/courier-imap-pop3
%preun pop3
if [ "$1" = "0" ]; then
/etc/rc.d/init.d/courier-pop3 stop >&2
fi
/sbin/chkconfig --del courier-pop3
- if [ -f /var/lock/subsys/courier-imap-pop3 ]; then
- /etc/rc.d/init.d/courier-imap-pop3 stop >&2
- fi
- /sbin/chkconfig --del courier-imap-pop3 >/dev/null 2>&1 || :
- rm -f /etc/rc.d/init.d/courier-imap-pop3
+fi
+
+%triggerin -n %{name}-pop3 -- %{name}-pop3 < 3.0.5
+if [ -f /var/lib/openssl/certs/pop3d.pem ]; then
+ echo
+ echo pop3d.pem has been moved automatically to %{_certsdir}
+ echo
+ mv -f /var/lib/openssl/certs/pop3d.pem %{_certsdir}
+fi
+if [ -f /etc/sysconfig/courier-pop3 ]; then
+ . /etc/sysconfig/courier-pop3
+ for opt in `grep ^[^#] /etc/sysconfig/courier-pop3 |grep -v TLS_CERTFILE |grep -v COURIERTLS |cut -d= -f1`;
+ do
+ eval opt2=\$$opt
+ sed s/^$opt=.*/"$opt=\"$opt2\""/ < %{_sysconfdir}/pop3d > %{_sysconfdir}/pop3d.new
+ mv -f %{_sysconfdir}/pop3d.new %{_sysconfdir}/pop3d
+ sed s/^$opt=.*/"$opt=\"$opt2\""/ < %{_sysconfdir}/pop3d-ssl > %{_sysconfdir}/pop3d-ssl.new
+ mv -f %{_sysconfdir}/pop3d-ssl.new %{_sysconfdir}/pop3d-ssl
+ done
+ chmod 640 %{_sysconfdir}/pop3d-ssl
+ chmod 640 %{_sysconfdir}/pop3d
+ echo
+ echo POP3D config file has been rewriten to %{_sysconfdir}/pop3d,pop3d-ssl
+ echo please look at them
+ echo
+fi
+if [ -f /var/lock/subsys/courier-pop3 ]; then
+ /etc/rc.d/init.d/courier-pop3 restart >&2
fi
%post authldap
-METHOD=plain
-. /etc/sysconfig/authdaemon
-if [ "$METHOD" = "ldap" ]; then
- if [ -f /var/lock/subsys/authdaemon ]; then
- /etc/rc.d/init.d/authdaemon restart >&2
- else
- echo "Run \"/etc/rc.d/init.d/authdaemon start\" to start courier-imap authdaemon."
- fi
+if ps -A |grep -q authdaemond.lda; then
+ %{_libexecdir}/authlib/authdaemond stop
+ %{_libexecdir}/authlib/authdaemond start
fi
-%preun authldap
-METHOD=plain
-if [ -e /etc/sysconfig/authdaemon ]; then
- . /etc/sysconfig/authdaemon
- if [ "$1" = "$0" -a "$METHOD" = "ldap" ]; then
- if [ -f /var/lock/subsys/authdaemon ]; then
- /etc/rc.d/init.d/authdaemon stop >&2
- fi
+%postun authldap
+if [ -x %{_libexecdir}/authlib/authdaemond ]; then
+ if ps -A |grep -q authdaemond.lda; then
+ %{_libexecdir}/authlib/authdaemond stop;
+ %{_libexecdir}/authlib/authdaemond start;
fi
fi
%post authmysql
-METHOD=plain
-. /etc/sysconfig/authdaemon
-if [ "$METHOD" = "mysql" ]; then
- if [ -f /var/lock/subsys/authdaemon ]; then
- /etc/rc.d/init.d/authdaemon restart >&2
- else
- echo "Run \"/etc/rc.d/init.d/authdaemon start\" to start courier-imap authdaemon."
- fi
+if ps -A |grep -q authdaemond.mys; then
+ %{_libexecdir}/authlib/authdaemond stop
+ %{_libexecdir}/authlib/authdaemond start
fi
-%preun authmysql
-METHOD=plain
-if [ -e /etc/sysconfig/authdaemon ]; then
- . /etc/sysconfig/authdaemon
- if [ "$1" = "$0" -a "$METHOD" = "mysql" ]; then
- if [ -f /var/lock/subsys/authdaemon ]; then
- /etc/rc.d/init.d/authdaemon stop >&2
- fi
+%postun authmysql
+if [ -x %{_libexecdir}/authlib/authdaemond ]; then
+ if ps -A |grep -q authdaemond.mys; then
+ %{_libexecdir}/authlib/authdaemond stop;
+ %{_libexecdir}/authlib/authdaemond start;
fi
fi
%post authpgsql
-METHOD=plain
-. /etc/sysconfig/authdaemon
-if [ "$METHOD" = "pgsql" ]; then
- if [ -f /var/lock/subsys/authdaemon ]; then
- /etc/rc.d/init.d/authdaemon restart >&2
- else
- echo "Run \"/etc/rc.d/init.d/authdaemon start\" to start courier-imap authdaemon."
- fi
+if ps -A |grep -q authdaemond.pgs; then
+ %{_libexecdir}/authlib/authdaemond stop
+ %{_libexecdir}/authlib/authdaemond start
fi
-%preun authpgsql
-METHOD=plain
-if [ -e /etc/sysconfig/authdaemon ]; then
- . /etc/sysconfig/authdaemon
- if [ "$1" = "$0" -a "$METHOD" = "pgsql" ]; then
- if [ -f /var/lock/subsys/authdaemon ]; then
- /etc/rc.d/init.d/authdaemon stop >&2
- fi
+%postun authpgsql
+if [ -x %{_libexecdir}/authlib/authdaemond ]; then
+ if ps -A |grep -q authdaemond.pgs; then
+ %{_libexecdir}/authlib/authdaemond stop;
+ %{_libexecdir}/authlib/authdaemond start;
fi
fi
%doc maildir/README.sharedfolders.html
%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/pam.d/imap
%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/security/blacklist.imap
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/courier-imap
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/imapd
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/imapd-ssl
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/imapd.cnf
%attr(754,root,root) /etc/rc.d/init.d/courier-imap
-%{_sysconfdir}/imapd.cnf
%attr(750,daemon,daemon) %dir %{_sysconfdir}/shared
%attr(755,root,root) %{_bindir}/imapd
%attr(755,root,root) %{_bindir}/maildiracl
%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*
%{_mandir}/man1/maildiracl.1*
%{_mandir}/man1/maildirkw.1*
%files common
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog imap/BUGS INSTALL README*
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/authdaemon
-%attr(754,root,root) /etc/rc.d/init.d/authdaemon
%attr(700,root,root) /var/lib/authdaemon
%attr(750,root,root) %dir %{_sysconfdir}
+%attr(750,root,root) %dir %{_certsdir}
%dir %{_libexecdir}
%dir %{_libexecdir}/authlib
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/authdaemonrc
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/authdaemonrc
%{_sysconfdir}/quotawarnmsg.example
%attr(755,root,root) %{_bindir}/couriertls
%attr(755,root,root) %{_libexecdir}/authlib/authdaemon
%{_mandir}/man8/auth[cdsuv]*
%{_mandir}/man8/authp[aw]*
%{_mandir}/man7/authlib*
+%{_mandir}/man1/courierlogger*
%{_mandir}/man1/couriert*
%{_mandir}/man8/couriert*
%{_mandir}/man8/mk*
%defattr(644,root,root,755)
%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/pam.d/pop3
%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/security/blacklist.pop3
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/courier-pop3
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/pop3d
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/pop3d-ssl
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/pop3d.cnf
%attr(754,root,root) /etc/rc.d/init.d/courier-pop3
%attr(755,root,root) %{_bindir}/pop3d
%attr(755,root,root) %{_sbindir}/mkpop3dcert
%attr(755,root,root) %{_sbindir}/pop3login
-%{_sysconfdir}/pop3d.cnf
+%attr(755,root,root) %{_libexecdir}/pop3d.rc
+%attr(755,root,root) %{_libexecdir}/pop3d-ssl.rc
%{_mandir}/man8/courierpop*
%if %{with ldap}