Lines 4-9
Link Here
|
4 |
# $Id: emerge 5629 2007-01-13 08:54:35Z zmedico $ |
4 |
# $Id: emerge 5629 2007-01-13 08:54:35Z zmedico $ |
5 |
|
5 |
|
6 |
import sys |
6 |
import sys |
|
|
7 |
import operator |
7 |
# This block ensures that ^C interrupts are handled quietly. |
8 |
# This block ensures that ^C interrupts are handled quietly. |
8 |
try: |
9 |
try: |
9 |
import signal |
10 |
import signal |
Lines 173-179
Link Here
|
173 |
"--fetchonly", "--fetch-all-uri", |
174 |
"--fetchonly", "--fetch-all-uri", |
174 |
"--getbinpkg", "--getbinpkgonly", |
175 |
"--getbinpkg", "--getbinpkgonly", |
175 |
"--help", "--ignore-default-opts", |
176 |
"--help", "--ignore-default-opts", |
176 |
"--noconfmem", |
177 |
"--longuse", "--noconfmem", |
177 |
"--newuse", "--nocolor", |
178 |
"--newuse", "--nocolor", |
178 |
"--nodeps", "--noreplace", |
179 |
"--nodeps", "--noreplace", |
179 |
"--nospinner", "--oneshot", |
180 |
"--nospinner", "--oneshot", |
Lines 205-211
Link Here
|
205 |
"q":"--quiet", |
206 |
"q":"--quiet", |
206 |
"s":"--search", "S":"--searchdesc", |
207 |
"s":"--search", "S":"--searchdesc", |
207 |
't':"--tree", |
208 |
't':"--tree", |
208 |
"u":"--update", |
209 |
"u":"--update", "U":"--longuse", |
209 |
"v":"--verbose", "V":"--version" |
210 |
"v":"--verbose", "V":"--version" |
210 |
} |
211 |
} |
211 |
|
212 |
|
Lines 1077-1083
Link Here
|
1077 |
"binary":"bintree", |
1078 |
"binary":"bintree", |
1078 |
"installed":"vartree"} |
1079 |
"installed":"vartree"} |
1079 |
|
1080 |
|
1080 |
def __init__(self, settings, trees, myopts, myparams, spinner): |
1081 |
def __init__(self, settings, trees, myopts, myparams, spinner, use_descs): |
|
|
1082 |
self.use_descs = use_descs |
1081 |
self.settings = settings |
1083 |
self.settings = settings |
1082 |
self.target_root = settings["ROOT"] |
1084 |
self.target_root = settings["ROOT"] |
1083 |
self.myopts = myopts |
1085 |
self.myopts = myopts |
Lines 2558-2564
Link Here
|
2558 |
else: |
2560 |
else: |
2559 |
def create_use_string(name, cur_iuse, iuse_forced, cur_use, |
2561 |
def create_use_string(name, cur_iuse, iuse_forced, cur_use, |
2560 |
old_iuse, old_use, |
2562 |
old_iuse, old_use, |
2561 |
is_new, all_flags=(verbosity == 3 or "--quiet" in self.myopts), |
2563 |
is_new, pkg_key, all_flags=(verbosity == 3 or "--quiet" in self.myopts), |
2562 |
alphabetical=("--alphabetical" in self.myopts)): |
2564 |
alphabetical=("--alphabetical" in self.myopts)): |
2563 |
enabled = [] |
2565 |
enabled = [] |
2564 |
if alphabetical: |
2566 |
if alphabetical: |
Lines 2573-2578
Link Here
|
2573 |
any_iuse = cur_iuse.union(old_iuse) |
2575 |
any_iuse = cur_iuse.union(old_iuse) |
2574 |
any_iuse = list(any_iuse) |
2576 |
any_iuse = list(any_iuse) |
2575 |
any_iuse.sort() |
2577 |
any_iuse.sort() |
|
|
2578 |
|
2579 |
if "--longuse" in self.myopts and name == "USE": |
2580 |
enabled += '\n' |
2581 |
|
2576 |
for flag in any_iuse: |
2582 |
for flag in any_iuse: |
2577 |
flag_str = None |
2583 |
flag_str = None |
2578 |
isEnabled = False |
2584 |
isEnabled = False |
Lines 2590-2596
Link Here
|
2590 |
if flag in old_use: |
2596 |
if flag in old_use: |
2591 |
flag_str += "*" |
2597 |
flag_str += "*" |
2592 |
flag_str = "(" + flag_str + ")" |
2598 |
flag_str = "(" + flag_str + ")" |
2593 |
removed.append(flag_str) |
2599 |
if "--longuse" in self.myopts and name == "USE": |
|
|
2600 |
removed.append(flag_str.ljust(40)) |
2601 |
removed.append(flag_description(self.use_descs, pkg_key, flag)) |
2602 |
else: |
2603 |
removed.append(flag_str) |
2594 |
continue |
2604 |
continue |
2595 |
else: |
2605 |
else: |
2596 |
if is_new or flag in old_iuse and flag not in old_use and all_flags: |
2606 |
if is_new or flag in old_iuse and flag not in old_use and all_flags: |
Lines 2605-2618
Link Here
|
2605 |
if flag in iuse_forced: |
2615 |
if flag in iuse_forced: |
2606 |
flag_str = "(" + flag_str + ")" |
2616 |
flag_str = "(" + flag_str + ")" |
2607 |
if isEnabled: |
2617 |
if isEnabled: |
2608 |
enabled.append(flag_str) |
2618 |
if "--longuse" in self.myopts and name == "USE": |
|
|
2619 |
enabled.append(flag_str.ljust(40)) |
2620 |
enabled.append(flag_description(self.use_descs, pkg_key, flag)) |
2621 |
else: |
2622 |
enabled.append(flag_str) |
2609 |
else: |
2623 |
else: |
2610 |
disabled.append(flag_str) |
2624 |
if "--longuse" in self.myopts and name == "USE": |
|
|
2625 |
disabled.append(flag_str.ljust(40)) |
2626 |
disabled.append(flag_description(self.use_descs, pkg_key, flag)) |
2627 |
else: |
2628 |
disabled.append(flag_str) |
2611 |
|
2629 |
|
2612 |
if alphabetical: |
2630 |
if alphabetical: |
2613 |
ret = " ".join(enabled) |
2631 |
ret = " ".join(enabled) |
2614 |
else: |
2632 |
else: |
2615 |
ret = " ".join(enabled + disabled + removed) |
2633 |
ret = " ".join(enabled + disabled + removed) |
|
|
2634 |
|
2635 |
if "--longuse" in self.myopts and name == "USE": |
2636 |
# use flags have a newline at the end, strip it |
2637 |
ret = ret[:-1] |
2638 |
|
2616 |
if ret: |
2639 |
if ret: |
2617 |
ret = '%s="%s" ' % (name, ret) |
2640 |
ret = '%s="%s" ' % (name, ret) |
2618 |
return ret |
2641 |
return ret |
Lines 2911-2917
Link Here
|
2911 |
verboseadd += create_use_string(key.upper(), |
2934 |
verboseadd += create_use_string(key.upper(), |
2912 |
cur_iuse_map[key], iuse_forced[key], |
2935 |
cur_iuse_map[key], iuse_forced[key], |
2913 |
cur_use_map[key], old_iuse_map[key], |
2936 |
cur_use_map[key], old_iuse_map[key], |
2914 |
old_use_map[key], is_new) |
2937 |
old_use_map[key], is_new, pkg_key) |
2915 |
|
2938 |
|
2916 |
if verbosity == 3: |
2939 |
if verbosity == 3: |
2917 |
# size verbose |
2940 |
# size verbose |
Lines 5250-5255
Link Here
|
5250 |
else: |
5273 |
else: |
5251 |
print "Number removed: "+str(len(cleanlist)) |
5274 |
print "Number removed: "+str(len(cleanlist)) |
5252 |
|
5275 |
|
|
|
5276 |
def use_desc_files(settings): |
5277 |
local_desc = [] |
5278 |
global_desc = [] |
5279 |
|
5280 |
for p in settings["PORTDIR"].split() + settings["PORTDIR_OVERLAY"].split(): |
5281 |
try: |
5282 |
local_desc += open(p + "/profiles/use.local.desc").readlines() |
5283 |
except IOError: |
5284 |
pass |
5285 |
try: |
5286 |
global_desc += open(p + "/profiles/use.desc").readlines() |
5287 |
except IOError: |
5288 |
pass |
5289 |
|
5290 |
|
5291 |
return global_desc, local_desc |
5292 |
|
5293 |
def strip_version(pkg_key): |
5294 |
return re.compile("[^/]+/[^-]+").match(pkg_key).group() |
5295 |
|
5296 |
def flag_description(use_descs, pkg_key, flag): |
5297 |
local_descs, global_descs = use_descs |
5298 |
descr = filter(lambda line: line.startswith(flag + ' '), local_descs) |
5299 |
if descr == []: |
5300 |
descr = filter(lambda line: line.startswith(strip_version(pkg_key) + ':' + |
5301 |
flag + ' '), global_descs) |
5302 |
if descr == []: |
5303 |
return "" |
5304 |
return strip_version(pkg_key) + ':' + descr[0].split(' - ',1)[1] |
5305 |
return descr[0].split(' - ',1)[1] |
5306 |
|
5253 |
def action_build(settings, trees, mtimedb, |
5307 |
def action_build(settings, trees, mtimedb, |
5254 |
myopts, myaction, myfiles, spinner): |
5308 |
myopts, myaction, myfiles, spinner): |
5255 |
ldpath_mtimes = mtimedb["ldpath"] |
5309 |
ldpath_mtimes = mtimedb["ldpath"] |
Lines 5260-5265
Link Here
|
5260 |
if pretend or fetchonly: |
5314 |
if pretend or fetchonly: |
5261 |
# make the mtimedb readonly |
5315 |
# make the mtimedb readonly |
5262 |
mtimedb.filename = None |
5316 |
mtimedb.filename = None |
|
|
5317 |
|
5318 |
use_descs = [[],[]] |
5319 |
if "--longuse" in myopts: |
5320 |
use_descs = use_desc_files(settings) |
5321 |
|
5263 |
if "--quiet" not in myopts and \ |
5322 |
if "--quiet" not in myopts and \ |
5264 |
("--pretend" in myopts or "--ask" in myopts or \ |
5323 |
("--pretend" in myopts or "--ask" in myopts or \ |
5265 |
"--tree" in myopts or "--verbose" in myopts): |
5324 |
"--tree" in myopts or "--verbose" in myopts): |
Lines 5307-5313
Link Here
|
5307 |
if "--quiet" not in myopts and "--nodeps" not in myopts: |
5366 |
if "--quiet" not in myopts and "--nodeps" not in myopts: |
5308 |
print "Calculating dependencies ", |
5367 |
print "Calculating dependencies ", |
5309 |
mydepgraph = depgraph(settings, trees, |
5368 |
mydepgraph = depgraph(settings, trees, |
5310 |
myopts, myparams, spinner) |
5369 |
myopts, myparams, spinner, use_descs) |
5311 |
try: |
5370 |
try: |
5312 |
mydepgraph.loadResumeCommand(mtimedb["resume"]) |
5371 |
mydepgraph.loadResumeCommand(mtimedb["resume"]) |
5313 |
except portage_exception.PackageNotFound: |
5372 |
except portage_exception.PackageNotFound: |
Lines 5331-5337
Link Here
|
5331 |
if "--quiet" not in myopts and "--nodeps" not in myopts: |
5390 |
if "--quiet" not in myopts and "--nodeps" not in myopts: |
5332 |
print "Calculating",myaction,"dependencies ", |
5391 |
print "Calculating",myaction,"dependencies ", |
5333 |
sys.stdout.flush() |
5392 |
sys.stdout.flush() |
5334 |
mydepgraph = depgraph(settings, trees, myopts, myparams, spinner) |
5393 |
mydepgraph = depgraph(settings, trees, myopts, myparams, spinner, use_descs) |
5335 |
if not mydepgraph.xcreate(myaction): |
5394 |
if not mydepgraph.xcreate(myaction): |
5336 |
print "!!! Depgraph creation failed." |
5395 |
print "!!! Depgraph creation failed." |
5337 |
return 1 |
5396 |
return 1 |
Lines 5341-5347
Link Here
|
5341 |
if "--quiet" not in myopts and "--nodeps" not in myopts: |
5400 |
if "--quiet" not in myopts and "--nodeps" not in myopts: |
5342 |
print "Calculating dependencies ", |
5401 |
print "Calculating dependencies ", |
5343 |
sys.stdout.flush() |
5402 |
sys.stdout.flush() |
5344 |
mydepgraph = depgraph(settings, trees, myopts, myparams, spinner) |
5403 |
mydepgraph = depgraph(settings, trees, myopts, myparams, spinner, use_descs) |
5345 |
try: |
5404 |
try: |
5346 |
retval, favorites = mydepgraph.select_files(myfiles) |
5405 |
retval, favorites = mydepgraph.select_files(myfiles) |
5347 |
except portage_exception.PackageNotFound, e: |
5406 |
except portage_exception.PackageNotFound, e: |