ports/153668: [patch] databases/postgresql90-server: allow for postgres user to be configurable

Jason Helfman jhelfman at experts-exchange.com
Tue Jan 4 01:40:11 UTC 2011


>Number:         153668
>Category:       ports
>Synopsis:       [patch] databases/postgresql90-server: allow for postgres user to be configurable
>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:   Tue Jan 04 01:40:10 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Jason Helfman
>Release:        FreeBSD 8.1-RELEASE i386
>Organization:
Experts Exchange, LLC.
>Environment:
System: FreeBSD eggman.experts-exchange.com 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:55:53 UTC 2010 root at almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386


	
>Description:
Allow for postgres user to be something other than "pgsql," but pgsql should be default.
>How-To-Repeat:
1. Rename the PostgreSQL OS user name with PW(8).
2. Run "/usr/local/etc/rc.d/postgresql start"
3. It will say: "su: unknown login: pgsql"

>Fix:

diff -ruN postgresql90-server.orig/Makefile postgresql90-server/Makefile
--- postgresql90-server.orig/Makefile	2011-01-03 16:23:51.000000000 -0800
+++ postgresql90-server/Makefile	2011-01-03 16:31:31.000000000 -0800
@@ -24,7 +24,7 @@
 UNIQUENAME?=	${PORTNAME}90
 LATEST_LINK?=	${PKGNAMEPREFIX}${UNIQUENAME}${PKGNAMESUFFIX}
 
-PKGINSTALL?=	${PKGDIR}/pkg-install${PKGNAMESUFFIX}
+INSTALLWARNING=	${FILESDIR}/pkg-install${PKGNAMESUFFIX}.in
 USE_BZIP2=	YES
 USE_GMAKE=	YES
 GNU_CONFIGURE=	YES
@@ -33,8 +33,9 @@
 .undef GNU_CONFIGURE
 .endif
 
-PGUSER=		pgsql
-PGGROUP=	pgsql
+PGUSER?=	pgsql
+PGGROUP?=	pgsql
+PGUID?=	70
 
 LDFLAGS+=	-L${LOCALBASE}/lib
 INCLUDES+=	-I${LOCALBASE}/include
@@ -283,7 +284,7 @@
 
 .if defined(SERVER_ONLY)
 pre-everything::
-	@${SH} ${PKGINSTALL} ${PORTNAME} BACKUPWARNING
+	@${SH} ${INSTALLWARNING} ${PORTNAME} BACKUPWARNING
 .endif
 
 .if !defined(NO_BUILD)
@@ -305,6 +306,13 @@
 SUB_FILES+=	pkg-message${PKGNAMESUFFIX}
 PKGMESSAGE=	${WRKSRC}/pkg-message${PKGNAMESUFFIX}
 .  endif
+. if exists(${FILESDIR}/pkg-install${PKGNAMESUFFIX}.in)
+SUB_FILES+=	pkg-install${PKGNAMESUFFIX}
+SUB_LIST=	PGGROUP=${PGGROUP} \
+		PGUSER=${PGUSER} \
+		PGUID=${PGUID}
+PLIST_SUB+=	PGUSER=${PGUSER}
+. endif
 .endif
 
 .if defined(SERVER_ONLY)
diff -ruN postgresql90-server.orig/files/pkg-install-server.in postgresql90-server/files/pkg-install-server.in
--- postgresql90-server.orig/files/pkg-install-server.in	1969-12-31 16:00:00.000000000 -0800
+++ postgresql90-server/files/pkg-install-server.in	2011-01-03 16:27:11.000000000 -0800
@@ -0,0 +1,66 @@
+#! /bin/sh
+
+# $FreeBSD: ports/databases/postgresql90-server/pkg-install-server,v 1.7 2008/02/18 12:55:02 girgen Exp $
+
+PATH=/bin:/usr/bin:/usr/sbin
+PGUSER=%%PGUSER%%
+PGGROUP=%%PGGROUP%%
+PGUID=%%PGUID%%
+
+backupwarning() { echo "
+
+  =========== BACKUP YOUR DATA! =============
+  As always, backup your data before
+  upgrading. If the upgrade leads to a higher
+  minor revision (e.g. 7.3.x -> 7.4), a dump
+  and restore of all databases is
+  required. This is *NOT* done by the port!
+
+  Press ctrl-C *now* if you need to pg_dump.
+  ===========================================
+"
+	sleep 5
+}
+
+case $2 in
+PRE-INSTALL)
+	backupwarning
+	PGUSER=${PGUSER:-${PGUSER}}
+	PGGROUP=${PGGROUP:-${PGGROUP}}
+	DB_DIR=${PKG_PREFIX}/${PGUSER}
+	UID=${PGUID}
+	GID=${PGUID}
+
+	if pw group show "${PGGROUP}" 2>/dev/null; then
+		echo "You already have a group \"${PGGROUP}\", so I will use it."
+	else
+		if pw groupadd ${PGGROUP} -g ${GID}; then
+			echo "Added group \"${PGGROUP}\"."
+		else
+			echo "Adding group \"${PGGROUP}\" failed..."
+			exit 1
+		fi
+	fi
+
+	if pw user show "${PGUSER}" 2>/dev/null; then
+		echo "You already have a user \"${PGUSER}\", so I will use it."
+	else
+		if pw useradd ${PGUSER} -u ${UID} -g ${PGGROUP} -h - \
+			-d ${DB_DIR} -c "PostgreSQL Daemon"
+		then
+			echo "Added user \"${PGUSER}\"."
+		else
+			echo "Adding user \"${PGUSER}\" failed..."
+			exit 1
+		fi
+	fi
+
+	if ! [ -x ~${PGUSER} ] ; then 
+		install -m 755 -o ${PGUSER} -g ${PGGROUP} -d ${DB_DIR}
+	fi
+	;;
+
+BACKUPWARNING)
+	backupwarning
+	;;
+esac
diff -ruN postgresql90-server.orig/files/postgresql.in postgresql90-server/files/postgresql.in
--- postgresql90-server.orig/files/postgresql.in	2011-01-03 16:23:51.000000000 -0800
+++ postgresql90-server/files/postgresql.in	2011-01-03 16:27:50.000000000 -0800
@@ -32,7 +32,7 @@
 # set defaults
 postgresql_enable=${postgresql_enable:-"NO"}
 postgresql_flags=${postgresql_flags:-"-w -s -m fast"}
