# # NOTE: This package *must* be built non-root!!! # %define _localstatedir /var/run %define authdaemondir %{_localstatedir}/authdaemon.courier-imap %define courierdatadir %{_datadir}/courier %define courierlibdir %{_libdir}/courier %define couriersysconfdir %{_sysconfdir}/courier Name: courier-imap Summary: Courier-IMAP is an IMAP server that uses Maildirs Version: 1.5.3 Release: 1mdk License: GPL Group: System/Servers URL: http://www.courier-mta.org Source: %{name}-%{version}.tar.bz2 Source2: courier-imap.sh.bz2 Source3: courier-imap.csh.bz2 Source5: courier-imap-sysconftool-rpmupgrade.bz2 # (fc) 1.4.2-2mdk fix missing command in initrd Patch0: courier-imap-1.4.2-initrd.patch.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot BuildPreReq: openssl-devel Requires: chkconfig, fileutils, textutils, sh-utils, sed, common-licenses Requires: libopenssl0, gdbm BuildRequires: sed, perl # ldap subpackage: BuildRequires: libdb3.3-devel, libldap2-devel # mysql subpackage: BuildRequires: MySQL-devel # pgsql subpackage: BuildRequires: postgresql-devel # uw-imapd and courier can't be installed at the same time Conflicts: uw-imap # Some packages require »imap« Provides: imap, imap-server %description Courier-IMAP is an IMAP server for Maildir mailboxes. This package contains the standalone version of the IMAP server that's included in the Courier mail server package. This package is a standalone version for use with other mail servers. Do not install this package if you intend to install the full Courier mail server. Install the Courier package instead. ------------------------------------------------------------------------------ IMPORTANT NOTE: Be SURE to have a Maildir directory in the users home directory containing a Maildir spool, or else you cannot login! ------------------------------------------------------------------------------ %package pop Summary: Courier-IMAP POP servers Group: System/Servers Requires: %{name} = %{version}-%{release} Provides: pop, pop-server Conflicts: uw-imap-pop %description pop This package contains the POP servers of the Courier-IMAP server suite. %package ldap Summary: Courier-IMAP LDAP authentication driver. Group: System/Servers Requires: %{name} = %{version}-%{release} Requires: libdb3.3, libldap2 Conflicts: %{name}-mysql %{name}-pgsql %description ldap This package contains the necessary files to allow Courier-IMAP to authenticate from an LDAP directory. Install this package if you need the ability to use an LDAP directory for authentication. %package mysql Summary: Courier-IMAP MySQL authentication driver. Group: System/Servers Requires: %{name} = %{version}-%{release} Requires: MySQL-shared Conflicts: %{name}-ldap %{name}-pgsql %description mysql This package contains the necessary files to allow Courier-IMAP to authenticate using a MySQL database table. Install this package if you need the ability to use a MySQL database table for authentication. %package pgsql Summary: Courier-IMAP PostgreSQL authentication driver. Group: System/Servers Requires: %{name} = %{version}-%{release} Requires: postgresql-libs Conflicts: %{name}-ldap %{name}-mysql %description pgsql This package contains the necessary files to allow Courier-IMAP to authenticate using a PostgreSQL database table. Install this package if you need the ability to use a PostgreSQL database table for authentication. %package utils Summary: Courier-IMAP debugging utils. Group: System/Servers Requires: %{name} = %{version}-%{release} %description utils This package contains the necessary files to debug the authentication modules for Courier-IMAP. %prep %setup -q %patch0 -p1 -b .initrd %build %configure \ --enable-unicode \ --enable-workarounds-for-imap-client-bugs \ --disable-root-check \ --localstatedir=%{_localstatedir} \ --with-authdaemonvar=%{authdaemondir} \ --libexec=%{courierlibdir} \ --datadir=%{courierdatadir} \ --sysconfdir=%{couriersysconfdir} \ --without-authvchkpw %make # don't run that if using --enable-workarounds-for-imap-client-bugs #make check %install if [ -d %{buildroot} ]; then rm -rf %{buildroot}; fi mkdir -p %{buildroot}%{_sysconfdir}/pam.d # Copy the pam files #for file in imap pop3 ; do # cp imap/${file}d.authpam %{buildroot}%{_sysconfdir}/pam.d/${file} #done %makeinstall_std mkdir -p %{buildroot}%{_initrddir} cp -f courier-imap.sysvinit %{buildroot}%{_initrddir}/courier-imap # Fix imapd.dist perl -p -i -e 's|^IMAPDSTART=.*|IMAPDSTART=YES|' %{buildroot}%{couriersysconfdir}/imapd.dist perl -p -i -e 's|^IMAPDSSLSTART=.*|IMAPDSSLSTART=YES|' %{buildroot}%{couriersysconfdir}/imapd-ssl.dist perl -p -i -e 's|^POP3DSTART=.*|POP3DSTART=YES|' %{buildroot}%{couriersysconfdir}/pop3d.dist perl -p -i -e 's|^POP3DSSLSTART=.*|POP3DSSLSTART=YES|' %{buildroot}%{couriersysconfdir}/pop3d-ssl.dist # Red Hat /etc/profile.d scripts mkdir -p %{buildroot}%{_sysconfdir}/profile.d for file in %{SOURCE2} %{SOURCE3} ; do base="$(basename ${file} .bz2)" bzip2 -dc %{SOURCE2} | \ sed "s|_mandir_|%{_mandir}|g" | \ sed "s|_bindir_|%{_bindir}|g" | \ sed "s|_sbindir_|%{_sbindir}|g" > ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/${base} done cp imap/README README.imap cp maildir/README.maildirquota.txt README.maildirquota cp maildir/README.sharedfolders.txt README.sharedfolders # Create config files for sysconftool-rpmupgrade (see below) mkdir -p %{buildroot}%{courierdatadir} cat sysconftool > %{buildroot}%{courierdatadir}/sysconftool cat << EOF > %{buildroot}%{courierdatadir}/configlist %{couriersysconfdir}/imapd.dist %{couriersysconfdir}/imapd-ssl.dist %{couriersysconfdir}/pop3d.dist %{couriersysconfdir}/pop3d-ssl.dist EOF touch %{buildroot}%{courierdatadir}/configlist.ldap touch %{buildroot}%{courierdatadir}/configlist.mysql touch %{buildroot}%{courierdatadir}/configlist.pgsql # Backwards compatability for older versions of courier-imap. Run the # sysconftool-rpmupgrade script if you are upgrading from an older # courier-imap RPM bzip2 -cd %{SOURCE5} > %{buildroot}%{courierdatadir}/sysconftool-rpmupgrade # Check if authdaemond was installed, make sure to include authdaemon # directory touch authdaemon.files . authlib/authdaemonrc if [ "x$authdaemonvar" != "x" ]; then echo "%{couriersysconfdir}/authdaemonrc.dist" >> %{buildroot}%{courierdatadir}/configlist echo '%dir %attr(700, root, root) ' $authdaemonvar > authdaemon.files touch %{buildroot}/${authdaemonvar}/lock || exit 1 touch %{buildroot}/${authdaemonvar}/pid || exit 1 authlib/authmksock %{buildroot}/${authdaemonvar}/socket || exit 1 echo '%ghost %attr(600, root, root) ' ${authdaemonvar}/lock >> authdaemon.files echo '%ghost %attr(644, root, root) ' ${authdaemonvar}/pid >> authdaemon.files echo '%ghost %attr(777, root, root) ' ${authdaemonvar}/socket >> authdaemon.files fi (cd %{buildroot} ; find .%{courierlibdir} -type f ! -name authdaemond.ldap ! -name authdaemond.mysql ! -name authdaemond.pgsql -print ) | cut -c2- >> authdaemon.files touch authdaemon.files.ldap touch authdaemon.files.mysql touch authdaemon.files.pgsql test ! -f %{buildroot}%{courierlibdir}/authlib/authdaemond.mysql || echo %{courierlibdir}/authlib/authdaemond.mysql >>authdaemon.files.mysql test ! -f %{buildroot}%{courierlibdir}/authlib/authdaemond.pgsql || echo %{courierlibdir}/authlib/authdaemond.pgsql >>authdaemon.files.pgsql test ! -f %{buildroot}%{courierlibdir}/authlib/authdaemond.ldap || \ echo %{courierlibdir}/authlib/authdaemond.ldap >>authdaemon.files.ldap if test -f %{buildroot}%{courierlibdir}/authlib/authdaemond.mysql then echo '%config(noreplace) %{couriersysconfdir}/authmysqlrc.dist' >>%{buildroot}%{courierdatadir}/configlist.mysql echo '%attr(-, root, root) %config(noreplace) %{couriersysconfdir}/authmysqlrc.dist' >>authdaemon.files.mysql fi if test -f %{buildroot}%{courierlibdir}/authlib/authdaemond.pgsql then echo '%config(noreplace) %{couriersysconfdir}/authpgsqlrc.dist' >>%{buildroot}%{courierdatadir}/configlist.pgsql echo '%attr(-, root, root) %config(noreplace) %{couriersysconfdir}/authpgsqlrc.dist' >>authdaemon.files.pgsql fi if test -f %{buildroot}%{courierlibdir}/authlib/authdaemond.ldap then echo %{couriersysconfdir}/authldaprc.dist >> %{buildroot}%{courierdatadir}/configlist.ldap echo '%attr(-, root, root) %config(noreplace) %{couriersysconfdir}/authldaprc.dist' >> authdaemon.files.ldap if test -d /etc/openldap/schema then mkdir -p %{buildroot}/etc/openldap/schema cp authlib/authldap.schema %{buildroot}/etc/openldap/schema/courier.schema echo '%config(noreplace) %attr(444, root, root) /etc/openldap/schema/courier.schema' >>authdaemon.files.ldap fi fi mkdir -p %{buildroot}%{_localstatedir} touch %{buildroot}%{_localstatedir}/imapd.pid touch %{buildroot}%{_localstatedir}/imapd-ssl.pid touch %{buildroot}%{_localstatedir}/imapd.pid.lock touch %{buildroot}%{_localstatedir}/imapd-ssl.pid.lock touch %{buildroot}%{_localstatedir}/pop3d.pid touch %{buildroot}%{_localstatedir}/pop3d-ssl.pid touch %{buildroot}%{_localstatedir}/pop3d.pid.lock touch %{buildroot}%{_localstatedir}/pop3d-ssl.pid.lock find %{buildroot} -type f -print | sed "s@^%{buildroot}@@g" | grep -v perllocal.pod > $RPM_BUILD_DIR/tmp-filelist # some utils... install -m755 authlib/authinfo %{buildroot}%{_bindir}/courier-imap-authinfo install -m755 authlib/authtest %{buildroot}%{_bindir}/courier-imap-authtest %post %{courierdatadir}/sysconftool `cat %{courierdatadir}/configlist` >/dev/null %_post_service courier-imap %create_ghostfile %{_localstatedir}/imapd.pid root root 0600 %create_ghostfile %{_localstatedir}/imapd.pid.lock root root 0600 %create_ghostfile %{_localstatedir}/imapd-ssl.pid root root 0600 %create_ghostfile %{_localstatedir}/imapd-ssl.pid.lock root root 0600 %create_ghostfile %{_localstatedir}/authdaemon.courier-imap/lock root root 0600 %create_ghostfile %{_localstatedir}/authdaemon.courier-imap/pid root root 0644 %create_ghostfile %{_localstatedir}/authdaemon.courier-imap/socket root root 0777 echo "--------------------------------------------------------------------------------" echo "IMPORTANT NOTE: " echo "Be SURE to have a Maildir directory in the users home directory " echo "containing a Maildir spool, or else you cannot login! " echo "--------------------------------------------------------------------------------" %post pop %create_ghostfile %{_localstatedir}/pop3d.pid root root 0600 %create_ghostfile %{_localstatedir}/pop3d.pid.lock root root 0600 %create_ghostfile %{_localstatedir}/pop3d-ssl.pid root root 0600 %create_ghostfile %{_localstatedir}/pop3d-ssl.pid.lock root root 0600 %post ldap %{courierdatadir}/sysconftool `cat %{courierdatadir}/configlist.ldap` >/dev/null %post mysql %{courierdatadir}/sysconftool `cat %{courierdatadir}/configlist.mysql` >/dev/null %post pgsql %{courierdatadir}/sysconftool `cat %{courierdatadir}/configlist.pgsql` >/dev/null %preun ldap for file in %{courierlibdir}/{imap,pop3d}{,-ssl}.rc ; do [ -x ${file} ] && ${file} stop done %preun mysql for file in %{courierlibdir}/{imap,pop3d}{,-ssl}.rc ; do [ -x ${file} ] && ${file} stop done %preun pgsql for file in %{courierlibdir}/{imap,pop3d}{,-ssl}.rc ; do [ -x ${file} ] && ${file} stop done %preun %_preun_service courier-imap for file in %{courierlibdir}/{imap,pop3d}{,-ssl}.rc ; do [ -x ${file} ] && ${file} stop done %triggerpostun -- courier-imap test ! -f %{courierdatadir}/configlist || %{courierdatadir}/sysconftool-rpmupgrade `cat %{courierdatadir}/configlist` >/dev/null %triggerpostun ldap -- courier-imap test ! -f %{courierdatadir}/configlist.ldap || %{courierdatadir}/sysconftool-rpmupgrade `cat %{courierdatadir}/configlist.ldap` >/dev/null %triggerpostun mysql -- courier-imap test ! -f %{courierdatadir}/configlist.mysql || %{courierdatadir}/sysconftool-rpmupgrade `cat %{courierdatadir}/configlist.mysql` >/dev/null %clean if [ -d %{buildroot} ]; then rm -rf %{buildroot}; fi %files -f authdaemon.files %defattr(-, root, root) %doc AUTHORS imap/BUGS README README.imap README.maildirquota %doc imap/FAQ imap/FAQ.html README.sharedfolders authlib/README.* %doc INSTALL NEWS %config(noreplace) %{_sysconfdir}/pam.d/imap %dir %{couriersysconfdir} %attr(600, root, root) %config(noreplace) %{couriersysconfdir}/imapd.dist %attr(600, root, root) %config(noreplace) %{couriersysconfdir}/imapd-ssl.dist %config(noreplace) %{couriersysconfdir}/imapd.cnf %config(noreplace) %{couriersysconfdir}/quotawarnmsg.example %attr(755, root, root) %config(noreplace) %{_initrddir}/courier-imap %attr(644, root, root) %config(noreplace) %{couriersysconfdir}/authdaemonrc.dist %dir %{courierlibdir} %dir %{courierlibdir}/authlib %{_bindir}/imapd %{_bindir}/couriertls %{_bindir}/maildirmake %{_sbindir}/imaplogin %{_sbindir}/userdbpw %{_sbindir}/makeuserdb %{_sbindir}/mkimapdcert %{_sbindir}/pw2userdb %{_sbindir}/userdb %{_sbindir}/vchkpw2userdb %{_mandir}/man1/* %{_mandir}/man8/* %{courierdatadir}/pw2userdb %{courierdatadir}/makeuserdb %{courierdatadir}/mkimapdcert %{courierdatadir}/vchkpw2userdb %{courierdatadir}/userdb %attr(755, root, root) %{courierdatadir}/sysconftool %attr(755, root, root) %{courierdatadir}/sysconftool-rpmupgrade %attr(644, root, root) %{courierdatadir}/configlist %ghost %attr(600, root, root) %{_localstatedir}/imapd.pid %ghost %attr(600, root, root) %{_localstatedir}/imapd-ssl.pid %ghost %attr(600, root, root) %{_localstatedir}/imapd.pid.lock %ghost %attr(600, root, root) %{_localstatedir}/imapd-ssl.pid.lock %files pop %defattr(-, root, root) %config(noreplace) %{_sysconfdir}/pam.d/pop3 %attr(600, root, root) %config(noreplace) %{couriersysconfdir}/pop3d.dist %attr(600, root, root) %config(noreplace) %{couriersysconfdir}/pop3d-ssl.dist %config(noreplace) %{couriersysconfdir}/pop3d.cnf %{_bindir}/pop3d %{_sbindir}/pop3login %{_sbindir}/mkpop3dcert %{courierdatadir}/mkpop3dcert %ghost %attr(600, root, root) %{_localstatedir}/pop3d.pid %ghost %attr(600, root, root) %{_localstatedir}/pop3d-ssl.pid %ghost %attr(600, root, root) %{_localstatedir}/pop3d.pid.lock %ghost %attr(600, root, root) %{_localstatedir}/pop3d-ssl.pid.lock %files ldap -f authdaemon.files.ldap %defattr(-, root, root) %attr(644, root, root) %{courierdatadir}/configlist.ldap %files mysql -f authdaemon.files.mysql %defattr(-, root, root) %attr(644, root, root) %{courierdatadir}/configlist.mysql %files pgsql -f authdaemon.files.pgsql %defattr(-, root, root) %attr(644, root, root) %{courierdatadir}/configlist.pgsql %files utils %defattr(-, root, root) %attr(755, root, root) %{_bindir}/courier-imap-authinfo %attr(755, root, root) %{_bindir}/courier-imap-authtest %changelog * Wed Sep 18 2002 Oden Eriksson <oden.eriksson@kvikkjokk.net> 1.5.3-1mdk - new version * Sat Aug 3 2002 Oden Eriksson <oden.eriksson@kvikkjokk.net> 1.5.2-1mdk - new version * Sun Jul 7 2002 Oden Eriksson <oden.eriksson@kvikkjokk.net> 1.5.1-1mdk - new version * Mon Jun 24 2002 Oden Eriksson <oden.eriksson@kvikkjokk.net> 1.5.0-1mdk - new version * Sun May 26 2002 Oden Eriksson <oden.eriksson@kvikkjokk.net> 1.4.6-1mdk - new version - build with gcc 3.1 * Mon May 6 2002 Oden Eriksson <oden.eriksson@kvikkjokk.net> 1.4.5-1mdk - new version - added "--without-authvchkpw" for now * Sun Mar 24 2002 Oden Eriksson <oden.eriksson@kvikkjokk.net> 1.4.3-3mdk - added the utils sub package. - added "--disable-root-check" * Thu Mar 21 2002 Frederic Crozat <fcrozat@mandrakesoft.com> 1.4.3-2mdk - Add --enable-workarounds-for-imap-client-bugs option (from Oden Eriksson) - Remove make check as it won't work with option above * Tue Mar 19 2002 Frederic Crozat <fcrozat@mandrakesoft.com> 1.4.3-1mdk - Release 1.4.3 - Fix start script to call functions file - Clean specfile - Move courier files in separate directories (%{couriersysconf}, %{courierdatadir}, %{courierlibdir}) - Remove profiles.d scripts, they are not useful at all - Remove some conflicts in -pop package, they prevent installing the package... * Thu Jan 24 2002 Alexander Skwar <ASkwar@DigitalProjects.com> 1.4.2-1mdk - 1.4.2 - Make rpmlint a little happier by creating the ghost files in postins and by trimming the length of the lines in the description * Thu Nov 29 2001 Alexander Skwar <ASkwar@Linux-Mandrake.com> 1.3.12.20011123-3md - Make it really conflict with uw-imap - Just like uw-imap, have it also Provides: imap-server - Split POP stuff into a -pop subpackage, which Provides: pop, pop-server - Add the warning shown when installing the RPM also to the description - FIXME: There are still some problems with the maildrop-man package; maybe a full blown courier package containg the IMAP server, maildrop and SqWebMail should be done to fix this * Wed Nov 28 2001 Alexander Skwar <ASkwar@Linux-Mandrake.com> 1.3.12.20011123-2mdk - Make it conflict with imap (uw-imapd). Todo: also have it conflict with cyrus - Add a Provides: imap, so that other packages like php-imap can still be installed Hmm, this won't work. uw-imapd needs to be renamed! - Fix perms of %{datadir}/sysconftool - Enable all unicode character sets - Include pam files - Make sure, that all (?) needed files are included - Add a big, fat warning during post that ~/Maildir needs to be present for courier to work * Tue Nov 27 2001 Alexander Skwar <ASkwar@Linux-Mandrake.com> 1.3.12.20011123-1mdk - Basically rewrote the complete SPEC - New release * Sun Jan 28 2001 Vincent Danen <vdanen@mandrakesoft.com> 1.3.2-1mdk - first Mandrake build