diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2003-12-26 01:56:20 +0000 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2003-12-26 01:56:20 +0000 |
commit | b9359ec9a9334dc86798f7b873f14e97b76e5201 (patch) | |
tree | d9653894217298b1c51790d22479afe2e625b0a5 /net-mail | |
parent | fix .keep from bug #35308. do changeover to new storage style, including upgr... (diff) | |
download | gentoo-2-b9359ec9a9334dc86798f7b873f14e97b76e5201.tar.gz gentoo-2-b9359ec9a9334dc86798f7b873f14e97b76e5201.tar.bz2 gentoo-2-b9359ec9a9334dc86798f7b873f14e97b76e5201.zip |
fix .keep from bug #35308. do changeover to new storage style, including upgrade script.
Diffstat (limited to 'net-mail')
-rw-r--r-- | net-mail/vpopmail/ChangeLog | 9 | ||||
-rw-r--r-- | net-mail/vpopmail/Manifest | 6 | ||||
-rw-r--r-- | net-mail/vpopmail/files/digest-vpopmail-5.2.1-r9 | 2 | ||||
-rw-r--r-- | net-mail/vpopmail/files/vpopmail-Maildir-dotmaildir-fix.sh | 33 | ||||
-rw-r--r-- | net-mail/vpopmail/vpopmail-5.2.1-r9.ebuild | 233 |
5 files changed, 279 insertions, 4 deletions
diff --git a/net-mail/vpopmail/ChangeLog b/net-mail/vpopmail/ChangeLog index 8b9a24ea178b..23233e652eb4 100644 --- a/net-mail/vpopmail/ChangeLog +++ b/net-mail/vpopmail/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-mail/vpopmail # Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-mail/vpopmail/ChangeLog,v 1.23 2003/12/08 22:31:03 robbat2 Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-mail/vpopmail/ChangeLog,v 1.24 2003/12/26 01:56:07 robbat2 Exp $ + +*vpopmail-5.2.1-r9 (25 Dec 2003) + + 25 Dec 2003; Robin H. Johnson <robbat2@gentoo.org> vpopmail-5.2.1-r9.ebuild, + files/vpopmail-Maildir-dotmaildir-fix.sh: + fix .keep from bug #35308. do changeover to new storage style, including + upgrade script. 08 Dec 2003; Robin H. Johnson <robbat2@gentoo.org> vpopmail-5.2.1-r5.ebuild, vpopmail-5.2.1-r6.ebuild, vpopmail-5.2.1-r7.ebuild, diff --git a/net-mail/vpopmail/Manifest b/net-mail/vpopmail/Manifest index 945e6e851840..5a0cfcb33300 100644 --- a/net-mail/vpopmail/Manifest +++ b/net-mail/vpopmail/Manifest @@ -1,9 +1,9 @@ -# $Header: /var/cvsroot/gentoo-x86/net-mail/vpopmail/Manifest,v 1.25 2003/12/26 01:56:07 robbat2 Exp $ -MD5 b32e35575e9e95ec6b6c9ee73909e960 vpopmail-5.2.1-r9.ebuild 7435 +# $Header: /var/cvsroot/gentoo-x86/net-mail/vpopmail/Manifest,v 1.26 2003/12/26 01:56:20 robbat2 Exp $ +MD5 25a76d617426d9b8ecfd020b80ba6016 vpopmail-5.2.1-r9.ebuild 7435 MD5 23d5189f50d18117f8e65ab1b027df9c vpopmail-5.2.1-r6.ebuild 6370 MD5 0d0b597b0be51f05b73072576b2c64a9 vpopmail-5.2.1-r8.ebuild 6700 MD5 891b1414afd92b3c8ee75ec39ae317c9 vpopmail-5.2.1-r5.ebuild 6035 -MD5 7a2fe970138b82d252bfe2b2040b2874 ChangeLog 4156 +MD5 4d0603212359169055062f5010d6f200 ChangeLog 4156 MD5 5721b86fd871bdfab77231abc6e02f68 metadata.xml 161 MD5 122d629b4ce8f06e71f75215bd143fdb vpopmail-5.2.1-r7.ebuild 6369 MD5 c8f37f4f0e61e7c848351d7e4a38478f files/vpopmail-Maildir-dotmaildir-fix.sh 931 diff --git a/net-mail/vpopmail/files/digest-vpopmail-5.2.1-r9 b/net-mail/vpopmail/files/digest-vpopmail-5.2.1-r9 new file mode 100644 index 000000000000..a6a45f2be1e6 --- /dev/null +++ b/net-mail/vpopmail/files/digest-vpopmail-5.2.1-r9 @@ -0,0 +1,2 @@ +MD5 1e299a467db955c95c2966c7aa0ef6e5 vpopmail-5.2.1.tar.gz 273353 +MD5 9d12d36935643050617a76c5104c4d28 vpopmail-5.2.1-mysql.diff 5211 diff --git a/net-mail/vpopmail/files/vpopmail-Maildir-dotmaildir-fix.sh b/net-mail/vpopmail/files/vpopmail-Maildir-dotmaildir-fix.sh new file mode 100644 index 000000000000..bacb3faf22d1 --- /dev/null +++ b/net-mail/vpopmail/files/vpopmail-Maildir-dotmaildir-fix.sh @@ -0,0 +1,33 @@ +#!/bin/bash +OLDNAME='Maildir' +NEWNAME='.maildir' +SEARCHPATH=/var/vpopmail/domains/ + +if [ "${1}" == '--revert' ]; then + SEARCHNAME="${NEWNAME}" + REPLACENAME="${OLDNAME}" +else + SEARCHNAME="${OLDNAME}" + REPLACENAME="${NEWNAME}" +fi + +echo "Doing '${SEARCHNAME}' '${REPLACENAME}' changeover" +for i in `find ${SEARCHPATH} -name "${SEARCHNAME}" -maxdepth 3 -mindepth 3 -type d`; do + foundname=${i} + todoname=${foundname/${SEARCHNAME}/${REPLACENAME}} + base="`dirname $i`" + echo "Fixing `echo $base | sed -e "s|${SEARCHPATH}||g"`" + chmod +t $base + if [ -L ${todoname} ]; then + echo Removing symlink "${todoname}" + rm ${todoname} + fi + if [ -e ${todoname} ]; then + echo "Error! Cannot move ${i} as destination exists!" + continue + fi + mv "${foundname}" "${todoname}" + ln -s "${todoname}" "${foundname}" + chown vpopmail:vpopmail "${foundname}" + chmod -t $base +done; diff --git a/net-mail/vpopmail/vpopmail-5.2.1-r9.ebuild b/net-mail/vpopmail/vpopmail-5.2.1-r9.ebuild new file mode 100644 index 000000000000..c090b73ac357 --- /dev/null +++ b/net-mail/vpopmail/vpopmail-5.2.1-r9.ebuild @@ -0,0 +1,233 @@ +# Copyright 1999-2003 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-mail/vpopmail/vpopmail-5.2.1-r9.ebuild,v 1.1 2003/12/26 01:56:07 robbat2 Exp $ + +IUSE="mysql ipalias clearpasswd" + +inherit eutils + +# TODO: all ldap, sybase support +HOMEPAGE="http://www.inter7.com/vpopmail" +DESCRIPTION="A collection of programs to manage virtual email domains and accounts on your Qmail or Postfix mail servers." +SRC_URI="http://www.inter7.com/${PN}/${P}.tar.gz + mysql? ( http://gentoo.twobit.net/misc/${P}-mysql.diff )" +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="x86 sparc" +DEPEND_COMMON="net-mail/qmail + mysql? ( >=dev-db/mysql-3.23* )" +DEPEND="sys-apps/sed + sys-apps/ucspi-tcp + ${DEPEND_COMMON}" +RDEPEND="${DEPEND_COMMON} + virtual/cron" + +# Define vpopmail home dir in /etc/password if different +VPOP_DEFAULT_HOME="/var/vpopmail" +VPOP_HOME="$VPOP_DEFAULT_HOME" + +# This makes sure the variable is set, and that it isn't null. +vpopmail_set_homedir() { + VPOP_HOME=`getent passwd vpopmail | cut -d: -f6` + if [ -z "$VPOP_HOME" ]; then + echo -ne "\a" + eerror "vpopmail's home directory is null in passwd data!" + eerror "You probably want to check that out." + eerror "Continuing with default." + sleep 1; echo -ne "\a"; sleep 1; echo -ne "\a" + VPOP_HOME="${VPOP_DEFAULT_HOME}" + else + einfo "Setting VPOP_HOME to: $VPOP_HOME" + fi +} + +pkg_setup() { + if [ -z `getent group vpopmail` ]; then + (groupadd -g 89 vpopmail 2>/dev/null || groupadd vpopmail ) || die "problem adding vpopmail group" + fi + if [ -z `getent passwd vpopmail` ]; then + useradd -g vpopmail -u 89 -d ${VPOP_DEFAULT_HOME} -c "vpopmail_directory" -s /bin/false -m vpopmail || \ + useradd -g vpopmail -u `getent group vpopmail | awk -F":" '{ print $3 }'` -d ${VPOP_DEFAULT_HOME} -c "vpopmail_directory" \ + -s /bin/false -m vpopmail || die "problem adding vpopmail user" + fi +} + +src_unpack() { + cd ${WORKDIR} + unpack ${P}.tar.gz + cd ${S} + + epatch ${FILESDIR}/vpopmail-5.2.1-showall.patch + + if use mysql; then + einfo "Applying MySQL patch..." + # Thanks to Nicholas Jones (carpaski@gentoo.org) + epatch ${DISTDIR}/vpopmail-5.2.1-mysql.diff + # gcc3.3 fix + epatch ${FILESDIR}/vpopmail-5.2.1-gcc33mysql.diff + fi + + # Thanks to Vadim Berezniker (vadim@berezniker.com) + # This patch backports a bug fix from the devel version re: logons + epatch ${FILESDIR}/vpopmail.diff + + for i in vchkpw.c vconvert.c vdelivermail.c vpopbull.c vpopmail.c vqmaillocal.c vuserinfo.c; do + sed -e 's|Maildir|.maildir|g' -i $i || die "Failed to change s/Maildir/.maildir/g in $i" + done +} + +src_compile() { + vpopmail_set_homedir + + use ipalias && myopts="${myopts} --enable-ip-alias-domains=y" \ + || myopts="${myopts} --enable-ip-alias-domains=n" + + use mysql && myopts="${myopts} --enable-mysql=y \ + --enable-libs=/usr/include/mysql \ + --enable-sqllibdir=/usr/lib/mysql \ + --enable-mysql-logging=y \ + --enable-auth-logging=y \ + --enable-valias=y \ + --enable-mysql-replication=n" \ + || myopts="${myopts} --enable-mysql=n" + + # the configure script tries to force root and make directories not using ${D} + sed -e '1282,1289d' -e '1560,1567d' -e '2349d' -e '2107d' -e '2342d' configure > configure.new + mv --force configure.new configure + chmod u+x configure + + # Bug 20127 + use clearpasswd && + myopts="${myopts} --enable-clear-passwd=y" || + myopts="${myopts} --enable-clear-passwd=n" + + econf ${myopts} --sbindir=/usr/sbin \ + --bindir=/usr/bin \ + --sysconfdir=${VPOP_HOME}/etc \ + --enable-qmaildir=/var/qmail \ + --enable-qmail-newu=/var/qmail/bin/qmail-newu \ + --enable-qmail-inject=/var/qmail/bin/qmail-inject \ + --enable-qmail-newmrh=/var/qmail/bin/qmail-newmrh \ + --enable-vpopuser=vpopmail \ + --enable-many-domains=y \ + --enable-vpopgroup=vpopmail \ + --enable-file-locking=y \ + --enable-file-sync=y \ + --enable-md5-passwords=y \ + --enable-defaultquota=30000000,1000C \ + --enable-roaming-users=y --enable-relay-clear-minutes=60 \ + --enable-tcprules-prog=/usr/bin/tcprules --enable-tcpserver-file=/etc/tcp.smtp \ + --enable-logging=y \ + --enable-log-name=vpopmail + + use mysql && echo '#define MYSQL_PASSWORD_FILE "/etc/vpopmail.conf"' >> config.h + + emake || die "Make failed." +} + +src_install () { + vpopmail_set_homedir + + make DESTDIR=${D} install-strip || die + + into /var/vpopmail + dobin ${FILESDIR}/vpopmail-Maildir-dotmaildir-fix.sh + into /usr + + # Install documentation. + dodoc AUTHORS ChangeLog COPYING FAQ INSTALL NEWS TODO + dodoc README README.* RELEASE.NOTES UPGRADE.* + dodoc doc/doc_html/* doc/man_html/* + rm -rf ${D}/${VPOP_HOME}/doc + dosym /usr/share/doc/${PF}/ ${VPOP_HOME}/doc + + # Create /etc/vpopmail.conf + if use mysql; then + einfo "Installing vpopmail mysql configuration file" + dodir /etc + insinto /etc + doins ${FILESDIR}/vpopmail.conf + fowners vpopmail:vpopmail /etc/vpopmail.conf + fperms 600 /etc/vpopmail.conf + fi + + # Install a proper cronjob instead of the old nastiness + einfo "Installing cronjob" + dodir /etc/cron.hourly + insinto /etc/cron.hourly + doins ${FILESDIR}/vpopmail.clearopensmtp + fperms +x /etc/cron.hourly/vpopmail.clearopensmtp + + einfo "Installing env.d entry" + dodir /etc/env.d + insinto /etc/env.d + doins ${FILESDIR}/99vpopmail + + # Configure b0rked. We'll do this manually + echo "-I${VPOP_HOME}/include" > ${D}/${VPOP_HOME}/etc/inc_deps + local libs_extra + use mysql && libs_extra="-L/usr/lib/mysql -lmysqlclient -lz" || libs_extra="" + echo "-L${VPOP_HOME}/lib -lvpopmail ${libs_extra}" > ${D}/${VPOP_HOME}/etc/lib_deps + + einfo "Locking down vpopmail permissions" + # secure things more, i don't want the vpopmail user being able to write this stuff! + chown -R root:root ${D}${VPOP_HOME}/{bin,etc,include} + +} + +pkg_preinst() { + vpopmail_set_homedir + + # Keep DATA + keepdir ${VPOP_HOME}/domains + + # This is a workaround until portage handles binary packages+users better. + pkg_setup + + upgradewarning +} + +pkg_postinst() { + einfo "Performing post-installation routines for ${P}." + + if use mysql; then + echo + einfo "You have 'mysql' turned on in your USE" + einfo "Vpopmail needs a VALID MySQL USER. Let's call it 'vpopmail'" + einfo "You MUST add it and then specify its passwd in the /etc/vpopmail.conf file" + echo + einfo "First log into mysql as your mysql root user and pass. Then:" + einfo "> create database vpopmail;" + einfo "> use mysql;" + einfo "> grant select, insert, update, delete, create, drop on vpopmail.* to" + einfo " vpopmail@localhost identified by 'your password';" + einfo "> flush privileges;" + echo + einfo "If you have problems with vpopmail not accepting mail properly," + einfo "please ensure that /etc/vpopmail.conf is chmod 600 and" + einfo "owned by vpopmail:vpopmail" + fi + # do this for good measure + if [ -e /etc/vpopmail.conf ]; then + chmod 600 /etc/vpopmail.conf + chown vpopmail:vpopmail /etc/vpopmail.conf + fi + + upgradewarning +} + +pkg_postrm() { + vpopmail_set_homedir + + einfo "The vpopmail DATA will NOT be removed automatically." + einfo "You can delete them manually by removing the ${VPOP_HOME} directory." +} + +upgradewarning() { + ewarn "Massive important warning if you are upgrading to 5.2.1-r8 or older" + ewarn "The internal structure of the mail storage has changed for" + ewarn "consistancy with the rest of Gentoo! Please review and utilize the " + ewarn "script at /var/vpopmail/bin/vpopmail-Maildir-dotmaildir-fix.sh" + ewarn "to upgrade your system!" + ewarn "You should be able to run it right away without any changes." +} |