1 Commits

Author SHA256 Message Date
770bf85910 Sync changes to SLFO-1.2 branch 2025-08-20 10:48:08 +02:00
8 changed files with 53 additions and 161 deletions

3
_multibuild Normal file
View File

@@ -0,0 +1,3 @@
<multibuild>
<package>mini</package>
</multibuild>

View File

@@ -1,41 +0,0 @@
From 0dceba21d74f01e63aa690879b44808bbb74a9c3 Mon Sep 17 00:00:00 2001
From: Thomas Munro <tmunro@postgresql.org>
Date: Sat, 22 Nov 2025 20:51:16 +1300
Subject: [PATCH] jit: Adjust AArch64-only code for LLVM 21.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
LLVM 21 changed the arguments of RTDyldObjectLinkingLayer's
constructor, breaking compilation with the backported
SectionMemoryManager from commit 9044fc1d.
https://github.com/llvm/llvm-project/commit/cd585864c0bbbd74ed2a2b1ccc191eed4d1c8f90
Backpatch-through: 14
Author: Holger Hoffstätte <holger@applied-asynchrony.com>
Reviewed-by: Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com>
Discussion: https://postgr.es/m/d25e6e4a-d1b4-84d3-2f8a-6c45b975f53d%40applied-asynchrony.com
---
src/backend/jit/llvm/llvmjit_wrap.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/backend/jit/llvm/llvmjit_wrap.cpp b/src/backend/jit/llvm/llvmjit_wrap.cpp
index da850d67ab647..c31a57b8563e8 100644
--- a/src/backend/jit/llvm/llvmjit_wrap.cpp
+++ b/src/backend/jit/llvm/llvmjit_wrap.cpp
@@ -53,7 +53,14 @@ DEFINE_SIMPLE_CONVERSION_FUNCTIONS(llvm::orc::ObjectLayer, LLVMOrcObjectLayerRef
LLVMOrcObjectLayerRef
LLVMOrcCreateRTDyldObjectLinkingLayerWithSafeSectionMemoryManager(LLVMOrcExecutionSessionRef ES)
{
+#if LLVM_VERSION_MAJOR >= 21
+ return wrap(new llvm::orc::RTDyldObjectLinkingLayer(
+ *unwrap(ES), [](const llvm::MemoryBuffer&) {
+ return std::make_unique<llvm::backport::SectionMemoryManager>(nullptr, true);
+ }));
+#else
return wrap(new llvm::orc::RTDyldObjectLinkingLayer(
*unwrap(ES), [] { return std::make_unique<llvm::backport::SectionMemoryManager>(nullptr, true); }));
+#endif
}
#endif

BIN
postgresql-17.6.tar.bz2 LFS Normal file

Binary file not shown.

View File

@@ -0,0 +1 @@
e0630a3600aea27511715563259ec2111cd5f4353a4b040e0be827f94cd7a8b0 postgresql-17.6.tar.bz2

View File

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

View File

@@ -1 +0,0 @@
ef9e343302eccd33112f1b2f0247be493cb5768313adeb558b02de8797a2e9b5 postgresql-17.7.tar.bz2

View File

@@ -1,46 +1,3 @@
-------------------------------------------------------------------
Fri Dec 12 07:56:41 UTC 2025 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Fix build on aarch64 with upstream commit 0dceba2:
* llvm-21-aarch64.patch
-------------------------------------------------------------------
Mon Nov 24 16:32:47 UTC 2025 - Reinhard Max <max@suse.com>
- Fix build with uring for post SLE15 code streams.
-------------------------------------------------------------------
Fri Nov 14 17:07:50 UTC 2025 - Reinhard Max <max@suse.com>
- Use %product_libs_llvm_ver to determine the LLVM version.
- Remove conditionals for obsolete PostgreSQL releases.
-------------------------------------------------------------------
Wed Nov 12 15:22:22 UTC 2025 - Reinhard Max <max@suse.com>
- Update to 17.7:
* https://www.postgresql.org/about/news/p-3171/
* https://www.postgresql.org/docs/release/17.7/
* bsc#1253332, CVE-2025-12817: Missing check for CREATE
privileges on the schema in CREATE STATISTICS allowed table
owners to create statistics in any schema, potentially leading
to unexpected naming conflicts.
* bsc#1253333, CVE-2025-12818: Several places in libpq were not
sufficiently careful about computing the required size of a
memory allocation. Sufficiently large inputs could cause
integer overflow, resulting in an undersized buffer, which
would then lead to writing past the end of the buffer.
-------------------------------------------------------------------
Thu Sep 4 15:02:24 UTC 2025 - Reinhard Max <max@suse.com>
- Sync spec file with version 18.
-------------------------------------------------------------------
Sun Aug 24 00:44:56 UTC 2025 - Marcus Rueckert <mrueckert@suse.de>
- switch library to pg 18
-------------------------------------------------------------------
Thu Aug 14 19:50:42 UTC 2025 - Marcus Rueckert <mrueckert@suse.de>

View File

@@ -16,8 +16,13 @@
#
%define pgversion 17.6
%define pgmajor 17
%define pgminor 7
%define buildlibs 1
%define tarversion %{pgversion}
%define oldest_supported_llvm_ver 10
# To be able to use cmake(LLVM) < ...
%define latest_supported_llvm_ver_plus_one 19
### CUT HERE ###
%define pgname postgresql%pgmajor
@@ -35,16 +40,6 @@
%define pgextensiondir %pgdatadir/extension
%define pgcontribdir %pgdatadir/contrib
%define pgmandir %_mandir
%define pgversion %{pgmajor}.%{pgminor}
%define tarversion %{pgversion}%{?prerelease}
%if %pgmajor == 18 || ( %pgmajor == 17 && 0%{?sle_version} == 120200 )
# We still build the libs for PG 17 on SLE-12-SP2, because
# newer PG versions will only be released for SP5.
%define buildlibs 1
%else
%define buildlibs 0
%endif
%define requires_file() %( readlink -f '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: %%{name} >= %%{epoch}:%%{version}\\n' -f | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
@@ -59,8 +54,13 @@ Name: %pgname-mini
Name: %pgname
%endif
# Use Python 3 for everything.
# Use Python 2 for for PostgreSQL 10 on SLE12.
# Use Python 3 for everything else.
%if 0%{?is_opensuse} || 0%{?sle_version} >= 150000 || %pgmajor > 10
%define python python3
%else
%define python python
%endif
%if %pgmajor >= 17
%bcond_with derived
@@ -68,20 +68,6 @@ Name: %pgname
%bcond_without derived
%endif
%if %pgmajor >= 18 && 0%{?suse_version} >= 1500
%bcond_without curl
%if 0%{?sle_version} >= 150400 || 0%{?suse_version} >= 1600
%bcond_without uring
%else
%bcond_with uring
%endif
%bcond_without numa
%else
%bcond_with curl
%bcond_with uring
%bcond_with numa
%endif
%if 0%{?suse_version} >= 1500
%bcond_without liblz4
%endif
@@ -129,12 +115,11 @@ BuildRequires: %libecpg
BuildRequires: %libpq
%endif
%if 0%{?suse_version} >= 1500
%if 0%{?suse_version} >= 1500 && %pgmajor >= 11
%ifarch riscv64 loongarch64
%bcond_with llvm
%else
%bcond_without llvm
%{!?product_libs_llvm_ver: %global product_libs_llvm_ver 15}
%endif
%else
%bcond_with llvm
@@ -147,6 +132,12 @@ BuildRequires: %libpq
%bcond_with check
%endif
%if %pgmajor >= 11 || %mini
%bcond_without server_devel
%else
%bcond_with server_devel
%endif
BuildRequires: fdupes
%if %{with icu}
BuildRequires: libicu-devel
@@ -155,34 +146,16 @@ BuildRequires: libicu-devel
BuildRequires: libselinux-devel
%endif
%if %{with llvm}
BuildRequires: clang%{product_libs_llvm_ver}
BuildRequires: gcc-c++
BuildRequires: llvm%{product_libs_llvm_ver}-devel
BuildRequires: (cmake(Clang) >= %{oldest_supported_llvm_ver} with cmake(Clang) < %{latest_supported_llvm_ver_plus_one})
BuildRequires: (cmake(LLVM) >= %{oldest_supported_llvm_ver} with cmake(LLVM) < %{latest_supported_llvm_ver_plus_one})
%endif
BuildRequires: libxslt-devel
BuildRequires: pkg-config
%if 0%{?suse_version} >= 1500
BuildRequires: openssl-devel
BuildRequires: (pkgconfig(ldap) or openldap2-devel)
%else
%if 0%{?sle_version} >= 120400
BuildRequires: libopenssl-1_1-devel
%else
BuildRequires: openssl-devel
%endif
BuildRequires: openldap2-devel
%endif
BuildRequires: openssl-devel
BuildRequires: pkg-config
BuildRequires: pkgconfig(krb5)
BuildRequires: pkgconfig(libsystemd)
%if %{with curl}
BuildRequires: pkgconfig(libcurl)
%endif
%if %{with uring}
BuildRequires: pkgconfig(liburing)
%endif
%if %{with numa}
BuildRequires: pkgconfig(numa)
%endif
BuildRequires: pkgconfig(systemd)
#!BuildIgnore: %pgname
#!BuildIgnore: %pgname-server
@@ -218,8 +191,6 @@ Patch9: postgresql-var-run-socket.patch
%if %{with llvm}
Patch10: postgresql-llvm-optional.patch
Patch11: 0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch
# PATCH-FIX-UPSTREAM - commit 0dceba2
Patch12: llvm-21-aarch64.patch
%endif
URL: https://www.postgresql.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -307,9 +278,13 @@ Requires: postgresql-devel-noarch >= %pgmajor
Provides: postgresql-devel-exclusive = %pgmajor
Conflicts: postgresql-devel-exclusive < %pgmajor
%if %{with server_devel}
%package server-devel
Summary: PostgreSQL server development header files and utilities
Group: Development/Libraries/C and C++
%else
Provides: %pgname-server-devel = %version-%release
%endif
Provides: postgresql-server-devel = %version-%release
Provides: postgresql-server-devel-implementation = %version-%release
Requires(post): postgresql-server-devel-noarch >= %pgmajor
@@ -328,13 +303,11 @@ Requires: pkgconfig(krb5)
%if %{with selinux}
Requires: libselinux-devel
%endif
%if %{with numa}
Requires: pkgconfig(numa)
%endif
%if %{with llvm}
Recommends: %pgname-llvmjit-devel = %version-%release
%endif
%if %{with server_devel}
%description server-devel
PostgreSQL is an advanced object-relational database management system
that supports an extended subset of the SQL standard, including
@@ -344,6 +317,7 @@ types and functions.
This package contains the header files and libraries needed to compile
C extensions that link into the PostgreSQL server. For building client
applications, see the postgresql%pgmajor-devel package.
%endif
%description -n %pgname-%devel
PostgreSQL is an advanced object-relational database management system
@@ -552,7 +526,6 @@ touch -r configure tmp
%if %{with llvm}
%patch -P 10
%patch -P 11
%patch -P 12 -p1
%endif
touch -r tmp configure
rm tmp
@@ -585,15 +558,6 @@ PACKAGE_TARNAME=%pgname %configure \
--with-uuid=e2fs \
--with-libxml \
--with-libxslt \
%if %{with curl}
--with-libcurl \
%endif
%if %{with uring}
--with-liburing \
%endif
%if %{with numa}
--with-libnuma \
%endif
%if %{with liblz4}
--with-lz4 \
%endif
@@ -675,8 +639,9 @@ ls %buildroot%pglibdir/lib* |
mv %buildroot%pglibdir/pkgconfig %buildroot%_libdir
find %buildroot%_libdir/pkgconfig -type f -exec sed -i 's, -L%pglibdir,,' '{}' +
# Don't ship static libraries, some of then are needed, though.
rm -f $(ls %buildroot/%_libdir/*.a %buildroot%pglibdir/*.a | grep -F -v -e libpgport.a -e libpgcommon.a -e libpgfeutils.a)
# Don't ship static libraries,
# libpgport.a and libpgcommon.a are needed, though.
rm -f $(ls %buildroot/%_libdir/*.a %buildroot%pglibdir/*.a | grep -F -v -e libpgport.a -e libpgcommon.a)
%if !%mini
#
@@ -795,7 +760,7 @@ sed -i '/^LIBS = /s/= .*/=/' %buildroot/%pglibdir/pgxs/src/Makefile.global
# Make sure we can also link agaist newer versions
pushd %buildroot%_libdir
for f in $( find -type l -name \*.so ) ; do
for f in *.so; do
ln -sf $f.? $f
done
%if 0
@@ -818,6 +783,10 @@ mv %buildroot%pgbindir/ecpg %buildroot%_bindir/ecpg
ln -s %pgbindir/pg_config %buildroot%_bindir/pg_config
%endif
%if %{without server_devel}
cat server-devel.files >> devel.files
%endif
# Build up the file lists for the libpq and libecpg packages
cat > libpq.files <<EOF
%defattr(-,root,root)
@@ -826,7 +795,7 @@ cat > libpq.files <<EOF
%pgdatadir/pg_service.conf.sample
%endif
EOF
find %buildroot \( -name 'libpq*.so.*' -o -name 'libpq-oauth*.so' \) -printf '/%%P\n' >> libpq.files
find %buildroot -name 'libpq*.so.*' -printf '/%%P\n' >> libpq.files
%find_lang libpq5-$VLANG libpq.files
cat > libecpg.files <<EOF
@@ -848,11 +817,13 @@ awk -v P=%buildroot '/^(%lang|[^%])/{print P $NF}' libpq.files libecpg.files | x
%postun -n %pgname-%devel
/sbin/ldconfig
%if %{with server_devel}
%post server-devel
/usr/share/postgresql/install-alternatives %pgmajor
%postun server-devel
/usr/share/postgresql/install-alternatives %pgmajor
%endif
%if !%mini
@@ -1006,16 +977,18 @@ fi
%dir %pgbindir
%_bindir/ecpg
%_libdir/pkgconfig/*
%_libdir/libecpg.so
%_libdir/libecpg_compat.so
%_libdir/libpgtypes.so
%_libdir/libpq.so
%_libdir/lib*.so
%pgincludedir
%if %{with server_devel}
%exclude %pgincludedir/server
%endif
%if !%mini
%doc %pgmandir/man1/ecpg.1*
%if %{with server_devel}
%files server-devel -f server-devel.files
%endif
%defattr(-,root,root)
%ghost %_bindir/pg_config
%pgbindir/pg_config