Bug 1741033 - pkgconfig provides without an SCL prefix
Summary: pkgconfig provides without an SCL prefix
Keywords:
Status: CLOSED DUPLICATE of bug 1765027
Alias: None
Product: Red Hat Software Collections
Classification: Red Hat
Component: postgresql
Version: rh-postgresql12
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: beta
: 3.4
Assignee: Patrik Novotný
QA Contact: RHEL CS Apps Subsystem QE
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-08-14 06:16 UTC by Honza Horak
Modified: 2019-10-25 10:58 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-10-25 10:58:18 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Honza Horak 2019-08-14 06:16:15 UTC
Description of problem:
The devel package provides some symbols that are not having the SCL name, so when some package requires those, RPM can be happy with the SCL package, while the files (pkgconfig) will not be found in the PATH.

Version-Release number of selected component (if applicable):
rh-postgresql12-postgresql-devel-12.0-0.beta2.el7

How reproducible:
always

Steps to Reproduce:
1. rpm -qPp rh-postgresql12-postgresql-devel-12.0-0.beta2.el7.x86_64.rpm | grep -v postgresql12

Actual results:
pkgconfig(libecpg) = 12beta2
pkgconfig(libecpg_compat) = 12beta2
pkgconfig(libpgtypes) = 12beta2
pkgconfig(libpq) = 12beta2

Expected results:
<empty>

Additional info:

This patch should make the trick and remove the auto provides generated from files in the pkgconfig directory:

diff --git a/postgresql.spec b/postgresql.spec
index 21b66ae..2a9f62a 100644
--- a/postgresql.spec
+++ b/postgresql.spec
@@ -186,7 +186,7 @@ BuildRequires: libicu-devel
 # - RHEL7 lib* plugins
 # - https://bugzilla.redhat.com/1464368 elsewhere
 # Filtering: https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering
-%global __provides_exclude_from %{_libdir}/pgsql
+%global __provides_exclude_from ^(%{_libdir}/pgsql|%{_libdir}/pkgconfig)
 
 %description
 PostgreSQL is an advanced Object-Relational database management system (DBMS).

