5 mirror=http://deb.debian.org/debian/
6 myarch=$(dpkg-architecture -qDEB_HOST_ARCH) qemup=nil; unset myqarch
7 eval $(apt-config -c /usr/local.schroot/config/apt/conf.d/90local \
8 shell http_proxy Acquire::http::proxy)
9 case ${http_proxy+t} in t) export http_proxy ;; esac
11 badp=nil forcep=nil dbsopts= crossp=nil; unset qemu
12 while getopts "a:e:fm:q:Qv:z:x" opt; do
18 Q) qemup=t dbsopts=--foreign ;;
25 shift $(( $OPTIND - 1 ))
26 case $# in 0) badp=t ;; esac
30 usage: $0 [-fxQ] [-a MYARCH] [-m MIRROR] [-q MYQARCH] [-v VG] [-z LVSZ]
36 case ${myqarch+t} in t) ;; *) myqarch=$myarch ;; esac
38 case $arg in *-*-*) echo >&2 "$0: bad chroot name \`$arg'"; exit 1 ;; esac
40 if [ ! -d /dev/$vg/ ]; then echo >&2 "$0: no volume group \`$vg'"; exit 1; fi
43 d=${arg%-*} a=${arg#*-}
46 if mountpoint -q $mnt; then umount $mnt; fi
47 if [ -b /dev/$vg/$d-$a ]; then
49 nil) echo >&2 "$0: volume \`$d-$a' already exists"; exit 1 ;;
50 t) lvremove -f $vg/$d-$a ;;
53 lvcreate --yes $lvsz -n$arg $vg
54 mkfs -j -L$arg /dev/$vg/$arg
55 mount -orelatime,data=writeback,commit=3600,barrier=0 /dev/$vg/$arg $mnt/
58 pkgs=ccache,eatmydata,fakeroot,libfile-fcntllock-perl,locales,tzdata
59 case $crossp in nil) pkgs=$pkgs,build-essential ;; esac
60 eatmydata debootstrap $dbsopts --arch=$a --variant=minbase --include=$pkgs \
65 armel | armhf) qarch=arm ;;
66 arm64) qarch=aarch64 ;;
67 amd64) qarch=x86_64 ;;
69 *) echo >&2 "$0: no qemu arch for $a"; exit 1 ;;
71 qemu=qemu-$qarch-static
72 install /usr/local.schroot/cross/$d-$myqarch/QEMU/$qemu $mnt/fs/usr/bin/
73 chroot $mnt/fs/ /debootstrap/debootstrap --second-stage
74 ln -sf /usr/local.schroot/cross/$d-$myqarch/QEMU/$qemu $mnt/fs/usr/bin/
78 rm -rf local/; ln -s local.schroot/$a local
80 rm -rf apt.conf sources.list
81 ln -s /usr/local.schroot/config/apt/conf.d/10sbuild apt.conf.d/
82 ln -s /usr/local.schroot/config/apt/conf.d/90local apt.conf.d/
83 ln -s /usr/local.schroot/config/apt/sources.$d sources.list
84 cat >apt.conf.d/20arch <<EOF
92 cp /etc/locale.gen /etc/timezone ./
93 tz=$(cat timezone); ln -sf /usr/share/zoneinfo/$tz localtime
94 ln -sf /proc/mounts mtab
95 cd $mnt/fs/etc/default/
96 cp /etc/default/locale .
98 cat >policy-rc.d <<EOF
100 echo >&2 "policy-rc.d: Services disabled by policy."
104 cd $mnt/fs/etc/ld.so.conf.d/
106 # libc default configuration
108 cat >zzz-local.conf <<EOF
110 ### Local hack to make /usr/local/ late.
117 schroot -uroot -csource:$d-$a -- eatmydata sh -e -c "
118 if dpkg-divert >/dev/null 2>&1 --no-rename --help
119 then no_rename=--no-rename
123 dpkg-divert --package install-cross-tools \$no_rename \
124 --divert /usr/bin/$qemu.$a --add /usr/bin/$qemu"
125 /usr/local.schroot/maint/install-cross-tools -a$myarch -q$myqarch $d-$a
128 schroot -uroot -csource:$d-$a -- eatmydata sh -e -c '
133 apt-get -y autoremove