Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > by-pkgid > 69408a799255a67b6466daab6e57984f > files > 7

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

#
# NOTE:  This package *must* be built non-root!!!
#
%define name		courier-imap
%define version		1.4.2
%define release		1mdk
%define _localstatedir	/var/run
%define	authdaemondir	%{_localstatedir}/authdaemon.courier-imap

Name:		%{name}
Summary:	Coutier-IMAP is an IMAP server that uses Maildirs
Version:	%{version}
Release:	%{release}
License:	GPL
Group:		System/Servers
URL:		http://www.courier-mta.org
Source:		%{name}-%{version}.tar.bz2
Source1:	courier-imap.init.bz2
Source2:	courier-imap.sh.bz2
Source3:	courier-imap.csh.bz2
Source4:	courier-imap-sysconftool-configlist.bz2
Source5:	courier-imap-sysconftool-rpmupgrade.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, imap <= 2000c-7mdk

%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.

%prep
%setup -q
%configure --localstatedir=%{_localstatedir} --with-authdaemonvar=%{authdaemondir} \
	--enable-unicode 

%build
if [ -d %{buildroot} ]; then rm -rf %{buildroot}; fi
mkdir -p %{buildroot}

%make
%make check


%install
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
%make install-strip DESTDIR=%{buildroot}

mkdir -p %{buildroot}%{_initrddir}
# Use provided init script instead
#bzip2 -cd %{SOURCE1} | \
#	sed "s|_sysconfdir_|%{_sysconfdir}|g" | \
#	sed "s|_libexecdir_|%{_libexecdir}|g" > %{buildroot}%{_initrddir}/courier-imap
cat courier-imap.sysvinit > %{buildroot}%{_initrddir}/courier-imap

# Fix imapd.dist

sed 's/^IMAPDSTART=.*/IMAPDSTART=YES/' \
	<%{buildroot}%{_sysconfdir}/imapd.dist \
	>%{buildroot}%{_sysconfdir}/imapd.dist.tmp

mv %{buildroot}%{_sysconfdir}/imapd.dist.tmp \
	%{buildroot}%{_sysconfdir}/imapd.dist

sed 's/^IMAPDSSLSTART=.*/IMAPDSSLSTART=YES/' \
	<%{buildroot}%{_sysconfdir}/imapd-ssl.dist \
	>%{buildroot}%{_sysconfdir}/imapd-ssl.dist.tmp

mv %{buildroot}%{_sysconfdir}/imapd-ssl.dist.tmp \
	%{buildroot}%{_sysconfdir}/imapd-ssl.dist

sed 's/^POP3DDSTART=.*/POP3DSTART=YES/' \
	<%{buildroot}%{_sysconfdir}/pop3d.dist \
	>%{buildroot}%{_sysconfdir}/pop3d.dist.tmp

mv %{buildroot}%{_sysconfdir}/pop3d.dist.tmp \
	%{buildroot}%{_sysconfdir}/pop3d.dist

sed 's/^POP3DSSLSTART=.*/POP3DSSLSTART=YES/' \
	<%{buildroot}%{_sysconfdir}/pop3d-ssl.dist \
	>%{buildroot}%{_sysconfdir}/pop3d-ssl.dist.tmp

mv %{buildroot}%{_sysconfdir}/pop3d-ssl.dist.tmp \
	%{buildroot}%{_sysconfdir}/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}%{_datadir}
cat sysconftool > %{buildroot}%{_datadir}/sysconftool
bzip2 -cd %{SOURCE4} | sed "s|_sysconfdir_|%{_sysconfdir}|g" > %{buildroot}%{_datadir}/configlist

touch %{buildroot}%{_datadir}/configlist.ldap
touch %{buildroot}%{_datadir}/configlist.mysql
touch %{buildroot}%{_datadir}/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}%{_datadir}/sysconftool-rpmupgrade

# Check if authdaemond was installed, make sure to include authdaemon
# directory

touch authdaemon.files

. authlib/authdaemonrc

if [ "x$authdaemonvar" != "x" ]; then
	echo "%{_sysconfdir}/authdaemonrc.dist" >> %{buildroot}%{_datadir}/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 .%{_libexecdir} -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}%{_libexecdir}/authlib/authdaemond.mysql ||
        echo %{_libexecdir}/authlib/authdaemond.mysql >>authdaemon.files.mysql

test ! -f %{buildroot}%{_libexecdir}/authlib/authdaemond.pgsql ||
        echo %{_libexecdir}/authlib/authdaemond.pgsql >>authdaemon.files.pgsql

test ! -f %{buildroot}%{_libexecdir}/authlib/authdaemond.ldap || \
        echo %{_libexecdir}/authlib/authdaemond.ldap >>authdaemon.files.ldap

if test -f %{buildroot}%{_libexecdir}/authlib/authdaemond.mysql
then
        echo '%config(noreplace) %{_sysconfdir}/authmysqlrc.dist' >>%{buildroot}%{_datadir}/configlist.mysql
        echo '%attr(-, root, root) %config(noreplace) %{_sysconfdir}/authmysqlrc.dist' >>authdaemon.files.mysql
fi

