[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-16 Thread Sam James
commit: 39c75c6d4be04166f7984dea2fdb350bd00d7239
Author: Sam James  gentoo  org>
AuthorDate: Mon Mar 16 15:24:53 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Mon Mar 16 15:24:53 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39c75c6d

toolchain.eclass: disable systemtap for cross

Same rationale as 7c8f76d4af9313f622992a0c9e94f8b68657.

Closes: https://bugs.gentoo.org/722806
Signed-off-by: Sam James  gentoo.org>

 eclass/toolchain.eclass | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index da25e1dfc5b2..cad0a7203d2b 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1803,7 +1803,11 @@ toolchain_src_configure() {
fi
 
if in_iuse systemtap ; then
-   confgcc+=( $(use_enable systemtap) )
+   if is_crosscompile ; then
+   confgcc+=( --disable-systemtap )
+   else
+   confgcc+=( $(use_enable systemtap) )
+   fi
fi
 
if in_iuse valgrind ; then



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-15 Thread Sam James
commit: 34568df97c4a3e36b68afcae1ba6e083984904ac
Author: Sam James  gentoo  org>
AuthorDate: Sun Mar  8 22:42:11 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Sun Mar 15 22:52:34 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=34568df9

meson.eclass: recognise *-gnu as GNU Hurd

This came up in x11-libs/libpciaccess and sys-apps/openrc.

Signed-off-by: Sam James  gentoo.org>

 eclass/meson.eclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index e07e4b879832..60ce6593e8d7 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -122,6 +122,7 @@ _meson_get_machine_info() {
*-linux*)system=linux ;;
mingw*|*-mingw*) system=windows ;;
*-solaris*)  system=sunos ;;
+   *-gnu)   system=gnu ;;
esac
 
cpu_family=$(tc-arch "${tuple}")



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-15 Thread Ulrich Müller
commit: 2dea9f5cd46ef2d00c0dddab8e90cd0d78180ffc
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:30:22 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Mar 15 14:49:12 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2dea9f5c

xemacs-packages.eclass: Support EAPI 9

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/xemacs-packages.eclass | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/eclass/xemacs-packages.eclass b/eclass/xemacs-packages.eclass
index ca60e0c3b3b7..3d74bc7e1442 100644
--- a/eclass/xemacs-packages.eclass
+++ b/eclass/xemacs-packages.eclass
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: xemacs-packages.eclass
 # @MAINTAINER:
 # [email protected]
-# @SUPPORTED_EAPIS: 8
+# @SUPPORTED_EAPIS: 8 9
 # @BLURB: Eclass to support elisp packages distributed by XEmacs.
 # @DESCRIPTION:
 # This eclass supports ebuilds for packages distributed by XEmacs.
@@ -24,14 +24,14 @@
 # in the experimental repository are auto-generated from XEmacs VCS, so
 # they may not be well-tested.
 
+if [[ -z ${_XEMACS_PACKAGES_ECLASS} ]] ; then
+_XEMACS_PACKAGES_ECLASS=1
+
 case ${EAPI} in
-   8) ;;
+   8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
-if [[ -z ${_XEMACS_PACKAGES_ECLASS} ]] ; then
-_XEMACS_PACKAGES_ECLASS=1
-
 RDEPEND="app-editors/xemacs"
 S="${WORKDIR}"
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-14 Thread Michał Górny
commit: 481386cfad0ff6747944a378c6bd1164b35d2ac1
Author: Michał Górny  gentoo  org>
AuthorDate: Sat Mar 14 14:44:28 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Sat Mar 14 15:12:25 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=481386cf

llvm.org.eclass: Add 23.0.0_pre20260314 snapshot

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 99ebd5aef4f1..cdf619459b24 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -72,6 +72,9 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
_LLVM_SOURCE_TYPE=snapshot
 
case ${PV} in
+   23.0.0_pre20260314)
+   
EGIT_COMMIT=1f9b32ba061e7d5f7173a6a7150faf31964c2974
+   ;;
23.0.0_pre20260307)

EGIT_COMMIT=704c87bb948aff1bec718d56ad52b9b5d9c49cfb
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-14 Thread Ulrich Müller
commit: 2a93dc5548f3393234b96f95bfc131e9d02351ef
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Mar 13 06:28:26 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Mar 14 14:22:22 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a93dc55

kernel-install.eclass: Replace assert with pipestatus

EAPI 9 bans assert; prepare for it by inheriting eapi9-pipestatus.

Reviewed-by: Michał Górny  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/kernel-install.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass
index 5f113bf71f19..dc8fd31c03ee 100644
--- a/eclass/kernel-install.eclass
+++ b/eclass/kernel-install.eclass
@@ -53,7 +53,7 @@ if [[ -z ${_KERNEL_INSTALL_ECLASS} ]]; then
 _KERNEL_INSTALL_ECLASS=1
 
 case ${EAPI} in
