commit: a90bafde1cab2db1f4d6fc65e7bf1b66df680449 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Fri Mar 23 08:18:20 2018 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Mon Sep 17 18:16:33 2018 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=a90bafde
f{owners,perms}: Warn when using relative path Reviewed-by: Zac Medico <zmedico <AT> gentoo.org> Closes: https://github.com/gentoo/portage/pull/364 bin/ebuild-helpers/fowners | 15 +++++++++++++++ bin/ebuild-helpers/fperms | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/bin/ebuild-helpers/fowners b/bin/ebuild-helpers/fowners index 68004210b..0eda73e58 100755 --- a/bin/ebuild-helpers/fowners +++ b/bin/ebuild-helpers/fowners @@ -8,6 +8,21 @@ if ! ___eapi_has_prefix_variables; then EPREFIX= ED=${D} fi +got_owner= +for arg; do + [[ ${arg} == -* ]] && continue + if [[ ! ${got_owner} ]]; then + got_owner=1 + continue + fi + if [[ ${arg} != /* ]]; then + eqawarn "Relative path passed to '${0##*/}': ${arg}" + eqawarn "This is unsupported. Please use 'chown' when you need to work on files" + eqawarn "outside the installation image (\${ED})." + fi +done + + # we can't prefix all arguments because # chown takes random options slash="/" diff --git a/bin/ebuild-helpers/fperms b/bin/ebuild-helpers/fperms index c63a6abc3..f98560039 100755 --- a/bin/ebuild-helpers/fperms +++ b/bin/ebuild-helpers/fperms @@ -8,6 +8,21 @@ if ! ___eapi_has_prefix_variables; then ED=${D} fi +got_mode= +for arg; do + # - can either be an option or a mode string + [[ ${arg} == -* && ${arg} != -[ugorwxXst] ]] && continue + if [[ ! ${got_mode} ]]; then + got_mode=1 + continue + fi + if [[ ${arg} != /* ]]; then + eqawarn "Relative path passed to '${0##*/}': ${arg}" + eqawarn "This is unsupported. Please use 'chmod' when you need to work on files" + eqawarn "outside the installation image (\${ED})." + fi +done + # we can't prefix all arguments because # chmod takes random options slash="/"