aboutsummaryrefslogtreecommitdiff
path: root/mail/vpopmail
diff options
context:
space:
mode:
authorChris Rees <crees@FreeBSD.org>2012-06-24 16:17:36 +0000
committerChris Rees <crees@FreeBSD.org>2012-06-24 16:17:36 +0000
commit3c0834a35e9453982c2c2dc9364ec923198aca56 (patch)
treebc30e690878a9326695e959761d6a841470ad3f7 /mail/vpopmail
parent190292d4a04a262fed73be4a3ccc642697553dab (diff)
- Fix some portlint warnings
- Pass maintainership to submitter PR: ports/196359 Submitted by: Bryan Drewery <bryan@shatow.net> - Use USERS/GROUPS - Remove perl dependency PR: ports/157206 Submitted by: bapt
Notes
Notes: svn path=/head/; revision=299891
Diffstat (limited to 'mail/vpopmail')
-rw-r--r--mail/vpopmail/Makefile34
-rw-r--r--mail/vpopmail/files/patch-configure124
-rw-r--r--mail/vpopmail/pkg-install109
3 files changed, 132 insertions, 135 deletions
diff --git a/mail/vpopmail/Makefile b/mail/vpopmail/Makefile
index dbfbe12c48d8..eb83eede7649 100644
--- a/mail/vpopmail/Makefile
+++ b/mail/vpopmail/Makefile
@@ -7,20 +7,21 @@
PORTNAME= vpopmail
PORTVERSION= 5.4.32
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= mail
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}-stable/${PORTVERSION} \
SF/${PORTNAME}/${PORTNAME}-devel/${PORTVERSION}
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= bryan@shatow.net
COMMENT= Easy virtual domain and authentication package for use with qmail
+LICENSE= GPLv2 GPLv3
+LICENSE_COMB= dual
+
BUILD_DEPENDS= ${LOCALBASE}/bin/tcprules:${PORTSDIR}/sysutils/ucspi-tcp
RUN_DEPENDS= ${LOCALBASE}/bin/tcprules:${PORTSDIR}/sysutils/ucspi-tcp
PATCH_STRIP= -p1
-LICENSE= GPLv2 GPLv3
-LICENSE_COMB= dual
USE_QMAIL= yes
@@ -28,7 +29,9 @@ CONFLICTS= vpopmail-devel-5.*
GNU_CONFIGURE= YES
USE_GMAKE= YES
-USE_PERL5= YES
+
+USERS= vpopmail
+GROUPS= vchkpw
VCFGDIR?= ${WRKDIR}/vcfg
VCFGFILES?= inc_deps lib_deps tcp.smtp
@@ -38,7 +41,9 @@ CONFIGURE_ENV+= VCFGDIR="${VCFGDIR}" \
CONFIGURE_ARGS= --enable-qmaildir=${QMAIL_PREFIX} \
--enable-tcprules-prog=${LOCALBASE}/bin/tcprules \
--enable-tcpserver-file=${PREFIX}/vpopmail/etc/tcp.smtp \
- --enable-non-root-build
+ --enable-non-root-build \
+ --enable-vpopuser=${USERS} \
+ --enable-vpopgroup=${GROUPS}
#
# User-configurable variables
@@ -91,8 +96,6 @@ CONFIGURE_ARGS= --enable-qmaildir=${QMAIL_PREFIX} \
# WITH_SQL_LOG_REMOVE_DELETED - remove log entries for deleted users/domains
# QMAIL_PREFIX - location of qmail directory
# PREFIX - installation area for vpopmail (see comment below)
-# VCHKPW_GID - the group ID of the new vchkpw group (89)
-# VPOPMAIL_UID - the user ID of the new vpopmail user (89)
#
# PostgreSQL database configuration options
#
@@ -102,8 +105,7 @@ CONFIGURE_ARGS= --enable-qmaildir=${QMAIL_PREFIX} \
# Oracle database configuration options
#
# WARNING: This is NOT TESTED, not in the least.
-# Please report any success or failure to the port maintainer,
-# Peter Pentchev <roam@FreeBSD.org>
+# Please report any success or failure to the port maintainer
#
# WITH_ORACLE_PROC - the name of the Oracle Pro-C precompiler, default 'proc'
# WITH_ORACLE_SERVICE - the Oracle service name (jimmy)
@@ -115,8 +117,7 @@ CONFIGURE_ARGS= --enable-qmaildir=${QMAIL_PREFIX} \
# Sybase database configuration options
#
# WARNING: This is NOT TESTED, not in the least.
-# Please report any success or failure to the port maintainer,
-# Peter Pentchev <roam@FreeBSD.org>
+# Please report any success or failure to the port maintainer
#
# WITH_SYBASE_SERVER - the Sybase server name (empty)
# WITH_SYBASE_USER - the username for connecting to the Sybase server (sa)
@@ -127,8 +128,7 @@ CONFIGURE_ARGS= --enable-qmaildir=${QMAIL_PREFIX} \
# Courier IMAP configuration options for authvchkpw
#
# WARNING: This is NOT TESTED, not in the least.
-# Please report any success or failure to the port maintainer,
-# Peter Pentchev <roam@FreeBSD.org>
+# Please report any success or failure to the port maintainer
#
# WITH_COURIER_IMAPLOGIN - the path to the imaplogin program
# WITH_COURIER_IMAPD - the path to the imapd program
@@ -254,7 +254,7 @@ CFLAGS+= -fPIC
# Uncomment this, or set PREFIX to /home if you have an existing
# vpopmail install with the vpopmail users' home directory set to
-# /home/vpopmail - package rules dictate we default to /usr/local/vpopmail
+# /home/vpopmail - package rules dictate we default to LOCALBASE/vpopmail
#
#PREFIX?= /home
@@ -367,7 +367,9 @@ DOCS= README README.activedirectory README.filelocking \
#
pre-configure:
- @PKG_PREFIX=${PREFIX} ${PERL5} ${PKGINSTALL}
+ ${AWK} -F: '/^${USERS}:/ { print $$3 }' ${UID_FILES} > ${WRKSRC}/vpopmail.uid
+ ${AWK} -F: '/^${USERS}:/ { sub(/\/usr\/local/, "${PREFIX}", $$9); print $$9 }' ${UID_FILES} > ${WRKSRC}/vpopmail.dir
+ ${AWK} -F: '/^${GROUPS}:/ { print $$3 }' ${GID_FILES} > ${WRKSRC}/vpopmail.gid
.if defined(WITH_PGSQL)
.if defined(WITH_PGSQL_DB)
${REINPLACE_CMD} -E -e "s/(#define DB.*)vpopmail(.*)/\1${WITH_PGSQL_DB}\2/" ${WRKSRC}/vpgsql.h
diff --git a/mail/vpopmail/files/patch-configure b/mail/vpopmail/files/patch-configure
index 5a9e2e404812..af321841d47c 100644
--- a/mail/vpopmail/files/patch-configure
+++ b/mail/vpopmail/files/patch-configure
@@ -6,14 +6,17 @@ Description: Configure for the FreeBSD ports build system.
Pass the correct compiler and linker flags to the cdb build.
FreeBSD does not need -R $libdir (a.k.a. --rpath) - the MySQL client
library is added to ldconfig's search path in its own startup script.
+ No need to check for uid/gid.
Forwarded: not-needed
Author: Peter Pentchev <roam@FreeBSD.org>,
Alex Dupre <ale@FreeBSD.org>,
- Renato Botelho <garga@FreeBSD.org>
-Last-Update: 2010-09-13
+ Renato Botelho <garga@FreeBSD.org>,
+ Baptiste Daroussin <bapt@FreeBSD.org>
---- a/configure
-+++ b/configure
+Last-Update: 2012-06-23
+
+--- configure.orig 2010-11-08 16:02:52.000000000 +0100
++++ configure 2011-05-20 12:21:34.314930656 +0200
@@ -1403,6 +1403,8 @@
--enable-onchange-script Enable onchange script. See README.onchange for more info.
--enable-spamassassin Enable spamassassin. See README.spamassassin for more info.
@@ -23,7 +26,108 @@ Last-Update: 2010-09-13
--enable-maildrop Enable maildrop. See README.maildrop for more info.
--enable-maildrop-prog=PATH Full path to maildrop program /usr/{local/}bin/maildrop.
--enable-domainquotas Enable non-system domain quotas. See README.quotas for more info.
-@@ -5785,27 +5787,6 @@
+@@ -5663,100 +5665,6 @@
+
+ fi
+
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define VPOPGROUP "$vpopgroup"
+-_ACEOF
+-
+-
+-
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-$as_echo "yes" >&6; }
+-
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether password file entry for the vpopmail user exists" >&5
+-$as_echo_n "checking whether password file entry for the vpopmail user exists... " >&6; }
+-if test "$cross_compiling" = yes; then :
+- as_fn_error "Could not compile and run even a trivial ANSI C program - check CC." "$LINENO" 5
+-
+-else
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+- #include <stdio.h>
+- #include <pwd.h>
+- #include <stdlib.h>
+-
+- int main() {
+- struct passwd *pw;
+- char tmpbuf[100];
+- FILE *f;
+-
+- unlink("vpopmail.dir");
+- unlink("vpopmail.uid");
+- unlink("vpopmail.gid");
+-
+- if ( (f=fopen("vpopusername","r+"))==NULL) {
+- printf("No vpopmail user found.\n");
+- printf("Please add the vchkpw group and\n");
+- printf("vpopmail user. Then run configure again\n");
+- return(-1);
+- }
+-
+- fgets(tmpbuf,100,f);
+- fclose(f);
+- tmpbuf[strlen(tmpbuf)-1] = 0;
+-
+- if (( pw=getpwnam(tmpbuf)) != 0 ) {
+- f=fopen("vpopmail.dir","a+");
+- fprintf(f,"%s\n", pw->pw_dir);
+- fclose(f);
+-
+- f=fopen("vpopmail.uid", "a+");
+- fprintf(f,"%d\n", pw->pw_uid);
+- fclose(f);
+-
+- f=fopen("vpopmail.gid", "a+");
+- fprintf(f,"%d\n", pw->pw_gid);
+- fclose(f);
+- } else {
+- printf("No vpopmail user found.\n");
+- printf("Please add the vchkpw group and\n");
+- printf("vpopmail user. Then run configure again\n");
+- return(-1);
+- }
+- return(0);
+- }
+-
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"; then :
+- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-$as_echo "yes" >&6; }
+-else
+- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-$as_echo "no" >&6; }
+- as_fn_error "Could not compile and run even a trivial ANSI C program - check CC." "$LINENO" 5
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+-
+-if test ! -f vpopmail.uid
+-then
+- as_fn_error "No vpopmail user." "$LINENO" 5
+-fi
+-
+-if test ! -f vpopmail.gid
+-then
+- as_fn_error "No vpopmail group." "$LINENO" 5
+-fi
+-
+-if test ! -f vpopmail.dir
+-then
+- as_fn_error "No vpopmail home directory" "$LINENO" 5
+-fi
+-
+ vpopmaildir=`cat vpopmail.dir`
+
+
+@@ -5785,27 +5693,6 @@
#----------------------------------------------------------------------
@@ -51,7 +155,7 @@ Last-Update: 2010-09-13
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether roaming-users has been enabled" >&5
$as_echo_n "checking whether roaming-users has been enabled... " >&6; }
# Check whether --enable-roaming-users was given.
-@@ -5888,28 +5869,11 @@
+@@ -5888,28 +5775,11 @@
# Check whether --enable-tcpserver_file was given.
if test "${enable_tcpserver_file+set}" = set; then :
enableval=$enable_tcpserver_file; tcpserver_file="$enableval"
@@ -81,7 +185,7 @@ Last-Update: 2010-09-13
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
-@@ -6414,6 +6378,44 @@
+@@ -6414,6 +6284,44 @@
#define SPAMC_PROG "$spamc_prog"
_ACEOF
@@ -126,7 +230,7 @@ Last-Update: 2010-09-13
;;
esac
-@@ -6664,7 +6666,7 @@
+@@ -6664,7 +6572,7 @@
as_fn_error "Unable to find your MySQL lib dir, specify --enable-libdir." "$LINENO" 5
fi
@@ -135,7 +239,7 @@ Last-Update: 2010-09-13
;;
-@@ -6727,7 +6729,7 @@
+@@ -6727,7 +6635,7 @@
#define USE_LDAP $USE_LDAP
_ACEOF
@@ -144,7 +248,7 @@ Last-Update: 2010-09-13
auth_inc="-I/usr/local/include"
-@@ -9029,8 +9031,8 @@
+@@ -9029,8 +8937,8 @@
;;
esac
diff --git a/mail/vpopmail/pkg-install b/mail/vpopmail/pkg-install
deleted file mode 100644
index f435231eea4c..000000000000
--- a/mail/vpopmail/pkg-install
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/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);
-
-sub checkenv () {
- my ($u, $g);
-
- # Users
- foreach $u (keys %users) {
- $var = uc($u)."_UID";
- if (defined($ENV{$var})) {
- $uids{$u} = $ENV{$var};
- }
- }
-
- # Groups
- foreach $g (@groups) {
- $var = uc($g)."_GID";
- if (defined($ENV{$var})) {
- $gids{$g} = $ENV{$var};
- }
- }
-}
-
-if ($ENV{PACKAGE_BUILDING} || $ARGV[1] eq "PRE-INSTALL") {
- $doguid=1; # Make sure we get the assigned guids.
-}
-
-checkenv();
-
-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}/vpopmail/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}/vpopmail\" -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.
- }
-}