-   8) ;;
+   8) inherit eapi9-pipestatus ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
@@ -841,7 +841,7 @@ kernel-install_compress_modules() {
find "${ED}/lib/modules/${KV_FULL}" -name '*.ko' -print0 |
xargs -0 -P "$(makeopts_jobs)" -n 128 \
$(dist-kernel_get_compressor 
"${ED}/usr/src/linux-${KV_FULL}/.config")
-   assert "Compressing kernel modules failed"
+   pipestatus || die "Compressing kernel modules failed"
 
# Module paths have changed, run depmod
depmod --all --basedir "${ED}" ${KV_FULL} || die



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-13 Thread Ulrich Müller
commit: b84eda9cbb44631adff38ad16ae268befffad642
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:29:38 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Mar 13 16:06:44 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b84eda9c

git-r3.eclass: Support EAPI 9

Acked-by: Michał Górny  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/git-r3.eclass | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/eclass/git-r3.eclass b/eclass/git-r3.eclass
index 35ad6afe8e88..2a74078634fd 100644
--- a/eclass/git-r3.eclass
+++ b/eclass/git-r3.eclass
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: git-r3.eclass
 # @MAINTAINER:
 # Michał Górny 
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: Eclass for fetching and unpacking git repositories.
 # @DESCRIPTION:
 # Third generation eclass for easing maintenance of live ebuilds using
@@ -25,14 +25,14 @@
 # defined but EGIT_LFS is not turned on and vice versa.
 # If non-empty, then the repo likely needs EGIT_LFS to clone properly.
 
+if [[ -z ${_GIT_R3_ECLASS} ]]; then
+_GIT_R3_ECLASS=1
+
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
-if [[ -z ${_GIT_R3_ECLASS} ]]; then
-_GIT_R3_ECLASS=1
-
 PROPERTIES+=" live"
 
 BDEPEND=">=dev-vcs/git-1.8.2.1[curl]"



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-13 Thread Ulrich Müller
commit: b68c9cc51b507e388dcda352911f61bccde6c535
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Mar 13 13:13:28 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Mar 13 16:06:45 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b68c9cc5

git-r3.eclass: Drop support for *_LIVE_* variables in EAPI 9

Acked-by: Michał Górny  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/git-r3.eclass | 23 +--
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/eclass/git-r3.eclass b/eclass/git-r3.eclass
index 2a74078634fd..719e2eea4fb0 100644
--- a/eclass/git-r3.eclass
+++ b/eclass/git-r3.eclass
@@ -247,8 +247,8 @@ EVCS_STORE_DIRS=()
 # @FUNCTION: _git-r3_env_setup
 # @INTERNAL
 # @DESCRIPTION:
-# Set the eclass variables as necessary for operation. This can involve
-# setting EGIT_* to defaults or ${PN}_LIVE_* variables.
+# Set the eclass variables as necessary for operation.  This can involve
+# setting EGIT_* to defaults.
 _git-r3_env_setup() {
debug-print-function ${FUNCNAME} "$@"
 
@@ -293,26 +293,29 @@ _git-r3_env_setup() {
esc_pn=${PN//[-+]/_}
[[ ${esc_pn} == [0-9]* ]] && esc_pn=_${esc_pn}
 
+   _git-r3_livevar_warn_or_die() {
+   case ${EAPI} in
+   7|8) ewarn "Using ${livevar}, no support will be 
provided" ;;
+   *) die "${livevar} is no longer supported in EAPI 
${EAPI}" ;;
+   esac
+   }
+
# note: deprecated, use EGIT_OVERRIDE_* instead
livevar=${esc_pn}_LIVE_REPO
EGIT_REPO_URI=${!livevar-${EGIT_REPO_URI}}
-   [[ ${!livevar} ]] \
-   && ewarn "Using ${livevar}, no support will be provided"
+   [[ ${!livevar} ]] && _git-r3_livevar_warn_or_die
 
livevar=${esc_pn}_LIVE_BRANCH
EGIT_BRANCH=${!livevar-${EGIT_BRANCH}}
-   [[ ${!livevar} ]] \
-   && ewarn "Using ${livevar}, no support will be provided"
+   [[ ${!livevar} ]] && _git-r3_livevar_warn_or_die
 
livevar=${esc_pn}_LIVE_COMMIT
EGIT_COMMIT=${!livevar-${EGIT_COMMIT}}
-   [[ ${!livevar} ]] \
-   && ewarn "Using ${livevar}, no support will be provided"
+   [[ ${!livevar} ]] && _git-r3_livevar_warn_or_die
 
livevar=${esc_pn}_LIVE_COMMIT_DATE
EGIT_COMMIT_DATE=${!livevar-${EGIT_COMMIT_DATE}}
-   [[ ${!livevar} ]] \
-   && ewarn "Using ${livevar}, no support will be provided"
+   [[ ${!livevar} ]] && _git-r3_livevar_warn_or_die
 
if [[ ${EGIT_COMMIT} && ${EGIT_COMMIT_DATE} ]]; then
die "EGIT_COMMIT and EGIT_COMMIT_DATE can not be specified 
simultaneously"



[gentoo-commits] repo/gentoo:master commit in: eclass/tests/

2026-03-12 Thread Ulrich Müller
commit: 0bb3415e849358ced18a11ce6a7f5d335efc71ec
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Mar 12 18:57:52 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Mar 12 19:03:17 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0bb3415e

eclass/tests: Update commentary in version-funcs.sh

Explain the current purpose of the script. Drop the former eclass
documentation tokens which are no longer useful.

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/tests/version-funcs.sh | 70 ---
 1 file changed, 26 insertions(+), 44 deletions(-)

diff --git a/eclass/tests/version-funcs.sh b/eclass/tests/version-funcs.sh
index cb2a92342c65..1ead901467d0 100755
--- a/eclass/tests/version-funcs.sh
+++ b/eclass/tests/version-funcs.sh
@@ -1,23 +1,19 @@
 #!/bin/bash
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-# @ECLASS: eapi7-ver.eclass
-# @MAINTAINER:
-# PMS team 
-# @AUTHOR:
+# Authors:
 # Ulrich Müller 
 # Michał Górny 
-# @BLURB: Testing implementation of EAPI 7 version manipulators
-# @DESCRIPTION:
-# A stand-alone implementation of the version manipulation functions
-# aimed for EAPI 7.  Intended to be used for wider testing of
-# the proposed functions and to allow ebuilds to switch to the new
-# model early, with minimal change needed for actual EAPI 7.
+
+# A stand-alone implementation of the EAPI 7 version manipulation
+# functions.  This is aimed at eclass test scripts, where the package
+# manager functions are not available.
 #
 # https://bugs.gentoo.org/482170
-#
-# @SUBSECTION Version strings
+
+# Version strings
+# ---
 #
 # The functions support arbitrary version strings consisting of version
 # components interspersed with (possibly empty) version separators.
@@ -39,7 +35,6 @@
 #
 # Examples:
 #
-# @CODE
 #   1.2b-alpha4 -> 1 . 2 '' b - alpha '' 4
 #  c s c s  c s c s  c
 #  1 1 2 2  3 3 4 4  5
@@ -47,19 +42,17 @@
 #   .11.-> . 11 .
 #  s c  s
 #  0 1  1
-# @CODE
-#
-# @SUBSECTION Ranges
+
+# Ranges
+# --
 #
 # A range can be specified as 'm' for m-th version component, 'm-'
 # for all components starting with m-th or 'm-n' for components starting
 # at m-th and ending at n-th (inclusive).  If the range spans outside
 # the version string, it is truncated silently.
 
-# @FUNCTION: _ver_parse_range
-# @USAGE:  
-# @INTERNAL
-# @DESCRIPTION:
+# _ver_parse_range  
+#
 # Parse the range string , setting 'start' and 'end' variables
 # to the appropriate bounds.   specifies the appropriate upper
 # bound for the range; the user-specified value is truncated to this.
@@ -80,10 +73,8 @@ _ver_parse_range() {
fi
 }
 
-# @FUNCTION: _ver_split
-# @USAGE: 
-# @INTERNAL
-# @DESCRIPTION:
+# _ver_split 
+#
 # Split the version string  into separator-component array.
 # Sets 'comp' to an array of the form: ( s_0 c_1 s_1 c_2 s_2 c_3... )
 # where s_i are separators and c_i are components.
@@ -106,9 +97,8 @@ _ver_split() {
done
 }
 
-# @FUNCTION: ver_cut
-# @USAGE:  []
-# @DESCRIPTION:
+# ver_cut  []
+#
 # Print the substring of the version string containing components
 # defined by the  and the version separators between them.
 # Processes  if specified, ${PV} otherwise.
@@ -133,9 +123,8 @@ ver_cut() {
printf "%s" "${comp[@]:start:end*2-start}" $'\n'
 }
 
-# @FUNCTION: ver_rs
-# @USAGE:   [ ...] []
-# @DESCRIPTION:
+# ver_rs   [ ...] []
+#
 # Print the version string after substituting the specified version
 # separators at  with  (string).  Multiple ' '
 # pairs can be specified.  Processes  if specified,
@@ -165,11 +154,8 @@ ver_rs() {
echo "${comp[*]}"
 }
 
-# @FUNCTION: _ver_compare_int
-# @USAGE:  
-# @RETURN: 0 if  -eq , 1 if  -lt , 3 if  -gt 
-# @INTERNAL
-# @DESCRIPTION:
+# _ver_compare_int  
+#
 # Compare two non-negative integers  and , of arbitrary length.
 # If  is equal to, less than, or greater than , return 0, 1, or 3
 # as exit status, respectively.
@@ -187,11 +173,8 @@ _ver_compare_int() {
[[ ${a} == "${b}" ]]
 }
 
-# @FUNCTION: _ver_compare
-# @USAGE:  
-# @RETURN: 1 if  < , 2 if  = , 3 if  > 
-# @INTERNAL
-# @DESCRIPTION:
+# _ver_compare  
+#
 # Compare two versions  and .  If  is less than, equal to,
 # or greater than , return 1, 2, or 3 as exit status, respectively.
 _ver_compare() {
@@ -269,9 +252,8 @@ _ver_compare() {
return 2
 }
 
-# @FUNCTION: ver_test
-# @USAGE: []  
-# @DESCRIPTION:
+# ver_test []  
+#
 # Check if the relationis true.  If  is not specified,
 # default to ${PVR}.   can be -gt, -ge, -eq, -ne, -le, -lt.
 # Both versions must conform to the PMS version syntax (with optional



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Ulrich Müller
commit: cc33377deb80f4c2aa946004c03036c7267d8416
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:29:35 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Mar 12 18:30:06 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cc33377d

ffmpeg-compat.eclass: Support EAPI 9

Acked-by: Ionen Wolkens  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/ffmpeg-compat.eclass | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/eclass/ffmpeg-compat.eclass b/eclass/ffmpeg-compat.eclass
index ce8878d10c55..49285b98a253 100644
--- a/eclass/ffmpeg-compat.eclass
+++ b/eclass/ffmpeg-compat.eclass
@@ -6,7 +6,7 @@
 # Ionen Wolkens 
 # @AUTHOR:
 # Ionen Wolkens 
-# @SUPPORTED_EAPIS: 8
+# @SUPPORTED_EAPIS: 8 9
 # @BLURB: Helper functions to link with slotted ffmpeg-compat libraries
 # @DESCRIPTION:
 # To use this, run ``ffmpeg_compat_setup `` before packages use
@@ -34,14 +34,14 @@
 # is stabilized, but idea is to not mangle normal ffmpeg with slotting
 # logic and make this an isolated temporary deal.
 
+if [[ -z ${_FFMPEG_COMPAT_ECLASS} ]]; then
+_FFMPEG_COMPAT_ECLASS=1
+
 case ${EAPI} in
-   8) ;;
+   8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
-if [[ -z ${_FFMPEG_COMPAT_ECLASS} ]]; then
-_FFMPEG_COMPAT_ECLASS=1
-
 inherit flag-o-matic toolchain-funcs
 
 # @FUNCTION: ffmpeg_compat_add_flags



[gentoo-commits] repo/gentoo:master commit in: eclass/tests/

2026-03-12 Thread Ulrich Müller
commit: bd5c45d2db845280c4ddff33598767d54e045b6b
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Mar 12 18:00:28 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Mar 12 18:00:28 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd5c45d2

Revert "eclass/tests: remove copy of eapi7-ver.eclass with tests"

version-funcs.sh is sourced by other tests.

This reverts commit 50966a742faf07a768b730e57bd484d59e7cc5b1.

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/tests/version-funcs.sh | 476 ++
 1 file changed, 476 insertions(+)

diff --git a/eclass/tests/version-funcs.sh b/eclass/tests/version-funcs.sh
new file mode 100755
index ..cb2a92342c65
--- /dev/null
+++ b/eclass/tests/version-funcs.sh
@@ -0,0 +1,476 @@
+#!/bin/bash
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: eapi7-ver.eclass
+# @MAINTAINER:
+# PMS team 
+# @AUTHOR:
+# Ulrich Müller 
+# Michał Górny 
+# @BLURB: Testing implementation of EAPI 7 version manipulators
+# @DESCRIPTION:
+# A stand-alone implementation of the version manipulation functions
+# aimed for EAPI 7.  Intended to be used for wider testing of
+# the proposed functions and to allow ebuilds to switch to the new
+# model early, with minimal change needed for actual EAPI 7.
+#
+# https://bugs.gentoo.org/482170
+#
+# @SUBSECTION Version strings
+#
+# The functions support arbitrary version strings consisting of version
+# components interspersed with (possibly empty) version separators.
+#
+# A version component can either consist purely of digits ([0-9]+)
+# or purely of uppercase and lowercase letters ([A-Za-z]+).  A version
+# separator is either a string of any other characters ([^A-Za-z0-9]+),
+# or it occurs at the transition between a sequence of letters
+# and a sequence of digits, or vice versa.  In the latter case,
+# the version separator is an empty string.
+#
+# The version is processed left-to-right, and each successive component
+# is assigned numbers starting with 1.  The components are either split
+# on version separators or on boundaries between digits and letters
+# (in which case the separator between the components is empty).
+# Version separators are assigned numbers starting with 1 for
+# the separator between 1st and 2nd components.  As a special case,
+# if the version string starts with a separator, it is assigned index 0.
+#
+# Examples:
+#
+# @CODE
+#   1.2b-alpha4 -> 1 . 2 '' b - alpha '' 4
+#  c s c s  c s c s  c
+#  1 1 2 2  3 3 4 4  5
+#
+#   .11.-> . 11 .
+#  s c  s
+#  0 1  1
+# @CODE
+#
+# @SUBSECTION Ranges
+#
+# A range can be specified as 'm' for m-th version component, 'm-'
+# for all components starting with m-th or 'm-n' for components starting
+# at m-th and ending at n-th (inclusive).  If the range spans outside
+# the version string, it is truncated silently.
+
+# @FUNCTION: _ver_parse_range
+# @USAGE:  
+# @INTERNAL
+# @DESCRIPTION:
+# Parse the range string , setting 'start' and 'end' variables
+# to the appropriate bounds.   specifies the appropriate upper
+# bound for the range; the user-specified value is truncated to this.
+_ver_parse_range() {
+   local range=${1}
+   local max=${2}
+
+   [[ ${range} == [0-9]* ]] \
+   || die "${FUNCNAME}: range must start with a number"
+   start=${range%-*}
+   [[ ${range} == *-* ]] && end=${range#*-} || end=${start}
+   if [[ ${end} ]]; then
+   [[ ${start} -le ${end} ]] \
+   || die "${FUNCNAME}: end of range must be >= start"
+   [[ ${end} -le ${max} ]] || end=${max}
+   else
+   end=${max}
+   fi
+}
+
+# @FUNCTION: _ver_split
+# @USAGE: 
+# @INTERNAL
+# @DESCRIPTION:
+# Split the version string  into separator-component array.
+# Sets 'comp' to an array of the form: ( s_0 c_1 s_1 c_2 s_2 c_3... )
+# where s_i are separators and c_i are components.
+_ver_split() {
+   local v=${1} LC_ALL=C
+
+   comp=()
+
+   # get separators and components
+   local s c
+   while [[ ${v} ]]; do
+   # cut the separator
+   s=${v%%[a-zA-Z0-9]*}
+   v=${v:${#s}}
+   # cut the next component; it can be either digits or letters
+   [[ ${v} == [0-9]* ]] && c=${v%%[^0-9]*} || c=${v%%[^a-zA-Z]*}
+   v=${v:${#c}}
+
+   comp+=( "${s}" "${c}" )
+   done
+}
+
+# @FUNCTION: ver_cut
+# @USAGE:  []
+# @DESCRIPTION:
+# Print the substring of the version string containing components
+# defined by the  and the version separators between them.
+# Processes  if specified, ${PV} otherwise.
+#
+# For the syntax of versions and ranges, please see the eclass
+# description.
+ver_cut() {
+   local range=${1}
+   local v=${2:-${PV}}
+   local start end
+   local

[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: 0391884e82912c23dda0c74ecdb16752f5e2d1cd
Author: Eli Schwartz  gentoo  org>
AuthorDate: Thu Mar 12 12:59:00 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:22:40 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0391884e

flag-o-matic.eclass: support EAPI 9

Acked-by: Sam James  gentoo.org>
Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/flag-o-matic.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass
index a9c5264c7cf0..8474e844f788 100644
--- a/eclass/flag-o-matic.eclass
+++ b/eclass/flag-o-matic.eclass
@@ -4,7 +4,7 @@
 # @ECLASS: flag-o-matic.eclass
 # @MAINTAINER:
 # [email protected]
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: common functions to manipulate and query toolchain flags
 # @DESCRIPTION:
 # This eclass contains a suite of functions to help developers sanely
@@ -14,7 +14,7 @@ if [[ -z ${_FLAG_O_MATIC_ECLASS} ]]; then
 _FLAG_O_MATIC_ECLASS=1
 
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 



[gentoo-commits] repo/gentoo:master commit in: eclass/tests/, eclass/

2026-03-12 Thread Eli Schwartz
commit: ea50752eb91aa2e66b15afc77a64603ec36c09eb
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 07:23:38 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:22:14 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ea50752e

flag-o-matic.eclass: make get-flag match whole flags

Existing use implies a desire to:
- treat leading "-" as optional
- query the value of a "flag"
- query the entire arg of a "-flag" or "-flag=" or really anything other
  than "flag" where CFLAGS has "-flag=*"

But unfortunately we also do odd things like match `get-flag -g` to
retrieve -grecord-gcc-switches or -fno-gnu-keywords etc. It's a rough
substring match and really we want to match flag *names*. It is also a
bit awkward to do "-flag=" and then trim off the flag name by hand.

Update the algorithm to allow for this. Given it's a big change to
usability, require users to opt in to the new algorithm by migrating
their ebuilds to EAPI 9 and testing there. They could have been relying
on what I called a bug.

Some things that will definitely break, but I cannot conceive of why one
would do it:

- FLAGS="-fno-gnu-keywords"; get-flag -g
  Gross misuse.

- FLAGS="-flto-incremental=/path"; get-flag "-flto-inc*="
  omitting the = works fine, what is the goal here???

Acked-by: Sam James  gentoo.org>
Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/flag-o-matic.eclass   | 21 ++---
 eclass/tests/flag-o-matic.sh | 34 ++
 2 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass
index 830e42f1b9a4..a9c5264c7cf0 100644
--- a/eclass/flag-o-matic.eclass
+++ b/eclass/flag-o-matic.eclass
@@ -853,9 +853,24 @@ get-flag() {
# `get-flag march` == "i686"
for var in $(all-flag-vars) ; do
for f in ${!var} ; do
-   if [ "${f/${findflag}}" != "${f}" ] ; then
-   printf "%s\n" "${f/-${findflag}=}"
-   return 0
+   if [[ ${EAPI} = [78] && -z 
"${_FLAG_O_MATIC_TESTS_FAKE_EAPI_NINE}" ]]; then
+   if [[ "${f/${findflag}}" != "${f}" ]] ; then
+   printf "%s\n" "${f/-${findflag}=}"
+   return 0
+   fi
+   else
+   # Print RHS for "flag" (no leading "-")
+   if [[ "${f#-${findflag}=}" != "${f}" ]] ; then
+   printf "%s\n" "${f#-${findflag}=}"
+   return 0
+   fi
+   # Print full match for any of:
+   #   "-flag" with leading "-"
+   #   "flag" without leading "-" that has no 
unmatched succeeding =value
+   if [[ ${f} = -${findflag#-} || ${f%=*} = 
${findflag} ]] ; then
+   printf "%s\n" "${f}"
+   return 0
+   fi
fi
done
done

diff --git a/eclass/tests/flag-o-matic.sh b/eclass/tests/flag-o-matic.sh
index 4dc133776038..853b3ce57443 100755
--- a/eclass/tests/flag-o-matic.sh
+++ b/eclass/tests/flag-o-matic.sh
@@ -151,6 +151,40 @@ out=$(test-flags-CC -finvalid-flag)
 [[ $? -ne 0 && -z ${out} ]]
 ftend
 
+tbegin "get-flag (EAPI 7 substring args)"
+CFLAGS="-frecord-gcc-switches -g"
+CXXFLAGS=""
+LDFLAGS=""
+out=$(get-flag -g)
+[[ ${out} = -frecord-gcc-switches ]]
+ftend
+
+tbegin "get-flag (EAPI 9 exact match)"
+CFLAGS="-frecord-gcc-switches -g"
+CXXFLAGS=""
+LDFLAGS=""
+out=$(_FLAG_O_MATIC_TESTS_FAKE_EAPI_NINE=1 get-flag -g)
+[[ ${out} = -g ]]
+ftend
+
+tbegin "get-flag (EAPI 7 values)"
+CFLAGS="-flto-incremental=/path -flto=4"
+CXXFLAGS=""
+LDFLAGS=""
+out=$(get-flag flto)
+[[ ${out} = -flto-incremental=/path ]]
+ftend
+
+tbegin "get-flag (EAPI 9 values)"
+CFLAGS="-flto-incremental=/path -flto=4"
+CXXFLAGS=""
+LDFLAGS=""
+out=$(_FLAG_O_MATIC_TESTS_FAKE_EAPI_NINE=1 get-flag flto)
+[[ ${out} = 4 ]]
+ftend
+
+
+
 if type -P clang >/dev/null ; then
tbegin "test-flags-CC (valid flags w/clang)"
out=$(CC=clang test-flags-CC -O3)



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: 86bac40198775a3b97c75ce68b1114c2557874c4
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 02:32:46 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:07 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86bac401

unpacker.eclass: use eapi9-pipestatus rather than assert

Preliminary work for EAPI 9, which bans the latter.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/unpacker.eclass | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/eclass/unpacker.eclass b/eclass/unpacker.eclass
index e51c51dfa339..524221040350 100644
--- a/eclass/unpacker.eclass
+++ b/eclass/unpacker.eclass
@@ -16,7 +16,7 @@
 #  - support partial unpacks?
 
 case ${EAPI} in
-   7|8) ;;
+   7|8) inherit eapi9-pipestatus ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
@@ -281,7 +281,7 @@ unpack_makeself() {
 
[[ -z ${decomp} ]] && decomp=$(_unpacker_get_decompressor ".${suffix}")
"${exe[@]}" | ${decomp} | tar --no-same-owner -xf -
-   assert "failure unpacking (${filetype}) makeself ${src##*/} ('${ver}' 
+${skip})"
+   pipestatus || die "failure unpacking (${filetype}) makeself ${src##*/} 
('${ver}' +${skip})"
 }
 
 # @FUNCTION: unpack_deb
@@ -310,7 +310,7 @@ unpack_deb() {
if [[ ${f} = "data.tar"* ]] ; then
local 
decomp=$(_unpacker_get_decompressor "${f}")
head -c "${size}" | 
${decomp:-cat}
-   assert "unpacking ${f} from 
${deb} failed"
+   pipestatus || die "unpacking 
${f} from ${deb} failed"
break
else
head -c "${size}" > /dev/null # 
trash it
@@ -320,14 +320,14 @@ unpack_deb() {
else
local f=$(
$(tc-getBUILD_AR) t "${deb}" | grep ^data.tar
-   assert "data not found in ${deb}"
+   pipestatus || die "data not found in ${deb}"
)
local decomp=$(_unpacker_get_decompressor "${f}")
$(tc-getBUILD_AR) p "${deb}" "${f}" | ${decomp:-cat}
-   assert "unpacking ${f} from ${deb} failed"
+   pipestatus || die "unpacking ${f} from ${deb} failed"
fi
} | tar --no-same-owner -xf -
-   assert "unpacking ${deb} failed"
+   pipestatus || die "unpacking ${deb} failed"
 }
 
 # @FUNCTION: unpack_cpio
@@ -491,7 +491,7 @@ unpack_gpkg() {
mkdir -p "${dirname}" || die
tar -xOf "${gpkg}" "${images[0]}" | ${decomp:-cat} |
tar --no-same-owner -C "${dirname}" -xf -
-   assert "Unpacking ${gpkg} failed"
+   pipestatus || die "Unpacking ${gpkg} failed"
 }
 
 # @FUNCTION: _unpacker
@@ -569,7 +569,7 @@ _unpacker() {
${comp} < "${a}" | ${arch} -
fi
 
-   assert "unpacking ${a} failed (comp=${comp} arch=${arch})"
+   pipestatus || die "unpacking ${a} failed (comp=${comp} arch=${arch})"
 }
 
 # @FUNCTION: unpacker



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: ec90042d02d365b72f25da5a7ff5d5298df80021
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 02:22:33 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:07 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ec90042d

unpacker.eclass: reduce unreadable deduplication in unpack_pdv

If you look hard enough, every single code branch uses the same byte
range processor, repetitively repeated again (and also again) and then
branches on tar or gzip depending on the inner contents. That final
command is better suited as an array, so we can run the main command
*once*.

It is not clear to me why this function has "true" followed by commented
out dies. It lacks real explanation, and dates back to
gentoo-historical-2.git:

```
commit 557d48b91a21b650f2fadd609fc8bee679dc1af3
Author: Mike Frysinger  gentoo.org>
AuthorDate: Sat Feb 4 23:48:42 2012
Commit: Mike Frysinger  gentoo.org>
CommitDate: Sat Feb 4 23:48:42 2012

initial unpacker eclass
```

Do I dare add the relevant `pipestatus || die` here? Not really, this
code already terrifies me. But *perhaps* running the command here once
would solve whatever concerns the year 2012 had about this code. Maybe.
Possibly. You be the judge!

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/unpacker.eclass | 23 +--
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/eclass/unpacker.eclass b/eclass/unpacker.eclass
index 524221040350..a31d2580b4e8 100644
--- a/eclass/unpacker.eclass
+++ b/eclass/unpacker.eclass
@@ -142,28 +142,23 @@ unpack_pdv() {
#   | dd ibs=${tailskip} skip=1 \
#   | gzip -dc \
#   > ${datafile}
+   local decompress=(cat)
if [ ${iscompressed} -eq 1 ] ; then
if [ ${istar} -eq 1 ] ; then
-   tail -c +$((${tailskip}+1)) "${src}" 2>/dev/null \
-   | head -c $((${metaskip}-${tailskip})) \
-   | tar -xzf -
+   decompress=(tar -xzf -)
else
-   tail -c +$((${tailskip}+1)) "${src}" 2>/dev/null \
-   | head -c $((${metaskip}-${tailskip})) \
-   | gzip -dc \
-   > ${datafile}
+   decompress=(gzip -dc)
fi
else
if [ ${istar} -eq 1 ] ; then
-   tail -c +$((${tailskip}+1)) "${src}" 2>/dev/null \
-   | head -c $((${metaskip}-${tailskip})) \
-   | tar --no-same-owner -xf -
-   else
-   tail -c +$((${tailskip}+1)) "${src}" 2>/dev/null \
-   | head -c $((${metaskip}-${tailskip})) \
-   > ${datafile}
+   decompress=(tar --no-same-owner -xf -)
fi
+
fi
+
+   tail -c +$((${tailskip}+1)) "${src}" 2>/dev/null \
+   | head -c $((${metaskip}-${tailskip})) \
+   "${decompress[@]}" > "${datafile}"
true
#[ -s "${datafile}" ] || die "failure unpacking pdv ('${metaskip}' 
'${tailskip}' '${datafile}')"
#assert "failure unpacking pdv ('${metaskip}' '${tailskip}' 
'${datafile}')"



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: fe81ea030264dd483a2852114affdd9d139e69cf
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 01:20:58 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:03 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe81ea03

office-ext-r1.eclass: remove totally incorrect use of assert

It should have always been die.

>From gentoo-historical-2.git,

```
commit 712cd6740c0bfa9d15dfd33ead7a52d5cdd4f87b
Author: Tomas Chvatal  gentoo.org>
AuthorDate: Sat Mar 23 06:16:57 2013
Commit: Tomas Chvatal  gentoo.org>
CommitDate: Sat Mar 23 06:16:57 2013

Add next version of office-ext eclass. This time we can directly deploy 
libreoffice exts, but ooo crashes so keep backcompat over crashy uno interface 
for them (it is oo bug and they should fix it).
```

I have many questions. However, the one which is relevant here is: why
did this new eclass *add* new src_unpack logic to actually unpack files,
which called a single simple command, `unzip`, and then uses assert to
catch pipe errors in it.

Same issue as myspell-r2.eclass in the previous commit.

assert is banned in EAPI 9, so it has to go anyway. Take this
opportunity to perform a 14 year old cleanliness fix.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/office-ext-r1.eclass | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/eclass/office-ext-r1.eclass b/eclass/office-ext-r1.eclass
index 9ee4561f0c11..b9943e8f16d4 100644
--- a/eclass/office-ext-r1.eclass
+++ b/eclass/office-ext-r1.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: office-ext-r1.eclass
@@ -108,8 +108,7 @@ office-ext-r1_src_unpack() {
mkdir -p "${WORKDIR}/${i}/" || die
pushd "${WORKDIR}/${i}/" > /dev/null || 
die
einfo "Unpacking 
"${OFFICE_EXTENSIONS_LOCATION}/${i}" to ${PWD}"
-   unzip -qo 
${OFFICE_EXTENSIONS_LOCATION}/${i}
-   assert "failed unpacking 
${OFFICE_EXTENSIONS_LOCATION}/${i}"
+   unzip -qo 
${OFFICE_EXTENSIONS_LOCATION}/${i} || die "failed unpacking 
${OFFICE_EXTENSIONS_LOCATION}/${i}"
popd > /dev/null || die
;;
*) unpack ${i} ;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: 26b30e180a4b2583452508d79ebb35d0e97fc696
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 01:59:51 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:06 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=26b30e18

rpm.eclass: allow using rpm2archive from rpm itself

It is feature-compatible with rpm2tar but utilizes the rpm codebase. The
first any-of element remains rpm2targz as it's vastly smaller, but for
users who happen to have rpm installed as a dep of some other package,
there is no need to additionally install another package.

rpm 4.19.0 is required because:

- rpm2archive was added in 2014 / rpm 4.12
- it learned -n in 2021 / rpm 4.17
- it learned to write to a pipe in 2022 / rpm 4.19

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/rpm.eclass | 17 +++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/eclass/rpm.eclass b/eclass/rpm.eclass
index b9e1b87a29de..3b7f9e64355b 100644
--- a/eclass/rpm.eclass
+++ b/eclass/rpm.eclass
@@ -17,7 +17,12 @@ _RPM_ECLASS=1
 
 inherit estack
 
-BDEPEND="app-arch/rpm2targz"
+BDEPEND="
+   || (
+   app-arch/rpm2targz
+   >=app-arch/rpm-4.19.0
+   )
+"
 
 # @FUNCTION: rpm_unpack
 # @USAGE: 
@@ -37,7 +42,15 @@ rpm_unpack() {
else
a="${DISTDIR}/${a}"
fi
-   rpm2tar -O "${a}" | tar xf -
+
+   if command -v rpm2tar >/dev/null; then
+   local extracttool=(rpm2tar -O)
+   else
+   # app-arch/rpm fallback
+   local extracttool=(rpm2archive -n)
+   fi
+
+   "${extracttool[@]}" "${a}" | tar xf -
pipestatus || die "failure unpacking ${a}"
done
 }



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: 8f1dc66b00e1a02187f74e2f08290f97da423f34
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 01:25:05 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:05 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f1dc66b

readme.gentoo-r1.eclass: use eapi9-pipestatus rather than assert

Preliminary work for EAPI 9, which bans the latter.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/readme.gentoo-r1.eclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/eclass/readme.gentoo-r1.eclass b/eclass/readme.gentoo-r1.eclass
index 02167a746f5a..295df1855b65 100644
--- a/eclass/readme.gentoo-r1.eclass
+++ b/eclass/readme.gentoo-r1.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: readme.gentoo-r1.eclass
@@ -21,7 +21,7 @@ if [[ -z ${_README_GENTOO_ECLASS} ]]; then
 _README_GENTOO_ECLASS=1
 
 case ${EAPI} in
-   7|8) ;;
+   7|8) inherit eapi9-pipestatus ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
@@ -64,7 +64,7 @@ readme.gentoo_create_doc() {
set -f  # disable filename 
expansion in echo arguments
echo -e ${DOC_CONTENTS} | fold -s -w 70 \
| sed 's/[[:space:]]*$//' > "${T}"/README.gentoo
-   assert
+   pipestatus || die
set +f -${saved_flags}
fi
elif [[ -f "${FILESDIR}/README.gentoo-${SLOT%/*}" ]]; then



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: 08827923a93f7411b1428cd6d877ec4446f05a3e
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 02:08:25 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:07 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08827923

texlive-common.eclass: use eapi9-pipestatus rather than assert

Preliminary work for EAPI 9, which bans the latter.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/texlive-common.eclass | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/eclass/texlive-common.eclass b/eclass/texlive-common.eclass
index 36b90a327fde..6e9c1fd84b4c 100644
--- a/eclass/texlive-common.eclass
+++ b/eclass/texlive-common.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: texlive-common.eclass
@@ -15,10 +15,8 @@
 # Note that this eclass *must* not assume the presence of any standard tex too
 
 case ${EAPI} in
-   7)
-   inherit eapi8-dosym
-   ;;
-   8) ;;
+   7) inherit eapi8-dosym eapi9-pipestatus ;;
+   8) inherit eapi9-pipestatus ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
@@ -293,7 +291,7 @@ texlive-common_update_tlpdb() {
find "${tlpobj}" -maxdepth 1 -type f -name "*.tlpobj" -print0 |
sort -z |
xargs -0 --no-run-if-empty sed -s '$G' >> "${new_tlpdb}"
-   assert "generating tlpdb failed"
+   pipestatus || die "generating tlpdb failed"
fi
 
if [[ -f ${tlpdb} ]]; then



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: bf1303b234d7725abecb826ed55bd90758413001
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 01:34:17 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:06 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf1303b2

rpm.eclass: use eapi9-pipestatus rather than assert

Preliminary work for EAPI 9, which bans the latter.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/rpm.eclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/eclass/rpm.eclass b/eclass/rpm.eclass
index e00332e55ca0..b9e1b87a29de 100644
--- a/eclass/rpm.eclass
+++ b/eclass/rpm.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: rpm.eclass
@@ -8,7 +8,7 @@
 # @BLURB: convenience class for extracting RPMs
 
 case ${EAPI} in
-   7|8) ;;
+   7|8) inherit eapi9-pipestatus ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
@@ -38,7 +38,7 @@ rpm_unpack() {
a="${DISTDIR}/${a}"
fi
rpm2tar -O "${a}" | tar xf -
-   assert "failure unpacking ${a}"
+   pipestatus || die "failure unpacking ${a}"
done
 }
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: 709284531e0383fcc428b7112916d585621c0a76
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 01:09:52 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:02 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70928453

myspell-r2.eclass: remove totally incorrect use of assert

It should have always been die.

>From gentoo-historical-2.git,

```
commit 39b01d59be512eb9ed10a66db19513e6b53130f4
Author: Tomas Chvatal  gentoo.org>
AuthorDate: Tue Apr 24 08:49:09 2012
Commit: Tomas Chvatal  gentoo.org>
CommitDate: Tue Apr 24 08:49:09 2012

Add myspell-r2.eclass which is just eclassdoced myspell.eclass with removed 
no-longer required stuff.
```

I have many questions. However, the one which is relevant here is: why
did this new eclass *add* a new src_unpack, which called a single simple
command, `unzip`, and then uses assert to catch pipe errors in it.

assert is banned in EAPI 9, so it has to go anyway. Take this
opportunity to perform a 14 year old cleanliness fix.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/myspell-r2.eclass | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/eclass/myspell-r2.eclass b/eclass/myspell-r2.eclass
index 05d48dc97dee..a8655314fd0b 100644
--- a/eclass/myspell-r2.eclass
+++ b/eclass/myspell-r2.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: myspell-r2.eclass
@@ -61,8 +61,7 @@ myspell-r2_src_unpack() {
case ${f} in
*.oxt)
echo ">>> Unpacking "${DISTDIR}/${f}" to ${PWD}"
-   unzip -qoj "${DISTDIR}"/${f}
-   assert "failed unpacking ${DISTDIR}/${f}"
+   unzip -qoj "${DISTDIR}"/${f} || die "failed 
unpacking ${DISTDIR}/${f}"
;;
*) unpack ${f} ;;
esac



[gentoo-commits] repo/gentoo:master commit in: eclass/tests/

2026-03-12 Thread Eli Schwartz
commit: 50966a742faf07a768b730e57bd484d59e7cc5b1
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 00:34:41 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:01 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=50966a74

eclass/tests: remove copy of eapi7-ver.eclass with tests

The eclass itself is gone.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/tests/version-funcs.sh | 476 --
 1 file changed, 476 deletions(-)

