1 |
Support SYNC_UMASK and SYNC_USER variables that were used in Funtoo |
2 |
Portage, as fallbacks to sync-umask and sync-user repo keys. |
3 |
--- |
4 |
pym/portage/package/ebuild/_config/special_env_vars.py | 2 +- |
5 |
pym/portage/package/ebuild/config.py | 12 ++++++++++++ |
6 |
pym/portage/repository/config.py | 13 +++++++++++++ |
7 |
3 files changed, 26 insertions(+), 1 deletion(-) |
8 |
|
9 |
diff --git a/pym/portage/package/ebuild/_config/special_env_vars.py b/pym/portage/package/ebuild/_config/special_env_vars.py |
10 |
index 387f4ae..5c13e5b 100644 |
11 |
--- a/pym/portage/package/ebuild/_config/special_env_vars.py |
12 |
+++ b/pym/portage/package/ebuild/_config/special_env_vars.py |
13 |
@@ -180,7 +180,7 @@ environ_filter += [ |
14 |
"RESUMECOMMAND_HTTP", "RESUMECOMMAND_HTTPS", |
15 |
"RESUMECOMMAND_RSYNC", "RESUMECOMMAND_SFTP", |
16 |
"UNINSTALL_IGNORE", "USE_EXPAND_HIDDEN", "USE_ORDER", |
17 |
- "__PORTAGE_HELPER" |
18 |
+ "__PORTAGE_HELPER", "SYNC_UMASK", "SYNC_USER", |
19 |
] |
20 |
|
21 |
# No longer supported variables |
22 |
diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py |
23 |
index 59e239b..0ca2bfd 100644 |
24 |
--- a/pym/portage/package/ebuild/config.py |
25 |
+++ b/pym/portage/package/ebuild/config.py |
26 |
@@ -499,6 +499,8 @@ class config(object): |
27 |
portdir = "" |
28 |
portdir_overlay = "" |
29 |
portdir_sync = None |
30 |
+ sync_umask = None |
31 |
+ sync_user = None |
32 |
for confs in [make_globals, make_conf, self.configdict["env"]]: |
33 |
v = confs.get("PORTDIR") |
34 |
if v is not None: |
35 |
@@ -511,12 +513,22 @@ class config(object): |
36 |
v = confs.get("SYNC") |
37 |
if v is not None: |
38 |
portdir_sync = v |
39 |
+ v = confs.get("SYNC_UMASK") |
40 |
+ if v is not None: |
41 |
+ sync_umask = v |
42 |
+ v = confs.get("SYNC_USER") |
43 |
+ if v is not None: |
44 |
+ sync_user = v |
45 |
|
46 |
known_repos = frozenset(known_repos) |
47 |
self["PORTDIR"] = portdir |
48 |
self["PORTDIR_OVERLAY"] = portdir_overlay |
49 |
if portdir_sync: |
50 |
self["SYNC"] = portdir_sync |
51 |
+ if sync_umask: |
52 |
+ self["SYNC_UMASK"] = sync_umask |
53 |
+ if sync_user: |
54 |
+ self["SYNC_USER"] = sync_user |
55 |
self.lookuplist = [self.configdict["env"]] |
56 |
if repositories is None: |
57 |
self.repositories = load_repository_config(self) |
58 |
diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py |
59 |
index f45684b..9b7bfa9 100644 |
60 |
--- a/pym/portage/repository/config.py |
61 |
+++ b/pym/portage/repository/config.py |
62 |
@@ -827,6 +827,19 @@ class RepoConfigLoader(object): |
63 |
"!!! %s\n" % _("Set 'masters = %s' in this file for future compatibility") % |
64 |
self.mainRepo().name, level=logging.WARNING, noiselevel=-1) |
65 |
|
66 |
+ # respect SYNC_UMASK and SYNC_USER whenever not overriden |
67 |
+ fallback_umask = settings.get('SYNC_UMASK') |
68 |
+ fallback_user = settings.get('SYNC_USER') |
69 |
+ if fallback_umask is not None or fallback_user is not None: |
70 |
+ for repo_name, repo in prepos.items(): |
71 |
+ if repo_name == "DEFAULT": |
72 |
+ continue |
73 |
+ |
74 |
+ if repo.sync_umask is None and fallback_umask is not None: |
75 |
+ repo.sync_umask = fallback_umask |
76 |
+ if repo.sync_user is None and fallback_user is not None: |
77 |
+ repo.sync_user = fallback_user |
78 |
+ |
79 |
self._prepos_changed = True |
80 |
self._repo_location_list = [] |
81 |
|
82 |
-- |
83 |
2.2.0 |