Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 152990
Collapse All | Expand All

(-)usr/lib/portage/pym/portage_dep.py (-2 / +3 lines)
Lines 314-322 Link Here
314
		cat, pkg = catsplit(mycpv)
314
		cat, pkg = catsplit(mycpv)
315
		ver      = None
315
		ver      = None
316
		rev      = None
316
		rev      = None
317
		loc      = None
317
		slot = dep_getslot(mydep)
318
		slot = dep_getslot(mydep)
318
	else:
319
	else:
319
		cat, pkg, ver, rev = mycpv_cps
320
		cat, pkg, ver, rev, loc = mycpv_cps
320
		if mydep == mycpv:
321
		if mydep == mycpv:
321
			raise KeyError("Specific key requires an operator" + \
322
			raise KeyError("Specific key requires an operator" + \
322
				" (%s) (try adding an '=')" % (mydep))
323
				" (%s) (try adding an '=')" % (mydep))
Lines 371-377 Link Here
371
	elif operator in [">", ">=", "<", "<="]:
372
	elif operator in [">", ">=", "<", "<="]:
372
		for x in candidate_list:
373
		for x in candidate_list:
373
			try:
374
			try:
374
				result = pkgcmp(pkgsplit(x), [cat + "/" + pkg, ver, rev])
375
				result = pkgcmp(pkgsplit(x), [cat + "/" + pkg, ver, rev, loc])
375
			except SystemExit:
376
			except SystemExit:
376
				raise
377
				raise
377
			except:
378
			except:
(-)usr/lib/portage/pym/portage_versions.py (-17 / +37 lines)
Lines 1-6 Link Here
1
import re,string
1
import re,string
2
2
3
ver_regexp = re.compile("^(cvs\\.)?(\\d+)((\\.\\d+)*)([a-z]?)((_(pre|p|beta|alpha|rc)\\d*)*)(-r(\\d+))?$")
3
ver_regexp = re.compile("^(cvs\\.)?(\\d+)((\\.\\d+)*)([a-z]?)((_(pre|p|beta|alpha|rc)\\d*)*)(-r(\\d+))?(-local(\\d+))?$")
4
suffix_regexp = re.compile("^(alpha|beta|rc|pre|p)(\\d*)$")
4
suffix_regexp = re.compile("^(alpha|beta|rc|pre|p)(\\d*)$")
5
suffix_value = {"pre": -2, "p": 0, "alpha": -4, "beta": -3, "rc": -1}
5
suffix_value = {"pre": -2, "p": 0, "alpha": -4, "beta": -3, "rc": -1}
6
endversion_keys = ["pre", "p", "alpha", "beta", "rc"]
6
endversion_keys = ["pre", "p", "alpha", "beta", "rc"]
Lines 110-116 Link Here
110
			except ValueError:	r2 = 0
110
			except ValueError:	r2 = 0
111
			return r1 - r2
111
			return r1 - r2
112
	
112
	
113
	# the suffix part is equal to, so finally check the revision
113
	# the suffix part is equal too, so check the revision
114
	if match1.group(10):
114
	if match1.group(10):
115
		r1 = string.atoi(match1.group(10))
115
		r1 = string.atoi(match1.group(10))
116
	else:
116
	else:
Lines 119-126 Link Here
119
		r2 = string.atoi(match2.group(10))
119
		r2 = string.atoi(match2.group(10))
120
	else:
120
	else:
121
		r2 = 0
121
		r2 = 0
122
	vercmp_cache[mykey] = r1 - r2
122
123
	return r1 - r2
123
	if r1 != r2:
124
		vercmp_cache[mykey] = r1 - r2
125
		return r1 - r2
126
127
	# if revision part is equal, finally check local part
128
	if match1.group(12):
129
		loc1 = string.atoi(match1.group(12))
130
	else:
131
		loc1 = 0
132
	if match2.group(12):
133
		loc2 = string.atoi(match2.group(12))
134
	else:
135
		loc2 = 0
136
137
	vercmp_cache[mykey] = loc1 - loc2
138
	return loc1 - loc2
124
	
139
	
125
def pkgcmp(pkg1, pkg2):
140
def pkgcmp(pkg1, pkg2):
126
	"""
141
	"""
Lines 146-163 Link Here
146
	"""
161
	"""
147
	if pkg1[0] != pkg2[0]:
162
	if pkg1[0] != pkg2[0]:
148
		return None
163
		return None
149
	mycmp=vercmp(pkg1[1],pkg2[1])
164
150
	if mycmp>0:
165
	return vercmp("-".join(pkg1[1:]),"-".join(pkg2[1:]))
151
		return 1
152
	if mycmp<0:
153
		return -1
154
	r1=string.atof(pkg1[2][1:])
155
	r2=string.atof(pkg2[2][1:])
156
	if r1>r2:
157
		return 1
158
	if r2>r1:
159
		return -1
160
	return 0
161
166
162
167
163
pkgcache={}
168
pkgcache={}
Lines 182-187 Link Here
182
				print "!!! Name error in",mypkg+": empty \"-\" part."
187
				print "!!! Name error in",mypkg+": empty \"-\" part."
183
			pkgcache[mypkg]=None
188
			pkgcache[mypkg]=None
184
			return None
189
			return None
190
191
	#verify loc
192
	locok=0
193
	myloc=myparts[-1]
194
	if len(myloc) and myloc[0:5]=="local":
195
		try:
196
			string.atoi(myloc[5:])
197
			locok=1
198
		except: 
199
			pass
200
	if locok:
201
		local = myparts[-1]
202
		del myparts[-1]
203
	else:
204
		local = "local0"
185
	
205
	
186
	#verify rev
206
	#verify rev
187
	revok=0
207
	revok=0
Lines 209-215 Link Here
209
					pkgcache[mypkg]=None
229
					pkgcache[mypkg]=None
210
					return None
230
					return None
211
					#names can't have versiony looking parts
231
					#names can't have versiony looking parts
212
			myval=[string.join(myparts[:verPos],"-"),myparts[verPos],revision]
232
			myval=[string.join(myparts[:verPos],"-"),myparts[verPos],revision,local]
213
			pkgcache[mypkg]=myval
233
			pkgcache[mypkg]=myval
214
			return myval
234
			return myval
215
	else:
235
	else:

Return to bug 152990