diff --git a/eclass/tests/version-funcs.sh b/eclass/tests/version-funcs.sh
deleted file mode 100755
index cb2a92342c65..
--- a/eclass/tests/version-funcs.sh
+++ /dev/null
@@ -1,476 +0,0 @@
-#!/bin/bash
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# @ECLASS: eapi7-ver.eclass
-# @MAINTAINER:
-# PMS team 
-# @AUTHOR:
-# Ulrich Müller 
-# Michał Górny 
-# @BLURB: Testing implementation of EAPI 7 version manipulators
-# @DESCRIPTION:
-# A stand-alone implementation of the version manipulation functions
-# aimed for EAPI 7.  Intended to be used for wider testing of
-# the proposed functions and to allow ebuilds to switch to the new
-# model early, with minimal change needed for actual EAPI 7.
-#
-# https://bugs.gentoo.org/482170
-#
-# @SUBSECTION Version strings
-#
-# The functions support arbitrary version strings consisting of version
-# components interspersed with (possibly empty) version separators.
-#
-# A version component can either consist purely of digits ([0-9]+)
-# or purely of uppercase and lowercase letters ([A-Za-z]+).  A version
-# separator is either a string of any other characters ([^A-Za-z0-9]+),
-# or it occurs at the transition between a sequence of letters
-# and a sequence of digits, or vice versa.  In the latter case,
-# the version separator is an empty string.
-#
-# The version is processed left-to-right, and each successive component
-# is assigned numbers starting with 1.  The components are either split
-# on version separators or on boundaries between digits and letters
-# (in which case the separator between the components is empty).
-# Version separators are assigned numbers starting with 1 for
-# the separator between 1st and 2nd components.  As a special case,
-# if the version string starts with a separator, it is assigned index 0.
-#
-# Examples:
-#
-# @CODE
-#   1.2b-alpha4 -> 1 . 2 '' b - alpha '' 4
-#  c s c s  c s c s  c
-#  1 1 2 2  3 3 4 4  5
-#
-#   .11.-> . 11 .
-#  s c  s
-#  0 1  1
-# @CODE
-#
-# @SUBSECTION Ranges
-#
-# A range can be specified as 'm' for m-th version component, 'm-'
-# for all components starting with m-th or 'm-n' for components starting
-# at m-th and ending at n-th (inclusive).  If the range spans outside
-# the version string, it is truncated silently.
-
-# @FUNCTION: _ver_parse_range
-# @USAGE:  
-# @INTERNAL
-# @DESCRIPTION:
-# Parse the range string , setting 'start' and 'end' variables
-# to the appropriate bounds.   specifies the appropriate upper
-# bound for the range; the user-specified value is truncated to this.
-_ver_parse_range() {
-   local range=${1}
-   local max=${2}
-
-   [[ ${range} == [0-9]* ]] \
-   || die "${FUNCNAME}: range must start with a number"
-   start=${range%-*}
-   [[ ${range} == *-* ]] && end=${range#*-} || end=${start}
-   if [[ ${end} ]]; then
-   [[ ${start} -le ${end} ]] \
-   || die "${FUNCNAME}: end of range must be >= start"
-   [[ ${end} -le ${max} ]] || end=${max}
-   else
-   end=${max}
-   fi
-}
-
-# @FUNCTION: _ver_split
-# @USAGE: 
-# @INTERNAL
-# @DESCRIPTION:
-# Split the version string  into separator-component array.
-# Sets 'comp' to an array of the form: ( s_0 c_1 s_1 c_2 s_2 c_3... )
-# where s_i are separators and c_i are components.
-_ver_split() {
-   local v=${1} LC_ALL=C
-
-   comp=()
-
-   # get separators and components
-   local s c
-   while [[ ${v} ]]; do
-   # cut the separator
-   s=${v%%[a-zA-Z0-9]*}
-   v=${v:${#s}}
-   # cut the next component; it can be either digits or letters
-   [[ ${v} == [0-9]* ]] && c=${v%%[^0-9]*} || c=${v%%[^a-zA-Z]*}
-   v=${v:${#c}}
-
-   comp+=( "${s}" "${c}" )
-   done
-}
-
-# @FUNCTION: ver_cut
-# @USAGE:  []
-# @DESCRIPTION:
-# Print the substring of the version string containing components
-# defined by the  and the version separators between them.
-# Processes  if specified, ${PV} otherwise.
-#
-# For the syntax of versions and ranges, please see the eclass
-# description.
-ver_cut() {
-   local range=${1}
-   local v=${2:-${PV}}
-   local start end
-   local -a comp
-
-   _ver_split "${v}"
-   local max=$((${#comp[@]}/2))
-   _ver_pa

[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: b0aeec749a3875329284da27f0e048a6b3e98278
Author: Eli Schwartz  gentoo  org>
AuthorDate: Tue Jan 27 01:05:48 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:01 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0aeec74

greadme.eclass: use eapi9-pipestatus rather than assert

Preliminary work for EAPI 9, which bans the latter.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/greadme.eclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/eclass/greadme.eclass b/eclass/greadme.eclass
index 49aba1d89389..6c1e1fd57458 100644
--- a/eclass/greadme.eclass
+++ b/eclass/greadme.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: greadme.eclass
@@ -44,7 +44,7 @@ if [[ -z ${_GREADME_ECLASS} ]]; then
 _GREADME_ECLASS=1
 
 case ${EAPI} in
-   8) ;;
+   8) inherit eapi9-pipestatus ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
@@ -120,7 +120,7 @@ _greadme_install_doc() {
# https://bugs.gentoo.org/460050#c7
fold -s -w 70 "${_GREADME_TMP_FILE}" |
sed 's/[[:space:]]*$//' > "${greadme}"
-   assert "failed to autoformat README.gentoo"
+   pipestatus || die "failed to autoformat README.gentoo"
fi
 
# Subshell to avoid pollution of calling environment.



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: 10b606496324816330bf93036613b55353bcafe0
Author: Eli Schwartz  gentoo  org>
AuthorDate: Mon Jan 26 19:37:47 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:01 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10b60649

python-utils-r1.eclass: use eapi9-pipestatus rather than assert

Preliminary work for EAPI 9, which bans the latter.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/python-utils-r1.eclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index 240365ab738c..807813f3f3bd 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -27,7 +27,7 @@ if [[ -z ${_PYTHON_UTILS_R1_ECLASS} ]]; then
 _PYTHON_UTILS_R1_ECLASS=1
 
 case ${EAPI} in
-   7|8) ;;
+   7|8) inherit eapi9-pipestatus ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
@@ -1231,12 +1231,12 @@ _python_check_occluded_packages() {
comm -1 -3 <(
find "${fn}" -type f -not -path 
'*/__pycache__/*' |
sort
-   assert
+   pipestatus || die
) <(
cd "${sitedir}" &&
find "${fn}" -type f -not -path 
'*/__pycache__/*' |
sort
-   assert
+   pipestatus || die
)
)
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: 55a92e44a2ac58b7c1c598ff5fc9eaeeb6be9dfe
Author: Eli Schwartz  gentoo  org>
AuthorDate: Mon Jan 26 19:32:57 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:00 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=55a92e44

distutils-r1.eclass: use eapi9-pipestatus rather than assert

Preliminary work for EAPI 9, which bans the latter.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/distutils-r1.eclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index b9807554c658..7cafa199bdac 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -217,7 +217,7 @@ if [[ -z ${_DISTUTILS_R1_ECLASS} ]]; then
 _DISTUTILS_R1_ECLASS=1
 
 case ${EAPI} in
-   8) ;;
+   8) inherit eapi9-pipestatus ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
@@ -1454,13 +1454,13 @@ distutils-r1_python_install() {
(
cd "${reg_scriptdir}" && find . -mindepth 1
) | sort > "${T}"/.distutils-files-bin
-   assert "listing ${reg_scriptdir} failed"
+   pipestatus || die "listing ${reg_scriptdir} failed"
(
if [[ -d ${wrapped_scriptdir} ]]; then
cd "${wrapped_scriptdir}" && find . -mindepth 1
fi
) | sort > "${T}"/.distutils-files-wrapped
-   assert "listing ${wrapped_scriptdir} failed"
+   pipestatus || die "listing ${wrapped_scriptdir} failed"
if ! diff -U 0 "${T}"/.distutils-files-{bin,wrapped}; then
die "File lists for ${reg_scriptdir} and 
${wrapped_scriptdir} differ (see diff above)"
fi



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: a581c9de383609360745d9af8808d35a9f229260
Author: Eli Schwartz  gentoo  org>
AuthorDate: Mon Jan 26 19:29:19 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:00 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a581c9de

cvs.eclass: use eapi9-pipestatus rather than assert

Preliminary work for EAPI 9, which bans the latter.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/cvs.eclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/eclass/cvs.eclass b/eclass/cvs.eclass
index 007240e6ba25..d950a5500ce0 100644
--- a/eclass/cvs.eclass
+++ b/eclass/cvs.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: cvs.eclass
@@ -14,7 +14,7 @@
 # directly, I'd be interested to hear about it.
 
 case ${EAPI} in
-   7|8) ;;
+   7|8) inherit eapi9-pipestatus ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
@@ -489,7 +489,7 @@ cvs_src_unpack() {
LC_ALL=C sort | \
sha1sum | \
awk '{print $1}'
-   assert
+   pipestatus || die
)
 
# If the directory is empty, remove it; empty directories cannot



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: d896feeeb738b0cad0acd6667845454ddc51eb92
Author: Eli Schwartz  gentoo  org>
AuthorDate: Sun Jan 25 05:59:02 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:00 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d896feee

toolchain-funcs.eclass: tc-env_build should also update CHOST

The whole purpose of this function is really just to run specific
commands "as CHOST=${CBUILD}" during cross, in case you really need
CBUILD copies of stuff e.g. to do asset generation.

We also have an econf helper which... sets CHOST then runs econf. And
ebuilds such as anki and zig also override CHOST when using
tc-env_build, which implies it is useful/needed.

While exploring app-containers/containerd failing to cross build, I
observed a challenging issue for go-env.eclass as well. One may wish to
use tc-env_build to override the go env to set up, as such:

```
tc-env_build go-env_set_compile_environment emake 
```

but the latter function sets go's host mode (goarch) based on CHOST,
while the former function checks for cross mode by comparing CHOST
versus CBUILD. Once again, we need a wrapper for tc-env_build to run,
just to set CHOST?

It seems simpler and more consistent to always set it.

Note order is important; tc-getBUILD_XXX must appear and run on the
command line *first*, as they use CHOST internally.

Bug: https://bugs.gentoo.org/966257
Reviewed-by: Sam James  gentoo.org>
Reviewed-by: James Le Cuirot  gentoo.org>
Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/toolchain-funcs.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
index 89da26b867b1..2b57fc118705 100644
--- a/eclass/toolchain-funcs.eclass
+++ b/eclass/toolchain-funcs.eclass
@@ -402,6 +402,7 @@ tc-env_build() {
PKG_CONFIG=$(tc-getBUILD_PKG_CONFIG) \
RANLIB=$(tc-getBUILD_RANLIB) \
READELF=$(tc-getBUILD_READELF) \
+   CHOST=${CBUILD:-${CHOST}} \
"$@"
 }
 
@@ -445,8 +446,7 @@ tc-env_build() {
 # @CODE
 econf_build() {
local CBUILD=${CBUILD:-${CHOST}}
-   econf_env() { CHOST=${CBUILD} econf "$@"; }
-   tc-env_build econf_env "$@"
+   tc-env_build econf "$@"
 }
 
 # @FUNCTION: tc-ld-is-bfd



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Eli Schwartz
commit: 4bf5c8c63455def273c2c27006a1363d23515eb8
Author: Eli Schwartz  gentoo  org>
AuthorDate: Mon Jan 26 19:22:16 2026 +
Commit: Eli Schwartz  gentoo  org>
CommitDate: Thu Mar 12 15:21:00 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4bf5c8c6

cargo.eclass: avoid useless use of assert / pipestatus

The preceding command pipeline is `printf | xargs`, and printf is a bash
builtin. It cannot fail. `die`ing if xargs fails to consume the pipe
buffer is sufficient.

assert is banned in EAPI 9, so it needs to go regardless. There's no
point to using `inherit eapi9-pipestatus` here.

Signed-off-by: Eli Schwartz  gentoo.org>

 eclass/cargo.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
index 76d3b9a61a64..6f6062082968 100644
--- a/eclass/cargo.eclass
+++ b/eclass/cargo.eclass
@@ -529,8 +529,7 @@ cargo_src_unpack() {
ebegin "Unpacking crates"
printf '%s\0' "${crates[@]}" |
xargs -0 -P "$(makeopts_jobs)" -n 1 -t -- \
-   tar -x -C "${ECARGO_VENDOR}" -f
-   assert
+   tar -x -C "${ECARGO_VENDOR}" -f || die
eend $?
 
while read -d '' -r shasum archive; do
@@ -556,6 +555,7 @@ cargo_src_unpack() {
eqawarn "a crate tarball instead and fetch it via 
SRC_URI.  You can use"
eqawarn "'pycargoebuild --crate-tarball' to create one."
fi
+   einfo "this package uses ${#crates[@]} number of crates: you 
are all good"
fi
 
cargo_gen_config



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-12 Thread Ulrich Müller
commit: 1f4c44bf494536e9cb381486f4c474b77d367330
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:30:13 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Mar 12 11:43:25 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f4c44bf

sysroot.eclass: Support EAPI 9

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/sysroot.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/sysroot.eclass b/eclass/sysroot.eclass
index 3427c421bf22..de0a4ef31648 100644
--- a/eclass/sysroot.eclass
+++ b/eclass/sysroot.eclass
@@ -6,7 +6,7 @@
 # [email protected]
 # @AUTHOR:
 # James Le Cuirot 
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: Common functions for using a different (sys)root
 # @DESCRIPTION:
 # This eclass provides common functions to run executables within a different
@@ -14,7 +14,7 @@
 # functions can be used in src_* or pkg_* phase functions.
 
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-11 Thread Ionen Wolkens
commit: 247d9bc5a4c171b86e158a6ca4b9d1c6c23f26b9
Author: Ionen Wolkens  gentoo  org>
AuthorDate: Wed Mar 11 16:04:38 2026 +
Commit: Ionen Wolkens  gentoo  org>
CommitDate: Thu Mar 12 01:24:20 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=247d9bc5

linux-mod-r1.eclass: abort and explain if kernel's objtool is broken

This is only intended to catch the most common case.

Considered trying to rebuild objtool live, but felt that may be too
fragile between different kernel versions and changing build and usage
logic. Fortunately feel binutils does not receive new releases often
enough for this to become a real hassle similarly to GCC plugins, esp.
when users will not necessarily need to update modules until they
update their kernel with the new toolchain.

Dist kernels could optionally use binutils-libs:= to rebuild albeit
that may just result in unnecessary rebuilds for the majority that are
not using out-of-tree modules. Either way, the warning would still be
needed for *-sources users.

Closes: https://bugs.gentoo.org/971092
Signed-off-by: Ionen Wolkens  gentoo.org>

 eclass/linux-mod-r1.eclass | 32 
 1 file changed, 32 insertions(+)

diff --git a/eclass/linux-mod-r1.eclass b/eclass/linux-mod-r1.eclass
index 49ae882f7e95..247739b95198 100644
--- a/eclass/linux-mod-r1.eclass
+++ b/eclass/linux-mod-r1.eclass
@@ -352,6 +352,7 @@ linux-mod-r1_pkg_setup() {
_modules_prepare_cross
 
_modules_sanity_gccplugins
+   _modules_sanity_objtool
 }
 
 # @FUNCTION: linux-mod-r1_src_compile
@@ -1277,6 +1278,37 @@ _modules_sanity_modversion() {
done
 }
 
+# @FUNCTION: _modules_sanity_objtool
+# @INTERNAL
+# @DESCRIPTION:
+# Checks that the kernel's objtool is usable if it exists.  If not,
+# abort right away with an explanation rather than do so later with
+# a confusing error (bug #971092).
+#
+# Ever since it started to use binutils-libs in kernel >=6.19, it has
+# become likely to be broken whenever binutils-libs is upgraded.
+_modules_sanity_objtool() {
+   # ignore cross to keep this simple/safe without doing proper
+   # testing, albeit objtool should in theory be usable on CBUILD
+   tc-is-cross-compiler && return 0
+
+   local objtool=${KV_OUT_DIR}/tools/objtool/objtool
+   # if missing, assume this is a older kernel
+   if [[ -e ${objtool} ]]; then
+   "${objtool}" &>/dev/null
+
+   # without arguments objtool is likely to return 129 unless
+   # one of its libraries is missing which results in 127
+   if [[ ${?} -eq 127 ]]; then
+   eerror "Detected that '${objtool}' is not usable."
+   eerror "This is often because it uses old libraries 
that have been removed from"
+   eerror "the system. This can typically be fixed by 
rebuilding the kernel after"
+   eerror "doing \`make clean\` (or re-installing for 
distribution kernels)."
+   die "kernel ${KV_FULL} needs to be rebuilt"
+   fi
+   fi
+}
+
 # @FUNCTION: _modules_set_makeargs
 # @INTERNAL
 # @DESCRIPTION:



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-11 Thread Sam James
commit: 5bdadcf36efa8d78293f7e109b1ce78e55a2d0b7
Author: sin-ack  protonmail  com>
AuthorDate: Tue Mar 10 00:10:40 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Wed Mar 11 14:15:42 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5bdadcf3

zig.eclass: avoid redundant dependency renaming when basename matches

Otherwise pkgcheck complains with RedundantUriRename.

Signed-off-by: sin-ack  protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/45908
Signed-off-by: Sam James  gentoo.org>

 eclass/zig.eclass | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/eclass/zig.eclass b/eclass/zig.eclass
index 0b5a2426e732..06bbabc218a3 100644
--- a/eclass/zig.eclass
+++ b/eclass/zig.eclass
@@ -1,4 +1,4 @@
-# Copyright 2024-2025 Gentoo Authors
+# Copyright 2024-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: zig.eclass
@@ -144,8 +144,12 @@ _zig_set_zbs_uris() {
local dependency
for dependency in "${!ZBS_DEPENDENCIES[@]}"; do
local uri="${ZBS_DEPENDENCIES[${dependency}]}"
+   local basename="${uri##*/}"
if [[ -n "${uri}" ]]; then
-   ZBS_DEPENDENCIES_SRC_URI+=" ${uri} -> ${dependency}"
+   ZBS_DEPENDENCIES_SRC_URI+=" ${uri}"
+   if [[ "${basename}" != "${dependency}" ]]; then
+   ZBS_DEPENDENCIES_SRC_URI+=" -> ${dependency}"
+   fi
fi
done
 }



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-11 Thread Ionen Wolkens
commit: bff73543a755134fc4006815d35b523234273987
Author: Ionen Wolkens  gentoo  org>
AuthorDate: Wed Mar 11 11:44:18 2026 +
Commit: Ionen Wolkens  gentoo  org>
CommitDate: Wed Mar 11 11:55:04 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bff73543

wine.eclass: add C++ support

Not looked at what it is needed for, but upstream wine has added
support for using C++ in upcoming >=11.5 (incl. for cross) so add
support here too.

C++ was already used for dxvk so mingw64-toolchain should function
properly for this.

Hopefully not overlooked anything, but quite possible did. The
changed logic still seems to work for C at least.

Signed-off-by: Ionen Wolkens  gentoo.org>

 eclass/wine.eclass | 86 --
 1 file changed, 64 insertions(+), 22 deletions(-)

diff --git a/eclass/wine.eclass b/eclass/wine.eclass
index 855b3e329295..40cad4c132b6 100644
--- a/eclass/wine.eclass
+++ b/eclass/wine.eclass
@@ -175,10 +175,11 @@ wine_src_prepare() {
 # --with-mingw, and --with-wine64
 #
 # Can adjust cross toolchain using CROSSCC, CROSSCC_amd64/x86/arm64,
-# CROSS{C,LD}FLAGS, and CROSS{C,LD}FLAGS_amd64/x86/arm64 (variable
-# naming is mostly historical because wine itself used to recognize
-# CROSSCC). By default it attempts to use same {C,LD}FLAGS as the
-# main toolchain but will strip known unsupported flags.
+# CROSS{C,LD}FLAGS, CROSS{C,LD}FLAGS_amd64/x86/arm64, and likewise
+# for CROSSCXX (variable naming is mostly historical because wine
+# itself used to recognize CROSSCC).  Be warned that changing FLAGS
+# is fragile and unsupported.  If USE=custom-cflags, the native
+# toolchain's FLAGS will be used, otherwise the default is just -O2.
 wine_src_configure() {
WINE_PREFIX=/usr/lib/${P}
WINE_DATADIR=/usr/share/${P}
@@ -195,7 +196,7 @@ wine_src_configure() {
if use !custom-cflags; then
# wine is generally fragile
strip-flags
-   append-cflags $(test-flags-CC -fno-stack-protector) 
#870136,#970983
+   append-flags $(test-flags-CC -fno-stack-protector) 
#870136,#970983
fi
 
# longstanding failing to build with lto, filter unconditionally
@@ -218,7 +219,7 @@ wine_src_configure() {
 
# wcc_* variables are used by _wine_flags(), see that
# function if need to adjust *FLAGS only for cross
-   local wcc_{amd64,x86,arm64}{,_testflags}
+   local w{cc,cxx}_{amd64,x86,arm64,arm64ec}{,_testflags}
# TODO?: llvm-mingw support if useful
if use mingw; then
conf+=( --with-mingw )
@@ -228,26 +229,49 @@ wine_src_configure() {
PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
 
wcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+   
wcxx_amd64=${CROSSCXX:-${CROSSCXX_amd64:-x86_64-w64-mingw32-g++}}
+
wcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+   wcxx_x86=${CROSSCXX:-${CROSSCXX_x86:-i686-w64-mingw32-g++}}
+
# no mingw64-toolchain ~arm64, but "may" be usable with crossdev
# (aarch64- rather than arm64- given it is what Wine searches 
for)
wcc_arm64=${CROSSCC:-${CROSSCC_arm64:-aarch64-w64-mingw32-gcc}}
+   
wcxx_arm64=${CROSSCXX:-${CROSSCXX_arm64:-aarch64-w64-mingw32-g++}}
+

wcc_arm64ec=${CROSSCC:-${CROSSCC_arm64ec:-arm64ec-w64-mingw32-gcc}}
+   
wcxx_arm64ec=${CROSSCXX:-${CROSSCXX_arm64ec:-arm64ec-w64-mingw32-g++}}
else
conf+=( --with-mingw=clang )
 
# not building for ${CHOST} so $(tc-getCC) is not quite right, 
but
# *should* support -target *-windows regardless (testflags is 
only
# used by _wine_flags(), wine handles -target by itself)
-   tc-is-clang && local clang=$(tc-getCC) || local clang=clang
+   local clang=clang clangxx=clang++
+   if tc-is-clang; then
+   clang=$(tc-getCC)
+   clangxx=$(tc-getCXX)
+   fi
+
wcc_amd64=${CROSSCC:-${CROSSCC_amd64:-${clang}}}
wcc_amd64_testflags="-target x86_64-windows"
+   wcxx_amd64=${CROSSCXX:-${CROSSCXX_amd64:-${clangxx}}}
+   wcxx_amd64_testflags=${wcc_amd64_testflags}
+
wcc_x86=${CROSSCC:-${CROSSCC_x86:-${clang}}}
wcc_x86_testflags="-target i386-windows"
+   wcxx_x86=${CROSSCXX:-${CROSSCXX_x86:-${clangxx}}}
+   wcxx_x86_testflags=${wcc_x86_testflags}
+
wcc_arm64=${CROSSCC:-${CROSSCC_arm64:-${clang}}}
wcc_arm64_testflags="-target aarch64-windows"
+   wcxx_arm64=${CROSSCXX:-${CROSSCXX_arm64:-${clangxx}}}
+   wcxx_arm64_testflags=${wcc_arm64_testflags}
+
wcc_arm64ec=${CROSSCC:-${CROSSCC_arm64ec:-${clang}}}
wcc_a

[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-11 Thread Michał Górny
commit: 0a12194b735dad261799acb3acc370a49ad44024
Author: Michał Górny  gentoo  org>
AuthorDate: Wed Mar 11 11:20:30 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Wed Mar 11 11:20:30 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a12194b

llvm.org.eclass: Clean up code for old versions

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 45 -
 1 file changed, 12 insertions(+), 33 deletions(-)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 81c74323e27a..99ebd5aef4f1 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -169,44 +169,26 @@ fi
 # version.  The value depends on ${PV}.
 
 case ${LLVM_MAJOR} in
-   14)
-   ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY M68k )
+   1*)
+   ALL_LLVM_EXPERIMENTAL_TARGETS=(
+   ARC CSKY DirectX M68k SPIRV Xtensa
+   )
ALL_LLVM_PRODUCTION_TARGETS=(
-   AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 
NVPTX
-   PowerPC RISCV Sparc SystemZ VE WebAssembly X86 XCore
+   AArch64 AMDGPU ARM AVR BPF Hexagon Lanai LoongArch Mips
+   MSP430 NVPTX PowerPC RISCV Sparc SystemZ VE WebAssembly 
X86
+   XCore
)
;;
-   15)
+   *)
ALL_LLVM_EXPERIMENTAL_TARGETS=(
-   ARC CSKY DirectX LoongArch M68k SPIRV
+   ARC CSKY DirectX M68k Xtensa
)
ALL_LLVM_PRODUCTION_TARGETS=(
-   AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 
NVPTX
-   PowerPC RISCV Sparc SystemZ VE WebAssembly X86 XCore
+   AArch64 AMDGPU ARM AVR BPF Hexagon Lanai LoongArch Mips
+   MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+   WebAssembly X86 XCore
)
;;
-   *)
-   # TODO: limit to < 20 when we remove old snapshots
-   if ver_test ${PV} -lt 20.0.0_pre20250122; then
-   ALL_LLVM_EXPERIMENTAL_TARGETS=(
-   ARC CSKY DirectX M68k SPIRV Xtensa
-   )
-   ALL_LLVM_PRODUCTION_TARGETS=(
-   AArch64 AMDGPU ARM AVR BPF Hexagon Lanai 
LoongArch Mips
-   MSP430 NVPTX PowerPC RISCV Sparc SystemZ VE 
WebAssembly X86
-   XCore
-   )
-   else
-   ALL_LLVM_EXPERIMENTAL_TARGETS=(
-   ARC CSKY DirectX M68k Xtensa
-   )
-   ALL_LLVM_PRODUCTION_TARGETS=(
-   AArch64 AMDGPU ARM AVR BPF Hexagon Lanai 
LoongArch Mips
-   MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ 
VE
-   WebAssembly X86 XCore
-   )
-   fi
-   ;;
 esac
 
 ALL_LLVM_TARGET_FLAGS=(
@@ -298,9 +280,6 @@ llvm.org_set_globals() {
LLVM_MANPAGE_DIST=
if [[ ${_LLVM_SOURCE_TYPE} == tar && ${PV} != *_rc* ]]; then
case ${PV} in
-   14*|15*|16.0.[0-3])
-   
LLVM_MANPAGE_DIST="llvm-${PV}-manpages.tar.bz2"
-   ;;
16*)

LLVM_MANPAGE_DIST="llvm-16.0.4-manpages.tar.bz2"
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-11 Thread Michał Górny
commit: a83ea2e1df15e21b5134ee790218b9e8b1cb886e
Author: Michał Górny  gentoo  org>
AuthorDate: Wed Mar 11 11:18:56 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Wed Mar 11 11:18:56 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a83ea2e1

llvm.org.eclass: Clean old snapshots

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 12 
 1 file changed, 12 deletions(-)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 5001f83251a3..81c74323e27a 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -75,18 +75,6 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
23.0.0_pre20260307)

EGIT_COMMIT=704c87bb948aff1bec718d56ad52b9b5d9c49cfb
;;
-   23.0.0_pre20260303)
-   
EGIT_COMMIT=d908184487b9d99b249d4238453e91203492888a
-   ;;
-   23.0.0_pre20260223)
-   
EGIT_COMMIT=0b95a494c90cb77a50415fb85196e1eb80f96a5d
-   ;;
-   23.0.0_pre20260214)
-   
EGIT_COMMIT=ab25249e63aba72be5365e5dc08c8d3c34d23276
-   ;;
-   23.0.0_pre20260207)
-   
EGIT_COMMIT=8d2078332c23b10dcf3571adc1a186e5c65f82df
-   ;;
*)
die "Unknown snapshot: ${PV}"
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-07 Thread Michał Górny
commit: c63bb942844e8be8974f18877505f52796e84ea4
Author: Michał Górny  gentoo  org>
AuthorDate: Sat Mar  7 12:28:09 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Sat Mar  7 12:32:07 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c63bb942

