Bug 152486

Summary: incomplete dependencies break pkgconfig dependency chain
Product: [Fedora] Fedora Reporter: Michael Schwendt <bugs.michael>
Component: gaminAssignee: Daniel Veillard <veillard>
Status: CLOSED UPSTREAM QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 4   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-03-30 10:57:03 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michael Schwendt 2005-03-29 21:29:45 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.7.6) Gecko/20050323
Firefox/1.0.2 Fedora/1.0.2-1.3.1

Description of problem:
Package contains a pkgconfig template file, which lists other pkgconfig files as
requirements. When these files are included in other RPM packages, the RPM
package "Requires" must be complete. Else pkgconfig fails, prints an error
message and returns an error code for standard queries like "pkg-config --exists
foo-1.0", "pkg-config --cflags foo-1.0" or "pkg-config --list-all".

missing dependencies due to pkgconfig files:

Requires: glib2-devel


Version-Release number of selected component (if applicable):
gamin-devel-0.0.25-4

How reproducible:
Always

Steps to Reproduce:
-    

Additional info:

Comment 1 Daniel Veillard 2005-03-30 10:44:15 UTC
On Wed, Mar 30, 2005 at 12:24:13AM -1000, Warren Togami wrote:
> Daniel Veillard wrote:
> >  I don't understand what is the consequence of adding a library to
> >  pkgconfig.
> >Suppose package A requires gamin to work. It will link with gamin or fam.
> >It does not need to link with glib. But glib is needed for gamin server
> >and the server only not the library used by the client application. The
> >package of the application depending on gamin should *not* get a glib
> >dependancy, only gamin need to. It seems the bug raised break that test
> >case, but I don't understand how pkgconfig works.
> >  Do you have a clear normative description of pkgconfig which could
> >explain how that case need to be handled ? If by requiring gamin/fam
> >all KDE suddenly get a glib dependancy people will complain publicly
> >that's 100 sure. So I'm very reluctant following the advice in
> >  https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=152486
> >or in your mail.
> >
> >Daniel
> >
>
> My response is only "builds fail without it", political reasons should
> not override reality.  However...
>
> https://www.redhat.com/archives/fedora-maintainers/2005-March/msg00132.html
> Michael explains here with more detail.  If you have a response, then
> please respond on that list.

  Okay I have only one normative text for what pkgconfig is all about:

man pkg-config
-------------------------
The pkg-config program is used to retrieve information about installed
libraries in the system.  It is typically used  to  compile  and  link
against  one or more libraries.  Here is a typical usage scenario in a
Makefile:
-------------------------

  pkg-config is there to get library dependancies. Program needing fam or
gamin support need it to get the libraries to link to. The output of
pkgconfig cflags or link must *NOT* show glib output, even if from a
packaging level, gamin requires glib for the server side. The fact that
KDE requires fam or gamin, does not mean it should link against glib.
So without further detailed information allowing to disambiguate using
pkgconfig for it's original goal of simplifying compiling and linking from
the added use as a packaging dependancy, bug #152486 is a WONTFIX for me.

Daniel


Comment 2 Michael Schwendt 2005-03-30 10:49:06 UTC
But you do require glib2-devel CFLAGS and LDFLAGS in your .pc file. Drop them if
they are not needed. See "pkg-config --cflags --ldflags gamin".

--- gamin.pc.orig       2005-03-01 19:06:28.000000000 +0100
+++ gamin.pc    2005-03-30 12:47:50.000000000 +0200
@@ -6,6 +6,5 @@
 Name: gamin
 Description: The gamin file monitoring system.
 Version: 0.0.25
-Requires: glib-2.0 gthread-2.0
 Libs: -L${libdir} -lgamin-1
 Cflags: -I${includedir}/fam




Comment 3 Daniel Veillard 2005-03-30 10:57:03 UTC
Okay, that make more sense then. Changed upstream,

  thanks,