Hello community, here is the log from the commit of package postgresql.13663 for openSUSE:Leap:15.1:Update checked in at 2020-08-17 12:30:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.1:Update/postgresql.13663 (Old) and /work/SRC/openSUSE:Leap:15.1:Update/.postgresql.13663.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "postgresql.13663" Mon Aug 17 12:30:11 2020 rev:1 rq:826657 version:12.0.1 Changes: -------- New Changes file: --- /dev/null 2020-08-06 00:20:10.149648038 +0200 +++ /work/SRC/openSUSE:Leap:15.1:Update/.postgresql.13663.new.3399/postgresql.changes 2020-08-17 12:30:12.363473391 +0200 @@ -0,0 +1,253 @@ +------------------------------------------------------------------- +Tue Jun 16 12:17:33 UTC 2020 - Reinhard Max <[email protected]> + +- Bump version to 12.0.1, so that the binary packages also have + a cut-point to conflict with. + +------------------------------------------------------------------- +Wed Jun 3 08:17:46 UTC 2020 - Reinhard Max <[email protected]> + +- Disable LLVM on SLE (bsc#1172274). +- Conflict with versions of the binary packages prior to the + May 2020 update, because we changed the package layout at that + point and need a clean cutover. + +------------------------------------------------------------------- +Tue Mar 24 10:45:25 UTC 2020 - Reinhard Max <[email protected]> + +- Bump package version to 12, but leave default at 10 for + SLE-15 and SLE-15-SP1. + +------------------------------------------------------------------- +Tue Dec 17 10:27:02 UTC 2019 - Reinhard Max <[email protected]> + +- Fix a mistake in the creation of /var/lib/pgsql/.bash_profile + with the tmpfiles mechanism (bsc#1159335). + +------------------------------------------------------------------- +Thu Nov 14 12:36:59 UTC 2019 - Reinhard Max <[email protected]> + +- Sync ownership of /run/postgresql in the file list with tmpfiles. + +------------------------------------------------------------------- +Tue Oct 22 13:08:50 UTC 2019 - Marcus Rueckert <[email protected]> + +- bump to 12 + +------------------------------------------------------------------- +Mon Oct 7 08:26:39 UTC 2019 - Reinhard Max <[email protected]> + +- Use the correct content for .bash_profile (boo#1153168). + +------------------------------------------------------------------- +Mon Sep 23 14:03:32 UTC 2019 - Reinhard Max <[email protected]> + +- Stop shipping SUSEfirewall2 config files (bsc#1151591). +- Fix installation of bash_profile for SLE11 (pre systemd). + +------------------------------------------------------------------- +Fri Feb 22 07:46:53 UTC 2019 - Franck Bui <[email protected]> + +- Drop use of $FIRST_ARG in .spec + + The use of $FIRST_ARG was probably required because of the + %service_* rpm macros were playing tricks with the shell positional + parameters. This is bad practice and error prones so let's assume + that no macros should do that anymore and hence it's safe to assume + that positional parameters remains unchanged after any rpm macro + call. + +------------------------------------------------------------------- +Tue Feb 19 16:05:22 UTC 2019 - Reinhard Max <[email protected]> + +- Change the persmissions for /var/run/postgresql to 1775, so that + the directory can only be used by users in the postgres group + (bsc#1123886). + +------------------------------------------------------------------- +Thu Jan 31 13:23:56 UTC 2019 - Reinhard Max <[email protected]> + +- Move bash profile out of /var/lib to allow transactional updates + (bsc#1100397). +- Use /run/postgresql instead of /var/run/postgresql in %ghost and + postgresql-tmpfiles.conf to avoid rpmlint warnings and errors. + +------------------------------------------------------------------- +Fri Nov 30 13:14:40 UTC 2018 - Marcus Rueckert <[email protected]> + +- add /var/run/postgresql to the filelist. as %ghost for systemd + systems and directly for non systemd systems + +------------------------------------------------------------------- +Fri Nov 30 11:05:00 UTC 2018 - Marcus Rueckert <[email protected]> + +- fix the unexpanded macro in the description of server-devel + +------------------------------------------------------------------- +Thu Nov 15 14:34:28 UTC 2018 - Reinhard Max <[email protected]> + +- Also bump the default package to 11. + +------------------------------------------------------------------- +Wed Nov 7 16:57:50 UTC 2018 - Marcus Rueckert <[email protected]> + +- add server-devel and llvmjit package file sections + +------------------------------------------------------------------- +Thu Oct 25 13:14:25 UTC 2018 - Reinhard Max <[email protected]> + +- Add the new subpackages server-devel and llvmjit that were + introduced with postgresql11. + +------------------------------------------------------------------- +Mon Jul 2 17:08:32 UTC 2018 - [email protected] + +- bump to 11 + +------------------------------------------------------------------- +Mon Apr 30 13:26:49 UTC 2018 - [email protected] + +- Require update-alternatives by postgresql: one of the main + scripts in use is install-alternatives, which calls u-a. + +------------------------------------------------------------------- +Fri Feb 2 10:03:33 UTC 2018 - [email protected] + +- Put POSTGRES_LANG into LC_ALL instead of LANG to retain the + previous behaviour of that variable (boo#1077027). + +------------------------------------------------------------------- +Wed Jan 17 16:48:57 UTC 2018 - [email protected] + +- postgresql-script: /etc/sysconfig/language is deprecated, use the + locale that was inherited from systemd instead for initializing + a new database instance (boo#1074988). + +------------------------------------------------------------------- +Wed Dec 13 18:10:54 UTC 2017 - [email protected] + +- add provides for all the pkgconfig() provides you also find in + the postgresqlXY-devel packages. then we automatically will pull + postgresql-devel which in turn will pull our default + postgresqlXY-devel package. (boo#1071971) + +------------------------------------------------------------------- +Wed Dec 6 10:32:06 UTC 2017 - [email protected] + +- Replace references to /var/adm/fillup-templates with new + %_fillupdir macro (boo#1069468) + +------------------------------------------------------------------- +Fri Nov 24 11:24:09 UTC 2017 - [email protected] + +- instead of hardcoding version 10, just check if the prio is + smaller than 80. + +------------------------------------------------------------------- +Thu Nov 23 17:05:21 UTC 2017 - [email protected] + +- simplify the postgresql-install-alternatives to only require the + pg version and go from there. + + supported calls of the script are: + /usr/share/postgresql/install-alternatives postgresqlXY + /usr/share/postgresql/install-alternatives XY + + where XY can currently be: 92 93 94 95 96 10 + +------------------------------------------------------------------- +Wed Nov 22 13:03:42 UTC 2017 - [email protected] + +- CVE-2017-14798, bsc#1062722: Fix LPE via postgres init script. + This only affected SysV-init based systems (i.e. SLE11). + +------------------------------------------------------------------- +Tue Nov 14 08:52:46 UTC 2017 - [email protected] + +- postgresql-test was missing a %files section. + +------------------------------------------------------------------- +Fri Nov 3 12:55:14 UTC 2017 - [email protected] + +- Move the start/stop script to /usr/share/postgresql +- Add a script for handling update-alternatives as subpackages + get installed/uninstalled, so that the implementation packages + don't have to repeat the logic (postgresql-install-alternatives). +- Add the postgresql-test subpackage. +- Fix some dependencies. +- Save the enabled and running state when upgrading from the + obsolete postgresql-init package. + +------------------------------------------------------------------- +Fri Oct 6 14:33:54 UTC 2017 - [email protected] + +- properly guard the systemd macro in %pre server so it wont be + used on sle11 +- add Requires(pre) so we have groupadd/useradd available + +------------------------------------------------------------------- +Thu Sep 21 07:59:26 UTC 2017 - [email protected] + +- Refine the dependencies between the "dummy" packages and the + actual implementation of PostgreSQL. The dummy packages now + require an arbitrary implementation and recommend the default + version. +- Move the contents of postgresql-init to the server package. + +------------------------------------------------------------------- ++++ 56 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:Leap:15.1:Update/.postgresql.13663.new.3399/postgresql.changes New: ---- postgresql-bashprofile postgresql-firewall postgresql-init postgresql-install-alternatives postgresql-script postgresql-sysconfig postgresql-tmpfiles.conf postgresql.changes postgresql.service postgresql.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ postgresql.spec ++++++ # # spec file for package postgresql # # Copyright (c) 2016 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define pgmajor 12 %define defaultpackage postgresql10 #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir /var/adm/fillup-templates %endif %if 0%{?suse_version} >= 1300 %bcond_without systemd %else %bcond_with systemd %endif %if 0%{?is_opensuse} && 0%{?suse_version} >= 1500 && %pgmajor >= 11 && %pgmajor < 90 %bcond_without llvm %else # LLVM is currently unsupported on SLE, so don't use it %bcond_with llvm %endif Name: postgresql Summary: Basic Clients and Utilities for PostgreSQL License: PostgreSQL Group: Productivity/Databases/Tools Version: %pgmajor.0.1 Release: 0 Url: https://www.postgresql.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build Provides: postgresql-noarch = %version-%release Requires: postgresql-implementation Requires: update-alternatives Recommends: %defaultpackage %if 0%{?sle_version} # At this point we changed the package layout on SLE and conflict with # older releases to get a clean cut. Conflicts: postgresql90 Conflicts: postgresql91 Conflicts: postgresql92 Conflicts: postgresql93 Conflicts: postgresql94 Conflicts: postgresql95 < 9.5.22 Conflicts: postgresql96 < 9.6.18 Conflicts: postgresql10 < 10.13 Conflicts: postgresql11 < 11.8 Conflicts: postgresql12 < 12.3 %endif BuildArch: noarch Source0: postgresql-init Source1: postgresql-sysconfig Source2: postgresql-firewall Source3: postgresql-tmpfiles.conf Source4: postgresql.service Source5: postgresql-bashprofile Source6: postgresql-script Source7: postgresql-install-alternatives %if 0%{?suse_version} > 1100 %define fwdir /etc/sysconfig/SuSEfirewall2.d/services %define fwname postgresql %else %define fwdir /etc/sysconfig/scripts %define fwname SuSEfirewall2-postgresql %endif %description PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. This package contains the basic utility and client programs necessary to maintain and work with local or remote PostgreSQL databases as well as manual pages for the SQL commands that PostgreSQL supports. Full HTML documentation for PostgreSQL can be found in the postgresql-docs package. %package server Summary: The Programs Needed to Create and Run a PostgreSQL Server Group: Productivity/Databases/Servers Provides: postgresql-server-noarch = %version-%release Requires: postgresql-server-implementation Requires: postgresql = %version-%release Recommends: %defaultpackage-server %if 0%{?suse_version} >= 1315 Requires(pre): shadow %else Requires(pre): pwdutils %endif Provides: postgresql-init = %version.0-%release Obsoletes: postgresql-init < %version.0-%release %if %{with systemd} BuildRequires: pkgconfig(systemd) %{?systemd_requires} %else Requires(postun): %insserv_prereq %endif %description server PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, sub-queries, triggers, and user-defined types and functions. This package includes the programs needed to create and run a PostgreSQL server, which will in turn allow you to create and maintain PostgreSQL databases. %package server-devel Summary: PostgreSQL server development header files and utilities Group: Development/Libraries/C and C++ Provides: postgresql-server-devel-noarch = %version-%release Requires: postgresql-server-devel-implementation Recommends: %defaultpackage-server-devel %description server-devel PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. This package contains the header files and libraries needed to compile C extensions that link into the PostgreSQL server. For building client applications, see the %defaultpackage-devel package. %package llvmjit Summary: Just-in-time compilation support for PostgreSQL Group: Productivity/Databases/Servers Provides: postgresql-llvmjit-noarch = %version-%release Requires: postgresql-llvmjit-implementation Recommends: %defaultpackage-llvmjit %description llvmjit PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, sub-queries, triggers, and user-defined types and functions. This package contains support for just-in-time compiling parts of PostgreSQL queries. Using LLVM it compiles e.g. expressions and tuple deforming into native code, with the goal of accelerating analytics queries. %package test Summary: The test suite for PostgreSQL Group: Productivity/Databases/Servers Provides: postgresql-test-noarch = %version-%release Requires: postgresql-test-implementation Recommends: %defaultpackage-implementation %description test This package contains the sources and pre-built binaries of various tests for the PostgreSQL database management system, including regression tests and benchmarks. %package docs Summary: HTML Documentation for PostgreSQL Group: Productivity/Databases/Tools Provides: postgresql-docs-noarch = %version-%release Requires: postgresql-docs-implementation Recommends: %defaultpackage-docs %description docs PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. This package contains the HTML documentation for PostgreSQL. The start page is: file:///usr/share/doc/packages/postgresql/html/index.html . Manual pages for the PostgreSQL SQL statements can be found in the postgresql package. %package contrib Summary: Contributed Extensions and Additions to PostgreSQL Group: Productivity/Databases/Tools Provides: postgresql-contrib-noarch = %version-%release Requires: postgresql-contrib-implementation Recommends: %defaultpackage-contrib %description contrib PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. The postgresql-contrib package includes extensions and additions that are distributed along with the PostgreSQL sources, but are not (yet) officially part of the PostgreSQL core. Documentation for the modules contained in this package can be found in /usr/share/doc/packages/postgresql/contrib. %package devel Summary: PostgreSQL development header files and libraries Group: Development/Libraries/C and C++ Provides: postgresql-devel-noarch = %version-%release Provides: pkgconfig(libecpg) = %{version}-%{release} Provides: pkgconfig(libecpg_compat) = %{version}-%{release} Provides: pkgconfig(libpgtypes) = %{version}-%{release} Provides: pkgconfig(libpq) = %{version}-%{release} Requires: postgresql-devel-implementation Recommends: %defaultpackage-devel %description devel PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. This package contains the header files and libraries needed to compile C applications which will directly interact with a PostgreSQL database management server and the ECPG Embedded C Postgres preprocessor. You need to install this package if you want to develop applications in C which will interact with a PostgreSQL server. %package plperl Summary: The PL/Tcl, PL/Perl, and PL/Python procedural languages for PostgreSQL Group: Productivity/Databases/Servers Provides: postgresql-plperl-noarch = %version-%release Requires: postgresql-plperl-implementation Recommends: %defaultpackage-plperl %description plperl PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. This package contains the PL/Perl procedural language for PostgreSQL. With this module one can use Perl to write stored procedures, functions, and triggers. %package plpython Summary: The PL/Python Procedural Languages for PostgreSQL Group: Productivity/Databases/Servers Provides: postgresql-plpython-noarch = %version-%release Requires: postgresql-plpython-implementation Recommends: %defaultpackage-plpython %description plpython PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. This package contains the PL/Python procedural language for PostgreSQL. With this module one can use Python to write stored procedures, functions, and triggers. %package pltcl Summary: PL/Tcl Procedural Language for PostgreSQL Group: Productivity/Databases/Tools Provides: postgresql-pltcl-noarch = %version-%release Requires: postgresql-pltcl-implementation Recommends: %defaultpackage-pltcl %description pltcl PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. This package contains the PL/Tcl procedural language for PostgreSQL. With thie module one can use Tcl to write stored procedures, functions, and triggers. %prep %build echo "This is a dummy package to provide a dependency on the default PostgreSQL version." > README %install mkdir -p %buildroot/var/lib/pgsql/ install -m755 -d %buildroot%{_fillupdir} install -m644 %{S:1} %buildroot%{_fillupdir}/sysconfig.postgresql %if 0%{?suse_version} < 1550 install -m755 -d %buildroot%fwdir install -m644 %{S:2} %buildroot%fwdir/%fwname %endif install -m755 -d %buildroot/usr/sbin install -m755 -d %buildroot/usr/share/postgresql install -m755 %{S:7} %buildroot/usr/share/postgresql/install-alternatives %if %{with systemd} install -m644 %{S:5} %buildroot/usr/share/postgresql/bash_profile install -m755 -d %buildroot/%_tmpfilesdir install -m644 %{S:3} %buildroot%_tmpfilesdir/postgresql.conf install -m755 %{S:6} %buildroot/usr/share/postgresql install -m755 -d %buildroot%_unitdir install -m444 %{S:4} %buildroot%_unitdir ln -sf service %buildroot/usr/sbin/rcpostgresql %else install -m640 %{S:5} %buildroot/var/lib/pgsql/.bash_profile install -m755 -d %buildroot/etc/init.d install -m755 %{S:0} %buildroot/etc/init.d/postgresql ln -sf /etc/init.d/postgresql %buildroot/usr/sbin/rcpostgresql %endif %define eflag /run/postgresql-was-enabled %define aflag /run/postgresql-was-running %pre server getent group postgres > /dev/null || groupadd -g 26 -o -r postgres getent passwd postgres > /dev/null || useradd -g postgres -o -r -d /var/lib/pgsql -s /bin/bash \ -c "PostgreSQL Server" -u 26 postgres %if %{with systemd} %service_add_pre postgresql.service # Save the "enabled" and "active" state across the transition of # ownership of postgresql.service from postgresql-init to # postgresql-server. if [ $1 -ge 1 ]; then \ if [ x$(systemctl is-enabled postgresql.service 2>/dev/null ||:) = "xenabled" ]; then touch %eflag fi systemctl is-active postgresql.service &>/dev/null && touch %aflag ||: fi %endif %post server %fillup_only -n postgresql %if %{with systemd} PROFILE="/var/lib/pgsql/.bash_profile" if test -r "$PROFILE" && test "`cat $PROFILE`" = "/usr/share/postgresql/bash_profile" then # Correct a mistake in /usr/lib/tmpfiles.d/postgresql.conf # that created /var/lib/pgsql/.bash_profile with invalid # content (bsc#1159335). rm "$PROFILE" fi %tmpfiles_create %_tmpfilesdir/postgresql.conf %service_add_post postgresql.service %endif %preun server %if %{with systemd} # Cannot use systemd macros here, because they're doing too much /usr/bin/systemctl --no-reload disable postgresql.service || : %else %stop_on_removal postgresql %endif %postun server %if %{with systemd} # Cannot use systemd macros here, because they're doing too much rm -f "/var/lib/systemd/migrated/postgresql" /usr/bin/systemctl daemon-reload || : %else %insserv_cleanup %endif %if %{with systemd} %posttrans server # Save the "enabled" and "active" state across the transition of # ownership of postgresql.service from postgresql-init to # postgresql-server. if test -f %eflag; then rm -f %eflag systemctl enable postgresql.service fi if test -f %aflag; then rm -f %aflag systemctl start postgresql.service fi %endif %files %defattr(-,root,root,-) %doc README %dir /usr/share/postgresql /usr/share/postgresql/install-alternatives %files server %defattr(-,root,root,-) %doc README %attr(750,postgres,postgres) %dir /var/lib/pgsql %if %{with systemd} %attr(644,root,root) /usr/share/postgresql/bash_profile %ghost %config %attr(640,postgres,postgres) /var/lib/pgsql/.bash_profile %else %config %attr(640,postgres,postgres) /var/lib/pgsql/.bash_profile %endif %if 0%{?suse_version} < 1550 %if 0%{?suse_version} > 1110 %dir %fwdir %endif %config %fwdir/%fwname %endif %{_fillupdir}/sysconfig.postgresql /usr/sbin/rcpostgresql %if %{with systemd} %_tmpfilesdir/postgresql.conf %_unitdir/ /usr/share/postgresql/postgresql-script %ghost %dir %attr(1775,postgres,postgres) /run/postgresql %else %config /etc/init.d/postgresql %dir %attr(1775,postgres,postgres) /var/run/postgresql %endif %files test %defattr(-,root,root,-) %doc README %files docs %defattr(-,root,root,-) %doc README %files contrib %defattr(-,root,root,-) %doc README %files devel %defattr(-,root,root,-) %doc README %files server-devel %defattr(-,root,root,-) %doc README %if %{with llvm} %files llvmjit %defattr(-,root,root,-) %doc README %endif %files plperl %defattr(-,root,root,-) %doc README %files plpython %defattr(-,root,root,-) %doc README %files pltcl %defattr(-,root,root,-) %doc README %changelog ++++++ postgresql-bashprofile ++++++ # Get PGDATA from /etc/sysconfig/postgresql if test -f /etc/sysconfig/postgresql; then eval eval $(sed -n '/^POSTGRES_DATADIR=/s//PGDATA=/p' /etc/sysconfig/postgresql) export PGDATA fi ++++++ postgresql-firewall ++++++ ## Name: PostgreSQL Server ## Description: Opens TCP port 5432 to allow remote connections to the PostgreSQL server. TCP="5432" ++++++ postgresql-init ++++++ #!/bin/sh # Copyright (c) 1995-2004 SUSE Linux AG, Nuernberg, Germany. # All rights reserved. # # System startup script for PostgreSQL # # LSB compatible service control script; see http://www.linuxbase.org/spec/ # ### BEGIN INIT INFO # Provides: postgresql # Required-Start: $network $remote_fs # Required-Stop: $network $remote_fs # Default-Start: 3 5 # Default-Stop: # Description: Start the PostgreSQL master daemon ### END INIT INFO # Source SuSE config PG_SYSCONFIG=/etc/sysconfig/postgresql test -f $PG_SYSCONFIG && . $PG_SYSCONFIG # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v ditto but be verbose in local rc status # rc_status -v -r ditto and clear the local rc status # rc_failed set local and overall rc status to failed # rc_reset clear local rc status (overall remains) # rc_exit exit appropriate to overall rc status . /etc/rc.status eval DATADIR=${POSTGRES_DATADIR:-~postgres/data} OPTIONS=${POSTGRES_OPTIONS} PIDFILE=$DATADIR/postmaster.pid # The echo return value for success (defined in /etc/rc.config). rc_reset # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signalling is not supported) are # considered a success. # if test -r $DATADIR/PG_VERSION ; then DATA_VERSION=$(cat $DATADIR/PG_VERSION) POSTGRES=/usr/lib/postgresql${DATA_VERSION/./}/bin/postgres fi if test -x /usr/bin/postgres; then ACTIVE=$(readlink -q -f /usr/bin/postgres) test -z "$POSTGRES" && POSTGRES="$ACTIVE" fi if test -z "$POSTGRESQL_QUIET"; then export POSTGRESQL_QUIET=1 if test -n "$DATA_VERSION"; then if test -z "$ACTIVE" -o "$ACTIVE" != "$POSTGRES"; then echo " Your database files were created by PostgreSQL version $DATA_VERSION." if test -x "$POSTGRES"; then echo " Using the executables in $(dirname $POSTGRES)." else echo " Could not find executables for this version." echo " Please install the PostgreSQL server package for version $DATA_VERSION." fi fi elif test -z "$ACTIVE"; then echo " Cannot find an active PostgreSQL server binary. Please install one of the PostgreSQL" echo " server packages or activate an already installed version using update-alternatives." fi fi if test ! -x "$POSTGRES"; then test "$1" = "stop" && exit 0 || exit 5 fi BINDIR=$(dirname $POSTGRES) VERSION=$($POSTGRES --version|awk '{print $NF}') LOGFILE=$DATADIR/postmaster.log pg_ctl () { CMD="$BINDIR/pg_ctl ${POSTGRES_TIMEOUT:+-t $POSTGRES_TIMEOUT} $@" su - postgres -c "$CMD" } case "$1" in start) if [ ! -f $DATADIR/PG_VERSION ]; then echo -n "Initializing PostgreSQL $VERSION at location ${DATADIR}" LANG_SYSCONFIG=/etc/sysconfig/language test -f "$LANG_SYSCONFIG" && . $LANG_SYSCONFIG LANG=${POSTGRES_LANG:-$RC_LANG} INITDB=/usr/bin/initdb V=$(printf "%02d%02d" $(echo $VERSION|awk -F. '{print $1, $2}')) AUTH="ident"; test $V -lt 0804 && AUTH="ident sameuser" su - postgres -c \ "$INITDB --locale=$LANG --auth=\"$AUTH\" $DATADIR &> initlog" || rc_failed rc_status -v rc_status || { echo "You can find a log of the initialisation in ~postgres/initlog ." rc_exit } fi echo -n "Starting PostgreSQL $VERSION " if pg_ctl status -s -D $DATADIR >/dev/null then rc_failed 0 else set -o pipefail pg_ctl start -s -w -D $DATADIR -l $LOGFILE -o "\"$OPTIONS\"" fi rc_status -v ;; stop) echo -n "Shutting down PostgreSQL $VERSION " if pg_ctl status -s -D $DATADIR >/dev/null then pg_ctl stop -s -D $DATADIR -m fast &> /dev/null else rc_failed 0 fi rc_status -v ;; try-restart|condrestart) ## Do a restart only if the service was active before. ## Note: try-restart is now part of LSB (as of 1.9). ## RH has a similar command named condrestart. if test "$1" = "condrestart"; then echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" fi $0 status if test $? = 0; then $0 restart else rc_reset # Not running is not a failure. fi # Remember status and be quiet rc_status ;; restart) ## Stop the service and regardless of whether it was ## running or not, start it again. $0 stop $0 start rc_status ;; force-reload | reload) echo -n "Reloading configuration for PostgreSQL $VERSION " pg_ctl reload -s -D $DATADIR rc_status -v ;; status) echo -n "Checking for PostgreSQL $VERSION: " ## Check status with checkproc(8), if process is running ## checkproc will return with exit status 0. # Status has a slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running # NOTE: checkproc returns LSB compliant status values. if ! pg_ctl status -s -D $DATADIR >/dev/null then if test -f $DATADIR/postmaster.pid; then rc_failed 1 else rc_failed 3 fi fi rc_status -v ;; probe) rc_failed 3 rc_status -v ;; *) echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" exit 1 ;; esac # Inform the caller not only verbosely and set an exit status. rc_exit ++++++ postgresql-install-alternatives ++++++ #!/bin/bash shopt -s nullglob if test "$#" -ne 1; then echo "usage: $0 pgversion" 1>&2 exit 1 fi PRIO=$1 case "$PRIO" in postgresql*) PRIO="${PRIO##postgresql}" ;; esac PGBASEDIR=/usr/lib/postgresql$PRIO if [ $PRIO -lt 80 ] ; then PRIO="${PRIO}0" fi PGBINDIR=$PGBASEDIR/bin for FILE in $PGBINDIR/*; do NAME=$(basename $FILE) DIR=/usr/bin SLAVES="$SLAVES --slave $DIR/$NAME $NAME $FILE" done if test -n "$SLAVES"; then update-alternatives --quiet --install \ /usr/lib/postgresql postgresql $PGBASEDIR $PRIO \ $SLAVES else update-alternatives --remove postgresql $PGBASEDIR fi ++++++ postgresql-script ++++++ #!/bin/sh PG_SYSCONFIG=/etc/sysconfig/postgresql test -f $PG_SYSCONFIG && . $PG_SYSCONFIG eval DATADIR=${POSTGRES_DATADIR:-~postgres/data} OPTIONS=${POSTGRES_OPTIONS} PIDFILE=$DATADIR/postmaster.pid # if test -r $DATADIR/PG_VERSION ; then DATA_VERSION=$(cat $DATADIR/PG_VERSION) POSTGRES=/usr/lib/postgresql${DATA_VERSION/./}/bin/postgres fi if test -x /usr/bin/postgres; then ACTIVE=$(readlink -q -f /usr/bin/postgres) test -z "$POSTGRES" && POSTGRES="$ACTIVE" fi if test -n "$DATA_VERSION"; then if test -z "$ACTIVE" -o "$ACTIVE" != "$POSTGRES"; then echo " Your database files were created by PostgreSQL version $DATA_VERSION." if test -x "$POSTGRES"; then echo " Using the executables in $(dirname $POSTGRES)." else echo " Could not find executables for this version." echo " Please install the PostgreSQL server package for version $DATA_VERSION." fi fi elif test -z "$ACTIVE"; then echo " Cannot find an active PostgreSQL server binary. Please install one of the PostgreSQL" echo " server packages or activate an already installed version using update-alternatives." fi if test ! -x "$POSTGRES"; then exit 1 fi BINDIR=$(dirname $POSTGRES) VERSION=$($POSTGRES --version|awk '{print $NF}') pg_ctl () { $BINDIR/pg_ctl -s -D $DATADIR ${POSTGRES_TIMEOUT:+-t $POSTGRES_TIMEOUT} "$@" } cd ~ case "$1" in start) if [ ! -f $DATADIR/PG_VERSION ]; then test -n "$POSTGRES_LANG" && export LC_ALL="$POSTGRES_LANG" V=$(printf "%02d%02d" $(echo $VERSION|awk -F. '{print $1, $2}')) install -d -m 700 ${DATADIR} && echo "Initializing PostgreSQL $VERSION at location ${DATADIR}" /usr/bin/initdb --auth=ident $DATADIR &> initlog || { echo "Initialisation failed. See $PWD/initlog ." exit 1 } fi pg_ctl start -w ${OPTIONS:+-o "$OPTIONS"} ;; stop) pg_ctl stop -m fast ;; reload) pg_ctl reload ;; *) echo "Usage: $0 {start|stop|reload}" exit 1 ;; esac ++++++ postgresql-sysconfig ++++++ ## Path: Applications/PostgreSQL ## Description: The PostgreSQL Database System ## Type: string() ## Default: "~postgres/data" ## ServiceRestart: postgresql # # In which directory should the PostgreSQL database reside? # POSTGRES_DATADIR="~postgres/data" ## Path: Applications/PostgreSQL ## Description: The PostgreSQL Database System ## Type: string() ## Default: "" ## ServiceRestart: postgresql # # The options that are given to the PostgreSQL master daemon on startup. # See the manual pages for postmaster and postgres for valid options. # # Don't put "-D datadir" here since it is set by the startup script # based on the variable POSTGRES_DATADIR above. # POSTGRES_OPTIONS="" ## Path: Applications/PostgreSQL ## Description: The PostgreSQL Database System ## Type: string() ## Default: "600" ## ServiceRestart: postgresql # # This value controls how many seconds the pg_ctl helper program waits # for the startup or shutdown of the PostgreSQL server to complete. # POSTGRES_TIMEOUT="600" ## Path: Applications/PostgreSQL ## Description: The PostgreSQL Database System ## Type: string() ## Default: "C" ## ServiceRestart: "" # # Specifies the locale under which the PostgreSQL database location # should be initialized and run. If needed, it has to be changed # before PostgreSQL is started for the first time. To change the # locale of an existsing PostgreSQL database location, it must be # dumped, removed and initialized from scratch using the new locale. # # If unset or empty $RC_LANG from /etc/sysconfig/language is used. # POSTGRES_LANG="" ++++++ postgresql-tmpfiles.conf ++++++ # For the PostgreSQL server's unix domain socket d /run/postgresql 1775 postgres postgres - - C /var/lib/pgsql/.bash_profile 0640 postgres postgres - /usr/share/postgresql/bash_profile ++++++ postgresql.service ++++++ [Unit] Description=PostgreSQL database server After=syslog.target After=network.target [Service] Type=forking User=postgres EnvironmentFile=-/etc/sysconfig/postgresql ExecStart=/usr/share/postgresql/postgresql-script start ExecStop=/usr/share/postgresql/postgresql-script stop ExecReload=/usr/share/postgresql/postgresql-script reload # The server might be slow to stop, and that's fine. Don't kill it SendSIGKILL=no [Install] WantedBy=multi-user.target
