Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 383655 - dev-util/pkgconfig-0.26 doesn't check for Requires.private: fatal error: glib.h: No such file or directory
Summary: dev-util/pkgconfig-0.26 doesn't check for Requires.private: fatal error: glib...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Freedesktop bugs
URL:
Whiteboard:
Keywords:
: 383839 385829 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-09-19 15:50 UTC by Justin Lecher (RETIRED)
Modified: 2011-10-06 18:43 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
/var/log/portage/build/gnome-base/gconf-2.32.4:20110919-154739.log (gconf-2.32.4:20110919-154739.log,14.50 KB, text/plain)
2011-09-19 15:51 UTC, Justin Lecher (RETIRED)
Details
/var/tmp/portage/gnome-base/gconf-2.32.4/work/GConf-2.32.4/config.log (config.log,75.93 KB, text/plain)
2011-09-19 16:12 UTC, Justin Lecher (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Justin Lecher (RETIRED) gentoo-dev 2011-09-19 15:50:54 UTC
/bin/sh ../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I..  -DG_LOG_DOMAIN=\"GConf\" -DPREFIX=\""/usr"\" -DGCONF_LOCALE_DIR=\""/usr/share/locale"\" -DGCONF_SRCDIR=\""/var/tmp/portage/gnome-base/gconf-2.32.4/work/GConf-2.32.4"\" -DGCONF_CONFDIR=\""/etc/gconf/2"\" -DGCONF_ETCDIR=\""/etc/gconf"\" -DGCONF_BINDIR=\""/usr/bin"\" -DGCONF_SERVERDIR=\""/usr/libexec"\" -DGCONF_BUILDDIR=\"".."\" -DGCONF_BACKEND_DIR=\""/usr/lib64/GConf/2"\" -DVERSION=\""2.32.4"\" -DGCONF_ENABLE_INTERNALS=1 -DGCONFD=\""gconfd-2"\"     -O2 -pipe -ftracer -march=corei7 -mcx16 -msahf -mpopcnt -msse4.2 -mtune=corei7 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=corei7 -frecord-gcc-switches -g -Wimplicit-function-declaration -Wall -c -o gconf-internals.lo gconf-internals.c
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -DG_LOG_DOMAIN=\"GConf\" -DPREFIX=\"/usr\" -DGCONF_LOCALE_DIR=\"/usr/share/locale\" -DGCONF_SRCDIR=\"/var/tmp/portage/gnome-base/gconf-2.32.4/work/GConf-2.32.4\" -DGCONF_CONFDIR=\"/etc/gconf/2\" -DGCONF_ETCDIR=\"/etc/gconf\" -DGCONF_BINDIR=\"/usr/bin\" -DGCONF_SERVERDIR=\"/usr/libexec\" -DGCONF_BUILDDIR=\"..\" -DGCONF_BACKEND_DIR=\"/usr/lib64/GConf/2\" -DVERSION=\"2.32.4\" -DGCONF_ENABLE_INTERNALS=1 -DGCONFD=\"gconfd-2\" -O2 -pipe -ftracer -march=corei7 -mcx16 -msahf -mpopcnt -msse4.2 -mtune=corei7 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=corei7 -frecord-gcc-switches -g -Wimplicit-function-declaration -Wall -c gconf-internals.c  -fPIC -DPIC -o .libs/gconf-internals.o
In file included from gconf-internals.c:22:0:
gconf-internals.h:32:18: fatal error: glib.h: No such file or directory
compilation terminated.
make[3]: *** [gconf-internals.lo] Error 1
make[3]: Leaving directory `/var/tmp/portage/gnome-base/gconf-2.32.4/work/GConf-2.32.4/gconf'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/portage/gnome-base/gconf-2.32.4/work/GConf-2.32.4/gconf'



$ einfo =gnome-base/gconf-2.32.4
Portage 2.2.0_alpha59 (default/linux/amd64/10.0, gcc-4.6.1-asneeded, glibc-2.13-r4, 3.0.4-lh x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.0.4-lh-x86_64-Intel-R-_Core-TM-_i7_CPU_860_@_2.80GHz-with-gentoo-2.0.3
Timestamp of tree: Mon, 19 Sep 2011 05:30:01 +0000
ccache version 3.1.6 [disabled]
app-shells/bash:          4.2_p10
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.5.4-r4, 2.6.7-r2, 2.7.2-r2, 3.1.4-r2, 3.2-r2
dev-util/ccache:          3.1.6
dev-util/cmake:           2.8.5-r2::science
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.9.3-r1
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.1-r1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.2.4-r1, 4.3.6-r1, 4.4.6-r1, 4.5.3-r1, 4.6.1-r1
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r1::last-hope
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo sunrise bicatali betagarden dummy Neurogeek-s-overlay science last-hope g-ctan
Installed sets: 
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -ftracer -march=corei7 -mcx16 -msahf -mpopcnt -msse4.2 -mtune=corei7 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=corei7 -frecord-gcc-switches -g -Wimplicit-function-declaration"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/eselect/ /usr/share/gnupg/qualified.txt /usr/share/nano/ /usr/share/openvpn/easy-rsa /var/lib/hsqldb /var/spool/torque"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -ftracer -march=corei7 -mcx16 -msahf -mpopcnt -msse4.2 -mtune=corei7 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=corei7 -frecord-gcc-switches -g -Wenum-compare"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="-t --jobs=12 --load-average=12 --keep-going --autounmask-write --autounmask"
FEATURES="assume-digests binpkg-logs buildsyspkg collision-protect distlocks ebuild-locks fixlafiles fixpackages metadata-transfer multilib-strict news noinfo parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms sign split-log splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe -ftracer -march=corei7 -mcx16 -msahf -mpopcnt -msse4.2 -mtune=corei7 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=corei7 -frecord-gcc-switches -g"
GENTOO_MIRRORS=" /mnt/tmpfs/ http://gentoo.j-schmitz.net/mirror/ ftp://ftp.gentoo.mesh-solutions.com/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo/"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common"
LINGUAS="en"
MAKEOPTS="-j16 -l12"
PKGDIR="/usr/portage/packages"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-z -e -9 -v"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/data/local/sunrise/reviewed /data/local/bicatali /data/local/betagarden /data/local/dummy /data/local/neurogeek /data/local/sci /data/local/lh/ebuilds /data/local/g-ctan"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="64bit 7zip X acpi additions alsa amd64 arpwarp atlas bash-completion berkdb blas branding bzip2 c++ cairo caps cblas ccache cleartype cli command-args consolekit corefonts cracklib crypt cups cupsddk custom-optimization cxx dbus dri dts exif fbcondecor fortran gdbm gif glib glibc-omitfp gmp gnome gnome-keyring gpm graphics gstreamer gtk hddtemp iconv icu ios ipod iproute2 iptables ipv6 ipython javascript jpeg jpeg2k kqemu lapack largefile lcms ldap libnotify libsexy lm_sensors lzma mailtrain md5sum mmx mmxext mng modules mp3 mudflap multilib multiuser nagios-dns nagios-ntp nagios-ping nagios-ssh nano-syntax ncurses network-cron nis nls nptl nptlonly nsplugin objc objc++ opengl openmp openntpd pam pcre pdf perl png policykit pppd pymol python qt-static qt3support readline rrdcgi rrdtool science sensord session smp sqlite sqlite3 sse sse2 sse3 sse4 sse4a sse5 ssl startup-notification svg sysfs system-sqlite tcpd threads tiff truetype type1 udev unicode vaapi vdpau x264 xcb xcomposite xinerama xorg xulrunner zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="plymouth" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" PHP_TARGETS="php5-3" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

gnome-base/gconf-2.32.4 was built with the following:
USE="introspection ldap (multilib) policykit -debug -doc"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common -Wl,--no-as-needed"
Comment 1 Justin Lecher (RETIRED) gentoo-dev 2011-09-19 15:51:08 UTC
Created attachment 287013 [details]
/var/log/portage/build/gnome-base/gconf-2.32.4:20110919-154739.log

build.log
Comment 2 Rafał Mużyło 2011-09-19 16:04:32 UTC
The first question is obviously config.log (given the circumstances, most likely ends up with something pkg-config related).
Comment 3 Justin Lecher (RETIRED) gentoo-dev 2011-09-19 16:12:09 UTC
Created attachment 287017 [details]
/var/tmp/portage/gnome-base/gconf-2.32.4/work/GConf-2.32.4/config.log

Absolutly right
Comment 4 Justin Lecher (RETIRED) gentoo-dev 2011-09-19 16:26:20 UTC
rebuilding gdk-pixbuf helped.
Comment 5 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-09-19 16:52:19 UTC
As discussed on IRC, this is caused by the following chain of events:

1. Justin happened to have an invalid gdk-pixbuf-2.0.pc file after the libpng upgrade:

Name: GdkPixbuf
Description: Image loading and scaling
Version: 2.24.0
Requires: gobject-2.0
Requires.private: gmodule-no-export-2.0 libpng14
Libs: -L${libdir} -lgdk_pixbuf-2.0
Libs.private:  -lm 
Cflags: -I${includedir}/gdk-pixbuf-2.0

2. gconf's configure checked for "glib-2.0 > 2.14.0 gio-2.0 >= 2.25.9 gthread-2.0 gmodule-2.0 >= 2.7.0 gobject-2.0 >= 2.7.0 ORBit-2.0 >= 2.4.0 gtk+-2.0 >= 2.14"

3. gtk+-2.0.pc pulls in gdk-pixbuf-2.0 via "Requires:"

4. As expected, "pkg-config --cflags" died with an error. However, for unknown reasons, "pkg-config --libs" worked! So "PKG_CHECK_MODULES(DEPENDENT_WITH_GTK, ...)" succeeded, configure blithely continued on, and then make failed because DEPENDENT_WITH_GTK_LIBS was defined and DEPENDENT_WITH_GTK_CFLAGS was not.

Conclusions:

a. This is not a bug in gconf. The ultimate cause is not running revdep-rebuild after the libpng upgrade. So marking this "resolved invalid".

b. Under some circumstances, pkg-config --libs can succeed when --cflags fails. IMHO, such behavior is a bug, and merits further investigation.
Comment 6 Justin Lecher (RETIRED) gentoo-dev 2011-09-19 17:06:37 UTC
(In reply to comment #5)
> 
> b. Under some circumstances, pkg-config --libs can succeed when --cflags fails.
> IMHO, such behavior is a bug, and merits further investigation.


So it is a bug and we should find a solution for that
Comment 7 Rafał Mużyło 2011-09-19 19:40:48 UTC
IIRC, there were changes regarding this very problem on pkg-config 0.25 -> 0.26...in pkg.m4 macro - http://cgit.freedesktop.org/pkg-config/commit/?id=4366f5842fc6ca0432c5dfa6b6dcb20d83aa4ee8.

So, no, short of eautoreconf-ing everything, nothing reasonable can be done about it.
Comment 8 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-09-19 20:27:27 UTC
(In reply to comment #7)
> IIRC, there were changes regarding this very problem on pkg-config 0.25 ->
> 0.26...in pkg.m4 macro -
> http://cgit.freedesktop.org/pkg-config/commit/?id=4366f5842fc6ca0432c5dfa6b6dcb20d83aa4ee8.
> 
> So, no, short of eautoreconf-ing everything, nothing reasonable can be done
> about it.

Actually, there is a reasonable solution: "pkg-config --exists" should not skip checking Requires.private. That would have been enough to catch Justin's gconf issue.
Comment 9 Rafał Mużyło 2011-09-19 21:58:52 UTC
Well, if I'm reading the old ChangeLog correctly, it's not that simple - see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=475031.
Comment 10 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-09-20 17:10:24 UTC
*** Bug 383839 has been marked as a duplicate of this bug. ***
Comment 11 Pacho Ramos gentoo-dev 2011-09-20 19:51:40 UTC
(In reply to comment #9)
> Well, if I'm reading the old ChangeLog correctly, it's not that simple - see
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=475031.

That bug should be fixed in pkgconfig-0.26 :-/
Comment 12 Rafał Mużyło 2011-09-20 22:44:14 UTC
No, I've meant that change was introduced *on purpose* to solve that bug.
Comment 13 Rafał Mużyło 2011-09-20 22:45:17 UTC
...and it was introduced long before 0.26 too.
Comment 14 Pacho Ramos gentoo-dev 2011-09-21 13:38:36 UTC
I think we can't to much more here no?
Comment 15 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-10-06 02:51:18 UTC
*** Bug 385829 has been marked as a duplicate of this bug. ***
Comment 16 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-10-06 02:53:31 UTC
(In reply to comment #14)
> I think we can't to much more here no?

Maybe add a tool, something like revdep-rebuild, to check /usr/lib/pkgconfig for inconsistencies?
Comment 17 Samuli Suominen (RETIRED) gentoo-dev 2011-10-06 07:21:55 UTC
ignoring the wider problem... nobody should be hitting this with gdk-pixbuf and libpng as it's already fixed,

*gdk-pixbuf-2.24.0-r1 (15 Sep 2011)

  15 Sep 2011; Samuli Suominen <ssuominen@gentoo.org>
  +gdk-pixbuf-2.24.0-r1.ebuild:
  Use libpng.pc instead of versioned pkg-config file to generate
  Requires.private: libpng instead of versioned one. This will avoid some
  problems with libpng14 to libpng15 upgrade.

unless mixing stable with ~arch of course, but that's unsupported anyway
Comment 18 Samuli Suominen (RETIRED) gentoo-dev 2011-10-06 07:26:05 UTC
We can add !<x11-libs/gdk-pixbuf-2.24.0-r1 to libpng's ebuild to force the order of emerge by blocker. Overkill, or needed?
Comment 19 Samuli Suominen (RETIRED) gentoo-dev 2011-10-06 07:39:10 UTC
(In reply to comment #18)
> We can add !<x11-libs/gdk-pixbuf-2.24.0-r1 to libpng's ebuild to force the
> order of emerge by blocker. Overkill, or needed?

http://sources.gentoo.org/viewvc.cgi/gentoo-x86/media-libs/libpng/libpng-1.5.5.ebuild?r1=1.1&r2=1.2
Comment 20 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-10-06 07:47:31 UTC
(In reply to comment #18)
> We can add !<x11-libs/gdk-pixbuf-2.24.0-r1 to libpng's ebuild to force the
> order of emerge by blocker. Overkill, or needed?

It would be quite helpful. Running revdep-rebuild after the libpng upgrade can add gdk-pixbuf to the rebuild list after packages whose build systems, through one or more levels of pkgconfig indirection, will fail when reading a broken gdk-pixbuf-2.0.pc.
Comment 21 Pacho Ramos gentoo-dev 2011-10-06 18:43:27 UTC
Nice, thanks a lot for the work, I guess we cannot do more now ;)