Posts tagged ‘jhbuild’

Finally some success with building GNOME

After taking some advice I got on #epiphany I’ve finally managed to get both epiphany and epiphany-extensions out of CVS to compile. In this case jhbuild buildone was my friend. I installed gnome-devel and python-gnome2-desktop-dev and set to work.

I used jhbuild to build glib and gtk+ (setting PKG_CONFIG_PATH in between). Then I tackled epiphany from CVS. It gave me no grief at all, though I did forget to enable Python support at first. epiphany-extensions was equally simple.

Finally I can get serious about getting epilicious into GNOME :-)

Compiling GNOME 2.15.90 (failed attempt)

I started trying to compile GNOME 2.15.4, but as you can read from the comments things didn’t quite work out. After a few emails on the gnome-love mailing list I switched to release 2.15.90.

freetype2

I quickly ran into problems with freetype2. It seems Sid’s version is too new. I added a new moduleset to the regular ones I got off the GNOME site:

<?xml version="1.0"?>
<moduleset>
  <tarball id="freetype2" version="2.1.9">
    <source
      href="http://switch.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.9.tar.bz2"
      md5sum="ec1b903e4be5f073caa72458ea58c29c" size="992394" />
  </tarball>
</moduleset>

I saved it as freetype2-2.15.90.modules. You need to add an include tag in gnome-2.15.90.modules and a dep tag on gontconfig in freedesktop-2.15.90.modules.

gtk+

The next thing that failed was gtk+. It said Pango wasn’t built with support for Cairo. A look at config.log for Pango showed that Cairo wasn’t built with the Xrender backend and a look at Cairo’s config.log and output of ./configure --help showed that it inspected the system during configuration to see what backends it could build. (I have to say I really don’t like that sort of behaviour, I prefer it if all configuration options are explicit. Currently it’s trying to be smart but only ends up screwing the user.) I made sure libxrender-dev was installed and I put a link to /usr/lib/pkgconfig/xrender.pc in ${prefix}/lib/pkgconfig (not strictly necessary for Cairo but it seems the resulting cairo-xlib-xrender.pc depends on xrender.pc so I suspect compiling Pango might need it, no harm in having it there anyway, right?).

dbus-glib

Next dbus-glib failed. It’s a well-known problem and the patch is available. However, it seems it wasn’t applied properly by jhbuild and I still got an error saying that ${prefix}/var/run/system_bus_socket - file doesn't exist. Apply the patch manually, re-run jhbuild, answer no to all questions asked by patch (reversing, apply anyway), then skip the patch stage. That should do it for that package.

firefox

Well, that failed as well and I really can’t figure out why. It seems it doesn’t find my installed X libraries during linking. Very weird indeed. I learnt on IRC (#epiphany) that it probably is easier to use Debian’s libxul-dev package. After installing that, and setting PKG_CONFIG_PATH to include both $prefix/lib/pkgconfig and /usr/lib/pkgconfig (it’s better than linking files like I did earlier).

epiphany

This was the package I really wanted all this time. Here things are failing in new and interesting ways. It seems Debian uses a sligtly non-standard split of xulrunner packages for pkg-config. I needed to stick the following line in m4/gecko.m4:

gecko_cv_extra_pkg_dependencies="${gecko_cv_extra_pkg_dependencies} xulrunner-js"

It goes after the if-statement in the pkg-config area of the file.

Still, that doesn’t make it compile successfully. It seems that my two conflicting freetype2 versions are confusing the build… For now I’m giving up, but I’ll be back with a more targeted build story… I will build epiphany from CVS and live to tell about it!!! :-)

Compiling GNOME 2.15.4 using jhbuild

The other day I had some problems early on when trying to compile from GNOME CVS using jhbuild. From a sudden surge in brain activity I got the idea to build a release of the development version of GNOME—the 1.15.x series—the lates one is 2.15.4.

I got some help from Elijah Newren’s post on compiling GNOME with jhbuild. Using the links from the release notice on FootNotes I got as far as

% jhbuild bootstrap

without problems. Then I got stuck:

% jhbuild -m \
> http://ftp.gnome.org/pub/GNOME/teams/releng/2.15.4/gnome-2.15.4.modules  \
> build
jhbuild build: dependent module "libdaemon" not found
usage: jhbuild [ -f config ] command [ options ... ]

My first thought was that installing the Debian package libdaemon0 might solve it. Of course it didn’t. Then I remembered that during bootstrap Python 2.4.3 was downloaded and installed, despite being installed on my system already. Not too much of a surprise then that libdaemon0 didn’t do any good.

After looking at jhbuild modulesets for previous releases as well as the bleeding CVS moduleset I got an idea. I saved the 2.15.4 moduleset locally and modified freedesktop-2.15.4.modules to include the following lines:

<tarball id="libdaemon" version="0.10">
  <source href="http://0pointer.de/lennart/projects/libdaemon/libdaemon-0.10.tar.gz" />
  <branch checkoutdir="libdaemon" module="trunk" repo="libdaemon.0pointer.de"/>
</tarball>

It’s compiling rather happily at the moment so I’m optimistic… I’ll add a note if things go pear-shaped…