diff options
Diffstat (limited to 'debvm-create')
-rwxr-xr-x | debvm-create | 73 |
1 files changed, 51 insertions, 22 deletions
diff --git a/debvm-create b/debvm-create index dbf1192..8ea33fb 100755 --- a/debvm-create +++ b/debvm-create @@ -81,11 +81,43 @@ if test -n "$SSHKEY" && ! test -f "$SSHKEY"; then die "error: ssh keyfile '$SSHKEY' not found" fi +case "$SUITE" in + jessie) + DEBVER=8 + ;; + stretch) + DEBVER=9 + ;; + buster) + DEBVER=10 + ;; + bullseye|stable) + DEBVER=11 + ;; + bookworm|testing) + DEBVER=12 + ;; + trixie) + DEBVER=13 + ;; + forky) + DEBVER=14 + ;; + sid|unstable) + DEBVER=999 + ;; + *) + die "unrecognized Debian release: $SUITE" + ;; +esac + + + KERNEL_SUFFIX=-$ARCHITECTURE case "$ARCHITECTURE" in amd64|arm64) KERNEL_SUFFIX="-cloud-$ARCHITECTURE" - if test "$SUITE" = jessie || test "$SUITE" = stretch; then + if test "$DEBVER" -le 9; then KERNEL_SUFFIX="-$ARCHITECTURE" fi ;; @@ -96,10 +128,10 @@ case "$ARCHITECTURE" in KERNEL_SUFFIX=-686-pae ;; mips64el) - KERNEL_SUFFIX=-mips64r2el + KERNEL_SUFFIX=-5kc-malta ;; mipsel) - KERNEL_SUFFIX=-mips32r2el + KERNEL_SUFFIX=-4kc-malta ;; ppc64el) KERNEL_SUFFIX=-powerpc64le @@ -140,10 +172,9 @@ set -- \ --format=ext2 \ "--architecture=$ARCHITECTURE" \ "--include=$INCLUDE_PACKAGES" \ + '--customize-hook=echo "LABEL=debvm / ext4 defaults 0 1" >"$1/etc/fstab"' \ "$@" -# unless we set up a fstab, / will be read-only -set -- "--customize-hook=echo 'LABEL=debvm / ext4 defaults 0 1' >"'"$1/etc/fstab"' "$@" # set up a hostname set -- \ @@ -177,23 +208,21 @@ fi set -- --skip=cleanup/apt "$@" -case "$SUITE" in - jessie) - # Use obsolete and expired keys. - set -- '--keyring=/usr/share/keyrings/debian-archive-removed-keys.gpg' "$@" - set -- --aptopt='Apt::Key::gpgvcommand "/usr/libexec/mmdebstrap/gpgvnoexpkeysig"' "$@" - # chfn does not work, because libpam-runtime.postinst is late setting up /etc/pam.d/common-auth et al, see #1026765 - set -- --extract-hook='chroot "$1" pam-auth-update --package --force' "$@" - ;; - buster) - # We need /var/lib/dpkg/available for dpkg --set-selections to work. - set -- '--customize-hook=cat "$1"/var/lib/apt/lists/*_Packages | chroot "$1" dpkg --update-avail' "$@" - ;; - bookworm|testing|sid|unstable) - # Avoid the usrmerge package - set -- --hook-dir=/usr/share/mmdebstrap/hooks/merged-usr "$@" - ;; -esac +# We need /var/lib/dpkg/available for dpkg --set-selections to work. +set -- '--customize-hook=chroot "$1" apt-cache dumpavail | chroot "$1" dpkg --update-avail' "$@" + +if test "$DEBVER" -le 8; then + # Use obsolete and expired keys. + set -- '--keyring=/usr/share/keyrings/debian-archive-removed-keys.gpg' "$@" + set -- --aptopt='Apt::Key::gpgvcommand "/usr/libexec/mmdebstrap/gpgvnoexpkeysig"' "$@" + # chfn does not work, because libpam-runtime.postinst is late setting up /etc/pam.d/common-auth et al, see #1026765 + set -- --extract-hook='chroot "$1" pam-auth-update --package --force' "$@" +fi + +if test "$DEBVER" -ge 12; then + # Avoid the usrmerge package + set -- --hook-dir=/usr/share/mmdebstrap/hooks/merged-usr "$@" +fi # suite target mirror set -- "$@" "$SUITE" "$IMAGE" "deb $MIRROR $SUITE main" |