- Upgrade to 15.10
* Repair ABI break for extensions that work with struct ResultRelInfo. * Restore functionality of ALTER {ROLE|DATABASE} SET role. * Fix cases where a logical replication slot's restart_lsn could go backwards. * Avoid deleting still-needed WAL files during pg_rewind. * Fix race conditions associated with dropping shared statistics entries. * Count index scans in contrib/bloom indexes in the statistics views, such as the pg_stat_user_indexes.idx_scan counter. * Fix crash when checking to see if an index's opclass options have changed. * Avoid assertion failure caused by disconnected NFA sub-graphs in regular expression parsing. * https://www.postgresql.org/about/news/p-2965/ * https://www.postgresql.org/docs/release/15.10/ OBS-URL: https://build.opensuse.org/package/show/server:database:postgresql/postgresql15?expand=0&rev=62
This commit is contained in:
commit
a9b30a6281
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
@ -0,0 +1,96 @@
|
||||
From 0edaa982336823d4d7af8f10b91579fe0099ef3d Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Tue, 20 Apr 2021 20:14:21 -0700
|
||||
Subject: [PATCH] jit: Workaround potential datalayout mismatch on s390x
|
||||
|
||||
LLVM's s390x target uses a different datalayout for z13 and newer processors.
|
||||
If llvmjit_types.bc is compiled to target a processor older than z13, and
|
||||
then the JIT runs on a z13 or newer processor, then there will be a mismatch
|
||||
in datalayouts between llvmjit_types.bc and the JIT engine. This mismatch
|
||||
causes the JIT to fail at runtime.
|
||||
---
|
||||
src/backend/jit/llvm/llvmjit.c | 46 ++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 44 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: src/backend/jit/llvm/llvmjit.c
|
||||
===================================================================
|
||||
--- src/backend/jit/llvm/llvmjit.c.orig
|
||||
+++ src/backend/jit/llvm/llvmjit.c
|
||||
@@ -777,6 +777,35 @@ llvm_compile_module(LLVMJitContext *cont
|
||||
}
|
||||
|
||||
/*
|
||||
+ * For the systemz target, LLVM uses a different datalayout for z13 and newer
|
||||
+ * CPUs than it does for older CPUs. This can cause a mismatch in datalayouts
|
||||
+ * in the case where the llvm_types_module is compiled with a pre-z13 CPU
|
||||
+ * and the JIT is running on z13 or newer.
|
||||
+ * See computeDataLayout() function in
|
||||
+ * llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp for information on the
|
||||
+ * datalayout differences.
|
||||
+ */
|
||||
+static bool
|
||||
+needs_systemz_workaround(void)
|
||||
+{
|
||||
+ bool ret = false;
|
||||
+ LLVMContextRef llvm_context;
|
||||
+ LLVMTypeRef vec_type;
|
||||
+ LLVMTargetDataRef llvm_layoutref;
|
||||
+ if (strncmp(LLVMGetTargetName(llvm_targetref), "systemz", strlen("systemz")))
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ llvm_context = LLVMGetModuleContext(llvm_types_module);
|
||||
+ vec_type = LLVMVectorType(LLVMIntTypeInContext(llvm_context, 32), 4);
|
||||
+ llvm_layoutref = LLVMCreateTargetData(llvm_layout);
|
||||
+ ret = (LLVMABIAlignmentOfType(llvm_layoutref, vec_type) == 16);
|
||||
+ LLVMDisposeTargetData(llvm_layoutref);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Per session initialization.
|
||||
*/
|
||||
static void
|
||||
@@ -785,6 +814,7 @@ llvm_session_initialize(void)
|
||||
MemoryContext oldcontext;
|
||||
char *error = NULL;
|
||||
char *cpu = NULL;
|
||||
+ char *host_features = NULL;
|
||||
char *features = NULL;
|
||||
LLVMTargetMachineRef opt0_tm;
|
||||
LLVMTargetMachineRef opt3_tm;
|
||||
@@ -816,10 +846,17 @@ llvm_session_initialize(void)
|
||||
* features not all CPUs have (weird, huh).
|
||||
*/
|
||||
cpu = LLVMGetHostCPUName();
|
||||
- features = LLVMGetHostCPUFeatures();
|
||||
+ features = host_features = LLVMGetHostCPUFeatures();
|
||||
elog(DEBUG2, "LLVMJIT detected CPU \"%s\", with features \"%s\"",
|
||||
cpu, features);
|
||||
|
||||
+ if (needs_systemz_workaround())
|
||||
+ {
|
||||
+ const char *no_vector =",-vector";
|
||||
+ features = malloc(sizeof(char) * (strlen(host_features) + strlen(no_vector) + 1));
|
||||
+ sprintf(features, "%s%s", host_features, no_vector);
|
||||
+ }
|
||||
+
|
||||
opt0_tm =
|
||||
LLVMCreateTargetMachine(llvm_targetref, llvm_triple, cpu, features,
|
||||
LLVMCodeGenLevelNone,
|
||||
@@ -833,8 +870,13 @@ llvm_session_initialize(void)
|
||||
|
||||
LLVMDisposeMessage(cpu);
|
||||
cpu = NULL;
|
||||
- LLVMDisposeMessage(features);
|
||||
+ if (features != host_features)
|
||||
+ {
|
||||
+ free(features);
|
||||
+ }
|
||||
features = NULL;
|
||||
+ LLVMDisposeMessage(host_features);
|
||||
+ host_features = NULL;
|
||||
|
||||
/* force symbols in main binary to be loaded */
|
||||
LLVMLoadLibraryPermanently(NULL);
|
5
baselibs.conf
Normal file
5
baselibs.conf
Normal file
@ -0,0 +1,5 @@
|
||||
libpq5
|
||||
provides "postgresql-libs-<targettype> = <version>"
|
||||
obsoletes "postgresql-libs-<targettype> < <version>"
|
||||
conflicts "postgresql-libs-<targettype> < 9.1.6"
|
||||
libecpg6
|
3
postgresql-15.10.tar.bz2
Normal file
3
postgresql-15.10.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:55abe738d441f0e58658b3ec6f88097a713b5e3b73139f6230d7b5c4c389e573
|
||||
size 23138615
|
1
postgresql-15.10.tar.bz2.sha256
Normal file
1
postgresql-15.10.tar.bz2.sha256
Normal file
@ -0,0 +1 @@
|
||||
55abe738d441f0e58658b3ec6f88097a713b5e3b73139f6230d7b5c4c389e573 postgresql-15.10.tar.bz2
|
3
postgresql-15.9.tar.bz2
Normal file
3
postgresql-15.9.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:74f2d4565035f0cf729ecb059949faaf1102cbd93759b359822f98f82198c783
|
||||
size 23135232
|
1
postgresql-15.9.tar.bz2.sha256
Normal file
1
postgresql-15.9.tar.bz2.sha256
Normal file
@ -0,0 +1 @@
|
||||
74f2d4565035f0cf729ecb059949faaf1102cbd93759b359822f98f82198c783 postgresql-15.9.tar.bz2
|
29
postgresql-conf.patch
Normal file
29
postgresql-conf.patch
Normal file
@ -0,0 +1,29 @@
|
||||
Index: src/backend/utils/misc/postgresql.conf.sample
|
||||
===================================================================
|
||||
--- src/backend/utils/misc/postgresql.conf.sample.orig
|
||||
+++ src/backend/utils/misc/postgresql.conf.sample
|
||||
@@ -442,14 +442,14 @@
|
||||
|
||||
# - Where to Log -
|
||||
|
||||
-#log_destination = 'stderr' # Valid values are combinations of
|
||||
+log_destination = 'stderr' # Valid values are combinations of
|
||||
# stderr, csvlog, jsonlog, syslog, and
|
||||
# eventlog, depending on platform.
|
||||
# csvlog and jsonlog require
|
||||
# logging_collector to be on.
|
||||
|
||||
# This is used when logging to stderr:
|
||||
-#logging_collector = off # Enable capturing of stderr, jsonlog,
|
||||
+logging_collector = on # Enable capturing of stderr, jsonlog,
|
||||
# and csvlog into log files. Required
|
||||
# to be on for csvlogs and jsonlogs.
|
||||
# (change requires restart)
|
||||
@@ -558,6 +558,7 @@
|
||||
#log_error_verbosity = default # terse, default, or verbose messages
|
||||
#log_hostname = off
|
||||
#log_line_prefix = '%m [%p] ' # special values:
|
||||
+log_line_prefix = '%m %d %u [%p]'
|
||||
# %a = application name
|
||||
# %u = user name
|
||||
# %d = database name
|
16
postgresql-llvm-optional.patch
Normal file
16
postgresql-llvm-optional.patch
Normal file
@ -0,0 +1,16 @@
|
||||
--- src/Makefile.global.in.orig
|
||||
+++ src/Makefile.global.in
|
||||
@@ -192,7 +192,12 @@ with_krb_srvnam = @with_krb_srvnam@
|
||||
with_ldap = @with_ldap@
|
||||
with_libxml = @with_libxml@
|
||||
with_libxslt = @with_libxslt@
|
||||
-with_llvm = @with_llvm@
|
||||
+# Only build for LLVM, if the core supports it and the llvm and clang packages are installed.
|
||||
+ifeq (@with_llvm@ $(wildcard /usr/bin/clang /usr/bin/llvm-lto),yes /usr/bin/clang /usr/bin/llvm-lto)
|
||||
+with_llvm = yes
|
||||
+else
|
||||
+with_llvm = no
|
||||
+endif
|
||||
with_system_tzdata = @with_system_tzdata@
|
||||
with_uuid = @with_uuid@
|
||||
with_zlib = @with_zlib@
|
34
postgresql-plperl-keep-rpath.patch
Normal file
34
postgresql-plperl-keep-rpath.patch
Normal file
@ -0,0 +1,34 @@
|
||||
This patch keeps PosgreSQL's configure script from removing the rpath from
|
||||
Perl's linker options, because otherwise the PL/Perl module can't find
|
||||
libperl.so (bsc#578053).
|
||||
|
||||
Index: config/perl.m4
|
||||
===================================================================
|
||||
--- config/perl.m4.orig
|
||||
+++ config/perl.m4
|
||||
@@ -98,9 +98,7 @@ if test "$PORTNAME" = "win32" ; then
|
||||
fi
|
||||
fi
|
||||
else
|
||||
- pgac_tmp1=`$PERL -MExtUtils::Embed -e ldopts`
|
||||
- pgac_tmp2=`$PERL -MConfig -e 'print $Config{ccdlflags}'`
|
||||
- perl_embed_ldflags=`echo X"$pgac_tmp1" | sed -e "s/^X//" -e "s%$pgac_tmp2%%" -e ["s/ -arch [-a-zA-Z0-9_]*//g"]`
|
||||
+ perl_embed_ldflags=`$PERL -MExtUtils::Embed -e ldopts`
|
||||
fi
|
||||
AC_SUBST(perl_embed_ldflags)dnl
|
||||
if test -z "$perl_embed_ldflags" ; then
|
||||
Index: configure
|
||||
===================================================================
|
||||
--- configure.orig
|
||||
+++ configure
|
||||
@@ -10421,9 +10421,7 @@ if test "$PORTNAME" = "win32" ; then
|
||||
fi
|
||||
fi
|
||||
else
|
||||
- pgac_tmp1=`$PERL -MExtUtils::Embed -e ldopts`
|
||||
- pgac_tmp2=`$PERL -MConfig -e 'print $Config{ccdlflags}'`
|
||||
- perl_embed_ldflags=`echo X"$pgac_tmp1" | sed -e "s/^X//" -e "s%$pgac_tmp2%%" -e "s/ -arch [-a-zA-Z0-9_]*//g"`
|
||||
+ perl_embed_ldflags=`$PERL -MExtUtils::Embed -e ldopts`
|
||||
fi
|
||||
if test -z "$perl_embed_ldflags" ; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
9
postgresql-rpmlintrc
Normal file
9
postgresql-rpmlintrc
Normal file
@ -0,0 +1,9 @@
|
||||
addFilter("useless-explicit-provides")
|
||||
addFilter("unnecessary-buildrequires")
|
||||
addFilter("patch-not-applied")
|
||||
addFilter("non-standard-uid")
|
||||
addFilter("file-not-in-%lang")
|
||||
addFilter("no-dependency-on")
|
||||
addFilter("no-soname")
|
||||
addFilter("devel-file-in-non-devel-package")
|
||||
addFilter("shlib-policy-name-error")
|
16
postgresql-testsuite-keep-results-file.patch
Normal file
16
postgresql-testsuite-keep-results-file.patch
Normal file
@ -0,0 +1,16 @@
|
||||
commit 463154c669010cffc0e96b683576f1e879b61d8b
|
||||
Author: yac <yac@blesmrt.net>
|
||||
Date: Mon Mar 11 18:42:39 2013 +0100
|
||||
|
||||
don't unlink the result file
|
||||
|
||||
--- src/test/regress/pg_regress.c.orig
|
||||
+++ src/test/regress/pg_regress.c
|
||||
@@ -2585,7 +2585,6 @@ regression_main(int argc, char *argv[],
|
||||
else
|
||||
{
|
||||
unlink(difffilename);
|
||||
- unlink(logfilename);
|
||||
}
|
||||
|
||||
if (fail_count != 0)
|
54
postgresql-var-run-socket.patch
Normal file
54
postgresql-var-run-socket.patch
Normal file
@ -0,0 +1,54 @@
|
||||
Change the built-in default socket directory to be /run/postgresql.
|
||||
For backwards compatibility with (probably non-libpq-based) clients that
|
||||
might still expect to find the socket in /tmp, also create a socket in
|
||||
/tmp. This is to resolve communication problems with clients operating
|
||||
under systemd's PrivateTmp environment, which won't be using the same
|
||||
global /tmp directory as the server; see bug #825448.
|
||||
|
||||
Note that we apply the socket directory change at the level of the
|
||||
hard-wired defaults in the C code, not by just twiddling the setting in
|
||||
postgresql.conf.sample; this is so that the change will take effect on
|
||||
server package update, without requiring any existing postgresql.conf
|
||||
to be updated. (Of course, a user who dislikes this behavior can still
|
||||
override it via postgresql.conf.)
|
||||
|
||||
|
||||
Index: src/backend/utils/misc/guc.c
|
||||
===================================================================
|
||||
--- src/backend/utils/misc/guc.c.orig
|
||||
+++ src/backend/utils/misc/guc.c
|
||||
@@ -4451,7 +4451,7 @@ static struct config_string ConfigureNam
|
||||
},
|
||||
&Unix_socket_directories,
|
||||
#ifdef HAVE_UNIX_SOCKETS
|
||||
- DEFAULT_PGSOCKET_DIR,
|
||||
+ DEFAULT_PGSOCKET_DIR ", /tmp",
|
||||
#else
|
||||
"",
|
||||
#endif
|
||||
Index: src/bin/initdb/initdb.c
|
||||
===================================================================
|
||||
--- src/bin/initdb/initdb.c.orig
|
||||
+++ src/bin/initdb/initdb.c
|
||||
@@ -1044,7 +1044,7 @@ setup_config(void)
|
||||
|
||||
#ifdef HAVE_UNIX_SOCKETS
|
||||
snprintf(repltok, sizeof(repltok), "#unix_socket_directories = '%s'",
|
||||
- DEFAULT_PGSOCKET_DIR);
|
||||
+ DEFAULT_PGSOCKET_DIR ", /tmp");
|
||||
#else
|
||||
snprintf(repltok, sizeof(repltok), "#unix_socket_directories = ''");
|
||||
#endif
|
||||
Index: src/include/pg_config_manual.h
|
||||
===================================================================
|
||||
--- src/include/pg_config_manual.h.orig
|
||||
+++ src/include/pg_config_manual.h
|
||||
@@ -224,7 +224,7 @@
|
||||
* support them yet.
|
||||
*/
|
||||
#ifndef WIN32
|
||||
-#define DEFAULT_PGSOCKET_DIR "/tmp"
|
||||
+#define DEFAULT_PGSOCKET_DIR "/run/postgresql"
|
||||
#else
|
||||
#define DEFAULT_PGSOCKET_DIR ""
|
||||
#endif
|
495
postgresql15.changes
Normal file
495
postgresql15.changes
Normal file
@ -0,0 +1,495 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 19 14:27:34 UTC 2024 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Upgrade to 15.10
|
||||
* Repair ABI break for extensions that work with struct
|
||||
ResultRelInfo.
|
||||
* Restore functionality of ALTER {ROLE|DATABASE} SET role.
|
||||
* Fix cases where a logical replication slot's restart_lsn could
|
||||
go backwards.
|
||||
* Avoid deleting still-needed WAL files during pg_rewind.
|
||||
* Fix race conditions associated with dropping shared statistics
|
||||
entries.
|
||||
* Count index scans in contrib/bloom indexes in the statistics
|
||||
views, such as the pg_stat_user_indexes.idx_scan counter.
|
||||
* Fix crash when checking to see if an index's opclass options
|
||||
have changed.
|
||||
* Avoid assertion failure caused by disconnected NFA sub-graphs
|
||||
in regular expression parsing.
|
||||
* https://www.postgresql.org/about/news/p-2965/
|
||||
* https://www.postgresql.org/docs/release/15.10/
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 13 13:55:01 UTC 2024 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Upgrade to 15.9:
|
||||
* CVE-2024-10976, bsc#1233323: Ensure cached plans are marked as
|
||||
dependent on the calling role when RLS applies to a
|
||||
non-top-level table reference.
|
||||
* CVE-2024-10977, bsc#1233325: Make libpq discard error messages
|
||||
received during SSL or GSS protocol negotiation.
|
||||
* CVE-2024-10978, bsc#1233326: Fix unintended interactions
|
||||
between SET SESSION AUTHORIZATION and SET ROLE
|
||||
* CVE-2024-10979, bsc#1233327: Prevent trusted PL/Perl code from
|
||||
changing environment variables.
|
||||
* https://www.postgresql.org/about/news/p-2955/
|
||||
* https://www.postgresql.org/docs/release/15.9/
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 5 12:35:17 UTC 2024 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Sync spec file from postgresql17.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Aug 10 14:11:36 UTC 2024 - Marcus Rueckert <mrueckert@suse.de>
|
||||
|
||||
- Upgrade to 15.8 (bsc#1229013):
|
||||
* bsc#1229013, CVE-2024-7348 PostgreSQL relation replacement
|
||||
during pg_dump executes arbitrary SQL
|
||||
* https://www.postgresql.org/about/news/p-2910/
|
||||
* https://www.postgresql.org/docs/release/15.8/
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 8 12:05:25 UTC 2024 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Upgrade to 15.7 (bsc#1224051):
|
||||
* bsc#1224038, CVE-2024-4317: Restrict visibility of pg_stats_ext
|
||||
and pg_stats_ext_exprs entries to the table owner. See the
|
||||
release notes for the steps that have to be taken to fix
|
||||
existing PostgreSQL instances.
|
||||
* Fix incompatibility with LLVM 18.
|
||||
* https://www.postgresql.org/docs/release/15.7/
|
||||
- Prepare for PostgreSQL 17.
|
||||
- Make sure all compilation and doc generation happens in %build.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 12 22:48:41 UTC 2024 - Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||
|
||||
- Require LLVM <= 17 for now, because LLVM 18 doesn't seem to work.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 7 15:04:40 UTC 2024 - Sarah Kriesch <sarah.kriesch@opensuse.org>
|
||||
|
||||
- Remove constraints file because improved memory usage for s390x
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 29 14:36:57 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Use %patch -P N instead of deprecated %patchN.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 8 14:04:50 UTC 2024 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Upgrade to 15.6:
|
||||
* bsc#1219679, CVE-2024-0985: Tighten security restrictions
|
||||
within REFRESH MATERIALIZED VIEW CONCURRENTLY.
|
||||
One step of a concurrent refresh command was run under weak
|
||||
security restrictions. If a materialized view's owner could
|
||||
persuade a superuser or other high-privileged user to perform a
|
||||
concurrent refresh on that view, the view's owner could control
|
||||
code executed with the privileges of the user running REFRESH.
|
||||
Fix things so that all user-determined code is run as the
|
||||
view's owner, as expected
|
||||
* If you use GIN indexes, you may need to reindex after updating
|
||||
to this release.
|
||||
* LLVM 18 is now supported.
|
||||
* https://www.postgresql.org/docs/release/15.6/
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 8 14:26:51 UTC 2023 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Upgrade to 15.5:
|
||||
* bsc#1216962, CVE-2023-5868: Fix handling of unknown-type
|
||||
arguments in DISTINCT "any" aggregate functions. This error led
|
||||
to a text-type value being interpreted as an unknown-type value
|
||||
(that is, a zero-terminated string) at runtime. This could
|
||||
result in disclosure of server memory following the text value.
|
||||
* bsc#1216961, CVE-2023-5869: Detect integer overflow while
|
||||
computing new array dimensions. When assigning new elements to
|
||||
array subscripts that are outside the current array bounds, an
|
||||
undetected integer overflow could occur in edge cases. Memory
|
||||
stomps that are potentially exploitable for arbitrary code
|
||||
execution are possible, and so is disclosure of server memory.
|
||||
* bsc#1216960, CVE-2023-5870: Prevent the pg_signal_backend role
|
||||
from signalling background workers and autovacuum processes.
|
||||
The documentation says that pg_signal_backend cannot issue
|
||||
signals to superuser-owned processes. It was able to signal
|
||||
these background processes, though, because they advertise a
|
||||
role OID of zero. Treat that as indicating superuser ownership.
|
||||
The security implications of cancelling one of these process
|
||||
types are fairly small so far as the core code goes (we'll just
|
||||
start another one), but extensions might add background workers
|
||||
that are more vulnerable.
|
||||
Also ensure that the is_superuser parameter is set correctly in
|
||||
such processes. No specific security consequences are known for
|
||||
that oversight, but it might be significant for some extensions.
|
||||
* Add support for LLVM 16 and 17
|
||||
* https://www.postgresql.org/docs/15/release-15-5.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 31 10:57:13 UTC 2023 - Reinhard Max <max@suse.com>
|
||||
|
||||
- boo#1216734: Revert the last change and make the devel package
|
||||
independend of all other subpackages except for the libs.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 10 12:49:02 UTC 2023 - Reinhard Max <max@suse.com>
|
||||
|
||||
- boo#1216022: Call install-alternatives from the devel subpackage
|
||||
as well, otherwise the symlink for ecpg might be missing.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 18 15:24:14 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Also buildignore the postgresql*-implementation symbols: this is
|
||||
needed in order to bootstrap when no postgresql version currently
|
||||
has valid symbols provided. Once the packages are built, OBS
|
||||
could translate this to the pgname-* packages and accept the
|
||||
ignores; during bootstrap though, there is nothing providing the
|
||||
symbol and the existing buildignores do not suffice.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 14 12:18:06 UTC 2023 - Reinhard Max <max@suse.com>
|
||||
|
||||
- The libs and mini package are now provided by postgresql16.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 9 09:14:59 UTC 2023 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Update to 15.4:
|
||||
* bsc#1214059, CVE-2023-39417: Disallow substituting a schema or
|
||||
owner name into an extension script if the name contains a
|
||||
quote, backslash, or dollar sign.
|
||||
* bsc#1214061, CVE-2023-39418: Fix MERGE to enforce row security
|
||||
policies properly.
|
||||
* https://www.postgresql.org/docs/15/release-15-4.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 26 11:48:38 UTC 2023 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Restore the independence of mini builds from the main build after
|
||||
the -mini name change from April 4, 2023.
|
||||
- Adjust icu handling to prepare for PostgreSQL 16.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 15 14:20:25 UTC 2023 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Overhaul postgresql-README.SUSE and move it from the binary
|
||||
package to the noarch wrapper package.
|
||||
- Change the unix domain socket location from /var/run to /run.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 9 11:07:48 UTC 2023 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Update to 15.3:
|
||||
* bsc#1211228, CVE-2023-2454:
|
||||
Prevent CREATE SCHEMA from defeating changes in search_path
|
||||
* bsc#1211229, CVE-2023-2455: Enforce row-level security
|
||||
policies correctly after inlining a set-returning function
|
||||
* https://www.postgresql.org/about/news/2637/
|
||||
* https://www.postgresql.org/docs/15/release-15-3.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 18 09:05:09 UTC 2023 - Reinhard Max <max@suse.com>
|
||||
|
||||
- bsc#1210303: Stop using the obsolete internal %_restart_on_update
|
||||
macro and drop support for sysv init to simplify the scriptlets.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 4 10:57:41 UTC 2023 - Fabian Vogt <fvogt@suse.com>
|
||||
|
||||
- Include -mini in Name: to avoid conflicts in the source package
|
||||
name and OBS internal dependency tracking.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 9 11:38:35 UTC 2023 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Update to 15.2:
|
||||
* CVE-2022-41862, bsc#1208102: memory leak in libpq
|
||||
* https://www.postgresql.org/about/news/2592/
|
||||
* https://www.postgresql.org/docs/15/release-15-2.html
|
||||
- Bump latest_supported_llvm_ver to 15.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 10 14:35:02 UTC 2022 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Update to 15.1:
|
||||
* https://www.postgresql.org/about/news/2543/
|
||||
* https://www.postgresql.org/docs/15/release-15-1.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 13 14:03:27 UTC 2022 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Update to 15.0:
|
||||
* https://www.postgresql.org/about/news/p-2526/
|
||||
* https://www.postgresql.org/docs/15/release-15.html
|
||||
- Move pg_upgrade from *-contrib to *-server.
|
||||
- Drop support for the 9.x versioning scheme.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 6 13:20:57 UTC 2022 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Update to 15~rc2
|
||||
* https://www.postgresql.org/about/news/p-2521/
|
||||
* Reverting the "optimized order of GROUP BY keys" feature.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 30 10:43:09 UTC 2022 - Fabian Vogt <fvogt@suse.com>
|
||||
|
||||
- Fix source URLs
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 29 14:02:38 UTC 2022 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Update to 15~rc1
|
||||
https://www.postgresql.org/about/news/p-2516/
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 22 21:26:36 UTC 2022 - Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||
|
||||
- Create mechanism to specify the latest supported LLVM version.
|
||||
Automatically pin to that version if the distribution has a newer
|
||||
unsupported default version.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 12 09:25:30 UTC 2022 - Andreas Schwab <schwab@suse.de>
|
||||
|
||||
- Disable LLVM JIT on riscv64
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 8 13:37:01 UTC 2022 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Update to 15~beta4
|
||||
https://www.postgresql.org/about/news/p-2507/
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 5 09:20:34 UTC 2022 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Update to 15~beta3
|
||||
https://www.postgresql.org/about/news/p-2496/
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 21 20:48:45 UTC 2022 - Marcus Rueckert <mrueckert@suse.de>
|
||||
|
||||
- use %version requires for the contrib package for now as
|
||||
15~beta1 is actually smaller than 15.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 21 15:25:26 UTC 2022 - Marcus Rueckert <mrueckert@suse.de>
|
||||
|
||||
- Add proper conditionals for lz4 and zstd
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 21 15:07:19 UTC 2022 - Marcus Rueckert <mrueckert@suse.de>
|
||||
|
||||
- Upgrade to 15~beta1
|
||||
https://www.postgresql.org/about/news/postgresql-15-beta-1-released-2453/
|
||||
https://www.postgresql.org/docs/15/release-15.html
|
||||
- Refreshed patches to apply cleanly again:
|
||||
0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch
|
||||
postgresql-conf.patch
|
||||
postgresql-llvm-optional.patch
|
||||
postgresql-plperl-keep-rpath.patch
|
||||
postgresql-testsuite-keep-results-file.patch
|
||||
postgresql-var-run-socket.patch
|
||||
- Add buildrequires for lz4 and zstd support
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 21 14:39:42 UTC 2022 - Marcus Rueckert <mrueckert@suse.de>
|
||||
|
||||
- fork package for postgresql 15
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 12 10:33:20 UTC 2022 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Upgrade to 14.3:
|
||||
* bsc#1199475, CVE-2022-1552: Confine additional operations
|
||||
within "security restricted operation" sandboxes.
|
||||
* https://www.postgresql.org/docs/14/release-14-3.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 13 12:17:48 UTC 2022 - Reinhard Max <max@suse.com>
|
||||
|
||||
- bsc#1198166: Pin to llvm13 until the next patchlevel update.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 8 14:01:56 UTC 2022 - Reinhard Max <max@suse.com>
|
||||
|
||||
- bsc#1195680: Upgrade to 14.2:
|
||||
* https://www.postgresql.org/docs/14/release-14-2.html
|
||||
* Reindexing might be needed after applying this upgrade, so
|
||||
please read the release notes carefully.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 11 17:27:53 UTC 2021 - Sarah Kriesch <ada.lovelace@gmx.de>
|
||||
|
||||
- boo#1190740: Add constraints file with 12GB of memory for s390x
|
||||
as a workaround
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 25 11:02:15 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Add a llvmjit-devel subpackage to pull in the right versions
|
||||
of clang and llvm for building extensions.
|
||||
- Fix some mistakes in the interdependencies between the
|
||||
implementation packages and their noarch counterpart.
|
||||
- Update the BuildIgnore section.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 10 16:56:57 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- bsc#1192516: Upgrade to 14.1
|
||||
* Make the server reject extraneous data after an SSL or GSS
|
||||
encryption handshake (CVE-2021-23214).
|
||||
* Make libpq reject extraneous data after an SSL or GSS
|
||||
encryption handshake (CVE-2021-23222).
|
||||
* https://www.postgresql.org/docs/14/release-14-1.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 20 15:21:53 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- boo#1191782: Let rpmlint ignore shlib-policy-name-error.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 5 11:34:50 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Remove postgresql-testsuite-int8.sql.patch, because its purpose
|
||||
is unclear. This affects only the test subpackage.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 30 17:28:37 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
||||
|
||||
- Upgrade to 14.0
|
||||
https://www.postgresql.org/about/news/postgresql-14-released-2318/
|
||||
https://www.postgresql.org/docs/14/release-14.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 27 14:04:01 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Let genlists skip non-existing binaries to avoid lots of version
|
||||
conditionals in the file lists.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 25 00:34:52 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
||||
|
||||
- Upgrade to 14~rc1
|
||||
https://www.postgresql.org/about/news/postgresql-14-rc-1-released-2309/
|
||||
https://www.postgresql.org/docs/14/release-14.html
|
||||
https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 25 01:45:20 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
||||
|
||||
- Upgrade to 14~beta2
|
||||
https://www.postgresql.org/about/news/postgresql-14-beta-2-released-2249/
|
||||
https://www.postgresql.org/docs/14/release-14.html
|
||||
https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 21 22:48:32 UTC 2021 - Marcus Rueckert <mrueckert@suse.de>
|
||||
|
||||
- Upgrade to 14~beta1
|
||||
https://www.postgresql.org/about/news/postgresql-14-beta-1-released-2213/
|
||||
https://www.postgresql.org/docs/14/release-14.html
|
||||
https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items
|
||||
- disable postgresql-testsuite-int8.sql.patch:
|
||||
it seems it is not needed anymore, need to be double checked.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 19 15:24:24 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- bsc#1185952: llvm12 breaks PostgreSQL 11 and 12 on s390x.
|
||||
Use llvm11 as a workaround.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 11 13:50:14 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Upgrade to version 13.3:
|
||||
* https://www.postgresql.org/docs/13/release-13-3.html
|
||||
* CVE-2021-32027, bsc#1185924:
|
||||
Prevent integer overflows in array subscripting calculations.
|
||||
* CVE-2021-32028, bsc#1185925: Fix mishandling of “junk”
|
||||
columns in INSERT ... ON CONFLICT ... UPDATE target lists.
|
||||
* CVE-2021-32029, bsc#1185926: Fix possibly-incorrect
|
||||
computation of UPDATE ... RETURNING
|
||||
"pg_psql_temporary_savepoint" does not exist”.
|
||||
|
||||
- Don't use %_stop_on_removal, because it was meant to be private
|
||||
and got removed from openSUSE. %_restart_on_update is also
|
||||
private, but still supported and needed for now (bsc#1183168).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 15 19:29:39 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Re-enable build of the llvmjit subpackage on SLE, but it will
|
||||
only be delivered on PackageHub for now (boo#1183118).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 9 13:52:19 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Remove leftover PreReq on chkconfig, we stopped using it long
|
||||
time ago.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 19 15:30:08 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- boo#1179945: Disable icu for PostgreSQL 10 (and older) on TW.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 10 13:16:32 UTC 2021 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Upgrade to version 13.2:
|
||||
* https://www.postgresql.org/docs/13/release-13-2.html
|
||||
* Updating stored views and reindexing might be needed after
|
||||
applying this update.
|
||||
* CVE-2021-3393, bsc#1182040: Fix information leakage in
|
||||
constraint-violation error messages.
|
||||
* CVE-2021-20229, bsc#1182039: Fix failure to check per-column
|
||||
SELECT privileges in some join queries.
|
||||
* Obsoletes postgresql-icu68.patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 14 16:19:05 UTC 2020 - Callum Farmer <gmbr3@opensuse.org>
|
||||
|
||||
- Add postgresql-icu68.patch: fix build with ICU 68
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 20 11:51:37 UTC 2020 - Reinhard Max <max@suse.com>
|
||||
|
||||
- bsc#1178961: %ghost the symlinks to pg_config and ecpg.
|
||||
- boo#1179765: BuildRequire libpq5 and libecpg6 when not building
|
||||
them to avoid dangling symlinks in the devel package.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 11 11:36:01 UTC 2020 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Upgrade to version 13.1:
|
||||
* CVE-2020-25695, bsc#1178666: Block DECLARE CURSOR ... WITH HOLD
|
||||
and firing of deferred triggers within index expressions and
|
||||
materialized view queries.
|
||||
* CVE-2020-25694, bsc#1178667:
|
||||
a) Fix usage of complex connection-string parameters in pg_dump,
|
||||
pg_restore, clusterdb, reindexdb, and vacuumdb.
|
||||
b) When psql's \connect command re-uses connection parameters,
|
||||
ensure that all non-overridden parameters from a previous
|
||||
connection string are re-used.
|
||||
* CVE-2020-25696, bsc#1178668: Prevent psql's \gset command from
|
||||
modifying specially-treated variables.
|
||||
* Fix recently-added timetz test case so it works when the USA
|
||||
is not observing daylight savings time.
|
||||
(obsoletes postgresql-timetz.patch)
|
||||
* https://www.postgresql.org/about/news/2111/
|
||||
* https://www.postgresql.org/docs/13/release-13-1.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 3 13:54:38 UTC 2020 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Fix a DST problem in the test suite: postgresql-timetz.patch
|
||||
https://postgr.es/m/16689-57701daa23b377bf@postgresql.org
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 25 06:57:55 UTC 2020 - Reinhard Max <max@suse.com>
|
||||
|
||||
- Initial packaging of PostgreSQL 13:
|
||||
* https://www.postgresql.org/about/news/2077/
|
||||
* https://www.postgresql.org/docs/13/release-13.html
|
998
postgresql15.spec
Normal file
998
postgresql15.spec
Normal file
@ -0,0 +1,998 @@
|
||||
#
|
||||
# spec file for package postgresql15
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define pgversion 15.10
|
||||
%define pgmajor 15
|
||||
%define buildlibs 0
|
||||
%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
|
||||
%define libpq libpq5
|
||||
%define libecpg libecpg6
|
||||
%define libpq_so libpq.so.5
|
||||
%define libecpg_so libecpg.so.6
|
||||
%define pgbasedir %_prefix/lib/%pgname
|
||||
%define pgtestdir %pgbasedir/test
|
||||
%define pgbindir %pgbasedir/bin
|
||||
%define pglibdir %pgbasedir/%_lib
|
||||
%define pgincludedir %_includedir/pgsql
|
||||
%define pgdatadir %_datadir/%pgname
|
||||
%define pgdocdir %_docdir/%pgname
|
||||
%define pgextensiondir %pgdatadir/extension
|
||||
%define pgcontribdir %pgdatadir/contrib
|
||||
%define pgmandir %_mandir
|
||||
|
||||
%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")
|
||||
|
||||
%if "@BUILD_FLAVOR@" == "mini"
|
||||
%define devel devel-mini
|
||||
%define mini 1
|
||||
Name: %pgname-mini
|
||||
%else
|
||||
%define devel devel
|
||||
%define mini 0
|
||||
Name: %pgname
|
||||
%endif
|
||||
|
||||
# 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
|
||||
%else
|
||||
%bcond_without derived
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version} >= 1500
|
||||
%bcond_without liblz4
|
||||
%endif
|
||||
|
||||
%if 0%{?sle_version} >= 150100 || 0%{?suse_version} >= 1550
|
||||
%bcond_without libzstd
|
||||
%endif
|
||||
|
||||
%if %{without derived}
|
||||
BuildRequires: bison
|
||||
BuildRequires: docbook-xsl-stylesheets
|
||||
BuildRequires: flex
|
||||
BuildRequires: perl
|
||||
%endif
|
||||
%if %mini
|
||||
%bcond_with selinux
|
||||
%if %pgmajor >= 16
|
||||
%bcond_without icu
|
||||
%else
|
||||
%bcond_with icu
|
||||
%endif
|
||||
%else
|
||||
BuildRequires: %{python}-devel
|
||||
BuildRequires: docbook_4
|
||||
BuildRequires: gettext-devel
|
||||
BuildRequires: libuuid-devel
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: tcl-devel
|
||||
BuildRequires: timezone
|
||||
BuildRequires: zlib-devel
|
||||
%if %{with liblz4}
|
||||
BuildRequires: pkgconfig(liblz4)
|
||||
%endif
|
||||
|
||||
%if %{with libzstd}
|
||||
BuildRequires: pkgconfig(libzstd)
|
||||
%endif
|
||||
|
||||
%bcond_without selinux
|
||||
%bcond_without icu
|
||||
%if !%buildlibs
|
||||
BuildRequires: %libecpg
|
||||
BuildRequires: %libpq
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version} >= 1500 && %pgmajor >= 11
|
||||
%ifarch riscv64
|
||||
%bcond_with llvm
|
||||
%else
|
||||
%bcond_without llvm
|
||||
%endif
|
||||
%else
|
||||
%bcond_with llvm
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%ifnarch %arm
|
||||
%bcond_without check
|
||||
%else
|
||||
%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
|
||||
%endif
|
||||
%if %{with selinux}
|
||||
BuildRequires: libselinux-devel
|
||||
%endif
|
||||
%if %{with llvm}
|
||||
BuildRequires: gcc-c++
|
||||
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: openldap2-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: pkg-config
|
||||
BuildRequires: pkgconfig(krb5)
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
#!BuildIgnore: %pgname
|
||||
#!BuildIgnore: %pgname-server
|
||||
#!BuildIgnore: %pgname-devel
|
||||
#!BuildIgnore: %pgname-server-devel
|
||||
#!BuildIgnore: %pgname-llvmjit
|
||||
#!BuildIgnore: %pgname-llvmjit-devel
|
||||
#!BuildIgnore: %pgname-contrib
|
||||
#!BuildIgnore: %pgname-docs
|
||||
#!BuildIgnore: %pgname-test
|
||||
#!BuildIgnore: %pgname-pltcl
|
||||
#!BuildIgnore: %pgname-plperl
|
||||
#!BuildIgnore: %pgname-plpython
|
||||
#!BuildIgnore: postgresql-implementation
|
||||
#!BuildIgnore: postgresql-server-implementation
|
||||
#!BuildIgnore: postgresql-server-devel-implementation
|
||||
#!BuildIgnore: postgresql-llvmjit-devel-implementation
|
||||
Summary: Basic Clients and Utilities for PostgreSQL
|
||||
License: PostgreSQL
|
||||
Group: Productivity/Databases/Tools
|
||||
Version: %pgversion
|
||||
Release: 0
|
||||
Source0: https://ftp.postgresql.org/pub/source/v%{tarversion}/postgresql-%{tarversion}.tar.bz2
|
||||
Source1: https://ftp.postgresql.org/pub/source/v%{tarversion}/postgresql-%{tarversion}.tar.bz2.sha256
|
||||
Source2: baselibs.conf
|
||||
Source17: postgresql-rpmlintrc
|
||||
Patch1: postgresql-conf.patch
|
||||
# PL/Perl needs to be linked with rpath (bsc#578053)
|
||||
Patch4: postgresql-plperl-keep-rpath.patch
|
||||
Patch8: postgresql-testsuite-keep-results-file.patch
|
||||
Patch9: postgresql-var-run-socket.patch
|
||||
%if %{with llvm}
|
||||
Patch10: postgresql-llvm-optional.patch
|
||||
Patch11: 0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch
|
||||
%endif
|
||||
URL: https://www.postgresql.org/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Provides: postgresql = %version-%release
|
||||
Provides: postgresql-implementation = %version-%release
|
||||
Requires: %libpq >= %version
|
||||
Requires(post): postgresql-noarch >= %pgmajor
|
||||
Requires(postun): postgresql-noarch >= %pgmajor
|
||||
# At this point we changed the package layout on SLE and conflict with
|
||||
# older releases to get a clean cut.
|
||||
Conflicts: postgresql-noarch < 12.0.1
|
||||
|
||||
%description
|
||||
PostgreSQL is an advanced object-relational database management system
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, subqueries, triggers, and user-defined
|
||||
types and functions.
|
||||
|
||||
This package contains the basic utility and client programs necessary
|
||||
to maintain and work with local or remote PostgreSQL databases as well
|
||||
as manual pages for the SQL commands that PostgreSQL supports. Full
|
||||
HTML documentation for PostgreSQL can be found in the postgresql-docs
|
||||
package.
|
||||
|
||||
%package -n %libpq
|
||||
Summary: Shared Libraries Required for PostgreSQL Clients
|
||||
Group: Productivity/Databases/Clients
|
||||
Provides: postgresql-libs:%_libdir/libpq.so.5
|
||||
Obsoletes: postgresql-libs < %version
|
||||
# bug437293
|
||||
%if "%_lib" == "lib64"
|
||||
Conflicts: %libpq-32bit < %version
|
||||
%endif
|
||||
%ifarch ia64
|
||||
Conflicts: %libpq-x86 < %version
|
||||
%endif
|
||||
%ifarch ppc64
|
||||
Obsoletes: postgresql-libs-64bit
|
||||
%endif
|
||||
|
||||
%description -n %libpq
|
||||
|
||||
PostgreSQL is an advanced object-relational database management system
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, subqueries, triggers, user-defined types
|
||||
and functions.
|
||||
|
||||
This package provides the client library that most PostgreSQL client
|
||||
program or language bindings are using.
|
||||
|
||||
%package -n %libecpg
|
||||
|
||||
Summary: Shared Libraries Required for PostgreSQL Clients
|
||||
Group: Productivity/Databases/Clients
|
||||
Provides: postgresql-libs:%_libdir/libecpg.so.6
|
||||
|
||||
%description -n %libecpg
|
||||
PostgreSQL is an advanced object-relational database management system
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, subqueries, triggers, user-defined types
|
||||
and functions.
|
||||
|
||||
This package provides the runtime library of the embedded SQL C
|
||||
preprocessor for PostgreSQL.
|
||||
|
||||
%package -n %pgname-%devel
|
||||
Summary: PostgreSQL client development header files and libraries
|
||||
Group: Development/Libraries/C and C++
|
||||
Provides: postgresql-devel = %version-%release
|
||||
Provides: postgresql-devel-implementation = %version-%release
|
||||
%if %mini
|
||||
Requires: this-is-only-for-build-envs
|
||||
Provides: %libecpg = %version-%release
|
||||
Provides: %libpq = %version-%release
|
||||
Provides: %pgname-devel = %version-%release
|
||||
Conflicts: %libecpg
|
||||
Conflicts: %libpq
|
||||
Conflicts: %pgname-devel
|
||||
%else
|
||||
Requires: %libecpg >= %version
|
||||
Requires: %libpq >= %version
|
||||
Requires: postgresql-devel-noarch >= %pgmajor
|
||||
%endif
|
||||
# Installation of postgresql??-devel is exclusive
|
||||
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
|
||||
Requires(postun): postgresql-server-devel-noarch >= %pgmajor
|
||||
Requires: %pgname-devel = %version
|
||||
Requires: %pgname-server = %version-%release
|
||||
# Installation of postgresql??-devel is exclusive
|
||||
Provides: postgresql-server-devel-exclusive = %pgmajor
|
||||
Conflicts: postgresql-server-devel-exclusive < %pgmajor
|
||||
Requires: libxslt-devel
|
||||
Requires: openssl-devel
|
||||
Requires: pam-devel
|
||||
Requires: readline-devel
|
||||
Requires: zlib-devel
|
||||
Requires: pkgconfig(krb5)
|
||||
%if %{with selinux}
|
||||
Requires: libselinux-devel
|
||||
%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
|
||||
transactions, foreign keys, subqueries, triggers, and user-defined
|
||||
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
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, subqueries, triggers, and user-defined
|
||||
types and functions.
|
||||
|
||||
This package contains the header files and libraries needed to compile
|
||||
C applications which will directly interact with a PostgreSQL database
|
||||
management server and the ECPG Embedded C Postgres preprocessor. You
|
||||
need to install this package if you want to develop applications in C
|
||||
which will interact with a PostgreSQL server.
|
||||
|
||||
For building PostgreSQL server extensions, see the
|
||||
postgresql%pgmajor-server-devel package.
|
||||
|
||||
%package server
|
||||
Summary: The Programs Needed to Create and Run a PostgreSQL Server
|
||||
Group: Productivity/Databases/Servers
|
||||
PreReq: postgresql = %version
|
||||
Requires: glibc-locale
|
||||
Requires: timezone
|
||||
%if %{with llvm}
|
||||
Recommends: %{name}-llvmjit
|
||||
%endif
|
||||
Provides: postgresql-server-implementation = %version-%release
|
||||
Requires: %libpq >= %version
|
||||
Requires(pre): postgresql-server-noarch >= %pgmajor
|
||||
Requires(preun): postgresql-server-noarch >= %pgmajor
|
||||
Requires(postun): postgresql-server-noarch >= %pgmajor
|
||||
Requires(post): postgresql-noarch >= %pgmajor
|
||||
Requires(postun): postgresql-noarch >= %pgmajor
|
||||
|
||||
%description server
|
||||
PostgreSQL is an advanced object-relational database management system
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, sub-queries, triggers, and user-defined
|
||||
types and functions.
|
||||
|
||||
This package includes the programs needed to create and run a
|
||||
PostgreSQL server, which will in turn allow you to create and maintain
|
||||
PostgreSQL databases.
|
||||
|
||||
%package llvmjit
|
||||
Summary: Just-in-time compilation support for PostgreSQL
|
||||
Group: Productivity/Databases/Servers
|
||||
Provides: postgresql-llvmjit-implementation = %version-%release
|
||||
Requires: %pgname-server = %version-%release
|
||||
Requires: postgresql-llvmjit-noarch >= %pgmajor
|
||||
|
||||
%description llvmjit
|
||||
PostgreSQL is an advanced object-relational database management system
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, sub-queries, triggers, and user-defined
|
||||
types and functions.
|
||||
|
||||
This package contains support for just-in-time compiling parts of
|
||||
PostgreSQL queries. Using LLVM it compiles e.g. expressions and tuple
|
||||
deforming into native code, with the goal of accelerating analytics
|
||||
queries.
|
||||
|
||||
%package llvmjit-devel
|
||||
Summary: PostgreSQL development files for extensions with LLVM support
|
||||
Group: Development/Libraries/C and C++
|
||||
Provides: postgresql-llvmjit-devel = %version-%release
|
||||
Provides: postgresql-llvmjit-devel-implementation = %version-%release
|
||||
Requires: %pgname-server-devel = %version
|
||||
%if %{with llvm}
|
||||
Requires: %pgname-llvmjit = %version
|
||||
Requires(post): postgresql-llvmjit-devel-noarch >= %pgmajor
|
||||
Requires(postun): postgresql-llvmjit-devel-noarch >= %pgmajor
|
||||
%requires_file %_bindir/llc
|
||||
%requires_file %_bindir/clang
|
||||
%endif
|
||||
|
||||
%description llvmjit-devel
|
||||
PostgreSQL is an advanced object-relational database management system
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, sub-queries, triggers, and user-defined
|
||||
types and functions.
|
||||
|
||||
This package pulls in the right versions of llvm and clang to compile
|
||||
PostgreSQL extensions that support just-in-time compilation with LLVM,
|
||||
if llvm is supported. Otherwise it will just pull the
|
||||
%{pgname}-server-devel package.
|
||||
|
||||
%package test
|
||||
Summary: The test suite for PostgreSQL
|
||||
Group: Productivity/Databases/Servers
|
||||
Provides: postgresql-test-implementation = %version-%release
|
||||
Requires: %pgname-server = %version
|
||||
Requires: postgresql-test-noarch >= %pgmajor
|
||||
|
||||
%description test
|
||||
This package contains the sources and pre-built binaries of various
|
||||
tests for the PostgreSQL database management system, including
|
||||
regression tests and benchmarks.
|
||||
|
||||
%package docs
|
||||
Summary: HTML Documentation for PostgreSQL
|
||||
Group: Productivity/Databases/Tools
|
||||
Provides: postgresql-docs-implementation = %version-%release
|
||||
Requires: postgresql-docs-noarch >= %pgmajor
|
||||
BuildArch: noarch
|
||||
|
||||
%description docs
|
||||
PostgreSQL is an advanced object-relational database management system
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, subqueries, triggers, and user-defined
|
||||
types and functions.
|
||||
|
||||
This package contains the HTML documentation for PostgreSQL. The start
|
||||
page is: file:///usr/share/doc/packages/%pgname/html/index.html .
|
||||
Manual pages for the PostgreSQL SQL statements can be found in the
|
||||
postgresql package.
|
||||
|
||||
%package contrib
|
||||
Summary: Contributed Extensions and Additions to PostgreSQL
|
||||
Group: Productivity/Databases/Tools
|
||||
Provides: postgresql-contrib-implementation = %version-%release
|
||||
Requires: postgresql-contrib-noarch >= %pgmajor
|
||||
Requires(post): %pgname >= %{version}
|
||||
Requires: %pgname >= %{version}
|
||||
PreReq: %pgname-server = %version-%release
|
||||
|
||||
%description contrib
|
||||
PostgreSQL is an advanced object-relational database management system
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, subqueries, triggers, and user-defined
|
||||
types and functions.
|
||||
|
||||
The postgresql-contrib package includes extensions and additions that
|
||||
are distributed along with the PostgreSQL sources, but are not (yet)
|
||||
officially part of the PostgreSQL core.
|
||||
|
||||
Documentation for the modules contained in this package can be found in
|
||||
/usr/share/doc/packages/postgresql/contrib.
|
||||
|
||||
%package plperl
|
||||
Summary: The PL/Tcl, PL/Perl, and PL/Python procedural languages for PostgreSQL
|
||||
Group: Productivity/Databases/Servers
|
||||
Provides: postgresql-plperl-implementation = %version-%release
|
||||
Requires: %pgname-server = %version-%release
|
||||
Requires: perl = %perl_version
|
||||
Requires: postgresql-plperl-noarch >= %pgmajor
|
||||
|
||||
%description plperl
|
||||
This package contains the the PL/Tcl, PL/Perl, and PL/Python procedural
|
||||
languages for the back-end. With these modules one can use Perl,
|
||||
Python, and Tcl to write stored procedures, functions and triggers.
|
||||
|
||||
PostgreSQL also offers the builtin procedural language PL/SQL.
|
||||
|
||||
%package plpython
|
||||
Summary: The PL/Python Procedural Languages for PostgreSQL
|
||||
Group: Productivity/Databases/Servers
|
||||
Provides: postgresql-plpython-implementation = %version-%release
|
||||
Requires: %pgname-server = %version-%release
|
||||
Requires: %python
|
||||
Requires: postgresql-plpython-noarch >= %pgmajor
|
||||
|
||||
%description plpython
|
||||
PostgreSQL is an advanced object-relational database management system
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, subqueries, triggers, and user-defined
|
||||
types and functions.
|
||||
|
||||
This package contains the PL/Python procedural language for PostgreSQL.
|
||||
With this module one can use Python to write stored procedures,
|
||||
functions, and triggers.
|
||||
|
||||
PostgreSQL also offers the built-in procedural language PL/SQL which is
|
||||
included in the postgresql-server package.
|
||||
|
||||
%package pltcl
|
||||
Summary: PL/Tcl Procedural Language for PostgreSQL
|
||||
Group: Productivity/Databases/Tools
|
||||
Provides: postgresql-pltcl-implementation = %version-%release
|
||||
Requires: %pgname-server = %version
|
||||
Requires: postgresql-pltcl-noarch >= %pgmajor
|
||||
Requires: tcl
|
||||
|
||||
%description pltcl
|
||||
PostgreSQL is an advanced object-relational database management system
|
||||
that supports an extended subset of the SQL standard, including
|
||||
transactions, foreign keys, subqueries, triggers, and user-defined
|
||||
types and functions.
|
||||
|
||||
This package contains the PL/Tcl procedural language for PostgreSQL.
|
||||
With thie module one can use Tcl to write stored procedures, functions,
|
||||
and triggers.
|
||||
|
||||
PostgreSQL also offers the built-in procedural language PL/SQL which is
|
||||
included in the postgresql-server package.
|
||||
|
||||
%prep
|
||||
%setup -q -n postgresql-%tarversion
|
||||
# Keep the timestamp of configure, because patching it would otherwise
|
||||
# confuse PostgreSQL's build system
|
||||
touch -r configure tmp
|
||||
%patch -P 1
|
||||
%patch -P 4
|
||||
%patch -P 8
|
||||
%patch -P 9
|
||||
%if %{with llvm}
|
||||
%patch -P 10
|
||||
%patch -P 11
|
||||
%endif
|
||||
touch -r tmp configure
|
||||
rm tmp
|
||||
find src/test/ -name '*.orig' -delete
|
||||
find -name .gitignore -delete
|
||||
|
||||
%build
|
||||
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
||||
export PYTHON=%python
|
||||
%ifarch %arm
|
||||
export USE_ARMV8_CRC32C=0
|
||||
%endif
|
||||
PACKAGE_TARNAME=%pgname %configure \
|
||||
--bindir=%pgbindir \
|
||||
--libdir=%pglibdir \
|
||||
--includedir=%pgincludedir \
|
||||
--datadir=%pgdatadir \
|
||||
--docdir=%pgdocdir \
|
||||
--mandir=%pgmandir \
|
||||
--disable-rpath \
|
||||
--enable-nls \
|
||||
--enable-thread-safety \
|
||||
--enable-integer-datetimes \
|
||||
%if !%mini
|
||||
--with-python \
|
||||
--with-perl \
|
||||
--with-tcl \
|
||||
--with-tclconfig=%_libdir \
|
||||
--with-pam \
|
||||
--with-uuid=e2fs \
|
||||
--with-libxml \
|
||||
--with-libxslt \
|
||||
%if %{with liblz4}
|
||||
--with-lz4 \
|
||||
%endif
|
||||
%if %{with libzstd}
|
||||
--with-zstd \
|
||||
%endif
|
||||
--with-systemd \
|
||||
%if %{with selinux}
|
||||
--with-selinux \
|
||||
%endif
|
||||
%if %{with icu}
|
||||
--with-icu \
|
||||
%endif
|
||||
%if %{with llvm}
|
||||
--with-llvm \
|
||||
%endif
|
||||
%else
|
||||
--without-readline \
|
||||
%endif
|
||||
--with-openssl \
|
||||
--with-ldap \
|
||||
--with-gssapi \
|
||||
--with-krb5 \
|
||||
--with-system-tzdata=/usr/share/zoneinfo
|
||||
%if %mini
|
||||
make -C src/interfaces %{?_smp_mflags} PACKAGE_TARNAME=%pgname
|
||||
%else
|
||||
make %{?_smp_mflags} PACKAGE_TARNAME=%pgname world
|
||||
|
||||
%if %{with check}
|
||||
|
||||
%check
|
||||
#
|
||||
# Run the regression tests.
|
||||
#
|
||||
make check || {
|
||||
for f in src/test/regress/log/* {,src/test/regress/}regression.diffs; do
|
||||
if test -f $f; then
|
||||
cat $f
|
||||
fi
|
||||
done
|
||||
exit 1
|
||||
}
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%install
|
||||
VLANG=%pgmajor
|
||||
%if %mini
|
||||
make DESTDIR=%buildroot PACKAGE_TARNAME=%pgname -C src/include install
|
||||
make DESTDIR=%buildroot PACKAGE_TARNAME=%pgname -C src/interfaces install
|
||||
rm -rf %buildroot%pgincludedir/server
|
||||
rm -rf %buildroot%pgdatadir
|
||||
%else
|
||||
make DESTDIR=%buildroot PACKAGE_TARNAME=%pgname install install-docs
|
||||
%if 0
|
||||
mv %buildroot%pgincludedir/{server,..}
|
||||
make DESTDIR=%buildroot PACKAGE_TARNAME=%pgname -C src/interfaces uninstall
|
||||
rm -rf %buildroot%pgincludedir/*
|
||||
mv %buildroot%pgincludedir{/../server,}
|
||||
%endif
|
||||
|
||||
# {{{ the test package
|
||||
mkdir -p %buildroot%pgtestdir/regress
|
||||
install -sm 0755 contrib/spi/{refint.so,autoinc.so} %buildroot%pgtestdir/regress
|
||||
install -sm 0755 src/test/regress/{pg_regress,regress.so} %buildroot%pgtestdir/regress
|
||||
for i in src/test/regress/{data,expected,input,output,sql}; do
|
||||
test -d $i && cp -r $i %buildroot%pgtestdir/regress/
|
||||
done
|
||||
install -m 0644 src/test/regress/*_schedule %buildroot%pgtestdir/regress
|
||||
# }}}
|
||||
%endif
|
||||
|
||||
# The client libraries go to libdir
|
||||
mkdir -p %buildroot/%_libdir
|
||||
ls %buildroot%pglibdir/lib* |
|
||||
grep -v walreceiver |
|
||||
xargs mv -t %buildroot/%_libdir
|
||||
mv %buildroot%pglibdir/pkgconfig %buildroot%_libdir
|
||||
find %buildroot%_libdir/pkgconfig -type f -exec sed -i 's, -L%pglibdir,,' '{}' +
|
||||
|
||||
# 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
|
||||
#
|
||||
# Install and collect the contrib stuff
|
||||
#
|
||||
touch flag; sleep 1 # otherwise we have installed files that are not newer than flag
|
||||
make DESTDIR=%buildroot -C contrib install
|
||||
find %buildroot -type f -cnewer flag -printf "/%%P\n" |
|
||||
grep -v -e %_docdir -e %pgbindir -e %pgincludedir -e %pglibdir/bitcode \
|
||||
> contrib.files
|
||||
rm flag
|
||||
install -d -m 750 %buildroot/var/lib/pgsql
|
||||
install -d -m 755 %buildroot%pgdocdir
|
||||
cp doc/KNOWN_BUGS doc/MISSING_FEATURES COPYRIGHT \
|
||||
README* HISTORY %buildroot%pgdocdir
|
||||
# Use versioned names for the man pages:
|
||||
for f in %buildroot%pgmandir/man*/*; do
|
||||
mv $f ${f}pg%pgmajor
|
||||
done
|
||||
%endif
|
||||
|
||||
mkdir -p %buildroot{%_bindir,%_mandir/man1}
|
||||
mkdir -p %buildroot/etc/alternatives
|
||||
genlists ()
|
||||
{
|
||||
# usage: genlists packagename basenames
|
||||
PKG=$1
|
||||
shift
|
||||
for f in $@
|
||||
do
|
||||
BIN=%_bindir/$f
|
||||
ALTBIN=/etc/alternatives/$f
|
||||
PGBIN=%pgbindir/$f
|
||||
MAN=%pgmandir/man1/$f.1*
|
||||
|
||||
# Package only binaries that exist in this version
|
||||
test -e %buildroot$PGBIN || continue
|
||||
|
||||
touch %buildroot$ALTBIN
|
||||
ln -s $ALTBIN %buildroot$BIN
|
||||
|
||||
echo "$PGBIN" >> $PKG.files
|
||||
echo "$BIN" >> $PKG.files
|
||||
echo "%ghost $ALTBIN" >> $PKG.files
|
||||
test -e %buildroot$MAN &&
|
||||
echo "%doc $MAN" >> $PKG.files
|
||||
%find_lang $f-$VLANG $PKG.files ||:
|
||||
done
|
||||
}
|
||||
%if !%mini
|
||||
genlists main \
|
||||
createdb \
|
||||
clusterdb \
|
||||
createuser \
|
||||
dropdb \
|
||||
dropuser \
|
||||
pg_dump \
|
||||
pg_dumpall \
|
||||
pg_restore \
|
||||
pg_rewind \
|
||||
psql \
|
||||
vacuumdb \
|
||||
reindexdb \
|
||||
pg_basebackup \
|
||||
pg_isready \
|
||||
pg_recvlogical \
|
||||
createlang \
|
||||
droplang \
|
||||
pg_receivexlog \
|
||||
pg_receivewal \
|
||||
pg_verify_checksums \
|
||||
pg_checksums \
|
||||
pg_combinebackup \
|
||||
pg_verifybackup
|
||||
|
||||
%find_lang plpgsql-$VLANG main.files
|
||||
%find_lang pgscripts-$VLANG main.files
|
||||
|
||||
genlists server \
|
||||
initdb \
|
||||
pg_ctl \
|
||||
pg_controldata \
|
||||
pg_resetwal \
|
||||
pg_createsubscriber \
|
||||
pg_walsummary \
|
||||
pg_waldump \
|
||||
pg_resetxlog \
|
||||
%if %pgmajor >= 15
|
||||
pg_upgrade \
|
||||
%endif
|
||||
postgres \
|
||||
postmaster
|
||||
|
||||
genlists contrib \
|
||||
pg_xlogdump \
|
||||
oid2name \
|
||||
pg_archivecleanup \
|
||||
pg_amcheck \
|
||||
pg_standby \
|
||||
pg_test_fsync \
|
||||
%if %pgmajor < 15
|
||||
pg_upgrade \
|
||||
%endif
|
||||
pgbench \
|
||||
vacuumlo \
|
||||
pg_test_timing
|
||||
for pl in plperl plpython pltcl; do
|
||||
%find_lang $pl-$VLANG $pl.lang
|
||||
done
|
||||
ln -s /etc/alternatives/postgresql %buildroot/usr/lib/postgresql
|
||||
touch %buildroot/etc/alternatives/postgresql
|
||||
|
||||
# Remove mostly unneeded buildtime requirements for server extensions
|
||||
sed -i '/^LIBS = /s/= .*/=/' %buildroot/%pglibdir/pgxs/src/Makefile.global
|
||||
%endif
|
||||
|
||||
# Make sure we can also link agaist newer versions
|
||||
pushd %buildroot%_libdir
|
||||
for f in *.so; do
|
||||
ln -sf $f.? $f
|
||||
done
|
||||
%if 0
|
||||
for long in *.so.*.*; do
|
||||
short=${long%%.*}
|
||||
so=${short%%.*}
|
||||
ln -sf $long $short
|
||||
ln -sf $short $so
|
||||
done
|
||||
%endif
|
||||
popd
|
||||
|
||||
%find_lang ecpg-$VLANG devel.files
|
||||
# The devel subpackage is exclusive across versions
|
||||
# and not handled by update-alternatives.
|
||||
mv %buildroot%pgbindir/ecpg %buildroot%_bindir/ecpg
|
||||
|
||||
%if !%mini
|
||||
%find_lang pg_config-$VLANG server-devel.files
|
||||
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)
|
||||
%if !%mini
|
||||
%dir %pgdatadir
|
||||
%pgdatadir/pg_service.conf.sample
|
||||
%endif
|
||||
EOF
|
||||
find %buildroot -name 'libpq*.so.*' -printf '/%%P\n' >> libpq.files
|
||||
%find_lang libpq5-$VLANG libpq.files
|
||||
|
||||
cat > libecpg.files <<EOF
|
||||
%defattr(-,root,root)
|
||||
EOF
|
||||
find %buildroot \( -name 'libecpg*.so.*' -o -name 'libpgtypes.so.*' \) -printf '/%%P\n' >> libecpg.files
|
||||
%find_lang ecpglib6-$VLANG libecpg.files
|
||||
|
||||
%if !%buildlibs
|
||||
# Delete the contents of the library packages, if we don't want to build them
|
||||
awk -v P=%buildroot '/^(%lang|[^%])/{print P $NF}' libpq.files libecpg.files | xargs rm
|
||||
%endif
|
||||
|
||||
%fdupes %buildroot
|
||||
|
||||
%post -n %pgname-%devel
|
||||
/sbin/ldconfig
|
||||
|
||||
%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
|
||||
|
||||
%postun
|
||||
/usr/share/postgresql/install-alternatives %pgmajor
|
||||
|
||||
%post
|
||||
/usr/share/postgresql/install-alternatives %pgmajor
|
||||
|
||||
%post server
|
||||
/usr/share/postgresql/install-alternatives %pgmajor
|
||||
|
||||
%preun server
|
||||
# Stop only when we are uninstalling the currently running version
|
||||
test -x /usr/bin/systemctl &&
|
||||
MAINPID=$(/usr/bin/systemctl show postgresql.service --property=MainPID --value) ||:
|
||||
if test -n "$MAINPID" && test "$MAINPID" -ne 0; then
|
||||
BIN=$(readlink -n /proc/$MAINPID/exe)
|
||||
DIR=$(dirname ${BIN% *})
|
||||
if test "$DIR" = "%pgbindir" -o "$DIR" = "%_bindir"; then
|
||||
%service_del_preun postgresql.service
|
||||
fi
|
||||
fi
|
||||
|
||||
%postun server
|
||||
/usr/share/postgresql/install-alternatives %pgmajor
|
||||
# Restart only when we are updating the currently running version
|
||||
test -x /usr/bin/systemctl &&
|
||||
MAINPID=$(/usr/bin/systemctl show postgresql.service --property=MainPID --value) ||:
|
||||
if test -n "$MAINPID" && test "$MAINPID" -ne 0; then
|
||||
BIN=$(readlink -n /proc/$MAINPID/exe)
|
||||
DIR=$(dirname ${BIN% *})
|
||||
if test "$DIR" = "%pgbindir" -o "$DIR" = "%_bindir"; then
|
||||
%service_del_postun postgresql.service
|
||||
fi
|
||||
fi
|
||||
|
||||
%post contrib
|
||||
/usr/share/postgresql/install-alternatives %pgmajor
|
||||
|
||||
%postun contrib
|
||||
/usr/share/postgresql/install-alternatives %pgmajor
|
||||
|
||||
%if %buildlibs
|
||||
%post -n %libpq -p /sbin/ldconfig
|
||||
|
||||
%postun -n %libpq -p /sbin/ldconfig
|
||||
|
||||
%post -n %libecpg -p /sbin/ldconfig
|
||||
|
||||
%postun -n %libecpg -p /sbin/ldconfig
|
||||
%endif
|
||||
|
||||
%files -f main.files
|
||||
%defattr(-,root,root)
|
||||
%dir %pgbindir
|
||||
%doc %pgmandir/man7/*
|
||||
%docdir %pgdocdir
|
||||
%dir %pgdocdir
|
||||
%pgdocdir/[[:upper:]]*
|
||||
%dir %pglibdir
|
||||
/usr/lib/postgresql
|
||||
%ghost /etc/alternatives/postgresql
|
||||
|
||||
%files test
|
||||
%defattr(-,root,root,-)
|
||||
%pgtestdir
|
||||
|
||||
%files docs
|
||||
%defattr(-,root,root)
|
||||
%doc %pgmandir/man3/*
|
||||
%docdir %pgdocdir
|
||||
%dir %pgdocdir
|
||||
%pgdocdir/html
|
||||
|
||||
%files contrib -f contrib.files
|
||||
%defattr(-,root,root)
|
||||
%docdir %pgdocdir
|
||||
%dir %pgdocdir
|
||||
%pgdocdir/extension
|
||||
%dir %pgdatadir
|
||||
%dir %pgcontribdir
|
||||
|
||||
%files server -f server.files
|
||||
%defattr(-,root,root)
|
||||
%dir %pgbasedir
|
||||
%dir %pgextensiondir
|
||||
%dir %pglibdir
|
||||
%pglibdir/pgoutput.so
|
||||
%pglibdir/plpgsql.so
|
||||
%pglibdir/dict_snowball.so
|
||||
%pgdatadir/tsearch_data
|
||||
%exclude %pgdatadir/tsearch_data/*.rules
|
||||
%dir %pgdatadir
|
||||
%pgdatadir/timezone*
|
||||
%pgdatadir/*.*
|
||||
%if %buildlibs
|
||||
%exclude %pgdatadir/pg_service.conf.sample
|
||||
%endif
|
||||
%pglibdir/*_and_*.so
|
||||
%pglibdir/euc2004_sjis2004.so
|
||||
%pglibdir/libpqwalreceiver.so
|
||||
%pgextensiondir/plpgsql*
|
||||
%attr(750,postgres,postgres) %dir /var/lib/pgsql
|
||||
|
||||
%if %{with llvm}
|
||||
%dir %pglibdir/bitcode
|
||||
|
||||
%files llvmjit
|
||||
%defattr(-,root,root)
|
||||
%pglibdir/llvm*
|
||||
%pglibdir/bitcode/*
|
||||
%endif
|
||||
|
||||
%files llvmjit-devel
|
||||
%defattr(-,root,root)
|
||||
|
||||
%files pltcl -f pltcl.lang
|
||||
%defattr(-,root,root)
|
||||
%pgextensiondir/pltcl*
|
||||
%pglibdir/pltcl.so
|
||||
|
||||
%files plperl -f plperl.lang
|
||||
%defattr(-,root,root)
|
||||
%pgextensiondir/plperl*
|
||||
%pglibdir/plperl.so
|
||||
|
||||
%files plpython -f plpython.lang
|
||||
%defattr(-,root,root)
|
||||
%pgextensiondir/plpython*
|
||||
%pglibdir/plpython*.so
|
||||
|
||||
%endif
|
||||
|
||||
%if %buildlibs && !%mini
|
||||
%files -n %libpq -f libpq.files
|
||||
|
||||
%files -n %libecpg -f libecpg.files
|
||||
%endif
|
||||
|
||||
%if %buildlibs && %mini
|
||||
%files -n %pgname-%devel -f devel.files -f libpq.files -f libecpg.files
|
||||
%defattr(-,root,root)
|
||||
%else
|
||||
|
||||
%files -n %pgname-%devel -f devel.files
|
||||
%defattr(-,root,root)
|
||||
%endif
|
||||
|
||||
%dir %pgbasedir
|
||||
%dir %pgbindir
|
||||
%_bindir/ecpg
|
||||
%_libdir/pkgconfig/*
|
||||
%_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
|
||||
%pgincludedir/server
|
||||
%pglibdir/pgxs
|
||||
%_libdir/lib*.a
|
||||
%doc %pgmandir/man1/pg_config.1*
|
||||
%endif
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user