]> piware.de Git - bin.git/blob - build-debian-toolbox
df36cd0cfb7b30b42fa5d96d7ad1b3eed8e1cbbe
[bin.git] / build-debian-toolbox
1 #!/bin/sh
2 set -eux
3
4 RELEASE=${1:-sid}
5 DISTRO=${2:-debian}
6
7 toolbox rm -f $RELEASE || true
8 podman pull docker.io/$DISTRO:$RELEASE
9 toolbox -y create -c $RELEASE --image docker.io/$DISTRO:$RELEASE
10
11 # hack for ubuntu: need to remove existing home dir
12 if [ "$DISTRO" = "ubuntu" ]; then
13     podman unshare sh -exc "H=\$(podman mount $RELEASE); rm -r \$H/home/ubuntu; sed -i '/^ubuntu/d' \$H/etc/passwd \$H/etc/shadow"
14 fi
15
16 # can't do that with toolbox run yet, as we need to install sudo first
17 podman start $RELEASE
18 podman exec -it $RELEASE sh -exc '
19 # go-faster apt/dpkg
20 echo force-unsafe-io > /etc/dpkg/dpkg.cfg.d/unsafe-io
21
22 # otherwise installing systemd fails
23 umount /var/log/journal
24
25 # enable sources
26 if [ -e /etc/apt/sources.list.d/debian.sources ]; then
27     sed -i "/^Types:/ s/deb$/deb deb-src/" /etc/apt/sources.list.d/debian.sources
28 fi
29
30 apt-get update
31 apt-get install -y libnss-myhostname sudo eatmydata libcap2-bin
32
33 # allow sudo with empty password
34 sed -i "s/nullok_secure/nullok/" /etc/pam.d/common-auth
35
36 # unbreak slow host name resolution
37 sed -i "/^hosts:/ s/files dns myhostname/files myhostname dns/" /etc/nsswitch.conf
38 '
39
40 toolbox run --container $RELEASE sh -exc '
41 # useful hostname
42 . /etc/os-release
43 echo "${ID}-${VERSION_ID:-sid}" | sudo tee /etc/hostname
44 sudo hostname -F /etc/hostname
45
46 sudo DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y dist-upgrade
47
48 # development tools
49 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
50
51 # autopkgtest
52 sudo eatmydata apt-get install -y --no-install-recommends autopkgtest qemu-system-x86 qemu-utils genisoimage uidmap
53
54 # commands to forward to the host
55 for cmd in podman buildah toolbox; do
56     printf "#!/bin/sh\n/usr/libexec/flatpak-xdg-utils/flatpak-spawn --host $cmd \42\$@\42\n" | sudo tee /usr/local/bin/$cmd >/dev/null
57     sudo chmod a+x /usr/local/bin/$cmd
58 done
59 '
60
61 toolbox enter --container $RELEASE