Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 6415 Details for
Bug 2825
RuntimeWarning: tmpnam is a potential security risk
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
pkg-clean
pkg-clean (text/plain), 2.64 KB, created by
Thomas Raschbacher
on 2002-12-11 18:12:36 UTC
(
hide
)
Description:
pkg-clean
Filename:
MIME Type:
Creator:
Thomas Raschbacher
Created:
2002-12-11 18:12:36 UTC
Size:
2.64 KB
patch
obsolete
>#!/usr/bin/python ># vim: set ts=4 sw=4: ># Copyright 2002 Gentoo Technologies, Inc. ># Distributed under the terms of the GNU General Public License, v2 or later ># Author: Leo Lipelis <aeoo@gentoo.org> ># Author: Karl Trygve Kalleberg <karltk@gentoo.org> > >import commands >import re >import sys >import string >import time >import os >from popen2 import popen3 > ># constants for package tuples that are stored in pkg_hash >PKG_TIME = 0 # number of seconds for ctime function >PKG = 1 # package full path as accepted by ebuild >PKG_NAME = 2 # package name as accepted by emerge > >(status, pkg_files) = commands.getstatusoutput( > "find /var/db/pkg -iname '*.ebuild' -printf '%T@ %p\n' | sort -n") > >pkg_file_list = pkg_files.splitlines() > >pkg_hash = {} >for time_pkg_pair in pkg_file_list: > (pkg_time, pkg) = time_pkg_pair.split() > pkg_time = string.atoi(pkg_time) > # This covers developer trees with not-accepted categories > tmp_name = re.match(r'/var/db/pkg/(.*/.*)/.*', pkg) > if not tmp_name: continue > pkg_name = tmp_name.group(1) > tmp_core = re.match(r'(.*)-\d.*', pkg_name) > if not tmp_core: continue > pkg_core = tmp_core.group(1) > if pkg_hash.has_key(pkg_core): > pkg_hash[pkg_core].append((pkg_time, pkg, pkg_name)) > else: > pkg_hash[pkg_core] = [(pkg_time, pkg, pkg_name)] > >total_len = len(pkg_hash.keys()) >curpkg = 0 >assume_yes = 0 > > >if len(sys.argv) > 1: > if sys.argv[1] in ["-y", "--yes"]: > assume_yes = 1 > elif sys.argv[1] in ["-h", "--help"]: > print """pkg-clean [options] > >-y, --yes Don't ask for individual confirmation before unmerging; assume yes. >""" > sys.exit(0) > >for pkg_core in pkg_hash.keys(): > print "Examining %s:" % (pkg_core) > if len(pkg_hash[pkg_core]) < 2: > continue > unmerged_indexes = [] > > curpkg += 1 > choices = "" > idx = 1 > for pkg_tuple in pkg_hash[pkg_core]: > choices += " %d \"%s %s\" 0" % \ > (idx, time.ctime(pkg_tuple[PKG_TIME]), > pkg_tuple[PKG_NAME]) > idx += 1 > > params = "dialog --separate-output --backtitle \"pkg-clean processing package %d of %d\" " % ( curpkg, total_len) > params += "--checklist \"Select which package(s) to unmerge\" 20 70 12" + choices > _out,_in,_err=popen3(params) > > for j in _err.readlines(): > idx = string.atoi(j) > if idx == 0: > break > > full_path = pkg_hash[pkg_core][idx-1][PKG] > ebuild = string.replace(full_path, "/var/db/pkg/", "") > > if not assume_yes: > params = "dialog --backtitle \"" + ebuild + "\" " + \ > "--yesno \"Are you sure you want to unmerge " + ebuild + " ?\" 20 70" > res = os.system(params) > else: > res = 0 > > if res == 0: > (status, unmerge_out) = commands.getstatusoutput( > "ebuild %s unmerge" % (full_path)) > print unmerge_out > time.sleep(2) > if status != 0: > sys.exit(status) >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 2825
: 6415