[gnome-love] error in gvfs module building GNOME 2.91.2 on Ubuntu 10.10



I'm trying to build GNOME 2.91.2 using JHBuild on Ubuntu 10.10.  Many modules built successfully, and then the gvfs module failed to build with this error:

make[4]: Entering directory `/home/adam/gnome/src/gvfs-1.6.5/daemon'
  CCLD   gvfsd-gphoto2
/home/adam/gnome/install/lib64/libgio-2.0.so: undefined reference to `g_source_get_time'

I investigated a bit.  The failing linker command line includes these shared libraries (among many others):

/home/adam/gnome/install/lib64/libgio-2.0.so
/usr/lib/libgudev-1.0.so
/usr/lib/libudev.so
/usr/lib/libglib-2.0.so

The undefined reference is occurring because g_source_get_time is a new symbol available only in the newly built libglib-2.0.so, but we're linking with /usr/lib/libglib-2.0.so, which is an older glib that comes from the distro itself.  This happens because gvfs depends on gudev, and gudev is found only in /usr/lib; jhbuild hasn't built it.

gudev itself is part of the udev source tarball.  gnome-external-deps-2.91.2.modules pulls in udev-111, which is a fairly ancient udev from 2007 (see http://www.kernel.org/pub/linux/utils/kernel/hotplug/).  That was before gudev was included in udev.  So jhbuild is building this old udev, which doesn't include gudev, so the gvfs build pulls in gudev from my distro, which causes the distro's libglib to be linked, which causes the linker error.

Questions:

- Why does the external dependencies list reference such an old udev, which doesn't include gudev?
- I'm going to try to work around this by editing the external dependencies to reference a newer udev.  Is this the right approach, or is there some better workaround?
- Presumably 2.91.2 was released only after the release team had successfully build on some distro.  Why did this gvfs/gudev problem not occur in that case?

adam



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]