#!/bin/bash # Author: Caolan McNamara # Usage: e.g. makefc3chroot /mnt/fc3 # Creates a fc3 chroot environment which includes everything needed to # build openoffice.org installsets which meet the requirements of Hamburg # openoffice.org QA if [ $# -lt 1 ] ; then echo Usage: e.g. makefc3chroot /mnt/fc3 exit 1 fi if [ `id -u` != "0" ] ; then echo "makefc3chroot: You must be root" exit 1 fi echo "makefc3chroot: Creating a FC3 chroot env in $1" TMPFILE=‘mktemp‘ || exit 1 cat <<'EOF' > $TMPFILE [main] cachedir=/var/cache/yum keepcache=0 logfile=/var/log/yum.log pkgpolicy=newest distroverpkg=redhat-release tolerant=1 exactarch=0 obsoletes=1 [fc3core] name=Fedora Core $releasever - $basearch baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/i386/os/ enabled=1 [fc3updates] name=Fedora Core $releasever - $basearch - Updates baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/i386/ enabled=1 [jpackage-generic] name=JPackage (free), generic mirrorlist=http://www.jpackage.org/jpackage_generic.txt failovermethod=priority enabled=1 EOF mkdir -p $1/etc $1/dev $1/proc $1/sys $1/var/tmp $1/var/cache/yum $1/var/log $1/var/lib/rpm touch $1/etc/fstab touch $1/etc/mtab if [ ! -e $1/dev/null ]; then mknod $1/dev/null c 1 3 chmod 666 $1/dev/null fi mount --bind /proc $1/proc mount --bind /sys $1/sys mount --bind /dev $1/dev rpm --root $1 --import http://fedora.redhat.com/about/security/4F2A6FD2.txt rpm --root $1 -Uvh --nodeps --force http://download.fedora.redhat.com/pub/fedora/linux/core/3/i386/os/Fedora/RPMS/fedora-release-3-8.i386.rpm ret=1 while [ $ret -ne 0 ]; do yum -c $TMPFILE -y --installroot=$1 --disablerepo="*" --enablerepo=fc3core --enablerepo=fc3updates --enablerepo=jpackage-generic install gcc-c++ bzip2 tcsh make which perl-libwww-perl perl-Compress-Zlib zip cups-devel pam-devel libxslt rpm pkgconfig libxml2-devel xorg-x11-devel bison flex patch unzip gnome-vfs2-devel gtk2-devel wget file rpm-build vim-enhanced yum ant cvs openssh-clients diffutils perl-Crypt-SSLeay autoconf ret=$? done rm -f $TMPFILE cp -f /etc/resolv.conf /etc/hosts $1/etc /usr/sbin/chroot $1 /bin/bash -c "echo no | cpan -i Archive::Zip" /usr/sbin/chroot $1 /bin/bash -c "echo | cpan -i SOAP::Lite" /usr/sbin/chroot $1 /bin/bash -c "cd && wget http://tools.openoffice.org/moz_prebuild/680/LINUXGCCIruntime.zip http://tools.openoffice.org/moz_prebuild/680/LINUXGCCIlib.zip http://tools.openoffice.org/moz_prebuild/680/LINUXGCCIinc.zip" cd $1/opt wget http://download.java.net/dlj/binaries/jdk-1_5_0_07-distro-linux-i586.bin wget "https://jdk-distros.dev.java.net/source/browse/*checkout*/jdk-distros/trunk/utils/construct.sh?content-type=text%2Fplain" -Oconstruct.sh mkdir unbundle-jdk cd unbundle-jdk sh ../jdk-1_5_0_07-distro-linux-i586.bin --accept-license /usr/sbin/chroot $1 /bin/bash -c "cd /opt && sh construct.sh unbundle-jdk linux-jdk linux-jre" echo "export PATH=\$PATH:/opt/linux-jdk/bin" > $1/root/.bashrc umount $1/proc umount $1/sys umount $1/dev