| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #!/bin/sh
- set -e
- TESTDIR=$(readlink -f $(dirname $0))
- . $TESTDIR/framework
- setupenvironment
- configarchitecture 'amd64' 'i386'
- aptconfig dump --no-empty --format '%v%n' APT::Never-MarkAuto-Sections > nevermarkauto.sections
- testsuccess grep '^metapackages$' nevermarkauto.sections
- # this is a very crude regression test, not a "this is how it should be" test:
- # In theory mydesktop-core and texteditor should be marked as manual, but
- # texteditor is installed as a dependency of bad-texteditor, not of
- # mydesktop-core and mydesktop-core is removed while bad-texteditor is
- # installed losing the manual bit as the problem resolver will later decide to
- # drop bad-texteditor and re-instate mydesktop-core which is considered an
- # auto-install at that point (in theory the never-auto handling should be
- # copied to this place – as to the many other places dependencies are resolved
- # 'by hand' instead of via MarkInstall AutoInst…
- #
- # Both could be fixed if apt would figure out early that installing
- # bad-texteditor is a bad idea and eventually it should (as mydesktop-core is
- # a direct descendant of mydesktop which was a user-request mydesktop-core should
- # be as protected from removal as mydesktop is), but this is hard in the general case
- # as with more or-groups and provides you can produce 'legal' examples for this.
- buildsimplenativepackage 'mydesktop' 'all' '1' 'unstable' 'Depends: mydesktop-core, foreignpkg
- Recommends: notavailable' '' 'metapackages'
- buildsimplenativepackage 'mydesktop-core' 'amd64' '1' 'unstable' 'Depends: bad-texteditor | texteditor, browser (>= 42), nosection, foreignpkg
- Recommends: notavailable
- Multi-Arch: foreign' '' 'metapackages'
- buildsimplenativepackage 'browser' 'amd64' '41' 'stable'
- buildsimplenativepackage 'browser' 'amd64' '42' 'unstable'
- buildsimplenativepackage 'texteditor' 'amd64' '1' 'stable'
- buildsimplenativepackage 'bad-texteditor' 'amd64' '1' 'stable' 'Depends: texteditor
- Conflicts: mydesktop-core'
- buildsimplenativepackage 'nosection' 'amd64' '1' 'stable' '' '' '<none>'
- buildsimplenativepackage 'foreignpkg' 'i386' '1' 'stable' 'Multi-Arch: foreign'
- setupaptarchive
- testsuccess aptcache show nosection
- testfailure grep 'Section' rootdir/tmp/testsuccess.output
- testequal 'dpkg' aptmark showmanual
- testsuccess aptget install mydesktop -y -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1
- testequal 'browser
- dpkg
- foreignpkg:i386
- mydesktop
- nosection' aptmark showmanual
- testmarkedauto 'mydesktop-core' 'texteditor'
- testequal 'Reading package lists...
- Building dependency tree...
- Reading state information...
- The following packages will be REMOVED:
- mydesktop mydesktop-core texteditor
- 0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
- Remv mydesktop [1]
- Remv mydesktop-core [1]
- Remv texteditor [1]' aptget autoremove mydesktop -s
- testequal 'Reading package lists...
- Building dependency tree...
- Reading state information...
- The following packages will be REMOVED:
- mydesktop mydesktop-core texteditor
- 0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
- Remv mydesktop [1]
- Remv mydesktop-core [1]
- Remv texteditor [1]' aptget autoremove texteditor -s
- testsuccess aptget autoremove texteditor -y
- testdpkgnotinstalled mydesktop mydesktop-core texteditor
- testdpkginstalled browser
- testequal 'browser
- dpkg
- foreignpkg:i386
- nosection' aptmark showmanual
- testmarkedauto
- # test that installed/upgraded auto-pkgs are not set to manual
- testsuccess aptget install browser=41 -y --force-yes
- testequal 'browser
- dpkg
- foreignpkg:i386
- nosection' aptmark showmanual
- testmarkedauto
- testsuccess aptmark auto browser
- testmarkedauto 'browser'
- testsuccess aptmark auto nosection
- testmarkedauto 'browser' 'nosection'
- testequal 'dpkg
- foreignpkg:i386' aptmark showmanual
- testsuccess aptget install mydesktop -y
- testequal 'dpkg
- foreignpkg:i386
- mydesktop' aptmark showmanual
- testmarkedauto 'browser' 'nosection' 'mydesktop-core' 'texteditor'
|