commit:     ac461a291c52e754f313bb3a42477be4545a0c7e
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 14 21:26:47 2026 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Mar 15 20:17:44 2026 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=ac461a29

fowners: move path logic into global scope

Bug: https://bugs.gentoo.org/971120
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 bin/ebuild-helpers/fowners | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

diff --git a/bin/ebuild-helpers/fowners b/bin/ebuild-helpers/fowners
index d954d16932..f3473e1c3a 100755
--- a/bin/ebuild-helpers/fowners
+++ b/bin/ebuild-helpers/fowners
@@ -6,25 +6,21 @@ source "${PORTAGE_BIN_PATH:?}"/isolated-functions.sh || exit
 
 if ! ___eapi_has_prefix_variables; then
        ED=${D}
+       EROOT=${ROOT}
+fi
+
+if ___eapi_has_SYSROOT && [[ ${EBUILD_PHASE} == install ]]; then
+       PWDB_ROOT=${SYSROOT}
+       PWDB_EROOT=${ESYSROOT}
+else
+       PWDB_ROOT=${ROOT%/}
+       PWDB_EROOT=${EROOT%/}
 fi
 
 __resolve_owner() {
        local owner="${1}"
-       local user group uid gid pgid pwdb_path
-
-       if [[ ${EBUILD_PHASE} == preinst ]]; then
-               if ___eapi_has_prefix_variables; then
-                       pwdb_path="${EROOT%/}"/etc
-               else
-                       pwdb_path="${ROOT%/}"/etc
-               fi
-       else
-               if ___eapi_has_SYSROOT; then
-                       pwdb_path="${ESYSROOT}"/etc
-               else
-                       pwdb_path="${ROOT%/}"/etc
-               fi
-       fi
+       local pwdb_path="${PWDB_EROOT}/etc"
+       local user group uid gid pgid
 
        IFS=':' read -r user group <<< "${owner}"
 
@@ -66,7 +62,7 @@ for arg; do
                # the first non-option is the owner and must not be prefixed
                got_owner=1
                # use numeric-uid-gid from the custom target root
-               if [[ -n "${SYSROOT%/}" || -n "${ROOT%/}" ]]; then
+               if [[ -n ${PWDB_ROOT} ]]; then
                        args+=( "$(__resolve_owner "${arg}")" )
                else
                        args+=( "${arg}" )

Reply via email to