Date: Mon, 03 Jan 2011 17:32:40 -0800 From: Jason Helfman <jhelfman@experts-exchange.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/153668: [patch] databases/postgresql90-server: allow for postgres user to be configurable Message-ID: <1294104760.218254.7514.nullmailer@experts-exchange.com> Resent-Message-ID: <201101040140.p041eArL093209@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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 -@dirrmtry pgsql +@dirrmtry %%PGUSER%% >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1294104760.218254.7514.nullmailer>