ports/157622: [PATCH] Fix port: mail/qmail should use USERS
Chris Rees
utisoft at gmail.com
Sun Jun 5 10:20:08 UTC 2011
>Number: 157622
>Category: ports
>Synopsis: [PATCH] Fix port: mail/qmail should use USERS
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun Jun 05 10:20:07 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator: Chris Rees
>Release: FreeBSD 8.2-RELEASE-p1 i386
>Organization:
bayofrum
>Environment:
System: FreeBSD zeus.bayofrum.net 8.2-RELEASE-p1 FreeBSD 8.2-RELEASE-p1 #0: Sat Apr 30 15:09:06 BST 2011 root at zeus.bayofrum.net:/usr/obj/usr/src/sys/ZEUS i386
>Description:
This port uses pkg-install to create new users instead of using USERS= and GROUPS=
I've modified the Makefile in qmail to use our hardcoded UIDs to stop it erroring out when it can't find the usernames there.
>How-To-Repeat:
>Fix:
- Use USERS and GROUPS
- Stop touching system before install
Submitted by: Chris Rees (utisoft at gmail.com)
Please note that I've added files/patch-Makefile and files/patch-auto_uids-c-dist
--- mail-qmail.patch begins here ---
Index: Makefile
===================================================================
RCS file: /exports/cvsroot-freebsd/ports/mail/qmail/Makefile,v
retrieving revision 1.152
diff -u -r1.152 Makefile
--- Makefile 20 Sep 2010 13:35:44 -0000 1.152
+++ Makefile 4 Jun 2011 19:52:25 -0000
@@ -26,6 +26,12 @@
PORTSCOUT= skipv:1.04
+USERS= alias
+.for usersuffix in d l p q r s
+USERS+= ${PORTNAME}${usersuffix}
+.endfor
+GROUPS= ${PORTNAME} qnofiles
+
.if defined(SLAVE_LDAP) || \
defined(SLAVE_MYSQL)
BARRIER_MAILDIRQUOTA_PATCH= yes
@@ -246,10 +252,8 @@
SLAVEPORT_LINE= spamcontrol
.endif
-SUB_FILES+= mailer.conf.sample bootfiles.sed enable-qmail
-SUB_LIST+= ECHO_CMD=${ECHO_CMD}
-# pkg-install could not be added to SUB_FILES because it's executed on do-configure:
-PKGINSTALL?= ${WRKDIR}/pkg-install
+SUB_FILES+= mailer.conf.sample bootfiles.sed enable-qmail pkg-install
+SUB_LIST+= ECHO_CMD=${ECHO_CMD} RCDLINK=${RCDLINK}
.if defined(PKGMESSAGE_SUFFIX)
SUB_FILES+= pkg-message-${PKGMESSAGE_SUFFIX}
@@ -724,9 +728,6 @@
.endif
do-configure:
- @${SED} -e 's,%%RCDLINK%%,${RCDLINK},g; s,%%LOCALBASE%%,${LOCALBASE},g' \
- ${FILESDIR}/pkg-install.in > ${WRKDIR}/pkg-install
- @${SETENV} PKG_PREFIX="${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
@${ECHO_CMD} "${CC} ${CFLAGS}" > ${WRKSRC}/conf-cc
@${ECHO_CMD} ${PREFIX} > ${WRKSRC}/conf-qmail
.if defined(WITH_BIG_CONCURRENCY_PATCH) \
Index: files/patch-Makefile
===================================================================
RCS file: files/patch-Makefile
diff -N files/patch-Makefile
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ files/patch-Makefile 5 Jun 2011 09:06:55 -0000
@@ -0,0 +1,31 @@
+$FreeBSD$
+
+This turns off the auto-finding of UIDs -- we shouldn't have the users
+until pre-install!
+
+We use a new file, auto_uids.c.dist to record our UIDs
+
+--- Makefile.orig 2011-06-05 10:00:58.752481173 +0100
++++ Makefile 2011-06-05 10:04:27.265135390 +0100
+@@ -110,19 +110,8 @@
+ compile auto_split.c
+ ./compile auto_split.c
+
+-auto_uids.c: \
+-auto-uid auto-gid conf-users conf-groups
+- ( ./auto-uid auto_uida `head -1 conf-users` \
+- &&./auto-uid auto_uidd `head -2 conf-users | tail -1` \
+- &&./auto-uid auto_uidl `head -3 conf-users | tail -1` \
+- &&./auto-uid auto_uido `head -4 conf-users | tail -1` \
+- &&./auto-uid auto_uidp `head -5 conf-users | tail -1` \
+- &&./auto-uid auto_uidq `head -6 conf-users | tail -1` \
+- &&./auto-uid auto_uidr `head -7 conf-users | tail -1` \
+- &&./auto-uid auto_uids `head -8 conf-users | tail -1` \
+- &&./auto-gid auto_gidq `head -1 conf-groups` \
+- &&./auto-gid auto_gidn `head -2 conf-groups | tail -1` \
+- ) > auto_uids.c.tmp && mv auto_uids.c.tmp auto_uids.c
++auto_uids.c:
++ mv auto_uids.c.dist auto_uids.c
+
+ auto_uids.o: \
+ compile auto_uids.c
Index: files/patch-auto_uids-c-dist
===================================================================
RCS file: files/patch-auto_uids-c-dist
diff -N files/patch-auto_uids-c-dist
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ files/patch-auto_uids-c-dist 5 Jun 2011 09:36:57 -0000
@@ -0,0 +1,16 @@
+--- /dev/null 1970-01-01 01:00:00.000000000 +0100
++++ auto_uids.c.dist 2011-06-05 10:29:16.425936277 +0100
+@@ -0,0 +1,13 @@
++/* These values are hard-coded here, which looks bad until you *
++ * realise that they're hard-coded in ${PORTSDIR}/?IDs anyway. */
++/* $FreeBSD$ */
++int auto_uida = 81;
++int auto_uidd = 82;
++int auto_uidl = 83;
++int auto_uido = 0;
++int auto_uidp = 84;
++int auto_uidq = 85;
++int auto_uidr = 86;
++int auto_uids = 87;
++int auto_gidq = 82;
++int auto_gidn = 81;
Index: files/pkg-install.in
===================================================================
RCS file: /exports/cvsroot-freebsd/ports/mail/qmail/files/pkg-install.in,v
retrieving revision 1.8
diff -u -r1.8 pkg-install.in
--- files/pkg-install.in 19 Aug 2008 13:13:46 -0000 1.8
+++ files/pkg-install.in 4 Jun 2011 19:46:18 -0000
@@ -6,66 +6,8 @@
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
PREFIX=${PKG_PREFIX:-%%PREFIX%%}
-UID=`id -u`
-addGroup() {
- NGROUP=$1
- NGID=$2
-
- if ! pw groupshow ${NGROUP} >/dev/null 2>&1; then
- if ! pw groupadd ${NGROUP} -g ${NGID} >/dev/null 2>&1; then
- echo "Failed to add group '${NGROUP}' as gid '${NGID}'"
- exit 1
- fi
- fi
-
- CHECKGID=`pw groupshow ${NGROUP} 2>/dev/null | cut -d: -f3`
- if [ "${CHECKGID}" != "${NGID}" ]; then
- echo "Group '$NGROUP' should have gid '$NGID'"
- exit 1
- fi
-}
-
-addUser() {
- NUSER=$1
- NUID=$2
- NGROUP=$3
- NHOME=${4:-${PREFIX}}
-
- if ! pw usershow ${NUSER} >/dev/null 2>&1; then
- if ! pw useradd ${NUSER} -g ${NGROUP} -d ${NHOME} -s /nonexistent -u ${NUID} >/dev/null 2>&1; then
- echo "Failed to add user '${NUSER}' as uid '${NUID}'"
- exit 1
- fi
- fi
-
- CHECKUID=`pw usershow ${NUSER} 2>/dev/null | cut -d: -f3`
- if [ "${CHECKUID}" != "${NUID}" ]; then
- echo "User '$NUSER' should have uid '$NUID'"
- exit 1
- fi
-}
-
-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
-fi
-
-if [ "$2" = "PRE-INSTALL" ]; then
- addGroup qmail 82
- addGroup qnofiles 81
-
- addUser alias 81 qnofiles ${PREFIX}/alias
- addUser qmaild 82 qnofiles
- addUser qmaill 83 qnofiles
- addUser qmailp 84 qnofiles
- addUser qmailq 85 qmail
- addUser qmailr 86 qmail
- addUser qmails 87 qmail
-
-elif [ "$2" = "POST-INSTALL" ]; then
+if [ "$2" = "POST-INSTALL" ]; then
${PREFIX}/configure/install x
[ -e ${PREFIX}/control/me ] || (cd ${PREFIX}/configure && ./config)
--- mail-qmail.patch ends here ---
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list