diff -up postgresql-9.2.5/postgresql-check-db-dir.scl-env-check postgresql-9.2.5/postgresql-check-db-dir --- postgresql-9.2.5/postgresql-check-db-dir.scl-env-check 2013-11-19 18:53:19.427860959 +0100 +++ postgresql-9.2.5/postgresql-check-db-dir 2013-11-22 15:29:59.053418528 +0100 @@ -37,7 +37,7 @@ then elif [ x`cat "$PGDATA/PG_VERSION"` = x"$PREVMAJORVERSION" ] then echo $"An old version of the database format was found." - echo $"Use \"postgresql-setup upgrade\" to upgrade to version $PGMAJORVERSION." + echo $"Use \"scl enable __SCL_NAME__ 'postgresql-setup upgrade'\" to upgrade to version $PGMAJORVERSION." echo $"See $PGDOCDIR/README.rpm-dist for more information." exit 1 else @@ -49,7 +49,7 @@ then else # No existing PGDATA! Warn the user to initdb it. echo $"\"$PGDATA\" is missing or empty." - echo $"Use \"postgresql-setup initdb\" to initialize the database cluster." + echo $"Use \"scl enable __SCL_NAME__ 'postgresql-setup initdb'\" to initialize the database cluster." echo $"See $PGDOCDIR/README.rpm-dist for more information." exit 1 fi diff -up postgresql-9.2.5/postgresql.service.scl-env-check postgresql-9.2.5/postgresql.service --- postgresql-9.2.5/postgresql.service.scl-env-check 2013-11-22 15:26:20.372109015 +0100 +++ postgresql-9.2.5/postgresql.service 2013-11-22 15:29:59.053418528 +0100 @@ -39,6 +39,9 @@ Environment=PGPORT=5432 # Location of database directory Environment=PGDATA=/var/lib/pgsql/data +# Load scl environment settings +EnvironmentFile=__SCL_SCRIPTS__/service-environment + # Where to send early-startup messages from the server (before the logging # options of postgresql.conf take effect) # This is normally controlled by the global default set by systemd @@ -47,10 +50,10 @@ Environment=PGDATA=/var/lib/pgsql/data # Disable OOM kill on the postmaster OOMScoreAdjust=-1000 -ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} -ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300 -ExecStop=/usr/bin/pg_ctl stop -D ${PGDATA} -s -m fast -ExecReload=/usr/bin/pg_ctl reload -D ${PGDATA} -s +ExecStartPre=/usr/bin/scl-service $POSTGRESQL92_SCLS_ENABLED /usr/bin/postgresql-check-db-dir ${PGDATA} +ExecStart=/usr/bin/scl-service $POSTGRESQL92_SCLS_ENABLED /usr/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300 +ExecStop=/usr/bin/scl-service $POSTGRESQL92_SCLS_ENABLED /usr/bin/pg_ctl stop -D ${PGDATA} -s -m fast +ExecReload=/usr/bin/scl-service $POSTGRESQL92_SCLS_ENABLED /usr/bin/pg_ctl reload -D ${PGDATA} -s # Give a reasonable amount of time for the server to start up/shut down TimeoutSec=300 diff -up postgresql-9.2.5/postgresql-setup.scl-env-check postgresql-9.2.5/postgresql-setup --- postgresql-9.2.5/postgresql-setup.scl-env-check 2013-11-22 15:26:20.371109008 +0100 +++ postgresql-9.2.5/postgresql-setup 2013-11-22 15:38:24.442468204 +0100 @@ -20,7 +20,7 @@ PREVPGENGINE=xxxx SERVICE_NAME="$2" if [ x"$SERVICE_NAME" = x ] then - SERVICE_NAME=postgresql + SERVICE_NAME=__SCL_NAME__-postgresql fi # this parsing technique fails for PGDATA pathnames containing spaces, @@ -85,7 +85,10 @@ perform_initdb(){ fi # Initialize the database - $SU -l postgres -c "$PGENGINE/initdb --pgdata='$PGDATA' --auth='ident'" >> "$PGLOG" 2>&1 < /dev/null + $SU -l postgres -c " + source __SCL_SCRIPTS__/service-environment ; \ + source scl_source enable \$POSTGRESQL92_SCLS_ENABLED ; \ + $PGENGINE/initdb --pgdata='$PGDATA' --auth='ident'" >> "$PGLOG" 2>&1 < /dev/null # Create directory for postmaster log files mkdir "$PGDATA/pg_log" @@ -159,7 +162,10 @@ upgrade(){ if perform_initdb then # Do the upgrade - $SU -l postgres -c "$PGENGINE/pg_upgrade \ + $SU -l postgres -c " + source __SCL_SCRIPTS__/service-environment ; \ + source scl_source enable \$POSTGRESQL92_SCLS_ENABLED ; \ + $PGENGINE/pg_upgrade \ '--old-bindir=$PREVPGENGINE' \ '--new-bindir=$PGENGINE' \ '--old-datadir=$PGDATAOLD' \