]> piware.de Git - bin.git/blobdiff - build-debian-toolbox
build-debian-toolbox: Fix for Ubuntu containers
[bin.git] / build-debian-toolbox
index e1b8578374ac79ecb3d414890bb2b4692e93314e..df36cd0cfb7b30b42fa5d96d7ad1b3eed8e1cbbe 100755 (executable)
@@ -5,37 +5,57 @@ RELEASE=${1:-sid}
 DISTRO=${2:-debian}
 
 toolbox rm -f $RELEASE || true
 DISTRO=${2:-debian}
 
 toolbox rm -f $RELEASE || true
+podman pull docker.io/$DISTRO:$RELEASE
 toolbox -y create -c $RELEASE --image docker.io/$DISTRO:$RELEASE
 
 toolbox -y create -c $RELEASE --image docker.io/$DISTRO:$RELEASE
 
+# hack for ubuntu: need to remove existing home dir
+if [ "$DISTRO" = "ubuntu" ]; then
+    podman unshare sh -exc "H=\$(podman mount $RELEASE); rm -r \$H/home/ubuntu; sed -i '/^ubuntu/d' \$H/etc/passwd \$H/etc/shadow"
+fi
+
 # can't do that with toolbox run yet, as we need to install sudo first
 podman start $RELEASE
 podman exec -it $RELEASE sh -exc '
 # go-faster apt/dpkg
 echo force-unsafe-io > /etc/dpkg/dpkg.cfg.d/unsafe-io
 
 # can't do that with toolbox run yet, as we need to install sudo first
 podman start $RELEASE
 podman exec -it $RELEASE sh -exc '
 # go-faster apt/dpkg
 echo force-unsafe-io > /etc/dpkg/dpkg.cfg.d/unsafe-io
 
-# location based redirector gets it wrong with company VPN; also add deb-src
-sed -i "s/deb.debian.org/ftp.de.debian.org/; /^deb\b/ { p; s/^deb/deb-src/ }" /etc/apt/sources.list
+# otherwise installing systemd fails
+umount /var/log/journal
+
+# enable sources
+if [ -e /etc/apt/sources.list.d/debian.sources ]; then
+    sed -i "/^Types:/ s/deb$/deb deb-src/" /etc/apt/sources.list.d/debian.sources
+fi
 
 apt-get update
 apt-get install -y libnss-myhostname sudo eatmydata libcap2-bin
 
 # allow sudo with empty password
 sed -i "s/nullok_secure/nullok/" /etc/pam.d/common-auth
 
 apt-get update
 apt-get install -y libnss-myhostname sudo eatmydata libcap2-bin
 
 # allow sudo with empty password
 sed -i "s/nullok_secure/nullok/" /etc/pam.d/common-auth
+
+# unbreak slow host name resolution
+sed -i "/^hosts:/ s/files dns myhostname/files myhostname dns/" /etc/nsswitch.conf
 '
 
 toolbox run --container $RELEASE sh -exc '
 '
 
 toolbox run --container $RELEASE sh -exc '
-# otherwise installing systemd fails
-sudo umount /var/log/journal
-
 # useful hostname
 . /etc/os-release
 echo "${ID}-${VERSION_ID:-sid}" | sudo tee /etc/hostname
 sudo hostname -F /etc/hostname
 
 # useful hostname
 . /etc/os-release
 echo "${ID}-${VERSION_ID:-sid}" | sudo tee /etc/hostname
 sudo hostname -F /etc/hostname
 
-sudo eatmydata apt-get -y dist-upgrade
+sudo DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y dist-upgrade
 
 # development tools
 
 # development tools
-sudo eatmydata apt-get install -y --no-install-recommends git-buildpackage libwww-perl less vim lintian debhelper manpages-dev git dput pristine-tar bash-completion wget gnupg ubuntu-dev-tools python3-debian fakeroot libdistro-info-perl
+sudo eatmydata apt-get install -y --no-install-recommends build-essential git-buildpackage libwww-perl less vim lintian debhelper manpages-dev git dput pristine-tar bash-completion wget gnupg ubuntu-dev-tools python3-debian fakeroot libdistro-info-perl openssh-client flatpak-xdg-utils
+
+# autopkgtest
+sudo eatmydata apt-get install -y --no-install-recommends autopkgtest qemu-system-x86 qemu-utils genisoimage uidmap
+
+# commands to forward to the host
+for cmd in podman buildah toolbox; do
+    printf "#!/bin/sh\n/usr/libexec/flatpak-xdg-utils/flatpak-spawn --host $cmd \42\$@\42\n" | sudo tee /usr/local/bin/$cmd >/dev/null
+    sudo chmod a+x /usr/local/bin/$cmd
+done
 '
 
 toolbox enter --container $RELEASE
 '
 
 toolbox enter --container $RELEASE