summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2007-03-14 13:10:42 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2007-03-14 13:10:42 +0100
commit7db98f31498a85da22cc00e446bce8ac8c319554 (patch)
treea2800f5c2018c6543a0f3af260988816526dc778
parente6065cfcf0b5c6a57aa582cb3c2bd2b3fafe64b7 (diff)
* cmdline/apt-get.cc:
- "apt-get install foo" on a already installed package foo will clean the automatic installed flag
-rw-r--r--cmdline/apt-get.cc21
-rw-r--r--configure.in2
-rw-r--r--debian/changelog5
3 files changed, 26 insertions, 2 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index 4ffb9414b..430b1bccb 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1556,6 +1556,7 @@ bool DoInstall(CommandLine &CmdL)
if (Cache->BrokenCount() != 0)
BrokenFix = true;
+ unsigned int AutoMarkChanged = 0;
unsigned int ExpectedInst = 0;
unsigned int Packages = 0;
pkgProblemResolver Fix(Cache);
@@ -1692,6 +1693,18 @@ bool DoInstall(CommandLine &CmdL)
return false;
if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false)
return false;
+
+ // see if we need to fix the auto-mark flag
+ // e.g. apt-get install foo
+ // where foo is marked automatic
+ if(Cache[Pkg].Install() == false &&
+ (Cache[Pkg].Flags & pkgCache::Flag::Auto))
+ {
+ ioprintf(c1out,_("%s set to manual installed.\n"),
+ Pkg.Name());
+ Cache->MarkAuto(Pkg,false);
+ AutoMarkChanged++;
+ }
}
}
@@ -1854,6 +1867,14 @@ bool DoInstall(CommandLine &CmdL)
}
+ // if nothing changed in the cache, but only the automark information
+ // we write the StateFile here, otherwise it will be written in
+ // cache.commit()
+ if (AutoMarkChanged > 0 &&
+ Cache->DelCount() == 0 && Cache->InstCount() == 0 &&
+ Cache->BadCount() == 0)
+ Cache->writeStateFile(NULL);
+
// See if we need to prompt
if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0)
return InstallPackages(Cache,false,false);
diff --git a/configure.in b/configure.in
index 940601e21..ca841df36 100644
--- a/configure.in
+++ b/configure.in
@@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib)
AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
dnl -- SET THIS TO THE RELEASE VERSION --
-AC_DEFINE_UNQUOTED(VERSION,"0.6.46.4ubuntu9")
+AC_DEFINE_UNQUOTED(VERSION,"0.6.46.4ubuntu10")
PACKAGE="apt"
AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
AC_SUBST(PACKAGE)
diff --git a/debian/changelog b/debian/changelog
index 3038e49bd..bb134f780 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,8 +5,11 @@ apt (0.6.46.4ubuntu10) feisty; urgency=low
of packages in this section manual
* debian/apt.conf.ubuntu:
- added APT::Never-MarkAuto-Section "metapackages";
+ * cmdline/apt-get.cc:
+ - "apt-get install foo" on a already installed package foo will
+ clean the automatic installed flag
- --
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 14 Mar 2007 12:34:46 +0100
apt (0.6.46.4ubuntu9) feisty; urgency=low