# Disable auto-use
USE_ORDER="env:pkg:conf:defaults:pkginternal:repo:env.d"
-# Default ownership of installed files.
-PORTAGE_INST_UID="0"
-PORTAGE_INST_GID="0"
-
# Mode bits for ${WORKDIR} (see ebuild.5).
PORTAGE_WORKDIR_MODE="0700"
self["USERLAND"] = "GNU"
self.backup_changes("USERLAND")
- for var in ("PORTAGE_INST_UID", "PORTAGE_INST_GID"):
+ default_inst_ids = {
+ "PORTAGE_INST_GID": "0",
+ "PORTAGE_INST_UID": "0",
+ }
+
+ if eprefix:
+ # For prefix environments, default to the UID and GID of
+ # the top-level EROOT directory.
+ try:
+ eroot_st = os.stat(eroot)
+ except OSError:
+ pass
+ else:
+ default_inst_ids["PORTAGE_INST_GID"] = str(eroot_st.st_gid)
+ default_inst_ids["PORTAGE_INST_UID"] = str(eroot_st.st_uid)
+
+ for var, default_val in default_inst_ids.items():
try:
- self[var] = str(int(self.get(var, "0")))
+ self[var] = str(int(self.get(var, default_val)))
except ValueError:
writemsg(_("!!! %s='%s' is not a valid integer. "
- "Falling back to '0'.\n") % (var, self[var]),
+ "Falling back to %s.\n") % (var, self[var], default_val),
noiselevel=-1)
- self[var] = "0"
+ self[var] = default_val
self.backup_changes(var)
# initialize self.features