From 0c6aa02ecfbb1b1ecac519527467befae36b7c40 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 2 Oct 2010 09:19:31 +0200 Subject: * apt-pkg/depcache.cc: - do not remove packages which the user requested for installation explicitly while satisfying other install requests (Closes: #598669) --- apt-pkg/depcache.cc | 10 ++++++++ debian/changelog | 4 ++- ...ages-bug-598669-install-postfix-gets-exim-heavy | 30 ++++++++++++++++++++++ ...atus-bug-598669-install-postfix-gets-exim-heavy | 30 ++++++++++++++++++++++ ...test-bug-598669-install-postfix-gets-exim-heavy | 19 ++++++++++++++ 5 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 test/integration/Packages-bug-598669-install-postfix-gets-exim-heavy create mode 100644 test/integration/status-bug-598669-install-postfix-gets-exim-heavy create mode 100755 test/integration/test-bug-598669-install-postfix-gets-exim-heavy diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index d893c42d7..0b5d6d8e6 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1192,6 +1192,16 @@ bool pkgDepCache::IsDeleteOk(PkgIterator const &Pkg,bool rPurge, std::clog << OutputInDepth(Depth) << "Hold prevents MarkDelete of " << Pkg << " FU=" << FromUser << std::endl; return false; } + else if (FromUser == false && Pkg->CurrentVer == 0) + { + StateCache &P = PkgState[Pkg->ID]; + if (P.InstallVer != 0 && P.Status == 2 && (P.Flags & Flag::Auto) != Flag::Auto) + { + if (DebugMarker == true) + std::clog << OutputInDepth(Depth) << "Manual install request prevents MarkDelete of " << Pkg << std::endl; + return false; + } + } return true; } /*}}}*/ diff --git a/debian/changelog b/debian/changelog index 2e213283c..2b08a7b4a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,12 +12,14 @@ apt (0.8.6) UNRELEASED; urgency=low * apt-pkg/depcache.cc: - do not check endpointer packages instead of only those which prevented NeverAutoRemove settings from having an effect (Closes: #598452) + - do not remove packages which the user requested for installation + explicitly while satisfying other install requests (Closes: #598669) * apt-pkg/packagemanager.cc: - Add a space between period and 'Please' and unfuzzy all translations * doc/po/de.po: - remove the duplicated "angefertigt" in translation-holder string - -- David Kalnischkies Thu, 30 Sep 2010 12:26:34 +0200 + -- David Kalnischkies Sat, 02 Oct 2010 09:07:30 +0200 apt (0.8.5) unstable; urgency=low diff --git a/test/integration/Packages-bug-598669-install-postfix-gets-exim-heavy b/test/integration/Packages-bug-598669-install-postfix-gets-exim-heavy new file mode 100644 index 000000000..a249d6ed3 --- /dev/null +++ b/test/integration/Packages-bug-598669-install-postfix-gets-exim-heavy @@ -0,0 +1,30 @@ +Package: exim4-daemon-heavy +Priority: optional +Section: mail +Installed-Size: 1060 +Maintainer: Exim4 Maintainers +Architecture: i386 +Source: exim4 +Version: 4.72-1 +Replaces: mail-transport-agent +Provides: mail-transport-agent +Conflicts: mail-transport-agent +Filename: pool/main/e/exim4/exim4-daemon-heavy_4.72-1_i386.deb +Size: 508988 +MD5sum: 7adf3b0ef8f134e70d19ee216e6f4452 +Description: Exim MTA (v4) daemon with extended features, including exiscan-acl + +Package: postfix +Priority: extra +Section: mail +Installed-Size: 3196 +Maintainer: LaMont Jones +Architecture: i386 +Version: 2.7.1-1 +Replaces: mail-transport-agent +Provides: mail-transport-agent +Conflicts: mail-transport-agent +Filename: pool/main/p/postfix/postfix_2.7.1-1_i386.deb +Size: 1325662 +MD5sum: 1ef63b6a62b4be120a9cdc312b81a698 +Description: High-performance mail transport agent diff --git a/test/integration/status-bug-598669-install-postfix-gets-exim-heavy b/test/integration/status-bug-598669-install-postfix-gets-exim-heavy new file mode 100644 index 000000000..fcf21dc45 --- /dev/null +++ b/test/integration/status-bug-598669-install-postfix-gets-exim-heavy @@ -0,0 +1,30 @@ +Package: exim4-daemon-light +Status: install ok installed +Priority: standard +Section: mail +Installed-Size: 952 +Maintainer: Exim4 Maintainers +Architecture: i386 +Source: exim4 +Version: 4.72-1 +Replaces: mail-transport-agent +Provides: mail-transport-agent +Conflicts: mail-transport-agent +Filename: pool/main/e/exim4/exim4-daemon-light_4.72-1_i386.deb +Size: 459500 +MD5sum: f32ccafef44bed2efcd526cd6501307d +Description: lightweight Exim MTA (v4) daemon + +Package: exim4 +Status: install ok installed +Priority: standard +Section: mail +Installed-Size: 60 +Maintainer: Exim4 Maintainers +Architecture: all +Version: 4.72-1 +Depends: exim4-daemon-light | exim4-daemon-heavy +Filename: pool/main/e/exim4/exim4_4.72-1_all.deb +Size: 7738 +MD5sum: 2f473b82bbabac9718ff3e755eaf85c1 +Description: metapackage to ease Exim MTA (v4) installation diff --git a/test/integration/test-bug-598669-install-postfix-gets-exim-heavy b/test/integration/test-bug-598669-install-postfix-gets-exim-heavy new file mode 100755 index 000000000..3fee63bbb --- /dev/null +++ b/test/integration/test-bug-598669-install-postfix-gets-exim-heavy @@ -0,0 +1,19 @@ +#!/bin/sh +set -e + +local TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" +setupaptarchive + +testequal "Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + exim4 exim4-daemon-light +The following NEW packages will be installed: + postfix +0 upgraded, 1 newly installed, 2 to remove and 0 not upgraded. +Need to get 0 B/1326 kB of archives. +After this operation, 2236 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install postfix --trivial-only -- cgit v1.2.3