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