Bug 45599

Summary: document workaround for pkg-config-0.26 circular dependency on glib
Product: pkg-config Reporter: Andras Salamon <andras>
Component: srcAssignee: Tollef Fog Heen <tfheen>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Andras Salamon 2012-02-03 11:53:17 UTC
The INSTALL file for glib-2.x states: "GLib-2.0 requires pkg-config," yet pkg-config-0.26 introduced an explicit dependency on glib in configure.ac:

if test "x$GLIB_CFLAGS" = "x" && test "x$GLIB_LIBS" = "x"; then
   AC_CHECK_PROGS([PKG_CONFIG], [pkg-config], [])
   if test -n $PKG_CONFIG && $PKG_CONFIG --exists glib-2.0; then
      GLIB_CFLAGS=`$PKG_CONFIG --cflags glib-2.0`
      GLIB_LIBS=`$PKG_CONFIG --libs glib-2.0`
   else
      AC_MSG_ERROR([pkg-config and glib-2.0 not found, please set GLIB_CFLAGS an
d GLIB_LIBS to the correct values])]
   fi
fi
AC_SUBST(GLIB_LIBS)
AC_SUBST(GLIB_CFLAGS)

This means that pkg-config-0.26 cannot be built without bootstrapping via an earlier version of pkg-config, such as 0.25, or building glib with custom options.

I did note the email from Tollef Fog Heen on the mailing list which suggested building glib with "--with-pcre=internal" and this indeed does short-circuit the circular dependency.  However, such a requirement should not be buried in a mailing list archive.  If a package explicitly depends on another, then it is making an implicit promise to play nicely together, including documenting such issues and suggested workarounds.
    http://lists.freedesktop.org/archives/pkg-config/2011-May/000751.html
There is nothing mentioned about this in NEWS, README, INSTALL, or the manual page.  (It seems I cannot currently access git://anongit.freedesktop.org/pkg-config to check the latest codebase.)

(Of course, glib also has a responsibility to document this.  I suspect they would say "please first install pkg-config <= 0.25".)
Comment 1 Dan Nicholson 2012-04-21 12:55:52 UTC
This should be fixed with commit cbc7eec2e5df1686db7e301627f9772cf4e2e080 combined with the re-bundling of glib.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.