llvm.org.eclass: Add 23.0.0_pre20260307 snapshot

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 10c1d64b86e8..5001f83251a3 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -72,6 +72,9 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
_LLVM_SOURCE_TYPE=snapshot
 
case ${PV} in
+   23.0.0_pre20260307)
+   
EGIT_COMMIT=704c87bb948aff1bec718d56ad52b9b5d9c49cfb
+   ;;
23.0.0_pre20260303)

EGIT_COMMIT=d908184487b9d99b249d4238453e91203492888a
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/tests/

2026-03-06 Thread Michael Orlitzky
commit: 01fc030aed453f83d20b4fda5f38d626649345ba
Author: Michael Orlitzky  gentoo  org>
AuthorDate: Fri Mar  6 21:28:50 2026 +
Commit: Michael Orlitzky  gentoo  org>
CommitDate: Fri Mar  6 21:31:58 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=01fc030a

eclass/tests/unpacker.sh: http -> https for updates.lokigames.com

$ curl -i http://updates.lokigames.com/sof/sof-1.06a-cdrom-x86.run
HTTP/1.1 301 Moved Permanently
Date: Fri, 06 Mar 2026 21:29:35 GMT
Server: Apache/2.4.58 (Ubuntu)
Location: https://updates.lokigames.com/sof/sof-1.06a-cdrom-x86.run
Content-Length: 352
Content-Type: text/html; charset=iso-8859-1

Signed-off-by: Michael Orlitzky  gentoo.org>

 eclass/tests/unpacker.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/tests/unpacker.sh b/eclass/tests/unpacker.sh
index ef17e724a851..4b2fcb030bb0 100755
--- a/eclass/tests/unpacker.sh
+++ b/eclass/tests/unpacker.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -398,7 +398,7 @@ if [[ -n ${DISTDIR} ]]; then
 
# makeself 1.5.4, gzip
test_online \
-   http://updates.lokigames.com/sof/sof-1.06a-cdrom-x86.run \
+   https://updates.lokigames.com/sof/sof-1.06a-cdrom-x86.run \

f76f605af08a19b77548455c0101e03aca7cae69462914e47911da2fadd6d4f3b766e1069556ead0d06c757b179ae2e8105e76ea37852f17796b47b4712aec87
 \
update.sh \

ba7a3f8fa79bbed8ca3a34ead957aeaa308c6e6d6aedd603098aa9867ca745983ff98c83d65572e507f2c3c4e0778ae4984f8b69d2b8279741b06064253c5788



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-06 Thread Mike Gilbert
commit: e970a02a8266d71d1ef066f1491007f0d9df08c8
Author: Mike Gilbert  gentoo  org>
AuthorDate: Thu Mar  5 20:28:38 2026 +
Commit: Mike Gilbert  gentoo  org>
CommitDate: Fri Mar  6 15:38:43 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e970a02a

udev.eclass: quote "${EPREFIX}" in parameter expansion

Prevents any wildcard characters from being applied.

Signed-off-by: Mike Gilbert  gentoo.org>

 eclass/udev.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/udev.eclass b/eclass/udev.eclass
index 0558566913ec..7d1c213fa643 100644
--- a/eclass/udev.eclass
+++ b/eclass/udev.eclass
@@ -57,7 +57,7 @@ _udev_get_udevdir() {
local -x PKG_CONFIG_FDO_SYSROOT_RULES=1
if $($(tc-getPKG_CONFIG) --exists udev); then
local udevdir="$($(tc-getPKG_CONFIG) --variable=udevdir udev)"
-   echo "${udevdir#${EPREFIX}}"
+   echo "${udevdir#"${EPREFIX}"}"
else
echo /usr/lib/udev
fi



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-06 Thread Mike Gilbert
commit: ed7b2a586abdd18f37f79a519bc8636038e32604
Author: Mike Gilbert  gentoo  org>
AuthorDate: Thu Mar  5 20:04:14 2026 +
Commit: Mike Gilbert  gentoo  org>
CommitDate: Fri Mar  6 15:38:41 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed7b2a58

udev.eclass: default udevdir to /usr/lib/udev

systemd upstream always uses /usr/lib/udev since v255.

Signed-off-by: Mike Gilbert  gentoo.org>

 eclass/udev.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/udev.eclass b/eclass/udev.eclass
index 9867c68d5836..0558566913ec 100644
--- a/eclass/udev.eclass
+++ b/eclass/udev.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 2012-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: udev.eclass
@@ -59,7 +59,7 @@ _udev_get_udevdir() {
local udevdir="$($(tc-getPKG_CONFIG) --variable=udevdir udev)"
echo "${udevdir#${EPREFIX}}"
else
-   echo /lib/udev
+   echo /usr/lib/udev
fi
 }
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-03 Thread Michał Górny
commit: ab20dbe934a8cebbe46e460912fbb01af82bc204
Author: Michał Górny  gentoo  org>
AuthorDate: Tue Mar  3 19:52:25 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Tue Mar  3 20:03:11 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab20dbe9

llvm.org.eclass: Add 23.0.0_pre20260303 snapshot

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 62fb010c2b29..10c1d64b86e8 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -72,6 +72,9 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
_LLVM_SOURCE_TYPE=snapshot
 
case ${PV} in
+   23.0.0_pre20260303)
+   
EGIT_COMMIT=d908184487b9d99b249d4238453e91203492888a
+   ;;
23.0.0_pre20260223)

EGIT_COMMIT=0b95a494c90cb77a50415fb85196e1eb80f96a5d
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-01 Thread Robin H. Johnson
commit: 901353aabd8f0457553f39f9f03d65b7a750de37
Author: Robin H. Johnson  gentoo  org>
AuthorDate: Sun Mar  1 23:41:35 2026 +
Commit: Robin H. Johnson  gentoo  org>
CommitDate: Sun Mar  1 23:42:07 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=901353aa

eclass: Revert "llvm.org.eclass: Remove old snapshot"

This reverts commit b73af2e762c84e0f31f84ce3117647189618e8c0.

Suspect validation is causing mirror generation issues; need to rule
this out.

Signed-off-by: Robin H. Johnson  gentoo.org>

 eclass/llvm.org.eclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 05706453fe78..62fb010c2b29 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -78,6 +78,9 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
23.0.0_pre20260214)

EGIT_COMMIT=ab25249e63aba72be5365e5dc08c8d3c34d23276
;;
+   23.0.0_pre20260207)
+   
EGIT_COMMIT=8d2078332c23b10dcf3571adc1a186e5c65f82df
+   ;;
*)
die "Unknown snapshot: ${PV}"
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-01 Thread Viorel Munteanu
commit: 8932600dfca2ec57a4a5b2a56571824ecbf5a1af
Author: Viorel Munteanu  gentoo  org>
AuthorDate: Sun Mar  1 13:24:15 2026 +
Commit: Viorel Munteanu  gentoo  org>
CommitDate: Sun Mar  1 18:07:36 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8932600d

unpacker.eclass: Add support for makeself 2.5.0-2.7.1

Add support for makeself releases 2.5.0 through 2.7.1.

Tested with makeself 2.5.0, 2.6.0, 2.7.0 and 2.7.1.

Archives created with makeself 2.6.0 identify as 2.5.0, but the format
is similar so they can be unpacked regardless.

URI of files this has been tested with:
- 
https://download.virtualbox.org/virtualbox/7.1.0/VirtualBox-7.1.0-164728-Linux_amd64.run
 (2.4.5)
- 
https://download.virtualbox.org/virtualbox/7.2.4/VirtualBox-7.2.4-170995-Linux_amd64.run
 (2.5.0)
- 
https://github.com/megastep/makeself/releases/download/release-2.5.0/makeself-2.5.0.run
 (2.5.0)
- 
https://github.com/megastep/makeself/releases/download/release-2.6.0/makeself-2.6.0.run
 (2.6.0)
- 
https://github.com/megastep/makeself/releases/download/release-2.7.0/makeself-2.7.0.run
 (2.7.0)
- 
https://github.com/megastep/makeself/releases/download/release-2.7.1/makeself-2.7.1.run
 (2.7.1)

Closes: https://bugs.gentoo.org/970509
Signed-off-by: Viorel Munteanu  gentoo.org>

 eclass/unpacker.eclass | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/eclass/unpacker.eclass b/eclass/unpacker.eclass
