From 338b75480d86c34acbe9b54cbd975394f3c5e6c3 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 13 Mar 2012 19:38:14 -0400 Subject: [PATCH] Fix postgresql-setup, re-add init script --- postgresql-setup | 8 ++++++-- postgresql.init | 44 ++++++++++++++++++++++++++++++++++++++++++++ postgresql.spec | 15 ++++++++++++++- 3 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 postgresql.init diff --git a/postgresql-setup b/postgresql-setup index 8b2a9ce..29da10a 100644 --- a/postgresql-setup +++ b/postgresql-setup @@ -26,6 +26,10 @@ fi if [ -f "/etc/systemd/system/${SERVICE_NAME}.service" ] then SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service" +elif [ -f "/usr/lib/systemd/system/${SERVICE_NAME}.service" ] +then + SERVICE_FILE="/usr/lib/systemd/system/${SERVICE_NAME}.service" +# this case should go away eventually, but not till F16 is dead: elif [ -f "/lib/systemd/system/${SERVICE_NAME}.service" ] then SERVICE_FILE="/lib/systemd/system/${SERVICE_NAME}.service" @@ -35,8 +39,8 @@ else fi # Get port number and data directory from the service file -PGPORT=`sed -n 's/Environment=PGPORT=//p' "${SERVICE_FILE}"` -PGDATA=`sed -n 's/Environment=PGDATA=//p' "${SERVICE_FILE}"` +PGPORT=`sed -n 's/^[ \t]*Environment=PGPORT=//p' "${SERVICE_FILE}"` +PGDATA=`sed -n 's/^[ \t]*Environment=PGDATA=//p' "${SERVICE_FILE}"` # Log file for initdb PGLOG=/var/lib/pgsql/initdb.log diff --git a/postgresql.init b/postgresql.init new file mode 100644 index 0000000..46e1294 --- /dev/null +++ b/postgresql.init @@ -0,0 +1,44 @@ +#!/bin/sh +# +# This is not needed any more for the standard systemctl-supported actions, +# but we keep it around for the nonstandard actions (initdb, upgrade). +# People are too used to getting at those via "service postgresql foo ..." + +# Find the name of the script +NAME=`basename $0` +if [ ${NAME:0:1} = "S" -o ${NAME:0:1} = "K" ] +then + NAME=${NAME:3} +fi + +case "$1" in + start) + systemctl start ${NAME}.service + ;; + stop) + systemctl stop ${NAME}.service + ;; + status) + systemctl status ${NAME}.service + ;; + restart) + systemctl restart ${NAME}.service + ;; + condrestart|try-restart) + systemctl try-restart ${NAME}.service + ;; + reload) + systemctl reload ${NAME}.service + ;; + initdb) + postgresql-setup initdb + ;; + upgrade) + postgresql-setup upgrade + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|initdb|upgrade}" + exit 2 +esac + +exit $? diff --git a/postgresql.spec b/postgresql.spec index 3fd9bea..3bc92c4 100644 --- a/postgresql.spec +++ b/postgresql.spec @@ -53,7 +53,7 @@ Summary: PostgreSQL client programs Name: postgresql %global majorversion 9.1 Version: 9.1.3 -Release: 1%{?dist} +Release: 2%{?dist} # The PostgreSQL license is very similar to other MIT licenses, but the OSI # recognizes it as an independent license, so we do as well. @@ -83,6 +83,7 @@ Source7: ecpg_config.h Source8: README.rpm-dist Source9: postgresql-setup Source10: postgresql.service +Source11: postgresql.init Source14: postgresql.pam Source15: postgresql-bashprofile @@ -473,6 +474,9 @@ install -m 755 postgresql-check-db-dir $RPM_BUILD_ROOT%{_bindir}/postgresql-chec install -d $RPM_BUILD_ROOT%{_unitdir} install -m 644 %{SOURCE10} $RPM_BUILD_ROOT%{_unitdir}/postgresql.service +install -d $RPM_BUILD_ROOT/etc/rc.d/init.d +install -m 755 %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/postgresql + %if %pam install -d $RPM_BUILD_ROOT/etc/pam.d install -m 644 %{SOURCE14} $RPM_BUILD_ROOT/etc/pam.d/postgresql @@ -830,6 +834,7 @@ rm -rf $RPM_BUILD_ROOT %files server -f server.lst %defattr(-,root,root) %{_unitdir}/postgresql.service +/etc/rc.d/init.d/postgresql %if %pam %config(noreplace) /etc/pam.d/postgresql %endif @@ -927,6 +932,14 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Tue Mar 13 2012 Tom Lane 9.1.3-2 +- Fix postgresql-setup to look for unit file in /usr/lib and to ignore + comments therein +Resolves: #802835 +- Resurrect a now-mostly-dummy postgresql init script, so that people can + keep on using "service postgresql initdb" if they wish +Resolves: #800416 + * Mon Feb 27 2012 Tom Lane 9.1.3-1 - Update to PostgreSQL 9.1.3, for various fixes described at http://www.postgresql.org/docs/9.1/static/release-9-1-3.html