diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..36b672f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/postgresql-13.5.tar.bz2 diff --git a/.libecpg.metadata b/.libecpg.metadata new file mode 100644 index 0000000..e3a72b0 --- /dev/null +++ b/.libecpg.metadata @@ -0,0 +1 @@ +9321e2b01d1ffb15adae06945cb2c5f9dd671bc9 SOURCES/postgresql-13.5.tar.bz2 diff --git a/SOURCES/libecpg-10.5-no-compat-lib.patch b/SOURCES/libecpg-10.5-no-compat-lib.patch new file mode 100644 index 0000000..d1d64e0 --- /dev/null +++ b/SOURCES/libecpg-10.5-no-compat-lib.patch @@ -0,0 +1,16 @@ +Nothing ever depended on libecpg_compat.so.3 in Fedora, so don't build +it now, at least till somebody explicitly requests that. + +diff --git a/src/interfaces/ecpg/Makefile b/src/interfaces/ecpg/Makefile +index 41460a1..cc3dd37 100644 +--- a/src/interfaces/ecpg/Makefile ++++ b/src/interfaces/ecpg/Makefile +@@ -2,7 +2,7 @@ subdir = src/interfaces/ecpg + top_builddir = ../../.. + include $(top_builddir)/src/Makefile.global + +-SUBDIRS = include pgtypeslib ecpglib compatlib preproc ++SUBDIRS = include pgtypeslib ecpglib preproc + + # Suppress parallel build of subdirectories to avoid a bug in GNU make 3.82, cf + # http://savannah.gnu.org/bugs/?30653 diff --git a/SOURCES/libecpg-10.5-rpm-pgsql.patch b/SOURCES/libecpg-10.5-rpm-pgsql.patch new file mode 100644 index 0000000..aec64ac --- /dev/null +++ b/SOURCES/libecpg-10.5-rpm-pgsql.patch @@ -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 -Naur postgresql-9.0.1.orig/src/Makefile.global.in postgresql-9.0.1/src/Makefile.global.in +--- postgresql-9.0.1.orig/src/Makefile.global.in 2010-10-01 10:25:44.000000000 -0400 ++++ postgresql-9.0.1/src/Makefile.global.in 2010-10-11 11:52:05.224975308 -0400 +@@ -55,8 +55,7 @@ + # 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. +@@ -74,45 +73,23 @@ + 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@ + diff --git a/SOURCES/libecpg-10.5-var-run-socket.patch b/SOURCES/libecpg-10.5-var-run-socket.patch new file mode 100644 index 0000000..f3e3dff --- /dev/null +++ b/SOURCES/libecpg-10.5-var-run-socket.patch @@ -0,0 +1,26 @@ +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 -up postgresql-13.0/src/include/pg_config_manual.h.patch1 postgresql-13.0/src/include/pg_config_manual.h +--- postgresql-13.0/src/include/pg_config_manual.h.patch1 2020-10-23 10:18:12.204959024 +0200 ++++ postgresql-13.0/src/include/pg_config_manual.h 2020-10-23 10:18:39.391208931 +0200 +@@ -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 diff --git a/SOURCES/libecpg-12.2-dependency-build.patch b/SOURCES/libecpg-12.2-dependency-build.patch new file mode 100644 index 0000000..bdad581 --- /dev/null +++ b/SOURCES/libecpg-12.2-dependency-build.patch @@ -0,0 +1,13 @@ +diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile +index 32a9fdfb7b..899de131da 100644 +--- a/src/interfaces/libpq/Makefile ++++ b/src/interfaces/libpq/Makefile +@@ -76,8 +76,6 @@ SHLIB_PREREQS = submake-libpgport + + SHLIB_EXPORTS = exports.txt + +-all: all-lib +- + # Shared library stuff + include $(top_srcdir)/src/Makefile.shlib + backend_src = $(top_srcdir)/src/backend diff --git a/SOURCES/libecpg-12.2-external-libpq.patch b/SOURCES/libecpg-12.2-external-libpq.patch new file mode 100644 index 0000000..668c771 --- /dev/null +++ b/SOURCES/libecpg-12.2-external-libpq.patch @@ -0,0 +1,35 @@ +We don't build/install interfaces by upstream's implicit rules. +This patch is used on two places; postgresql.spec and libecpg.spec -- keep those +in sync! +Related: rhbz#1618698 +diff -ur postgresql-12.2/src/Makefile postgresql-12.2_patch/src/Makefile +--- postgresql-12.2/src/Makefile 2020-02-10 23:14:51.000000000 +0100 ++++ postgresql-12.2_patch/src/Makefile 2020-03-02 12:49:45.530666894 +0100 +@@ -20,7 +20,6 @@ + backend/utils/mb/conversion_procs \ + backend/snowball \ + include \ +- interfaces \ + backend/replication/libpqwalreceiver \ + backend/replication/pgoutput \ + fe_utils \ +diff -ur postgresql-12.2/src/Makefile.global.in postgresql-12.2_patch/src/Makefile.global.in +--- postgresql-12.2/src/Makefile.global.in 2020-02-10 23:14:51.000000000 +0100 ++++ postgresql-12.2_patch/src/Makefile.global.in 2020-03-02 12:47:40.970583609 +0100 +@@ -550,7 +550,7 @@ + # How to link to libpq. (This macro may be used as-is by backend extensions. + # Client-side code should go through libpq_pgport or libpq_pgport_shlib, + # instead.) +-libpq = -L$(libpq_builddir) -lpq ++libpq = -lpq + + # libpq_pgport is for use by client executables (not libraries) that use libpq. + # We force clients to pull symbols from the non-shared libraries libpgport +@@ -580,7 +580,6 @@ + # Commonly used submake targets + + submake-libpq: | submake-generated-headers +- $(MAKE) -C $(libpq_builddir) all + + submake-libpgport: | submake-generated-headers + $(MAKE) -C $(top_builddir)/src/port all diff --git a/SOURCES/postgresql-13.5.tar.bz2.sha256 b/SOURCES/postgresql-13.5.tar.bz2.sha256 new file mode 100644 index 0000000..834e50e --- /dev/null +++ b/SOURCES/postgresql-13.5.tar.bz2.sha256 @@ -0,0 +1 @@ +9b81067a55edbaabc418aacef457dd8477642827499560b00615a6ea6c13f6b3 postgresql-13.5.tar.bz2 diff --git a/SPECS/libecpg.spec b/SPECS/libecpg.spec new file mode 100644 index 0000000..57bc783 --- /dev/null +++ b/SPECS/libecpg.spec @@ -0,0 +1,211 @@ +%global majorversion 13 + +Summary: ECPG - Embedded SQL in C +Name: libecpg +Version: %majorversion.5 +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: libecpg-10.5-rpm-pgsql.patch +Patch2: libecpg-10.5-var-run-socket.patch +Patch3: libecpg-12.2-external-libpq.patch +Patch4: libecpg-10.5-no-compat-lib.patch +Patch5: libecpg-12.2-dependency-build.patch + +BuildRequires: gcc +BuildRequires: glibc-devel bison flex gawk +BuildRequires: zlib-devel +BuildRequires: openssl-devel +BuildRequires: krb5-devel +BuildRequires: openldap-devel +BuildRequires: libpq-devel +BuildRequires: gettext +BuildRequires: multilib-rpm-config +BuildRequires: make + +Requires: libpgtypes = %{version}-%{release} + +%description +An embedded SQL program consists of code written in an ordinary programming +language, in this case C, mixed with SQL commands in specially marked sections. +To build the program, the source code (*.pgc) is first passed through the +embedded SQL preprocessor, which converts it to an ordinary C program (*.c), and +afterwards it can be processed by a C compiler. + + +%package devel +Summary: Development files for ECPG - Embedded SQL in C +Requires: %name%{?_isa} = %version-%release +Requires: libpgtypes%{?_isa} = %version-%release + +%description devel +ECPG development files. You will need to install this package to build any +package or any clients that use the ECPG to connect to a PostgreSQL server. + + +%package -n libpgtypes +Summary: Map PostgreSQL database types to C equivalents + +%description -n libpgtypes +The pgtypes library maps PostgreSQL database types to C equivalents that can be +used in C programs. It also offers functions to do basic calculations with those +types within C, i.e., without the help of the 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 +# 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 + +%make_build -C "src/interfaces/ecpg" -j1 + + +%install +%make_install -C "src/interfaces/ecpg" -j1 + +# remove files not to be packaged +find $RPM_BUILD_ROOT -name '*.a' -delete + +%multilib_fix_c_header --file "%{_includedir}/ecpg_config.h" + +# function from postgresql.spec +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 ecpglib6 +find_lang_bins %name-devel.lst ecpg + + +%files -f %name.lst +%license COPYRIGHT +%_libdir/libecpg.so.6* + + +%files -n libpgtypes +%license COPYRIGHT +%_libdir/libpgtypes.so.3* + + +%files devel -f %name-devel.lst +%_bindir/ecpg +%_libdir/libecpg.so +%_libdir/libpgtypes.so +%_libdir/pkgconfig/libecpg.pc +%_libdir/pkgconfig/libpgtypes.pc +%_includedir/ecpg*.h +%_includedir/pgsql/informix +%_includedir/pgtypes*.h +%_includedir/sql3types.h +%_includedir/sqlca.h +%_includedir/sqlda*.h + + +%changelog +* Mon Nov 15 2021 Marek Kulik - 13.5-1 +- Rebase to upstream release 13.5 + +* Fri Aug 20 2021 Filip Januš - 13.1-11 +- Add -j1 also into build section +- Resolves: #1975438 + +* Thu Aug 05 2021 Filip Januš - 13.1-10 +- Disable parallel build +- Resolves: #1975438 + +* Mon Aug 09 2021 Mohan Boddu - 13.1-9 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Wed Jul 28 2021 Filip Januš - 13.1-8 +- Fix gating.yaml and rebuild + +* Tue Jun 22 2021 Mohan Boddu - 13.1-7 +- Rebuilt for RHEL 9 BETA for openssl 3.0 + Related: rhbz#1971065 + +* Fri Apr 16 2021 Mohan Boddu - 13.1-6 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Mon Feb 08 2021 Pavel Raiskup - 13.1-5 +- rebuild for libpq ABI fix rhbz#1908268 + +* Tue Jan 26 2021 Fedora Release Engineering - 13.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Dec 03 2020 Honza Horak - 13.1-3 +- Add Requires: libpgtypes to avoid the need to test interoperability + between the various combinations of old and new subpackages + +* Wed Nov 18 2020 Honza Horak - 13.1-1 +- Rebase to upstream release 13.0 + +* Fri Oct 23 2020 Honza Horak - 13.0-1 +- Rebase to upstream release 13.0 + +* Tue Aug 25 2020 Patrik Novotný - 12.4-1 +- Rebase to upstream release 12.4 + +* Tue Jul 28 2020 Fedora Release Engineering - 12.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon May 18 2020 Patrik Novotný - 12.3-1 +- Rebase to upstream release 12.3 + +* Mon Mar 2 2020 Filip Januš - 12.2-1 +- Rebase onto: 12.2 +- update of patch(libecpg-10.5-external-libpq.patch) was needed +- add upstream patch libecpg-12.2-dependency-build.patch + https://www.postgresql.org/message-id/20200321221303.GA17979%40momjian.us + +* Wed Jan 29 2020 Fedora Release Engineering - 11.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 11.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Feb 14 2019 Pavel Raiskup - 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 - 11.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Oct 17 2018 Pavel Raiskup - 11.0-1 +- latest upstream release, per release notes: + https://www.postgresql.org/docs/11/static/release-11.html + +* Thu Aug 30 2018 Pavel Raiskup - 10.5-1 +- slight simplification before review + +* Thu Aug 16 2018 Pavel Raiskup - 10.5-0.1 +- initial packaging