index 0ace3ae53cb9..e51c51dfa339 100644
--- a/eclass/unpacker.eclass
+++ b/eclass/unpacker.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: unpacker.eclass
@@ -218,7 +218,8 @@ unpack_makeself() {
skip=$(head -n ${skip} "${src}" | wc -c)
exe="dd"
;;
-   2.4.5)
+   # 2.6.0's header also contains "2.5.0"; unpack_makeself 
works in both cases
+   2.4.5|2.5.0|2.7.0|2.7.1)
# e.g.: skip="713"
skip=$(
sed -n -e 
'/^skip=/{s:skip="\(.*\)":\1:p;q}' "${src}"



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-03-01 Thread Sam James
commit: 41d623234817c221bacab5dff211a696d202af8f
Author: Sam James  gentoo  org>
AuthorDate: Sun Mar  1 17:30:07 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Sun Mar  1 17:30:31 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=41d62323

toolchain.eclass: add a proxy check for stage1 for accel build

Bug: https://bugs.gentoo.org/970714
Fixes: 977b73a1cb736846add244dbd55726ebec0f50f6
Signed-off-by: Sam James  gentoo.org>

 eclass/toolchain.eclass | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 2dd2ed59b22d..d051ef4dc2ec 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -2846,7 +2846,10 @@ gcc_movelibs() {
# Without this, we end up either unable to find the libgomp 
spec/archive, or
# we underlink and can't find gomp_nvptx_main (presumably because we 
can't find the plugin)
# 
https://src.fedoraproject.org/rpms/gcc/blob/02c34dfa3627ef05d676d30e152a66e77b58529b/f/gcc.spec#_1445
-   if [[ ${CATEGORY} == cross-accel-nvptx* ]] ; then
+   #
+   # openmp/fortran check is needed here to know if we're in the stage1
+   # build or not.
+   if [[ ${CATEGORY} == cross-accel-nvptx* ]] && { _tc_use_if_iuse openmp 
|| is_fortran ; } ; then
rm -rf 
"${ED}"/usr/libexec/gcc/nvptx-none/${GCCMAJOR}/install-tools
rm -rf 
"${ED}"/usr/libexec/gcc/${CHOST}/${GCCMAJOR}/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus}
is_fortran && rm -rf 
"${ED}"/usr/libexec/gcc/${CHOST}/${GCCMAJOR}/accel/nvptx-none/f951



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-28 Thread Sam James
commit: 977b73a1cb736846add244dbd55726ebec0f50f6
Author: Sam James  gentoo  org>
AuthorDate: Sat Feb 28 23:06:20 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Sat Feb 28 23:06:32 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=977b73a1

toolchain.eclass: fix moving accel bits w/ USE=-fortran

Just conditionalise the f951 removal instead.

Bug: https://bugs.gentoo.org/970714
Signed-off-by: Sam James  gentoo.org>

 eclass/toolchain.eclass | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index b77c0b69aab5..2dd2ed59b22d 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -2846,9 +2846,11 @@ gcc_movelibs() {
# Without this, we end up either unable to find the libgomp 
spec/archive, or
# we underlink and can't find gomp_nvptx_main (presumably because we 
can't find the plugin)
# 
https://src.fedoraproject.org/rpms/gcc/blob/02c34dfa3627ef05d676d30e152a66e77b58529b/f/gcc.spec#_1445
-   if [[ ${CATEGORY} == cross-accel-nvptx* ]] && is_fortran ; then
+   if [[ ${CATEGORY} == cross-accel-nvptx* ]] ; then
rm -rf 
"${ED}"/usr/libexec/gcc/nvptx-none/${GCCMAJOR}/install-tools
-   rm -rf 
"${ED}"/usr/libexec/gcc/${CHOST}/${GCCMAJOR}/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus,f951}
+   rm -rf 
"${ED}"/usr/libexec/gcc/${CHOST}/${GCCMAJOR}/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus}
+   is_fortran && rm -rf 
"${ED}"/usr/libexec/gcc/${CHOST}/${GCCMAJOR}/accel/nvptx-none/f951
+
rm -rf 
"${ED}"/usr/lib/gcc/nvptx-none/${GCCMAJOR}/{install-tools,plugin}
rm -rf 
"${ED}"/usr/lib/gcc/${CHOST}/${GCCMAJOR}/accel/nvptx-none/{install-tools,plugin,include-fixed}
mv "${ED}"/usr/nvptx-none/lib/*.{a,spec} 
"${ED}"/usr/lib/gcc/${CHOST}/${GCCMAJOR}/accel/nvptx-none/



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-26 Thread Michał Górny
commit: c088a1b6d651073ce434de200b5461efacf12def
Author: Michał Górny  gentoo  org>
AuthorDate: Thu Feb 26 04:49:09 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Fri Feb 27 03:51:51 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c088a1b6

llvm.eclass: Update deprecation to point to llvm-r2

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/llvm.eclass b/eclass/llvm.eclass
index 7314fd381806..592bfe226c96 100644
--- a/eclass/llvm.eclass
+++ b/eclass/llvm.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: llvm.eclass
@@ -9,7 +9,7 @@
 # @SUPPORTED_EAPIS: 7 8
 # @PROVIDES: llvm-utils
 # @BLURB: Utility functions to build against slotted LLVM
-# @DEPRECATED: llvm-r1.eclass
+# @DEPRECATED: llvm-r2.eclass
 # @DESCRIPTION:
 # The llvm.eclass provides utility functions that can be used to build
 # against specific version of slotted LLVM (with fallback to :0 for old



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-26 Thread Michał Górny
commit: f21c532a57f594351d7e9cbdf99dd90a3b86ce11
Author: Michał Górny  gentoo  org>
AuthorDate: Thu Feb 26 04:49:02 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Fri Feb 27 03:51:51 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f21c532a

llvm-r1.eclass: Mark @DEPRECATED

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm-r1.eclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/eclass/llvm-r1.eclass b/eclass/llvm-r1.eclass
index fc9fab75e8f6..55cb0c0cafd0 100644
--- a/eclass/llvm-r1.eclass
+++ b/eclass/llvm-r1.eclass
@@ -1,4 +1,4 @@
-# Copyright 2024-2025 Gentoo Authors
+# Copyright 2024-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: llvm-r1.eclass
@@ -9,6 +9,7 @@
 # @SUPPORTED_EAPIS: 8
 # @PROVIDES: llvm-utils
 # @BLURB: Provide LLVM_SLOT to build against slotted LLVM
+# @DEPRECATED: llvm-r2.eclass
 # @DESCRIPTION:
 # An eclass to reliably depend on a set of LLVM-related packages
 # in a matching slot.  To use the eclass:



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-26 Thread Michał Górny
commit: b47918a7f9f549db3ed2e073223bfb10d482e943
Author: Jonas Rakebrandt  protonmail  com>
AuthorDate: Thu Feb 26 14:50:32 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Fri Feb 27 03:51:51 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b47918a7

llvm-r2.eclass: handle +* version suffix

Signed-off-by: Jonas Rakebrandt  protonmail.com>
Part-of: https://bugs.gentoo.org/948500
Closes: https://bugs.gentoo.org/948500
Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm-r2.eclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/eclass/llvm-r2.eclass b/eclass/llvm-r2.eclass
index 57018edc6819..f0b0493f83e3 100644
--- a/eclass/llvm-r2.eclass
+++ b/eclass/llvm-r2.eclass
@@ -1,4 +1,4 @@
-# Copyright 2024-2025 Gentoo Authors
+# Copyright 2024-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: llvm-r2.eclass
@@ -275,6 +275,7 @@ generate_llvm_config() {
# major + suffix
local shlib_name=LLVM-${version%%.*}
[[ ${version} == *git* ]] && shlib_name+="git${version##*git}"
+   [[ ${version} == *+* && ${shlib_name} != *+* ]] && 
shlib_name+="+${version##*+}"
 
local components=(
"${libs[@]#LLVM}" "${targets[@]}"



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-25 Thread Michał Górny
commit: c401c6d20573f3be279cb39bea827ddab730daf6
Author: Michał Górny  gentoo  org>
AuthorDate: Wed Feb 25 18:54:12 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Wed Feb 25 18:55:33 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c401c6d2

llvm.org.eclass: Fix manpages again, sigh

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index a8a44743f320..05706453fe78 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -317,7 +317,7 @@ llvm.org_set_globals() {

LLVM_MANPAGE_DIST="llvm-${LLVM_MAJOR}.1.0-manpages.tar.xz"
;;
22*)
-   
LLVM_MANPAGE_DIST="llvm-${LLVM_MAJOR}.1.0-r1-manpages.tar.xz"
+   
LLVM_MANPAGE_DIST="llvm-${LLVM_MAJOR}.1.0-r2-manpages.tar.xz"
;;
esac
fi



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-25 Thread Michał Górny
commit: 868a837f8cceeae426b73f469ab471b2d566e2dc
Author: Michał Górny  gentoo  org>
AuthorDate: Wed Feb 25 17:00:55 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Wed Feb 25 17:05:07 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=868a837f

llvm.org.eclass: Fix manpage dist for 22.x

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 06841333cae1..a8a44743f320 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -313,9 +313,12 @@ llvm.org_set_globals() {
1[89]*)

LLVM_MANPAGE_DIST="llvm-${LLVM_MAJOR}.1.0-manpages.tar.bz2"
;;
-   2[0-2]*)
+   2[0-1]*)

LLVM_MANPAGE_DIST="llvm-${LLVM_MAJOR}.1.0-manpages.tar.xz"
;;
+   22*)
+   
LLVM_MANPAGE_DIST="llvm-${LLVM_MAJOR}.1.0-r1-manpages.tar.xz"
+   ;;
esac
fi
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: f72fb342332adc447a87b8ac6e4796c0fa42d726
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Feb 21 09:30:47 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 09:30:47 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f72fb342

Revert "shell-completion.eclass: Support EAPI 9"

This reverts commit 4b2ae2a72a1e1aaf4afebcffb1cc4a84cf0d7739.

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/shell-completion.eclass | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/eclass/shell-completion.eclass b/eclass/shell-completion.eclass
index c679ae4db983..caccdee7b19b 100644
--- a/eclass/shell-completion.eclass
+++ b/eclass/shell-completion.eclass
@@ -1,4 +1,4 @@
-# Copyright 2023-2025 Gentoo Authors
+# Copyright 2023-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: shell-completion.eclass
@@ -7,7 +7,7 @@
 # Florian Schmaus 
 # @AUTHOR:
 # Alfred Wingate 
-# @SUPPORTED_EAPIS: 8 9
+# @SUPPORTED_EAPIS: 8
 # @PROVIDES: bash-completion-r1
 # @BLURB: a few quick functions to install various shell completion files
 # @DESCRIPTION:
@@ -15,14 +15,14 @@
 # for popular shells.  It inherits the already widely adopted
 # 'bash-completion-r1', thus extending on its functionality.
 
-if [[ -z ${_SHELL_COMPLETION_ECLASS} ]]; then
-_SHELL_COMPLETION_ECLASS=1
-
 case ${EAPI} in
-   8|9) ;;
+   8) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported"
 esac
 
+if [[ -z ${_SHELL_COMPLETION_ECLASS} ]]; then
+_SHELL_COMPLETION_ECLASS=1
+
 # Extend bash-completion-r1
 inherit bash-completion-r1
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Sam James
commit: f5707053d17b928af12627d58b608c36f75f2aab
Author: Zurab Kvachadze  gmail  com>
AuthorDate: Sun Feb  8 19:01:56 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Fri Feb 20 19:09:34 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f5707053

nginx-module.eclass: Use response file in ngx_mod_append_libs()

Previously, the arguments were appended into the patched-in environment
variable that would feed its contents into the build system of NGINX,
which caused many funny issues that can be discovered, for example, by
looking this commit's diff.

This commit instead makes use of the awesome response files, which allow
putting arguments in a file and have the compiler interpret them
directly without 4 layers of eval and a very helpful Make
interpretation. Thank you.

Signed-off-by: Zurab Kvachadze  gmail.com>
Signed-off-by: Sam James  gentoo.org>

 eclass/nginx-module.eclass | 104 +
 1 file changed, 21 insertions(+), 83 deletions(-)

diff --git a/eclass/nginx-module.eclass b/eclass/nginx-module.eclass
index 0ab4a64dccb6..efa93f376701 100644
--- a/eclass/nginx-module.eclass
+++ b/eclass/nginx-module.eclass
@@ -35,11 +35,11 @@
 # linked to shared objects of the specified dependencies.  See the variable
 # description for details.
 #
-# If the dependencies are USE-conditional, they should be specified as
-# usual in the relevant *DEPEND variable(s).  Then, before
-# nginx-module_src_configure() is called, the dependencies should be linked to 
by
-# calling the ngx_mod_link_module() function.  See the function description for
-# more information.
+# If the dependencies are USE-conditional, they should be specified as usual in
+# the relevant *DEPEND variable(s).  Then, before nginx-module_src_compile() is
+# called, the dependencies should be linked to by calling the
+# ngx_mod_link_module() function.  See the function description for more
+# information.
 #
 # nginx-module.eclass also supports tests provided by the Test::Nginx Perl
 # module.  To enable them, set NGINX_MOD_OPENRESTY_TESTS to a non-empty value
@@ -183,9 +183,6 @@ ngx_mod_pkg_to_sonames() {
 # module's shared objects.  Flags may be of any form accepted by linker.
 # See the nginx_src_install() function in nginx.eclass for more details.
 #
-# This function has no effect after nginx-module_src_configure() has been
-# called.
-#
 # Example usage:
 # @CODE
 # ngx_mod_append_libs "-L/usr/$(get_libdir)/nginx/modules" \
@@ -195,7 +192,18 @@ ngx_mod_append_libs() {
debug-print-function "${FUNCNAME[0]}" "$@"
[[ $# -eq 0 ]] && return 0
 
-   export _NGINX_GENTOO_MOD_LIBS="${_NGINX_GENTOO_MOD_LIBS} $*"
+   local resp_file="${T}/append-libs-resp-file"
+
+   # Setup the response file. Make sure to do it only once.
+   if [[ -z ${_NGX_MOD_RESP_FILE_SET_UP} ]]; then
+   touch "${resp_file}" || die "touch failed"
+   export _NGINX_GENTOO_MOD_LIBS+=" @${resp_file}"
+   declare -g -r _NGX_MOD_RESP_FILE_SET_UP=1
+   fi
+
+   # If multiple arguments are passed, expand them as separate words so 
that
+   # printf prints separate arguments on separate lines.
+   printf '%s\n' "$@" >> "${resp_file}" || die "printf failed"
 }
 
 # @FUNCTION: ngx_mod_setup_link_modules
@@ -216,78 +224,9 @@ ngx_mod_setup_link_modules() {
 
local moddir
moddir="${EPREFIX}/usr/$(get_libdir)/nginx/modules"
-   # Add 'moddir' to the list of directories search by linker.
-   ngx_mod_append_libs "-L${moddir}"
-
-   # The string passed to ngx_mod_append_libs undergoes the following
-   # transformations by NGINX build system (the str variable denotes the
-   # original string and 'modname' represents the name of the current 
module):
-   # 0. Given the value of 'str':
-   # $ echo "${str}"
-   # -Wl,-rpath,'\''\$\${ORIGIN}'\''
-   #
-   # 1. In auto/module, line 93:
-   # eval ${modname}_libs=\'$str\'.
-   # yields
-   # modname_libs='-Wl,-rpath,'\''\$\${ORIGIN}'\'''
-   # which can be logically separated into
-   # (a) '-Wl,-rpath,'
-   # ^
-   # |
-   #   The first original single quote (\'$str\')
-   # ^
-   # |
-   #   This one
-   # (b) \' (backslash-escaped semicolon)
-   # (c) '\$\${ORIGIN}'
-   # (d) \'
-   # (e) ''
-   #  ^
-   #  |
-   #   The last original single quote (\'$str\')
-   #  ^
-   #  |
-   #   

[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 9f60bd05b57239f586594eebe7c8e1770a1c13ca
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb  1 16:25:18 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Feb 20 17:23:59 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f60bd05

go-module.eclass: Document _go-module_* as internal functions

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/go-module.eclass | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/eclass/go-module.eclass b/eclass/go-module.eclass
index 411d0cd8ea58..2399fb56e9a9 100644
--- a/eclass/go-module.eclass
+++ b/eclass/go-module.eclass
@@ -1,4 +1,4 @@
-# Copyright 2019-2025 Gentoo Authors
+# Copyright 2019-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: go-module.eclass
@@ -389,6 +389,7 @@ go-module_src_unpack() {
 }
 
 # @FUNCTION: _go-module_src_unpack_gosum
+# @INTERNAL
 # @DEPRECATED: none
 # @DESCRIPTION:
 # Populate a GOPROXY directory hierarchy with distfiles from EGO_SUM and
@@ -435,6 +436,7 @@ _go-module_src_unpack_gosum() {
 }
 
 # @FUNCTION: _go-module_gosum_synthesize_files
+# @INTERNAL
 # @DEPRECATED: none
 # @DESCRIPTION:
 # Given a path &  version, populate all Goproxy metadata files which aren't
@@ -463,6 +465,7 @@ _go-module_gosum_synthesize_files() {
 }
 
 # @FUNCTION: _go-module_src_unpack_verify_gosum
+# @INTERNAL
 # @DEPRECATED: none
 # @DESCRIPTION:
 # Validate the Go modules declared by EGO_SUM are sufficient to cover building



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: a014e9a79bd4c6c5b1ef6247327fc7e15f927d78
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:30:01 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 08:19:55 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a014e9a7

portability.eclass: Support EAPI 9

Acked-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/portability.eclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/eclass/portability.eclass b/eclass/portability.eclass
index 9efc9bfe4134..c583ebf7516c 100644
--- a/eclass/portability.eclass
+++ b/eclass/portability.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: portability.eclass
@@ -6,14 +6,14 @@
 # [email protected]
 # @AUTHOR:
 # Diego Pettenò 
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: This eclass is created to avoid using non-portable GNUisms inside 
ebuilds
 
 if [[ -z ${_PORTABILITY_ECLASS} ]]; then
 _PORTABILITY_ECLASS=1
 
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 10cd3af0dbcb6cb2ee3cb36658b9bfbc1d007908
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:29:47 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 09:08:25 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10cd3af0

libtool.eclass: Support EAPI 9

Acked-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/libtool.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/libtool.eclass b/eclass/libtool.eclass
index 18596a922307..de5656bfd2bb 100644
--- a/eclass/libtool.eclass
+++ b/eclass/libtool.eclass
@@ -4,7 +4,7 @@
 # @ECLASS: libtool.eclass
 # @MAINTAINER:
 # [email protected]
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: quickly update bundled libtool code
 # @DESCRIPTION:
 # This eclass patches ltmain.sh distributed with libtoolized packages with the
@@ -18,7 +18,7 @@ if [[ -z ${_LIBTOOL_ECLASS} ]]; then
 _LIBTOOL_ECLASS=1
 
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 6839bbb1e7ca3c8f7bebd63dd4df157f9e3cd7bc
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb  1 16:27:06 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Feb 20 17:24:01 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6839bbb1

pypi.eclass: Document _pypi_translate_version as internal function

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/pypi.eclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/eclass/pypi.eclass b/eclass/pypi.eclass
index 493abd8a95d9..d98fdc547d3d 100644
--- a/eclass/pypi.eclass
+++ b/eclass/pypi.eclass
@@ -119,6 +119,7 @@ pypi_normalize_name() {
 
 # @FUNCTION: _pypi_translate_version
 # @USAGE: 
+# @INTERNAL
 # @DESCRIPTION:
 # Internal version translation function, returns the result
 # via _PYPI_TRANSLATED_VERSION variable.



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Sam James
commit: 6509ad72eab0561ffdf39b6e8292c84898007450
Author: Zurab Kvachadze  gmail  com>
AuthorDate: Sun Feb  8 19:02:00 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Fri Feb 20 19:09:35 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6509ad72

nginx.eclass: Support EAPI 9

In EAPI 9, NGINX_SUPPORT_MODULE_STUBS is enabled unconditionally.

Signed-off-by: Zurab Kvachadze  gmail.com>
Signed-off-by: Sam James  gentoo.org>

 eclass/nginx.eclass | 20 ++--
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/eclass/nginx.eclass b/eclass/nginx.eclass
index 05576be94a42..fbe2ddaa8826 100644
--- a/eclass/nginx.eclass
+++ b/eclass/nginx.eclass
@@ -6,7 +6,7 @@
 # Zurab Kvachadze 
 # @AUTHOR:
 # Zurab Kvachadze 
-# @SUPPORTED_EAPIS: 8
+# @SUPPORTED_EAPIS: 8 9
 # @BLURB: Provides a common set of functions for building the NGINX server
 # @DESCRIPTION:
 # This eclass automates building, testing and installation of the NGINX server.
@@ -21,15 +21,20 @@
 #  - NGINX_TESTS_COMMIT
 # And 1 optional variable (see description):
 #  - NGINX_MISC_FILES
+#
+# EAPI porting notes:
+#  - 8 -> 9:
+#* NGINX_SUPPORT_MODULE_STUBS is enabled unconditionally.
+
+if [[ -z ${_NGINX_ECLASS} ]]; then
+_NGINX_ECLASS=1
 
 case ${EAPI} in
-   8) inherit eapi9-pipestatus ;;
+   8) inherit eapi9-pipestatus edo ;;
+   9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
-if [[ -z ${_NGINX_ECLASS} ]]; then
-_NGINX_ECLASS=1
-
 # The 60tmpfiles-paths install check produces QA warning if it does not detect
 # tmpfiles_process() in pkg_postinst(). Even though the tmpfiles_process() is
 # clearly called in nginx_pkg_postinst(), the QA check can not deal with
@@ -37,7 +42,7 @@ _NGINX_ECLASS=1
 # Nonetheless, it is possible to opt out from the QA check by setting the
 # TMPFILES_OPTIONAL variable.
 TMPFILES_OPTIONAL=1
-inherit edo multiprocessing perl-functions systemd toolchain-funcs tmpfiles
+inherit multiprocessing perl-functions systemd toolchain-funcs tmpfiles
 
 #-> ebuild-defined variables <-
 
@@ -228,6 +233,9 @@ has "${NGINX_UPDATE_STREAM}" 
"${NGX_UPDATE_STREAMS_LIST[@]}" ||
 # /etc/nginx/modules-{available,enabled} and to make the default config load
 # .conf stubs from /etc/nginx/modules-enabled.  See nginx_src_install() for
 # details.
+#
+# In EAPI 9, the functionality is unconditionally enabled.
+[[ ${EAPI} != 8 ]] && readonly NGINX_SUPPORT_MODULE_STUBS=1
 
 #-> ebuild setup <-
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 18cf914fd15de09ae033e45e4b399cdb671e9d62
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:29:27 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 08:37:02 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=18cf914f

cdrom.eclass: Support EAPI 9

Acked-by: Ionen Wolkens  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/cdrom.eclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/eclass/cdrom.eclass b/eclass/cdrom.eclass
index c4d7d59beadb..73faa996b0c6 100644
--- a/eclass/cdrom.eclass
+++ b/eclass/cdrom.eclass
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: cdrom.eclass
 # @MAINTAINER:
 # [email protected]
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: Functions for CD-ROM handling
 # @DESCRIPTION:
 # Acquire CD(s) for those lovely CD-based emerges.  Yes, this violates
@@ -19,7 +19,7 @@ if [[ -z ${_CDROM_ECLASS} ]]; then
 _CDROM_ECLASS=1
 
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Sam James
commit: 0de39184a009f528d1d547f1ed03649fa6239351
Author: Sam James  gentoo  org>
AuthorDate: Sat Feb 21 18:21:40 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Sat Feb 21 18:22:08 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0de39184

toolchain.eclass: respect USE=pie for --enalble-host-pie

Bug: https://bugs.gentoo.org/970413
Signed-off-by: Sam James  gentoo.org>

 eclass/toolchain.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 8efe5417747b..d9b5d3eb03a8 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1852,7 +1852,7 @@ toolchain_src_configure() {
confgcc+=( $(use_enable pie default-pie) )
 
if tc_version_is_at_least 14.1 ${PV} || tc_version_is_at_least 
13.4.1_p20250814 ${PV} ; then
-   confgcc+=( --enable-host-pie )
+   confgcc+=( $(use_enable pie host-pie) )
fi
fi
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 2cc5ba09184fe30fd61ed0e00464e09f7852b936
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb  1 16:25:40 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Feb 20 17:24:00 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2cc5ba09

ninja-utils.eclass: Document _ninja_uses_jobserver as internal function

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/ninja-utils.eclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/eclass/ninja-utils.eclass b/eclass/ninja-utils.eclass
index 1ffb358d7fa1..34987a7b66b9 100644
--- a/eclass/ninja-utils.eclass
+++ b/eclass/ninja-utils.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: ninja-utils.eclass
@@ -73,6 +73,7 @@ case ${NINJA} in
 esac
 
 # @FUNCTION: _ninja_uses_jobserver
+# @INTERNAL
 # @DESCRIPTION:
 # Return true if current ${NINJA} has jobserver support and we have one
 # running (via MAKEFLAGS).



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 18657216e7acc90b3292e64bf96e1c8af4527220
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:29:40 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 08:24:10 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=18657216

gnuconfig.eclass: Support EAPI 9

Acked-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/gnuconfig.eclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/eclass/gnuconfig.eclass b/eclass/gnuconfig.eclass
index a7c9e1672f39..0fb27d4f6f02 100644
--- a/eclass/gnuconfig.eclass
+++ b/eclass/gnuconfig.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: gnuconfig.eclass
@@ -6,7 +6,7 @@
 # Sam James 
 # @AUTHOR:
 # Will Woods 
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: Refresh bundled gnuconfig files (config.guess, config.sub)
 # @DESCRIPTION:
 # This eclass is used to automatically update files that typically come with
@@ -20,7 +20,7 @@ if [[ -z ${_GNUCONFIG_ECLASS} ]] ; then
  _GNUCONFIG_CLASS=1
 
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Sam James
commit: 9d1d618bb5486786e951882d07e31515279ce277
Author: Zurab Kvachadze  gmail  com>
AuthorDate: Sun Feb  8 19:01:55 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Fri Feb 20 19:09:33 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9d1d618b

nginx.eclass: Use DESTDIR="${D}" instead of ${ED} in src_install()

All the other paths include ${EPREFIX} so setting DESTDIR to ${ED}
doubles ${EPREFIX}, leading  to bug 969036.

This commit sets DESTDIR="${D}" as it should have been from the
start[1].

[1]: 
https://wiki.gentoo.org/wiki/Project:Prefix/Technical_Documentation#The_variables_ED_and_EROOT

Closes: https://bugs.gentoo.org/969036
Signed-off-by: Zurab Kvachadze  gmail.com>
Signed-off-by: Sam James  gentoo.org>

 eclass/nginx.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/nginx.eclass b/eclass/nginx.eclass
index d52d9df7b085..a67da18edef8 100644
--- a/eclass/nginx.eclass
+++ b/eclass/nginx.eclass
@@ -762,7 +762,7 @@ nginx_src_test() {
 # and NGINX headers into '/usr/include/nginx'.
 nginx_src_install() {
debug-print-function "${FUNCNAME[0]}" "$@"
-   emake DESTDIR="${ED}" install
+   emake DESTDIR="${D}" install
keepdir "/usr/$(get_libdir)/nginx/modules"
 
keepdir /var/log/nginx



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 88edeac4eff9f84f30898d487ac2c5e66321dd61
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb  1 16:23:20 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Feb 20 17:23:57 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88edeac4

cargo.eclass: Document _cargo_set_crate_uris as internal function

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/cargo.eclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
index cbde35be727b..76d3b9a61a64 100644
--- a/eclass/cargo.eclass
+++ b/eclass/cargo.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: cargo.eclass
@@ -257,6 +257,7 @@ _cargo_check_initialized() {
 
 # @FUNCTION: _cargo_set_crate_uris
 # @USAGE: 
+# @INTERNAL
 # @DESCRIPTION:
 # Generates the URIs to put in SRC_URI to help fetch dependencies.
 # Constructs a list of crates from its arguments.



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: fee28edca81c8917bfba999056c6243edc8a3390
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb  1 16:28:19 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Feb 20 17:24:01 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fee28edc

rocm.eclass: Document _rocm_set_globals as internal function

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/rocm.eclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/eclass/rocm.eclass b/eclass/rocm.eclass
index c24666e33e8d..ab5ba75b34ca 100644
--- a/eclass/rocm.eclass
+++ b/eclass/rocm.eclass
@@ -1,4 +1,4 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: rocm.eclass
@@ -142,6 +142,7 @@ inherit flag-o-matic
 # @CODE
 
 # @FUNCTION: _rocm_set_globals
+# @INTERNAL
 # @DESCRIPTION:
 # Set global variables useful to ebuilds: IUSE, ROCM_REQUIRED_USE, and
 # ROCM_USEDEP, unless ROCM_SKIP_GLOBALS is set.



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 3fb60830e0b810222c277389b201e0d2fc50508a
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:29:27 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 09:08:23 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3fb60830

bash-completion-r1.eclass: Support EAPI 9

Acked-by: Arthur Zamarin  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/bash-completion-r1.eclass | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/eclass/bash-completion-r1.eclass b/eclass/bash-completion-r1.eclass
index 2220cb2be508..c120806edf37 100644
--- a/eclass/bash-completion-r1.eclass
+++ b/eclass/bash-completion-r1.eclass
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: bash-completion-r1.eclass
 # @MAINTAINER:
 # [email protected]
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: A few quick functions to install bash-completion files
 # @EXAMPLE:
 #
@@ -26,13 +26,13 @@
 if [[ -z ${_BASH_COMPLETION_R1_ECLASS} ]]; then
 _BASH_COMPLETION_R1_ECLASS=1
 
-inherit toolchain-funcs
-
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
+inherit toolchain-funcs
+
 # @FUNCTION: _bash-completion-r1_get_bashdir
 # @INTERNAL
 # @DESCRIPTION:



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Michał Górny
commit: 6792666cc4fc89d9df12c2598939117d3ff39775
Author: Michał Górny  gentoo  org>
AuthorDate: Mon Feb 23 20:24:38 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Mon Feb 23 20:49:12 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6792666c

llvm.org.eclass: Add 23.0.0_pre20260223 snapshot

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 49b23978c94c..5599ff20458b 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -72,6 +72,9 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
_LLVM_SOURCE_TYPE=snapshot
 
case ${PV} in
+   23.0.0_pre20260223)
+   
EGIT_COMMIT=0b95a494c90cb77a50415fb85196e1eb80f96a5d
+   ;;
23.0.0_pre20260214)

EGIT_COMMIT=ab25249e63aba72be5365e5dc08c8d3c34d23276
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: b5d8a48a9ec556e59baf53a2476fd8527aea05f6
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Jan 26 07:01:33 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 10:35:01 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b5d8a48a

elisp-common.eclass: Update NEED_EMACS

The minimum version in the tree is 26.3. Also update related comments.

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/elisp-common.eclass | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/eclass/elisp-common.eclass b/eclass/elisp-common.eclass
index 4870ef5b8db1..b07ceaf63ce7 100644
--- a/eclass/elisp-common.eclass
+++ b/eclass/elisp-common.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: elisp-common.eclass
@@ -25,21 +25,21 @@
 # When relying on the emacs USE flag, you need to add
 #
 # @CODE
-# emacs? ( >=app-editors/emacs-25.3:* )
+# emacs? ( >=app-editors/emacs-26.3:* )
 # @CODE
 #
 # to your DEPEND/RDEPEND line and use the functions provided here to
 # bring the files to the correct locations.
 #
-# If your package requires a minimum Emacs version, e.g. Emacs 26.1,
-# then the dependency should be on >=app-editors/emacs-26.1:* instead.
+# If your package requires a minimum Emacs version, e.g. Emacs 30.1,
+# then the dependency should be on >=app-editors/emacs-30.1:* instead.
 # Because the user can select the Emacs executable with eselect, you
 # should also make sure that the active Emacs version is sufficient.
 # The eclass will automatically ensure this if you assign variable
 # NEED_EMACS with the Emacs version, as in the following example:
 #
 # @CODE
-# NEED_EMACS=26.1
+# NEED_EMACS=30.1
 # @CODE
 #
 # Please note that this should be done only for packages that are known
@@ -206,7 +206,7 @@ EMACS=${EPREFIX}/usr/bin/emacs
 # @ECLASS_VARIABLE: EMACSFLAGS
 # @DESCRIPTION:
 # Flags for executing Emacs in batch mode.
-# These work for Emacs versions 18-24, so don't change them.
+# These work for Emacs versions 18 to 30, so don't change them.
 EMACSFLAGS="-batch -q --no-site-file"
 
 # @ECLASS_VARIABLE: BYTECOMPFLAGS
@@ -217,7 +217,7 @@ BYTECOMPFLAGS="-L ."
 # @ECLASS_VARIABLE: NEED_EMACS
 # @DESCRIPTION:
 # The minimum Emacs version required for the package.
-: "${NEED_EMACS:=25.3}"
+: "${NEED_EMACS:=26.3}"
 
 # @ECLASS_VARIABLE: _ELISP_EMACS_VERSION
 # @INTERNAL
@@ -234,7 +234,7 @@ elisp-emacs-version() {
local version ret tmout="timeout -k 5 55"
# Run without timeout if the command is not available
${tmout} true &>/dev/null || tmout=""
-   # The following will work for at least versions 18-24.
+   # The following will work for at least versions 18 to 30.
echo "(princ emacs-version)" >"${T}"/emacs-version.el
version=$(
# EMACS could be a microemacs variant that ignores the -batch



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 4b2ae2a72a1e1aaf4afebcffb1cc4a84cf0d7739
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:30:12 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 09:08:23 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b2ae2a7

shell-completion.eclass: Support EAPI 9

Acked-by: Arthur Zamarin  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/shell-completion.eclass | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/eclass/shell-completion.eclass b/eclass/shell-completion.eclass
index caccdee7b19b..c679ae4db983 100644
--- a/eclass/shell-completion.eclass
+++ b/eclass/shell-completion.eclass
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Gentoo Authors
+# Copyright 2023-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: shell-completion.eclass
@@ -7,7 +7,7 @@
 # Florian Schmaus 
 # @AUTHOR:
 # Alfred Wingate 
-# @SUPPORTED_EAPIS: 8
+# @SUPPORTED_EAPIS: 8 9
 # @PROVIDES: bash-completion-r1
 # @BLURB: a few quick functions to install various shell completion files
 # @DESCRIPTION:
@@ -15,14 +15,14 @@
 # for popular shells.  It inherits the already widely adopted
 # 'bash-completion-r1', thus extending on its functionality.
 
+if [[ -z ${_SHELL_COMPLETION_ECLASS} ]]; then
+_SHELL_COMPLETION_ECLASS=1
+
 case ${EAPI} in
-   8) ;;
+   8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported"
 esac
 
-if [[ -z ${_SHELL_COMPLETION_ECLASS} ]]; then
-_SHELL_COMPLETION_ECLASS=1
-
 # Extend bash-completion-r1
 inherit bash-completion-r1
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Sam James
commit: c8edc25b3fd40bd86168c8c4427da1ad60c01631
Author: Sam James  gentoo  org>
AuthorDate: Mon Feb 23 00:31:01 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Mon Feb 23 00:31:01 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c8edc25b

toolchain.eclass: hoist libada condition up

Followup to 39a3781ddc4431b2485852a56a1fe2971fe2b86d.

Bug: https://bugs.gentoo.org/970098
Signed-off-by: Sam James  gentoo.org>

 eclass/toolchain.eclass | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 02cec10e2768..b77c0b69aab5 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1427,6 +1427,10 @@ toolchain_src_configure() {
;;
esac
 
+   if in_iuse ada ; then
+   confgcc+=( $(use_enable ada libada) )
+   fi
+
### Cross-compiler option
#
# Note that 'newlib' here doesn't have to mean genuine newlib.
@@ -1781,10 +1785,6 @@ toolchain_src_configure() {
fi
fi
 
-   if in_iuse ada ; then
-   confgcc+=( $(use_enable ada libada) )
-   fi
-
if in_iuse cet ; then
# Usage: triple_arch triple_env cet_name
enable_cet_for() {



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: e093daba47a46aff9173b7795dbe9e265a7ab71e
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb  1 16:23:48 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Feb 20 17:23:58 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e093daba

ecm.eclass: Document _ecm_handbook_optional as internal function

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/ecm.eclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/eclass/ecm.eclass b/eclass/ecm.eclass
index b7c20c63aab1..f656a6559ffd 100644
--- a/eclass/ecm.eclass
+++ b/eclass/ecm.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: ecm.eclass
@@ -335,6 +335,7 @@ RDEPEND+=" ${COMMONDEPEND}"
 unset COMMONDEPEND
 
 # @FUNCTION: _ecm_handbook_optional
+# @INTERNAL
 # @DESCRIPTION:
 # Use with ECM_HANDBOOK=optional; ticks either -DBUILD_DOC if available,
 # or -DCMAKE_DISABLE_FIND_PACKAGE_KF${_KFSLOT}DocTools



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Sam James
commit: 234737cc635d22a7327fcde7f655dd9f54408aab
Author: Zurab Kvachadze  gmail  com>
AuthorDate: Sun Feb  8 19:01:53 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Fri Feb 20 19:09:33 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=234737cc

nginx-module.eclass: Handle config's with no terminating LF in src_prepare

Prepend the line calling `mv` with a newline to handle the scripts with
no terminating newline, e.g. this[1].

[1]: 
https://github.com/dvershinin/nginx_accept_language_module/blob/master/config

Closes: https://bugs.gentoo.org/967172
Signed-off-by: Zurab Kvachadze  gmail.com>
Signed-off-by: Sam James  gentoo.org>

 eclass/nginx-module.eclass | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/eclass/nginx-module.eclass b/eclass/nginx-module.eclass
index c28ff5e316d2..49ccf04cacc8 100644
--- a/eclass/nginx-module.eclass
+++ b/eclass/nginx-module.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: nginx-module.eclass
@@ -642,11 +642,13 @@ nginx-module_src_prepare() {
sed -i -e '1i\' -e ': > build/ngx_auto_config.h' config ||
{ eend $? || die "sed failed"; }
 
-   echo 'mv build/ngx_auto_config.h build/__ngx_gentoo_mod_config.h' \
+   # Add one extra LF before the command in case the 'config' script does 
not
+   # have a trailing newline already.
+   printf "\n%s\n" 'mv build/ngx_auto_config.h 
build/__ngx_gentoo_mod_config.h' \
>> config
-   # We specifically need the $? of echo.
+   # We specifically need the $? of printf.
# shellcheck disable=SC2320
-   eend $? || die "echo failed"
+   eend $? || die "printf failed"
 
# cd into module root and apply patches.
pushd "${NGINX_MOD_S}" >/dev/null || die "pushd failed"



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 4fcb75e8555f3649bc3c945d65ad8baf1107f986
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:30:02 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 08:19:56 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4fcb75e8

preserve-libs.eclass: Support EAPI 9

Acked-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/preserve-libs.eclass | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/eclass/preserve-libs.eclass b/eclass/preserve-libs.eclass
index e97e3f846a09..03d74b2660c1 100644
--- a/eclass/preserve-libs.eclass
+++ b/eclass/preserve-libs.eclass
@@ -1,17 +1,17 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: preserve-libs.eclass
 # @MAINTAINER:
 # [email protected]
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: preserve libraries after SONAME changes
 
 if [[ -z ${_PRESERVE_LIBS_ECLASS} ]]; then
 _PRESERVE_LIBS_ECLASS=1
 
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Sam James
commit: eb9ab5af65cc7618278241fddb3729730b7507fc
Author: Sam James  gentoo  org>
AuthorDate: Sat Feb 21 20:11:49 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Sat Feb 21 20:12:53 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eb9ab5af

toolchain.eclass: workaround broken disable configure logic for pie/bind-now

Pass --enable-* if the USE flag is enabled, but don't pass --disable-*
if it is disabled to workaround broken configure logic. I have a patch
for trunk to fix this but backporting that will be a bit of a pain and
not worth it IMO, so let's carry this for now and can conditionalise it
on version later when fix lands upstream.

Closes: https://bugs.gentoo.org/970413
Signed-off-by: Sam James  gentoo.org>

 eclass/toolchain.eclass | 18 +-
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index d9b5d3eb03a8..02cec10e2768 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1849,19 +1849,27 @@ toolchain_src_configure() {
fi
 
if in_iuse pie ; then
-   confgcc+=( $(use_enable pie default-pie) )
+   # Workaround for broken configure logic (bug #970413)
+   if use pie ; then
+   confgcc+=( --enable-default-pie )
+   fi
 
if tc_version_is_at_least 14.1 ${PV} || tc_version_is_at_least 
13.4.1_p20250814 ${PV} ; then
-   confgcc+=( $(use_enable pie host-pie) )
+   # Workaround for broken configure logic (bug #970413)
+   if use pie ; then
+   confgcc+=( --enable-host-pie )
+   fi
fi
fi
 
if in_iuse default-znow && { tc_version_is_at_least 14.1 ${PV} || 
tc_version_is_at_least 13.4.1_p20250814 ${PV} ; } ; then
# See 
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=33ebb0dff9bb022f1e0709e0e73faabfc3df7931.
# TODO: Add to LDFLAGS_FOR_TARGET?
-   confgcc+=(
-   $(use_enable default-znow host-bind-now)
-   )
+   #
+   # Workaround for broken configure logic (bug #970413)
+   if use default-znow ; then
+   confgcc+=( --enable-host-bind-now )
+   fi
fi
 
if in_iuse ssp ; then



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Michał Górny
commit: ea025af0fe09477a4d270af1222bd6c7678961af
Author: Michał Górny  gentoo  org>
AuthorDate: Sat Feb 21 09:43:24 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Sat Feb 21 09:51:23 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ea025af0

kernel-build.eclass: Require sys-libs/binutils-libs for 6.19+

Bug: https://bugs.gentoo.org/970319
Signed-off-by: Michał Górny  gentoo.org>

 eclass/kernel-build.eclass | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass
index 713f132a4bd2..722dbcb7e270 100644
--- a/eclass/kernel-build.eclass
+++ b/eclass/kernel-build.eclass
@@ -56,6 +56,12 @@ BDEPEND="
riscv? ( sys-apps/dtc )
 "
 
+if ver_test -ge 6.19; then
+   BDEPEND+="
+   sys-libs/binutils-libs
+   "
+fi
+
 IUSE="+strip modules-sign"
 REQUIRED_USE="secureboot? ( modules-sign )"
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Sam James
commit: d8bea82f2fc1a51972d930b62daa75fade970d5e
Author: Zurab Kvachadze  gmail  com>
AuthorDate: Sun Feb  8 19:01:54 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Fri Feb 20 19:09:33 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d8bea82f

nginx{,-module}.eclass: Return 0 in econf_ngx() if $1 == --help

Previously, contrary to what was written, the function exited with the
exit code of ./configure (which is 1 if --help is passed). This commit
makes the function return 0 explicitly.

Signed-off-by: Zurab Kvachadze  gmail.com>
Signed-off-by: Sam James  gentoo.org>

 eclass/nginx-module.eclass | 2 +-
 eclass/nginx.eclass| 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/nginx-module.eclass b/eclass/nginx-module.eclass
index 49ccf04cacc8..0ab4a64dccb6 100644
--- a/eclass/nginx-module.eclass
+++ b/eclass/nginx-module.eclass
@@ -115,7 +115,7 @@ econf_ngx() {
#
# Executing this without edo gets rid of the "Failed to run" 
message.
./configure "$@"
-   return
+   return 0
fi
edo ./configure "$@"
 }

diff --git a/eclass/nginx.eclass b/eclass/nginx.eclass
index ec3320d3f573..d52d9df7b085 100644
--- a/eclass/nginx.eclass
+++ b/eclass/nginx.eclass
@@ -273,7 +273,7 @@ econf_ngx() {
#
# Executing this without edo gets rid of the "Failed to run" 
message.
./configure "$@"
-   return
+   return 0
fi
edo ./configure "$@"
 }



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 99ab39a4c9e7f7c1f6277032ea391f6045ffc751
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:30:15 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 09:08:22 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=99ab39a4

toolchain-funcs.eclass: Support EAPI 9

Acked-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/toolchain-funcs.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
index 24eba4a4f572..89da26b867b1 100644
--- a/eclass/toolchain-funcs.eclass
+++ b/eclass/toolchain-funcs.eclass
@@ -4,7 +4,7 @@
 # @ECLASS: toolchain-funcs.eclass
 # @MAINTAINER:
 # Toolchain Ninjas 
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: functions to query common info about the toolchain
 # @DESCRIPTION:
 # The toolchain-funcs aims to provide a complete suite of functions
@@ -17,7 +17,7 @@ if [[ -z ${_TOOLCHAIN_FUNCS_ECLASS} ]]; then
 _TOOLCHAIN_FUNCS_ECLASS=1
 
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: d67e5f688cd82820edcbb5a712e2c8964d7d3be3
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb  1 16:28:40 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Feb 20 17:24:02 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d67e5f68

rust.eclass: Document _get_rust_slot as internal function

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/rust.eclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/eclass/rust.eclass b/eclass/rust.eclass
index 389916a0780a..bd00c436598f 100644
--- a/eclass/rust.eclass
+++ b/eclass/rust.eclass
@@ -331,6 +331,7 @@ unset -f _rust_set_globals
 
 # @FUNCTION: _get_rust_slot
 # @USAGE: [-b|-d]
+# @INTERNAL
 # @DESCRIPTION:
 # Find the newest Rust install that is acceptable for the package,
 # and export its version (i.e. SLOT) and type (source or bin[ary])



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 10233b8dfde85710ef174f16bbda52f452ef596d
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb  1 16:24:13 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Feb 20 17:23:59 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10233b8d

font.eclass: Document _update_fontcache as internal function

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/font.eclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/eclass/font.eclass b/eclass/font.eclass
index 3d2578172bc9..f0261ad05dd6 100644
--- a/eclass/font.eclass
+++ b/eclass/font.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: font.eclass
@@ -216,6 +216,7 @@ font_src_install() {
 }
 
 # @FUNCTION: _update_fontcache
+# @INTERNAL
 # @DESCRIPTION:
 # Updates fontcache if !prefix and media-libs/fontconfig installed
 _update_fontcache() {



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 039d53fd1a7fa56fbf0eb4fe2fe3f57ed084
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:29:23 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 08:19:55 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=039d53fd

edo.eclass: Support EAPI 9

EAPI 9 supports the edo command, so there is no need to define it in
the eclass any more. Make its definition conditional on EAPI 7 or 8.

Acked-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/edo.eclass | 20 
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/eclass/edo.eclass b/eclass/edo.eclass
index a308851aca7f..fdb2cea8ad62 100644
--- a/eclass/edo.eclass
+++ b/eclass/edo.eclass
@@ -6,11 +6,12 @@
 # QA Team 
 # @AUTHOR:
 # Sam James 
-# @SUPPORTED_EAPIS: 7 8
-# @BLURB: Convenience function to run commands verbosely and die on failure
+# @SUPPORTED_EAPIS: 7 8 9
+# @BLURB: convenience function to run commands verbosely and die on failure
 # @DESCRIPTION:
-# This eclass provides the 'edo' command, and an 'edob' variant for 
ebegin/eend,
-# which logs the command used verbosely and dies (exits) on failure.
+# This eclass provides the 'edo' command in EAPIs 7 and 8, and an 'edob'
+# variant for ebegin/eend, which logs the command used verbosely and
+# dies (exits) on failure.
 #
 # The 'edo' command should be used only where needed to give a more verbose 
log,
 # e.g. for invoking non-standard ./configure scripts, or building
@@ -22,14 +23,16 @@
 # those commands produce output.  The 'edob' command will suppress the
 # command's output and only present it if the command returned with a
 # non-zero exit status.
-case ${EAPI} in
-   7|8) ;;
-   *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
-esac
 
 if [[ -z ${_EDO_ECLASS} ]] ; then
 _EDO_ECLASS=1
 
+case ${EAPI} in
+   7|8|9) ;;
+   *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
+esac
+
+if [[ ${EAPI} = [78] ]]; then
 # @FUNCTION: edo
 # @USAGE:  [...]
 # @DESCRIPTION:
@@ -57,6 +60,7 @@ edo() {
printf '%s\n' "${out:1}" >&2
"$@" || die -n "Failed to run command: ${1}"
 }
+fi
 
 # @FUNCTION: edob
 # @USAGE: [-l ] [-m ]  [...]



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Michał Górny
commit: b73af2e762c84e0f31f84ce3117647189618e8c0
Author: Michał Górny  gentoo  org>
AuthorDate: Mon Feb 23 20:24:04 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Mon Feb 23 20:49:12 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b73af2e7

llvm.org.eclass: Remove old snapshot

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index e6e377833365..49b23978c94c 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -75,9 +75,6 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
23.0.0_pre20260214)

EGIT_COMMIT=ab25249e63aba72be5365e5dc08c8d3c34d23276
;;
-   23.0.0_pre20260207)
-   
EGIT_COMMIT=8d2078332c23b10dcf3571adc1a186e5c65f82df
-   ;;
*)
die "Unknown snapshot: ${PV}"
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 1d3eb2038cd5435ee997451db8a538d56d0d4c1d
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:29:26 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 09:08:25 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d3eb203

autotools.eclass: Support EAPI 9

Acked-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/autotools.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/autotools.eclass b/eclass/autotools.eclass
index 1866bb5fa629..04a0bb15a3c7 100644
--- a/eclass/autotools.eclass
+++ b/eclass/autotools.eclass
@@ -4,7 +4,7 @@
 # @ECLASS: autotools.eclass
 # @MAINTAINER:
 # [email protected]
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: Regenerates auto* build scripts
 # @DESCRIPTION:
 # This eclass is for safely handling autotooled software packages that need to
@@ -27,7 +27,7 @@ if [[ -z ${_AUTOTOOLS_ECLASS} ]] ; then
 _AUTOTOOLS_ECLASS=1
 
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 80dc363ca1d8f9bc4ed70eef6e7116492faec49e
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Feb 21 09:30:48 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 09:30:48 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=80dc363c

Revert "bash-completion-r1.eclass: Support EAPI 9"

This reverts commit 3fb60830e0b810222c277389b201e0d2fc50508a.

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/bash-completion-r1.eclass | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/eclass/bash-completion-r1.eclass b/eclass/bash-completion-r1.eclass
index c120806edf37..2220cb2be508 100644
--- a/eclass/bash-completion-r1.eclass
+++ b/eclass/bash-completion-r1.eclass
@@ -1,10 +1,10 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: bash-completion-r1.eclass
 # @MAINTAINER:
 # [email protected]
-# @SUPPORTED_EAPIS: 7 8 9
+# @SUPPORTED_EAPIS: 7 8
 # @BLURB: A few quick functions to install bash-completion files
 # @EXAMPLE:
 #
@@ -26,13 +26,13 @@
 if [[ -z ${_BASH_COMPLETION_R1_ECLASS} ]]; then
 _BASH_COMPLETION_R1_ECLASS=1
 
+inherit toolchain-funcs
+
 case ${EAPI} in
-   7|8|9) ;;
+   7|8) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
-inherit toolchain-funcs
-
 # @FUNCTION: _bash-completion-r1_get_bashdir
 # @INTERNAL
 # @DESCRIPTION:



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: e32e40f19f2417601c8c881780429aeade00c59f
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Dec 17 15:29:29 2025 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 21 09:08:24 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e32e40f1

crossdev.eclass: Support EAPI 9

Acked-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/crossdev.eclass | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/eclass/crossdev.eclass b/eclass/crossdev.eclass
index d6c99e4f32b7..bf9eab279bc6 100644
--- a/eclass/crossdev.eclass
+++ b/eclass/crossdev.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: crossdev.eclass
@@ -6,19 +6,19 @@
 # [email protected]
 # @AUTHOR:
 # Alfred Persson Forsberg  (21 Jul 2023)
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: Convenience wrappers for packages used by the Crossdev tool.
 
 inherit toolchain-funcs
 
+if [[ -z ${_CROSSDEV_ECLASS} ]]; then
+_CROSSDEV_ECLASS=1
+
 case ${EAPI} in
-   7|8) ;;
+   7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
-if [[ -z ${_CROSSDEV_ECLASS} ]]; then
-_CROSSDEV_ECLASS=1
-
 # @ECLASS_VARIABLE: _CROSS_CATEGORY_PREFIX
 # @INTERNAL
 # @DESCRIPTION:



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Ulrich Müller
commit: 11f1705e0f0f77eb56e213719594331745f3938f
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb 22 20:38:08 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Feb 22 20:38:08 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11f1705e

Revert "edo.eclass: Support EAPI 9"

Making the edo() definition conditional on EAPI caused a spurious
pkgcheck warning in EAPI 8. Therefore reverting for now.

This reverts commit 039d53fd1a7fa56fbf0eb4fe2fe3f57ed084.

Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/edo.eclass | 20 
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/eclass/edo.eclass b/eclass/edo.eclass
index fdb2cea8ad62..a308851aca7f 100644
--- a/eclass/edo.eclass
+++ b/eclass/edo.eclass
@@ -6,12 +6,11 @@
 # QA Team 
 # @AUTHOR:
 # Sam James 
-# @SUPPORTED_EAPIS: 7 8 9
-# @BLURB: convenience function to run commands verbosely and die on failure
+# @SUPPORTED_EAPIS: 7 8
+# @BLURB: Convenience function to run commands verbosely and die on failure
 # @DESCRIPTION:
-# This eclass provides the 'edo' command in EAPIs 7 and 8, and an 'edob'
-# variant for ebegin/eend, which logs the command used verbosely and
-# dies (exits) on failure.
+# This eclass provides the 'edo' command, and an 'edob' variant for 
ebegin/eend,
+# which logs the command used verbosely and dies (exits) on failure.
 #
 # The 'edo' command should be used only where needed to give a more verbose 
log,
 # e.g. for invoking non-standard ./configure scripts, or building
@@ -23,16 +22,14 @@
 # those commands produce output.  The 'edob' command will suppress the
 # command's output and only present it if the command returned with a
 # non-zero exit status.
-
-if [[ -z ${_EDO_ECLASS} ]] ; then
-_EDO_ECLASS=1
-
 case ${EAPI} in
-   7|8|9) ;;
+   7|8) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
-if [[ ${EAPI} = [78] ]]; then
+if [[ -z ${_EDO_ECLASS} ]] ; then
+_EDO_ECLASS=1
+
 # @FUNCTION: edo
 # @USAGE:  [...]
 # @DESCRIPTION:
@@ -60,7 +57,6 @@ edo() {
printf '%s\n' "${out:1}" >&2
"$@" || die -n "Failed to run command: ${1}"
 }
-fi
 
 # @FUNCTION: edob
 # @USAGE: [-l ] [-m ]  [...]



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-24 Thread Sam James
commit: aac8ca733d7f3932fd1b38503b6ffe565beecfc4
Author: Zurab Kvachadze  gmail  com>
AuthorDate: Sun Feb  8 19:02:01 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Fri Feb 20 19:09:35 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aac8ca73

nginx-module.eclass: Support EAPI 9

In EAPI 9, NGINX_MOD_S is completely removed/banned and
NGINX_MOD_INSTALL_CONF_STUB is enabled unconditionally.

Signed-off-by: Zurab Kvachadze  gmail.com>
Signed-off-by: Sam James  gentoo.org>

 eclass/nginx-module.eclass | 47 --
 1 file changed, 33 insertions(+), 14 deletions(-)

diff --git a/eclass/nginx-module.eclass b/eclass/nginx-module.eclass
index 59a2aa7ce262..f58d4471e90f 100644
--- a/eclass/nginx-module.eclass
+++ b/eclass/nginx-module.eclass
@@ -6,7 +6,7 @@
 # Zurab Kvachadze 
 # @AUTHOR:
 # Zurab Kvachadze 
-# @SUPPORTED_EAPIS: 8
+# @SUPPORTED_EAPIS: 8 9
 # @BLURB: Provides a common set of functions for building NGINX's dynamic 
modules
 # @DESCRIPTION:
 # The nginx-module.eclass automates configuring, building and installing 
NGINX's
@@ -82,16 +82,22 @@
 # nginx-module_src_configure
 # }
 # @CODE
+#
+# EAPI porting notes:
+#   - 8 -> 9:
+# * NGINX_MOD_S is removed completely. Eclass die's if its set.
+# * NGINX_MOD_INSTALL_CONF_STUB is enabled unconditionally.
+
+if [[ -z ${_NGINX_MODULE_ECLASS} ]]; then
+_NGINX_MODULE_ECLASS=1
 
 case ${EAPI} in
-   8) ;;
+   8) inherit edo ;;
+   9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
-if [[ -z ${_NGINX_MODULE_ECLASS} ]]; then
-_NGINX_MODULE_ECLASS=1
-
-inherit edo flag-o-matic toolchain-funcs
+inherit flag-o-matic toolchain-funcs
 
 #-> Generic helper functions <-
 
@@ -312,17 +318,25 @@ ngx_mod_link_lib() {
 # @ECLASS_VARIABLE: NGINX_MOD_S
 # @DEPRECATED: S
 # @DESCRIPTION:
-# This variable is deprecated.  ${S} must be used directly instead.
+# This variable is deprecated in EAPI 8 and banned in EAPI 9.  ${S} must be 
used
+# directly instead.
 #
 # Deprecated description:
 # Holds the path to the module source directory, used in various phase
 # functions.  If unset at the time of inherit, defaults to ${S}.
 if [[ -n ${NGINX_MOD_S} ]]; then
-   eqawarn "\${NGINX_MOD_S} will be removed in EAPI 9 and must not be 
used."
-   eqawarn "Use \${S} directly instead."
-   # Backwards compatibility stub for modules redefining module's source 
path
-   # via ${NGINX_MOD_S}.
-   S="${NGINX_MOD_S}"
+   case "${EAPI}" in
+   8)
+   eqawarn "\${NGINX_MOD_S} will be removed in EAPI 9 and 
must not be used."
+   eqawarn "Use \${S} directly instead."
+   # Backwards compatibility stub for modules redefining 
module's
+   # source path via ${NGINX_MOD_S}.
+   S="${NGINX_MOD_S}"
+   ;;
+   *)
+   die "\${NGINX_MOD_S} has been removed in EAPI 9. Use 
\${S} directly instead."
+   ;;
+   esac
 fi
 
 # @ECLASS_VARIABLE: NGINX_MOD_CONFIG_DIR
@@ -483,6 +497,10 @@ declare -g -A NGX_MOD_TO_SONAME+=(
 # Set to a non-empty value before calling nginx-module_src_install() to 
generate
 # and install load_module .conf stub(s) for the package.  See
 # nginx-module_src_install() for details.
+#
+# In EAPI 9, the functionality is enabled unconditionally, unless
+# NGINX_MOD_DONT_INSTALL_CONF_STUB is set to a non-empty value.
+[[ ${EAPI} != 8 ]] && readonly NGINX_MOD_INSTALL_CONF_STUB=1
 
 # @ECLASS_VARIABLE: NGINX_MOD_DONT_INSTALL_CONF_STUB
 # @DEFAULT_UNSET
@@ -812,8 +830,9 @@ nginx-module_src_install() {
doins "${NGINX_S}"/build/*.so
 
# Install stub configuration files only if NGINX_MOD_INSTALL_CONF_STUB 
is
-   # set and NGINX_MOD_DONT_INSTALL_CONF_STUB is not set. The latter is 
used by
-   # modules like ngx_devel_kit which are not meant to be enabled manually.
+   # set (or EAPI is 9) and NGINX_MOD_DONT_INSTALL_CONF_STUB is not set. 
The
+   # latter is used by modules like ngx_devel_kit which are not meant to be
+   # enabled manually.
if [[ -n ${NGINX_MOD_INSTALL_CONF_STUB} &&
-z ${NGINX_MOD_DONT_INSTALL_CONF_STUB} ]]; then
local mod



[gentoo-commits] repo/gentoo:master commit in: eclass/, www-nginx/ngx_devel_kit/

2026-02-24 Thread Sam James
commit: a092b9b43be485ef7b79c65f19f12d913109a9b4
Author: Zurab Kvachadze  gmail  com>
AuthorDate: Sun Feb  8 19:01:59 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Fri Feb 20 19:09:35 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a092b9b4

nginx-module.eclass: Autogenerate load_module .conf config stubs

This commit improves the UX of nginx-module.eclass by adding automatic
generation of NGINX configurations stubs which load their repsective
modules. The stub is only generated if NGINX_MOD_INSTALL_CONF_STUB is
set.

With the stub installed, only one invocation of `ln` is necessary to
enable the module. There is current work in progress on a more
convenient way to toggle modules, i.e. eselect module.

Bug: https://bugs.gentoo.org/967022
Signed-off-by: Zurab Kvachadze  gmail.com>
Signed-off-by: Sam James  gentoo.org>

 eclass/nginx-module.eclass | 88 ++
 www-nginx/ngx_devel_kit/ngx_devel_kit-0.3.4.ebuild |  1 +
 2 files changed, 76 insertions(+), 13 deletions(-)

diff --git a/eclass/nginx-module.eclass b/eclass/nginx-module.eclass
index c470fcb5f00c..59a2aa7ce262 100644
--- a/eclass/nginx-module.eclass
+++ b/eclass/nginx-module.eclass
@@ -11,9 +11,11 @@
 # @DESCRIPTION:
 # The nginx-module.eclass automates configuring, building and installing 
NGINX's
 # dynamic modules.  Using this eclass is as simple as calling 'inherit 
nginx-module'.
-# This eclass automatically adds dependencies on www-servers/nginx.  
Henceforth,
-# the terms 'package' and 'module' will be used interchangeably to refer to a
-# consumer of nginx-module.eclass.
+# This eclass automatically adds dependencies on www-servers/nginx.
+# Additionally, NGINX_MOD_INSTALL_CONF_STUB may be set to automatically 
generate
+# load_module .conf stubs for NGINX.  Henceforth, the terms 'package' and
+# 'module' will be used interchangeably to refer to a consumer of
+# nginx-module.eclass.
 #
 # If a part of package's functionality depends on NGINX configuration (e.g. 
HMAC
 # generation support depending on http_ssl module being present), the
@@ -221,7 +223,6 @@ ngx_mod_setup_link_modules() {
# Check whether this function has already been called.
[[ -n ${_NGX_MOD_SETUP_LINK_CALLED} ]] && return 0
declare -g -r _NGX_MOD_SETUP_LINK_CALLED=1
-
local moddir
moddir="${EPREFIX}/usr/$(get_libdir)/nginx/modules"
# Add 'moddir' to the list of directories search by linker and add 
'moddir'
@@ -476,6 +477,25 @@ declare -g -A NGX_MOD_TO_SONAME+=(
 # Has no effect if either NGINX_MOD_OPENRESTY_TESTS or 
NGINX_MOD_TEST_LOAD_ORDER
 # are not set.
 
+# @ECLASS_VARIABLE: NGINX_MOD_INSTALL_CONF_STUB
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Set to a non-empty value before calling nginx-module_src_install() to 
generate
+# and install load_module .conf stub(s) for the package.  See
+# nginx-module_src_install() for details.
+
+# @ECLASS_VARIABLE: NGINX_MOD_DONT_INSTALL_CONF_STUB
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Set to a non-empty value before calling nginx-module_src_install() to NOT
+# generate load_module .conf stub(s) for the package.  Setting this variable
+# also disables displaying instructions on how to enable the module in
+# nginx-module_pkg_postinst().
+#
+# Setting this might be useful for modules that are not meant to be used
+# directly, for example ngx_devel_kit.  See nginx-module_src_install() for
+# details.
+
 #-> *DEPEND stuff <-
 
 # As per upstream documentation, modules must be rebuilt with each NGINX
@@ -780,10 +800,34 @@ nginx-module_src_test() {
 # @FUNCTION: nginx-module_src_install
 # @DESCRIPTION:
 # Installs the compiled module(s) into /usr/${libdir}/nginx/modules.
+#
+# Autogenerates load_module .conf stub(s) and installs them into
+# /etc/nginx/modules-available.  Afterwards, the installed modules can be
+# conveniently enabled or disabled by adding or removing symlinks to
+# modules-available from /etc/nginx/modules-enabled.  See nginx_src_install() 
in
+# nginx.eclass for more details on how NGINX loads these stubs.
 nginx-module_src_install() {
debug-print-function "${FUNCNAME[0]}" "$@"
insinto "/usr/$(get_libdir)/nginx/modules"
doins "${NGINX_S}"/build/*.so
+
+   # Install stub configuration files only if NGINX_MOD_INSTALL_CONF_STUB 
is
+   # set and NGINX_MOD_DONT_INSTALL_CONF_STUB is not set. The latter is 
used by
+   # modules like ngx_devel_kit which are not meant to be enabled manually.
+   if [[ -n ${NGINX_MOD_INSTALL_CONF_STUB} &&
+   -z ${NGINX_MOD_DONT_INSTALL_CONF_STUB} ]]; then
+   local mod
+   local destdir=etc/nginx/modules-available
+   insinto "${destdir}"
+   # Create configuration stub for every module in 
NGINX_MOD_SHARED_OBJECTS.
+   for mod in "${NGINX_MOD_SHARED_OBJECTS[@]}"; do
+   newins - "${mod%.so}.conf" <<- EOF
+   

[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-17 Thread Sam James
commit: a53efb101e9aff8ed79bdbc42bd235d078d4b78a
Author: Sam James  gentoo  org>
AuthorDate: Tue Feb 17 09:50:48 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Tue Feb 17 09:52:35 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a53efb10

toolchain.eclass: re-enable default build IDs

Build IDs have several uses, mainly for debugging:
* gdb's index-cache needs it
* debuginfod requires it which is important for both self-hosted binhosts & the
  official binhost if we want to provide binpkgs there (bug 728818)
* kde-plasma/drkonqi requires it
* Speeding up splitdebug use because verification that the binary matches
  the debug info is quicker
* Works around bug 917287 (because lookup is first done via
  /usr/lib/debug/.build-id/XXX where XXX is content-addressed, not path)
* Allows debugging binaries after they got upgraded

Portage has been updated to salt build IDs to avoid file collisions.

Bug: https://bugs.gentoo.org/917287
Bug: https://bugs.gentoo.org/967111
Closes: https://bugs.gentoo.org/953869
Signed-off-by: Sam James  gentoo.org>

 eclass/toolchain.eclass | 20 +---
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index b2756524286d..8efe5417747b 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1417,17 +1417,15 @@ toolchain_src_configure() {
confgcc+=( --disable-libstdcxx-pch )
fi
 
-   # build-id was disabled for file collisions: bug #526144
-   #
-   # # Turn on the -Wl,--build-id flag by default for ELF targets. bug 
#525942
-   # # This helps with locating debug files.
-   # case ${CTARGET} in
-   # *-linux-*|*-elf|*-eabi)
-   #   tc_version_is_at_least 4.5 && confgcc+=(
-   #   --enable-linker-build-id
-   #   )
-   #   ;;
-   # esac
+   # Turn on the -Wl,--build-id flag by default for ELF targets. bug 
#953869
+   # This helps with locating debug files.
+   case ${CTARGET} in
+   *-linux-*|*-elf|*-eabi)
+   tc_version_is_at_least 4.5 && confgcc+=(
+   --enable-linker-build-id
+   )
+   ;;
+   esac
 
### Cross-compiler option
#



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-16 Thread Sam James
commit: 39a3781ddc4431b2485852a56a1fe2971fe2b86d
Author: Sam James  gentoo  org>
AuthorDate: Tue Feb 17 04:07:47 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Tue Feb 17 04:08:09 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39a3781d

toolchain.eclass: disable libada for *-elf and *-eabi

Another attempt after 5ba1230cf8dad63a56381b7f48b3f27737813383.

Closes: https://bugs.gentoo.org/970098
Signed-off-by: Sam James  gentoo.org>

 eclass/toolchain.eclass | 14 +-
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index d09705afd165..b2756524286d 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1450,11 +1450,15 @@ toolchain_src_configure() {
;;
*-elf|*-eabi)
needed_libc=newlib
-   # Bare-metal targets don't have access to 
clock_gettime()
-   # arm-none-eabi example: bug #589672
-   # But we explicitly do --enable-libstdcxx-time 
above.
-   # Undoing it here.
-   confgcc+=( --disable-libstdcxx-time )
+   confgcc+=(
+   # Bare-metal targets don't have access 
to clock_gettime()
+   # arm-none-eabi example: bug #589672
+   # But we explicitly do 
--enable-libstdcxx-time above.
+   # Undoing it here.
+   --disable-libstdcxx-time
+   # bug #970098
+   --disable-libada
+   )
;;
*-gnu*)
needed_libc=glibc



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-16 Thread Sam James
commit: a56a01ff71e7d920a3b9f97c3af9fec2c14de671
Author: Sam James  gentoo  org>
AuthorDate: Tue Feb 17 04:06:08 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Tue Feb 17 04:06:08 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a56a01ff

Revert "toolchain.eclass: drop explicit --enable-libada passing"

This reverts commit 5ba1230cf8dad63a56381b7f48b3f27737813383.

Fix was ineffective because there doesn't seem to be logic for autodisabling
freestanding targets in upstream configure, so will do it manually as we
do in some other places.

Bug: https://bugs.gentoo.org/970098
Signed-off-by: Sam James  gentoo.org>

 eclass/toolchain.eclass | 4 
 1 file changed, 4 insertions(+)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 97b57411d9a1..d09705afd165 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1779,6 +1779,10 @@ toolchain_src_configure() {
fi
fi
 
+   if in_iuse ada ; then
+   confgcc+=( $(use_enable ada libada) )
+   fi
+
if in_iuse cet ; then
# Usage: triple_arch triple_env cet_name
enable_cet_for() {



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-15 Thread Sam James
commit: 5ba1230cf8dad63a56381b7f48b3f27737813383
Author: Sam James  gentoo  org>
AuthorDate: Sun Feb 15 09:21:25 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Sun Feb 15 09:21:25 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5ba1230c

toolchain.eclass: drop explicit --enable-libada passing

This breaks freestanding targets like arm-none-eabi.

Closes: https://bugs.gentoo.org/970098
Signed-off-by: Sam James  gentoo.org>

 eclass/toolchain.eclass | 4 
 1 file changed, 4 deletions(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index d09705afd165..97b57411d9a1 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1779,10 +1779,6 @@ toolchain_src_configure() {
fi
fi
 
-   if in_iuse ada ; then
-   confgcc+=( $(use_enable ada libada) )
-   fi
-
if in_iuse cet ; then
# Usage: triple_arch triple_env cet_name
enable_cet_for() {



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-14 Thread Michał Górny
commit: 4c693ccc7e9f772d3d1bac76b95cebf3c84ab8db
Author: Michał Górny  gentoo  org>
AuthorDate: Sat Feb 14 12:31:05 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Sat Feb 14 13:07:13 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c693ccc

llvm.org.eclass: Add 23.0.0_pre20260214 snapshot

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 64f7b1c075f0..e6e377833365 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -72,6 +72,9 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
_LLVM_SOURCE_TYPE=snapshot
 
case ${PV} in
+   23.0.0_pre20260214)
+   
EGIT_COMMIT=ab25249e63aba72be5365e5dc08c8d3c34d23276
+   ;;
23.0.0_pre20260207)

EGIT_COMMIT=8d2078332c23b10dcf3571adc1a186e5c65f82df
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-14 Thread Michał Górny
commit: 71f8d02ab201ab1bf5d82adcbf2e02fc63503fc3
Author: Michał Górny  gentoo  org>
AuthorDate: Sat Feb 14 12:30:27 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Sat Feb 14 13:07:13 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=71f8d02a

llvm.org.eclass: Remove 23.0.0_pre202601* snapshots

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 6 --
 1 file changed, 6 deletions(-)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 3ee656f48a96..64f7b1c075f0 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -75,12 +75,6 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
23.0.0_pre20260207)

EGIT_COMMIT=8d2078332c23b10dcf3571adc1a186e5c65f82df
;;
-   23.0.0_pre20260131)
-   
EGIT_COMMIT=424bebd9c784b8490e63290feeeceb42dfdaeb49
-   ;;
-   23.0.0_pre20260125)
-   
EGIT_COMMIT=9eaa1ff11ccde52f2e3bf86f253b6b646548c7cc
-   ;;
*)
die "Unknown snapshot: ${PV}"
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-13 Thread Matt Jolly
commit: 495b677b93f4cb1e1531657a762622268a22a7ac
Author: Matt Jolly  gentoo  org>
AuthorDate: Fri Feb 13 07:08:30 2026 +
Commit: Matt Jolly  gentoo  org>
CommitDate: Fri Feb 13 11:50:16 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=495b677b

rust.eclass: add 1.93.1

Signed-off-by: Matt Jolly  gentoo.org>

 eclass/rust.eclass | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/eclass/rust.eclass b/eclass/rust.eclass
index c1bc211b9453..389916a0780a 100644
--- a/eclass/rust.eclass
+++ b/eclass/rust.eclass
@@ -69,6 +69,7 @@ fi
 declare -A -g -r _RUST_LLVM_MAP=(
[""]=22
["1.94.0"]=21
+   ["1.93.1"]=21
["1.93.0"]=21
["1.92.0"]=21
["1.91.0"]=21
@@ -102,6 +103,7 @@ declare -A -g -r _RUST_LLVM_MAP=(
 declare -a -g -r _RUST_SLOTS_ORDERED=(
""
"1.94.0"
+   "1.93.1"
"1.93.0"
"1.92.0"
"1.91.0"



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-12 Thread Ionen Wolkens
commit: e9dcababf8eb2f85a5f4e057ed798bd6bd325021
Author: Ionen Wolkens  gentoo  org>
AuthorDate: Thu Feb 12 14:29:43 2026 +
Commit: Ionen Wolkens  gentoo  org>
CommitDate: Thu Feb 12 14:37:29 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e9dcabab

linux-mod-r1.eclass: drop list of sign algorithms in eclassdocs

Kernel 7.x is due to drop support for sha1 signing and, rather than
just cleanup that one, may as well remove the entire list so we will
not need to maintain it. Albeit still keep one example just to give
the idea of what is recognized.

(skipping dev ML for a basic docs-only change)

Signed-off-by: Ionen Wolkens  gentoo.org>

 eclass/linux-mod-r1.eclass | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/eclass/linux-mod-r1.eclass b/eclass/linux-mod-r1.eclass
index 3e6bd159819e..49ae882f7e95 100644
--- a/eclass/linux-mod-r1.eclass
+++ b/eclass/linux-mod-r1.eclass
@@ -1,4 +1,4 @@
-# Copyright 2023-2025 Gentoo Authors
+# Copyright 2023-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: linux-mod-r1.eclass
@@ -211,14 +211,12 @@ fi
 # @DEFAULT_UNSET
 # @DESCRIPTION:
 # Used with USE=modules-sign.  Can be set to hash algorithm to use
-# during signature generation.
+# during signature generation (e.g. sha512).
 #
 # Rather than set this, it is recommended to select using the kernel's
 # configuration to ensure proper support (e.g. CONFIG_MODULE_SIG_SHA256),
 # and then it will be auto-detected here.
 #
-# Valid values: sha512,sha384,sha256,sha224,sha1
-#
 # Default if unset: kernel CONFIG_MODULE_SIG_HASH's value
 
 # @ECLASS_VARIABLE: MODULES_SIGN_KEY



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-11 Thread Matt Jolly
commit: 52f126862408ba22fb15247c09af28c5e6cd8eb7
Author: Matt Jolly  gentoo  org>
AuthorDate: Wed Feb 11 06:43:06 2026 +
Commit: Matt Jolly  gentoo  org>
CommitDate: Wed Feb 11 14:26:34 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=52f12686

rust.eclass: add 1.93.0, 1.94.0; update 

Nightly has recently switched to LLVM 22

Signed-off-by: Matt Jolly  gentoo.org>

 eclass/rust.eclass | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/eclass/rust.eclass b/eclass/rust.eclass
index a13ea067dba3..c1bc211b9453 100644
--- a/eclass/rust.eclass
+++ b/eclass/rust.eclass
@@ -1,4 +1,4 @@
-# Copyright 2024-2025 Gentoo Authors
+# Copyright 2024-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: rust.eclass
@@ -67,7 +67,9 @@ fi
 # @DESCRIPTION:
 # Definitive list of Rust slots and the associated LLVM slot, newest first.
 declare -A -g -r _RUST_LLVM_MAP=(
-   [""]=21
+   [""]=22
+   ["1.94.0"]=21
+   ["1.93.0"]=21
["1.92.0"]=21
["1.91.0"]=21
["1.90.0"]=20
@@ -99,6 +101,8 @@ declare -A -g -r _RUST_LLVM_MAP=(
 # this array is used to store the Rust slots in a more convenient order for 
iteration.
 declare -a -g -r _RUST_SLOTS_ORDERED=(
""
+   "1.94.0"
+   "1.93.0"
"1.92.0"
"1.91.0"
"1.90.0"



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-10 Thread Ulrich Müller
commit: 2505df97c43b2a78a62a0b7f1415ad441caeb2da
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb  1 16:29:01 2026 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Feb 11 02:34:53 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2505df97

toolchain.eclass: Document _get_bootstrap_gcc_info as internal function

Acked-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 eclass/toolchain.eclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index f4d6130e3fe1..d09705afd165 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -900,6 +900,7 @@ setup_multilib_osdirnames() {
 
 # @FUNCTION: _get_bootstrap_gcc_info
 # @USAGE: [gcc_pkg|gcc_bin_base]...
+# @INTERNAL
 # @DESCRIPTION:
 # Get some information about the gcc that would be used to build this package.
 # All the variables that are passed as arguments will be set to their 
apropriate



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-09 Thread Sam James
commit: 220e84c85339d21f4d1d595c1c8351b386b63d52
Author: Sam James  gentoo  org>
AuthorDate: Tue Feb 10 04:14:48 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Tue Feb 10 04:18:58 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=220e84c8

sec-keys.eclass: fix src_test with expired subkeys

We need to keep expired subkeys in src_test too, otherwise we can
get spurious test failures both from the inconsistency vs src_compile
and it's also not a difference we care about either (and in fact losing
such an expired subkey could cause failures to verify some distfile).

Bug: https://bugs.gentoo.org/967745
Fixes: c74965ebc0f5455522979ae6470785a763d5706d
Reviewed-by: Eli Schwartz  gentoo.org>
Signed-off-by: Sam James  gentoo.org>

 eclass/sec-keys.eclass | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/eclass/sec-keys.eclass b/eclass/sec-keys.eclass
index 23b2f16a2b6e..ca1b4de57241 100644
--- a/eclass/sec-keys.eclass
+++ b/eclass/sec-keys.eclass
@@ -168,7 +168,11 @@ sec-keys_src_compile() {
 sec-keys_src_test() {
local -x GNUPGHOME=${WORKDIR}/gnupg
local key fingerprint name server
-   local gpg_command=(gpg --export-options export-minimal)
+   if has_version -b ">=app-crypt/gnupg-2.5.17"; then
+   local gpg_command=(gpg --export-options 
export-minimal,keep-expired-subkeys)
+   else
+   local gpg_command=(gpg --export-options export-minimal)
+   fi
 
# Best-effort attempt to check for updates. keyservers can and usually
# do fail for weird reasons, (such as being unable to import a key



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-09 Thread Nowa Ammerlaan
commit: 9f427cc6572d3a872c7ef9c92321e44c106f25d3
Author: Nowa Ammerlaan  gentoo  org>
AuthorDate: Mon Feb  9 16:44:41 2026 +
Commit: Nowa Ammerlaan  gentoo  org>
CommitDate: Mon Feb  9 17:16:56 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f427cc6

kernel-build.eclass: systemd-pcrphase renamed to systemd-pcrextend

this was renamed in version 110 of sys-kernel/dracut

Signed-off-by: Nowa Ammerlaan  gentoo.org>

 eclass/kernel-build.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass
index de658947182c..713f132a4bd2 100644
--- a/eclass/kernel-build.eclass
+++ b/eclass/kernel-build.eclass
@@ -513,7 +513,7 @@ kernel-build_src_install() {
pkcs11 plymouth qemu qemu-net resume rngd 
rootfs-block shutdown
systemd systemd-ac-power systemd-ask-password 
systemd-cryptsetup
systemd-emergency systemd-initrd 
systemd-integritysetup
-   systemd-pcrphase systemd-sysusers systemd-udevd
+   systemd-pcrextend systemd-sysusers systemd-udevd
systemd-veritysetup terminfo tpm2-tss 
udev-rules uefi-lib
usrmount virtiofs
)



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-08 Thread James Le Cuirot
commit: 87b1660d50026a7ff4b3019f62114dd65178ae02
Author: James Le Cuirot  gentoo  org>
AuthorDate: Tue Feb  3 18:42:47 2026 +
Commit: James Le Cuirot  gentoo  org>
CommitDate: Sun Feb  8 08:16:13 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87b1660d

sysroot.eclass: Fix QEMU logic for binary packages built on other arch

We ideally compare CHOST against CBUILD, but binary packages cache the
CBUILD value from the system that originally built them. So for binary
packages, compare against the machine hardware name instead.

The matching is admittedly inexact in some cases but should be good
enough in practise. This situation is unlikely to occur as it is, but I
did encounter it unexpectedly, and I figured handling it was worth a few
extra lines.

Signed-off-by: James Le Cuirot  gentoo.org>

 eclass/sysroot.eclass | 39 +--
 1 file changed, 37 insertions(+), 2 deletions(-)

diff --git a/eclass/sysroot.eclass b/eclass/sysroot.eclass
index 3d710f491741..03e5705c14a0 100644
--- a/eclass/sysroot.eclass
+++ b/eclass/sysroot.eclass
@@ -41,6 +41,41 @@ qemu_arch() {
esac
 }
 
+# @FUNCTION: qemu_arch_if_needed
+# @DESCRIPTION:
+# If QEMU is needed to run binaries for the given target or CHOST on the build
+# system, return the QEMU architecture, otherwise return status code 1.
+qemu_arch_if_needed() {
+   local target=${1:-${CHOST}}
+   local qemu_arch=$(qemu_arch "${target}")
+
+   # We ideally compare CHOST against CBUILD, but binary packages cache the
+   # CBUILD value from the system that originally built them.
+   if [[ ${MERGE_TYPE} != binary ]]; then
+   if [[ ${qemu_arch} == $(qemu_arch "${CBUILD}") ]]; then
+   return 1
+   else
+   echo "${qemu_arch}"
+   return 0
+   fi
+   fi
+
+   # So for binary packages, compare against the machine hardware name 
instead.
+   # Don't use uname because that may lie. /proc knows the real value.
+   case "${qemu_arch}/$(< /proc/sys/kernel/arch)" in
+   "${qemu_arch}/${qemu_arch}") return 1 ;;
+   arm/armv*) return 1 ;;
+   hppa/parisc*) return 1 ;;
+   i386/i?86) return 1 ;;
+   mips64*/mips64) return 1 ;;
+   mipsn32*/mips64) return 1 ;;
+   mips*/mips) return 1 ;;
+   esac
+
+   echo "${qemu_arch}"
+   return 0
+}
+
 # @FUNCTION: sysroot_make_run_prefixed
 # @DESCRIPTION:
 # Create a wrapper script for directly running executables within a (sys)root
