Compare commits

..

1 Commits

Author SHA1 Message Date
5e5c998a71 import CS postgresql16-16.8-1.el10 2025-03-27 13:12:29 +00:00
19 changed files with 11 additions and 650 deletions

View File

@ -1 +0,0 @@
1

32
.gitignore vendored Executable file → Normal file
View File

@ -1,29 +1,3 @@
/postgresql-15.5.tar.bz2
/postgresql-15.5.tar.bz2.sha256
/postgresql-16.1.tar.bz2
/postgresql-16.1.tar.bz2.sha256
/postgresql-setup-8.9.tar.gz
/postgresql-16.4.tar.bz2
/postgresql-16.4.tar.bz2.sha256
/postgresql-13.16.tar.bz2
/postgresql-13.16.tar.bz2.sha256
/postgresql-16.6.tar.bz2
/postgresql-16.6.tar.bz2.sha256
/postgresql-13.18.tar.bz2
/postgresql-13.18.tar.bz2.sha256
/postgresql-16.8.tar.bz2
/postgresql-16.8.tar.bz2.sha256
/postgresql-13.20.tar.bz2
/postgresql-13.20.tar.bz2.sha256
/postgresql-16.10.tar.bz2
/postgresql-16.10.tar.bz2.sha256
/postgresql-13.22.tar.bz2
/postgresql-13.22.tar.bz2.sha256
/postgresql-16.11.tar.bz2
/postgresql-16.11.tar.bz2.sha256
/postgresql-16.12.tar.bz2
/postgresql-16.12.tar.bz2.sha256
/postgresql-13.23.tar.bz2
/postgresql-13.23.tar.bz2.sha256
/postgresql-16.14.tar.bz2
/postgresql-16.14.tar.bz2.sha256
postgresql-13.20.tar.bz2
postgresql-16.8.tar.bz2
postgresql-setup-8.9.tar.gz

View File

@ -1,3 +0,0 @@
# postgresql16
The postgresql16 package

2
ci.fmf
View File

@ -1,2 +0,0 @@
resultsdb-testcase: separate

View File

@ -1,6 +0,0 @@
--- !Policy
product_versions:
- rhel-*
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/rhel-gating.functional}

View File

@ -1,58 +0,0 @@
#! /bin/sh
# This script builds the PDF version of the PostgreSQL documentation.
#
# In principle we could do this as part of the RPM build, but there are
# good reasons not to:
# 1. The build would take longer and have a larger BuildRequires footprint.
# 2. The generated PDF has timestamps in it, which would inevitably result
# in multilib conflicts due to slightly different timestamps.
# So instead, we run this manually when rebasing to a new upstream release,
# and treat the resulting PDF as a separate Source file.
#
# You will need to have the docbook packages installed to run this.
# Expect it to take about 20 minutes and use about 160MB of disk.
set -e
# Pass package version (e.g., 9.1.2) as argument
VERSION=$1
test -z "$VERSION" && VERSION=`awk '/^Version:/ { print $2; }' postgresql.spec`
TARGETFILE=postgresql-$VERSION-US.pdf
test -f "$TARGETFILE" && echo "$TARGETFILE exists" && exit 1
echo Building $TARGETFILE ...
# Unpack postgresql
rm -rf postgresql-$VERSION
tar xfj postgresql-$VERSION.tar.bz2
cd postgresql-$VERSION
# Apply any patches that affect the PDF documentation
# patch -p1 < ../xxx.patch
# Configure ...
./configure >/dev/null
# Build the PDF docs
cd doc/src/sgml
make postgres-US.pdf >make.log
mv -f postgres-US.pdf ../../../../$TARGETFILE
# Clean up
cd ../../../..
rm -rf postgresql-$VERSION
exit 0

View File

@ -1,12 +0,0 @@
#! /bin/sh
rm sources
set -e
spectool -S *.spec | cut -d' ' -f2 \
| grep -E -e 'postgresql-.*\.tar\.*' -e 'postgresql.*\.pdf' | sort | \
while read line
do
base=`basename "$line"`
echo " * handling $base"
sha512sum --tag "$base" >> sources
done

View File

