diff options
author | Michael Vogt <egon@bottom> | 2007-06-09 01:44:03 +0200 |
---|---|---|
committer | Michael Vogt <egon@bottom> | 2007-06-09 01:44:03 +0200 |
commit | f32484472374cb6c93fef0cd4ee9f71a7b80ec8a (patch) | |
tree | ce174fb35ed7266a2d123c7bf8883463ab04d603 | |
parent | 256f68abcf71157df78ab1aee08e46ff1b4f2b66 (diff) | |
parent | fb2894d268d4821e0dd4f2b803ff2043b1ec3162 (diff) |
* merged from apt--mvo
-rw-r--r-- | apt-pkg/depcache.cc | 10 | ||||
-rw-r--r-- | apt-pkg/depcache.h | 2 | ||||
-rw-r--r-- | cmdline/apt-get.cc | 20 | ||||
-rwxr-xr-x | cmdline/apt-mark | 1 | ||||
-rw-r--r-- | methods/http.cc | 1 | ||||
-rw-r--r-- | methods/http.h | 2 |
6 files changed, 26 insertions, 10 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index ac667d51d..fe981ea76 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -23,6 +23,8 @@ #include <sstream> #include <set> +#include <sys/stat.h> + #include <apti18n.h> pkgDepCache::ActionGroup::ActionGroup(pkgDepCache &cache) : @@ -176,7 +178,7 @@ bool pkgDepCache::readStateFile(OpProgress *Prog) return true; } -bool pkgDepCache::writeStateFile(OpProgress *prog) +bool pkgDepCache::writeStateFile(OpProgress *prog, bool InstalledOnly) { if(_config->FindB("Debug::pkgAutoRemove",false)) std::clog << "pkgDepCache::writeStateFile()" << std::endl; @@ -238,6 +240,9 @@ bool pkgDepCache::writeStateFile(OpProgress *prog) std::clog << "Skipping already written " << pkg.Name() << std::endl; continue; } + // skip not installed ones if requested + if(InstalledOnly && pkg->CurrentVer == 0) + continue; if(_config->FindB("Debug::pkgAutoRemove",false)) std::clog << "Writing new AutoInstall: " << pkg.Name() << std::endl; @@ -250,8 +255,9 @@ bool pkgDepCache::writeStateFile(OpProgress *prog) } fclose(OutFile); - // move the outfile over the real file + // move the outfile over the real file and set permissions rename(outfile.c_str(), state.c_str()); + chmod(state.c_str(), 0644); return true; } diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index b2bcfb58a..84fed7f37 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -403,7 +403,7 @@ class pkgDepCache : protected pkgCache::Namespace // read persistent states bool readStateFile(OpProgress *prog); - bool writeStateFile(OpProgress *prog); + bool writeStateFile(OpProgress *prog, bool InstalledOnly=false); // Size queries inline double UsrSize() {return iUsrSize;}; diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 1dcbbfc5b..554677f39 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1535,7 +1535,7 @@ bool TryInstallTask(pkgDepCache &Cache, pkgProblemResolver &Fix, buf[end-start] = 0x0; if (regexec(&Pattern,buf,0,0,0) != 0) continue; - res &= TryToInstall(Pkg,Cache,Fix,false,BrokenFix,ExpectedInst); + res &= TryToInstall(Pkg,Cache,Fix,false,true,ExpectedInst); found = true; } @@ -1595,6 +1595,18 @@ bool DoInstall(CommandLine &CmdL) bool Remove = DefRemove; char *VerTag = 0; bool VerIsRel = false; + + // this is a task! + if (Length >= 1 && S[Length - 1] == '^') + { + S[--Length] = 0; + // tasks must always be confirmed + ExpectedInst += 1000; + // see if we can install it + TryInstallTask(Cache, Fix, BrokenFix, ExpectedInst, S); + continue; + } + while (Cache->FindPkg(S).end() == true) { // Handle an optional end tag indicating what to do @@ -1743,10 +1755,8 @@ bool DoInstall(CommandLine &CmdL) return _error->Error(_("Broken packages")); } } - if (_config->FindB("APT::Get::AutomaticRemove")) { - if (!DoAutomaticRemove(Cache)) - return false; - } + if (!DoAutomaticRemove(Cache)) + return false; /* Print out a list of packages that are going to be installed extra to what the user asked */ diff --git a/cmdline/apt-mark b/cmdline/apt-mark index dadc01366..fdc3e1856 100755 --- a/cmdline/apt-mark +++ b/cmdline/apt-mark @@ -62,3 +62,4 @@ if __name__ == "__main__": # all done, rename the tmpfile os.chmod(outfile.name, 0644) os.rename(outfile.name, STATE_FILE) + os.chmod(outfile.name, 0644) diff --git a/methods/http.cc b/methods/http.cc index 5aefd4c1f..d9487be88 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -58,6 +58,7 @@ time_t HttpMethod::FailTime = 0; unsigned long PipelineDepth = 10; unsigned long TimeOut = 120; bool Debug = false; +URI Proxy; unsigned long CircleBuf::BwReadLimit=0; unsigned long CircleBuf::BwTickReadData=0; diff --git a/methods/http.h b/methods/http.h index 541e2952c..a6191e501 100644 --- a/methods/http.h +++ b/methods/http.h @@ -158,6 +158,4 @@ class HttpMethod : public pkgAcqMethod }; }; -URI Proxy; - #endif |