After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 577456 - missing dependencies in gnome-shell-build-setup.sh: python-gobject-dev and jhbuild
missing dependencies in gnome-shell-build-setup.sh: python-gobject-dev and jh...
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
unspecified
Other Linux
: Normal trivial
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2009-03-31 13:13 UTC by invernizzi.l@gmail.com
Modified: 2009-04-01 21:14 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description invernizzi.l@gmail.com 2009-03-31 13:13:29 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).
Comment 1 Owen Taylor 2009-03-31 13:17:04 UTC
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.
Comment 2 invernizzi.l@gmail.com 2009-03-31 15:16:13 UTC
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.
Comment 3 Owen Taylor 2009-04-01 21:02:18 UTC
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.