forked from josch/mmdebstrap
format shell scripts with shfmt --binary-next-line --case-indent --indent 2 --simplify
This commit is contained in:
parent
eca6cb314c
commit
c82fc7e261
108 changed files with 1847 additions and 1775 deletions
19
coverage.py
19
coverage.py
|
@ -362,6 +362,21 @@ def main():
|
||||||
check=False,
|
check=False,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
).stdout.decode()
|
).stdout.decode()
|
||||||
|
shfmt = subprocess.run(
|
||||||
|
[
|
||||||
|
"shfmt",
|
||||||
|
"--posix",
|
||||||
|
"--binary-next-line",
|
||||||
|
"--case-indent",
|
||||||
|
"--indent",
|
||||||
|
"2",
|
||||||
|
"--simplify",
|
||||||
|
"-d",
|
||||||
|
"shared/test.sh",
|
||||||
|
],
|
||||||
|
check=False,
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
).stdout.decode()
|
||||||
argv = None
|
argv = None
|
||||||
match test:
|
match test:
|
||||||
case "qemu":
|
case "qemu":
|
||||||
|
@ -411,9 +426,11 @@ def main():
|
||||||
acc_time_per_test[name].append(walltime)
|
acc_time_per_test[name].append(walltime)
|
||||||
print(separator, file=sys.stderr)
|
print(separator, file=sys.stderr)
|
||||||
print(f"duration: {walltime}", file=sys.stderr)
|
print(f"duration: {walltime}", file=sys.stderr)
|
||||||
if proc.returncode != 0 or shellcheck != "":
|
if proc.returncode != 0 or shellcheck != "" or shfmt != "":
|
||||||
if shellcheck != "":
|
if shellcheck != "":
|
||||||
print(shellcheck)
|
print(shellcheck)
|
||||||
|
if shfmt != "":
|
||||||
|
print(shfmt)
|
||||||
failed.append(formated_test_name)
|
failed.append(formated_test_name)
|
||||||
print("result: FAILURE", file=sys.stderr)
|
print("result: FAILURE", file=sys.stderr)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -8,7 +8,8 @@ set -eu
|
||||||
|
|
||||||
case "$CMD" in
|
case "$CMD" in
|
||||||
"mmdebstrap "* | mmdebstrap | *" mmdebstrap" | *" mmdebstrap "*)
|
"mmdebstrap "* | mmdebstrap | *" mmdebstrap" | *" mmdebstrap "*)
|
||||||
MMSCRIPT="$(command -v mmdebstrap 2>/dev/null)";;
|
MMSCRIPT="$(command -v mmdebstrap 2>/dev/null)"
|
||||||
|
;;
|
||||||
*) MMSCRIPT=./mmdebstrap ;;
|
*) MMSCRIPT=./mmdebstrap ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -41,6 +42,8 @@ done
|
||||||
|
|
||||||
shellcheck --exclude=SC2016 coverage.sh make_mirror.sh run_null.sh run_qemu.sh gpgvnoexpkeysig mmdebstrap-autopkgtest-build-qemu hooks/*/*.sh
|
shellcheck --exclude=SC2016 coverage.sh make_mirror.sh run_null.sh run_qemu.sh gpgvnoexpkeysig mmdebstrap-autopkgtest-build-qemu hooks/*/*.sh
|
||||||
|
|
||||||
|
shfmt --binary-next-line --case-indent --indent 2 --simplify -d coverage.sh make_mirror.sh run_null.sh run_qemu.sh mmdebstrap-autopkgtest-build-qemu gpgvnoexpkeysig
|
||||||
|
|
||||||
mirrordir="./shared/cache/debian"
|
mirrordir="./shared/cache/debian"
|
||||||
|
|
||||||
if [ ! -e "$mirrordir" ]; then
|
if [ ! -e "$mirrordir" ]; then
|
||||||
|
@ -105,7 +108,7 @@ END
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check if the wiki has to be updated with pod2markdown output
|
# check if the wiki has to be updated with pod2markdown output
|
||||||
if [ "${DEBEMAIL:-}" = "josch@debian.org" ]; then
|
if [ "${DEBEMAIL-}" = "josch@debian.org" ]; then
|
||||||
bash -exc "diff -u <(curl --silent https://gitlab.mister-muffin.de/josch/mmdebstrap/wiki/raw/Home | dos2unix; echo) <(pod2markdown < mmdebstrap)" || :
|
bash -exc "diff -u <(curl --silent https://gitlab.mister-muffin.de/josch/mmdebstrap/wiki/raw/Home | dos2unix; echo) <(pod2markdown < mmdebstrap)" || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -322,8 +322,14 @@ if [ "$FORCE_UPDATE" != "yes" ] && [ -e "$oldmirrordir/dists/$DEFAULT_DIST/InRel
|
||||||
http_code=$(curl --output /dev/null --silent --location --head --time-cond "$oldmirrordir/dists/$DEFAULT_DIST/InRelease" --write-out '%{http_code}' "$mirror/dists/$DEFAULT_DIST/InRelease")
|
http_code=$(curl --output /dev/null --silent --location --head --time-cond "$oldmirrordir/dists/$DEFAULT_DIST/InRelease" --write-out '%{http_code}' "$mirror/dists/$DEFAULT_DIST/InRelease")
|
||||||
case "$http_code" in
|
case "$http_code" in
|
||||||
200) ;; # need update
|
200) ;; # need update
|
||||||
304) echo up-to-date; exit 0;;
|
304)
|
||||||
*) echo "unexpected status: $http_code"; exit 1;;
|
echo up-to-date
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "unexpected status: $http_code"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -234,8 +234,8 @@ while test "$#" -gt 0; do
|
||||||
done
|
done
|
||||||
|
|
||||||
test -z "$RELEASE" -o -z "$IMAGE" && usage_error "missing positional arguments"
|
test -z "$RELEASE" -o -z "$IMAGE" && usage_error "missing positional arguments"
|
||||||
test "$BOOT" = efi ||
|
test "$BOOT" = efi \
|
||||||
die "this tool does not support boot modes other than efi"
|
|| die "this tool does not support boot modes other than efi"
|
||||||
|
|
||||||
case "$ARCHITECTURE" in
|
case "$ARCHITECTURE" in
|
||||||
amd64)
|
amd64)
|
||||||
|
@ -289,11 +289,11 @@ case $arches in
|
||||||
*) die "enable $ARCHITECTURE by running: sudo dpkg --add-architecture $ARCHITECTURE && sudo apt update" ;;
|
*) die "enable $ARCHITECTURE by running: sudo dpkg --add-architecture $ARCHITECTURE && sudo apt update" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
test "$(dpkg-query -f '${db:Status-Status}' -W "dpkg-dev")" = installed ||
|
test "$(dpkg-query -f '${db:Status-Status}' -W "dpkg-dev")" = installed \
|
||||||
die "please install dpkg-dev"
|
|| die "please install dpkg-dev"
|
||||||
|
|
||||||
dpkg-checkbuilddeps -d "autopkgtest, dosfstools, e2fsprogs, fdisk, mount, mtools, passwd, uidmap, libarchive13, systemd-boot-efi:$ARCHITECTURE $BINUTILS" /dev/null ||
|
dpkg-checkbuilddeps -d "autopkgtest, dosfstools, e2fsprogs, fdisk, mount, mtools, passwd, uidmap, libarchive13, systemd-boot-efi:$ARCHITECTURE $BINUTILS" /dev/null \
|
||||||
die "please install the required packages listed above"
|
|| die "please install the required packages listed above"
|
||||||
|
|
||||||
BOOTSTUB="/usr/lib/systemd/boot/efi/linux${EFIIMG#boot}.stub"
|
BOOTSTUB="/usr/lib/systemd/boot/efi/linux${EFIIMG#boot}.stub"
|
||||||
|
|
||||||
|
@ -327,7 +327,8 @@ set -- \
|
||||||
--architecture="$ARCHITECTURE"
|
--architecture="$ARCHITECTURE"
|
||||||
|
|
||||||
case $MIRROR in http://snapshot.debian.org/archive/* | https://snapshot.debian.org/archive/*)
|
case $MIRROR in http://snapshot.debian.org/archive/* | https://snapshot.debian.org/archive/*)
|
||||||
set -- "$@" --aptopt='Acquire::Check-Valid-Until "false"';;
|
set -- "$@" --aptopt='Acquire::Check-Valid-Until "false"'
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
EXT_FEATURES=
|
EXT_FEATURES=
|
||||||
|
@ -373,7 +374,7 @@ mmdebstrap "$@" | {
|
||||||
set -- "$@" -O "$EXT_FEATURES"
|
set -- "$@" -O "$EXT_FEATURES"
|
||||||
fi
|
fi
|
||||||
EXTOPTS="offset=$(((FAT_OFFSET_SECTORS + FAT_SIZE_SECTORS) * 512))"
|
EXTOPTS="offset=$(((FAT_OFFSET_SECTORS + FAT_SIZE_SECTORS) * 512))"
|
||||||
if test -n "${SOURCE_DATE_EPOCH:-}"; then
|
if test -n "${SOURCE_DATE_EPOCH-}"; then
|
||||||
uuid="$(uuidgen --sha1 --namespace="$(uuidgen --sha1 --namespace='@dns' --name mister-muffin.de)" --name "$SOURCE_DATE_EPOCH")"
|
uuid="$(uuidgen --sha1 --namespace="$(uuidgen --sha1 --namespace='@dns' --name mister-muffin.de)" --name "$SOURCE_DATE_EPOCH")"
|
||||||
set -- "$@" -U "$uuid"
|
set -- "$@" -U "$uuid"
|
||||||
EXTOPTS="$EXTOPTS,hash_seed=$uuid"
|
EXTOPTS="$EXTOPTS,hash_seed=$uuid"
|
||||||
|
@ -383,7 +384,6 @@ mmdebstrap "$@" | {
|
||||||
/sbin/mke2fs "$@"
|
/sbin/mke2fs "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
echo "root=LABEL=autopkgtestvm rw console=ttyS0" >"$WORKDIR/cmdline"
|
echo "root=LABEL=autopkgtestvm rw console=ttyS0" >"$WORKDIR/cmdline"
|
||||||
|
|
||||||
align_size() {
|
align_size() {
|
||||||
|
@ -399,8 +399,8 @@ test "$RELEASE" = jessie -a "$((alignment))" -lt "$((1024*1024))" && {
|
||||||
}
|
}
|
||||||
lastoffset=0
|
lastoffset=0
|
||||||
# shellcheck disable=SC2034 # unused variables serve documentation
|
# shellcheck disable=SC2034 # unused variables serve documentation
|
||||||
lastoffset="$("${GNU_PREFIX}objdump" -h "$BOOTSTUB" |
|
lastoffset="$("${GNU_PREFIX}objdump" -h "$BOOTSTUB" \
|
||||||
while read -r idx name size vma lma fileoff algn behind; do
|
| while read -r idx name size vma lma fileoff algn behind; do
|
||||||
test -z "$behind" -a "${algn#"2**"}" != "$algn" || continue
|
test -z "$behind" -a "${algn#"2**"}" != "$algn" || continue
|
||||||
offset=$((0x$vma + 0x$size))
|
offset=$((0x$vma + 0x$size))
|
||||||
test "$offset" -gt "$lastoffset" || continue
|
test "$offset" -gt "$lastoffset" || continue
|
||||||
|
|
23
run_null.sh
23
run_null.sh
|
@ -26,13 +26,22 @@ done
|
||||||
# - Read fd 3 and let the group exit with that value
|
# - Read fd 3 and let the group exit with that value
|
||||||
# - Redirect fd 4 to stdout
|
# - Redirect fd 4 to stdout
|
||||||
ret=0
|
ret=0
|
||||||
{ { { {
|
{
|
||||||
ret=0;
|
{
|
||||||
( exec 3>&- 4>&-; env --chdir=./shared $SUDO sh -x ./test.sh 2>&1) || ret=$?;
|
{
|
||||||
echo $ret >&3;
|
{
|
||||||
} | tee shared/output.txt >&4;
|
ret=0
|
||||||
} 3>&1;
|
(
|
||||||
} | { read -r xs; exit "$xs"; }
|
exec 3>&- 4>&-
|
||||||
|
env --chdir=./shared $SUDO sh -x ./test.sh 2>&1
|
||||||
|
) || ret=$?
|
||||||
|
echo $ret >&3
|
||||||
|
} | tee shared/output.txt >&4
|
||||||
|
} 3>&1
|
||||||
|
} | {
|
||||||
|
read -r xs
|
||||||
|
exit "$xs"
|
||||||
|
}
|
||||||
} 4>&1 || ret=$?
|
} 4>&1 || ret=$?
|
||||||
if [ "$ret" -ne 0 ]; then
|
if [ "$ret" -ne 0 ]; then
|
||||||
echo "test.sh failed"
|
echo "test.sh failed"
|
||||||
|
|
|
@ -6,4 +6,7 @@ trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM
|
||||||
--include '?narrow(?archive(^{{ DIST }}$),?essential)' \
|
--include '?narrow(?archive(^{{ DIST }}$),?essential)' \
|
||||||
--include apt \
|
--include apt \
|
||||||
{{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
{{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
||||||
{ tar -tf /tmp/debian-chroot.tar; echo ./var/lib/apt/extended_states; } | sort | diff -u tar1.txt -
|
{
|
||||||
|
tar -tf /tmp/debian-chroot.tar
|
||||||
|
echo ./var/lib/apt/extended_states
|
||||||
|
} | sort | diff -u tar1.txt -
|
||||||
|
|
|
@ -31,7 +31,7 @@ AUTOPROXY=
|
||||||
eval "$(apt-config shell AUTOPROXY Acquire::http::Proxy-Auto-Detect)"
|
eval "$(apt-config shell AUTOPROXY Acquire::http::Proxy-Auto-Detect)"
|
||||||
if [ -n "$AUTOPROXY" ] && [ -x "$AUTOPROXY" ] && [ -e /tmp/.auto-apt-proxy-0 ]; then
|
if [ -n "$AUTOPROXY" ] && [ -x "$AUTOPROXY" ] && [ -e /tmp/.auto-apt-proxy-0 ]; then
|
||||||
TMP_APT_CONFIG=$(mktemp)
|
TMP_APT_CONFIG=$(mktemp)
|
||||||
echo "Dir \"/dev/null\";" > "$TMP_APT_CONFIG"
|
echo 'Dir "/dev/null";' >"$TMP_APT_CONFIG"
|
||||||
chmod 644 "$TMP_APT_CONFIG"
|
chmod 644 "$TMP_APT_CONFIG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,9 @@ trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM
|
||||||
--include "$(tr '\n' ',' <pkglist.txt)" \
|
--include "$(tr '\n' ',' <pkglist.txt)" \
|
||||||
--aptopt='APT::Solver "aspcud"' \
|
--aptopt='APT::Solver "aspcud"' \
|
||||||
{{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
{{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
||||||
{ tar -tf /tmp/debian-chroot.tar; echo ./var/lib/apt/extended_states; } | sort \
|
{
|
||||||
|
tar -tf /tmp/debian-chroot.tar
|
||||||
|
echo ./var/lib/apt/extended_states
|
||||||
|
} | sort \
|
||||||
| grep -v '^./etc/apt/apt.conf.d/99mmdebstrap$' \
|
| grep -v '^./etc/apt/apt.conf.d/99mmdebstrap$' \
|
||||||
| diff -u tar1.txt -
|
| diff -u tar1.txt -
|
||||||
|
|
|
@ -215,7 +215,10 @@ case {{ DIST }} in testing|unstable)
|
||||||
case $oldlink in
|
case $oldlink in
|
||||||
/usr/*) : ;;
|
/usr/*) : ;;
|
||||||
/*) oldlink="/usr$oldlink" ;;
|
/*) oldlink="/usr$oldlink" ;;
|
||||||
*) echo unexpected >&2; exit 1 ;;
|
*)
|
||||||
|
echo unexpected >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
ln -sf "$oldlink" "/tmp/debian-{{ DIST }}-$d/etc/systemd/system/$f"
|
ln -sf "$oldlink" "/tmp/debian-{{ DIST }}-$d/etc/systemd/system/$f"
|
||||||
done
|
done
|
||||||
|
|
|
@ -26,7 +26,6 @@ fi
|
||||||
[ "$(id -u)" -eq 0 ]
|
[ "$(id -u)" -eq 0 ]
|
||||||
[ -e "/proc/sys/fs/binfmt_misc/qemu-$(deb2qemu "$arch")" ]
|
[ -e "/proc/sys/fs/binfmt_misc/qemu-$(deb2qemu "$arch")" ]
|
||||||
|
|
||||||
|
|
||||||
# we need --hook-dir=./hooks/merged-usr because usrmerge does not understand
|
# we need --hook-dir=./hooks/merged-usr because usrmerge does not understand
|
||||||
# DPKG_ROOT
|
# DPKG_ROOT
|
||||||
#
|
#
|
||||||
|
@ -53,8 +52,7 @@ for INCLUDE in '' 'apt' 'systemd-sysv'; do
|
||||||
# * /var/lib/dpkg/triggers -- #990712
|
# * /var/lib/dpkg/triggers -- #990712
|
||||||
# * /var/cache/debconf/*.dat-old -- needs investigation
|
# * /var/cache/debconf/*.dat-old -- needs investigation
|
||||||
for tar in root chrootless; do
|
for tar in root chrootless; do
|
||||||
<"/tmp/$tar.tar" \
|
./tarfilter <"/tmp/$tar.tar" \
|
||||||
./tarfilter \
|
|
||||||
--path-exclude=/var/cache/debconf/config.dat-old \
|
--path-exclude=/var/cache/debconf/config.dat-old \
|
||||||
--path-exclude=/var/cache/debconf/templates.dat-old \
|
--path-exclude=/var/cache/debconf/templates.dat-old \
|
||||||
--path-exclude=/etc/ld.so.cache \
|
--path-exclude=/etc/ld.so.cache \
|
||||||
|
|
|
@ -38,7 +38,8 @@ $prefix {{ CMD }} --mode={{ MODE }} --variant=apt --architectures="$foreign_arch
|
||||||
{{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
{{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
||||||
# we ignore differences between architectures by ignoring some files
|
# we ignore differences between architectures by ignoring some files
|
||||||
# and renaming others
|
# and renaming others
|
||||||
{ tar -tf /tmp/debian-chroot.tar \
|
{
|
||||||
|
tar -tf /tmp/debian-chroot.tar \
|
||||||
| grep -v '^\./usr/bin/i386$' \
|
| grep -v '^\./usr/bin/i386$' \
|
||||||
| grep -v '^\./usr/bin/x86_64$' \
|
| grep -v '^\./usr/bin/x86_64$' \
|
||||||
| grep -v '^\./lib64$' \
|
| grep -v '^\./lib64$' \
|
||||||
|
@ -53,10 +54,10 @@ $prefix {{ CMD }} --mode={{ MODE }} --variant=apt --architectures="$foreign_arch
|
||||||
| grep -v '^\./usr/share/man/man8/i386\.8\.gz$' \
|
| grep -v '^\./usr/share/man/man8/i386\.8\.gz$' \
|
||||||
| grep -v '^\./usr/share/man/man8/x86_64\.8\.gz$' \
|
| grep -v '^\./usr/share/man/man8/x86_64\.8\.gz$' \
|
||||||
| sed "s/$foreign_gnu/$native_gnu/" \
|
| sed "s/$foreign_gnu/$native_gnu/" \
|
||||||
| sed "s/$foreign_arch/$native_arch/";
|
| sed "s/$foreign_arch/$native_arch/"
|
||||||
} | sort >/tmp/tar2.txt
|
} | sort >/tmp/tar2.txt
|
||||||
{ < tar1.txt \
|
{
|
||||||
grep -v '^\./usr/bin/i386$' \
|
grep <tar1.txt -v '^\./usr/bin/i386$' \
|
||||||
| grep -v '^\./usr/bin/x86_64$' \
|
| grep -v '^\./usr/bin/x86_64$' \
|
||||||
| grep -v '^\./lib32$' \
|
| grep -v '^\./lib32$' \
|
||||||
| grep -v '^\./lib64$' \
|
| grep -v '^\./lib64$' \
|
||||||
|
@ -72,6 +73,6 @@ $prefix {{ CMD }} --mode={{ MODE }} --variant=apt --architectures="$foreign_arch
|
||||||
| grep -v "^\\./usr/lib/$native_gnu/perl/5\\.[0-9][.0-9]\\+/.*\\.ph$" \
|
| grep -v "^\\./usr/lib/$native_gnu/perl/5\\.[0-9][.0-9]\\+/.*\\.ph$" \
|
||||||
| grep -v "^\\./usr/share/doc/[^/]\\+/changelog\\(\\.Debian\\)\\?\\.$native_arch\\.gz$" \
|
| grep -v "^\\./usr/share/doc/[^/]\\+/changelog\\(\\.Debian\\)\\?\\.$native_arch\\.gz$" \
|
||||||
| grep -v '^\./usr/share/man/man8/i386\.8\.gz$' \
|
| grep -v '^\./usr/share/man/man8/i386\.8\.gz$' \
|
||||||
| grep -v '^\./usr/share/man/man8/x86_64\.8\.gz$';
|
| grep -v '^\./usr/share/man/man8/x86_64\.8\.gz$'
|
||||||
} | sort | diff -u - /tmp/tar2.txt >&2
|
} | sort | diff -u - /tmp/tar2.txt >&2
|
||||||
rm /tmp/debian-chroot.tar /tmp/tar2.txt
|
rm /tmp/debian-chroot.tar /tmp/tar2.txt
|
||||||
|
|
|
@ -18,7 +18,7 @@ prefix="runuser -u ${SUDO_USER:-user} --"
|
||||||
quote() { printf %s\\n "$1" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/'/"; }
|
quote() { printf %s\\n "$1" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/'/"; }
|
||||||
homedir=$($prefix sh -c 'cd && pwd')
|
homedir=$($prefix sh -c 'cd && pwd')
|
||||||
# apt:test/integration/test-apt-key
|
# apt:test/integration/test-apt-key
|
||||||
TMPDIR_ADD="This is fü\$\$ing cràzy, \$(apt -v)\$!"
|
TMPDIR_ADD='This is fü$$ing cràzy, $(apt -v)$!'
|
||||||
$prefix mkdir "$homedir/$TMPDIR_ADD"
|
$prefix mkdir "$homedir/$TMPDIR_ADD"
|
||||||
# make sure the unshared user can traverse into the TMPDIR
|
# make sure the unshared user can traverse into the TMPDIR
|
||||||
chmod 711 "$homedir"
|
chmod 711 "$homedir"
|
||||||
|
|
|
@ -40,6 +40,6 @@ tar -C /tmp/debian-chroot --one-file-system -c . \
|
||||||
tar -t \
|
tar -t \
|
||||||
| grep -v "^./etc/apt/sources.list.d/0000deb822.sources$" \
|
| grep -v "^./etc/apt/sources.list.d/0000deb822.sources$" \
|
||||||
| grep -v "^./etc/apt/sources.list.d/0001main.list$" \
|
| grep -v "^./etc/apt/sources.list.d/0001main.list$" \
|
||||||
| grep -v "^./etc/apt/sources.list.d/0002sources.list";
|
| grep -v "^./etc/apt/sources.list.d/0002sources.list"
|
||||||
printf "./etc/apt/sources.list\n";
|
printf "./etc/apt/sources.list\n"
|
||||||
} | sort | diff -u tar1.txt -
|
} | sort | diff -u tar1.txt -
|
||||||
|
|
|
@ -39,6 +39,6 @@ tar -C /tmp/debian-chroot --one-file-system -c . \
|
||||||
tar -t \
|
tar -t \
|
||||||
| grep -v "^./etc/apt/sources.list.d/0000deb822.sources$" \
|
| grep -v "^./etc/apt/sources.list.d/0000deb822.sources$" \
|
||||||
| grep -v "^./etc/apt/sources.list.d/0001main.sources$" \
|
| grep -v "^./etc/apt/sources.list.d/0001main.sources$" \
|
||||||
| grep -v "^./etc/apt/sources.list.d/0002sources.list$";
|
| grep -v "^./etc/apt/sources.list.d/0002sources.list$"
|
||||||
printf "./etc/apt/sources.list\n";
|
printf "./etc/apt/sources.list\n"
|
||||||
} | sort | diff -u tar1.txt -
|
} | sort | diff -u tar1.txt -
|
||||||
|
|
|
@ -7,4 +7,8 @@ echo no-pager > /tmp/config
|
||||||
printf 'path-exclude=/usr/share/doc/*\nno-pager\npath-include=/usr/share/doc/dpkg/copyright\n' | cmp /tmp/debian-chroot/etc/dpkg/dpkg.cfg.d/99mmdebstrap -
|
printf 'path-exclude=/usr/share/doc/*\nno-pager\npath-include=/usr/share/doc/dpkg/copyright\n' | cmp /tmp/debian-chroot/etc/dpkg/dpkg.cfg.d/99mmdebstrap -
|
||||||
rm /tmp/debian-chroot/etc/dpkg/dpkg.cfg.d/99mmdebstrap
|
rm /tmp/debian-chroot/etc/dpkg/dpkg.cfg.d/99mmdebstrap
|
||||||
tar -C /tmp/debian-chroot --one-file-system -c . | tar -t | sort >tar2.txt
|
tar -C /tmp/debian-chroot --one-file-system -c . | tar -t | sort >tar2.txt
|
||||||
{ grep -v '^./usr/share/doc/.' tar1.txt; echo ./usr/share/doc/dpkg/; echo ./usr/share/doc/dpkg/copyright; } | sort | diff -u - tar2.txt
|
{
|
||||||
|
grep -v '^./usr/share/doc/.' tar1.txt
|
||||||
|
echo ./usr/share/doc/dpkg/
|
||||||
|
echo ./usr/share/doc/dpkg/copyright
|
||||||
|
} | sort | diff -u - tar2.txt
|
||||||
|
|
|
@ -12,18 +12,24 @@ EOF
|
||||||
SCRIPT
|
SCRIPT
|
||||||
chmod +x /tmp/checkeatmydata.sh
|
chmod +x /tmp/checkeatmydata.sh
|
||||||
# first four bytes: magic
|
# first four bytes: magic
|
||||||
elfheader="\\177ELF"
|
elfheader='\177ELF'
|
||||||
# fifth byte: bits
|
# fifth byte: bits
|
||||||
case "$(dpkg-architecture -qDEB_HOST_ARCH_BITS)" in
|
case "$(dpkg-architecture -qDEB_HOST_ARCH_BITS)" in
|
||||||
32) elfheader="$elfheader\\001" ;;
|
32) elfheader="$elfheader\\001" ;;
|
||||||
64) elfheader="$elfheader\\002" ;;
|
64) elfheader="$elfheader\\002" ;;
|
||||||
*) echo "bits not supported"; exit 1;;
|
*)
|
||||||
|
echo "bits not supported"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
# sixth byte: endian
|
# sixth byte: endian
|
||||||
case "$(dpkg-architecture -qDEB_HOST_ARCH_ENDIAN)" in
|
case "$(dpkg-architecture -qDEB_HOST_ARCH_ENDIAN)" in
|
||||||
little) elfheader="$elfheader\\001" ;;
|
little) elfheader="$elfheader\\001" ;;
|
||||||
big) elfheader="$elfheader\\002" ;;
|
big) elfheader="$elfheader\\002" ;;
|
||||||
*) echo "endian not supported"; exit 1;;
|
*)
|
||||||
|
echo "endian not supported"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
# seventh and eigth byte: elf version (1) and abi (unset)
|
# seventh and eigth byte: elf version (1) and abi (unset)
|
||||||
elfheader="$elfheader\\001\\000"
|
elfheader="$elfheader\\001\\000"
|
||||||
|
|
|
@ -10,7 +10,8 @@ apt-get remove --yes qemu-user-binfmt binfmt-support qemu-user
|
||||||
{{ CMD }} --mode={{ MODE }} --variant=apt --architectures=i386 {{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
{{ CMD }} --mode={{ MODE }} --variant=apt --architectures=i386 {{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
||||||
# we ignore differences between architectures by ignoring some files
|
# we ignore differences between architectures by ignoring some files
|
||||||
# and renaming others
|
# and renaming others
|
||||||
{ tar -tf /tmp/debian-chroot.tar \
|
{
|
||||||
|
tar -tf /tmp/debian-chroot.tar \
|
||||||
| grep -v '^\./usr/bin/i386$' \
|
| grep -v '^\./usr/bin/i386$' \
|
||||||
| grep -v '^\./usr/lib/ld-linux\.so\.2$' \
|
| grep -v '^\./usr/lib/ld-linux\.so\.2$' \
|
||||||
| grep -v '^\./usr/lib/i386-linux-gnu/ld-linux\.so\.2$' \
|
| grep -v '^\./usr/lib/i386-linux-gnu/ld-linux\.so\.2$' \
|
||||||
|
@ -20,10 +21,10 @@ apt-get remove --yes qemu-user-binfmt binfmt-support qemu-user
|
||||||
| grep -v '^\./usr/share/doc/[^/]\+/changelog\(\.Debian\)\?\.i386\.gz$' \
|
| grep -v '^\./usr/share/doc/[^/]\+/changelog\(\.Debian\)\?\.i386\.gz$' \
|
||||||
| sed 's/i386-linux-gnu/x86_64-linux-gnu/' \
|
| sed 's/i386-linux-gnu/x86_64-linux-gnu/' \
|
||||||
| sed 's/i386/amd64/' \
|
| sed 's/i386/amd64/' \
|
||||||
| sed 's/\/stubs-32.ph$/\/stubs-64.ph/';
|
| sed 's/\/stubs-32.ph$/\/stubs-64.ph/'
|
||||||
} | sort >tar2.txt
|
} | sort >tar2.txt
|
||||||
{ < tar1.txt \
|
{
|
||||||
grep -v '^\./usr/bin/i386$' \
|
grep <tar1.txt -v '^\./usr/bin/i386$' \
|
||||||
| grep -v '^\./usr/bin/x86_64$' \
|
| grep -v '^\./usr/bin/x86_64$' \
|
||||||
| grep -v '^\./usr/lib32/$' \
|
| grep -v '^\./usr/lib32/$' \
|
||||||
| grep -v '^\./lib32$' \
|
| grep -v '^\./lib32$' \
|
||||||
|
@ -36,6 +37,6 @@ apt-get remove --yes qemu-user-binfmt binfmt-support qemu-user
|
||||||
| grep -v '^\./usr/lib/x86_64-linux-gnu/libmvec\.so\.1$' \
|
| grep -v '^\./usr/lib/x86_64-linux-gnu/libmvec\.so\.1$' \
|
||||||
| grep -v '^\./usr/share/doc/[^/]\+/changelog\(\.Debian\)\?\.amd64\.gz$' \
|
| grep -v '^\./usr/share/doc/[^/]\+/changelog\(\.Debian\)\?\.amd64\.gz$' \
|
||||||
| grep -v '^\./usr/share/man/man8/i386\.8\.gz$' \
|
| grep -v '^\./usr/share/man/man8/i386\.8\.gz$' \
|
||||||
| grep -v '^\./usr/share/man/man8/x86_64\.8\.gz$';
|
| grep -v '^\./usr/share/man/man8/x86_64\.8\.gz$'
|
||||||
} | sort | diff -u - tar2.txt >&2
|
} | sort | diff -u - tar2.txt >&2
|
||||||
rm /tmp/debian-chroot.tar
|
rm /tmp/debian-chroot.tar
|
||||||
|
|
|
@ -27,7 +27,10 @@ export LC_ALL=C.UTF-8
|
||||||
--architectures="$native_arch,$foreign_arch" \
|
--architectures="$native_arch,$foreign_arch" \
|
||||||
--include="libmagic-mgc:$foreign_arch" \
|
--include="libmagic-mgc:$foreign_arch" \
|
||||||
{{ DIST }} /tmp/debian-chroot {{ MIRROR }}
|
{{ DIST }} /tmp/debian-chroot {{ MIRROR }}
|
||||||
{ echo "$native_arch"; echo "$foreign_arch"; } | cmp /tmp/debian-chroot/var/lib/dpkg/arch -
|
{
|
||||||
|
echo "$native_arch"
|
||||||
|
echo "$foreign_arch"
|
||||||
|
} | cmp /tmp/debian-chroot/var/lib/dpkg/arch -
|
||||||
rm /tmp/debian-chroot/usr/lib/file/magic.mgc
|
rm /tmp/debian-chroot/usr/lib/file/magic.mgc
|
||||||
rm /tmp/debian-chroot/usr/share/doc/libmagic-mgc/README.Debian
|
rm /tmp/debian-chroot/usr/share/doc/libmagic-mgc/README.Debian
|
||||||
rm -f /tmp/debian-chroot/usr/share/doc/libmagic-mgc/"changelog.Debian.$foreign_arch.gz"
|
rm -f /tmp/debian-chroot/usr/share/doc/libmagic-mgc/"changelog.Debian.$foreign_arch.gz"
|
||||||
|
|
|
@ -28,7 +28,10 @@ export LC_ALL=C.UTF-8
|
||||||
--architectures="$foreign_arch" \
|
--architectures="$foreign_arch" \
|
||||||
--include="libmagic-mgc:$foreign_arch" \
|
--include="libmagic-mgc:$foreign_arch" \
|
||||||
{{ DIST }} /tmp/debian-chroot {{ MIRROR }}
|
{{ DIST }} /tmp/debian-chroot {{ MIRROR }}
|
||||||
{ echo "$native_arch"; echo "$foreign_arch"; } | cmp /tmp/debian-chroot/var/lib/dpkg/arch -
|
{
|
||||||
|
echo "$native_arch"
|
||||||
|
echo "$foreign_arch"
|
||||||
|
} | cmp /tmp/debian-chroot/var/lib/dpkg/arch -
|
||||||
rm /tmp/debian-chroot/usr/lib/file/magic.mgc
|
rm /tmp/debian-chroot/usr/lib/file/magic.mgc
|
||||||
rm /tmp/debian-chroot/usr/share/doc/libmagic-mgc/README.Debian
|
rm /tmp/debian-chroot/usr/share/doc/libmagic-mgc/README.Debian
|
||||||
rm -f /tmp/debian-chroot/usr/share/doc/libmagic-mgc/"changelog.Debian.$foreign_arch.gz"
|
rm -f /tmp/debian-chroot/usr/share/doc/libmagic-mgc/"changelog.Debian.$foreign_arch.gz"
|
||||||
|
|
|
@ -17,19 +17,19 @@ fi
|
||||||
# test this for both unshare and root mode because the code paths creating
|
# test this for both unshare and root mode because the code paths creating
|
||||||
# entries in /dev are different depending on whether mknod is available or not
|
# entries in /dev are different depending on whether mknod is available or not
|
||||||
$prefix {{ CMD }} --mode={{ MODE }} --variant=apt --skip=output/dev {{ DIST }} - {{ MIRROR }} | {
|
$prefix {{ CMD }} --mode={{ MODE }} --variant=apt --skip=output/dev {{ DIST }} - {{ MIRROR }} | {
|
||||||
tar -t;
|
tar -t
|
||||||
echo ./dev/console;
|
echo ./dev/console
|
||||||
echo ./dev/fd;
|
echo ./dev/fd
|
||||||
echo ./dev/full;
|
echo ./dev/full
|
||||||
echo ./dev/null;
|
echo ./dev/null
|
||||||
echo ./dev/ptmx;
|
echo ./dev/ptmx
|
||||||
echo ./dev/pts/;
|
echo ./dev/pts/
|
||||||
echo ./dev/random;
|
echo ./dev/random
|
||||||
echo ./dev/shm/;
|
echo ./dev/shm/
|
||||||
echo ./dev/stderr;
|
echo ./dev/stderr
|
||||||
echo ./dev/stdin;
|
echo ./dev/stdin
|
||||||
echo ./dev/stdout;
|
echo ./dev/stdout
|
||||||
echo ./dev/tty;
|
echo ./dev/tty
|
||||||
echo ./dev/urandom;
|
echo ./dev/urandom
|
||||||
echo ./dev/zero;
|
echo ./dev/zero
|
||||||
} | sort | diff -u tar1.txt -
|
} | sort | diff -u tar1.txt -
|
||||||
|
|
|
@ -18,13 +18,13 @@ fi
|
||||||
# entries in /dev are different depending on whether mknod is available or not
|
# entries in /dev are different depending on whether mknod is available or not
|
||||||
$prefix {{ CMD }} --mode={{ MODE }} --variant=apt --skip=output/mknod \
|
$prefix {{ CMD }} --mode={{ MODE }} --variant=apt --skip=output/mknod \
|
||||||
{{ DIST }} - {{ MIRROR }} | {
|
{{ DIST }} - {{ MIRROR }} | {
|
||||||
tar -t;
|
tar -t
|
||||||
echo ./dev/console;
|
echo ./dev/console
|
||||||
echo ./dev/full;
|
echo ./dev/full
|
||||||
echo ./dev/null;
|
echo ./dev/null
|
||||||
echo ./dev/ptmx;
|
echo ./dev/ptmx
|
||||||
echo ./dev/random;
|
echo ./dev/random
|
||||||
echo ./dev/tty;
|
echo ./dev/tty
|
||||||
echo ./dev/urandom;
|
echo ./dev/urandom
|
||||||
echo ./dev/zero;
|
echo ./dev/zero
|
||||||
} | sort | diff -u tar1.txt -
|
} | sort | diff -u tar1.txt -
|
||||||
|
|
|
@ -8,9 +8,21 @@ mkdir /tmp/root/real
|
||||||
run_testA() {
|
run_testA() {
|
||||||
echo content >/tmp/foo
|
echo content >/tmp/foo
|
||||||
# shellcheck disable=SC2094
|
# shellcheck disable=SC2094
|
||||||
{ { { {{ CMD }} --hook-helper /tmp/root root setup '' 1 upload /tmp/foo "$1" < /tmp/myfifo 3>&-; echo $? >&3; printf "\\000\\000adios";
|
{
|
||||||
} | {{ CMD }} --hook-listener 1 3>&- >/tmp/myfifo; echo $?; } 3>&1;
|
{
|
||||||
} | { read -r xs1; [ "$xs1" -eq 0 ]; read -r xs2; [ "$xs2" -eq 0 ]; }
|
{
|
||||||
|
{{ CMD }} --hook-helper /tmp/root root setup '' 1 upload /tmp/foo "$1" </tmp/myfifo 3>&-
|
||||||
|
echo $? >&3
|
||||||
|
printf '\000\000adios'
|
||||||
|
} | {{ CMD }} --hook-listener 1 3>&- >/tmp/myfifo
|
||||||
|
echo $?
|
||||||
|
} 3>&1
|
||||||
|
} | {
|
||||||
|
read -r xs1
|
||||||
|
[ "$xs1" -eq 0 ]
|
||||||
|
read -r xs2
|
||||||
|
[ "$xs2" -eq 0 ]
|
||||||
|
}
|
||||||
echo content | diff -u - /tmp/root/real/foo
|
echo content | diff -u - /tmp/root/real/foo
|
||||||
rm /tmp/foo
|
rm /tmp/foo
|
||||||
rm /tmp/root/real/foo
|
rm /tmp/root/real/foo
|
||||||
|
|
|
@ -8,7 +8,8 @@ fi
|
||||||
trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM
|
trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM
|
||||||
rm /etc/resolv.conf /etc/hostname
|
rm /etc/resolv.conf /etc/hostname
|
||||||
{{ CMD }} --mode={{ MODE }} --variant=apt {{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
{{ CMD }} --mode={{ MODE }} --variant=apt {{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
||||||
{ tar -tf /tmp/debian-chroot.tar;
|
{
|
||||||
printf "./etc/hostname\n";
|
tar -tf /tmp/debian-chroot.tar
|
||||||
printf "./etc/resolv.conf\n";
|
printf "./etc/hostname\n"
|
||||||
|
printf "./etc/resolv.conf\n"
|
||||||
} | sort | diff -u tar1.txt -
|
} | sort | diff -u tar1.txt -
|
||||||
|
|
|
@ -31,8 +31,7 @@ $prefix {{ CMD }} --mode={{ MODE }} --variant=apt \
|
||||||
>/tmp/debian-chroot.tar
|
>/tmp/debian-chroot.tar
|
||||||
|
|
||||||
origfilter() {
|
origfilter() {
|
||||||
< ./cache/mmdebstrap-{{ DIST }}-apt.tar \
|
"$MMTARFILTER" <./cache/mmdebstrap-{{ DIST }}-apt.tar --path-exclude="/dev/*" --path-exclude="/dev"
|
||||||
"$MMTARFILTER" --path-exclude="/dev/*" --path-exclude="/dev"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
origfilter | cmp - /tmp/debian-chroot.tar \
|
origfilter | cmp - /tmp/debian-chroot.tar \
|
||||||
|
|
Loading…
Reference in a new issue