Toshaan Bharvani
2 years ago
commit
562a6b4a30
4 changed files with 470 additions and 0 deletions
@ -0,0 +1,72 @@
@@ -0,0 +1,72 @@
|
||||
For the RPMs, we want the custom installation directories to end in |
||||
/pgsql not /postgresql. This is historical but not worth changing. |
||||
|
||||
Notice that this patch also makes the appending of /pgsql unconditional. |
||||
This is to avoid unexpected behavior if the RPM is built in a working |
||||
directory whose path happens to include "postgres" or "pgsql" already. |
||||
However, datadir and sysconfdir are already set up in the specfile's |
||||
configure call, so we do not have to append anything to them. |
||||
|
||||
diff --git a/src/Makefile.global.in b/src/Makefile.global.in |
||||
index 9a6265b3a0..c9371a07c4 100644 |
||||
--- a/src/Makefile.global.in |
||||
+++ b/src/Makefile.global.in |
||||
@@ -82,8 +82,7 @@ vpathsearch = `for f in $(addsuffix /$(1),$(subst :, ,. $(VPATH))); do test -r $ |
||||
# Installation directories |
||||
# |
||||
# These are set by the equivalent --xxxdir configure options. We |
||||
-# append "postgresql" to some of them, if the string does not already |
||||
-# contain "pgsql" or "postgres", in order to avoid directory clutter. |
||||
+# append "pgsql" to some of them, in order to avoid directory clutter. |
||||
# |
||||
# In a PGXS build, we cannot use the values inserted into Makefile.global |
||||
# by configure, since the installation tree may have been relocated. |
||||
@@ -101,45 +100,23 @@ datarootdir := @datarootdir@ |
||||
bindir := @bindir@ |
||||
|
||||
datadir := @datadir@ |
||||
-ifeq "$(findstring pgsql, $(datadir))" "" |
||||
-ifeq "$(findstring postgres, $(datadir))" "" |
||||
-override datadir := $(datadir)/postgresql |
||||
-endif |
||||
-endif |
||||
|
||||
sysconfdir := @sysconfdir@ |
||||
-ifeq "$(findstring pgsql, $(sysconfdir))" "" |
||||
-ifeq "$(findstring postgres, $(sysconfdir))" "" |
||||
-override sysconfdir := $(sysconfdir)/postgresql |
||||
-endif |
||||
-endif |
||||
|
||||
libdir := @libdir@ |
||||
|
||||
pkglibdir = $(libdir) |
||||
-ifeq "$(findstring pgsql, $(pkglibdir))" "" |
||||
-ifeq "$(findstring postgres, $(pkglibdir))" "" |
||||
-override pkglibdir := $(pkglibdir)/postgresql |
||||
-endif |
||||
-endif |
||||
+override pkglibdir := $(pkglibdir)/pgsql |
||||
|
||||
includedir := @includedir@ |
||||
|
||||
pkgincludedir = $(includedir) |
||||
-ifeq "$(findstring pgsql, $(pkgincludedir))" "" |
||||
-ifeq "$(findstring postgres, $(pkgincludedir))" "" |
||||
-override pkgincludedir := $(pkgincludedir)/postgresql |
||||
-endif |
||||
-endif |
||||
+override pkgincludedir := $(pkgincludedir)/pgsql |
||||
|
||||
mandir := @mandir@ |
||||
|
||||
docdir := @docdir@ |
||||
-ifeq "$(findstring pgsql, $(docdir))" "" |
||||
-ifeq "$(findstring postgres, $(docdir))" "" |
||||
-override docdir := $(docdir)/postgresql |
||||
-endif |
||||
-endif |
||||
+override docdir := $(docdir)/pgsql |
||||
|
||||
htmldir := @htmldir@ |
||||
|
@ -0,0 +1,53 @@
@@ -0,0 +1,53 @@
|
||||
Change the built-in default socket directory to be /var/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.) |
||||
|
||||
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c |
||||
index 4dde819652..8c2f601333 100644 |
||||
--- a/src/backend/utils/misc/guc.c |
||||
+++ b/src/backend/utils/misc/guc.c |
||||
@@ -4159,7 +4159,7 @@ static struct config_string ConfigureNamesString[] = |
||||
}, |
||||
&Unix_socket_directories, |
||||
#ifdef HAVE_UNIX_SOCKETS |
||||
- DEFAULT_PGSOCKET_DIR, |
||||
+ DEFAULT_PGSOCKET_DIR ", /tmp", |
||||
#else |
||||
"", |
||||
#endif |
||||
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c |
||||
index 4ff0c6c700..6ccd96b1f2 100644 |
||||
--- a/src/bin/initdb/initdb.c |
||||
+++ b/src/bin/initdb/initdb.c |
||||
@@ -1091,7 +1091,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 |
||||
diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual.h |
||||
index 8f3ec6bde1..066daf3f08 100644 |
||||
--- a/src/include/pg_config_manual.h |
||||
+++ b/src/include/pg_config_manual.h |
||||
@@ -201,7 +201,7 @@ |
||||
* support them yet. |
||||
*/ |
||||
#ifndef WIN32 |
||||
-#define DEFAULT_PGSOCKET_DIR "/tmp" |
||||
+#define DEFAULT_PGSOCKET_DIR "/var/run/postgresql" |
||||
#else |
||||
#define DEFAULT_PGSOCKET_DIR "" |
||||
#endif |
@ -0,0 +1,106 @@
@@ -0,0 +1,106 @@
|
||||
commit 75040c3388d9a7dd5ad2bee53cbcc8bf3d35cd17 |
||||
Author: Honza Horak <hhorak@redhat.com> |
||||
Date: Fri Oct 30 20:16:50 2020 +0100 |
||||
|
||||
The libpq package is supposed to be used for all the PostgreSQL modules |
||||
available in RHEL 8, and ABI versioning will guarantee us that modular RPMs will |
||||
depend on appropriate libpq ABI version (picked at build-time). |
||||
|
||||
diff --git a/config/Makefile b/config/Makefile |
||||
index 67e7998..86612a4 100644 |
||||
--- a/config/Makefile |
||||
+++ b/config/Makefile |
||||
@@ -8,6 +8,7 @@ include $(top_builddir)/src/Makefile.global |
||||
install: all installdirs |
||||
$(INSTALL_SCRIPT) $(srcdir)/install-sh '$(DESTDIR)$(pgxsdir)/config/install-sh' |
||||
$(INSTALL_SCRIPT) $(srcdir)/missing '$(DESTDIR)$(pgxsdir)/config/missing' |
||||
+ $(INSTALL_SCRIPT) $(srcdir)/build-exports-gnu-ld '$(DESTDIR)$(pgxsdir)/config/build-exports-gnu-ld' |
||||
|
||||
installdirs: |
||||
$(MKDIR_P) '$(DESTDIR)$(pgxsdir)/config' |
||||
diff --git a/config/build-exports-gnu-ld b/config/build-exports-gnu-ld |
||||
new file mode 100755 |
||||
index 0000000000..84c48e3ade |
||||
--- /dev/null |
||||
+++ b/config/build-exports-gnu-ld |
||||
@@ -0,0 +1,41 @@ |
||||
+#! /bin/sh |
||||
+ |
||||
+# by default use PG_ prefix |
||||
+: "${SYMBOL_VERSION_PREFIX=PG_}" |
||||
+ |
||||
+# we started symbol versioning since v10 |
||||
+: "${SYMBOL_VERSION_START=9.6}" |
||||
+ |
||||
+version=$SYMBOL_VERSION_START |
||||
+version_prev= |
||||
+first=: |
||||
+ |
||||
+open_block () |
||||
+{ |
||||
+ $first || echo |
||||
+ first=false |
||||
+ echo "${SYMBOL_VERSION_PREFIX}$version {" |
||||
+ echo "global:" |
||||
+} |
||||
+ |
||||
+close_block () |
||||
+{ |
||||
+ echo "}${version_prev:+ $SYMBOL_VERSION_PREFIX$version_prev};" |
||||
+ version_prev=$version |
||||
+ version=$1 |
||||
+} |
||||
+ |
||||
+open_block |
||||
+while read -r symbol _ new_version |
||||
+do |
||||
+ case $symbol in '#'*) continue ;; esac |
||||
+ if test -n "$new_version" && test "$new_version" != "$version"; then |
||||
+ close_block "$new_version" |
||||
+ open_block |
||||
+ fi |
||||
+ echo " $symbol;" |
||||
+done |
||||
+ |
||||
+echo "local:" |
||||
+echo " *;" |
||||
+close_block |
||||
diff --git a/src/Makefile.shlib b/src/Makefile.shlib |
||||
index 373d73caef..d5bd5468cd 100644 |
||||
--- a/src/Makefile.shlib |
||||
+++ b/src/Makefile.shlib |
||||
@@ -231,7 +231,7 @@ ifeq ($(PORTNAME), linux) |
||||
ifdef soname |
||||
LINK.shared += -Wl,-soname,$(soname) |
||||
endif |
||||
- BUILD.exports = ( echo '{ global:'; $(AWK) '/^[^\#]/ {printf "%s;\n",$$1}' $<; echo ' local: *; };' ) >$@ |
||||
+ BUILD.exports = $(SHELL) $(top_srcdir)/config/build-exports-gnu-ld < $< > $@ |
||||
exports_file = $(SHLIB_EXPORTS:%.txt=%.list) |
||||
ifneq (,$(exports_file)) |
||||
LINK.shared += -Wl,--version-script=$(exports_file) |
||||
diff -ur postgresql-15.0_original/src/interfaces/libpq/exports.txt postgresql-15.0/src/interfaces/libpq/exports.txt |
||||
--- postgresql-15.0_original/src/interfaces/libpq/exports.txt 2022-10-10 22:57:37.000000000 +0200 |
||||
+++ postgresql-15.0/src/interfaces/libpq/exports.txt 2022-10-19 15:07:19.733908438 +0200 |
||||
@@ -171,16 +171,16 @@ |
||||
PQsslAttribute 169 |
||||
PQsetErrorContextVisibility 170 |
||||
PQresultVerboseErrorMessage 171 |
||||
-PQencryptPasswordConn 172 |
||||
-PQresultMemorySize 173 |
||||
+PQencryptPasswordConn 172 10 |
||||
+PQresultMemorySize 173 12 |
||||
PQhostaddr 174 |
||||
PQgssEncInUse 175 |
||||
PQgetgssctx 176 |
||||
-PQsetSSLKeyPassHook_OpenSSL 177 |
||||
+PQsetSSLKeyPassHook_OpenSSL 177 13 |
||||
PQgetSSLKeyPassHook_OpenSSL 178 |
||||
PQdefaultSSLKeyPassHook_OpenSSL 179 |
||||
-PQenterPipelineMode 180 |
||||
-PQexitPipelineMode 181 |
||||
+PQenterPipelineMode 180 14 |
||||
+PQexitPipelineMode 181 15 |
||||
PQpipelineSync 182 |
||||
PQpipelineStatus 183 |
||||
PQsetTraceFlags 184 |
||||
|
@ -0,0 +1,239 @@
@@ -0,0 +1,239 @@
|
||||
%global majorversion 15 |
||||
%global obsoletes_version %( echo $(( %majorversion + 1 )) ) |
||||
|
||||
Summary: PostgreSQL client library |
||||
Name: libpq |
||||
Version: %{majorversion}.0 |
||||
Release: 1%{?dist} |
||||
|
||||
License: PostgreSQL |
||||
Url: http://www.postgresql.org/ |
||||
|
||||
Source0: https://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2 |
||||
Source1: https://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2.sha256 |
||||
|
||||
|
||||
# Comments for these patches are in the patch files. |
||||
Patch1: libpq-10.3-rpm-pgsql.patch |
||||
Patch2: libpq-10.3-var-run-socket.patch |
||||
Patch3: libpq-12.1-symbol-versioning.patch |
||||
|
||||
BuildRequires: gcc |
||||
BuildRequires: glibc-devel bison flex gawk |
||||
BuildRequires: zlib-devel |
||||
BuildRequires: openssl-devel |
||||
BuildRequires: krb5-devel |
||||
BuildRequires: openldap-devel |
||||
BuildRequires: gettext |
||||
BuildRequires: multilib-rpm-config |
||||
BuildRequires: make |
||||
|
||||
Obsoletes: postgresql-libs < %obsoletes_version |
||||
Provides: postgresql-libs = %version-%release |
||||
|
||||
|
||||
%description |
||||
The libpq package provides the essential shared library for any PostgreSQL |
||||
client program or interface. You will need to install this package to use any |
||||
other PostgreSQL package or any clients that need to connect to a PostgreSQL |
||||
server. |
||||
|
||||
|
||||
%package devel |
||||
Summary: Development files for building PostgreSQL client tools |
||||
Requires: %name%{?_isa} = %version-%release |
||||
# Historically we had 'postgresql-devel' package which was used for building |
||||
# both PG clients and PG server modules; let's have this fake provide to cover |
||||
# most of the depending packages and the rest (those which want to build server |
||||
# modules) need to be fixed to require postgresql-server-devel package. |
||||
Provides: postgresql-devel = %version-%release |
||||
Obsoletes: postgresql-devel < %obsoletes_version |
||||
|
||||
%description devel |
||||
The libpq package provides the essential shared library for any PostgreSQL |
||||
client program or interface. You will need to install this package to build any |
||||
package or any clients that need to connect to a PostgreSQL server. |
||||
|
||||
|
||||
%prep |
||||
( cd "$(dirname "%SOURCE1")" ; sha256sum -c "%SOURCE1" ) |
||||
%autosetup -n postgresql-%version -p1 |
||||
|
||||
# remove .gitignore files to ensure none get into the RPMs (bug #642210) |
||||
find . -type f -name .gitignore | xargs rm |
||||
|
||||
|
||||
%build |
||||
# complements symbol-versioning patch |
||||
export SYMBOL_VERSION_PREFIX=RHPG_ |
||||
|
||||
# We don't build server nor client (e.g. /bin/psql) binaries in this package, so |
||||
# we can disable some configure options. |
||||
%configure \ |
||||
--disable-rpath \ |
||||
--with-ldap \ |
||||
--with-openssl \ |
||||
--with-gssapi \ |
||||
--enable-nls \ |
||||
--without-readline \ |
||||
--datadir=%_datadir/pgsql |
||||
|
||||
%global build_subdirs \\\ |
||||
src/include \\\ |
||||
src/common \\\ |
||||
src/port \\\ |
||||
src/interfaces/libpq \\\ |
||||
src/bin/pg_config |
||||
|
||||
for subdir in %build_subdirs; do |
||||
%make_build -C "$subdir" |
||||
done |
||||
|
||||
|
||||
%install |
||||
for subdir in %build_subdirs; do |
||||
%make_install -C "$subdir" |
||||
done |
||||
|
||||
# remove files not to be packaged |
||||
find $RPM_BUILD_ROOT -name '*.a' -delete |
||||
rm -r $RPM_BUILD_ROOT%_includedir/pgsql/server |
||||
|
||||
%multilib_fix_c_header --file "%_includedir/pg_config.h" |
||||
%multilib_fix_c_header --file "%_includedir/pg_config_ext.h" |
||||
|
||||
find_lang_bins () |
||||
{ |
||||
lstfile=$1 ; shift |
||||
cp /dev/null "$lstfile" |
||||
for binary; do |
||||
%find_lang "$binary"-%majorversion |
||||
cat "$binary"-%majorversion.lang >>"$lstfile" |
||||
done |
||||
} |
||||
|
||||
find_lang_bins %name.lst libpq5 |
||||
find_lang_bins %name-devel.lst pg_config |
||||
|
||||
|
||||
%files -f %name.lst |
||||
%license COPYRIGHT |
||||
%_libdir/libpq.so.5* |
||||
%dir %_datadir/pgsql |
||||
%doc %_datadir/pgsql/pg_service.conf.sample |
||||
|
||||
|
||||
%files devel -f %name-devel.lst |
||||
%_bindir/pg_config |
||||
%_includedir/* |
||||
%_libdir/libpq.so |
||||
%_libdir/pkgconfig/libpq.pc |
||||
|
||||
%changelog |
||||
* Tue Sep 27 2022 Ondrej Sloup <osloup@redhat.com> - 15.1-1 |
||||
- Update to v15 |
||||
- Update patches |
||||
- Resolves: https://fedoraproject.org/wiki/Changes/PostgreSQL_15 |
||||
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 14.3-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild |
||||
|
||||
* Tue Jun 14 2022 Filip Januš <fjanus@redhat.com> - 14.3-1 |
||||
- Update to 14.3 |
||||
|
||||
* Tue Feb 22 2022 Filip Januš <fjanus@redhat.com> - 14.2-1 |
||||
- Update to 14.2 |
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 14.1-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild |
||||
|
||||
* Mon Jan 03 2022 Filip Januš <fjanus@redhat.com> - 14.1-1 |
||||
- Update to v14 |
||||
- Resolves: https://fedoraproject.org/wiki/Changes/PostgreSQL_14 |
||||
|
||||
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 13.4-2 |
||||
- Rebuilt with OpenSSL 3.0.0 |
||||
|
||||
* Thu Aug 12 2021 Filip Januš <fjanus@rehdat.com> - 13.4-1 |
||||
- Update to 13.4 |
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 13.3-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild |
||||
|
||||
* Mon May 17 2021 Filip Januš <fjanus@redhat.com> - 13.3-1 |
||||
- Update to 13.3 |
||||
|
||||
* Tue Feb 16 2021 Honza Horak <hhorak@redhat.com> - 13.2-1 |
||||
- Update to 13.2 |
||||
|
||||
* Mon Feb 08 2021 Patrik Novotný <panovotn@redhat.com> - 13.1-3 |
||||
- Fix symbol versioning |
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 13.1-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild |
||||
|
||||
* Mon Nov 16 2020 Patrik Novotný <panovotn@redhat.com> - 13.1-1 |
||||
- Rebase to upstream release 13.1 |
||||
|
||||
* Mon Nov 02 2020 Patrik Novotný <panovotn@redhat.com> - 13.0-2 |
||||
- Rebuild for symbol versioning fix |
||||
|
||||
* Wed Oct 14 2020 Patrik Novotný <panovotn@redhat.com> - 13.0-1 |
||||
- Rebase to upstream release 13.0 |
||||
|
||||
* Tue Aug 18 2020 Patrik Novotný <panovotn@redhat.com> - 12.4-1 |
||||
- Rebase to upstream release 12.4 |
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 12.3-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild |
||||
|
||||
* Mon May 18 2020 Patrik Novotný <panovotn@redhat.com> - 12.3-1 |
||||
- Rebase to upstream release 12.3 |
||||
|
||||
* Mon Feb 17 2020 Patrik Novotný <panovotn@redhat.com> - 12.2-1 |
||||
- Rebase to upstream release 12.2 |
||||
|
||||
* Tue Feb 04 2020 Patrik Novotný <panovotn@redhat.com> - 12.1-1 |
||||
- Rebase to upstream release 12.1 |
||||
|
||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 11.6-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild |
||||
|
||||
* Mon Nov 25 2019 Patrik Novotný <panovotn@redhat.com> - 11.6-1 |
||||
- Rebase to upstream version 11.6 |
||||
|
||||
* Wed Aug 07 2019 Petr Kubat <pkubat@redhat.com> - 11.5-1 |
||||
- New upstream version 11.5 |
||||
|
||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 11.4-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild |
||||
|
||||
* Tue Jul 09 2019 Petr Kubat <pkubat@redhat.com> - 11.4-1 |
||||
- New upstream version 11.4 |
||||
|
||||
* Fri May 10 2019 Pavel Raiskup <praiskup@redhat.com> - 11.3-2 |
||||
- obsolete anything < %%majorversion+1 |
||||
|
||||
* Thu May 09 2019 Patrik Novotný <panovotn@redhat.com> - 11.3-1 |
||||
- New upstream version 11.3 |
||||
|
||||
* Mon Feb 18 2019 Pavel Raiskup <praiskup@redhat.com> - 11.2-2 |
||||
- fix dnf system-upgrade from f29 to f29+, rhbz#1677849 |
||||
|
||||
* Thu Feb 14 2019 Pavel Raiskup <praiskup@redhat.com> - 11.2-1 |
||||
- latest upstream release, per release notes: |
||||
https://www.postgresql.org/docs/11/static/release-11-1.html |
||||
https://www.postgresql.org/docs/11/static/release-11-2.html |
||||
|
||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 11.0-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild |
||||
|
||||
* Tue Oct 16 2018 Pavel Raiskup <praiskup@redhat.com> - 11.0-1 |
||||
- latest upstream release, per release notes: |
||||
https://www.postgresql.org/docs/11/static/release-11-0.html |
||||
|
||||
* Tue Sep 04 2018 Pavel Raiskup <praiskup@redhat.com> - 10.5-4 |
||||
- fix provides/obsoletes to final state |
||||
|
||||
* Thu Aug 30 2018 Pavel Raiskup <praiskup@redhat.com> - 10.5-1 |
||||
- libpq packaging for Fedora |
Loading…
Reference in new issue