Bug 1174240

Summary: libzen doesn't provide pkgconfig(libzen) a
Product: [Fedora] Fedora EPEL Reporter: Tuomo Soini <tis>
Component: libzenAssignee: Vasiliy Glazov <vascom2>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: el6CC: rdieter, vascom2
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libzen-0.4.30-3.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-12 17:40:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tuomo Soini 2014-12-15 13:26:35 UTC
Description of problem:

The problem is that libzen update breaks dependencies for

package: libmediainfo-devel-0.7.71-2.el6.x86_64 from epel-testing
  unresolved deps: 
     pkgconfig(libzen)

Older versions of libzen provided this, latest one on epel-testing (0.4.30-2.el6) doesn't.

Proposed fix:

add to %package devel

Provides: pkgconfig(%{name})

Obviously rpm can't do auto provides for pc files if cmake is used - so this is really rpm problem.

Comment 1 Rex Dieter 2014-12-15 13:31:26 UTC
I think your analysis is incorrect.

If the package still provides a pkgconfig .pc files, it should get auto-provided fine, even if built with cmake.

If the package does not provide a pkgconfig .pc file, then blindly adding a
Provides:
would also be incorrect.

I'll take a closer look at the libzen package in question.

Comment 2 Tuomo Soini 2014-12-15 13:35:05 UTC
Thanks.

This is work-around - Auto provides doesn't work after changes on 0.4.30-2.el6 - 0.4.30-1.el6 still has correct Provides and only change after that is change to cmake.

If this is rpm bug like I think it is, there is not much we can do, this is rhel.

Comment 3 Rex Dieter 2014-12-15 13:36:27 UTC
It would appear the real problem is that rpm cannot do automatic pkgconfig dependencies if pkg-config itself is not available during the build.

The best/easiest fix would be to simply add:
BuildRequires: pkgconfig

This problem likely affects all branches (not just el6 builds).

Comment 4 Rex Dieter 2014-12-15 13:39:05 UTC
I guess that theory is wrong, checking logs, pkgconfig was indeed present in the buildroot.  Still looking...

Comment 5 Vasiliy Glazov 2014-12-15 13:41:57 UTC
May be it only in EL6? Because for Fedora and EL7 pkgconfig(libzen) is present in Provides.

Comment 6 Rex Dieter 2014-12-15 13:48:36 UTC
OK, the real problem is that zlib-devel, ie what provides pkgconfig(zlib), is not available in the buildroot.

Add,
BuildRequires: pkgconfig(zlib)

Comment 7 Rex Dieter 2014-12-15 14:06:19 UTC
For example, there's a similar problem on f20's build too:

$ rpm -q libzen-devel
libzen-devel-0.4.30-2.fc20.i686

$ cat /usr/lib/pkgconfig/libzen.pc | grep Requires
Requires: zlib

$ rpm -qR libzen-devel | grep zlib
(empty)

It *should* have a dep on pkgconfig(zlib)

Comment 8 Vasiliy Glazov 2014-12-15 14:09:45 UTC
But in F20 it Provides
pkgconfig(libzen) = 0.4.30

Comment 9 Rex Dieter 2014-12-15 14:20:13 UTC
Sure, but it's broken in a subtle different way, which I outlined in comment #7

Fwiw, I question these lines in the .pc file anyway:

Libs: -L${libdir} -lzen -lpthread -lstdc++
Requires: zlib

I strongly suspect that -lstdc++ is only required for static linking, and maybe zlib too, but I don't see any references to zlib in libzen headers or it's library linking, so you may want to consider adjusting those lines to something like this instead:

Libs: -L${libdir} -lzen -lpthread
Libs.private: -lstdc++



Regardless, these issues will get sorted out if do either of these:
* add BuildRequires: pkgconfig(zlib)  , this is probably the best short-term quickfix.
* patch libzen.pc to not include Requires: zlib  , probably ought to consult upstream about this long-term

Comment 10 Tuomo Soini 2014-12-15 14:31:20 UTC
Rex, than you for your help with this. I totally forgot to check if all pc file requirements were in build root and suspected rpm.

Comment 11 Fedora Update System 2014-12-16 06:50:12 UTC
libzen-0.4.30-3.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/libzen-0.4.30-3.el6

Comment 12 Rex Dieter 2014-12-16 13:14:26 UTC
Imo, you would best release updates for all branches, the manifestation of the bug is different depending on which version of rpm used.  See comment #7 as to how fedora 20's pkgconfig-related deps are currently broken.

Comment 13 Fedora Update System 2014-12-17 05:36:22 UTC
Package libzen-0.4.30-3.el6:
* should fix your issue,
* was pushed to the Fedora EPEL 6 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=epel-testing libzen-0.4.30-3.el6'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-EPEL-2014-4701/libzen-0.4.30-3.el6
then log in and leave karma (feedback).

Comment 14 Fedora Update System 2015-01-12 17:40:32 UTC
libzen-0.4.30-3.el6 has been pushed to the Fedora EPEL 6 stable repository.  If problems still persist, please make note of it in this bug report.