For dep_expand() backward compatibility, handle atoms with missing '='
authorZac Medico <zmedico@gentoo.org>
Sat, 24 May 2008 22:03:27 +0000 (22:03 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 24 May 2008 22:03:27 +0000 (22:03 -0000)
prefix which did not raise an error here before the portage.dep.Atom
class was introduced.

svn path=/main/trunk/; revision=10394

pym/portage/__init__.py

index a42f99894333f3c2a7823ccdb7368530d7565cea..dfe7ddeb09beba1cdc1a8e611a09900d2904ba9d 100644 (file)
@@ -5720,8 +5720,15 @@ def dep_expand(mydep, mydb=None, use_cache=1, settings=None):
        myindex = orig_dep.index(mydep)
        prefix = orig_dep[:myindex]
        postfix = orig_dep[myindex+len(mydep):]
-       return portage.dep.Atom(prefix + cpv_expand(
-               mydep, mydb=mydb, use_cache=use_cache, settings=settings) + postfix)
+       expanded = cpv_expand(mydep, mydb=mydb,
+               use_cache=use_cache, settings=settings)
+       try:
+               return portage.dep.Atom(prefix + expanded + postfix)
+       except portage.exception.InvalidAtom:
+               # Missing '=' prefix is allowed for backward compatibility.
+               if not isvalidatom("=" + prefix + expanded + postfix):
+                       raise
+               return portage.dep.Atom("=" + prefix + expanded + postfix)
 
 def dep_check(depstring, mydbapi, mysettings, use="yes", mode=None, myuse=None,
        use_cache=1, use_binaries=0, myroot="/", trees=None):