diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-26 16:03:02 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-26 16:03:02 +0000 |
commit | 6584112d593ed9fe0bcb2680d82a8849e708dccc (patch) | |
tree | b2c3860f98b73c1cc5857b4c4a8df54e4c35e761 /tests | |
parent | Releasing progress-linux version 1.5.1-4~progress7.99u1. (diff) | |
download | mmdebstrap-6584112d593ed9fe0bcb2680d82a8849e708dccc.tar.xz mmdebstrap-6584112d593ed9fe0bcb2680d82a8849e708dccc.zip |
Merging upstream version 1.5.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/check-against-debootstrap-dist | 34 | ||||
-rw-r--r-- | tests/debootstrap | 8 | ||||
-rw-r--r-- | tests/debug | 4 | ||||
-rw-r--r-- | tests/eatmydata-via-hook-dir | 1 | ||||
-rw-r--r-- | tests/empty-sources.list | 2 | ||||
-rw-r--r-- | tests/jessie-or-older | 1 | ||||
-rw-r--r-- | tests/missing-dev-sys-proc-inside-the-chroot | 4 | ||||
-rw-r--r-- | tests/pivot_root | 10 | ||||
-rw-r--r-- | tests/verbose | 4 |
9 files changed, 46 insertions, 22 deletions
diff --git a/tests/check-against-debootstrap-dist b/tests/check-against-debootstrap-dist index b5706c6..40e5798 100644 --- a/tests/check-against-debootstrap-dist +++ b/tests/check-against-debootstrap-dist @@ -70,6 +70,8 @@ rm /tmp/debian-{{ DIST }}-debootstrap/var/cache/debconf/templates.dat-old \ /tmp/debian-{{ DIST }}-mm/var/cache/debconf/templates.dat-old rm /tmp/debian-{{ DIST }}-debootstrap/var/lib/dpkg/status-old \ /tmp/debian-{{ DIST }}-mm/var/lib/dpkg/status-old +rm -f /tmp/debian-{{ DIST }}-debootstrap/var/lib/dpkg/diversions-old \ + /tmp/debian-{{ DIST }}-mm/var/lib/dpkg/diversions-old # remove dpkg files rm /tmp/debian-{{ DIST }}-debootstrap/var/lib/dpkg/available rm /tmp/debian-{{ DIST }}-debootstrap/var/lib/dpkg/cmethopt @@ -155,24 +157,44 @@ if [ "{{ VARIANT }}" = "-" ] && [ "{{ DIST}}" = oldstable ]; then fi for log in faillog lastlog; do - if ! cmp /tmp/debian-{{ DIST }}-debootstrap/var/log/$log /tmp/debian-{{ DIST }}-mm/var/log/$log >&2;then + f1="/tmp/debian-{{ DIST }}-debootstrap/var/log/$log" + f2="/tmp/debian-{{ DIST }}-mm/var/log/$log" + # skip cmp if file is absent in both chroots + if [ ! -e "$f1" ] && [ ! -e "$f2" ]; then + continue + fi + if ! cmp "$f1" "$f2" >&2;then # if the files differ, make sure they are all zeroes - cmp -n "$(stat -c %s "/tmp/debian-{{ DIST }}-debootstrap/var/log/$log")" "/tmp/debian-{{ DIST }}-debootstrap/var/log/$log" /dev/zero >&2 - cmp -n "$(stat -c %s "/tmp/debian-{{ DIST }}-mm/var/log/$log")" "/tmp/debian-{{ DIST }}-mm/var/log/$log" /dev/zero >&2 + cmp -n "$(stat -c %s "$f1")" "$f1" /dev/zero >&2 + cmp -n "$(stat -c %s "$f2")" "$f2" /dev/zero >&2 # then delete them - rm /tmp/debian-{{ DIST }}-debootstrap/var/log/$log /tmp/debian-{{ DIST }}-mm/var/log/$log + rm "$f1" "$f2" fi done -# the order in which systemd and cron get installed differ and thus the order -# of lines in /etc/group and /etc/gshadow differs if [ "{{ VARIANT }}" = "-" ]; then + # the order in which systemd and cron get installed differ and thus the order + # of lines in /etc/group and /etc/gshadow differs for f in group group- gshadow gshadow-; do for d in mm debootstrap; do sort /tmp/debian-{{ DIST }}-$d/etc/$f > /tmp/debian-{{ DIST }}-$d/etc/$f.bak mv /tmp/debian-{{ DIST }}-$d/etc/$f.bak /tmp/debian-{{ DIST }}-$d/etc/$f done done + # the order in which systemd and passwd get installed differ and thus + # the order of lines in /etc/shadow and /etc/shadow- differs + for f in shadow shadow-; do + for d in mm debootstrap; do + sort /tmp/debian-{{ DIST }}-$d/etc/$f > /tmp/debian-{{ DIST }}-$d/etc/$f.bak + mv /tmp/debian-{{ DIST }}-$d/etc/$f.bak /tmp/debian-{{ DIST }}-$d/etc/$f + done + done + # and since the order was different, ignore the *- files + for f in shadow- passwd-; do + for d in mm debootstrap; do + rm /tmp/debian-{{ DIST }}-$d/etc/$f + done + done fi # since debootstrap 1.0.133 there is no tzdata in the buildd variant and thus diff --git a/tests/debootstrap b/tests/debootstrap index 63c217d..9e1709e 100644 --- a/tests/debootstrap +++ b/tests/debootstrap @@ -5,6 +5,12 @@ export SOURCE_DATE_EPOCH={{ SOURCE_DATE_EPOCH }} tmpdir="$(mktemp -d)" chmod 755 "$tmpdir" -debootstrap "$([ "{{ DIST }}" = oldstable ] && echo --no-merged-usr || echo --merged-usr)" --variant={{ VARIANT }} {{ DIST }} "$tmpdir" {{ MIRROR }} +ret=0 +debootstrap "$([ "{{ DIST }}" = oldstable ] && echo --no-merged-usr || echo --merged-usr)" --variant={{ VARIANT }} {{ DIST }} "$tmpdir" {{ MIRROR }} || ret=$? +if [ "$ret" -ne 0 ]; then + echo "E: debootstrap failed, dumping $tmpdir/debootstrap/debootstrap.log" + cat "$tmpdir/debootstrap/debootstrap.log" + exit 1 +fi tar --sort=name --mtime=@$SOURCE_DATE_EPOCH --clamp-mtime --numeric-owner --one-file-system --xattrs -C "$tmpdir" -c . > "./cache/debian-{{ DIST }}-{{ VARIANT }}.tar" rm -r "$tmpdir" diff --git a/tests/debug b/tests/debug index 5612115..bce3fd2 100644 --- a/tests/debug +++ b/tests/debug @@ -7,9 +7,7 @@ trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM # we use variant standard in verbose mode to see the maximum number of packages # that was chosen in case of USE_HOST_APT_CONFIG=yes -# we use variant important on arches where variant standard is not bit-by-bit -# reproducible due to #1031276 -case {{ VARIANT }} in standard|-) : ;; *) exit 1;; esac +case {{ VARIANT }} in standard) : ;; *) exit 1;; esac {{ CMD }} --variant={{ VARIANT }} --debug {{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }} diff --git a/tests/eatmydata-via-hook-dir b/tests/eatmydata-via-hook-dir index 0df72df..b554508 100644 --- a/tests/eatmydata-via-hook-dir +++ b/tests/eatmydata-via-hook-dir @@ -37,7 +37,6 @@ elfheader="$elfheader\\001\\000" tar -C /tmp/debian-chroot --one-file-system -c . \ | tar -t \ | sort \ - | grep -v '^\./var/lib/dpkg/diversions\(-old\)\?$' \ | diff -u tar1.txt - rm /tmp/checkeatmydata.sh rm -r /tmp/debian-chroot diff --git a/tests/empty-sources.list b/tests/empty-sources.list index bf384f3..f9a6a6a 100644 --- a/tests/empty-sources.list +++ b/tests/empty-sources.list @@ -3,6 +3,6 @@ set -eu export LC_ALL=C.UTF-8 trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM printf '' | {{ CMD }} --mode={{ MODE }} --variant=apt \ - --setup-hook='echo "deb {{ MIRROR }} {{ DIST }} main" > "$1"/etc/apt/sources.list' \ + --setup-hook='test -e "$1"/etc/apt/sources.list || echo "deb {{ MIRROR }} {{ DIST }} main" > "$1"/etc/apt/sources.list' \ {{ DIST }} /tmp/debian-chroot.tar - tar -tf /tmp/debian-chroot.tar | sort | diff -u tar1.txt - diff --git a/tests/jessie-or-older b/tests/jessie-or-older index a3a2ace..db941b6 100644 --- a/tests/jessie-or-older +++ b/tests/jessie-or-older @@ -30,6 +30,7 @@ filter() { --path-exclude=/var/cache/debconf/templates.dat-old \ --path-exclude=/var/lib/dpkg/available \ --path-exclude=/var/lib/dpkg/diversions \ + --path-exclude=/var/lib/dpkg/diversions-old \ --path-exclude=/var/lib/dpkg/cmethopt \ --path-exclude=/var/lib/dpkg/status-old \ --path-exclude=/var/lib/shells.state diff --git a/tests/missing-dev-sys-proc-inside-the-chroot b/tests/missing-dev-sys-proc-inside-the-chroot index 9c9b1c0..935ff31 100644 --- a/tests/missing-dev-sys-proc-inside-the-chroot +++ b/tests/missing-dev-sys-proc-inside-the-chroot @@ -17,8 +17,8 @@ if [ "$(id -u)" -eq 0 ] && [ "{{ MODE }}" != "root" ] && [ "{{ MODE }}" != "auto prefix="runuser -u ${SUDO_USER:-user} --" fi -# creating /sbin manually because of #1071078 +# do not install base-files, so that /proc, /sys and /dev are missing $prefix {{ CMD }} --mode={{ MODE }} --variant={{ VARIANT }} \ - --setup-hook='mkdir "$1/sbin"' \ + --setup-hook='for dir in bin lib lib32 lib64 libo32 libx32 sbin; do ln -s "usr/$dir" "$1/$dir"; done' \ --include=dpkg,dash,diffutils,coreutils,libc-bin,sed \ {{ DIST }} /dev/null {{ MIRROR }} diff --git a/tests/pivot_root b/tests/pivot_root index 860c41b..7aa025e 100644 --- a/tests/pivot_root +++ b/tests/pivot_root @@ -17,19 +17,19 @@ if [ "$(id -u)" -eq 0 ] && [ "{{ MODE }}" != "root" ] && [ "{{ MODE }}" != "auto fi $prefix {{ CMD }} --mode={{ MODE }} --variant=apt \ - --include=mount \ + --include=mount,perl \ {{ DIST }} /tmp/chroot1.tar {{ MIRROR }} if [ {{ MODE }} = "unshare" ]; then # calling pivot_root in root mode does not work for mysterious reasons: # pivot_root: failed to change root from `.' to `mnt': Invalid argument - $prefix {{ CMD }} --mode={{ MODE }} --variant=apt --include=mount \ + $prefix {{ CMD }} --mode={{ MODE }} --variant=apt --include=mount,perl \ --customize-hook='mkdir -p "$1/mnt" "$1/oldroot"' \ --customize-hook='[ ! -e /usr/bin/mmdebstrap ] || cp -aT /usr/bin/mmdebstrap "$1/usr/bin/mmdebstrap"' \ --customize-hook='[ ! -e ./mmdebstrap ] || cp -aT ./mmdebstrap "$1/mnt/mmdebstrap"' \ --customize-hook='mount -o rbind "$1" /mnt && cd /mnt && /sbin/pivot_root . oldroot' \ --customize-hook='unshare -U echo nested unprivileged unshare' \ - --customize-hook='env --chdir=/mnt {{ CMD }} --mode=unshare --variant=apt --include=mount {{ DIST }} /tmp/chroot3.tar {{ MIRROR }}' \ + --customize-hook='env --chdir=/mnt {{ CMD }} --mode=unshare --variant=apt --include=mount,perl {{ DIST }} /tmp/chroot3.tar {{ MIRROR }}' \ --customize-hook='copy-out /tmp/chroot3.tar /tmp' \ --customize-hook='rm -f "/usr/bin/mmdebstrap" "/mnt/mmdebstrap"' \ --customize-hook='umount -l oldroot sys' \ @@ -41,11 +41,11 @@ if [ {{ MODE }} = "unshare" ]; then rm /tmp/chroot2.tar /tmp/chroot3.tar fi -$prefix {{ CMD }} --mode={{ MODE }} --variant=apt --include=mount \ +$prefix {{ CMD }} --mode={{ MODE }} --variant=apt --include=mount,perl \ --customize-hook='mkdir -p "$1/mnt"' \ --customize-hook='[ ! -e /usr/bin/mmdebstrap ] || cp -aT /usr/bin/mmdebstrap "$1/usr/bin/mmdebstrap"' \ --customize-hook='[ ! -e ./mmdebstrap ] || cp -aT ./mmdebstrap "$1/mnt/mmdebstrap"' \ - --chrooted-customize-hook='env --chdir=/mnt {{ CMD }} --mode=unshare --variant=apt --include=mount {{ DIST }} /tmp/chroot3.tar {{ MIRROR }}' \ + --chrooted-customize-hook='env --chdir=/mnt {{ CMD }} --mode=unshare --variant=apt --include=mount,perl {{ DIST }} /tmp/chroot3.tar {{ MIRROR }}' \ --customize-hook='copy-out /tmp/chroot3.tar /tmp' \ --customize-hook='rm -f "$1/usr/bin/mmdebstrap" "$1/mnt/mmdebstrap"' \ {{ DIST }} /tmp/chroot2.tar {{ MIRROR }} diff --git a/tests/verbose b/tests/verbose index b0b0fb9..5a36310 100644 --- a/tests/verbose +++ b/tests/verbose @@ -7,9 +7,7 @@ trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM # we use variant standard in verbose mode to see the maximum number of packages # that was chosen in case of USE_HOST_APT_CONFIG=yes -# we use variant important on arches where variant standard is not bit-by-bit -# reproducible due to #1031276 -case {{ VARIANT }} in standard|-) : ;; *) exit 1;; esac +case {{ VARIANT }} in standard) : ;; *) exit 1;; esac {{ CMD }} --variant={{ VARIANT }} --verbose {{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }} |