aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsem <sem@FreeBSD.org>2005-05-17 17:14:30 +0800
committersem <sem@FreeBSD.org>2005-05-17 17:14:30 +0800
commit1e5778164289b4434e1ada1338bfe1d3fc0e2d56 (patch)
tree867f745de53e9742656857e5014c43c307972f06
parent0933c3f4023f0a732985e1bbb85463a3d32be7a5 (diff)
downloadfreebsd-ports-gnome-1e5778164289b4434e1ada1338bfe1d3fc0e2d56.tar.gz
freebsd-ports-gnome-1e5778164289b4434e1ada1338bfe1d3fc0e2d56.tar.zst
freebsd-ports-gnome-1e5778164289b4434e1ada1338bfe1d3fc0e2d56.zip
- Rewrite pkg-install using switch case for PRE-INSTALL and POST-INSTALL
parameters, and, use this parameters to call PKGINSTALL on Makefile. - Remove some redundant things from Makefile and use it only on pkg-install. - Move pkg-install to files/pkg-install.in because i'm using some %%MACROS%% on this. PR: ports/80911 Submitted by: maintainer
-rw-r--r--mail/qmail/Makefile27
-rw-r--r--mail/qmail/files/pkg-install.in114
-rw-r--r--mail/qmail/pkg-install124
3 files changed, 123 insertions, 142 deletions
diff --git a/mail/qmail/Makefile b/mail/qmail/Makefile
index 743bddd1aa93..15d42e880069 100644
--- a/mail/qmail/Makefile
+++ b/mail/qmail/Makefile
@@ -197,8 +197,11 @@ PLIST_SUB+= TLS="@comment "
SUB_FILES+= pkg-message${PKGMESSAGE_SUFFIX} mailer.conf.sample \
bootfiles.sed enable-qmail
+PKGINSTALL?= ${WRKDIR}/pkg-install
PKGMESSAGE?= ${WRKDIR}/pkg-message${PKGMESSAGE_SUFFIX}
+CSH?= /bin/csh
+
DOCFILES+= ${WRKSRC}/BLURB ${WRKSRC}/BLURB2 ${WRKSRC}/BLURB3 \
${WRKSRC}/BLURB4 ${WRKSRC}/INTERNALS ${WRKSRC}/SECURITY \
${WRKSRC}/THOUGHTS ${FILESDIR}/PORT_NOTES \
@@ -304,8 +307,10 @@ WITH_BIG_CONCURRENCY_PATCH_CONCURRENCY_LIMIT?= 509
.if defined(WITH_RCDLINK)
PLIST_SUB+= RCDLINK=""
+RCDLINK=
.else
PLIST_SUB+= RCDLINK="@comment "
+RCDLINK= \#
.endif
# Fill SELECTED_OPTIONS with options to write conf-spamcontrol
@@ -448,12 +453,10 @@ post-patch:
/"doc"/d; /"boot","/d' \
${WRKSRC}/hier.c
-# If you want to change the qmail users, they must be changed in both
-# work/*/conf-users and pkg/INSTALL.
-
do-configure:
- @# Create/Check the necessary groups/users
- @PKG_PREFIX=${PREFIX} ${PKGINSTALL}
+ @${SED} -e 's,%%RCDLINK%%,${RCDLINK2},g; s,%%LOCALBASE%%,${LOCALBASE},g' \
+ ${FILESDIR}/pkg-install.in > ${WRKDIR}/pkg-install
+ @${SETENV} PKG_PREFIX="${PREFIX}" ${CSH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
@${ECHO_CMD} "${CC} ${CFLAGS}" > ${WRKSRC}/conf-cc
@${ECHO_CMD} ${PREFIX} > ${WRKSRC}/conf-qmail
.if defined(WITH_BIG_CONCURRENCY_PATCH) \
@@ -473,8 +476,6 @@ do-install:
${SED} -f ${WRKDIR}/bootfiles.sed ${FILESDIR}/$i > ${WRKDIR}/${i} ; \
fi
.endfor
- @# Check again, just in case (ideally should error if not found)
- @PKG_PREFIX=${PREFIX} ${PKGINSTALL}
@${MKDIR} ${DOCSDIR} ${PREFIX}/configure
@cd ${WRKSRC} ; ./install
${INSTALL_PROGRAM} ${CONFIGUREPROGS} ${PREFIX}/configure
@@ -504,17 +505,7 @@ do-install:
@cd ${WRKSRC} && ${CAT} `${CAT} SYSDEPS` \
> ${DOCSDIR}/SYSDEPS
.endif
-.for i in root postmaster mailer-daemon
- @${TOUCH} ${PREFIX}/alias/.qmail-${i}
-.endfor
- @# This is not part of qmail proper, hence the 2nd class citizenship
- @if [ ! -e ${PREFIX}/control/me ]; then \
- cd ${PREFIX}/configure ; ./config ; \
- fi
-.if !defined(WITHOUT_RCDLINK)
- @${MKDIR} ${LOCALBASE}/etc/rc.d
- @${LN} -sf ${PREFIX}/rc ${LOCALBASE}/etc/rc.d/qmail.sh
-.endif
+ @${SETENV} PKG_PREFIX="${PREFIX}" ${CSH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
@${ECHO_CMD}
@${CAT} ${PKGMESSAGE}
@${ECHO_CMD}
diff --git a/mail/qmail/files/pkg-install.in b/mail/qmail/files/pkg-install.in
new file mode 100644
index 000000000000..ec0ac7636e54
--- /dev/null
+++ b/mail/qmail/files/pkg-install.in
@@ -0,0 +1,114 @@
+#!/bin/csh -f
+#
+# $FreeBSD$
+#
+
+# Author : Marcos Tischer Vallim
+# E-Mail : tischer@gmail.com
+# Date : Tue Mar 22 00:40:45 BRT 2005
+
+set path = ( /bin /sbin /usr/bin /usr/sbin )
+
+if ($uid != 0) then
+ echo "It is necessary to add missing qmail users/groups at";
+ echo "this stage. Please either add them manually or retry";
+ echo "as root.";
+ exit 1;
+endif
+
+if (! -x `which pw`) then
+ echo "This system looks like a pre-2.2 version of FreeBSD. We see that it";
+ echo "is missing the "pw" utility. We need this utility. Please get and";
+ echo "install it, and try again. You can get the source from:";
+ echo "";
+ echo " ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/pw.tar.gz";
+ echo "";
+ echo "No pw";
+ exit 1;
+endif
+
+switch ($argv[2])
+
+case "PRE-INSTALL":
+ set groups = (qmail qnofiles);
+ set gids = (82 81);
+ set users = (alias qmaild qmaill qmailp qmailq qmailr qmails);
+ set users_g = (qnofiles qnofiles qnofiles qnofiles qmail qmail qmail);
+ set uids = (81 82 83 84 85 86 87);
+
+
+ set k = 1;
+ foreach group ($groups)
+ pw groupshow $group >& /dev/null;
+
+ if ($status) then
+ pw groupadd $group -g $gids[$k];
+
+ if ($status) then
+ echo "Failed to add group '$group' as gid '$gids[$k]'";
+ exit 1;
+ endif
+ endif
+
+ set chkgid = (`pw groupshow $group | sed -e "s,:, ,g"`);
+ if ($chkgid[3] != $gids[$k]) then
+ echo "Group '$group' should have gid '$gids[$k]'";
+ exit 1;
+ endif
+
+ @ k++;
+ end
+
+ set k = 1;
+ foreach user ($users)
+ pw usershow $user >& /dev/null;
+
+ if ($status) then
+ if ($user == "alias") then
+ set home = ${PKG_PREFIX}/alias;
+ else
+ set home = ${PKG_PREFIX};
+ endif
+
+ pw useradd $user -g $users_g[$k] -d $home -s /nonexistent -u $uids[$k];
+
+ if ($status) then
+ echo "Failed to add user '$user' as uid '$uids[$k]'";
+ exit 1;
+ endif
+ endif
+
+ set chkuid = (`pw usershow $user | sed -e "s,:, ,g"`);
+ if ($chkuid[3] != $uids[$k]) then
+ echo "User '$user' should have uid '$uids[$k]'";
+ exit 1;
+ endif
+
+ @ k++;
+ end
+
+ breaksw;
+
+case "POST-INSTALL":
+ ${PKG_PREFIX}/configure/install x;
+
+ if ( ! `filetest -e ${PKG_PREFIX}/control/me` ) then
+ cd ${PKG_PREFIX}/configure && ./config;
+ endif
+
+ %%RCDLINK%%ln -s ${PKG_PREFIX}/rc %%LOCALBASE%%/etc/rc.d/qmail.sh;
+
+ touch "${PKG_PREFIX}/alias/.qmail-{postmaster,root,mailer-daemon}";
+
+ if ($status) then
+ echo "Failed to create files :";
+ echo " ${PKG_PREFIX}/alias/.qmail-postmaster";
+ echo " ${PKG_PREFIX}/alias/.qmail-root";
+ echo " ${PKG_PREFIX}/alias/.qmail-mailer-daemon";
+ exit 1;
+ endif
+
+ breaksw;
+endsw
+
+exit 0;
diff --git a/mail/qmail/pkg-install b/mail/qmail/pkg-install
deleted file mode 100644
index ffa3610cfbfd..000000000000
--- a/mail/qmail/pkg-install
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/bin/csh -f
-#
-# $FreeBSD$
-#
-
-# Author : Marcos Tischer Vallim
-# E-Mail : tischer@gmail.com
-# Date : Tue Mar 22 00:40:45 BRT 2005
-
-# Variables
-set pw = '/usr/sbin/pw';
-set touch = '/usr/bin/touch';
-set sed = '/usr/bin/sed';
-set null = '/dev/null';
-
-if ($uid != 0) then
- echo "It is necessary to add missing qmail users/groups at";
- echo "this stage. Please either add them manually or retry";
- echo "as root.";
- exit 1;
-endif
-
-if (! -x "$pw") then
- echo "This system looks like a pre-2.2 version of FreeBSD. We see that it";
- echo "is missing the "pw" utility. We need this utility. Please get and";
- echo "install it, and try again. You can get the source from:";
- echo "";
- echo " ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/pw.tar.gz";
- echo "";
- echo "No $pw";
- exit 1;
-endif
-
-set groups = (qmail qnofiles);
-set gids = (82 81);
-set users = (alias qmaild qmaill qmailp qmailq qmailr qmails);
-set users_g = (qnofiles qnofiles qnofiles qnofiles qmail qmail qmail);
-set uids = (81 82 83 84 85 86 87);
-set doguid = 0;
-
-if ($#argv) then
- if ($argv[1] == "POST-INSTALL") then
- ${PKG_PREFIX}/configure/install x;
- if ( ! `filetest -e ${PKG_PREFIX}/control/me` ) then
- cd ${PKG_PREFIX}/configure && ./config;
- endif
-
- $touch "${PKG_PREFIX}/alias/.{qmail-postmaster,qmail-root,qmail-mailer-daemon}";
-
- if ($status) then
- echo "Failed to create files :";
- echo " ${PKG_PREFIX}/alias/.qmail-postmaster";
- echo " ${PKG_PREFIX}/alias/.qmail-root";
- echo " ${PKG_PREFIX}/alias/.qmail-mailer-daemon";
- exit 1;
- endif
-
- exit 0;
- endif
-
- if ($argv[1] == "PRE-INSTALL") then
- set doguid = 1;
- endif
-endif
-
-if (${?PACKAGE_BUILDING}) then
- set doguid = 1;
-endif
-
-set k = 1;
-foreach group ($groups)
- $pw groupshow $group >& $null;
-
- if ($status) then
- $pw groupadd $group -g $gids[$k];
-
- if ($status) then
- echo "Failed to add group '$group' as gid '$gids[$k]'";
- exit 1;
- endif
- endif
-
- if ($doguid) then
- set chkgid = (`$pw groupshow $group | $sed -e "s/:/ /g"`);
- if ($chkgid[3] != $gids[$k]) then
- echo "Group '$group' should have gid '$gids[$k]'";
- exit 1;
- endif
- endif
-
- @ k = $k + 1;
-end
-
-set k = 1;
-foreach user ($users)
- $pw usershow $user >& $null;
-
- if ($status) then
- if ($user == "alias") then
- set home = ${PKG_PREFIX}/alias;
- else
- set home = ${PKG_PREFIX};
- endif
-
- $pw useradd $user -g $users_g[$k] -d $home -s /nonexistent -u $uids[$k];
-
- if ($status) then
- echo "Failed to add user '$user' as uid '$uids[$k]'";
- exit 1;
- endif
- endif
-
- if ($doguid) then
- set chkuid = (`$pw usershow $user | $sed -e "s/:/ /g"`);
- if ($chkuid[3] != $uids[$k]) then
- echo "User '$user' should have uid '$uids[$k]'";
- exit 1;
- endif
- endif
-
- @ k = $k + 1;
-end
-
-exit 0;