diff options
author | nbm <nbm@FreeBSD.org> | 2000-09-21 13:01:40 +0000 |
---|---|---|
committer | nbm <nbm@FreeBSD.org> | 2000-09-21 13:01:40 +0000 |
commit | e406cb89e646473e0a5cfe20bf30d4f0f7a22263 (patch) | |
tree | cc10b681fe3394082cd84449ed2370548c62b3c2 /mail/vpopmail | |
parent | 00ffea039fb3464410296a24619086b9678da166 (diff) | |
download | FreeBSD-ports-e406cb89e646473e0a5cfe20bf30d4f0f7a22263.zip FreeBSD-ports-e406cb89e646473e0a5cfe20bf30d4f0f7a22263.tar.gz |
Add vpopmail, a virtual host and virtual user manager for qmail, at
version 4.9.
This port reserves uid 89 and gid 89, as mentioned in the
porters-handbook.
Diffstat (limited to 'mail/vpopmail')
-rw-r--r-- | mail/vpopmail/Makefile | 47 | ||||
-rw-r--r-- | mail/vpopmail/distinfo | 1 | ||||
-rw-r--r-- | mail/vpopmail/pkg-comment | 1 | ||||
-rw-r--r-- | mail/vpopmail/pkg-descr | 21 | ||||
-rw-r--r-- | mail/vpopmail/pkg-install | 87 | ||||
-rw-r--r-- | mail/vpopmail/pkg-plist | 45 |
6 files changed, 202 insertions, 0 deletions
diff --git a/mail/vpopmail/Makefile b/mail/vpopmail/Makefile new file mode 100644 index 0000000..a7dd9b4 --- /dev/null +++ b/mail/vpopmail/Makefile @@ -0,0 +1,47 @@ +# New ports collection makefile for: vpopmail +# Date created: 21 Sep 2000 +# Whom: makeport.pl +# +# $FreeBSD$ +# + +PORTNAME= vpopmail +PORTVERSION= 4.9 +CATEGORIES= mail +MASTER_SITES= http://www.inter7.com/vpopmail/ + +MAINTAINER= nbm@FreeBSD.org + +BUILD_DEPENDS= ${QMAIL_DIR}/bin/qmail-send:${PORTSDIR}/mail/qmail \ + ${LOCALBASE}/bin/tcprules:${PORTSDIR}/sysutils/ucspi-tcp +RUN_DEPENDS= ${QMAIL_DIR}/bin/qmail-send:${PORTSDIR}/mail/qmail \ + ${LOCALBASE}/bin/tcprules:${PORTSDIR}/sysutils/ucspi-tcp + +GNU_CONFIGURE= YES +USE_GMAKE= YES + +CONFIGURE_ARGS= --enable-qmail-dir=${QMAIL_DIR} \ + --enable-tcprules-bin=${LOCALBASE}/bin/tcprules \ + --enable-tcpserver-file=~vpopmail/etc/tcp.smtp + +# +# Attempt to set the location of qmail by a simple check. Override this +# if your qmail lives elsewhere. +# + +.if exists(${LOCALBASE}/qmail/bin/qmail-send) +QMAIL_DIR?= ${LOCALBASE}/qmail +.else +QMAIL_DIR?= /var/qmail +.endif + +# +# This port doesn't honour PREFIX, it honours vpopmail's home directory. +# Since we create vpopmail if it doesn't exist, we set it so that it +# does honour PREFIX. -- nbm +# + +pre-configure: + @PKG_PREFIX=${PREFIX}/vpopmail ${PERL5} ${PKGDIR}/INSTALL + +.include <bsd.port.mk> diff --git a/mail/vpopmail/distinfo b/mail/vpopmail/distinfo new file mode 100644 index 0000000..cd3c850 --- /dev/null +++ b/mail/vpopmail/distinfo @@ -0,0 +1 @@ +MD5 (vpopmail-4.9.tar.gz) = 2b9d71ea69cbeacedce9654fc439ee19 diff --git a/mail/vpopmail/pkg-comment b/mail/vpopmail/pkg-comment new file mode 100644 index 0000000..3a0300b --- /dev/null +++ b/mail/vpopmail/pkg-comment @@ -0,0 +1 @@ +Easy virtual domain and authentication package for use with qmail diff --git a/mail/vpopmail/pkg-descr b/mail/vpopmail/pkg-descr new file mode 100644 index 0000000..a98ec621 --- /dev/null +++ b/mail/vpopmail/pkg-descr @@ -0,0 +1,21 @@ +vpopmail provides an easy way to manage virtual domains and virtual +accounts on a qmail mail server. + +Features: + +. Automates all qmail file modifications into documented command line + programs + +. Support for named and IP-based virtual domains + +. NFS safe + +. dynamic directory creation for scalability using fill-in balanced 3 + level tree + +. understands standard qmail .qmail directives + +. interacts well with qmailadmin for web-based administration, courier-imap + for IMAP support, and sqwebmail for web-based mail. + +WWW: http://inter7.com/vpopmail/ diff --git a/mail/vpopmail/pkg-install b/mail/vpopmail/pkg-install new file mode 100644 index 0000000..f3004e7 --- /dev/null +++ b/mail/vpopmail/pkg-install @@ -0,0 +1,87 @@ +#!/usr/bin/perl +# + +@groups = ("vchkpw"); +%users = ('vpopmail', "vchkpw"); +# daemon, local, pop, queue, remote, deliver, respectively. +# alias is a special case above... +%gids = ("vchkpw", 89); +%uids = ('vpopmail', 89); + +if ($ENV{PACKAGE_BUILDING} || $ARGV[1] eq "PRE-INSTALL") { + $doguid=1; # Make sure we get the assigned guids. +} + +foreach $group (@groups) { + if (! getgrnam ($group)) { + do checkrpw; # May exit + + $x = "-g $gids{$group}"; + $result = system ("/usr/sbin/pw groupadd $group $x"); + if ($result) { + die "Failed to add group $group as gid $gids{$group}\n"; + } + } +} + +if (! getpwnam ("alias")) { + do checkrpw; # May exit + + $x = "-u $uids{'alias'}"; + $result = system ("/usr/sbin/pw useradd alias -g qnofiles -d \"$ENV{PKG_PREFIX}/alias\" -s /nonexistent $x"); + if ($result) { + die "Failed to add user alias as uid $uids{'alias'}\n"; + } +} + +foreach $user (keys %users) { + if (! getpwnam ($user)) { + do checkrpw; # May exit + + $x = "-u $uids{$user}"; + $result = system ("/usr/sbin/pw useradd $user -g $users{$user} -d \"$ENV{PKG_PREFIX}\" -s /nonexistent $x"); + if ($result) { + die "Failed to add user $user as uid $uids{$user}\n"; + } + } +} + +# Check that all gids/uids are as they should be... +# If we are being installed as a package... +if ($doguid) { + foreach $group (@groups) { + if (getgrnam($group) != $gids{$group}) { + die "Group $group should have gid $gids{$group}\n"; + } + } + + foreach $user (keys %users) { + if (getpwnam($user) != $uids{$user}) { + die "User $user should have uid $uids{$user}\n"; + } + } +} + +exit 0; + +sub checkrpw { + if (! -x "/usr/sbin/pw") { + print <<'EOM'; +This system looks like a pre-2.2 version of FreeBSD. We see that it +is missing the "pw" utility. We need this utility. Please get and +install it, and try again. You can get the source from: + + ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/pw.tar.gz + +EOM + die "No /usr/sbin/pw"; + } + + if ($> != 0) { + print "It is necessary to add missing vpopmail users/groups at"; + print "this stage. Please either add them manually or retry"; + print "as root."; + # Let pw(1) signal the failure so the user can see which + # group/user is actually missing. + } +} diff --git a/mail/vpopmail/pkg-plist b/mail/vpopmail/pkg-plist new file mode 100644 index 0000000..a8c5eac --- /dev/null +++ b/mail/vpopmail/pkg-plist @@ -0,0 +1,45 @@ +vpopmail/bin/clearopensmtp +vpopmail/bin/vaddaliasdomain +vpopmail/bin/vadddomain +vpopmail/bin/vadduser +vpopmail/bin/vchkpw +vpopmail/bin/vconvert +vpopmail/bin/vdeldomain +vpopmail/bin/vdelivermail +vpopmail/bin/vdeluser +vpopmail/bin/vmkpasswd +vpopmail/bin/vmoduser +vpopmail/bin/vpasswd +vpopmail/bin/vpopbull +vpopmail/bin/vsetuserquota +vpopmail/bin/vuserinfo +vpopmail/doc/doc_html/vpopmail.html +vpopmail/doc/doc_html/vpopmailapi.png +vpopmail/doc/man_html/clearopensmtp.html +vpopmail/doc/man_html/index.html +vpopmail/doc/man_html/vaddaliasdomain.html +vpopmail/doc/man_html/vadddomain.html +vpopmail/doc/man_html/vadduser.html +vpopmail/doc/man_html/vchkpw.html +vpopmail/doc/man_html/vconvert.html +vpopmail/doc/man_html/vdeldomain.html +vpopmail/doc/man_html/vdelivermail.html +vpopmail/doc/man_html/vdeluser.html +vpopmail/doc/man_html/vpasswd.html +vpopmail/doc/man_html/vpopbull.html +vpopmail/doc/man_html/vsetuserquota.html +vpopmail/include/config.h +vpopmail/include/vauth.h +vpopmail/include/vpopmail.h +vpopmail/include/vpopmail_config.h +vpopmail/lib/libvpopmail.a +@dirrm vpopmail/users +@dirrm vpopmail/lib +@dirrm vpopmail/include +@dirrm vpopmail/etc +@dirrm vpopmail/domains +@dirrm vpopmail/doc/man_html +@dirrm vpopmail/doc/doc_html +@dirrm vpopmail/doc +@dirrm vpopmail/bin +@dirrm vpopmail |