[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: a1c8b830ffe7d3488065b1dbd0c55c333ba2da2b
Author: Eli Schwartz gentoo org>
AuthorDate: Mon Dec 8 19:14:39 2025 +
Commit: Eli Schwartz gentoo org>
CommitDate: Wed Dec 10 05:31:16 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a1c8b830
meson.eclass: add missing dies
This is required by policy, and at least in the case of
meson-format-array also makes it easier to tell when a missing BDEPEND
breaks things later on.
Bug: https://bugs.gentoo.org/967234
Signed-off-by: Eli Schwartz gentoo.org>
eclass/meson.eclass | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index 06675e02b82b..aff238ef5d26 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -103,7 +103,7 @@ BDEPEND=">=dev-build/meson-1.2.3
# '--unicode-16=饜惙', '--unicode-32=饜']
#
_meson_env_array() {
- meson-format-array "$@"
+ meson-format-array "$@" || die
}
# @FUNCTION: _meson_get_machine_info
@@ -150,7 +150,7 @@ _meson_create_cross_file() {
local fn=${T}/meson.${CHOST}.${ABI}.ini
- cat > "${fn}" <<-EOF
+ cat > "${fn}" <<-EOF || die "failed to create cross file"
[binaries]
ar = $(_meson_env_array "$(tc-getAR)")
c = $(_meson_env_array "$(tc-getCC)")
@@ -207,7 +207,7 @@ _meson_create_native_file() {
local fn=${T}/meson.${CBUILD}.${ABI}.ini
- cat > "${fn}" <<-EOF
+ cat > "${fn}" <<-EOF || die "failed to create native file"
[binaries]
ar = $(_meson_env_array "$(tc-getBUILD_AR)")
c = $(_meson_env_array "$(tc-getBUILD_CC)")
[gentoo-commits] repo/gentoo:master commit in: eclass/, profiles/default/linux/ppc64le/17.0/ieee-long-double/, ...
commit: 113038a8dab832cfe1c53586bef6a42bfa1d0c5e
Author: Sam James gentoo org>
AuthorDate: Tue Dec 9 08:36:10 2025 +
Commit: Sam James gentoo org>
CommitDate: Tue Dec 9 08:38:28 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=113038a8
toolchain.eclass: support ieee-long-double for ppc64 for >=8
--with-long-double-format=ieee was added in GCC 8. We need 11 to be
unmasked to be able to bootstrap D.
Drop the masks/unmasks as we don't have < GCC 8 in ::gentoo anymore and
it's confusing as other GCC versoins are masked for other reasons (EOL)
anyhow.
Signed-off-by: Sam James gentoo.org>
eclass/toolchain.eclass | 2 +-
profiles/default/linux/ppc64le/17.0/ieee-long-double/package.mask | 3 +--
profiles/default/linux/ppc64le/17.0/ieee-long-double/package.use.mask | 4 ++--
profiles/default/linux/ppc64le/23.0/package.mask | 3 +--
profiles/default/linux/ppc64le/23.0/package.use.mask | 4 ++--
5 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 959e86e5d972..88d5c23061e3 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -335,7 +335,7 @@ if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] ; then
tc_version_is_at_least 10 && IUSE+=" zstd" TC_FEATURES+=( zstd )
tc_version_is_at_least 11 && IUSE+=" valgrind" TC_FEATURES+=( valgrind )
tc_version_is_at_least 11 && IUSE+=" custom-cflags"
- tc_version_is_at_least 12 && IUSE+=" ieee-long-double"
+ tc_version_is_at_least 8.0 && IUSE+=" ieee-long-double"
tc_version_is_at_least 12.2.1_p20221203 ${PV} && IUSE+=" default-znow"
tc_version_is_at_least 12.2.1_p20221203 ${PV} && IUSE+="
default-stack-clash-protection"
tc_version_is_at_least 13.1 ${PV} && IUSE+=" modula2"
diff --git a/profiles/default/linux/ppc64le/17.0/ieee-long-double/package.mask
b/profiles/default/linux/ppc64le/17.0/ieee-long-double/package.mask
index 967a17ce1715..81420a0eadc5 100644
--- a/profiles/default/linux/ppc64le/17.0/ieee-long-double/package.mask
+++ b/profiles/default/linux/ppc64le/17.0/ieee-long-double/package.mask
@@ -1,7 +1,6 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Georgy Yakovlev (2022-12-04)
# We only need versions that support ieee-long-double.
- (2022-12-04)
# We need it for ieee-long-double.
>=llvm-core/clang-15.0.5 -ieee-long-double
->=sys-devel/gcc-12 -ieee-long-double
+sys-devel/gcc -ieee-long-double
diff --git a/profiles/default/linux/ppc64le/23.0/package.mask
b/profiles/default/linux/ppc64le/23.0/package.mask
index 967a17ce1715..81420a0eadc5 100644
--- a/profiles/default/linux/ppc64le/23.0/package.mask
+++ b/profiles/default/linux/ppc64le/23.0/package.mask
@@ -1,7 +1,6 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Georgy Yakovlev (2022-12-04)
# We only need versions that support ieee-long-double.
- (2022-12-04)
# We need it for ieee-long-double.
>=llvm-core/clang-15.0.5 -ieee-long-double
->=sys-devel/gcc-12 -ieee-long-double
+sys-devel/gcc -ieee-long-double
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 9ab45cb7727abc1bdd9430836eda5d114590ebaf Author: Andreas Sturmlechner gentoo org> AuthorDate: Mon Dec 8 12:27:51 2025 + Commit: Andreas Sturmlechner gentoo org> CommitDate: Mon Dec 8 12:28:09 2025 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9ab45cb7 desktop.eclass: Hello 2025 Signed-off-by: Andreas Sturmlechner gentoo.org> eclass/desktop.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/desktop.eclass b/eclass/desktop.eclass index f1a50e24489d..299d3d6f739f 100644 --- a/eclass/desktop.eclass +++ b/eclass/desktop.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: desktop.eclass
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: d1b372d1e101b5640354d3931a05e77c5c607698
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Tue Nov 18 21:09:48 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Mon Dec 8 12:12:05 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1b372d1
desktop.eclass: make_desktop_entry: Rename to
Use more upstream nomenclature to be more self explanatory.
Improve documentation and put args next to desktop key names.
Rename variable from reserved exec keyword to cmd.
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/desktop.eclass | 30 +++---
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/eclass/desktop.eclass b/eclass/desktop.eclass
index f12aeb2f9dc2..9c1e33c1277d 100644
--- a/eclass/desktop.eclass
+++ b/eclass/desktop.eclass
@@ -16,29 +16,29 @@ case ${EAPI} in
esac
# @FUNCTION: make_desktop_entry
-# @USAGE: [name] [icon] [categories] [fields]
+# @USAGE: [name] [icon] [categories] [entries]
# @DESCRIPTION:
# Make a .desktop file.
#
# @CODE
-# binary: what command does the app run with ?
-# name: the name that will show up in the menu
-# icon: the icon to use in the menu entry
+# command:Exec command the app is being run with, also base for TryExec
+# name: Name that will show up in the menu; defaults to PN
+# icon: Icon to use with the menu entry; defaults to PN
# this can be relative (to /usr/share/pixmaps) or
# a full path to an icon
# categories: Categories for this kind of application. Examples:
# https://specifications.freedesktop.org/menu-spec/latest/apa.html
# if unset, function tries to guess from package's category
-# fields: extra fields to append to the desktop file; a printf string
+# entries:Key=Value entry to append to the desktop file; a printf string
# @CODE
make_desktop_entry() {
[[ -z $1 ]] && die "make_desktop_entry: You must specify the executable"
- local exec=${1}
+ local cmd=${1}
local name=${2:-${PN}}
local icon=${3:-${PN}}
local cats=${4}
- local fields=${5}
+ local entries=${5}
if [[ -z ${cats} ]] ; then
local catmaj=${CATEGORY%%-*}
@@ -162,7 +162,7 @@ make_desktop_entry() {
esac
fi
- local desktop_exec="${exec%%[[:space:]]*}"
+ local desktop_exec="${cmd%%[[:space:]]*}"
desktop_exec="${desktop_exec##*/}"
local desktop_suffix="-${PN}"
[[ ${SLOT%/*} != 0 ]] && desktop_suffix+="-${SLOT%/*}"
@@ -190,19 +190,19 @@ make_desktop_entry() {
Name=${name}
Type=Application
Comment=${DESCRIPTION}
- Exec=${exec}
- TryExec=${exec%% *}
+ Exec=${cmd}
+ TryExec=${cmd%% *}
Icon=${icon}
Categories=${cats}
EOF
- if [[ ${fields:-=} != *=* ]] ; then
+ if [[ ${entries:-=} != *=* ]] ; then
# 5th arg used to be value to Path=
- ewarn "make_desktop_entry: update your 5th arg to read
Path=${fields}"
- fields="Path=${fields}"
+ ewarn "make_desktop_entry: update your 5th arg to read
Path=${entries}"
+ entries="Path=${entries}"
fi
- if [[ -n ${fields} ]]; then
- printf '%b\n' "${fields}" >> "${desktop}" || die
+ if [[ -n ${entries} ]]; then
+ printf '%b\n' "${entries}" >> "${desktop}" || die
fi
(
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 87ea1b150c1fd0ed8bb8be75095a52b1c6a40c18
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Mon Nov 17 22:02:29 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Mon Dec 8 12:12:03 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87ea1b15
desktop.eclass: make_desktop_entry: Rename to
"Type" is used as Key in the desktop file spec in a completely different
context, let's avoid that mix up.
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/desktop.eclass | 153 +-
1 file changed, 76 insertions(+), 77 deletions(-)
diff --git a/eclass/desktop.eclass b/eclass/desktop.eclass
index 2ab96ba6b770..f12aeb2f9dc2 100644
--- a/eclass/desktop.eclass
+++ b/eclass/desktop.eclass
@@ -16,21 +16,20 @@ case ${EAPI} in
esac
# @FUNCTION: make_desktop_entry
-# @USAGE: [name] [icon] [type] [fields]
+# @USAGE: [name] [icon] [categories] [fields]
# @DESCRIPTION:
# Make a .desktop file.
#
# @CODE
-# binary: what command does the app run with ?
-# name: the name that will show up in the menu
-# icon: the icon to use in the menu entry
-# this can be relative (to /usr/share/pixmaps) or
-# a full path to an icon
-# type: what kind of application is this?
-# for categories:
-# https://specifications.freedesktop.org/menu-spec/latest/apa.html
-# if unset, function tries to guess from package's category
-# fields: extra fields to append to the desktop file; a printf string
+# binary: what command does the app run with ?
+# name: the name that will show up in the menu
+# icon: the icon to use in the menu entry
+# this can be relative (to /usr/share/pixmaps) or
+# a full path to an icon
+# categories: Categories for this kind of application. Examples:
+# https://specifications.freedesktop.org/menu-spec/latest/apa.html
+# if unset, function tries to guess from package's category
+# fields: extra fields to append to the desktop file; a printf string
# @CODE
make_desktop_entry() {
[[ -z $1 ]] && die "make_desktop_entry: You must specify the executable"
@@ -38,127 +37,127 @@ make_desktop_entry() {
local exec=${1}
local name=${2:-${PN}}
local icon=${3:-${PN}}
- local type=${4}
+ local cats=${4}
local fields=${5}
- if [[ -z ${type} ]] ; then
+ if [[ -z ${cats} ]] ; then
local catmaj=${CATEGORY%%-*}
local catmin=${CATEGORY##*-}
case ${catmaj} in
app)
case ${catmin} in
- accessibility)
type="Utility;Accessibility";;
- admin) type=System;;
- antivirus) type=System;;
- arch)
type="Utility;Archiving";;
- backup)
type="Utility;Archiving";;
- cdr)
type="AudioVideo;DiscBurning";;
- dicts)
type="Office;Dictionary";;
- doc) type=Documentation;;
- editors)
type="Utility;TextEditor";;
- emacs)
type="Development;TextEditor";;
- emulation) type="System;Emulator";;
- laptop)
type="Settings;HardwareSettings";;
- office)type=Office;;
- pda) type="Office;PDA";;
- vim)
type="Development;TextEditor";;
- xemacs)
type="Development;TextEditor";;
+ accessibility)
cats="Utility;Accessibility";;
+ admin) cats=System;;
+ antivirus) cats=System;;
+ arch)
cats="Utility;Archiving";;
+ backup)
cats="Utility;Archiving";;
+ cdr)
cats="AudioVideo;DiscBurning";;
+ dicts)
cats="Office;Dictionary";;
+ doc) cats=Documentation;;
+ editors)
cats="Utility;TextEditor";;
+ emacs)
cats="Development;TextEditor";;
+ emulation) cats="System;Emulator";;
+ laptop)
cats="Settings;HardwareSettings";;
+
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 304c320712f3ba5f11271ec06b561f7b187afd7f
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sun Nov 16 22:59:29 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Mon Dec 8 12:12:06 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=304c3207
desktop.eclass: make_desktop_entry: Give control over Desktop File ID
make_desktop_entry() so far had no grasp of the importance of Desktop File ID
being consistent with application ID set by the GUI application binary itself.
To make this work, we need to be able to pass desktop [file] id as parameter.
Collisions within the ebuild will need to be dealt with manually, but by way
of this is now possible in the first place.
Losing the -$PN-$SLOT suffix will only slightly increase the potential for
file collisions with other packages - but conflicting desktop file IDs are
problematic anyway and should be resolved in a coordinated effort (e.g. by
fully qualifying application id upstream). Otherwise, the occurrence of spaces
in path no longer leads to garbled desktop file naming, however
desirable that may be - is checked for spec compliant characters.
New arguments:
--eapi9 as first argument to enable new getopts style parameters
As the naming implies, this is off by default for EAPI=[78].
-a|--args to cleanly pass arguments to Exec command
allows us to cleanly get basename from cmd for fallback desktopid
-d|--desktopid to set the correct desktop ID, which is the path below
/usr/share/applications/ plus filename excl. .desktop suffix[1]
-C|--comment to set the desktop file Comment instead of DESCRIPTION
New ECLASS_VARIABLE: _DESKTOP_IDS
Internal array containing desktopids used by make_desktop_entry() calls.
Lets us keep track of/avoid duplicate desktop file names, replacing the
existing "count" suffix.
[1] https://specifications.freedesktop.org/desktop-entry/latest/file-naming.html
Bug: https://bugs.gentoo.org/771708
Bug: https://bugs.gentoo.org/966145
Closes: https://bugs.gentoo.org/290102
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/desktop.eclass | 199 --
1 file changed, 160 insertions(+), 39 deletions(-)
diff --git a/eclass/desktop.eclass b/eclass/desktop.eclass
index 9c1e33c1277d..f1a50e24489d 100644
--- a/eclass/desktop.eclass
+++ b/eclass/desktop.eclass
@@ -15,30 +15,111 @@ case ${EAPI} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
+# @ECLASS_VARIABLE: _DESKTOP_IDS
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Internal array containing any app-ids used by make_desktop_entry() calls.
+# Lets us keep track of/avoid duplicate desktop file names.
+_DESKTOP_IDS=()
+
# @FUNCTION: make_desktop_entry
-# @USAGE: [name] [icon] [categories] [entries]
+# @USAGE: [--eapi9] [options]
# @DESCRIPTION:
-# Make a .desktop file.
+# Make a .desktop file and install it in /usr/share/applications/.
#
# @CODE
+# --eapi9:Switch to getopts style arguments instead of order based
+# As the naming implies, this is off by default for EAPI=[78],
+# but mandated by future EAPI.
# command:Exec command the app is being run with, also base for TryExec
+# --- Options:
# name: Name that will show up in the menu; defaults to PN
+# with --eapi9: must not contain arguments, use --args for that
# icon: Icon to use with the menu entry; defaults to PN
# this can be relative (to /usr/share/pixmaps) or
# a full path to an icon
# categories: Categories for this kind of application. Examples:
# https://specifications.freedesktop.org/menu-spec/latest/apa.html
# if unset, function tries to guess from package's category
-# entries:Key=Value entry to append to the desktop file; a printf string
+# entry: Key=Value entry to append to the desktop file;
+# with --eapi9: multiple allowed; old style: a printf string
+# --- Additional parameters available using --eapi9:
+# args: Arguments (binary params and desktop spec field codes) to add
+# to Exec value, separated by a space if multiple
+# desktopid: .desktop will be created. Must be same as "app id"
+# defined in code (including reverse qualified domain if set);
+# defaults to
+# comment:Comment (menu entry tooltip), defaults to DESCRIPTION
+# @CODE
+#
+# Example usage:
+# @CODE
+# Deprecated, in order:
+#[name] [icon] [categories] [entries...]
+# New style:
+# --eapi9 [-a args] [-d desktopid] [-C comment] [-i icon]
+# --eapi9 [-n name] [-e entry...] [-c categories]
# @CODE
make_desktop_entry() {
- [[ -z $1 ]] && die "make_desktop_entry: You must specify the executable"
+ local eapi9
+ if [[ -n ${1} ]]; then
+ case ${EAPI} in
+ 7|8)
+ if [[ ${1} == --eapi9 ]]; then
+
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: d3984aa0c0c2e708244f87d61d89c74597203d33
Author: Sam James gentoo org>
AuthorDate: Mon Dec 8 08:01:03 2025 +
Commit: Sam James gentoo org>
CommitDate: Mon Dec 8 08:02:41 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3984aa0
toolchain.eclass: fixup cross-include checks
I have a feeling this may fix the issue we're working around in
37dded9b48c93a67b9a32b5eca2b1ef0fc6e8b9e, or maybe it's only needed
with USE=ada where we do some CC hacks.
This shows up with USE=valgrind since c1010ab3cf08a281deb47825f782dd8581bc3138
but it may well happen with the openmp check too.
Signed-off-by: Sam James gentoo.org>
eclass/toolchain.eclass | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 4b90df79f0e7..959e86e5d972 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1738,7 +1738,7 @@ toolchain_src_configure() {
# build without a C library, and you can't build that w/o
# already having a compiler...
if ! is_crosscompile || \
- $(tc-getCPP ${CTARGET}) -E - <<<"#include " >&
/dev/null
+ $(unset CC; unset CPP; tc-getCPP ${CTARGET}) -E -
<<<"#include " >& /dev/null
then
confgcc+=( $(use_enable openmp libgomp) )
else
@@ -1801,7 +1801,7 @@ toolchain_src_configure() {
# We patch this in w/
PR66487-object-lifetime-instrumentation-for-Valgrind.patch,
# so it may not always be available.
if grep -q -- '--enable-valgrind-interop'
"${S}"/libgcc/configure.ac ; then
- if ! is_crosscompile || $(tc-getCPP ${CTARGET}) -E -
<<<"#include " >& /dev/null ; then
+ if ! is_crosscompile || $(unset CC; unset CPP;
tc-getCPP ${CTARGET}) -E - <<<"#include " >& /dev/null ;
then
confgcc+=( $(use_enable valgrind
valgrind-interop) )
else
confgcc+=( --disable-valgrind-interop )
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 537f565690024195dab4e9973189ab648dc3e5cc
Author: Mike Gilbert gentoo org>
AuthorDate: Thu Dec 4 16:38:36 2025 +
Commit: Mike Gilbert gentoo org>
CommitDate: Sun Dec 7 18:15:33 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=537f5656
fcaps.eclass: remove default value for owner/group
This makes the options behave like the mode/caps mode options.
Usually the file is already owned by root so the chown call is a noop.
Signed-off-by: Mike Gilbert gentoo.org>
eclass/fcaps.eclass | 19 +--
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/eclass/fcaps.eclass b/eclass/fcaps.eclass
index 81c1ca62368c..0bbfc867716f 100644
--- a/eclass/fcaps.eclass
+++ b/eclass/fcaps.eclass
@@ -87,9 +87,8 @@ esac
# The caps mode is used to set the permission on the file if capabilities
# were properly set on the file. No change is applied by default.
#
-# If the system is unable to set capabilities, it will use the specified user,
-# group, and mode. The user and group default to 0. If mode is unspecified,
no
-# change is applied.
+# If capabilities are not sucessfully applied, the permissions on the file are
+# updated according to the owner, group, and mode options, if provided.
#
# For example, "-m u+s" may be used to enable suid as a fallback when file caps
# are unavailable. This should be used with care, typically when the
@@ -103,8 +102,8 @@ fcaps() {
fi
# Process the user options first.
- local owner='0'
- local group='0'
+ local owner=
+ local group=
local mode=
local caps_mode=
@@ -183,12 +182,12 @@ fcaps() {
fi
fi
- # If we're still here, setcaps failed.
+ # If we're still here, setcaps failed or filecaps are disabled.
+ if [[ -n ${owner} || -n ${group} ]]; then
+ debug-print "${FUNCNAME}: setting owner on '${file}'"
+ chown "${owner}${group:+:}${group}" "${file}" || die
+ fi
if [[ -n ${mode} ]]; then
- if [[ -n ${owner} || -n ${group} ]]; then
- debug-print "${FUNCNAME}: setting owner on
'${file}'"
- chown "${owner}:${group}" "${file}" || die
- fi
debug-print "${FUNCNAME}: setting mode on '${file}'"
chmod ${mode} "${file}" || die
fi
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: c1010ab3cf08a281deb47825f782dd8581bc3138
Author: Sam James gentoo org>
AuthorDate: Sun Dec 7 08:33:00 2025 +
Commit: Sam James gentoo org>
CommitDate: Sun Dec 7 08:33:57 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1010ab3
toolchain.eclass: handle missing Valgrind headers
I saw this on a i686-w64-mingw32 cross w/ trunk + USE=valgrind. Followup
to d8c55bb85be9923213168c69a054a154c077cfb8.
Copy the libgomp check.
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 06d5392ef316..4b90df79f0e7 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1801,7 +1801,11 @@ toolchain_src_configure() {
# We patch this in w/
PR66487-object-lifetime-instrumentation-for-Valgrind.patch,
# so it may not always be available.
if grep -q -- '--enable-valgrind-interop'
"${S}"/libgcc/configure.ac ; then
- confgcc+=( $(use_enable valgrind valgrind-interop) )
+ if ! is_crosscompile || $(tc-getCPP ${CTARGET}) -E -
<<<"#include " >& /dev/null ; then
+ confgcc+=( $(use_enable valgrind
valgrind-interop) )
+ else
+ confgcc+=( --disable-valgrind-interop )
+ fi
fi
fi
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 9006a29ec332349099aaef9b7236dcbeee26134b
Author: Sam James gentoo org>
AuthorDate: Sun Dec 7 08:30:02 2025 +
Commit: Sam James gentoo org>
CommitDate: Sun Dec 7 08:33:56 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9006a29e
toolchain.eclass: BDEPEND->DEPEND for Valgrind headers
Hit this with a cross after d8c55bb85be9923213168c69a054a154c077cfb8:
```
configure: error: --enable-valgrind-interop: valgrind/memcheck.h not found
```
But it needed fixing anyway. I'll make a followup change to restrict
it to some targets too.
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 2afa6df1295a..06d5392ef316 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -424,7 +424,7 @@ if tc_has_feature zstd ; then
fi
if tc_has_feature valgrind ; then
- BDEPEND+=" valgrind? ( dev-debug/valgrind )"
+ DEPEND+=" valgrind? ( dev-debug/valgrind )"
fi
if [[ ${PN} != gnat-gpl ]] && tc_has_feature ada ; then
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: d8c55bb85be9923213168c69a054a154c077cfb8
Author: Sam James gentoo org>
AuthorDate: Wed Dec 3 14:53:56 2025 +
Commit: Sam James gentoo org>
CommitDate: Wed Dec 3 14:54:28 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d8c55bb8
toolchain.eclass: wire up Valgrind annotations patch
In gcc-patches.git:
commit 33349526fd69a6c54790b53ca443693c80769242 (HEAD -> master, origin/master,
origin/HEAD)
Author: Sam James gentoo.org>
AuthorDate: Wed Dec 3 14:48:04 2025 +
Commit: Sam James gentoo.org>
CommitDate: Wed Dec 3 14:48:04 2025 +
16.0.0: add ispras's Valgrind lifetime annotations patch
C++ lifetime issues come up every so often (this time w/ openjph2) and
they're always really hard to debug. Let's give this a go.
From
https://inbox.sourceware.org/gcc-patches/20231222141038.6657-1-amonakov
ispras.ru/.
Bug: https://gcc.gnu.org/PR66487
[...]
Signed-off-by: Sam James gentoo.org>
eclass/toolchain.eclass | 6 ++
1 file changed, 6 insertions(+)
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index e50067e40c0f..2afa6df1295a 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1797,6 +1797,12 @@ toolchain_src_configure() {
if in_iuse valgrind ; then
confgcc+=( $(use_enable valgrind valgrind-annotations) )
+
+ # We patch this in w/
PR66487-object-lifetime-instrumentation-for-Valgrind.patch,
+ # so it may not always be available.
+ if grep -q -- '--enable-valgrind-interop'
"${S}"/libgcc/configure.ac ; then
+ confgcc+=( $(use_enable valgrind valgrind-interop) )
+ fi
fi
if in_iuse vtv ; then
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 4c366be03271669cbc8f691d62a7c4ddc73eda9b
Author: Sam James gentoo org>
AuthorDate: Wed Dec 3 03:10:22 2025 +
Commit: Sam James gentoo org>
CommitDate: Wed Dec 3 03:11:01 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c366be0
ada.eclass: filter -Warray-bounds
This could maybe be done in theory for ADAFLAGS only but not sure how well
that would work with LTO anyway.
Bug: https://gcc.gnu.org/PR116226
Signed-off-by: Sam James gentoo.org>
eclass/ada.eclass | 5 +
1 file changed, 5 insertions(+)
diff --git a/eclass/ada.eclass b/eclass/ada.eclass
index 2f68727c519b..8a029def018e 100644
--- a/eclass/ada.eclass
+++ b/eclass/ada.eclass
@@ -31,6 +31,8 @@ esac
if [[ -z ${_ADA_ECLASS} ]]; then
_ADA_ECLASS=1
+inherit flag-o-matic
+
# @ECLASS_VARIABLE: ADA_DEPS
# @OUTPUT_VARIABLE
# @DESCRIPTION:
@@ -471,6 +473,9 @@ ada_setup() {
unset EADA
+ # https://gcc.gnu.org/PR116226
+ filter-flags -Warray-bounds
+
if [[ ${#_ADA_SUPPORTED_IMPLS[@]} -eq 1 ]]; then
if use "ada_target_${_ADA_SUPPORTED_IMPLS[0]}"; then
# Only one supported implementation, enable it
explicitly
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 43d1051d09d022eca13fab52387d475095718e2b
Author: Sam James gentoo org>
AuthorDate: Tue Dec 2 07:18:04 2025 +
Commit: Sam James gentoo org>
CommitDate: Tue Dec 2 07:18:32 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=43d1051d
toolchain.eclass: use profiledbootstrap-lean for USE=pgo
This isn't documented but it means the previous stages aren't kept
around once a stage is done.
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 5f3b300f3ea8..e50067e40c0f 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -2280,7 +2280,7 @@ gcc_do_make() {
ewarn "This is NOT a safe configuration for end users!"
ewarn "This compiler may not be safe or reliable for
production use!"
elif _tc_use_if_iuse pgo; then
- GCC_MAKE_TARGET=${GCC_MAKE_TARGET-profiledbootstrap}
+
GCC_MAKE_TARGET=${GCC_MAKE_TARGET-profiledbootstrap-lean}
else
GCC_MAKE_TARGET=${GCC_MAKE_TARGET-bootstrap-lean}
fi
[gentoo-commits] repo/gentoo:master commit in: eclass/, www-servers/nginx/files/, www-servers/nginx/
commit: 75c2cb66eed12ddda2c1182c1797e11e821c8209
Author: Zurab Kvachadze gmail com>
AuthorDate: Mon Dec 1 18:47:25 2025 +
Commit: Sam James gentoo org>
CommitDate: Tue Dec 2 00:05:42 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75c2cb66
www-servers/nginx: fix fastcgi.conf, nginx-r6.initd regressions from
nginx.eclass
nginx.eclass prefers fastcgi_params over fastcgi.conf for consistency.
For some reason, when I was writing nginx.eclass I missed the fact that
fastcgi.conf has one extra `fastcgi_param` vs fastcgi_params. This
commit uses fastcgi.conf as new fastcgi_params by renaming the former to
the latter.
In 8481acdc2c34e960f08cd90ce09068d791e42901[1] ("www-servers/nginx: use
default start/stop initd functions"), the custom start() was removed,
where the `-c` and `-g` cmdline parameters were hardcoded, which regressed
services that were symlinked to /etc/init.d/nginx.
This commit fixes both issues at the same time to avoid revbumping
ebuilds twice. KEYWORDS were not dropped because this fixes regressions.
[1]:
https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8481acdc2c34e960f08cd90ce09068d791e42901
Closes: https://bugs.gentoo.org/966799
Closes: https://bugs.gentoo.org/966798
Signed-off-by: Zurab Kvachadze gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/44853
Closes: https://github.com/gentoo/gentoo/pull/44853
Signed-off-by: Sam James gentoo.org>
eclass/nginx.eclass| 10 +++---
www-servers/nginx/files/nginx-r6.initd | 1 +
.../nginx/{nginx-1.28.0-r4.ebuild => nginx-1.28.0-r5.ebuild} | 0
.../nginx/{nginx-1.29.3-r2.ebuild => nginx-1.29.3-r3.ebuild} | 0
4 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/eclass/nginx.eclass b/eclass/nginx.eclass
index 7185c8509595..1394a5f3da94 100644
--- a/eclass/nginx.eclass
+++ b/eclass/nginx.eclass
@@ -795,9 +795,13 @@ nginx_src_install() {
# /usr/share/nginx.
pushd "${ED}/etc/nginx" >/dev/null || die "pushd failed"
# mime-types* are provided by app-misc/mime-types[nginx], .default
config
- # files are redundant due to CONFIG_PROTECT and fastcgi.conf is a copy
of
- # fastcgi_params. As for nginx.conf, we ship our own config file.
- rm -- *.default mime.types fastcgi.conf nginx.conf || die "rm failed"
+ # files are redundant due to CONFIG_PROTECT. As for nginx.conf, we ship
our
+ # own config file.
+ rm -- *.default mime.types nginx.conf || die "rm failed"
+ # fastcgi.conf is almost identical to fastcgi_params barring the
+ # SCRIPT_FILENAME param. Rename fastcgi.conf to fastcgi_params to have
+ # consistent *_params files. See bug 966799.
+ mv fastcgi.conf fastcgi_params || die "mv failed"
popd >/dev/null || die "Returning to the previous directory failed"
dodir /usr/share/nginx
diff --git a/www-servers/nginx/files/nginx-r6.initd
b/www-servers/nginx/files/nginx-r6.initd
index 04f92e3b244b..35c05a9b3bb7 100644
--- a/www-servers/nginx/files/nginx-r6.initd
+++ b/www-servers/nginx/files/nginx-r6.initd
@@ -17,6 +17,7 @@ pidfile="/run/${RC_SVCNAME}/${RC_SVCNAME}.pid"
user=${NGINX_USER:-nginx}
group=${NGINX_GROUP:-nginx}
retry=${NGINX_TERMTIMEOUT:-"TERM/60/KILL/5"}
+command_args="-c \"${NGINX_CONFIGFILE}\" -g 'pid ${pidfile};'"
extra_commands="configtest"
extra_started_commands="upgrade reload"
diff --git a/www-servers/nginx/nginx-1.28.0-r4.ebuild
b/www-servers/nginx/nginx-1.28.0-r5.ebuild
similarity index 100%
rename from www-servers/nginx/nginx-1.28.0-r4.ebuild
rename to www-servers/nginx/nginx-1.28.0-r5.ebuild
diff --git a/www-servers/nginx/nginx-1.29.3-r2.ebuild
b/www-servers/nginx/nginx-1.29.3-r3.ebuild
similarity index 100%
rename from www-servers/nginx/nginx-1.29.3-r2.ebuild
rename to www-servers/nginx/nginx-1.29.3-r3.ebuild
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 775295e04c5e0dd3b885eb2f8eb9070f0bbed61b
Author: Sam James gentoo org>
AuthorDate: Sun Nov 30 22:19:23 2025 +
Commit: Sam James gentoo org>
CommitDate: Sun Nov 30 22:41:21 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=775295e0
toolchain.eclass: filter -fopenmp
When bootstrapping, if libgomp hasn't been built yet, GCC will error
out as it can't find libgomp.spec.
Closes: https://bugs.gentoo.org/966882
Signed-off-by: Sam James gentoo.org>
eclass/toolchain.eclass | 2 ++
1 file changed, 2 insertions(+)
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 6c9baba8fd7e..5f3b300f3ea8 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -2145,6 +2145,8 @@ gcc_do_filter_flags() {
# Avoid shooting self in foot
filter-flags '-mabi*' -m31 -m32 -m64
+ # gcc will try to find libgomp.spec, which may not exist yet (bug
#966882)
+ filter-flags -fopenmp
# bug #490738
filter-flags -frecord-gcc-switches
[gentoo-commits] repo/gentoo:master commit in: eclass/, sys-devel/gcc/
commit: e9b82080065b151d6e42cc8acf1e369eba42e9e2
Author: Sam James gentoo org>
AuthorDate: Sun Nov 30 01:24:03 2025 +
Commit: Sam James gentoo org>
CommitDate: Sun Nov 30 01:24:31 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e9b82080
toolchain.eclass: wire up algol68
Now in-tree!
Signed-off-by: Sam James gentoo.org>
eclass/toolchain.eclass| 9 -
sys-devel/gcc/metadata.xml | 1 +
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 2661b89f188a..6c9baba8fd7e 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -346,6 +346,7 @@ if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] ; then
tc_version_is_at_least 13.3.1_p20250522 ${PV} && IUSE+=" time64"
tc_version_is_at_least 15.1 ${PV} && IUSE+=" libgdiagnostics"
tc_version_is_at_least 15.1 ${PV} && IUSE+=" cobol" TC_FEATURES+=(
cobol )
+ tc_version_is_at_least 16.0.0_p20251130 ${PV} && IUSE+=" algol68"
fi
if tc_version_is_at_least 10; then
@@ -1301,6 +1302,7 @@ toolchain_src_configure() {
is_f95 && GCC_LANG+=",f95"
is_ada && GCC_LANG+=",ada"
is_cobol && GCC_LANG+=",cobol"
+ is_algol68 && GCC_LANG+=",algol68"
is_modula2 && GCC_LANG+=",m2"
is_rust && GCC_LANG+=",rust"
is_jit && GCC_LANG+=",jit"
@@ -2593,7 +2595,7 @@ toolchain_src_install() {
cd "${D}"${BINPATH} || die
# Ugh: we really need to auto-detect this list.
# It's constantly out of date.
- for x in cpp gcc gccrs g++ c++ gcobol gcov gdc g77 gfortran gccgo gnat*
; do
+ for x in cpp gcc gccrs g++ c++ ga68 gcobol gcov gdc g77 gfortran gccgo
gnat* ; do
# For some reason, g77 gets made instead of ${CTARGET}-g77...
# this should take care of that
if [[ -f ${x} ]] ; then
@@ -3154,6 +3156,11 @@ is_cobol() {
_tc_use_if_iuse cobol
}
+is_algol68() {
+ gcc-lang-supported algol68 || return 1
+ _tc_use_if_iuse algol68
+}
+
is_modula2() {
gcc-lang-supported m2 || return 1
_tc_use_if_iuse cxx && _tc_use_if_iuse modula2
diff --git a/sys-devel/gcc/metadata.xml b/sys-devel/gcc/metadata.xml
index 3cad6f306155..5397dbb3355c 100644
--- a/sys-devel/gcc/metadata.xml
+++ b/sys-devel/gcc/metadata.xml
@@ -7,6 +7,7 @@
Build the Ada language (GNAT) frontend
+ Build the Algol 68 frontend
Enable support for control flow hijacking protection.
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 5c1c373bf8096b3e9a4277e22009c972fe6fd8f7
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Thu Nov 27 19:19:30 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Thu Nov 27 19:19:30 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c1c373b
llvm.org.eclass: Add 22.0.0_pre20251127 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 89e1f7af04ab..60598a95c66e 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
+ 22.0.0_pre20251127)
+
EGIT_COMMIT=8401a8d0be7671fb5089f850a34dc92ad4a2eb12
+ ;;
22.0.0_pre20251120)
EGIT_COMMIT=21c4c1502e3383988ba77eac75b13da7b9426957
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 433ae7d2b54dfd881b2f6b10fab5eed763f6e1ee
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sun Nov 23 19:38:37 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Wed Nov 26 15:44:04 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=433ae7d2
distutils-r1.eclass: Add DISTUTILS_CONFIG_SETTINGS_JSON
Add DISTUTILS_CONFIG_SETTINGS_JSON that can be used to specify the JSON
data for config_settings directly. For the time being, this is only
supported for standalone backends, since we can never know what
arguments they expect and we do not want the value to conflict with any
future defaults for known backends.
This is going to be used by the next version of x11-wm/qtile to control
building the Wayland support (currently handled by sed in the backend
code).
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44745
Closes: https://github.com/gentoo/gentoo/pull/44745
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/distutils-r1.eclass | 28
1 file changed, 28 insertions(+)
diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index c7a17dd39863..5980cc47e5f7 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -415,6 +415,28 @@ unset -f _distutils_set_globals
# }
# @CODE
+# @ECLASS_VARIABLE: DISTUTILS_CONFIG_SETTINGS_JSON
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# The JSON object deserialized into config_settings dictionary passed
+# to the build backend.
+#
+# Allowed only for DISTUTILS_USE_PEP517=standalone. Use DISTUTILS_ARGS
+# for other backends.
+#
+# Example:
+# @CODE
+# python_configure_all() {
+# DISTUTILS_CONFIG_SETTINGS_JSON='
+# {
+# "verbose": true,
+# "targets": ["foo", "bar"],
+# "build-type": "release"
+# }
+# '
+# }
+# @CODE
+
# @FUNCTION: distutils_enable_sphinx
# @USAGE: [--no-autodoc | ...]
# @DESCRIPTION:
@@ -1197,6 +1219,12 @@ distutils_pep517_install() {
;;
esac
+ if [[ ${DISTUTILS_USE_PEP517} == standalone ]]; then
+ config_settings=${DISTUTILS_CONFIG_SETTINGS_JSON}
+ elif [[ -n ${DISTUTILS_CONFIG_SETTINGS_JSON} ]]; then
+ die "DISTUTILS_CONFIG_SETTINGS_JSON supported only for
standalone backends"
+ fi
+
# https://pyo3.rs/latest/building-and-distribution.html#cross-compiling
if tc-is-cross-compiler; then
local -x PYO3_CROSS_LIB_DIR=${SYSROOT}/$(python_get_stdlib)
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 2b94cf3b1b9493448876b622065693b675aae117
Author: Nicolas PARLANT parhuet fr>
AuthorDate: Mon Nov 17 15:08:51 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Wed Nov 26 15:44:04 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2b94cf3b
distutils-r1.eclass: export PKG_CONFIG used by dev-python/pkgconfig
Signed-off-by: Nicolas PARLANT parhuet.fr>
Part-of: https://github.com/gentoo/gentoo/pull/44655
Closes: https://github.com/gentoo/gentoo/pull/44655
Part-of: https://github.com/gentoo/gentoo/pull/44745
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/distutils-r1.eclass | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index 8fc92cf4fca5..c7a17dd39863 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -1486,8 +1486,8 @@ distutils-r1_run_phase() {
local -x PATH=${BUILD_DIR}/install${EPREFIX}/usr/bin:${PATH}
# Set up build environment, bug #513664.
- local -x AR=${AR} CC=${CC} CPP=${CPP} CXX=${CXX}
- tc-export AR CC CPP CXX
+ local -x AR=${AR} CC=${CC} CPP=${CPP} CXX=${CXX}
PKG_CONFIG=${PKG_CONFIG}
+ tc-export AR CC CPP CXX PKG_CONFIG
# Perform additional environment modifications only for python_compile
# phase. This is the only phase where we expect to be calling the
Python
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 3a0e927eac74fd7caf6a29b0aef6c3fbc3a4e4e8
Author: Arsen Arsenovi膰 gentoo org>
AuthorDate: Sun Nov 23 12:47:29 2025 +
Commit: Sam James gentoo org>
CommitDate: Sun Nov 23 18:42:08 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a0e927e
cmake.eclass: fix MYCMAKEARGS not being listed under variables
This variable is a user-variable similar to ECONF_EXTRA in nature.
Document it as such.
Signed-off-by: Arsen Arsenovi膰 gentoo.org>
Signed-off-by: Sam James gentoo.org>
eclass/cmake.eclass | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index b087587868cd..e780e3c35ea6 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -528,8 +528,8 @@ cmake_src_prepare() {
cmake_prepare
}
-# @VARIABLE: MYCMAKEARGS
-# @DEFAULT_UNSET
+# @ECLASS_VARIABLE: MYCMAKEARGS
+# @USER_VARIABLE
# @DESCRIPTION:
# User-controlled environment variable containing arguments to be passed to
# cmake in cmake_src_configure.
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 185e62134732aee519a377c51965ba62ae1fd965
Author: Kerin Millar plushkava net>
AuthorDate: Fri Nov 14 20:35:52 2025 +
Commit: Sam James gentoo org>
CommitDate: Sun Nov 23 18:40:19 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=185e6213
kernel-build.eclass: restore nullglob state in kernel-build_merge_configs()
Presently, the kernel-build_merge_configs() function captures a command
that would restore the prior state of the nullglob shell option. Yet, it
never subsequently bothers to evaluate that command. Instead, it ends up
disabling the option, irrespective of its prior state.
Address this issue by evaluating the content of the 'shopt_save'
variable after the 'user_configs' array variable has been assigned. Note
that to use eval is wholly proper; those eclasses that do not, should.
Fixes: d5b0c16d1d3fdf63d743b22e7192e88e04556b05
Signed-off-by: Kerin Millar plushkava.net>
Signed-off-by: Sam James 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 aa0f7b5894ea..a92151a0b8a6 100644
--- a/eclass/kernel-build.eclass
+++ b/eclass/kernel-build.eclass
@@ -713,7 +713,7 @@ kernel-build_merge_configs() {
local shopt_save=$(shopt -p nullglob)
shopt -s nullglob
local user_configs=( "${BROOT}"/etc/kernel/config.d/*.config )
- shopt -u nullglob
+ eval "${shopt_save}"
local merge_configs=( "${@}" )
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 2129b5458c9f9cfa536a321cb63d57bcb629a640
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Thu Nov 20 18:54:18 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Thu Nov 20 18:54:18 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2129b545
llvm.org.eclass: Add 22.0.0_pre20251120 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 d69877acf24b..89e1f7af04ab 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
+ 22.0.0_pre20251120)
+
EGIT_COMMIT=21c4c1502e3383988ba77eac75b13da7b9426957
+ ;;
22.0.0_pre20251108)
EGIT_COMMIT=0875755f5275dc7a84b1aeb526b7822b47a733c9
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 75816670408b399fd0c0430f9c5e4b7db03cc8f5
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Thu Nov 20 18:53:36 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Thu Nov 20 18:53:36 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75816670
llvm.org.eclass: Remove old 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 96e32fd50205..d69877acf24b 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -75,12 +75,6 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
22.0.0_pre20251108)
EGIT_COMMIT=0875755f5275dc7a84b1aeb526b7822b47a733c9
;;
- 22.0.0_pre20251101)
-
EGIT_COMMIT=7631c73850bec991ec9a7c9cca58c275bb0277a4
- ;;
- 22.0.0_pre20251028)
-
EGIT_COMMIT=c1779f33bdada6e478e882cc23a647ef9abaad96
- ;;
*)
die "Unknown snapshot: ${PV}"
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 7185a2af8b2da08ea33b417a14c70230f4579da6
Author: Sam James gentoo org>
AuthorDate: Thu Nov 20 05:31:37 2025 +
Commit: Sam James gentoo org>
CommitDate: Thu Nov 20 05:32:07 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7185a2af
toolchain.eclass: guard libgdiagnostics check
Missing for kgcc64 etc.
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 83b91f18a7d0..2661b89f188a 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1887,7 +1887,7 @@ toolchain_src_configure() {
confgcc+=( --enable-host-shared )
fi
- if tc_version_is_at_least 15.1 ${PV} ; then
+ if tc_version_is_at_least 15.1 ${PV} && _tc_use_if_iuse libgdiagnostics
; then
confgcc+=( $(use_enable libgdiagnostics) )
fi
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 42a35a5849bcbd696d1f72d697d6d9a1061a26fa Author: Andrei Horodniceanu proton me> AuthorDate: Mon Nov 17 19:34:29 2025 + Commit: Sam James gentoo org> CommitDate: Tue Nov 18 11:06:43 2025 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=42a35a58 toolchain.eclass: Fix D bootstrap circular dependency error Closes: https://bugs.gentoo.org/950310 Signed-off-by: Andrei Horodniceanu proton.me> 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 493712af37f7..83b91f18a7d0 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -455,7 +455,7 @@ if tc_has_feature d && tc_version_is_at_least 12.0 ; then # D in 12+ is self-hosting and needs D to bootstrap. # TODO: package some binary we can use, like for Ada # bug #840182 - BDEPEND+=" d? (
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 45a44f57b75e448e83752071007f3d3e42ca5339
Author: Florian Schmaus gentoo org>
AuthorDate: Sat Nov 15 22:27:48 2025 +
Commit: Florian Schmaus gentoo org>
CommitDate: Mon Nov 17 16:27:17 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=45a44f57
rust.eclass: Add missing @PRE_INHERIT
All non-output non-user variables of the rust.eclass must be set before
inheriting the eclass. Mark those variables @PRE_INHERIT.
Signed-off-by: Florian Schmaus gentoo.org>
eclass/rust.eclass | 6 ++
1 file changed, 6 insertions(+)
diff --git a/eclass/rust.eclass b/eclass/rust.eclass
index b5a992199dce..0365a7640594 100644
--- a/eclass/rust.eclass
+++ b/eclass/rust.eclass
@@ -143,12 +143,14 @@ declare -a -g -r _RUST_SLOTS_ORDERED=(
# == control variables ==
# @ECLASS_VARIABLE: RUST_MAX_VER
+# @PRE_INHERIT
# @DEFAULT_UNSET
# @DESCRIPTION:
# Highest Rust slot supported by the package. Needs to be set before
# rust_pkg_setup is called. If unset, no upper bound is assumed.
# @ECLASS_VARIABLE: RUST_MIN_VER
+# @PRE_INHERIT
# @DEFAULT_UNSET
# @DESCRIPTION:
# Lowest Rust slot supported by the package. Needs to be set before
@@ -167,6 +169,7 @@ declare -a -g -r _RUST_SLOTS_ORDERED=(
# This is set by rust_pkg_setup.
# @ECLASS_VARIABLE: RUST_NEEDS_LLVM
+# @PRE_INHERIT
# @DEFAULT_UNSET
# @DESCRIPTION:
# If set to a non-empty value generate a llvm_slot_${llvm_slot}? gated
@@ -179,6 +182,7 @@ declare -a -g -r _RUST_SLOTS_ORDERED=(
# means that a LLVM slot in LLVM_COMPAT has had all of its Rust slots filtered.
# @ECLASS_VARIABLE: RUST_MULTILIB
+# @PRE_INHERIT
# @DEFAULT_UNSET
# @DESCRIPTION:
# If set to a non-empty value insert MULTILIB_USEDEP into the generated
@@ -194,6 +198,7 @@ declare -a -g -r _RUST_SLOTS_ORDERED=(
# implementations listed in LLVM_COMPAT.
# @ECLASS_VARIABLE: RUST_OPTIONAL
+# @PRE_INHERIT
# @DEFAULT_UNSET
# @DESCRIPTION:
# If set to a non-empty value, the Rust dependency will not be added
@@ -201,6 +206,7 @@ declare -a -g -r _RUST_SLOTS_ORDERED=(
# certain USE themselves.
# @ECLASS_VARIABLE: RUST_REQ_USE
+# @PRE_INHERIT
# @DEFAULT_UNSET
# @DESCRIPTION:
# Additional USE-dependencies to be added to the Rust dependency.
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: c49986f4fd69ee13405ed95c7d351ce9c9931879
Author: Sam James gentoo org>
AuthorDate: Mon Nov 17 05:27:36 2025 +
Commit: Sam James gentoo org>
CommitDate: Mon Nov 17 05:30:30 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c49986f4
toolchain.eclass: simplify dependency specification for USE=ada or USE=d
This ends up both being simpler to read but also helps Portage in two
ways:
1) not wasting backtracking cycles on it, and
2) pulling in unnecessary slots, allowing a shortcut to be taken with
ada-bootstrap or older gcc.
Bug: https://bugs.gentoo.org/947587
Bug: https://bugs.gentoo.org/950310
Thanks-to: Zac Medico gentoo.org>
Signed-off-by: Sam James gentoo.org>
eclass/toolchain.eclass | 7 +++
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 10e31a202c3a..493712af37f7 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -431,9 +431,8 @@ if [[ ${PN} != gnat-gpl ]] && tc_has_feature ada ; then
BDEPEND+="
ada? (
|| (
-
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: af05bc6a8eb7c0f924505f48fec7cd42f8c952d8
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Tue Nov 11 21:26:51 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Nov 16 19:00:14 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=af05bc6a
cmake.eclass: Add warning for installed CMake modules w/ <3.10 minimum
These are even more important, as they can break any number of revdeps.
Deduplicate _cmake_minreqver-info() and reuse it from src_install().
Properly fixes 4e35968ea53138d8b2726f8f2b9b1804dc291767.
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 127 +---
1 file changed, 62 insertions(+), 65 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 8536b818fca5..fdcf884e32b2 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -321,82 +321,83 @@ _cmake_minreqver-get() {
# @FUNCTION: _cmake_minreqver-info
# @INTERNAL
# @DESCRIPTION:
-# QA Notice and file listings for any CMakeLists.txt file not meeting various
-# minimum standards for cmake_minimum_required.
+# QA Notice and file listings for any CMake file not meeting various minimum
+# standards for cmake_minimum_required. May be called from prepare or install
+# phase, adjusts QA notice accordingly (build or installed files warning).
_cmake_minreqver-info() {
local warnlvl
- [[ -n ${_CMAKE_MINREQVER_CMAKE305[@]} ]] && warnlvl=305
- [[ -n ${_CMAKE_MINREQVER_CMAKE310[@]} ]] || [[ ${warnlvl} ]] &&
warnlvl=310
+ [[ ${#_CMAKE_MINREQVER_CMAKE305[@]} != 0 ]] && warnlvl=305
+ [[ ${#_CMAKE_MINREQVER_CMAKE310[@]} != 0 ]] || [[ -n ${warnlvl} ]] &&
warnlvl=310
[[ ${CMAKE_ECM_MODE} == true ]] &&
- { [[ -n ${_CMAKE_MINREQVER_CMAKE316[@]} ]] || [[ ${warnlvl} ]];
} && warnlvl=316
+ { [[ ${#_CMAKE_MINREQVER_CMAKE316[@]} != 0 ]] || [[ -n
${warnlvl} ]]; } && warnlvl=316
local weak_qaw="QA Notice: "
minreqver_qanotice() {
+ bug() {
+ case ${1} in
+ 305) echo "951350" ;;
+ 310) echo "964405" ;;
+ 316) echo "964407" ;;
+ esac
+ }
+ minreqver_qanotice_prepare() {
+ case ${1} in
+ 305)
+ eqawarn "${weak_qaw}Compatibility with
CMake < 3.5 has been removed from CMake 4,"
+ eqawarn "${CATEGORY}/${PN} will fail to
build w/o a fix."
+ ;;
+ 310) eqawarn "${weak_qaw}Compatibility with
CMake < 3.10 will be removed in a future release." ;;
+ 316) eqawarn "${weak_qaw}Compatibility w/ CMake
< 3.16 will be removed in future ECM release." ;;
+ esac
+ }
+ minreqver_qanotice_install() {
+ case ${1} in
+ 305)
+ eqawarn "${weak_qaw}Package installs
CMake module(s) incompatible with CMake 4,"
+ eqawarn "breaking any packages relying
on it."
+ ;;
+ 31[06])
+ eqawarn "${weak_qaw}Package installs
CMake module(s) w/ <${1/3/3.} minimum version that will"
+ eqawarn "be unsupported by future
releases and is going to break any packages relying on it."
+ ;;
+ esac
+ }
+ minreqver_qanotice_${EBUILD_PHASE} ${1}
+ eqawarn "See also tracker bug #$(bug ${1}); check existing or
file a new bug for this package."
case ${1} in
- 305)
- eqawarn "${weak_qaw}Compatibility with CMake <
3.5 has been removed from CMake 4,"
- eqawarn "${CATEGORY}/${PN} will fail to build
w/o a fix."
- eqawarn "See also tracker bug #951350; check
existing bug or file a new one for"
- eqawarn "this package, and take it upstream."
- ;;
- 310)
- eqawarn "${weak_qaw}Compatibility with CMake <
3.10 will be removed in a future release."
- eqawarn "If not fixed in upstream's code
repository, we should make sure they are aware."
- eqawarn "See also tracker bug #964405; check
existing or file a new bug for this package."
- ;;
- 316)
- eqawarn "${weak_qaw}Compatibility w/ CMake <
3.
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 0808bdf78e2d749401f358530fb26f442206a286
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Tue Nov 11 22:47:27 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Nov 16 19:00:14 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0808bdf7
cmake.eclass: Simplify _cmake_minreqver_check into _cmake_minreqver-get
The original function was convoluted and simply did too much. Make it
reusable by having it do exactly one thing and deal with the results from
the calling function. The refactoring pays for itself by losing 18 lines.
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 88 +
1 file changed, 35 insertions(+), 53 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 789f2f405c48..8536b818fca5 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -130,7 +130,7 @@ fi
# @DEFAULT_UNSET
# @DESCRIPTION:
# Internal array containing : tuples detected by
-# _cmake_minreqver-check() for any CMakeLists.txt with cmake_minimum_required
+# _cmake_minreqver-get() for any CMake file with cmake_minimum_required
# version lower than 3.5.
_CMAKE_MINREQVER_CMAKE305=()
@@ -138,7 +138,7 @@ _CMAKE_MINREQVER_CMAKE305=()
# @DEFAULT_UNSET
# @DESCRIPTION:
# Internal array containing : tuples detected by
-# _cmake_minreqver-check() for any CMakeLists.txt with cmake_minimum_required
+# _cmake_minreqver-get() for any CMake file with cmake_minimum_required
# version lower than 3.10 (causes CMake warnings as of 4.0) on top of those
# already added to _CMAKE_MINREQVER_CMAKE305.
_CMAKE_MINREQVER_CMAKE310=()
@@ -147,7 +147,7 @@ _CMAKE_MINREQVER_CMAKE310=()
# @DEFAULT_UNSET
# @DESCRIPTION:
# Internal array containing : tuples detected by
-# _cmake_minreqver-check() for any CMakeLists.txt with cmake_minimum_required
+# _cmake_minreqver-get() for any CMake file with cmake_minimum_required
# version lower than 3.16 (causes ECM warnings since 5.100), on top of those
# already added to _CMAKE_MINREQVER_CMAKE305 and _CMAKE_MINREQVER_CMAKE310.
_CMAKE_MINREQVER_CMAKE316=()
@@ -302,49 +302,20 @@ _cmake_check_build_dir() {
mkdir -p "${BUILD_DIR}" || die
}
-# @FUNCTION: _cmake_minreqver-check
-# @USAGE: or
+# @FUNCTION: _cmake_minreqver-get
+# @USAGE:
# @INTERNAL
# @DESCRIPTION:
-# Internal function for flagging any deprecated or unsupported
-# cmake_minimum_required version in a given CMake file .
-# If is specified as second arg, only check against that value.
-# Returns 0 if the regex matched (a lower-than-specified version found).
-_cmake_minreqver-check() {
- local ver chk=1
- if [[ "$#" == 2 ]]; then
- local file="${1}"
- local lt_version="${2}"
- elif [[ "$#" == 1 ]]; then
- local file="${1}"
- else
- die "${FUNCNAME[0]} must be passed either one or two arguments"
+# Internal function for extracting cmake_minimum_required version from a
+# given CMake file . Echos minimum version if found.
+_cmake_minreqver-get() {
+ if [[ $# -ne 1 ]]; then
+ die "${FUNCNAME[0]} must be passed exactly one argument"
fi
- ver=$(sed -ne
"/^\s*cmake_minimum_required/I{s/.*\(\.\.\.*\|\s\)\([0-9][0-9.]*\)\([)]\|\s\).*$/\2/p;q}"
\
- "${file}" 2>/dev/null \
+ local ver=$(sed -ne
"/^\s*cmake_minimum_required/I{s/.*\(\.\.\.*\|\s\)\([0-9][0-9.]*\)\([)]\|\s\).*$/\2/p;q}"
\
+ "${1}" 2>/dev/null \
)
- if [[ -z ${ver} ]]; then
- return 1 # no cmake_minimum_required found
- fi
- if [[ -n ${lt_version} ]]; then
- chk=$(ver_test "${ver}" -lt "${lt_version}")
- else
- if ver_test "${ver}" -lt "3.5"; then
- _CMAKE_MINREQVER_CMAKE305+=( "${file}":"${ver}" )
- chk=0
- fi
- # we don't want duplicates that were already flagged
- if [[ $chk != 0 ]] && ver_test "${ver}" -lt "3.10"; then
- _CMAKE_MINREQVER_CMAKE310+=( "${file}":"${ver}" )
- chk=0
- fi
- # we don't want duplicates that were already flagged
- if [[ $chk != 0 ]] && ver_test "${ver}" -lt "3.16"; then
- _CMAKE_MINREQVER_CMAKE316+=( "${file}":"${ver}" )
- chk=0
- fi
- fi
- return ${chk}
+ [[ -n ${ver} ]] && echo ${ver}
}
# @FUNCTION: _cmake_minreqver-info
@@ -389,7 +360,7 @@ _cmake_minreqver-info() {
305)
eqawarn "The following CMakeLists.txt files are
causing errors:"
for info in ${_CMAKE_MINREQVER_CMAKE305[*]}; do
- eqawarn " ${info#"${CMAKE_USE_DIR}/"}";
+ eqawarn " ${info}";
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 27b44df42cd1546364bfc4f3c976fd70b0bf0863
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sat Nov 8 20:37:14 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Nov 16 19:00:15 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27b44df4
cmake.eclass: Introduce cmake_prepare-per-cmakelists
Override this to be provided with a hook into the cmake_src_prepare loop
over all CMakeLists.txt below CMAKE_USE_DIR. Will be called from inside
that loop with as single argument.
Used for recursive CMakeLists.txt detections and modifications.
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 12
1 file changed, 12 insertions(+)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index fdcf884e32b2..b087587868cd 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -409,6 +409,17 @@ _cmake_minreqver-info() {
fi
}
+# @FUNCTION: cmake_prepare-per-cmakelists
+# @USAGE:
+# @DESCRIPTION:
+# Override this to be provided with a hook into the cmake_src_prepare loop
+# over all CMakeLists.txt below CMAKE_USE_DIR. Will be called from inside
+# that loop with as single argument.
+# Used for recursive CMakeLists.txt detections and modifications.
+cmake_prepare-per-cmakelists() {
+ return
+}
+
# @FUNCTION: _cmake_modify-cmakelists
# @INTERNAL
# @DESCRIPTION:
@@ -450,6 +461,7 @@ _cmake_modify-cmakelists() {
_CMAKE_MINREQVER_CMAKE316+=(
"${file#"${CMAKE_USE_DIR}/"}":"${ver}" )
fi
fi
+ cmake_prepare-per-cmakelists ${file}
done < <(find "${CMAKE_USE_DIR}" -type f -iname "CMakeLists.txt"
-print0 || die)
# NOTE Append some useful summary here
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: a69a87c227a9fe8a080b8a7143053b97648ec878
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sun Nov 9 09:38:30 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Nov 16 19:00:14 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a69a87c2
cmake.eclass: cmake_comment_add_subdirectory: optionally accept "-f "
New function description:
Comment out one or more add_subdirectory calls with #DONOTBUILD in
a) a given file path (error out on nonexisting path)
b) a CMakeLists.txt file inside a given directory (ewarn if not found)
c) CMakeLists.txt in current directory (do nothing if not found).
c) is unchanged prior behaviour.
Thanks-to: Zurab Kvachadze gmail.com>
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 43 +--
1 file changed, 33 insertions(+), 10 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index d865c85d8c7f..789f2f405c48 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -214,21 +214,44 @@ cmake_run_in() {
}
# @FUNCTION: cmake_comment_add_subdirectory
-# @USAGE:
+# @USAGE: [-f ] []
# @DESCRIPTION:
-# Comment out one or more add_subdirectory calls in CMakeLists.txt in the
current directory
+# Comment out one or more add_subdirectory calls with #DONOTBUILD in
+# a) a given file path (error out on nonexisting path)
+# b) a CMakeLists.txt file inside a given directory (ewarn if not found)
+# c) CMakeLists.txt in current directory (do nothing if not found).
cmake_comment_add_subdirectory() {
- if [[ -z ${1} ]]; then
- die "${FUNCNAME[0]} must be passed at least one directory name
to comment"
+ local d filename="CMakeLists.txt"
+ if [[ $# -lt 1 ]]; then
+ die "${FUNCNAME[0]} must be passed at least one subdirectory
name to comment"
fi
+ case ${1} in
+ -f)
+ if [[ $# -ge 3 ]]; then
+ filename="${2}"
+ if [[ -d ${filename} ]]; then
+ filename+="/CMakeLists.txt"
+ if [[ ! -e ${filename} ]]; then
+ ewarn "You've given me nothing
to work with in ${filename}!"
+ return
+ fi
+ elif [[ ! -e ${filename} ]]; then
+ die "${FUNCNAME}: called on
non-existing ${filename}"
+ fi
+ else
+ die "${FUNCNAME[0]}: bad number of arguments:
-f expected"
+ fi
+ shift 2
+ ;;
+ *)
+ [[ -e ${filename} ]] || return
+ ;;
+ esac
- [[ -e "CMakeLists.txt" ]] || return
-
- local d
- for d in $@; do
+ for d in "$@"; do
d=${d//\//\\/}
- sed -e
"/add_subdirectory[[:space:]]*([[:space:]]*${d}[[:space:]]*)/I
s/^/#DONOTCOMPILE /" \
- -i CMakeLists.txt || die "failed to comment
add_subdirectory(${d})"
+ sed -e
"/add_subdirectory[[:space:]]*([[:space:]]*${d}[[:space:]]*)/I s/^/#DONOTBUILD
/" \
+ -i ${filename} || die "failed to comment
add_subdirectory(${d})"
done
}
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: deb2ca02085dbad244039c85427224c283aa1ec1 Author: Andreas Sturmlechner gentoo org> AuthorDate: Wed Oct 1 19:47:15 2025 + Commit: Andreas Sturmlechner gentoo org> CommitDate: Sun Nov 16 19:00:13 2025 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=deb2ca02 cmake.eclass: Drop EAPI-7 support Signed-off-by: Andreas Sturmlechner gentoo.org> eclass/cmake.eclass | 107 ++-- 1 file changed, 20 insertions(+), 87 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 4f1a0ff60615..0391d37e3398 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -10,7 +10,7 @@ # Maciej Mrozowski # (undisclosed contributors) # Original author: Zephyrus ([email protected]) -# @SUPPORTED_EAPIS: 7 8 +# @SUPPORTED_EAPIS: 8 # @PROVIDES: ninja-utils # @BLURB: common ebuild functions for cmake-based packages # @DESCRIPTION: @@ -19,10 +19,6 @@ # out-of-source builds (default) and in-source builds. case ${EAPI} in - 7) - ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" - ewarn "${CATEGORY}/${PF}: Support will be removed on 2025-11-14. Please port to newer EAPI." - ;; 8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac @@ -38,16 +34,13 @@ inherit flag-o-matic multiprocessing ninja-utils toolchain-funcs xdg-utils # Build directory where all cmake processed files should be generated. # For in-source build it's fixed to ${CMAKE_USE_DIR}. # For out-of-source build it can be overridden, by default it uses -# ${CMAKE_USE_DIR}_build (in EAPI-7: ${WORKDIR}/${P}_build). -[[ ${EAPI} == 7 ]] && : "${BUILD_DIR:=${WORKDIR}/${P}_build}" -# EAPI-8: set inside _cmake_check_build_dir +# ${CMAKE_USE_DIR}_build (set inside _cmake_check_build_dir). # @ECLASS_VARIABLE: CMAKE_BINARY # @DESCRIPTION: # Eclass can use different cmake binary than the one provided in by system. : "${CMAKE_BINARY:=cmake}" -[[ ${EAPI} == 7 ]] && : "${CMAKE_BUILD_TYPE:=Gentoo}" # @ECLASS_VARIABLE: CMAKE_BUILD_TYPE # @DESCRIPTION: # Set to override default CMAKE_BUILD_TYPE. Only useful for packages @@ -57,8 +50,6 @@ inherit flag-o-matic multiprocessing ninja-utils toolchain-funcs xdg-utils # The default is RelWithDebInfo as that is least likely to append undesirable # flags. However, you may still need to sed CMake files or choose a different # build type to achieve desirable results. -# -# In EAPI 7, the default was non-standard build type of Gentoo. : "${CMAKE_BUILD_TYPE:=RelWithDebInfo}" # @ECLASS_VARIABLE: CMAKE_IN_SOURCE_BUILD @@ -79,15 +70,13 @@ inherit flag-o-matic multiprocessing ninja-utils toolchain-funcs xdg-utils # @PRE_INHERIT # @DEFAULT_UNSET # @DESCRIPTION: -# Array of .cmake modules to be removed in ${CMAKE_USE_DIR} (in EAPI-7: ${S}) -# during src_prepare, in order to force packages to use the system version. +# Array of .cmake modules to be removed in ${CMAKE_USE_DIR} during +# src_prepare, in order to force packages to use the system version. # By default, contains "FindBLAS" and "FindLAPACK". # Set to empty to disable removing modules entirely. if [[ ${CMAKE_REMOVE_MODULES_LIST} ]]; then - if [[ ${EAPI} != 7 ]]; then - [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* ]] || - die "CMAKE_REMOVE_MODULES_LIST must be an array" - fi + [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* ]] || + die "CMAKE_REMOVE_MODULES_LIST must be an array" else if ! [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* && ${#CMAKE_REMOVE_MODULES_LIST[@]} -eq 0 ]]; then CMAKE_REMOVE_MODULES_LIST=( FindBLAS FindLAPACK ) @@ -98,7 +87,7 @@ fi # @DESCRIPTION: # Sets the directory where we are working with cmake, for example when # application uses autotools and only one plugin needs to be done by cmake. -# By default it uses current working directory (in EAPI-7: ${S}). +# By default it uses current working directory. # @ECLASS_VARIABLE: CMAKE_VERBOSE # @USER_VARIABLE @@ -167,9 +156,9 @@ _CMAKE_MINREQVER_CMAKE316=() # @USER_VARIABLE # @DEFAULT_UNSET # @DESCRIPTION: -# After running cmake_src_prepare, sets ${CMAKE_USE_DIR} (in EAPI-7: ${S}) to -# read-only. This is a user flag and should under _no circumstances_ be set in -# the ebuild. Helps in improving QA of build systems that write to source tree. +# After running cmake_src_prepare, sets ${CMAKE_USE_DIR} to read-only. +# This is a user flag and should under _no circumstances_ be set in the +# ebuild. Helps in improving QA of build systems that write to source tree. # @ECLASS_VARIABLE: CMAKE_SKIP_TESTS # @DEFAULT_UNSET @@ -342,13 +331,8 @@ cmake-utils_useno() { _cmake_banned_func "" "$@" ; } # @DESCRIPTION: # Determine using IN or OUT source build _cmake_check_build_dir() { - if [[ ${EAPI} == 7 ]]; then - : "${CMAKE_USE_DIR:=${S}}" - else - # Since E
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 62f2a73782ec6f37cfba662c8eb84a7a126324de
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Thu May 18 20:07:35 2023 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Nov 16 19:00:13 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=62f2a737
cmake.eclass: Cleanup fatal banned functions and meta variables
All of this was ported away from long ago, cmake-utils.eclass was removed
in 2022.
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 91 -
1 file changed, 91 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 0391d37e3398..1c57b8ead962 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -165,13 +165,6 @@ _CMAKE_MINREQVER_CMAKE316=()
# @DESCRIPTION:
# Array of tests that should be skipped when running CTest.
-[[ ${CMAKE_MIN_VERSION} ]] && die "CMAKE_MIN_VERSION is banned; if necessary,
set BDEPEND=\">=dev-build/cmake-${CMAKE_MIN_VERSION}\" directly"
-[[ ${CMAKE_BUILD_DIR} ]] && die "The ebuild must be migrated to BUILD_DIR"
-[[ ${CMAKE_REMOVE_MODULES} ]] && die "CMAKE_REMOVE_MODULES is banned, set
CMAKE_REMOVE_MODULES_LIST array instead"
-[[ ${CMAKE_UTILS_QA_SRC_DIR_READONLY} ]] && die "Use CMAKE_QA_SRC_DIR_READONLY
instead"
-[[ ${WANT_CMAKE} ]] && die "WANT_CMAKE has been removed and is a no-op"
-[[ ${PREFIX} ]] && die "PREFIX has been removed and is a no-op"
-
case ${CMAKE_ECM_MODE} in
auto|true|false) ;;
*)
@@ -232,14 +225,6 @@ cmake_comment_add_subdirectory() {
done
}
-# @FUNCTION: comment_add_subdirectory
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use cmake_comment_add_subdirectory instead.
-comment_add_subdirectory() {
- die "comment_add_subdirectory is banned. Use
cmake_comment_add_subdirectory instead"
-}
-
# @FUNCTION: cmake_use_find_package
# @USAGE:
# @DESCRIPTION:
@@ -258,74 +243,6 @@ cmake_use_find_package() {
echo "-DCMAKE_DISABLE_FIND_PACKAGE_$2=$(use $1 && echo OFF || echo ON)"
}
-# @FUNCTION: _cmake_banned_func
-# @INTERNAL
-# @DESCRIPTION:
-# Banned functions are banned.
-_cmake_banned_func() {
- die "${FUNCNAME[1]} is banned. use
-D$1=\"\$(usex $2)\" instead"
-}
-
-# @FUNCTION: cmake-utils_use_with
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use -DWITH_FOO=$(usex foo) instead.
-cmake-utils_use_with() { _cmake_banned_func WITH_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_enable
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use -DENABLE_FOO=$(usex foo) instead.
-cmake-utils_use_enable() { _cmake_banned_func ENABLE_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_disable
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use -DDISABLE_FOO=$(usex !foo) instead.
-cmake-utils_use_disable() { _cmake_banned_func DISABLE_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_no
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use -DNO_FOO=$(usex !foo) instead.
-cmake-utils_use_no() { _cmake_banned_func NO_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_want
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use -DWANT_FOO=$(usex foo) instead.
-cmake-utils_use_want() { _cmake_banned_func WANT_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_build
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use -DBUILD_FOO=$(usex foo) instead.
-cmake-utils_use_build() { _cmake_banned_func BUILD_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_has
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use -DHAVE_FOO=$(usex foo) instead.
-cmake-utils_use_has() { _cmake_banned_func HAVE_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use_use
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use -DUSE_FOO=$(usex foo) instead.
-cmake-utils_use_use() { _cmake_banned_func USE_ "$@" ; }
-
-# @FUNCTION: cmake-utils_use
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use -DFOO=$(usex foo) instead.
-cmake-utils_use() { _cmake_banned_func "" "$@" ; }
-
-# @FUNCTION: cmake-utils_useno
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use -DNOFOO=$(usex !foo) instead.
-cmake-utils_useno() { _cmake_banned_func "" "$@" ; }
-
# @FUNCTION: _cmake_check_build_dir
# @INTERNAL
# @DESCRIPTION:
@@ -846,14 +763,6 @@ cmake_build() {
popd > /dev/null || die
}
-# @FUNCTION: cmake-utils_src_make
-# @INTERNAL
-# @DESCRIPTION:
-# Banned. Use cmake_build instead.
-cmake-utils_src_make() {
- die "cmake-utils_src_make is banned. Use cmake_build instead"
-}
-
# @ECLASS_VARIABLE: CTEST_JOBS
# @USER_VARIABLE
# @DESCRIPTION:
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: b564d03e0dad824e6dabeaa1136351c26fd964e9
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sat Nov 1 12:24:33 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Nov 16 19:00:14 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b564d03e
cmake.eclass: Wipe default optimization flags unconditionally
Mark CMAKE_BUILD_TYPE=Gentoo as no-op. This was obsolete a long time ago,
the last two ebuilds setting it in ::gentoo were not using it for that
purpose either and were since fixed.
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 33 +++--
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 1c57b8ead962..d865c85d8c7f 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -165,6 +165,13 @@ _CMAKE_MINREQVER_CMAKE316=()
# @DESCRIPTION:
# Array of tests that should be skipped when running CTest.
+case ${CMAKE_BUILD_TYPE} in
+ Gentoo)
+ ewarn "\${CMAKE_BUILD_TYPE} \"Gentoo\" is a no-op. Default is
RelWithDebInfo."
+ ;;
+ *) ;;
+esac
+
case ${CMAKE_ECM_MODE} in
auto|true|false) ;;
*)
@@ -652,20 +659,18 @@ cmake_src_configure() {
fi
# Wipe the default optimization flags out of CMake
- if [[ ${CMAKE_BUILD_TYPE} != Gentoo ]]; then
- cat >> ${common_config} <<- _EOF_ || die
- set(CMAKE_ASM_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE
STRING "")
- set(CMAKE_ASM-ATT_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE
STRING "")
- set(CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING
"")
- set(CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE
STRING "")
- set(CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE
STRING "")
- set(CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} ""
CACHE STRING "")
- set(CMAKE_MODULE_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} ""
CACHE STRING "")
- set(CMAKE_SHARED_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} ""
CACHE STRING "")
- set(CMAKE_STATIC_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} ""
CACHE STRING "")
- set(CMAKE_INSTALL_ALWAYS 1) # see Gentoo-bug 735820
- _EOF_
- fi
+ cat >> ${common_config} <<- _EOF_ || die
+ set(CMAKE_ASM_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
+ set(CMAKE_ASM-ATT_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING
"")
+ set(CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
+ set(CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
+ set(CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING
"")
+ set(CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE
STRING "")
+ set(CMAKE_MODULE_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE
STRING "")
+ set(CMAKE_SHARED_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE
STRING "")
+ set(CMAKE_STATIC_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE
STRING "")
+ set(CMAKE_INSTALL_ALWAYS 1) # see Gentoo-bug 735820
+ _EOF_
# Make the array a local variable since <=portage-2.1.6.x does not
support
# global arrays (see bug #297255). But first make sure it is
initialised.
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: a4eae64aa24da57d3f6292768565ed3a4115c99a
Author: Sam James gentoo org>
AuthorDate: Mon Nov 10 04:04:50 2025 +
Commit: Sam James gentoo org>
CommitDate: Sun Nov 16 05:50:33 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4eae64a
meson.eclass: support incremental LTO for GCC
Support -flto-incremental=/path/to/cache being used with GCC. Personally,
I am using this hook in /etc/portage/bashrc:
```
pre_src_configure() {
if [[ -n ${PORTAGE_LTO_CACHE} ]] ; then
local lto_path=/var/tmp/portage/lto/${CATEGORY}/${PN}
mkdir -p "${lto_path}"
export CFLAGS="${CFLAGS} -flto-incremental=${lto_path}
-flto-compression-level=19"
export CXXFLAGS="${CXXFLAGS} -flto-incremental=${lto_path}
-flto-compression-level=19"
export LDFLAGS="${LDFLAGS} -flto-incremental=${lto_path}
-flto-compression-level=19"
fi
}
```
... and then `PORTAGE_LTO_CACHE=1` in my development environment.
Signed-off-by: Sam James gentoo.org>
eclass/meson.eclass | 14 +-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index a2bc5537e458..06675e02b82b 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Gentoo Authors
+# Copyright 2017-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: meson.eclass
@@ -305,6 +305,18 @@ setup_meson_src_configure() {
MESONARGS+=( -Db_lto_threads=${v} )
;;
esac
+
+ if has_version -b ">=dev-build/meson-1.10.0" ; then
+ local v=$(get-flag -flto-incremental=)
+ v=${v#-flto-incremental=}
+ if [[ ${v} ]] ; then
+ MESONARGS+=(
+ -Db_thinlto_cache=true
+ -Db_thinlto_cache_dir=${v}
+ )
+ fi
+ fi
+
# finally, remove it from *FLAGS to avoid passing it:
# - twice, with potentially different values
# - on excluded targets
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 7e369fcd45c3c4b1fa941bf539ca6b0297a1860e
Author: Zurab Kvachadze gmail com>
AuthorDate: Wed Nov 12 15:20:40 2025 +
Commit: Sam James gentoo org>
CommitDate: Thu Nov 13 12:33:11 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e369fcd
nginx-module.eclass: Add ebegin/eend when patching module's config
So that users are aware that some patching takes place.
Signed-off-by: Zurab Kvachadze gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/44576
Closes: https://github.com/gentoo/gentoo/pull/44576
Signed-off-by: Sam James gentoo.org>
eclass/nginx-module.eclass | 10 --
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/eclass/nginx-module.eclass b/eclass/nginx-module.eclass
index 714467248de2..c28ff5e316d2 100644
--- a/eclass/nginx-module.eclass
+++ b/eclass/nginx-module.eclass
@@ -615,6 +615,8 @@ nginx-module_src_prepare() {
debug-print-function "${FUNCNAME[0]}" "$@"
pushd "${NGINX_MOD_S}/${NGINX_MOD_CONFIG_DIR}" >/dev/null ||
die "pushd failed"
+
+ ebegin "Patching module's config"
# Since NGINX does not guarantee ABI or API stability, we utilise
# preprocessor macros that were used to compile NGINX itself, to build
third
# party modules. As such, we do not want for the dummy preprocessor
macros
@@ -638,9 +640,13 @@ nginx-module_src_prepare() {
# header after the whole configuration, as it may contain other
preprocessor
# macros than only the module's ones.
sed -i -e '1i\' -e ': > build/ngx_auto_config.h' config ||
- die "sed failed"
+ { eend $? || die "sed failed"; }
+
echo 'mv build/ngx_auto_config.h build/__ngx_gentoo_mod_config.h' \
- >> config || die "echo failed"
+ >> config
+ # We specifically need the $? of echo.
+ # shellcheck disable=SC2320
+ eend $? || die "echo 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/
commit: 63ce9d6693445ffc44b2685b8e66df4704c9d24c
Author: Zurab Kvachadze gmail com>
AuthorDate: Tue Nov 4 03:26:12 2025 +
Commit: Sam James gentoo org>
CommitDate: Thu Nov 13 12:33:10 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=63ce9d66
nginx-module.eclass: Add ngx_mod_link_lib helper
The helpers make it easier to link to external libraries from ebuilds
to accommodate to NGINX build system deficiencies.
Signed-off-by: Zurab Kvachadze gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/44576
Signed-off-by: Sam James gentoo.org>
eclass/nginx-module.eclass | 21 -
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/eclass/nginx-module.eclass b/eclass/nginx-module.eclass
index f17b7d4445be..714467248de2 100644
--- a/eclass/nginx-module.eclass
+++ b/eclass/nginx-module.eclass
@@ -24,7 +24,7 @@
# libraries/APIs. In the example HMAC case, the module actually requires
# libcrypto, not the http_ssl module, so the ebuild code reflects this by
# patching the module's 'config' file and depending on dev-libs/openssl
directly
-# using the ngx_mod_append_libs() function.
+# using the ngx_mod_link_lib() function.
#
# If the module makes use of the ngx_devel_kit (NDK) or any other NGINX
# module, there are two approaches.
@@ -349,6 +349,25 @@ ngx_mod_link_module() {
ngx_mod_append_libs "${sonames[@]/#/-l:}"
}
+# @FUNCTION: ngx_mod_link_lib
+# @USAGE:
+# @DESCRIPTION:
+# Adds the necessary CFLAGS and LDFLAGS to link the NGINX module with the
+# library specified by its . The {C,LD}FLAGS are
+# obtained using pkgconfig. The caller must ensure that pkgconfig has been
+# added to BDEPEND.
+ngx_mod_link_lib() {
+ debug-print-function "${FUNCNAME[0]}" "$@"
+ [[ $# -ne 1 ]] && die "${FUNCNAME[0]} must receive exactly one argument"
+ local pkgconf
+ pkgconf="$(tc-getPKG_CONFIG)"
+
+ "${pkgconf}" --exists "$1" || die "The pkgconfig library $1 does not
exist"
+
+ append-cflags "$("${pkgconf}" --cflags "$1")"
+ ngx_mod_append_libs "$("${pkgconf}" --libs "$1")"
+}
+
#-> ebuild-defined variables <-
# @ECLASS_VARIABLE: NGINX_MOD_S
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: c9e91f7b6e73fba520c5e9ba25d3b14004d31099
Author: Zurab Kvachadze gmail com>
AuthorDate: Tue Nov 4 02:46:23 2025 +
Commit: Sam James gentoo org>
CommitDate: Thu Nov 13 12:33:10 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c9e91f7b
nginx-module.eclass: Tiny documentation improvements
Signed-off-by: Zurab Kvachadze gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/44576
Signed-off-by: Sam James gentoo.org>
eclass/nginx-module.eclass | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/eclass/nginx-module.eclass b/eclass/nginx-module.eclass
index 1c321cb80766..f17b7d4445be 100644
--- a/eclass/nginx-module.eclass
+++ b/eclass/nginx-module.eclass
@@ -72,7 +72,7 @@
# RDEPEND="${DEPEND}"
#
# src_configure() {
-# if use iconv; Then
+# if use iconv; then
# ngx_mod_link_module "www-nginx/ngx-iconv"
# ...
# fi
@@ -381,8 +381,8 @@ S="${WORKDIR}/nginx"
# extension ".so"). For some modules, may consist of more than one shared
# object.
#
-# This variable is set in the nginx-module_src_compile() function. Its
contents
-# are undefined before that.
+# This variable is set by the nginx-module_src_compile() phase function. Its
+# contents are undefined before the function has been called.
#
# Example value:
# @CODE
@@ -529,7 +529,8 @@ fi
# @FUNCTION: _ngx_mod_set_test_env
# @INTERNAL
# @DESCRIPTION:
-# Sets global variables like IUSE and BDEPEND for tests.
+# Sets global variables like IUSE and BDEPEND for OpenResty Test::Nginx-based
+# tests.
_ngx_mod_set_test_env() {
IUSE="test"
RESTRICT="!test? ( test )"
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 71c7a696bf1455f433e6266dfbdc27ef9e28fdae
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sat Nov 8 19:13:12 2025 +
Commit: Sam James gentoo org>
CommitDate: Thu Nov 13 06:16:27 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=71c7a696
ninja-utils.eclass: Permit "ninja-reference"
Permit "ninja-reference" to explicitly force dev-build/ninja. Update
the documentation, since the code no longer permits "other values".
Closes: https://bugs.gentoo.org/922639
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44539
Signed-off-by: Sam James gentoo.org>
eclass/ninja-utils.eclass | 15 ++-
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/eclass/ninja-utils.eclass b/eclass/ninja-utils.eclass
index f07c7d410987..c38fd4094a4e 100644
--- a/eclass/ninja-utils.eclass
+++ b/eclass/ninja-utils.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: ninja-utils.eclass
@@ -29,9 +29,14 @@ _NINJA_UTILS_ECLASS=1
# @PRE_INHERIT
# @DESCRIPTION:
# Specify a compatible ninja implementation to be used by eninja().
-# At this point only "ninja" and "samu" are explicitly supported,
-# but other values can be set where NINJA_DEPEND will then be set
-# to a blank variable.
+# Accepts the following values:
+#
+# - ninja -- use the "ninja" symlink per app-alternatives/ninja
+#
+# - ninja-reference -- use "ninja-reference" for dev-build/ninja
+#
+# - samu -- use "samu" for dev-build/samurai
+#
# The default is set to "ninja".
: "${NINJA:=ninja}"
@@ -75,7 +80,7 @@ get_NINJAOPTS() {
# also supports being called via 'nonfatal'.
eninja() {
case "${NINJA}" in
- ninja|samu)
+ ninja|ninja-reference|samu)
;;
*)
ewarn "Unknown value '${NINJA}' for \${NINJA}"
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 37dd8af58378b219bdce3b0cf465465eb3a86ada
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sat Nov 8 19:18:59 2025 +
Commit: Sam James gentoo org>
CommitDate: Thu Nov 13 06:16:27 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=37dd8af5
ninja-utils.eclass: Respect NINJA for NINJA_DEPEND again
Make NINJA_DEPEND respect the value of NINJA again. This was changed
while updating for app-alternatives/ninja. However, it is still valid
to override NINJA in ebuilds, in which case we want NINJA_DEPEND
to refer to the appropriate implementation rather than any alternative.
Fixes: 2fa125d055dcf ("ninja-utils.eclass: use app-alternatives/ninja")
Bug: https://bugs.gentoo.org/922639
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44539
Signed-off-by: Sam James gentoo.org>
eclass/ninja-utils.eclass | 12 +++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/eclass/ninja-utils.eclass b/eclass/ninja-utils.eclass
index c38fd4094a4e..08743bcea1a4 100644
--- a/eclass/ninja-utils.eclass
+++ b/eclass/ninja-utils.eclass
@@ -60,7 +60,17 @@ _NINJA_UTILS_ECLASS=1
inherit multiprocessing
-NINJA_DEPEND="app-alternatives/ninja"
+case ${NINJA} in
+ ninja)
+ NINJA_DEPEND="app-alternatives/ninja"
+ ;;
+ ninja-reference)
+ NINJA_DEPEND="dev-build/ninja"
+ ;;
+ samu)
+ NINJA_DEPEND="dev-build/samurai"
+ ;;
+esac
# @FUNCTION: get_NINJAOPTS
# @DESCRIPTION:
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 3f2c61f45985e9fb34d0ea03566a60a63c6c31b6
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sat Nov 8 19:39:34 2025 +
Commit: Sam James gentoo org>
CommitDate: Thu Nov 13 06:16:28 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3f2c61f4
ninja-utils.eclass: Warn if NINJAOPTS diable jobserver support
Warn if NINJAOPTS specifies "-j" option and a jobserver is available,
since it will implicitly disable the jobserver support.
Bug: https://bugs.gentoo.org/692576
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44539
Closes: https://github.com/gentoo/gentoo/pull/44539
Signed-off-by: Sam James gentoo.org>
eclass/ninja-utils.eclass | 3 +++
1 file changed, 3 insertions(+)
diff --git a/eclass/ninja-utils.eclass b/eclass/ninja-utils.eclass
index 0ac23b7d4799..1ffb358d7fa1 100644
--- a/eclass/ninja-utils.eclass
+++ b/eclass/ninja-utils.eclass
@@ -116,6 +116,9 @@ get_NINJAOPTS() {
# ninja only uses jobserver if -j is not passed
NINJAOPTS+=" -j$(get_makeopts_jobs 999)"
fi
+ elif _ninja_uses_jobserver && [[ ${NINJAOPTS} == *-j* ]]; then
+ ewarn "Jobserver detected, but NINJAOPTS specifies -j option."
+ ewarn "To enable ninja jobserver support, remove -j from
NINJAOPTS."
fi
echo "${NINJAOPTS}"
}
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: b8584ea0ae3b1604e486b31dc569f80c14a2fdc0
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sat Nov 8 19:36:00 2025 +
Commit: Sam James gentoo org>
CommitDate: Thu Nov 13 06:16:27 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b8584ea0
ninja-utils.eclass: Do not pass -j if jobserver can be used
>=dev-build/ninja-1.13 features GNU make jobserver support, but uses
it only if -j is not specified. Detect if we can use it, and skip -j
from the default NINJAOPTS if that is the case.
Bug: https://bugs.gentoo.org/692576
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44539
Signed-off-by: Sam James gentoo.org>
eclass/ninja-utils.eclass | 40 +++-
1 file changed, 39 insertions(+), 1 deletion(-)
diff --git a/eclass/ninja-utils.eclass b/eclass/ninja-utils.eclass
index 08743bcea1a4..0ac23b7d4799 100644
--- a/eclass/ninja-utils.eclass
+++ b/eclass/ninja-utils.eclass
@@ -72,12 +72,50 @@ case ${NINJA} in
;;
esac
+# @FUNCTION: _ninja_uses_jobserver
+# @DESCRIPTION:
+# Return true if current ${NINJA} has jobserver support and we have one
+# running (via MAKEFLAGS).
+_ninja_uses_jobserver() {
+ # ninja supports jobserver via FIFO only
+ [[ ${MAKEFLAGS} == *--jobserver-auth=fifo:* ]] || return 1
+
+ case ${NINJA} in
+ # if using "ninja", make sure its a symlink to real ninja
+ # samu: https://github.com/michaelforney/samurai/issues/71
+ ninja)
+ if ! has_version -b
"app-alternatives/ninja[reference]"; then
+ einfo "ninja != ninja-reference, no jobserver
support"
+ return 1
+ fi
+ ;&
+ # plus, it must be at least 1.13.0
+ ninja-reference)
+ if ! has_version -b ">=dev-build/ninja-1.13"; then
+ einfo "ninja >= 1.13 required for jobserver
support"
+ return 1
+ fi
+ ;;
+ *)
+ einfo "NINJA=${NINJA}, no jobserver support"
+ return 1
+ ;;
+ esac
+
+ einfo "ninja will use the jobserver"
+ return 0
+}
+
# @FUNCTION: get_NINJAOPTS
# @DESCRIPTION:
# Get the value of NINJAOPTS, inferring them from MAKEOPTS if unset.
get_NINJAOPTS() {
if [[ -z ${NINJAOPTS+set} ]]; then
- NINJAOPTS="-j$(get_makeopts_jobs 999) -l$(get_makeopts_loadavg
0)"
+ NINJAOPTS="-l$(get_makeopts_loadavg 0)"
+ if ! _ninja_uses_jobserver; then
+ # ninja only uses jobserver if -j is not passed
+ NINJAOPTS+=" -j$(get_makeopts_jobs 999)"
+ fi
fi
echo "${NINJAOPTS}"
}
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 69fdb7c5060c48cde58c5e770d767967d6db28b5
Author: Sam James gentoo org>
AuthorDate: Thu Nov 13 04:58:11 2025 +
Commit: Sam James gentoo org>
CommitDate: Thu Nov 13 04:58:47 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=69fdb7c5
toolchain.eclass: add comment mentioning toolchain-legacy.eclass in overlay
Signed-off-by: Sam James gentoo.org>
eclass/toolchain.eclass | 5 +
1 file changed, 5 insertions(+)
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 52b38412e2b0..10e31a202c3a 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -16,6 +16,7 @@ _TOOLCHAIN_ECLASS=1
RUST_OPTIONAL="1"
+# See tc_version_is_at_least below wrt old EAPIs vs old GCCs.
case ${EAPI} in
8) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
@@ -263,6 +264,10 @@ fi
# Require minimum gcc version to simplify assumptions.
# Normally we would require gcc-6+ (based on sys-devel/gcc)
# but we still have sys-devel/gcc-apple-4.2.1_p5666.
+#
+# Older GCC support lives in toolchain-legacy.eclass in the toolchain
+# repository at https://gitweb.gentoo.org/proj/toolchain.git/. Patches
+# welcome!
tc_version_is_at_least 8 || die "${ECLASS}: ${GCC_RELEASE_VER} is too old."
PREFIX=${TOOLCHAIN_PREFIX:-${EPREFIX}/usr}
[gentoo-commits] repo/gentoo:master commit in: eclass/tests/
commit: 72a4afc1514c41c157665166526fb36257eed860
Author: Sam James gentoo org>
AuthorDate: Wed Nov 12 06:31:30 2025 +
Commit: Sam James gentoo org>
CommitDate: Wed Nov 12 06:33:03 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=72a4afc1
eclass/tests: fix flag-o-matic tests w/ clang
The eclass behaviour was fixed in ddba1d149e82dba88b72f992729ad4158f640e32.
Bug: https://bugs.gentoo.org/627474
Bug: https://bugs.gentoo.org/712488
Bug: https://bugs.gentoo.org/714742
Bug: https://bugs.gentoo.org/862798
Closes: https://bugs.gentoo.org/934129
Signed-off-by: Sam James gentoo.org>
eclass/tests/flag-o-matic.sh | 33 -
1 file changed, 16 insertions(+), 17 deletions(-)
diff --git a/eclass/tests/flag-o-matic.sh b/eclass/tests/flag-o-matic.sh
index 1e4bfdb2fcfe..4dc133776038 100755
--- a/eclass/tests/flag-o-matic.sh
+++ b/eclass/tests/flag-o-matic.sh
@@ -1,7 +1,6 @@
#!/bin/bash
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-
source tests-common.sh || exit
EAPI=7
@@ -153,25 +152,25 @@ out=$(test-flags-CC -finvalid-flag)
ftend
if type -P clang >/dev/null ; then
-tbegin "test-flags-CC (valid flags w/clang)"
-out=$(CC=clang test-flags-CC -O3)
-[[ $? -eq 0 && ${out} == "-O3" ]]
-ftend
+ tbegin "test-flags-CC (valid flags w/clang)"
+ out=$(CC=clang test-flags-CC -O3)
+ [[ $? -eq 0 && ${out} == "-O3" ]]
+ ftend
-tbegin "test-flags-CC (invalid flags w/clang)"
-out=$(CC=clang test-flags-CC -finvalid-flag)
-[[ $? -ne 0 && -z ${out} ]]
-ftend
+ tbegin "test-flags-CC (invalid flags w/clang)"
+ out=$(CC=clang test-flags-CC -finvalid-flag)
+ [[ $? -ne 0 && -z ${out} ]]
+ ftend
-tbegin "test-flags-CC (gcc-valid but clang-invalid flags)"
-out=$(CC=clang test-flags-CC -finline-limit=1200)
-[[ $? -ne 0 && -z ${out} ]]
-ftend
+ tbegin "test-flags-CC (gcc-valid but clang-invalid flags)"
+ out=$(CC=clang test-flags-CC -finline-limit=1200)
+ [[ $? -ne 0 && -z ${out} ]]
+ ftend
-tbegin "test-flags-CC (unused flags w/clang)"
-out=$(CC=clang test-flags-CC -Wl,-O1)
-[[ $? -eq 0 && ${out} == "-Wl,-O1" ]]
-ftend
+ tbegin "test-flags-CC (unused flags w/clang)"
+ out=$(CC=clang test-flags-CC -Wl,-O1)
+ [[ $? -ne 0 && -z ${out} ]]
+ ftend
fi
texit
[gentoo-commits] repo/gentoo:master commit in: eclass/tests/
commit: 7952fbcf81b0ebd8e24e87b1a45165a172aede13 Author: Sam James gentoo org> AuthorDate: Wed Nov 12 06:23:15 2025 + Commit: Sam James gentoo org> CommitDate: Wed Nov 12 06:33:03 2025 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7952fbcf eclass/tests: fix toolchain.sh tests Followup to e9e6d8c367fdf02b14f9cb2a59489833975d1445. Signed-off-by: Sam James gentoo.org> eclass/tests/toolchain.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/tests/toolchain.sh b/eclass/tests/toolchain.sh index 162ff27e17c4..3621c93e3841 100755 --- a/eclass/tests/toolchain.sh +++ b/eclass/tests/toolchain.sh @@ -11,7 +11,7 @@ PR=r0 source tests-common.sh || exit source version-funcs.sh || exit -EAPI=7 inherit toolchain +EAPI=8 inherit toolchain # Ignore actually running version of gcc and fake new version # to force downgrade test on all conditions below.
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: ce51905e1f186f8c0cae84d83a632a1daeca5223
Author: Alfred Wingate protonmail com>
AuthorDate: Tue Oct 28 14:45:39 2025 +
Commit: Bernard Cafarelli gentoo org>
CommitDate: Tue Nov 11 19:24:01 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce51905e
gnustep-base.eclass: pass econf arguments
Also drop the useless || die
Signed-off-by: Alfred Wingate protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/44437
Signed-off-by: Bernard Cafarelli gentoo.org>
eclass/gnustep-base.eclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eclass/gnustep-base.eclass b/eclass/gnustep-base.eclass
index 00a3a981feb0..7505d791fc4b 100644
--- a/eclass/gnustep-base.eclass
+++ b/eclass/gnustep-base.eclass
@@ -63,7 +63,7 @@ gnustep-base_src_prepare() {
gnustep-base_src_configure() {
egnustep_env
if [[ -x ./configure ]] ; then
- econf || die "configure failed"
+ econf ${*}
fi
}
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 998c2e817348b57e87d1ba9f07d44818ef9c3da4
Author: Kacper S艂omi艅ski gmail com>
AuthorDate: Mon Nov 10 23:13:46 2025 +
Commit: Sam James gentoo org>
CommitDate: Mon Nov 10 23:45:04 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=998c2e81
guile-utils.eclass: make generated GUILE_USEDEP entries conditional
If the user specifies only GUILE_TARGETS="3-0", previously, we would
incorrectly try to pull in dependencies with USE flag dependencies like
[guile_targets_2-2,guile_targets_3-0], which lead to an error about
missing USE flags in the dependencies.
Signed-off-by: Kacper S艂omi艅ski gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/44587
Signed-off-by: Sam James gentoo.org>
eclass/guile-utils.eclass | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/eclass/guile-utils.eclass b/eclass/guile-utils.eclass
index d066013486ed..88f69032a083 100644
--- a/eclass/guile-utils.eclass
+++ b/eclass/guile-utils.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: guile-utils.eclass
@@ -146,7 +146,7 @@ guile_generate_depstrings() {
for ver in "${GUILE_COMPAT[@]}"; do
[[ -n ${GUILE_USEDEP} ]] && GUILE_USEDEP+=","
uses+=("${prefix}_${ver}")
- GUILE_USEDEP+="${prefix}_${ver}"
+ GUILE_USEDEP+="${prefix}_${ver}?"
done
GUILE_REQUIRED_USE="${depop} ( ${uses[@]} )"
IUSE="${uses[@]}"
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 48ad2b7e5547e781f9802ab1d77496a33a72abf0
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sat Nov 8 10:34:46 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Sat Nov 8 10:34:46 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=48ad2b7e
llvm.org.eclass: Add 22.0.0_pre20251108 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 c5202c30f294..96e32fd50205 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
+ 22.0.0_pre20251108)
+
EGIT_COMMIT=0875755f5275dc7a84b1aeb526b7822b47a733c9
+ ;;
22.0.0_pre20251101)
EGIT_COMMIT=7631c73850bec991ec9a7c9cca58c275bb0277a4
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 5912a8576845b68c850b9210c45f8aaaeede50a9
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Mon Nov 3 17:29:23 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Fri Nov 7 02:38:44 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5912a857
fortran-2.eclass: Disable LTO if C+Fortran linking fails
Try linking the code created by C and Fortran compilers together.
If it fails, try removing LTO flags in case we are combining two
incompatible compilers (Clang and GNU Fortran).
Closes: https://bugs.gentoo.org/965176
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44452
Closes: https://github.com/gentoo/gentoo/pull/44452
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/fortran-2.eclass | 92 -
1 file changed, 83 insertions(+), 9 deletions(-)
diff --git a/eclass/fortran-2.eclass b/eclass/fortran-2.eclass
index dcf7ee979d8a..96849c0a743b 100644
--- a/eclass/fortran-2.eclass
+++ b/eclass/fortran-2.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: fortran-2.eclass
@@ -34,7 +34,7 @@ case ${EAPI} in
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
-inherit toolchain-funcs
+inherit flag-o-matic toolchain-funcs
# @ECLASS_VARIABLE: FORTRAN_NEED_OPENMP
# @DESCRIPTION:
@@ -187,6 +187,66 @@ _fortran-has-openmp() {
return ${ret}
}
+# @FUNCTION: _fortran-test-lto
+# @INTERNAL
+# @DESCRIPTION:
+# Test if C and Fortran files can be linked together. If it fails, remove
+# LTO flags. This may be necessary if users are combining Clang
+# with GNU Fortran, and enabling LTO, since this will result in two different
+# kinds of bytecode being linked with a linker that's set up for only one
+# of them.
+_fortran-test-lto() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local compiler=${1}
+ local flags=${2}
+ local fcode=${T}/test-fc.f
+ local ccode=${T}/test-fc.c
+ local fail=
+
+ einfo "Testing linking C and Fortran code ..."
+
+ cat <<- EOF > "${fcode}" || die
+ subroutine fsub()
+ end
+ EOF
+ cat <<- EOF > "${ccode}" || die
+ void fsub_();
+
+ int main() {
+ fsub_();
+ return 0;
+ }
+ EOF
+
+ # Prepare test objects. If either failed, do nothing.
+
+ set -- ${compiler} ${flags} -c "${fcode}" -o "${fcode}.o"
+ echo "${@}" >&2
+ "${@}" || return
+
+ set -- $(tc-getCC) ${CFLAGS} -c "${ccode}" -o "${ccode}.o"
+ echo "${@}" >&2
+ "${@}" || return
+
+ # Try cross-linking.
+
+ set -- ${compiler} ${flags} ${LDFLAGS} -o "${fcode}.exe" "${fcode}.o"
"${ccode}.o"
+ echo "${@}" >&2
+ "${@}" || fail=1
+
+ set -- $(tc-getCC) ${CFLAGS} ${LDFLAGS} -o "${fcode}.exe" "${fcode}.o"
"${ccode}.o"
+ echo "${@}" >&2
+ "${@}" || fail=1
+
+ if [[ ! ${fail} ]]; then
+ einfo "Looks like we can link C and Fortran code together"
+ else
+ einfo "Cross-linking C and Fortran failed, force-disabling LTO"
+ filter-lto
+ fi
+}
+
# @FUNCTION: _fortran_die_msg
# @INTERNAL
# @DESCRIPTION:
@@ -211,19 +271,31 @@ _fortran_die_msg() {
_fortran_test_function() {
debug-print-function ${FUNCNAME} "$@"
- local dialect
+ local compiler dialect flags
: "${F77:=$(tc-getFC)}"
: "${FORTRAN_STANDARD:=77}"
for dialect in ${FORTRAN_STANDARD}; do
case ${dialect} in
- 77) _fortran_compile_test "$(tc-getF77)" || \
- _fortran_die_msg ;;
- 90|95) _fortran_compile_test "$(tc-getFC)" 90 || \
- _fortran_die_msg ;;
- 2003) _fortran_compile_test "$(tc-getFC)" 03 || \
- _fortran_die_msg ;;
+ 77)
+ compiler=$(tc-getF77)
+ flags=${FFLAGS}
+ _fortran_compile_test "${compiler}" ||
+ _fortran_die_msg
+ ;;
+ 90|95)
+ compiler=$(tc-getFC)
+ flags=${FCFLAGS}
+ _fortran_compile_test "${compiler}" 90 ||
+ _fortran_die_msg
+ ;;
+ 2003)
+ compiler=$(tc-getFC)
+ flags=${FCFLAGS}
+ _fortran_compile_test "${compiler}" 03 ||
+ _fortran_die_msg
+
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: e4a9a519633d3d7bae8149dc8329f460d4f04487
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Tue Nov 4 09:35:30 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Tue Nov 4 09:35:30 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e4a9a519
*.eclass: Add := to virtual/zlib dependencies
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/apache-2.eclass | 2 +-
eclass/emboss-r3.eclass | 2 +-
eclass/toolchain.eclass | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/eclass/apache-2.eclass b/eclass/apache-2.eclass
index 336ae77d0150..4728f78553fb 100644
--- a/eclass/apache-2.eclass
+++ b/eclass/apache-2.eclass
@@ -144,7 +144,7 @@ RDEPEND="
dev-libs/libpcre2
virtual/libcrypt:=
apache2_modules_brotli? ( >=app-arch/brotli-0.6.0:= )
- apache2_modules_deflate? ( virtual/zlib )
+ apache2_modules_deflate? ( virtual/zlib:= )
apache2_modules_http2? (
>=net-libs/nghttp2-${NGHTTP2_VERSION}:=
kernel_linux? ( sys-apps/util-linux )
diff --git a/eclass/emboss-r3.eclass b/eclass/emboss-r3.eclass
index 797d5f937b19..bc2c6c043c6e 100644
--- a/eclass/emboss-r3.eclass
+++ b/eclass/emboss-r3.eclass
@@ -53,7 +53,7 @@ RDEPEND="
dev-libs/expat
dev-libs/libpcre:3
sci-libs/plplot:=
- virtual/zlib
+ virtual/zlib:=
mysql? ( dev-db/mysql-connector-c:0= )
pdf? ( media-libs/libharu:= )
png? ( media-libs/gd:2=[png] )
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 63f4224046d1..52b38412e2b0 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -354,7 +354,7 @@ fi
#>> DEPEND <<
RDEPEND="
- virtual/zlib
+ virtual/zlib:=
virtual/libiconv
nls? ( virtual/libintl )
"
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 276eb87f41378617e146e0aff60c0476b6838f86
Author: Sv. Lockal gmail com>
AuthorDate: Mon Oct 27 18:53:51 2025 +
Commit: Sam James gentoo org>
CommitDate: Sun Nov 2 05:16:10 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=276eb87f
rocm.eclass: add graceful rocm_add_sandbox; allow NPU for the sandbox
1) With upcoming firmware AMD NPU will be exposed as /dev/accel/accel0.
This device is owned by root:render, similarly to GPU.
When present, tools like rocminfo try to query device capabilities,
breaking sandbox. To fix this issue, this device has now addwrite in
check_amdgpu.
2) There are a bunch of bugs from tinderbox and users who forgot to
enable KFD in kernel. Instead of recommendation to check permissions,
they will see a better message, that AMD device is missing.
3) In cases when we just want to addwrite to AMD devices, new function
rocm_add_sandbox (similar to cuda_add_sandbox) was added. No errors are
raised if device is missing.
Bug: https://bugs.gentoo.org/965198
Signed-off-by: Sv. Lockal gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/44355
Signed-off-by: Sam James gentoo.org>
eclass/rocm.eclass | 37 ++---
1 file changed, 34 insertions(+), 3 deletions(-)
diff --git a/eclass/rocm.eclass b/eclass/rocm.eclass
index 0fa99a4178e7..c24666e33e8d 100644
--- a/eclass/rocm.eclass
+++ b/eclass/rocm.eclass
@@ -248,13 +248,44 @@ get_amdgpu_flags() {
echo $(printf "%s;" ${AMDGPU_TARGETS[@]})
}
+# @FUNCTION: rocm_add_sandbox
+# @USAGE: [-w]
+# @DESCRIPTION:
+# Add AMD GPU/NPU dev nodes to the sandbox predict list.
+# with -w, add to the sandbox write list.
+rocm_add_sandbox() {
+ debug-print-function "${FUNCNAME[0]}" "$@"
+
+ local i
+ for i in /dev/kfd /dev/dri/render* /dev/accel/accel*; do
+ if [[ ! -c $i ]]; then
+ continue
+ elif [[ $1 == '-w' ]]; then
+ addwrite "$i"
+ else
+ addpredict "$i"
+ fi
+ done
+}
+
# @FUNCTION: check_amdgpu
# @USAGE: check_amdgpu
# @DESCRIPTION:
-# grant and check read-write permissions on AMDGPU devices, die if not
available.
+# Grant and check read-write permissions on AMDGPU and AMDNPU devices.
+# Die if no AMDGPU devices are available.
check_amdgpu() {
- for device in /dev/kfd /dev/dri/render*; do
- addwrite ${device}
+ # Common case: no AMDGPU device or the kernel fusion driver is disabled
in the kernel.
+ if [[ ! -c /dev/kfd ]]; then
+ eerror "Device /dev/kfd does not exist!"
+ eerror "To proceed, you need to have an AMD GPU and have
CONFIG_HSA_AMD set in your kernel config."
+ die "/dev/kfd is missing"
+ fi
+
+ local device
+ for device in /dev/kfd /dev/dri/render* /dev/accel/accel*; do
+ [[ ! -c ${device} ]] && continue
+
+ addwrite "${device}"
if [[ ! -r ${device} || ! -w ${device} ]]; then
eerror "Cannot read or write ${device}!"
eerror "Make sure it is present and check the
permission."
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 24a4b29fc3782ef32d55fb8593de72f4f0f917d9
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sat Nov 1 11:56:11 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Sat Nov 1 11:56:11 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24a4b29f
llvm.org.eclass: Add 22.0.0_pre20251101 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 f1eb4148ea4c..c5202c30f294 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
+ 22.0.0_pre20251101)
+
EGIT_COMMIT=7631c73850bec991ec9a7c9cca58c275bb0277a4
+ ;;
22.0.0_pre20251028)
EGIT_COMMIT=c1779f33bdada6e478e882cc23a647ef9abaad96
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: a31979c5d1f4badad14bd1c479658049712d8f47
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sat Nov 1 11:55:44 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Sat Nov 1 11:55:44 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a31979c5
llvm.org.eclass: Remove old 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 d49c62276a3e..f1eb4148ea4c 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -75,12 +75,6 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
22.0.0_pre20251028)
EGIT_COMMIT=c1779f33bdada6e478e882cc23a647ef9abaad96
;;
- 22.0.0_pre20251022)
-
EGIT_COMMIT=57a8599d14d4685487064e8b8a5c748970daa4d6
- ;;
- 22.0.0_pre20251011)
-
EGIT_COMMIT=6a0e5b2fd7c340a872ae1e011cfb9de0d188feba
- ;;
*)
die "Unknown snapshot: ${PV}"
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 7bc9e3869c123a5989c118c49f2448dd5959a261
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Fri Oct 24 17:28:12 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Fri Oct 31 23:24:04 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7bc9e386
ecm.eclass: Use our own initial-cache file on top of cmake.eclass'
Define KDEInstallDirs variables to fix ECM >=6.19 warnings.
Use the opportunity and cleanup some quirks including ECM_KDEINSTALLDIRS.
Closes: https://bugs.gentoo.org/963981
Thanks-to: Sam James gentoo.org>
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/ecm.eclass | 45 ++---
1 file changed, 26 insertions(+), 19 deletions(-)
diff --git a/eclass/ecm.eclass b/eclass/ecm.eclass
index f7a77c35d5f2..f230509ab745 100644
--- a/eclass/ecm.eclass
+++ b/eclass/ecm.eclass
@@ -58,12 +58,6 @@ if [[ ${CATEGORY} == kde-frameworks ]]; then
ECM_NONGUI=true
fi
-# @ECLASS_VARIABLE: ECM_KDEINSTALLDIRS
-# @DESCRIPTION:
-# Assume the package is using KDEInstallDirs macro and switch
-# KDE_INSTALL_USE_QT_SYS_PATHS to ON. If set to "false", do nothing.
-: "${ECM_KDEINSTALLDIRS:=true}"
-
# @ECLASS_VARIABLE: ECM_DEBUG
# @DESCRIPTION:
# Add "debug" to IUSE. If !debug, add -DQT_NO_DEBUG to CPPFLAGS. If set to
@@ -656,23 +650,36 @@ ecm_src_configure() {
cmakeargs+=( -DBUILD_QCH=$(usex doc) )
fi
- if [[ ${ECM_KDEINSTALLDIRS} = true ]] ; then
- cmakeargs+=(
- # install mkspecs in the same directory as Qt stuff
- -DKDE_INSTALL_USE_QT_SYS_PATHS=ON
- # move handbook outside of doc dir, bug 667138
- -DKDE_INSTALL_DOCBUNDLEDIR="${EPREFIX}/usr/share/help"
- )
+ # Common ECM configure parameters (invariants)
+ local ecm_config=${BUILD_DIR}/gentoo_ecm_config.cmake
+ cat > ${ecm_config} <<- _EOF_ || die
+ # Gentoo downstream-added ECM options
+ set(ECM_DISABLE_QMLPLUGINDUMP ON CACHE BOOL "") # bug #835995,
*-disable-qmlplugindump.patch
+ set(ECM_DISABLE_APPSTREAMTEST ON CACHE BOOL "") #
*-disable-appstreamtest.patch
+ set(ECM_DISABLE_GIT ON CACHE BOOL "") #
*-disable-git-commit-hooks.patch
- # bug 928345
- # TODO: Eventually it should be put to upstream as to why
LIBEXECDIR
- # in KDEInstallDirsCommon.cmake is set to
EXECROOTDIR/LIBDIR/libexec
- [[ ${_KFSLOT} == 6 ]] && \
- cmakeargs+=(
-DKDE_INSTALL_LIBEXECDIR="${EPREFIX}/usr/libexec" )
+ # KDEInstallDirs[56] section
+ set(KDE_INSTALL_USE_QT_SYS_PATHS ON CACHE BOOL "") # install
mkspecs in same dir as Qt stuff
+ # move handbook outside of doc dir, bug #667138
+ set(KDE_INSTALL_DOCBUNDLEDIR "${EPREFIX}/usr/share/help" CACHE
PATH "")
+ set(KDE_INSTALL_INFODIR "${EPREFIX}/usr/share/info" CACHE PATH
"")
+ set(KDE_INSTALL_LIBDIR $(get_libdir) CACHE PATH "Output
directory for libraries")
+ set(KDE_INSTALL_MANDIR "${EPREFIX}/usr/share/man" CACHE PATH "")
+ _EOF_
+
+ if [[ ${_KFSLOT} == 6 ]]; then
+ cat >> ${ecm_config} <<- _EOF_ || die
+ # TODO: Ask upstream why LIBEXECDIR is set to
EXECROOTDIR/LIBDIR/libexec, bug #928345
+ set(KDE_INSTALL_LIBEXECDIR "${EPREFIX}/usr/libexec"
CACHE PATH "")
+ _EOF_
fi
# allow the ebuild to override what we set here
- mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}")
+ mycmakeargs=(
+ -C "${ecm_config}"
+ "${cmakeargs[@]}"
+ "${mycmakeargs[@]}"
+ )
cmake_src_configure
}
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 443a1f7198a73c310b48ba6fd080ac013b376410
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sat Jul 5 20:03:37 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Fri Oct 31 23:24:04 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=443a1f71
ecm.eclass: Drop obsolete KF version quirks
- _ecm_strip_handbook_translations kconfigwidgets restriction only relevant
for KF <6.16, upstream commit 94e3edb259a4cc74545facd49e78867f6ec809fd
- ECM_PYTHON_BINDINGS was only used since KF6
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/ecm.eclass | 17 +
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/eclass/ecm.eclass b/eclass/ecm.eclass
index f230509ab745..b7c20c63aab1 100644
--- a/eclass/ecm.eclass
+++ b/eclass/ecm.eclass
@@ -113,8 +113,7 @@ fi
# @ECLASS_VARIABLE: ECM_PYTHON_BINDINGS
# @DESCRIPTION:
# Default value is "false", which means do nothing.
-# If set to "off", pass -DBUILD_PYTHON_BINDINGS=OFF to mycmakeargs, and also
-# disable cmake finding Python3, PySide6 and Shiboken6 to make it quiet.
+# If set to "off", pass -DBUILD_PYTHON_BINDINGS=OFF to mycmakeargs.
# No other value is implemented as python bindings are not supported in Gentoo.
: "${ECM_PYTHON_BINDINGS:=false}"
@@ -125,7 +124,9 @@ fi
# If set to "true", add "doc" to IUSE, add the appropriate dependency, let
# -DBUILD_QCH=ON generate and install Qt compressed help files when USE=doc.
# If set to "false", do nothing.
-if [[ ${CATEGORY} = kde-frameworks ]] && ver_test -lt 6.15; then
+if [[ ${CATEGORY} = kde-frameworks && ${_KFSLOT} == 5 ]]; then
+# TODO: Implement KF 6.15 changes how API documentation is built. See also:
+# https://mail.kde.org/pipermail/distributions/2025-June/001595.html
: "${ECM_QTHELP:=true}"
fi
: "${ECM_QTHELP:=false}"
@@ -562,11 +563,14 @@ ecm_src_prepare() {
# limit playing field of locale stripping to kde-*/ categories
if [[ ${CATEGORY} = kde-* ]] ; then
- # always install unconditionally for kconfigwidgets - if you use
+ # TODO: cleanup after KF5 removal:
+ # always install unconditionally for
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 95e523a1d2d50ede698dd91bf82294c6a2e17ccc
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Thu Oct 30 09:18:54 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Fri Oct 31 23:24:05 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95e523a1
cmake.eclass: add global-scope ewarn for deprecated EAPI 7
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 7 +--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 00904be2f1b3..4f1a0ff60615 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -19,7 +19,11 @@
# out-of-source builds (default) and in-source builds.
case ${EAPI} in
- 7|8) ;;
+ 7)
+ ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated
EAPI ${EAPI}!"
+ ewarn "${CATEGORY}/${PF}: Support will be removed on
2025-11-14. Please port to newer EAPI."
+ ;;
+ 8) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
@@ -632,7 +636,6 @@ cmake_src_prepare() {
chmod -R a-w "${S}"
fi
_CMAKE_PREPARE_HAS_RUN=1
- eqawarn "QA Notice: cmake.eclass will throw unsupported EAPI=7
error after 2025-11-01."
else
default_src_prepare
cmake_prepare
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 3564aa4858c906ec7c2050b019498050a84027fe
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Thu Oct 23 21:57:36 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Fri Oct 31 23:24:04 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3564aa48
cmake.eclass: Drop ECM related initial-cache vars, moved to ecm.eclass
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 8
1 file changed, 8 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index a0563dd72241..00904be2f1b3 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -779,14 +779,6 @@ cmake_src_configure() {
set(CMAKE_LINK_WARNING_AS_ERROR OFF CACHE BOOL "")
_EOF_
- if [[ ${CMAKE_ECM_MODE} == true ]]; then
- cat >> ${common_config} <<- _EOF_ || die
- set(ECM_DISABLE_QMLPLUGINDUMP ON CACHE BOOL "")
- set(ECM_DISABLE_APPSTREAMTEST ON CACHE BOOL "")
- set(ECM_DISABLE_GIT ON CACHE BOOL "")
- _EOF_
- fi
-
# See bug 689410
if [[ "${ARCH}" == riscv ]]; then
echo 'set(CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX
'"${libdir#lib}"' CACHE STRING "library search suffix" FORCE)' >>
"${common_config}" || die
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: b36318ddfa467f2a65f6755bb5490a3f3527d0d3
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Thu Oct 30 15:22:59 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Fri Oct 31 06:21:45 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b36318dd
verify-sig.eclass: Respect GNUPG envvar
Respect GNUPG envvar for direct "gpg" invocations, to match the gemato
behavior.
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44387
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/verify-sig.eclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eclass/verify-sig.eclass b/eclass/verify-sig.eclass
index 9d9be4e377f1..ba1086d6641c 100644
--- a/eclass/verify-sig.eclass
+++ b/eclass/verify-sig.eclass
@@ -279,7 +279,7 @@ verify-sig_verify_message() {
# https://bugs.gentoo.org/854492
local -x TMPDIR=/tmp
gemato gpg-wrap -K "${key}" "${extra_args[@]}" -- \
- gpg --verify --output="${output_file}"
"${file}" ||
+ "${GNUPG:-gpg}" --verify
--output="${output_file}" "${file}" ||
die "PGP signature verification failed"
;;
signify)
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 1f0298ff85abf1f3375edc924796437216c47e61 Author: Micha艂 G贸rny gentoo org> AuthorDate: Tue Oct 28 14:43:11 2025 + Commit: Micha艂 G贸rny gentoo org> CommitDate: Tue Oct 28 14:44:41 2025 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f0298ff sec-keys.eclass: Use app-alternatives/gpg Tested on sec-keys/openpgp-keys-llvm, with sequoia and freepg. Signed-off-by: Micha艂 G贸rny gentoo.org> eclass/sec-keys.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/sec-keys.eclass b/eclass/sec-keys.eclass index ccc9dfcccfe1..988c97aab78a 100644 --- a/eclass/sec-keys.eclass +++ b/eclass/sec-keys.eclass @@ -99,7 +99,7 @@ PROPERTIES="test_network" RESTRICT="!test? ( test ) test" BDEPEND=" - app-crypt/gnupg + app-alternatives/gpg test? ( app-crypt/pgpdump ) "
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: e25936424da18f4070f895d4125a86b8e362e174
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Tue Oct 28 11:32:57 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Tue Oct 28 11:32:57 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e2593642
llvm.org.eclass: Add 22.0.0_pre20251028 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 d3fdddb92583..d49c62276a3e 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
+ 22.0.0_pre20251028)
+
EGIT_COMMIT=c1779f33bdada6e478e882cc23a647ef9abaad96
+ ;;
22.0.0_pre20251022)
EGIT_COMMIT=57a8599d14d4685487064e8b8a5c748970daa4d6
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 6ef49481d5057fda6d3644af4faab54ee25ba418
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Tue Oct 28 08:44:59 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Tue Oct 28 08:47:04 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6ef49481
verify-sig.eclass: Allow pre-alternative gnupg fo ease transition
Use a || dependency to permit app-crypt/gnupg[-alternatives], to ease
the transition. This will permit app-crypt/gnupg[verify-sig] to be
built without a cyclic dependency between it and app-alternatives/gpg.
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/verify-sig.eclass | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/eclass/verify-sig.eclass b/eclass/verify-sig.eclass
index 27f3b350e2cd..9d9be4e377f1 100644
--- a/eclass/verify-sig.eclass
+++ b/eclass/verify-sig.eclass
@@ -70,7 +70,10 @@ case ${VERIFY_SIG_METHOD} in
openpgp)
BDEPEND="
verify-sig? (
- app-alternatives/gpg
+ || (
+ app-alternatives/gpg
+ app-crypt/gnupg[-alternatives(-)]
+ )
>=app-portage/gemato-20
)
"
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 2e0b100ae772b9d0e58641d24f2be636cf751bcb
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Thu Oct 23 14:30:48 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Tue Oct 28 05:50:44 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2e0b100a
verify-sig.eclass: Use app-alternatives/gpg
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44224
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/verify-sig.eclass | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/eclass/verify-sig.eclass b/eclass/verify-sig.eclass
index 4e38d327b838..27f3b350e2cd 100644
--- a/eclass/verify-sig.eclass
+++ b/eclass/verify-sig.eclass
@@ -58,7 +58,7 @@ IUSE="verify-sig"
# Signature verification method to use. The allowed value are:
#
# - minisig -- verify signatures with (base64) Ed25519 public key using
app-crypt/minisign
-# - openpgp -- verify PGP signatures using app-crypt/gnupg (the default)
+# - openpgp -- verify PGP signatures using app-alternatives/gpg (the default)
# - sigstore -- verify signatures using dev-python/sigstore
# - signify -- verify signatures with Ed25519 public key using
app-crypt/signify
: "${VERIFY_SIG_METHOD:=openpgp}"
@@ -70,7 +70,7 @@ case ${VERIFY_SIG_METHOD} in
openpgp)
BDEPEND="
verify-sig? (
- app-crypt/gnupg
+ app-alternatives/gpg
>=app-portage/gemato-20
)
"
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 7141b8da59057bac80b0e2e5d5ea34a70770ece2
Author: Sam James gentoo org>
AuthorDate: Sun Oct 26 04:06:53 2025 +
Commit: Sam James gentoo org>
CommitDate: Sun Oct 26 04:07:29 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7141b8da
toolchain.eclass: only >=16's cobol needs libxml2
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 a72b42177a81..514d4def64af 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -363,7 +363,7 @@ GMP_MPFR_DEPS=">=dev-libs/gmp-4.3.2:0=
>=dev-libs/mpfr-2.4.2:0="
RDEPEND+=" ${GMP_MPFR_DEPS}"
RDEPEND+=" >=dev-libs/mpc-0.8.1:0="
-if tc_has_feature cobol ; then
+if tc_has_feature cobol && tc_version_is_at_least 16.0.0_p20251019 ; then
RDEPEND+=" cobol? ( dev-libs/libxml2:= )"
fi
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 8d0407da10a6583cf4b30a4edb8f2f2f14e0e328
Author: Sam James gentoo org>
AuthorDate: Sat Oct 25 00:56:42 2025 +
Commit: Sam James gentoo org>
CommitDate: Sat Oct 25 01:05:31 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8d0407da
toolchain.eclass: depend on libxml2 at runtime for libgcobol
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 0acb2cb365b7..a72b42177a81 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -340,7 +340,7 @@ if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] ; then
tc_version_is_at_least 14.1 ${PV} && IUSE+=" rust" TC_FEATURES+=( rust )
tc_version_is_at_least 13.3.1_p20250522 ${PV} && IUSE+=" time64"
tc_version_is_at_least 15.1 ${PV} && IUSE+=" libgdiagnostics"
- tc_version_is_at_least 15.1 ${PV} && IUSE+=" cobol"
+ tc_version_is_at_least 15.1 ${PV} && IUSE+=" cobol" TC_FEATURES+=(
cobol )
fi
if tc_version_is_at_least 10; then
@@ -363,6 +363,10 @@ GMP_MPFR_DEPS=">=dev-libs/gmp-4.3.2:0=
>=dev-libs/mpfr-2.4.2:0="
RDEPEND+=" ${GMP_MPFR_DEPS}"
RDEPEND+=" >=dev-libs/mpc-0.8.1:0="
+if tc_has_feature cobol ; then
+ RDEPEND+=" cobol? ( dev-libs/libxml2:= )"
+fi
+
if tc_has_feature objc-gc ; then
RDEPEND+=" objc-gc? ( >=dev-libs/boehm-gc-7.4.2 )"
fi
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 26413a3fb5f9c37fbc14b7a567f6c1f7358555ac
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Fri Oct 17 13:39:42 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Thu Oct 23 18:19:13 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=26413a3f
distutils-r1.eclass: Use EPYTEST_PLUGINS for import-check
Add "pytest-import-check" to EPYTEST_PLUGINS automatically when using
import-check. This also implicitly overrides the default behavior
of enabling all plugins, and instead runs with just the import-check
plugin loaded.
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44172
Closes: https://github.com/gentoo/gentoo/pull/44172
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/distutils-r1.eclass | 1 +
1 file changed, 1 insertion(+)
diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index b7f5045e60bd..8fc92cf4fca5 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -551,6 +551,7 @@ distutils_enable_tests() {
case ${1} in
import-check)
test_pkgs+='
dev-python/pytest-import-check[${PYTHON_USEDEP}]'
+ EPYTEST_PLUGINS+=( pytest-import-check )
;&
pytest)
test_pkgs+='
>=dev-python/pytest-7.4.4[${PYTHON_USEDEP}]'
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: ddda228a67a145f1baed788b5a605dc382ddc9a9
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Tue Oct 14 06:54:55 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Thu Oct 23 18:19:12 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ddda228a
python-utils-r1.eclass: Use --force-reruns for EPYTEST_RERUNS
Use "--force-reruns" rather than "--reruns" when available. This
ensures that the rerun count is respected for all tests, including
tests already marked upstream for reruns. Otherwise tests marked
" pytest.mark.flaky" will get rerun only once.
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44172
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/python-utils-r1.eclass | 14 +++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index e213273a3a78..b08dbd586ba8 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -1538,9 +1538,17 @@ epytest() {
)
fi
- args+=(
- "--reruns=${EPYTEST_RERUNS}"
- )
+ if has_version ">=dev-python/pytest-rerunfailures-16.1"; then
+ args+=(
+ # --reruns only adds N reruns for tests not
marked for reruns
+ # --force-reruns overrides the rerun count for
all tests
+ "--force-reruns=${EPYTEST_RERUNS}"
+ )
+ else
+ args+=(
+ "--reruns=${EPYTEST_RERUNS}"
+ )
+ fi
fi
if [[ -n ${EPYTEST_TIMEOUT} ]]; then
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: cfa5bab4ebb1904240057c970d52291c1594eac2
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Tue Oct 14 06:50:52 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Thu Oct 23 18:19:11 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cfa5bab4
distutils-r1.eclass: Extend wheel reuse to *py3-none*
Remove the unnecessary "-any" restriction in wheel reuse. I've added
it without thinking about it twice, but it prevents wheel reuse
for Python-agnostic packages that build native executables, e.g.
dev-python/uv.
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44172
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/distutils-r1.eclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index e9826f4cf3df..b7f5045e60bd 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -1287,7 +1287,7 @@ distutils-r1_python_compile() {
# from the oldest to the newest implementation,
# and the wheels are forward-compatible.
if [[
- ( ! ${DISTUTILS_EXT} && ${whl} ==
*py3-none-any* ) ||
+ ( ! ${DISTUTILS_EXT} && ${whl} == *py3-none* )
||
(
${EPYTHON} == python* &&
# freethreading does not support stable
ABI
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 6fa9351ed3e6287f51f63533062b14cd7bfde9b9
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Tue Oct 14 06:50:23 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Thu Oct 23 18:19:10 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6fa9351e
pypi.eclass: Fix typo in pypi_provenance_url()
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44172
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/pypi.eclass | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/eclass/pypi.eclass b/eclass/pypi.eclass
index 38068aac3356..14c4edb391d8 100644
--- a/eclass/pypi.eclass
+++ b/eclass/pypi.eclass
@@ -298,9 +298,9 @@ _pypi_provenance_url() {
# @DESCRIPTION:
# Output the URL to PyPI provenance for the specified artifact.
pypi_provenance_url() {
- local _PYPI_PROVENANCE_URL
+ local _PYPI_ATTESTATION_URL
_pypi_provenance_url "${@}"
- echo "${_PYPI_PROVENANCE_URL}"
+ echo "${_PYPI_ATTESTATION_URL}"
}
# @FUNCTION: pypi_verify_provenance
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 4751eb73831a1fd01f3dcc2caf4ac6911f93b474
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sun Oct 19 15:53:32 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Thu Oct 23 18:18:59 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4751eb73
verify-sig.eclass: Append a trailing newline to gpg --verify output
Explicitly append a trailing newline to the output stream created
by "gpg --verify", to ensure it always contains one. The FreePG
patchset to GPG corrects handling the trailing newlines in cleartext
signed messages, which means that GPG-created "incorrect" messages
no longer include a trailing newline character [1]. We are parsing
the checksum file via bash's "read" command that ignores the characters
after the final newline character, so we need to ensure that one is
always present after the ultimate checksum.
Adding an extra newline to vanilla GnuPG output causes no harm,
as the verification function will simply ignore the resulting empty
line.
[1]
https://gitlab.com/freepg/gnupg/-/blob/a4e8d23439f1e101da3e335b3beab822be968d56/DIFF.md#handle-cleartext-signature-framework-csf-messages-correctly
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/verify-sig.eclass | 1 +
1 file changed, 1 insertion(+)
diff --git a/eclass/verify-sig.eclass b/eclass/verify-sig.eclass
index 1cd3e1010ae5..4e38d327b838 100644
--- a/eclass/verify-sig.eclass
+++ b/eclass/verify-sig.eclass
@@ -380,6 +380,7 @@ _gpg_verify_signed_checksums() {
verify-sig_verify_unsigned_checksums - "${algo}" "${files}" < <(
verify-sig_verify_message "${checksum_file}" - "${key}"
+ echo
)
}
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 34455b96ae20a345fbcb24e984a0cd7243a28dd6
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Wed Oct 22 19:03:34 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Wed Oct 22 19:12:04 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=34455b96
llvm.org.eclass: Add 22.0.0_pre20251022 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 fe0c09a60387..d3fdddb92583 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
+ 22.0.0_pre20251022)
+
EGIT_COMMIT=57a8599d14d4685487064e8b8a5c748970daa4d6
+ ;;
22.0.0_pre20251011)
EGIT_COMMIT=6a0e5b2fd7c340a872ae1e011cfb9de0d188feba
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 0da2643a267b4bbc5736e5a8f107b86fc865c44d
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Wed Oct 22 19:03:07 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Wed Oct 22 19:12:03 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0da2643a
llvm.org.eclass: Remove old 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 71b8bacee44a..fe0c09a60387 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -75,12 +75,6 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
22.0.0_pre20251011)
EGIT_COMMIT=6a0e5b2fd7c340a872ae1e011cfb9de0d188feba
;;
- 22.0.0_pre20251004)
-
EGIT_COMMIT=b1e29ec3b73b9dd06656c7e30ace597ff72cde70
- ;;
- 22.0.0_pre20251001)
-
EGIT_COMMIT=89ed5255b9ee88119e409a6d986eb1ad0e8f08e3
- ;;
*)
die "Unknown snapshot: ${PV}"
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: ce58a148d88b26414d7c58e4672da2e2952e517b
Author: Sam James gentoo org>
AuthorDate: Tue Oct 21 20:15:48 2025 +
Commit: Sam James gentoo org>
CommitDate: Tue Oct 21 20:16:06 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce58a148
llvm.org.eclass: crank openpgp-keys-llvm dep
Bug: https://bugs.gentoo.org/963955
Closes: https://bugs.gentoo.org/964802
Signed-off-by: Sam James 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 b2e688bc4ebe..71b8bacee44a 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -274,7 +274,7 @@ llvm.org_set_globals() {
fi
BDEPEND+="
verify-sig? (
- >=sec-keys/openpgp-keys-llvm-21.1.3
+ >=sec-keys/openpgp-keys-llvm-21.1.4
)
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/llvm.asc
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: a898070a7df034c8410f3a3f6b549c0172bc4724 Author: Sam James gentoo org> AuthorDate: Tue Oct 21 00:25:15 2025 + Commit: Sam James gentoo org> CommitDate: Tue Oct 21 00:25:15 2025 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a898070a rust.eclass: add 1.91.0 slot We already have it in the LLVM map but not in the slot list. Closes: https://bugs.gentoo.org/964752 Signed-off-by: Sam James gentoo.org> eclass/rust.eclass | 1 + 1 file changed, 1 insertion(+) diff --git a/eclass/rust.eclass b/eclass/rust.eclass index 309a3f4d5d19..b5a992199dce 100644 --- a/eclass/rust.eclass +++ b/eclass/rust.eclass @@ -98,6 +98,7 @@ 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.91.0" "1.90.0" "1.89.0" "1.88.0"
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: d4c5fb14bbbe3c6c2082651c880c2b4aed02d4c7
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sun Oct 19 21:45:48 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Oct 19 21:54:33 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d4c5fb14
cmake.eclass: _cmake_modify-cmakelists(): Fix _cmake_minreqver-check call
_cmake_minreqver-check may be called from any phase, so path must be
absolute. As a quick fix, push the path mangling into the output function
_cmake_minreqver-info which (currently) is only called from cmake_prepare.
Closes: https://bugs.gentoo.org/964702
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 14 ++
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index df91ba0f4a0f..bd0294d2ae00 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -453,20 +453,26 @@ _cmake_minreqver-info() {
case ${1} in
305)
eqawarn "The following CMakeLists.txt files are
causing errors:"
- for info in ${_CMAKE_MINREQVER_CMAKE305[*]}; do
eqawarn " ${info}"; done
+ for info in ${_CMAKE_MINREQVER_CMAKE305[*]}; do
+ eqawarn " ${info#"${CMAKE_USE_DIR}/"}";
+ done
eqawarn
;;
310)
if [[ -n ${_CMAKE_MINREQVER_CMAKE310[@]} ]];
then
eqawarn "The following CMakeLists.txt
files are causing warnings:"
- for info in
${_CMAKE_MINREQVER_CMAKE310[*]}; do eqawarn " ${info}"; done
+ for info in
${_CMAKE_MINREQVER_CMAKE310[*]}; do
+ eqawarn "
${info#"${CMAKE_USE_DIR}/"}";
+ done
eqawarn
fi
;;
316)
if [[ ${warnlvl} -ge 316 ]] && [[ -n
${_CMAKE_MINREQVER_CMAKE316[@]} ]]; then
eqawarn "The following CMakeLists.txt
files are causing warnings:"
- for info in
${_CMAKE_MINREQVER_CMAKE316[*]}; do eqawarn " ${info}"; done
+ for info in
${_CMAKE_MINREQVER_CMAKE316[*]}; do
+ eqawarn "
${info#"${CMAKE_USE_DIR}/"}";
+ done
eqawarn
fi
;;
@@ -527,7 +533,7 @@ _cmake_modify-cmakelists() {
fi
# Detect unsupported minimum CMake versions unless
CMAKE_QA_COMPAT_SKIP is set
if ! [[ ${CMAKE_QA_COMPAT_SKIP} ]]; then
- _cmake_minreqver-check "${file#"${CMAKE_USE_DIR}/"}"
+ _cmake_minreqver-check "${file}"
fi
done < <(find "${CMAKE_USE_DIR}" -type f -iname "CMakeLists.txt"
-print0 || die)
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 49c8c7afd9b25b0dde8051d9bbbe62f5ff510ae7
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sun Oct 12 21:34:57 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Thu Oct 16 19:14:24 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=49c8c7af
cmake.eclass: List CMake files being warned about future compat removal
- _cmake_minreqver-check():
New _CMAKE_MINREQVER_CMAKE310 array contains a list of :
tuples with cmake_minimum_required version below 3.10, on top of those
that weren't already saved in _CMAKE_MINREQVER_CMAKE305.
- _cmake_minreqver-info():
Future CMake <3.10 compat removal is prefixed as "QA Notice" *only* if the
preceding CMake <3.5 QA Notice didn't strike already. This is done to avoid
spamming the bug tracker twice per package about outdated minimum versions.
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 81 -
1 file changed, 68 insertions(+), 13 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 91928b65b974..3535a95da4aa 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -132,6 +132,15 @@ fi
# version lower than 3.5.
_CMAKE_MINREQVER_CMAKE305=()
+# @ECLASS_VARIABLE: _CMAKE_MINREQVER_CMAKE310
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Internal array containing : tuples detected by
+# _cmake_minreqver-check() for any CMakeLists.txt with cmake_minimum_required
+# version lower than 3.10 (causes CMake warnings as of 4.0) on top of those
+# already added to _CMAKE_MINREQVER_CMAKE305.
+_CMAKE_MINREQVER_CMAKE310=()
+
# @ECLASS_VARIABLE: CMAKE_QA_SRC_DIR_READONLY
# @USER_VARIABLE
# @DEFAULT_UNSET
@@ -363,6 +372,11 @@ _cmake_minreqver-check() {
_CMAKE_MINREQVER_CMAKE305+=( "${file}":"${ver}" )
chk=0
fi
+ # we don't want duplicates that were already flagged
+ if [[ $chk != 0 ]] && ver_test "${ver}" -lt "3.10"; then
+ _CMAKE_MINREQVER_CMAKE310+=( "${file}":"${ver}" )
+ chk=0
+ fi
fi
return ${chk}
}
@@ -370,21 +384,62 @@ _cmake_minreqver-check() {
# @FUNCTION: _cmake_minreqver-info
# @INTERNAL
# @DESCRIPTION:
-# QA Notice and file listing for any CMakeLists.txt file unsupported w/
CMake-4.
+# QA Notice and file listings for any CMakeLists.txt file not meeting various
+# minimum standards for cmake_minimum_required.
_cmake_minreqver-info() {
- local info
- if [[ -n ${_CMAKE_MINREQVER_CMAKE305[@]} ]]; then
- eqawarn "QA Notice: Compatibility with CMake < 3.5 has been
removed from CMake 4,"
- eqawarn "${CATEGORY}/${PN} will fail to build w/o a fix."
- eqawarn "See also tracker bug #951350; check existing bug or
file a new one for"
- eqawarn "this package, and take it upstream."
- eqawarn
- eqawarn "The following CMakeLists.txt files are causing errors:"
- for info in ${_CMAKE_MINREQVER_CMAKE305[*]}; do
- eqawarn " ${info}"
- done
+ local warnlvl
+ [[ -n ${_CMAKE_MINREQVER_CMAKE305[@]} ]] && warnlvl=305
+ [[ -n ${_CMAKE_MINREQVER_CMAKE310[@]} ]] || [[ ${warnlvl} ]] &&
warnlvl=310
+
+ local weak_qaw="QA Notice: "
+ minreqver_qanotice() {
+ case ${1} in
+ 305)
+ eqawarn "${weak_qaw}Compatibility with CMake <
3.5 has been removed from CMake 4,"
+ eqawarn "${CATEGORY}/${PN} will fail to build
w/o a fix."
+ eqawarn "See also tracker bug #951350; check
existing bug or file a new one for"
+ eqawarn "this package, and take it upstream."
+ ;;
+ 310)
+ eqawarn "${weak_qaw}Compatibility with CMake <
3.10 will be removed in a future release."
+ eqawarn "If not fixed in upstream's code
repository, we should make sure they are aware."
+ eqawarn "See also tracker bug #964405; check
existing or file a new bug for this package."
+ ;;
+ esac
eqawarn
- if has_version -b ">=dev-build/cmake-4"; then
+ weak_qaw="" # weak notice: no "QA Notice" starting with second
call
+ }
+
+ minreqver_listing() {
+ local info
+ case ${1} in
+ 305)
+ eqawarn "The following CMakeLists.txt files are
causing errors:"
+ for info in ${_CMAKE_MINREQVER_CMAKE305[*]}; do
eqawarn " ${info}"; done
+ eqawarn
+ ;;
+ 310)
+
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: be9e5a134fc0aba4f561723769a75807756a177a
Author: Haelwenn (lanodan) Monnier hacktivis me>
AuthorDate: Sun Jul 27 16:26:10 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Fri Oct 3 19:11:24 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=be9e5a13
python-utils-r1.eclass: use 6 'X's for mktemp
As required by POSIX.1-2024 for mkstemp(3) (and future-POSIX for mktemp(1))
Although you'd need de-facto standard mkstemps(3) due to the .xml suffix,
but same contrains of 6 'X's applies, at least with musl.
Signed-off-by: Haelwenn (lanodan) Monnier hacktivis.me>
Part-of: https://github.com/gentoo/gentoo/pull/43186
Closes: https://github.com/gentoo/gentoo/pull/43186
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/python-utils-r1.eclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index f454a066a352..e213273a3a78 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -1420,7 +1420,7 @@ epytest() {
[[ ${NO_COLOR} ]] && color=no
mkdir -p "${T}/pytest-xml" || die
- local junit_xml=$(mktemp "${T}/pytest-xml/${EPYTHON}-XXX.xml" || die)
+ local junit_xml=$(mktemp "${T}/pytest-xml/${EPYTHON}-XX.xml" || die)
local args=(
# verbose progress reporting and tracebacks
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 5e2cec54f6970c5edba0c4fe85e37f1c6652f844
Author: Nowa Ammerlaan gentoo org>
AuthorDate: Thu Oct 16 17:58:31 2025 +
Commit: Nowa Ammerlaan gentoo org>
CommitDate: Thu Oct 16 18:01:54 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5e2cec54
kernel-build.eclass: avoid setting root in generic-uki
This we added originally because several tool got confused when there
is no root= at all. This has since been resolved and I have been
running without any root= set for several months without problems.
Setting root=/dev/gpt-auto-generator actually breaks automatic
decryption of LUKS volumes, so lets get rid of it. Functionally
nothing else changes since the gpt-auto-generator will also run if
root is not set or empty.
Signed-off-by: Nowa Ammerlaan gentoo.org>
eclass/kernel-build.eclass | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass
index 2b16d0a226dd..aa0f7b5894ea 100644
--- a/eclass/kernel-build.eclass
+++ b/eclass/kernel-build.eclass
@@ -113,10 +113,10 @@ IUSE="+strip"
# empty, then the contents are used as the first kernel cmdline
# option of the multi-profile generic UKI. Supplementing the four
# standard options of:
-# - root=/dev/gpt-auto-root ro
-# - root=/dev/gpt-auto-root ro quiet splash
-# - root=/dev/gpt-auto-root ro lockdown=integrity
-# - root=/dev/gpt-auto-root ro quiet splash lockdown=integrity
+# - ro
+# - ro quiet splash
+# - ro lockdown=integrity
+# - ro quiet splash lockdown=integrity
if [[ ${KERNEL_IUSE_MODULES_SIGN} ]]; then
IUSE+=" modules-sign"
@@ -581,10 +581,10 @@ kernel-build_src_install() {
)
cmdlines+=(
- "root=/dev/gpt-auto-root ro"
- "root=/dev/gpt-auto-root ro quiet splash"
- "root=/dev/gpt-auto-root ro lockdown=integrity"
- "root=/dev/gpt-auto-root ro quiet splash
lockdown=integrity"
+ "ro"
+ "ro quiet splash"
+ "ro lockdown=integrity"
+ "ro quiet splash lockdown=integrity"
)
local ukify_args=(
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: ebd5ca0e5ec46d85a9f0ffbeb826f4982cf3000a
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sat Oct 11 19:45:49 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Sat Oct 11 19:45:49 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ebd5ca0e
llvm.org.eclass: Add 22.0.0_pre20251011 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 b2c9dced5ea5..b2e688bc4ebe 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
+ 22.0.0_pre20251011)
+
EGIT_COMMIT=6a0e5b2fd7c340a872ae1e011cfb9de0d188feba
+ ;;
22.0.0_pre20251004)
EGIT_COMMIT=b1e29ec3b73b9dd06656c7e30ace597ff72cde70
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: aae7ac4294341b404b7f12afb75e39e137bfc565
Author: Francisco Javier F茅lix inode64 com>
AuthorDate: Sun Oct 12 18:34:30 2025 +
Commit: Sam James gentoo org>
CommitDate: Sat Oct 18 15:16:26 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aae7ac42
apache-2.eclass: Missing deps for dev-libs/libxml2 and fix existing preserved
libs
apache2_modules_proxy_html and apache2_modules_xml2enc require dev-libs/libxml2
Fix:
>>> package: dev-libs/libxml2-2.14.6
* - /usr/lib64/libxml2.so.2
* - /usr/lib64/libxml2.so.2.13.9
* used by /usr/lib64/apache2/modules/mod_proxy_html.so
(www-servers/apache-2.4.65)
* used by /usr/lib64/apache2/modules/mod_xml2enc.so
(www-servers/apache-2.4.65)
Signed-off-by: Fco Javier Felix inode64.com>
Part-of: https://github.com/gentoo/gentoo/pull/44149
Closes: https://github.com/gentoo/gentoo/pull/44149
Signed-off-by: Sam James gentoo.org>
eclass/apache-2.eclass | 2 ++
1 file changed, 2 insertions(+)
diff --git a/eclass/apache-2.eclass b/eclass/apache-2.eclass
index 0ff76bd2dcf1..cb41bcdcdcfe 100644
--- a/eclass/apache-2.eclass
+++ b/eclass/apache-2.eclass
@@ -152,6 +152,7 @@ RDEPEND="
apache2_modules_lua? ( ${LUA_DEPS} )
apache2_modules_md? ( >=dev-libs/jansson-2.10:= )
apache2_modules_mime? ( app-misc/mime-types )
+ apache2_modules_proxy_html? ( dev-libs/libxml2:= )
apache2_modules_proxy_http2? (
>=net-libs/nghttp2-${NGHTTP2_VERSION}:=
kernel_linux? ( sys-apps/util-linux )
@@ -159,6 +160,7 @@ RDEPEND="
apache2_modules_session_crypto? (
dev-libs/apr-util[openssl]
)
+ apache2_modules_xml2enc? ( dev-libs/libxml2:= )
gdbm? ( sys-libs/gdbm:= )
ldap? ( net-nds/openldap:= )
selinux? ( sec-policy/selinux-apache )
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: dea5f91b78e9b9e730993dccaafd909ba96766cf
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sat Oct 4 08:51:07 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Sat Oct 4 08:51:07 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dea5f91b
llvm.org.eclass: Remove old snapshot support
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 86331208c7c0..694b94b303d5 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -72,12 +72,6 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
_LLVM_SOURCE_TYPE=snapshot
case ${PV} in
- 22.0.0_pre20250910)
-
EGIT_COMMIT=f059d2bac034acca39ad60a1b13aaec6afa0a3d6
- ;;
- 22.0.0_pre20250923)
-
EGIT_COMMIT=70bd610e43853d575e22be1cda46614fe9f0072f
- ;;
22.0.0_pre20251001)
EGIT_COMMIT=89ed5255b9ee88119e409a6d986eb1ad0e8f08e3
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 5c3a3f9ac5533ec04815057f64600f665d52068c
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Mon Oct 13 21:07:55 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Thu Oct 16 19:14:24 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c3a3f9a
cmake.eclass: Don't pass workaround when CMAKE_QA_COMPAT_SKIP is set
If QA checks are skipped, then it is counterproductive to hide
resulting errors by passing -DCMAKE_POLICY_VERSION_MINIMUM=3.5.
Better warn about the CMake 4 workaround possibly only getting the build
system to another error.
Bug: https://bugs.gentoo.org/951350
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 7 +--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index ebc78a333eef..91928b65b974 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -386,7 +386,8 @@ _cmake_minreqver-info() {
eqawarn
if has_version -b ">=dev-build/cmake-4"; then
eqawarn "CMake 4 detected; building with
-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
- eqawarn "This is merely a workaround and *not* a
permanent fix."
+ eqawarn "This is merely a workaround to avoid CMake
Error and *not* a permanent fix;"
+ eqawarn "there may be new build or runtime bugs as a
result."
eqawarn
fi
eqawarn "An upstreamable patch should take any resulting CMake
policy changes"
@@ -748,7 +749,9 @@ cmake_src_configure() {
cmakeargs+=( -C "${CMAKE_EXTRA_CACHE_FILE}" )
fi
- if [[ -n ${_CMAKE_MINREQVER_CMAKE305[@]} ]] && has_version -b
">=dev-build/cmake-4"; then
+ if ! [[ ${CMAKE_QA_COMPAT_SKIP} ]] &&
+ [[ -n ${_CMAKE_MINREQVER_CMAKE305[@]} ]] &&
+ has_version -b ">=dev-build/cmake-4"; then
cmakeargs+=( -DCMAKE_POLICY_VERSION_MINIMUM=3.5 )
fi
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 68e4baf34f8c40f422e87b9770f12c6d3b60234d
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Sat Oct 4 08:51:32 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Sat Oct 4 08:51:32 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68e4baf3
llvm.org.eclass: Add 22.0.0_pre20251004 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 694b94b303d5..b9ee50fa2492 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
+ 22.0.0_pre20251004)
+
EGIT_COMMIT=b1e29ec3b73b9dd06656c7e30ace597ff72cde70
+ ;;
22.0.0_pre20251001)
EGIT_COMMIT=89ed5255b9ee88119e409a6d986eb1ad0e8f08e3
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 5579f4902a1d69f99115789f4c7bd89e07e58fc8
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Mon Oct 13 15:44:49 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Thu Oct 16 19:14:23 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5579f490
cmake.eclass: Set CMAKE_POLICY_DEFAULT_CMP0094=NEW to fix FindPython
See also:
https://cmake.org/cmake/help/latest/policy/CMP0094.html
Closes: https://bugs.gentoo.org/959154
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 7c825f87c367..e132b0b53deb 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -631,7 +631,8 @@ cmake_src_configure() {
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${build_rules}" CACHE
FILEPATH "Gentoo override rules")
set(CMAKE_INSTALL_DOCDIR "${EPREFIX}/usr/share/doc/${PF}" CACHE
PATH "")
set(BUILD_SHARED_LIBS ON CACHE BOOL "")
- set(Python3_FIND_UNVERSIONED_NAMES FIRST CACHE STRING "")
+ set(Python3_FIND_UNVERSIONED_NAMES FIRST CACHE STRING "") #
FindPythonInterp, Gentoo-bug #835799
+ set(CMAKE_POLICY_DEFAULT_CMP0094 NEW CACHE STRING "" ) #
FindPython, Gentoo-bug #959154
set(CMAKE_DISABLE_PRECOMPILE_HEADERS ON CACHE BOOL "")
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF CACHE BOOL "")
set(CMAKE_TLS_VERIFY ON CACHE BOOL "")
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 7ad5452949cbe7fa8856d5fa43528cd39f84efaf
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sat Sep 27 19:29:09 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Oct 5 21:49:43 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7ad54529
cmake.eclass: Reorder arguments in cmake_src_install cmake_build call
Bug: https://bugs.gentoo.org/963428
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 2e799f14352e..b3a1cde6057e 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -796,7 +796,7 @@ cmake_src_test() {
cmake_src_install() {
debug-print-function ${FUNCNAME} "$@"
- DESTDIR="${D}" cmake_build install "$@"
+ DESTDIR="${D}" cmake_build "$@" install
if [[ ${EAPI} == 7 ]]; then
pushd "${S}" > /dev/null || die
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 74969e04323ddb6034a3581b93ec292a9304e767
Author: Volkmar W. Pogatzki pogatzki net>
AuthorDate: Sun May 18 15:53:34 2025 +
Commit: Sam James gentoo org>
CommitDate: Fri Oct 3 16:24:35 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74969e04
java-utils-2.eclass: re-enable PORTAGE_QUIET
There are packages like javacup and jflex which cannot be built from
source without using a pre-built runtime version of itself. Re-emerging
these packages using the installed instead of the bundled pre-built
version was causing the java-pkg_getjar() function to trigger
java-pkg_ensure-dep() to issue a "QA Notice: java-pkg_ensure-dep:"
message.
This commit ports the PORTAGE_QUIET variable to java-pkg_getjar() so
that it works again as it did in the past for ant-based ebuilds.
Bug: https://bugs.gentoo.org/937047
Signed-off-by: Volkmar W. Pogatzki pogatzki.net>
Part-of: https://github.com/gentoo/gentoo/pull/44017
Signed-off-by: Sam James gentoo.org>
eclass/java-utils-2.eclass | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/eclass/java-utils-2.eclass b/eclass/java-utils-2.eclass
index 3b2b9d6a5b24..20d189ff8cfd 100644
--- a/eclass/java-utils-2.eclass
+++ b/eclass/java-utils-2.eclass
@@ -1305,7 +1305,7 @@ java-pkg_getjar() {
classpath=$(java-config --classpath=${pkg})
[[ $? != 0 ]] && die ${error_msg}
- java-pkg_ensure-dep "${build_only}" "${pkg}"
+ [[ -z ${PORTAGE_QUIET} ]] && java-pkg_ensure-dep "${build_only}"
"${pkg}"
# Record the package(Virtual) as a dependency and then set build_only
# So that individual jars are not recorded.
@@ -1325,7 +1325,7 @@ java-pkg_getjar() {
if [[ "$(basename ${jar})" == "${target_jar}" ]] ; then
# Only record jars that aren't build-only
- if [[ -z "${record_jar}" ]]; then
+ if [[ -z "${record_jar}" && -z ${PORTAGE_QUIET} ]]; then
if [[ -z "${build_only}" ]]; then
java-pkg_record-jar_ "${pkg}" "${jar}"
else
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 385f0c526a66fa7c3d0a23ea62cf260b188402ba
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Wed Oct 1 19:36:20 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Oct 5 21:49:43 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=385f0c52
cmake.eclass: allow nonfatal cmake_src_test, fix pms violation
1) This is already expected in tree via virtx use.
2) Escape sequences are not allowed for `die`, use eerror instead.
Bug: https://bugs.gentoo.org/961929
See also: https://github.com/gentoo/gentoo/pull/40307
Signed-off-by: Alfred Wingate protonmail.com>
Signed-off-by: Paul Zander gmail.com>
Signed-off-by: Andreas Sturmlechner gentoo.org>
(cherry picked from commit 657dc69cdd68546003b7877321bc1d2db0ddc849) (kde)
(cherry picked from commit ae57eab324d55a4a0a6fb890d8039e53a7a8930a) (kde)
eclass/cmake.eclass | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index e3f9a50a518d..37b181df927b 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -816,9 +816,11 @@ cmake_src_test() {
eerror "--START TEST
LOG--"
cat "${BUILD_DIR}/Testing/Temporary/LastTest.log"
eerror "--END TEST
LOG"
- die "Tests failed."
+ die -n "Tests failed."
else
- die "Tests failed. When you file a bug, please attach
the following file: \n\t${BUILD_DIR}/Testing/Temporary/LastTest.log"
+ eerror "Tests failed. When you file a bug, please
attach the following file:"
+ eerror "\t${BUILD_DIR}/Testing/Temporary/LastTest.log"
+ die -n "Tests failed."
fi
# die might not die due to nonfatal
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: fade5bd1cfb710a8673bf3d9bc1d788df986236e
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sun Sep 28 12:12:34 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Oct 5 21:49:43 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fade5bd1
cmake.eclass: Provide cmake_prepare() to solve conflicts w/ other eclass
Split out what we need from cmake_src_prepare into new cmake_prepare().
cmake_src_prepare henceforth just calls default_src_prepare(),
then cmake_prepare(). This change was made for >=EAPI-8 only.
This also switches on a general EAPI=7 imminent error QA notice.
Bug: https://bugs.gentoo.org/853805
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 125 ++--
1 file changed, 81 insertions(+), 44 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index b3a1cde6057e..e3f9a50a518d 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -303,6 +303,8 @@ _cmake_check_build_dir() {
if [[ ${EAPI} == 7 ]]; then
: "${CMAKE_USE_DIR:=${S}}"
else
+ # Since EAPI-8 we use current working directory, bug #704524
+ # esp. test with 'special' pkgs like: app-arch/brotli,
net-libs/quiche
: "${CMAKE_USE_DIR:=${PWD}}"
fi
if [[ -n ${CMAKE_IN_SOURCE_BUILD} ]]; then
@@ -394,22 +396,38 @@ _cmake_modify-cmakelists() {
_EOF_
}
-# @FUNCTION: cmake_src_prepare
+# @FUNCTION: _cmake4_callout
+# @INTERNAL
# @DESCRIPTION:
-# Apply ebuild and user patches. *MUST* be run or cmake_src_configure will
fail.
-cmake_src_prepare() {
+# QA notice printout for build systems unsupported w/ CMake-4.
+_cmake4_callout() {
+ if [[ ${_CMAKE_MINREQVER_UNSUPPORTED} ]]; then
+ eqawarn "QA Notice: Compatibility with CMake < 3.5 has been
removed from CMake 4,"
+ eqawarn "${CATEGORY}/${PN} will fail to build w/o a fix."
+ eqawarn "See also tracker bug #951350; check existing bug or
file a new one for"
+ eqawarn "this package, and take it upstream."
+ if has_version -b ">=dev-build/cmake-4"; then
+ eqawarn "CMake 4 detected; building with
-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
+ eqawarn "This is merely a workaround and *not* a
permanent fix."
+ fi
+ fi
+}
+
+# @FUNCTION: cmake_prepare
+# @DESCRIPTION:
+# Check existence of and sanitise CMake files, then make ${CMAKE_USE_DIR}
+# read-only. *MUST* be run or cmake_src_configure will fail. EAPI-8 only.
+cmake_prepare() {
debug-print-function ${FUNCNAME} "$@"
if [[ ${EAPI} == 7 ]]; then
- pushd "${S}" > /dev/null || die # workaround from cmake-utils
- # in EAPI-8, we use current working directory instead, bug
#704524
- # esp. test with 'special' pkgs like: app-arch/brotli,
net-libs/quiche
+ eerror "${FUNCNAME} is EAPI-8 only. Call cmake_src_prepare
instead."
+ die "FATAL: Forbidden function call."
fi
- _cmake_check_build_dir
- default_src_prepare
+ _cmake_check_build_dir
- # check if CMakeLists.txt exists and if not then die
+ # Check if CMakeLists.txt exists and if not then die
if [[ ! -e ${CMAKE_USE_DIR}/CMakeLists.txt ]] ; then
eerror "Unable to locate CMakeLists.txt under:"
eerror "\"${CMAKE_USE_DIR}/CMakeLists.txt\""
@@ -417,54 +435,68 @@ cmake_src_prepare() {
die "FATAL: Unable to find CMakeLists.txt"
fi
- local modules_list
- if [[ ${EAPI} == 7 && $(declare -p CMAKE_REMOVE_MODULES_LIST) !=
"declare -a"* ]]; then
- modules_list=( ${CMAKE_REMOVE_MODULES_LIST} )
- else
- modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" )
- fi
+ local modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" )
local name
for name in "${modules_list[@]}" ; do
- if [[ ${EAPI} == 7 ]]; then
- find "${S}" -name "${name}.cmake" -exec rm -v {} + ||
die
- else
- find -name "${name}.cmake" -exec rm -v {} + || die
- fi
+ find -name "${name}.cmake" -exec rm -v {} + || die
done
# Remove dangerous things.
_cmake_modify-cmakelists
+ _cmake4_callout
- if [[ ${_CMAKE_MINREQVER_UNSUPPORTED} ]]; then
- eqawarn "QA Notice: Compatibility with CMake < 3.5 has been
removed from CMake 4,"
- eqawarn "${CATEGORY}/${PN} will fail to build w/o a fix."
- eqawarn "See also tracker bug #951350; check existing bug or
file a new one for"
- eqawarn "this package, and take it upstream."
- if has_version -b ">=dev-build/cmake-4"; then
- eqawarn "CMake 4 detecte
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 0f1e557df0089dc1f269f23f60edf71c56bc330f
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Thu Oct 9 01:56:50 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Thu Oct 9 02:17:20 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f1e557d
llvm.org.eclass: Bump release keys
Technically only 21.1.3 needs new keys but no point in splitting
since we push keys with stable keywords, and the old keys are included.
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 b9ee50fa2492..b2c9dced5ea5 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -271,7 +271,7 @@ llvm.org_set_globals() {
fi
BDEPEND+="
verify-sig? (
- >=sec-keys/openpgp-keys-llvm-20.1.5
+ >=sec-keys/openpgp-keys-llvm-21.1.3
)
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/llvm.asc
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 560702ec70ca0e6cd27a0973aa40c384292f5bab
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Wed Oct 1 06:13:52 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Wed Oct 1 06:13:52 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=560702ec
llvm.org.eclass: Add 22.0.0_pre20251001 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 53e28fba81ea..86331208c7c0 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -78,6 +78,9 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
22.0.0_pre20250923)
EGIT_COMMIT=70bd610e43853d575e22be1cda46614fe9f0072f
;;
+ 22.0.0_pre20251001)
+
EGIT_COMMIT=89ed5255b9ee88119e409a6d986eb1ad0e8f08e3
+ ;;
*)
die "Unknown snapshot: ${PV}"
;;
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: db6e698c25d42e71b5b193e3aaf2c8db844c6dee
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sun Oct 5 19:54:43 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Oct 5 21:49:44 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=db6e698c
cmake.eclass: Raise minimum dev-build/cmake version to 3.28.5
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 5b3d135018e8..0a8b93c215aa 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -164,7 +164,7 @@ case ${CMAKE_MAKEFILE_GENERATOR} in
esac
if [[ ${PN} != cmake ]]; then
- BDEPEND+=" >=dev-build/cmake-3.20.5"
+ BDEPEND+=" >=dev-build/cmake-3.28.5"
fi
# @FUNCTION: cmake_run_in
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 5c41ba92597c7c41e5b7015ab920b02fc43fb79a
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Mon Oct 13 20:21:49 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Thu Oct 16 19:14:24 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c41ba92
ecm.eclass: Set CMAKE_ECM_MODE=true pre-inheriting cmake
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/ecm.eclass | 5 +
1 file changed, 5 insertions(+)
diff --git a/eclass/ecm.eclass b/eclass/ecm.eclass
index 31315f2b8d75..f7a77c35d5f2 100644
--- a/eclass/ecm.eclass
+++ b/eclass/ecm.eclass
@@ -29,6 +29,11 @@ esac
if [[ -z ${_ECM_ECLASS} ]]; then
_ECM_ECLASS=1
+# @ECLASS_VARIABLE: CMAKE_ECM_MODE
+# @DESCRIPTION:
+# For proper description see cmake.eclass manpage.
+CMAKE_ECM_MODE=true
+
inherit cmake flag-o-matic
if [[ ${EAPI} == 8 ]]; then
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 74b839fa53c6ebb386df6ec85e185020978d0b6c
Author: Micha艂 G贸rny gentoo org>
AuthorDate: Fri Oct 3 12:38:19 2025 +
Commit: Micha艂 G贸rny gentoo org>
CommitDate: Fri Oct 3 19:11:24 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74b839fa
kernel-install.eclass: Fix updating symlinks with -p kernels
Closes: https://bugs.gentoo.org/963683
Signed-off-by: Micha艂 G贸rny gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/44021
Closes: https://github.com/gentoo/gentoo/pull/44021
Signed-off-by: Micha艂 G贸rny gentoo.org>
eclass/kernel-install.eclass | 13 +
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass
index 47afe6e75010..5d074598192f 100644
--- a/eclass/kernel-install.eclass
+++ b/eclass/kernel-install.eclass
@@ -263,10 +263,15 @@ kernel-install_can_update_symlink() {
# strip KV_LOCALVERSION, we want to update the old kernels not using
# KV_LOCALVERSION suffix and the new kernels using it
symlink_ver=${symlink_ver%${KV_LOCALVERSION}}
-
- # if ${symlink_ver} contains anything but numbers (e.g. an extra
- # suffix), it's not our kernel, so leave it alone
- [[ -n ${symlink_ver//[0-9.]/} ]] && return 1
+ symlink_ver=${symlink_ver/-p/_p}
+ # strip -p* revision
+ local symlink_ver_no_rev=${symlink_ver%_p[0-9]*}
+ local rev=${symlink_ver#${symlink_ver_no_rev}}
+ rev=${rev#_p}
+
+ # if ${symlink_ver} contained anything but numbers and revision (e.g.
+ # an extra suffix), it's not our kernel, so leave it alone
+ [[ -n ${symlink_ver_no_rev//[0-9.]/} || -n ${rev//[0-9]/} ]] && return 1
local symlink_pkg=${CATEGORY}/${PN}-${symlink_ver}
# if the current target is either being replaced, or still
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 173a936ba3b86bb4c4b6201fd5b4f75e08f6b9fa
Author: Sam James gentoo org>
AuthorDate: Sat Oct 11 07:08:55 2025 +
Commit: Sam James gentoo org>
CommitDate: Sat Oct 11 07:08:55 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=173a936b
toolchain.eclass: cleanup one more bit of build-jit cruft
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 c09a7da14354..0acb2cb365b7 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -3170,7 +3170,7 @@ toolchain_death_notice() {
# TODO: For bootstrap comparison failures, include the stage2 & stage3
# differing objects to avoid having to ask reporters to manually
collect...
local dir
- for dir in "${WORKDIR}"/build-jit "${WORKDIR}"/build ; do
+ for dir in "${WORKDIR}"/build ; do
if [[ -e "${dir}" ]] ; then
pushd "${WORKDIR}" >/dev/null
(echo '' | $(tc-getCC ${CTARGET}) ${CFLAGS} -v -E -
2>&1) > "${dir}"/gccinfo.log
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 1d5d6cb751e803d7e4d525e8a01d72786b400942
Author: Sam James gentoo org>
AuthorDate: Sun Oct 5 20:34:28 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Thu Oct 16 19:13:57 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d5d6cb7
cmake.eclass: disable automagic LTO
Pass -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF to avoid automagically
enabling LTO if the compiler supports it.
Note that unlike what we do w/ meson.eclass, we can't do some magic
with `tc-is-lto` here because CMake doesn't allow refining the parallelism
used. But that's fine.
This change still allows using LTO via *FLAGS which is what we tell
people to do.
Closes: https://bugs.gentoo.org/927157
Signed-off-by: Sam James gentoo.org>
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 1 +
1 file changed, 1 insertion(+)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 0a8b93c215aa..7526d492493f 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -633,6 +633,7 @@ cmake_src_configure() {
set(BUILD_SHARED_LIBS ON CACHE BOOL "")
set(Python3_FIND_UNVERSIONED_NAMES FIRST CACHE STRING "")
set(CMAKE_DISABLE_PRECOMPILE_HEADERS ON CACHE BOOL "")
+ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF CACHE BOOL "")
set(CMAKE_TLS_VERIFY ON CACHE BOOL "")
set(CMAKE_COMPILE_WARNING_AS_ERROR OFF CACHE BOOL "")
_EOF_
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 6bb573b35fd1a692d222304b8ce6f168b0026869
Author: Sam James gentoo org>
AuthorDate: Sat Oct 11 03:19:12 2025 +
Commit: Sam James gentoo org>
CommitDate: Sat Oct 11 07:07:20 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6bb573b3
toolchain.eclass: stop building JIT separately
We introduced a split for libgccjit because it needs --enable-host-shared
for bug #843341, but I think this was a mistake in the end:
* We don't bootstrap that first, host-shared build because otherwise the
build would take even longer;
* gcc PR117047 is an example where not-bootstrapping causes very-hard-to-debug
problems because libgccjit may be compiled differently by a newer compiler,
but you can't just rebuild GCC once to observe that. Even knowing this*,
I was stumped by it for some time;
* It introduces complexities into the ebuild and it's already complex enough.
See bug #954077 and bug #953823;
* We want to support rust_codegen_gcc (a rustc codegen backend using libgccjit)
in the future. If we do that, we want a bootstrapped build for libgccjit
to know it's reliable;
* The test setup as-is doesn't run tests for the first build;
* On slower machines, that first "wasted" build is pretty noticeable
and slow.
I think any possible slowdown should be mitigated by using LTO and possibly
-fno-semantic-interposition for GCC, which users are free to do.
Bug: https://bugs.gentoo.org/843341
Bug: https://bugs.gentoo.org/954077
Bug: https://bugs.gentoo.org/953823
Signed-off-by: Sam James gentoo.org>
eclass/toolchain.eclass | 112 +++-
1 file changed, 15 insertions(+), 97 deletions(-)
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 5e9a6bcad9ad..c09a7da14354 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1295,6 +1295,7 @@ toolchain_src_configure() {
is_cobol && GCC_LANG+=",cobol"
is_modula2 && GCC_LANG+=",m2"
is_rust && GCC_LANG+=",rust"
+ is_jit && GCC_LANG+=",jit"
_need_ada_bootstrap_mangling() {
if [[ ${CATEGORY}/${PN} == dev-lang/gnat-gpl ]] ; then
@@ -1874,6 +1875,14 @@ toolchain_src_configure() {
confgcc+=(
--with-gxx-libcxx-include-dir="${ESYSROOT}"/usr/include/c++/v1 )
fi
+ if is_jit || _tc_use_if_iuse libgdiagnostics ; then
+ confgcc+=( --enable-host-shared )
+ fi
+
+ if tc_version_is_at_least 15.1 ${PV} ; then
+ confgcc+=( $(use_enable libgdiagnostics) )
+ fi
+
# TODO: Ignore RCs here (but TOOLCHAIN_IS_RC isn't yet an eclass var)
if [[ ${PV} == *_p* && -f "${S}"/gcc/doc/gcc.info ]] ; then
# Safeguard against https://gcc.gnu.org/PR106899 being fixed
@@ -1924,66 +1933,6 @@ toolchain_src_configure() {
gcc_shell="${BROOT}"/bin/sh
fi
- if is_jit || _tc_use_if_iuse libgdiagnostics ; then
- einfo "Configuring shared gcc for JIT/libgdiagnostics"
-
- local confgcc_jit=(
- "${confgcc[@]}"
-
- --enable-lto
- --disable-analyzer
- --disable-bootstrap
- --disable-cet
- --disable-default-pie
- --disable-default-ssp
- --disable-gcov
- --disable-libada
- --disable-libatomic
- --disable-libgomp
- --disable-libitm
- --disable-libquadmath
- --disable-libsanitizer
- --disable-libssp
- --disable-libstdcxx-pch
- --disable-libvtv
- --disable-nls
- --disable-objc-gc
- --disable-systemtap
-
- --enable-host-shared
-
- # Might be used for the just-built GCC. Easier to just
- # respect USE=graphite here in case the user passes some
- # graphite flags rather than try strip them out.
- $(use_with graphite isl)
- --with-system-zlib
- )
-
- if is_jit ; then
- confgcc_jit+=( --enable-languages=jit )
- else
- confgcc_jit+=( --enable-languages=c,c++ )
- fi
-
- if tc_has_feature zstd ; then
- confgcc_jit+=( $(use_with zstd) )
- fi
-
- if tc_version_is_at_least 15.1 ${PV} ; then
- confgcc_jit+=( $(use_enable libgdiagnostics) )
- fi
-
- if tc_version_is_at_least 13.1 ; then
- confgcc_jit+=( --disable-fixincludes )
- fi
-
- mkdir -p "${WORKDIR}"/build-jit ||
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: b9319f2dfb6498898d7192595476355fb10c36a5
Author: Volkmar W. Pogatzki pogatzki net>
AuthorDate: Sat May 17 17:13:32 2025 +
Commit: Sam James gentoo org>
CommitDate: Fri Oct 3 16:24:11 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b9319f2d
java-pkg-simple.eclass: fix a problem in multi-relase packaging
There was too much of '--release ${version}' leading to validation
errors and preventing successful creation of the jar when packaging
(jar --create -f ) dev-java/fastdoubleparser. Removing it and changing
the output directory of multi-release classes solves the problem and
allows removal of the multi_release variable.
Signed-off-by: Volkmar W. Pogatzki pogatzki.net>
Part-of: https://github.com/gentoo/gentoo/pull/42134
Closes: https://github.com/gentoo/gentoo/pull/42134
Signed-off-by: Sam James gentoo.org>
eclass/java-pkg-simple.eclass | 29 +++--
1 file changed, 11 insertions(+), 18 deletions(-)
diff --git a/eclass/java-pkg-simple.eclass b/eclass/java-pkg-simple.eclass
index 0cce6a2cdfa8..40271156bb3a 100644
--- a/eclass/java-pkg-simple.eclass
+++ b/eclass/java-pkg-simple.eclass
@@ -598,7 +598,7 @@ java-pkg-simple_src_compile() {
# compile sources in ${reldir}
ejavac \
- -d target/versions/${release} \
+ -d ${classes}/META-INF/versions/${release} \
-encoding ${JAVA_ENCODING} \
-classpath
"${modulepath}:${JAVA_INTERMEDIATE_JAR_NAME}.jar" \
--module-path
"${modulepath}:${JAVA_INTERMEDIATE_JAR_NAME}.jar" \
@@ -606,7 +606,7 @@ java-pkg-simple_src_compile() {
--patch-module
"${JAVA_INTERMEDIATE_JAR_NAME}"="${JAVA_INTERMEDIATE_JAR_NAME}.jar" \
${JAVAC_ARGS} $(find ${reldir} -type f -name
'*.java')
-
JAVA_GENTOO_CLASSPATH_EXTRA+=":target/versions/${release}"
+
JAVA_GENTOO_CLASSPATH_EXTRA+=":${classes}/META-INF/versions/${release}"
done
JAVA_PKG_WANT_SOURCE=${tmp_source}
@@ -681,21 +681,7 @@ java-pkg-simple_src_compile() {
fi
# package
- local jar_args multi_release=""
- if [[ -n ${JAVA_RELEASE_SRC_DIRS[@]} ]]; then
- # Preparing the multi_release variable. From multi-release
compilation
- # the release-specific classes are sorted in
target/versions/${release}
- # directories.
-
- # TODO:
- # Could this possibly be simplified with printf?
- pushd target/versions > /dev/null || die
- for version in $(ls -d * | sort -g); do
- debug-print "Version is ${version}"
- multi_release="${multi_release} --release
${version} -C target/versions/${version} . "
- done
- popd > /dev/null || die
- fi
+ local jar_args
if [[ -e ${classes}/META-INF/MANIFEST.MF ]]; then
sed '/Created-By: /Id' -i ${classes}/META-INF/MANIFEST.MF
@@ -703,7 +689,14 @@ java-pkg-simple_src_compile() {
else
jar_args="cf ${JAVA_JAR_FILENAME}"
fi
- jar ${jar_args} -C ${classes} . ${multi_release} || die "jar failed"
+ jar ${jar_args} -C ${classes} . || die "jar failed"
+
+ if [[ -n ${JAVA_RELEASE_SRC_DIRS[@]} ]]; then
+ # From multi-release compilation the release-specific classes
are sorted
+ # in target/classes/META-INF/versions/${release} directories.
+ echo 'Multi-Release: true' >> "${T}/add-to-MANIFEST.MF" || die
"add true"
+ fi
+
if [[ -n "${JAVA_AUTOMATIC_MODULE_NAME}" ]]; then
echo "Automatic-Module-Name: ${JAVA_AUTOMATIC_MODULE_NAME}" \
>> "${T}/add-to-MANIFEST.MF" || die "adding module name
failed"
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 181e38741a32cebc27dcc81bcf359a4c6dedc90f
Author: Petr Van臎k gentoo org>
AuthorDate: Fri Oct 3 11:54:00 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Sun Oct 5 21:49:43 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=181e3874
cmake.eclass: Update CMAKE_WARN_UNUSED_CLI default value description
This commit updates the CMAKE_WARN_UNUSED_CLI variable description to
accurately reflect the default value set to "yes".
The CMAKE_WARN_UNUSED_CLI default value was changed to "yes" in
cmake-utils.eclass in commit 3600c714eb86 ("cmake-utils.eclass: enable
CMAKE_WARN_UNUSED_CLI for EAPI 6"), but the description did not reflect
it. This description was later reused in the new cmake.eclass [1]
without reflecting the default value either.
Fixes: 9053737a4e16 ("cmake.eclass: New eclass, EAPI-7 only cleanup of
cmake-utils") [1]
Signed-off-by: Petr Van臎k gentoo.org>
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 37b181df927b..5b3d135018e8 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -106,7 +106,8 @@ fi
# @DESCRIPTION:
# Warn about variables that are declared on the command line
# but not used. Might give false-positives.
-# "no" to disable (default) or anything else to enable.
+# "no" to disable or anything else to enable.
+# The default is set to "yes" (enabled).
: "${CMAKE_WARN_UNUSED_CLI:=yes}"
# @ECLASS_VARIABLE: CMAKE_EXTRA_CACHE_FILE
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: e1b2c889ed20b28100ba601b415925a2b73cde80
Author: Sam James gentoo org>
AuthorDate: Sun Oct 12 14:18:47 2025 +
Commit: Sam James gentoo org>
CommitDate: Sun Oct 12 14:19:36 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e1b2c889
toolchain-funcs.eclass: fix tc-check-min_ver example
$ python3.13 -c 'import portage; print(portage.versions.vercmp("13.2.0",
"13.2"))'
1
Bug: https://bugs.gentoo.org/964195
Signed-off-by: Sam James 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 fa2820035cb7..3787a84805f6 100644
--- a/eclass/toolchain-funcs.eclass
+++ b/eclass/toolchain-funcs.eclass
@@ -659,11 +659,11 @@ _tc-has-openmp() {
# build-time, e.g.
# @CODE
# pkg_pretend() {
-# [[ ${MERGE_TYPE} != binary ]] && tc-check-min_ver gcc 13.2.0
+# [[ ${MERGE_TYPE} != binary ]] && tc-check-min_ver gcc 13.2
# }
#
# pkg_setup() {
-# [[ ${MERGE_TYPE} != binary ]] && tc-check-min_ver gcc 13.2.0
+# [[ ${MERGE_TYPE} != binary ]] && tc-check-min_ver gcc 13.2
# }
# @CODE
tc-check-min_ver() {
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 8d6be776fa06e7e32fa9e2fb369286de59f3a0de
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Wed Oct 15 14:46:43 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Thu Oct 16 19:14:25 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8d6be776
ecm-common.eclass: Raise CMake minimum to 3.31
cmake.eclass remains at 3.28 in ::gentoo for a while, so having to
define the BDEPEND as well here.
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/ecm-common.eclass | 9 ++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/eclass/ecm-common.eclass b/eclass/ecm-common.eclass
index 7f5d3d1e9915..9db2d68e6f41 100644
--- a/eclass/ecm-common.eclass
+++ b/eclass/ecm-common.eclass
@@ -1,4 +1,4 @@
-# Copyright 2024 Gentoo Authors
+# Copyright 2024-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: ecm-common.eclass
@@ -133,7 +133,10 @@ fi
DESCRIPTION="Common files for ${PN/-common/}"
-BDEPEND=">=kde-frameworks/extra-cmake-modules-${KFMIN}:*"
+BDEPEND="
+ >=dev-build/cmake-3.31.9-r1
+ >=kde-frameworks/extra-cmake-modules-${KFMIN}:*
+"
case ${ECM_I18N} in
true)
@@ -185,7 +188,7 @@ fi
# Create a CMakeLists.txt file with minimum ECM setup.
_ecm-common_preamble() {
cat > CMakeLists.txt <<- _EOF_ || die
- cmake_minimum_required(VERSION 3.16)
+ cmake_minimum_required(VERSION 3.31)
project(${PN} VERSION ${PV})
find_package(ECM "${KFMIN}" REQUIRED NO_MODULE)
[gentoo-commits] repo/gentoo:master commit in: eclass/
commit: 6d7865c16f4c2eebf5d66a401184324967033d23
Author: Andreas Sturmlechner gentoo org>
AuthorDate: Sun Oct 12 21:06:22 2025 +
Commit: Andreas Sturmlechner gentoo org>
CommitDate: Thu Oct 16 19:14:23 2025 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6d7865c1
cmake.eclass: Provide a list of CMake files unsupported with CMake 4
Instead of only eqawarning that there is *some* file with a too low
cmake_minimum_required version, print a list of all the CMakeLists.txt
found to be unsupported, and the detected version next to it.
- _CMAKE_MINREQVER_CMAKE305 is either empty (package "passed") or
contains a list of : tuples to print as eqawarn message
This replaces _CMAKE_MINREQVER_UNSUPPORTED
- Rename _cmake4_callout() -> _cmake_minreqver-info()
Provide upstream link with list of CMake policy changes per release
- Prepare for upcoming additional cmake_minimum_version checks
- Rename _cmake_minreqver-lt() -> _cmake_minreqver-check()
Function now optionally takes one or two args:
: runs all version checks over
: only check against
Closes: https://bugs.gentoo.org/951350
Signed-off-by: Andreas Sturmlechner gentoo.org>
eclass/cmake.eclass | 99 ++---
1 file changed, 64 insertions(+), 35 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index e132b0b53deb..ebc78a333eef 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -124,11 +124,13 @@ fi
# If set, skip detection of CMakeLists.txt unsupported in CMake 4 in case of
# false positives (e.g. unused outdated bundled libs).
-# @ECLASS_VARIABLE: _CMAKE_MINREQVER_UNSUPPORTED
+# @ECLASS_VARIABLE: _CMAKE_MINREQVER_CMAKE305
# @DEFAULT_UNSET
# @DESCRIPTION:
-# Internal status set by _cmake_minreqver-lt(); is true if an unsupported
-# cmake_minimum_required value was detected.
+# Internal array containing : tuples detected by
+# _cmake_minreqver-check() for any CMakeLists.txt with cmake_minimum_required
+# version lower than 3.5.
+_CMAKE_MINREQVER_CMAKE305=()
# @ECLASS_VARIABLE: CMAKE_QA_SRC_DIR_READONLY
# @USER_VARIABLE
@@ -330,25 +332,69 @@ _cmake_check_build_dir() {
mkdir -p "${BUILD_DIR}" || die
}
-# @FUNCTION: _cmake_minreqver-lt
-# @USAGE:
+# @FUNCTION: _cmake_minreqver-check
+# @USAGE: or
# @INTERNAL
# @DESCRIPTION:
-# Internal function for detecting occurrence of lower-than-specified
-# in cmake_minimum_required of a given CMake file .
+# Internal function for flagging any deprecated or unsupported
+# cmake_minimum_required version in a given CMake file .
+# If is specified as second arg, only check against that value.
# Returns 0 if the regex matched (a lower-than-specified version found).
-_cmake_minreqver-lt() {
+_cmake_minreqver-check() {
local ver chk=1
+ if [[ "$#" == 2 ]]; then
+ local file="${1}"
+ local lt_version="${2}"
+ elif [[ "$#" == 1 ]]; then
+ local file="${1}"
+ else
+ die "${FUNCNAME[0]} must be passed either one or two arguments"
+ fi
ver=$(sed -ne
"/^\s*cmake_minimum_required/I{s/.*\(\.\.\.*\|\s\)\([0-9][0-9.]*\)\([)]\|\s\).*$/\2/p;q}"
\
- "${2}" 2>/dev/null \
+ "${file}" 2>/dev/null \
)
- if [[ -n ${ver} ]] && ver_test "${ver}" -lt "${1}"; then
- _CMAKE_MINREQVER_UNSUPPORTED=true
- chk=0
+ if [[ -z ${ver} ]]; then
+ return 1 # no cmake_minimum_required found
+ fi
+ if [[ -n ${lt_version} ]]; then
+ chk=$(ver_test "${ver}" -lt "${lt_version}")
+ else
+ if ver_test "${ver}" -lt "3.5"; then
+ _CMAKE_MINREQVER_CMAKE305+=( "${file}":"${ver}" )
+ chk=0
+ fi
fi
return ${chk}
}
+# @FUNCTION: _cmake_minreqver-info
+# @INTERNAL
+# @DESCRIPTION:
+# QA Notice and file listing for any CMakeLists.txt file unsupported w/
CMake-4.
+_cmake_minreqver-info() {
+ local info
+ if [[ -n ${_CMAKE_MINREQVER_CMAKE305[@]} ]]; then
+ eqawarn "QA Notice: Compatibility with CMake < 3.5 has been
removed from CMake 4,"
+ eqawarn "${CATEGORY}/${PN} will fail to build w/o a fix."
+ eqawarn "See also tracker bug #951350; check existing bug or
file a new one for"
+ eqawarn "this package, and take it upstream."
+ eqawarn
+ eqawarn "The following CMakeLists.txt files are causing errors:"
+ for info in ${_CMAKE_MINREQVER_CMAKE305[*]}; do
+ eqawarn " ${info}"
+ done
+ eqawarn
+ if has_version -b ">=dev-build/cmake-4"; then
+ eqawarn "CMake 4 detected; building with
-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
+ eqawarn "This is merely a workaround and *not* a
permanent fix."
+
