From 8f418981337503ff7abedd872f788b51bcdbc886 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 22 Apr 2014 16:07:32 +0200 Subject: show upgradable packages after apt update Closes: 748389 --- test/integration/test-apt-cli-update | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100755 test/integration/test-apt-cli-update (limited to 'test/integration') diff --git a/test/integration/test-apt-cli-update b/test/integration/test-apt-cli-update new file mode 100755 index 000000000..8237bf03f --- /dev/null +++ b/test/integration/test-apt-cli-update @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +insertpackage 'unstable' 'foo' 'all' '2.0' +insertinstalledpackage 'foo' 'all' '1.0' + +setupaptarchive + +APTARCHIVE=$(readlink -f ./aptarchive) + +testequal "1 package can be upgraded. Run 'apt list --upgradable' to see it." apt update -q -- cgit v1.2.3 From 50d98a1be2e15f44dea23a5d3840c79366a42fe0 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 22 May 2014 10:49:35 +0200 Subject: Implement simple by-hash for apt update This implements a apt update schema that get the indexfiles by the hash instead of the name. The rational is that updates to the archive servers/mirrors are not atomic so the client may have the previous version of the Release file when the server updates to a new Release file and new Packages/Sources/Translations indexes. By keeping the files around by their hash we can still get the previous indexfile without a hashsum mismatch. Enable with APT::Acquire::By-Hash=1 --- test/integration/test-apt-by-hash-update | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 test/integration/test-apt-by-hash-update (limited to 'test/integration') diff --git a/test/integration/test-apt-by-hash-update b/test/integration/test-apt-by-hash-update new file mode 100755 index 000000000..6b3032ad6 --- /dev/null +++ b/test/integration/test-apt-by-hash-update @@ -0,0 +1,39 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +insertpackage 'unstable' 'foo' 'all' '1.0' + +setupaptarchive --no-update + +APTARCHIVE=$(readlink -f ./aptarchive) + +# make Packages *only* accessable by-hash for this test +mkdir -p aptarchive/dists/unstable/main/binary-i386/by-hash +(cd aptarchive/dists/unstable/main/binary-i386/by-hash && + mv ../Packages* . && + ln -s Packages.gz $(sha256sum Packages.gz|cut -f1 -d' ') ) + +# add sources +mkdir -p aptarchive/dists/unstable/main/source/by-hash +(cd aptarchive/dists/unstable/main/source/by-hash && + ln -s ../Sources.gz $(sha256sum ../Sources.gz|cut -f1 -d' ') +) + + +# ensure we do not know about "foo" +testequal "Reading package lists... +Building dependency tree... +E: Unable to locate package foo" aptget install -q -s foo + +# ensure we can apt-get update by hash +testsuccess aptget update -o APT::Acquire::By-Hash=1 + +# ensure it keeps working +testequal "Inst foo (1.0 unstable [all]) +Conf foo (1.0 unstable [all])" aptget install -qq -s foo \ No newline at end of file -- cgit v1.2.3 From a2fdb57ff93c1b1f35b796c3c99878ec3ae54a06 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 22 May 2014 17:36:09 +0200 Subject: Add APT::Acquire::$(host)::By-Hash=1 knob, add Acquire-By-Hash to Release file The by-hash can be configured on a per-hostname basis and a Release file can indicate that it has by-hash support via a new flag. The location of the hash now matches the AptByHash spec --- test/integration/test-apt-by-hash-update | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-by-hash-update b/test/integration/test-apt-by-hash-update index 6b3032ad6..23282bf86 100755 --- a/test/integration/test-apt-by-hash-update +++ b/test/integration/test-apt-by-hash-update @@ -14,17 +14,19 @@ setupaptarchive --no-update APTARCHIVE=$(readlink -f ./aptarchive) # make Packages *only* accessable by-hash for this test -mkdir -p aptarchive/dists/unstable/main/binary-i386/by-hash -(cd aptarchive/dists/unstable/main/binary-i386/by-hash && - mv ../Packages* . && - ln -s Packages.gz $(sha256sum Packages.gz|cut -f1 -d' ') ) +mkdir -p aptarchive/dists/unstable/main/binary-i386/by-hash/SHA512 +(cd aptarchive/dists/unstable/main/binary-i386/by-hash/SHA512 && + mv ../../Packages* . && + ln -s Packages.gz $(sha512sum Packages.gz|cut -f1 -d' ') ) # add sources -mkdir -p aptarchive/dists/unstable/main/source/by-hash -(cd aptarchive/dists/unstable/main/source/by-hash && - ln -s ../Sources.gz $(sha256sum ../Sources.gz|cut -f1 -d' ') +mkdir -p aptarchive/dists/unstable/main/source/by-hash/SHA512 +(cd aptarchive/dists/unstable/main/source/by-hash/SHA512 && + ln -s ../../Sources.gz $(sha512sum ../../Sources.gz|cut -f1 -d' ') ) +# we moved the Packages file away, normal update won't work +testfailure aptget upate # ensure we do not know about "foo" testequal "Reading package lists... @@ -34,6 +36,14 @@ E: Unable to locate package foo" aptget install -q -s foo # ensure we can apt-get update by hash testsuccess aptget update -o APT::Acquire::By-Hash=1 -# ensure it keeps working +# ensure it works testequal "Inst foo (1.0 unstable [all]) -Conf foo (1.0 unstable [all])" aptget install -qq -s foo \ No newline at end of file +Conf foo (1.0 unstable [all])" aptget install -qq -s foo + +# add magic string to Release file ... +MAGIC="Acquire-By-Hash: true" +sed -i "s#Suite: unstable#Suite: unstable\n$MAGIC#" aptarchive/dists/unstable/Release +signreleasefiles +# ... and verify that it fetches by hash now +testsuccess aptget update + -- cgit v1.2.3 From e1a69e71efc0679815f722480169f16bf02622ab Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 12 May 2014 21:25:43 +0200 Subject: (try to) fix travis-ci build failures dpkg on Ubuntu 12.04 does not seem to support parsing arch-specific dependencies, so we try to detect if we face such a dpkg in the test. In the other test the order depends on libdb, which changes per arch, so we just run it through our sorting binary and be happy (hopefully). Git-Dch: Ignore --- test/integration/framework | 3 ++- test/integration/test-apt-ftparchive-src-cachedb | 10 +++++----- test/integration/test-bug-747261-arch-specific-conflicts | 15 +++++++++++++++ 3 files changed, 22 insertions(+), 6 deletions(-) (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index eda3cebad..4f0a69994 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -36,7 +36,7 @@ msgndebug() { echo -n "${CDEBUG}D: $1${CNORMAL}"; } msgtest() { while [ -n "$1" ]; do echo -n "${CINFO}$1${CCMD} " - echo -n "$(echo "$2" | sed -e 's/^aptc/apt-c/' -e 's/^aptg/apt-g/' -e 's/^aptf/apt-f/')${CINFO} " + echo -n "$(echo "$2" | sed -e 's#^apt\([cgfs]\)#apt-\1#')${CINFO} " shift if [ -n "$1" ]; then shift; else break; fi done @@ -114,6 +114,7 @@ aptget() { runapt apt-get "$@"; } aptftparchive() { runapt apt-ftparchive "$@"; } aptkey() { runapt apt-key "$@"; } aptmark() { runapt apt-mark "$@"; } +aptsortpkgs() { runapt apt-sortpkgs "$@"; } apt() { runapt apt "$@"; } apthelper() { runapt "${APTHELPERBINDIR}/apt-helper" "$@"; } aptwebserver() { runapt "${APTWEBSERVERBINDIR}/aptwebserver" "$@"; } diff --git a/test/integration/test-apt-ftparchive-src-cachedb b/test/integration/test-apt-ftparchive-src-cachedb index 1af193632..adcca6217 100755 --- a/test/integration/test-apt-ftparchive-src-cachedb +++ b/test/integration/test-apt-ftparchive-src-cachedb @@ -3,9 +3,9 @@ set -e assert_correct_sources_file() { testequal "Package: bar -Binary: bar -Version: 1.0 Architecture: all +Version: 1.0 +Binary: bar Format: 3.0 (native) Directory: pool/main Files: @@ -24,9 +24,9 @@ Checksums-Sha512: cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e 0 bar_1.0.tar.gz Package: foo -Binary: foo -Version: 1.0 Architecture: all +Version: 1.0 +Binary: foo Format: 3.0 (native) Directory: pool/main Files: @@ -43,7 +43,7 @@ Checksums-Sha256: Checksums-Sha512: 3da0240fd764657c2f3661b4d750578a9a99b0580591b133756379d48117ebda87a5ed2467f513200d6e7eaf51422cbe91c15720eef7fb4bba2cc8ff81ebc547 171 foo_1.0.dsc cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e 0 foo_1.0.tar.gz -" cat ./aptarchive/dists/test/main/source/Sources +" aptsortpkgs ./aptarchive/dists/test/main/source/Sources } create_source_files() { diff --git a/test/integration/test-bug-747261-arch-specific-conflicts b/test/integration/test-bug-747261-arch-specific-conflicts index bfb2d089f..be971b89e 100755 --- a/test/integration/test-bug-747261-arch-specific-conflicts +++ b/test/integration/test-bug-747261-arch-specific-conflicts @@ -6,6 +6,21 @@ TESTDIR=$(readlink -f $(dirname $0)) setupenvironment configarchitecture 'amd64' 'sparc' 'armel' +msgtest 'Check that dpkg supports' 'arch-specific dependencies' +set +e +# this fails always, the question is just how it fails +dpkg-checkbuilddeps -d 'foobar:barfoo' /dev/null 2>/dev/null >/dev/null +RETURNCODE=$? +set -e +if [ "$RETURNCODE" != '1' ]; then + dpkg-checkbuilddeps -d 'foobar:barfoo' /dev/null || true + echo "Command had returncode: $RETURNCODE" + msgskip + exit 0 +else + msgpass +fi + buildsimplenativepackage 'libc6' 'amd64,sparc,armel' '1' 'stable' 'Multi-Arch: same' buildsimplenativepackage 'libc6-i386' 'amd64' '1' 'stable' 'Conflicts: libc6:sparc' -- cgit v1.2.3 From 1f6cf9e79742ea8e328ef2225b2f5217a9440216 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 30 May 2014 18:01:47 +0200 Subject: support parsing EDSP requests Architecture{,s} stanza Adds also a small testcase for EDSP Git-Dch: Ignore --- test/integration/framework | 6 ++ .../test-external-dependency-solver-protocol | 65 ++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100755 test/integration/test-external-dependency-solver-protocol (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index 4f0a69994..7959699fd 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -194,6 +194,12 @@ setupenvironment() { touch var/lib/dpkg/available mkdir -p usr/lib/apt ln -s ${METHODSDIR} usr/lib/apt/methods + if [ "$BUILDDIRECTORY" = "$LIBRARYPATH" ]; then + mkdir -p usr/lib/apt/solvers + ln -s "${BUILDDIRECTORY}/apt-dump-solver" usr/lib/apt/solvers/dump + ln -s "${BUILDDIRECTORY}/apt-internal-solver" usr/lib/apt/solvers/apt + echo "Dir::Bin::Solvers \"${TMPWORKINGDIRECTORY}/rootdir/usr/lib/apt/solvers\";" > etc/apt/apt.conf.d/externalsolver.conf + fi # use the autoremove from the BUILDDIRECTORY if its there, otherwise # system if [ -e ${BUILDDIRECTORY}/../../debian/apt.conf.autoremove ]; then diff --git a/test/integration/test-external-dependency-solver-protocol b/test/integration/test-external-dependency-solver-protocol new file mode 100755 index 000000000..129565993 --- /dev/null +++ b/test/integration/test-external-dependency-solver-protocol @@ -0,0 +1,65 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'amd64' 'i386' + +insertinstalledpackage 'cool' 'all' '1' +insertinstalledpackage 'stuff' 'all' '1' + +insertpackage 'unstable' 'cool' 'all' '2' 'Multi-Arch: foreign' +insertpackage 'unstable' 'stuff' 'all' '2' 'Multi-Arch: foreign' +insertpackage 'unstable' 'coolstuff' 'i386,amd64' '2' 'Depends: cool, stuff' +insertpackage 'unstable' 'awesome' 'all' '2' 'Multi-Arch: foreign' +insertpackage 'unstable' 'awesomecoolstuff' 'i386' '2' 'Depends: coolstuff, awesome' + +insertpackage 'experimental' 'cool' 'all' '3' 'Multi-Arch: foreign' +insertpackage 'experimental' 'stuff' 'all' '3' 'Multi-Arch: foreign' +insertpackage 'experimental' 'coolstuff' 'i386,amd64' '3' 'Depends: cool, stuff' + +setupaptarchive + +rm -f /tmp/dump.edsp +testequal 'Reading package lists... +Building dependency tree... +Execute external solver... +The solver encountered an error of type: ERR_JUST_DUMPING +The following information might help you to understand what is wrong: +I am too dumb, i can just dump! +Please use one of my friends instead! + +E: External solver failed with: I am too dumb, i can just dump!' aptget install --solver dump coolstuff -s +testsuccess test -s /tmp/dump.edsp +rm -f /tmp/dump.edsp + +#FIXME: this should be unstable, but we don't support pinning yet +testequal 'Reading package lists... +Building dependency tree... +Execute external solver... +The following NEW packages will be installed: + coolstuff +0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. +Inst coolstuff (3 experimental [amd64]) +Conf coolstuff (3 experimental [amd64])' aptget install --solver apt coolstuff -s + +testsuccess aptget install awesomecoolstuff:i386 -s +testsuccess aptget install --solver apt awesomecoolstuff:i386 -s + +rm -f /tmp/dump.edsp +testfailure aptget install --solver dump awesomecoolstuff:i386 -s +testsuccess test -s /tmp/dump.edsp + +configarchitecture 'armel' +msgtest 'Test direct calling is okay for' 'apt-internal-solver' +cat /tmp/dump.edsp | runapt apt-internal-solver > solver.result 2>&1 || true +if [ "$(tail -n2 solver.result | head -n1 )" = "Message: Done" ]; then + msgpass +else + cat solver.result + msgfail +fi +rm -f /tmp/dump.edsp + +testfailure aptget install --solver apt awesomecoolstuff:i386 -s -- cgit v1.2.3 From 91a6f32eec508465e7ffafa6b3fef3bb59c719c0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 30 May 2014 19:18:25 +0200 Subject: show current/total testcase statistic also in concise mode Git-Dch: Ignore --- test/integration/run-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/run-tests b/test/integration/run-tests index d700cc3fc..d39daeee5 100755 --- a/test/integration/run-tests +++ b/test/integration/run-tests @@ -39,7 +39,7 @@ fi TOTAL="$(run-parts --list $DIR | grep '/test-' | wc -l)" for testcase in $(run-parts --list $DIR | grep '/test-'); do if [ "$MSGLEVEL" -le 2 ]; then - echo -n "${CTEST}Testcase ${CHIGH}$(basename ${testcase})${CRESET}: " + echo -n "($(($ALL+1))/${TOTAL}) ${CTEST}Testcase ${CHIGH}$(basename ${testcase})${CRESET}: " else echo "${CTEST}Run Testcase ($(($ALL+1))/${TOTAL}) ${CHIGH}$(basename ${testcase})${CRESET}" fi -- cgit v1.2.3 From d91e3cfa1992599c088673ef68bcdfd4d0aedc85 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 30 May 2014 23:15:28 +0200 Subject: use 'native' instead of 'amd64' as pkg arch Git-Dch: Ignore --- test/integration/test-essential-force-loopbreak | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-essential-force-loopbreak b/test/integration/test-essential-force-loopbreak index 842dce61c..d60c6cbd5 100755 --- a/test/integration/test-essential-force-loopbreak +++ b/test/integration/test-essential-force-loopbreak @@ -5,18 +5,18 @@ TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment -configarchitecture 'amd64' +configarchitecture 'native' -insertinstalledpackage 'sysvinit' 'amd64' '1' 'Essential: yes' +insertinstalledpackage 'sysvinit' 'native' '1' 'Essential: yes' -buildsimplenativepackage 'sysvinit' 'amd64' '2' 'sid' 'Pre-Depends: sysvinit-core | systemd-sysv +buildsimplenativepackage 'sysvinit' 'native' '2' 'sid' 'Pre-Depends: sysvinit-core | systemd-sysv Essential: yes' -buildsimplenativepackage 'sysvinit-core' 'amd64' '2' 'sid' +buildsimplenativepackage 'sysvinit-core' 'native' '2' 'sid' -buildsimplenativepackage 'systemd-sysv' 'amd64' '2~conflict' 'sid-conflict' 'Conflicts: sysvinit (<< 2) +buildsimplenativepackage 'systemd-sysv' 'native' '2~conflict' 'sid-conflict' 'Conflicts: sysvinit (<< 2) Breaks: sysvinit-core' -buildsimplenativepackage 'systemd-sysv' 'amd64' '2~break' 'sid-break' 'Breaks: sysvinit (<< 2), sysvinit-core' +buildsimplenativepackage 'systemd-sysv' 'native' '2~break' 'sid-break' 'Breaks: sysvinit (<< 2), sysvinit-core' setupaptarchive @@ -25,7 +25,7 @@ cp -a rootdir/var/lib/dpkg/status dpkg.status.backup testforcebreak() { cp -a dpkg.status.backup rootdir/var/lib/dpkg/status rm -f rootdir/var/lib/apt/extended_states - testequal 'Reading package lists... + testequal "Reading package lists... Building dependency tree... The following extra packages will be installed: sysvinit @@ -34,8 +34,8 @@ The following NEW packages will be installed: The following packages will be upgraded: sysvinit 1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. -E: This installation run will require temporarily removing the essential package sysvinit:amd64 due to a Conflicts/Pre-Depends loop. This is often bad, but if you really want to do it, activate the APT::Force-LoopBreak option. -E: Internal Error, Could not early remove sysvinit:amd64 (2)' aptget install systemd-sysv -t "$1" -s +E: This installation run will require temporarily removing the essential package sysvinit:$(getarchitecture 'native') due to a Conflicts/Pre-Depends loop. This is often bad, but if you really want to do it, activate the APT::Force-LoopBreak option. +E: Internal Error, Could not early remove sysvinit:amd64 (2)" aptget install systemd-sysv -t "$1" -s # ensure that really nothing happens testfailure aptget install systemd-sysv -y -t "$1" -o Debug::pkgPackageManager=1 testdpkginstalled 'sysvinit' -- cgit v1.2.3 From a3f1d60cb75ab83f63a52a43c056a4752c8fdeb2 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 30 May 2014 14:47:56 +0200 Subject: Show unauthenticated warning for source packages as well This will show the same unauthenticated warning for source packages as for binary packages and will not download a source package if it is unauthenticated. This can be overridden with --allow-unauthenticated Closes: #749795 --- test/integration/test-apt-get-source-authenticated | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 test/integration/test-apt-get-source-authenticated (limited to 'test/integration') diff --git a/test/integration/test-apt-get-source-authenticated b/test/integration/test-apt-get-source-authenticated new file mode 100755 index 000000000..2cee13923 --- /dev/null +++ b/test/integration/test-apt-get-source-authenticated @@ -0,0 +1,31 @@ +#!/bin/sh +# +# Regression test for debian bug #749795. Ensure that we fail with +# a error if apt-get source foo will download a source that comes +# from a unauthenticated repository +# +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +# a "normal" package with source and binary +buildsimplenativepackage 'foo' 'all' '2.0' + +setupaptarchive --no-update + +APTARCHIVE=$(readlink -f ./aptarchive) +rm -f $APTARCHIVE/dists/unstable/*Release* + +# update without authenticated InRelease file +testsuccess aptget update + +# this all should fail +testfailure aptget install -y foo +testfailure aptget source foo + +# allow overriding the warning +testsuccess aptget source --allow-unauthenticated foo -- cgit v1.2.3 From 243b2a381f4a12939d91084ecf100ee6d3dcb007 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 4 Jun 2014 12:39:36 +0200 Subject: Add compat mode for old (32bit FileSize) CacheDB (LP: #1274466) --- test/integration/cachedb-lp1274466-old-format.db | Bin 0 -> 8192 bytes test/integration/deb-lp1274466-cachedb.deb | Bin 0 -> 1270 bytes .../test-apt-ftparchive-cachedb-lp1274466 | 51 +++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 test/integration/cachedb-lp1274466-old-format.db create mode 100644 test/integration/deb-lp1274466-cachedb.deb create mode 100755 test/integration/test-apt-ftparchive-cachedb-lp1274466 (limited to 'test/integration') diff --git a/test/integration/cachedb-lp1274466-old-format.db b/test/integration/cachedb-lp1274466-old-format.db new file mode 100644 index 000000000..88da5f1ee Binary files /dev/null and b/test/integration/cachedb-lp1274466-old-format.db differ diff --git a/test/integration/deb-lp1274466-cachedb.deb b/test/integration/deb-lp1274466-cachedb.deb new file mode 100644 index 000000000..43d7ee6f1 Binary files /dev/null and b/test/integration/deb-lp1274466-cachedb.deb differ diff --git a/test/integration/test-apt-ftparchive-cachedb-lp1274466 b/test/integration/test-apt-ftparchive-cachedb-lp1274466 new file mode 100755 index 000000000..211740a53 --- /dev/null +++ b/test/integration/test-apt-ftparchive-cachedb-lp1274466 @@ -0,0 +1,51 @@ +#!/bin/sh +set -e + + +# +# main() +# +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" + +# gather the db and the deb, ensure mtime is not modfied as its saved in the DB +cp -p $TESTDIR/deb-lp1274466-cachedb.deb foo_1_i386.deb +cp $TESTDIR/cachedb-lp1274466-old-format.db old-format.db + +# verify that the format is different +testsuccess aptftparchive --db new-format.db packages . +db_dump new-format.db > new-format.dump +db_dump old-format.db > old-format.dump +testfailure diff -u old-format.dump new-format.dump + +# ensure the new format as the sha512 +testsuccess grep 7da58ff901a40ecf42a730dc33198b182e9ba9ec98799fc2c2b6fabeeee40cc12a0e7cadb4b66764235c56e1009dbfe8a9a566fb1eedf47a992d1fff2cc3332c new-format.dump +# but the old format does not +testfailure grep 7da58ff901a40ecf42a730dc33198b182e9ba9ec98799fc2c2b6fabeeee40cc12a0e7cadb4b66764235c56e1009dbfe8a9a566fb1eedf47a992d1fff2cc3332c old-format.dump + +# regression test for corruption with previous generation of cachedb +testequal "Package: foo +Priority: optional +Section: others +Installed-Size: 29 +Maintainer: Joe Sixpack +Architecture: i386 +Version: 1 +Filename: ./foo_1_i386.deb +Size: 1270 +MD5sum: 85d0e908c1a897700e2c5dea72d7e3c0 +SHA1: 858b09169032b7925a0e463f46b6634243fc40ce +SHA256: 3750a2c9c6b5beee7f307564be3d51d3ec7cbb78fa4f0b47f84a7c41477bff59 +SHA512: 7da58ff901a40ecf42a730dc33198b182e9ba9ec98799fc2c2b6fabeeee40cc12a0e7cadb4b66764235c56e1009dbfe8a9a566fb1eedf47a992d1fff2cc3332c +Description: an autogenerated dummy foo=1/test + If you find such a package installed on your system, + something went horribly wrong! They are autogenerated + und used only by testcases and surf no other propose… +" aptftparchive --db old-format.db packages . + +# ensure that the db is updated +db_dump old-format.db > old-format.dump +testsuccess diff -u old-format.dump new-format.dump + -- cgit v1.2.3 From e41d3d7e25754f858b6dfe4dd841f4749f7f3ab1 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 7 Jun 2014 22:46:37 +0200 Subject: do not revert candidate for protected packages In commit 21b3eac8 I promoted the check for installable dependencies to a pre-install check, which also reverts to a known good candidate (the installed version) if it fails. This revert was done even for user requested candidate switches which disabled our Broken detection so that install requests which are impossible to satisfy do not fail anymore, but print an (incomplete) solution proposal and then exit successfully. Closes: 745046 --- .../test-bug-745046-candidate-propagation-fails | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 test/integration/test-bug-745046-candidate-propagation-fails (limited to 'test/integration') diff --git a/test/integration/test-bug-745046-candidate-propagation-fails b/test/integration/test-bug-745046-candidate-propagation-fails new file mode 100755 index 000000000..e4aa67a72 --- /dev/null +++ b/test/integration/test-bug-745046-candidate-propagation-fails @@ -0,0 +1,39 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture 'amd64' + +insertinstalledpackage 'gedit' 'amd64' '1' + +insertpackage 'unstable' 'gedit' 'amd64' '1' +insertpackage 'experimental' 'gedit' 'amd64' '2' 'Depends: common (>= 2)' + +setupaptarchive + +testequal "Reading package lists... +Building dependency tree... +Selected version '2' (experimental [amd64]) for 'gedit' +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: + +The following packages have unmet dependencies: + gedit : Depends: common (>= 2) but it is not installable +E: Unable to correct problems, you have held broken packages." aptget install gedit/experimental -sq=0 + +insertinstalledpackage 'common' 'amd64' '2' + +testequal "Reading package lists... +Building dependency tree... +Selected version '2' (experimental [amd64]) for 'gedit' +The following packages will be upgraded: + gedit +1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Inst gedit [1] (2 experimental [amd64]) +Conf gedit (2 experimental [amd64])" aptget install gedit/experimental -sq=0 -- cgit v1.2.3 From 4dde2b4285fc6288e44e915a0d7bc0faac114a2e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 10 Jun 2014 14:12:12 +0200 Subject: support Acquire::GzipIndexes in dumpavail Closes: 742835 --- test/integration/test-compressed-indexes | 2 ++ 1 file changed, 2 insertions(+) (limited to 'test/integration') diff --git a/test/integration/test-compressed-indexes b/test/integration/test-compressed-indexes index 67ca0ba27..6671dd75a 100755 --- a/test/integration/test-compressed-indexes +++ b/test/integration/test-compressed-indexes @@ -67,6 +67,8 @@ testrun() { msgtest "\tdsc file is present"; testsuccess --nomsg test -f testpkg_1.0.dsc msgtest "\tdirectory is present"; testsuccess --nomsg test -d testpkg-1.0 rm -rf testpkg-1.0 + testequal "$(aptcache show testpkg -o Acquire::Languages=none) +" aptcache dumpavail } echo 'Acquire::GzipIndexes "false";' > rootdir/etc/apt/apt.conf.d/02compressindex -- cgit v1.2.3 From ea606ec43a364a8e471fd9502d79fe2dfeb6e4ba Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 10 Jun 2014 15:21:30 +0200 Subject: fix test/integration/test-apt-ftparchive-cachedb-lp1274466 in travis --- test/integration/test-apt-ftparchive-cachedb-lp1274466 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-ftparchive-cachedb-lp1274466 b/test/integration/test-apt-ftparchive-cachedb-lp1274466 index 211740a53..2a28d6ef0 100755 --- a/test/integration/test-apt-ftparchive-cachedb-lp1274466 +++ b/test/integration/test-apt-ftparchive-cachedb-lp1274466 @@ -12,7 +12,7 @@ configarchitecture "i386" # gather the db and the deb, ensure mtime is not modfied as its saved in the DB cp -p $TESTDIR/deb-lp1274466-cachedb.deb foo_1_i386.deb -cp $TESTDIR/cachedb-lp1274466-old-format.db old-format.db +cp -p $TESTDIR/cachedb-lp1274466-old-format.db old-format.db # verify that the format is different testsuccess aptftparchive --db new-format.db packages . @@ -45,7 +45,7 @@ Description: an autogenerated dummy foo=1/test und used only by testcases and surf no other propose… " aptftparchive --db old-format.db packages . -# ensure that the db is updated -db_dump old-format.db > old-format.dump -testsuccess diff -u old-format.dump new-format.dump +# ensure that the db is updated and contains the new sha512 +testsuccess grep 7da58ff901a40ecf42a730dc33198b182e9ba9ec98799fc2c2b6fabeeee40cc12a0e7cadb4b66764235c56e1009dbfe8a9a566fb1eedf47a992d1fff2cc3332c old-format.dump + -- cgit v1.2.3 From 686b484b407fdbef47d9f2064284a567b72417fe Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 11 Jun 2014 14:50:48 +0200 Subject: fix autopkgtest tests --- test/integration/framework | 2 ++ test/integration/test-external-dependency-solver-protocol | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index 7959699fd..6c9e8bd57 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -120,6 +120,7 @@ apthelper() { runapt "${APTHELPERBINDIR}/apt-helper" "$@"; } aptwebserver() { runapt "${APTWEBSERVERBINDIR}/aptwebserver" "$@"; } aptitude() { runapt aptitude "$@"; } aptextracttemplates() { runapt apt-extracttemplates "$@"; } +aptinternalsolver() { runapt "${APTINTERNALSOLVERBINDIR}/apt-internal-solver" "$@"; } dpkg() { command dpkg --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log "$@" @@ -181,6 +182,7 @@ setupenvironment() { METHODSDIR=${APT_INTEGRATION_TESTS_METHODS_DIR:-"${BUILDDIRECTORY}/methods"} APTHELPERBINDIR=${APT_INTEGRATION_TESTS_LIBEXEC_DIR:-"${BUILDDIRECTORY}"} APTWEBSERVERBINDIR=${APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR:-"${BUILDDIRECTORY}"} + APTINTERNALSOLVERBINDIR=${APT_INTEGRATION_TESTS_INTERNAL_SOLVER_DIR:-"${BUILDDIRECTORY}"} test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first" # ----- diff --git a/test/integration/test-external-dependency-solver-protocol b/test/integration/test-external-dependency-solver-protocol index 129565993..09230d383 100755 --- a/test/integration/test-external-dependency-solver-protocol +++ b/test/integration/test-external-dependency-solver-protocol @@ -53,7 +53,7 @@ testsuccess test -s /tmp/dump.edsp configarchitecture 'armel' msgtest 'Test direct calling is okay for' 'apt-internal-solver' -cat /tmp/dump.edsp | runapt apt-internal-solver > solver.result 2>&1 || true +cat /tmp/dump.edsp | aptinternalsolver > solver.result 2>&1 || true if [ "$(tail -n2 solver.result | head -n1 )" = "Message: Done" ]; then msgpass else -- cgit v1.2.3 From 3082603f0ef76876810cb8c6d02d03ba67ec8c6b Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 11 Jun 2014 18:17:45 +0200 Subject: fix test-apt-ftparchive-cachedb-lp1274466 and apt-internal-solver tests --- test/integration/framework | 4 ++-- test/integration/test-apt-ftparchive-cachedb-lp1274466 | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index 6c9e8bd57..a687dcb35 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -120,7 +120,7 @@ apthelper() { runapt "${APTHELPERBINDIR}/apt-helper" "$@"; } aptwebserver() { runapt "${APTWEBSERVERBINDIR}/aptwebserver" "$@"; } aptitude() { runapt aptitude "$@"; } aptextracttemplates() { runapt apt-extracttemplates "$@"; } -aptinternalsolver() { runapt "${APTINTERNALSOLVERBINDIR}/apt-internal-solver" "$@"; } +aptinternalsolver() { runapt "${APTINTERNALSOLVER}" "$@"; } dpkg() { command dpkg --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log "$@" @@ -182,7 +182,7 @@ setupenvironment() { METHODSDIR=${APT_INTEGRATION_TESTS_METHODS_DIR:-"${BUILDDIRECTORY}/methods"} APTHELPERBINDIR=${APT_INTEGRATION_TESTS_LIBEXEC_DIR:-"${BUILDDIRECTORY}"} APTWEBSERVERBINDIR=${APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR:-"${BUILDDIRECTORY}"} - APTINTERNALSOLVERBINDIR=${APT_INTEGRATION_TESTS_INTERNAL_SOLVER_DIR:-"${BUILDDIRECTORY}"} + APTINTERNALSOLVER=${APT_INTEGRATION_TESTS_INTERNAL_SOLVER:-"${BUILDDIRECTORY}/apt-internal-solver"} test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first" # ----- diff --git a/test/integration/test-apt-ftparchive-cachedb-lp1274466 b/test/integration/test-apt-ftparchive-cachedb-lp1274466 index 2a28d6ef0..579ae33a6 100755 --- a/test/integration/test-apt-ftparchive-cachedb-lp1274466 +++ b/test/integration/test-apt-ftparchive-cachedb-lp1274466 @@ -46,6 +46,8 @@ Description: an autogenerated dummy foo=1/test " aptftparchive --db old-format.db packages . # ensure that the db is updated and contains the new sha512 +db_dump old-format.db > old-format.dump + testsuccess grep 7da58ff901a40ecf42a730dc33198b182e9ba9ec98799fc2c2b6fabeeee40cc12a0e7cadb4b66764235c56e1009dbfe8a9a566fb1eedf47a992d1fff2cc3332c old-format.dump -- cgit v1.2.3 From eb197ed71b1535f3c1715c8a751485ef927b51b7 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 12 Jun 2014 10:09:24 +0200 Subject: test/integration/test-essential-force-loopbreak: fix on non-amd64 systems --- test/integration/test-essential-force-loopbreak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/test-essential-force-loopbreak b/test/integration/test-essential-force-loopbreak index d60c6cbd5..ac8fc6d28 100755 --- a/test/integration/test-essential-force-loopbreak +++ b/test/integration/test-essential-force-loopbreak @@ -35,7 +35,7 @@ The following packages will be upgraded: sysvinit 1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. E: This installation run will require temporarily removing the essential package sysvinit:$(getarchitecture 'native') due to a Conflicts/Pre-Depends loop. This is often bad, but if you really want to do it, activate the APT::Force-LoopBreak option. -E: Internal Error, Could not early remove sysvinit:amd64 (2)" aptget install systemd-sysv -t "$1" -s +E: Internal Error, Could not early remove sysvinit:$(dpkg --print-architecture) (2)" aptget install systemd-sysv -t "$1" -s # ensure that really nothing happens testfailure aptget install systemd-sysv -y -t "$1" -o Debug::pkgPackageManager=1 testdpkginstalled 'sysvinit' -- cgit v1.2.3 From 172947cd7dc5c88c94c6ad269dc6c6be002ee958 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 17 Jun 2014 19:05:53 +0200 Subject: do not call resolver twice on (dist-)upgrade --- test/integration/test-external-dependency-solver-protocol | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'test/integration') diff --git a/test/integration/test-external-dependency-solver-protocol b/test/integration/test-external-dependency-solver-protocol index 09230d383..07d2441b6 100755 --- a/test/integration/test-external-dependency-solver-protocol +++ b/test/integration/test-external-dependency-solver-protocol @@ -51,6 +51,12 @@ rm -f /tmp/dump.edsp testfailure aptget install --solver dump awesomecoolstuff:i386 -s testsuccess test -s /tmp/dump.edsp +testsuccess aptget dist-upgrade -s +testsuccess aptget dist-upgrade -s --solver apt + +testsuccess aptget upgrade -s +testsuccess aptget upgrade -s --solver apt + configarchitecture 'armel' msgtest 'Test direct calling is okay for' 'apt-internal-solver' cat /tmp/dump.edsp | aptinternalsolver > solver.result 2>&1 || true -- cgit v1.2.3 From 4f445ff78220568e0fcfa373ba1b06e0ad13e63d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michele=20Orr=C3=B9?= Date: Mon, 7 Jul 2014 20:43:45 +0200 Subject: use exit instead of incorrect return in test wrapper bash as sh doesn't like it, too. Git-Dch: Ignore --- test/integration/test-dpkg-assert-multi-arch | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-dpkg-assert-multi-arch b/test/integration/test-dpkg-assert-multi-arch index 177d7489b..e6be6ac7d 100755 --- a/test/integration/test-dpkg-assert-multi-arch +++ b/test/integration/test-dpkg-assert-multi-arch @@ -32,7 +32,7 @@ echo '#! /bin/sh if echo "$*" | grep -q -- "--assert-multi-arch"; then echo >&2 'dpkg: Fehler: unbekannte Option --assert-multi-arch' echo >&1 'dpkg: Info: unbekannte Option --assert-multi-arch' - return 2; + exit 2; fi return $*' > ./dpkg-wrapper chmod +x ./dpkg-wrapper @@ -68,9 +68,10 @@ touch rootdir/var/lib/dpkg/status echo 'Dir::Bin::dpkg "./dpkg-wrapper";' > rootdir/etc/apt/apt.conf.d/99dpkgwrapper echo '#! /bin/sh if echo "$*" | grep -q -- "--assert-multi-arch"; then - return 0; -fi -return $*' > ./dpkg-wrapper + exit 0 +else + exit 1 +fi' > ./dpkg-wrapper testqualifier 'native-pkg' 'native-pkg:amd64' testqualifier 'native-pkg:amd64' 'native-pkg:amd64' -- cgit v1.2.3 From eb191ca3584816533e82cd6b8cd1f133ae28149a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Jul 2014 20:45:28 +0200 Subject: properly handle (currently unused) dpkg pass-through Git-Dch: ignore --- test/integration/test-dpkg-assert-multi-arch | 29 +++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-dpkg-assert-multi-arch b/test/integration/test-dpkg-assert-multi-arch index e6be6ac7d..b3fbbf0eb 100755 --- a/test/integration/test-dpkg-assert-multi-arch +++ b/test/integration/test-dpkg-assert-multi-arch @@ -26,15 +26,17 @@ testqualifier() { fi } -# non-multiarch or "ubuntus" old multiarchified dpkg +msgmsg 'non-multiarch or "ubuntus" old multiarchified dpkg' echo 'Dir::Bin::dpkg "./dpkg-wrapper";' > rootdir/etc/apt/apt.conf.d/99dpkgwrapper -echo '#! /bin/sh -if echo "$*" | grep -q -- "--assert-multi-arch"; then +cat > ./dpkg-wrapper <&2 'dpkg: Fehler: unbekannte Option --assert-multi-arch' echo >&1 'dpkg: Info: unbekannte Option --assert-multi-arch' - exit 2; + exit 2 fi -return $*' > ./dpkg-wrapper +exec "\$@" +EOF chmod +x ./dpkg-wrapper testqualifier 'native-pkg' 'native-pkg' @@ -61,17 +63,18 @@ testqualifier 'all-foreign-pkg-' 'all-foreign-pkg' testqualifier 'always-all-pkg-' 'always-all-pkg' testqualifier 'always-all-foreign-pkg-' 'always-all-foreign-pkg' -# multiarch dpkg (new interface version) - +msgmsg 'multiarch dpkg (new interface version)' rm rootdir/var/lib/dpkg/status touch rootdir/var/lib/dpkg/status echo 'Dir::Bin::dpkg "./dpkg-wrapper";' > rootdir/etc/apt/apt.conf.d/99dpkgwrapper -echo '#! /bin/sh -if echo "$*" | grep -q -- "--assert-multi-arch"; then - exit 0 -else - exit 1 -fi' > ./dpkg-wrapper +cat > ./dpkg-wrapper < Date: Mon, 7 Jul 2014 20:48:16 +0200 Subject: use printf instead of echo in testing framework MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The behaviour of echo "\tA\t" differs between dash/zsh which interprets the \t as tab and bash which prints it literally. Similar things happen for other escape sequences – without the -e flag. Switching to printf makes this more painless^Wportable, so that the tests are also working correctly with bash as sh. (commit message by committer, patch otherwise unmodified) --- test/integration/framework | 58 +++++++++++++++++++++++----------------------- test/integration/run-tests | 4 ++-- 2 files changed, 31 insertions(+), 31 deletions(-) (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index a687dcb35..3bbf440c8 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -23,30 +23,30 @@ if [ "$MSGCOLOR" != 'NO' ]; then CCMD="\033[1;35m" # pink fi -msgdie() { echo "${CERROR}E: $1${CNORMAL}" >&2; exit 1; } -msgwarn() { echo "${CWARNING}W: $1${CNORMAL}" >&2; } -msgmsg() { echo "${CMSG}$1${CNORMAL}"; } -msginfo() { echo "${CINFO}I: $1${CNORMAL}"; } -msgdebug() { echo "${CDEBUG}D: $1${CNORMAL}"; } -msgdone() { echo "${CDONE}DONE${CNORMAL}"; } -msgnwarn() { echo -n "${CWARNING}W: $1${CNORMAL}" >&2; } -msgnmsg() { echo -n "${CMSG}$1${CNORMAL}"; } -msgninfo() { echo -n "${CINFO}I: $1${CNORMAL}"; } -msgndebug() { echo -n "${CDEBUG}D: $1${CNORMAL}"; } +msgdie() { printf "${CERROR}E: $1${CNORMAL}\n" >&2; exit 1; } +msgwarn() { printf "${CWARNING}W: $1${CNORMAL}\n" >&2; } +msgmsg() { printf "${CMSG}$1${CNORMAL}\n"; } +msginfo() { printf "${CINFO}I: $1${CNORMAL}\n"; } +msgdebug() { printf "${CDEBUG}D: $1${CNORMAL}\n"; } +msgdone() { printf "${CDONE}DONE${CNORMAL}\n"; } +msgnwarn() { printf "${CWARNING}W: $1${CNORMAL}" >&2; } +msgnmsg() { printf "${CMSG}$1${CNORMAL}"; } +msgninfo() { printf "${CINFO}I: $1${CNORMAL}"; } +msgndebug() { printf "${CDEBUG}D: $1${CNORMAL}"; } msgtest() { while [ -n "$1" ]; do - echo -n "${CINFO}$1${CCMD} " - echo -n "$(echo "$2" | sed -e 's#^apt\([cgfs]\)#apt-\1#')${CINFO} " + printf "${CINFO}$1${CCMD} " + printf -- "$(echo "$2" | sed -e 's#^apt\([cgfs]\)#apt-\1#')${CINFO} " shift if [ -n "$1" ]; then shift; else break; fi done - echo -n "…${CNORMAL} " + printf "…${CNORMAL} " } -msgpass() { echo "${CPASS}PASS${CNORMAL}"; } -msgskip() { echo "${CWARNING}SKIP${CNORMAL}" >&2; } +msgpass() { printf "${CPASS}PASS${CNORMAL}\n"; } +msgskip() { printf "${CWARNING}SKIP${CNORMAL}\n" >&2; } msgfail() { - if [ $# -gt 0 ]; then echo "${CFAIL}FAIL: $*${CNORMAL}" >&2; - else echo "${CFAIL}FAIL${CNORMAL}" >&2; fi + if [ $# -gt 0 ]; then printf "${CFAIL}FAIL: $*${CNORMAL}\n" >&2; + else printf "${CFAIL}FAIL${CNORMAL}\n" >&2; fi EXIT_CODE=$((EXIT_CODE+1)); } @@ -63,12 +63,12 @@ if [ $MSGLEVEL -le 2 ]; then msgmsg() { true; } msgnmsg() { true; } msgtest() { true; } - msgpass() { echo -n " ${CPASS}P${CNORMAL}"; } - msgskip() { echo -n " ${CWARNING}S${CNORMAL}" >&2; } + msgpass() { printf " ${CPASS}P${CNORMAL}"; } + msgskip() { printf " ${CWARNING}S${CNORMAL}" >&2; } if [ -n "$CFAIL" ]; then - msgfail() { echo -n " ${CFAIL}FAIL${CNORMAL}" >&2; EXIT_CODE=$((EXIT_CODE+1)); } + msgfail() { printf " ${CFAIL}FAIL${CNORMAL}" >&2; EXIT_CODE=$((EXIT_CODE+1)); } else - msgfail() { echo -n " ###FAILED###" >&2; EXIT_CODE=$((EXIT_CODE+1)); } + msgfail() { printf " ###FAILED###" >&2; EXIT_CODE=$((EXIT_CODE+1)); } fi fi if [ $MSGLEVEL -le 3 ]; then @@ -87,7 +87,7 @@ msgdone() { [ "$1" = "die" -a $MSGLEVEL -le 0 ]; then true; else - echo "${CDONE}DONE${CNORMAL}"; + printf "${CDONE}DONE${CNORMAL}\n"; fi } getaptconfig() { @@ -155,7 +155,7 @@ exitwithstatus() { shellsetedetector() { local exit_status=$? if [ "$exit_status" != '0' ]; then - echo >&2 "${CERROR}E: Looks like the testcases ended prematurely with exitcode: ${exit_status}${CNORMAL}" + printf >&2 "${CERROR}E: Looks like the testcases ended prematurely with exitcode: ${exit_status}${CNORMAL}\n" if [ "$EXIT_CODE" = '0' ]; then EXIT_CODE="$exit_status" fi @@ -328,12 +328,12 @@ configdpkg() { configcompression() { while [ -n "$1" ]; do case "$1" in - '.') echo ".\t.\tcat";; - 'gz') echo "gzip\tgz\tgzip";; - 'bz2') echo "bzip2\tbz2\tbzip2";; - 'lzma') echo "lzma\tlzma\txz --format=lzma";; - 'xz') echo "xz\txz\txz";; - *) echo "$1\t$1\t$1";; + '.') printf ".\t.\tcat\n";; + 'gz') printf "gzip\tgz\tgzip\n";; + 'bz2') printf "bzip2\tbz2\tbzip2\n";; + 'lzma') printf "lzma\tlzma\txz --format=lzma\n";; + 'xz') printf "xz\txz\txz\n";; + *) printf "$1\t$1\t$1\n";; esac shift done > ${TMPWORKINGDIRECTORY}/rootdir/etc/testcase-compressor.conf diff --git a/test/integration/run-tests b/test/integration/run-tests index d39daeee5..9dd550aa2 100755 --- a/test/integration/run-tests +++ b/test/integration/run-tests @@ -39,9 +39,9 @@ fi TOTAL="$(run-parts --list $DIR | grep '/test-' | wc -l)" for testcase in $(run-parts --list $DIR | grep '/test-'); do if [ "$MSGLEVEL" -le 2 ]; then - echo -n "($(($ALL+1))/${TOTAL}) ${CTEST}Testcase ${CHIGH}$(basename ${testcase})${CRESET}: " + printf "($(($ALL+1))/${TOTAL}) ${CTEST}Testcase ${CHIGH}$(basename ${testcase})${CRESET}: " else - echo "${CTEST}Run Testcase ($(($ALL+1))/${TOTAL}) ${CHIGH}$(basename ${testcase})${CRESET}" + printf "${CTEST}Run Testcase ($(($ALL+1))/${TOTAL}) ${CHIGH}$(basename ${testcase})${CRESET}\n" fi if ! ${testcase}; then FAIL=$((FAIL+1)) -- cgit v1.2.3 From a5bb5e1e747ceb7b5a9defb6b1a8d9282a6e0957 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 8 Jul 2014 15:11:14 +0200 Subject: Only allow "apt-get build-dep path" when path starts with ./ or / This avoid the subtle problem that someone might have a directory with the same package name as the build-depends he/she is trying to fetch. Also print a note that the specific file/dir is used. --- test/integration/test-apt-get-build-dep | 3 +++ 1 file changed, 3 insertions(+) (limited to 'test/integration') diff --git a/test/integration/test-apt-get-build-dep b/test/integration/test-apt-get-build-dep index f71beae9c..87ec6e54d 100755 --- a/test/integration/test-apt-get-build-dep +++ b/test/integration/test-apt-get-build-dep @@ -34,6 +34,7 @@ EOF testequal "Reading package lists... Building dependency tree... +Note, using file '2vcard_0.5-3.dsc' to get the build dependencies The following NEW packages will be installed: build-essential debhelper 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. @@ -76,6 +77,7 @@ EOF testequal "Reading package lists... Building dependency tree... +Note, using file '2vcard_0.5-3.dsc' to get the build dependencies The following NEW packages will be installed: build-essential debhelper 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. @@ -117,6 +119,7 @@ EOF testequal "Reading package lists... Building dependency tree... +Note, using directory './foo-1.0' to get the build dependencies The following NEW packages will be installed: build-essential debhelper 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. -- cgit v1.2.3 From 9c3e15ab5f8b5864c43a08065a6bc8cf376fd138 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 16 Jul 2014 15:48:05 +0200 Subject: Do not crash for apt-get install /dev/null Thanks to Jakub Wilk for the bugreport. Closes: #754904 --- test/integration/test-apt-get-install-deb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 test/integration/test-apt-get-install-deb (limited to 'test/integration') diff --git a/test/integration/test-apt-get-install-deb b/test/integration/test-apt-get-install-deb new file mode 100755 index 000000000..700009da5 --- /dev/null +++ b/test/integration/test-apt-get-install-deb @@ -0,0 +1,30 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +# regression test for #754904 +testequal 'E: Unable to locate package /dev/null' aptget install -qq /dev/null + +# and ensure we fail for invalid debs +cat > foo.deb < Date: Tue, 29 Jul 2014 15:01:13 +0200 Subject: Fix SmartConfigure to ignore ordering of packages that are already valid With the change of SmartConfigure() in git commit 42d51f the ordering code was trying to re-order dependencies, even when at this point in time this was not needed. Now it will first check all targets of the given dependency and only if there is not a good one try to reorder and unpack/configure as needed. Closes: LP: #1347721 --- .../Packages-bug-lp1347721-dpkg-ordering | 445 +++++ .../integration/status-bug-lp1347721-dpkg-ordering | 1942 ++++++++++++++++++++ test/integration/test-bug-lp1347721-dpkg-ordering | 11 + 3 files changed, 2398 insertions(+) create mode 100644 test/integration/Packages-bug-lp1347721-dpkg-ordering create mode 100644 test/integration/status-bug-lp1347721-dpkg-ordering create mode 100755 test/integration/test-bug-lp1347721-dpkg-ordering (limited to 'test/integration') diff --git a/test/integration/Packages-bug-lp1347721-dpkg-ordering b/test/integration/Packages-bug-lp1347721-dpkg-ordering new file mode 100644 index 000000000..ea96b387c --- /dev/null +++ b/test/integration/Packages-bug-lp1347721-dpkg-ordering @@ -0,0 +1,445 @@ +Package: init +xEssential: yes +Priority: required +Section: metapackages +Installed-Size: 29 +Maintainer: Ubuntu Developers +Original-Maintainer: pkg-systemd-maintainers +Architecture: i386 +Source: init-system-helpers +Version: 1.20 +Pre-Depends: sysvinit-core | systemd-sysv | upstart +Filename: pool/main/i/init-system-helpers/init_1.20_i386.deb +Size: 3494 +MD5sum: a388b6f4f6ed0d01b3d459cfad6582fe +SHA1: d0eb6414a6bb48bb886fcc19962f6a7f302977f3 +SHA256: 9f299b2bf18d6e4534f3a73cca97ef93850e1b5fa38f8519da7c2b825d581f4c +Description: System-V-like init utilities - metapackage +Description-md5: e52554c23609041bfbca72fe27a132f9 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu + +Package: libudev1 +Priority: required +Section: libs +Installed-Size: 132 +Maintainer: Ubuntu Developers +Original-Maintainer: Debian systemd Maintainers +Architecture: i386 +Source: systemd +Version: 208-6ubuntu2 +Depends: libc6 (>= 2.17), libselinux1 (>= 1.32) +Pre-Depends: multiarch-support +Filename: pool/main/s/systemd/libudev1_208-6ubuntu2_i386.deb +Size: 36008 +MD5sum: b03338c052438a95919b9db4d6f9493e +SHA1: a85242bfc653255b5fa73d0fbec92815dc9c09fc +SHA256: d66d7948703b33bd617e16a1b9ac6f24ca564312890b1f9218330f638080a307 +Description: libudev shared library +Multi-Arch: same +Homepage: http://www.freedesktop.org/wiki/Software/systemd +Description-md5: ace5b83d7b48187416c90173a93255b6 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: udev +Priority: required +Section: admin +Installed-Size: 5879 +Maintainer: Ubuntu Developers +Original-Maintainer: Debian systemd Maintainers +Architecture: i386 +Source: systemd +Version: 208-6ubuntu2 +Depends: libacl1 (>= 2.2.51-8), libblkid1 (>= 2.19.1), libc6 (>= 2.17), libkmod2 (>= 5~), libselinux1 (>= 2.0.65), libudev1 (= 208-6ubuntu2), lsb-base (>= 4.1+Debian11ubuntu7), util-linux (>= 2.16), procps +Pre-Depends: debconf (>= 1.4.69) | debconf-2.0 +Breaks: consolekit (<< 0.4.6-1) +Filename: pool/main/s/systemd/udev_208-6ubuntu2_i386.deb +Size: 799582 +MD5sum: 814bb3babdbe76994ce536384ca31f88 +SHA1: bbb662c89f2b1ff4fd450d1523cc21b5b1c339bc +SHA256: e444350214c5c121b2ca8031f76c53809f95ebb5c4cec4cf4595c7520ac09529 +Description: /dev/ and hotplug management daemon +Multi-Arch: foreign +Homepage: http://www.freedesktop.org/wiki/Software/systemd +Description-md5: e875ddb09f46f1f7672af537f0c875ca +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: initscripts +Priority: required +Section: admin +Installed-Size: 246 +Maintainer: Ubuntu Core Developers +Original-Maintainer: Debian sysvinit maintainers +Architecture: i386 +Source: sysvinit +Version: 2.88dsf-41ubuntu16 +Replaces: libc0.1, libc0.3, libc6, libc6.1 +Depends: libc6 (>= 2.4), mount (>= 2.11x-1), debianutils (>= 4), lsb-base (>= 4.1+Debian11ubuntu7), sysvinit-utils (>= 2.86.ds1-64), sysv-rc | file-rc, coreutils (>= 5.93), passwd, init, mountall (>= 2.28) +Recommends: psmisc, e2fsprogs +Conflicts: libdevmapper1.02.1 (<< 2:1.02.24-1) +Breaks: aide (<< 0.15.1-5), atm-tools (<< 1:2.5.1-1.3), bootchart (<< 0.10~svn407-3.3), console-common (<< 0.7.86), cruft (<< 0.9.16), eepc-acpi-scripts (<< 1.1.12), fcheck (<< 2.7.59-16), hostapd (<< 1:0.7.3-3), hostname (<< 2.95ubuntu1~boot2), ifupdown (<< 0.6.8ubuntu27), libpam-mount (<< 2.13-1), ltsp-client-core (<< 5.2.16-1), mdadm (<< 3.2.2-1), nbd-client (<< 1:2.9.23-1), nfs-common (<< 1:1.2.5-3), portmap (<< 6.0.0-2), readahead-fedora (<< 2:1.5.6-3), resolvconf (<< 1.49), rpcbind (<< 0.2.0-7), rsyslog (<< 5.8.2-2), selinux-policy-default (<= 2:0.2.20100524-9), splashy (<< 0.3.13-5.1+b1), sysklogd (<< 1.5-6.2), udev (<< 146-2~boot6), upstart (<< 0.6.3-2~boot4), wpasupplicant (<< 0.7.3-4), xymon (<< 4.3.0~beta2.dfsg-9) +Filename: pool/main/s/sysvinit/initscripts_2.88dsf-41ubuntu16_i386.deb +Size: 35150 +MD5sum: e78f1e7816f03ded97eacd469505ea45 +SHA1: 81f88f9258c680e9983316d75baff7572ecec75c +SHA256: 996e4d86486cbe12a7b7852ec1a9fe459dbf0afab51dc13bd701b6d970fdc14a +Description: scripts for initializing and shutting down the system +Multi-Arch: foreign +Homepage: http://savannah.nongnu.org/projects/sysvinit +Description-md5: db9003c179cd2a623493209da58ea2ea +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: libc6 +Priority: required +Section: libs +Installed-Size: 9284 +Maintainer: Ubuntu Developers +Original-Maintainer: GNU Libc Maintainers +Architecture: i386 +Source: glibc +Version: 2.19-4ubuntu1 +Replaces: libc6-i386, libc6-xen +Provides: glibc-2.19-1, libc6-i686, libc6-xen +Depends: libgcc1 +Suggests: glibc-doc, debconf | debconf-2.0, locales +Conflicts: libc6-xen, prelink (<= 0.0.20090311-1), tzdata (<< 2007k-1), tzdata-etch +Breaks: hurd (<< 1:0.5.git20140203-1), libtirpc1 (<< 0.2.3), nscd (<< 2.19) +Filename: pool/main/g/glibc/libc6_2.19-4ubuntu1_i386.deb +Size: 4012440 +MD5sum: 946665711bb0294bd2c7729b3174ba8b +SHA1: 063e268e0d1e368e218d450a4bd2af7608b5e38e +SHA256: 0e33f5c3b6da3a6ec52fb0274abfa0da5489808feb220b6e6640432cb84f948f +Description: GNU C Library: Shared libraries +Multi-Arch: same +Homepage: http://www.gnu.org/software/libc/libc.html +Description-md5: fc3001b0b90a1c8e6690b283a619d57f +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: libmount1 +Priority: required +Section: libs +Installed-Size: 253 +Maintainer: Ubuntu Developers +Original-Maintainer: LaMont Jones +Architecture: i386 +Source: util-linux +Version: 2.20.1-5.1ubuntu21 +Depends: libblkid1 (>= 2.17.2), libc6 (>= 2.8), libselinux1 (>= 1.32) +Pre-Depends: multiarch-support +Filename: pool/main/u/util-linux/libmount1_2.20.1-5.1ubuntu21_i386.deb +Size: 60156 +MD5sum: d17af590ad06ac914a1024d54184cee6 +SHA1: 6eb2a281c409bd5181ce6b871795f8e4609565bc +SHA256: 78ce54b9f644c365b95a7230e1e50762d628c9d0d3549211017a98d4cb5013c4 +Description: block device id library +Multi-Arch: same +Homepage: http://userweb.kernel.org/~kzak/util-linux/ +Description-md5: 8f605597a2fb2fd7bffd09db537dd040 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: libplymouth4 +Priority: required +Section: libs +Installed-Size: 315 +Maintainer: Ubuntu Developers +Architecture: i386 +Source: plymouth +Version: 0.9.0-0ubuntu2 +Replaces: plymouth (<< 0.7.0+git20090207-0ubuntu0.1~ppa4) +Depends: libc6 (>= 2.9), libpng12-0 (>= 1.2.13-4), libudev1 (>= 183) +Pre-Depends: multiarch-support +Breaks: casper (= 1.227), mountall (<< 2.8) +Filename: pool/main/p/plymouth/libplymouth4_0.9.0-0ubuntu2_i386.deb +Size: 85024 +MD5sum: 8d9e7001ba371bd802956de1e81d1997 +SHA1: 749bdaee4d8bd4c2383c703eb244caa473180d35 +SHA256: 59bd4492b6e71eee5c13ba9c63da12ece49c43106829556722ca503867ce7251 +Description: graphical boot animation and logger - shared libraries +Multi-Arch: same +Description-md5: 29e2ed45f3e127c38b58dae52061cc33 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: libprocps3 +Priority: required +Section: libs +Installed-Size: 133 +Maintainer: Ubuntu Developers +Original-Maintainer: Craig Small +Architecture: i386 +Source: procps +Version: 1:3.3.9-1ubuntu5 +Replaces: procps (<< 1:3.3.2-1) +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Filename: pool/main/p/procps/libprocps3_3.3.9-1ubuntu5_i386.deb +Size: 30078 +MD5sum: 0df60f591dfe64ed23bb1f3a1546c0ce +SHA1: db672ec37e88574bf1a1d5484d80cfd4ff04f9f6 +SHA256: b5df28501805a6833dc78e049159a7c560af6f24f18f51459bd8890c31e0fdc6 +Description: library for accessing process information from /proc +Multi-Arch: same +Homepage: http://gitorious.org/procps +Description-md5: 195f4a1a493350f6f0732a65b3cda83f +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: libudev1 +Priority: required +Section: libs +Installed-Size: 131 +Maintainer: Ubuntu Developers +Original-Maintainer: Debian systemd Maintainers +Architecture: i386 +Source: systemd +Version: 204-14ubuntu2 +Depends: libc6 (>= 2.17), libcgmanager0, libdbus-1-3 (>= 1.0.2), libnih-dbus1 (>= 1.0.0), libnih1 (>= 1.0.0) +Pre-Depends: multiarch-support +Filename: pool/main/s/systemd/libudev1_204-14ubuntu2_i386.deb +Size: 35518 +MD5sum: a606f9e4aab028b9ab658b6e8a09d5fb +SHA1: ef28d377e6cc8f1e98dd9cd8c40edda90e2eed20 +SHA256: c02c85725f64b6c804235329166bf66e40da948d96123336ec55e13e1654720f +Description: libudev shared library +Multi-Arch: same +Homepage: http://www.freedesktop.org/wiki/Software/systemd +Description-md5: ace5b83d7b48187416c90173a93255b6 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: lsb-base +Priority: required +Section: misc +Installed-Size: 83 +Maintainer: Ubuntu Developers +Original-Maintainer: Debian LSB Team +Architecture: all +Source: lsb +Version: 4.1+Debian11ubuntu8 +Replaces: upstart (<< 1.12.1-0ubuntu8) +Breaks: upstart (<< 1.12.1-0ubuntu8) +Filename: pool/main/l/lsb/lsb-base_4.1+Debian11ubuntu8_all.deb +Size: 13094 +MD5sum: 9ec51f910e6d8e86bfb489b71b237e66 +SHA1: 8091ba9ffc03999a3db1e2e0ee7d32ac5139a942 +SHA256: be8d24447147aa997b79353eaf8732b3d0967118c011b47476c841667eb15f7e +Description: Linux Standard Base 4.1 init script functionality +Multi-Arch: foreign +Homepage: http://www.linuxfoundation.org/collaborate/workgroups/lsb +Description-md5: 4ebb3d88f9f483751e70c55779c52d01 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: mount +Essential: yes +Priority: required +Section: admin +Installed-Size: 410 +Maintainer: Ubuntu Developers +Original-Maintainer: LaMont Jones +Architecture: i386 +Source: util-linux +Version: 2.20.1-5.1ubuntu21 +Pre-Depends: libblkid1 (>= 2.20.1), libc6 (>= 2.8), libmount1 (>= 2.20.1), libselinux1 (>= 2.0.15) +Suggests: nfs-common (>= 1:1.1.0-13) +Filename: pool/main/u/util-linux/mount_2.20.1-5.1ubuntu21_i386.deb +Size: 112598 +MD5sum: bdff5dbfbf17e2be281d64e2e7a4912b +SHA1: 1ed4abb0d5de8a09c704ac2d33de123015e5318a +SHA256: d2f023c763f7b6e91f3cd14073bfc5af7e7bfe3922fc5ca681d8038c80323f9e +Description: Tools for mounting and manipulating filesystems +Multi-Arch: foreign +Homepage: http://userweb.kernel.org/~kzak/util-linux/ +Description-md5: 46eb8e09a600d5eb98b6b40428349102 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: mountall +Priority: required +Section: admin +Installed-Size: 248 +Maintainer: Ubuntu Developers +Original-Maintainer: Steve Langasek +Architecture: i386 +Version: 2.54build1 +Replaces: upstart (<< 0.6.3-2) +Depends: makedev, udev, plymouth, coreutils (>= 7.1), libc6 (>= 2.9), libdbus-1-3 (>= 1.2.16), libnih-dbus1 (>= 1.0.0), libnih1 (>= 1.0.0), libplymouth4 (>= 0.8.1-3), libudev1 (>= 183) +Pre-Depends: dpkg (>= 1.15.7.2) +Breaks: initscripts (<< 2.88dsf-24), policycoreutils (<< 2.0.69-2ubuntu4), usplash (<< 0.5.47) +Filename: pool/main/m/mountall/mountall_2.54build1_i386.deb +Size: 54166 +MD5sum: a208d9dc5aef018087d5e00cea7f6c92 +SHA1: 13686aa81ebef6c3009ff618708d76bc68ff94e8 +SHA256: dee359411cd7cfad19581f380af6275d46a6c5ecf55f512523b75adaa4734d03 +Description: filesystem mounting tool +Multi-Arch: foreign +Description-md5: b5b5a27fc0e8063ef1226a39fb8ecf70 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: procps +Priority: required +Section: admin +Installed-Size: 634 +Maintainer: Ubuntu Developers +Original-Maintainer: Craig Small +Architecture: i386 +Version: 1:3.3.9-1ubuntu5 +Provides: watch +Depends: libc6 (>= 2.15), libncurses5 (>= 5.5-5~), libncursesw5 (>= 5.6+20070908), libprocps3, libtinfo5, lsb-base (>= 4.1+Debian11ubuntu7), initscripts +Recommends: psmisc +Conflicts: pgrep (<< 3.3-5), w-bassman (<< 1.0-3) +Breaks: guymager (<= 0.5.9-1), open-vm-tools (<= 2011.12.20-562307-1), xmem (<= 1.20-27.1) +Filename: pool/main/p/procps/procps_3.3.9-1ubuntu5_i386.deb +Size: 203368 +MD5sum: 17be371891f077e04075c6eb0af06b3c +SHA1: a5c6171b5a6430aa9436e42f0e64226dd2e7a665 +SHA256: 41e03fd2d05161c402d9a5d2b5feecb30a42f8919eb43712ebdd4340433803c1 +Description: /proc file system utilities +Multi-Arch: foreign +Homepage: http://gitorious.org/procps +Description-md5: 943f3288c1aaa379fca73a3ff1a35278 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: sysv-rc +Priority: required +Section: admin +Installed-Size: 224 +Maintainer: Ubuntu Core Developers +Original-Maintainer: Debian sysvinit maintainers +Architecture: all +Source: sysvinit +Version: 2.88dsf-41ubuntu16 +Replaces: file-rc +Depends: debconf (>= 0.5) | debconf-2.0, sysvinit-utils (>= 2.86.ds1-62), insserv (>> 1.12.0-10) +Recommends: lsb-base (>= 3.2-14) +Suggests: sysv-rc-conf, bum +Conflicts: file-rc +Breaks: initscripts (<< 2.88dsf-41ubuntu14) +Filename: pool/main/s/sysvinit/sysv-rc_2.88dsf-41ubuntu16_all.deb +Size: 37784 +MD5sum: e57bc9887432f76266d7bf741cf9d813 +SHA1: 446d24cc86bdb7a779856c00f9dea966227a00e2 +SHA256: 072d2745b9c966d63cba5abf52357374e7a043b3cc1bbde0b8ccf68f82e45f60 +Description: System-V-like runlevel change mechanism +Multi-Arch: foreign +Homepage: http://savannah.nongnu.org/projects/sysvinit +Description-md5: 195f2d617082a23f37cee0f50784eef9 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: sysvinit-utils +Priority: required +Section: admin +Installed-Size: 236 +Maintainer: Ubuntu Core Developers +Original-Maintainer: Debian sysvinit maintainers +Architecture: i386 +Source: sysvinit +Version: 2.88dsf-41ubuntu16 +Replaces: last, sysvinit (<= 2.86.ds1-65) +Depends: libc6 (>= 2.15), libselinux1 (>= 1.32), lsb-base (>= 4.1+Debian11ubuntu7) +Recommends: upstart (>= 0.6.3-4) +Suggests: bootlogd, sash +Conflicts: chkconfig (<< 11.0-79.1-2), last, sysvconfig +Breaks: upstart (<< 1.5-0ubuntu5) +Filename: pool/main/s/sysvinit/sysvinit-utils_2.88dsf-41ubuntu16_i386.deb +Size: 49652 +MD5sum: e1340ba69c7a5f0cf1a84b3f68993570 +SHA1: 7cbd535c1c010c2e84cb454562fb6632fb366ddc +SHA256: 576c2bcfbf56871acd68576f07fd18b6bfccd8a5db6dfa04bcf62183f43e77a0 +Description: System-V-like utilities +Multi-Arch: foreign +Homepage: http://savannah.nongnu.org/projects/sysvinit +Description-md5: 1d2bc4c9c32104729144c7578ecd30bd +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: udev +Priority: required +Section: admin +Installed-Size: 5123 +Maintainer: Ubuntu Developers +Original-Maintainer: Debian systemd Maintainers +Architecture: i386 +Source: systemd +Version: 204-14ubuntu2 +Depends: libacl1 (>= 2.2.51-8), libblkid1 (>= 2.19.1), libc6 (>= 2.17), libcgmanager0, libdbus-1-3 (>= 1.0.2), libkmod2 (>= 5~), libnih-dbus1 (>= 1.0.0), libnih1 (>= 1.0.0), libselinux1 (>= 2.0.65), libudev1 (= 204-14ubuntu2), lsb-base (>= 4.1+Debian11ubuntu7), util-linux (>= 2.16), procps +Pre-Depends: debconf (>= 1.4.69) | debconf-2.0 +Breaks: consolekit (<< 0.4.6-1) +Filename: pool/main/s/systemd/udev_204-14ubuntu2_i386.deb +Size: 739026 +MD5sum: a85b035885e1b316354f6e5d0b8eeb69 +SHA1: 970405e4c8838c3cf17d1834c8917705d977879e +SHA256: 05fbd7f4b502fde9752b84b49364fe633b8377bcd996ec16462e0bc94adc9fcf +Description: /dev/ and hotplug management daemon +Multi-Arch: foreign +Homepage: http://www.freedesktop.org/wiki/Software/systemd +Description-md5: e875ddb09f46f1f7672af537f0c875ca +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + +Package: upstart +Priority: required +Section: admin +Installed-Size: 1721 +Maintainer: James Hunt +Architecture: i386 +Version: 1.13.1-0ubuntu1 +Replaces: startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job +Provides: startup-tasks, system-services, upstart-compat-sysv, upstart-job +Depends: libc6 (>= 2.15), libcgmanager0, libdbus-1-3 (>= 1.2.16), libjson-c2 (>= 0.10), libnih-dbus1 (>= 1.0.0), libnih1 (>= 1.0.0), libudev1 (>= 183), sysvinit-utils, initscripts, mountall, ifupdown (>= 0.6.10ubuntu5), libjson0 (>= 0.10-1.1ubuntu1), debianutils (>= 4) +Suggests: python3, graphviz, bash-completion, upstart-monitor +Conflicts: lxcguest, startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job +Breaks: friendly-recovery (<< 0.2.13), libc6 (<< 2.12.1-0ubuntu12) +Filename: pool/main/u/upstart/upstart_1.13.1-0ubuntu1_i386.deb +Size: 388978 +MD5sum: 2ebf7fb1083b581707e445fee808e120 +SHA1: 901424ec0d304ca8d10a25321a55d1d69bd8e82d +SHA256: c42fb117e90770c7163c9f4770e75e9c0d6a00d41c4b3afc2afebfa65ede80f8 +Description: event-based init daemon +Multi-Arch: foreign +Homepage: http://upstart.ubuntu.com/ +Orig-Maintainer: Steve Langasek +Description-md5: b776ec43b708c13dd0c2ab824471f478 +Bugs: https://bugs.launchpad.net/ubuntu/+filebug +Origin: Ubuntu +Supported: 9m +Task: minimal + diff --git a/test/integration/status-bug-lp1347721-dpkg-ordering b/test/integration/status-bug-lp1347721-dpkg-ordering new file mode 100644 index 000000000..62e545c55 --- /dev/null +++ b/test/integration/status-bug-lp1347721-dpkg-ordering @@ -0,0 +1,1942 @@ +Package: libustr-1.0-1 +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 261 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: ustr +Version: 1.0.4-3ubuntu2 +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Description: Micro string library: shared library + ustr (Micro string library) is a string API for C. It has tiny overhead over + just plain strdup(), is much safer, is easier to use, is faster for many + operations, can be used with read-only or automatically allocated data. You + don't even need to link to the library to use it (so there are no + dependencies). + . + This package contains the shared library for ustr. +Homepage: http://www.and.org/ustr/ +Original-Maintainer: Vaclav Ovsik + +Package: debconf +Status: install ok installed +Priority: important +Section: admin +Installed-Size: 609 +Maintainer: Colin Watson +Architecture: all +Multi-Arch: foreign +Version: 1.5.53ubuntu1 +Replaces: debconf-tiny +Provides: debconf-2.0 +Pre-Depends: perl-base (>= 5.6.1-4) +Recommends: apt-utils (>= 0.5.1), debconf-i18n +Suggests: debconf-doc, debconf-utils, whiptail | dialog | gnome-utils, libterm-readline-gnu-perl, libgtk2-perl (>= 1:1.130), libnet-ldap-perl, perl, libqtgui4-perl, libqtcore4-perl +Conflicts: apt (<< 0.3.12.1), cdebconf (<< 0.96), debconf-tiny, debconf-utils (<< 1.3.22), dialog (<< 0.9b-20020814-1), menu (<= 2.1.3-1), whiptail (<< 0.51.4-11), whiptail-utf8 (<= 0.50.17-13) +Conffiles: + /etc/debconf.conf 8c0619be413824f1fc7698cee0f23811 + /etc/apt/apt.conf.d/70debconf 7e9d09d5801a42b4926b736b8eeabb73 + /etc/bash_completion.d/debconf 8fa1862734fbe54d7178aaaa419f5a11 +Description: Debian configuration management system + Debconf is a configuration management system for debian packages. Packages + use Debconf to ask questions when they are installed. +Original-Maintainer: Debconf Developers + +Package: iproute2 +Status: install ok installed +Priority: important +Section: net +Installed-Size: 1184 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 3.14.0-1 +Replaces: iproute +Provides: arpd +Depends: libc6 (>= 2.14), libdb5.3 +Recommends: libatm1 (>= 2.4.1-17~), libxtables10 +Suggests: iproute2-doc +Conflicts: arpd, iproute (<< 20130000-1) +Conffiles: + /etc/iproute2/rt_realms 7137bdf40e8d58c87ac7e3bba503767f + /etc/iproute2/rt_protos 95ce0b4b5b79f5a8a45941fb418a904c + /etc/iproute2/rt_dsfield 4264d5c7c8298300185aa04e1a736934 + /etc/iproute2/rt_scopes 6298b8df09e9bda23ea7da49021ca457 + /etc/iproute2/ematch_map b91e7f9b26918449bade9573f8871d61 + /etc/iproute2/group 3aea2c0e0dd75e13a5f8f48f2936915f + /etc/iproute2/rt_tables a1313318d6778fe6b8c680248ef5a463 +Description: networking and traffic control tools + The iproute2 suite is a collection of utilities for networking and + traffic control. + . + These tools communicate with the Linux kernel via the (rt)netlink + interface, providing advanced features not available through the + legacy net-tools commands 'ifconfig' and 'route'. +Original-Maintainer: Debian iproute2 Maintainers +Homepage: http://www.linux-foundation.org/en/Net:Iproute2 + +Package: coreutils +Essential: yes +Status: install ok installed +Priority: required +Section: utils +Installed-Size: 6124 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 8.21-1ubuntu5 +Replaces: mktemp, timeout +Pre-Depends: libacl1 (>= 2.2.51-8), libattr1 (>= 1:2.4.46-8), libc6 (>= 2.17), libselinux1 (>= 1.32) +Conflicts: timeout +Description: GNU core utilities + This package contains the basic file, shell and text manipulation + utilities which are expected to exist on every operating system. + . + Specifically, this package includes: + arch base64 basename cat chcon chgrp chmod chown chroot cksum comm cp + csplit cut date dd df dir dircolors dirname du echo env expand expr + factor false flock fmt fold groups head hostid id install join link ln + logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup nproc od + paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir runcon + sha*sum seq shred sleep sort split stat stty sum sync tac tail tee test + timeout touch tr true truncate tsort tty uname unexpand uniq unlink + users vdir wc who whoami yes +Homepage: http://gnu.org/software/coreutils +Original-Maintainer: Michael Stone + +Package: debianutils +Essential: yes +Status: install ok installed +Priority: required +Section: utils +Installed-Size: 273 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 4.4 +Replaces: manpages-pl (<< 1:0.5) +Depends: sensible-utils +Pre-Depends: libc6 (>= 2.15) +Description: Miscellaneous utilities specific to Debian + This package provides a number of small utilities which are used + primarily by the installation scripts of Debian packages, although + you may use them directly. + . + The specific utilities included are: + add-shell installkernel ischroot remove-shell run-parts savelog + tempfile which +Original-Maintainer: Clint Adams + +Package: initramfs-tools +Status: install ok installed +Priority: optional +Section: utils +Installed-Size: 365 +Maintainer: Ubuntu Kernel Team +Architecture: all +Multi-Arch: foreign +Version: 0.103ubuntu4 +Provides: linux-initramfs-tool +Depends: initramfs-tools-bin (>= 0.103ubuntu4), initramfs-tools-bin (<< 0.103ubuntu4.1~), klibc-utils (>= 2.0-1~), busybox-initramfs (>= 1:1.13.3-1ubuntu5), cpio, module-init-tools, udev (>= 147~-5), findutils (>= 4.2.24), util-linux (>> 2.15~rc1) +Suggests: bash-completion +Breaks: cryptsetup (<< 2:1.1.0-2.1), elilo (<< 3.12-3.1~), lilo (<< 22.8-8.2~), mountall (<< 2.0~), s390-tools (<< 1.8.3-2~) +Conflicts: usplash (<< 0.5.50) +Conffiles: + /etc/bash_completion.d/initramfs-tools 7eeb7184772f3658e7cf446945c096b1 + /etc/initramfs-tools/update-initramfs.conf e2026d4603e7161efaccca519aeb1297 + /etc/initramfs-tools/initramfs.conf 8801535d9bec98754eea6a172f956d42 + /etc/kernel/postrm.d/initramfs-tools e22d1ab0d7a7a1b66ae6d71ea4f21938 + /etc/kernel/postinst.d/initramfs-tools fe7713b9a74a10ed71d1e7dd93afc209 +Description: tools for generating an initramfs + This package contains tools to create and boot an initramfs for packaged 2.6 + Linux kernel. The initramfs is a gzipped cpio archive. At boot time, the + kernel unpacks that archive into RAM, mounts and uses it as initial root file + system. The mounting of the real root file system occurs in early user space. + klibc provides utilities to setup root. Having the root on MD, LVM2, LUKS or + NFS is also supported. + Any boot loader with initrd support is able to load an initramfs archive. +Original-Maintainer: Debian kernel team + +Package: makedev +Status: install ok installed +Priority: extra +Section: admin +Installed-Size: 125 +Maintainer: Ubuntu Developers +Architecture: all +Multi-Arch: foreign +Version: 2.3.1-93ubuntu1 +Depends: base-passwd (>= 3.0.4) +Conflicts: udev (<= 0.024-7) +Description: creates device files in /dev + The MAKEDEV executable is used to create device files, often in /dev. + . + Device files are special files through which applications can interact + with hardware. + . + This package is not necessary for most modern Linux systems, where the udev + subsystem provides a more dynamic mechanism for device file management. +Original-Maintainer: Debian QA Group + +Package: libdbus-1-3 +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 398 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: dbus +Version: 1.6.18-0ubuntu4 +Depends: libc6 (>= 2.10) +Pre-Depends: multiarch-support +Recommends: dbus +Breaks: kde-window-manager (<< 4:4.4.5-9), kdebase-workspace-bin (<< 4:4.4.5-9) +Description: simple interprocess messaging system (library) + D-Bus is a message bus, used for sending messages between applications. + Conceptually, it fits somewhere in between raw sockets and CORBA in + terms of complexity. + . + D-Bus supports broadcast messages, asynchronous messages (thus + decreasing latency), authentication, and more. It is designed to be + low-overhead; messages are sent using a binary protocol, not using + XML. D-Bus also supports a method call mapping for its messages, but + it is not required; this makes using the system quite simple. + . + It comes with several bindings, including GLib, Python, Qt and Java. + . + The daemon can be found in the dbus package. +Homepage: http://dbus.freedesktop.org/ +Original-Maintainer: Utopia Maintenance Team + +Package: module-init-tools +Status: install ok installed +Priority: extra +Section: admin +Installed-Size: 31 +Maintainer: Ubuntu Developers +Architecture: all +Multi-Arch: foreign +Source: kmod +Version: 16-2ubuntu3 +Depends: libkmod2, kmod +Pre-Depends: dpkg (>= 1.15.7.2) +Description: transitional dummy package (module-init-tools to kmod) + This dummy package is provided to support the transition from + module-init-tools to kmod and should be removed afterwards. +Original-Maintainer: Marco d'Itri + +Package: libuuid1 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 107 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: util-linux +Version: 2.20.1-5.1ubuntu20 +Replaces: e2fsprogs (<< 1.34-1) +Depends: passwd, libc6 (>= 2.4) +Pre-Depends: multiarch-support +Recommends: uuid-runtime +Description: Universally Unique ID library + The libuuid library generates and parses 128-bit universally unique + ids (UUIDs). A UUID is an identifier that is unique across both + space and time, with respect to the space of all UUIDs. A UUID can + be used for multiple purposes, from tagging objects with an extremely + short lifetime, to reliably identifying very persistent objects + across a network. + . + See RFC 4122 for more information. +Homepage: http://userweb.kernel.org/~kzak/util-linux/ +Original-Maintainer: LaMont Jones + +Package: lsb-base +Status: install ok installed +Priority: required +Section: misc +Installed-Size: 82 +Maintainer: Ubuntu Developers +Architecture: all +Multi-Arch: foreign +Source: lsb +Version: 4.1+Debian11ubuntu6 +Description: Linux Standard Base 4.1 init script functionality + The Linux Standard Base (http://www.linuxbase.org/) is a standard + core system that third-party applications written for Linux can + depend upon. + . + This package only includes the init-functions shell library, which + may be used by other packages' initialization scripts for console + logging and other purposes. +Homepage: http://www.linuxfoundation.org/collaborate/workgroups/lsb +Original-Maintainer: Debian LSB Team + +Package: procps +Status: install ok installed +Priority: important +Section: admin +Installed-Size: 637 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 1:3.3.9-1ubuntu2 +Provides: watch +Depends: libc6 (>= 2.15), libncurses5 (>= 5.5-5~), libncursesw5 (>= 5.6+20070908), libprocps3, libtinfo5, lsb-base (>= 3.0-10), initscripts +Recommends: psmisc +Breaks: guymager (<= 0.5.9-1), open-vm-tools (<= 2011.12.20-562307-1), xmem (<= 1.20-27.1) +Conflicts: pgrep (<< 3.3-5), w-bassman (<< 1.0-3) +Conffiles: + /etc/sysctl.d/10-console-messages.conf 154f6f5c5810d10bb303fb6a8e907c6a + /etc/sysctl.d/README c20074b9b11a5202758c69d7bcb6996f + /etc/sysctl.d/10-magic-sysrq.conf b3059f2835f17c97265433fdfdee358f + /etc/sysctl.d/10-kernel-hardening.conf 5c1388f00011a287cdeba60208c674e1 + /etc/sysctl.d/10-link-restrictions.conf 8568316f2baa8db06554dab91f93a161 + /etc/sysctl.d/10-zeropage.conf 8d7193abcc4dfedaf519dd03016a5e59 + /etc/sysctl.d/10-network-security.conf 4ac7258f5336e7eeaf448c05ab668d3c + /etc/sysctl.d/10-ptrace.conf 47f40494b2fc698e15549e0a4a79e81c + /etc/sysctl.d/10-ipv6-privacy.conf e9473d12b4a7069d6a3ca8b694511ddf + /etc/sysctl.conf 76c1d8285c578d5e827c3e07b9738112 + /etc/init.d/procps 021482ebab1024f5ed76e650e5191e8f + /etc/init/procps.conf 96170a339d08797dc90d69b01d6bf610 +Description: /proc file system utilities + This package provides command line and full screen utilities for browsing + procfs, a "pseudo" file system dynamically generated by the kernel to + provide information about the status of entries in its process table + (such as whether the process is running, stopped, or a "zombie"). + . + It contains free, kill, pkill, pgrep, pmap, ps, pwdx, skill, slabtop, + snice, sysctl, tload, top, uptime, vmstat, w, and watch. +Homepage: http://gitorious.org/procps +Original-Maintainer: Craig Small + +Package: libpam0g +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 219 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: pam +Version: 1.1.8-1ubuntu2 +Replaces: libpam0g-util +Depends: libaudit1 (>= 1:2.2.1), libc6 (>= 2.8), debconf (>= 0.5) | debconf-2.0 +Pre-Depends: multiarch-support +Suggests: libpam-doc +Description: Pluggable Authentication Modules library + Contains the shared library for Linux-PAM, a library that enables the + local system administrator to choose how applications authenticate users. + In other words, without rewriting or recompiling a PAM-aware application, + it is possible to switch between the authentication mechanism(s) it uses. + One may entirely upgrade the local authentication system without touching + the applications themselves. +Homepage: http://pam.sourceforge.net/ +Original-Maintainer: Steve Langasek + +Package: sensible-utils +Status: install ok installed +Priority: required +Section: utils +Installed-Size: 110 +Maintainer: Ubuntu Developers +Architecture: all +Multi-Arch: foreign +Version: 0.0.9 +Replaces: debianutils (<= 2.32.3), manpages-pl (<= 20060617-3~) +Description: Utilities for sensible alternative selection + This package provides a number of small utilities which are used + by programs to sensibly select and spawn an appropriate browser, + editor, or pager. + . + The specific utilities included are: sensible-browser sensible-editor + sensible-pager +Original-Maintainer: Anibal Monsalve Salazar + +Package: perl-base +Essential: yes +Status: install ok installed +Priority: required +Section: perl +Installed-Size: 4780 +Maintainer: Ubuntu Developers +Architecture: i386 +Source: perl +Version: 5.18.2-2ubuntu1 +Replaces: libperl5.8 (<< 5.8.0-20), libscalar-list-utils-perl, libsocket-perl, libxsloader-perl, perl (<< 5.10.1-12), perl-modules (<< 5.10.1-1) +Provides: libscalar-list-utils-perl, libsocket-perl, libxsloader-perl, perl5-base, perlapi-5.18.1, perlapi-5.18.2 +Pre-Depends: libc6 (>= 2.11), dpkg (>= 1.14.20) +Suggests: perl +Breaks: autoconf2.13 (<< 2.13-45), libcommon-sense-perl (<< 3.72-2~), libfile-spec-perl (<< 3.4000), libmarc-charset-perl (<< 1.2), libsocket-perl (<< 2.009), libxsloader-perl (<< 0.16) +Conflicts: defoma (<< 0.11.12), doc-base (<< 0.10.3), libscalar-list-utils-perl, mono-gac (<< 2.10.8.1-3), safe-rm (<< 0.8), update-inetd (<< 4.41) +Description: minimal Perl system + Perl is a scripting language used in many system scripts and utilities. + . + This package provides a Perl interpreter and the small subset of the + standard run-time library required to perform basic tasks. For a full + Perl installation, install "perl" (and its dependencies, "perl-modules" + and "perl-doc"). +Original-Maintainer: Niko Tyni +Homepage: http://dev.perl.org/perl5/ + +Package: sysv-rc +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 221 +Maintainer: Ubuntu Core Developers +Architecture: all +Multi-Arch: foreign +Source: sysvinit +Version: 2.88dsf-41ubuntu6 +Replaces: file-rc +Depends: debconf (>= 0.5) | debconf-2.0, sysvinit-utils (>= 2.86.ds1-62), insserv (>> 1.12.0-10) +Recommends: lsb-base (>= 3.2-14) +Suggests: sysv-rc-conf, bum +Breaks: initscripts (<< 2.86.ds1-63) +Conflicts: file-rc +Description: System-V-like runlevel change mechanism + This package provides support for the System-V like system + for booting, changing runlevels, and shutting down, + configured through symbolic links in /etc/rc?.d/. +Homepage: http://savannah.nongnu.org/projects/sysvinit +Original-Maintainer: Debian sysvinit maintainers + +Package: libprocps3 +Status: install ok installed +Priority: important +Section: libs +Installed-Size: 129 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: procps +Version: 1:3.3.9-1ubuntu2 +Replaces: procps (<< 1:3.3.2-1) +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Description: library for accessing process information from /proc + The libprocps library is a way of accessing information out of the /proc + filesystem. + . + This package contains the shared libraries necessary to run programs + compilied with libprocps. +Homepage: http://gitorious.org/procps +Original-Maintainer: Craig Small + +Package: libjson-c2 +Status: install ok installed +Priority: extra +Section: libs +Installed-Size: 82 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: json-c +Version: 0.11-4ubuntu1 +Depends: libc6 (>= 2.8) +Pre-Depends: multiarch-support +Description: JSON manipulation library - shared library + This library allows you to easily construct JSON objects in C, + output them as JSON formatted strings and parse JSON formatted + strings back into the C representation of JSON objects. +Homepage: https://github.com/json-c/json-c/wiki +Original-Maintainer: fabien boucher + +Package: libdrm2 +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 105 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: libdrm +Version: 2.4.53-1 +Depends: libc6 (>= 2.17) +Pre-Depends: multiarch-support +Description: Userspace interface to kernel DRM services -- runtime + This library implements the userspace interface to the kernel DRM + services. DRM stands for "Direct Rendering Manager", which is the + kernelspace portion of the "Direct Rendering Infrastructure" (DRI). + The DRI is currently used on Linux to provide hardware-accelerated + OpenGL drivers. + . + This package provides the runtime environment for libdrm. +Original-Maintainer: Debian X Strike Force + +Package: libsepol1 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 322 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: libsepol +Version: 2.2-1 +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Description: SELinux library for manipulating binary security policies + Security-enhanced Linux is a patch of the Linux kernel and a number + of utilities with enhanced security functionality designed to add + mandatory access controls to Linux. The Security-enhanced Linux + kernel contains new architectural components originally developed to + improve the security of the Flask operating system. These + architectural components provide general support for the enforcement + of many kinds of mandatory access control policies, including those + based on the concepts of Type Enforcement®, Role-based Access + Control, and Multi-level Security. + . + libsepol provides an API for the manipulation of SELinux binary policies. + It is used by checkpolicy (the policy compiler) and similar tools, as well + as by programs like load_policy that need to perform specific transformations + on binary policies such as customizing policy boolean settings. +Original-Maintainer: Debian SELinux maintainers +Homepage: http://userspace.selinuxproject.org/ + +Package: libpam-modules +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 764 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: pam +Version: 1.1.8-1ubuntu2 +Replaces: libpam-umask, libpam0g-util +Provides: libpam-mkhomedir, libpam-motd, libpam-umask +Pre-Depends: libaudit1 (>= 1:2.2.1), libc6 (>= 2.15), libdb5.3, libpam0g (>= 1.1.3-2), libselinux1 (>= 2.1.9), debconf (>= 0.5) | debconf-2.0, libpam-modules-bin (= 1.1.8-1ubuntu2) +Conflicts: libpam-mkhomedir, libpam-motd, libpam-umask +Conffiles: + /etc/security/limits.conf 11c27ba00b7bd6a255f33126f75c5005 + /etc/security/group.conf f1e26e8db6f7abd2d697d7dad3422c36 + /etc/security/access.conf 13ec4d189f0ed9acf3433977a53d446b + /etc/security/pam_env.conf ddee4a931170dc21b4e0b9bb28e02a7b + /etc/security/namespace.init b46b23d64860d1557d2a8f44b231fd54 + /etc/security/time.conf 06e05c6079e839c8833ac7c3abfde192 + /etc/security/sepermit.conf d41c74654734a5c069a37bfc02f0a6d4 + /etc/security/namespace.conf 6424c99a62ddf4b7d3ca713bb06ded89 +Description: Pluggable Authentication Modules for PAM + This package completes the set of modules for PAM. It includes the + pam_unix.so module as well as some specialty modules. +Homepage: http://pam.sourceforge.net/ +Original-Maintainer: Steve Langasek + +Package: tzdata +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 1599 +Maintainer: Ubuntu Developers +Architecture: all +Multi-Arch: foreign +Version: 2014b-1 +Replaces: libc0.1, libc0.3, libc6, libc6.1 +Provides: tzdata-jessie +Depends: debconf (>= 0.5) | debconf-2.0 +Description: time zone and daylight-saving time data + This package contains data required for the implementation of + standard local time for many representative locations around the + globe. It is updated periodically to reflect changes made by + political bodies to time zone boundaries, UTC offsets, and + daylight-saving rules. +Original-Maintainer: GNU Libc Maintainers +Homepage: http://www.iana.org/time-zones + +Package: libudev1 +Status: install ok installed +Priority: important +Section: libs +Installed-Size: 129 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: systemd +Version: 204-10ubuntu1 +Depends: libc6 (>= 2.17), libcgmanager0, libdbus-1-3 (>= 1.0.2), libnih-dbus1 (>= 1.0.0), libnih1 (>= 1.0.0) +Pre-Depends: multiarch-support +Description: libudev shared library + This library provides access to udev device information. +Homepage: http://www.freedesktop.org/wiki/Software/systemd +Original-Maintainer: Debian systemd Maintainers + +Package: ifupdown +Status: install ok installed +Priority: important +Section: admin +Installed-Size: 229 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 0.7.48.1ubuntu1 +Replaces: netbase (<< 5.0) +Depends: iproute2 | iproute (>= 20071016-1), libc6 (>= 2.7), sysv-rc (>= 2.88dsf-24) | file-rc (>= 0.8.16), lsb-base (>= 4.1+Debian3), initscripts (>= 2.88dsf-25), adduser +Recommends: isc-dhcp-client | dhcp-client +Suggests: ppp, rdnssd, net-tools +Breaks: dhcp3-client (<< 4.0), netbase (<< 5.0) +Conffiles: + /etc/network/if-up.d/upstart dfbcde4fd4a3a2553930605e03e160ab + /etc/network/if-down.d/upstart 1a0205ddbc1446782a8d4d818e97d8a5 + /etc/init/network-interface-container.conf 4daa570594afc50940f140a7731d20d1 + /etc/init/networking.conf c50811e19bcd596d99b0467b40cfbb8b + /etc/init/network-interface.conf aae12345eba8e946579b06798b1752c1 + /etc/init/network-interface-security.conf feb6b4b52fe24c44ff1bc68addf245d6 + /etc/init.d/networking 2c8c3be8b90f99de7edf0f883ebe39f3 + /etc/default/networking 35cd4a2713981c9239ce4532c1bfc1c7 +Description: high level tools to configure network interfaces + This package provides the tools ifup and ifdown which may be used to + configure (or, respectively, deconfigure) network interfaces based on + interface definitions in the file /etc/network/interfaces. +Original-Maintainer: Andrew Shadura + +Package: libsemanage1 +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 261 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: libsemanage +Version: 2.2-1ubuntu1 +Depends: libsemanage-common (= 2.2-1ubuntu1), libaudit1 (>= 1:2.2.1), libbz2-1.0, libc6 (>= 2.8), libselinux1 (>= 2.1.12), libsepol1 (>= 2.1.4), libustr-1.0-1 (>= 1.0.4) +Pre-Depends: multiarch-support +Description: SELinux policy management library + This package provides the shared libraries for SELinux policy management. + It uses libsepol for binary policy manipulation and libselinux for + interacting with the SELinux system. It also exec's helper programs + for loading policy and for checking whether the file_contexts + configuration is valid (load_policy and setfiles from + policycoreutils) presently, although this may change at least for the + bootstrapping case + . + Security-enhanced Linux is a patch of the Linux kernel and a + number of utilities with enhanced security functionality designed to + add mandatory access controls to Linux. The Security-enhanced Linux + kernel contains new architectural components originally developed to + improve the security of the Flask operating system. These + architectural components provide general support for the enforcement + of many kinds of mandatory access control policies, including those + based on the concepts of Type Enforcement, Role-based Access + Control, and Multi-level Security. +Original-Maintainer: Debian SELinux maintainers +Homepage: http://userspace.selinuxproject.org/ + +Package: mountall +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 248 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 2.53 +Replaces: upstart (<< 0.6.3-2) +Depends: makedev, udev, plymouth, coreutils (>= 7.1), libc6 (>= 2.9), libdbus-1-3 (>= 1.2.16), libnih-dbus1 (>= 1.0.0), libnih1 (>= 1.0.0), libplymouth2 (>= 0.8.1-3), libudev1 (>= 183) +Pre-Depends: dpkg (>= 1.15.7.2) +Breaks: initscripts (<< 2.88dsf-24), policycoreutils (<< 2.0.69-2ubuntu4), usplash (<< 0.5.47) +Conffiles: + /etc/init/checkroot.sh.conf 3ea7f6ba450f431fd239e2b53a805216 + /etc/init/mounted-dev.conf cf7bea42235e77168c996d774f059c44 + /etc/init/mounted-tmp.conf 289fa57d726885147a41b2b1f3695a29 + /etc/init/mountdevsubfs.sh.conf dd33cb414bca17d97140d7f8671207f2 + /etc/init/mountall-net.conf feff70cd7006f6763e24263d381940f3 + /etc/init/mountall-shell.conf aa05af89db3de044d1cd7f6971b46d9f + /etc/init/mountall.sh.conf ee258840aad52477434cc22e34efcc50 + /etc/init/bootmisc.sh.conf d1a51c54dcfe6f3f5265246888ba4161 + /etc/init/mountnfs.sh.conf 760a5b57cbd0d1e2c65ba6db9297a586 + /etc/init/mounted-proc.conf 07198659bd06c1442a35882b2fae05fc + /etc/init/mountnfs-bootclean.sh.conf 0b6f3f9e9f8757efee57f6a4839d7dff + /etc/init/mountall.conf ac0fbaa98e705e52f59ca9e4d39751ad + /etc/init/mountall-bootclean.sh.conf d1899239aa60ea903f43a3ac58c5c238 + /etc/init/mtab.sh.conf 27aece82dbe70232d734d1dadfe87518 + /etc/init/mountkernfs.sh.conf 2e7449097b6cf88cba915edc1c339ec4 + /etc/init/mounted-var.conf 02f90856c91a46e9cbed1c35b92fec6c + /etc/init/mountall-reboot.conf 43e3c229085a13005b0681a49b2bef51 + /etc/init/checkroot-bootclean.sh.conf e02a473c76e4a2bfc1efb4c367495052 + /etc/init/checkfs.sh.conf 2e928476ccb2ecefe9ee87e2f83d34da + /etc/init/mounted-debugfs.conf 462c8aab0d9d4e6e496b1e2be5910edc + /etc/init/mounted-run.conf a26db58c801e0f6ec8738a5838aa53ed + /etc/dbus-1/system.d/Mountall.Server.conf 91b1414af1257d2ef089f84a3e5c1ed1 +Description: filesystem mounting tool + mountall mounts filesystems when the underlying block devices are + ready, or when network interfaces come up, checking the filesystems + first. +Original-Maintainer: Steve Langasek + +Package: kmod +Status: install ok installed +Priority: important +Section: admin +Installed-Size: 285 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 16-2ubuntu3 +Replaces: module-init-tools (<< 4) +Depends: libc6 (>= 2.17), libkmod2, sysv-rc (>= 2.88dsf-24) | file-rc (>= 0.8.16), lsb-base (>= 3.0-6) +Breaks: module-init-tools (<< 4) +Conffiles: + /etc/init/kmod.conf 2686532745c8b71d6d3df91c3a53aef3 + /etc/modprobe.d/blacklist-framebuffer.conf 097e2142ae3e4dd2911eda7844ce0c18 + /etc/modprobe.d/blacklist-rare-network.conf 8fb4b96124e461f53adceba9ca91f09a + /etc/modprobe.d/blacklist.conf bc6754fa320733c6d239a4bb0148ffd7 + /etc/modprobe.d/iwlwifi.conf f27bc645e93e20c8e532325d190ac8ee + /etc/modprobe.d/blacklist-ath_pci.conf d1da9bb08c2b0f56f3be93fd0e37946b + /etc/modprobe.d/mlx4.conf b2a0bedb7461daeb0138270639581bbf + /etc/modprobe.d/blacklist-firewire.conf 9cc07a17e8e64f9cd35ff59c29debe69 + /etc/modprobe.d/blacklist-watchdog.conf 55327f9270c8a6257a833c4d127a39e1 + /etc/init.d/kmod e6d43abead3714ceb8aca68dd77e1dad + /etc/depmod.d/ubuntu.conf 7c8439ef36b12e5f226b5dbfa20b8c2d +Description: tools for managing Linux kernel modules + This package contains a set of programs for loading, inserting, and + removing kernel modules for Linux. + It replaces module-init-tools. +Original-Maintainer: Marco d'Itri + +Package: libkmod2 +Status: install ok installed +Priority: important +Section: libs +Installed-Size: 138 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: kmod +Version: 16-2ubuntu3 +Depends: libc6 (>= 2.17) +Pre-Depends: multiarch-support +Description: libkmod shared library + This library provides an API for insertion, removal, configuration and + listing of kernel modules. +Original-Maintainer: Marco d'Itri + +Package: tar +Essential: yes +Status: install ok installed +Priority: required +Section: utils +Installed-Size: 760 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 1.27.1-2 +Replaces: cpio (<< 2.4.2-39) +Pre-Depends: libacl1 (>= 2.2.51-8), libc6 (>= 2.17), libselinux1 (>= 1.32) +Suggests: bzip2, ncompress, xz-utils, tar-scripts +Breaks: dpkg-dev (<< 1.14.26) +Conflicts: cpio (<= 2.4.2-38) +Conffiles: + /etc/rmt 3c58b7cd13da1085eff0acc6a00f43c7 +Description: GNU version of the tar archiving utility + Tar is a program for packaging a set of files as a single archive in tar + format. The function it performs is conceptually similar to cpio, and to + things like PKZIP in the DOS world. It is heavily used by the Debian package + management system, and is useful for performing system backups and exchanging + sets of files with others. +Original-Maintainer: Bdale Garbee + +Package: libmount1 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 249 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: util-linux +Version: 2.20.1-5.1ubuntu20 +Depends: libblkid1 (>= 2.17.2), libc6 (>= 2.8), libselinux1 (>= 1.32) +Pre-Depends: multiarch-support +Description: block device id library + The device mounting library, used by mount and mount helpers. +Homepage: http://userweb.kernel.org/~kzak/util-linux/ +Original-Maintainer: LaMont Jones + +Package: zlib1g +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 170 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: zlib +Version: 1:1.2.8.dfsg-1ubuntu1 +Provides: libz1 +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Breaks: libxml2 (<< 2.7.6.dfsg-2), texlive-binaries (<< 2009-12) +Conflicts: zlib1 (<= 1:1.0.4-7) +Description: compression library - runtime + zlib is a library implementing the deflate compression method found + in gzip and PKZIP. This package includes the shared library. +Homepage: http://zlib.net/ +Original-Maintainer: Mark Brown + +Package: adduser +Status: install ok installed +Priority: important +Section: admin +Installed-Size: 644 +Maintainer: Ubuntu Core Developers +Architecture: all +Multi-Arch: foreign +Version: 3.113+nmu3ubuntu3 +Replaces: manpages-it (<< 0.3.4-2), manpages-pl (<= 20051117-1) +Depends: perl-base (>= 5.6.0), passwd (>= 1:4.0.12), debconf | debconf-2.0 +Suggests: liblocale-gettext-perl, perl-modules, ecryptfs-utils (>= 67-1) +Conffiles: + /etc/deluser.conf 773fb95e98a27947de4a95abb3d3f2a2 +Description: add and remove users and groups + This package includes the 'adduser' and 'deluser' commands for creating + and removing users. + . + - 'adduser' creates new users and groups and adds existing users to + existing groups; + - 'deluser' removes users and groups and removes users from a given + group. + . + Adding users with 'adduser' is much easier than adding them manually. + Adduser will choose appropriate UID and GID values, create a home + directory, copy skeletal user configuration, and automate setting + initial values for the user's password, real name and so on. + . + Deluser can back up and remove users' home directories + and mail spool or all the files they own on the system. + . + A custom script can be executed after each of the commands. + . + Development mailing list: + http://lists.alioth.debian.org/mailman/listinfo/adduser-devel/ +Homepage: http://alioth.debian.org/projects/adduser/ +Original-Maintainer: Debian Adduser Developers + +Package: libgcc1 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 154 +Maintainer: Ubuntu Core developers +Architecture: i386 +Multi-Arch: same +Source: gcc-4.9 (4.9.0-1ubuntu3) +Version: 1:4.9.0-1ubuntu3 +Depends: gcc-4.9-base (= 4.9.0-1ubuntu3), libc6 (>= 2.2.4) +Pre-Depends: multiarch-support +Breaks: gcc-4.3 (<< 4.3.6-1), gcc-4.4 (<< 4.4.6-4), gcc-4.5 (<< 4.5.3-2) +Description: GCC support library + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +Homepage: http://gcc.gnu.org/ +Original-Maintainer: Debian GCC Maintainers + +Package: libdebconfclient0 +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 85 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: cdebconf +Version: 0.190ubuntu1 +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Description: Debian Configuration Management System (C-implementation library) + Debconf is a configuration management system for Debian packages. It is + used by some packages to prompt you for information before they are + installed. This is a reimplementation of the original debconf version + in C. + . + This is the libraries needed by libdebconfclient-dev and cdebconf. +Original-Maintainer: Debian Install System Team + +Package: libklibc +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 133 +Maintainer: Ubuntu Developers +Architecture: i386 +Source: klibc +Version: 2.0.3-0ubuntu1 +Description: minimal libc subset for use with initramfs + klibc is intended to be a minimalistic libc subset for use with + initramfs. It is deliberately written for small size, minimal + entanglement, and portability, not speed. It is definitely a work in + progress, and a lot of things are still missing. +Homepage: http://git.kernel.org/?p=libs/klibc/klibc.git;a=summary +Original-Maintainer: maximilian attems + +Package: libcgmanager0 +Status: install ok installed +Priority: optional +Section: admin +Installed-Size: 152 +Maintainer: Serge Hallyn +Architecture: i386 +Multi-Arch: same +Source: cgmanager +Version: 0.25-0ubuntu4 +Depends: libc6 (>= 2.1.3), libdbus-1-3 (>= 1.0.2) +Description: Central cgroup manager daemon (client library) + cgmanager provides a central cgroup manager daemon and a + per-namespace manager proxy, allowing users and programs + to administrate cgroups through D-Bus requests. + . + This package contains the shared library. +Homepage: http://cgmanager.linuxcontainers.org/ + +Package: mount +Essential: yes +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 410 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Source: util-linux +Version: 2.20.1-5.1ubuntu20 +Pre-Depends: libblkid1 (>= 2.20.1), libc6 (>= 2.8), libmount1 (>= 2.20.1), libselinux1 (>= 2.0.15) +Suggests: nfs-common (>= 1:1.1.0-13) +Description: Tools for mounting and manipulating filesystems + This package provides the mount(8), umount(8), swapon(8), + swapoff(8), and losetup(8) commands. +Homepage: http://userweb.kernel.org/~kzak/util-linux/ +Original-Maintainer: LaMont Jones + +Package: libncurses5 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 292 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: ncurses +Version: 5.9+20140118-1ubuntu1 +Depends: libtinfo5 (= 5.9+20140118-1ubuntu1), libc6 (>= 2.15) +Pre-Depends: multiarch-support, libtinfo5 (>= 5.9-3) +Recommends: libgpm2 +Description: shared libraries for terminal handling + The ncurses library routines are a terminal-independent method of + updating character screens with reasonable optimization. + . + This package contains the shared libraries necessary to run programs + compiled with ncurses. +Homepage: http://invisible-island.net/ncurses/ +Original-Maintainer: Craig Small + +Package: libplymouth2 +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 298 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: plymouth +Version: 0.8.8-0ubuntu17 +Replaces: plymouth (<< 0.7.0+git20090207-0ubuntu0.1~ppa4) +Depends: libc6 (>= 2.8), libpng12-0 (>= 1.2.13-4) +Pre-Depends: multiarch-support +Breaks: casper (= 1.227), mountall (<< 2.8) +Description: graphical boot animation and logger - shared libraries + Plymouth is an application that runs very early in the boot process + (even before the root filesystem is mounted!) that provides a graphical + boot animation while the boot process happens in the background. + . + This package contains the shared libraries. + +Package: gcc-4.9-base +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 213 +Maintainer: Ubuntu Core developers +Architecture: i386 +Multi-Arch: same +Source: gcc-4.9 +Version: 4.9.0-1ubuntu3 +Breaks: dehydra (<= 0.9.hg20110609-2), gcc-4.4-base (<< 4.4.7), gcj-4.4-base (<< 4.4.6-9~), gcj-4.6-base (<< 4.6.1-4~), gnat-4.4-base (<< 4.4.6-3~), gnat-4.6 (<< 4.6.1-5~) +Description: GCC, the GNU Compiler Collection (base package) + This package contains files common to all languages and libraries + contained in the GNU Compiler Collection (GCC). +Homepage: http://gcc.gnu.org/ +Original-Maintainer: Debian GCC Maintainers + +Package: initramfs-tools-bin +Status: install ok installed +Priority: optional +Section: utils +Installed-Size: 119 +Maintainer: Ubuntu Kernel Team +Architecture: i386 +Source: initramfs-tools +Version: 0.103ubuntu4 +Depends: libc6 (>= 2.4), libudev1 (>= 183) +Description: binaries used by initramfs-tools + This package contains binaries used inside the initramfs images generated + by initramfs-tools. +Original-Maintainer: Debian kernel team + +Package: libattr1 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 55 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: attr +Version: 1:2.4.47-1ubuntu1 +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Conflicts: attr (<< 2.0.0) +Description: Extended attribute shared library + Contains the runtime environment required by programs that make use + of extended attributes. +Homepage: http://savannah.nongnu.org/projects/attr/ +Original-Maintainer: Anibal Monsalve Salazar + +Package: klibc-utils +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 392 +Maintainer: Ubuntu Developers +Architecture: i386 +Source: klibc +Version: 2.0.3-0ubuntu1 +Depends: libklibc (= 2.0.3-0ubuntu1) +Breaks: initramfs-tools (<< 0.103) +Description: small utilities built with klibc for early boot + This package contains a collection of programs that are linked + against klibc. These duplicate some of the functionality of a + regular Linux toolset, but are typically much smaller than their + full-function counterparts. They are intended for inclusion in + initramfs images and embedded systems. +Homepage: http://git.kernel.org/?p=libs/klibc/klibc.git;a=summary +Original-Maintainer: maximilian attems + +Package: e2fslibs +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 418 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: e2fsprogs +Version: 1.42.9-3ubuntu1 +Replaces: e2fsprogs (<< 1.34-1) +Provides: libe2p2, libext2fs2 +Depends: libc6 (>= 2.17) +Pre-Depends: multiarch-support +Description: ext2/ext3/ext4 file system libraries + The ext2, ext3 and ext4 file systems are successors of the original ext + ("extended") file system. They are the main file system types used for + hard disks on Debian and other Linux systems. + . + This package provides the ext2fs and e2p libraries, for userspace software + that directly accesses extended file systems. Programs that use libext2fs + include e2fsck, mke2fs, and tune2fs. Programs that use libe2p include + dumpe2fs, chattr, and lsattr. +Homepage: http://e2fsprogs.sourceforge.net +Original-Maintainer: Theodore Y. Ts'o + +Package: base-passwd +Essential: yes +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 247 +Maintainer: Colin Watson +Architecture: i386 +Multi-Arch: foreign +Version: 3.5.33 +Replaces: base +Depends: libc6 (>= 2.8), libdebconfclient0 (>= 0.145) +Recommends: debconf (>= 0.5) | debconf-2.0 +Description: Debian base system master password and group files + These are the canonical master copies of the user database files + (/etc/passwd and /etc/group), containing the Debian-allocated user and + group IDs. The update-passwd tool is provided to keep the system databases + synchronized with these master files. + +Package: libcomerr2 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 102 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: e2fsprogs +Version: 1.42.9-3ubuntu1 +Replaces: e2fsprogs (<< 1.34-1) +Provides: libcomerr-kth-compat +Depends: libc6 (>= 2.17) +Pre-Depends: multiarch-support +Description: common error description library + libcomerr is an attempt to present a common error-handling mechanism to + manipulate the most common form of error code in a fashion that does not + have the problems identified with mechanisms commonly in use. +Homepage: http://e2fsprogs.sourceforge.net +Original-Maintainer: Theodore Y. Ts'o + +Package: plymouth +Status: install ok installed +Priority: optional +Section: x11 +Installed-Size: 441 +Maintainer: Ubuntu Developers +Architecture: i386 +Version: 0.8.8-0ubuntu17 +Depends: initramfs-tools, libplymouth2 (= 0.8.8-0ubuntu17), mountall (>= 2.0), upstart (>= 1.11-0ubuntu3), udev (>= 166-0ubuntu4), sysv-rc (>= 2.88dsf-24) | file-rc (>= 0.8.16), libc6 (>= 2.8), libdbus-1-3 (>= 1.1.1), libdrm2 (>= 2.4.25), libtinfo5 +Recommends: plymouth-theme-ubuntu-text | plymouth-theme +Breaks: gdm (<< 3.0.4-0ubuntu11), kdm (<< 4:4.7.1-0ubuntu3), lightdm (<< 0.9.7-0ubuntu2), lubuntu-plymouth-theme (<= 0.4), lxdm (<< 0.4.1-0ubuntu2), ubuntustudio-plymouth-theme (<= 0.38), xubuntu-plymouth-theme (<< 10.04.4) +Conflicts: usplash +Conffiles: + /etc/init/plymouth-ready.conf f8542ccc586a5b63f5b76f68ac4f2f59 + /etc/init/plymouth-shutdown.conf febc1a3763f8e15add963ede4e561a26 + /etc/init/plymouth-stop.conf 03c8ba8289470d71e22fdbfa5859e122 + /etc/init/plymouth.conf 859e01281230eb9a522c99875f4b8b69 + /etc/init/plymouth-log.conf 65d2943a69f455dec3fed43fd7996d76 + /etc/init/plymouth-splash.conf 63b63b446cc981dc4f2fa5772b4b3e93 + /etc/init/plymouth-upstart-bridge.conf dd271be2c476aadd0cd34bc77d95a379 +Description: graphical boot animation and logger - main package + Plymouth is an application that runs very early in the boot process + (even before the root filesystem is mounted!) that provides a graphical + boot animation while the boot process happens in the background. + +Package: upstart +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 1621 +Maintainer: James Hunt +Architecture: i386 +Multi-Arch: foreign +Version: 1.12.1-0ubuntu4 +Replaces: startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job +Provides: startup-tasks, system-services, upstart-compat-sysv, upstart-job +Depends: libc6 (>= 2.15), libdbus-1-3 (>= 1.2.16), libjson-c2 (>= 0.10), libnih-dbus1 (>= 1.0.0), libnih1 (>= 1.0.0), libselinux1 (>= 1.32), libudev1 (>= 183), sysvinit-utils, initscripts, mountall, ifupdown (>= 0.6.10ubuntu5), libjson0 (>= 0.10-1.1ubuntu1), debianutils (>= 4) +Suggests: python3, graphviz, bash-completion, upstart-monitor +Breaks: friendly-recovery (<< 0.2.13), libc6 (<< 2.12.1-0ubuntu12) +Conflicts: lxcguest, startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job +Conffiles: + /etc/logrotate.d/upstart 070767086a27883ec119e1dde779a856 + /etc/cron.daily/upstart 761747ebd3d1677620d5af50c9900b13 + /etc/dbus-1/system.d/Upstart.conf 64be74cddb0c74b7d98202b40389784c + /etc/bash_completion.d/upstart 080f7eee4a3f3e5f76197eaa581fb4da + /etc/X11/Xsession.d/99upstart d150fce36cf22f5504e4dbc89b4826e0 + /etc/X11/Xsession.d/00upstart 46b4576b1f2ceffb2450a88d58786b95 + /etc/init/tty5.conf 6d5794f72a1098b008e53e326a6bb5a0 + /etc/init/rc-sysinit.conf a50c045d9390a6e6c43c18b19cd72fe5 + /etc/init/rcS.conf 8533688686f75d7bcf20da5a0d36d94b + /etc/init/flush-early-job-log.conf 09e959647877c39f6490ad29b8a35a28 + /etc/init/wait-for-state.conf 20b85b55c3f1e040fdbbf669afe4d2a1 + /etc/init/shutdown.conf 559659602cefe7e8d3c1e76820f5ae5d + /etc/init/upstart-udev-bridge.conf 2c24bb70877476b5e7016ccf6de745a4 + /etc/init/tty2.conf 0d9326fdda081ac96d92bbc57ff773e4 + /etc/init/failsafe.conf 0b88eeccf6c8fd456e886aa7a76e3291 + /etc/init/rc.conf 3ebc6ddcd00482cfb24ce09a14ded29f + /etc/init/upstart-file-bridge.conf 57ea7ed6cba1f1259ac87410c59237ca + /etc/init/console.conf 8d79b0205f2daffb473604ce53e1dc83 + /etc/init/tty1.conf f42f2298f711147ecf177054294861a7 + /etc/init/control-alt-delete.conf 16e6603524084b63b0f0ca04eb56757e + /etc/init/upstart-socket-bridge.conf 5f3eaca09ee1f03d5d0686ea99f8c051 + /etc/init/tty4.conf 2c78cd865d848bb2674104905151dbe2 + /etc/init/tty3.conf 6608f08adf00a282358a1eeb9bdcf78e + /etc/init/tty6.conf e8ad2f0411614f9c8dc9c4e364763549 + /etc/init/container-detect.conf 6bae6257355ad7322e7263e567817465 + /etc/upstart-xsessions ec9aa92a5c50938479d711daa9ee774a +Description: event-based init daemon + upstart is a replacement for the /sbin/init daemon which handles + starting of tasks and services during boot, stopping them during + shutdown and supervising them while the system is running. +Homepage: http://upstart.ubuntu.com/ +Orig-Maintainer: Steve Langasek + +Package: passwd +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 2250 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Source: shadow +Version: 1:4.1.5.1-1ubuntu9 +Replaces: manpages-tr (<< 1.0.5), manpages-zh (<< 1.5.1-1) +Depends: libc6 (>= 2.8), libpam0g (>= 0.99.7.1), libselinux1 (>= 1.32), libsemanage1 (>= 2.0.3), libpam-modules, debianutils (>= 2.15.2) +Conffiles: + /etc/default/useradd cc9f9a7713ab62a32cd38363d958f396 + /etc/init/passwd.conf ea81baf06e4c358225ce22b786ad9e6a + /etc/cron.daily/passwd db990990933b6f56322725223f13c2bc + /etc/pam.d/chpasswd 9900720564cb4ee98b7da29e2d183cb2 + /etc/pam.d/newusers 1454e29bfa9f2a10836563e76936cea5 + /etc/pam.d/chfn 4d466e00a348ba426130664d795e8afa + /etc/pam.d/passwd eaf2ad85b5ccd06cceb19a3e75f40c63 + /etc/pam.d/chsh a6e9b589e90009334ffd030d819290a6 +Description: change and administer password and group data + This package includes passwd, chsh, chfn, and many other programs to + maintain password and group data. + . + Shadow passwords are supported. See /usr/share/doc/passwd/README.Debian +Homepage: http://pkg-shadow.alioth.debian.org/ +Original-Maintainer: Shadow package maintainers + +Package: libacl1 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 75 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: acl +Version: 2.2.52-1 +Depends: libattr1 (>= 1:2.4.46-8), libc6 (>= 2.4) +Pre-Depends: multiarch-support +Conflicts: acl (<< 2.0.0), libacl1-kerberos4kth +Description: Access control list shared library + This package contains the libacl.so dynamic library containing + the POSIX 1003.1e draft standard 17 functions for manipulating + access control lists. +Original-Maintainer: Anibal Monsalve Salazar +Homepage: http://savannah.nongnu.org/projects/acl/ + +Package: libslang2 +Status: install ok installed +Priority: important +Section: libs +Installed-Size: 1244 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: slang2 +Version: 2.2.4-16ubuntu1 +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Recommends: libpng12-0 +Description: S-Lang programming library - runtime version + S-Lang is a C programmer's library that includes routines for the rapid + development of sophisticated, user friendly, multi-platform applications. + . + This package contains only the shared library libslang.so.* and copyright + information. It is only necessary for programs that use this library (such + as jed and slrn). If you plan on doing development with S-Lang, you will + need the companion -dev package as well. +Homepage: http://www.jedsoft.org/slang/ +Original-Maintainer: Alastair McKinstry + +Package: initscripts +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 219 +Maintainer: Ubuntu Core Developers +Architecture: i386 +Multi-Arch: foreign +Source: sysvinit +Version: 2.88dsf-41ubuntu6 +Replaces: libc0.1, libc0.3, libc6, libc6.1 +Depends: libc6 (>= 2.4), mount (>= 2.11x-1), debianutils (>= 4), lsb-base (>= 3.2-14), sysvinit-utils (>= 2.86.ds1-64), sysv-rc | file-rc, coreutils (>= 5.93), passwd, upstart, mountall (>= 2.28) +Recommends: psmisc, e2fsprogs +Breaks: aide (<< 0.15.1-5), atm-tools (<< 1:2.5.1-1.3), bootchart (<< 0.10~svn407-3.3), console-common (<< 0.7.86), cruft (<< 0.9.16), eepc-acpi-scripts (<< 1.1.12), fcheck (<< 2.7.59-16), hostapd (<< 1:0.7.3-3), hostname (<< 2.95ubuntu1~boot2), ifupdown (<< 0.6.8ubuntu27), libpam-mount (<< 2.13-1), ltsp-client-core (<< 5.2.16-1), mdadm (<< 3.2.2-1), nbd-client (<< 1:2.9.23-1), nfs-common (<< 1:1.2.5-3), portmap (<< 6.0.0-2), readahead-fedora (<< 2:1.5.6-3), resolvconf (<< 1.49), rpcbind (<< 0.2.0-7), rsyslog (<< 5.8.2-2), selinux-policy-default (<= 2:0.2.20100524-9), splashy (<< 0.3.13-5.1+b1), sysklogd (<< 1.5-6.2), udev (<< 146-2~boot6), upstart (<< 0.6.3-2~boot4), wpasupplicant (<< 0.7.3-4), xymon (<< 4.3.0~beta2.dfsg-9) +Conflicts: libdevmapper1.02.1 (<< 2:1.02.24-1) +Conffiles: + /etc/init.d/halt 6ae1b3b1b8198567a5e32116077f12a2 + /etc/init.d/killprocs 5e404d35091fab6c4889302736ed4602 + /etc/init.d/ondemand 63d57b1f5df759ddea8ef193094c118a + /etc/init.d/rc.local 18cd07959adfa8411ca17fe7c2ec3d96 + /etc/init.d/reboot 1b9db1ef7bfd79b128ef85d5065721a6 + /etc/init.d/sendsigs 8376da0c226dcc989f6829230b1d5b50 + /etc/init.d/single dc13cb373c5c098a8fb95424701373e3 + /etc/init.d/umountfs 07e4c8c8d9136f36745feb4776edc6f4 + /etc/init.d/umountnfs.sh b369d5215733f79ee2bf58cc966c5931 + /etc/init.d/umountroot 677b1eb8358469b50044663bfbee5699 + /etc/init.d/urandom e6454386bfce38efb5987dd06cb3b21d + /etc/default/devpts fc857c5ac5fb84d80720ed4d1c624f6e + /etc/default/halt 18d9844cf8ca8608e2a559a4555e593a + /etc/default/rcS db3696fc6caa33a1d72b33fa3cec7c42 +Description: scripts for initializing and shutting down the system + The scripts in this package initialize a standard Debian + system at boot time and shut it down at halt or reboot time. +Homepage: http://savannah.nongnu.org/projects/sysvinit +Original-Maintainer: Debian sysvinit maintainers + +Package: libblkid1 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 254 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: util-linux +Version: 2.20.1-5.1ubuntu20 +Depends: libc6 (>= 2.7), libuuid1 (>= 2.16) +Pre-Depends: multiarch-support +Conffiles: + /etc/blkid.conf 7f4c49e01e0a23d2f4b20eeb32e95abb +Description: block device id library + The blkid library which allows system programs like fsck and + mount to quickly and easily find block devices by filesystem UUID and + LABEL. This allows system administrators to avoid specifying + filesystems by hard-coded device names, but via a logical naming + system instead. +Homepage: http://userweb.kernel.org/~kzak/util-linux/ +Original-Maintainer: LaMont Jones + +Package: libss2 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 110 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: e2fsprogs +Version: 1.42.9-3ubuntu1 +Replaces: e2fsprogs (<< 1.34-1) +Depends: libcomerr2, libc6 (>= 2.17) +Pre-Depends: multiarch-support +Description: command-line interface parsing library + libss provides a simple command-line interface parser which will + accept input from the user, parse the command into an argv argument + vector, and then dispatch it to a handler function. + . + It was originally inspired by the Multics SubSystem library. +Homepage: http://e2fsprogs.sourceforge.net +Original-Maintainer: Theodore Y. Ts'o + +Package: libsemanage-common +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 56 +Maintainer: Ubuntu Developers +Architecture: all +Multi-Arch: foreign +Source: libsemanage +Version: 2.2-1ubuntu1 +Replaces: libsemanage1 (<= 2.0.41-1), libsemanage1-dev (<< 2.1.6-3~) +Breaks: libsemanage1 (<= 2.0.41-1), libsemanage1-dev (<< 2.1.6-3~) +Conffiles: + /etc/selinux/semanage.conf e69d42a4d98a93c3b8e201bdda367c55 +Description: Common files for SELinux policy management libraries + This package provides the common files used by the shared libraries + for SELinux policy management. + . + Security-enhanced Linux is a patch of the Linux kernel and a + number of utilities with enhanced security functionality designed to + add mandatory access controls to Linux. The Security-enhanced Linux + kernel contains new architectural components originally developed to + improve the security of the Flask operating system. These + architectural components provide general support for the enforcement + of many kinds of mandatory access control policies, including those + based on the concepts of Type Enforcement, Role-based Access + Control, and Multi-level Security. +Original-Maintainer: Debian SELinux maintainers +Homepage: http://userspace.selinuxproject.org/ + +Package: libpam-modules-bin +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 212 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Source: pam +Version: 1.1.8-1ubuntu2 +Replaces: libpam-modules (<< 1.1.3-8) +Depends: libaudit1 (>= 1:2.2.1), libc6 (>= 2.4), libpam0g (>= 0.99.7.1), libselinux1 (>= 1.32) +Description: Pluggable Authentication Modules for PAM - helper binaries + This package contains helper binaries used by the standard set of PAM + modules in the libpam-modules package. +Homepage: http://pam.sourceforge.net/ +Original-Maintainer: Steve Langasek + +Package: findutils +Essential: yes +Status: install ok installed +Priority: required +Section: utils +Installed-Size: 668 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 4.4.2-8 +Pre-Depends: libc6 (>= 2.17) +Suggests: mlocate | locate +Description: utilities for finding files--find, xargs + GNU findutils provides utilities to find files meeting specified + criteria and perform various actions on the files which are found. + This package contains 'find' and 'xargs'; however, 'locate' has + been split off into a separate package. +Original-Maintainer: Andreas Metzler +Homepage: http://savannah.gnu.org/projects/findutils/ + +Package: e2fsprogs +Essential: yes +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 2424 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 1.42.9-3ubuntu1 +Replaces: hurd (<= 20040301-1), libblkid1 (<< 1.38+1.39-WIP-2005.12.10-2), libuuid1 (<< 1.38+1.39-WIP-2005.12.10-2) +Pre-Depends: e2fslibs (= 1.42.9-3ubuntu1), libblkid1 (>= 2.17.2), libc6 (>= 2.11), libcomerr2 (>= 1.42~WIP-2011-10-05-1), libss2 (>= 1.34-1), libuuid1 (>= 2.16), util-linux (>= 2.15~rc1-1) +Suggests: gpart, parted, e2fsck-static +Conflicts: dump (<< 0.4b4-4), initscripts (<< 2.85-4), quota (<< 1.55-8.1), sysvinit (<< 2.85-4) +Conffiles: + /etc/mke2fs.conf e2cdbf0620e93949af5857eb4739f949 +Description: ext2/ext3/ext4 file system utilities + The ext2, ext3 and ext4 file systems are successors of the original ext + ("extended") file system. They are the main file system types used for + hard disks on Debian and other Linux systems. + . + This package contains programs for creating, checking, and maintaining + ext2/3/4-based file systems. It also includes the "badbocks" program, + which can be used to scan for bad blocks on a disk or other storage device. +Homepage: http://e2fsprogs.sourceforge.net +Original-Maintainer: Theodore Y. Ts'o + +Package: liblzma5 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 316 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: xz-utils +Version: 5.1.1alpha+20120614-2ubuntu2 +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Description: XZ-format compression library + XZ is the successor to the Lempel-Ziv/Markov-chain Algorithm + compression format, which provides memory-hungry but powerful + compression (often better than bzip2) and fast, easy decompression. + . + The native format of liblzma is XZ; it also supports raw (headerless) + streams and the older LZMA format used by lzma. (For 7-Zip's related + format, use the p7zip package instead.) +Homepage: http://tukaani.org/xz/ +Original-Maintainer: Jonathan Nieder + +Package: libnih1 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 147 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: libnih +Version: 1.0.3-4ubuntu25 +Pre-Depends: multiarch-support, libc6 (>= 2.15~) +Description: NIH Utility Library + libnih is a light-weight "standard library" of C functions to ease the + development of other libraries and applications, especially those + normally found in /lib. + . + This package contains the shared library. +Homepage: https://launchpad.net/libnih +Original-Maintainer: Scott James Remnant + +Package: libaudit1 +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 143 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: audit +Version: 1:2.3.2-2ubuntu1 +Depends: libaudit-common (= 1:2.3.2-2ubuntu1), libc6 (>= 2.8) +Pre-Depends: multiarch-support +Description: Dynamic library for security auditing + The audit-libs package contains the dynamic libraries needed for + applications to use the audit framework. It is used to monitor systems for + security related events. +Homepage: http://people.redhat.com/sgrubb/audit/ +Original-Maintainer: Debian QA Group + +Package: libdb5.3 +Status: install ok installed +Priority: standard +Section: libs +Installed-Size: 1788 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: db5.3 +Version: 5.3.28-3ubuntu3 +Depends: libc6 (>= 2.17) +Pre-Depends: multiarch-support +Description: Berkeley v5.3 Database Libraries [runtime] + This is the runtime package for programs that use the v5.3 Berkeley + database library. +Homepage: http://www.oracle.com/technology/software/products/berkeley-db/index.html +Original-Maintainer: Debian Berkeley DB Group + +Package: insserv +Status: install ok installed +Priority: optional +Section: misc +Installed-Size: 182 +Maintainer: Ubuntu Developers +Architecture: i386 +Version: 1.14.0-5ubuntu2 +Depends: libc6 (>= 2.7) +Suggests: bootchart2 +Breaks: sysv-rc (<< 2.87dsf-3) +Conffiles: + /etc/insserv.conf 3e9467113029a6356f57842085f3c849 + /etc/bash_completion.d/insserv 32975fe14795d6fce1408d5fd22747fd +Description: boot sequence organizer using LSB init.d script dependency information + The insserv program is used by the standard SysV-based init system. It + updates the order of symlinks in /etc/rc?.d/ based on dependencies + specified by LSB headers in the init.d scripts themselves. + . + These declared relations between scripts make it possible to optimize + the boot sequence for the currently installed set of packages, while + detecting and rejecting dependency loops. + . + Using insserv incorrectly can result in an unbootable system. +Homepage: http://savannah.nongnu.org/projects/sysvinit +Original-Maintainer: Petter Reinholdtsen + +Package: dpkg +Essential: yes +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 6327 +Origin: debian +Maintainer: Ubuntu Developers +Bugs: debbugs://bugs.debian.org +Architecture: i386 +Multi-Arch: foreign +Version: 1.17.9ubuntu1 +Replaces: manpages-it (<< 2.80-4) +Pre-Depends: libbz2-1.0, libc6 (>= 2.11), liblzma5 (>= 5.1.1alpha+20120614), libselinux1 (>= 2.1.0), zlib1g (>= 1:1.1.4), tar (>= 1.23) +Suggests: apt +Breaks: apt (<< 0.7.7), aptitude (<< 0.4.7-1), dpkg-dev (<< 1.15.8), libdpkg-perl (<< 1.15.8) +Conflicts: ada-reference-manual (<< 20021112web-4), asn1-mode (<< 2.7-7), bogosort (<< 0.4.2-3), cl-yacc (<< 0.3-3), cpp-4.1-doc (<< 4.1.2.nf2-4), cpp-4.2-doc (<< 4.2.4.nf1-4), gcc-4.1-doc (<< 4.1.2.nf2-4), gcc-4.2-doc (<< 4.2.4.nf1-4), gcj-4.1-doc (<< 4.1.2.nf2-4), gcj-4.2-doc (<< 4.2.4.nf1-4), gfortran-4.1-doc (<< 4.1.2.nf2-4), gfortran-4.2-doc (<< 4.2.4.nf1-4), ggz-docs (<< 0.0.14.1-2), glame (<< 2.0.1-6), gnat-4.1-doc (<< 4.1.2.nf2-4), gnat-4.2-doc (<< 4.2.4.nf1-4), gtalk (<< 0.99.10-16), libalogg-dev (<< 1.3.7-2), libgtk1.2-doc (<< 1.2.10-19), libnettle-dev (<< 2), liborbit-dev (<< 0.5.17-12), libreadline5-dev (<< 5.2-8), librep-doc (<< 0.90), mmucl (<< 1.5.2-3), nxml-mode (<< 20041004-9), r6rs-doc (<< 1.0-2), serveez-doc (<< 0.1.5-3), slat (<< 2.0-6), texlive-base-bin-doc (<< 2007.dfsg.2-9), ttcn-el (<< 0.6.9-2), ulog-acctd (<< 0.4.3-3), xconq-doc (<< 7.4.1-5), zenirc (<< 2.112.dfsg-1) +Conffiles: + /etc/alternatives/README 69c4ba7f08363e998e0f2e244a04f881 + /etc/logrotate.d/dpkg 782ea5ae536f67ff51dc8c3e2eeb4cf9 + /etc/dpkg/dpkg.cfg f4413ffb515f8f753624ae3bb365b81b + /etc/cron.daily/dpkg 2712ab0dc801324ea632a0f1f82cd38c +Description: Debian package management system + This package provides the low-level infrastructure for handling the + installation and removal of Debian software packages. + . + For Debian package development tools, install dpkg-dev. +Homepage: https://wiki.debian.org/Teams/Dpkg +Original-Maintainer: Dpkg Developers + +Package: libpcre3 +Status: install ok installed +Priority: important +Section: libs +Installed-Size: 595 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: pcre3 +Version: 1:8.31-5ubuntu1 +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Breaks: approx (<< 4.4-1~), cduce (<< 0.5.3-2~), cmigrep (<< 1.5-7~), galax (<< 1.1-7~), libpcre-ocaml (<< 6.0.1~), liquidsoap (<< 0.9.2-3~), ocsigen (<< 1.3.3-1~) +Conflicts: libpcre3-dev (<= 4.3-3) +Description: Perl 5 Compatible Regular Expression Library - runtime files + This is a library of functions to support regular expressions whose syntax + and semantics are as close as possible to those of the Perl 5 language. + . + This package contains the runtime libraries. +Original-Maintainer: Mark Baker + +Package: libncursesw5 +Status: install ok installed +Priority: important +Section: libs +Installed-Size: 378 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: ncurses +Version: 5.9+20140118-1ubuntu1 +Depends: libtinfo5 (= 5.9+20140118-1ubuntu1), libc6 (>= 2.15) +Pre-Depends: multiarch-support +Recommends: libgpm2 +Description: shared libraries for terminal handling (wide character support) + The ncurses library routines are a terminal-independent method of + updating character screens with reasonable optimization. + . + This package contains the shared libraries necessary to run programs + compiled with ncursesw, which includes support for wide characters. +Homepage: http://invisible-island.net/ncurses/ +Original-Maintainer: Craig Small + +Package: busybox-initramfs +Status: install ok installed +Priority: optional +Section: shells +Installed-Size: 357 +Maintainer: Ubuntu Developers +Architecture: i386 +Source: busybox +Version: 1:1.22.0-5ubuntu1 +Depends: libc6 (>= 2.11) +Description: Standalone shell setup for initramfs + BusyBox combines tiny versions of many common UNIX utilities into a single + small executable. It provides minimalist replacements for the most common + utilities you would usually find on your desktop system (i.e., ls, cp, mv, + mount, tar, etc.). The utilities in BusyBox generally have fewer options than + their full-featured GNU cousins; however, the options that are included + provide the expected functionality and behave very much like their GNU + counterparts. + . + busybox-initramfs provides a simple stand alone shell that provides + only the basic utilities needed for the initramfs. +Homepage: http://www.busybox.net +Original-Maintainer: Debian Install System Team + +Package: libbz2-1.0 +Status: install ok installed +Priority: important +Section: libs +Installed-Size: 116 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: bzip2 +Version: 1.0.6-5 +Depends: libc6 (>= 2.4) +Pre-Depends: multiarch-support +Description: high-quality block-sorting file compressor library - runtime + This package contains libbzip2 which is used by the bzip2 compressor. + . + bzip2 is a freely available, patent free, high-quality data compressor. + It typically compresses files to within 10% to 15% of the best available + techniques, whilst being around twice as fast at compression and six + times faster at decompression. + . + bzip2 compresses files using the Burrows-Wheeler block-sorting text + compression algorithm, and Huffman coding. Compression is generally + considerably better than that achieved by more conventional + LZ77/LZ78-based compressors, and approaches the performance of the PPM + family of statistical compressors. + . + The archive file format of bzip2 (.bz2) is incompatible with that of its + predecessor, bzip (.bz). +Original-Maintainer: Anibal Monsalve Salazar +Homepage: http://www.bzip.org/ + +Package: libtinfo5 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 433 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: ncurses +Version: 5.9+20140118-1ubuntu1 +Replaces: libncurses5 (<< 5.9-3) +Depends: libc6 (>= 2.15) +Pre-Depends: multiarch-support +Breaks: dialog (<< 1.2-20130523) +Description: shared low-level terminfo library for terminal handling + The ncurses library routines are a terminal-independent method of + updating character screens with reasonable optimization. + . + This package contains the shared low-level terminfo library. +Homepage: http://invisible-island.net/ncurses/ +Original-Maintainer: Craig Small + +Package: sysvinit-utils +Status: install ok installed +Priority: required +Section: admin +Installed-Size: 232 +Maintainer: Ubuntu Core Developers +Architecture: i386 +Multi-Arch: foreign +Source: sysvinit +Version: 2.88dsf-41ubuntu6 +Replaces: last, sysvinit (<= 2.86.ds1-65) +Depends: libc6 (>= 2.15), libselinux1 (>= 1.32), sysv-rc (>= 2.88dsf-24) | file-rc (>= 0.8.16) +Recommends: upstart (>= 0.6.3-4) +Suggests: bootlogd, sash +Breaks: upstart (<< 1.5-0ubuntu5) +Conflicts: chkconfig (<< 11.0-79.1-2), last, sysvconfig +Conffiles: + /etc/init/startpar-bridge.conf d220afa75514468471c42469967341d2 +Description: System-V-like utilities + This package contains the important System-V-like utilities. + . + Specifically, this package includes: + killall5, last, lastb, mesg, pidof, service, sulogin +Homepage: http://savannah.nongnu.org/projects/sysvinit +Original-Maintainer: Debian sysvinit maintainers + +Package: multiarch-support +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 201 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Source: eglibc +Version: 2.19-0ubuntu6 +Depends: libc6 (>= 2.13-5) +Description: Transitional package to ensure multiarch compatibility + This is a transitional package used to ensure multiarch support is present + in ld.so before unpacking libraries to the multiarch directories. It can + be removed once nothing on the system depends on it. +Homepage: http://www.eglibc.org +Original-Maintainer: GNU Libc Maintainers + +Package: libjson0 +Status: install ok installed +Priority: extra +Section: oldlibs +Installed-Size: 29 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: json-c +Version: 0.11-4ubuntu1 +Depends: libjson-c2 +Description: JSON manipulation library (transitional package) + This is a transition package that can be safely removed once no + package depend on it. +Homepage: https://github.com/json-c/json-c/wiki +Original-Maintainer: fabien boucher + +Package: libnih-dbus1 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 65 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: libnih +Version: 1.0.3-4ubuntu25 +Depends: libnih1 (= 1.0.3-4ubuntu25), libc6 (>= 2.3.4), libdbus-1-3 (>= 1.2.16) +Pre-Depends: multiarch-support +Description: NIH D-Bus Bindings Library + libnih-dbus is a D-Bus bindings library that integrates with the main + loop provided by libnih. + . + This package contains the shared library. +Homepage: https://launchpad.net/libnih +Original-Maintainer: Scott James Remnant + +Package: libselinux1 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 192 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: libselinux +Version: 2.2.2-1ubuntu1 +Depends: libc6 (>= 2.8), libpcre3 +Pre-Depends: multiarch-support +Description: SELinux runtime shared libraries + This package provides the shared libraries for Security-enhanced + Linux that provides interfaces (e.g. library functions for the + SELinux kernel APIs like getcon(), other support functions like + getseuserbyname()) to SELinux-aware applications. Security-enhanced + Linux is a patch of the Linux kernel and a number of utilities with + enhanced security functionality designed to add mandatory access + controls to Linux. The Security-enhanced Linux kernel contains new + architectural components originally developed to improve the security + of the Flask operating system. These architectural components provide + general support for the enforcement of many kinds of mandatory access + control policies, including those based on the concepts of Type + Enforcement, Role-based Access Control, and Multi-level Security. + . + libselinux1 provides an API for SELinux applications to get and set + process and file security contexts and to obtain security policy + decisions. Required for any applications that use the SELinux + API. libselinux may use the shared libsepol to manipulate the binary + policy if necessary (e.g. to downgrade the policy format to an older + version supported by the kernel) when loading policy. +Homepage: http://userspace.selinuxproject.org/ +Original-Maintainer: Debian SELinux maintainers + +Package: libaudit-common +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 44 +Maintainer: Ubuntu Developers +Architecture: all +Multi-Arch: foreign +Source: audit +Version: 1:2.3.2-2ubuntu1 +Replaces: libaudit0, libaudit1 (<< 1:2.2.1-2) +Breaks: libaudit0, libaudit1 (<< 1:2.2.1-2) +Conffiles: + /etc/libaudit.conf cdc703f9d27f0d980271a9e95d0f18b2 +Description: Dynamic library for security auditing - common files + The audit-libs package contains the dynamic libraries needed for + applications to use the audit framework. It is used to monitor systems for + security related events. + . + This package contains the libaudit.conf configuration file and the associated + manpage. +Homepage: http://people.redhat.com/sgrubb/audit/ +Original-Maintainer: Debian QA Group + +Package: libc6 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 9254 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: eglibc +Version: 2.19-0ubuntu6 +Replaces: libc6-i386, libc6-xen +Provides: glibc-2.19-1, libc6-i686, libc6-xen +Depends: libgcc1 +Suggests: glibc-doc, debconf | debconf-2.0, locales +Breaks: hurd (<< 1:0.5.git20140203-1), nscd (<< 2.19) +Conflicts: libc6-xen, prelink (<= 0.0.20090311-1), tzdata (<< 2007k-1), tzdata-etch +Conffiles: + /etc/ld.so.conf.d/i686-linux-gnu.conf 1c63da36f33ec6647af1d8faff9b9795 +Description: Embedded GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. +Homepage: http://www.eglibc.org +Original-Maintainer: GNU Libc Maintainers + +Package: libpng12-0 +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 308 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: same +Source: libpng +Version: 1.2.50-1ubuntu2 +Replaces: libpng12-dev (<= 1.2.8rel-7) +Depends: libc6 (>= 2.11), zlib1g (>= 1:1.1.4) +Pre-Depends: multiarch-support +Conflicts: libpng12-dev (<= 1.2.8rel-7), mzscheme (<= 1:209-5), pngcrush (<= 1.5.10-2), pngmeta (<= 1.11-3), povray-3.5 (<= 3.5.0c-10), qemacs (<= 0.3.1-5) +Description: PNG library - runtime + libpng is a library implementing an interface for reading and writing + PNG (Portable Network Graphics) format files. + . + This package contains the runtime library files needed to run software + using libpng. +Homepage: http://libpng.org/pub/png/libpng.html +Original-Maintainer: Anibal Monsalve Salazar + +Package: udev +Status: install ok installed +Priority: important +Section: admin +Installed-Size: 5119 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Source: systemd +Version: 204-10ubuntu1 +Depends: libacl1 (>= 2.2.51-8), libblkid1 (>= 2.19.1), libc6 (>= 2.17), libcgmanager0, libdbus-1-3 (>= 1.0.2), libkmod2 (>= 5~), libnih-dbus1 (>= 1.0.0), libnih1 (>= 1.0.0), libselinux1 (>= 2.0.65), libudev1 (= 204-10ubuntu1), sysv-rc (>= 2.88dsf-24) | file-rc (>= 0.8.16), lsb-base (>= 3.0-6), util-linux (>= 2.16), procps +Pre-Depends: debconf (>= 1.4.69) | debconf-2.0 +Breaks: consolekit (<< 0.4.6-1) +Conffiles: + /etc/udev/udev.conf ae415f84e2967eff580089fb08aa0a61 + /etc/init.d/udev b1cab2570af69ccbf49a208799af6247 + /etc/init.d/udev-finish 6eac2544228b88cbe8cede182082f46a + /etc/init/udev-fallback-graphics.conf b8bfe7164e10cd0e53494b243c5728b1 + /etc/init/udevtrigger.conf 651ff2421dde80be7ce7ccbf7fa8cf18 + /etc/init/udev-finish.conf 5c953c5b98ccfbb2a02985bfa2f80aed + /etc/init/udev.conf 41c0081f3a830e0902aaff76a53edf98 + /etc/init/udevmonitor.conf b541dfb5aa4958e9a5336ecaec00ca15 + /etc/modprobe.d/fbdev-blacklist.conf 01cd03c88ce6821c03baf904f7dfcbd0 + /etc/udev/rules.d/README 3b6de9f3f911176734c66903b4f8735c obsolete +Description: /dev/ and hotplug management daemon + udev is a daemon which dynamically creates and removes device nodes from + /dev/, handles hotplug events and loads drivers at boot time. +Homepage: http://www.freedesktop.org/wiki/Software/systemd +Original-Maintainer: Debian systemd Maintainers + +Package: util-linux +Essential: yes +Status: install ok installed +Priority: required +Section: utils +Installed-Size: 1554 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 2.20.1-5.1ubuntu20 +Replaces: e2fsprogs, fdisk, fstrim, linux32, miscutils, schedutils, setterm, sparc-utils +Provides: linux32, schedutils +Depends: lsb-base (>= 3.0-6), tzdata (>= 2006c-2), dpkg (>= 1.15.4) | install-info, debconf (>= 0.5) | debconf-2.0, sysv-rc (>= 2.88dsf-24) | file-rc (>= 0.8.16) +Pre-Depends: libblkid1 (>= 2.20.1), libc6 (>= 2.15), libncurses5 (>= 5.5-5~), libselinux1 (>= 1.32), libslang2 (>= 2.2.4), libtinfo5, libuuid1 (>= 2.16), zlib1g (>= 1:1.1.4) +Suggests: util-linux-locales, kbd | console-tools, dosfstools +Conflicts: console-tools (<< 1:0.2.3-21), fdisk, fstrim, kbd (<< 1.05-3), linux32, schedutils, setterm +Conffiles: + /etc/cron.weekly/fstrim 4de5cd1aac392609593296f0d81e7595 + /etc/init/hwclock.conf 132aa3db7e5a8cf55168e4866052208a + /etc/init/hwclock-save.conf 4a002046525e338fc23e4418602865c9 +Description: Miscellaneous system utilities + This package contains a number of important utilities, most of which + are oriented towards maintenance of your system. Some of the more + important utilities included in this package allow you to partition + your hard disk, view kernel messages, and create new filesystems. +Homepage: http://userweb.kernel.org/~kzak/util-linux/ +Original-Maintainer: LaMont Jones + +Package: cpio +Status: install ok installed +Priority: important +Section: utils +Installed-Size: 312 +Maintainer: Ubuntu Developers +Architecture: i386 +Multi-Arch: foreign +Version: 2.11+dfsg-2ubuntu1 +Replaces: cpio-mt +Depends: libc6 (>= 2.17) +Suggests: libarchive1 +Conflicts: cpio-mt, mt-st (<< 0.6) +Description: GNU cpio -- a program to manage archives of files + GNU cpio is a tool for creating and extracting archives, or copying + files from one place to another. It handles a number of cpio formats + as well as reading and writing tar files. +Homepage: http://www.gnu.org/software/cpio/ +Original-Maintainer: Anibal Monsalve Salazar + diff --git a/test/integration/test-bug-lp1347721-dpkg-ordering b/test/integration/test-bug-lp1347721-dpkg-ordering new file mode 100755 index 000000000..cfe7a4df2 --- /dev/null +++ b/test/integration/test-bug-lp1347721-dpkg-ordering @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" +setupaptarchive + +# ensure we find a valid ordering +testsuccess aptget dist-upgrade -s -- cgit v1.2.3 From 40faab46c4d5fa766c80090f0fdb54120dbb37f2 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 16 Aug 2014 16:33:46 +0200 Subject: support versioned provides as implemented by dpkg APT supported versioned provides for a long while in an attempt to get it working with rpm. While this support is old, we can be relatively sure that it works as versioned provides are used internally to make Multi-Arch:foreign work. Previous versions of apt will print a warning indicating that the versioned provides is ignored, so that something which "Provides: foo (= 2)" doesn't provide anything. Note that dpkg does allow only a equals-relation in the provides line as anything else is deemed too complex. apt doesn't support anything else either and such a support would require potentially big changes. Closes: 758153 --- .../test-bug-758153-versioned-provides-support | 137 +++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100755 test/integration/test-bug-758153-versioned-provides-support (limited to 'test/integration') diff --git a/test/integration/test-bug-758153-versioned-provides-support b/test/integration/test-bug-758153-versioned-provides-support new file mode 100755 index 000000000..2904ae5a1 --- /dev/null +++ b/test/integration/test-bug-758153-versioned-provides-support @@ -0,0 +1,137 @@ +#!/bin/sh +set -e + +# dpkg implements versioned provides in commit 5bb02fe80e9f40dcad9703a72f67cf615ff217b5 +# but previous versions seem to allow parsing, working and ignoring it. + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'amd64' 'i386' + +insertinstalledpackage 'webapp' 'all' '1' 'Depends: httpd' +insertinstalledpackage 'webserver' 'all' '1' 'Provides: httpd' + +insertpackage 'unstable' 'webapp' 'all' '2' 'Depends: httpd (>= 2)' +insertpackage 'unstable' 'webserver' 'amd64' '2' 'Provides: httpd (= 2)' +insertpackage 'unstable' 'foreign-webserver' 'i386' '2' 'Multi-Arch: foreign +Provides: httpd (= 2)' + +insertpackage 'experimental' 'webapp' 'all' '3' 'Depends: httpd (>= 1.5)' +insertpackage 'experimental' 'webserver' 'amd64' '3' 'Provides: httpd (= 3)' + +insertpackage 'experimental' 'foreign-webserver' 'i386' '4' 'Multi-Arch: foreign +Provides: httpd (= 4)' +insertpackage 'experimental' 'cool-webapp' 'all' '4' 'Depends: httpd (>= 4)' + +setupaptarchive + +testequal 'Reading package lists... +Building dependency tree... +The following packages will be upgraded: + webapp webserver +2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Inst webserver [1] (2 unstable [amd64]) +Inst webapp [1] (2 unstable [all]) +Conf webserver (2 unstable [amd64]) +Conf webapp (2 unstable [all])' aptget dist-upgrade -s + +testequal 'Reading package lists... +Building dependency tree... +The following packages will be upgraded: + webapp webserver +2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Inst webserver [1] (2 unstable [amd64]) +Inst webapp [1] (2 unstable [all]) +Conf webserver (2 unstable [amd64]) +Conf webapp (2 unstable [all])' aptget install webapp webserver -s + +testequal 'Reading package lists... +Building dependency tree... +The following packages will be upgraded: + webapp webserver +2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Inst webserver [1] (2 unstable [amd64]) +Inst webapp [1] (3 experimental [all]) +Conf webserver (2 unstable [amd64]) +Conf webapp (3 experimental [all])' aptget install webapp=3 webserver -s + +testequal 'Reading package lists... +Building dependency tree... +The following packages will be upgraded: + webapp webserver +2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Inst webserver [1] (3 experimental [amd64]) +Inst webapp [1] (2 unstable [all]) +Conf webserver (3 experimental [amd64]) +Conf webapp (2 unstable [all])' aptget install webapp webserver=3 -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + foreign-webserver:i386 +The following packages will be upgraded: + webapp +1 upgraded, 1 newly installed, 0 to remove and 1 not upgraded. +Inst foreign-webserver:i386 (2 unstable [i386]) +Inst webapp [1] (2 unstable [all]) +Conf foreign-webserver:i386 (2 unstable [i386]) +Conf webapp (2 unstable [all])' aptget install webapp foreign-webserver:i386 -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + foreign-webserver:i386 +The following packages will be upgraded: + webapp +1 upgraded, 1 newly installed, 0 to remove and 1 not upgraded. +Inst foreign-webserver:i386 (2 unstable [i386]) +Inst webapp [1] (3 experimental [all]) +Conf foreign-webserver:i386 (2 unstable [i386]) +Conf webapp (3 experimental [all])' aptget install webapp=3 foreign-webserver:i386 -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + foreign-webserver:i386 +The following packages will be upgraded: + webapp +1 upgraded, 1 newly installed, 0 to remove and 1 not upgraded. +Inst foreign-webserver:i386 (4 experimental [i386]) +Inst webapp [1] (2 unstable [all]) +Conf foreign-webserver:i386 (4 experimental [i386]) +Conf webapp (2 unstable [all])' aptget install webapp foreign-webserver:i386=4 -s + +testequal 'Reading package lists... +Building dependency tree... +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: + +The following packages have unmet dependencies: + cool-webapp : Depends: httpd (>= 4) +E: Unable to correct problems, you have held broken packages.' aptget install cool-webapp -s + +testequal 'Reading package lists... +Building dependency tree... +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: + +The following packages have unmet dependencies: + cool-webapp : Depends: httpd (>= 4) +E: Unable to correct problems, you have held broken packages.' aptget install cool-webapp foreign-webserver:i386 -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + cool-webapp foreign-webserver:i386 +0 upgraded, 2 newly installed, 0 to remove and 2 not upgraded. +Inst foreign-webserver:i386 (4 experimental [i386]) +Inst cool-webapp (4 experimental [all]) +Conf foreign-webserver:i386 (4 experimental [i386]) +Conf cool-webapp (4 experimental [all])' aptget install cool-webapp foreign-webserver:i386=4 -s -- cgit v1.2.3 From c6ee61eab54edf6cc3fbe118d304d72a860e1451 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 2 Sep 2014 15:50:19 +0200 Subject: Make Proxy-Auto-Detect check for each host When doing Acquire::http{,s}::Proxy-Auto-Detect, run the auto-detect command for each host instead of only once. This should make using "proxy" from libproxy-tools feasible which can then be used for PAC style or other proxy configurations. Closes: #759264 --- test/integration/test-apt-helper | 80 +++++++++++++++++++++++++++++----------- 1 file changed, 58 insertions(+), 22 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-helper b/test/integration/test-apt-helper index 6505b5956..c749224ca 100755 --- a/test/integration/test-apt-helper +++ b/test/integration/test-apt-helper @@ -9,31 +9,67 @@ configarchitecture "i386" changetohttpswebserver -echo "foo" > aptarchive/foo +test_apt_helper_download() { + echo "foo" > aptarchive/foo -msgtest 'apt-file download-file md5sum' -apthelper -qq download-file http://localhost:8080/foo foo2 MD5Sum:d3b07384d113edec49eaa6238ad5ff00 && msgpass || msgfail -testfileequal foo2 'foo' + msgtest 'apt-file download-file md5sum' + apthelper -qq download-file http://localhost:8080/foo foo2 MD5Sum:d3b07384d113edec49eaa6238ad5ff00 && msgpass || msgfail + testfileequal foo2 'foo' -msgtest 'apt-file download-file sha1' -apthelper -qq download-file http://localhost:8080/foo foo1 SHA1:f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 && msgpass || msgfail -testfileequal foo1 'foo' + msgtest 'apt-file download-file sha1' + apthelper -qq download-file http://localhost:8080/foo foo1 SHA1:f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 && msgpass || msgfail + testfileequal foo1 'foo' -msgtest 'apt-file download-file sha256' -apthelper -qq download-file http://localhost:8080/foo foo3 SHA256:b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c && msgpass || msgfail -testfileequal foo3 'foo' + msgtest 'apt-file download-file sha256' + apthelper -qq download-file http://localhost:8080/foo foo3 SHA256:b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c && msgpass || msgfail + testfileequal foo3 'foo' -msgtest 'apt-file download-file no-hash' -apthelper -qq download-file http://localhost:8080/foo foo4 && msgpass || msgfail -testfileequal foo4 'foo' - -msgtest 'apt-file download-file wrong hash' -if ! apthelper -qq download-file http://localhost:8080/foo foo5 MD5Sum:aabbcc 2>&1 2> download.stderr; then - msgpass -else - msgfail -fi -testfileequal download.stderr 'E: Failed to fetch http://localhost:8080/foo Hash Sum mismatch + msgtest 'apt-file download-file no-hash' + apthelper -qq download-file http://localhost:8080/foo foo4 && msgpass || msgfail + testfileequal foo4 'foo' + + msgtest 'apt-file download-file wrong hash' + if ! apthelper -qq download-file http://localhost:8080/foo foo5 MD5Sum:aabbcc 2>&1 2> download.stderr; then + msgpass + else + msgfail + fi + testfileequal download.stderr 'E: Failed to fetch http://localhost:8080/foo Hash Sum mismatch E: Download Failed' -testfileequal foo5.FAILED 'foo' + testfileequal foo5.FAILED 'foo' +} + +test_apt_helper_detect_proxy() { + # no proxy + testequal "Using proxy '' for URL 'http://example.com/'" apthelper auto-detect-proxy http://example.com/ + + + # http auto detect proxy script + cat > apt-proxy-detect <<'EOF' +#!/bin/sh -e +echo "http://some-proxy" +EOF + chmod 755 apt-proxy-detect + echo "Acquire::http::Proxy-Auto-Detect \"$(pwd)/apt-proxy-detect\";" > rootdir/etc/apt/apt.conf.d/02proxy-detect + + testequal "Using proxy 'http://some-proxy' for URL 'http://www.example.com/'" apthelper auto-detect-proxy http://www.example.com + + + # https auto detect proxy script + cat > apt-proxy-detect <<'EOF' +#!/bin/sh -e +echo "https://https-proxy" +EOF + chmod 755 apt-proxy-detect + echo "Acquire::https::Proxy-Auto-Detect \"$(pwd)/apt-proxy-detect\";" > rootdir/etc/apt/apt.conf.d/02proxy-detect + + testequal "Using proxy 'https://https-proxy' for URL 'https://ssl.example.com/'" apthelper auto-detect-proxy https://ssl.example.com + + + +} + +test_apt_helper_download +test_apt_helper_detect_proxy + -- cgit v1.2.3 From 6763aaec8ddded31057733f53c63f15e6b949bd9 Mon Sep 17 00:00:00 2001 From: Andreas Oberritter Date: Tue, 2 Sep 2014 16:34:05 +0200 Subject: Avoid yielding blank lines with APT::Cmd::use-format=true --- test/integration/test-apt-cli-list | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-cli-list b/test/integration/test-apt-cli-list index 40bf81a39..aae74c022 100755 --- a/test/integration/test-apt-cli-list +++ b/test/integration/test-apt-cli-list @@ -68,4 +68,7 @@ testequal "Listing... baz/unstable 2.0 all [upgradable from: 0.1] N: There are 2 additional versions. Please use the '-a' switch to see them." apt list baz -o quiet=0 - +# test format strings for machine parseable output +apt list -qq bar baz -o APT::Cmd::use-format=true -o APT::Cmd::format="\${Package} - \${installed:Version} - \${candidate:Version}" > output.txt +testequal "bar - 1.0 - 1.0 +baz - 0.1 - 2.0" cat output.txt -- cgit v1.2.3 From 165760012d624ffcf098e1fd08fecde78f808fa7 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 2 Sep 2014 16:36:32 +0200 Subject: Add testcase for apt list --all-versions Dch-Ignore: true --- test/integration/test-apt-cli-list | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-cli-list b/test/integration/test-apt-cli-list index aae74c022..1487afd55 100755 --- a/test/integration/test-apt-cli-list +++ b/test/integration/test-apt-cli-list @@ -49,9 +49,11 @@ baz/now 0.1 all [installed,upgradable to: 2.0] foobar/now 1.0 i386 [installed,upgradable to: 2.0]" apt list --installed testequal "Listing... +bar/now 1.0 i386 [installed,local] + foobar/unstable 2.0 i386 [upgradable from: 1.0] foobar/now 1.0 i386 [installed,upgradable to: 2.0] -" apt list foobar --all-versions +" apt list bar foobar --all-versions testequal "Listing... bar/now 1.0 i386 [installed,local] -- cgit v1.2.3 From 3b5607fc31371190470074371793cb8500b5139e Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 3 Sep 2014 16:54:16 +0200 Subject: test/integration/test-ubuntu-bug-346386-apt-get-update-paywall: use downloadfile() --- .../test-ubuntu-bug-346386-apt-get-update-paywall | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-ubuntu-bug-346386-apt-get-update-paywall b/test/integration/test-ubuntu-bug-346386-apt-get-update-paywall index 7112d2b45..a773660d2 100755 --- a/test/integration/test-ubuntu-bug-346386-apt-get-update-paywall +++ b/test/integration/test-ubuntu-bug-346386-apt-get-update-paywall @@ -16,13 +16,11 @@ setupaptarchive changetowebserver -o 'aptwebserver::overwrite::.*::filename=/knights' msgtest 'Acquire test file from the webserver to check' 'overwrite' -echo '601 Configuration -Config-Item: Acquire::http::DependOnSTDIN=0 - -600 Acquire URI -URI: http://localhost:8080/holygrail -Filename: knights-talking -' | ${METHODSDIR}/http >/dev/null 2>&1 && msgpass || msgfail +if downloadfile http://localhost:8080/holygrail ./knights-talking >/dev/null; then + msgpass +else + msgfail +fi testfileequal knights-talking 'ni ni ni' ensure_n_canary_strings_in_dir() { -- cgit v1.2.3 From d059cc2668f284a7db77a15d1d742326d464e963 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 5 Sep 2014 12:03:28 +0200 Subject: Fix incorrect upgradable listing in "apt list" (thanks to Michael Musenbrock) The "apt list" command was using only the pkgDepCache but not the pkgPolicy to figure out if a package is upgradable. This lead to incorrect display of upgradable package when the user used the policy to pin-down packages. Thanks to Michael Musenbrock for the initial patch. Closes: #753297 --- test/integration/test-bug-753297-upgradable | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 test/integration/test-bug-753297-upgradable (limited to 'test/integration') diff --git a/test/integration/test-bug-753297-upgradable b/test/integration/test-bug-753297-upgradable new file mode 100755 index 000000000..068704b3e --- /dev/null +++ b/test/integration/test-bug-753297-upgradable @@ -0,0 +1,34 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'i386' + +cat > rootdir/etc/apt/preferences < Date: Sat, 30 Aug 2014 11:29:45 +0200 Subject: support regular expressions in 'apt search' apt-cache search supported this since ever and in the code for apt was a fixme indicating this should be added here as well, so here we go. --- test/integration/framework | 8 +++++++- test/integration/test-apt-cli-search | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index 3bbf440c8..fde74f55d 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -1019,7 +1019,13 @@ testfileequal() { testempty() { msgtest "Test for no output of" "$*" - test -z "$($* 2>&1)" && msgpass || msgfail + local COMPAREFILE="${TMPWORKINGDIRECTORY}/rootdir/tmp/testempty.comparefile" + if $* >$COMPAREFILE 2>&1 && test ! -s $COMPAREFILE; then + msgpass + else + cat $COMPAREFILE + msgfail + fi } testequal() { diff --git a/test/integration/test-apt-cli-search b/test/integration/test-apt-cli-search index 58613717b..3ac074952 100755 --- a/test/integration/test-apt-cli-search +++ b/test/integration/test-apt-cli-search @@ -33,16 +33,31 @@ foo/unstable 1.0 all testequal "foo/unstable 1.0 all $DESCR " apt search -qq xxyyzz +testempty apt search -qq --names-only xxyyzz + +# search name +testequal "foo/unstable 1.0 all + $DESCR +" apt search -qq foo +testequal "foo/unstable 1.0 all + $DESCR +" apt search -qq --names-only foo # search with multiple words is a AND search testequal "foo/unstable 1.0 all $DESCR " apt search -qq aabbcc xxyyzz +testequal "foo/unstable 1.0 all + $DESCR +" apt search -qq 'a+b+c+' 'i*xxy{0,2}zz' # search is not case-sensitive by default testequal "foo/unstable 1.0 all $DESCR " apt search -qq uppercase +testequal "foo/unstable 1.0 all + $DESCR +" apt search -qq 'up[pP]erc[Aa]se' # output is sorted and search word finds both package testequal "bar/testing 2.0 i386 -- cgit v1.2.3 From 1a68655de92fd036ebc7c920bc2e5e88c54eb34e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 2 Sep 2014 14:32:48 +0200 Subject: implement --full in apt search --- test/integration/test-apt-cli-search | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-cli-search b/test/integration/test-apt-cli-search index 3ac074952..8f009d57c 100755 --- a/test/integration/test-apt-cli-search +++ b/test/integration/test-apt-cli-search @@ -15,7 +15,10 @@ fi DESCR='Some description that has a unusual word xxyyzz and aabbcc and a UPPERCASE' DESCR2='Some other description with the unusual aabbcc only' -insertpackage 'unstable' 'foo' 'all' '1.0' '' '' "$DESCR" +insertpackage 'unstable' 'foo' 'all' '1.0' '' '' "$DESCR + Long description of stuff and such, with lines + . + and paragraphs and everything." insertpackage 'testing' 'bar' 'i386' '2.0' '' '' "$DESCR2" setupaptarchive @@ -59,6 +62,17 @@ testequal "foo/unstable 1.0 all $DESCR " apt search -qq 'up[pP]erc[Aa]se' +# search is done in the long description +testequal "foo/unstable 1.0 all + $DESCR +" apt search -qq 'long description' +testequal "foo/unstable 1.0 all + $DESCR + Long description of stuff and such, with lines + . + and paragraphs and everything. +" apt search --full -qq 'long description' + # output is sorted and search word finds both package testequal "bar/testing 2.0 i386 $DESCR2 -- cgit v1.2.3 From e9bb097c914ff4fb1cdeda8a2843644dca184c56 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 7 Sep 2014 19:28:21 +0200 Subject: do use an 'unknown' arch-specification in test Using 'kfreebsd' here makes the test fail on a kfreebsd system (obviously), so we just use something totally madeup in the hope that this is less like to conflict in the future. Git-Dch: Ignore --- test/integration/test-architecture-specification-parsing | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-architecture-specification-parsing b/test/integration/test-architecture-specification-parsing index a43354871..d1f6011de 100755 --- a/test/integration/test-architecture-specification-parsing +++ b/test/integration/test-architecture-specification-parsing @@ -13,10 +13,10 @@ buildsimplenativepackage 'pkg-arch-foo' "$NATIVE" '1.0' 'stable' "Build-Depends: Depends: foo [${NATIVE} !${NATIVE}]" buildsimplenativepackage 'pkg-arch-no-foo' "$NATIVE" '1.0' 'stable' "Build-Depends: foo [!${NATIVE} ${NATIVE}] Depends: foo [!${NATIVE} ${NATIVE}]" -buildsimplenativepackage 'pkg-arch-foo-unrelated-no' "$NATIVE" '1.0' 'stable' "Build-Depends: foo [!kfreebsd-any ${NATIVE}] -Depends: foo [!kfreebsd-any ${NATIVE}]" -buildsimplenativepackage 'pkg-arch-foo-unrelated-no2' "$NATIVE" '1.0' 'stable' "Build-Depends: foo [${NATIVE} !kfreebsd-any] -Depends: foo [${NATIVE} !kfreebsd-any]" +buildsimplenativepackage 'pkg-arch-foo-unrelated-no' "$NATIVE" '1.0' 'stable' "Build-Depends: foo [!someos-any ${NATIVE}] +Depends: foo [!someos-any ${NATIVE}]" +buildsimplenativepackage 'pkg-arch-foo-unrelated-no2' "$NATIVE" '1.0' 'stable' "Build-Depends: foo [${NATIVE} !someos-any] +Depends: foo [${NATIVE} !someos-any]" buildsimplenativepackage 'no-depends' 'armel' '1.0' 'stable' 'Build-Depends: foo [armeb], bar [arm] Depends: foo [armeb], bar [arm]' -- cgit v1.2.3 From 27cb4f6c919921b04f3dddff069620ced250a94f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 7 Sep 2014 19:30:33 +0200 Subject: detect terminal output with 'test -t' in tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of trying to inspect /proc and the fds inside we use "test -t 1" instead as this is available and working on kfreebsd as well – not that something breaks if we wouldn't, but we like color. Git-Dch: Ignore --- test/integration/framework | 2 +- test/integration/run-tests | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index fde74f55d..ff010a5c4 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -4,7 +4,7 @@ EXIT_CODE=0 # we all like colorful messages if [ "$MSGCOLOR" != 'NO' ]; then - if ! expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then + if [ ! -t 1 ]; then # but check that we output to a terminal export MSGCOLOR='NO' fi fi diff --git a/test/integration/run-tests b/test/integration/run-tests index 9dd550aa2..c39a2ac68 100755 --- a/test/integration/run-tests +++ b/test/integration/run-tests @@ -22,7 +22,7 @@ done export MSGLEVEL="${MSGLEVEL:-3}" if [ "$MSGCOLOR" != 'NO' ]; then - if ! expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then + if [ ! -t 1 ]; then # but check that we output to a terminal export MSGCOLOR='NO' fi fi -- cgit v1.2.3 From f920cbe8527ce523974da2563ca1165790c1d40e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 7 Sep 2014 22:08:01 +0200 Subject: fix and non-silent fail dpkg-overwrite error test Commit cbcdd3ee9d86379d1b3a44e41ae8b17dc23111d0 removes the space at the end of the debfile name dpkg send to us and we previously had included in the pmerror message we printed on the statusfd. Git-Dch: Ignore --- test/integration/test-apt-progress-fd-error | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-progress-fd-error b/test/integration/test-apt-progress-fd-error index 96d66371a..a47095b9b 100755 --- a/test/integration/test-apt-progress-fd-error +++ b/test/integration/test-apt-progress-fd-error @@ -18,5 +18,10 @@ setupaptarchive exec 3> apt-progress.log testfailure aptget install foo1 foo2 -y -o APT::Status-Fd=3 msgtest "Ensure correct error message" -grep -q "aptarchive/pool/foo2_0.8.15_amd64.deb :40:trying to overwrite '/usr/bin/file-conflict', which is also in package foo1 0.8.15" apt-progress.log && msgpass || (cat apt-progress.log && msgfail) +if grep -q "aptarchive/pool/foo2_0.8.15_amd64.deb:40:trying to overwrite '/usr/bin/file-conflict', which is also in package foo1 0.8.15" apt-progress.log; then + msgpass +else + cat apt-progress.log + msgfail +fi -- cgit v1.2.3 From 4c559e97ba4cc0d3a2995b7c451e606539d2f1be Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 8 Sep 2014 17:14:17 +0200 Subject: fix progress report for upgrade and reinstall APT treats upgrades like installs and dpkg is very similar in this, but prints still a slightly different processing message indicating that it is really an upgrade which we hadn't parsed so far, but this wasn't really visible as we quickly moved on to a 'known' state. More problematic was the reinstall case as apt hadn't recognized this for the package name detection, so that reinstalls had no progress since we introduced MultiArch. --- test/integration/test-apt-progress-fd | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'test/integration') diff --git a/test/integration/test-apt-progress-fd b/test/integration/test-apt-progress-fd index 9d250e949..d72e7e72d 100755 --- a/test/integration/test-apt-progress-fd +++ b/test/integration/test-apt-progress-fd @@ -33,6 +33,22 @@ testsuccess aptget install testing=0.8.15 -y -o APT::Status-Fd=3 testequal "dlstatus:1:0:Retrieving file 1 of 1 dlstatus:1:0:Retrieving file 1 of 1 pmstatus:dpkg-exec:0:Running dpkg +pmstatus:testing:0:Installing testing (amd64) +pmstatus:testing:20:Preparing testing (amd64) +pmstatus:testing:40:Unpacking testing (amd64) +pmstatus:testing:60:Preparing to configure testing (amd64) +pmstatus:dpkg-exec:60:Running dpkg +pmstatus:testing:60:Configuring testing (amd64) +pmstatus:testing:80:Configuring testing (amd64) +pmstatus:testing:100:Installed testing (amd64)" cat apt-progress.log + +# reinstall +exec 3> apt-progress.log +testsuccess aptget install testing=0.8.15 --reinstall -y -o APT::Status-Fd=3 +testequal "dlstatus:1:0:Retrieving file 1 of 1 +dlstatus:1:0:Retrieving file 1 of 1 +pmstatus:dpkg-exec:0:Running dpkg +pmstatus:testing:0:Installing testing (amd64) pmstatus:testing:20:Preparing testing (amd64) pmstatus:testing:40:Unpacking testing (amd64) pmstatus:testing:60:Preparing to configure testing (amd64) -- cgit v1.2.3 From 22da5c135a74eee8ed998806136e25b8ed038bd0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 9 Sep 2014 13:52:32 +0200 Subject: don't call pager in non-terminals for changelog Most pagers are nice and default to running non-interactively if they aren't connected to a terminal and we relied on that. On ci.debian.net the configured pager is printing a header out of nowhere though, so if we are printing to a non-terminal we call "cat" instead. In the rework we also "remove" the dependency on sensible-utils in sofar as we call some alternatives if calling the utils fail. This seems to be the last problem preventing a "PASS" status on ci.debian.net, so we close the associated bugreport. Closes: 755040 --- test/integration/test-apt-get-changelog | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-get-changelog b/test/integration/test-apt-get-changelog index a73c3e249..4ee113482 100755 --- a/test/integration/test-apt-get-changelog +++ b/test/integration/test-apt-get-changelog @@ -28,9 +28,8 @@ testsuccess aptget changelog apt -d testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0/changelog)" rm apt.changelog aptarchive/pool/apt_1.0/changelog -aptget changelog apt -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/' > apt.changelog -testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0.changelog)" -rm apt.changelog +testequal "$(cat aptarchive/pool/apt_1.0.changelog)" aptget changelog apt \ + -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/' testsuccess aptget changelog apt -d testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0.changelog)" -- cgit v1.2.3 From ca7fd76c2f30c100dcf1c12e717ce397cccd690b Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 16 Sep 2014 20:23:43 +0200 Subject: SECURITY UPDATE for CVE-2014-{0488,0487,0489} incorrect invalidating of unauthenticated data (CVE-2014-0488) incorect verification of 304 reply (CVE-2014-0487) incorrect verification of Acquire::Gzip indexes (CVE-2014-0489) --- test/integration/test-apt-update-stale | 46 ++++++++++++++++++++++++++++ test/integration/test-apt-update-unauth | 48 ++++++++++++++++++++++++++++++ test/integration/test-hashsum-verification | 14 +++++++-- 3 files changed, 105 insertions(+), 3 deletions(-) create mode 100755 test/integration/test-apt-update-stale create mode 100755 test/integration/test-apt-update-unauth (limited to 'test/integration') diff --git a/test/integration/test-apt-update-stale b/test/integration/test-apt-update-stale new file mode 100755 index 000000000..780ff79af --- /dev/null +++ b/test/integration/test-apt-update-stale @@ -0,0 +1,46 @@ +#!/bin/sh +# +# Ensure that a MITM can not stale the Packages/Sources without +# raising a error message. Note that the Release file is protected +# via the "Valid-Until" header +# +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +insertpackage 'unstable' 'foo' 'all' '1.0' + +setupaptarchive +changetowebserver +aptget update -qq + +# insert new version +mkdir aptarchive/dists/unstable/main/binary-i386/saved +cp -p aptarchive/dists/unstable/main/binary-i386/Packages* \ + aptarchive/dists/unstable/main/binary-i386/saved +insertpackage 'unstable' 'foo' 'all' '2.0' + +# not using compressfile for compat with older apt releases +gzip -c aptarchive/dists/unstable/main/binary-i386/Packages > \ + aptarchive/dists/unstable/main/binary-i386/Packages.gz +generatereleasefiles +signreleasefiles + +# ensure that we do not get a I-M-S hit for the Release file +touch -d "+1hour" aptarchive/dists/unstable/*Release* + +# but now only deliver the previous Packages file instead of the new one +# (simulating a stale attack) +cp -p aptarchive/dists/unstable/main/binary-i386/saved/Packages* \ + aptarchive/dists/unstable/main/binary-i386/ + +# ensure this raises a error +testequal "W: Failed to fetch http://localhost:8080/dists/unstable/main/binary-i386/Packages Hash Sum mismatch + +E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update -qq + + diff --git a/test/integration/test-apt-update-unauth b/test/integration/test-apt-update-unauth new file mode 100755 index 000000000..13487603c --- /dev/null +++ b/test/integration/test-apt-update-unauth @@ -0,0 +1,48 @@ +#!/bin/sh +# +# Ensure that when going from unauthenticated to authenticated all +# files are checked again +# +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +insertpackage 'unstable' 'foo' 'all' '1.0' +insertsource 'unstable' 'foo' 'all' '1.0' + +setupaptarchive +changetowebserver + +runtest() { + # start unauthenticated + find rootdir/var/lib/apt/lists/ -type f | xargs rm -f + rm -f aptarchive/dists/unstable/*Release* + aptget update -qq + + # become authenticated + generatereleasefiles + signreleasefiles + + # and ensure we do download the data again + msgtest "Check that the data is check when going to authenticated" + if aptget update |grep -q Hit; then + msgfail + else + msgpass + fi +} + +for COMPRESSEDINDEXES in 'false' 'true'; do + echo "Acquire::GzipIndexes \"$COMPRESSEDINDEXES\";" > rootdir/etc/apt/apt.conf.d/compressindexes + if $COMPRESSEDINDEXES; then + msgmsg 'Run tests with GzipIndexes enabled' + else + msgmsg 'Run tests with GzipIndexes disabled' + fi + + runtest +done diff --git a/test/integration/test-hashsum-verification b/test/integration/test-hashsum-verification index e77efb46e..2a400dcb4 100755 --- a/test/integration/test-hashsum-verification +++ b/test/integration/test-hashsum-verification @@ -64,7 +64,7 @@ runtest() { msgtest 'No package from the source available' [ "$(aptcache show apt 2>&1)" = "E: No packages found" ] && msgpass || msgfail msgtest 'No Packages file in /var/lib/apt/lists' - [ "$(ls rootdir/var/lib/apt/lists/*Package* 2>/dev/null)" = "" ] && msgpass || msgfail + [ "$(ls rootdir/var/lib/apt/lists/*Package* 2>/dev/null | grep -v FAILED 2>/dev/null)" = "" ] && msgpass || msgfail # now with the unsigned Release file rm -rf rootdir/var/lib/apt/lists @@ -75,5 +75,13 @@ runtest() { } -runtest - +for COMPRESSEDINDEXES in 'false' 'true'; do + echo "Acquire::GzipIndexes \"$COMPRESSEDINDEXES\";" > rootdir/etc/apt/apt.conf.d/compressindexes + if $COMPRESSEDINDEXES; then + msgmsg 'Run tests with GzipIndexes enabled' + else + msgmsg 'Run tests with GzipIndexes disabled' + fi + + runtest +done -- cgit v1.2.3 From daff4aa356128310f022370f7825bdc369c66ba8 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 17 Sep 2014 14:57:05 +0200 Subject: Fix regression for file:/// uris from CVE-2014-0487 Do not run ReverifyAfterIMS() for local file URIs as this will causes apt to mess around in the file:/// uri space. This is wrong in itself, but it will also cause a incorrect verification failure when the archive and the lists directory are on different partitions as rename(). --- test/integration/test-apt-update-file | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 test/integration/test-apt-update-file (limited to 'test/integration') diff --git a/test/integration/test-apt-update-file b/test/integration/test-apt-update-file new file mode 100755 index 000000000..069f8ba2f --- /dev/null +++ b/test/integration/test-apt-update-file @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Ensure that we do not modify file:/// uris (regression test for +# CVE-2014-0487 +# +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "amd64" +configcompression 'bz2' 'gz' + +insertpackage 'unstable' 'foo' 'all' '1.0' + +umask 022 +setupaptarchive --no-update + +# ensure the archive is not writable +chmod 550 aptarchive/dists/unstable/main/binary-amd64 + +testsuccess aptget update -qq +testsuccess aptget update -qq + +# the cleanup should still work +chmod 750 aptarchive/dists/unstable/main/binary-amd64 -- cgit v1.2.3 From 23d0a6fbee9e8880107481502e14411961c44a7b Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 17 Sep 2014 17:48:27 +0200 Subject: improve test for commit daff4a --- test/integration/test-apt-update-file | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'test/integration') diff --git a/test/integration/test-apt-update-file b/test/integration/test-apt-update-file index 069f8ba2f..e267c71da 100755 --- a/test/integration/test-apt-update-file +++ b/test/integration/test-apt-update-file @@ -22,6 +22,13 @@ chmod 550 aptarchive/dists/unstable/main/binary-amd64 testsuccess aptget update -qq testsuccess aptget update -qq +aptget update -qq -o Debug::pkgAcquire::Auth=1 2> output.log + +# ensure that the hash of the uncompressed file was verified even on a local +# ims hit +canary="SHA512:$(bzcat aptarchive/dists/unstable/main/binary-amd64/Packages.bz2 | sha512sum |cut -f1 -d' ')" +grep -q "RecivedHash: $canary" output.log + # the cleanup should still work chmod 750 aptarchive/dists/unstable/main/binary-amd64 -- cgit v1.2.3 From 8b451962751298876d1f399e4de492d8adbb135a Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 19 Sep 2014 16:41:50 +0200 Subject: test/integration/test-apt-update-file: improve test --- test/integration/test-apt-update-file | 2 ++ test/integration/test-bug-762160-relpath | 15 +++++++++++++++ 2 files changed, 17 insertions(+) create mode 100755 test/integration/test-bug-762160-relpath (limited to 'test/integration') diff --git a/test/integration/test-apt-update-file b/test/integration/test-apt-update-file index e267c71da..fbcd473cc 100755 --- a/test/integration/test-apt-update-file +++ b/test/integration/test-apt-update-file @@ -29,6 +29,8 @@ aptget update -qq -o Debug::pkgAcquire::Auth=1 2> output.log canary="SHA512:$(bzcat aptarchive/dists/unstable/main/binary-amd64/Packages.bz2 | sha512sum |cut -f1 -d' ')" grep -q "RecivedHash: $canary" output.log +# foo is still available +testsuccess aptget install -s foo # the cleanup should still work chmod 750 aptarchive/dists/unstable/main/binary-amd64 diff --git a/test/integration/test-bug-762160-relpath b/test/integration/test-bug-762160-relpath new file mode 100755 index 000000000..0af71f57b --- /dev/null +++ b/test/integration/test-bug-762160-relpath @@ -0,0 +1,15 @@ +#!/bin/sh +set -e + +# dpkg implements versioned provides in commit 5bb02fe80e9f40dcad9703a72f67cf615ff217b5 +# but previous versions seem to allow parsing, working and ignoring it. + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'amd64' + +insertpackage 'unstable' 'foo' 'all' '1' +setupaptarchive + +aptget update -o Dir=./apt -- cgit v1.2.3 From 9da539c5aff025aab99537be1c75e8c6a853fd83 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 19 Sep 2014 16:41:55 +0200 Subject: Fix regression when copy: is used for a relative path When we do a ReverifyAfterIMS() we use the copy: method to verify the hashes again. If the user uses -o Dir=./something/relative this fails because we use the URI class in copy.cc that strips away the leading relative part. By not using URI this is fixed. Closes: #762160 --- test/integration/test-bug-762160-relpath | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-bug-762160-relpath b/test/integration/test-bug-762160-relpath index 0af71f57b..204587727 100755 --- a/test/integration/test-bug-762160-relpath +++ b/test/integration/test-bug-762160-relpath @@ -1,9 +1,9 @@ #!/bin/sh +# regresion test for bug #762160 where apt-get update fails when a +# relative directory is given +# set -e -# dpkg implements versioned provides in commit 5bb02fe80e9f40dcad9703a72f67cf615ff217b5 -# but previous versions seem to allow parsing, working and ignoring it. - TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment @@ -11,5 +11,7 @@ configarchitecture 'amd64' insertpackage 'unstable' 'foo' 'all' '1' setupaptarchive +changetowebserver -aptget update -o Dir=./apt +testsuccess aptget update -o Dir=./rootdir +testsuccess aptget update -o Dir=./rootdir \ No newline at end of file -- cgit v1.2.3 From 2bd6be8ad24583ed9935f5c5d57c04ba7344111e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 20 Sep 2014 00:12:13 +0200 Subject: relax grep to support newer curl output format Git-Dch: Ignore --- test/integration/test-apt-https-no-redirect | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-https-no-redirect b/test/integration/test-apt-https-no-redirect index 73352a28c..bc744d6f2 100755 --- a/test/integration/test-apt-https-no-redirect +++ b/test/integration/test-apt-https-no-redirect @@ -25,6 +25,11 @@ msgtest 'download of a file does not work if' 'https redirected to http' downloadfile 'https://localhost:4433/redirectme/working' redirectfile >curloutput 2>&1 && msgfail || msgpass msgtest 'libcurl has forbidden access in last request to' 'http resource' -grep -q -- 'Protocol http not supported or disabled in libcurl' curloutput && msgpass || msgfail +if grep -q -E -- 'Protocol "?http"? not supported or disabled in libcurl' curloutput; then + msgpass +else + cat curloutput + msgfail +fi -- cgit v1.2.3 From b0f4b486e6850c5f98520ccf19da71d0ed748ae4 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Sun, 21 Sep 2014 10:18:03 +0200 Subject: generalize Acquire::GzipIndex --- .../test-bug-595691-empty-and-broken-archive-files | 2 +- test/integration/test-compressed-indexes | 20 +++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-bug-595691-empty-and-broken-archive-files b/test/integration/test-bug-595691-empty-and-broken-archive-files index a05ed5fa6..23a638801 100755 --- a/test/integration/test-bug-595691-empty-and-broken-archive-files +++ b/test/integration/test-bug-595691-empty-and-broken-archive-files @@ -121,7 +121,7 @@ Reading package lists..." "empty archive Packages.$COMPRESS over http" testaptgetupdate "Get: http://localhost:8080 Packages Err http://localhost:8080 Packages Empty files can't be valid archives -W: Failed to fetch ${COMPRESSOR}:$(readlink -f rootdir/var/lib/apt/lists/partial/localhost:8080_Packages) Empty files can't be valid archives +W: Failed to fetch ${COMPRESSOR}:$(readlink -f rootdir/var/lib/apt/lists/partial/localhost:8080_Packages.${COMPRESS}) Empty files can't be valid archives E: Some index files failed to download. They have been ignored, or old ones used instead." "empty file Packages.$COMPRESS over http" } diff --git a/test/integration/test-compressed-indexes b/test/integration/test-compressed-indexes index 6671dd75a..819cbd35e 100755 --- a/test/integration/test-compressed-indexes +++ b/test/integration/test-compressed-indexes @@ -5,7 +5,7 @@ TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment -configcompression '.' 'gz' # only gz is supported for this, so ensure it is used +configcompression '.' 'xz' 'gz' configarchitecture "i386" buildsimplenativepackage "testpkg" "i386" "1.0" @@ -32,13 +32,13 @@ testrun() { if [ "$1" = "compressed" ]; then ! test -e rootdir/var/lib/apt/lists/*_Packages || F=1 ! test -e rootdir/var/lib/apt/lists/*_Sources || F=1 - test -e rootdir/var/lib/apt/lists/*_Packages.gz || F=1 - test -e rootdir/var/lib/apt/lists/*_Sources.gz || F=1 + test -e rootdir/var/lib/apt/lists/*_Packages.xz || F=1 + test -e rootdir/var/lib/apt/lists/*_Sources.xz || F=1 else test -e rootdir/var/lib/apt/lists/*_Packages || F=1 test -e rootdir/var/lib/apt/lists/*_Sources || F=1 - ! test -e rootdir/var/lib/apt/lists/*_Packages.gz || F=1 - ! test -e rootdir/var/lib/apt/lists/*_Sources.gz || F=1 + ! test -e rootdir/var/lib/apt/lists/*_Packages.xz || F=1 + ! test -e rootdir/var/lib/apt/lists/*_Sources.xz || F=1 fi if [ -n "$F" ]; then ls -laR rootdir/var/lib/apt/lists/ @@ -84,10 +84,9 @@ msgmsg "File: Test with uncompressed indexes (update unchanged without pdiffs)" testrun rm -rf rootdir/var/lib/apt/lists -echo 'Acquire::CompressionTypes::Order:: "gz"; -Acquire::GzipIndexes "true";' > rootdir/etc/apt/apt.conf.d/02compressindex +echo 'Acquire::GzipIndexes "true";' > rootdir/etc/apt/apt.conf.d/02compressindex -testsuccess aptget update +testsuccess aptget update -o Debug::pkgAcquire::worker=1 msgmsg "File: Test with compressed indexes" testrun "compressed" @@ -118,14 +117,13 @@ msgmsg "HTTP: Test with uncompressed indexes (update unchanged without pdiffs)" testrun rm -rf rootdir/var/lib/apt/lists -echo 'Acquire::CompressionTypes::Order:: "gz"; -Acquire::GzipIndexes "true";' > rootdir/etc/apt/apt.conf.d/02compressindex +echo 'Acquire::GzipIndexes "true";' > rootdir/etc/apt/apt.conf.d/02compressindex testsuccess aptget update msgmsg "HTTP: Test with compressed indexes" testrun "compressed" -testsuccess aptget update -o Acquire::Pdiffs=1 +testsuccess aptget update -o Acquire::Pdiffs=1 -o debug::pkgAcquire::Worker=1 -o debug::pkgAcquire::Auth=1 msgmsg "HTTP: Test with compressed indexes (update unchanged with pdiffs)" testrun "compressed" -- cgit v1.2.3 From a1380a5c52062b25c9ed260b721239ed57929503 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 23 Sep 2014 14:57:10 +0200 Subject: fix tests --- test/integration/test-apt-progress-fd | 2 +- test/integration/test-apt-update-file | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-progress-fd b/test/integration/test-apt-progress-fd index c147c4517..af022f582 100755 --- a/test/integration/test-apt-progress-fd +++ b/test/integration/test-apt-progress-fd @@ -46,7 +46,7 @@ pmstatus:testing:100:Installed testing (amd64)" cat apt-progress.log exec 3> apt-progress.log testsuccess aptget install testing=0.8.15 --reinstall -y -o APT::Status-Fd=3 testequal "dlstatus:1:0:Retrieving file 1 of 1 -dlstatus:1:0:Retrieving file 1 of 1 +dlstatus:1:20:Retrieving file 1 of 1 pmstatus:dpkg-exec:0:Running dpkg pmstatus:testing:0:Installing testing (amd64) pmstatus:testing:20:Preparing testing (amd64) diff --git a/test/integration/test-apt-update-file b/test/integration/test-apt-update-file index fbcd473cc..e6332dc3b 100755 --- a/test/integration/test-apt-update-file +++ b/test/integration/test-apt-update-file @@ -14,7 +14,6 @@ configcompression 'bz2' 'gz' insertpackage 'unstable' 'foo' 'all' '1.0' -umask 022 setupaptarchive --no-update # ensure the archive is not writable @@ -27,10 +26,12 @@ aptget update -qq -o Debug::pkgAcquire::Auth=1 2> output.log # ensure that the hash of the uncompressed file was verified even on a local # ims hit canary="SHA512:$(bzcat aptarchive/dists/unstable/main/binary-amd64/Packages.bz2 | sha512sum |cut -f1 -d' ')" -grep -q "RecivedHash: $canary" output.log +grep -q -- "- $canary" output.log # foo is still available testsuccess aptget install -s foo # the cleanup should still work chmod 750 aptarchive/dists/unstable/main/binary-amd64 + + -- cgit v1.2.3 From 5f982b9d903b38bb5549479f0111d31e2695090c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 25 Sep 2014 11:52:41 +0200 Subject: rewrite compressed indexes test to check with all compressors Git-Dch: Ignore --- test/integration/framework | 30 ++++ .../test-bug-595691-empty-and-broken-archive-files | 33 +--- test/integration/test-compressed-indexes | 194 +++++++++++---------- 3 files changed, 135 insertions(+), 122 deletions(-) (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index ff010a5c4..7923e23d9 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -339,6 +339,36 @@ configcompression() { done > ${TMPWORKINGDIRECTORY}/rootdir/etc/testcase-compressor.conf } +forcecompressor() { + COMPRESSOR="$1" + COMPRESSOR_CMD="$1" + case $COMPRESSOR in + gzip) COMPRESS='gz';; + bzip2) COMPRESS='bz2';; + lzma) COMPRESS='lzma';; + xz) COMPRESS='xz';; + *) msgdie "Compressor $COMPRESSOR is unknown to framework, so can't be forced by forcecompressor!";; + esac + local CONFFILE="${TMPWORKINGDIRECTORY}/rootdir/etc/apt/apt.conf.d/00force-compressor" + echo "Acquire::CompressionTypes::Order { \"${COMPRESS}\"; }; +Dir::Bin::uncompressed \"/does/not/exist\"; +Dir::Bin::gzip \"/does/not/exist\"; +Dir::Bin::bzip2 \"/does/not/exist\"; +Dir::Bin::lzma \"/does/not/exist\"; +Dir::Bin::xz \"/does/not/exist\";" > "$CONFFILE" + if [ -e "/bin/${COMPRESSOR}" ]; then + echo "Dir::Bin::${COMPRESSOR} \"/bin/${COMPRESSOR}\";" >> "$CONFFILE" + elif [ -e "/usr/bin/${COMPRESSOR}" ]; then + echo "Dir::Bin::${COMPRESSOR} \"/usr/bin/${COMPRESSOR}\";" >> "$CONFFILE" + elif [ "${COMPRESSOR}" = 'lzma' ]; then + echo 'Dir::Bin::xz "/usr/bin/xz";' >> "$CONFFILE" + COMPRESSOR_CMD='xz --format=lzma' + else + msgtest 'Test for availability of compressor' "${COMPRESSOR}" + msgfail + fi +} + setupsimplenativepackage() { local NAME="$1" local ARCH="$2" diff --git a/test/integration/test-bug-595691-empty-and-broken-archive-files b/test/integration/test-bug-595691-empty-and-broken-archive-files index 23a638801..aea340203 100755 --- a/test/integration/test-bug-595691-empty-and-broken-archive-files +++ b/test/integration/test-bug-595691-empty-and-broken-archive-files @@ -48,37 +48,8 @@ createemptyfile() { rm -f aptarchive/Packages } -setupcompressor() { - COMPRESSOR="$1" - COMPRESSOR_CMD="$1" - case $COMPRESSOR in - gzip) COMPRESS="gz";; - bzip2) COMPRESS="bz2";; - lzma) COMPRESS="lzma";; - xz) COMPRESS="xz";; - esac - echo "Acquire::CompressionTypes::Order { \"${COMPRESS}\"; }; -Dir::Bin::uncompressed \"/does/not/exist\"; -Dir::Bin::gzip \"/does/not/exist\"; -Dir::Bin::bzip2 \"/does/not/exist\"; -Dir::Bin::lzma \"/does/not/exist\"; -Dir::Bin::xz \"/does/not/exist\";" > rootdir/etc/apt/apt.conf.d/00compressor - if [ -e "/bin/${COMPRESSOR}" ]; then - echo "Dir::Bin::${COMPRESSOR} \"/bin/${COMPRESSOR}\";" >> rootdir/etc/apt/apt.conf.d/00compressor - elif [ -e "/usr/bin/${COMPRESSOR}" ]; then - echo "Dir::Bin::${COMPRESSOR} \"/usr/bin/${COMPRESSOR}\";" >> rootdir/etc/apt/apt.conf.d/00compressor - elif [ "${COMPRESSOR}" = 'lzma' ]; then - echo "Dir::Bin::xz \"/usr/bin/xz\";" >> rootdir/etc/apt/apt.conf.d/00compressor - COMPRESSOR_CMD='xz --format=lzma' - else - msgtest "Test for availability of compressor" "${COMPRESSOR}" - msgfail - #exit 1 - fi -} - testoverfile() { - setupcompressor "$1" + forcecompressor "$1" createemptyfile 'en' testaptgetupdate 'Reading package lists...' "empty file en.$COMPRESS over file" @@ -100,7 +71,7 @@ E: Some index files failed to download. They have been ignored, or old ones used } testoverhttp() { - setupcompressor "$1" + forcecompressor "$1" createemptyfile 'en' testaptgetupdate "Get: http://localhost:8080 Packages [] diff --git a/test/integration/test-compressed-indexes b/test/integration/test-compressed-indexes index 819cbd35e..805ed5964 100755 --- a/test/integration/test-compressed-indexes +++ b/test/integration/test-compressed-indexes @@ -5,53 +5,68 @@ TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment -configcompression '.' 'xz' 'gz' -configarchitecture "i386" - -buildsimplenativepackage "testpkg" "i386" "1.0" -setupaptarchive - -GOODSHOW="$(aptcache show testpkg) -" -GOODPOLICY="$(aptcache policy testpkg)" -GOODSHOWSRC="$(aptcache showsrc testpkg) -" - -test $(echo "$GOODSHOW" | grep -e '^Package: testpkg' -e '^Version: 1.0' -e '^Architecture: i386' | wc -l) -eq 3 || msgdie 'show is broken' -testequal "$GOODSHOW" aptcache show testpkg -test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^ Candidate:' -e '^ Installed: (none)' -e '500 file:/' | wc -l) -eq 4 || msgdie 'policy is broken' -testequal "$GOODPOLICY" aptcache policy testpkg -test $(echo "$GOODSHOWSRC" | grep -e '^Package: testpkg' -e '^Format: 3.0 (native)' -e '^Files:' -e '^Checksums-Sha256:' | wc -l) -eq 4 || msgdie 'showsrc is broken' -testequal "$GOODSHOWSRC" aptcache showsrc testpkg - +configcompression '.' 'xz' 'bz2' 'lzma' 'gz' +configarchitecture 'i386' + +buildsimplenativepackage 'testpkg' 'i386' '1.0' + +buildaptarchive +setupdistsaptarchive +# fake a pdiff setup as apt wouldn't try pdiffs otherwise +find aptarchive -name 'Packages' -o -name 'Sources' | while read file; do + mkdir "${file}.diff" + PATCHINDEX="${file}.diff/Index" + echo 'SHA1-Current: adc83b19e793491b1c6ea0fd8b46cd9f32e592fc 0 +SHA1-History: + adc83b19e793491b1c6ea0fd8b46cd9f32e592fc 33053002 2010-08-18-2013.28 + ecfd1b19e793491b1c6ea123eabdcd9f32e592fc 33053001 2010-08-18-2013.29 +SHA1-Patches: + abc1fc0ac57cd83d41c63195a9342e2db5650257 19722 2010-08-18-0814.28 + dfe3444ac57cd83d41c63195a9342e2db5650257 19722 2010-08-18-0814.29' > $PATCHINDEX +done +generatereleasefiles +signreleasefiles testrun() { local F - if [ -e rootdir/var/lib/apt/lists/*localhost*Release ]; then - msgtest "Check if all index files are" "${1:-uncompressed}" - if [ "$1" = "compressed" ]; then - ! test -e rootdir/var/lib/apt/lists/*_Packages || F=1 - ! test -e rootdir/var/lib/apt/lists/*_Sources || F=1 - test -e rootdir/var/lib/apt/lists/*_Packages.xz || F=1 - test -e rootdir/var/lib/apt/lists/*_Sources.xz || F=1 - else - test -e rootdir/var/lib/apt/lists/*_Packages || F=1 - test -e rootdir/var/lib/apt/lists/*_Sources || F=1 - ! test -e rootdir/var/lib/apt/lists/*_Packages.xz || F=1 - ! test -e rootdir/var/lib/apt/lists/*_Sources.xz || F=1 - fi - if [ -n "$F" ]; then - ls -laR rootdir/var/lib/apt/lists/ - msgfail - else - msgpass - fi - msgtest "Check if package is downloadable" - testsuccess --nomsg aptget install -d testpkg - msgtest "\tdeb file is present"; testsuccess --nomsg test -f rootdir/var/cache/apt/archives/testpkg_1.0_i386.deb - aptget clean - msgtest "\tdeb file is gone"; testfailure --nomsg test -f rootdir/var/cache/apt/archives/testpkg_1.0_i386.deb + msgtest 'Check if all index files are' "${1:-uncompressed}" + if [ "$1" = 'compressed' ]; then + ! test -e rootdir/var/lib/apt/lists/*_Packages || F=1 + ! test -e rootdir/var/lib/apt/lists/*_Sources || F=1 + ! test -e rootdir/var/lib/apt/lists/*_Translation-en || F=1 + test -e rootdir/var/lib/apt/lists/*_Packages.${COMPRESS} || F=1 + test -e rootdir/var/lib/apt/lists/*_Sources.${COMPRESS} || F=1 + test -e rootdir/var/lib/apt/lists/*_Translation-en.${COMPRESS} || F=1 + # there is no point in trying pdiff if we have compressed indexes + # as we can't patch compressed files (well, we can, but what is the point?) + ! test -e rootdir/var/lib/apt/lists/*.IndexDiff || F=1 + else + # clear the faked pdiff indexes so the glob below works + rm -f rootdir/var/lib/apt/lists/*.IndexDiff + test -e rootdir/var/lib/apt/lists/*_Packages || F=1 + test -e rootdir/var/lib/apt/lists/*_Sources || F=1 + test -e rootdir/var/lib/apt/lists/*_Translation-en || F=1 + ! test -e rootdir/var/lib/apt/lists/*_Packages.* || F=1 + ! test -e rootdir/var/lib/apt/lists/*_Sources.* || F=1 + ! test -e rootdir/var/lib/apt/lists/*_Translation-en.* || F=1 fi + if [ -n "$F" ]; then + ls -laR rootdir/var/lib/apt/lists/ + msgfail + else + msgpass + fi + msgtest 'Check if package is downloadable' + testsuccess --nomsg aptget download testpkg + msgtest '\tdeb file is present'; testsuccess --nomsg test -f testpkg_1.0_i386.deb + rm testpkg_1.0_i386.deb + testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + testpkg +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst testpkg (1.0 unstable [i386]) +Conf testpkg (1.0 unstable [i386])' aptget install testpkg -s rm -f rootdir/var/cache/apt/pkgcache.bin rootdir/var/cache/apt/srcpkgcache.bin testequal "$GOODSHOW" aptcache show testpkg testequal "$GOODSHOW" aptcache show testpkg @@ -62,71 +77,68 @@ testrun() { testequal "$GOODSHOWSRC" aptcache showsrc testpkg testequal "$GOODSHOWSRC" aptcache showsrc testpkg aptget clean - msgtest "Check if the source is aptgetable" + msgtest 'Check if the source is aptgetable' testsuccess --nomsg aptget source testpkg - msgtest "\tdsc file is present"; testsuccess --nomsg test -f testpkg_1.0.dsc - msgtest "\tdirectory is present"; testsuccess --nomsg test -d testpkg-1.0 - rm -rf testpkg-1.0 + msgtest '\tdsc file is present'; testsuccess --nomsg test -f testpkg_1.0.dsc + msgtest '\tdirectory is present'; testsuccess --nomsg test -d testpkg-1.0 + rm -rf testpkg-1.0* testequal "$(aptcache show testpkg -o Acquire::Languages=none) " aptcache dumpavail } -echo 'Acquire::GzipIndexes "false";' > rootdir/etc/apt/apt.conf.d/02compressindex -msgmsg "File: Test with uncompressed indexes" -testrun +echo 'Debug::pkgAcquire::worker "true"; +debug::pkgAcquire::Auth "true"; +Debug::pkgAcquire::Diffs "true";' > rootdir/etc/apt/apt.conf.d/99debugconf -testsuccess aptget update -o Acquire::Pdiffs=1 -msgmsg "File: Test with uncompressed indexes (update unchanged with pdiffs)" -testrun +testovermethod() { + forcecompressor $2 -testsuccess aptget update -o Acquire::Pdiffs=0 -msgmsg "File: Test with uncompressed indexes (update unchanged without pdiffs)" -testrun + for INDEX in 'false' 'true'; do + rm -rf rootdir/var/lib/apt/lists + echo "Acquire::GzipIndexes \"${INDEX}\";" > rootdir/etc/apt/apt.conf.d/02compressindex + local INDCOMP + if [ "$INDEX" = 'false' ]; then + INDCOMP='uncompressed' + else + INDCOMP='compressed' + fi -rm -rf rootdir/var/lib/apt/lists -echo 'Acquire::GzipIndexes "true";' > rootdir/etc/apt/apt.conf.d/02compressindex + testsuccess aptget update + msgmsg "${1}: ${COMPRESSOR}: Test with $INDCOMP indexes" + testrun "$INDCOMP" -testsuccess aptget update -o Debug::pkgAcquire::worker=1 -msgmsg "File: Test with compressed indexes" -testrun "compressed" + testsuccess aptget update -o Acquire::Pdiffs=1 + msgmsg "${1}: ${COMPRESSOR}: Test with $INDCOMP indexes (update unchanged with pdiffs)" + testrun "$INDCOMP" -testsuccess aptget update -o Acquire::Pdiffs=1 -msgmsg "File: Test with compressed indexes (update unchanged with pdiffs)" -testrun "compressed" + testsuccess aptget update -o Acquire::Pdiffs=0 + msgmsg "${1}: ${COMPRESSOR}: Test with $INDCOMP indexes (update unchanged without pdiffs)" + testrun "$INDCOMP" -testsuccess aptget update -o Acquire::Pdiffs=0 -msgmsg "File: Test with compressed indexes (update unchanged without pdiffs)" -testrun "compressed" + rm rootdir/etc/apt/apt.conf.d/02compressindex + done +} -rm rootdir/etc/apt/apt.conf.d/02compressindex -changetowebserver testsuccess aptget update +GOODSHOW="$(aptcache show testpkg) +" +test $(echo "$GOODSHOW" | grep -e '^Package: testpkg' -e '^Version: 1.0' -e '^Architecture: i386' | wc -l) -eq 3 || msgdie 'show is broken' +testequal "$GOODSHOW" aptcache show testpkg +GOODSHOWSRC="$(aptcache showsrc testpkg) +" +test $(echo "$GOODSHOWSRC" | grep -e '^Package: testpkg' -e '^Format: 3.0 (native)' -e '^Files:' -e '^Checksums-Sha256:' | wc -l) -eq 4 || msgdie 'showsrc is broken' +testequal "$GOODSHOWSRC" aptcache showsrc testpkg GOODPOLICY="$(aptcache policy testpkg)" -test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^ Candidate:' -e '^ Installed: (none)' -e '500 http://' | wc -l) -eq 4 +test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^ Candidate:' -e '^ Installed: (none)' -e '500 file:/' | wc -l) -eq 4 || msgdie 'policy is broken' testequal "$GOODPOLICY" aptcache policy testpkg -msgmsg "HTTP: Test with uncompressed indexes" -testrun - -testsuccess aptget update -o Acquire::Pdiffs=1 -msgmsg "HTTP: Test with uncompressed indexes (update unchanged with pdiffs)" -testrun - -testsuccess aptget update -o Acquire::Pdiffs=0 -msgmsg "HTTP: Test with uncompressed indexes (update unchanged without pdiffs)" -testrun +for COMPRESSOR in 'gzip' 'bzip2' 'lzma' 'xz'; do testovermethod 'file' $COMPRESSOR; done +changetowebserver rm -rf rootdir/var/lib/apt/lists -echo 'Acquire::GzipIndexes "true";' > rootdir/etc/apt/apt.conf.d/02compressindex - testsuccess aptget update -msgmsg "HTTP: Test with compressed indexes" -testrun "compressed" - -testsuccess aptget update -o Acquire::Pdiffs=1 -o debug::pkgAcquire::Worker=1 -o debug::pkgAcquire::Auth=1 -msgmsg "HTTP: Test with compressed indexes (update unchanged with pdiffs)" -testrun "compressed" +GOODPOLICY="$(aptcache policy testpkg)" +test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^ Candidate:' -e '^ Installed: (none)' -e '500 http://' | wc -l) -eq 4 || msgdie 'policy is broken' +testequal "$GOODPOLICY" aptcache policy testpkg -testsuccess aptget update -o Acquire::Pdiffs=0 -msgmsg "HTTP: Test with compressed indexes (update unchanged without pdiffs)" -testrun "compressed" +for COMPRESSOR in 'gzip' 'bzip2' 'lzma' 'xz'; do testovermethod 'http' $COMPRESSOR; done -- cgit v1.2.3 From 2a884c612b10b27f4be2cc6dd689bfe448d9361a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 17 Aug 2014 12:30:21 +0200 Subject: fix progress output for (dist-)upgrade calculation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, we had a start and a done of the calculation printed by higher-level code, but this got intermixed by progress reporting from an external solver or the output of autoremove code… The higherlevel code is now only responsible for instantiating a progress object of its choosing (if it wants progress after all) and the rest will be handled by the upgrade code. Either it is used to show the progress of the external solver or the internal solver will give some hints about its overall progress. The later isn't really a proper progress as it will jump forward after each substep, but that is at least a bit better than before without any progress indication. Fixes also the 'strange' non-display of this progress line in -q=1, while all others are shown, which is reflected by all testcase changes. --- test/integration/test-allow-scores-for-all-dependency-types | 6 ++++++ test/integration/test-apt-get-upgrade | 3 +++ test/integration/test-bug-507998-dist-upgrade-recommends | 1 + test/integration/test-bug-591882-conkeror | 2 ++ test/integration/test-bug-605394-versioned-or-groups | 1 + test/integration/test-bug-612099-multiarch-conflicts | 2 ++ test/integration/test-bug-64141-install-dependencies-for-on-hold | 2 ++ test/integration/test-bug-657695-resolver-breaks-on-virtuals | 1 + test/integration/test-bug-675449-essential-are-protected | 1 + test/integration/test-bug-680041-apt-mark-holds-correctly | 4 ++++ test/integration/test-bug-686346-package-missing-architecture | 1 + test/integration/test-bug-735967-lib32-to-i386-unavailable | 2 ++ test/integration/test-bug-740843-versioned-up-down-breaks | 2 ++ test/integration/test-bug-758153-versioned-provides-support | 1 + test/integration/test-conflicts-loop | 1 + test/integration/test-pin-non-existent-package | 3 +++ .../test-prevent-markinstall-multiarch-same-versionscrew | 1 + test/integration/test-provides-gone-with-upgrade | 1 + test/integration/test-resolve-by-keep-new-recommends | 1 + test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard | 2 ++ .../test-ubuntu-bug-985852-pre-depends-or-group-ordering | 1 + .../test-very-tight-loop-configure-with-unpacking-new-packages | 1 + test/integration/test-xorg-break-providers | 2 ++ 23 files changed, 42 insertions(+) (limited to 'test/integration') diff --git a/test/integration/test-allow-scores-for-all-dependency-types b/test/integration/test-allow-scores-for-all-dependency-types index a5c98f3d6..d1bcf1130 100755 --- a/test/integration/test-allow-scores-for-all-dependency-types +++ b/test/integration/test-allow-scores-for-all-dependency-types @@ -39,6 +39,7 @@ insertinstalledpackage 'libdb-dev' 'amd64' '5.1.7' 'Depends: libdb5.1-dev' insertinstalledpackage 'libdb5.1-dev' 'amd64' '5.1.29-7' testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: libdb5.1-dev The following NEW packages will be installed: @@ -53,6 +54,7 @@ Conf libdb5.3-dev (5.3.28-3 unversioned [amd64]) Conf libdb-dev (5.3.0 unversioned [amd64])' aptget dist-upgrade -st unversioned testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: libdb5.1-dev The following NEW packages will be installed: @@ -71,21 +73,25 @@ insertinstalledpackage 'foo' 'amd64' '1' insertinstalledpackage 'bar' 'amd64' '1' testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages have been kept back: bar foo 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st unversioned testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages have been kept back: bar foo 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st versioned testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages have been kept back: bar foo 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st multipleno testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: foo The following packages will be upgraded: diff --git a/test/integration/test-apt-get-upgrade b/test/integration/test-apt-get-upgrade index 23446299c..5335c243a 100755 --- a/test/integration/test-apt-get-upgrade +++ b/test/integration/test-apt-get-upgrade @@ -31,6 +31,7 @@ setupaptarchive # Test if normal upgrade works as expected testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages have been kept back: upgrade-with-conflict upgrade-with-new-dep The following packages will be upgraded: @@ -42,6 +43,7 @@ Conf upgrade-simple (2.0 unstable [all])' aptget -s upgrade # Test if apt-get upgrade --with-new-pkgs works testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following NEW packages will be installed: new-dep The following packages have been kept back: @@ -59,6 +61,7 @@ Conf upgrade-with-new-dep (2.0 unstable [all])' aptget -s upgrade --with-new-pkg # Test if apt-get dist-upgrade works testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: conflicting-dep The following NEW packages will be installed: diff --git a/test/integration/test-bug-507998-dist-upgrade-recommends b/test/integration/test-bug-507998-dist-upgrade-recommends index 513421a94..f3b4e04fb 100755 --- a/test/integration/test-bug-507998-dist-upgrade-recommends +++ b/test/integration/test-bug-507998-dist-upgrade-recommends @@ -16,6 +16,7 @@ setupaptarchive testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: tshark wireshark-common 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. diff --git a/test/integration/test-bug-591882-conkeror b/test/integration/test-bug-591882-conkeror index e1c0b42d1..891ddb8b7 100755 --- a/test/integration/test-bug-591882-conkeror +++ b/test/integration/test-bug-591882-conkeror @@ -9,6 +9,7 @@ setupaptarchive UPGRADEFAIL="Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: conkeror libdatrie0 libkrb53 libxcb-xlib0 xulrunner-1.9 The following NEW packages will be installed: @@ -40,6 +41,7 @@ E: Trivial Only specified but this is not a trivial operation." UPGRADESUCCESS="Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: libdatrie0 libkrb53 libxcb-xlib0 xulrunner-1.9 The following NEW packages will be installed: diff --git a/test/integration/test-bug-605394-versioned-or-groups b/test/integration/test-bug-605394-versioned-or-groups index 0f09d2927..bb72d59e3 100755 --- a/test/integration/test-bug-605394-versioned-or-groups +++ b/test/integration/test-bug-605394-versioned-or-groups @@ -9,6 +9,7 @@ setupaptarchive testequal "Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: php5 php5-cgi 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. diff --git a/test/integration/test-bug-612099-multiarch-conflicts b/test/integration/test-bug-612099-multiarch-conflicts index 20dc3a7e5..c32600037 100755 --- a/test/integration/test-bug-612099-multiarch-conflicts +++ b/test/integration/test-bug-612099-multiarch-conflicts @@ -70,6 +70,7 @@ Conf foobar (1.0 stable [i386])' aptget install foobar/stable libc6 -st testing testequal 'Reading package lists... Building dependency tree... Reading state information... +Calculating upgrade... The following packages will be upgraded: libc6 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. @@ -168,6 +169,7 @@ Conf libc6-same:amd64 (1.0 stable [amd64])' aptget install libc6-same:amd64 -s - testequal 'Reading package lists... Building dependency tree... Reading state information... +Calculating upgrade... The following packages will be upgraded: libc6-same 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. diff --git a/test/integration/test-bug-64141-install-dependencies-for-on-hold b/test/integration/test-bug-64141-install-dependencies-for-on-hold index 9a9e7be10..9e6c223a8 100755 --- a/test/integration/test-bug-64141-install-dependencies-for-on-hold +++ b/test/integration/test-bug-64141-install-dependencies-for-on-hold @@ -21,6 +21,7 @@ setupaptarchive testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: oldcrap The following NEW packages will be installed: @@ -35,6 +36,7 @@ testsuccess aptmark hold apt testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages have been kept back: apt The following packages will be upgraded: diff --git a/test/integration/test-bug-657695-resolver-breaks-on-virtuals b/test/integration/test-bug-657695-resolver-breaks-on-virtuals index e9b27cfcd..1b92a04fe 100755 --- a/test/integration/test-bug-657695-resolver-breaks-on-virtuals +++ b/test/integration/test-bug-657695-resolver-breaks-on-virtuals @@ -18,6 +18,7 @@ setupaptarchive testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: xserver-xorg-video-driver1 xserver-xorg-video-driver10 xserver-xorg-video-driver11 xserver-xorg-video-driver12 diff --git a/test/integration/test-bug-675449-essential-are-protected b/test/integration/test-bug-675449-essential-are-protected index 7d8cc3484..2a27c62b1 100755 --- a/test/integration/test-bug-675449-essential-are-protected +++ b/test/integration/test-bug-675449-essential-are-protected @@ -69,6 +69,7 @@ Purg pkg-none-foreign:i386 [1]' aptget purge pkg-none-foreign:i386 -s testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following NEW packages will be installed: pkg-depends-new:i386 pkg-none-new The following packages will be upgraded: diff --git a/test/integration/test-bug-680041-apt-mark-holds-correctly b/test/integration/test-bug-680041-apt-mark-holds-correctly index 2e5e39c8e..3f40c23dc 100755 --- a/test/integration/test-bug-680041-apt-mark-holds-correctly +++ b/test/integration/test-bug-680041-apt-mark-holds-correctly @@ -19,6 +19,7 @@ runtests() { testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: pkgall pkgarch 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. @@ -30,6 +31,7 @@ E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgr testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages have been kept back: pkgarch The following packages will be upgraded: @@ -43,6 +45,7 @@ E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgr testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: pkgall pkgarch 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. @@ -54,6 +57,7 @@ E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgr testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages have been kept back: pkgall The following packages will be upgraded: diff --git a/test/integration/test-bug-686346-package-missing-architecture b/test/integration/test-bug-686346-package-missing-architecture index dc51861ab..8024f81da 100755 --- a/test/integration/test-bug-686346-package-missing-architecture +++ b/test/integration/test-bug-686346-package-missing-architecture @@ -53,6 +53,7 @@ testnopackage pkge:* # this difference seems so important that it has to be maintained … testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget dist-upgrade -s # pkgd has no update with an architecture diff --git a/test/integration/test-bug-735967-lib32-to-i386-unavailable b/test/integration/test-bug-735967-lib32-to-i386-unavailable index e9f3bf96d..826931fe4 100755 --- a/test/integration/test-bug-735967-lib32-to-i386-unavailable +++ b/test/integration/test-bug-735967-lib32-to-i386-unavailable @@ -33,6 +33,7 @@ testsuccess aptget update testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: lib32nss-mdns The following packages will be upgraded: @@ -60,6 +61,7 @@ testsuccess aptget update testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following NEW packages will be installed: libnss-mdns:i386 libnss-mdns-i386:i386 The following packages will be upgraded: diff --git a/test/integration/test-bug-740843-versioned-up-down-breaks b/test/integration/test-bug-740843-versioned-up-down-breaks index cb035a71f..9426ffad1 100755 --- a/test/integration/test-bug-740843-versioned-up-down-breaks +++ b/test/integration/test-bug-740843-versioned-up-down-breaks @@ -24,6 +24,7 @@ setupaptarchive testequalor2 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: foo-driver libfoo libfoo:i386 libgl1-foo-glx libgl1-foo-glx:i386 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. @@ -38,6 +39,7 @@ Conf libgl1-foo-glx:i386 (2 stable [i386]) Conf libgl1-foo-glx (2 stable [amd64]) Conf foo-driver (2 stable [amd64])' 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: foo-driver libfoo libfoo:i386 libgl1-foo-glx libgl1-foo-glx:i386 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. diff --git a/test/integration/test-bug-758153-versioned-provides-support b/test/integration/test-bug-758153-versioned-provides-support index 2904ae5a1..21f9123c9 100755 --- a/test/integration/test-bug-758153-versioned-provides-support +++ b/test/integration/test-bug-758153-versioned-provides-support @@ -28,6 +28,7 @@ setupaptarchive testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: webapp webserver 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. diff --git a/test/integration/test-conflicts-loop b/test/integration/test-conflicts-loop index a2c411aaf..0906ef8fa 100755 --- a/test/integration/test-conflicts-loop +++ b/test/integration/test-conflicts-loop @@ -17,6 +17,7 @@ setupaptarchive testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib 3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. diff --git a/test/integration/test-pin-non-existent-package b/test/integration/test-pin-non-existent-package index 35de22115..c567e5285 100755 --- a/test/integration/test-pin-non-existent-package +++ b/test/integration/test-pin-non-existent-package @@ -26,6 +26,7 @@ testcandidate rapt '0.8.15' testequal 'N: Unable to locate package doesntexist' aptcache policy doesntexist -q=0 testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget dist-upgrade --trivial-only echo 'Package: rapt @@ -36,6 +37,7 @@ testcandidate rapt '(none)' testequal 'N: Unable to locate package doesntexist' aptcache policy doesntexist -q=0 testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget dist-upgrade --trivial-only echo ' @@ -55,6 +57,7 @@ testequal 'N: Unable to locate package doesntexist' aptcache policy doesntexist testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget dist-upgrade --trivial-only echo 'Package: arch:amd64 diff --git a/test/integration/test-prevent-markinstall-multiarch-same-versionscrew b/test/integration/test-prevent-markinstall-multiarch-same-versionscrew index d647856cb..9d2ea2d5d 100755 --- a/test/integration/test-prevent-markinstall-multiarch-same-versionscrew +++ b/test/integration/test-prevent-markinstall-multiarch-same-versionscrew @@ -43,6 +43,7 @@ setupaptarchive testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: out-of-sync-gone-foreign:i386 out-of-sync-gone-native The following packages have been kept back: diff --git a/test/integration/test-provides-gone-with-upgrade b/test/integration/test-provides-gone-with-upgrade index 70384ce29..3b4bc2d04 100755 --- a/test/integration/test-provides-gone-with-upgrade +++ b/test/integration/test-provides-gone-with-upgrade @@ -15,6 +15,7 @@ setupaptarchive testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following NEW packages will be installed: libapt-pkg4.10 The following packages will be upgraded: diff --git a/test/integration/test-resolve-by-keep-new-recommends b/test/integration/test-resolve-by-keep-new-recommends index 8134b76aa..6b1772877 100755 --- a/test/integration/test-resolve-by-keep-new-recommends +++ b/test/integration/test-resolve-by-keep-new-recommends @@ -13,6 +13,7 @@ setupaptarchive UPGRADE_KEEP="Reading package lists... Building dependency tree... +Calculating upgrade... The following packages have been kept back: foo 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded." diff --git a/test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard b/test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard index 2f2d384e1..45f70a898 100755 --- a/test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard +++ b/test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard @@ -27,6 +27,7 @@ setupaptarchive # discourage keeping obsolete high-priority packages … testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be REMOVED: not-downloadable The following packages will be upgraded: @@ -43,6 +44,7 @@ done testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages have been kept back: upgradable 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.' aptget -s dist-upgrade diff --git a/test/integration/test-ubuntu-bug-985852-pre-depends-or-group-ordering b/test/integration/test-ubuntu-bug-985852-pre-depends-or-group-ordering index 462acad00..d2b6b9bad 100755 --- a/test/integration/test-ubuntu-bug-985852-pre-depends-or-group-ordering +++ b/test/integration/test-ubuntu-bug-985852-pre-depends-or-group-ordering @@ -14,6 +14,7 @@ setupaptarchive testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: custom 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. diff --git a/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages b/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages index c1d454f88..202716636 100755 --- a/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages +++ b/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages @@ -28,6 +28,7 @@ setupaptarchive testequalor2 'Reading package lists... Building dependency tree... +Calculating upgrade... The following NEW packages will be installed: ure The following packages will be upgraded: diff --git a/test/integration/test-xorg-break-providers b/test/integration/test-xorg-break-providers index 139d2c915..0be57d979 100755 --- a/test/integration/test-xorg-break-providers +++ b/test/integration/test-xorg-break-providers @@ -26,6 +26,7 @@ E: Trivial Only specified but this is not a trivial operation.' aptget install x testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: xserver-xorg-core xserver-xorg-video-intel 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. @@ -35,6 +36,7 @@ E: Trivial Only specified but this is not a trivial operation.' aptget upgrade - testequal 'Reading package lists... Building dependency tree... +Calculating upgrade... The following packages will be upgraded: xserver-xorg-core xserver-xorg-video-intel 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. -- cgit v1.2.3 From 12841e8320aa499554ac50b102b222900bb1b879 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 24 Jan 2014 23:48:11 +0100 Subject: use apt-key adv (+ gnupg) instead of gpgv for verify apt-key does the keyring merge as we need it, so we just call it instead of reimplementing it to do the merging before gpgv. This means we don't use gpgv anymore (we never depended on it explicitly - bad style), but it also means that the message in apt-cdrom add is a bit less friendly as it says loudly "untrusted key", but for a one-time command its okay. --- test/integration/framework | 1 + test/integration/test-apt-cdrom | 2 +- test/integration/test-apt-key-net-update | 7 +++++- .../integration/test-bug-733028-gpg-resource-limit | 27 ++++++++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100755 test/integration/test-bug-733028-gpg-resource-limit (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index 7cf4d8a6d..a9ba0014f 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -223,6 +223,7 @@ setupenvironment() { echo "Debug::NoLocking \"true\";" >> aptconfig.conf echo "APT::Get::Show-User-Simulation-Note \"false\";" >> aptconfig.conf echo "Dir::Bin::Methods \"${METHODSDIR}\";" >> aptconfig.conf + echo "Dir::Bin::apt-key \"${BUILDDIRECTORY}/apt-key\";" >> aptconfig.conf echo "Dir::Bin::dpkg \"fakeroot\";" >> aptconfig.conf echo "DPKG::options:: \"dpkg\";" >> aptconfig.conf echo "DPKG::options:: \"--root=${TMPWORKINGDIRECTORY}/rootdir\";" >> aptconfig.conf diff --git a/test/integration/test-apt-cdrom b/test/integration/test-apt-cdrom index 8d8fdf167..9fbc4288d 100755 --- a/test/integration/test-apt-cdrom +++ b/test/integration/test-apt-cdrom @@ -29,7 +29,7 @@ aptcdromlog() { test ! -e rootdir/media/cdrom || echo "CD-ROM is mounted, but shouldn't be!" test -e rootdir/media/cdrom-unmounted || echo "Unmounted CD-ROM doesn't exist, but it should!" aptcdrom "$@" -o quiet=1 >rootdir/tmp/apt-cdrom.log 2>&1 aptkey.list +testfileequal ./aptkey.list 'pub 1024R/F68C85A3 2013-12-19 +pub 2048R/DBAC8DAE 2010-08-18' # now try a different one # setup archive-keyring @@ -40,4 +43,6 @@ echo 'APT::Key::Net-Update-Enabled "1";' >> ./aptconfig.conf testequal "Checking for new archive signing keys now Key 'E8525D47528144E2' not added. It is not signed with a master key" aptkey --fakeroot net-update - +aptkey list | grep '^pub' > aptkey.list +testfileequal ./aptkey.list 'pub 1024R/F68C85A3 2013-12-19 +pub 2048R/DBAC8DAE 2010-08-18' diff --git a/test/integration/test-bug-733028-gpg-resource-limit b/test/integration/test-bug-733028-gpg-resource-limit new file mode 100755 index 000000000..f9c804963 --- /dev/null +++ b/test/integration/test-bug-733028-gpg-resource-limit @@ -0,0 +1,27 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'i386' + +insertpackage 'unstable' 'foobar' 'all' '1' + +setupaptarchive --no-update + +for i in $(seq 1 50); do + touch rootdir/etc/apt/trusted.gpg.d/emptykey-${i}.gpg +done + +aptkey list | grep '^pub' > aptkey.list +testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' + +msgtest 'Test for no gpg errors/warnings in' 'apt-get update' +aptget update > update.log 2>&1 +if grep -iq 'GPG' update.log; then + msgfail + cat update.log +else + msgpass +fi -- cgit v1.2.3 From 93d0d08cdd6854f9bfb779c13b5b78cd6ed263aa Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 26 Jan 2014 18:28:50 +0100 Subject: support gnupg2 as drop-in replacement for gnupg If both are available APT will still prefer gpg over gpg2 as it is a bit more lightweight, but it shouldn't be a problem to use one or the other (at least at the moment, who knows what will happen in the future). --- test/integration/test-apt-key | 191 ++++++++++++++++++++++++------------------ 1 file changed, 108 insertions(+), 83 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-key b/test/integration/test-apt-key index 68b3f9710..99ce855d4 100755 --- a/test/integration/test-apt-key +++ b/test/integration/test-apt-key @@ -7,101 +7,126 @@ TESTDIR=$(readlink -f $(dirname $0)) setupenvironment configarchitecture 'amd64' -msgtest 'Check that paths in list output are not' 'double-slashed' -aptkey list 2>&1 | grep -q '//' && msgfail || msgpass - -msgtest 'Check that paths in finger output are not' 'double-slashed' -aptkey finger 2>&1 | grep -q '//' && msgfail || msgpass +# start from a clean plate again +cleanplate() { + rm -rf rootdir/etc/apt/trusted.gpg.d/ rootdir/etc/apt/trusted.gpg + mkdir rootdir/etc/apt/trusted.gpg.d/ +} echo 'APT::Key::ArchiveKeyring "./keys/joesixpack.pub"; APT::Key::RemovedKeys "./keys/rexexpired.pub";' > rootdir/etc/apt/apt.conf.d/aptkey.conf -aptkey list | grep '^pub' > aptkey.list -testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' +testrun() { + cleanplate + ln -sf ${TMPWORKINGDIRECTORY}/keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg -testequal 'gpg: key DBAC8DAE: "Joe Sixpack (APT Testcases Dummy) " not changed -gpg: Total number processed: 1 -gpg: unchanged: 1' aptkey --fakeroot update + msgtest 'Check that paths in list output are not' 'double-slashed' + aptkey list 2>&1 | grep -q '//' && msgfail || msgpass -aptkey list | grep '^pub' > aptkey.list -testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' + msgtest 'Check that paths in finger output are not' 'double-slashed' + aptkey finger 2>&1 | grep -q '//' && msgfail || msgpass -testsuccess aptkey --fakeroot add ./keys/rexexpired.pub - -aptkey list | grep '^pub' > aptkey.list -testfileequal ./aptkey.list 'pub 2048R/27CE74F9 2013-07-12 [expired: 2013-07-13] -pub 2048R/DBAC8DAE 2010-08-18' + aptkey list | grep '^pub' > aptkey.list + testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' -msgtest 'Execute update again to trigger removal of' 'Rex Expired key' -testsuccess --nomsg aptkey --fakeroot update + testequal 'gpg: key DBAC8DAE: "Joe Sixpack (APT Testcases Dummy) " not changed +gpg: Total number processed: 1 +gpg: unchanged: 1' aptkey --fakeroot update -aptkey list | grep '^pub' > aptkey.list -testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' + aptkey list | grep '^pub' > aptkey.list + testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' -msgtest "Try to remove a key which exists, but isn't in the" 'forced keyring' -testsuccess --nomsg aptkey --fakeroot --keyring rootdir/etc/apt/trusted.gpg del DBAC8DAE + testsuccess aptkey --fakeroot add ./keys/rexexpired.pub -aptkey list | grep '^pub' > aptkey.list -testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' + aptkey list | grep '^pub' > aptkey.list + testfileequal ./aptkey.list 'pub 2048R/27CE74F9 2013-07-12 [expired: 2013-07-13] +pub 2048R/DBAC8DAE 2010-08-18' -testsuccess aptkey --fakeroot del DBAC8DAE -testempty aptkey list + msgtest 'Execute update again to trigger removal of' 'Rex Expired key' + testsuccess --nomsg aptkey --fakeroot update + + aptkey list | grep '^pub' > aptkey.list + testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' + + msgtest "Try to remove a key which exists, but isn't in the" 'forced keyring' + testsuccess --nomsg aptkey --fakeroot --keyring rootdir/etc/apt/trusted.gpg del DBAC8DAE + + aptkey list | grep '^pub' > aptkey.list + testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' + + testsuccess aptkey --fakeroot del DBAC8DAE + testempty aptkey list + + msgtest 'Test key removal with' 'single key in real file' + cleanplate + cp -a keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + testsuccess --nomsg aptkey --fakeroot del DBAC8DAE + testempty aptkey list + testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + testsuccess cmp keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ + + msgtest 'Test key removal with' 'single key in softlink' + cleanplate + ln -s $(readlink -f ./keys/joesixpack.pub) rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + testsuccess --nomsg aptkey --fakeroot del DBAC8DAE + testempty aptkey list + testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + testsuccess test -L rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ + + cleanplate + testsuccess aptkey --fakeroot add ./keys/joesixpack.pub + testsuccess aptkey --fakeroot add ./keys/marvinparanoid.pub + aptkey list | grep '^pub' > aptkey.list + testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18 +pub 2048R/528144E2 2011-01-16' + cp -a rootdir/etc/apt/trusted.gpg keys/testcase-multikey.pub # store for reuse + + msgtest 'Test key removal with' 'multi key in real file' + cleanplate + cp -a keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg + testsuccess --nomsg aptkey --fakeroot del DBAC8DAE + aptkey list | grep '^pub' > aptkey.list + testfileequal ./aptkey.list 'pub 2048R/528144E2 2011-01-16' + testsuccess cmp keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ + + msgtest 'Test key removal with' 'multi key in softlink' + cleanplate + ln -s $(readlink -f ./keys/testcase-multikey.pub) rootdir/etc/apt/trusted.gpg.d/multikey.gpg + testsuccess --nomsg aptkey --fakeroot del DBAC8DAE + aptkey list | grep '^pub' > aptkey.list + testfileequal ./aptkey.list 'pub 2048R/528144E2 2011-01-16' + testsuccess cmp keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ + testsuccess test ! -L rootdir/etc/apt/trusted.gpg.d/multikey.gpg + testsuccess test -L rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ + + msgtest 'Test key removal with' 'multiple files including key' + cleanplate + cp -a keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + cp -a keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg + testsuccess --nomsg aptkey --fakeroot del DBAC8DAE + aptkey list | grep '^pub' > aptkey.list + testfileequal ./aptkey.list 'pub 2048R/528144E2 2011-01-16' + testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + testsuccess cmp keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ + testsuccess cmp keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ +} -# start from a clean plate again -cleanplate() { - rm -rf rootdir/etc/apt/trusted.gpg.d/ rootdir/etc/apt/trusted.gpg - mkdir rootdir/etc/apt/trusted.gpg.d/ +setupgpgcommand() { + echo "APT::Key::GPGCommand \"$1\";" > rootdir/etc/apt/apt.conf.d/00gpgcmd + msgtest 'Test that apt-key uses for the following tests command' "$1" + aptkey adv --version >aptkey.version 2>&1 + if grep -q "^Executing: $1 --" aptkey.version; then + msgpass + else + cat aptkey.version + msgfail + fi } -msgtest 'Test key removal with' 'single key in real file' -cleanplate -cp -a keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg -testsuccess --nomsg aptkey --fakeroot del DBAC8DAE -testempty aptkey list -testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg -testsuccess cmp keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ - -msgtest 'Test key removal with' 'single key in softlink' -cleanplate -ln -s $(readlink -f ./keys/joesixpack.pub) rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg -testsuccess --nomsg aptkey --fakeroot del DBAC8DAE -testempty aptkey list -testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg -testsuccess test -L rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ - -cleanplate -testsuccess aptkey --fakeroot add ./keys/joesixpack.pub -testsuccess aptkey --fakeroot add ./keys/marvinparanoid.pub -aptkey list | grep '^pub' > aptkey.list -testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18 -pub 2048R/528144E2 2011-01-16' -cp -a rootdir/etc/apt/trusted.gpg keys/testcase-multikey.pub # store for reuse - -msgtest 'Test key removal with' 'multi key in real file' -cleanplate -cp -a keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg -testsuccess --nomsg aptkey --fakeroot del DBAC8DAE -aptkey list | grep '^pub' > aptkey.list -testfileequal ./aptkey.list 'pub 2048R/528144E2 2011-01-16' -testsuccess cmp keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ - -msgtest 'Test key removal with' 'multi key in softlink' -cleanplate -ln -s $(readlink -f ./keys/testcase-multikey.pub) rootdir/etc/apt/trusted.gpg.d/multikey.gpg -testsuccess --nomsg aptkey --fakeroot del DBAC8DAE -aptkey list | grep '^pub' > aptkey.list -testfileequal ./aptkey.list 'pub 2048R/528144E2 2011-01-16' -testsuccess cmp keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ -testsuccess test ! -L rootdir/etc/apt/trusted.gpg.d/multikey.gpg -testsuccess test -L rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ - -msgtest 'Test key removal with' 'multiple files including key' -cleanplate -cp -a keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg -cp -a keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg -testsuccess --nomsg aptkey --fakeroot del DBAC8DAE -aptkey list | grep '^pub' > aptkey.list -testfileequal ./aptkey.list 'pub 2048R/528144E2 2011-01-16' -testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg -testsuccess cmp keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ -testsuccess cmp keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ +# run with default (whatever this is) +testrun +# run with … +setupgpgcommand 'gpg' +testrun +setupgpgcommand 'gpg2' +testrun -- cgit v1.2.3 From f1e1abd88a2a7f147c79b99956f88d37ab14e038 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 26 Jan 2014 19:23:58 +0100 Subject: use apt-key to wrap gpg calls in testcases beside testing apt-key a bit it also avoids duplicating gpghome setup code in apt-key and the test framework Git-Dch: Ignore --- test/integration/framework | 40 +++++++++------------------------------- 1 file changed, 9 insertions(+), 31 deletions(-) (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index a9ba0014f..1ab01b20a 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -133,13 +133,6 @@ gdb() { shift runapt command gdb --quiet -ex run "${BUILDDIRECTORY}/$CMD" --args "${BUILDDIRECTORY}/$CMD" "$@" } -gpg() { - # see apt-key for the whole trickery. Setup is done in setupenvironment - command gpg --ignore-time-conflict --no-options --no-default-keyring \ - --homedir "${TMPWORKINGDIRECTORY}/gnupghome" \ - --no-auto-check-trustdb --trust-model always \ - "$@" -} exitwithstatus() { # error if we about to overflow, but ... @@ -239,19 +232,6 @@ setupenvironment() { echo "Apt::Cmd::Disable-Script-Warning \"1\";" > rootdir/etc/apt/apt.conf.d/apt-binary configcompression '.' 'gz' #'bz2' 'lzma' 'xz' - # gpg needs a trustdb to function, but it can't be invalid (not even empty) - # see also apt-key where this trickery comes from: - local TRUSTDBDIR="${TMPWORKINGDIRECTORY}/gnupghome" - mkdir "$TRUSTDBDIR" - chmod 700 "$TRUSTDBDIR" - # We also don't use a secret keyring, of course, but gpg panics and - # implodes if there isn't one available - and writeable for imports - local SECRETKEYRING="${TRUSTDBDIR}/secring.gpg" - touch $SECRETKEYRING - # now create the trustdb with an (empty) dummy keyring - # newer gpg versions are fine without it, but play it safe for now - gpg --quiet --check-trustdb --secret-keyring $SECRETKEYRING --keyring $SECRETKEYRING >/dev/null 2>&1 - # cleanup the environment a bit # prefer our apt binaries over the system apt binaries export PATH="${BUILDDIRECTORY}:${PATH}:/usr/local/sbin:/usr/sbin:/sbin" @@ -449,8 +429,8 @@ Package: $NAME" >> ${BUILDDIR}/debian/control | while read SRC; do echo "pool/${SRC}" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.srclist # if expr match "${SRC}" '.*\.dsc' >/dev/null 2>&1; then -# gpg --yes --secret-keyring ./keys/joesixpack.sec \ -# --keyring ./keys/joesixpack.pub --default-key 'Joe Sixpack' \ +# aptkey --keyring ./keys/joesixpack.pub --quiet adv --yes \ +# --secret-keyring ./keys/joesixpack.sec --default-key 'Joe Sixpack' \ # --clearsign -o "${BUILDDIR}/../${SRC}.sign" "${BUILDDIR}/../$SRC" # mv "${BUILDDIR}/../${SRC}.sign" "${BUILDDIR}/../$SRC" # fi @@ -835,8 +815,9 @@ setupaptarchive() { signreleasefiles() { local SIGNER="${1:-Joe Sixpack}" - local GPG="gpg --batch --yes" - msgninfo "\tSign archive with $SIGNER key… " + local KEY="keys/$(echo "$SIGNER" | tr 'A-Z' 'a-z' | sed 's# ##g')" + local GPG="aptkey --quiet --keyring ${KEY}.pub adv --batch --yes --secret-keyring ${KEY}.sec" + msgninfo "\tSign archive with $SIGNER key $KEY… " local REXKEY='keys/rexexpired' local SECEXPIREBAK="${REXKEY}.sec.bak" local PUBEXPIREBAK="${REXKEY}.pub.bak" @@ -852,17 +833,14 @@ signreleasefiles() { cp $SECUNEXPIRED ${REXKEY}.sec cp $PUBUNEXPIRED ${REXKEY}.pub else - printf "expire\n1w\nsave\n" | $GPG --keyring ${REXKEY}.pub --secret-keyring ${REXKEY}.sec --command-fd 0 --edit-key "${SIGNER}" >/dev/null 2>&1 || true + if ! printf "expire\n1w\nsave\n" | $GPG --default-key "$SIGNER" --command-fd 0 --edit-key "${SIGNER}" >setexpire.gpg 2>&1; then + cat setexpire.gpg + exit 1 + fi cp ${REXKEY}.sec $SECUNEXPIRED cp ${REXKEY}.pub $PUBUNEXPIRED fi fi - for KEY in $(find keys/ -name '*.sec'); do - GPG="$GPG --secret-keyring $KEY" - done - for KEY in $(find keys/ -name '*.pub'); do - GPG="$GPG --keyring $KEY" - done for RELEASE in $(find aptarchive/ -name Release); do $GPG --default-key "$SIGNER" --armor --detach-sign --sign --output ${RELEASE}.gpg ${RELEASE} local INRELEASE="$(echo "${RELEASE}" | sed 's#/Release$#/InRelease#')" -- cgit v1.2.3 From 38005d8b24bb81f4862d2c2a228e4a49a2af4ccd Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 27 Jan 2014 16:59:46 +0100 Subject: add a test for apt-key export{,all} Git-Dch: Ignore --- test/integration/test-apt-key | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'test/integration') diff --git a/test/integration/test-apt-key b/test/integration/test-apt-key index 99ce855d4..e863e54a4 100755 --- a/test/integration/test-apt-key +++ b/test/integration/test-apt-key @@ -42,6 +42,13 @@ gpg: unchanged: 1' aptkey --fakeroot update testfileequal ./aptkey.list 'pub 2048R/27CE74F9 2013-07-12 [expired: 2013-07-13] pub 2048R/DBAC8DAE 2010-08-18' + msgtest 'Check that Sixpack key can be' 'exported' + aptkey export 'Sixpack' > aptkey.export + aptkey --keyring rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg exportall > aptkey.exportall + testsuccess --nomsg cmp aptkey.export aptkey.exportall + testsuccess test -s aptkey.export + testsuccess test -s aptkey.exportall + msgtest 'Execute update again to trigger removal of' 'Rex Expired key' testsuccess --nomsg aptkey --fakeroot update -- cgit v1.2.3 From ba72845c07b2682f251dc7661869d20095260f8f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 27 Jan 2014 17:04:53 +0100 Subject: allow to specify fingerprints in 'apt-key del' --- test/integration/test-apt-key | 8 ++++++++ test/integration/test-apt-key-net-update | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-key b/test/integration/test-apt-key index e863e54a4..6bece40d7 100755 --- a/test/integration/test-apt-key +++ b/test/integration/test-apt-key @@ -72,6 +72,14 @@ pub 2048R/DBAC8DAE 2010-08-18' testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg testsuccess cmp keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ + msgtest 'Test key removal with' 'fingerprint' + cleanplate + cp -a keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + testsuccess --nomsg aptkey --fakeroot del 34A8E9D18DB320F367E8EAA05A90D141DBAC8DAE + testempty aptkey list + testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + testsuccess cmp keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ + msgtest 'Test key removal with' 'single key in softlink' cleanplate ln -s $(readlink -f ./keys/joesixpack.pub) rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg diff --git a/test/integration/test-apt-key-net-update b/test/integration/test-apt-key-net-update index b5fb796d0..b3c118555 100755 --- a/test/integration/test-apt-key-net-update +++ b/test/integration/test-apt-key-net-update @@ -41,7 +41,7 @@ echo 'APT::Key::Net-Update-Enabled "1";' >> ./aptconfig.conf # test against the "real" webserver testequal "Checking for new archive signing keys now -Key 'E8525D47528144E2' not added. It is not signed with a master key" aptkey --fakeroot net-update +Key 'DE66AECA9151AFA1877EC31DE8525D47528144E2' not added. It is not signed with a master key" aptkey --fakeroot net-update aptkey list | grep '^pub' > aptkey.list testfileequal ./aptkey.list 'pub 1024R/F68C85A3 2013-12-19 -- cgit v1.2.3 From bd7fb5aa31f58917e8630f2981e78d190d465198 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 27 Jan 2014 18:26:44 +0100 Subject: add --secret-keyring option for apt-key For some advanced usecases it might be handy to specify the secret keyring to be used (e.g. as it is used in the testcases), but specifying it via a normal option for gnupg might not be available forever: http://lists.gnupg.org/pipermail/gnupg-users/2013-August/047180.html Git-Dch: Ignore --- test/integration/framework | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index 1ab01b20a..50f16fb46 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -429,8 +429,8 @@ Package: $NAME" >> ${BUILDDIR}/debian/control | while read SRC; do echo "pool/${SRC}" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.srclist # if expr match "${SRC}" '.*\.dsc' >/dev/null 2>&1; then -# aptkey --keyring ./keys/joesixpack.pub --quiet adv --yes \ -# --secret-keyring ./keys/joesixpack.sec --default-key 'Joe Sixpack' \ +# aptkey --keyring ./keys/joesixpack.pub --secret-keyring ./keys/joesixpack.sec --quiet \ +# adv --yes --default-key 'Joe Sixpack' \ # --clearsign -o "${BUILDDIR}/../${SRC}.sign" "${BUILDDIR}/../$SRC" # mv "${BUILDDIR}/../${SRC}.sign" "${BUILDDIR}/../$SRC" # fi @@ -816,7 +816,7 @@ setupaptarchive() { signreleasefiles() { local SIGNER="${1:-Joe Sixpack}" local KEY="keys/$(echo "$SIGNER" | tr 'A-Z' 'a-z' | sed 's# ##g')" - local GPG="aptkey --quiet --keyring ${KEY}.pub adv --batch --yes --secret-keyring ${KEY}.sec" + local GPG="aptkey --quiet --keyring ${KEY}.pub --secret-keyring ${KEY}.sec adv --batch --yes" msgninfo "\tSign archive with $SIGNER key $KEY… " local REXKEY='keys/rexexpired' local SECEXPIREBAK="${REXKEY}.sec.bak" -- cgit v1.2.3 From 0dae96a2b5e8ecd80a1b6e44961f1692ad4aec15 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 27 Jan 2014 22:07:16 +0100 Subject: use only one --keyring in gpg interactions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We were down to at most two keyrings before, but gnupg upstream plans dropping support for multiple keyrings in the longrun, so with a single keyring we hope to be future proof – and 'apt-key adv' isn't a problem anymore as every change to the keys is merged back, so we have now the same behavior as before, but support an unlimited amount of trusted.gpg.d keyrings. --- test/integration/test-apt-key | 57 +++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 18 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-key b/test/integration/test-apt-key index 6bece40d7..337b16a59 100755 --- a/test/integration/test-apt-key +++ b/test/integration/test-apt-key @@ -13,6 +13,13 @@ cleanplate() { mkdir rootdir/etc/apt/trusted.gpg.d/ } +testaptkeys() { + if ! aptkey list | grep '^pub' > aptkey.list; then + echo -n > aptkey.list + fi + testequal "$1" cat ./aptkey.list +} + echo 'APT::Key::ArchiveKeyring "./keys/joesixpack.pub"; APT::Key::RemovedKeys "./keys/rexexpired.pub";' > rootdir/etc/apt/apt.conf.d/aptkey.conf @@ -26,20 +33,17 @@ testrun() { msgtest 'Check that paths in finger output are not' 'double-slashed' aptkey finger 2>&1 | grep -q '//' && msgfail || msgpass - aptkey list | grep '^pub' > aptkey.list - testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' + testaptkeys 'pub 2048R/DBAC8DAE 2010-08-18' testequal 'gpg: key DBAC8DAE: "Joe Sixpack (APT Testcases Dummy) " not changed gpg: Total number processed: 1 gpg: unchanged: 1' aptkey --fakeroot update - aptkey list | grep '^pub' > aptkey.list - testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' + testaptkeys 'pub 2048R/DBAC8DAE 2010-08-18' testsuccess aptkey --fakeroot add ./keys/rexexpired.pub - aptkey list | grep '^pub' > aptkey.list - testfileequal ./aptkey.list 'pub 2048R/27CE74F9 2013-07-12 [expired: 2013-07-13] + testaptkeys 'pub 2048R/27CE74F9 2013-07-12 [expired: 2013-07-13] pub 2048R/DBAC8DAE 2010-08-18' msgtest 'Check that Sixpack key can be' 'exported' @@ -52,14 +56,12 @@ pub 2048R/DBAC8DAE 2010-08-18' msgtest 'Execute update again to trigger removal of' 'Rex Expired key' testsuccess --nomsg aptkey --fakeroot update - aptkey list | grep '^pub' > aptkey.list - testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' + testaptkeys 'pub 2048R/DBAC8DAE 2010-08-18' msgtest "Try to remove a key which exists, but isn't in the" 'forced keyring' testsuccess --nomsg aptkey --fakeroot --keyring rootdir/etc/apt/trusted.gpg del DBAC8DAE - aptkey list | grep '^pub' > aptkey.list - testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18' + testaptkeys 'pub 2048R/DBAC8DAE 2010-08-18' testsuccess aptkey --fakeroot del DBAC8DAE testempty aptkey list @@ -91,8 +93,7 @@ pub 2048R/DBAC8DAE 2010-08-18' cleanplate testsuccess aptkey --fakeroot add ./keys/joesixpack.pub testsuccess aptkey --fakeroot add ./keys/marvinparanoid.pub - aptkey list | grep '^pub' > aptkey.list - testfileequal ./aptkey.list 'pub 2048R/DBAC8DAE 2010-08-18 + testaptkeys 'pub 2048R/DBAC8DAE 2010-08-18 pub 2048R/528144E2 2011-01-16' cp -a rootdir/etc/apt/trusted.gpg keys/testcase-multikey.pub # store for reuse @@ -100,16 +101,14 @@ pub 2048R/528144E2 2011-01-16' cleanplate cp -a keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg testsuccess --nomsg aptkey --fakeroot del DBAC8DAE - aptkey list | grep '^pub' > aptkey.list - testfileequal ./aptkey.list 'pub 2048R/528144E2 2011-01-16' + testaptkeys 'pub 2048R/528144E2 2011-01-16' testsuccess cmp keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ msgtest 'Test key removal with' 'multi key in softlink' cleanplate ln -s $(readlink -f ./keys/testcase-multikey.pub) rootdir/etc/apt/trusted.gpg.d/multikey.gpg testsuccess --nomsg aptkey --fakeroot del DBAC8DAE - aptkey list | grep '^pub' > aptkey.list - testfileequal ./aptkey.list 'pub 2048R/528144E2 2011-01-16' + testaptkeys 'pub 2048R/528144E2 2011-01-16' testsuccess cmp keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ testsuccess test ! -L rootdir/etc/apt/trusted.gpg.d/multikey.gpg testsuccess test -L rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ @@ -119,11 +118,33 @@ pub 2048R/528144E2 2011-01-16' cp -a keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg cp -a keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg testsuccess --nomsg aptkey --fakeroot del DBAC8DAE - aptkey list | grep '^pub' > aptkey.list - testfileequal ./aptkey.list 'pub 2048R/528144E2 2011-01-16' + testaptkeys 'pub 2048R/528144E2 2011-01-16' testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg testsuccess cmp keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ testsuccess cmp keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg~ + + cleanplate + cp -a keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + cp -a keys/testcase-multikey.pub rootdir/etc/apt/trusted.gpg.d/multikey.gpg + testaptkeys 'pub 2048R/DBAC8DAE 2010-08-18 +pub 2048R/DBAC8DAE 2010-08-18 +pub 2048R/528144E2 2011-01-16' + msgtest 'Test merge-back of' 'added keys' + testsuccess --nomsg aptkey adv --batch --yes --import keys/rexexpired.pub + testaptkeys 'pub 2048R/27CE74F9 2013-07-12 [expired: 2013-07-13] +pub 2048R/DBAC8DAE 2010-08-18 +pub 2048R/DBAC8DAE 2010-08-18 +pub 2048R/528144E2 2011-01-16' + + msgtest 'Test merge-back of' 'removed keys' + testsuccess --nomsg aptkey adv --batch --yes --delete-keys 27CE74F9 + testaptkeys 'pub 2048R/DBAC8DAE 2010-08-18 +pub 2048R/DBAC8DAE 2010-08-18 +pub 2048R/528144E2 2011-01-16' + + msgtest 'Test merge-back of' 'removed duplicate keys' + testsuccess --nomsg aptkey adv --batch --yes --delete-keys DBAC8DAE + testaptkeys 'pub 2048R/528144E2 2011-01-16' } setupgpgcommand() { -- cgit v1.2.3 From 33a2267214eed2a11281c9f93b8cf10b4c436d94 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 6 Feb 2014 17:56:28 +0100 Subject: add --readonly option for apt-key adv Some advanced commands can be executed without the keyring being modified like --verify, so this adds an option to disable the mergeback and uses it for our gpg calling code. Git-Dch: Ignore --- test/integration/framework | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/integration') diff --git a/test/integration/framework b/test/integration/framework index 50f16fb46..fcdca34ce 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -429,7 +429,7 @@ Package: $NAME" >> ${BUILDDIR}/debian/control | while read SRC; do echo "pool/${SRC}" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.srclist # if expr match "${SRC}" '.*\.dsc' >/dev/null 2>&1; then -# aptkey --keyring ./keys/joesixpack.pub --secret-keyring ./keys/joesixpack.sec --quiet \ +# aptkey --keyring ./keys/joesixpack.pub --secret-keyring ./keys/joesixpack.sec --quiet --readonly \ # adv --yes --default-key 'Joe Sixpack' \ # --clearsign -o "${BUILDDIR}/../${SRC}.sign" "${BUILDDIR}/../$SRC" # mv "${BUILDDIR}/../${SRC}.sign" "${BUILDDIR}/../$SRC" @@ -816,7 +816,7 @@ setupaptarchive() { signreleasefiles() { local SIGNER="${1:-Joe Sixpack}" local KEY="keys/$(echo "$SIGNER" | tr 'A-Z' 'a-z' | sed 's# ##g')" - local GPG="aptkey --quiet --keyring ${KEY}.pub --secret-keyring ${KEY}.sec adv --batch --yes" + local GPG="aptkey --quiet --keyring ${KEY}.pub --secret-keyring ${KEY}.sec --readonly adv --batch --yes" msgninfo "\tSign archive with $SIGNER key $KEY… " local REXKEY='keys/rexexpired' local SECEXPIREBAK="${REXKEY}.sec.bak" -- cgit v1.2.3 From 29f1b977100aeb6d6ebd38923eeb7a623e264ffe Mon Sep 17 00:00:00 2001 From: James McCoy Date: Mon, 18 Aug 2014 12:54:19 +0200 Subject: ensure apt-key del handles 16-byte key ids The original patch does not apply against the rewritten apt-key, but an additional test doesn't hurt. Closes: 754436 --- test/integration/test-apt-key | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test/integration') diff --git a/test/integration/test-apt-key b/test/integration/test-apt-key index 337b16a59..d5adec5bd 100755 --- a/test/integration/test-apt-key +++ b/test/integration/test-apt-key @@ -74,6 +74,14 @@ pub 2048R/DBAC8DAE 2010-08-18' testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg testsuccess cmp keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ + msgtest 'Test key removal with' 'long key ID' + cleanplate + cp -a keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + testsuccess --nomsg aptkey --fakeroot del 5A90D141DBAC8DAE + testempty aptkey list + testsuccess test ! -e rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg + testsuccess cmp keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg~ + msgtest 'Test key removal with' 'fingerprint' cleanplate cp -a keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg -- cgit v1.2.3 From 98f0d7b3d9d7ed0a5cf11d8f9327a021954816b6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 26 Sep 2014 23:09:01 +0200 Subject: add gnupg and gnupg2 as test-dependency apt can work with both, so it has an or-dependency on them, but the tests want to play with both of them. Git-Dch: Ignore --- .../test-very-tight-loop-configure-with-unpacking-new-packages | 1 + 1 file changed, 1 insertion(+) (limited to 'test/integration') diff --git a/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages b/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages index 202716636..409d1212c 100755 --- a/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages +++ b/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages @@ -45,6 +45,7 @@ Conf libreoffice-core (4 sid [amd64]) Conf libreoffice-style-galaxy (4 sid [amd64]) Conf libreoffice (4 sid [amd64])' 'Reading package lists... Building dependency tree... +Calculating upgrade... The following NEW packages will be installed: ure The following packages will be upgraded: -- cgit v1.2.3 From 43acd01979039b248cb7f033b82e36d778d0ebec Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 27 Sep 2014 19:45:30 +0200 Subject: allow fetcher setup without directory creation apt-get download and changelog as well as apt-helper reuse the acquire system for their own proposes without requiring the directories the fetcher wants to create, which is a problem if you run them as non-root and the directories do not exist as it greets you with: E: Archives directory /var/cache/apt/archives/partial is missing. - Acquire (13: Permission denied) Closes: 762898 --- test/integration/test-apt-get-changelog | 6 ++++++ test/integration/test-apt-get-download | 27 +++++++++++++++++++++++++-- test/integration/test-apt-helper | 14 +++++++------- 3 files changed, 38 insertions(+), 9 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-apt-get-changelog b/test/integration/test-apt-get-changelog index 4ee113482..02d6c39ab 100755 --- a/test/integration/test-apt-get-changelog +++ b/test/integration/test-apt-get-changelog @@ -13,6 +13,12 @@ setupaptarchive --no-update changetowebserver testsuccess aptget update +# simulate normal user with non-existent root-owned directories +rm -rf rootdir/var/cache/apt/archives/ +mkdir rootdir/var/cache/apt/archives/ +addtrap 'prefix' "chmod -f -R +w $PWD/rootdir/var/cache/apt/archives || true;" +chmod -R -w rootdir/var/cache/apt/archives + echo 'Apt::Changelogs::Server "http://localhost:8080/";' > rootdir/etc/apt/apt.conf.d/changelog.conf testequal "'http://localhost:8080//pool/apt_1.0/changelog'" aptget changelog apt --print-uris diff --git a/test/integration/test-apt-get-download b/test/integration/test-apt-get-download index be3144e1f..58ed44f8f 100755 --- a/test/integration/test-apt-get-download +++ b/test/integration/test-apt-get-download @@ -20,10 +20,19 @@ testdownload() { fi msgtest "Test download of package file $1 with" "$APT" testsuccess --nomsg aptget download ${APT} - testsuccess test -f $1 - rm $1 + testsuccess test -f "$1" + rm -f "$1" } +# normal case as "root" +testdownload apt_2.0_all.deb apt + +# simulate normal user with non-existent root-owned directories +rm -rf rootdir/var/cache/apt/archives/ +mkdir rootdir/var/cache/apt/archives/ +addtrap 'prefix' "chmod -f -R +w $PWD/rootdir/var/cache/apt/archives || true;" +chmod -R -w rootdir/var/cache/apt/archives + # normal case(es) testdownload apt_1.0_all.deb apt stable testdownload apt_2.0_all.deb apt @@ -45,3 +54,17 @@ rm -f apt_1.0_all.deb apt_2.0_all.deb testsuccess aptget download apt apt apt/unstable apt=2.0 testsuccess test -s apt_2.0_all.deb +# restore "root" rights +chmod -f -R +w $PWD/rootdir/var/cache/apt/archives +rm -rf rootdir/var/cache/apt/archives/ + +# file: debs aren't copied to archives, so change to http which obviously are +changetowebserver +testsuccess aptget update + +# test with already stored deb +testsuccess aptget install -d apt +testsuccess test -s rootdir/var/cache/apt/archives/apt_2.0_all.deb +mv aptarchive/pool/apt_2.0_all.deb aptarchive/pool/apt_2.0_all.deb.gone +testdownload apt_2.0_all.deb apt +mv aptarchive/pool/apt_2.0_all.deb.gone aptarchive/pool/apt_2.0_all.deb diff --git a/test/integration/test-apt-helper b/test/integration/test-apt-helper index c749224ca..42c40bb9e 100755 --- a/test/integration/test-apt-helper +++ b/test/integration/test-apt-helper @@ -5,30 +5,30 @@ TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment -configarchitecture "i386" +configarchitecture 'i386' changetohttpswebserver test_apt_helper_download() { - echo "foo" > aptarchive/foo + echo 'foo' > aptarchive/foo - msgtest 'apt-file download-file md5sum' + msgtest 'apt-file download-file' 'md5sum' apthelper -qq download-file http://localhost:8080/foo foo2 MD5Sum:d3b07384d113edec49eaa6238ad5ff00 && msgpass || msgfail testfileequal foo2 'foo' - msgtest 'apt-file download-file sha1' + msgtest 'apt-file download-file' 'sha1' apthelper -qq download-file http://localhost:8080/foo foo1 SHA1:f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 && msgpass || msgfail testfileequal foo1 'foo' - msgtest 'apt-file download-file sha256' + msgtest 'apt-file download-file' 'sha256' apthelper -qq download-file http://localhost:8080/foo foo3 SHA256:b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c && msgpass || msgfail testfileequal foo3 'foo' - msgtest 'apt-file download-file no-hash' + msgtest 'apt-file download-file' 'no-hash' apthelper -qq download-file http://localhost:8080/foo foo4 && msgpass || msgfail testfileequal foo4 'foo' - msgtest 'apt-file download-file wrong hash' + msgtest 'apt-file download-file' 'wrong hash' if ! apthelper -qq download-file http://localhost:8080/foo foo5 MD5Sum:aabbcc 2>&1 2> download.stderr; then msgpass else -- cgit v1.2.3 From 20e6965ad6388b964b59b89c31ff8b81cbcb8f8c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 27 Sep 2014 20:09:44 +0200 Subject: cleanup partial directory of lists in apt-get clean Not really the intended usecase for apt-get clean, but users expect it to help them in recovery and it can't really hurt as this directory should be empty if everything was fine and proper anyway. Closes: #762889 --- test/integration/test-apt-get-clean | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 test/integration/test-apt-get-clean (limited to 'test/integration') diff --git a/test/integration/test-apt-get-clean b/test/integration/test-apt-get-clean new file mode 100755 index 000000000..646ea31be --- /dev/null +++ b/test/integration/test-apt-get-clean @@ -0,0 +1,34 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture 'amd64' + +insertpackage 'testing' 'foo' 'all' '1' +insertpackage 'unstable' 'foo' 'all' '2' +insertinstalledpackage 'foo' 'all' '3' + +setupaptarchive + +# nothing to do always works +testsuccess aptget clean + +# generate some dirt and clean it up +touch rootdir/var/lib/apt/lists/partial/http.debian.net_debian_dists_sid_main_i18n_Translation-en +touch rootdir/var/cache/apt/archives/foo_1_all.deb +touch rootdir/var/cache/apt/archives/foo_2_all.deb +touch rootdir/var/cache/apt/archives/foo_3_all.deb +touch rootdir/var/cache/apt/archives/foo_4_all.deb + +testsuccess aptget clean + +testsuccess test ! -e rootdir/var/lib/apt/lists/partial/http.debian.net_debian_dists_sid_main_i18n_Translation-en +testsuccess test ! -e rootdir/var/cache/apt/archives/foo_1_all.deb +testsuccess test ! -e rootdir/var/cache/apt/archives/foo_2_all.deb +testsuccess test ! -e rootdir/var/cache/apt/archives/foo_3_all.deb +testsuccess test ! -e rootdir/var/cache/apt/archives/foo_4_all.deb + + -- cgit v1.2.3 From 7ffac4c10144a8458fec6de03c58f3b49d081e5c Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 29 Sep 2014 11:43:37 +0200 Subject: Test if TMPDIR is a directory in apt-key and if not unset it This prevents a failure in mktemp -d - it will blindly trust TMPDIR and not use something else if the dir is not there. --- test/integration/test-bug-728500-tempdir | 1 + 1 file changed, 1 insertion(+) (limited to 'test/integration') diff --git a/test/integration/test-bug-728500-tempdir b/test/integration/test-bug-728500-tempdir index 0451fc1ed..bdc38c3ca 100755 --- a/test/integration/test-bug-728500-tempdir +++ b/test/integration/test-bug-728500-tempdir @@ -27,3 +27,4 @@ fi unset TMPDIR testequal 'coolstuff' aptcache pkgnames +testsuccess ls rootdir/var/lib/apt/lists/*InRelease -- cgit v1.2.3 From f6d4ab9ad8a2cfe52737ab620dd252cf8ceec43d Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 29 Sep 2014 22:45:52 +0200 Subject: support parsing of all hashes for pdiff The fileformat of a pdiff index stores currently only SHA1 hashes. With this change, we look for all other hashes we support as well and take what we get, so that we can work after the release of jessie to get right of SHA1 if we want to. Note that the completely patched file is and was checked against the hashes collected from the Release file, so this transition isn't mission critical. --- test/integration/test-pdiff-usage | 48 ++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) (limited to 'test/integration') diff --git a/test/integration/test-pdiff-usage b/test/integration/test-pdiff-usage index 74749d6ab..0d5261429 100755 --- a/test/integration/test-pdiff-usage +++ b/test/integration/test-pdiff-usage @@ -76,8 +76,15 @@ SHA1-History: 9f4148e06d7faa37062994ff10d0c842d7017513 33053002 2010-08-18-2013.28 $(sha1sum $PKGFILE | cut -d' ' -f 1) $(stat -c%s $PKGFILE) $(basename $PATCHFILE) SHA1-Patches: - 7651fc0ac57cd83d41c63195a9342e2db5650257 19722 2010-08-18-0814.28 - $(sha1sum $PATCHFILE | cut -d' ' -f 1) $(stat -c%s $PATCHFILE) $(basename $PATCHFILE)" > $PATCHINDEX + 7651fc0ac57cd83d41c63195a9342e2db5650257 19722 2010-08-18-2013.28 + $(sha1sum $PATCHFILE | cut -d' ' -f 1) $(stat -c%s $PATCHFILE) $(basename $PATCHFILE) +SHA256-Current: $(sha256sum ${PKGFILE}-new | cut -d' ' -f 1) $(stat -c%s ${PKGFILE}-new) +SHA256-History: + 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b 33053002 2010-08-18-2013.28 + $(sha256sum $PKGFILE | cut -d' ' -f 1) $(stat -c%s $PKGFILE) $(basename $PATCHFILE) +SHA256-Patches: + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 19722 2010-08-18-2013.28 + $(sha256sum $PATCHFILE | cut -d' ' -f 1) $(stat -c%s $PATCHFILE) $(basename $PATCHFILE)" > $PATCHINDEX generatereleasefiles '+1hour' signreleasefiles find aptarchive -name 'Packages*' -type f -delete @@ -119,9 +126,18 @@ SHA1-History: $(sha1sum ${PKGFILE} | cut -d' ' -f 1) $(stat -c%s ${PKGFILE}) $(basename ${PATCHFILE}) $(sha1sum ${PKGFILE}-new | cut -d' ' -f 1) $(stat -c%s ${PKGFILE}-new) $(basename ${PATCHFILE2}) SHA1-Patches: - 7651fc0ac57cd83d41c63195a9342e2db5650257 19722 2010-08-18-0814.28 + 7651fc0ac57cd83d41c63195a9342e2db5650257 19722 2010-08-18-2013.28 $(sha1sum $PATCHFILE | cut -d' ' -f 1) $(stat -c%s $PATCHFILE) $(basename $PATCHFILE) - $(sha1sum ${PATCHFILE2} | cut -d' ' -f 1) $(stat -c%s ${PATCHFILE2}) $(basename ${PATCHFILE2})" > $PATCHINDEX + $(sha1sum ${PATCHFILE2} | cut -d' ' -f 1) $(stat -c%s ${PATCHFILE2}) $(basename ${PATCHFILE2}) +SHA256-Current: $(sha256sum aptarchive/Packages | cut -d' ' -f 1) $(stat -c%s aptarchive/Packages) +SHA256-History: + 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b 33053002 2010-08-18-2013.28 + $(sha256sum $PKGFILE | cut -d' ' -f 1) $(stat -c%s $PKGFILE) $(basename $PATCHFILE) + $(sha256sum ${PKGFILE}-new | cut -d' ' -f 1) $(stat -c%s ${PKGFILE}-new) $(basename ${PATCHFILE2}) +SHA256-Patches: + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 19722 2010-08-18-2013.28 + $(sha256sum $PATCHFILE | cut -d' ' -f 1) $(stat -c%s $PATCHFILE) $(basename $PATCHFILE) + $(sha256sum ${PATCHFILE2} | cut -d' ' -f 1) $(stat -c%s ${PATCHFILE2}) $(basename ${PATCHFILE2})" > $PATCHINDEX generatereleasefiles '+2hour' signreleasefiles cp -a aptarchive/Packages Packages-future @@ -147,8 +163,15 @@ SHA1-History: 9f4148e06d7faa37062994ff10d0c842d7017513 33053002 2010-08-18-2013.28 $(sha1sum $PKGFILE | cut -d' ' -f 1) $(stat -c%s $PKGFILE) $(basename $PATCHFILE) SHA1-Patches: - 7651fc0ac57cd83d41c63195a9342e2db5650257 19722 2010-08-18-0814.28 - $(sha1sum $PATCHFILE | cut -d' ' -f 1) $(stat -c%s $PATCHFILE) $(basename $PATCHFILE)" > $PATCHINDEX + 7651fc0ac57cd83d41c63195a9342e2db5650257 19722 2010-08-18-2013.28 + $(sha1sum $PATCHFILE | cut -d' ' -f 1) $(stat -c%s $PATCHFILE) $(basename $PATCHFILE) +SHA256-Current: $(sha256sum ${PKGFILE}-new | cut -d' ' -f 1) $(stat -c%s ${PKGFILE}-new) +SHA256-History: + 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b 33053002 2010-08-18-2013.28 + $(sha256sum $PKGFILE | cut -d' ' -f 1) $(stat -c%s $PKGFILE) $(basename $PATCHFILE) +SHA256-Patches: + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 19722 2010-08-18-2013.28 + $(sha256sum $PATCHFILE | cut -d' ' -f 1) $(stat -c%s $PATCHFILE) $(basename $PATCHFILE)" > $PATCHINDEX echo 'I am Mallory and I change files' >> $PATCHFILE cat $PATCHFILE | gzip > ${PATCHFILE}.gz generatereleasefiles '+1hour' @@ -165,3 +188,16 @@ testrun -o Acquire::PDiffs::Merge=0 -o APT::Get::List-Cleanup=1 testrun -o Acquire::PDiffs::Merge=1 -o APT::Get::List-Cleanup=1 testrun -o Acquire::PDiffs::Merge=0 -o APT::Get::List-Cleanup=0 testrun -o Acquire::PDiffs::Merge=1 -o APT::Get::List-Cleanup=0 + +sha256sum() { + echo '01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b -' +} +testrun -o Acquire::PDiffs::Merge=0 -o Acquire::ForceHash=SHA1 +testrun -o Acquire::PDiffs::Merge=1 -o Acquire::ForceHash=SHA1 + +unset -f sha256sum +sha1sum() { + echo 'adc83b19e793491b1c6ea0fd8b46cd9f32e592fc -' +} +testrun -o Acquire::PDiffs::Merge=0 -o Acquire::ForceHash=SHA256 +testrun -o Acquire::PDiffs::Merge=1 -o Acquire::ForceHash=SHA256 -- cgit v1.2.3 From 8b32e72c6f7143de4ec02f44e362b0df9e21e024 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 1 Oct 2014 23:58:05 +0200 Subject: ensure world-readability for trusted.gpg in postinst apt-key creates trusted.gpg if it needs it with 644 nowadays, but before it ensured this, it was gpg creating it, which gives it by default 600. Not a problem as long as our gpgv is run as root, but now that we drop privileges we have to ensure that we can also read trusted.gpg files created by earlier apt-key versions. Closes: 647001 --- test/integration/test-apt-key | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'test/integration') diff --git a/test/integration/test-apt-key b/test/integration/test-apt-key index d5adec5bd..e6ac530a6 100755 --- a/test/integration/test-apt-key +++ b/test/integration/test-apt-key @@ -41,7 +41,14 @@ gpg: unchanged: 1' aptkey --fakeroot update testaptkeys 'pub 2048R/DBAC8DAE 2010-08-18' + testsuccess test ! -e rootdir/etc/apt/trusted.gpg testsuccess aptkey --fakeroot add ./keys/rexexpired.pub + msgtest 'Check if trusted.gpg is created with permissions set to' '0644' + if [ "$(stat -c '%a' rootdir/etc/apt/trusted.gpg )" = '644' ]; then + msgpass + else + msgfail + fi testaptkeys 'pub 2048R/27CE74F9 2013-07-12 [expired: 2013-07-13] pub 2048R/DBAC8DAE 2010-08-18' -- cgit v1.2.3