| 1 | #!/bin/sh |
| 2 | set -e |
| 3 | |
| 4 | TESTDIR=$(readlink -f $(dirname $0)) |
| 5 | . $TESTDIR/framework |
| 6 | setupenvironment |
| 7 | configarchitecture 'native' |
| 8 | |
| 9 | buildsimplenativepackage "old-pkg" "native" "1.0" "stable" |
| 10 | buildsimplenativepackage "unrelated" "all" "0.5" "unstable" |
| 11 | |
| 12 | setupsimplenativepackage "new-pkg" "native" "2.0" "unstable" "Provides: old-pkg |
| 13 | Replaces: old-pkg |
| 14 | Conflicts: old-pkg (<< 2.0)" |
| 15 | BUILDDIR="incoming/new-pkg-2.0" |
| 16 | echo "/usr/share/doc/new-pkg /usr/share/doc/old-pkg" > ${BUILDDIR}/debian/new-pkg.links |
| 17 | buildpackage "$BUILDDIR" "unstable" "main" |
| 18 | rm -rf "$BUILDDIR" |
| 19 | |
| 20 | setupsimplenativepackage "old-pkg" "all" "2.0" "unstable" "Depends: new-pkg" |
| 21 | BUILDDIR="incoming/old-pkg-2.0" |
| 22 | echo "/usr/share/doc/new-pkg /usr/share/doc/old-pkg" > ${BUILDDIR}/debian/old-pkg.links |
| 23 | echo " |
| 24 | override_dh_link: |
| 25 | rm -rf debian/old-pkg/usr/share/doc/old-pkg/ |
| 26 | dh_link" >> ${BUILDDIR}/debian/rules |
| 27 | buildpackage "$BUILDDIR" "unstable" "main" |
| 28 | rm -rf "$BUILDDIR" |
| 29 | |
| 30 | setupaptarchive |
| 31 | |
| 32 | aptget install old-pkg=1.0 --trivial-only -qq 2>&1 > /dev/null |
| 33 | |
| 34 | testmarkedauto # old-pkg is manual installed |
| 35 | |
| 36 | CMD="aptget dist-upgrade -y -q=0" |
| 37 | msgtest "Test for equality of" "$CMD" |
| 38 | COMPAREFILE=$(mktemp) |
| 39 | echo "The following package disappeared from your system as |
| 40 | all files have been overwritten by other packages: |
| 41 | old-pkg |
| 42 | Note: This is done automatically and on purpose by dpkg." > $COMPAREFILE |
| 43 | $CMD 2>&1 | tail -n 4 | diff $COMPAREFILE - && msgpass || msgfail |
| 44 | rm $COMPAREFILE |
| 45 | |
| 46 | sed -i rootdir/var/log/apt/history.log -e '/^Commandline: / d' -e '/^Start-Date: / d' -e '/^End-Date: / d' -e "s#:$(getarchitecture 'native') #:native #" |
| 47 | testfileequal "rootdir/var/log/apt/history.log" " |
| 48 | Install: old-pkg:native (1.0) |
| 49 | |
| 50 | Install: new-pkg:native (2.0, automatic) |
| 51 | Upgrade: old-pkg:native (1.0, 2.0) |
| 52 | Disappeared: old-pkg (1.0)" |
| 53 | |
| 54 | testmarkedauto # new-pkg should have get the manual flag from old-pkg |