Broken pkgconfig dependency chains in packages

Michael Schwendt bugs.michael at gmx.net
Wed Mar 30 09:54:50 UTC 2005


Yesterday I filed the remaining 23 bug reports about broken pkgconfig
dependency chains in Fedora Core packages:

  Package 'foo' 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".

A detailed list of what RPM "Requires" lines are missing is attached to
each bug report.

A total of 24 packages in Fedora Core 4 Test 1 are affected this time.

Nine out of 24 packages are non -devel packages, which seem to include
development related files, such as a pkgconfig .pc file. Most likely they
cannot be fixed until a -devel package is split off. Additionally, often
such non -devel packages do not "Provides: %name-devel = %version-%release"
although they contain devel files.

The effect of broken pkgconfig dependencies are really ugly. Excerpt from
bug 152169, which is a non -devel package:

  $ pkg-config --exists gnopernicus-1.0 || echo "no"
  no

  $ pkg-config --cflags gnopernicus-1.0 
  Package cspi-1.0 was not found in the pkg-config search path.
  Perhaps you should add the directory containing `cspi-1.0.pc'
  to the PKG_CONFIG_PATH environment variable
  Package 'cspi-1.0', required by 'gnopernicus', not found

  $ rpm --query gnopernicus
  gnopernicus-0.10.3-1

I'd like to emphasise that a broken pkgconfig dependency chain not only
breaks specific queries, but also makes the global "pkg-config --list-all"
query, as parsed by some applications, print an error message and return
an error code (!), too. It remains broken until all pkgconfig files are
installed. So, preferably, RPM package dependencies ought to be complete.




More information about the Fedora-maintainers mailing list