tools: Remove outdated jhbuild setup script
As useful as the custom jhbuild setup was at the time, it has been superseded by jhbuild proper (which gained the ability to install system dependencies since) or alternatives like containers. Given that the script hasn't been meaningfully updated for almost 10 years, its list of dependencies is hopelessly outdated, and it's therefore more likely to confuse newcomers than being of actual help. As much as I have fond memories of the script when starting out, it's finally time to retire. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3040>
This commit is contained in:
parent
dcee0c6329
commit
7b5821251f
@ -1,348 +0,0 @@
|
||||
#!/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
|
||||
#
|
||||
|
||||
release_file=
|
||||
|
||||
if which lsb_release > /dev/null 2>&1; then
|
||||
system=`lsb_release -is`
|
||||
version=`lsb_release -rs`
|
||||
elif [ -f /etc/fedora-release ] ; then
|
||||
system=Fedora
|
||||
release_file=/etc/fedora-release
|
||||
elif [ -f /etc/SuSE-release ] ; then
|
||||
system=SUSE
|
||||
release_file=/etc/SuSE-release
|
||||
elif [ -f /etc/mandriva-release ]; then
|
||||
system=MandrivaLinux
|
||||
release_file=/etc/mandriva-release
|
||||
fi
|
||||
|
||||
if [ x$release_file != x ] ; then
|
||||
version=`sed 's/[^0-9\.]*\([0-9\.]\+\).*/\1/' < $release_file`
|
||||
fi
|
||||
|
||||
# This is the configuration of packages that we'll need to successfully jhbuild.
|
||||
# Each line is of the form:
|
||||
#
|
||||
# name_of_depenency: <distro_chars>:package [<distro_chars>:package...]
|
||||
#
|
||||
# The dependency name is purely informative and isn't otherwise used. distro_chars are:
|
||||
#
|
||||
# f: Fedora
|
||||
# d: Debian/Ubuntu
|
||||
# s: SuSE
|
||||
# m: Mandriva
|
||||
#
|
||||
# Rather than have some complicated system here, when we have packages that depend
|
||||
# on distribution version, we just tweak the package list in the code below.
|
||||
# Where known, the module that requires a library is commented.
|
||||
|
||||
all_packages() {
|
||||
cat <<EOF
|
||||
# For this script:
|
||||
curl: fdsm:curl
|
||||
git: f:git d:git-core
|
||||
|
||||
# Build tools
|
||||
build-essential: d:build-essential
|
||||
automake: fd:automake
|
||||
asn1Parser: f:libtasn1-tools d:libtasn1-3-bin s:libtasn1 # gcr
|
||||
binutils: f:binutils
|
||||
bison: fds:bison
|
||||
cmake: fd:cmake # libproxy
|
||||
docbook-style-xsl: f:docbook-style-xsl d:docbook-xsl # gtk-doc
|
||||
flex: fds:flex
|
||||
gettext: fd:gettext
|
||||
gcc: f:gcc
|
||||
g++: f:gcc-c++
|
||||
gperf: f:gperf d:gperf # evolution-data-server gudev
|
||||
intltool: f:intltool
|
||||
libtool: f:libtool
|
||||
make: f:make
|
||||
perl-XML-Simple: f:perl-XML-Simple d:libxml-simple-perl # icon-naming-utils
|
||||
pkgconfig: f:pkgconfig
|
||||
python: f:python
|
||||
ruby: fds:ruby # WebKit
|
||||
texinfo: fd:texinfo # libgtop
|
||||
xsltproc: f:libxslt d:xsltproc # gtk-doc
|
||||
|
||||
# Image handling libraries
|
||||
freetype: f:freetype-devel d:libfreetype6-dev # fontconfig
|
||||
jasper: f:jasper-devel d:libjasper-dev # gdk-pixbuf
|
||||
libjpeg: f:libjpeg-devel d:libjpeg-dev # gdk-pixbuf
|
||||
libpng: f:libpng-devel d:libpng-dev # gdk-pixbuf
|
||||
libtiff: fs:libtiff-devel d:libtiff-dev # gdk-pixbuf
|
||||
|
||||
# X libraries
|
||||
GL: f:mesa-libGL-devel d:mesa-common-dev d:libgl1-mesa-dev m:GL-devel # cogl
|
||||
libX11: s:xorg-x11-proto-devel s:xorg-x11-devel # gtk+
|
||||
libXcomposite: f:libXcomposite-devel d:libxcomposite-dev # cogl mutter
|
||||
libXcursor: f:libXcursor-devel libxcursor-dev # mousetweaks
|
||||
libXdamage: f:libXdamage-devel m:libxdamage-devel d:libxdamage-dev # cogl mutter
|
||||
libXi: f:libXi-devel d:libxi-dev # gtk+
|
||||
libXrandr: f:libXrandr-devel d:libxrandr-dev # gnome-desktop
|
||||
libXrender: f:libXrender-devel d: libxrender-dev # cairo WebKit
|
||||
libXt: f:libXt-devel d:libxt-dev # WebKit
|
||||
libXtst: f:libXtst-devel d:libxtst-dev # caribou
|
||||
xcb: f:xcb-util-devel d:libx11-xcb-dev # startup-notification
|
||||
|
||||
# Other libraries
|
||||
cracklib: fs:cracklib-devel d:libcrack2-dev # libpwquality
|
||||
cups: fs:cups-devel d:libcups2-dev # gnome-control-center
|
||||
libdb: d:libdb-dev # evolution-data-server - see below for Fedora
|
||||
icu: f:libicu-devel d:libicu-dev # WebKit
|
||||
libacl: f:libacl-devel d:libacl1-dev # gudev
|
||||
libcurl: f:libcurl-devel # liboauth. See below for Debian
|
||||
libffi: fs:libffi-devel d:libffi-dev # gobject-introspection
|
||||
libsystemd-login: fs:systemd-devel # gnome-session gnome-settings-daemon polkit PackageKit
|
||||
libusb: f:libusb1-devel d:libusb-1.0-0-dev # upower
|
||||
openssl: f:openssl-devel d:libssl-dev # liboauth
|
||||
pam: f:pam-devel d:libpam-dev # polkit
|
||||
ppp: f:ppp-devel d:ppp-dev # NetworkManager
|
||||
python-devel: f:python-devel d:python-dev # pygobject py2cairo
|
||||
readline: fsm:readline-devel d:libreadline-dev
|
||||
sane: f:sane-backends-devel d:libsane-dev # colord
|
||||
sqlite: d:libsqlite3-dev f:sqlite-devel # libsoup
|
||||
udev: f:libudev-devel d:libudev-dev # gudev
|
||||
uuid: f:libuuid-devel d:uuid-dev # Networkmanager
|
||||
wireless-tools: f:wireless-tools-devel d:libiw-dev s:libiw-devel # NetworkManager
|
||||
|
||||
# python libraries used by gnome-shell wrapper script
|
||||
# These are commented out because the gnome-shell wrapper script
|
||||
# isn't built by default, and needs updating for running on
|
||||
# a pure-GNOME 3 system, rather than recovering to GNOME 2.
|
||||
# dbus-python: f:dbus-python d:python-dbus
|
||||
# python-gobject: f:pygobject2 d:python-gobject
|
||||
# python-gconf: f:gnome-python2-gconf d:python-gconf
|
||||
EOF
|
||||
}
|
||||
|
||||
packages_for_distribution() {
|
||||
distribution_char=$1
|
||||
all_packages |
|
||||
sed -n 's/#.*//; /[^ ]/p' | # Remove comments and blank lines
|
||||
while read dependency_name words ; do
|
||||
for word in $words ; do
|
||||
# Word is <distribution-chars>:package
|
||||
IFS=:
|
||||
set $word
|
||||
IFS=' '
|
||||
case $1 in
|
||||
*$distribution_char*) echo $2
|
||||
esac
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
# We try to make it clear what we're doing via sudo so if a user gets prompted
|
||||
# for their password, they have some idea why.
|
||||
run_via_sudo() {
|
||||
echo "Running: sudo $@"
|
||||
if sudo "$@" ; then : ; else
|
||||
echo 1>&2 "Command failed."
|
||||
echo 1>&2 "Exiting gnome-shell-build-setup.sh. You can run it again safely."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
if test "x$system" = xUbuntu -o "x$system" = xDebian -o "x$system" = xLinuxMint ; then
|
||||
reqd=`packages_for_distribution d`
|
||||
|
||||
if apt-cache show libxcb-util0-dev > /dev/null 2> /dev/null; then
|
||||
reqd="$reqd libxcb-util0-dev"
|
||||
else
|
||||
reqd="$reqd libxcb-event1-dev libxcb-aux0-dev"
|
||||
fi
|
||||
|
||||
if apt-cache show autopoint > /dev/null 2> /dev/null; then
|
||||
reqd="$reqd autopoint"
|
||||
fi
|
||||
|
||||
if [ ! -x /usr/bin/dpkg-checkbuilddeps -o ! -x /usr/bin/apt-file ]; then
|
||||
echo "Installing base dependencies"
|
||||
run_via_sudo apt-get install dpkg-dev apt-file
|
||||
fi
|
||||
|
||||
echo "Updating apt-file cache"
|
||||
run_via_sudo apt-file update
|
||||
|
||||
# libcurl comes in both gnutls and openssl flavors. If the openssl
|
||||
# flavor of the runtime is installed, install the matching -dev
|
||||
# package, but default to the gnutls version. (the libcurl3 vs. libcurl4
|
||||
# mismatch is intentional and is how things are packaged.)
|
||||
|
||||
if ! dpkg-checkbuilddeps -d libcurl-dev /dev/null 2> /dev/null; then
|
||||
if dpkg -s libcurl3 /dev/null 2> /dev/null; then
|
||||
missing="libcurl4-openssl-dev $missing"
|
||||
elif dpkg -s libcurl3-nss /dev/null 2> /dev/null; then
|
||||
missing="libcurl4-nss-dev $missing"
|
||||
else
|
||||
missing="libcurl4-gnutls-dev $missing"
|
||||
fi
|
||||
fi
|
||||
|
||||
for pkg in $reqd ; do
|
||||
if ! dpkg-checkbuilddeps -d $pkg /dev/null 2> /dev/null; then
|
||||
missing="$pkg $missing"
|
||||
fi
|
||||
done
|
||||
if test ! "x$missing" = x; then
|
||||
echo "Installing packages"
|
||||
run_via_sudo apt-get install $missing
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$system" = xFedora ; then
|
||||
reqd=`packages_for_distribution f`
|
||||
|
||||
if expr $version = 14 > /dev/null ; then
|
||||
reqd="$reqd gettext-autopoint"
|
||||
elif expr $version \>= 15 > /dev/null ; then
|
||||
reqd="$reqd gettext-devel"
|
||||
fi
|
||||
|
||||
# For evolution-data-server:
|
||||
# /usr/include/db.h moved packages in Fedora 18
|
||||
if expr $version \>= 18 > /dev/null ; then
|
||||
reqd="$reqd libdb-devel"
|
||||
else
|
||||
reqd="$reqd db4-devel"
|
||||
fi
|
||||
|
||||
echo -n "Computing packages to install ... "
|
||||
for pkg in $reqd ; do
|
||||
if ! rpm -q --whatprovides $pkg > /dev/null 2>&1; then
|
||||
missing="$pkg $missing"
|
||||
fi
|
||||
done
|
||||
echo "done"
|
||||
|
||||
if test ! "x$missing" = x; then
|
||||
echo -n "Installing packages ... "
|
||||
missing_str=
|
||||
for pkg in $missing ; do
|
||||
missing_str="$missing_str${missing_str:+,}\"$pkg\""
|
||||
done
|
||||
gdbus call -e -d org.freedesktop.PackageKit -o /org/freedesktop/PackageKit -m org.freedesktop.PackageKit.Modify.InstallPackageNames 0 "[$missing_str]" "hide-finished,show-warnings"
|
||||
echo "done"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$system" = xSUSE -o "x$system" = "xSUSE LINUX" ; then
|
||||
reqd=`packages_for_distribution s`
|
||||
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=`packages_for_distribution m`
|
||||
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
|
||||
|
||||
checkout_git() {
|
||||
module=$1
|
||||
source=$2
|
||||
|
||||
if [ -d $SOURCE/$1 ] ; then
|
||||
if [ -d $SOURCE/$1/.git ] ; then
|
||||
echo -n "Updating $1 ... "
|
||||
( cd $SOURCE/$1 && git pull --rebase > /dev/null ) || exit 1
|
||||
echo "done"
|
||||
else
|
||||
echo "$SOURCE/$1 is not a git repository"
|
||||
echo "You should remove it and rerun this script"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo -n "Checking out $1 into $SOURCE/$1 ... "
|
||||
cd $SOURCE
|
||||
git clone $2 > /dev/null || exit 1
|
||||
echo "done"
|
||||
fi
|
||||
}
|
||||
|
||||
checkout_git jhbuild git://git.gnome.org/jhbuild
|
||||
|
||||
echo -n "Installing jhbuild ... "
|
||||
(cd $SOURCE/jhbuild &&
|
||||
./autogen.sh --simple-install &&
|
||||
make -f Makefile.plain DISABLE_GETTEXT=1 bindir=$HOME/bin install) >/dev/null
|
||||
echo "done"
|
||||
|
||||
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 [ -d $HOME/gnome-shell -a \! -d $HOME/gnome ] ; then
|
||||
cat <<EOF
|
||||
WARNING:
|
||||
The old source and install directory '$HOME/gnome-shell' exists, but
|
||||
'$HOME/gnome' doesn't. An empty $HOME/gnome will be created.
|
||||
|
||||
To avoid starting again from scratch you should remove the empty directory,
|
||||
move your old '$HOME/gnome-shell' to '$HOME/gnome', and delete the old
|
||||
install directory:
|
||||
|
||||
rm -rf $HOME/gnome
|
||||
mv $HOME/gnome-shell $HOME/gnome
|
||||
rm -rf $HOME/gnome/install
|
||||
EOF
|
||||
fi
|
||||
|
||||
echo "Installing modules as system packages when possible"
|
||||
$HOME/bin/jhbuild sysdeps --install
|
||||
|
||||
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
|
||||
|
||||
checkout_git git-bz git://git.fishsoup.net/git-bz
|
||||
|
||||
|
||||
echo -n "Installing git-bz ... "
|
||||
old="`readlink $HOME/bin/git-bz`"
|
||||
( cd $HOME/bin && ln -sf ../Source/git-bz/git-bz . )
|
||||
new="`readlink $HOME/bin/git-bz`"
|
||||
echo "done"
|
||||
|
||||
if test "$old" != "$new" -a "$old" != "" ; then
|
||||
echo "WARNING: $HOME/bin/git-bz was changed from '$old' to '$new'"
|
||||
fi
|
||||
|
||||
echo "Done."
|
@ -1,18 +0,0 @@
|
||||
# -*- mode: python -*-
|
||||
|
||||
# The username for repositories can be overridden.
|
||||
#
|
||||
#repos["git.gnome.org"] = "ssh://myusername@git.gnome.org/git/"
|
||||
|
||||
# Directory where to check sources out
|
||||
#
|
||||
#checkoutroot = '/opt/gnome-shell/source'
|
||||
|
||||
# Directory where to install
|
||||
#
|
||||
#prefix = '/opt/gnome-shell/install'
|
||||
|
||||
# Work around http://bugzilla.gnome.org/show_bug.cgi?id=571240 if
|
||||
# your 'install' program is somewhere other than /usr/bin/install
|
||||
# (affects: Arch Linux)
|
||||
#installprog = 'bin/install'
|
@ -1,54 +0,0 @@
|
||||
# -*- mode: python -*-
|
||||
#
|
||||
# jhbuildrc for building gnome-shell. Customizations should be done in
|
||||
# ~/.jhbuildrc-custom
|
||||
#
|
||||
# Copyright (C) 2008 Red Hat, Inc.
|
||||
#
|
||||
# Some ideas and a bit of code taken from gtk-osx-build
|
||||
#
|
||||
# Copyright (C) 2006, 2007, 2008 Imendio AB
|
||||
#
|
||||
# Use .jhbuildrc-custom to override the moduleset, modules to build,
|
||||
# the source checkout location, installation prefix, or svn usernames
|
||||
# etc.
|
||||
#
|
||||
# JHBUILDRC_GNOME_SHELL - Do not edit this line (or anything else)
|
||||
|
||||
# Only rebuild modules that have changed
|
||||
build_policy = 'updated'
|
||||
|
||||
moduleset = 'gnome-apps-3.14'
|
||||
|
||||
modules = [ 'meta-gnome-core-shell' ]
|
||||
|
||||
# what directory should the source be checked out to?
|
||||
checkoutroot = os.path.expanduser('~/gnome/source')
|
||||
|
||||
# the prefix to configure/install modules to (must have write access)
|
||||
prefix = os.path.expanduser('~/gnome/install')
|
||||
|
||||
# reduce what we build as much as possible
|
||||
ignore_suggests = True
|
||||
|
||||
# Use system libraries for the builds
|
||||
if use_lib64:
|
||||
_libdir = 'lib64'
|
||||
else:
|
||||
_libdir = 'lib'
|
||||
addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', _libdir, 'pkgconfig'))
|
||||
addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'share', 'pkgconfig'))
|
||||
|
||||
# Look in /usr/share for icons, D-BUS service files, etc
|
||||
addpath('XDG_DATA_DIRS', '/usr/share')
|
||||
# Look in /etc/xdg for system-global autostart files
|
||||
addpath('XDG_CONFIG_DIRS', '/etc/xdg')
|
||||
|
||||
# Import optional user RC for further customization. You can override
|
||||
# the prefix or default build setup for example, or CFLAGS or
|
||||
# module_autogenargs, etc.
|
||||
#
|
||||
_userrc = os.path.join(os.environ['HOME'], '.jhbuildrc-custom')
|
||||
if os.path.exists(_userrc):
|
||||
execfile(_userrc)
|
||||
|
Loading…
x
Reference in New Issue
Block a user