Jhbuild Dependencies for Ubuntu
Check out the JhbuildOnUbuntu comprehensive guide to using Jhbuild.
Contents
Ubuntu Intrepid
The libtool version in Intrepid (2.2.4) seems not to be compatible with GTK+ compilation. Downgrading to libtool Hardy version (1.5) seems to resolve the problem. More info welcomed...
According to ubuntu people this is a bug of GTK+. bug report
An alternative is, when building gtk+ and the compilation stops with the libtool-related issue, enter to a shell and replace the local gtk+ copy of libtool with the system copy of libtool (currently version 2.2.4 in 8.10, found at /usr/bin/libtool). Then, compilation continues and completes.
In case the GTK+ compile stage fails with this output (bug report) forcing jhbuild to go back to configure stage (6) should fix it.
Build Requirements
$ sudo apt-get install gnome-common build-essential doxygen subversion automake1.4 automake1.7 cvs git-core docbook docbook-utils docbook-xsl flex bison texinfo python2.5-dev lynx mono-gmcs libtiff4-dev libxtst-dev libgdbm-dev libxml-simple-perl libelfg0-dev libcupsys2-dev libldap2-dev libexchange-storage1.2-dev libxmu-dev libpam0g-dev libgpgme11-dev libfreetype6-dev libpng12-dev libxrender-dev libxi-dev libexpat1-dev libbz2-dev firefox-dev libxcursor-dev guile-1.8-dev libxdamage-dev libxcomposite-dev libmono-cairo2.0-cil xnest libxft-dev libloudmouth1-0 libloudmouth1-dev libxss-dev libxkbfile-dev gtk-doc-tools libjasper-dev libnl-dev ppp-dev libdv4-dev uuid-dev libpcre3-dev libsqlite3-dev libpurple-dev libcurl4-gnutls-dev libxul-dev libffi-dev liboil0.3-dev
The sanitycheck command will still complain about the missing automake1.8, which can be fetched from launchpad.net (.deb).
$ sudo dpkg -i automake1.8_1.8.5+nogfdl-2_all.deb
Ubuntu Gutsy
Build Requirements
$ sudo apt-get install gnome-common build-essential doxygen subversion automake1.4 automake1.7 automake1.8 cvs git-core docbook docbook-utils docbook-xsl flex bison texinfo python2.5-dev lynx mono-gmcs libtiff4-dev libxtst-dev libgdbm-dev libxml-simple-perl libelfg0-dev libcupsys2-dev libldap2-dev libexchange-storage1.2-dev libxmu-dev libpam0g-dev libgpgme11-dev libfreetype6-dev libpng12-dev libxrender-dev libxi-dev libexpat1-dev libbz2-dev firefox-dev libxcursor-dev guile-1.8-dev libxdamage-dev libxcomposite-dev libmono-cairo2.0-cil xnest libxft-dev libloudmouth1-0 libloudmouth1-dev libxss-dev libxkbfile-dev gtk-doc-tools libjasper-dev libnl-dev ppp-dev libdv4-dev uuid-dev libpcre3-dev libsqlite3-dev libpurple-dev libcurl4-gnutls-dev libxul-dev xulrunner-1.9-dev
If you installed the packages above, you do not need to run jdbuild bootstrap.
Building from tarballs
If you want to build the latest release from tarballs, change the moduleset to the latest version from http://ftp.acc.umu.se/pub/gnome/teams/releng/:
moduleset = 'http://ftp.acc.umu.se/pub/gnome/teams/releng/2.20.1/gnome-suites-2.20.1.modules'
Also, copy the matching sample-tarball.jhbuildrc to ~/.jhbuildrc
Building from svn
Copy jhbuild/sample.jhbuildrc to ~/.jhbuildrc. You don't need to change the moduleset line.
Disable mozilla
If you want to skip building mozilla, add the following line somewhere in your ~/.jhbuildrc (mozilla is huge. If you want to build it anyway, you probably don't the firefox-dev package listed as a build requirement):
skip.append('mozilla')
Ubuntu Feisty
Building GNOME 2.20
Pick the latest jhbuildrc file from: http://ftp.acc.umu.se/pub/gnome/teams/releng/, you must copy the sambple-tarball.jhbuildrc file to ~/.jhbuildrc. The user running jhbuild must have write permissions in the target directory (/opt/gnome2 by default), otherwise you will need to change it.
Edit the moduleset parameter to use the remote moduleset:
moduleset = 'http://ftp.acc.umu.se/pub/gnome/teams/releng/2.19.5/gnome-suites-2.19.5.modules'
Alternatively, to build from svn use:
moduleset = 'gnome-2.20'
Its best to not use jhbuild bootstrap on feisty, but instead:
sudo apt-get install gettext autoconf libtool automake1.4 automake1.7 automake1.8 automake1.9 automake pkg-config python-dev
To start building gnome you need to bootstrap the jhbuild environment and then:
$ bin/jhbuild build
.jhbuildrc additions
os.environ['PKG_CONFIG_PATH'] = "/usr/lib/pkgconfig"
Include dir for libnspr:
module_autogenargs['evolution-data-server'] = autogenargs + ' --with-nspr-includes=/usr/include/firefox/nspr'
Disable mozilla building:
skip.append('mozilla')
Build Requirements
$ sudo apt-get install build-essential cvs m4 docbook docbook-xsl flex bison texinfo lynx doxygen gawk libpopt-dev libfreetype6-dev libpng12-dev libxrender-dev libtiff4-dev x11proto-kb-dev libxtst-dev libxext-dev libexpat1-dev libbz2-dev libaudiofile-dev xlibs-dev docbook-utils docbook2x openjade libxft-dev git-core subversion libgdbm-dev libxml-simple-perl libcupsys-dev xnest libexif-dev libelf-dev libexchange-storage1.2-dev libldap2-dev libsdl1.2-dev libncurses5-dev evolution-dev libpt-dev git-core texinfo firefox-dev guile-1.8 guile-1.8-dev libxdamage-dev libxcomposite-dev libgpgme11-dev mono-gmcs libmono-cairo2.0-cil
Note that these must be installed before running jhbuild bootstrap, otherwise some python modules might not be picked up. See http://article.gmane.org/gmane.comp.gnome.love/1908/match=gdbm
Ubuntu Edgy Eft
Building GNOME 2.18
At the time when I compiled Gnome 2.18 with jhbuild, both Ekiga and Opal failed to build.
.jhbuildrc additions
1 os.environ['PKG_CONFIG_PATH'] = "/usr/lib/pkgconfig"
Additionally, you might need to set PWLIBDIR to compile OPAL - this is not required on Edgy.
1 os.environ['PWLIBDIR'] = "/opt/gnome2/include/ptlib/unix"
Include dir for libnspr:
1 module_autogenargs['evolution-data-server'] = autogenargs + ' --with-nspr-includes=/usr/include/firefox/nspr'
Disable mozilla building:
1 skip.append('mozilla')
Build Requirements
$ sudo apt-get install build-essential cvs m4 docbook docbook-xsl flex bison texinfo lynx doxygen gawk libpopt-dev libfreetype6-dev libpng12-dev libxrender-dev libtiff4-dev x11proto-kb-dev libxext-dev libexpat1-dev libbz2-dev libaudiofile-dev xlibs-dev docbook-utils docbook2x openjade libxft-dev git-core subversion libgdbm-dev libxml-simple-perl libcupsys-dev xnest libexif-dev libexchange-storage1.2-dev libldap2-dev libsdl1.2-dev libncurses5-dev evolution-dev libpt-dev git-core texinfo firefox-dev
Note that these must be installed before running jhbuild bootstrap, otherwise some python modules might not be picked up. See http://article.gmane.org/gmane.comp.gnome.love/1908/match=gdbm
Comments
Ekiga and Opal are ok now.
Gnome 2.17.5
- Mozilla failed to build.
- deskbar-applet requires python-elementtree. But, it was not recognized by python version jhbuid installed. So, ./configure it myself. To get this done, installed python-gobject-dev, python-gtk2-dev, python-gnome2-dev.
Gnome 2.17.4
- Build Requirements: - On Edgy, i had to install libxklavier-dev, libxkbfile-dev and libenchant-dev.
- Building librsgv: - There are two folders for mozilla/firefox module. I copied the plugin and java subdirs from firefox folder to mozilla folder.
Big problems compiling evolution-data-server: - See http://www.gnomebangalore.org/pipermail/gnome/2005-September/000262.html - I copied all header files myself (maybe mozilla-dev package solves this problem).
- Missing ~/bin/install-check. Solution: cp /usr/bin/install-check ~/bin
Evolution: - Requested 'libexchange-storage-1.2 >= 1.9.4'. Ubuntu Edgy version is 1.8.1.
Ubuntu Hoary/Dapper
Building GNOME 2.16
Build Requirements
- build-essential
- docbook
- docbook-utils
- docbook-xsl
- docbook2x
- doxygen
- graphviz (optional)
- bison (was yacc)
- flex
- libpopt-dev (libbonobo)
- cvs
- svn
- git-core (cairo, dbus-python, dbus-glib)
Modules are listed as follows: devel-package (required-by)
- openjade (gtk-doc)
- libfreetype6-dev (fontconfig)
- libexpat1-dev (fontconfig)
- libpng3-dev (cairo)
- libxrender-dev (cairo)
- libtiff4-dev (gtk+)
- x11proto-kb-dev (gtk+)
- libxext-dev (gtk+)
texinfo (libidl - to get makeinfo)
- mozilla-dev (evolution-data-server)
- libsdl1.2-dev (gnomemeeting)
- libpt-dev (gnomemeeting)
- xlibmesa-glu-dev (glitz)
- libgcrypt11-dev (opencdk)
- libcupsys2-dev (libgnomecups)
- automake1.9 (gnome-icon-theme)
- libbz2-dev (gnome-vfs)
- xlibs-dev (gnome-session)
- libncurses5-dev (vte)
- libexif-dev (eog, nautilus)
- libxkbfile-dev (libxklavier)
- libgdbm-dev (avahi)
libpam0g-dev (PolicyKit)
- libxml-simple-perl (icon-naming-utils)
Usual Problems
- If you are building dbus with python bindings, you need python-pyrex
The compilation of gtkhtml may fail with the message libgtk-x11-2.0.so: undefined reference to `g_utf8_collate_key_for_filename. There is no fix as of yet. But there is a workaround to compile gtkhtml without libsoup support. To do that, apply the following patch to the configure.in file in the gtkhtml source dir.
Index: configure.in
===================================================================
RCS file: /cvs/gnome/gtkhtml/configure.in,v
retrieving revision 1.286
diff -u -r1.286 configure.in
--- configure.in 6 Jun 2005 04:47:29 -0000 1.286
+++ configure.in 17 Jun 2005 15:38:16 -0000
@@ -89,9 +89,11 @@
AC_DEFINE(HAVE_OLD_SOUP)],
have_soup="no")
fi
+
+have_soup="no"
AM_CONDITIONAL(HAVE_SOUP, test x$have_soup != xno)
-AC_SUBST(SOUP_CFLAGS)
-AC_SUBST(SOUP_LIBS)
+dnl AC_SUBST(SOUP_CFLAGS)
+dnl AC_SUBST(SOUP_LIBS)
dnl **************************************************
dnl * File ChooserWhile building cairo the build may fail in the test dir like this cairo : /opt/gnome2/lib/libpixman.so: undefined reference to `_FbOnes' The solution is to open a shell, and edit the Makefile which has a line SUBDIRS = src test doc Just remove the test word from there and rerun the build.
