Hello community, here is the log from the commit of package postgresql96 for openSUSE:Factory checked in at 2017-11-26 10:33:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/postgresql96 (Old) and /work/SRC/openSUSE:Factory/.postgresql96.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "postgresql96" Sun Nov 26 10:33:31 2017 rev:6 rq:545174 version:9.6.5 Changes: -------- --- /work/SRC/openSUSE:Factory/postgresql96/postgresql96.changes 2017-08-23 11:52:04.168896547 +0200 +++ /work/SRC/openSUSE:Factory/.postgresql96.new/postgresql96.changes 2017-11-26 10:33:32.913946162 +0100 @@ -1,0 +2,49 @@ +Thu Nov 23 19:18:40 UTC 2017 - mrueckert@suse.de + +- port /usr/share/postgresql/install-alternatives usage to the new + scheme + +------------------------------------------------------------------- +Fri Nov 3 13:00:44 UTC 2017 - max@suse.com + +- Simplify the set of local RPM macros. +- Use /usr/share/postgresql/install-alternatives in the respective + scriptlets. +- Fix the logic around restart on upgrade and stop on removal. + We bring the binaries, but we don't own the unit file. + +------------------------------------------------------------------- +Mon Oct 2 10:59:50 UTC 2017 - max@suse.com + +- Break a build dependency loop in the server packages that led to + bootstrap problems. + +------------------------------------------------------------------- +Fri Sep 22 12:55:51 UTC 2017 - max@suse.com + +- Adjust dependencies to the new packaging schema. +- Build the libs in 10 rather than 9.6. + +------------------------------------------------------------------- +Fri Sep 1 13:46:48 UTC 2017 - max@suse.com + +- Update to version 9.6.5: + * https://www.postgresql.org/docs/9.6/static/release-9-6-5.html + * Show foreign tables in information_schema.table_privileges + view. + * Clean up handling of a fatal exit (e.g., due to receipt of + SIGTERM) that occurs while trying to execute a ROLLBACK of a + failed transaction. + * Remove assertion that could trigger during a fatal exit. + * Correctly identify columns that are of a range type or domain + type over a composite type or domain type being searched for. + * Prevent crash when passing fixed-length pass-by-reference data + types to parallel worker processe. + * Fix crash in pg_restore when using parallel mode and using a + list file to select a subset of items to restore. + * Change ecpg's parser to allow RETURNING clauses without + attached C variables. + * Change ecpg's parser to recognize backslash continuation of C + preprocessor command lines. + +------------------------------------------------------------------- Old: ---- postgresql-9.6.4.tar.bz2 New: ---- postgresql-9.6.5.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ postgresql96.spec ++++++ --- /var/tmp/diff_new_pack.wVp8LG/_old 2017-11-26 10:33:33.845912178 +0100 +++ /var/tmp/diff_new_pack.wVp8LG/_new 2017-11-26 10:33:33.849912032 +0100 @@ -16,40 +16,46 @@ # +%if 0%{?suse_version} >= 1300 +%bcond_without systemd +%else +%bcond_with systemd +%endif + %define majorversion 9.6 %define packageversion 96 -%define pgname postgresql%packageversion +%define priority %packageversion +%define pg_minor_version %(echo %version | sed -r 's/^([0-9]+\\.[0-9]+).*/\\1/') %define libpq libpq5 %define libecpg libecpg6 %define libpq_so libpq.so.5 %define libecpg_so libecpg.so.6 %if "@BUILD_FLAVOR@" == "libs" %define buildmain 0 -%define buildlibs 1 +%define buildlibs 0 %define builddevel 1 %else %define buildmain 1 %define buildlibs 0 %define builddevel 0 %endif -%define pgbasedir %_prefix/lib/%pgname +%define pgbasedir %_prefix/lib/%name %define pgtestdir %pgbasedir/test %define pgbindir %pgbasedir/bin %define pglibdir %pgbasedir/%_lib %define pgincludedir %_includedir/pgsql -%define pgdatadir %_datadir/%pgname -%define pgdocdir %_docdir/%pgname +%define pgdatadir %_datadir/%name +%define pgdocdir %_docdir/%name %define pgextensiondir %pgdatadir/extension %define pgmandir %_mandir -Name: postgresql96 +Name: postgresql%packageversion %if %buildmain BuildRequires: gettext-devel BuildRequires: libuuid-devel BuildRequires: ncurses-devel BuildRequires: pam-devel -BuildRequires: postgresql-init BuildRequires: python-devel BuildRequires: readline-devel BuildRequires: tcl-devel @@ -63,19 +69,19 @@ BuildRequires: openldap2-devel BuildRequires: openssl-devel BuildRequires: pkg-config -BuildRequires: update-alternatives %if 0%{?suse_version} == 1110 BuildRequires: krb5-devel %else BuildRequires: pkgconfig(krb5) %endif -#!BuildIgnore: %pgname +#!BuildIgnore: %name +#!BuildIgnore: %name-server +#!BuildIgnore: postgresql-implementation Summary: Basic Clients and Utilities for PostgreSQL License: PostgreSQL Group: Productivity/Databases/Tools -Version: 9.6.4 +Version: 9.6.5 Release: 0 -%define pg_minor_version %(echo %version | sed -r 's/^([0-9]+\\.[0-9]+).*/\\1/') Source0: https://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2 Source1: baselibs.conf Source3: postgresql-README.SUSE @@ -89,10 +95,11 @@ Patch9: postgresql-var-run-socket.patch Url: https://www.postgresql.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build -Provides: postgresql = %version +Provides: postgresql = %version-%release +Provides: postgresql-implementation = %version-%release Requires: %libpq >= %majorversion -Requires(post): update-alternatives -Requires(postun): update-alternatives +Requires(post): postgresql-noarch >= %majorversion +Requires(postun): postgresql-noarch >= %majorversion %description PostgreSQL is an advanced object-relational database management system @@ -148,19 +155,19 @@ preprocessor for PostgreSQL. %if %builddevel -%package -n %pgname-devel +%package devel Summary: PostgreSQL development header files and libraries Group: Development/Libraries/C and C++ -Provides: postgresql-devel = %version +Provides: postgresql-devel-implementation = %version-%release Requires: %libecpg >= %majorversion Requires: %libpq >= %majorversion -Requires(post): update-alternatives -Requires(postun): update-alternatives +Requires(post): postgresql-noarch >= %majorversion +Requires(postun): postgresql-noarch >= %majorversion # Installation of postgresql??-devel is exclusive Provides: postgresql-devel-exclusive = %majorversion Conflicts: postgresql-devel-exclusive < %majorversion -%description -n %pgname-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 @@ -181,14 +188,13 @@ Group: Productivity/Databases/Servers PreReq: /sbin/chkconfig PreReq: postgresql = %version -PreReq: postgresql-init >= %majorversion Requires: glibc-locale Requires: timezone -Provides: postgresql-server = %version -Requires(preun): postgresql-init >= %majorversion -Requires(postun): postgresql-init >= %majorversion -Requires(post): update-alternatives -Requires(postun): update-alternatives +Provides: postgresql-server-implementation = %version-%release +Requires(preun): postgresql-server-noarch >= %majorversion +Requires(postun): postgresql-server-noarch >= %majorversion +Requires(post): postgresql-noarch >= %majorversion +Requires(postun): postgresql-noarch >= %majorversion %description server PostgreSQL is an advanced object-relational database management system @@ -203,7 +209,9 @@ %package test Summary: The test suite for PostgreSQL Group: Productivity/Databases/Servers -Requires: postgresql-server = %version +Provides: postgresql-test-implementation = %version-%release +Requires: %name-server = %version +Requires: postgresql-test-noarch >= %majorversion %description test This package contains the sources and pre-built binaries of various @@ -213,7 +221,8 @@ %package docs Summary: HTML Documentation for PostgreSQL Group: Productivity/Databases/Tools -Provides: postgresql-docs = %version +Provides: postgresql-docs-implementation = %version-%release +Requires: postgresql-docs-noarch >= %majorversion %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif @@ -231,11 +240,11 @@ %package contrib Summary: Contributed Extensions and Additions to PostgreSQL -#FIXME Group: Productivity/Databases/Tools -PreReq: %pgname-server = %version -Provides: postgresql-contrib = %version -Requires(post): update-alternatives +Provides: postgresql-contrib-implementation = %version-%release +Requires: postgresql-contrib-noarch >= %majorversion +Requires(post): postgresql >= %majorversion +PreReq: %name-server = %version-%release %description contrib PostgreSQL is an advanced object-relational database management system @@ -253,10 +262,10 @@ %package plperl Summary: The PL/Tcl, PL/Perl, and PL/Python procedural languages for PostgreSQL Group: Productivity/Databases/Servers +Provides: postgresql-plperl-implementation = %version-%release +Requires: %name-server = %version-%release Requires: perl = %perl_version -Provides: postgresql-plperl = %version -#FIXME -Requires: %pgname-server = %version +Requires: postgresql-plperl-noarch >= %majorversion %description plperl This package contains the the PL/Tcl, PL/Perl, and PL/Python procedural @@ -268,9 +277,9 @@ %package plpython Summary: The PL/Python Procedural Languages for PostgreSQL Group: Productivity/Databases/Servers -Provides: postgresql-plpython = %version -#FIXME -Requires: %pgname-server = %version +Provides: postgresql-plpython-implementation = %version-%release +Requires: %name-server = %version-%release +Requires: postgresql-plpython-noarch >= %majorversion Requires: python %description plpython @@ -289,9 +298,9 @@ %package pltcl Summary: PL/Tcl Procedural Language for PostgreSQL Group: Productivity/Databases/Tools -Provides: postgresql-pltcl = %version -#FIXME -Requires: %pgname-server = %version +Provides: postgresql-pltcl-implementation = %version-%release +Requires: %name-server = %version +Requires: postgresql-pltcl-noarch >= %majorversion Requires: tcl %description pltcl @@ -478,19 +487,6 @@ rm %buildroot%pgdatadir/pg_service.conf.sample %endif %endif -cat > alternatives <<"EOF" -shopt -s nullglob -for FILE in %pgbindir/*; do - NAME=$(basename $FILE) - DIR=%_bindir - SLAVES="$SLAVES --slave $DIR/$NAME $NAME $FILE" -done -if test -n "$SLAVES"; then - update-alternatives --quiet --install \ - /usr/lib/postgresql postgresql %pgbasedir %packageversion \ - $SLAVES -fi -EOF mkdir -p %buildroot{%_bindir,%_mandir/man1} mkdir -p %buildroot/etc/alternatives genlists () @@ -509,7 +505,7 @@ ln -s $ALTBIN %buildroot$BIN echo "$PGBIN" >> $PKG.files - echo "$BIN" >> $PKG.files + echo "%config(missingok) $BIN" >> $PKG.files echo "%ghost $ALTBIN" >> $PKG.files test -e %buildroot$MAN && echo "%doc $MAN" >> $PKG.files @@ -545,48 +541,73 @@ %if %buildmain %postun -if test "$1" == 0; then - update-alternatives --remove postgresql %pgbasedir -fi +/usr/share/postgresql/install-alternatives %priority -%post -p /bin/bash -f alternatives +%post +/usr/share/postgresql/install-alternatives %priority -%post server -f alternatives +%post server +/usr/share/postgresql/install-alternatives %priority %preun server # Stop only when we are uninstalling the currently running version -PID=$(pidof -s postgres) || : -if test -n "$PID" -a -x /etc/init.d/postgresql; then - BIN=$(readlink /proc/$PID/exe) +test -n "$FIRST_ARG" || FIRST_ARG="$1" +if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then + %if %{with systemd} + %define stop %_stop_on_removal postgresql.service + eval $(systemctl show postgresql --property=MainPID) + %else + %define stop /sbin/init.d postgresql stop + MainPID=$(pidof -s postgres) || : + %endif + if test -n "$MainPID" -a "$MainPID" -ne 0; then + BIN=$(readlink -n /proc/$MainPID/exe) DIR=$(dirname ${BIN% *}) - if test "$DIR" = "%pgbindir"; then - %stop_on_removal postgresql + if test "$DIR" = "%pgbindir" -o "$DIR" = "%_bindir"; then + %stop + fi fi fi -%postun server -f alternatives +%postun server +/usr/share/postgresql/install-alternatives %priority # Restart only when we are updating the currently running version # or from the old packaging scheme -PID=$(pidof -s postgres) || : -if test -n "$PID" -a -x /etc/init.d/postgresql; then - BIN=$(readlink /proc/$PID/exe) +test -n "$FIRST_ARG" || FIRST_ARG="$1" +if [ "$FIRST_ARG" -ge 1 ]; then + %if %{with systemd} + %define restart %_restart_on_update postgresql.service + eval $(systemctl show postgresql --property=MainPID) + %else + %define restart /sbin/init.d postgresql restart + MainPID=$(pidof -s postgres) || : + %endif + if test -n "$MainPID" -a "$MainPID" -ne 0 && + readlink -n /proc/$MainPID/exe | grep -Fq " (deleted)" + then + BIN=$(readlink -n /proc/$MainPID/exe) DIR=$(dirname ${BIN% *}) if test "$DIR" = "%pgbindir" -o "$DIR" = "%_bindir"; then - %restart_on_update postgresql + %restart + fi fi fi -%post contrib -f alternatives +%post contrib +/usr/share/postgresql/install-alternatives %priority -%postun contrib -f alternatives +%postun contrib +/usr/share/postgresql/install-alternatives %priority %endif %if %builddevel -%post -n %pgname-devel -f alternatives +%post devel +/usr/share/postgresql/install-alternatives %priority -%postun -n %pgname-devel -f alternatives +%postun devel +/usr/share/postgresql/install-alternatives %priority %endif %if %buildlibs @@ -631,7 +652,6 @@ %pgdocdir/extension %dir %pgdatadir /usr/lib/postgresql -%ghost /etc/alternatives/postgresql %files server -f server.files %defattr(-,root,root) @@ -644,7 +664,6 @@ %exclude %pgdatadir/tsearch_data/*.rules %dir %pgdatadir /usr/lib/postgresql -%ghost /etc/alternatives/postgresql %pgdatadir/timezone* %pgdatadir/*.* %if %buildlibs @@ -693,7 +712,7 @@ %if %builddevel -%files -n %pgname-devel -f devel.files +%files devel -f devel.files %defattr(-,root,root) %dir %pgbasedir %dir %pgbindir ++++++ postgresql-9.6.4.tar.bz2 -> postgresql-9.6.5.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/postgresql96/postgresql-9.6.4.tar.bz2 /work/SRC/openSUSE:Factory/.postgresql96.new/postgresql-9.6.5.tar.bz2 differ: char 11, line 1