From d351c32afe22e24263518c1ca3d387adbeee89b9 Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Tue, 25 Aug 2026 10:13:51 +0100 Subject: [PATCH 1/5] ppg:devel:19: fix percona-pg_stat_monitor RPM/Debian build failures RPM %files globbed bitcode/pg_stat_monitor/*.bc but PGXS on PG19 installs thinlto bitcode under a nested src/ subdir, so rpmbuild failed processing the file list on every RPM-family repo. debian.dsc Build-Depends was also missing libkrb5-dev/libssl-dev present in debian/control, so dpkg-checkbuilddeps failed on every Debian/Ubuntu repo. Debian builds then failed at compile time: upstream moved the C sources to src/ and pg_buildext's out-of-tree build in build-19/ does not create output subdirectories, so gcc/clang could not write src/*.o and src/*.bc. Port the devel:18 fix (b9b7663) that creates build-/src before pg_buildext build. Signed-off-by: Ricardo Dias --- root/ppg/devel/19/percona-pg_stat_monitor/debian/debian.dsc | 2 ++ root/ppg/devel/19/percona-pg_stat_monitor/debian/rules | 3 +++ .../percona-pg_stat_monitor/rpm/percona-pg_stat_monitor.spec | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/root/ppg/devel/19/percona-pg_stat_monitor/debian/debian.dsc b/root/ppg/devel/19/percona-pg_stat_monitor/debian/debian.dsc index fa8b858c..8c15cbcd 100644 --- a/root/ppg/devel/19/percona-pg_stat_monitor/debian/debian.dsc +++ b/root/ppg/devel/19/percona-pg_stat_monitor/debian/debian.dsc @@ -7,6 +7,8 @@ Maintainer: Percona Development Team Build-Depends: debhelper (>= 9), mawk, + libkrb5-dev, + libssl-dev, percona-postgresql-server-dev-all (>= 153~), Debtransform-Release: 1 Debtransform-Files-Tar: debian.tar.gz diff --git a/root/ppg/devel/19/percona-pg_stat_monitor/debian/rules b/root/ppg/devel/19/percona-pg_stat_monitor/debian/rules index 036b9e71..c0bff64a 100755 --- a/root/ppg/devel/19/percona-pg_stat_monitor/debian/rules +++ b/root/ppg/devel/19/percona-pg_stat_monitor/debian/rules @@ -28,6 +28,9 @@ override_dh_builddeb: override_dh_auto_build: +pg_buildext clean . build-%v + # Sources on git main live under src/; pg_buildext's out-of-tree build + # does not create output subdirectories, so -o src/*.o fails without this. + mkdir -p build-%!{PG_MAJOR_VERSION}/src +pg_buildext build . build-%v override_dh_auto_test: diff --git a/root/ppg/devel/19/percona-pg_stat_monitor/rpm/percona-pg_stat_monitor.spec b/root/ppg/devel/19/percona-pg_stat_monitor/rpm/percona-pg_stat_monitor.spec index 37d8f3bc..1d00bc2c 100644 --- a/root/ppg/devel/19/percona-pg_stat_monitor/rpm/percona-pg_stat_monitor.spec +++ b/root/ppg/devel/19/percona-pg_stat_monitor/rpm/percona-pg_stat_monitor.spec @@ -75,7 +75,8 @@ USE_PGXS=1 PATH=%{pginstdir}/bin:$PATH %{__make} %{?_smp_mflags} install DESTDIR %{pginstdir}/share/extension/pg_stat_monitor.control %{pginstdir}/lib/bitcode/pg_stat_monitor*.bc %dir %{pginstdir}/lib/bitcode/pg_stat_monitor -%{pginstdir}/lib/bitcode/pg_stat_monitor/*.bc +%dir %{pginstdir}/lib/bitcode/pg_stat_monitor/src +%{pginstdir}/lib/bitcode/pg_stat_monitor/src/*.bc %changelog From 8919bb824d09b68807b3f099c712617f7449a084 Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Tue, 25 Aug 2026 10:14:05 +0100 Subject: [PATCH 2/5] ppg:devel:19: fix percona-pgbackrest RPM/Debian build failures Upstream pgbackrest main rewrote build/doc tooling in Python between the 2.58.0 release and current HEAD. build.py now imports PyYAML to generate code from YAML specs, but neither the spec's BuildRequires nor debian/control's Build-Depends had the Python yaml binding (only the C libyaml-dev), so meson compile failed with "ModuleNotFoundError: No module named 'yaml'" everywhere. Debian also still invoked the removed doc/doc.pl (perl) instead of the new doc/doc.py (python3), which upstream kept CLI-compatible. Signed-off-by: Ricardo Dias --- root/ppg/devel/19/percona-pgbackrest/debian/control | 1 + root/ppg/devel/19/percona-pgbackrest/debian/debian.dsc | 1 + root/ppg/devel/19/percona-pgbackrest/debian/rules | 2 +- root/ppg/devel/19/percona-pgbackrest/rpm/pgbackrest.spec | 6 ++++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/root/ppg/devel/19/percona-pgbackrest/debian/control b/root/ppg/devel/19/percona-pgbackrest/debian/control index e4ec7f4f..e3e4cf70 100644 --- a/root/ppg/devel/19/percona-pgbackrest/debian/control +++ b/root/ppg/devel/19/percona-pgbackrest/debian/control @@ -20,6 +20,7 @@ Build-Depends: mawk, perl, pkgconf, python3 (>= 3.10) | python3-distutils, + python3-yaml, txt2man, zlib1g-dev Standards-Version: 4.7.2 diff --git a/root/ppg/devel/19/percona-pgbackrest/debian/debian.dsc b/root/ppg/devel/19/percona-pgbackrest/debian/debian.dsc index e6aba362..dc352ace 100644 --- a/root/ppg/devel/19/percona-pgbackrest/debian/debian.dsc +++ b/root/ppg/devel/19/percona-pgbackrest/debian/debian.dsc @@ -22,6 +22,7 @@ Build-Depends: perl, pkgconf, python3, + python3-yaml, txt2man, Debtransform-Release: 1 Debtransform-Files-Tar: debian.tar.gz diff --git a/root/ppg/devel/19/percona-pgbackrest/debian/rules b/root/ppg/devel/19/percona-pgbackrest/debian/rules index ade07061..1e6b915c 100755 --- a/root/ppg/devel/19/percona-pgbackrest/debian/rules +++ b/root/ppg/devel/19/percona-pgbackrest/debian/rules @@ -41,7 +41,7 @@ override_dh_auto_build: # doc/resource/exe.cache; upstream only refreshes the cache at release # time, so on main the cache keys go stale (--cache-only forbids a # reset). Exclude it like backlog. - perl $(CURDIR)/doc/doc.pl --out=man --out=html --cache-only \ + python3 $(CURDIR)/doc/doc.py --out=man --out=html --cache-only \ --var=project-url-root=index.html --exclude=backlog \ --exclude=user-guide txt2man \ diff --git a/root/ppg/devel/19/percona-pgbackrest/rpm/pgbackrest.spec b/root/ppg/devel/19/percona-pgbackrest/rpm/pgbackrest.spec index 1e9c6d19..8bc817bf 100644 --- a/root/ppg/devel/19/percona-pgbackrest/rpm/pgbackrest.spec +++ b/root/ppg/devel/19/percona-pgbackrest/rpm/pgbackrest.spec @@ -21,6 +21,12 @@ Source3: pgbackrest.logrotate Source4: pgbackrest.service BuildRequires: gcc openssl-devel zlib-devel percona-postgresql%{pgmajorversion}-devel BuildRequires: libzstd-devel libxml2-devel libyaml-devel meson +%if !0%{?suse_version} +BuildRequires: python3-pyyaml +%endif +%if 0%{?suse_version} >= 1500 +BuildRequires: python3-PyYAML +%endif %if 0%{?rhel} >= 8 || 0%{?fedora} >= 42 BuildRequires: libssh2-devel %endif From 9c35a173f9d982610ea038a563e5307c0ff5f736 Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Tue, 25 Aug 2026 10:14:10 +0100 Subject: [PATCH 3/5] ppg:devel:19: fix percona-postgis RPM build failure Upstream postgis master renamed utils/README to utils/README.md. The -utils subpackage's %doc still referenced the old filename, so rpmbuild failed processing the file list on every RPM-family repo. Debian was unaffected since it doesn't reference that file. Signed-off-by: Ricardo Dias --- root/ppg/devel/19/percona-postgis/rpm/percona-postgis.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root/ppg/devel/19/percona-postgis/rpm/percona-postgis.spec b/root/ppg/devel/19/percona-postgis/rpm/percona-postgis.spec index ec8d0789..8fbb9fa3 100644 --- a/root/ppg/devel/19/percona-postgis/rpm/percona-postgis.spec +++ b/root/ppg/devel/19/percona-postgis/rpm/percona-postgis.spec @@ -540,7 +540,7 @@ fi %if %utils %files utils %defattr(-,root,root) -%doc utils/README +%doc utils/README.md %dir %{_datadir}/%{name} %attr(755,root,root) %{_datadir}/%{name}/*.pl %endif From 2e6c16325605af383bbc5a71a79810039a1ad6c9 Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Tue, 25 Aug 2026 10:16:06 +0100 Subject: [PATCH 4/5] ppg:devel:19: bump percona-postgresql source to PG19 beta3 Track upstream beta3 instead of beta1 for the devel:19 PostgreSQL server source and generated version strings. Signed-off-by: Ricardo Dias --- root/ppg/devel/19/percona-postgresql/obs/_service | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/root/ppg/devel/19/percona-postgresql/obs/_service b/root/ppg/devel/19/percona-postgresql/obs/_service index a7f66a6b..92ce8ec3 100644 --- a/root/ppg/devel/19/percona-postgresql/obs/_service +++ b/root/ppg/devel/19/percona-postgresql/obs/_service @@ -3,7 +3,7 @@ https://github.com/percona/postgres.git git PSP_REL_%!{PG_MAJOR_VERSION}_STABLE - %!{PG_MAJOR_VERSION}.beta1 + %!{PG_MAJOR_VERSION}.beta3 percona-postgresql @@ -12,10 +12,10 @@ gz - 3:%!{PG_MAJOR_VERSION}.beta1 + 3:%!{PG_MAJOR_VERSION}.beta3 - %!{PG_MAJOR_VERSION}.beta1 + %!{PG_MAJOR_VERSION}.beta3 percona-postgresql.spec From 2bd2efb2a677c938deb1346b80b03b1de75b76f0 Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Tue, 25 Aug 2026 10:16:13 +0100 Subject: [PATCH 5/5] ppg:devel:19: switch pg_tde source to percona/pg_tde main, add build fixes Track the upstream percona/pg_tde repository's main branch (moving versionformat) instead of the pinned jeltz/pg_tde pg19 fork branch. Add the cmake BuildRequires/Build-Depends now needed to build the libkmip cmake subproject against that source. Port the two C++ KMIP client build fixes already applied in devel:18: - SUSE: pull gcc-c++ into the chroot. Without it meson falls back to clang++ (from the llvmjit BuildRequires) for the C++ link while C is compiled by gcc with -flto=auto, and ld.bfd cannot combine the mixed LTO objects ("plugin needed to handle lto object", "archive has no index"). - Debian 11: quilt patch meson-cpp-std-c2a rewrites cpp_std=c++20 to the equivalent c++2a spelling, since bullseye's meson 0.56.2 predates the c++20 option name (added in meson 0.57). Signed-off-by: Ricardo Dias --- .../devel/19/percona-pg_tde/debian/control | 1 + .../devel/19/percona-pg_tde/debian/control.in | 1 + .../devel/19/percona-pg_tde/debian/debian.dsc | 1 + .../debian/patches/meson-cpp-std-c2a | 26 +++++++++++++++++++ .../19/percona-pg_tde/debian/patches/series | 1 + root/ppg/devel/19/percona-pg_tde/obs/_service | 6 ++--- .../devel/19/percona-pg_tde/rpm/pg_tde.spec | 6 +++++ 7 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 root/ppg/devel/19/percona-pg_tde/debian/patches/meson-cpp-std-c2a create mode 100644 root/ppg/devel/19/percona-pg_tde/debian/patches/series diff --git a/root/ppg/devel/19/percona-pg_tde/debian/control b/root/ppg/devel/19/percona-pg_tde/debian/control index 5114320b..db0cbe0b 100644 --- a/root/ppg/devel/19/percona-pg_tde/debian/control +++ b/root/ppg/devel/19/percona-pg_tde/debian/control @@ -5,6 +5,7 @@ Maintainer: Percona Development Team Build-Depends: mawk, meson, + cmake, ninja-build, pkg-config, debhelper (>= 9), diff --git a/root/ppg/devel/19/percona-pg_tde/debian/control.in b/root/ppg/devel/19/percona-pg_tde/debian/control.in index 5114320b..db0cbe0b 100644 --- a/root/ppg/devel/19/percona-pg_tde/debian/control.in +++ b/root/ppg/devel/19/percona-pg_tde/debian/control.in @@ -5,6 +5,7 @@ Maintainer: Percona Development Team Build-Depends: mawk, meson, + cmake, ninja-build, pkg-config, debhelper (>= 9), diff --git a/root/ppg/devel/19/percona-pg_tde/debian/debian.dsc b/root/ppg/devel/19/percona-pg_tde/debian/debian.dsc index 15d72c5e..a90a087d 100644 --- a/root/ppg/devel/19/percona-pg_tde/debian/debian.dsc +++ b/root/ppg/devel/19/percona-pg_tde/debian/debian.dsc @@ -19,6 +19,7 @@ Build-Depends: libzstd-dev, mawk, meson, + cmake, ninja-build, pkg-config, percona-postgresql-server-dev-all (>= 153~), diff --git a/root/ppg/devel/19/percona-pg_tde/debian/patches/meson-cpp-std-c2a b/root/ppg/devel/19/percona-pg_tde/debian/patches/meson-cpp-std-c2a new file mode 100644 index 00000000..94eeb8b0 --- /dev/null +++ b/root/ppg/devel/19/percona-pg_tde/debian/patches/meson-cpp-std-c2a @@ -0,0 +1,26 @@ +Use the pre-ratification spelling "c++2a" of the C++20 standard so that +meson 0.56.2 on Debian 11 accepts the cpp_std value ("c++20" was only +added to meson's cpp_std choices in 0.57). gcc and clang treat -std=c++2a +and -std=c++20 identically, and g++ 10 on bullseye compiles the C++ KMIP +client fine. The libkmip cmake subproject needs no change: cmake itself +emits -std=c++2a for CMAKE_CXX_STANDARD 20 on gcc 10. +--- a/meson.build ++++ b/meson.build +@@ -139,7 +139,7 @@ shared_module('pg_tde', + 'src/pg_tde_guc.c', + 'src/smgr/pg_tde_smgr.c', + ), +- override_options: ['cpp_std=c++20'], ++ override_options: ['cpp_std=c++2a'], + include_directories: incdirs, + install: true, + install_dir: pkglibdir, +@@ -168,7 +168,7 @@ pg_tde_frontend = static_library('pg_tde_frontend', + ), + c_args: ['-DFRONTEND'], + cpp_args: ['-DFRONTEND'], +- override_options: ['cpp_std=c++20'], ++ override_options: ['cpp_std=c++2a'], + dependencies: [pgfeutils, pgcommon, pgport, curl, crypto, ssl, kmipclient, kmipcore], + include_directories: incdirs, + ) diff --git a/root/ppg/devel/19/percona-pg_tde/debian/patches/series b/root/ppg/devel/19/percona-pg_tde/debian/patches/series new file mode 100644 index 00000000..4a9549b2 --- /dev/null +++ b/root/ppg/devel/19/percona-pg_tde/debian/patches/series @@ -0,0 +1 @@ +meson-cpp-std-c2a diff --git a/root/ppg/devel/19/percona-pg_tde/obs/_service b/root/ppg/devel/19/percona-pg_tde/obs/_service index d2c14812..daf0ff89 100644 --- a/root/ppg/devel/19/percona-pg_tde/obs/_service +++ b/root/ppg/devel/19/percona-pg_tde/obs/_service @@ -1,9 +1,9 @@ - https://github.com/jeltz/pg_tde.git + https://github.com/percona/pg_tde.git git - pg19 - 2.2.2.dev + main + @PARENT_TAG@+@TAG_OFFSET@ enable percona-pg_tde%!{PG_MAJOR_VERSION} diff --git a/root/ppg/devel/19/percona-pg_tde/rpm/pg_tde.spec b/root/ppg/devel/19/percona-pg_tde/rpm/pg_tde.spec index 4ee41ee3..604eaa90 100644 --- a/root/ppg/devel/19/percona-pg_tde/rpm/pg_tde.spec +++ b/root/ppg/devel/19/percona-pg_tde/rpm/pg_tde.spec @@ -28,6 +28,7 @@ URL: https://github.com/%{sname}/%{sname}/ Source0: %{name}-%{version}.tar.gz BuildRequires: meson +BuildRequires: cmake BuildRequires: percona-postgresql%{pgmajorversion}-devel chrpath openssl-devel libcurl-devel zlib-devel libxml2-devel libxslt-devel libselinux-devel pam-devel krb5-devel readline-devel BuildRequires: percona-postgresql%{pgmajorversion}-static %if 0%{?gts_version} @@ -38,6 +39,11 @@ BuildRequires: json-c-devel lz4-devel libzstd-devel numactl-devel %endif %if 0%{?suse_version} BuildRequires: libjson-c-devel liblz4-devel libzstd-devel >= 1.4.0 libnuma-devel +# The C++ KMIP client needs a C++ compiler. Without gcc-c++ in the chroot +# meson falls back to clang++ (pulled in via the llvmjit BuildRequires) while +# C is compiled by gcc; with SUSE's default -flto=auto the mixed toolchain +# produces archives/objects the linker cannot combine. +BuildRequires: gcc-c++ %endif Requires: postgresql%{pgmajorversion}-server curl openssl