@@ -52,7 +87,7 @@ qemu_arch() {
 # environment if binfmt_misc has been used with the F flag. It is not feasible
 # to add a conditional dependency on QEMU.
 sysroot_make_run_prefixed() {
-   local QEMU_ARCH=$(qemu_arch) SCRIPT MYROOT MYEROOT LIBGCC
+   local QEMU_ARCH SCRIPT MYROOT MYEROOT LIBGCC
 
if [[ ${EBUILD_PHASE_FUNC} == src_* ]]; then
[[ -z ${SYSROOT} ]] && return 1
@@ -94,7 +129,7 @@ sysroot_make_run_prefixed() {
#!/bin/sh
SANDBOX_ON=0 LD_PRELOAD= 
WINEPATH="\${WINEPATH}\${WINEPATH+;};${winepath//\//\\}" exec wine "\${@}"
EOF
-   elif [[ ${QEMU_ARCH} == $(qemu_arch "${CBUILD}") ]]; then
+   elif ! QEMU_ARCH=$(qemu_arch_if_needed); then
# glibc: ld.so is a symlink, ldd is a binary.
# musl: ld.so doesn't exist, ldd is a symlink.
local DLINKER candidate



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-08 Thread James Le Cuirot
commit: bde3d41e27af56e0ce096c04108b4843507ae2a6
Author: James Le Cuirot  gentoo  org>
AuthorDate: Tue Feb  3 18:42:48 2026 +
Commit: James Le Cuirot  gentoo  org>
CommitDate: Sun Feb  8 08:16:16 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bde3d41e

sysroot.eclass: Add sysroot_try_run_prefixed to allow wrapper failure

There are some cases where failing to run a command under a sysroot
should be fatal like `openssl fipsinstall`. There are other cases, like
help2man or shell completion, where failure is permissible when QEMU is
missing or broken.

Signed-off-by: James Le Cuirot  gentoo.org>

 eclass/sysroot.eclass | 37 +
 1 file changed, 29 insertions(+), 8 deletions(-)

diff --git a/eclass/sysroot.eclass b/eclass/sysroot.eclass
index 03e5705c14a0..3427c421bf22 100644
--- a/eclass/sysroot.eclass
+++ b/eclass/sysroot.eclass
@@ -80,7 +80,9 @@ qemu_arch_if_needed() {
 # @DESCRIPTION:
 # Create a wrapper script for directly running executables within a (sys)root
 # without changing the root directory. The path to that script is returned. If
-# no sysroot has been set, then this function returns unsuccessfully.
+# no (sys)root has been set, then return status code 1. If the wrapper cannot 
be
+# created for a permissible reason like QEMU being missing or broken, then
+# return status code 2.
 #
 # The script explicitly uses QEMU if this is necessary and it is available in
 # this environment. It may otherwise implicitly use a QEMU outside this
@@ -118,7 +120,7 @@ sysroot_make_run_prefixed() {
if [[ ${CHOST} = *-mingw32 ]]; then
if ! type -P wine >/dev/null; then
einfo "Wine not found. Continuing without ${SCRIPT##*/} 
wrapper."
-   return 1
+   return 2
fi
 
# UNIX paths can work, but programs will not expect this in 
%PATH%.
@@ -169,7 +171,7 @@ sysroot_make_run_prefixed() {
 
if ! "${SCRIPT}" "${test}" &>/dev/null; then
einfo "Failed to run ${test##*/}. Continuing without 
${SCRIPT##*/} wrapper."
-   return 1
+   return 2
fi
fi
 
@@ -180,11 +182,30 @@ sysroot_make_run_prefixed() {
 # @DESCRIPTION:
 # Create a wrapper script with sysroot_make_run_prefixed if necessary, and use
 # it to execute the given command, otherwise just execute the command directly.
+# Return unsuccessfully if the wrapper cannot be created.
 sysroot_run_prefixed() {
local script
-   if script=$(sysroot_make_run_prefixed); then
-   "${script}" "${@}"
-   else
-   "${@}"
-   fi
+   script=$(sysroot_make_run_prefixed)
+
+   case $? in
+   0) "${script}" "${@}" ;;
+   1) "${@}" ;;
+   *) return $? ;;
+   esac
+}
+
+# @FUNCTION: sysroot_try_run_prefixed
+# @DESCRIPTION:
+# Create a wrapper script with sysroot_make_run_prefixed if necessary, and use
+# it to execute the given command, otherwise just execute the command directly.
+# Print a warning and return successfully if the wrapper cannot be created.
+sysroot_try_run_prefixed() {
+   local script
+   script=$(sysroot_make_run_prefixed)
+
+   case $? in
+   0) "${script}" "${@}" ;;
+   1) "${@}" ;;
+   *) ewarn "Unable to run command under prefix: $*" ;;
+   esac
 }



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-07 Thread Sam James
commit: 12d28fc309bcb741676841c4a152236d41daf126
Author: Sam James  gentoo  org>
AuthorDate: Sun Feb  8 02:01:43 2026 +
Commit: Sam James  gentoo  org>
CommitDate: Sun Feb  8 02:03:16 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=12d28fc3

flag-o-matic.eclass: don't filter -freport-bug

Bug: https://bugs.gentoo.org/570606
Bug: https://bugs.gentoo.org/969762
Signed-off-by: Sam James  gentoo.org>

 eclass/flag-o-matic.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass
index 1c9abe1280b6..830e42f1b9a4 100644
--- a/eclass/flag-o-matic.eclass
+++ b/eclass/flag-o-matic.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: flag-o-matic.eclass
@@ -84,7 +84,7 @@ _setup-allowed-flags() {
# Cosmetic/output related, see e.g. bug #830534
-fno-diagnostics-color '-fmessage-length=*'
-fno-ident -fpermissive -frecord-gcc-switches
-   -frecord-command-line
+   -frecord-command-line -freport-bug
'-fdiagnostics*' '-fplugin*'
'-W*' -w
 



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-07 Thread Michał Górny
commit: 19ab23e6f240f7e611b97dbb8e1c6b28874d2420
Author: Michał Górny  gentoo  org>
AuthorDate: Sat Feb  7 13:48:29 2026 +
Commit: Michał Górny  gentoo  org>
CommitDate: Sat Feb  7 13:54:56 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=19ab23e6

llvm.org.eclass: Add 23.0.0_pre20260207 snapshot

Signed-off-by: Michał Górny  gentoo.org>

 eclass/llvm.org.eclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index a9489a133adf..3ee656f48a96 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -72,6 +72,9 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
_LLVM_SOURCE_TYPE=snapshot
 
case ${PV} in
+   23.0.0_pre20260207)
+   
EGIT_COMMIT=8d2078332c23b10dcf3571adc1a186e5c65f82df
+   ;;
23.0.0_pre20260131)

EGIT_COMMIT=424bebd9c784b8490e63290feeeceb42dfdaeb49
;;



[gentoo-commits] repo/gentoo:master commit in: eclass/

2026-02-05 Thread Ionen Wolkens
commit: 440e597f923e22b53316ca45037ed453bda43684
Author: Ionen Wolkens  gentoo  org>
AuthorDate: Fri Feb  6 01:53:06 2026 +
Commit: Ionen Wolkens  gentoo  org>
CommitDate: Fri Feb  6 02:00:13 2026 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=440e597f

qt6-build.eclass: guard -march detection against cpp noise

Should not be necessary but it could prevent future or obscure issues,
and it is a cheap operation.

wrt bug #969664 comment #11, originally thought to have some identifier
that is sed'ed out but a flat ^-march= as the identifier is good enough
and we use it as-is to simplify a bit. Still use sed to "grep" given
it is more guaranteed to be available than grep per the PM spec for
what it is worth.

Bug: https://bugs.gentoo.org/969664
Signed-off-by: Ionen Wolkens  gentoo.org>

 eclass/qt6-build.eclass | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/eclass/qt6-build.eclass b/eclass/qt6-build.eclass
index 0b107c595bd2..7579a8d7fc46 100644
--- a/eclass/qt6-build.eclass
+++ b/eclass/qt6-build.eclass
@@ -330,17 +330,16 @@ _qt6-build_sanitize_cpu_flags() {
# determine and the highest(known) usable x86-64 feature level
# so users will not lose *all* CPU-specific optimizations
local march=$(
-   $(tc-getCXX) -E -P ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1
+   $(tc-getCXX) -E -P ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | sed -n 
'/^-march=/p' | tail -n 1
#if !defined(__EVEX512__) && !defined(__clang__) && 
__GNUC__ >= 16
#  define __EVEX512__ 1 /* removed in gcc-16 (bug 
#956750,#969664) */
#endif
-   default
#if (__CRC32__ + __LAHF_SAHF__ + __POPCNT__ + __SSE3__ 
+ __SSE4_1__ + __SSE4_2__ + __SSSE3__) == 7
-   x86-64-v2
+   -march=x86-64-v2
#  if (__AVX__ + __AVX2__ + __BMI__ + __BMI2__ + 
__F16C__ + __FMA__ + __LZCNT__ + __MOVBE__ + __XSAVE__) == 9
-   x86-64-v3
+   -march=x86-64-v3
#if (__AVX512BW__ + __AVX512CD__ + __AVX512DQ__ + 
__AVX512F__ + __AVX512VL__ + __EVEX256__ + __EVEX512__) == 7
-   x86-64-v4
+   -march=x86-64-v4
#endif
#  endif
#endif
@@ -349,7 +348,7 @@ _qt6-build_sanitize_cpu_flags() {
)
 
filter-flags '-march=*' "${cpuflags[@]/#/-m}" "${cpuflags[@]/#/-mno-}"
-   [[ ${march} == x86-64* ]] && append-flags $(test-flags-CXX 
-march="${march}")
+   [[ -n ${march} ]] && append-flags $(test-flags-CXX "${march}")
einfo "C(XX)FLAGS adjusted due to frequent -march=*/-m* issues with Qt:"
einfo "\"${CXXFLAGS}\""
einfo "(can override with USE=custom-cflags, but no support will be 
given)"



  1   2   3   4   5   6   7   8   9   10   >