From 56bd759df1d0c750a065b8c845e93d5dfa6b549d Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Sat, 8 Aug 2015 13:49:04 -0700 Subject: proj/gentoo: Initial commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 X-Thanks: Alec Warner - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring - wrote much python to improve cvs2svn X-Thanks: Rich Freeman - validation scripts X-Thanks: Patrick Lauer - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed --- net-mail/vpopmail/Manifest | 3 + net-mail/vpopmail/files/99vpopmail | 2 + .../files/vpopmail-5.4.9-access.violation.patch | 27 +++ .../files/vpopmail-Maildir-dotmaildir-fix.sh | 43 ++++ net-mail/vpopmail/files/vpopmail-double-free.patch | 13 ++ net-mail/vpopmail/files/vpopmail-lazy.patch | 10 + net-mail/vpopmail/files/vpopmail-vpgsql.patch | 94 ++++++++ net-mail/vpopmail/metadata.xml | 17 ++ net-mail/vpopmail/vpopmail-5.4.16.ebuild | 246 ++++++++++++++++++++ net-mail/vpopmail/vpopmail-5.4.30-r1.ebuild | 231 +++++++++++++++++++ net-mail/vpopmail/vpopmail-5.4.30-r2.ebuild | 233 +++++++++++++++++++ net-mail/vpopmail/vpopmail-5.4.33-r1.ebuild | 252 +++++++++++++++++++++ net-mail/vpopmail/vpopmail-5.4.33.ebuild | 241 ++++++++++++++++++++ 13 files changed, 1412 insertions(+) create mode 100644 net-mail/vpopmail/Manifest create mode 100644 net-mail/vpopmail/files/99vpopmail create mode 100644 net-mail/vpopmail/files/vpopmail-5.4.9-access.violation.patch create mode 100644 net-mail/vpopmail/files/vpopmail-Maildir-dotmaildir-fix.sh create mode 100644 net-mail/vpopmail/files/vpopmail-double-free.patch create mode 100644 net-mail/vpopmail/files/vpopmail-lazy.patch create mode 100644 net-mail/vpopmail/files/vpopmail-vpgsql.patch create mode 100644 net-mail/vpopmail/metadata.xml create mode 100644 net-mail/vpopmail/vpopmail-5.4.16.ebuild create mode 100644 net-mail/vpopmail/vpopmail-5.4.30-r1.ebuild create mode 100644 net-mail/vpopmail/vpopmail-5.4.30-r2.ebuild create mode 100644 net-mail/vpopmail/vpopmail-5.4.33-r1.ebuild create mode 100644 net-mail/vpopmail/vpopmail-5.4.33.ebuild (limited to 'net-mail/vpopmail') 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 @@ + + + + qmail + + Enables cleartext password storage in the + vpasswd files + Enables enable-ip-alias-domains + Enables mail-filter/maildrop support + in vdelivermail + Enables mail-filter/spamassassin + support + + + vpopmail + + 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 +} -- cgit v1.2.3-65-gdbad