5 : ${DIST_RELEASE=squeeze}
6 : ${CONF_DIR:=/etc/schroot/chroot.d}
7 : ${CHROOT_DIR:=/srv/chroot}
8 : ${ALTERNATIVE_EDITOR:=/usr/bin/vim.basic}
10 #Automatically generated variables
11 CHROOTNAME=$DIST_RELEASE-$ARCH
12 CHNAME=building_$CHROOTNAME
13 TEMP_CHROOT_CONF=$CONF_DIR/$CHNAME.conf
14 FINAL_CHROOT_CONF=$CHROOTNAME.conf
18 COMP_FILENAME=$CHROOTNAME.tar.gz
19 COMP_FILEPATH=$ROOT/$COMP_FILENAME
22 if [ $USER != 'root' ]
24 echo "This script requires root permissions to run"
28 if [ -f $TEMP_CHROOT_CONF ]
30 echo "The configuration file name for the temporary chroot"
31 echo " $TEMP_CHROOT_CONF"
32 echo "already exists."
33 echo "Remove it or change the CHNAME value in the script."
43 #Install tools for building chroots
44 apt-get install -y schroot debootstrap
46 shopt -s expand_aliases
47 alias in_chroot='schroot -c $CHNAME -d / '
48 alias subst_variables='sed \
49 -e "s/\${ARCH}/$ARCH/" \
50 -e "s*\${CHDIR}*$CHDIR*" \
51 -e "s/\${CHNAME}/$CHNAME/" \
52 -e "s/\${CHROOTNAME}/$CHROOTNAME/" \
53 -e "s*\${CHROOT_DIR}*$CHROOT_DIR*" \
54 -e "s/\${COMP_FILENAME}/$COMP_FILENAME/" \
55 -e "s/\${DIST_RELEASE}/$DIST_RELEASE/"'
57 #Generate chroot configurations
58 cat $DATA_DIR/temp.schroot.conf.in | subst_variables > $TEMP_CHROOT_CONF
59 cat $DATA_DIR/final.schroot.conf.in | subst_variables > $FINAL_CHROOT_CONF
61 #Install the base system
62 debootstrap --arch $ARCH $DIST_RELEASE $CHDIR
64 APT_INSTALL="apt-get install -y --no-install-recommends"
66 echo "deb http://backports.debian.org/debian-backports" \
67 "$DIST_RELEASE-backports main contrib non-free" \
68 > $CHDIR/etc/apt/sources.list.d/backports.list
70 #Install all the packages
74 #Install selected packages from backports
76 apt-get -y --no-install-recommends -t squeeze-backports install \
81 $APT_INSTALL python-setuptools build-essential python-dev sudo automake \
82 fakeroot rsync locales less
84 echo "en_US.UTF-8 UTF-8" >> $CHDIR/etc/locale.gen
90 $APT_INSTALL lvm2 ssh bridge-utils iproute iputils-arping \
91 ndisc6 python python-pyopenssl openssl \
92 python-pyparsing python-simplejson \
93 python-pyinotify python-pycurl python-yaml socat fping
96 $APT_INSTALL python-paramiko qemu-utils
99 easy_install affinity bitarray ipaddr
104 libghc6-parallel-dev libghc6-deepseq-dev \
108 $APT_INSTALL cabal-install
114 $APT_INSTALL libpcre3-dev
117 cabal install --global \
122 attoparsec==0.10.1.1\
123 quickcheck==2.5.1.1 \
125 monadcatchio-transformers==0.2.2.0 \
128 case-insensitive==0.3 \
136 #Python development tools
138 $APT_INSTALL pandoc python-epydoc graphviz
141 easy_install sphinx==1.1.3 \
143 logilab-astng==0.23.1 \
148 #Haskell development tools
150 cabal install --global \
156 test-framework==0.6.1 \
157 test-framework-hunit==0.2.7 \
158 test-framework-quickcheck2==0.2.12.3
161 cabal install --global shelltestrunner
165 update-alternatives --set editor $ALTERNATIVE_EDITOR
168 echo "Creating compressed schroot image..."
170 tar czf $COMP_FILEPATH ./*
175 rm -f $TEMP_CHROOT_CONF