Files
David Kalnischkies 8d8b45a96c Link interactive helpers against system libapt for autopkgtest
Building the library just so we can build the helpers against it is not
only wasteful but as we are supposed to test the system we can use that
as an additional simple smoke test before the real testing starts.
2022-05-07 10:45:44 +02:00

59 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
set +e # its okay to fail in these script, most of the time the apt* stuff will generate errors
if [ -z "$1" -o -z "$2" ]; then
echo "Usage: $0 file codename pkg…"
exit 1
fi
CHECK_ARGS='no'
TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
GENERATE="$1"
CODENAME="$2"
shift 2
WORKDIR="$(mktemp -d)"
cleanupworkdir() {
if [ -z "$WORKDIR" ]; then return; fi
rm -rf "$WORKDIR"
}
trap "cleanupworkdir;" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
touch "$WORKDIR/status"
TMPGEN="$WORKDIR/Packages"
export LANG=C.UTF-8
aptgetinstall() {
aptget install "$@" --no-install-recommends -t "$CODENAME" -s \
-o Dir::state::status="$WORKDIR/status" \
-o Dir::Cache="$WORKDIR" \
-o pkgCacheGen::Essential=none \
-o APT::Immediate-Configure=0
}
LISTOFPKGS="$(aptgetinstall "$@" 2> /dev/null | awk '/^Inst/ {print $2}' | sed -e "s#\$#/$CODENAME#")"
if [ -z "$LISTOFPKGS" ]; then
echo "List of packages is empty: run apt-get install command again for you now"
aptgetinstall
exit 1
fi
aptcache show $LISTOFPKGS --no-all-versions 2> "$WORKDIR/error.lst" | sed -e '/^ / d' \
-e '/^SHA1: / d' -e '/^SHA256: / d' \
-e '/^Homepage: / d' -e '/^Tag: / d' \
-e '/^Xul-Appid: / d' \
-e '/^Status: / d' \
-e 's/^Description-en:/Description:/' \
> "$TMPGEN"
if [ "$CODENAME" = "experimental" ]; then
aptcache show $(cut -d"'" -f 4 "$WORKDIR/error.lst" | sed -e 's#$#/sid#') --no-all-versions 2> /dev/null >> "$TMPGEN"
fi
if echo "$GENERATE" | grep '^status-' > /dev/null; then
sed -i "$TMPGEN" -e '/^Package: / a\
Status: install ok installed' \
-e '/^Filename: / d' -e '/^Size: / d' -e '/^MD5sum: / d'
fi
apt-sortpkgs "$TMPGEN" > "$GENERATE"