diff options
Diffstat (limited to 'cmdline')
-rw-r--r-- | cmdline/apt-cache.cc | 17 | ||||
-rwxr-xr-x | cmdline/apt-mark | 72 |
2 files changed, 56 insertions, 33 deletions
diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index acef8dc5e..c30e22b76 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -102,15 +102,13 @@ bool UnMet(CommandLine &CmdL) if (End->Type != pkgCache::Dep::PreDepends && End->Type != pkgCache::Dep::Depends && End->Type != pkgCache::Dep::Suggests && - End->Type != pkgCache::Dep::Recommends && - End->Type != pkgCache::Dep::DpkgBreaks) + End->Type != pkgCache::Dep::Recommends) continue; // Important deps only if (Important == true) if (End->Type != pkgCache::Dep::PreDepends && - End->Type != pkgCache::Dep::Depends && - End->Type != pkgCache::Dep::DpkgBreaks) + End->Type != pkgCache::Dep::Depends) continue; // Verify the or group @@ -557,6 +555,7 @@ bool Depends(CommandLine &CmdL) bool Recurse = _config->FindB("APT::Cache::RecurseDepends",false); bool Installed = _config->FindB("APT::Cache::Installed",false); + bool Important = _config->FindB("APT::Cache::Important",false); bool DidSomething; do { @@ -579,7 +578,12 @@ bool Depends(CommandLine &CmdL) for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; D++) { - + // Important deps only + if (Important == true) + if (D->Type != pkgCache::Dep::PreDepends && + D->Type != pkgCache::Dep::Depends) + continue; + pkgCache::PkgIterator Trg = D.TargetPkg(); if((Installed && Trg->CurrentVer != 0) || !Installed) @@ -1529,7 +1533,8 @@ bool Policy(CommandLine &CmdL) if (SrcList->FindIndex(F,Indx) == false && _system->FindIndex(F,Indx) == false) return _error->Error(_("Cache is out of sync, can't x-ref a package file")); - printf(_("%4i %s\n"), + + printf("%4i %s\n", Plcy.GetPriority(F),Indx->Describe(true).c_str()); // Print the reference information for the package diff --git a/cmdline/apt-mark b/cmdline/apt-mark index f6e749eb5..226d2079b 100755 --- a/cmdline/apt-mark +++ b/cmdline/apt-mark @@ -14,34 +14,21 @@ actions = { "markauto" : 1, "unmarkauto": 0 } -if __name__ == "__main__": - apt_pkg.init() - - # option parsing - parser = OptionParser() - parser.usage = "%prog [options] {markauto|unmarkauto} packages..." - parser.add_option("-f", "--file", action="store", type="string", - dest="filename", - help="read/write a different file") - parser.add_option("-v", "--verbose", - action="store_true", dest="verbose", default=False, - help="print verbose status messages to stdout") - (options, args) = parser.parse_args() - if len(args) < 2: - parser.error("not enough argument") - - # get pkgs to change - if args[0] not in actions.keys(): - parser.error("first argument must be 'markauto' or 'unmarkauto'") - pkgs = args[1:] - action = actions[args[0]] - - # get the state-file - if not options.filename: - STATE_FILE = apt_pkg.Config.FindDir("Dir::State") + "extended_states" - else: - STATE_FILE=options.filename +def show_automatic(filename): + if not os.path.exists(STATE_FILE): + return + auto = set() + tagfile = apt_pkg.ParseTagFile(open(STATE_FILE)) + while tagfile.Step(): + pkgname = tagfile.Section.get("Package") + autoInst = tagfile.Section.get("Auto-Installed") + if int(autoInst): + auto.add(pkgname) + print "\n".join(sorted(auto)) + +def mark_unmark_automatic(filename, action, pkgs): + " mark or unmark automatic flag" # open the statefile if os.path.exists(STATE_FILE): tagfile = apt_pkg.ParseTagFile(open(STATE_FILE)) @@ -63,3 +50,34 @@ if __name__ == "__main__": os.chmod(outfile.name, 0644) os.rename(outfile.name, STATE_FILE) os.chmod(STATE_FILE, 0644) + + +if __name__ == "__main__": + apt_pkg.init() + + # option parsing + parser = OptionParser() + parser.usage = "%prog [options] {markauto|unmarkauto} packages..." + parser.add_option("-f", "--file", action="store", type="string", + dest="filename", + help="read/write a different file") + parser.add_option("-v", "--verbose", + action="store_true", dest="verbose", default=False, + help="print verbose status messages to stdout") + (options, args) = parser.parse_args() + + # get the state-file + if not options.filename: + STATE_FILE = apt_pkg.Config.FindDir("Dir::State") + "extended_states" + else: + STATE_FILE=options.filename + + if args[0] == "showauto": + show_automatic(STATE_FILE) + else: + # get pkgs to change + if args[0] not in actions.keys(): + parser.error("first argument must be 'markauto', 'unmarkauto' or 'showauto'") + pkgs = args[1:] + action = actions[args[0]] + mark_unmark_automatic(STATE_FILE, action, pkgs) |