Bug 799121 - pkgconfig autoreq/prov scripts don't check for pkg-config exit status errors
pkgconfig autoreq/prov scripts don't check for pkg-config exit status errors
Status: NEW
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: redhat-rpm-config (Show other bugs)
6.3
Unspecified Unspecified
low Severity low
: rc
: ---
Assigned To: Florian Festi
BaseOS QE Security Team
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-03-01 15:01 EST by Daniel Berrange
Modified: 2017-09-14 07:36 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Daniel Berrange 2012-03-01 15:01:19 EST
Description of problem:
In spice-gtk a recent bug caused the installation of a pkg-config data file which contained a 'Requires: spice-protocol' line, but this pkg-config data file did not exist.

As a result, 'pkg-config --print-require' returns an non-zero exit status. 
The scripts:

/usr/lib/rpm/redhat/find-{provides,requires}.pkgconfig

do not correctly handle the exit status, so the binary RPMS completed their build, silently dropping all pkg config dependencies. This in turn prevents any app building against them.

If pkg-config returns non-zero status, RPM should exit with an error and require the packager to fix the pkg-config data files in the RPM, and *not* silently drop all pkg-config deps.

For more info see

  https://bugzilla.redhat.com/show_bug.cgi?id=799112

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
# echo /usr/lib64/pkgconfig/spice-client-glib-2.0.pc  | /usr/lib/rpm/redhat/find-requires.pkgconfig
pkgconfig(pixman-1) >= 0.17.7
pkgconfig(celt051) >= 0.5.1.1
pkgconfig(openssl)  
pkgconfig(spice-protocol)  

# echo $?
0

# rm /usr/share/pkgconfig/spice-protocol.pc
[root@t500wlan pkgconfig]# echo /usr/lib64/pkgconfig/spice-client-glib-2.0.pc  | /usr/lib/rpm/redhat/find-requires.pkgconfig
# echo $?
0

This last status should be '1' due to the missing spice-protocol.pc file
Comment 2 RHEL Product and Program Management 2012-05-03 01:17:23 EDT
Since RHEL 6.3 External Beta has begun, and this bug remains
unresolved, it has been rejected as it is not proposed as
exception or blocker.

Red Hat invites you to ask your support representative to
propose this request, if appropriate and relevant, in the
next release of Red Hat Enterprise Linux.
Comment 3 Karel Srot 2015-10-12 05:02:21 EDT
Is this still valid?
Comment 4 Daniel Berrange 2015-10-12 05:48:31 EDT
I've no idea - I don't have a suitable RHEL6 machine to test it again right now. There are steps to reproduce in the initial bug description though, so suggest trying them.
Comment 5 Karel Srot 2015-10-12 06:33:08 EDT
It is.

# rpm -qa | grep spice
spice-glib-devel-0.26-4.el6.x86_64
spice-glib-0.26-4.el6.x86_64
spice-client-0.8.2-15.el6.x86_64
spice-protocol-0.12.6-1.el6.noarch
# ls /usr/lib64/pkgconfig/spice-client-glib-2.0.pc /usr/share/pkgconfig/spice-protocol.pc
/usr/lib64/pkgconfig/spice-client-glib-2.0.pc  /usr/share/pkgconfig/spice-protocol.pc
# rpm -q redhat-rpm-config
redhat-rpm-config-9.0.3-44.el6.noarch
# 
# echo /usr/lib64/pkgconfig/spice-client-glib-2.0.pc  | /usr/lib/rpm/redhat/find-requires.pkgconfig
pkgconfig(spice-protocol)  
pkgconfig(pixman-1) >= 0.17.7
pkgconfig(openssl)  
pkgconfig(spice-protocol)  
# echo $?
0
# mv /usr/share/pkgconfig/spice-protocol.pc /usr/share/pkgconfig/spice-protocol.pc.backup
# echo /usr/lib64/pkgconfig/spice-client-glib-2.0.pc  | /usr/lib/rpm/redhat/find-requires.pkgconfig
# echo $?
0

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