From 852f34ade3f94decd83edcd7a1a490c161553e1a Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Tue, 28 Jul 2026 16:30:13 +0100 Subject: [PATCH] ppg:staging:18: custom build of pg_tde with Andy's patch Signed-off-by: Ricardo Dias --- .../staging/18/percona-pg_tde/debian/control | 1 + .../18/percona-pg_tde/debian/control.in | 1 + .../18/percona-pg_tde/debian/debian.dsc | 1 + .../debian/patches/meson-cpp-std-c2a | 26 +++++++++++++++++++ .../18/percona-pg_tde/debian/patches/series | 1 + .../staging/18/percona-pg_tde/obs/_service | 7 +++-- .../staging/18/percona-pg_tde/rpm/pg_tde.spec | 6 +++++ .../18/percona-postgresql/obs/_service | 2 +- 8 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 root/ppg/staging/18/percona-pg_tde/debian/patches/meson-cpp-std-c2a create mode 100644 root/ppg/staging/18/percona-pg_tde/debian/patches/series diff --git a/root/ppg/staging/18/percona-pg_tde/debian/control b/root/ppg/staging/18/percona-pg_tde/debian/control index 5114320b..db0cbe0b 100644 --- a/root/ppg/staging/18/percona-pg_tde/debian/control +++ b/root/ppg/staging/18/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/staging/18/percona-pg_tde/debian/control.in b/root/ppg/staging/18/percona-pg_tde/debian/control.in index 5114320b..db0cbe0b 100644 --- a/root/ppg/staging/18/percona-pg_tde/debian/control.in +++ b/root/ppg/staging/18/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/staging/18/percona-pg_tde/debian/debian.dsc b/root/ppg/staging/18/percona-pg_tde/debian/debian.dsc index 15d72c5e..a90a087d 100644 --- a/root/ppg/staging/18/percona-pg_tde/debian/debian.dsc +++ b/root/ppg/staging/18/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/staging/18/percona-pg_tde/debian/patches/meson-cpp-std-c2a b/root/ppg/staging/18/percona-pg_tde/debian/patches/meson-cpp-std-c2a new file mode 100644 index 00000000..94eeb8b0 --- /dev/null +++ b/root/ppg/staging/18/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/staging/18/percona-pg_tde/debian/patches/series b/root/ppg/staging/18/percona-pg_tde/debian/patches/series new file mode 100644 index 00000000..4a9549b2 --- /dev/null +++ b/root/ppg/staging/18/percona-pg_tde/debian/patches/series @@ -0,0 +1 @@ +meson-cpp-std-c2a diff --git a/root/ppg/staging/18/percona-pg_tde/obs/_service b/root/ppg/staging/18/percona-pg_tde/obs/_service index 39e9c6fe..cc0bbfe6 100644 --- a/root/ppg/staging/18/percona-pg_tde/obs/_service +++ b/root/ppg/staging/18/percona-pg_tde/obs/_service @@ -1,10 +1,9 @@ - https://github.com/percona/pg_tde.git + https://github.com/dAdAbird/pg_tde.git git - release-%!{PG_TDE_VERSION} - @PARENT_TAG@ - release-(.*) + arch_logs + 2.2.2+1 enable percona-pg_tde%!{PG_MAJOR_VERSION} diff --git a/root/ppg/staging/18/percona-pg_tde/rpm/pg_tde.spec b/root/ppg/staging/18/percona-pg_tde/rpm/pg_tde.spec index 925d3872..907ea39b 100644 --- a/root/ppg/staging/18/percona-pg_tde/rpm/pg_tde.spec +++ b/root/ppg/staging/18/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 %if 0%{?gts_version} BuildRequires: gcc-toolset-%{gts_version}-gcc gcc-toolset-%{gts_version}-gcc-c++ gcc-toolset-%{gts_version}-annobin-plugin-gcc @@ -37,6 +38,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 diff --git a/root/ppg/staging/18/percona-postgresql/obs/_service b/root/ppg/staging/18/percona-postgresql/obs/_service index 6607509c..d7f7bae7 100644 --- a/root/ppg/staging/18/percona-postgresql/obs/_service +++ b/root/ppg/staging/18/percona-postgresql/obs/_service @@ -2,7 +2,7 @@ https://github.com/Percona-Lab/postgres.git git - release-%!{PG_VERSION}.1 + release-%!{PG_VERSION}.2 %!{PG_VERSION} percona-postgresql