]> piware.de Git - bin.git/commitdiff
Move to distrobox
authorMartin Pitt <martin@piware.de>
Wed, 27 May 2026 03:06:07 +0000 (05:06 +0200)
committerMartin Pitt <martin@piware.de>
Wed, 27 May 2026 03:38:43 +0000 (05:38 +0200)
build-cockpit-distrobox [new file with mode: 0755]
build-cockpit-toolbox [deleted file]
build-debian-distrobox [new file with mode: 0755]
build-debian-toolbox [deleted file]

diff --git a/build-cockpit-distrobox b/build-cockpit-distrobox
new file mode 100755 (executable)
index 0000000..7f16416
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+set -eux
+NAME=${NAME:-cockpit}
+TAG=${TAG:-latest}
+
+distrobox rm -f $NAME || true
+distrobox create --image ghcr.io/cockpit-project/tasks:${TAG} --pull --yes --name $NAME --hostname $NAME
+
+# install some extra development tools
+distrobox enter "$NAME" -- sudo sh -exc '
+# enable manpages
+sed -i s/nodocs// /etc/dnf/dnf.conf
+
+dnf install -y ansible bash-completion man-db man-pages moreutils fd-find ripgrep gh git-delta neovim \
+    python3-boto python3-boto3 python3-openstacksdk libnotify fuse-libs \
+    jinja2 yq shellcheck \
+    tmt python3-testcloud flatpak-builder flatpak-spawn qemu-ui-sdl \
+    fedpkg centpkg
+
+# linux-system-roles development
+# dnf install -y python3-tox standard-test-roles-inventory-qemu
+# pip install git+https://github.com/linux-system-roles/tox-lsr.git@main
+
+# language servers
+npm install -g @ansible/ansible-language-server pyright bash-language-server typescript-language-server vscode-langservers-extracted
+
+# commands to forward to the host
+for cmd in podman buildah imv skopeo distrobox nmcli eog evince flatpak; do
+    ln -fns /usr/bin/distrobox-host-exec /usr/local/bin/$cmd
+done
+'
diff --git a/build-cockpit-toolbox b/build-cockpit-toolbox
deleted file mode 100755 (executable)
index 9c27ac9..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-set -eux
-NAME=${NAME:-cockpit}
-TAG=${TAG:-latest}
-
-toolbox rm --force $NAME || true
-podman pull ghcr.io/cockpit-project/tasks:${TAG}
-yes | toolbox create --image ghcr.io/cockpit-project/tasks:${TAG} -c $NAME
-
-# install some extra development and desktop tools
-toolbox run -c "$NAME" sh -exc '
-# useful hostname
-echo "cockpit-toolbox" | sudo tee /etc/hostname
-sudo hostname -F /etc/hostname
-
-# enable manpages
-sudo sed -i s/nodocs// /etc/dnf/dnf.conf
-
-sudo dnf install -y ansible bash-completion man-db man-pages moreutils fd-find ripgrep gh git-delta neovim \
-    python3-boto python3-boto3 python3-openstacksdk libnotify fuse-libs \
-    simple-scan libglvnd-gles /usr/bin/scanimage /usr/bin/pngquant /usr/bin/convert pdfmerge \
-    cargo rustfmt clippy \
-    jinja2 yq shellcheck \
-    calibre qt5-qtwayland \
-    tmt python3-testcloud flatpak-builder flatpak-spawn qemu-ui-sdl \
-    fedpkg centpkg
-
-# linux-system-roles development
-# sudo dnf install -y python3-tox standard-test-roles-inventory-qemu
-# sudo pip install git+https://github.com/linux-system-roles/tox-lsr.git@main
-
-# language servers
-sudo npm install -g @ansible/ansible-language-server pyright bash-language-server typescript-language-server vscode-langservers-extracted
-
-# commands to forward to the host
-for cmd in podman buildah imv skopeo toolbox nmcli eog evince flatpak; do
-    printf "#!/bin/sh\nexec flatpak-spawn --host $cmd \42\$@\42\n" | sudo tee /usr/local/bin/$cmd >/dev/null
-    sudo chmod a+x /usr/local/bin/$cmd
-done
-'
diff --git a/build-debian-distrobox b/build-debian-distrobox
new file mode 100755 (executable)
index 0000000..428a0b1
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/sh
+set -eux
+
+RELEASE=${1:-sid}
+DISTRO=${2:-debian}
+
+distrobox rm -f $RELEASE || true
+distrobox create --image docker.io/$DISTRO:$RELEASE --pull --yes --name $RELEASE --hostname $RELEASE
+
+distrobox enter $RELEASE -- sudo sh -exc '
+# 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
+DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade
+
+# development tools
+apt-get install -y --no-install-recommends build-essential git-buildpackage libwww-perl less vim lintian debhelper manpages-dev git pristine-tar bash-completion wget gnupg ubuntu-dev-tools python3-debian fakeroot libdistro-info-perl openssh-client flatpak-xdg-utils
+
+# autopkgtest
+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 distrobox evince imv; do
+    ln -fns /usr/bin/distrobox-host-exec /usr/local/bin/$cmd
+done
+'
diff --git a/build-debian-toolbox b/build-debian-toolbox
deleted file mode 100755 (executable)
index 52f216e..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/sh
-set -eux
-
-RELEASE=${1:-sid}
-DISTRO=${2:-debian}
-
-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 '
-# go-faster apt/dpkg
-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 '
-# useful hostname
-. /etc/os-release
-echo "${ID}-${VERSION_ID:-sid}" | sudo tee /etc/hostname
-sudo hostname -F /etc/hostname
-
-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 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
-
-sudo sed -i "s/Types: deb$/& deb-src/" /etc/apt/sources.list.d/*.sources
-
-# 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