Update Fedora deps (Bug 572053) and reorganize/improve in general

Package checking now happens first, and checking for "curl" (and other
packages needed by the script itself) happens at the same time. I
tried to extract out a genericized list of what packages are needed,
and then reordered the packages for each distro to make it clear which
distros are missing some of the required packages in their lists
(currently, everything except Fedora)
This commit is contained in:
Dan Winship 2009-02-24 13:05:13 -05:00
parent 67092f807e
commit c67289fa2c

View File

@ -9,27 +9,119 @@
#
# Copyright (C) 2006, 2007, 2008 Imendio AB
#
SOURCE=$HOME/Source
BASEURL=http://git.gnome.org/cgit/gnome-shell/plain/tools/build
if ! which curl > /dev/null 2>&1; then
cat <<EOF
This script requires the curl program to run
For Debian-based systems run:
apt-get install curl
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
For Red Hat-based systems run:
yum install curl
# Required software:
#
# For this script:
# binutils, curl, gcc, make, subversion
#
# 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, gconf, GL, gtk, libffi, libgnomeui, librsvg, libwnck,
# python, readline, spidermonkey ({mozilla,firefox,xulrunner}-js),
# xdamage
#
# Non-devel packages needed by gnome-shell and its deps:
# gdb, glxinfo, python, Xephyr, xeyes*, xlogo*, xterm*, zenity
#
# (*)ed packages are only needed because gnome-shell launches them
# when running in Xephyr mode, and we should probably change it to use
# less lame things.
For SuSE-based systems run:
zypper install curl
For Mandriva-based systems run:
urpmi curl
EOF
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
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 make subversion \
automake bison flex git gnome-common gnome-doc-utils intltool \
libtool pkgconfig \
dbus-glib-devel GConf2-devel gtk2-devel libffi-devel libgnomeui-devel \
librsvg2-devel libwnck-devel mesa-libGL-devel python-devel readline-devel \
xulrunner-devel libXdamage-devel \
gdb glx-utils xorg-x11-apps xorg-x11-server-Xephyr xterm 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 \
gconf2-devel libffi-devel libgnomeui-devel librsvg-devel libwnck-devel \
readline-devel mozilla-xulrunner190-devel xorg-x11-devel \
xterm 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 \
libGConf2-devel ffi5-devel libgnomeui2-devel librsvg2-devel \
libwnck-1-devel GL-devel readline-devel libxulrunner-devel \
libxdamage-devel \
mesa-demos x11-server-xephyr x11-apps xterm zenity \
; 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/cgit/gnome-shell/plain/tools/build
if [ -d $SOURCE ] ; then : ; else
mkdir $SOURCE
@ -66,75 +158,5 @@ if test "x`echo $PATH | grep $HOME/bin`" = x; then
echo
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
if test x$system = xUbuntu -o x$system = xDebian ; then
reqd=""
for pkg in build-essential automake gnome-common flex bison curl \
git-core subversion gtk-doc-tools mesa-common-dev xulrunner-1.9-dev \
libdbus-glib-1-dev libffi-dev libgconf2-dev libgtk2.0-dev libgl1-mesa-dev \
libgstreamer-plugins-base0.10-dev python2.5-dev libwnck-dev libreadline5-dev librsvg2-dev libgnomeui-dev; do
if ! dpkg --status $pkg > /dev/null 2>&1; then
reqd="$pkg $reqd"
fi
done
if test ! "x$reqd" = x; then
echo "Please run 'sudo apt-get install $reqd' before building gnome-shell."
echo
fi
fi
if test x$system = xFedora ; then
reqd=""
for pkg in libffi-devel libXdamage-devel gnome-doc-utils xulrunner-devel \
librsvg2-devel libgnomeui-devel xterm xorg-x11-apps xorg-x11-server-Xephyr \
libwnck-devel GConf2-devel readline-devel; 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 libffi-devel xorg-x11-devel gnome-doc-utils-devel librsvg-devel \
mozilla-xulrunner190-devel libgnomeui-devel xterm xorg-x11 xorg-x11-server-extra \
libwnck-devel gconf2-devel readline-devel flex bison; 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\"' before building gnome-shell."
echo
fi
fi
if test x$system = xMandrivaLinux ; then
reqd=""
for pkg in ffi5-devel libxdamage-devel gtk-doc gnome-common gnome-doc-utils libxulrunner-devel \
librsvg2-devel libgnomeui2-devel xterm x11-apps x11-server-xephyr \
libwnck-1-devel libGConf2-devel readline-devel flex bison GL-devel \
zenity intltool mesa-demos ; 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
echo "Done."