Accepting request 1103350 from server:database:postgresql

- Update to 12.16:
  * bsc#1214059, CVE-2023-39417: Disallow substituting a schema or
    owner name into an extension script if the name contains a
    quote, backslash, or dollar sign.
  * https://www.postgresql.org/docs/12/release-12-16.html

- Restore the independence of mini builds from the main build after
  the -mini name change from April 4, 2023.
- Adjust icu handling to prepare for PostgreSQL 16.

- Overhaul postgresql-README.SUSE and move it from the binary
  package to the noarch wrapper package.
- Change the unix domain socket location from /var/run to /run.

OBS-URL: https://build.opensuse.org/request/show/1103350
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/postgresql12?expand=0&rev=29
This commit is contained in:
Dominique Leuenberger 2023-08-11 13:55:42 +00:00 committed by Git OBS Bridge
commit 527f9ebcd6
8 changed files with 45 additions and 94 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bb5206e2864c1c4579938b96ea6096d155f22abf2d2cc2aa57571e3c4cb12b36
size 21127306

View File

@ -1 +0,0 @@
bb5206e2864c1c4579938b96ea6096d155f22abf2d2cc2aa57571e3c4cb12b36 postgresql-12.15.tar.bz2

3
postgresql-12.16.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c5f1fff7a0f93e1ec3746417b0594290ece617b4995ed95b8d527af0ba0e38f3
size 21140532

View File

@ -0,0 +1 @@
c5f1fff7a0f93e1ec3746417b0594290ece617b4995ed95b8d527af0ba0e38f3 postgresql-12.16.tar.bz2

View File

@ -1,80 +0,0 @@
Unix-Domain Socket Directory
============================
Upgrading PostgreSQL on openSUSE and SUSE Linux Enterprise Server
=================================================================
Current versions of PostgreSQL come with the pg_upgrade tool that
simplifies and speeds up the migration of a PostgreSQL installation to
a new version. Before version 9.1 dump and restore was needed which
was much slower.
pg_upgrade needs to have the server binaries of both versions
available. To allow this, we had to change the way PostgreSQL is
packaged as well as the naming of the packages, so that two or more
versions of PostgreSQL can be installed in parallel. The package
names for PostgreSQL contain numbers indicating the major version.
In PostgreSQL terms for versions up to 9.6 the major version consisted
of the first two components of the three-component version number,
i.e. 8.3, 8.4, 9.0, or 9.1. So, the packages for Postgresql 9.1 are
named postgresql91, postgresql91-server, etc. Inside the packages the
files were moved from their standard locations to a versioned location
such as /usr/lib/postgresql83/bin or /usr/lib/postgresql91/bin to
avoid file conflicts if packages are installed in parallel.
Starting with version 10 the PostgreSQL project changed their
versioning scheme from from three components to two, which means one
component for the major version and one for the minor. So, the
sequence of major version across the versioning scheme change will be:
9.4, 9.5, 9.6, 10, 11, 12. For versions that use the new versioning
scheme SUSE only puts the single component major version into the
package name, so the postgresql96 package (containg version 9.6
according to the old versioning scheme) will be followed by
postgresql10, then postgresql11, and so on.
The update-alternatives mechanism creates and maintains symbolic links
that cause one version (by default the highest installed version) to
re-appear in the standard locations. By default, database data are
stored under /var/lib/pgsql/data on SUSE Linux.
The following preconditions have to be fulfilled before data migration
can be started:
1. If not already done, the packages of the old PostgreSQL version
must be upgraded to the new packaging scheme through a maintenance
update.
2. The packages of the new PostgreSQL major version need to be
installed. As pg_upgrade is contained in postgresql91-contrib, that
one has to be installed as well, at least until the migration is
done.
3. Unless pg_upgrade is used in link mode, the server must have
enough free disk space to temporarily hold a copy of the database
files. If the database instance was installed in the default
location, the needed space in megabytes can be determined by running
the follwing command as root: "du -hs /var/lib/pgsql/data". If space
is tight, it might help to run the "VACUUM FULL" SQL command on each
database in the instance to be migrated, but be aware that it might
take very long.
The latest upstream documentation for pg_upgrade including step by
step instructions for performing a database migration can be found
online under https://www.postgresql.org/docs/current/pgupgrade.html ,
or locally under
file:///usr/share/doc/packages/postgresqlXX/html/pgupgrade.html , if
the postgresqlXX-docs package is installed. XX is a place holder for
the respective major version here.
NOTE: The online documentation starts with explaining how you can
install PostgreSQL from the upstream sources (which is not necessary
when you install the SUSE RPMs) and also uses other directory names
(/usr/local instead of the update-alternatives based path as described
above).
For background information about the inner workings of pg_upgrade and
a performance comparison with the old dump and restore method, see
http://momjian.us/main/writings/pgsql/pg_upgrade.pdf .

View File

