#!/bin/sh set -e TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment configarchitecture 'amd64' 'i386' # regression test for #754904 testfailureequal 'E: Unsupported file /dev/null given on commandline' aptget install -qq /dev/null # only consider .deb files cat > foo.rpm < rootdir/etc/apt/preferences testsuccessequal "Reading package lists... Building dependency tree... Reading state information... Note, selecting 'foo' instead of './incoming/foo_1.0_amd64.deb' The following packages will be REMOVED: foo:i386 The following NEW packages will be installed: foo 0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. Remv foo:i386 [1.0] Inst foo (1.0 local-deb [amd64]) Conf foo (1.0 local-deb [amd64])" aptget install ./incoming/foo_1.0_amd64.deb -s createpkg() { local PKG="pkg-$1" mkdir -p ./incoming/$PKG/DEBIAN if [ -n "$2" ]; then echo -n "$2" >> ./incoming/$PKG/DEBIAN/control fi echo "Package: $PKG Version: 0 Priority: extra Maintainer: No Body Architecture: all Description: test package" >> ./incoming/$PKG/DEBIAN/control if [ -n "$3" ]; then echo -n "$3" >> ./incoming/$PKG/DEBIAN/control fi testsuccess dpkg-deb --build ./incoming/$PKG/ ./incoming #dpkg-deb -I ./incoming/${PKG}_0_all.deb control } createpkg 'as-it-should-be' createpkg 'leading-newline' ' ' createpkg 'trailing-newline' '' ' ' testsuccess aptget install ./incoming/pkg-as-it-should-be_0_all.deb testsuccess aptget install ./incoming/pkg-leading-newline_0_all.deb testsuccess aptget install ./incoming/pkg-trailing-newline_0_all.deb # see if permission dropping is checked before usage if [ "$(id -u)" = '0' ]; then apt clean chmod 711 ./incoming testsuccess aptget install -y --allow-downgrades ./incoming/pkg-as-it-should-be_0_all.deb chmod 710 ./incoming testsuccesswithnotice aptget install -y --allow-downgrades ./incoming/pkg-as-it-should-be_0_all.deb chmod 700 ./incoming testsuccesswithnotice aptget install -y --allow-downgrades ./incoming/pkg-as-it-should-be_0_all.deb fi