Support SYNC_UMASK and SYNC_USER variables that were used in Funtoo
Portage, as fallbacks to sync-umask and sync-user repo keys.
---
 pym/portage/package/ebuild/_config/special_env_vars.py |  2 +-
 pym/portage/package/ebuild/config.py                   | 12 ++++++++++++
 pym/portage/repository/config.py                       | 13 +++++++++++++
 3 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/pym/portage/package/ebuild/_config/special_env_vars.py 
b/pym/portage/package/ebuild/_config/special_env_vars.py
index 387f4ae..5c13e5b 100644
--- a/pym/portage/package/ebuild/_config/special_env_vars.py
+++ b/pym/portage/package/ebuild/_config/special_env_vars.py
@@ -180,7 +180,7 @@ environ_filter += [
        "RESUMECOMMAND_HTTP", "RESUMECOMMAND_HTTPS",
        "RESUMECOMMAND_RSYNC", "RESUMECOMMAND_SFTP",
        "UNINSTALL_IGNORE", "USE_EXPAND_HIDDEN", "USE_ORDER",
-       "__PORTAGE_HELPER"
+       "__PORTAGE_HELPER", "SYNC_UMASK", "SYNC_USER",
 ]
 
 # No longer supported variables
diff --git a/pym/portage/package/ebuild/config.py 
b/pym/portage/package/ebuild/config.py
index 59e239b..0ca2bfd 100644
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@ -499,6 +499,8 @@ class config(object):
                        portdir = ""
                        portdir_overlay = ""
                        portdir_sync = None
+                       sync_umask = None
+                       sync_user = None
                        for confs in [make_globals, make_conf, 
self.configdict["env"]]:
                                v = confs.get("PORTDIR")
                                if v is not None:
@@ -511,12 +513,22 @@ class config(object):
                                v = confs.get("SYNC")
                                if v is not None:
                                        portdir_sync = v
+                               v = confs.get("SYNC_UMASK")
+                               if v is not None:
+                                       sync_umask = v
+                               v = confs.get("SYNC_USER")
+                               if v is not None:
+                                       sync_user = v
 
                        known_repos = frozenset(known_repos)
                        self["PORTDIR"] = portdir
                        self["PORTDIR_OVERLAY"] = portdir_overlay
                        if portdir_sync:
                                self["SYNC"] = portdir_sync
+                       if sync_umask:
+                               self["SYNC_UMASK"] = sync_umask
+                       if sync_user:
+                               self["SYNC_USER"] = sync_user
                        self.lookuplist = [self.configdict["env"]]
                        if repositories is None:
                                self.repositories = load_repository_config(self)
diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py
index f45684b..9b7bfa9 100644
--- a/pym/portage/repository/config.py
+++ b/pym/portage/repository/config.py
@@ -827,6 +827,19 @@ class RepoConfigLoader(object):
                                        "!!! %s\n" % _("Set 'masters = %s' in 
this file for future compatibility") %
                                        self.mainRepo().name, 
level=logging.WARNING, noiselevel=-1)
 
+               # respect SYNC_UMASK and SYNC_USER whenever not overriden
+               fallback_umask = settings.get('SYNC_UMASK')
+               fallback_user = settings.get('SYNC_USER')
+               if fallback_umask is not None or fallback_user is not None:
+                       for repo_name, repo in prepos.items():
+                               if repo_name == "DEFAULT":
+                                       continue
+
+                               if repo.sync_umask is None and fallback_umask 
is not None:
+                                       repo.sync_umask = fallback_umask
+                               if repo.sync_user is None and fallback_user is 
not None:
+                                       repo.sync_user = fallback_user
+
                self._prepos_changed = True
                self._repo_location_list = []
 
-- 
2.2.0


Reply via email to