@ -1,4 +1,4 @@
Change the built-in default socket directory to be /var/run/postgresql. Change the built-in default socket directory to be /run/postgresql.
For backwards compatibility with (probably non-libpq-based) clients that For backwards compatibility with (probably non-libpq-based) clients that
might still expect to find the socket in /tmp, also create a socket in might still expect to find the socket in /tmp, also create a socket in
/tmp. This is to resolve communication problems with clients operating /tmp. This is to resolve communication problems with clients operating
@ -63,7 +63,7 @@ Index: src/include/pg_config_manual.h
* with the postmaster's -k switch. * with the postmaster's -k switch.
*/ */
-#define DEFAULT_PGSOCKET_DIR "/tmp" -#define DEFAULT_PGSOCKET_DIR "/tmp"
+#define DEFAULT_PGSOCKET_DIR "/var/run/postgresql" +#define DEFAULT_PGSOCKET_DIR "/run/postgresql"
/* /*
* This is the default event source for Windows event log. * This is the default event source for Windows event log.

View File

@ -1,3 +1,25 @@
Wed Aug 9 10:25:49 UTC 2023 - Reinhard Max <max@suse.com>
- Update to 12.16:
* bsc#1214059, CVE-2023-39417: Disallow substituting a schema or
owner name into an extension script if the name contains a
quote, backslash, or dollar sign.
* https://www.postgresql.org/docs/12/release-12-16.html
-------------------------------------------------------------------
Fri May 26 11:48:38 UTC 2023 - Reinhard Max <max@suse.com>
- Restore the independence of mini builds from the main build after
the -mini name change from April 4, 2023.
- Adjust icu handling to prepare for PostgreSQL 16.
-------------------------------------------------------------------
Mon May 15 14:22:59 UTC 2023 - Reinhard Max <max@suse.com>
- Overhaul postgresql-README.SUSE and move it from the binary
package to the noarch wrapper package.
- Change the unix domain socket location from /var/run to /run.
------------------------------------------------------------------- -------------------------------------------------------------------
Wed May 10 13:05:58 UTC 2023 - Reinhard Max <max@suse.com> Wed May 10 13:05:58 UTC 2023 - Reinhard Max <max@suse.com>

View File

@ -16,7 +16,7 @@
# #
%define pgversion 12.15 %define pgversion 12.16
%define pgmajor 12 %define pgmajor 12
%define buildlibs 0 %define buildlibs 0
%define tarversion %{pgversion} %define tarversion %{pgversion}
@ -69,7 +69,11 @@ Name: %pgname
%if %mini %if %mini
%bcond_with selinux %bcond_with selinux
%if %pgmajor >= 16
%bcond_without icu
%else
%bcond_with icu %bcond_with icu
%endif
%else %else
BuildRequires: %{python}-devel BuildRequires: %{python}-devel
BuildRequires: docbook_4 BuildRequires: docbook_4
@ -143,11 +147,18 @@ BuildRequires: pkg-config
BuildRequires: pkgconfig(krb5) BuildRequires: pkgconfig(krb5)
BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(systemd)
#!BuildIgnore: postgresql-implementation #!BuildIgnore: %pgname
#!BuildIgnore: postgresql-server-implementation #!BuildIgnore: %pgname-server
#!BuildIgnore: postgresql-devel-noarch #!BuildIgnore: %pgname-devel
#!BuildIgnore: postgresql-llvmjit-devel-noarch #!BuildIgnore: %pgname-server-devel
#!BuildIgnore: postgresql-server-devel-noarch #!BuildIgnore: %pgname-llvmjit
#!BuildIgnore: %pgname-llvmjit-devel
#!BuildIgnore: %pgname-contrib
#!BuildIgnore: %pgname-docs
#!BuildIgnore: %pgname-test
#!BuildIgnore: %pgname-pltcl
#!BuildIgnore: %pgname-plperl
#!BuildIgnore: %pgname-plpython
Summary: Basic Clients and Utilities for PostgreSQL Summary: Basic Clients and Utilities for PostgreSQL
License: PostgreSQL License: PostgreSQL
Group: Productivity/Databases/Tools Group: Productivity/Databases/Tools
@ -156,7 +167,6 @@ Release: 0
Source0: https://ftp.postgresql.org/pub/source/v%{tarversion}/postgresql-%{tarversion}.tar.bz2 Source0: https://ftp.postgresql.org/pub/source/v%{tarversion}/postgresql-%{tarversion}.tar.bz2
Source1: https://ftp.postgresql.org/pub/source/v%{tarversion}/postgresql-%{tarversion}.tar.bz2.sha256 Source1: https://ftp.postgresql.org/pub/source/v%{tarversion}/postgresql-%{tarversion}.tar.bz2.sha256
Source2: baselibs.conf Source2: baselibs.conf
Source3: postgresql-README.SUSE
Source17: postgresql-rpmlintrc Source17: postgresql-rpmlintrc
Patch1: postgresql-conf.patch Patch1: postgresql-conf.patch
# PL/Perl needs to be linked with rpath (bsc#578053) # PL/Perl needs to be linked with rpath (bsc#578053)
@ -630,7 +640,6 @@ install -d -m 750 %buildroot/var/lib/pgsql
install -d -m755 %buildroot%pgdocdir install -d -m755 %buildroot%pgdocdir
cp doc/KNOWN_BUGS doc/MISSING_FEATURES COPYRIGHT \ cp doc/KNOWN_BUGS doc/MISSING_FEATURES COPYRIGHT \
README HISTORY %buildroot%pgdocdir README HISTORY %buildroot%pgdocdir
cp -a %SOURCE3 %buildroot%pgdocdir/README.SUSE
# Use versioned names for the man pages: # Use versioned names for the man pages:
for f in %buildroot%pgmandir/man*/*; do for f in %buildroot%pgmandir/man*/*; do
mv $f ${f}pg%pgmajor mv $f ${f}pg%pgmajor