summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-mail/vpopmail
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-mail/vpopmail')
-rw-r--r--net-mail/vpopmail/Manifest3
-rw-r--r--net-mail/vpopmail/files/99vpopmail2
-rw-r--r--net-mail/vpopmail/files/vpopmail-5.4.9-access.violation.patch27
-rw-r--r--net-mail/vpopmail/files/vpopmail-Maildir-dotmaildir-fix.sh43
-rw-r--r--net-mail/vpopmail/files/vpopmail-double-free.patch13
-rw-r--r--net-mail/vpopmail/files/vpopmail-lazy.patch10
-rw-r--r--net-mail/vpopmail/files/vpopmail-vpgsql.patch94
-rw-r--r--net-mail/vpopmail/metadata.xml17
-rw-r--r--net-mail/vpopmail/vpopmail-5.4.16.ebuild246
-rw-r--r--net-mail/vpopmail/vpopmail-5.4.30-r1.ebuild231
-rw-r--r--net-mail/vpopmail/vpopmail-5.4.30-r2.ebuild233
-rw-r--r--net-mail/vpopmail/vpopmail-5.4.33-r1.ebuild252
-rw-r--r--net-mail/vpopmail/vpopmail-5.4.33.ebuild241
13 files changed, 1412 insertions, 0 deletions
diff --git a/net-mail/vpopmail/Manifest b/net-mail/vpopmail/Manifest
new file mode 100644
index 000000000000..80fd5b44ad67
--- /dev/null
+++ b/net-mail/vpopmail/Manifest
@@ -0,0 +1,3 @@
+DIST vpopmail-5.4.16.tar.gz 453019 SHA256 c1ea76e404082a116795dc3c49933b26f79cdbb49bca5ebc4fa170403a5e3c7a SHA512 a7ce5640a59ee7f216869d08cb681eb323910f4fd7dcc9f644fe9bcb842c6703745edbbd5bb95ab44dc59b4684a8e29b115a3aeb893ef7514fdc28eab46328d0 WHIRLPOOL 10bc8c4f05b11cabaaf69e49f42006bd8b46d671f189c4e5d8258e3fb88bffb76e086398792dc655b3a02d6f59efcb48727602b50273138a3b35940725faeba3
+DIST vpopmail-5.4.30.tar.gz 609358 SHA256 38239ca6f9dda25f70cc46106f3ffe8b9d3b95907ced54c15eb942c2ff387acc SHA512 62bb677cb2f928d37fff1346a7aa7a6f9f7900159d1edcf0f471bf252c59f19e2b8605c27033e9123339a75dc4058b4fd21ea5e05684590e50c94a1431d91c7b WHIRLPOOL 0a4caafe23dd649e6c5917bac6fa414dd702b8631231c94385a2afc24e977b3ea07e6cdf71261935e4a7df2e7508edad40124c15cfab2e02308c060c5d50e44a
+DIST vpopmail-5.4.33.tar.gz 612271 SHA256 383c7436dfb18e773336f608f1771fc08559143c4f3938a5807a0cc5994c44f4 SHA512 abd5060d709c661d95ca442c6f77c4c27cf30a3c6790fc36d76ccf379ed2e08c1f0af697b2bcc57176a2cdb2cb67f6c27236d7b3fa69a135fa87f45a5df208ab WHIRLPOOL 9b49635984e541880528e56da9932a74e1a0988ef0b82f0f15538b6f9744c3bf1e86da45dd5de0c55af714669547c48d1f13830c8480e6760bc548b5047520f3
diff --git a/net-mail/vpopmail/files/99vpopmail b/net-mail/vpopmail/files/99vpopmail
new file mode 100644
index 000000000000..02d0a9c4d35a
--- /dev/null
+++ b/net-mail/vpopmail/files/99vpopmail
@@ -0,0 +1,2 @@
+ROOTPATH="/var/vpopmail/bin"
+CONFIG_PROTECT="/var/vpopmail/etc"
diff --git a/net-mail/vpopmail/files/vpopmail-5.4.9-access.violation.patch b/net-mail/vpopmail/files/vpopmail-5.4.9-access.violation.patch
new file mode 100644
index 000000000000..7a31fa9a3d3e
--- /dev/null
+++ b/net-mail/vpopmail/files/vpopmail-5.4.9-access.violation.patch
@@ -0,0 +1,27 @@
+--- configure.in.org 2004-06-30 22:11:08.000000000 -0700
++++ configure.in 2004-08-22 16:45:36.279473008 -0700
+@@ -463,16 +463,16 @@
+ if test ! -d $vpopmaildir
+ then
+ AC_MSG_WARN( creating $vpopmaildir )
+- mkdir -p $vpopmaildir
+- chown $vpopmailuid $vpopmaildir
+- chgrp $vpopmailgid $vpopmaildir
+- chmod 755 $vpopmaildir
++ mkdir -p ${D}/$vpopmaildir
++ chown $vpopmailuid ${D}/$vpopmaildir
++ chgrp $vpopmailgid ${D}/$vpopmaildir
++ chmod 755 ${D}/$vpopmaildir
+ fi
+ AC_MSG_WARN( making a vpopmail etc directory )
+- mkdir $vpopmaildir/etc
+- chown $vpopmailuid "$vpopmaildir"/etc
+- chgrp $vpopmailgid "$vpopmaildir"/etc
+- chmod 755 "$vpopmaildir"/etc
++ mkdir ${D}/$vpopmaildir/etc
++ chown $vpopmailuid ${D}/$vpopmaildir/etc
++ chgrp $vpopmailgid ${D}/$vpopmaildir/etc
++ chmod 755 ${D}/$vpopmaildir/etc
+ fi
+
+ #----------------------------------------------------------------------
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..89934db35737
--- /dev/null
+++ b/net-mail/vpopmail/files/vpopmail-Maildir-dotmaildir-fix.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+# Written by Robin H. Johnson, robbat2@gentoo.org
+
+OLDNAME='Maildir'
+NEWNAME='.maildir'
+SEARCHPATH=/var/vpopmail/domains/
+MINDEPTH=3
+# If you have a very large vpopmail deployment, you may need to increase MAXDEPTH.
+MAXDEPTH=6
+
+if [ "${1}" == '--revert' ]; then
+ SEARCHNAME="${NEWNAME}"
+ REPLACENAME="${OLDNAME}"
+else
+ SEARCHNAME="${OLDNAME}"
+ REPLACENAME="${NEWNAME}"
+fi
+
+echo "Doing '${SEARCHNAME}' '${REPLACENAME}' changeover"
+echo find ${SEARCHPATH} -name "${SEARCHNAME}" -maxdepth $MAXDEPTH -mindepth $MINDEPTH -type d
+for i in `find ${SEARCHPATH} -name "${SEARCHNAME}" -maxdepth $MAXDEPTH -mindepth $MINDEPTH -type d`; do
+ foundname=${i/${SEARCHNAME}*}${SEARCHNAME}
+ base="`dirname $i`"
+ todoname=${base}/${REPLACENAME}
+ #echo "$foundname -> $todoname"
+ 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/files/vpopmail-double-free.patch b/net-mail/vpopmail/files/vpopmail-double-free.patch
new file mode 100644
index 000000000000..d7d118578d73
--- /dev/null
+++ b/net-mail/vpopmail/files/vpopmail-double-free.patch
@@ -0,0 +1,13 @@
+diff --git a/trunk/vpalias.c b/trunk/vpalias.c
+index 9853f14..e9bd81f 100644
+--- a/trunk/vpalias.c
++++ b/trunk/vpalias.c
+@@ -369,7 +369,7 @@ char *valias_select_names( char *domain )
+ }
+ }
+ }
+- if (num_names < max_names) {
++ if (num_names < max_names && num_names > 0) {
+ new_names = realloc( names, num_names * sizeof(char *) );
+ if (new_names != NULL)
+ names = new_names;
diff --git a/net-mail/vpopmail/files/vpopmail-lazy.patch b/net-mail/vpopmail/files/vpopmail-lazy.patch
new file mode 100644
index 000000000000..e47bbaa9d4ba
--- /dev/null
+++ b/net-mail/vpopmail/files/vpopmail-lazy.patch
@@ -0,0 +1,10 @@
+--- Makefile.am.orig 2005-11-18 03:19:43.000000000 +0100
++++ Makefile.am 2005-11-18 03:20:18.000000000 +0100
+@@ -33,6 +33,7 @@
+
+ vchkpw_SOURCES = vchkpw.c md5.c hmac_md5.c
+ vchkpw_LDADD = libvpopmail.a @auth_libs@
++vchkpw_LDFLAGS = -Wl,-z,now
+
+ vchangepw_SOURCES = vchangepw.c
+ vchangepw_LDADD = libvpopmail.a @auth_libs@
diff --git a/net-mail/vpopmail/files/vpopmail-vpgsql.patch b/net-mail/vpopmail/files/vpopmail-vpgsql.patch
new file mode 100644
index 000000000000..1d387e43f59d
--- /dev/null
+++ b/net-mail/vpopmail/files/vpopmail-vpgsql.patch
@@ -0,0 +1,94 @@
+--- vpgsql.c.2 2011-02-28 18:00:45.000000000 +0100
++++ vpgsql.c 2011-08-06 05:46:49.959717911 +0200
+@@ -392,10 +392,10 @@
+ #endif
+
+ #ifdef ENABLE_SQL_LOGGING
+- qnprintf( sqlBufUpdate, SQL_BUF_SIZE,
++ qnprintf( SqlBufUpdate, SQL_BUF_SIZE,
+ "delete from vlog where domain = '%s'", domain );
+ pgres=PQexec(pgc, SqlBufUpdate);
+- if( !pgres || PGresultStatus(pgres)!=PGRES_COMMAND_OK) {
++ if( !pgres || PQresultStatus(pgres)!=PGRES_COMMAND_OK) {
+ return(-1);
+ }
+ #endif
+@@ -445,11 +445,11 @@
+ #endif
+
+ #ifdef ENABLE_SQL_LOGGING
+- qnprintf( sqlBufUpdate, SQL_BUF_SIZE,
++ qnprintf( SqlBufUpdate, SQL_BUF_SIZE,
+ "delete from vlog where domain = '%s' and user='%s'",
+ domain, user );
+ pgres=PQexec(pgc, SqlBufUpdate);
+- if( !pgres || PGresultStatus(pgres)!=PGRES_COMMAND_OK) {
++ if( !pgres || PQresultStatus(pgres)!=PGRES_COMMAND_OK) {
+ err = -1;
+ }
+ #endif
+@@ -1555,6 +1555,64 @@
+ return valias_current->data;
+ }
+ }
++
++char *valias_select_names( char *alias, char *domain )
++{
++ PGresult *pgres;
++ int err;
++ unsigned ntuples, ctuple;
++ struct linklist *temp_entry = NULL;
++
++ /* remove old entries as necessary */
++ while (valias_current != NULL)
++ valias_current = linklist_del (valias_current);
++
++ if ( (err =vauth_open(0)) != 0 ) return (NULL);
++
++ qnprintf( SqlBufRead, SQL_BUF_SIZE,
++ "select distinct alias from valias where domain = '%s' order by alias", domain);
++ if ( ! (pgres=PQexec(pgc, SqlBufRead))
++ || PQresultStatus(pgres) != PGRES_TUPLES_OK ) {
++ if(pgres) PQclear(pgres);
++ vcreate_valias_table();
++ if ( ! (pgres=PQexec(pgc, SqlBufRead))
++ || PQresultStatus(pgres) != PGRES_TUPLES_OK ) {
++ fprintf(stderr,"vpgsql: sql error[o]: %s\n",
++ PQerrorMessage(pgc));
++ if (pgres) PQclear (pgres);
++ return(NULL);
++ }
++ }
++ ntuples = PQntuples (pgres);
++ for (ctuple = 0; ctuple < ntuples; ctuple++) {
++ temp_entry = linklist_add (temp_entry, PQgetvalue (pgres, ctuple, 1), PQgetvalue (pgres, ctuple, 0));
++ if (valias_current == NULL) valias_current = temp_entry;
++ }
++ PQclear (pgres);
++ pgres = NULL;
++
++ if (valias_current == NULL) return NULL; /* no results */
++ else {
++ strcpy (alias, valias_current->d2);
++ return(valias_current->data);
++ }
++}
++
++char *valias_select_names_next(char *alias)
++{
++ if (valias_current == NULL) return NULL;
++ valias_current = linklist_del (valias_current);
++
++ if (valias_current == NULL) return NULL; /* no results */
++ else {
++ strcpy(alias, valias_current->d2);
++ return(valias_current->data);
++ }
++}
++
++void valias_select_names_end() {
++ // not needed with PostgreSQL
++}
+ #endif
+
+ #ifdef ENABLE_SQL_LOGGING
diff --git a/net-mail/vpopmail/metadata.xml b/net-mail/vpopmail/metadata.xml
new file mode 100644
index 000000000000..3e79a0fb7bce
--- /dev/null
+++ b/net-mail/vpopmail/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>qmail</herd>
+ <use>
+ <flag name="clearpasswd">Enables cleartext password storage in the
+ vpasswd files</flag>
+ <flag name="ipalias">Enables enable-ip-alias-domains</flag>
+ <flag name="maildrop">Enables <pkg>mail-filter/maildrop</pkg> support
+ in vdelivermail</flag>
+ <flag name="spamassassin">Enables <pkg>mail-filter/spamassassin</pkg>
+ support</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">vpopmail</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-mail/vpopmail/vpopmail-5.4.16.ebuild b/net-mail/vpopmail/vpopmail-5.4.16.ebuild
new file mode 100644
index 000000000000..920037acc8da
--- /dev/null
+++ b/net-mail/vpopmail/vpopmail-5.4.16.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils fixheadtails autotools user
+
+# TODO: all ldap, sybase support
+#MY_PV=${PV/_/-}
+#MY_P=${PN}-${MY_PV}
+HOMEPAGE="http://www.inter7.com/index.php?page=vpopmail"
+DESCRIPTION="A collection of programs to manage virtual email domains and accounts on your Qmail mail servers"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm hppa ~ia64 ppc s390 sh sparc x86"
+IUSE="mysql ipalias clearpasswd"
+# vpopmail will NOT build if non-root.
+RESTRICT="userpriv"
+
+DEPEND_COMMON="virtual/qmail
+ mysql? ( virtual/mysql )"
+DEPEND="sys-apps/sed
+ sys-apps/ucspi-tcp
+ ${DEPEND_COMMON}"
+RDEPEND="${DEPEND_COMMON}
+ virtual/cron"
+
+# S="${WORKDIR}/${MY_P}"
+
+# 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=$(egethome vpopmail)
+ 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."
+ VPOP_HOME="${VPOP_DEFAULT_HOME}"
+ else
+ einfo "Setting VPOP_HOME to: $VPOP_HOME"
+ fi
+}
+
+pkg_setup() {
+ enewgroup vpopmail 89
+ enewuser vpopmail 89 -1 ${VPOP_DEFAULT_HOME} vpopmail
+ upgradewarning
+}
+
+src_unpack() {
+ # cd ${WORKDIR}
+ # unpack ${MY_P}.tar.gz
+ unpack ${A}
+ cd ${S}
+
+ epatch ${FILESDIR}/${PN}-5.4.9-access.violation.patch || die "failed to patch."
+ epatch ${FILESDIR}/${PN}-lazy.patch || die "failed to patch."
+
+ sed -i \
+ 's|Maildir|.maildir|g' \
+ vchkpw.c vconvert.c vdelivermail.c \
+ vpopbull.c vpopmail.c vqmaillocal.c \
+ vuserinfo.c maildirquota.c \
+ || die "failed to change Maildir to .maildir"
+ sed -i \
+ '/printf.*vpopmail/s:vpopmail (:(:' \
+ vdelivermail.c vpopbull.c vqmaillocal.c \
+ || die "failed to remove vpopmail advertisement"
+
+ eautoreconf
+ ht_fix_file ${S}/cdb/Makefile || die "failed to fix file"
+}
+
+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-auth-module=mysql \
+ --enable-libs=/usr/include/mysql \
+ --enable-libdir=/usr/lib/mysql \
+ --enable-sql-logging=y \
+ --enable-auth-logging=y \
+ --enable-valias=y \
+ --enable-mysql-replication=n \
+ --enable-mysql-limits"
+
+ # 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-logging=y \
+ --enable-log-name=vpopmail \
+ --enable-qmail-ext \
+ --disable-tcp-rules-prog --disable-tcpserver-file --disable-roaming-users \
+ || die
+
+ # TCPRULES for relaying is now considered obsolete, use relay-ctrl instead
+ #--enable-tcprules-prog=/usr/bin/tcprules --enable-tcpserver-file=/etc/tcp.smtp \
+ #--enable-roaming-users=y --enable-relay-clear-minutes=60 \
+ #--disable-rebuild-tcpserver-file \
+
+ emake || die "Make failed."
+}
+
+src_install() {
+ vpopmail_set_homedir
+
+ make DESTDIR=${D} install || die
+ dosed ${VPOP_HOME}/etc/inc_deps
+ dosed ${VPOP_HOME}/etc/lib_deps
+
+ into /var/vpopmail
+ dobin ${FILESDIR}/vpopmail-Maildir-dotmaildir-fix.sh
+ into /usr
+
+ # Install documentation.
+ dodoc AUTHORS ChangeLog FAQ INSTALL README*
+ 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
+ #config file position
+ mv ${D}/var/vpopmail/etc/vpopmail.mysql ${D}/etc/vpopmail.conf
+ dosym /etc/vpopmail.conf /var/vpopmail/etc/vpopmail.mysql
+ sed -e '12d' -i ${D}/etc/vpopmail.conf
+ echo '# Read-only DB' >>${D}/etc/vpopmail.conf
+ echo 'localhost|0|vpopmail|secret|vpopmail' >>${D}/etc/vpopmail.conf
+ echo '# Write DB' >>${D}/etc/vpopmail.conf
+ echo 'localhost|0|vpopmail|secret|vpopmail' >>${D}/etc/vpopmail.conf
+ # lock down perms
+ fperms 640 /etc/vpopmail.conf
+ fowners root:vpopmail /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
+ doenvd ${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:0 ${D}${VPOP_HOME}/{bin,etc,include}
+ chown root:vpopmail ${D}${VPOP_HOME}/bin/vchkpw
+ chmod 4711 ${D}${VPOP_HOME}/bin/vchkpw
+}
+
+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
+ elog "You have 'mysql' turned on in your USE"
+ elog "Vpopmail needs a VALID MySQL USER. Let's call it 'vpopmail'"
+ elog "You MUST add it and then specify its passwd in the /etc/vpopmail.conf file"
+ elog
+ elog "First log into mysql as your mysql root user and pass. Then:"
+ elog "> create database vpopmail;"
+ elog "> use mysql;"
+ elog "> grant select, insert, update, delete, create, drop on vpopmail.* to"
+ elog " vpopmail@localhost identified by 'your password';"
+ elog "> flush privileges;"
+ elog
+ elog "If you have problems with vpopmail not accepting mail properly,"
+ elog "please ensure that /etc/vpopmail.conf is chmod 640 and"
+ elog "owned by root:vpopmail"
+ fi
+ # do this for good measure
+ if [ -e /etc/vpopmail.conf ] ; then
+ chmod 640 /etc/vpopmail.conf
+ chown root:vpopmail /etc/vpopmail.conf
+ fi
+
+ upgradewarning
+}
+
+pkg_postrm() {
+ vpopmail_set_homedir
+
+ elog "The vpopmail DATA will NOT be removed automatically."
+ elog "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! (It can do conversions both ways)."
+ ewarn "You should be able to run it right away without any changes."
+ echo
+ einfo "Use of vpopmail's tcp.smtp[.cdb] is also deprecated now, consider"
+ einfo "using net-mail/relay-ctrl instead."
+}
diff --git a/net-mail/vpopmail/vpopmail-5.4.30-r1.ebuild b/net-mail/vpopmail/vpopmail-5.4.30-r1.ebuild
new file mode 100644
index 000000000000..87b31973dc8e
--- /dev/null
+++ b/net-mail/vpopmail/vpopmail-5.4.30-r1.ebuild
@@ -0,0 +1,231 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit autotools eutils fixheadtails qmail user
+
+HOMEPAGE="http://www.inter7.com/index.php?page=vpopmail"
+DESCRIPTION="A collection of programs to manage virtual email domains and accounts on your Qmail mail servers"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm hppa ia64 ppc s390 sh sparc x86"
+IUSE="clearpasswd ipalias maildrop mysql"
+
+DEPEND="virtual/qmail
+ maildrop? ( mail-filter/maildrop )
+ mysql? ( virtual/mysql )"
+RDEPEND="${DEPEND}"
+
+# This makes sure the variable is set, and that it isn't null.
+VPOP_DEFAULT_HOME="/var/vpopmail"
+
+vpopmail_set_homedir() {
+ VPOP_HOME=$(egethome vpopmail)
+ if [[ -z "${VPOP_HOME}" ]]; then
+ ebeep
+ eerror "vpopmail's home directory is null in passwd data!"
+ eerror "You probably want to check that out."
+ eerror "Continuing with default."
+ VPOP_HOME="${VPOP_DEFAULT_HOME}"
+ else
+ einfo "Setting VPOP_HOME to: $VPOP_HOME"
+ fi
+}
+
+pkg_setup() {
+ enewgroup vpopmail 89
+ enewuser vpopmail 89 -1 ${VPOP_DEFAULT_HOME} vpopmail
+ upgradewarning
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-5.4.9-access.violation.patch
+ epatch "${FILESDIR}"/${PN}-lazy.patch
+ epatch "${FILESDIR}"/${PN}-double-free.patch
+
+ # fix maildir paths
+ sed -i -e 's|Maildir|.maildir|g' \
+ vchkpw.c vconvert.c vdelivermail.c \
+ vpopbull.c vpopmail.c vqmaillocal.c \
+ vuserinfo.c maildirquota.c || die
+
+ # remove vpopmail advertisement
+ sed -i -e '/printf.*vpopmail/s:vpopmail (:(:' \
+ vdelivermail.c vpopbull.c vqmaillocal.c || die
+
+ eautoreconf
+ ht_fix_file cdb/Makefile
+}
+
+src_configure() {
+ vpopmail_set_homedir
+
+ if use mysql; then
+ authopts=" \
+ --enable-auth-module=mysql \
+ --enable-libdir=/usr/lib/mysql \
+ --enable-sql-logging \
+ --enable-valias \
+ --disable-mysql-replication \
+ --enable-mysql-limits"
+ else
+ authopts="--enable-auth-module=cdb"
+ fi
+
+ econf ${authopts} \
+ --sysconfdir=${VPOP_HOME}/etc \
+ --enable-non-root-build \
+ --enable-qmaildir=${QMAIL_HOME} \
+ --enable-qmail-newu=${QMAIL_HOME}/bin/qmail-newu \
+ --enable-qmail-inject=${QMAIL_HOME}/bin/qmail-inject \
+ --enable-qmail-newmrh=${QMAIL_HOME}/bin/qmail-newmrh \
+ --enable-vpopuser=vpopmail \
+ --enable-vpopgroup=vpopmail \
+ --enable-many-domains \
+ --enable-file-locking \
+ --enable-file-sync \
+ --enable-md5-passwords \
+ --enable-logging \
+ --enable-auth-logging \
+ --enable-log-name=vpopmail \
+ --enable-qmail-ext \
+ --disable-tcpserver-file \
+ --disable-roaming-users \
+ $(use_enable ipalias ip-alias-domains) \
+ $(use_enable clearpasswd clear-passwd) \
+ $(use_enable maildrop) \
+ $(use_enable maildrop maildrop-prog /usr/bin/maildrop)
+}
+
+src_compile() {
+ emake || die "make failed"
+}
+
+src_install() {
+ vpopmail_set_homedir
+
+ # bug #277764
+ emake -j1 DESTDIR="${D}" install || die "make install failed"
+ keepdir "${VPOP_HOME}"/domains
+
+ # install helper script for maildir conversion
+ into "${VPOP_HOME}"
+ dobin "${FILESDIR}"/vpopmail-Maildir-dotmaildir-fix.sh
+ into /usr
+
+ dodoc doc/AUTHORS ChangeLog doc/FAQ doc/INSTALL doc/README*
+ dohtml 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
+ dodir /etc
+ mv "${D}${VPOP_HOME}"/etc/vpopmail.mysql "${D}"/etc/vpopmail.conf
+ dosym /etc/vpopmail.conf "${VPOP_HOME}"/etc/vpopmail.mysql
+
+ sed -e '12d' -i "${D}"/etc/vpopmail.conf
+ echo '# Read-only DB' >> "${D}"/etc/vpopmail.conf
+ echo 'localhost|0|vpopmail|secret|vpopmail' >> "${D}"/etc/vpopmail.conf
+ echo '# Write DB' >> "${D}"/etc/vpopmail.conf
+ echo 'localhost|0|vpopmail|secret|vpopmail' >> "${D}"/etc/vpopmail.conf
+
+ # lock down perms
+ fperms 640 /etc/vpopmail.conf
+ fowners root:vpopmail /etc/vpopmail.conf
+ fi
+
+ insinto "${VPOP_HOME}"/etc
+ doins vusagec.conf
+ dosym "${VPOP_HOME}"/etc/vusagec.conf /etc/vusagec.conf
+ sed -i 's/Disable = False;/Disable = True;/g' "${D}${VPOP_HOME}"/etc/vusagec.conf
+
+ einfo "Installing env.d entry"
+ dodir /etc/env.d
+ doenvd "${FILESDIR}"/99vpopmail
+
+ einfo "Locking down vpopmail permissions"
+ fowners root:0 -R "${VPOP_HOME}"/{bin,etc,include}
+ fowners root:vpopmail "${VPOP_HOME}"/bin/vchkpw
+ fperms 4711 "${VPOP_HOME}"/bin/vchkpw
+}
+
+pkg_postinst() {
+ if use mysql ; then
+ elog
+ elog "You have 'mysql' turned on in your USE"
+ elog "Vpopmail needs a VALID MySQL USER. Let's call it 'vpopmail'"
+ elog "You MUST add it and then specify its passwd in the /etc/vpopmail.conf file"
+ elog
+ elog "First log into mysql as your mysql root user and pass. Then:"
+ elog "> create database vpopmail;"
+ elog "> use mysql;"
+ elog "> grant select, insert, update, delete, create, drop on vpopmail.* to"
+ elog " vpopmail@localhost identified by 'your password';"
+ elog "> flush privileges;"
+ elog
+ elog "If you have problems with vpopmail not accepting mail properly,"
+ elog "please ensure that /etc/vpopmail.conf is chmod 640 and"
+ elog "owned by root:vpopmail"
+ elog
+ fi
+
+ # do this for good measure
+ if [[ -e /etc/vpopmail.conf ]]; then
+ chmod 640 /etc/vpopmail.conf
+ chown root:vpopmail /etc/vpopmail.conf
+ fi
+
+ upgradewarning
+}
+
+pkg_postrm() {
+ vpopmail_set_homedir
+
+ elog "The vpopmail DATA will NOT be removed automatically."
+ elog "You can delete them manually by removing the ${VPOP_HOME} directory."
+}
+
+upgradewarning() {
+ ewarn
+ 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 ${VPOP_HOME}/bin/vpopmail-Maildir-dotmaildir-fix.sh"
+ ewarn "to upgrade your system! (It can do conversions both ways)."
+ ewarn "You should be able to run it right away without any changes."
+ ewarn
+
+ elog
+ elog "Use of vpopmail's tcp.smtp[.cdb] is also deprecated now, consider"
+ elog "using net-mail/relay-ctrl instead."
+ elog
+
+ if use mysql; then
+ elog
+ elog "If you are upgrading from 5.4.17 or older, you have to fix your"
+ elog "MySQL tables:"
+ elog
+ elog 'ALTER TABLE `dir_control` CHANGE `domain` `domain` CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `ip_alias_map` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `lastauth` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `valias` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `vlog` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `vpopmail` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `limits` CHANGE domain domain CHAR(96) NOT NULL,'
+ elog ' ADD `disable_spamassassin` TINYINT(1) DEFAULT '0' NOT NULL AFTER `disable_smtp`,'
+ elog ' ADD `delete_spam` TINYINT(1) DEFAULT '0' NOT NULL AFTER `disable_spamassassin`;'
+ elog
+ fi
+
+ ewarn
+ ewarn "Newer versions of vpopmail contain a quota daemon called vusaged."
+ ewarn "This ebuild DOES NOT INSTALL vusaged and has therefore disabled"
+ ewarn "its usage in ${VPOP_HOME}/etc/vusagec.conf. DO NOT ENABLE!"
+ ewarn "Otherwise mail delivery WILL BREAK"
+ ewarn
+}
diff --git a/net-mail/vpopmail/vpopmail-5.4.30-r2.ebuild b/net-mail/vpopmail/vpopmail-5.4.30-r2.ebuild
new file mode 100644
index 000000000000..59ddd969b329
--- /dev/null
+++ b/net-mail/vpopmail/vpopmail-5.4.30-r2.ebuild
@@ -0,0 +1,233 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit autotools eutils fixheadtails qmail user
+
+HOMEPAGE="http://www.inter7.com/index.php?page=vpopmail"
+DESCRIPTION="A collection of programs to manage virtual email domains and accounts on your Qmail mail servers"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="clearpasswd ipalias maildrop mysql spamassassin"
+
+DEPEND="virtual/qmail
+ maildrop? ( mail-filter/maildrop )
+ mysql? ( virtual/mysql )
+ spamassassin? ( mail-filter/spamassassin )"
+RDEPEND="${DEPEND}"
+
+# This makes sure the variable is set, and that it isn't null.
+VPOP_DEFAULT_HOME="/var/vpopmail"
+
+vpopmail_set_homedir() {
+ VPOP_HOME=$(egethome vpopmail)
+ if [[ -z "${VPOP_HOME}" ]]; then
+ ebeep
+ eerror "vpopmail's home directory is null in passwd data!"
+ eerror "You probably want to check that out."
+ eerror "Continuing with default."
+ VPOP_HOME="${VPOP_DEFAULT_HOME}"
+ else
+ einfo "Setting VPOP_HOME to: $VPOP_HOME"
+ fi
+}
+
+pkg_setup() {
+ enewgroup vpopmail 89
+ enewuser vpopmail 89 -1 ${VPOP_DEFAULT_HOME} vpopmail
+ upgradewarning
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-5.4.9-access.violation.patch
+ epatch "${FILESDIR}"/${PN}-lazy.patch
+ epatch "${FILESDIR}"/${PN}-double-free.patch
+
+ # fix maildir paths
+ sed -i -e 's|Maildir|.maildir|g' \
+ vchkpw.c vconvert.c vdelivermail.c \
+ vpopbull.c vpopmail.c vqmaillocal.c \
+ vuserinfo.c maildirquota.c || die
+
+ # remove vpopmail advertisement
+ sed -i -e '/printf.*vpopmail/s:vpopmail (:(:' \
+ vdelivermail.c vpopbull.c vqmaillocal.c || die
+
+ eautoreconf
+ ht_fix_file cdb/Makefile
+}
+
+src_configure() {
+ vpopmail_set_homedir
+
+ if use mysql; then
+ authopts=" \
+ --enable-auth-module=mysql \
+ --enable-libdir=/usr/lib/mysql \
+ --enable-sql-logging \
+ --enable-valias \
+ --disable-mysql-replication \
+ --enable-mysql-limits"
+ else
+ authopts="--enable-auth-module=cdb"
+ fi
+
+ econf ${authopts} \
+ --sysconfdir=${VPOP_HOME}/etc \
+ --enable-non-root-build \
+ --enable-qmaildir=${QMAIL_HOME} \
+ --enable-qmail-newu=${QMAIL_HOME}/bin/qmail-newu \
+ --enable-qmail-inject=${QMAIL_HOME}/bin/qmail-inject \
+ --enable-qmail-newmrh=${QMAIL_HOME}/bin/qmail-newmrh \
+ --enable-vpopuser=vpopmail \
+ --enable-vpopgroup=vpopmail \
+ --enable-many-domains \
+ --enable-file-locking \
+ --enable-file-sync \
+ --enable-md5-passwords \
+ --enable-logging \
+ --enable-auth-logging \
+ --enable-log-name=vpopmail \
+ --enable-qmail-ext \
+ --disable-tcpserver-file \
+ --disable-roaming-users \
+ $(use_enable ipalias ip-alias-domains) \
+ $(use_enable clearpasswd clear-passwd) \
+ $(use_enable maildrop) \
+ $(use_enable maildrop maildrop-prog /usr/bin/maildrop) \
+ $(use_enable spamassassin)
+}
+
+src_compile() {
+ emake || die "make failed"
+}
+
+src_install() {
+ vpopmail_set_homedir
+
+ # bug #277764
+ emake -j1 DESTDIR="${D}" install || die "make install failed"
+ keepdir "${VPOP_HOME}"/domains
+
+ # install helper script for maildir conversion
+ into "${VPOP_HOME}"
+ dobin "${FILESDIR}"/vpopmail-Maildir-dotmaildir-fix.sh
+ into /usr
+
+ dodoc doc/AUTHORS ChangeLog doc/FAQ doc/INSTALL doc/README*
+ dohtml 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
+ dodir /etc
+ mv "${D}${VPOP_HOME}"/etc/vpopmail.mysql "${D}"/etc/vpopmail.conf
+ dosym /etc/vpopmail.conf "${VPOP_HOME}"/etc/vpopmail.mysql
+
+ sed -e '12d' -i "${D}"/etc/vpopmail.conf
+ echo '# Read-only DB' >> "${D}"/etc/vpopmail.conf
+ echo 'localhost|0|vpopmail|secret|vpopmail' >> "${D}"/etc/vpopmail.conf
+ echo '# Write DB' >> "${D}"/etc/vpopmail.conf
+ echo 'localhost|0|vpopmail|secret|vpopmail' >> "${D}"/etc/vpopmail.conf
+
+ # lock down perms
+ fperms 640 /etc/vpopmail.conf
+ fowners root:vpopmail /etc/vpopmail.conf
+ fi
+
+ insinto "${VPOP_HOME}"/etc
+ doins vusagec.conf
+ dosym "${VPOP_HOME}"/etc/vusagec.conf /etc/vusagec.conf
+ sed -i 's/Disable = False;/Disable = True;/g' "${D}${VPOP_HOME}"/etc/vusagec.conf
+
+ einfo "Installing env.d entry"
+ dodir /etc/env.d
+ doenvd "${FILESDIR}"/99vpopmail
+
+ einfo "Locking down vpopmail permissions"
+ fowners root:0 -R "${VPOP_HOME}"/{bin,etc,include}
+ fowners root:vpopmail "${VPOP_HOME}"/bin/vchkpw
+ fperms 4711 "${VPOP_HOME}"/bin/vchkpw
+}
+
+pkg_postinst() {
+ if use mysql ; then
+ elog
+ elog "You have 'mysql' turned on in your USE"
+ elog "Vpopmail needs a VALID MySQL USER. Let's call it 'vpopmail'"
+ elog "You MUST add it and then specify its passwd in the /etc/vpopmail.conf file"
+ elog
+ elog "First log into mysql as your mysql root user and pass. Then:"
+ elog "> create database vpopmail;"
+ elog "> use mysql;"
+ elog "> grant select, insert, update, delete, create, drop on vpopmail.* to"
+ elog " vpopmail@localhost identified by 'your password';"
+ elog "> flush privileges;"
+ elog
+ elog "If you have problems with vpopmail not accepting mail properly,"
+ elog "please ensure that /etc/vpopmail.conf is chmod 640 and"
+ elog "owned by root:vpopmail"
+ elog
+ fi
+
+ # do this for good measure
+ if [[ -e /etc/vpopmail.conf ]]; then
+ chmod 640 /etc/vpopmail.conf
+ chown root:vpopmail /etc/vpopmail.conf
+ fi
+
+ upgradewarning
+}
+
+pkg_postrm() {
+ vpopmail_set_homedir
+
+ elog "The vpopmail DATA will NOT be removed automatically."
+ elog "You can delete them manually by removing the ${VPOP_HOME} directory."
+}
+
+upgradewarning() {
+ ewarn
+ 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 ${VPOP_HOME}/bin/vpopmail-Maildir-dotmaildir-fix.sh"
+ ewarn "to upgrade your system! (It can do conversions both ways)."
+ ewarn "You should be able to run it right away without any changes."
+ ewarn
+
+ elog
+ elog "Use of vpopmail's tcp.smtp[.cdb] is also deprecated now, consider"
+ elog "using net-mail/relay-ctrl instead."
+ elog
+
+ if use mysql; then
+ elog
+ elog "If you are upgrading from 5.4.17 or older, you have to fix your"
+ elog "MySQL tables:"
+ elog
+ elog 'ALTER TABLE `dir_control` CHANGE `domain` `domain` CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `ip_alias_map` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `lastauth` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `valias` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `vlog` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `vpopmail` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `limits` CHANGE domain domain CHAR(96) NOT NULL,'
+ elog ' ADD `disable_spamassassin` TINYINT(1) DEFAULT '0' NOT NULL AFTER `disable_smtp`,'
+ elog ' ADD `delete_spam` TINYINT(1) DEFAULT '0' NOT NULL AFTER `disable_spamassassin`;'
+ elog
+ fi
+
+ ewarn
+ ewarn "Newer versions of vpopmail contain a quota daemon called vusaged."
+ ewarn "This ebuild DOES NOT INSTALL vusaged and has therefore disabled"
+ ewarn "its usage in ${VPOP_HOME}/etc/vusagec.conf. DO NOT ENABLE!"
+ ewarn "Otherwise mail delivery WILL BREAK"
+ ewarn
+}
diff --git a/net-mail/vpopmail/vpopmail-5.4.33-r1.ebuild b/net-mail/vpopmail/vpopmail-5.4.33-r1.ebuild
new file mode 100644
index 000000000000..90f1eb27f244
--- /dev/null
+++ b/net-mail/vpopmail/vpopmail-5.4.33-r1.ebuild
@@ -0,0 +1,252 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools eutils fixheadtails qmail user
+
+HOMEPAGE="http://www.inter7.com/index.php?page=vpopmail"
+DESCRIPTION="A collection of programs to manage virtual email domains and accounts on your Qmail mail servers"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="clearpasswd ipalias maildrop mysql postgres spamassassin"
+REQUIRED_USE="mysql? ( !postgres )"
+
+DEPEND="virtual/qmail
+ maildrop? ( mail-filter/maildrop )
+ mysql? ( virtual/mysql )
+ postgres? ( dev-db/postgresql[server] )
+ spamassassin? ( mail-filter/spamassassin )"
+RDEPEND="${DEPEND}"
+
+# This makes sure the variable is set, and that it isn't null.
+VPOP_DEFAULT_HOME="/var/vpopmail"
+
+vpopmail_set_homedir() {
+ VPOP_HOME=$(egethome vpopmail)
+ if [[ -z "${VPOP_HOME}" ]]; then
+ ebeep
+ eerror "vpopmail's home directory is null in passwd data!"
+ eerror "You probably want to check that out."
+ eerror "Continuing with default."
+ VPOP_HOME="${VPOP_DEFAULT_HOME}"
+ else
+ einfo "Setting VPOP_HOME to: $VPOP_HOME"
+ fi
+}
+
+pkg_setup() {
+ enewgroup vpopmail 89
+ enewuser vpopmail 89 -1 ${VPOP_DEFAULT_HOME} vpopmail
+ upgradewarning
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-5.4.9-access.violation.patch
+ epatch "${FILESDIR}"/${PN}-lazy.patch
+ epatch "${FILESDIR}"/${PN}-double-free.patch
+ epatch "${FILESDIR}"/${PN}-vpgsql.patch
+
+ echo 'install-recursive: install-exec-am' \
+ >>"${S}"/Makefile.am
+
+ # fix maildir paths
+ sed -i -e 's|Maildir|.maildir|g' \
+ vchkpw.c vconvert.c vdelivermail.c \
+ vpopbull.c vpopmail.c vqmaillocal.c \
+ vuserinfo.c maildirquota.c || die
+
+ # remove vpopmail advertisement
+ sed -i -e '/printf.*vpopmail/s:vpopmail (:(:' \
+ vdelivermail.c vpopbull.c vqmaillocal.c || die
+
+ # automake/autoconf
+ mv -f "${S}"/configure.{in,ac} || die
+ sed -i -e 's,AM_CONFIG_HEADER,AC_CONFIG_HEADERS,g' \
+ configure.ac || die
+
+ # _FORTIFY_SOURCE
+ sed -i \
+ -e 's/\(snprintf(\s*\(LI->[a-zA-Z_]\+\),\s*\)[a-zA-Z_]\+,/\1 sizeof(\2),/' \
+ vlistlib.c || die
+
+ eautoreconf
+ ht_fix_file cdb/Makefile
+}
+
+src_configure() {
+ vpopmail_set_homedir
+
+ local authopts
+ if use mysql; then
+ mysqlinc=$(mysql_config --include)
+ authopts="--enable-incdir=${mysqlinc#-I}"
+ authopts+=" --enable-auth-module=mysql"
+ authopts+=" --enable-libdir=/usr/$(get_libdir)/mysql"
+ authopts+=" --enable-sql-logging"
+ authopts+=" --enable-valias"
+ authopts+=" --disable-mysql-replication"
+ authopts+=" --enable-mysql-limits"
+ elif use postgres; then
+ pglibdir=$(pg_config --libdir)
+ authopts+=" --enable-auth-module=pgsql"
+ authopts+=" --enable-libdir=${pglibdir}"
+ authopts+=" --enable-sql-logging"
+ authopts+=" --enable-valias"
+ else
+ authopts+=" --enable-auth-module=cdb"
+ fi
+
+ econf ${authopts} \
+ --sysconfdir=${VPOP_HOME}/etc \
+ --enable-non-root-build \
+ --enable-qmaildir=${QMAIL_HOME} \
+ --enable-qmail-newu=${QMAIL_HOME}/bin/qmail-newu \
+ --enable-qmail-inject=${QMAIL_HOME}/bin/qmail-inject \
+ --enable-qmail-newmrh=${QMAIL_HOME}/bin/qmail-newmrh \
+ --enable-vpopuser=vpopmail \
+ --enable-vpopgroup=vpopmail \
+ --enable-many-domains \
+ --enable-file-locking \
+ --enable-file-sync \
+ --enable-md5-passwords \
+ --enable-logging \
+ --enable-auth-logging \
+ --enable-log-name=vpopmail \
+ --enable-qmail-ext \
+ --disable-tcpserver-file \
+ --disable-roaming-users \
+ $(use_enable ipalias ip-alias-domains) \
+ $(use_enable clearpasswd clear-passwd) \
+ $(use_enable maildrop) \
+ $(use_enable maildrop maildrop-prog /usr/bin/maildrop) \
+ $(use_enable spamassassin)
+}
+
+src_install() {
+ vpopmail_set_homedir
+
+ emake DESTDIR="${D}" install
+ keepdir "${VPOP_HOME}"/domains
+
+ # install helper script for maildir conversion
+ into "${VPOP_HOME}"
+ dobin "${FILESDIR}"/vpopmail-Maildir-dotmaildir-fix.sh
+ into /usr
+
+ dodoc doc/AUTHORS ChangeLog doc/FAQ doc/INSTALL doc/README*
+ dohtml 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
+ dodir /etc
+ mv "${D}${VPOP_HOME}"/etc/vpopmail.mysql "${D}"/etc/vpopmail.conf
+ dosym /etc/vpopmail.conf "${VPOP_HOME}"/etc/vpopmail.mysql
+
+ sed -e '12d' -i "${D}"/etc/vpopmail.conf
+ echo '# Read-only DB' >> "${D}"/etc/vpopmail.conf
+ echo 'localhost|0|vpopmail|secret|vpopmail' >> "${D}"/etc/vpopmail.conf
+ echo '# Write DB' >> "${D}"/etc/vpopmail.conf
+ echo 'localhost|0|vpopmail|secret|vpopmail' >> "${D}"/etc/vpopmail.conf
+
+ # lock down perms
+ fperms 640 /etc/vpopmail.conf
+ fowners root:vpopmail /etc/vpopmail.conf
+ fi
+
+ insinto "${VPOP_HOME}"/etc
+ doins vusagec.conf
+ dosym "${VPOP_HOME}"/etc/vusagec.conf /etc/vusagec.conf
+ sed -i 's/Disable = False;/Disable = True;/g' "${D}${VPOP_HOME}"/etc/vusagec.conf
+
+ einfo "Installing env.d entry"
+ dodir /etc/env.d
+ doenvd "${FILESDIR}"/99vpopmail
+
+ einfo "Locking down vpopmail permissions"
+ fowners -R root:0 "${VPOP_HOME}"/{bin,etc,include}
+ fowners root:vpopmail "${VPOP_HOME}"/bin/vchkpw
+ fperms 4711 "${VPOP_HOME}"/bin/vchkpw
+}
+
+pkg_postinst() {
+ if use mysql ; then
+ elog
+ elog "You have 'mysql' turned on in your USE"
+ elog "Vpopmail needs a VALID MySQL USER. Let's call it 'vpopmail'"
+ elog "You MUST add it and then specify its passwd in the /etc/vpopmail.conf file"
+ elog
+ elog "First log into mysql as your mysql root user and pass. Then:"
+ elog "> create database vpopmail;"
+ elog "> use mysql;"
+ elog "> grant select, insert, update, delete, create, drop on vpopmail.* to"
+ elog " vpopmail@localhost identified by 'your password';"
+ elog "> flush privileges;"
+ elog
+ elog "If you have problems with vpopmail not accepting mail properly,"
+ elog "please ensure that /etc/vpopmail.conf is chmod 640 and"
+ elog "owned by root:vpopmail"
+ elog
+ fi
+
+ # do this for good measure
+ if [[ -e /etc/vpopmail.conf ]]; then
+ chmod 640 /etc/vpopmail.conf
+ chown root:vpopmail /etc/vpopmail.conf
+ fi
+
+ upgradewarning
+}
+
+pkg_postrm() {
+ vpopmail_set_homedir
+
+ elog "The vpopmail DATA will NOT be removed automatically."
+ elog "You can delete them manually by removing the ${VPOP_HOME} directory."
+}
+
+upgradewarning() {
+ ewarn
+ 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 ${VPOP_HOME}/bin/vpopmail-Maildir-dotmaildir-fix.sh"
+ ewarn "to upgrade your system! (It can do conversions both ways)."
+ ewarn "You should be able to run it right away without any changes."
+ ewarn
+
+ elog
+ elog "Use of vpopmail's tcp.smtp[.cdb] is also deprecated now, consider"
+ elog "using net-mail/relay-ctrl instead."
+ elog
+
+ if use mysql; then
+ elog
+ elog "If you are upgrading from 5.4.17 or older, you have to fix your"
+ elog "MySQL tables:"
+ elog
+ elog 'ALTER TABLE `dir_control` CHANGE `domain` `domain` CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `ip_alias_map` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `lastauth` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `valias` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `vlog` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `vpopmail` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `limits` CHANGE domain domain CHAR(96) NOT NULL,'
+ elog ' ADD `disable_spamassassin` TINYINT(1) DEFAULT '0' NOT NULL AFTER `disable_smtp`,'
+ elog ' ADD `delete_spam` TINYINT(1) DEFAULT '0' NOT NULL AFTER `disable_spamassassin`;'
+ elog
+ fi
+
+ ewarn
+ ewarn "Newer versions of vpopmail contain a quota daemon called vusaged."
+ ewarn "This ebuild DOES NOT INSTALL vusaged and has therefore disabled"
+ ewarn "its usage in ${VPOP_HOME}/etc/vusagec.conf. DO NOT ENABLE!"
+ ewarn "Otherwise mail delivery WILL BREAK"
+ ewarn
+}
diff --git a/net-mail/vpopmail/vpopmail-5.4.33.ebuild b/net-mail/vpopmail/vpopmail-5.4.33.ebuild
new file mode 100644
index 000000000000..798162c46160
--- /dev/null
+++ b/net-mail/vpopmail/vpopmail-5.4.33.ebuild
@@ -0,0 +1,241 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit autotools eutils fixheadtails qmail user
+
+HOMEPAGE="http://www.inter7.com/index.php?page=vpopmail"
+DESCRIPTION="A collection of programs to manage virtual email domains and accounts on your Qmail mail servers"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86"
+IUSE="clearpasswd ipalias maildrop mysql spamassassin"
+
+DEPEND="virtual/qmail
+ maildrop? ( mail-filter/maildrop )
+ mysql? ( virtual/mysql )
+ spamassassin? ( mail-filter/spamassassin )"
+RDEPEND="${DEPEND}"
+
+# This makes sure the variable is set, and that it isn't null.
+VPOP_DEFAULT_HOME="/var/vpopmail"
+
+vpopmail_set_homedir() {
+ VPOP_HOME=$(egethome vpopmail)
+ if [[ -z "${VPOP_HOME}" ]]; then
+ ebeep
+ eerror "vpopmail's home directory is null in passwd data!"
+ eerror "You probably want to check that out."
+ eerror "Continuing with default."
+ VPOP_HOME="${VPOP_DEFAULT_HOME}"
+ else
+ einfo "Setting VPOP_HOME to: $VPOP_HOME"
+ fi
+}
+
+pkg_setup() {
+ enewgroup vpopmail 89
+ enewuser vpopmail 89 -1 ${VPOP_DEFAULT_HOME} vpopmail
+ upgradewarning
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-5.4.9-access.violation.patch
+ epatch "${FILESDIR}"/${PN}-lazy.patch
+ epatch "${FILESDIR}"/${PN}-double-free.patch
+
+ # fix maildir paths
+ sed -i -e 's|Maildir|.maildir|g' \
+ vchkpw.c vconvert.c vdelivermail.c \
+ vpopbull.c vpopmail.c vqmaillocal.c \
+ vuserinfo.c maildirquota.c || die
+
+ # remove vpopmail advertisement
+ sed -i -e '/printf.*vpopmail/s:vpopmail (:(:' \
+ vdelivermail.c vpopbull.c vqmaillocal.c || die
+
+ # automake/autoconf
+ mv -f "${S}"/configure.{in,ac} || die
+ sed -i -e 's,AM_CONFIG_HEADER,AC_CONFIG_HEADERS,g' \
+ configure.ac || die
+
+ # _FORTIFY_SOURCE
+ sed -i \
+ -e 's/\(snprintf(\s*\(LI->[a-zA-Z_]\+\),\s*\)[a-zA-Z_]\+,/\1 sizeof(\2),/' \
+ vlistlib.c || die
+
+ eautoreconf
+ ht_fix_file cdb/Makefile
+}
+
+src_configure() {
+ vpopmail_set_homedir
+
+ local authopts
+ if use mysql; then
+ authopts="$(mysql_config --include)"
+ authopts="--enable-incdir=${authopts#-I}"
+ authopts+=" --enable-auth-module=mysql"
+ authopts+=" --enable-libdir=/usr/$(get_libdir)/mysql"
+ authopts+=" --enable-sql-logging"
+ authopts+=" --enable-valias"
+ authopts+=" --disable-mysql-replication"
+ authopts+=" --enable-mysql-limits"
+ else
+ authopts="--enable-auth-module=cdb"
+ fi
+
+ econf ${authopts} \
+ --sysconfdir=${VPOP_HOME}/etc \
+ --enable-non-root-build \
+ --enable-qmaildir=${QMAIL_HOME} \
+ --enable-qmail-newu=${QMAIL_HOME}/bin/qmail-newu \
+ --enable-qmail-inject=${QMAIL_HOME}/bin/qmail-inject \
+ --enable-qmail-newmrh=${QMAIL_HOME}/bin/qmail-newmrh \
+ --enable-vpopuser=vpopmail \
+ --enable-vpopgroup=vpopmail \
+ --enable-many-domains \
+ --enable-file-locking \
+ --enable-file-sync \
+ --enable-md5-passwords \
+ --enable-logging \
+ --enable-auth-logging \
+ --enable-log-name=vpopmail \
+ --enable-qmail-ext \
+ --disable-tcpserver-file \
+ --disable-roaming-users \
+ $(use_enable ipalias ip-alias-domains) \
+ $(use_enable clearpasswd clear-passwd) \
+ $(use_enable maildrop) \
+ $(use_enable maildrop maildrop-prog /usr/bin/maildrop) \
+ $(use_enable spamassassin)
+}
+
+src_install() {
+ vpopmail_set_homedir
+
+ # bug #277764
+ emake -j1 DESTDIR="${D}" install
+ keepdir "${VPOP_HOME}"/domains
+
+ # install helper script for maildir conversion
+ into "${VPOP_HOME}"
+ dobin "${FILESDIR}"/vpopmail-Maildir-dotmaildir-fix.sh
+ into /usr
+
+ dodoc doc/AUTHORS ChangeLog doc/FAQ doc/INSTALL doc/README*
+ dohtml 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
+ dodir /etc
+ mv "${D}${VPOP_HOME}"/etc/vpopmail.mysql "${D}"/etc/vpopmail.conf
+ dosym /etc/vpopmail.conf "${VPOP_HOME}"/etc/vpopmail.mysql
+
+ sed -e '12d' -i "${D}"/etc/vpopmail.conf
+ echo '# Read-only DB' >> "${D}"/etc/vpopmail.conf
+ echo 'localhost|0|vpopmail|secret|vpopmail' >> "${D}"/etc/vpopmail.conf
+ echo '# Write DB' >> "${D}"/etc/vpopmail.conf
+ echo 'localhost|0|vpopmail|secret|vpopmail' >> "${D}"/etc/vpopmail.conf
+
+ # lock down perms
+ fperms 640 /etc/vpopmail.conf
+ fowners root:vpopmail /etc/vpopmail.conf
+ fi
+
+ insinto "${VPOP_HOME}"/etc
+ doins vusagec.conf
+ dosym "${VPOP_HOME}"/etc/vusagec.conf /etc/vusagec.conf
+ sed -i 's/Disable = False;/Disable = True;/g' "${D}${VPOP_HOME}"/etc/vusagec.conf
+
+ einfo "Installing env.d entry"
+ dodir /etc/env.d
+ doenvd "${FILESDIR}"/99vpopmail
+
+ einfo "Locking down vpopmail permissions"
+ fowners root:0 -R "${VPOP_HOME}"/{bin,etc,include}
+ fowners root:vpopmail "${VPOP_HOME}"/bin/vchkpw
+ fperms 4711 "${VPOP_HOME}"/bin/vchkpw
+}
+
+pkg_postinst() {
+ if use mysql ; then
+ elog
+ elog "You have 'mysql' turned on in your USE"
+ elog "Vpopmail needs a VALID MySQL USER. Let's call it 'vpopmail'"
+ elog "You MUST add it and then specify its passwd in the /etc/vpopmail.conf file"
+ elog
+ elog "First log into mysql as your mysql root user and pass. Then:"
+ elog "> create database vpopmail;"
+ elog "> use mysql;"
+ elog "> grant select, insert, update, delete, create, drop on vpopmail.* to"
+ elog " vpopmail@localhost identified by 'your password';"
+ elog "> flush privileges;"
+ elog
+ elog "If you have problems with vpopmail not accepting mail properly,"
+ elog "please ensure that /etc/vpopmail.conf is chmod 640 and"
+ elog "owned by root:vpopmail"
+ elog
+ fi
+
+ # do this for good measure
+ if [[ -e /etc/vpopmail.conf ]]; then
+ chmod 640 /etc/vpopmail.conf
+ chown root:vpopmail /etc/vpopmail.conf
+ fi
+
+ upgradewarning
+}
+
+pkg_postrm() {
+ vpopmail_set_homedir
+
+ elog "The vpopmail DATA will NOT be removed automatically."
+ elog "You can delete them manually by removing the ${VPOP_HOME} directory."
+}
+
+upgradewarning() {
+ ewarn
+ 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 ${VPOP_HOME}/bin/vpopmail-Maildir-dotmaildir-fix.sh"
+ ewarn "to upgrade your system! (It can do conversions both ways)."
+ ewarn "You should be able to run it right away without any changes."
+ ewarn
+
+ elog
+ elog "Use of vpopmail's tcp.smtp[.cdb] is also deprecated now, consider"
+ elog "using net-mail/relay-ctrl instead."
+ elog
+
+ if use mysql; then
+ elog
+ elog "If you are upgrading from 5.4.17 or older, you have to fix your"
+ elog "MySQL tables:"
+ elog
+ elog 'ALTER TABLE `dir_control` CHANGE `domain` `domain` CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `ip_alias_map` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `lastauth` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `valias` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `vlog` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `vpopmail` CHANGE domain domain CHAR(96) NOT NULL;'
+ elog 'ALTER TABLE `limits` CHANGE domain domain CHAR(96) NOT NULL,'
+ elog ' ADD `disable_spamassassin` TINYINT(1) DEFAULT '0' NOT NULL AFTER `disable_smtp`,'
+ elog ' ADD `delete_spam` TINYINT(1) DEFAULT '0' NOT NULL AFTER `disable_spamassassin`;'
+ elog
+ fi
+
+ ewarn
+ ewarn "Newer versions of vpopmail contain a quota daemon called vusaged."
+ ewarn "This ebuild DOES NOT INSTALL vusaged and has therefore disabled"
+ ewarn "its usage in ${VPOP_HOME}/etc/vusagec.conf. DO NOT ENABLE!"
+ ewarn "Otherwise mail delivery WILL BREAK"
+ ewarn
+}