diff options
author | Zac Medico <zmedico@gentoo.org> | 2014-10-10 21:32:54 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2014-10-19 10:32:23 -0700 |
commit | 03cbe2762903601fe679ccd766456f6f6cba8ea2 (patch) | |
tree | 05071961048dd3c8e20c5011469d298053cfdb08 | |
parent | bin/ebuild-ipc.py: nonblocking fifo write (diff) | |
download | portage-03cbe2762903601fe679ccd766456f6f6cba8ea2.tar.gz portage-03cbe2762903601fe679ccd766456f6f6cba8ea2.tar.bz2 portage-03cbe2762903601fe679ccd766456f6f6cba8ea2.zip |
bin/ebuild-helpers/portageq: fix bug #524964
Since commit 0cc4c1ac21a2ea94cfb1f6ff4b461a9e349d47df,
$PORTAGE_BIN_PATH/portageq no longer exists, which breaks
bin/ebuild-helpers/portageq. Note that has_version and best_version
rely on bin/ebuild-helpers/portageq if IPC is disabled, so breakage
extends beyond ebuilds that call portageq "illegally". Since
$PORTAGE_BIN_PATH no longer works, use PATH to locate the real
portageq python script.
Fixes: 0cc4c1ac21a2 ("Install Portage using setup.py")
X-Gento-Bug: 524964
X-Gentoo-URL: https://bugs.gentoo.org/show_bug.cgi?id=524964
-rwxr-xr-x | bin/ebuild-helpers/portageq | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/bin/ebuild-helpers/portageq b/bin/ebuild-helpers/portageq index b67b03f33..4151bac70 100755 --- a/bin/ebuild-helpers/portageq +++ b/bin/ebuild-helpers/portageq @@ -2,9 +2,25 @@ # Copyright 2009-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 +scriptpath=${BASH_SOURCE[0]} +scriptname=${scriptpath##*/} + PORTAGE_BIN_PATH=${PORTAGE_BIN_PATH:-/usr/lib/portage/bin} PORTAGE_PYM_PATH=${PORTAGE_PYM_PATH:-/usr/lib/portage/pym} # Use safe cwd, avoiding unsafe import for bug #469338. cd "${PORTAGE_PYM_PATH}" -PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \ - exec "${PORTAGE_PYTHON:-/usr/bin/python}" "$PORTAGE_BIN_PATH/portageq" "$@" + +IFS=':' +set -f # in case ${PATH} contains any shell glob characters + +for path in ${PATH}; do + [[ -x ${path}/${scriptname} ]] || continue + [[ ${path}/${scriptname} -ef ${scriptpath} ]] && continue + PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \ + exec "${PORTAGE_PYTHON:-/usr/bin/python}" \ + "${path}/${scriptname}" "$@" +done + +unset IFS +echo "${scriptname}: command not found" 1>&2 +exit 127 |