#!/bin/sh set -e unmount_virtual() { umount "$1/proc" || true umount "$1/sys" || true umount "$1/tree/proc" || true umount "$1/tree/sys" || true } export LC_ALL=C if [ "x$1" = x ] then echo "Usage: $0 chroot-dir" 1>&2 exit 1 fi mkdir -p "$1" dir="$1/squeeze-chroot" snapshot=true snapshotdir="$1" cat >"./do-squeeze-chroot" <&2) || ([ "x$GIT_BUNDLES" = x ] && echo GIT_BUNDLES is unspecified >&2) || ([ "x$LFS_MIRROR" = x ] && echo LFS_MIRROR is unspecified >&2) then echo You have to set DEBIAN_MIRROR and other environment variables 1>&2 exit 1 fi #DEBIAN_MIRROR="http://192.168.1.185/debian" #LFS_MIRROR=http://192.168.1.185/lfs/ unmount_virtual "$dir" rm -rf "$dir" mkdir "$dir" if "$snapshot" && [ -e "$snapshotdir/squeeze.tar" ] then tar -C "$dir" -xf "$snapshotdir/squeeze.tar" else debootstrap \ --include=build-essential,\ gawk,bison,python,autoconf,autopoint,automake,gettext,libtool,\ help2man,texinfo,sudo,qemu-utils,parted,kpartx,mbr,extlinux \ squeeze "$dir" "$DEBIAN_MIRROR" if "$snapshot" then tar -caf "$snapshotdir/squeeze.tar" -C "$dir" . fi fi hostname > "$dir/etc/hostname" cat < "$dir/etc/hosts" 127.0.0.1 localhost 127.0.1.1 `hostname` EOF if [ "x$LFS_MIRROR" = x ]; then cp wget-list "$dir/wget-list" else perl -M'Env' -lpe 's|^.*/|$LFS_MIRROR|' wget-list >"$dir/wget-list" #gawk -v m="$LFS_MIRROR" '{gsub(/^.*\//, m)}; 1' wget-list >"$dir/wget-list" #sed "s,^.*/,$LFS_MIRROR," wget-list > "$dir/wget-list" fi # Unpack existing snapshot, or run pass1 of bootstrap and then make snapshot. pass1snapshot="$snapshotdir/pass1-snapshot.tar.gz" if "$snapshot" && [ -e "$pass1snapshot" ] then tar -C "$dir" -xf "$pass1snapshot" cp baserock-bootstrap "$dir/." #update bootstrap script else cp baserock-bootstrap "$dir/." "./do-squeeze-chroot" bash -x baserock-bootstrap pass1 || exit 1 if "$snapshot" then tar -C "$dir" -caf "$pass1snapshot" . fi fi # Update the git repos. mkdir -p "$dir/tree/baserock" rm -rf "$dir/tree/baserock/gits" mkdir "$dir/tree/baserock/gits" mkdir "$dir/tree/baserock/gits/morph" cp -r . "$dir/tree/baserock/gits/morph/." # Unpack existing snapshot, or run pass2 of bootstrap and then make snapshot. pass2snapshot="$snapshotdir/pass2-snapshot.tar.gz" if "$snapshot" && [ -e "$pass2snapshot" ] then tar -C "$dir" -xf "$pass2snapshot" cp baserock-bootstrap "$dir/." #update bootstrap script else cp baserock-bootstrap "$dir/." "./do-squeeze-chroot" bash -x baserock-bootstrap pass2 || exit 1 if "$snapshot" then tar -C "$dir" -caf "$pass2snapshot" . fi fi # Run pass3 of bootstrap. "./do-squeeze-chroot" bash -x baserock-bootstrap pass3 || exit 1 echo "Passes 1, 2, and 3 of bootstrap done (possibly cached)."