-postgresql_user=pgsql
+postgresql_user=${postgresql_user:-"%%PGUSER%%"}
 eval postgresql_data=${postgresql_data:-"~${postgresql_user}/data"}
 postgresql_class=${postgresql_class:-"default"}
 postgresql_initdb_flags=${postgresql_initdb_flags:-"--encoding=utf-8 --lc-collate=C"}
diff -ruN postgresql90-server.orig/pkg-install-server postgresql90-server/pkg-install-server
--- postgresql90-server.orig/pkg-install-server	2011-01-03 16:23:51.000000000 -0800
+++ postgresql90-server/pkg-install-server	1969-12-31 16:00:00.000000000 -0800
@@ -1,63 +0,0 @@
-#! /bin/sh
-
-# $FreeBSD: ports/databases/postgresql90-server/pkg-install-server,v 1.7 2008/02/18 12:55:02 girgen Exp $
-
-PATH=/bin:/usr/bin:/usr/sbin
-
-backupwarning() { echo "
-
-  =========== BACKUP YOUR DATA! =============
-  As always, backup your data before
-  upgrading. If the upgrade leads to a higher
-  minor revision (e.g. 7.3.x -> 7.4), a dump
-  and restore of all databases is
-  required. This is *NOT* done by the port!
-
-  Press ctrl-C *now* if you need to pg_dump.
-  ===========================================
-"
-	sleep 5
-}
-
-case $2 in
-PRE-INSTALL)
-	backupwarning
-	PGUSER=${PGUSER:-pgsql}
-	PGGROUP=${PGGROUP:-pgsql}
-	DB_DIR=${PKG_PREFIX}/${PGUSER}
-	UID=70
-	GID=70
-
-	if pw group show "${PGGROUP}" 2>/dev/null; then
-		echo "You already have a group \"${PGGROUP}\", so I will use it."
-	else
-		if pw groupadd ${PGGROUP} -g ${GID}; then
-			echo "Added group \"${PGGROUP}\"."
-		else
-			echo "Adding group \"${PGGROUP}\" failed..."
-			exit 1
-		fi
-	fi
-
-	if pw user show "${PGUSER}" 2>/dev/null; then
-		echo "You already have a user \"${PGUSER}\", so I will use it."
-	else
-		if pw useradd ${PGUSER} -u ${UID} -g ${PGGROUP} -h - \
-			-d ${DB_DIR} -c "PostgreSQL Daemon"
-		then
-			echo "Added user \"${PGUSER}\"."
-		else
-			echo "Adding user \"${PGUSER}\" failed..."
-			exit 1
-		fi
-	fi
-
-	if ! [ -x ~${PGUSER} ] ; then 
-		install -m 755 -o ${PGUSER} -g ${PGGROUP} -d ${DB_DIR}
-	fi
-	;;
-
-BACKUPWARNING)
-	backupwarning
-	;;
-esac
diff -ruN postgresql90-server.orig/pkg-plist-server postgresql90-server/pkg-plist-server
--- postgresql90-server.orig/pkg-plist-server	2011-01-03 16:23:51.000000000 -0800
+++ postgresql90-server/pkg-plist-server	2011-01-03 16:31:59.000000000 -0800
@@ -758,4 +758,4 @@
 @dirrmtry etc/periodic/daily
 @dirrmtry etc/periodic
 @dirrmtry lib/postgresql
- at dirrmtry pgsql
+ at dirrmtry %%PGUSER%%
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list