Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 185122 | Differences between
and this patch

Collapse All | Expand All

(-)/mnt/stuff/usr/lib/portage/bin/emerge (-11 / +70 lines)
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:

Return to bug 185122