summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2010-10-02 09:19:31 +0200
committerDavid Kalnischkies <kalnischkies@gmail.com>2010-10-02 09:19:31 +0200
commit0c6aa02ecfbb1b1ecac519527467befae36b7c40 (patch)
tree42ea9f6771d1caa751d4f8646a78c85946a83934
parent6774b53da5215ae1c3ebe6a3fff496d61cd779f7 (diff)
* apt-pkg/depcache.cc:
- do not remove packages which the user requested for installation explicitly while satisfying other install requests (Closes: #598669)
-rw-r--r--apt-pkg/depcache.cc10
-rw-r--r--debian/changelog4
-rw-r--r--test/integration/Packages-bug-598669-install-postfix-gets-exim-heavy30
-rw-r--r--test/integration/status-bug-598669-install-postfix-gets-exim-heavy30
-rwxr-xr-xtest/integration/test-bug-598669-install-postfix-gets-exim-heavy19
5 files changed, 92 insertions, 1 deletions
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 <kalnischkies@gmail.com> Thu, 30 Sep 2010 12:26:34 +0200
+ -- David Kalnischkies <kalnischkies@gmail.com> 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 <pkg-exim4-maintainers@lists.alioth.debian.org>
+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 <lamont@debian.org>
+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 <pkg-exim4-maintainers@lists.alioth.debian.org>
+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 <pkg-exim4-maintainers@lists.alioth.debian.org>
+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