# Contributor: Ryan Corder pkgname=cyrus-imapd pkgver=2.4.7 pkgrel=1 pkgdesc="implementation of IMAP servers by the Cargegie Mellon University Computer Services Department" arch=('i686' 'x86_64') url="http://cyrusimap.web.cmu.edu/imapd/" license=('custom') depends=('cyrus-sasl' 'db' 'libsasl' 'perl') provides=('imap-server' 'pop3-server') conflicts=('imap-server' 'pop3-server') options=('!makeflags') backup=(etc/cyrus/cyrus.conf etc/cyrus/imapd.conf) install="$pkgname.install" source=(ftp://ftp.cyrusimap.org/$pkgname/$pkgname-$pkgver.tar.gz 'cyrus-master' 'cyrus-master-conf.d' 'cyrus-imapd.install') md5sums=('7ef3a02c3e92a44a2adf25f81db4ca3c' '6211252b9b5003547b911ad2c6e1f8fe' '2fec92bf32779b9f306fe146db3b1895' '7b7da91d3d4043cdbdd68f7bd4232726') build() { cd $startdir/src/$pkgname-$pkgver || return 1 CFLAGS=-fPIC ./configure --prefix=/usr --sysconfdir=/etc/cyrus || return 1 make || return 1 # create required directories first mkdir -m 0755 -p $startdir/pkg/usr/bin || return 1 mkdir -m 0755 -p $startdir/pkg/usr/cyrus/bin || return 1 mkdir -m 0755 -p $startdir/pkg/usr/lib || return 1 mkdir -m 0755 -p $startdir/pkg/usr/include/cyrus || return 1 mkdir -m 0755 -p $startdir/pkg/usr/man/man1 || return 1 mkdir -m 0755 -p $startdir/pkg/usr/man/man3 || return 1 mkdir -m 0755 -p $startdir/pkg/usr/man/man5 || return 1 mkdir -m 0755 -p $startdir/pkg/usr/man/man8 || return 1 mkdir -m 0755 -p $startdir/pkg/etc/cyrus || return 1 mkdir -m 0755 -p $startdir/pkg/etc/conf.d || return 1 mkdir -m 0755 -p $startdir/pkg/etc/rc.d || return 1 # install man pages for man1 in $startdir/src/$pkgname-$pkgver/man/*.1*; do install -m 644 $startdir/src/$pkgname-$pkgver/man/`basename $man1` $startdir/pkg/usr/man/man1 || return 1 done for man3 in $startdir/src/$pkgname-$pkgver/man/*.3*; do install -m 644 $startdir/src/$pkgname-$pkgver/man/`basename $man3` $startdir/pkg/usr/man/man3 || return 1 done for man5 in $startdir/src/$pkgname-$pkgver/man/*.5*; do install -m 644 $startdir/src/$pkgname-$pkgver/man/`basename $man5` $startdir/pkg/usr/man/man5 || return 1 done for man8 in $startdir/src/$pkgname-$pkgver/man/*.8*; do install -m 644 $startdir/src/$pkgname-$pkgver/man/`basename $man8` $startdir/pkg/usr/man/man8 || return 1 done # rename master.8 so it doesn't conflict with master.8 from Postfix mv $startdir/pkg/usr/man/man8/master.8 $startdir/pkg/usr/man/man8/cyrus-master.8 # install libraries & headers install -m 644 $startdir/src/$pkgname-$pkgver/lib/libcyrus.a $startdir/pkg/usr/lib || return 1 install -m 644 $startdir/src/$pkgname-$pkgver/lib/libcyrus_min.a $startdir/pkg/usr/lib || return 1 for header in $stardir/src/$pkgname-$pkgver/lib/*.h; do install -m 644 $startdir/src/$pkgname-$pkgver/lib/`basename $header` $startdir/pkg/usr/include/cyrus || return 1 done # install sieve install -m 755 $startdir/src/$pkgname-$pkgver/sieve/sievec \ $startdir/pkg/usr/cyrus/bin || return 1 # install master install -m 755 $startdir/src/$pkgname-$pkgver/master/master \ $startdir/pkg/usr/cyrus/bin || return 1 # install IMAP programs for prog in imapd lmtpd pop3d fud smmapd reconstruct quota mbpath ipurge \ cyr_dbtool cyrdump cyr_expire chk_cyrus cvt_cyrusdb deliver \ ctl_mboxlist ctl_deliver ctl_cyrusdb \ squatter mbexamine arbitron unexpunge tls_prune; do install -m 755 $startdir/src/$pkgname-$pkgver/imap/$prog $startdir/pkg/usr/cyrus/bin || return 1 done ln -sf /usr/cyrus/bin/pop3d $startdir/pkg/usr/cyrus/bin/pop3proxyd || return 1 ln -sf /usr/cyrus/bin/imapd $startdir/pkg/usr/cyrus/bin/proxyd || return 1 ln -sf /usr/cyrus/bin/lmtpd $startdir/pkg/usr/cyrus/bin/lmtpproxyd || return 1 # install imtest program and links install -m 755 $startdir/src/$pkgname-$pkgver/imtest/imtest $startdir/pkg/usr/bin || return 1 for alias in pop3test nntptest lmtptest smtptest mupdatetest sivtest synctest; do ln -sf /usr/bin/imtest $startdir/pkg/usr/bin/$alias || return 1 done # install Cyrus IMAP & SIEVE extensions to Perl eval `perl -V:archname` install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/arch/auto/Cyrus/IMAP/IMAP.so \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/IMAP/IMAP.so && \ echo "/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/IMAP/IMAP.so" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/arch/auto/Cyrus/IMAP/IMAP.bs \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/IMAP/IMAP.bs && \ echo "/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/IMAP/IMAP.bs" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/lib/Cyrus/IMAP.pm \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/Cyrus/IMAP.pm && \ echo "/usr/lib/perl5/vendor_perl/current/${archname}/Cyrus/IMAP.pm" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/lib/Cyrus/IMAP/Shell.pm \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/Cyrus/IMAP/Shell.pm && \ echo "/usr/lib/perl5/vendor_perl/current/${archname}/Cyrus/IMAP/Shell.pm" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/lib/Cyrus/IMAP/Admin.pm \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/Cyrus/IMAP/Admin.pm && \ echo "/usr/lib/perl5/vendor_perl/current/${archname}/Cyrus/IMAP/Admin.pm" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/lib/Cyrus/IMAP/IMSP.pm \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/Cyrus/IMAP/IMSP.pm && \ echo "/usr/lib/perl5/vendor_perl/current/${archname}/Cyrus/IMAP/IMSP.pm" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/man1/cyradm.1p \ $startdir/pkg/usr/man/man1/cyradm.1p && \ echo "/usr/man/man1/cyradm.1p" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/man3/Cyrus::IMAP.3pm \ $startdir/pkg/usr/man/man3/Cyrus::IMAP.3 && \ echo "/usr/man/man3/Cyrus::IMAP.3pm" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/man3/Cyrus::IMAP::IMSP.3pm \ $startdir/pkg/usr/man/man3/Cyrus::IMAP::IMSP.3 && \ echo "/usr/man/man3/Cyrus::IMAP::IMSP.3pm" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/man3/Cyrus::IMAP::Shell.3pm \ $startdir/pkg/usr/man/man3/Cyrus::IMAP::Shell.3 && \ echo "/usr/man/man3/Cyrus::IMAP::Shell.3pm" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/imap/blib/man3/Cyrus::IMAP::Admin.3pm \ $startdir/pkg/usr/man/man3/Cyrus::IMAP::Admin.3 && \ echo "/usr/man/man3/Cyrus::IMAP::Admin.3pm" >> $startdir/src/IMAP.packlist || return 1 install -m 755 $startdir/src/$pkgname-$pkgver/perl/imap/blib/script/cyradm \ $startdir/pkg/usr/bin/cyradm && \ echo "/usr/bin/cyradm" >> $startdir/src/IMAP.packlist || return 1 install -Dm 644 $startdir/src/IMAP.packlist \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/IMAP/.packlist || return 1 install -m 755 $startdir/src/$pkgname-$pkgver/perl/sieve/scripts/installsieve.pl \ $startdir/pkg/usr/bin/installsieve.pl || return 1 install -m 755 $startdir/src/$pkgname-$pkgver/perl/sieve/scripts/sieveshell.pl \ $startdir/pkg/usr/bin/sieveshell.pl || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/sieve/managesieve/blib/arch/auto/Cyrus/SIEVE/managesieve/managesieve.so \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/SIEVE/managesieve/managesieve.so && \ echo "/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/SIEVE/managesieve/managesieve.so" >> $startdir/src/SIEVE.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/sieve/managesieve/blib/arch/auto/Cyrus/SIEVE/managesieve/managesieve.bs \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/SIEVE/managesieve/managesieve.bs && \ echo "/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/SIEVE/managesieve/managesieve.bs" >> $startdir/src/SIEVE.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/sieve/managesieve/blib/lib/Cyrus/SIEVE/managesieve.pm \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/Cyrus/SIEVE/managesieve.pm && \ echo "/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/SIEVE/managesieve.pm" >> $startdir/src/SIEVE.packlist || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/perl/sieve/managesieve/blib/man3/Cyrus::SIEVE::managesieve.3pm \ $startdir/pkg/usr/man/man3/Cyrus::SIEVE::managesieve.3 && \ echo "/usr/man/man3/Cyrus::SIEVE::managesieve.3" >> $startdir/src/SIEVE.packlist || return 1 install -Dm 644 $startdir/src/SIEVE.packlist \ $startdir/pkg/usr/lib/perl5/vendor_perl/current/${archname}/auto/Cyrus/SIEVE/.packlist || return 1 # install timsieved program install -m 755 $startdir/src/$pkgname-$pkgver/timsieved/timsieved $startdir/pkg/usr/cyrus/bin || return 1 # install notifyd program install -m 755 $startdir/src/$pkgname-$pkgver/notifyd/notifyd $startdir/pkg/usr/cyrus/bin || return 1 # install configs, rc scripts, etc install -m 600 $startdir/src/$pkgname-$pkgver/master/conf/normal.conf \ $startdir/pkg/etc/cyrus/cyrus.conf || return 1 echo "# see imapd.conf(5) man page for correct setup of this file" >> \ $startdir/pkg/etc/cyrus/imapd.conf || return 1 chmod 600 $startdir/pkg/etc/cyrus/imapd.conf || return 1 install -m 755 $startdir/cyrus-master $startdir/pkg/etc/rc.d/cyrus-master || return 1 install -m 644 $startdir/cyrus-master-conf.d $startdir/pkg/etc/conf.d/cyrus-master || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/COPYRIGHT \ $startdir/pkg/usr/share/licenses/$pkgname/COPYRIGHT || return 1 install -Dm 644 $startdir/src/$pkgname-$pkgver/README \ $startdir/pkg/usr/share/$pkgname-$pkgver/README || return 1 }