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

Collapse All | Expand All

(-)portage/pym/portage.py (+39 lines)
Lines 843-848 Link Here
843
		self.locked   = 0
843
		self.locked   = 0
844
		self.mycpv    = None
844
		self.mycpv    = None
845
		self.puse     = []
845
		self.puse     = []
846
		self.penv     = []
846
		self.modifiedkeys = []
847
		self.modifiedkeys = []
847
848
848
		self.virtuals = {}
849
		self.virtuals = {}
Lines 888-893 Link Here
888
			                    "env":       self.configlist[6] }
889
			                    "env":       self.configlist[6] }
889
			self.profiles = copy.deepcopy(clone.profiles)
890
			self.profiles = copy.deepcopy(clone.profiles)
890
			self.backupenv  = copy.deepcopy(clone.backupenv)
891
			self.backupenv  = copy.deepcopy(clone.backupenv)
892
			self.penvdict   = copy.deepcopy(clone.penvdict)
891
			self.pusedict   = copy.deepcopy(clone.pusedict)
893
			self.pusedict   = copy.deepcopy(clone.pusedict)
892
			self.categories = copy.deepcopy(clone.categories)
894
			self.categories = copy.deepcopy(clone.categories)
893
			self.pkeywordsdict = copy.deepcopy(clone.pkeywordsdict)
895
			self.pkeywordsdict = copy.deepcopy(clone.pkeywordsdict)
Lines 1054-1059 Link Here
1054
			if os.environ.get("PORTAGE_CALLER","") == "repoman":
1056
			if os.environ.get("PORTAGE_CALLER","") == "repoman":
1055
				# repoman shouldn't use local settings.
1057
				# repoman shouldn't use local settings.
1056
				locations = [self["PORTDIR"] + "/profiles"]
1058
				locations = [self["PORTDIR"] + "/profiles"]
1059
				self.penvdict = {}
1057
				self.pusedict = {}
1060
				self.pusedict = {}
1058
				self.pkeywordsdict = {}
1061
				self.pkeywordsdict = {}
1059
				self.punmaskdict = {}
1062
				self.punmaskdict = {}
Lines 1064-1069 Link Here
1064
					if os.path.isdir(ov+"/profiles"):
1067
					if os.path.isdir(ov+"/profiles"):
1065
						locations.append(ov+"/profiles")
1068
						locations.append(ov+"/profiles")
1066
1069
1070
				#package.env
1071
				penvdict=grabdict_package(USER_CONFIG_PATH+"/package.env")
1072
				self.penvdict = {}
1073
				for key in penvdict.keys():
1074
					cp = dep_getkey(key)
1075
					if not self.penvdict.has_key(cp):
1076
						self.penvdict[cp] = {}
1077
					self.penvdict[cp][key] = penvdict[key]
1078
1067
				pusedict=grabdict_package(USER_CONFIG_PATH+"/package.use")
1079
				pusedict=grabdict_package(USER_CONFIG_PATH+"/package.use")
1068
				self.pusedict = {}
1080
				self.pusedict = {}
1069
				for key in pusedict.keys():
1081
				for key in pusedict.keys():
Lines 1223-1228 Link Here
1223
1235
1224
		if mycpv:
1236
		if mycpv:
1225
			self.setcpv(mycpv)
1237
			self.setcpv(mycpv)
1238
			self.setenv(mycpv)
1226
1239
1227
	def loadVirtuals(self,root):
1240
	def loadVirtuals(self,root):
1228
		self.virtuals = self.getvirtuals(root)
1241
		self.virtuals = self.getvirtuals(root)
Lines 1258-1263 Link Here
1258
		self.modifiedkeys = []
1271
		self.modifiedkeys = []
1259
		if not keeping_pkg:
1272
		if not keeping_pkg:
1260
			self.puse = ""
1273
			self.puse = ""
1274
			self.penv = ""
1261
			self.configdict["pkg"].clear()
1275
			self.configdict["pkg"].clear()
1262
		self.regenerate(use_cache=use_cache)
1276
		self.regenerate(use_cache=use_cache)
1263
1277
Lines 1291-1296 Link Here
1291
			return 1
1305
			return 1
1292
		return 0
1306
		return 0
1293
1307
1308
	def setenv(self,mycpv,use_cache=1):
1309
#		self.modifying()
1310
		cp = dep_getkey(mycpv)
1311
		newpenv = ""
1312
		if self.penvdict.has_key(cp):
1313
			self.pusekey = best_match_to_list(self.mycpv, self.penvdict[cp].keys())
1314
			if self.pusekey:
1315
				newpenv = string.join(self.penvdict[cp][self.pusekey])
1316
		if self.penv == newpenv:
1317
			return
1318
		self.penv = newpenv
1319
		self.configdict["pkg"]["ENV"] = self.penv[:]
1320
		self["PACKAGE_ENV"] = USER_CONFIG_PATH + "/env/" + self.configdict["pkg"]["ENV"]
1321
		if os.path.exists(self["PACKAGE_ENV"]):
1322
			penvconfig = getconfig(self["PACKAGE_ENV"])
1323
			if penvconfig == None:
1324
				writemsg("!!! Parsing error in "+self["PACKAGE_ENV"]+"\n")
1325
			else:
1326
				for penv in penvconfig.keys():
1327
					if not self.has_key(penv):
1328
						self[penv] = penvconfig[penv]
1329
		self.regenerate()
1330
#		self.reset(keeping_pkg=2,use_cache=use_cache)
1331
1294
	def setcpv(self,mycpv,use_cache=1):
1332
	def setcpv(self,mycpv,use_cache=1):
1295
		self.modifying()
1333
		self.modifying()
1296
		self.mycpv = mycpv
1334
		self.mycpv = mycpv
Lines 2379-2384 Link Here
2379
		# XXX: that creates a deadlock... Really need to isolate that.
2417
		# XXX: that creates a deadlock... Really need to isolate that.
2380
		mysettings.reset(use_cache=use_cache)
2418
		mysettings.reset(use_cache=use_cache)
2381
	mysettings.setcpv(mycpv,use_cache=use_cache)
2419
	mysettings.setcpv(mycpv,use_cache=use_cache)
2420
	mysettings.setenv(mycpv,use_cache=use_cache)
2382
2421
2383
	validcommands = ["help","clean","prerm","postrm","preinst","postinst",
2422
	validcommands = ["help","clean","prerm","postrm","preinst","postinst",
2384
	                "config","setup","depend","fetch","digest",
2423
	                "config","setup","depend","fetch","digest",

Return to bug 44796