From aadbcc92761cf3bbc730ccf39aa5e09d22f343db Mon Sep 17 00:00:00 2001 From: Jochen Sprickerhof Date: Wed, 21 Dec 2022 20:09:03 +0100 Subject: Support mips* (Closes: #1) --- .gitlab-ci.yml | 2 ++ debvm-create | 4 ++-- debvm-run | 13 ++++++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ed0fc32..b2ce36c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -63,6 +63,8 @@ arch_test: - arm64 - armhf - i386 + - mips64el + - mipsel - ppc64el - s390x before_script: diff --git a/debvm-create b/debvm-create index c44b67d..cbf1a04 100755 --- a/debvm-create +++ b/debvm-create @@ -96,10 +96,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 diff --git a/debvm-run b/debvm-run index 9b26a76..96058d5 100755 --- a/debvm-run +++ b/debvm-run @@ -93,7 +93,6 @@ set -- \ -no-user-config \ -name "debvm-run $IMAGE" \ -m 1G \ - -smp "$(nproc)" \ -kernel "$KERNELTMP" \ -initrd "$INITRDTMP" \ -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0 \ @@ -117,17 +116,25 @@ else case "$VMARCH" in arm64) QEMU=qemu-system-aarch64 - set -- -machine virt -cpu max "$@" + set -- -machine virt -cpu max -smp "$(nproc)" "$@" ;; arm|armel|armhf) QEMU=qemu-system-arm - set -- -machine virt -cpu max "$@" + set -- -machine virt -cpu max -smp "$(nproc)" "$@" ;; ppc64el) QEMU=qemu-system-ppc64 ;; + mips64el) + QEMU="qemu-system-$VMARCH" + set -- -cpu 5KEc "$@" + ;; + mipsel) + QEMU="qemu-system-$VMARCH" + ;; *) QEMU="qemu-system-$VMARCH" + set -- -smp "$(nproc)" "$@" ;; esac fi -- cgit v1.2.3 From 4f286f7b1439d81d37826b96553ebda287d0c5f4 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Thu, 22 Dec 2022 16:15:57 +0100 Subject: debvm-create: future-proof the merged-usr hook --- debvm-create | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/debvm-create b/debvm-create index c44b67d..3791953 100755 --- a/debvm-create +++ b/debvm-create @@ -161,7 +161,9 @@ case "$SUITE" in # 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) + stretch|bullseye|stable) + ;; + *) # Avoid the usrmerge package set -- --hook-dir=/usr/share/mmdebstrap/hooks/merged-usr "$@" ;; -- cgit v1.2.3 From 4377925ed668b66e7bb35d8f6597e9f7b741ed21 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Thu, 22 Dec 2022 16:18:25 +0100 Subject: debvm-create: drop wrong comment about fstab We no longer need the fstab, because we now pass rw. The comment is simply wrong. We still create it to increase compatibility. --- debvm-create | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/debvm-create b/debvm-create index 3791953..615054a 100755 --- a/debvm-create +++ b/debvm-create @@ -119,10 +119,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 -- \ -- cgit v1.2.3 From f3caaf885cf4b4f1e7489d1019f76ed517037ebe Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Fri, 23 Dec 2022 08:16:54 +0100 Subject: debvm-run: reenable smp for ppc64el Fixes: aadbcc92761c ("Support mips* (Closes: #1)") --- debvm-run | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/debvm-run b/debvm-run index 96058d5..419c6ca 100755 --- a/debvm-run +++ b/debvm-run @@ -100,6 +100,7 @@ set -- \ -device "virtio-net-pci,netdev=net0" \ "$@" +MAX_SMP= if test "$ARCHITECTURE" = "$VMARCH"; then QEMU=kvm # While kvm will fall back gracefully, the following options can only @@ -116,28 +117,34 @@ else case "$VMARCH" in arm64) QEMU=qemu-system-aarch64 - set -- -machine virt -cpu max -smp "$(nproc)" "$@" + set -- -machine virt -cpu max "$@" ;; arm|armel|armhf) QEMU=qemu-system-arm - set -- -machine virt -cpu max -smp "$(nproc)" "$@" + set -- -machine virt -cpu max "$@" ;; ppc64el) QEMU=qemu-system-ppc64 ;; mips64el) QEMU="qemu-system-$VMARCH" + MAX_SMP=1 set -- -cpu 5KEc "$@" ;; mipsel) QEMU="qemu-system-$VMARCH" + MAX_SMP=1 ;; *) QEMU="qemu-system-$VMARCH" - set -- -smp "$(nproc)" "$@" ;; esac fi +if test "$MAX_SMP" -gt 1; then + NPROC=$(nproc) + test "$NPROC" -gt "$MAX_SMP" && NPROC=$MAX_SMP + set -- -smp "$NPROC" "$@" +fi if test -z "$GRAPHICAL"; then set -- -nographic "$@" -- cgit v1.2.3 From cb3bc614a76ca2155ce01e5feb0a15e639ee8a39 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Fri, 23 Dec 2022 08:17:55 +0100 Subject: debvm-run: allow -smp 2 for mipsel --- debvm-run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debvm-run b/debvm-run index 419c6ca..7c6f4ff 100755 --- a/debvm-run +++ b/debvm-run @@ -133,7 +133,7 @@ else ;; mipsel) QEMU="qemu-system-$VMARCH" - MAX_SMP=1 + MAX_SMP=2 ;; *) QEMU="qemu-system-$VMARCH" -- cgit v1.2.3 From 88e8a557c7f181d540365ddb8d26b32df19ae45d Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Fri, 23 Dec 2022 09:15:07 +0100 Subject: Revert "debvm-run: allow -smp 2 for mipsel" This reverts commit cb3bc614a76ca2155ce01e5feb0a15e639ee8a39. Still hangs for Jochen. Let's not investigate further. --- debvm-run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debvm-run b/debvm-run index 7c6f4ff..419c6ca 100755 --- a/debvm-run +++ b/debvm-run @@ -133,7 +133,7 @@ else ;; mipsel) QEMU="qemu-system-$VMARCH" - MAX_SMP=2 + MAX_SMP=1 ;; *) QEMU="qemu-system-$VMARCH" -- cgit v1.2.3 From f91b7d821202f5d95f74f0e768a8a2728915cd19 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Fri, 23 Dec 2022 09:34:18 +0100 Subject: debvm-create: always initialize available database This is not a buster thingy. It affects other releases as well. Also avoid poking at apt internals. --- debvm-create | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/debvm-create b/debvm-create index 615054a..51310a5 100755 --- a/debvm-create +++ b/debvm-create @@ -148,6 +148,9 @@ fi set -- --skip=cleanup/apt "$@" +# 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' "$@" + case "$SUITE" in jessie) # Use obsolete and expired keys. @@ -156,11 +159,7 @@ case "$SUITE" in # 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' "$@" - ;; - stretch|bullseye|stable) + buster|stretch|bullseye|stable) ;; *) # Avoid the usrmerge package -- cgit v1.2.3 From a2dbdff591b22d2d85cf0e41b517c41c2bb7ba3f Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Fri, 23 Dec 2022 09:32:30 +0100 Subject: debvm-create: centralize matching of release names --- debvm-create | 61 ++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/debvm-create b/debvm-create index 4ca4340..b367b3d 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 ;; @@ -151,21 +183,18 @@ set -- --skip=cleanup/apt "$@" # 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' "$@" -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|stretch|bullseye|stable) - ;; - *) - # Avoid the usrmerge package - set -- --hook-dir=/usr/share/mmdebstrap/hooks/merged-usr "$@" - ;; -esac +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" -- cgit v1.2.3