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}" )
