echo "Creating chroot dir '$chrootdir'"
# Create coriolis chroot dir in /opt
-mkdir /opt/chroot/$chrootdir
+mkdir -p /opt/chroot/$chrootdir
# argh apt with broken proxies and unreliable ISPs, getting fed up with it
if [ -e /tmp/brokenproxy ]; then
# Install debootstrap and schroot
if [ -e /etc/debian_version ]; then
# Debian detected: use apt
- apt install -y debootstrap schroot
+ REQUIRED_PKG="debootstrap"
+ PKG_OK=$(dpkg-query -W --showformat='${Status}\n'\
+ $REQUIRED_PKG|grep "install ok installed")
+ echo Checking for $REQUIRED_PKG: $PKG_OK
+ if [ "" = "$PKG_OK" ]; then
+ apt install -y debootstrap
+ fi
+
+ REQUIRED_PKG="schroot"
+ PKG_OK=$(dpkg-query -W --showformat='${Status}\n'\
+ $REQUIRED_PKG|grep "install ok installed")
+ echo Checking for $REQUIRED_PKG: $PKG_OK
+ if [ "" = "$PKG_OK" ]; then
+ apt install -y schroot
+ fi
elif [ -e /etc/arch-release ]; then
# Arch Linux detected: use pacman
pacman -S --needed debootstrap schroot
"
fi
+#!!! buster backports is needed for a lot of things
+cat << EOF > /opt/chroot/$chrootdir/etc/apt/sources.list.d/buster_backports.list
+deb http://deb.debian.org/debian buster-backports main
+deb-src http://deb.debian.org/debian buster-backports main
+EOF
+
+# oooo annoying, pin preferences for buster-backports
+# make it low pririty for reproduceability
+cat << EOF > /opt/chroot/$chrootdir/etc/apt/preferences.d/99buster-backports
+Package: *
+Pin: release a=buster-backports
+Pin-Priority: 100
+
+Package: libcurl3-gnutls
+Pin: version 7.64*
+Pin-Priority: 1001
+EOF
+
# Install apt dependencies in the chroot
cd /tmp
schroot -c $chrootdir /bin/bash --directory=/tmp << EOF
sudo \
python2.7 \
python3 python3-pip \
- python3-setuptools python3-dev
+ python3-setuptools python3-dev \
+ python3-setuptools-scm
# yeah systemd in a chroot? not very funny joke.
apt-get remove -y systemd