@ -1,192 +0,0 @@
From 69db3b0cfccc0687dfbdf56afcfb2f8e536053c6 Mon Sep 17 00:00:00 2001
From: Andrew Dunstan <andrew@dunslane.net>
Date: Sun, 14 May 2017 01:10:18 -0400
Subject: [PATCH] Suppress indentation from Data::Dumper in regression tests
Ultra-modern versions of the perl Data::Dumper module have apparently
changed how they indent output. Instead of trying to keep up we choose
to tell it to supporess all indentation in the hstore_plperl regression
tests.
Backpatch to 9.5 where this feature was introduced.
---
contrib/hstore_plperl/expected/hstore_plperlu.out | 44 ++++++-----------------
contrib/hstore_plperl/sql/hstore_plperlu.sql | 6 ++++
2 files changed, 17 insertions(+), 33 deletions(-)
diff --git a/contrib/hstore_plperl/expected/hstore_plperlu.out b/contrib/hstore_plperl/expected/hstore_plperlu.out
index b09fb78..d719d29 100644
--- a/contrib/hstore_plperl/expected/hstore_plperlu.out
+++ b/contrib/hstore_plperl/expected/hstore_plperlu.out
@@ -20,15 +20,12 @@ TRANSFORM FOR TYPE hstore
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
elog(INFO, Dumper($_[0]));
return scalar(keys %{$_[0]});
$$;
SELECT test1('aa=>bb, cc=>NULL'::hstore);
-INFO: $VAR1 = {
- 'aa' => 'bb',
- 'cc' => undef
- };
-
+INFO: $VAR1 = {'aa' => 'bb','cc' => undef};
test1
-------
2
@@ -39,12 +36,12 @@ LANGUAGE plperlu
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
elog(INFO, Dumper($_[0]));
return scalar(keys %{$_[0]});
$$;
SELECT test1none('aa=>bb, cc=>NULL'::hstore);
INFO: $VAR1 = '"aa"=>"bb", "cc"=>NULL';
-
test1none
-----------
0
@@ -56,15 +53,12 @@ TRANSFORM FOR TYPE hstore
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
elog(INFO, Dumper($_[0]));
return scalar(keys %{$_[0]});
$$;
SELECT test1list('aa=>bb, cc=>NULL'::hstore);
-INFO: $VAR1 = {
- 'aa' => 'bb',
- 'cc' => undef
- };
-
+INFO: $VAR1 = {'aa' => 'bb','cc' => undef};
test1list
-----------
2
@@ -77,18 +71,12 @@ TRANSFORM FOR TYPE hstore
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
elog(INFO, Dumper($_[0]->[0], $_[0]->[1]));
return scalar(keys %{$_[0]});
$$;
SELECT test1arr(array['aa=>bb, cc=>NULL'::hstore, 'dd=>ee']);
-INFO: $VAR1 = {
- 'aa' => 'bb',
- 'cc' => undef
- };
-$VAR2 = {
- 'dd' => 'ee'
- };
-
+INFO: $VAR1 = {'aa' => 'bb','cc' => undef};$VAR2 = {'dd' => 'ee'};
test1arr
----------
2
@@ -101,6 +89,7 @@ TRANSFORM FOR TYPE hstore
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
$rv = spi_exec_query(q{SELECT 'aa=>bb, cc=>NULL'::hstore AS col1});
elog(INFO, Dumper($rv->{rows}[0]->{col1}));
@@ -111,13 +100,8 @@ $rv = spi_exec_prepared($plan, {}, $val);
elog(INFO, Dumper($rv->{rows}[0]->{col1}));
$$;
SELECT test3();
-INFO: $VAR1 = {
- 'aa' => 'bb',
- 'cc' => undef
- };
-
+INFO: $VAR1 = {'aa' => 'bb','cc' => undef};
INFO: $VAR1 = '"a"=>"1", "b"=>"boo", "c"=>NULL';
-
test3
-------
@@ -138,6 +122,7 @@ TRANSFORM FOR TYPE hstore
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
elog(INFO, Dumper($_TD->{new}));
if ($_TD->{new}{a} == 1) {
$_TD->{new}{b} = {a => 1, b => 'boo', c => undef};
@@ -147,14 +132,7 @@ return "MODIFY";
$$;
CREATE TRIGGER test4 BEFORE UPDATE ON test1 FOR EACH ROW EXECUTE PROCEDURE test4();
UPDATE test1 SET a = a;
-INFO: $VAR1 = {
- 'a' => '1',
- 'b' => {
- 'aa' => 'bb',
- 'cc' => undef
- }
- };
-
+INFO: $VAR1 = {'a' => '1','b' => {'aa' => 'bb','cc' => undef}};
SELECT * FROM test1;
a | b
---+---------------------------------
diff --git a/contrib/hstore_plperl/sql/hstore_plperlu.sql b/contrib/hstore_plperl/sql/hstore_plperlu.sql
index 8d8508c..c714b35 100644
--- a/contrib/hstore_plperl/sql/hstore_plperlu.sql
+++ b/contrib/hstore_plperl/sql/hstore_plperlu.sql
@@ -15,6 +15,7 @@ TRANSFORM FOR TYPE hstore
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
elog(INFO, Dumper($_[0]));
return scalar(keys %{$_[0]});
$$;
@@ -26,6 +27,7 @@ LANGUAGE plperlu
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
elog(INFO, Dumper($_[0]));
return scalar(keys %{$_[0]});
$$;
@@ -38,6 +40,7 @@ TRANSFORM FOR TYPE hstore
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
elog(INFO, Dumper($_[0]));
return scalar(keys %{$_[0]});
$$;
@@ -52,6 +55,7 @@ TRANSFORM FOR TYPE hstore
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
elog(INFO, Dumper($_[0]->[0], $_[0]->[1]));
return scalar(keys %{$_[0]});
$$;
@@ -66,6 +70,7 @@ TRANSFORM FOR TYPE hstore
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
$rv = spi_exec_query(q{SELECT 'aa=>bb, cc=>NULL'::hstore AS col1});
elog(INFO, Dumper($rv->{rows}[0]->{col1}));
@@ -90,6 +95,7 @@ TRANSFORM FOR TYPE hstore
AS $$
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Indent = 0;
elog(INFO, Dumper($_TD->{new}));
if ($_TD->{new}{a} == 1) {
$_TD->{new}{b} = {a => 1, b => 'boo', c => undef};
--
2.1.4

View File

@ -1,10 +0,0 @@
/rhel-gating:
plan:
import:
url: https://pkgs.devel.redhat.com/git/tests/postgresql
name: /plans/versioned/postgresql16/gating
/rhel-no-gating:
plan:
import:
url: https://pkgs.devel.redhat.com/git/tests/postgresql
name: /plans/versioned/postgresql16/no-gating

View File

@ -1,23 +0,0 @@
diff -ur postgresql-15.4/src/pl/plperl/expected/plperl_call.out postgresql-patched/src/pl/plperl/expected/plperl_call.out
--- postgresql-15.4/src/pl/plperl/expected/plperl_call.out 2023-08-07 22:08:18.000000000 +0200
+++ postgresql-patched/src/pl/plperl/expected/plperl_call.out 2023-09-18 10:23:42.499078442 +0200
@@ -64,6 +64,7 @@
RAISE NOTICE '_a: %, _b: %', _a, _b;
END
$$;
+WARNING: could not determine encoding for locale "C.UTF-8": codeset is "ANSI_X3.4-1968"
NOTICE: a: 10, b:
NOTICE: _a: 10, _b: 20
DROP PROCEDURE test_proc1;
diff -ur postgresql-15.4/src/pl/plperl/expected/plperl_elog_1.out postgresql-patched/src/pl/plperl/expected/plperl_elog_1.out
--- postgresql-15.4/src/pl/plperl/expected/plperl_elog_1.out 2023-08-07 22:08:18.000000000 +0200
+++ postgresql-patched/src/pl/plperl/expected/plperl_elog_1.out 2023-09-18 10:24:39.233451395 +0200
@@ -76,6 +76,7 @@
RETURN 1;
END;
$$;
+WARNING: could not determine encoding for locale "C.UTF-8": codeset is "ANSI_X3.4-1968"
select die_caller();
NOTICE: caught die
die_caller
Only in postgresql-patched/src/pl/plperl/expected: plperl_warning.patch

View File

@ -1,13 +0,0 @@
diff --git a/contrib/dblink/expected/dblink.out b/contrib/dblink/expected/dblink.out
index 6ceabb453c..6516d4f131 100644
--- a/contrib/dblink/expected/dblink.out
+++ b/contrib/dblink/expected/dblink.out
@@ -879,7 +879,7 @@ $d$;
CREATE USER MAPPING FOR public SERVER fdtest
OPTIONS (server 'localhost'); -- fail, can't specify server here
ERROR: invalid option "server"
-HINT: Valid options in this context are: user, password
+HINT: Valid options in this context are: user, password, sslpassword
CREATE USER MAPPING FOR public SERVER fdtest OPTIONS (user :'USER');
GRANT USAGE ON FOREIGN SERVER fdtest TO regress_dblink_user;
GRANT EXECUTE ON FUNCTION dblink_connect_u(text, text) TO regress_dblink_user;

View File

@ -0,0 +1 @@
8134b685724d15e60d93bea206fbe0f14c8295e84f1cc91d5a3928163e4fb288 postgresql-13.20.tar.bz2

View File

@ -0,0 +1 @@
9468083a56ce0ee7d294601b74dad3dd9fc69d87aff61f0a9fb63c813ff7efd8 postgresql-16.8.tar.bz2

View File

@ -1,49 +0,0 @@
PostgreSQL ecpg/initdb manual page fixes
This was generated based on automatic Red Hat manual page scan (private
RHBZ#948933).
diff -up postgresql-13.1/doc/src/sgml/man1/ecpg.1.patch6 postgresql-13.1/doc/src/sgml/man1/ecpg.1
--- postgresql-13.1/doc/src/sgml/man1/ecpg.1.patch6 2020-11-09 23:38:03.000000000 +0100
+++ postgresql-13.1/doc/src/sgml/man1/ecpg.1 2020-11-18 09:26:40.547324791 +0100
@@ -81,6 +81,11 @@ ORACLE\&.
Define a C preprocessor symbol\&.
.RE
.PP
+\fB\-h \fR
+.RS 4
+Parse a header file, this option includes option \fB\-c\fR\&.
+.RE
+.PP
\fB\-h\fR
.RS 4
Process header files\&. When this option is specified, the output file extension becomes
@@ -144,6 +149,11 @@ Allow question mark as placeholder for c
.RE
.RE
.PP
+\fB\-\-regression\fR
+.RS 4
+Run in regression testing mode\&.
+.RE
+.PP
\fB\-t\fR
.RS 4
Turn on autocommit of transactions\&. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block\&. In the default mode, commands are committed only when
diff -up postgresql-13.1/doc/src/sgml/man1/initdb.1.patch6 postgresql-13.1/doc/src/sgml/man1/initdb.1
--- postgresql-13.1/doc/src/sgml/man1/initdb.1.patch6 2020-11-09 23:38:05.000000000 +0100
+++ postgresql-13.1/doc/src/sgml/man1/initdb.1 2020-11-18 09:25:05.082348424 +0100
@@ -311,6 +311,13 @@ determines that an error prevented it fr
.PP
Other options:
.PP
+\fB\-s\fR
+.br
+\fB\-\-show\fR
+.RS 4
+Print the internal settings, then exit\&.
+.RE
+.PP
\fB\-V\fR
.br
\fB\-\-version\fR

View File

@ -1,37 +0,0 @@
--- a/src/test/ssl/t/001_ssltests.pl
+++ b/src/test/ssl/t/001_ssltests.pl
@@ -120,6 +120,22 @@
command_ok(
[ 'pg_ctl', '-D', $node->data_dir, '-l', $node->logfile, 'restart' ],
'restart succeeds with correct SSL protocol bounds');
+
+# Test parsing colon-separated groups in ssl_ecdh_curve. Writing to
+# sslconfig.conf ensures these values get overwritten by the next call to
+# switch_server_cert (which truncates and rewrites sslconfig.conf).
+$node->append_conf('sslconfig.conf', qq{ssl_ecdh_curve='bad:value'});
+my $log_size = -s $node->logfile;
+command_fails(
+ [ 'pg_ctl', '-D', $node->data_dir, '-l', $node->logfile, 'restart' ],
+ 'restart fails with incorrect ECDH groups');
+ok( $node->log_contains(
+ qr/ECDH: could not set group names from ssl_ecdh_curve/, $log_size),
+ 'error message mentions ssl_ecdh_curve');
+$node->append_conf('sslconfig.conf', qq{ssl_ecdh_curve='prime256v1'});
+command_ok(
+ [ 'pg_ctl', '-D', $node->data_dir, '-l', $node->logfile, 'restart' ],
+ 'restart succeeds after correcting ssl_ecdh_curve');
### Run client-side tests.
###
--- a/src/test/ssl/t/SSL/Server.pm
+++ b/src/test/ssl/t/SSL/Server.pm
@@ -299,6 +299,8 @@
open my $sslconf, '>', "$pgdata/sslconfig.conf";
print $sslconf "ssl=on\n";
print $sslconf $backend->set_server_cert(\%params);
+ # use lists of ECDH curves for syntax testing
+ print $sslconf "ssl_ecdh_curve='prime256v1:secp521r1'\n";
print $sslconf "ssl_passphrase_command='"
. $params{passphrase_cmd} . "'\n"
if defined $params{passphrase_cmd};

View File

@ -1,119 +0,0 @@
--- a/src/backend/libpq/be-secure-openssl.c 2025-02-17 16:14:22.000000000 -0500
+++ b/src/backend/libpq/be-secure-openssl.c 2026-03-30 14:33:40.542000000 -0400
@@ -46,9 +46,6 @@
#include "common/openssl.h"
#include <openssl/conf.h>
#include <openssl/dh.h>
-#ifndef OPENSSL_NO_ECDH
-#include <openssl/ec.h>
-#endif
#include <openssl/x509v3.h>
@@ -69,6 +66,7 @@
static void info_cb(const SSL *ssl, int type, int args);
static bool initialize_dh(SSL_CTX *context, bool isServerStart);
static bool initialize_ecdh(SSL_CTX *context, bool isServerStart);
+static const char *SSLerrmessageExt(unsigned long ecode, const char *replacement);
static const char *SSLerrmessage(unsigned long ecode);
static char *X509_NAME_to_cstring(X509_NAME *name);
@@ -1320,41 +1318,55 @@
* Set ECDH parameters for generating ephemeral Elliptic Curve DH
* keys. This is much simpler than the DH parameters, as we just
* need to provide the name of the curve to OpenSSL.
+ *
+ * Unlike the pre-PG18 implementation that used OBJ_sn2nid() and
+ * EC_KEY_new_by_curve_name() which only accepted a single curve,
+ * SSL_CTX_set1_groups_list() accepts a colon-separated list of
+ * group names, enabling post-quantum hybrid key exchange groups
+ * such as X25519MLKEM768.
*/
static bool
initialize_ecdh(SSL_CTX *context, bool isServerStart)
{
#ifndef OPENSSL_NO_ECDH
- EC_KEY *ecdh;
- int nid;
-
- nid = OBJ_sn2nid(SSLECDHCurve);
- if (!nid)
- {
- ereport(isServerStart ? FATAL : LOG,
- (errcode(ERRCODE_CONFIG_FILE_ERROR),
- errmsg("ECDH: unrecognized curve name: %s", SSLECDHCurve)));
- return false;
- }
-
- ecdh = EC_KEY_new_by_curve_name(nid);
- if (!ecdh)
+ if (SSL_CTX_set1_groups_list(context, SSLECDHCurve) != 1)
{
ereport(isServerStart ? FATAL : LOG,
(errcode(ERRCODE_CONFIG_FILE_ERROR),
- errmsg("ECDH: could not create key")));
+ errmsg("ECDH: could not set group names from ssl_ecdh_curve: %s",
+ SSLerrmessageExt(ERR_get_error(),
+ _("No valid groups found"))),
+ errhint("Ensure that each group name is spelled correctly and supported by the installed version of OpenSSL.")));
return false;
}
-
- SSL_CTX_set_options(context, SSL_OP_SINGLE_ECDH_USE);
- SSL_CTX_set_tmp_ecdh(context, ecdh);
- EC_KEY_free(ecdh);
#endif
return true;
}
/*
+ * Obtain reason string for passed SSL errcode with replacement
+ *
+ * The error message supplied in replacement will be used in case the error
+ * code from OpenSSL is 0, else the error message from SSLerrmessage() will
+ * be returned.
+ *
+ * Not all versions of OpenSSL place an error on the queue even for failing
+ * operations, which will yield "no SSL error reported" by SSLerrmessage.
+ * This function can be used to ensure that a proper error message is displayed
+ * for versions reporting no error, while using the OpenSSL error via
+ * SSLerrmessage for versions where there is one.
+ */
+static const char *
+SSLerrmessageExt(unsigned long ecode, const char *replacement)
+{
+ if (ecode == 0)
+ return replacement;
+ else
+ return SSLerrmessage(ecode);
+}
+
+/*
* Obtain reason string for passed SSL errcode
*
* ERR_get_error() is used by caller to get errcode to pass here.
--- a/src/backend/utils/misc/guc_tables.c 2025-02-17 16:14:22.000000000 -0500
+++ b/src/backend/utils/misc/guc_tables.c 2026-03-30 14:32:36.585000000 -0400
@@ -4449,8 +4449,8 @@
{
{"ssl_ecdh_curve", PGC_SIGHUP, CONN_AUTH_SSL,
- gettext_noop("Sets the curve to use for ECDH."),
- NULL,
+ gettext_noop("Sets the group(s) to use for key exchange."),
+ gettext_noop("Multiple groups can be specified using a colon-separated list."),
GUC_SUPERUSER_ONLY
},
&SSLECDHCurve,
--- a/src/backend/utils/misc/postgresql.conf.sample 2025-02-17 16:14:22.000000000 -0500
+++ b/src/backend/utils/misc/postgresql.conf.sample 2026-03-30 14:32:36.587000000 -0400
@@ -113,7 +113,7 @@
#ssl_key_file = 'server.key'
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
#ssl_prefer_server_ciphers = on
-#ssl_ecdh_curve = 'prime256v1'
+#ssl_ecdh_curve = 'prime256v1' # colon-separated list of group names
#ssl_min_protocol_version = 'TLSv1.2'
#ssl_max_protocol_version = ''
#ssl_dh_params_file = ''

View File

@ -47,8 +47,8 @@
Summary: PostgreSQL client programs
Name: %{majorname}%{majorversion}
Version: %{majorversion}.14
Release: 3%{?dist}
Version: %{majorversion}.8
Release: 1%{?dist}
# The PostgreSQL license is very similar to other MIT licenses, but the OSI
# recognizes it as an independent license, so we do as well.
@ -60,7 +60,7 @@ Url: http://www.postgresql.org/
# that this be kept up with the latest minor release of the previous series;
# but update when bugs affecting pg_dump output are fixed.
%global prevmajorversion 13
%global prevversion %{prevmajorversion}.23
%global prevversion %{prevmajorversion}.20
%global prev_prefix %{_libdir}/pgsql/postgresql-%{prevmajorversion}
%global precise_version %{?epoch:%epoch:}%version-%release
@ -95,8 +95,6 @@ Patch9: postgresql-server-pg_config.patch
# rhbz#1940964
Patch10: postgresql-datalayout-mismatch-on-s390.patch
Patch12: postgresql-no-libecpg.patch
Patch13: postgresql-pqc-ssl-groups-v2.patch
Patch14: postgresql-pqc-ssl-groups-tests.patch
# This macro is used for package names in the files section
%if %?postgresql_default
@ -114,7 +112,6 @@ BuildRequires: libzstd-devel
BuildRequires: gcc
BuildRequires: perl(ExtUtils::MakeMaker) glibc-devel bison flex gawk
BuildRequires: perl(ExtUtils::Embed), perl-devel
BuildRequires: perl(FindBin)
BuildRequires: perl(Opcode)
%if 0%{?fedora} || 0%{?rhel} > 7
BuildRequires: perl-generators
@ -522,8 +519,6 @@ goal of accelerating analytics queries.
%endif
%patch 9 -p1
%patch 10 -p1
%patch 13 -p1
%patch 14 -p1
%if ! %external_libpq
@ -547,14 +542,6 @@ find . -type f -name Makefile -exec sed -i -e "s/SO_MAJOR_VERSION=\s\?\([0-9]\+\
# remove .gitignore files to ensure none get into the RPMs (bug #642210)
find . -type f -name .gitignore | xargs rm
cat >postgresql16.sysusers.conf <<EOF
u postgres 26 'PostgreSQL Server' /var/lib/pgsql /bin/bash
EOF
cat > postgresql16.tmpfiles.conf <<EOF
d /var/lib/pgsql 0700 postgres postgres -
f /var/lib/pgsql/.bash_profile 0644 postgres postgres - "[ -f /etc/profile ] && source /etc/profile\nPGDATA=/var/lib/pgsql/data\nexport PGDATA"
EOF
%build
# Avoid LTO on armv7hl as it runs out of memory
@ -722,7 +709,6 @@ upgrade_configure ()
--disable-rpath \
--with-lz4 \
--with-zstd \
--with-openssl \
%if %icu
--with-icu \
%endif
@ -962,14 +948,10 @@ find_lang_bins pltcl.lst pltcl
%endif
%endif
install -m0644 -D postgresql16.tmpfiles.conf %{buildroot}%{_tmpfilesdir}/postgresql16.conf
install -m0644 -D postgresql16.sysusers.conf %{buildroot}%{_sysusersdir}/postgresql16.conf
%pre -n %{pkgname}-server
/usr/sbin/groupadd -g 26 -o -r postgres >/dev/null 2>&1 || :
/usr/sbin/useradd -M -N -g postgres -o -r -d /var/lib/pgsql -s /bin/bash \
-c "PostgreSQL Server" -u 26 postgres >/dev/null 2>&1 || :
-c "PostgreSQL Server" -u 26 postgres >/dev/null 2>&1 || :
%post -n %{pkgname}-server
%systemd_post %service_name
@ -1255,8 +1237,6 @@ make -C postgresql-setup-%{setup_version} check
%if %pam
%config(noreplace) /etc/pam.d/postgresql
%endif
%{_tmpfilesdir}/postgresql16.conf
%{_sysusersdir}/postgresql16.conf
%files -n %{pkgname}-server-devel -f devel.lst
@ -1354,53 +1334,6 @@ make -C postgresql-setup-%{setup_version} check
%changelog
* Mon Jul 20 2026 Filip Janus <fjanus@redhat.com> - 16.14-3
- Add SSL test coverage for colon-separated ssl_ecdh_curve group list
- Backport test from upstream commit 3d1ef3a15c3 (adapted for PG16)
- Resolves: RHEL-119229
* Mon Jul 20 2026 Filip Janus <fjanus@redhat.com> - 16.14-2
- Enable PQC-compatible TLS group negotiation via ssl_ecdh_curve
- Backport SSL_CTX_set1_groups_list() from PG18 (upstream commit 3d1ef3a15c3)
- Backport SSLerrmessageExt() helper for improved error reporting
- Update GUC description to document colon-separated group list support
- Resolves: RHEL-119229
* Tue Jul 14 2026 RHEL Packaging Agent <redhat-ymir-agent@redhat.com> - 16.14-1
- Update to 16.14
- Add BuildRequires: perl(FindBin) for Perl 5.40 compatibility
- Resolves: RHEL-208694
* Mon Mar 16 2026 Nikola Davidova <ndavidov@redhat.com> - 16.13-2
- Release bump for bash-profile fix for imagemode
* Fri Feb 27 2026 Filip Janus <fjanus@redhat.com> - 16.13-1
- Update to 16.13
- Fix CVE-2026-2004: PostgreSQL intarray missing validation of type of input
- Fix CVE-2026-2005: PostgreSQL pgcrypto heap buffer overflow
- Fix CVE-2026-2006: PostgreSQL missing validation of multibyte character length
- Resolves: RHEL-149365 RHEL-149399 RHEL-149333
* Mon Dec 01 2025 Filip Janus <fjanus@redhat.com> - 16.11-1
- Update to 16.11
- Resolves: RHEL-128802 (CVE-2025-12818) [rhel-10.2]
- Resolves: RHEL-128801 (CVE-2025-12818) [rhel-10.1.z]
* Mon Nov 10 2025 Filip Janus <fjanus@redhat.com> - 16.10-3
- Add tmpfiles.d configuration for PostgreSQL 16
- Ensures proper directory permissions for /var/lib/pgsql
* Wed Oct 1 2025 Filip Janus <fjanus@redhat.com> - 16.10-2
- Add OpenSSL support to upgrade_configure function
- This ensures upgrade server is compiled with OpenSSL support
- Required for SSL/TLS connections during database upgrades
* Fri Sep 5 2025 Filip Janus <fjanus@redhat.com> - 16.10-1
- Update to 16.10
* Tue Jul 22 2025 Filip Janus <fjanus@redhat.com> - 16.8-2
- Add tmpfiles.d configuration
* Wed Feb 19 2025 Filip Janus <fjanus@redhat.com> - 16.8-1
- Update to 16.8
- Fix CVE-2025-1094

View File

@ -1,21 +0,0 @@
---
# Forbidden function symbols found:
# inet_net_ntop
# inet_net_pton
# This is not a problem because the older version is only used for upgrade
# purposes and communicates through unix socket only
badfuncs:
ignore:
- /usr/lib*/pgsql/postgresql-*/bin/postgres
# Invalid XML for HTML doc is ok
xml:
ignore:
- /usr/share/doc/postgresql-docs/html/*.html
# Wacky guess on file type that we do not need to care
# Message: MIME type on <file> was text/plain and became text/x-c
types:
ignore:
- /usr/lib64/pgsql/postgresql-*/include/server/port/freebsd.h
- /usr/include/pgsql/server/port/freebsd.h

6
sources Executable file → Normal file
View File

@ -1,5 +1,3 @@
SHA512 (postgresql-16.14.tar.bz2) = 68264c1f0090dc4f4d83c541dc76078add3a76ca3bca87a9c30fe1152632002c673296d9e3b940f796f82cf4bca288432875be89928cb94265eb50c4d1079ea0
SHA512 (postgresql-16.14.tar.bz2.sha256) = e0f231a7cca96d22bb500a4590a48b1304c3f4524fd4fa4500bc79c3484f0d95d5f82d3299617f55fb9c8c20eac786ca07b4a57edc035a17ef1160b6ab48caa5
SHA512 (postgresql-13.23.tar.bz2) = 9589fe26d874eb91244b7325d997d5e54e93d61a13f63b7e9ef247c0ca6c8ade420487303295010b0c45d7775b64da076a2af14bdcb7a03702d06b5edf159c39
SHA512 (postgresql-13.23.tar.bz2.sha256) = f4ef1da9ffbce1db074d2a76c87710d57139f013c8c43b7045eb986ec0c11219c5b72227fdc3765073733b694bcb25637797905c171003912944bb8110d322e5
SHA512 (postgresql-13.20.tar.bz2) = 884ee8327b803c66679238525e7d51320ea537b41138d7fe8fd7e725631f734a61e53646d9cec78154f3f05a3b50e90508793a56a8f0f76699a53773930cb1d0
SHA512 (postgresql-16.8.tar.bz2) = f44fdfe01fbf82f3ffe4c9fc860bd27e06dddfe43b6bd6d1c6e267d64086eb5517e23cc1b2b8895cb73e63fce76779993ea9785a97e6e348ed91b4c08bb0492d
SHA512 (postgresql-setup-8.9.tar.gz) = 118e9ebf858722a38b0e90324bc1b49fc7058cda601ca0a7e78c94e7b95e89d6dbbc46f377626364b068614ced3cde3cb4733973ad2d71bf17892ad773657ef7