summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bin/isolated-functions.sh4
-rw-r--r--pym/portage/data.py10
-rw-r--r--pym/portage/package/ebuild/config.py4
3 files changed, 11 insertions, 7 deletions
diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
index 6bead30b2..fb6ad64ff 100644
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@ -557,11 +557,11 @@ save_ebuild_env() {
PORTAGE_BINPKG_TAR_OPTS PORTAGE_BINPKG_TMPFILE PORTAGE_BUILDDIR \
PORTAGE_COLORMAP PORTAGE_CONFIGROOT PORTAGE_DEBUG \
PORTAGE_DEPCACHEDIR PORTAGE_GID \
- PORTAGE_INST_GID \
+ PORTAGE_GRPNAME PORTAGE_INST_GID \
PORTAGE_INST_UID PORTAGE_LOG_FILE PORTAGE_MASTER_PID \
PORTAGE_NONFATAL PORTAGE_QUIET \
PORTAGE_REPO_NAME PORTAGE_RESTRICT PORTAGE_UPDATE_ENV \
- PORTAGE_VERBOSE PORTAGE_WORKDIR_MODE PORTDIR \
+ PORTAGE_USERNAME PORTAGE_VERBOSE PORTAGE_WORKDIR_MODE PORTDIR \
PORTDIR_OVERLAY ${!PORTAGE_SANDBOX_*} PREROOTPATH \
PROFILE_PATHS PWORKDIR QA_INTERCEPTORS \
RC_DEFAULT_INDENT RC_DOT_PATTERN RC_ENDCOL \
diff --git a/pym/portage/data.py b/pym/portage/data.py
index debf419dd..a9ac62ddc 100644
--- a/pym/portage/data.py
+++ b/pym/portage/data.py
@@ -74,10 +74,14 @@ try:
except KeyError:
pass
+# Allow the overriding of the user used for 'userpriv' and 'userfetch'
+_portage_uname = os.environ.get('PORTAGE_USERNAME', 'portage')
+_portage_grpname = os.environ.get('PORTAGE_GRPNAME', 'portage')
+
#Discover the uid and gid of the portage user/group
try:
- portage_uid=pwd.getpwnam("portage")[2]
- portage_gid=grp.getgrnam("portage")[2]
+ portage_uid = pwd.getpwnam(_portage_uname)[2]
+ portage_gid = grp.getgrnam(_portage_grpname)[2]
if secpass < 1 and portage_gid in os.getgroups():
secpass=1
except KeyError:
@@ -108,7 +112,7 @@ else:
# grp.getgrall() since it is known to trigger spurious
# SIGPIPE problems with nss_ldap.
mystatus, myoutput = \
- portage.subprocess_getstatusoutput("id -G %s" % 'portage')
+ portage.subprocess_getstatusoutput("id -G %s" % _portage_uname)
if mystatus == os.EX_OK:
for x in myoutput.split():
try:
diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py
index b0fecae8f..4e735e35d 100644
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@ -179,13 +179,13 @@ class config(object):
"PORTAGE_BIN_PATH",
"PORTAGE_BUILDDIR", "PORTAGE_COLORMAP",
"PORTAGE_CONFIGROOT", "PORTAGE_DEBUG", "PORTAGE_DEPCACHEDIR",
- "PORTAGE_GID",
+ "PORTAGE_GID", "PORTAGE_GRPNAME",
"PORTAGE_INST_GID", "PORTAGE_INST_UID",
"PORTAGE_IUSE",
"PORTAGE_LOG_FILE", "PORTAGE_MASTER_PID",
"PORTAGE_PYM_PATH", "PORTAGE_QUIET",
"PORTAGE_REPO_NAME", "PORTAGE_RESTRICT",
- "PORTAGE_TMPDIR", "PORTAGE_UPDATE_ENV",
+ "PORTAGE_TMPDIR", "PORTAGE_UPDATE_ENV", "PORTAGE_USERNAME",
"PORTAGE_VERBOSE", "PORTAGE_WORKDIR_MODE",
"PORTDIR", "PORTDIR_OVERLAY", "PREROOTPATH", "PROFILE_PATHS",
"REPLACING_VERSIONS", "REPLACED_BY_VERSION",