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 624009 - Fix .deb dependencies in the setup script.
Fix .deb dependencies in the setup script.
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2010-07-10 05:35 UTC by Nathan A. Mourey II
Modified: 2010-07-20 14:32 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fix .deb dependencies in the setup script. (1.47 KB, patch)
2010-07-10 05:35 UTC, Nathan A. Mourey II
rejected Details | Review
Use dpkg-checkbuilddeps to check for installed packages (1.68 KB, patch)
2010-07-11 18:43 UTC, Frederic Peters
accepted-commit_now Details | Review

Description Nathan A. Mourey II 2010-07-10 05:35:32 UTC
Fix names for the following packages : libjpeg62-dev libpng12-dev libtiff4-dev
this should work with all current debian versions and ubuntu dapper onwards.

Fixed a comment.
Comment 1 Nathan A. Mourey II 2010-07-10 05:35:35 UTC
Created attachment 165597 [details] [review]
Fix .deb dependencies in the setup script.
Comment 2 Frederic Peters 2010-07-11 16:38:23 UTC
Comment on attachment 165597 [details] [review]
Fix .deb dependencies in the setup script.

Nathan, this is not correct, as it will fail with systems using libtiff5-dev; for a long time development packages have a generic Provide: key; what kind of failure do you get?
Comment 3 Dean Loros 2010-07-11 17:07:51 UTC
I get the same error---failure looks like:  

dean@linux:~/Desktop$ '/home/dean/Desktop/gnome-shell-build-setup.sh' 
Please run 'sudo apt-get install libtiff-dev libpng-dev libjpeg-dev ' and try again.


I can confirm that I have all the .dev files it is asking for installed--versions are as the OP.

Ubuntu Maverick testing 10.10

Via IRC I got this version of gnome-shell-build-setup.sh & it works:

#!/bin/sh
#
# Script that sets up jhbuild to build gnome-shell. Run this to
# checkout jhbuild and the required configuration. 
#
# Copyright (C) 2008, Red Hat, Inc.
#
# Some ideas and code taken from gtk-osx-build
#
# Copyright (C) 2006, 2007, 2008 Imendio AB
#

# Pre-check on GNOME version

gnome_version=`gnome-session --version 2>/dev/null | (read name version && echo $version)`
have_gnome_26=false
case $gnome_version in
    2.2[6789]*|2.[3456789]*|3.*)
	have_gnome_26=true
    ;;
esac

if $have_gnome_26 ; then : ; else
   echo "GNOME 2.26 or newer is required to build GNOME Shell" 1>&2
   exit 1
fi

############################################################

if which lsb_release > /dev/null 2>&1; then
  system=`lsb_release -is`
elif [ -f /etc/fedora-release ] ; then
  system=Fedora
elif [ -f /etc/SuSE-release ] ; then
  system=SUSE
elif [ -f /etc/mandriva-release ]; then
  system=MandrivaLinux
fi

# Required software:
#
# For this script:
# binutils, curl, gcc, make, git
#
# General build stuff:
# automake, bison, flex, git, gnome-common, gtk-doc, intltool,
# libtool, pkgconfig
#
# Devel packages needed by gnome-shell and its deps:
# dbus-glib, GL, gnome-menus, gstreamer, libffi,
# libjasper, libjpeg, libpng, libtiff, libwnck,
# libxml2, python,readline, spidermonkey ({mozilla,firefox,xulrunner}-js),
# startup-notification, xdamage
#
# Non-devel packages needed by gnome-shell and its deps:
# glxinfo, gstreamer-plugins-base, gstreamer-plugins-good,
# gvfs, python, pygobject, gnome-python (gconf), gnome-terminal*
# Xephyr*, zenity
#
# (*) only needed for --xephyr

# Can this be simplified? Obvious ways don't handle handle packages
# that have been installed then removed. ('purged' status, e.g.)
dpkg_is_installed() {
    status=`dpkg-query --show --showformat='${Status}' $1 2>/dev/null`
    if [ $? = 0 ] ; then
	set $status
        if [ "$3" = installed ] ; then
             return 0
        fi
    fi

    return 1
}

if test x$system = xUbuntu -o x$system = xDebian -o x$system = xLinuxMint ; then
  reqd=""
  for pkg in \
    build-essential curl \
    automake bison flex git-core gnome-common gtk-doc-tools gvfs gvfs-backends \
    libdbus-glib-1-dev libffi-dev libgnome-menu-dev libgnome-desktop-dev \
    libjasper-dev libjpeg62-dev libpng12-dev libstartup-notification0-dev libtiff4-dev \
    libwnck-dev libgl1-mesa-dev libreadline5-dev libxml2-dev mesa-common-dev mesa-utils \
    python-dev python-gconf python-gobject xulrunner-dev xserver-xephyr gnome-terminal \
    libcroco3-dev libgstreamer0.10-dev gstreamer0.10-plugins-base gstreamer0.10-plugins-good \
    ; do
      if ! dpkg_is_installed $pkg; then
        reqd="$pkg $reqd"
      fi
  done
  if test ! "x$reqd" = x; then
    echo "Please run 'sudo apt-get install $reqd' and try again."
    echo
    exit 1
  fi
fi

