Browse code

postgresql: Rework dependencies of -libs and -devel

Per discussion with Alexey Makhalov, the existing set of dependencies
listed in repmgr is misleading, as it has no need to directly depend on
libraries other than postgresql-devel for its build and postgresql-libs
at run time per the client nature of the command-line binary.

This commit reworks the set of dependencies in -libs and -devel so as we
have a complete listing of packages requires when installing any of
them, avoiding the need to pull in more dependencies in anything that
builds or links to PostgreSQL. The -libs package needs to be able to
link to OpenSSL, OpenLDAP and krb5 at run time as libpq requires all of
them. The -devel package, per its backend and frontend nature, has much
more requirements, as it needs to include most of the backend
dependencies like ICU, LLVM, etc (some headers include that).

This will help with a follow-up change to add --with-lz4 to the
PostgreSQL packages for LZ4 support, removing the need to change
repmgr.

Change-Id: Id7ab2ab683b18e433bd945fb51d553df9c876560
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/14507
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>

Michael Paquier authored on 2021/10/19 12:31:58
Showing 2 changed files
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:        PostgreSQL database engine
2 2
 Name:           postgresql
3 3
 Version:        14.0
4
-Release:        1%{?dist}
4
+Release:        2%{?dist}
5 5
 License:        PostgreSQL
6 6
 URL:            www.postgresql.org
7 7
 Group:          Applications/Databases
... ...
@@ -41,12 +41,9 @@ BuildRequires:  tcl-devel
41 41
 BuildRequires:  tzdata
42 42
 BuildRequires:  util-linux-libs
43 43
 BuildRequires:  zlib-devel
44
-Requires:       krb5
45 44
 Requires:       icu
46 45
 Requires:       libedit
47 46
 Requires:       libxml2
48
-Requires:       openldap
49
-Requires:       openssl
50 47
 Requires:       readline
51 48
 Requires:       systemd
52 49
 Requires:       tzdata
... ...
@@ -69,6 +66,9 @@ if you're installing the postgresql-server package.
69 69
 %package libs
70 70
 Summary:    The shared libraries required for any PostgreSQL clients
71 71
 Group:      Applications/Databases
72
+Requires:   krb5
73
+Requires:   openldap
74
+Requires:   openssl
72 75
 
73 76
 %description libs
74 77
 The postgresql-libs package provides the essential shared libraries for any
... ...
@@ -116,10 +116,17 @@ Summary:	PostgreSQL development header files and libraries
116 116
 Requires:	%{name} = %{version}-%{release}
117 117
 Requires:	%{name}-libs = %{version}-%{release}
118 118
 Requires:  clang-devel
119
-Requires:  libxslt
119
+Requires:  icu-devel
120
+Requires:  krb5-devel
121
+Requires:  libedit-devel
122
+Requires:  libxml2-devel
120 123
 Requires:  libxslt-devel
121 124
 Requires:  llvm-devel
125
+Requires:  openldap
126
+Requires:  openssl-devel
122 127
 Requires:  perl-IPC-Run
128
+Requires:  python3-devel
129
+Requires:  readline-devel
123 130
 
124 131
 %description devel
125 132
 The postgresql-devel package contains the header files and libraries
... ...
@@ -534,6 +541,8 @@ rm -rf %{buildroot}/*
534 534
 %{_libdir}/postgresql/plpython3.so
535 535
 
536 536
 %changelog
537
+*   Tue Oct 19 2021 Michael Paquier <mpaquier@vmware.com> 14.0-2
538
+-   Rework dependency list for -libs and -devel packages.
537 539
 *   Thu Sep 30 2021 Michael Paquier <mpaquier@vmware.com> 14.0-1
538 540
 -   Upgraded to version 14.0
539 541
 *   Sat Aug 14 2021 Michael Paquier <mpaquier@vmware.com> 13.4-1
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:        Replication Manager for PostgreSQL Clusters
2 2
 Name:           repmgr
3 3
 Version:        5.1.0
4
-Release:        4%{?dist}
4
+Release:        5%{?dist}
5 5
 License:        GNU Public License (GPL) v3
6 6
 URL:            https://repmgr.org/
7 7
 Group:          Applications/Databases
... ...
@@ -9,21 +9,21 @@ Vendor:         VMware, Inc.
9 9
 Distribution:   Photon
10 10
 Source0:        https://repmgr.org/download/%{name}-%{version}.tar.gz
11 11
 %define sha1    repmgr=5859789e71f93c1315b9520e197b92fe60693418
12
-BuildRequires:  postgresql-devel readline-devel openssl-devel zlib-devel cpio libedit-devel
13
-Requires:       postgresql-libs readline openssl zlib libedit
12
+BuildRequires:  postgresql-devel cpio
13
+Requires:       postgresql-libs
14 14
 
15 15
 %description
16 16
 repmgr is an open-source tool suite for managing replication and failover in a cluster of PostgreSQL servers.
17 17
 
18 18
 %prep
19
-%setup
19
+%autosetup
20 20
 
21 21
 %build
22 22
 %configure CFLAGS="%{optflags}" CXXFLAGS="%{optflags}"
23 23
 make %{_smp_mflags} CFLAGS="-O2 -g -fcommon"
24 24
 
25 25
 %install
26
-make install DESTDIR=%{buildroot}
26
+make install DESTDIR=%{buildroot} %{_smp_mflags}
27 27
 
28 28
 %clean
29 29
 rm -rf %{buildroot}/*
... ...
@@ -36,6 +36,9 @@ rm -rf %{buildroot}/*
36 36
 %{_datadir}/*
37 37
 
38 38
 %changelog
39
+*   Tue Oct 19 2021 Michael Paquier <mpaquier@vmware.com> 5.1.0-5
40
+-   Rework dependency list with postgresql
41
+-   Add support for autosetup and _smp_mflags
39 42
 *   Thu Jan 14 2021 Alexey Makhalov <amakhalov@vmware.com> 5.1.0-4
40 43
 -   GCC-10 support.
41 44
 *   Wed Sep 30 2020 Dweep Advani <photon-checkins@vmware.com> 5.1.0-3