getportageversion: handle repo: in parent file
authorZac Medico <zmedico@gentoo.org>
Fri, 22 Jun 2012 07:18:11 +0000 (00:18 -0700)
committerZac Medico <zmedico@gentoo.org>
Fri, 22 Jun 2012 07:18:11 +0000 (00:18 -0700)
pym/_emerge/actions.py

index a689b7b1a533f4a96955d6abe3e68bff9b27096a..7ad28e62d5eb72cc67a6412c7c8c5fdd2124a2e4 100644 (file)
@@ -2807,6 +2807,7 @@ def relative_profile_path(portdir, abs_profile):
 
 def getportageversion(portdir, _unused, profile, chost, vardb):
        profilever = None
+       repositories = vardb.settings.repositories
        if profile:
                profilever = relative_profile_path(portdir, profile)
                if profilever is None:
@@ -2817,6 +2818,20 @@ def getportageversion(portdir, _unused, profile, chost, vardb):
                                                os.path.join(profile, parent))
                                        if profilever is not None:
                                                break
+                                       colon = parent.find(":")
+                                       if colon != -1:
+                                               p_repo_name = parent[:colon]
+                                               try:
+                                                       p_repo_loc = \
+                                                               repositories.get_location_for_name(p_repo_name)
+                                               except KeyError:
+                                                       pass
+                                               else:
+                                                       profilever = relative_profile_path(p_repo_loc,
+                                                               os.path.join(p_repo_loc, 'profiles',
+                                                                       parent[colon+1:]))
+                                                       if profilever is not None:
+                                                               break
                        except portage.exception.PortageException:
                                pass