if test x$system = xFedora ; then
  reqd=""
  for pkg in \
    binutils curl gcc gcc-c++ make \
    automake bison flex git gnome-common gnome-doc-utils gvfs intltool \
    libtool pkgconfig dbus-glib-devel gnome-desktop-devel gnome-menus-devel \
    gnome-python2-gconf jasper-devel libffi-devel libjpeg-devel \
    libpng-devel libtiff-devel libwnck-devel mesa-libGL-devel \
    python-devel pygobject2 readline-devel xulrunner-devel libXdamage-devel libcroco-devel \
    libxml2-devel gstreamer-devel gstreamer-plugins-base gstreamer-plugins-good \
    glx-utils startup-notification-devel xorg-x11-server-Xephyr gnome-terminal zenity \
    ; do
      if ! rpm -q $pkg > /dev/null 2>&1; then
        reqd="$pkg $reqd"
      fi
  done
  if test ! "x$reqd" = x; then
    gpk-install-package-name $reqd
  fi
fi

if test x$system = xSUSE ; then
  reqd=""
  for pkg in \
    curl \
    bison flex gnome-doc-utils-devel \
    libffi-devel gnome-desktop-devel libwnck-devel \
    xorg-x11-proto-devel readline-devel mozilla-xulrunner190-devel \
    libcroco-devel xorg-x11-devel xorg-x11 xorg-x11-server-extra \
    ; do
      if ! rpm -q $pkg > /dev/null 2>&1; then
        reqd="$pkg $reqd"
      fi
  done
  if test ! "x$reqd" = x; then
    echo "Please run 'su --command=\"zypper install $reqd\"' and try again."
    echo
    exit 1
  fi
fi

if test x$system = xMandrivaLinux ; then
  reqd=""
  for pkg in \
    curl \
    bison flex gnome-common gnome-doc-utils gtk-doc intltool \
    ffi5-devel \
    libwnck-1-devel GL-devel readline-devel libxulrunner-devel \
    libxdamage-devel mesa-demos x11-server-xephyr zenity \
    libcroco0.6-devel \
    ; do
      if ! rpm -q --whatprovides $pkg > /dev/null 2>&1; then
        reqd="$pkg $reqd"
      fi
  done
  if test ! "x$reqd" = x; then
	gurpmi --auto $reqd
  fi
fi

SOURCE=$HOME/Source
BASEURL=http://git.gnome.org/browse/gnome-shell/plain/tools/build

if [ -d $SOURCE ] ; then : ; else
    mkdir $SOURCE
    echo "Created $SOURCE"
fi

if [ -d $SOURCE/jhbuild ] ; then
    if [ -d $SOURCE/jhbuild/.git ] ; then
        echo -n "Updating jhbuild ... "
        ( cd $SOURCE/jhbuild && git pull --rebase > /dev/null ) || exit 1
        echo "done"
    else
        echo "$SOURCE/jhbuild is not a git repository"
        echo "You should remove it and rerun this script"
	exit 1
    fi
else
    echo -n "Checking out jhbuild into $SOURCE/jhbuild ... "
    cd $SOURCE
    git clone git://git.gnome.org/jhbuild > /dev/null || exit 1
    echo "done"
fi

echo "Installing jhbuild..."
(cd $SOURCE/jhbuild && make -f Makefile.plain DISABLE_GETTEXT=1 bindir=$HOME/bin install >/dev/null)

if [ -e $HOME/.jhbuildrc ] ; then
    if grep JHBUILDRC_GNOME_SHELL $HOME/.jhbuildrc > /dev/null ; then : ; else
	mv $HOME/.jhbuildrc $HOME/.jhbuildrc.bak
	echo "Saved ~/.jhbuildrc as ~/.jhbuildrc.bak"
    fi
fi

echo -n "Writing ~/.jhbuildrc ... "
curl -L -s -o $HOME/.jhbuildrc $BASEURL/jhbuildrc-gnome-shell
echo "done"

if [ ! -f $HOME/.jhbuildrc-custom ]; then
    echo -n "Writing example ~/.jhbuildrc-custom ... "
    curl -L -s -o $HOME/.jhbuildrc-custom $BASEURL/jhbuildrc-custom-example
    echo "done"
fi

if test "x`echo $PATH | grep $HOME/bin`" = x; then
    echo "PATH does not contain $HOME/bin, it is recommended that you add that."
    echo
fi

echo "Done."
Comment 4 Frederic Peters 2010-07-11 18:26:10 UTC
Oh, that's because gnome-shell-build-setup.sh doesn't support the Provides key; it should be fixed with an improved dpkg_is_installed function (dpkg-checkbuilddeps could be of some inspiration, but it's written in Perl).
Comment 5 Frederic Peters 2010-07-11 18:43:46 UTC
Created attachment 165691 [details] [review]
Use dpkg-checkbuilddeps to check for installed packages

This patch uses dpkg-checkbuilddeps (from dpkg-dev package) to check for installed packages, which brings support for the Provides field.
Comment 6 Dean Loros 2010-07-11 22:01:52 UTC
Verified that the patch works very well with Maverick Testing 10.10
Comment 7 Owen Taylor 2010-07-12 18:12:57 UTC
Review of attachment 165691 [details] [review]:

Looks fine as far as I can tell. Might be good if the body of the commit message mentioned the inspiration (handling provides)
Comment 8 Jendrik Seipp 2010-07-15 23:25:02 UTC
I can confirm that the patch fixes the error and the patched script should be linked from the main wiki page.
Comment 9 Frederic Peters 2010-07-20 14:32:04 UTC
Thanks for the review, pushed (with an expanded commit message) as 6259513.