config: propagate SYNC to self.repositories
authorZac Medico <zmedico@gentoo.org>
Fri, 11 May 2012 21:49:29 +0000 (14:49 -0700)
committerZac Medico <zmedico@gentoo.org>
Fri, 11 May 2012 21:49:29 +0000 (14:49 -0700)
This resolves a circular dependency on the SYNC variable, which is
useful for bug #414961, since we want to be able to initialize
self.repositories before the SYNC variable is known.

pym/portage/package/ebuild/config.py
pym/portage/repository/config.py

index 0cd35a804cf4ab47141165bfd7456d56836a0105..8941de006b207a7140d64fbf356df22d29171f1f 100644 (file)
@@ -523,8 +523,7 @@ class config(object):
                        #filling PORTDIR and PORTDIR_OVERLAY variable for compatibility
                        main_repo = self.repositories.mainRepo()
                        if main_repo is not None:
-                               main_repo = main_repo.user_location
-                               self["PORTDIR"] = main_repo
+                               self["PORTDIR"] = main_repo.user_location
                                self.backup_changes("PORTDIR")
 
                        # repoman controls PORTDIR_OVERLAY via the environment, so no
@@ -785,6 +784,11 @@ class config(object):
                                        self[k] = self[k].lower()
                                        self.backup_changes(k)
 
+                       if main_repo is not None and not main_repo.sync:
+                               main_repo_sync = self.get("SYNC")
+                               if main_repo_sync:
+                                       main_repo.sync = main_repo_sync
+
                        # The first constructed config object initializes these modules,
                        # and subsequent calls to the _init() functions have no effect.
                        portage.output._init(config_root=self['PORTAGE_CONFIGROOT'])
index defdb47c86a50dfa234cbdc0430692da097123e2..e544c57f3ab8b208c77c41a430b0fa06ff6a45d5 100644 (file)
@@ -483,13 +483,6 @@ class RepoConfigLoader(object):
                prepos_order = [repo.name for (key, repo) in prepos_order
                        if repo.name == key and repo.location is not None]
 
-               if portdir in location_map:
-                       portdir_repo = prepos[location_map[portdir]]
-                       portdir_sync = settings.get('SYNC', '')
-                       #if SYNC variable is set and not overwritten by repos.conf
-                       if portdir_sync and not portdir_repo.sync:
-                               portdir_repo.sync = portdir_sync
-
                if prepos['DEFAULT'].main_repo is None or \
                        prepos['DEFAULT'].main_repo not in prepos:
                        #setting main_repo if it was not set in repos.conf