sys-apps/portage: backport portageq fix

Closes: https://bugs.gentoo.org/916287
Closes: https://bugs.gentoo.org/916296
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
This commit is contained in:
Mike Gilbert
2023-10-26 11:50:22 -04:00
parent 219709790a
commit ef59ea9a89
2 changed files with 68 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
From 27952b1d753ef4ea9bbd2307f8a9a315ad94557d Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Thu, 26 Oct 2023 10:42:00 -0400
Subject: [PATCH] Convert portageq helper to a function
To: gentoo-portage-dev@lists.gentoo.org
This keeps it out of PATH in ebuilds to avoid breaking external
utilities that call portageq.
Bug: https://bugs.gentoo.org/906129
Bug: https://bugs.gentoo.org/916287
Bug: https://bugs.gentoo.org/916296
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
NEWS | 4 +++-
bin/ebuild-helpers/portageq | 8 --------
bin/phase-helpers.sh | 4 ++++
bin/portageq-wrapper | 1 -
4 files changed, 7 insertions(+), 10 deletions(-)
delete mode 100755 bin/ebuild-helpers/portageq
diff --git a/bin/ebuild-helpers/portageq b/bin/ebuild-helpers/portageq
deleted file mode 100755
index bd9d6b044..000000000
--- a/bin/ebuild-helpers/portageq
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2009-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
-
-die "'${0##*/}' is not allowed in ebuild scope"
-exit 1
diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index 3f12b3707..6c2ecf0bc 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -1006,6 +1006,10 @@ best_version() {
___best_version_and_has_version_common "$@"
}
+portageq() {
+ die "portageq is not allowed in ebuild scope"
+}
+
if ___eapi_has_get_libdir; then
get_libdir() {
local libdir_var="LIBDIR_${ABI}"
diff --git a/bin/portageq-wrapper b/bin/portageq-wrapper
index afa2defe1..047d1d826 100755
--- a/bin/portageq-wrapper
+++ b/bin/portageq-wrapper
@@ -9,7 +9,6 @@ IFS=":"
set -f # in case ${PATH} contains any shell glob characters
for path in "${PORTAGE_BIN_PATH}" ${PATH}; do
- [[ ${path} == */portage/*/ebuild-helpers* ]] && continue
[[ -x ${path}/portageq ]] || continue
PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \
exec "${PORTAGE_PYTHON:-/usr/bin/python}" "${path}/portageq" "$@"
--
2.42.0

View File

@@ -111,6 +111,9 @@ pkg_pretend() {
}
src_prepare() {
local PATCHES=(
"${FILESDIR}/portage-3.0.54-Convert-portageq-helper-to-a-function.patch"
)
default
if use prefix-guest; then