summaryrefslogtreecommitdiff
path: root/cmdline/apt-mark
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2009-07-21 16:05:52 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2009-07-21 16:05:52 +0200
commit53391d0fc55f118194467b3d436f91fbc1097c31 (patch)
treedcadedb5ec9469af96312c263955b4d11b6ce861 /cmdline/apt-mark
parent7b139dabdcdff68a2854405e55924559591df8d0 (diff)
parent4b7cfe96d621ab8fc0cec1334f0cd5f9ea87bf6d (diff)
* apt-pkg/acquire.cc:
- make the max pipeline depth of the acquire queue configurable via Acquire::Max-Pipeline-Depth * apt-pkg/deb/dpkgpm.cc: - add Dpkg::UseIoNice boolean option to run dpkg with ionice -c3 (off by default) - send "dpkg-exec" message on the status fd when dpkg is run - provide DPkg::Chroot-Directory config option (useful for testing) - fix potential hang when in a backgroud process group * apt-pkg/algorithms.cc: - consider recommends when making the scores for the problem resolver * apt-pkg/acquire-worker.cc: - show error details of failed methods * apt-pkg/contrib/fileutl.cc: - if a process aborts with signal, show signal number * methods/http.cc: - ignore SIGPIPE, we deal with EPIPE from write in HttpMethod::ServerDie() (LP: #385144) * apt-pkg/indexcopy.cc: - support having CDs with no Packages file (just a Packages.gz) by not forcing a verification on non-existing files (LP: #255545) - remove the gettext from a string that consists entirely of variables (LP: #56792) * apt-pkg/cacheiterators.h: - add missing checks for Owner == 0 in end() * apt-pkg/indexrecords.cc: - fix some i18n issues * apt-pkg/contrib/strutl.h: - add new strprintf() function to make i18n strings easier - fix compiler warning * apt-pkg/deb/debsystem.cc: - make strings i18n able * fix problematic use of tolower() when calculating the version hash by using locale independant tolower_ascii() function. Thanks to M. Vefa Bicakci (LP: #80248) * build fixes for g++-4.4 * cmdline/apt-mark: - add "showauto" option to show automatically installed packages * document --install-recommends and --no-install-recommends (thanks to Dereck Wonnacott, LP: #126180) * Updated cron script to support backups by hardlinks and verbose levels. All features turned off by default. * Added more error handlings. Closes: #438803, #462734, #454989, * Refactored condition structure to make download and upgrade performed if only previous steps succeeded. Closes: #341970 * Documented all cron script related configuration items in configure-index. * apt-ftparchive might write corrupt Release files (LP: #46439) * Apply --important option to apt-cache depends (LP: #16947)
Diffstat (limited to 'cmdline/apt-mark')
-rwxr-xr-xcmdline/apt-mark72
1 files changed, 45 insertions, 27 deletions
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)