Comment 3 Honza Horak 2019-10-23 10:19:43 UTC
(In reply to Honza Horak from comment #0)
> diff --git a/postgresql.spec b/postgresql.spec
> index 21b66ae..2a9f62a 100644
> --- a/postgresql.spec
> +++ b/postgresql.spec
> @@ -186,7 +186,7 @@ BuildRequires: libicu-devel
>  # - RHEL7 lib* plugins
>  # - https://bugzilla.redhat.com/1464368 elsewhere
>  # Filtering:
> https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering
> -%global __provides_exclude_from %{_libdir}/pgsql
> +%global __provides_exclude_from ^(%{_libdir}/pgsql|%{_libdir}/pkgconfig)
>  
>  %description
>  PostgreSQL is an advanced Object-Relational database management system
> (DBMS).

This is actually not good enough fix, because except the Provides, we also have Requires in the rh-postgresql12-postgresql-devel package. That results in the rh-postgresql10-postgresql-devel to be installed to satisfy the filtered provides:


# yum install rh-postgresql12-postgresql-devel
Loaded plugins: product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

global name 'warnOrGiveUsageMessage' is not defined
Resolving Dependencies
--> Running transaction check
---> Package rh-postgresql12-postgresql-devel.x86_64 0:12.0-1.el7 will be installed
--> Processing Dependency: rh-postgresql12-postgresql-libs(x86-64) = 12.0-1.el7 for package: rh-postgresql12-postgresql-devel-12.0-1.el7.x86_64
--> Processing Dependency: libicu-devel for package: rh-postgresql12-postgresql-devel-12.0-1.el7.x86_64
--> Processing Dependency: pkgconfig(libecpg) for package: rh-postgresql12-postgresql-devel-12.0-1.el7.x86_64
--> Processing Dependency: pkgconfig(libpgtypes) for package: rh-postgresql12-postgresql-devel-12.0-1.el7.x86_64
--> Processing Dependency: pkgconfig(libpq) for package: rh-postgresql12-postgresql-devel-12.0-1.el7.x86_64
--> Processing Dependency: rh-postgresql12-runtime for package: rh-postgresql12-postgresql-devel-12.0-1.el7.x86_64
--> Processing Dependency: libecpg.so.rh-postgresql12-6()(64bit) for package: rh-postgresql12-postgresql-devel-12.0-1.el7.x86_64
--> Processing Dependency: libecpg_compat.so.rh-postgresql12-3()(64bit) for package: rh-postgresql12-postgresql-devel-12.0-1.el7.x86_64
--> Processing Dependency: libpgtypes.so.rh-postgresql12-3()(64bit) for package: rh-postgresql12-postgresql-devel-12.0-1.el7.x86_64
--> Processing Dependency: libpq.so.rh-postgresql12-5()(64bit) for package: rh-postgresql12-postgresql-devel-12.0-1.el7.x86_64
--> Running transaction check
---> Package libicu-devel.x86_64 0:50.1.2-15.el7 will be installed
--> Processing Dependency: libicu = 50.1.2-15.el7 for package: libicu-devel-50.1.2-15.el7.x86_64
--> Processing Dependency: libicudata.so.50()(64bit) for package: libicu-devel-50.1.2-15.el7.x86_64
--> Processing Dependency: libicui18n.so.50()(64bit) for package: libicu-devel-50.1.2-15.el7.x86_64
--> Processing Dependency: libicuio.so.50()(64bit) for package: libicu-devel-50.1.2-15.el7.x86_64
--> Processing Dependency: libicule.so.50()(64bit) for package: libicu-devel-50.1.2-15.el7.x86_64
--> Processing Dependency: libiculx.so.50()(64bit) for package: libicu-devel-50.1.2-15.el7.x86_64
--> Processing Dependency: libicutest.so.50()(64bit) for package: libicu-devel-50.1.2-15.el7.x86_64
--> Processing Dependency: libicutu.so.50()(64bit) for package: libicu-devel-50.1.2-15.el7.x86_64
--> Processing Dependency: libicuuc.so.50()(64bit) for package: libicu-devel-50.1.2-15.el7.x86_64
---> Package rh-postgresql10-postgresql-devel.x86_64 0:10.6-1.el7 will be installed
--> Processing Dependency: rh-postgresql10-postgresql-libs(x86-64) = 10.6-1.el7 for package: rh-postgresql10-postgresql-devel-10.6-1.el7.x86_64
--> Processing Dependency: rh-postgresql10-runtime for package: rh-postgresql10-postgresql-devel-10.6-1.el7.x86_64
--> Processing Dependency: libecpg.so.rh-postgresql10-6()(64bit) for package: rh-postgresql10-postgresql-devel-10.6-1.el7.x86_64
--> Processing Dependency: libecpg_compat.so.rh-postgresql10-3()(64bit) for package: rh-postgresql10-postgresql-devel-10.6-1.el7.x86_64
--> Processing Dependency: libpgtypes.so.rh-postgresql10-3()(64bit) for package: rh-postgresql10-postgresql-devel-10.6-1.el7.x86_64
--> Processing Dependency: libpq.so.rh-postgresql10-5()(64bit) for package: rh-postgresql10-postgresql-devel-10.6-1.el7.x86_64
---> Package rh-postgresql12-postgresql-libs.x86_64 0:12.0-1.el7 will be installed
---> Package rh-postgresql12-runtime.x86_64 0:3.4-1.el7 will be installed
--> Processing Dependency: scl-utils for package: rh-postgresql12-runtime-3.4-1.el7.x86_64
--> Running transaction check
---> Package libicu.x86_64 0:50.1.2-15.el7 will be installed
---> Package rh-postgresql10-postgresql-libs.x86_64 0:10.6-1.el7 will be installed
---> Package rh-postgresql10-runtime.x86_64 0:3.1-1.el7 will be installed
---> Package scl-utils.x86_64 0:20130529-19.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================
 Package                          Arch   Version           Repository     Size
===============================================================================
Installing:
 rh-postgresql12-postgresql-devel x86_64 12.0-1.el7        rhscl-build-7 1.4 M
Installing for dependencies:
 libicu                           x86_64 50.1.2-15.el7     rhscl-build-7 6.9 M
 libicu-devel                     x86_64 50.1.2-15.el7     rhscl-build-7 701 k
 rh-postgresql10-postgresql-devel x86_64 10.6-1.el7        rhscl-build-7 1.3 M
 rh-postgresql10-postgresql-libs  x86_64 10.6-1.el7        rhscl-build-7 289 k
 rh-postgresql10-runtime          x86_64 3.1-1.el7         rhscl-build-7 1.2 M
 rh-postgresql12-postgresql-libs  x86_64 12.0-1.el7        rhscl-build-7 307 k
 rh-postgresql12-runtime          x86_64 3.4-1.el7         rhscl-build-7 1.2 M
 scl-utils                        x86_64 20130529-19.el7   rhscl-build-7  23 k

Transaction Summary
===============================================================================
Install  1 Package (+8 Dependent packages)


So, I guess we should filter out the Requires as well, same as we filter Provides.

Patrik, please, take a look at this for the GA build, it doesn't seem to be important enough for Beta respin.


Note You need to log in before you can comment on or make changes to this bug.