Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package postgresql for openSUSE:Factory checked in at 2023-09-20 13:20:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/postgresql (Old) and /work/SRC/openSUSE:Factory/.postgresql.new.16627 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "postgresql" Wed Sep 20 13:20:54 2023 rev:67 rq:1111591 version:16 Changes: -------- --- /work/SRC/openSUSE:Factory/postgresql/postgresql.changes 2023-01-10 14:59:55.977245717 +0100 +++ /work/SRC/openSUSE:Factory/.postgresql.new.16627/postgresql.changes 2023-09-20 13:20:56.448914353 +0200 @@ -1,0 +2,30 @@ +Thu Sep 14 13:03:29 UTC 2023 - Reinhard Max <m...@suse.com> + +- Bump default to 16 on Factory. + +------------------------------------------------------------------- +Mon Aug 7 13:05:52 UTC 2023 - Reinhard Max <m...@suse.com> + +- Bump major version to prepare for PostgreSQL 16, but keep + default at 15 for now on Factory. + +------------------------------------------------------------------- +Tue May 23 11:45:10 UTC 2023 - Reinhard Max <m...@suse.com> + +- boo#1122892: Add a sysconfig variable for initdb. + +------------------------------------------------------------------- +Mon May 15 14:17:11 UTC 2023 - Reinhard Max <m...@suse.com> + +- Overhaul postgresql-README.SUSE and move it from the binary + package to the noarch wrapper package. +- bsc#1179231: Add an explanation for the /tmp -> /run/postgresql + move and permission change. +- Add postgresql-README as a separate source file. + +------------------------------------------------------------------- +Mon Mar 27 17:10:16 UTC 2023 - Reinhard Max <m...@suse.com> + +- bsc#1209208: Drop hard dependency on systemd + +------------------------------------------------------------------- New: ---- postgresql-README postgresql-README.SUSE ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ postgresql.spec ++++++ --- /var/tmp/diff_new_pack.KytGwp/_old 2023-09-20 13:20:57.980969240 +0200 +++ /var/tmp/diff_new_pack.KytGwp/_new 2023-09-20 13:20:57.980969240 +0200 @@ -15,8 +15,8 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -%define pgmajor 15 -%define defaultpackage postgresql%pgmajor +%define pgmajor 16 +%define defaultpackage postgresql16 %if ! %{defined _rpmmacrodir} %define _rpmmacrodir %{_rpmconfigdir}/macros.d @@ -84,6 +84,8 @@ Source7: postgresql-install-alternatives Source8: postgresql-extensions-macros Source9: postgresql.sysusers +Source10: postgresql-README.SUSE +Source11: postgresql-README %if 0%{?suse_version} > 1100 %define fwdir /etc/sysconfig/SuSEfirewall2.d/services @@ -126,7 +128,7 @@ Obsoletes: postgresql-init < %version.0-%release %if %{with systemd} BuildRequires: pkgconfig(systemd) -%{?systemd_requires} +%{?systemd_ordering} %else Requires(postun): %insserv_prereq %endif @@ -322,10 +324,13 @@ %prep %build + %if %{with sysusers} %sysusers_generate_pre %{SOURCE9} %{name}-server %{name}-server.conf %endif -echo "This is a dummy package to provide a dependency on the default PostgreSQL version." > README + +cp %{SOURCE10} README.SUSE +cp %{SOURCE11} README %install mkdir -p %buildroot/var/lib/pgsql/ @@ -382,6 +387,7 @@ -c "PostgreSQL Server" -u 26 postgres %endif %if %{with systemd} +if test -x /usr/bin/systemctl; then %service_add_pre postgresql.service # Save the "enabled" and "active" state across the transition of @@ -393,11 +399,13 @@ fi systemctl is-active postgresql.service &>/dev/null && touch %aflag ||: fi +fi %endif %post server %fillup_only -n postgresql %if %{with systemd} +if test -x /usr/bin/systemctl; then PROFILE="/var/lib/pgsql/.bash_profile" if test -r "$PROFILE" && test "`cat $PROFILE`" = "/usr/share/postgresql/bash_profile" then @@ -408,21 +416,26 @@ fi %tmpfiles_create %_tmpfilesdir/postgresql.conf %service_add_post postgresql.service +fi %endif %preun server %if %{with systemd} +if test -x /usr/bin/systemctl; then # Cannot use systemd macros here, because they're doing too much /usr/bin/systemctl --no-reload disable postgresql.service || : +fi %else %stop_on_removal postgresql %endif %postun server %if %{with systemd} +if test -x /usr/bin/systemctl; then # Cannot use systemd macros here, because they're doing too much rm -f "/var/lib/systemd/migrated/postgresql" /usr/bin/systemctl daemon-reload || : +fi %else %insserv_cleanup @@ -430,6 +443,7 @@ %if %{with systemd} %posttrans server +if test -x /usr/bin/systemctl; then # Save the "enabled" and "active" state across the transition of # ownership of postgresql.service from postgresql-init to # postgresql-server. @@ -437,15 +451,17 @@ rm -f %eflag systemctl enable postgresql.service fi + if test -f %aflag; then rm -f %aflag systemctl start postgresql.service fi +fi %endif %files %defattr(-,root,root,-) -%doc README +%doc README.SUSE %dir /usr/share/postgresql /usr/share/postgresql/install-alternatives ++++++ postgresql-README ++++++ This is a dummy package to provide a dependency on the default PostgreSQL version. For further information see the following file in the postgresql package: /usr/share/doc/packages/postgresql/README.SUSE ++++++ postgresql-README.SUSE ++++++ PostgreSQL packages openSUSE and SUSE Linux Enterprise Server ============================================================= This section describes the RPM package layout for PostgreSQL at SUSE. In certain situations (see "Upgrading PostgreSQL" below) it is needed to have more than one version of PostgreSQL installed on a system at the same time. For that SUSE has put the major version number into the name of the package containing the respective PostgreSQL binaries, e.g. postgresql14 or postgresql15. The package set for each major version further consists of multiple subpackages containing different aspects of a PostgreSQL installation such as postgresql14-server, or postgresql15-contrib. Inside the packages the files are moved from their standard locations to a versioned location such as /usr/lib/postgresql14/bin or /usr/lib/postgresql15/bin to avoid file conflicts. The update-alternatives mechanism is used to create and maintain symbolic links that cause one version (by default the highest installed version) to re-appear in the standard locations. There is also a set of unversioned packages (postgresql, postgresql-server, etc.) that contains some common stuff that is needed for all versions, like dependencies, scripts, or this README. These packages also define the default version for a SUSE product by recommending the respective binary packages. By default, database data are stored under /var/lib/pgsql/data on SUSE Linux. Unix-Domain Socket Directory ============================ Traditionally a PostgreSQL server puts its unix domain sockets for local client connections into the /tmp directory, which is not intended for this kind of use and allows unprivileged users to start rogue PostgreSQL servers. For that reason SUSE has moved the default directory for these sockets to /run/postgresql and set the permissions of that directory to only allow the postgres user and members of the postgres group to start servers that have their sockets here. A secondary socket is still also opened under /tmp for backwards compatibility with old clients, but this is deprecated and should not be used anymore in new deployments. Upgrading PostgreSQL ==================== PostgreSQL databases are compatible among minor versions of the same major version (e.g. 14.1, 14.2, 14.3), but need migration when switching to a new major version (e.g. 14.x to 15.y). Since version 9.1 PostgreSQL comes with the pg_upgrade tool that simplifies and speeds up the migration of a PostgreSQL installation to a new major version. Starting at version 11 logical replication between two server instances provides anoter way of migrating a PostgreSQL database to a new major version with minimal downtimes. Before version 9.1 dump and restore was needed which is much slower, but might still be usful in certain upgrade situations. The following text will only explain migration through pg_upgrade. For the other variants, please refer to the original documentation online or in the respective postgresqlXX-docs package. pg_upgrade needs to have the server binaries of both versions available, so e.g. for migrating from version 14 to 15 both, postgresql14-server and postgresql15-server need to be installed. 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 the contrib subpackage, that one has to be installed as well, at least for the migration period. 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 . ++++++ postgresql-script ++++++ --- /var/tmp/diff_new_pack.KytGwp/_old 2023-09-20 13:20:58.084972966 +0200 +++ /var/tmp/diff_new_pack.KytGwp/_new 2023-09-20 13:20:58.084972966 +0200 @@ -5,6 +5,7 @@ eval DATADIR=${POSTGRES_DATADIR:-~postgres/data} OPTIONS=${POSTGRES_OPTIONS} +INITDB_OPTS=${POSTGRES_INITDB_OPTS} PIDFILE=$DATADIR/postmaster.pid # @@ -48,8 +49,8 @@ if [ ! -f $DATADIR/PG_VERSION ]; then test -n "$POSTGRES_LANG" && export LC_ALL="$POSTGRES_LANG" install -d -m 700 ${DATADIR} && - echo "Initializing PostgreSQL $VERSION at location ${DATADIR}" - /usr/bin/initdb --auth=ident $DATADIR > initlog 2>&1 || { + echo "Initializing PostgreSQL $VERSION at location ${DATADIR} using options \"$INITDB_OPTS\"" + /usr/bin/initdb $INITDB_OPTS $DATADIR > initlog 2>&1 || { echo "Initialisation failed. See $PWD/initlog ." exit 1 } ++++++ postgresql-sysconfig ++++++ --- /var/tmp/diff_new_pack.KytGwp/_old 2023-09-20 13:20:58.104973682 +0200 +++ /var/tmp/diff_new_pack.KytGwp/_new 2023-09-20 13:20:58.108973826 +0200 @@ -50,3 +50,19 @@ # POSTGRES_LANG="" +## Path: Applications/PostgreSQL +## Description: The PostgreSQL Database System +## Type: string() +## Default: "--auth=ident" +## ServiceRestart: "" +# +# When PostgreSQL gets started while no database cluster exists under +# the directory stored in the POSTGRES_DATADIR variable, the initdb +# tool gets called with that directory to initialize a new cluster. +# Additional options can be passed to initdb via this variable. +# Alternatively initdb can be called manually to initialize the +# database cluster prior to starting the PostgreSQL server for the +# first time. +# +POSTGRES_INITDB_OPTS="--auth=ident" +