blob: 8ee3fc52818fa5763e039330f7bfc3c42ccf61e6 [file] [log] [blame]
#!/bin/sh
# Script to install everything needed to build chromium (well, ideally, anyway)
# See http://code.google.com/p/chromium/wiki/LinuxBuildInstructions
# and http://code.google.com/p/chromium/wiki/LinuxBuild64Bit
set -ex
# Root can't access files on all filesystems, but /tmp should always be ok
# (unless it's full).
DIR=`mktemp -d`
cd $DIR
touch .created
cleanup() {
test -f $DIR/.created && rm -rf $DIR
}
# TODO(dkegel): add sha1sum verification
download() {
dir=$1
file=$2
if ! test -f $file
then
wget $MIRROR/$dir/$file
fi
}
unpack_deb() {
file=$1
ar x $file
tar -xzvf data.tar.gz
rm -f data.tar.gz control.tar.gz
}
download_deb() {
download $1 $2
unpack_deb $2
}
install_hardy() {
sudo apt-get install subversion pkg-config python perl g++ g++-multilib \
bison flex gperf libnss3-dev libglib2.0-dev libgtk2.0-dev \
libnspr4-0d libnspr4-dev wdiff lighttpd php5-cgi msttcorefonts \
sun-java6-fonts
}
install_hardy_64() {
install_hardy
# The packages libnspr4, libnss3, and libsqlite don't have 32
# bit compabibility versions on 64 bit ubuntu hardy,
# so install them packages the hard way
# See https://bugs.launchpad.net/ubuntu/+source/ia32-libs/+bug/246911
# TODO: There is no bug report yet for 32 bit sqlite runtime
mkdir -p workdir-hardy64
cd workdir-hardy64
rm -rf usr
MIRROR=http://mirrors.kernel.org/ubuntu
download_deb pool/main/n/nspr libnspr4-0d_4.7.1~beta2-0ubuntu1_i386.deb
download_deb pool/main/n/nss libnss3-1d_3.12.0~beta3-0ubuntu1_i386.deb
download_deb pool/main/s/sqlite3 libsqlite3-0_3.4.2-2_i386.deb
sudo rsync -v -a usr/lib/* /usr/lib32/
sudo ldconfig
# Make missing symlinks as described by
# https://bugs.launchpad.net/ubuntu/+source/ia32-libs/+bug/277772
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=492453
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=497087
cd /usr/lib32
for lib in gio-2.0 gdk-x11-2.0 atk-1.0 gdk_pixbuf-2.0 \
pangocairo-1.0 pango-1.0 pangoft2-1.0 \
gobject-2.0 gmodule-2.0 glib-2.0 gtk-x11-2.0; do
sudo ln -s -f lib$lib.so.0 lib$lib.so
done
for lib in z fontconfig
do
sudo ln -s -f lib$lib.so.1 lib$lib.so
done
for lib in cairo
do
sudo ln -s -f lib$lib.so.2 lib$lib.so
done
for lib in freetype
do
sudo ln -s -f lib$lib.so.6 lib$lib.so
done
for lib in plds4 plc4 nspr4
do
sudo ln -s -f /usr/lib32/lib$lib.so.0d /usr/lib32/lib$lib.so
done
for lib in nss3 nssutil3 smime3 ssl3
do
sudo ln -s -f /usr/lib32/lib$lib.so.1d /usr/lib32/lib$lib.so
done
}
if egrep -q "Ubuntu 8.04|Ubuntu 8.10" /etc/issue && test `uname -m` = i686
then
install_hardy
elif egrep -q "Ubuntu 8.04|Ubuntu 8.10" /etc/issue && test `uname -m` = x86_64
then
install_hardy_64
else
echo "Unsupported system"
cleanup
exit 1
fi
cleanup