X-Git-Url: https://spindle.queued.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=initchroot.sh;h=bb273401c5ffafed8a92417330fa64df1846c16c;hb=64b94745987d4d073ecdce585c287dd251b05c0a;hp=e359c5d6245f24d6b7387d93e022ab652bc70041;hpb=7ef82b2c789bbdfb0ec92e60cb40b325ca735e61;p=xodist diff --git a/initchroot.sh b/initchroot.sh index e359c5d..bb27340 100755 --- a/initchroot.sh +++ b/initchroot.sh @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e # # Copyright © 2008 Andres Salomon # @@ -16,13 +16,13 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -DIST=lenny DEFUSER=olpc PLIST=gnome.packages -MIRROR=http://http.us.debian.org/debian/ -OTHERMIRROR= +APT_SOURCES="deb http://http.us.debian.org/debian/ lenny main contrib non-free +deb http://security.debian.org/ lenny/updates main contrib non-free" +LOCAL_APT_MIRROR= -. functions.sh +. ./functions.sh usage() { @@ -30,11 +30,10 @@ usage() echo "Usage: $0 [] " 1>&2 echo "" 1>&2 echo "Options:" 1>&2 - echo " --distribution Which distribution to use" 1>&2 echo " --user Username for default user" 1>&2 echo " --package-list File containing package list" 1>&2 - echo " --mirror Main Mirror URL prefix" 1>&2 - echo " --othermirror An additional sources.list line" 1>&2 + echo " --apt-sources Contents of /etc/apt/sources.list" 1>&2 + echo " --local-apt-mirror sources.list for local mirror" 1>&2 echo "" 1>&2 exit 1 } @@ -42,13 +41,6 @@ usage() while test $# != 0 do case $1 in - --distribution) - DIST=$2 - shift - if [ -z "${OTHERMIRROR}" ]; then - OTHERMIRROR="deb http://security.debian.org/ ${DIST}/updates main contrib non-free" - fi - ;; --user) DEFUSER=$2 shift @@ -61,12 +53,12 @@ do } shift ;; - --mirror) - MIRROR=$2 + --apt-sources) + APT_SOURCES="$2" shift ;; - --othermirror) - OTHERMIRROR=$2 + --local-apt-mirror) + LOCAL_APT_MIRROR="$2" shift ;; *) @@ -93,12 +85,18 @@ if [ -d "${ROOT_DIR}" ]; then usage fi +start_logging $ROOT_DIR + check_for_cmds debootstrap || exit 1 -if [ -z "${OTHERMIRROR}" ]; then - OTHERMIRROR="deb http://security.debian.org/ ${DIST}/updates main contrib non-free" +if [ -z "${LOCAL_APT_MIRROR}" ]; then + LOCAL_APT_MIRROR="${APT_SOURCES}" fi +# parse apt mirror +MIRROR=$(printf "${LOCAL_APT_MIRROR}\n" | awk '/deb /{print $2}' | head -n1) +DIST=$(printf "${LOCAL_APT_MIRROR}\n" | awk '/deb /{print $3}' | head -n1) + # create chroot debootstrap --arch i386 ${DIST} ${ROOT_DIR} ${MIRROR} mkdir ${ROOT_DIR}/ofw @@ -114,6 +112,21 @@ echo "Warning: Fake start-stop-daemon called, doing nothing" EOF chmod 755 ${ROOT_DIR}/sbin/start-stop-daemon +# set up hostname stuff +echo "debxo" > ${ROOT_DIR}/etc/hostname +cat >${ROOT_DIR}/etc/hosts<${ROOT_DIR}/etc/apt/sources.list<${ROOT_DIR}/etc/apt/sources.list (chroot ${ROOT_DIR} aptitude update) # set up base system and base packages @@ -139,15 +149,20 @@ echo "en_US.UTF-8 UTF-8" >${ROOT_DIR}/etc/locale.gen k="http://lunge.mit.edu/~dilinger/debxo-0.2/initramfs-tools_0.92l.2_all.deb http://lunge.mit.edu/~dilinger/debxo-0.2/ofw-config_0.1_all.deb - http://lunge.mit.edu/~dilinger/debxo-0.3/linux-2.6.25.15_2.6.25.15-146_i386.deb" + http://lunge.mit.edu/~dilinger/debxo-0.4/linux-2.6.25.15_2.6.25.15-165_i386.deb + http://lunge.mit.edu/~dilinger/debxo-0.4/xserver-xorg-video-geode_2.11.0-0.1_i386.deb" mkdir -p cache for i in $k; do pkg=$(basename ${i}) wget --continue -O cache/${pkg} ${i} cp cache/${pkg} ${ROOT_DIR}/${pkg} (chroot ${ROOT_DIR} dpkg -i /${pkg}) + pkgbase=$(echo $pkg | cut -d_ -f1) + echo $pkgbase hold | (chroot ${ROOT_DIR} dpkg --set-selections) rm -f ${ROOT_DIR}/${pkg} done +# take the geode driver off hold +echo xserver-xorg-video-geode install | (chroot ${ROOT_DIR} dpkg --set-selections) # ensure certain modules get loaded during boot cat >>${ROOT_DIR}/etc/modules< ${ROOT_DIR}/etc/hostname -cat >${ROOT_DIR}/etc/hosts<${ROOT_DIR}/etc/X11/xorg.conf<${ROOT_DIR}/etc/apt/sources.list +(chroot ${ROOT_DIR} aptitude update) + # done, clean up mv ${ROOT_DIR}/sbin/start-stop-daemon.REAL ${ROOT_DIR}/sbin/start-stop-daemon (chroot ${ROOT_DIR} aptitude clean)