summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2011-02-17 15:23:50 +0100
committerDavid Kalnischkies <kalnischkies@gmail.com>2011-02-17 15:23:50 +0100
commite26a777c3219388605445ab9a1ffffc154799248 (patch)
treefade4277e7958dccf3b39e84edb7321ea9d5930c /apt-pkg
parent897e3c7bbc9c516c3c27c6f77b1cabcaab4ef79b (diff)
* apt-pkg/depcache.cc:
- party revert fix in 0.8.11.2 which marked all packages as manual installed if the FromUser bit is set in the MarkInstall call. The default for this bit is true and aptitude depends on the old behavior so the package is only marked as manual if its not marked ("old" behavior) or if automatic installation is enabled - which aptitude disables always (see also #613775)
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/depcache.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc
index 0c5b77732..ddbd37699 100644
--- a/apt-pkg/depcache.cc
+++ b/apt-pkg/depcache.cc
@@ -1257,8 +1257,10 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
if(FromUser)
{
- // Set it to manual if it's a new install or already installed
- if(P.Status == 2 || Pkg->CurrentVer != 0)
+ // Set it to manual if it's a new install or already installed,
+ // but only if its not marked by the autoremover (aptitude depend on this behavior)
+ // or if we do automatic installation (aptitude never does it)
+ if(P.Status == 2 || (Pkg->CurrentVer != 0 && (AutoInst == true || P.Marked == false)))
P.Flags &= ~Flag::Auto;
}
else