# HG changeset patch # User Pascal Bellard # Date 1218291901 0 # Node ID ac4e45db7a329b41cc64d6f52082c590c642820d # Parent f6a6d0028db15cb85f142cb96adc663e7d0911e1 Add cyrus-imapd diff -r f6a6d0028db1 -r ac4e45db7a32 cyrus-imapd/receipt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cyrus-imapd/receipt Sat Aug 09 14:25:01 2008 +0000 @@ -0,0 +1,124 @@ +# SliTaz package receipt. + +PACKAGE="cyrus-imapd" +VERSION="2.2.12" +CATEGORY="network" +SHORT_DESC="IMAP server." +MAINTAINER="pascal.bellard@slitaz.org" +TARBALL="$PACKAGE-$VERSION.tar.gz" +WEB_SITE="http://cyrusimap.web.cmu.edu/" +WGET_URL="ftp://ftp.andrew.cmu.edu/pub/cyrus/$TARBALL" +BUILD_DEPENDS="libcomerr-dev cyrus-sasl cyrus-sasl-dev openssl-dev db-dev" +DEPENDS="libcomerr cyrus-sasl openssl db postfix perl" +CONFIG_FILES="/etc/imapd.conf /etc/cyrus.conf" + +# Rules to configure and make the package. +compile_rules() +{ + cd $src + patch -p1 < ../stuff/50-FTBFS-gcc-4.0-fix.dpatch + patch -p0 < ../stuff/p1.patch + patch -p0 < ../stuff/p2.patch + ./configure --prefix=/usr --infodir=/usr/share/info \ + --mandir=/usr/share/man $CONFIGURE_ARGS + make + make DESTDIR=$PWD/_pkg install +} + +# Rules to gen a SliTaz package suitable for Tazpkg. +genpkg_rules() +{ + mkdir -p $fs/usr/lib $fs/var/imap $fs/var/spool/imap/stage. + cp -a $_pkg/usr/bin $fs/usr + cp -a $_pkg/usr/cyrus $fs/usr + cp -a $_pkg/usr/lib/perl5 $fs/usr/lib + strip -s $fs/usr/cyrus/bin/* + cp $src/tools/mkimap $fs/usr/cyrus/bin + cp -a stuff/etc $fs + cp $src/master/conf/small.conf $fs/etc/cyrus.conf + for i in proc db socket log msg ptclient; do + mkdir -m 755 $fs/var/imap/$i + done +} + +# Pre and post install commands for Tazpkg. +post_install() +{ + ( cd $1/ ; cpio -o -H newc | gzip -9 ) > \ + $1/$INSTALLED/$PACKAGE/volatile.cpio.gz < /dev/null + status + fi + # addgroup mail if needed + if ! grep -q mail $1/etc/group; then + echo -n "Adding group mail..." + chroot $1/ addgroup mail && addgroup cyrus mail + status + fi + chown -R cyrus.mail /var/spool/imap /var/imap + while read name port end; do + grep -q $port /etc/services || \ + echo "$name $port $end" >> /etc/services + done <= 1000) print $1 }' < /etc/passwd); do + echo -n "$msg $i" + msg="," + done + echo "" + for i in root $(awk -F: '{ if ($3 >= 1000) print $1 }' < /etc/passwd); do + echo "createmailbox user.$i" + done | cyradm -u cyrus -w cyrus 127.0.0.1 >/dev/null 2>&1 + su -c "/usr/cyrus/bin/reconstruct" cyrus >/dev/null 2>&1 + cat < +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix FTBFS when compiling with gcc-4.0, there is imapopts is used before declared + +@DPATCH@ +diff -urN cyrus22-imapd-2.2.12~/tools/config2header cyrus22-imapd-2.2.12/tools/config2header +--- cyrus22-imapd-2.2.12~/tools/config2header 2004-06-22 21:02:31.000000000 +0200 ++++ cyrus22-imapd-2.2.12/tools/config2header 2005-06-22 07:56:17.180293688 +0200 +@@ -214,7 +214,6 @@ + print HFILE < /dev/null; then + /etc/init.d/cyrus-sasl start + fi + echo -n "Starting $DESC: $NAME... " + $DAEMON $OPTIONS + status + sleep 2 + ;; + stop) + if [ ! -f $PIDFILE ] ; then + echo "$NAME is not running." + exit 1 + fi + echo -n "Stopping $DESC: $NAME... " + kill `cat $PIDFILE` + ps x | grep -q `cat $PIDFILE` || rm -f $PIDFILE + status + ;; + restart) + if [ ! -f $PIDFILE ] ; then + echo "$NAME is not running." + exit 1 + fi + echo -n "Restarting $DESC: $NAME... " + kill `cat $PIDFILE` + if ps x | grep -q `cat $PIDFILE`; then + false + else + rm -f $PIDFILE + sleep 2 + $DAEMON $OPTIONS + fi + status + ;; + *) + echo "" + echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]" + echo "" + exit 1 + ;; +esac + +exit 0 diff -r f6a6d0028db1 -r ac4e45db7a32 cyrus-imapd/stuff/p1.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cyrus-imapd/stuff/p1.patch Sat Aug 09 14:25:01 2008 +0000 @@ -0,0 +1,19 @@ +diff -u lib.old/cyrusdb_berkeley.c lib/cyrusdb_berkeley.c +--- lib.old/cyrusdb_berkeley.c 2007-04-05 01:23:42.518845824 +0200 ++++ lib/cyrusdb_berkeley.c 2007-04-05 01:22:20.000000000 +0200 +@@ -159,7 +159,15 @@ + syslog(LOG_WARNING, + "DBERROR: invalid berkeley_locks_max value, using internal default"); + } else { ++#if DB_VERSION_MAJOR >= 4 ++ r = dbenv->set_lk_max_locks(dbenv, opt); ++ if (!r) ++ r = dbenv->set_lk_max_lockers(dbenv, opt); ++ if (!r) ++ r = dbenv->set_lk_max_objects(dbenv, opt); ++#else + r = dbenv->set_lk_max(dbenv, opt); ++#endif + if (r) { + dbenv->err(dbenv, r, "set_lk_max"); + syslog(LOG_ERR, "DBERROR: set_lk_max(): %s", db_strerror(r)); diff -r f6a6d0028db1 -r ac4e45db7a32 cyrus-imapd/stuff/p2.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cyrus-imapd/stuff/p2.patch Sat Aug 09 14:25:01 2008 +0000 @@ -0,0 +1,11 @@ +--- cmulocal/berkdb.m4.orig 2007-05-01 18:05:00.000000000 +0200 ++++ cmulocal/berkdb.m4 2007-05-01 18:05:17.000000000 +0200 +@@ -212,7 +212,7 @@ + fi + + saved_LIBS=$LIBS +- for dbname in db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db ++ for dbname in db-4.5 db4.5 db45 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db + do + LIBS="$saved_LIBS -l$dbname" + AC_TRY_LINK([#include ],