if test -f %{buildroot}%{_libexecdir}/authlib/authdaemond.pgsql
then
        echo '%config(noreplace) %{_sysconfdir}/authpgsqlrc.dist' >>%{buildroot}%{_datadir}/configlist.pgsql
        echo '%attr(-, root, root) %config(noreplace) %{_sysconfdir}/authpgsqlrc.dist' >>authdaemon.files.pgsql
fi

if test -f %{buildroot}%{_libexecdir}/authlib/authdaemond.ldap
then
        echo %{_sysconfdir}/authldaprc.dist >> %{buildroot}%{_datadir}/configlist.ldap
        echo '%attr(-, root, root) %config(noreplace) %{_sysconfdir}/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

%post
%{_datadir}/sysconftool `cat %{_datadir}/configlist` >/dev/null
%_post_service courier-imap

# Create the %ghost files
n=imap
for f in %{_localstatedir}/${n}d{,-ssl}.pid{,.lock}; do
	%create_ghostfile $f root root 0600
done

$dir="%{_localstatedir}/authdaemon.courier-imap"
mkdir -p "${dir}"
%create_ghostfile ${dir}/lock	root root 0600
%create_ghostfile ${dir}/pid	root root 0644
%create_ghostfile ${dir}/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 the %ghost files
n=pop3
for f in %{_localstatedir}/${n}d{,-ssl}.pid{,.lock}; do
	%create_ghostfile $f root root 0600
done

%post ldap
%{_datadir}/sysconftool `cat %{_datadir}/configlist.ldap` >/dev/null

%post mysql
%{_datadir}/sysconftool `cat %{_datadir}/configlist.mysql` >/dev/null

%post pgsql
%{_datadir}/sysconftool `cat %{_datadir}/configlist.pgsql` >/dev/null

%preun ldap
for file in %{_libexecdir}/{imap,pop3d}{,-ssl}.rc ; do
	[ -x ${file} ] && ${file} stop
done

%preun mysql
for file in %{_libexecdir}/{imap,pop3d}{,-ssl}.rc ; do
	[ -x ${file} ] && ${file} stop
done

%preun pgsql
for file in %{_libexecdir}/{imap,pop3d}{,-ssl}.rc ; do
	[ -x ${file} ] && ${file} stop
done

%preun 
%_preun_service courier-imap

for file in %{_libexecdir}/{imap,pop3d}{,-ssl}.rc ; do
	[ -x ${file} ] && ${file} stop
done


%triggerpostun -- courier-imap
test ! -f %{_datadir}/configlist || %{_datadir}/sysconftool-rpmupgrade `cat %{_datadir}/configlist` >/dev/null

%triggerpostun ldap -- courier-imap
test ! -f %{_datadir}/configlist.ldap || %{_datadir}/sysconftool-rpmupgrade `cat %{_datadir}/configlist.ldap` >/dev/null

%triggerpostun mysql -- courier-imap
test ! -f %{_datadir}/configlist.mysql || %{_datadir}/sysconftool-rpmupgrade `cat %{_datadir}/configlist.mysql` >/dev/null

%clean
if [ -d %{buildroot} ]; then rm -rf %{buildroot}; fi
rm -rf $RPM_BUILD_DIR/%{name}-%{version}

%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
%attr(600, root, root) %config(noreplace) %{_sysconfdir}/imapd.dist
%attr(600, root, root) %config(noreplace) %{_sysconfdir}/imapd-ssl.dist
%config(noreplace) %{_sysconfdir}/imapd.cnf
%config(noreplace) %{_sysconfdir}/quotawarnmsg.example
%attr(755, root, root) %config(noreplace) %{_sysconfdir}/profile.d/courier-imap.csh
%attr(755, root, root) %config(noreplace) %{_sysconfdir}/profile.d/courier-imap.sh
%attr(755, root, root) %config(noreplace) %{_initrddir}/courier-imap
%attr(644, root, root) %config(noreplace) %{_sysconfdir}/authdaemonrc.dist
%dir %{_libexecdir}/authlib
%{_bindir}/imapd
%{_bindir}/couriertls
%{_bindir}/maildirmake
%{_sbindir}/imaplogin
%{_sbindir}/userdbpw
%{_mandir}/man1/*
%{_mandir}/man8/*
%{_datadir}/pw2userdb
%{_datadir}/makeuserdb
%{_datadir}/mkimapdcert
%{_datadir}/vchkpw2userdb
%{_datadir}/userdb
%attr(755, root, root) %{_datadir}/sysconftool
%attr(755, root, root) %{_datadir}/sysconftool-rpmupgrade
%attr(644, root, root) %{_datadir}/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) %{_sysconfdir}/pop3d.dist
%attr(600, root, root) %config(noreplace) %{_sysconfdir}/pop3d-ssl.dist
%config(noreplace) %{_sysconfdir}/pop3d.cnf
%{_bindir}/pop3d
%{_sbindir}/pop3login
%{_datadir}/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) %{_datadir}/configlist.ldap

%files mysql -f authdaemon.files.mysql
%defattr(-, root, root)
%attr(644, root, root) %{_datadir}/configlist.mysql

%files pgsql -f authdaemon.files.pgsql
%defattr(-, root, root)
%attr(644, root, root) %{_datadir}/configlist.pgsql

%changelog
* 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