#!/bin/sh set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment configarchitecture 'native' 'strange-arch' native=$(getarchitecture 'native') insertpackage 'unstable' 'unrelated' 'strange-arch' '1' insertinstalledpackage 'apt' 'native' '0.8.9' 'Depends: libc6 (>= 2.3.4)' insertinstalledpackage 'libc6' 'native' '2.4.1-1' insertinstalledpackage 'oldcrap' 'all' '1-1' insertpackage 'unstable' 'apt' 'native' '0.8.10' 'Depends: libc6 (>= 2.10), libdb4.8 Breaks: oldcrap' insertpackage 'unstable' 'libc6' 'native' '2.11.2-7' insertpackage 'unstable' 'libdb4.8' 'native' '4.8.30-3' setupaptarchive # Solver 3.0 does not remove manual packages testfailureequal 'Reading package lists... Building dependency tree... Calculating upgrade... The following packages have been kept back: apt The following packages will be upgraded: libc6 1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. Need to get 0 B/42 B of archives. After this operation, 0 B of additional disk space will be used. E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only --solver 3.0 testfailure aptget dist-upgrade --trivial-only --solver 3.0 -o debug::apt::solver=2 testsuccess grep -Fx "Branch failed: Conflict: apt:$native -> apt:$native=0.8.10 -> not oldcrap:$native=1-1 but oldcrap:$native -> oldcrap:$native=1-1" rootdir/tmp/testfailure.output allowremovemanual testfailureequal 'Reading package lists... Building dependency tree... Calculating upgrade... The following packages will be REMOVED: oldcrap The following NEW packages will be installed: libdb4.8 The following packages will be upgraded: apt libc6 2 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. Need to get 0 B/126 B of archives. After this operation, 0 B of additional disk space will be used. E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only testfailureequal 'Reading package lists... Building dependency tree... Calculating upgrade... The following packages will be REMOVED: oldcrap The following NEW packages will be installed: libdb4.8 The following packages will be upgraded: apt libc6 2 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. Need to get 0 B/126 B of archives. After this operation, 0 B of additional disk space will be used. E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only testsuccess aptmark hold apt testfailureequal 'Reading package lists... Building dependency tree... Calculating upgrade... The following packages have been kept back: apt The following packages will be upgraded: libc6 1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. Need to get 0 B/42 B of archives. After this operation, 0 B of additional disk space will be used. E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only -o Test='hold-back-apt'