]> piware.de Git - bin.git/blobdiff - build-debian-toolbox
build-debian-toolbox: Fix for Ubuntu containers
[bin.git] / build-debian-toolbox
index 13ee84dba55fd4fd8442a29aeff5bab68937259c..df36cd0cfb7b30b42fa5d96d7ad1b3eed8e1cbbe 100755 (executable)
@@ -8,6 +8,11 @@ toolbox rm -f $RELEASE || true
 podman pull 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 '
@@ -17,11 +22,19 @@ echo force-unsafe-io > /etc/dpkg/dpkg.cfg.d/unsafe-io
 # 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
+
+# unbreak slow host name resolution
+sed -i "/^hosts:/ s/files dns myhostname/files myhostname dns/" /etc/nsswitch.conf
 '
 
 toolbox run --container $RELEASE sh -exc '
@@ -30,13 +43,19 @@ toolbox run --container $RELEASE sh -exc '
 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
-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
+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
+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