Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > media > contrib-src > by-pkgid > c877358668310f8c7927a3557964e2d4 > files > 6

courier-imap-1.5.3-1mdk.src.rpm

#
# 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