GNOME Bugzilla – Bug 577456
missing dependencies in gnome-shell-build-setup.sh: python-gobject-dev and jhbuild
Last modified: 2009-04-01 21:14:21 UTC
This is really a trivial bug. The script gnome-shell-build-setup.sh kindly suggests which packets to install in order to compile gnome-shell, but fails to mention python-gobject-dev and jhbuild (at least in debian-based systems).
jhbuuild should not be needed - the script checks out a private copy of jhbuild itself. What error did you run into? What component needed python-gobject-dev? I also can't think of anything that would need that.
You're completely right, so I'll change my statement (I hadn't noticed an error in the console). The issue I've experienced is not related to the mentioned packets, but to the use of dpkg --status in gnome-shell-build-setup.sh (line 53). My problem: $bin/bash gnome-shell-build-setup.sh Checking out jhbuild into /home/guillo/Source/jhbuild ... gnome-shell-build- setup.sh: line 134: svn: command not found done Installing jhbuild... gnome-shell-build-setup.sh: line 138: cd: /home/guillo/Source/jhbuild: No such file or directory Writing ~/.jhbuildrc ... done Done. The script gnome-shell-build-setup.sh does check if subversion is installed, but it does that using the return value of dpkg --status $package. What the script does [line 44-56]: if test x$system = xUbuntu -o x$system = xDebian ; then reqd="" for pkg in \ build-essential curl subversion \ automake bison flex git-core gnome-common gtk-doc-tools \ libdbus-glib-1-dev libgconf2-dev libgtk2.0-dev libffi-dev \ libgnomeui-dev librsvg2-dev libwnck-dev libgl1-mesa-dev \ mesa-common-dev python2.5-dev libreadline5-dev xulrunner-1.9-dev \ ; do if ! dpkg --status $pkg > /dev/null 2>&1; then reqd="$pkg $reqd" fi done The problem arises if the $package has been purged/removed, since the return value is still 0 (as when the package is installed). Example with xulrunner, a never installed package: $dpkg --status xulrunner ;echo $? [...] 1 $aptitude install xulrunner $dpkg --status xulrunner ;echo $? [...] 0 $aptitude purge xulrunner $dpkg --status xulrunner ;echo $? Package: xulrunner Status: purge ok not-installed Priority: optional Section: devel 0 In conclusion, you'll probably have to extract the status from the "Status" tag.
Fix committed as: http://git.gnome.org/cgit/gnome-shell/commit/?id=7995f75cfbc54811490fac8ab95ee065d00c3bb7 Testing appreciated... I don't have a dpkg-based system where I can actually try running the script, I tried the dpkg_is_installed function in isolation on a server system.