summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaldEagleOS Migration <dev@baldeagleos.com>2026-06-02 11:24:22 -0500
committerBaldEagleOS Migration <dev@baldeagleos.com>2026-06-02 11:24:22 -0500
commitfa2a9ceb34861c64aee4400a4686233134d8e652 (patch)
tree8eae804ea9a6ecae6af75b29d59c2376dc9153ed
parent637414c2448c2e6b0a24db5fafe01716205be445 (diff)
downloadbaldeagleos-repo-fa2a9ceb34861c64aee4400a4686233134d8e652.tar.gz
baldeagleos-repo-fa2a9ceb34861c64aee4400a4686233134d8e652.tar.xz
baldeagleos-repo-fa2a9ceb34861c64aee4400a4686233134d8e652.zip
Adding metadata
-rw-r--r--app-admin/selint/selint-1.5.1.ebuild2
-rw-r--r--app-containers/docker-compose/docker-compose-5.0.1-r2.ebuild (renamed from app-containers/docker-compose/docker-compose-5.0.1-r1.ebuild)5
-rw-r--r--app-containers/docker-compose/docker-compose-5.1.4-r1.ebuild (renamed from app-containers/docker-compose/docker-compose-5.1.4.ebuild)7
-rw-r--r--app-misc/qtxdg-tools/qtxdg-tools-4.4.0.ebuild2
-rw-r--r--app-portage/mgorny-dev-scripts/Manifest1
-rw-r--r--app-portage/mgorny-dev-scripts/mgorny-dev-scripts-76.ebuild34
-rw-r--r--app-text/doxygen/doxygen-1.16.1.ebuild2
-rw-r--r--app-text/xmldiff/xmldiff-2.7.0.ebuild2
-rw-r--r--dev-debug/bpftrace/Manifest4
-rw-r--r--dev-debug/bpftrace/bpftrace-0.26.1.ebuild (renamed from dev-debug/bpftrace/bpftrace-0.26.0.ebuild)0
-rw-r--r--dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.4.0.ebuild2
-rw-r--r--dev-libs/liblouis/liblouis-3.37.0-r1.ebuild2
-rw-r--r--dev-libs/libqtxdg/libqtxdg-4.4.0.ebuild2
-rw-r--r--dev-ml/llvm/Manifest2
-rw-r--r--dev-ml/llvm/llvm-22.1.7.ebuild108
-rw-r--r--dev-python/bitstring/bitstring-4.4.0-r2.ebuild2
-rw-r--r--dev-python/clang/Manifest2
-rw-r--r--dev-python/clang/clang-22.1.7.ebuild54
-rw-r--r--dev-python/greenlet/greenlet-3.5.0.ebuild2
-rw-r--r--dev-python/jupyterlab/jupyterlab-4.5.7.ebuild2
-rw-r--r--dev-python/lit/Manifest2
-rw-r--r--dev-python/lit/lit-22.1.7.ebuild46
-rw-r--r--dev-python/ovs/ovs-3.3.8.ebuild2
-rw-r--r--dev-python/tibs/tibs-0.9.0.ebuild2
-rw-r--r--dev-python/translate-toolkit/Manifest1
-rw-r--r--dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild123
-rw-r--r--dev-util/gi-docgen/gi-docgen-2026.1.ebuild2
-rw-r--r--dev-util/lxqt-build-tools/lxqt-build-tools-2.4.0.ebuild2
-rw-r--r--dev-util/perf/perf-6.19.12.ebuild2
-rw-r--r--gui-libs/xdg-desktop-portal-lxqt/xdg-desktop-portal-lxqt-1.4.0.ebuild2
-rw-r--r--llvm-core/clang-common/Manifest2
-rw-r--r--llvm-core/clang-common/clang-common-22.1.7.ebuild340
-rw-r--r--llvm-core/clang/Manifest2
-rw-r--r--llvm-core/clang/clang-22.1.7.ebuild470
-rw-r--r--llvm-core/flang/Manifest2
-rw-r--r--llvm-core/flang/flang-22.1.7.ebuild102
-rw-r--r--llvm-core/libclc/Manifest2
-rw-r--r--llvm-core/libclc/libclc-22.1.7.ebuild65
-rw-r--r--llvm-core/lld/Manifest2
-rw-r--r--llvm-core/lld/lld-22.1.7.ebuild93
-rw-r--r--llvm-core/lldb/Manifest2
-rw-r--r--llvm-core/lldb/lldb-22.1.7.ebuild115
-rw-r--r--llvm-core/llvm-common/Manifest2
-rw-r--r--llvm-core/llvm-common/llvm-common-22.1.7.ebuild54
-rw-r--r--llvm-core/llvm/Manifest2
-rw-r--r--llvm-core/llvm/llvm-22.1.7.ebuild569
-rw-r--r--llvm-core/mlir/Manifest2
-rw-r--r--llvm-core/mlir/mlir-22.1.7.ebuild234
-rw-r--r--llvm-core/polly/Manifest2
-rw-r--r--llvm-core/polly/polly-22.1.7.ebuild60
-rw-r--r--llvm-runtimes/compiler-rt-sanitizers/Manifest3
-rw-r--r--llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.1.7.ebuild239
-rw-r--r--llvm-runtimes/compiler-rt/Manifest2
-rw-r--r--llvm-runtimes/compiler-rt/compiler-rt-22.1.7.ebuild191
-rw-r--r--llvm-runtimes/flang-rt/Manifest2
-rw-r--r--llvm-runtimes/flang-rt/flang-rt-22.1.7.ebuild75
-rw-r--r--llvm-runtimes/libcxx/Manifest2
-rw-r--r--llvm-runtimes/libcxx/libcxx-22.1.7.ebuild267
-rw-r--r--llvm-runtimes/libcxxabi/Manifest2
-rw-r--r--llvm-runtimes/libcxxabi/libcxxabi-22.1.7.ebuild149
-rw-r--r--llvm-runtimes/libgcc/Manifest2
-rw-r--r--llvm-runtimes/libgcc/libgcc-22.1.7.ebuild174
-rw-r--r--llvm-runtimes/libunwind/Manifest2
-rw-r--r--llvm-runtimes/libunwind/libunwind-22.1.7.ebuild194
-rw-r--r--llvm-runtimes/offload/Manifest2
-rw-r--r--llvm-runtimes/offload/offload-22.1.7.ebuild133
-rw-r--r--llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest2
-rw-r--r--llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-22.1.7.ebuild44
-rw-r--r--llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest2
-rw-r--r--llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-22.1.7.ebuild44
-rw-r--r--llvm-runtimes/openmp/Manifest2
-rw-r--r--llvm-runtimes/openmp/openmp-22.1.7.ebuild94
-rw-r--r--lxqt-base/liblxqt/liblxqt-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-about/lxqt-about-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-admin/lxqt-admin-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-config/lxqt-config-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-globalkeys/lxqt-globalkeys-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-menu-data/lxqt-menu-data-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-meta/lxqt-meta-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-notificationd/lxqt-notificationd-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-openssh-askpass/lxqt-openssh-askpass-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-panel/lxqt-panel-2.4.1.ebuild2
-rw-r--r--lxqt-base/lxqt-policykit/lxqt-policykit-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-powermanagement/lxqt-powermanagement-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-qtplugin/lxqt-qtplugin-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-runner/lxqt-runner-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-session/lxqt-session-2.4.0.ebuild2
-rw-r--r--lxqt-base/lxqt-sudo/lxqt-sudo-2.4.0.ebuild2
-rw-r--r--mail-client/claws-mail/claws-mail-4.4.0.ebuild2
-rw-r--r--mail-filter/postsrsd/postsrsd-2.0.11-r6.ebuild (renamed from mail-filter/postsrsd/postsrsd-2.0.11-r5.ebuild)10
-rw-r--r--media-gfx/lximage-qt/lximage-qt-2.4.0.ebuild2
-rw-r--r--media-libs/libsdl3/libsdl3-3.4.8.ebuild2
-rw-r--r--media-sound/pavucontrol-qt/pavucontrol-qt-2.4.0.ebuild2
-rw-r--r--net-analyzer/linkchecker/linkchecker-10.6.0.ebuild2
-rw-r--r--net-misc/openvswitch/openvswitch-3.3.8-r1.ebuild2
-rw-r--r--net-wireless/gr-paint/Manifest1
-rw-r--r--net-wireless/gr-paint/gr-paint-0.0_p20230427-r2.ebuild63
-rw-r--r--net-wireless/gr-paint/gr-paint-0.0_p20250824-r1.ebuild (renamed from net-wireless/gr-paint/gr-paint-0.0_p20250824.ebuild)2
-rw-r--r--profiles/package.mask/00-gentoo5
-rw-r--r--sys-apps/checkpolicy/checkpolicy-3.10.ebuild2
-rw-r--r--sys-apps/mcstrans/mcstrans-3.10.ebuild2
-rw-r--r--sys-apps/policycoreutils/policycoreutils-3.10.ebuild2
-rw-r--r--sys-apps/razer-cli/razer-cli-2.3.0-r1.ebuild2
-rw-r--r--sys-apps/restorecond/restorecond-3.10.ebuild2
-rw-r--r--sys-apps/secilc/secilc-3.10.ebuild2
-rw-r--r--sys-apps/selinux-python/selinux-python-3.10.ebuild2
-rw-r--r--sys-apps/semodule-utils/semodule-utils-3.10.ebuild2
-rw-r--r--sys-auth/elogind/Manifest2
-rw-r--r--sys-auth/elogind/elogind-255.26.ebuild199
-rw-r--r--sys-auth/elogind/elogind-257.14-r1.ebuild197
-rw-r--r--sys-auth/elogind/elogind-257.15.ebuild193
-rw-r--r--sys-auth/elogind/files/elogind-257.14-dbus-service.patch20
-rw-r--r--sys-cluster/sanlock/sanlock-5.1.0-r1.ebuild2
-rw-r--r--sys-kernel/linux-docs/Manifest2
-rw-r--r--sys-kernel/linux-docs/linux-docs-6.18.33.ebuild (renamed from sys-kernel/linux-docs/linux-docs-6.18.ebuild)2
-rw-r--r--sys-libs/libselinux/libselinux-3.10-r1.ebuild2
-rw-r--r--sys-libs/libsemanage/libsemanage-3.10.ebuild2
-rw-r--r--sys-libs/libsepol/libsepol-3.10.ebuild2
-rw-r--r--www-client/ungoogled-chromium/Manifest7
-rw-r--r--www-client/ungoogled-chromium/ungoogled-chromium-149.0.7827.53_p1.ebuild2515
-rw-r--r--x11-libs/libfm-qt/libfm-qt-2.4.0.ebuild2
-rw-r--r--x11-libs/qtermwidget/qtermwidget-2.4.0.ebuild2
-rw-r--r--x11-misc/pcmanfm-qt/pcmanfm-qt-2.4.0.ebuild2
-rw-r--r--x11-misc/qps/qps-2.13.0.ebuild2
-rw-r--r--x11-misc/screengrab/screengrab-3.2.0.ebuild2
-rw-r--r--x11-terms/qterminal/qterminal-2.4.0.ebuild2
-rw-r--r--x11-themes/lxqt-themes/lxqt-themes-2.4.0.ebuild2
127 files changed, 7335 insertions, 135 deletions
diff --git a/app-admin/selint/selint-1.5.1.ebuild b/app-admin/selint/selint-1.5.1.ebuild
index c757aa02708f..b603589762f9 100644
--- a/app-admin/selint/selint-1.5.1.ebuild
+++ b/app-admin/selint/selint-1.5.1.ebuild
@@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/SELinuxProject/selint.git"
else
SRC_URI="https://github.com/SELinuxProject/selint/releases/download/v${PV}/${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~x86"
+ KEYWORDS="amd64 ~arm x86"
fi
LICENSE="Apache-2.0"
diff --git a/app-containers/docker-compose/docker-compose-5.0.1-r1.ebuild b/app-containers/docker-compose/docker-compose-5.0.1-r2.ebuild
index 775981137178..95bb06b764dd 100644
--- a/app-containers/docker-compose/docker-compose-5.0.1-r1.ebuild
+++ b/app-containers/docker-compose/docker-compose-5.0.1-r2.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit eapi9-ver go-module
+inherit eapi9-ver go-module optfeature
MY_PV=${PV/_/-}
DESCRIPTION="Multi-container orchestration for Docker"
@@ -21,7 +21,6 @@ RDEPEND="
>=app-containers/docker-cli-23.0.0
app-containers/podman[wrapper(+)]
)
-app-containers/docker-credential-helpers
"
BDEPEND=">=dev-lang/go-1.24.7"
@@ -42,6 +41,8 @@ src_install() {
}
pkg_postinst() {
+ optfeature "credential store support" app-containers/docker-credential-helpers
+
if ver_replacing -lt 2; then
ewarn
ewarn "docker-compose 2.x is a sub command of docker"
diff --git a/app-containers/docker-compose/docker-compose-5.1.4.ebuild b/app-containers/docker-compose/docker-compose-5.1.4-r1.ebuild
index f846e7e88032..182562bd89be 100644
--- a/app-containers/docker-compose/docker-compose-5.1.4.ebuild
+++ b/app-containers/docker-compose/docker-compose-5.1.4-r1.ebuild
@@ -1,7 +1,9 @@
# Copyright 2018-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=9
+EAPI=8
+
+inherit eapi9-ver optfeature
DESCRIPTION="Multi-container orchestration for Docker"
HOMEPAGE="https://github.com/docker/compose"
@@ -19,7 +21,6 @@ RDEPEND="
>=app-containers/docker-cli-29.5.2
app-containers/podman[wrapper(+)]
)
- app-containers/docker-credential-helpers
"
BDEPEND=">=dev-lang/go-1.25.5"
@@ -38,6 +39,8 @@ src_install() {
}
pkg_postinst() {
+ optfeature "credential store support" app-containers/docker-credential-helpers
+
if ver_replacing -lt 2; then
ewarn
ewarn "docker-compose 2.x is a sub command of docker"
diff --git a/app-misc/qtxdg-tools/qtxdg-tools-4.4.0.ebuild b/app-misc/qtxdg-tools/qtxdg-tools-4.4.0.ebuild
index d40dd8e69051..8bb2931966e0 100644
--- a/app-misc/qtxdg-tools/qtxdg-tools-4.4.0.ebuild
+++ b/app-misc/qtxdg-tools/qtxdg-tools-4.4.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1"
diff --git a/app-portage/mgorny-dev-scripts/Manifest b/app-portage/mgorny-dev-scripts/Manifest
index d76ce5677820..d917abcada14 100644
--- a/app-portage/mgorny-dev-scripts/Manifest
+++ b/app-portage/mgorny-dev-scripts/Manifest
@@ -6,3 +6,4 @@ DIST mgorny-dev-scripts-71.tar.bz2 18512 BLAKE2B cd0764c2a8558ddaa5c9605ccf5a821
DIST mgorny-dev-scripts-72.tar.bz2 18561 BLAKE2B 9e489f18f7209824f25cf04b2dcf85f199d6feefa8c8e8003e71a646ab798bc9a3856aa57baa60362a0b5605bac9ce990503bd76e4db69190035f027a3b38a12 SHA512 21f6fe780f889c1073725f39ff283a31292572db3cec62921cbb665f2737d4edf5058d1b587d8e5c460a8ee93d708cdc035ef5cfe39daf7a1a27c1499fbccf61
DIST mgorny-dev-scripts-73.tar.bz2 18641 BLAKE2B 553160151240c19fd368fcbc051654fed42394452b4ce9fbf0af308e88d530f1ae71e8e5e9845a327f3961ec38d20a757ab7494f483816c4896254f576c2bde6 SHA512 8177f926e15801089f83f0e2c6ddb488265c873d80045951924214419cd67a8668dac7c52997b28d75db073a952f9ef8b08f73d85ba0042fbeff3d5988af75b2
DIST mgorny-dev-scripts-74.tar.bz2 18627 BLAKE2B 45eded78392f42674de5b0eaf51f7b1f2e907bc8d95359d299835b134802d91cae6be64c77537b8c28c112571f565d8a049e218b5177ac55e26c5da0780e9570 SHA512 4e85f4c8b2e7b845c8810261fdc9ec1c1642a5a7d7a886489307b6e2ef63c50ec8afe9b522308a7d3f091ecced428a836668b1e4f79d1eaab20f2fde0e9444b3
+DIST mgorny-dev-scripts-76.tar.bz2 18645 BLAKE2B 1f65a408d4ff5e82a0ade4c22ea56dcafd4900a5f5fdfd25140dbab9f42fe7031191f4944d0f173773d64a1afe2ce9d6628ae8b03e56c6469740a749f6bb2bef SHA512 5e86a602f9d0a96cd6c3dcb36b73b8ee3c6579c07c0d47033330d83e19cff1ab91952247eedd97b2f25236077a9d3639e3e49863c73edcd74db6537169d8732f
diff --git a/app-portage/mgorny-dev-scripts/mgorny-dev-scripts-76.ebuild b/app-portage/mgorny-dev-scripts/mgorny-dev-scripts-76.ebuild
new file mode 100644
index 000000000000..1afeaab25713
--- /dev/null
+++ b/app-portage/mgorny-dev-scripts/mgorny-dev-scripts-76.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2019-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Handy scripts for ebuild development and more"
+HOMEPAGE="
+ https://gitweb.gentoo.org/proj/mgorny-dev-scripts.git
+ https://github.com/gentoo/mgorny-dev-scripts/
+"
+SRC_URI="
+ https://gitweb.gentoo.org/proj/mgorny-dev-scripts.git/snapshot/${P}.tar.bz2
+"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ app-portage/gentoolkit
+ >=app-portage/gpyutils-0.12
+ dev-perl/URI
+ dev-util/pkgcheck
+ dev-vcs/git
+ net-misc/wget
+ sys-apps/portage
+ x11-misc/xdg-utils
+"
+
+src_install() {
+ dodoc README.rst
+ rm -f COPYING README.rst || die
+ dobin *
+}
diff --git a/app-text/doxygen/doxygen-1.16.1.ebuild b/app-text/doxygen/doxygen-1.16.1.ebuild
index 079a2a7bf1e2..02ee7807e63c 100644
--- a/app-text/doxygen/doxygen-1.16.1.ebuild
+++ b/app-text/doxygen/doxygen-1.16.1.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} == *9999* ]]; then
else
SRC_URI="https://doxygen.nl/files/${P}.src.tar.gz"
SRC_URI+=" https://downloads.sourceforge.net/doxygen/rel-${PV}/${P}.src.tar.gz"
- KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
fi
# GPL-2 also for bundled libmscgen
diff --git a/app-text/xmldiff/xmldiff-2.7.0.ebuild b/app-text/xmldiff/xmldiff-2.7.0.ebuild
index ea7de26262a9..2e98f00393d1 100644
--- a/app-text/xmldiff/xmldiff-2.7.0.ebuild
+++ b/app-text/xmldiff/xmldiff-2.7.0.ebuild
@@ -15,7 +15,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 ~ppc ~sparc x86"
+KEYWORDS="~alpha amd64 ppc ~sparc x86"
RDEPEND="
>=dev-python/lxml-3.1.0[${PYTHON_USEDEP}]
diff --git a/dev-debug/bpftrace/Manifest b/dev-debug/bpftrace/Manifest
index dfed204a87b3..81369d914bf0 100644
--- a/dev-debug/bpftrace/Manifest
+++ b/dev-debug/bpftrace/Manifest
@@ -3,5 +3,5 @@ DIST bpftrace-0.24.2.tar.gz 1375106 BLAKE2B c397eb7ded3a72ea0805487db66f422bda9a
DIST bpftrace-0.25.0-man.tar.xz 44292 BLAKE2B e3ad8255b74836c9947595cd3c39caa201ccc420e573376ea7a144c499f4f74349911df87618f98a877d797b6d3b0c54f0117292537d03e184d2669b8a1331a5 SHA512 343fadffec5d2a6f702e2fe67087718c909f32cd6440dabc0fa93d2c0b8264ceda7d7a1eee7f79b4be2365318170c4eff7582453ec8ff4e15343ce2cb056b2ea
DIST bpftrace-0.25.1-man.tar.xz 44300 BLAKE2B 54ed5e0e04f74d7c310d14a2d624238d9d7f42a4abab101272693caf714020bb420a221793ea8bef0bd1490cd47e6cc87ed4e75d187c7127c99b2ef771df208a SHA512 d9b28a4e4705714ba38af0dcda6eb78379cb44da5dd2de47cca1061bc2b020b97aca4fd09cb734932a5f925b31b34aa266e4ff2a54ac438715543c054340cd8d
DIST bpftrace-0.25.1.tar.gz 1486111 BLAKE2B f2b9f2f9d44faa47f846c3c14800424d27dca0d210672cc03f60e5aadfe789fb4842bddfca4a4d73b3714a8d817710cedb66b055f8477e58f1202b64a188a444 SHA512 abe7bfab906894de889c958020b2dcc65bdc0b5c3d8986846ef41a9d593ca16075632916cf281154630221c6e511a11e3139a09bb641570277a44bd47299bbe6
-DIST bpftrace-0.26.0-man.tar.xz 44688 BLAKE2B bf91c1683eb5702a1ba878e769cac1466522198d644b5a2c5674b15d1bccb8f3e9b28fd7ab5ba3664146056e23edcc1615954a11f1e8fbfc85cac872daa2f6d1 SHA512 64bfdfa49ba840fd58b22dc97b3ae666115cb11ff7378bf7c72d0c963903f3fa69fd116d190c7c92a0472d3ef3f46ebe2c081c1701c4b7355fc1b4b346ec2d08
-DIST bpftrace-0.26.0.tar.gz 1548610 BLAKE2B 366d6013c3166662b5a2c86c564710d88c3a1efa5a0df8d280347cd52750fbbe0d73bdccbacaec5d6cd1e0e4f0bc06ef7e53eb0cb826c0d4ff578876ea4286c8 SHA512 6eba698091d1e363bf7e963eeb3b318a7aee76ec4ec7644cbfee5d3c45f8341c05daacd2c407bc1b2c832d544d5a40d7e8f797bd24233dfe753510d929ef7ec1
+DIST bpftrace-0.26.1-man.tar.xz 44680 BLAKE2B 21e0c4492b1885f24fdd91c814a5144326c0e7491b07dd1dfcc4f139842d4094371a179842a6d0cfc5666e3cb4e631138ecdaf56e8ba64b001046ce934294ba2 SHA512 653a0877eb4ff74f17adf7688490c3afb63a264cf9fe3f64d3ec7437f2a51ee7dd21a254277cba677fa6fac8cff836d25e94199ee5ac8ef3152eedee38fbf707
+DIST bpftrace-0.26.1.tar.gz 1549419 BLAKE2B f9be88f6767de8752d46377f2833a511972166fc2d857fc11c16264e40f42cd39f12f9a8e04e0c8b9b8a3f11b1c4df17b002acbadbf30658d01494bdb206818b SHA512 2b2f052b742317b991b2e267881167ec58f0b7fa24574950f090d237665930a7ddfaa26e9a9f03eb3db01ab111a99ecb8f4b41f1c944b6f1df0218f109bfe72d
diff --git a/dev-debug/bpftrace/bpftrace-0.26.0.ebuild b/dev-debug/bpftrace/bpftrace-0.26.1.ebuild
index 726742c759d6..726742c759d6 100644
--- a/dev-debug/bpftrace/bpftrace-0.26.0.ebuild
+++ b/dev-debug/bpftrace/bpftrace-0.26.1.ebuild
diff --git a/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.4.0.ebuild b/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.4.0.ebuild
index 8e4d4855ebee..db424ec71802 100644
--- a/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.4.0.ebuild
+++ b/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.4.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2"
diff --git a/dev-libs/liblouis/liblouis-3.37.0-r1.ebuild b/dev-libs/liblouis/liblouis-3.37.0-r1.ebuild
index 9f00adebd60b..5a33d019bdda 100644
--- a/dev-libs/liblouis/liblouis-3.37.0-r1.ebuild
+++ b/dev-libs/liblouis/liblouis-3.37.0-r1.ebuild
@@ -15,7 +15,7 @@ SRC_URI="https://github.com/liblouis/liblouis/releases/download/v${PV}/${P}.tar.
LICENSE="LGPL-2.1+ tools? ( GPL-3+ )"
SLOT="0/21" # follows LIBLOUIS_CURRENT in configure.ac
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ~ppc ppc64 ~riscv ~sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv ~sparc x86"
IUSE="test +tools"
REQUIRED_USE="
test? ( tools )
diff --git a/dev-libs/libqtxdg/libqtxdg-4.4.0.ebuild b/dev-libs/libqtxdg/libqtxdg-4.4.0.ebuild
index 17518b6fd3ff..428aa36ac50a 100644
--- a/dev-libs/libqtxdg/libqtxdg-4.4.0.ebuild
+++ b/dev-libs/libqtxdg/libqtxdg-4.4.0.ebuild
@@ -20,7 +20,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1+ Nokia-Qt-LGPL-Exception-1.1"
diff --git a/dev-ml/llvm/Manifest b/dev-ml/llvm/Manifest
index c07553137d1f..c4576cf69876 100644
--- a/dev-ml/llvm/Manifest
+++ b/dev-ml/llvm/Manifest
@@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/dev-ml/llvm/llvm-22.1.7.ebuild b/dev-ml/llvm/llvm-22.1.7.ebuild
new file mode 100644
index 000000000000..7730002aa6da
--- /dev/null
+++ b/dev-ml/llvm/llvm-22.1.7.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake llvm.org llvm-utils python-any-r1
+
+DESCRIPTION="OCaml bindings for LLVM"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="debug test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/ocaml-4.00.0:0=
+ dev-ml/ocaml-ctypes:=
+ ~llvm-core/llvm-${PV}:=[debug?]
+ !llvm-core/llvm[ocaml(-)]
+"
+
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ dev-ml/findlib
+"
+
+LLVM_COMPONENTS=( llvm cmake third-party )
+LLVM_USE_TARGETS=llvm
+llvm.org_set_globals
+
+src_configure() {
+ llvm_prepend_path "${LLVM_MAJOR}"
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DLLVM_BUILD_LLVM_DYLIB=ON
+ -DLLVM_LINK_LLVM_DYLIB=ON
+ -DLLVM_OCAML_OUT_OF_TREE=ON
+
+ # cheap hack: LLVM combines both anyway, and the only difference
+ # is that the former list is explicitly verified at cmake time
+ -DLLVM_TARGETS_TO_BUILD=""
+ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ -DLLVM_BUILD_TESTS=$(usex test)
+
+ # disable various irrelevant deps and settings
+ -DLLVM_ENABLE_FFI=OFF
+ -DLLVM_ENABLE_TERMINFO=OFF
+ -DHAVE_HISTEDIT_H=NO
+ -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+
+ -DLLVM_HOST_TRIPLE="${CHOST}"
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ # TODO: ocamldoc
+ )
+
+ use test && mycmakeargs+=(
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ # also: custom rules for OCaml do not work for CPPFLAGS
+ use debug || local -x CFLAGS="${CFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ local llvm_libdir=$(llvm-config --libdir)
+ # an ugly hack; TODO: figure out a way to pass -L to ocaml...
+ cd "${BUILD_DIR}/${libdir}" || die
+ ln -s "${llvm_libdir}"/*.so . || die
+
+ if use test; then
+ local llvm_bindir=$(llvm-config --bindir)
+ # Force using system-installed tools.
+ sed -i -e "/llvm_tools_dir/s@\".*\"@\"${llvm_bindir}\"@" \
+ "${BUILD_DIR}"/test/lit.site.cfg.py || die
+ fi
+}
+
+src_compile() {
+ cmake_build ocaml_all
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-llvm-bindings-ocaml
+}
+
+src_install() {
+ DESTDIR="${D}" \
+ cmake -P "${BUILD_DIR}"/bindings/ocaml/cmake_install.cmake || die
+
+ dodoc bindings/ocaml/README.txt
+}
diff --git a/dev-python/bitstring/bitstring-4.4.0-r2.ebuild b/dev-python/bitstring/bitstring-4.4.0-r2.ebuild
index fdbc58322607..4cf489dd50f5 100644
--- a/dev-python/bitstring/bitstring-4.4.0-r2.ebuild
+++ b/dev-python/bitstring/bitstring-4.4.0-r2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 x86"
+KEYWORDS="amd64 ~arm arm64 x86"
RDEPEND="
=dev-python/bitarray-3*[${PYTHON_USEDEP}]
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index c07553137d1f..c4576cf69876 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/dev-python/clang/clang-22.1.7.ebuild b/dev-python/clang/clang-22.1.7.ebuild
new file mode 100644
index 000000000000..5118a3be8e87
--- /dev/null
+++ b/dev-python/clang/clang-22.1.7.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit llvm.org python-r1
+
+DESCRIPTION="Python bindings for llvm-core/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=llvm-core/clang-${PV}:*
+ !llvm-core/llvm:0[clang(-),python(-)]
+ !llvm-core/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ llvm-core/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/{bindings/python,include} )
+llvm.org_set_globals
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
+}
+
+src_test() {
+ python_foreach_impl python_test
+}
+
+src_install() {
+ python_foreach_impl python_domodule clang
+}
diff --git a/dev-python/greenlet/greenlet-3.5.0.ebuild b/dev-python/greenlet/greenlet-3.5.0.ebuild
index f4333c29f796..7e95482e3d0f 100644
--- a/dev-python/greenlet/greenlet-3.5.0.ebuild
+++ b/dev-python/greenlet/greenlet-3.5.0.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="MIT PSF-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 -hppa ~m68k ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 -hppa ~m68k ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild b/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild
index 4ac85655ef04..3ff657cb0700 100644
--- a/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild
+++ b/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD MIT GPL-3 Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
RDEPEND="
>=dev-python/async-lru-1.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index c07553137d1f..c4576cf69876 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/dev-python/lit/lit-22.1.7.ebuild b/dev-python/lit/lit-22.1.7.ebuild
new file mode 100644
index 000000000000..f06adb9dfc80
--- /dev/null
+++ b/dev-python/lit/lit-22.1.7.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1 llvm.org
+
+DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ llvm-core/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from llvm-core/llvm)
+
+src_prepare() {
+ # flaky test
+ # https://github.com/llvm/llvm-project/issues/72022
+ rm tests/progress-bar.py || die
+
+ cd "${WORKDIR}" || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x LIT_PRESERVES_TMP=1
+ local litflags=$(get_lit_flags)
+ ./lit.py ${litflags//;/ } tests || die
+}
diff --git a/dev-python/ovs/ovs-3.3.8.ebuild b/dev-python/ovs/ovs-3.3.8.ebuild
index af9ed0c865f9..8f1a1b0326aa 100644
--- a/dev-python/ovs/ovs-3.3.8.ebuild
+++ b/dev-python/ovs/ovs-3.3.8.ebuild
@@ -12,6 +12,6 @@ HOMEPAGE="https://github.com/openvswitch/ovs/"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm64 ~ppc64 x86"
RDEPEND="dev-python/sortedcontainers[${PYTHON_USEDEP}]"
diff --git a/dev-python/tibs/tibs-0.9.0.ebuild b/dev-python/tibs/tibs-0.9.0.ebuild
index ba6d5579da37..6983dde7c4c0 100644
--- a/dev-python/tibs/tibs-0.9.0.ebuild
+++ b/dev-python/tibs/tibs-0.9.0.ebuild
@@ -109,7 +109,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 x86"
+KEYWORDS="amd64 ~arm arm64 x86"
EPYTEST_PLUGINS=( hypothesis )
distutils_enable_tests pytest
diff --git a/dev-python/translate-toolkit/Manifest b/dev-python/translate-toolkit/Manifest
index eee47d405110..934cd0261765 100644
--- a/dev-python/translate-toolkit/Manifest
+++ b/dev-python/translate-toolkit/Manifest
@@ -1,4 +1,5 @@
DIST translate-3.19.10.gh.tar.gz 1353016 BLAKE2B 7da28b38c72fd834edceb0f556a13967f75e139418145f5baf981cdde2cb1cab7fae3503b9aae88be395d4e2bc99422d9b06fbb0247b379d6020201729526c67 SHA512 3a26ad243203fff2352f714e19a9024dfe39d5a46a14ba6682efb54f2832866a246446328be79b8efc39b89bf48e150dd90e289082e164376381ba64ff64f88f
+DIST translate-3.19.11.gh.tar.gz 1355618 BLAKE2B 65424bb83f67c04566611ebd426ad6dd233cebab252b09768cc5253c44d9291a543fe91a91e23ecbc8fdc5586fdb340fcb40f26028dcbf9973a8a20d7dd91f2c SHA512 776392694ff9802b74e90c5ac01d2f74da9069840c73b24ad6b7f6ffa4c912acd14a4ef8f390fd74acd48e01b0364ac69faf47027725c41775685b03032732a6
DIST translate-3.19.6.gh.tar.gz 1327150 BLAKE2B a1337276a2a15a7d522e86def20df4137fec8f566df8ca1ec945b12e627a4ebf78aaace4266ef1ef00dca5ac30b3767dea0a1dcd79d3fe8bb8b5cf74dcff1117 SHA512 c21c563e530fe3550c1e5d97f30cb861f47bcde867547a07aaa992fe8721ad20fa18a2a2227fccd2b458cf14a2788137176a1eff5b11f4cfbc4f5cbdfdfc7729
DIST translate-3.19.7.gh.tar.gz 1328643 BLAKE2B e0806de1ecfcc7b3d362663d28b1093b5ab34e097a01d5a70c94174df32e3b469cc536e494afc68e59def8fe67b1e35330a63f5946c9ccaafec89ceb8b472fbe SHA512 f280f832e49e403f25e6a2a9236c5f4ed66cc129b2bf6be6a521b477ec0dce27d2315ecb9383a695932121bec39ff5c10b60e97911de5e6ba810bcc249e7f875
DIST translate-3.19.8.gh.tar.gz 1350675 BLAKE2B f73cca746d3486e5e1ad4b4d42dc9b5fe6fd72f8ce54bba02b6e8c5a92c48d5d7ce954ac0a30466ec6274f6f29ccd73340344c664eaeb1d19770253dc6264c99 SHA512 c10231dcad6ba81651fd1a3d53ad40cd18a2b38425c643967bff66118fe6ee01e4b6feed68200afca14bc27e1b22db0c68ef9768429621431b67cbd172469dfb
diff --git a/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild
new file mode 100644
index 000000000000..47c6253c2c51
--- /dev/null
+++ b/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{12..14} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+MY_P=translate-${PV}
+DESCRIPTION="Toolkit to convert between many translation formats"
+HOMEPAGE="
+ https://github.com/translate/translate/
+ https://pypi.org/project/translate-toolkit/
+"
+SRC_URI="
+ https://github.com/translate/translate/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+html +ical +ini +subtitles +yaml"
+
+RDEPEND="
+ app-text/iso-codes
+ >=dev-python/chardet-3.0.4[${PYTHON_USEDEP}]
+ dev-python/cheroot[${PYTHON_USEDEP}]
+ >=dev-python/levenshtein-0.12.0[${PYTHON_USEDEP}]
+ >=dev-python/lxml-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mistletoe-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3[${PYTHON_USEDEP}]
+ dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+ dev-python/tomlkit[${PYTHON_USEDEP}]
+ >=dev-python/unicode-segmentation-rs-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/wcwidth-0.2.14[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ html? ( dev-python/utidylib[${PYTHON_USEDEP}] )
+ ical? ( dev-python/vobject[${PYTHON_USEDEP}] )
+ ini? ( >=dev-python/iniparse-0.5[${PYTHON_USEDEP}] )
+ subtitles? ( media-video/gaupol[${PYTHON_USEDEP}] )
+ yaml? ( dev-python/pyyaml[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ test? (
+ dev-python/phply[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( syrupy )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # strip unnecessary pins
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+}
+
+src_test() {
+ # unfortunately, this bad quality package doesn't support XDG_DATA_DIRS
+ # correctly, so we need to reassemble all data files in a single directory
+ local -x XDG_DATA_HOME=${T}/share
+ cp -r translate/share "${T}/" || die
+ cp -r "${ESYSROOT}"/usr/share/gaupol "${XDG_DATA_HOME}"/ || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Fails with network-sandbox (and even with it off but w/ softer fail)
+ 'tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff'
+ 'tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff'
+ )
+ local EPYTEST_IGNORE=(
+ # unpackaged fluent.*
+ tests/translate/storage/test_fluent.py
+ tests/translate/convert/test_fluent2po.py
+ # changes directory and does not change it back, sigh
+ tests/odf_xliff/test_odf_xliff.py
+ )
+
+ if ! has_version "dev-python/iniparse[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ translate/convert/test_ini2po.py
+ translate/convert/test_po2ini.py
+ )
+ fi
+
+ if ! has_version "media-video/gaupol[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ translate/storage/test_subtitles.py
+ )
+ fi
+
+ epytest
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr
+ doins -r translate/share
+
+ if ! use html; then
+ rm "${ED}"/usr/bin/{html2po,po2html} || die
+ fi
+ if ! use ical; then
+ rm "${ED}"/usr/bin/{ical2po,po2ical} || die
+ fi
+ if ! use ini; then
+ rm "${ED}"/usr/bin/{ini2po,po2ini} || die
+ fi
+ if ! use subtitles; then
+ rm "${ED}"/usr/bin/{sub2po,po2sub} || die
+ fi
+}
diff --git a/dev-util/gi-docgen/gi-docgen-2026.1.ebuild b/dev-util/gi-docgen/gi-docgen-2026.1.ebuild
index 3a118e95ccfe..11aab4adabfc 100644
--- a/dev-util/gi-docgen/gi-docgen-2026.1.ebuild
+++ b/dev-util/gi-docgen/gi-docgen-2026.1.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
SRC_URI="https://download.gnome.org/sources/${PN}/$(ver_cut 1)/${P}.tar.xz"
LICENSE="|| ( Apache-2.0 GPL-3+ ) CC0-1.0 OFL-1.1 MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="
diff --git a/dev-util/lxqt-build-tools/lxqt-build-tools-2.4.0.ebuild b/dev-util/lxqt-build-tools/lxqt-build-tools-2.4.0.ebuild
index 9a56d315bbc4..56f44ae1ce12 100644
--- a/dev-util/lxqt-build-tools/lxqt-build-tools-2.4.0.ebuild
+++ b/dev-util/lxqt-build-tools/lxqt-build-tools-2.4.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~hppa ~loong ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~hppa ~loong ~ppc64 ~riscv ~x86"
fi
LICENSE="BSD"
diff --git a/dev-util/perf/perf-6.19.12.ebuild b/dev-util/perf/perf-6.19.12.ebuild
index 8dae6b0c4286..eddb7358c26d 100644
--- a/dev-util/perf/perf-6.19.12.ebuild
+++ b/dev-util/perf/perf-6.19.12.ebuild
@@ -35,7 +35,7 @@ S="${S_K}/tools/perf"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv x86"
IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 babeltrace capstone big-endian bpf caps crypt debug gtk java libpfm +libtraceevent +libtracefs lzma numa perl +python +slang systemtap tcmalloc unwind"
REQUIRED_USE="
diff --git a/gui-libs/xdg-desktop-portal-lxqt/xdg-desktop-portal-lxqt-1.4.0.ebuild b/gui-libs/xdg-desktop-portal-lxqt/xdg-desktop-portal-lxqt-1.4.0.ebuild
index acef15efd85b..350695f69b7b 100644
--- a/gui-libs/xdg-desktop-portal-lxqt/xdg-desktop-portal-lxqt-1.4.0.ebuild
+++ b/gui-libs/xdg-desktop-portal-lxqt/xdg-desktop-portal-lxqt-1.4.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1"
diff --git a/llvm-core/clang-common/Manifest b/llvm-core/clang-common/Manifest
index c07553137d1f..c4576cf69876 100644
--- a/llvm-core/clang-common/Manifest
+++ b/llvm-core/clang-common/Manifest
@@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-core/clang-common/clang-common-22.1.7.ebuild b/llvm-core/clang-common/clang-common-22.1.7.ebuild
new file mode 100644
index 000000000000..ca44756f7a07
--- /dev/null
+++ b/llvm-core/clang-common/clang-common-22.1.7.ebuild
@@ -0,0 +1,340 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 elisp-common llvm.org multilib
+
+DESCRIPTION="Common files shared between multiple slots of clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="
+ default-compiler-rt default-libcxx default-lld
+ bootstrap-prefix cet emacs hardened llvm-libunwind
+"
+
+PDEPEND="
+ default-compiler-rt? (
+ llvm-runtimes/clang-runtime:${LLVM_MAJOR}[compiler-rt]
+ llvm-libunwind? ( llvm-runtimes/libunwind[static-libs] )
+ !llvm-libunwind? ( sys-libs/libunwind[static-libs] )
+ )
+ !default-compiler-rt? ( sys-devel/gcc )
+ default-libcxx? ( >=llvm-runtimes/libcxx-${PV}[static-libs] )
+ !default-libcxx? ( sys-devel/gcc )
+ default-lld? ( >=llvm-core/lld-${PV} )
+ !default-lld? ( sys-devel/binutils )
+"
+# enforce flags on clang-runtime as well to aid transition
+PDEPEND+="
+ llvm-runtimes/clang-runtime[default-compiler-rt(-)?,default-libcxx(-)?,default-lld(-)?,llvm-libunwind(-)?]
+ emacs? ( >=app-editors/emacs-26.3:* )
+"
+IDEPEND="
+ !default-compiler-rt? ( sys-devel/gcc-config )
+ !default-libcxx? ( sys-devel/gcc-config )
+"
+BDEPEND="
+ emacs? ( >=app-editors/emacs-26.3:* )
+"
+
+LLVM_COMPONENTS=( clang/utils clang/tools/clang-format )
+llvm.org_set_globals
+
+SITEFILE="50clang-gentoo.el"
+
+pkg_pretend() {
+ [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return
+
+ local flag missing_flags=()
+ for flag in default-{compiler-rt,libcxx,lld}; do
+ if ! use "${flag}" && has_version "llvm-core/clang[${flag}]"; then
+ missing_flags+=( "${flag}" )
+ fi
+ done
+
+ if [[ ${missing_flags[@]} ]]; then
+ eerror "It seems that you have the following flags set on llvm-core/clang:"
+ eerror
+ eerror " ${missing_flags[*]}"
+ eerror
+ eerror "The default runtimes are now set via flags on llvm-core/clang-common."
+ eerror "The build is being aborted to prevent breakage. Please either set"
+ eerror "the respective flags on this ebuild, e.g.:"
+ eerror
+ eerror " llvm-core/clang-common ${missing_flags[*]}"
+ eerror
+ eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
+ die "Mismatched defaults detected between llvm-core/clang and llvm-core/clang-common"
+ fi
+}
+
+_doclang_cfg() {
+ local triple="${1}"
+
+ local tool
+ for tool in ${triple}-clang{,++}; do
+ newins - "${tool}.cfg" <<-EOF
+ # This configuration file is used by ${tool} driver.
+ @gentoo-common.cfg
+ @gentoo-common-ld.cfg
+ EOF
+ if [[ ${triple} == x86_64* ]]; then
+ cat >> "${ED}/etc/clang/${tool}.cfg" <<-EOF || die
+ @gentoo-cet.cfg
+ EOF
+ fi
+ done
+
+ if use kernel_Darwin; then
+ cat >> "${ED}/etc/clang/${triple}-clang++.cfg" <<-EOF || die
+ -lc++abi
+ EOF
+ fi
+
+ newins - "${triple}-clang-cpp.cfg" <<-EOF
+ # This configuration file is used by the ${triple}-clang-cpp driver.
+ @gentoo-common.cfg
+ EOF
+ if [[ ${triple} == x86_64* ]]; then
+ cat >> "${ED}/etc/clang/${triple}-clang-cpp.cfg" <<-EOF || die
+ @gentoo-cet.cfg
+ EOF
+ fi
+
+ # Install symlinks for triples with other vendor strings since some
+ # programs insist on mangling the triple.
+ local vendor
+ for vendor in gentoo pc unknown; do
+ local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}"
+ for tool in clang{,++,-cpp}; do
+ if [[ ! -f "${ED}/etc/clang/${vendor_triple}-${tool}.cfg" ]]; then
+ dosym "${triple}-${tool}.cfg" "/etc/clang/${vendor_triple}-${tool}.cfg"
+ fi
+ done
+ done
+}
+
+doclang_cfg() {
+ local triple="${1}"
+
+ _doclang_cfg ${triple}
+
+ # LLVM may have different arch names in some cases. For example in x86
+ # profiles the triple uses i686, but llvm will prefer i386 if invoked
+ # with "clang" on x86 or "clang -m32" on x86_64. The gentoo triple will
+ # be used if invoked through ${CHOST}-clang{,++,-cpp} though.
+ #
+ # To make sure the correct triples are installed,
+ # see Triple::getArchTypeName() in llvm/lib/TargetParser/Triple.cpp
+ # and compare with CHOST values in profiles.
+
+ local abi=${triple%%-*}
+ case ${abi} in
+ armv4l|armv4t|armv5tel|armv6j|armv7a)
+ _doclang_cfg ${triple/${abi}/arm}
+ ;;
+ i686)
+ _doclang_cfg ${triple/${abi}/i386}
+ ;;
+ sparc)
+ _doclang_cfg ${triple/${abi}/sparcel}
+ ;;
+ sparc64)
+ _doclang_cfg ${triple/${abi}/sparcv9}
+ ;;
+ esac
+}
+
+src_compile() {
+ default
+ use emacs && elisp-compile ../tools/clang-format/clang-format.el
+}
+
+src_install() {
+ newbashcomp bash-autocomplete.sh clang
+
+ insinto /etc/clang
+ newins - gentoo-runtimes.cfg <<-EOF
+ # This file is initially generated by llvm-runtimes/clang-runtime.
+ # It is used to control the default runtimes using by clang.
+
+ --rtlib=$(usex default-compiler-rt compiler-rt libgcc)
+ --unwindlib=$(usex default-compiler-rt libunwind libgcc)
+ --stdlib=$(usex default-libcxx libc++ libstdc++)
+ -fuse-ld=$(usex default-lld lld bfd)
+ EOF
+
+ newins - gentoo-gcc-install.cfg <<-EOF
+ # This file is maintained by gcc-config.
+ # It is used to specify the selected GCC installation.
+ EOF
+
+ newins - gentoo-common.cfg <<-EOF
+ # This file contains flags common to clang, clang++ and clang-cpp.
+ @gentoo-runtimes.cfg
+ @gentoo-gcc-install.cfg
+ @gentoo-hardened.cfg
+ # bug #870001
+ -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h"
+ EOF
+
+ # clang-cpp does not like link args being passed to it when directly
+ # invoked, so use a separate configuration file.
+ newins - gentoo-common-ld.cfg <<-EOF
+ # This file contains flags common to clang and clang++
+ @gentoo-hardened-ld.cfg
+ EOF
+
+ # Baseline hardening (bug #851111)
+ newins - gentoo-hardened.cfg <<-EOF
+ # Some of these options are added unconditionally, regardless of
+ # USE=hardened, for parity with sys-devel/gcc.
+ -Xarch_host -fstack-clash-protection
+ -Xarch_host -fstack-protector-strong
+ -fPIE
+ -include "${EPREFIX}/usr/include/gentoo/fortify.h"
+ EOF
+
+ newins - gentoo-cet.cfg <<-EOF
+ -Xarch_host -fcf-protection=$(usex cet full none)
+ EOF
+
+ if use kernel_Darwin; then
+ newins - gentoo-hardened-ld.cfg <<-EOF
+ # There was -Wl,-z,relro here, but it's not supported on Mac
+ # TODO: investigate whether -bind_at_load or -read_only_stubs will do the job
+ EOF
+ else
+ newins - gentoo-hardened-ld.cfg <<-EOF
+ # Some of these options are added unconditionally, regardless of
+ # USE=hardened, for parity with sys-devel/gcc.
+ -Wl,-z,relro
+ -Wl,-z,now
+ EOF
+ fi
+
+ dodir /usr/include/gentoo
+
+ cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die
+ /* __has_include is an extension, but it's fine, because this is only
+ for Clang anyway. */
+ #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__)
+ # include <stdc-predef.h>
+ #endif
+ EOF
+
+ local fortify_level=$(usex hardened 3 2)
+ # We have to do this because glibc's headers warn if F_S is set
+ # without optimization and that would at the very least be very noisy
+ # during builds and at worst trigger many -Werror builds.
+ cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die
+ #ifdef __clang__
+ # pragma clang system_header
+ #endif
+ #ifndef _FORTIFY_SOURCE
+ # if defined(__has_feature)
+ # define __GENTOO_HAS_FEATURE(x) __has_feature(x)
+ # else
+ # define __GENTOO_HAS_FEATURE(x) 0
+ # endif
+ #
+ # if !defined(__OPTIMIZE__) || __OPTIMIZE__ == 0
+ # elif !defined(__STDC_HOSTED__) || __STDC_HOSTED__ != 1
+ # elif defined(__SANITIZE_ADDRESS__)
+ # elif __GENTOO_HAS_FEATURE(address_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(hwaddress_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(memory_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(numerical_stability_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(realtime_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(thread_sanitizer)
+ # elif defined(_GENTOO_NO_FORTIFY_SOURCE)
+ # else
+ # define _FORTIFY_SOURCE ${fortify_level}
+ # endif
+ #
+ # undef __GENTOO_HAS_FEATURE
+ #endif
+ EOF
+
+ # TODO: Maybe -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST for
+ # non-hardened?
+ if use hardened ; then
+ cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
+ # Options below are conditional on USE=hardened.
+ -Xarch_host -D_GLIBCXX_ASSERTIONS
+
+ # Analogue to GLIBCXX_ASSERTIONS
+ # https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
+ # https://libcxx.llvm.org/Hardening.html#using-hardened-mode
+ -Xarch_host -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE
+ EOF
+
+ cat >> "${ED}/etc/clang/gentoo-hardened-ld.cfg" <<-EOF || die
+ # Options below are conditional on USE=hardened.
+ EOF
+ fi
+
+ # We only install config files for supported ABIs because unprefixed tools
+ # might be used for crosscompilation where e.g. PIE may not be supported.
+ # See bug #912237 and bug #901247. Just ${CHOST} won't do due to bug #912685.
+ local abi
+ for abi in $(get_all_abis); do
+ local abi_chost=$(get_abi_CHOST "${abi}")
+ doclang_cfg "${abi_chost}"
+ done
+
+ if use kernel_Darwin; then
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ # Gentoo Prefix on Darwin
+ -Wl,-search_paths_first
+ EOF
+ if use bootstrap-prefix ; then
+ # bootstrap-prefix is only set during stage2 of bootstrapping
+ # Prefix, where EPREFIX is set to EPREFIX/tmp.
+ # Here we need to point it at the future lib dir of the stage3's
+ # EPREFIX.
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ -Wl,-rpath,${EPREFIX}/../usr/lib
+ -Wl,-L,${EPREFIX}/../usr/lib
+ -isystem ${EPREFIX}/../usr/include
+ EOF
+ fi
+ # Using -Wl,-L instead of -L to trick compiler driver to put it
+ # after -isysroot's internal -L
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ -Wl,-rpath,${EPREFIX}/usr/lib
+ -Wl,-L,${EPREFIX}/usr/lib
+ -isystem ${EPREFIX}/usr/include
+ -isysroot ${EPREFIX}/MacOSX.sdk
+ EOF
+ fi
+
+ if use emacs ; then
+ elisp-install clang ../tools/clang-format/clang-format.{el,elc}
+ elisp-make-site-file "${SITEFILE}" clang
+ fi
+}
+
+pkg_preinst() {
+ if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc
+ then
+ local gcc_path=$(gcc-config --get-lib-path 2>/dev/null)
+ if [[ -n ${gcc_path} ]]; then
+ cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF
+ --gcc-install-dir="${gcc_path%%:*}"
+ EOF
+ fi
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/llvm-core/clang/Manifest b/llvm-core/clang/Manifest
index 930978f87f32..5a171e52b69b 100644
--- a/llvm-core/clang/Manifest
+++ b/llvm-core/clang/Manifest
@@ -22,4 +22,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-core/clang/clang-22.1.7.ebuild b/llvm-core/clang/clang-22.1.7.ebuild
new file mode 100644
index 000000000000..23b2ded15278
--- /dev/null
+++ b/llvm-core/clang/clang-22.1.7.ebuild
@@ -0,0 +1,470 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{12..14} )
+
+inherit cmake llvm.org multilib multilib-minimal
+inherit prefix python-single-r1 toolchain-funcs
+
+DESCRIPTION="C language family frontend for LLVM"
+HOMEPAGE="https://llvm.org/"
+
+# MSVCSetupApi.h: MIT
+# sorttable.js: MIT
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="debug doc +extra ieee-long-double +pie +static-analyzer test xml"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}]
+ static-analyzer? ( dev-lang/perl:* )
+ xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
+"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ${DEPEND}
+ >=llvm-core/clang-common-${PV}
+ !<llvm-core/llvm-22.1.0-r2:22
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? ( ~llvm-core/lld-${PV} )
+ xml? ( virtual/pkgconfig )
+"
+PDEPEND="
+ llvm-runtimes/clang-runtime:${LLVM_MAJOR}
+ llvm-core/clang-toolchain-symlinks:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=(
+ clang clang-tools-extra cmake
+)
+LLVM_MANPAGES=1
+LLVM_TEST_COMPONENTS=(
+ llvm/utils
+)
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
+BDEPEND+="
+ $(python_gen_cond_dep '
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ ')
+"
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
+
+# Multilib notes:
+# 1. ABI_* flags control ABIs libclang* is built for only.
+# 2. clang is always capable of compiling code for all ABIs for enabled
+# target. However, you will need appropriate crt* files (installed
+# e.g. by sys-devel/gcc and sys-libs/glibc).
+# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
+# in the current profile (i.e. alike supported by sys-devel/gcc).
+#
+# Therefore: use llvm-core/clang[${MULTILIB_USEDEP}] only if you need
+# multilib clang* libraries (not runtime, not wrappers).
+
+src_prepare() {
+ # create extra parent dir for relative CLANG_RESOURCE_DIR access
+ mkdir -p x/y || die
+ BUILD_DIR=${WORKDIR}/x/y/clang
+
+ llvm.org_src_prepare
+
+ # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
+ eprefixify \
+ lib/Lex/InitHeaderSearch.cpp \
+ lib/Driver/ToolChains/Darwin.cpp || die
+
+ if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then
+ sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die
+ fi
+}
+
+check_distribution_components() {
+ if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
+ local all_targets=() my_targets=() l
+ cd "${BUILD_DIR}" || die
+
+ while read -r l; do
+ if [[ ${l} == install-*-stripped:* ]]; then
+ l=${l#install-}
+ l=${l%%-stripped*}
+
+ case ${l} in
+ # meta-targets
+ clang-libraries|distribution)
+ continue
+ ;;
+ # tools
+ clang|clangd|clang-*)
+ ;;
+ # static libraries
+ clang*|findAllSymbols)
+ continue
+ ;;
+ # conditional to USE=doc
+ docs-clang-html|docs-clang-tools-html)
+ use doc || continue
+ ;;
+ # built only with tests
+ c-index-test)
+ continue
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eerror "get_distribution_components() is outdated!"
+ eerror " Add: ${add[*]}"
+ eerror "Remove: ${remove[*]}"
+ die "Update get_distribution_components()!"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+get_distribution_components() {
+ local sep=${1-;}
+
+ local out=(
+ # common stuff
+ clang-cmake-exports
+ clang-headers
+ clang-resource-headers
+ libclang-headers
+
+ aarch64-resource-headers
+ arm-common-resource-headers
+ arm-resource-headers
+ core-resource-headers
+ cuda-resource-headers
+ hexagon-resource-headers
+ hip-resource-headers
+ hlsl-resource-headers
+ mips-resource-headers
+ opencl-resource-headers
+ openmp-resource-headers
+ ppc-htm-resource-headers
+ ppc-resource-headers
+ riscv-resource-headers
+ spirv-resource-headers
+ systemz-resource-headers
+ utility-resource-headers
+ ve-resource-headers
+ webassembly-resource-headers
+ windows-resource-headers
+ x86-resource-headers
+
+ # libs
+ clang-cpp
+ libclang
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # common stuff
+ bash-autocomplete
+ libclang-python-bindings
+
+ # tools
+ clang
+ clang-format
+ clang-installapi
+ clang-linker-wrapper
+ clang-nvlink-wrapper
+ clang-offload-bundler
+ clang-refactor
+ clang-repl
+ clang-scan-deps
+ clang-sycl-linker
+ diagtool
+ hmaptool
+ offload-arch
+
+ # needed for cross-compiling Clang
+ clang-tblgen
+ )
+
+ if use extra; then
+ out+=(
+ # extra tools
+ clang-apply-replacements
+ clang-change-namespace
+ clang-doc
+ clang-include-cleaner
+ clang-include-fixer
+ clang-move
+ clang-query
+ clang-reorder-fields
+ clang-tidy
+ clang-tidy-headers
+ clangd
+ find-all-symbols
+ modularize
+ pp-trace
+ )
+
+ use kernel_Darwin && out+=( ClangdXPCLib )
+ fi
+
+ if llvm_are_manpages_built; then
+ out+=( docs-clang-man )
+ use extra && out+=( docs-clang-tools-man )
+ fi
+
+ if use doc; then
+ out+=( docs-clang-html )
+ use extra && out+=( docs-clang-tools-html )
+ fi
+
+ use static-analyzer && out+=(
+ clang-check
+ clang-extdef-mapping
+ scan-build
+ scan-build-py
+ scan-view
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}")
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ -DLLVM_ROOT="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang/${LLVM_MAJOR}"
+ -DCLANG_CONFIG_FILE_USER_DIR="~/.config/clang"
+ # relative to bindir
+ -DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}"
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DCLANG_LINK_CLANG_DYLIB=ON
+ -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+ -DCLANG_INCLUDE_TESTS=$(usex test)
+
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+
+ # these are not propagated reliably, so redefine them
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+
+ # libgomp support fails to find headers without explicit -I
+ # furthermore, it provides only syntax checking
+ -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
+
+ -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
+
+ -DCLANG_ENABLE_LIBXML2=$(usex xml)
+ -DCLANG_ENABLE_OBJC_REWRITER=ON
+ -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
+ # TODO: CLANG_ENABLE_HLSL?
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if ! use elibc_musl; then
+ mycmakeargs+=(
+ -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double)
+ )
+ fi
+
+ use test && mycmakeargs+=(
+ -DLLVM_BUILD_TESTS=ON
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ if multilib_is_native_abi; then
+ local build_docs=OFF
+ if llvm_are_manpages_built; then
+ build_docs=ON
+ mycmakeargs+=(
+ -DLLVM_BUILD_DOCS=ON
+ -DLLVM_ENABLE_SPHINX=ON
+ -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF
+ )
+ if use extra; then
+ mycmakeargs+=(
+ -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
+ )
+ fi
+ fi
+ mycmakeargs+=(
+ -DCLANG_INCLUDE_DOCS=${build_docs}
+ )
+ fi
+ if multilib_native_use extra; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
+ -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
+ )
+ else
+ mycmakeargs+=(
+ -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
+ )
+ fi
+
+ if tc-is-cross-compiler; then
+ has_version -b llvm-core/clang:${LLVM_MAJOR} ||
+ die "llvm-core/clang:${LLVM_MAJOR} is required on the build host."
+ local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin
+ mycmakeargs+=(
+ -DLLVM_TOOLS_BINARY_DIR="${tools_bin}"
+ -DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen
+ )
+ fi
+
+ # LLVM can have very high memory consumption while linking,
+ # exhausting the limit on 32-bit linker executable
+ use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+ cmake_build distribution
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ local test_targets=( check-clang )
+ if multilib_native_use extra; then
+ test_targets+=(
+ check-clang-tools
+ check-clangd
+ )
+ fi
+ cmake_build "${test_targets[@]}"
+}
+
+src_install() {
+ MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/clang/Config/config.h
+ )
+
+ multilib-minimal_src_install
+
+ # Move runtime headers to /usr/lib/clang, where they belong
+ mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
+ # move (remaining) wrapped headers back
+ if use extra; then
+ mv "${T}"/clang-tidy "${ED}"/usr/include/ || die
+ fi
+ mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
+
+ # Apply CHOST and version suffix to clang tools
+ local clang_tools=( clang clang++ clang-cl clang-cpp )
+ local abi i
+
+ # cmake gives us:
+ # - clang-X
+ # - clang -> clang-X
+ # - clang++, clang-cl, clang-cpp -> clang
+ # we want to have:
+ # - clang-X
+ # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
+ # - clang, clang++, clang-cl, clang-cpp -> clang*-X
+ # also in CHOST variant
+ for i in "${clang_tools[@]:1}"; do
+ rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die
+ dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}"
+ dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}"
+ done
+
+ # now create target symlinks for all supported ABIs
+ for abi in $(get_all_abis); do
+ local abi_chost=$(get_abi_CHOST "${abi}")
+ for i in "${clang_tools[@]}"; do
+ dosym "${i}-${LLVM_MAJOR}" \
+ "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}"
+ dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \
+ "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}"
+ done
+ done
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-distribution
+
+ # move headers to /usr/include for wrapping & ABI mismatch checks
+ # (also drop the version suffix from runtime headers)
+ rm -rf "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/clang "${ED}"/usr/include/clangrt || die
+ if multilib_native_use extra; then
+ # don't wrap clang-tidy headers, the list is too long
+ # (they're fine for non-native ABI but enabling the targets is problematic)
+ mv "${ED}"/usr/include/clang-tidy "${T}/" || die
+ fi
+}
+
+multilib_src_install_all() {
+ python_fix_shebang "${ED}"
+ if use static-analyzer; then
+ python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view
+ fi
+
+ docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ llvm_install_manpages
+ # match 'html' non-compression
+ use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
+ # +x for some reason; TODO: investigate
+ use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1"
+}
+
+pkg_postinst() {
+ if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+ eselect compiler-shadow update all
+ fi
+
+ elog "You can find additional utility scripts in:"
+ elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang"
+ if use extra; then
+ elog "Some of them are vim integration scripts (with instructions inside)."
+ elog "The run-clang-tidy.py script requires the following additional package:"
+ elog " dev-python/pyyaml"
+ fi
+}
+
+pkg_postrm() {
+ if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+ eselect compiler-shadow clean all
+ fi
+}
diff --git a/llvm-core/flang/Manifest b/llvm-core/flang/Manifest
index d6268d2c786d..eaf21d107c27 100644
--- a/llvm-core/flang/Manifest
+++ b/llvm-core/flang/Manifest
@@ -2,4 +2,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-core/flang/flang-22.1.7.ebuild b/llvm-core/flang/flang-22.1.7.ebuild
new file mode 100644
index 000000000000..01f226c587f8
--- /dev/null
+++ b/llvm-core/flang/flang-22.1.7.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake flag-o-matic llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="LLVM's Fortran frontend"
+HOMEPAGE="https://flang.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm64"
+IUSE="+clang debug test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/clang-${PV}[debug=]
+ ~llvm-core/llvm-${PV}[debug=]
+ ~llvm-core/mlir-${PV}[debug=]
+"
+RDEPEND="
+ ${DEPEND}
+"
+PDEPEND="
+ >=llvm-runtimes/flang-rt-${PV}:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? ( llvm-core/clang )
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( flang cmake )
+LLVM_TEST_COMPONENTS=( clang/test/Driver mlir/test/lib )
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ if ! use clang && tc-is-gcc; then
+ ewarn "Building using GCC requires lots of memory (up to 10 GiB per process)."
+ ewarn "Consider enabling USE=clang."
+ ewarn "See https://gcc.gnu.org/PR119705"
+ fi
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ if use clang; then
+ # Only do this conditionally to allow overriding with
+ # e.g. CC=clang-13 in case of breakage
+ if ! tc-is-clang ; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ fi
+
+ strip-unsupported-flags
+ fi
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DMLIR_LINK_MLIR_DYLIB=ON
+ # flang does not feature a dylib, so do not install libraries
+ # or headers
+ -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
+ # installed by llvm-runtimes/flang-rt
+ -DFLANG_INCLUDE_RUNTIME=OFF
+
+ # TODO: always enable to obtain reproducible tools
+ -DFLANG_INCLUDE_TESTS=$(usex test)
+
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-flang
+}
diff --git a/llvm-core/libclc/Manifest b/llvm-core/libclc/Manifest
index c07553137d1f..c4576cf69876 100644
--- a/llvm-core/libclc/Manifest
+++ b/llvm-core/libclc/Manifest
@@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-core/libclc/libclc-22.1.7.ebuild b/llvm-core/libclc/libclc-22.1.7.ebuild
new file mode 100644
index 000000000000..db933d8b3ea4
--- /dev/null
+++ b/llvm-core/libclc/libclc-22.1.7.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 22 )
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake llvm.org llvm-r1 python-any-r1
+
+DESCRIPTION="OpenCL C library"
+HOMEPAGE="https://libclc.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+IUSE="+spirv video_cards_nvidia video_cards_r600 video_cards_radeonsi"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ ')
+ spirv? (
+ >=dev-util/spirv-llvm-translator-22:*
+ )
+"
+
+LLVM_COMPONENTS=( libclc )
+llvm.org_set_globals
+
+pkg_setup() {
+ llvm-r1_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local libclc_targets=(
+ "clspv--"
+ "clspv64--"
+ )
+
+ use spirv && libclc_targets+=(
+ "spirv-mesa3d-"
+ "spirv64-mesa3d-"
+ )
+ use video_cards_nvidia && libclc_targets+=(
+ "nvptx64--"
+ "nvptx64--nvidiacl"
+ "nvptx64-nvidia-cuda"
+ )
+ use video_cards_r600 && libclc_targets+=(
+ "r600--"
+ )
+ use video_cards_radeonsi && libclc_targets+=(
+ "amdgcn--"
+ "amdgcn-amd-amdhsa"
+ "amdgcn-mesa-mesa3d"
+ )
+
+ libclc_targets=${libclc_targets[*]}
+ local mycmakeargs=(
+ -DLIBCLC_TARGETS_TO_BUILD="${libclc_targets// /;}"
+ )
+ cmake_src_configure
+}
diff --git a/llvm-core/lld/Manifest b/llvm-core/lld/Manifest
index 2554f845598e..7ef996e4fc6e 100644
--- a/llvm-core/lld/Manifest
+++ b/llvm-core/lld/Manifest
@@ -14,4 +14,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-core/lld/lld-22.1.7.ebuild b/llvm-core/lld/lld-22.1.7.ebuild
new file mode 100644
index 000000000000..a78b3b3e3093
--- /dev/null
+++ b/llvm-core/lld/lld-22.1.7.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake flag-o-matic llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="The LLVM linker (link editor)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="debug test zstd"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}[debug=,zstd=]
+ virtual/zlib:=
+ zstd? ( app-arch/zstd:= )
+"
+RDEPEND="
+ ${DEPEND}
+ !llvm-core/lld:0
+"
+BDEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+PDEPEND="
+ >=llvm-core/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o )
+LLVM_TEST_COMPONENTS=( llvm/utils/dtlto )
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ llvm.org_src_unpack
+
+ # Directory ${WORKDIR}/llvm does not exist with USE="-test",
+ # but LLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" is set below,
+ # and ${LLVM_MAIN_SRC_DIR}/../libunwind/include is used by build system
+ # (lld/MachO/CMakeLists.txt) and is expected to be resolvable
+ # to existent directory ${WORKDIR}/libunwind/include.
+ mkdir -p "${WORKDIR}/llvm" || die
+}
+
+src_configure() {
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DBUILD_SHARED_LIBS=ON
+ -DLLVM_INCLUDE_TESTS=$(usex test)
+ -DLLVM_ENABLE_ZLIB=FORCE_ON
+ -DLLVM_ENABLE_ZSTD=$(usex zstd FORCE_ON OFF)
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ )
+
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ tc-is-cross-compiler && mycmakeargs+=(
+ -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-lld
+}
diff --git a/llvm-core/lldb/Manifest b/llvm-core/lldb/Manifest
index f13f35446613..94a20245f95d 100644
--- a/llvm-core/lldb/Manifest
+++ b/llvm-core/lldb/Manifest
@@ -13,4 +13,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-core/lldb/lldb-22.1.7.ebuild b/llvm-core/lldb/lldb-22.1.7.ebuild
new file mode 100644
index 000000000000..a4a97e15b94c
--- /dev/null
+++ b/llvm-core/lldb/lldb-22.1.7.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake flag-o-matic llvm.org python-single-r1
+
+DESCRIPTION="The LLVM debugger"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~x86"
+IUSE="debug debuginfod +libedit lzma ncurses +python test +xml"
+RESTRICT="test"
+REQUIRED_USE=${PYTHON_REQUIRED_USE}
+
+DEPEND="
+ debuginfod? (
+ net-misc/curl:=
+ dev-cpp/cpp-httplib:=
+ )
+ libedit? ( dev-libs/libedit:0= )
+ lzma? ( app-arch/xz-utils:= )
+ ncurses? ( >=sys-libs/ncurses-5.9-r3:0= )
+ xml? ( dev-libs/libxml2:= )
+ ~llvm-core/clang-${PV}
+ ~llvm-core/llvm-${PV}[debuginfod=]
+"
+RDEPEND="
+ ${DEPEND}
+ python? (
+ ${PYTHON_DEPS}
+ )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ python? (
+ >=dev-lang/swig-3.0.11
+ )
+ test? (
+ $(python_gen_cond_dep "
+ ~dev-python/lit-${PV}[\${PYTHON_USEDEP}]
+ dev-python/psutil[\${PYTHON_USEDEP}]
+ ")
+ llvm-core/lld
+ )
+"
+
+LLVM_COMPONENTS=( lldb cmake llvm/utils )
+LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+src_configure() {
+ # bug #858389 (https://github.com/llvm/llvm-project/issues/83636)
+ filter-lto
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ local mycmakeargs=(
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DClang_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DLLDB_ENABLE_CURSES=$(usex ncurses)
+ -DLLDB_ENABLE_LIBEDIT=$(usex libedit)
+ -DLLDB_ENABLE_PYTHON=$(usex python)
+ -DLLDB_ENABLE_LUA=OFF
+ -DLLDB_ENABLE_LZMA=$(usex lzma)
+ -DLLDB_ENABLE_LIBXML2=$(usex xml)
+ -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
+
+ -DLLDB_INCLUDE_TESTS=$(usex test)
+
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+
+ -DCLANG_LINK_CLANG_DYLIB=ON
+ # TODO: fix upstream to detect this properly
+ -DHAVE_LIBDL=ON
+ -DHAVE_LIBPTHREAD=ON
+
+ # normally we'd have to set LLVM_ENABLE_TERMINFO, HAVE_TERMINFO
+ # and TERMINFO_LIBS... so just force FindCurses.cmake to use
+ # ncurses with complete library set (including autodetection
+ # of -ltinfo)
+ -DCURSES_NEED_NCURSES=ON
+
+ -DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
+
+ -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-lldb-{shell,unit}
+ # failures + hangs
+ #use python && cmake_build check-lldb-api
+}
+
+src_install() {
+ cmake_src_install
+ find "${D}" -name '*.a' -delete || die
+
+ use python && python_optimize
+}
diff --git a/llvm-core/llvm-common/Manifest b/llvm-core/llvm-common/Manifest
index c07553137d1f..c4576cf69876 100644
--- a/llvm-core/llvm-common/Manifest
+++ b/llvm-core/llvm-common/Manifest
@@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-core/llvm-common/llvm-common-22.1.7.ebuild b/llvm-core/llvm-common/llvm-common-22.1.7.ebuild
new file mode 100644
index 000000000000..27828503be34
--- /dev/null
+++ b/llvm-core/llvm-common/llvm-common-22.1.7.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit elisp-common llvm.org
+
+DESCRIPTION="Common files shared between multiple slots of LLVM"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="emacs"
+
+RDEPEND="
+ !llvm-core/llvm:0
+"
+BDEPEND="
+ emacs? ( >=app-editors/emacs-23.1:* )
+"
+
+LLVM_COMPONENTS=( llvm/utils )
+llvm.org_set_globals
+
+SITEFILE="50llvm-gentoo.el"
+BYTECOMPFLAGS="-L emacs"
+
+src_compile() {
+ default
+
+ use emacs && elisp-compile emacs/*.el
+}
+
+src_install() {
+ insinto /usr/share/vim/vimfiles
+ doins -r vim/*/
+ # some users may find it useful
+ newdoc vim/README README.vim
+ dodoc vim/vimrc
+
+ if use emacs ; then
+ elisp-install llvm emacs/*.{el,elc}
+ elisp-make-site-file "${SITEFILE}" llvm
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/llvm-core/llvm/Manifest b/llvm-core/llvm/Manifest
index 930978f87f32..5a171e52b69b 100644
--- a/llvm-core/llvm/Manifest
+++ b/llvm-core/llvm/Manifest
@@ -22,4 +22,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-core/llvm/llvm-22.1.7.ebuild b/llvm-core/llvm/llvm-22.1.7.ebuild
new file mode 100644
index 000000000000..5ecd28f5a89c
--- /dev/null
+++ b/llvm-core/llvm/llvm-22.1.7.ebuild
@@ -0,0 +1,569 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{12..14} )
+
+inherit cmake flag-o-matic llvm.org multilib-minimal pax-utils python-any-r1
+inherit toolchain-funcs
+
+DESCRIPTION="Low Level Virtual Machine"
+HOMEPAGE="https://llvm.org/"
+
+# Additional licenses:
+# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
+# 2. xxhash: BSD.
+# 3. MD5 code: public-domain.
+# 4. ConvertUTF.h: TODO.
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="
+ +binutils-plugin debug debuginfod doc exegesis libedit +libffi
+ test xml z3 zstd
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ virtual/zlib:=[${MULTILIB_USEDEP}]
+ debuginfod? (
+ net-misc/curl:=
+ dev-cpp/cpp-httplib:=
+ )
+ exegesis? ( dev-libs/libpfm:= )
+ libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
+ libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
+ xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
+ z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="
+ ${RDEPEND}
+ binutils-plugin? ( sys-libs/binutils-libs )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ sys-devel/gnuconfig
+ kernel_Darwin? (
+ <llvm-runtimes/libcxx-${LLVM_VERSION}.9999
+ )
+ libffi? ( virtual/pkgconfig )
+"
+# There are no file collisions between these versions but having :0
+# installed means llvm-config there will take precedence.
+RDEPEND="
+ ${RDEPEND}
+ !llvm-core/llvm:0
+"
+PDEPEND="
+ llvm-core/llvm-common
+ llvm-core/llvm-toolchain-symlinks:${LLVM_MAJOR}
+ binutils-plugin? ( >=llvm-core/llvmgold-${LLVM_MAJOR} )
+"
+
+LLVM_COMPONENTS=( llvm cmake third-party )
+LLVM_MANPAGES=1
+LLVM_USE_TARGETS=provide
+llvm.org_set_globals
+
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
+BDEPEND+="
+ $(python_gen_any_dep '
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ ')
+"
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
+
+python_check_deps() {
+ llvm_are_manpages_built || return 0
+
+ python_has_version -b "dev-python/myst-parser[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
+}
+
+check_uptodate() {
+ local prod_targets=(
+ $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
+ | tail -n +2 | head -n -1)
+ )
+ local all_targets=(
+ lib/Target/*/
+ )
+ all_targets=( "${all_targets[@]#lib/Target/}" )
+ all_targets=( "${all_targets[@]%/}" )
+
+ local exp_targets=() i
+ for i in "${all_targets[@]}"; do
+ has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
+ done
+
+ local outdated
+ if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
+ eerror "ALL_LLVM_EXPERIMENTAL_TARGETS are outdated!"
+ eerror " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
+ eerror "Expected: ${exp_targets[*]}"
+ eerror
+ outdated=1
+ fi
+
+ if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
+ eerror "ALL_LLVM_PRODUCTION_TARGETS are outdated!"
+ eerror " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
+ eerror "Expected: ${prod_targets[*]}"
+ outdated=1
+ fi
+
+ [[ ${outdated} ]] && die "Update ALL_LLVM*_TARGETS"
+}
+
+check_distribution_components() {
+ if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
+ local all_targets=() my_targets=() l
+ cd "${BUILD_DIR}" || die
+
+ while read -r l; do
+ if [[ ${l} == install-*-stripped:* ]]; then
+ l=${l#install-}
+ l=${l%%-stripped*}
+
+ case ${l} in
+ # shared libs
+ LLVM|LLVMgold)
+ ;;
+ # TableGen lib + deps
+ LLVMDemangle|LLVMSupport|LLVMSupportLSP|LLVMTableGen)
+ ;;
+ # for mlir-tblgen
+ LLVMCodeGenTypes)
+ ;;
+ # used by lldb
+ LLVMDebuginfod)
+ ;;
+ # testing libraries
+ LLVMTestingAnnotations|LLVMTestingSupport)
+ ;;
+ # static libs
+ LLVM*)
+ continue
+ ;;
+ # meta-targets
+ distribution|llvm-libraries)
+ continue
+ ;;
+ # used only w/ USE=doc
+ docs-llvm-html)
+ use doc || continue
+ ;;
+ # used only w/ USE=debuginfd
+ llvm-debuginfod)
+ use debuginfod || continue
+ ;;
+ # used only w/ USE=xml
+ llvm-mt)
+ use xml || continue
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eerror "get_distribution_components() is outdated!"
+ eerror " Add: ${add[*]}"
+ eerror "Remove: ${remove[*]}"
+ die "Update get_distribution_components()!"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+src_prepare() {
+ # disable use of SDK on OSX, bug #568758
+ sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
+
+ # Update config.guess to support more systems
+ cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
+
+ # Disable lit tests (we run them in dev-python/lit).
+ > utils/lit/CMakeLists.txt || die
+
+ # Verify that the ebuild is up-to-date
+ check_uptodate
+
+ llvm.org_src_prepare
+}
+
+get_distribution_components() {
+ local sep=${1-;}
+
+ local out=(
+ # shared libs
+ LLVM
+ LTO
+ Remarks
+
+ # tools
+ llvm-config
+
+ # common stuff
+ cmake-exports
+ llvm-headers
+
+ # libraries needed for clang-tblgen
+ LLVMDemangle
+ LLVMSupport
+ LLVMTableGen
+ # mlir-tblgen
+ LLVMCodeGenTypes
+ LLVMSupportLSP
+
+ # testing libraries
+ llvm_gtest
+ llvm_gtest_main
+ LLVMTestingAnnotations
+ LLVMTestingSupport
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # library used by lldb
+ LLVMDebuginfod
+
+ # utilities
+ llvm-tblgen
+ llvm-test-mustache-spec
+ FileCheck
+ llvm-PerfectShuffle
+ count
+ not
+ yaml-bench
+ UnicodeNameMappingGenerator
+
+ # tools
+ bugpoint
+ clang-offload-packager
+ dsymutil
+ llc
+ lli
+ lli-child-target
+ llvm-addr2line
+ llvm-ar
+ llvm-as
+ llvm-bcanalyzer
+ llvm-bitcode-strip
+ llvm-c-test
+ llvm-cas
+ llvm-cat
+ llvm-cfi-verify
+ llvm-cgdata
+ llvm-config
+ llvm-cov
+ llvm-ctxprof-util
+ llvm-cvtres
+ llvm-cxxdump
+ llvm-cxxfilt
+ llvm-cxxmap
+ llvm-debuginfo-analyzer
+ llvm-debuginfod-find
+ llvm-diff
+ llvm-dis
+ llvm-dlltool
+ llvm-dwarfdump
+ llvm-dwarfutil
+ llvm-dwp
+ llvm-exegesis
+ llvm-extract
+ llvm-gsymutil
+ llvm-ifs
+ llvm-install-name-tool
+ llvm-ir2vec
+ llvm-jitlink
+ llvm-jitlink-executor
+ llvm-lib
+ llvm-libtool-darwin
+ llvm-link
+ llvm-lipo
+ llvm-lto
+ llvm-lto2
+ llvm-mc
+ llvm-mca
+ llvm-ml
+ llvm-ml64
+ llvm-modextract
+ llvm-nm
+ llvm-objcopy
+ llvm-objdump
+ llvm-offload-binary
+ llvm-offload-wrapper
+ llvm-opt-report
+ llvm-otool
+ llvm-pdbutil
+ llvm-profdata
+ llvm-profgen
+ llvm-ranlib
+ llvm-rc
+ llvm-readelf
+ llvm-readobj
+ llvm-readtapi
+ llvm-reduce
+ llvm-remarkutil
+ llvm-rtdyld
+ llvm-sim
+ llvm-size
+ llvm-split
+ llvm-stress
+ llvm-strings
+ llvm-strip
+ llvm-symbolizer
+ llvm-tli-checker
+ llvm-undname
+ llvm-windres
+ llvm-xray
+ obj2yaml
+ opt
+ reduce-chunk-list
+ sancov
+ sanstats
+ split-file
+ verify-uselistorder
+ yaml2obj
+
+ # python modules
+ opt-viewer
+ )
+
+ if llvm_are_manpages_built; then
+ out+=(
+ # manpages
+ docs-dsymutil-man
+ docs-llvm-dwarfdump-man
+ docs-llvm-man
+ )
+ fi
+ use doc && out+=(
+ docs-llvm-html
+ )
+
+ use binutils-plugin && out+=(
+ LLVMgold
+ )
+ use debuginfod && out+=(
+ llvm-debuginfod
+ )
+ use xml && out+=(
+ llvm-mt
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ # ODR violations (bug #917536, bug #926529). Just do it for GCC for now
+ # to avoid people grumbling. GCC is, anecdotally, more likely to miscompile
+ # LLVM with LTO anyway (which is not necessarily its fault).
+ tc-is-gcc && filter-lto
+
+ local ffi_cflags ffi_ldflags
+ if use libffi; then
+ ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
+ ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
+ fi
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ # disable appending VCS revision to the version to improve
+ # direct cache hit ratio
+ -DLLVM_APPEND_VC_REV=OFF
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DLLVM_BUILD_LLVM_DYLIB=ON
+ -DLLVM_LINK_LLVM_DYLIB=ON
+ -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+
+ # cheap hack: LLVM combines both anyway, and the only difference
+ # is that the former list is explicitly verified at cmake time
+ -DLLVM_TARGETS_TO_BUILD=""
+ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ -DLLVM_INCLUDE_BENCHMARKS=OFF
+ -DLLVM_INCLUDE_TESTS=ON
+ -DLLVM_BUILD_TESTS=$(usex test)
+ -DLLVM_INSTALL_GTEST=ON
+
+ -DLLVM_ENABLE_FFI=$(usex libffi)
+ -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
+ -DLLVM_ENABLE_LIBXML2=$(usex xml)
+ -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
+ -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+ -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
+ -DLLVM_ENABLE_ZLIB=FORCE_ON
+ -DLLVM_ENABLE_ZSTD=$(usex zstd FORCE_ON OFF)
+ -DLLVM_ENABLE_CURL=$(usex debuginfod)
+ -DLLVM_ENABLE_HTTPLIB=$(usex debuginfod)
+
+ -DLLVM_HOST_TRIPLE="${CHOST}"
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ # disable OCaml bindings (now in dev-ml/llvm)
+ -DOCAMLFIND=NO
+ )
+
+ local suffix=
+ if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then
+ # the ABI of the main branch is not stable, so let's include
+ # the commit id in the SOVERSION to contain the breakage
+ suffix+="git${EGIT_VERSION::8}"
+ fi
+ if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then
+ # Smart hack: alter version suffix -> SOVERSION when linking
+ # against libc++. This way we won't end up mixing LLVM libc++
+ # libraries with libstdc++ clang, and the other way around.
+ suffix+="+libcxx"
+ mycmakeargs+=(
+ -DLLVM_ENABLE_LIBCXX=ON
+ )
+ fi
+ mycmakeargs+=(
+ -DLLVM_VERSION_SUFFIX="${suffix}"
+ )
+
+ use test && mycmakeargs+=(
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ if multilib_is_native_abi; then
+ local build_docs=OFF
+ if llvm_are_manpages_built; then
+ build_docs=ON
+ mycmakeargs+=(
+ -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF
+ )
+ fi
+
+ mycmakeargs+=(
+ -DLLVM_BUILD_DOCS=${build_docs}
+ -DLLVM_ENABLE_OCAMLDOC=OFF
+ -DLLVM_ENABLE_SPHINX=${build_docs}
+ -DLLVM_ENABLE_DOXYGEN=OFF
+ -DLLVM_INSTALL_UTILS=ON
+ )
+ use binutils-plugin && mycmakeargs+=(
+ -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
+ )
+ fi
+
+ use kernel_Darwin && mycmakeargs+=(
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+
+ # LLVM can have very high memory consumption while linking,
+ # exhausting the limit on 32-bit linker executable
+ use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \
+ CMakeCache.txt ||
+ die "Incorrect version, did you update _LLVM_MAIN_MAJOR?"
+ multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+ tc-env_build cmake_build distribution
+
+ pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
+ pax-mark m "${BUILD_DIR}"/bin/lli
+ pax-mark m "${BUILD_DIR}"/bin/lli-child-target
+
+ if use test; then
+ pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
+ pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
+ pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
+ fi
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check
+}
+
+src_install() {
+ local MULTILIB_CHOST_TOOLS=(
+ /usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config
+ )
+
+ local MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/llvm/Config/llvm-config.h
+ )
+
+ local LLVM_LDPATHS=()
+ multilib-minimal_src_install
+
+ # move wrapped headers back
+ mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-distribution
+
+ # move headers to /usr/include for wrapping
+ rm -rf "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
+
+ LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" )
+}
+
+multilib_src_install_all() {
+ local revord=$(( 9999 - ${LLVM_MAJOR} ))
+ newenvd - "60llvm-${revord}" <<-_EOF_
+ PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
+ # we need to duplicate it in ROOTPATH for Portage to respect...
+ ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
+ MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
+ _EOF_
+
+ docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ llvm_install_manpages
+}
+
+pkg_postinst() {
+ elog "You can find additional opt-viewer utility scripts in:"
+ elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer"
+ elog "To use these scripts, you will need Python along with the following"
+ elog "packages:"
+ elog " dev-python/pygments (for opt-viewer)"
+ elog " dev-python/pyyaml (for all of them)"
+}
diff --git a/llvm-core/mlir/Manifest b/llvm-core/mlir/Manifest
index d6268d2c786d..eaf21d107c27 100644
--- a/llvm-core/mlir/Manifest
+++ b/llvm-core/mlir/Manifest
@@ -2,4 +2,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-core/mlir/mlir-22.1.7.ebuild b/llvm-core/mlir/mlir-22.1.7.ebuild
new file mode 100644
index 000000000000..1763c7371494
--- /dev/null
+++ b/llvm-core/mlir/mlir-22.1.7.ebuild
@@ -0,0 +1,234 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake llvm.org multilib-minimal python-any-r1
+
+DESCRIPTION="Multi-Level Intermediate Representation (library only)"
+HOMEPAGE="https://mlir.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm64"
+IUSE="debug test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}[debug=,${MULTILIB_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ llvm-core/llvm:${LLVM_MAJOR}
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( mlir cmake )
+# tablegen tests use *.td files there
+LLVM_TEST_COMPONENTS=( llvm/include )
+llvm.org_set_globals
+
+python_check_deps() {
+ if use test; then
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+ fi
+}
+
+src_prepare() {
+ llvm.org_src_prepare
+
+ # https://github.com/llvm/llvm-project/issues/120902
+ sed -i -e '/LINK_LIBS/s:PUBLIC:PRIVATE:' \
+ lib/ExecutionEngine/CMakeLists.txt || die
+}
+
+check_distribution_components() {
+ if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
+ local all_targets=() my_targets=() l
+ cd "${BUILD_DIR}" || die
+
+ while read -r l; do
+ if [[ ${l} == install-*-stripped:* ]]; then
+ l=${l#install-}
+ l=${l%%-stripped*}
+
+ case ${l} in
+ # meta-targets
+ mlir-libraries|distribution)
+ continue
+ ;;
+ # dylib
+ MLIR)
+ ;;
+ # installed test libraries
+ MLIRTestAnalysis|MLIRTestDialect|MLIRTestIR)
+ ;;
+ MLIROpenACCTestPasses)
+ ;;
+ # static libraries
+ MLIR*)
+ continue
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eqawarn "get_distribution_components() is outdated!"
+ eqawarn " Add: ${add[*]}"
+ eqawarn "Remove: ${remove[*]}"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+get_distribution_components() {
+ local sep=${1-;}
+
+ local out=(
+ mlir-cmake-exports
+ mlir-headers
+
+ # the dylib
+ MLIR
+
+ # shared libraries
+ mlir_apfloat_wrappers
+ mlir_arm_runner_utils
+ mlir_arm_sme_abi_stubs
+ mlir_async_runtime
+ mlir_c_runner_utils
+ mlir_float16_utils
+ mlir_runner_utils
+
+ # test libraries required by flang
+ MLIROpenACCTestPasses
+ MLIRTestAnalysis
+ MLIRTestDialect
+ MLIRTestIR
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # tools
+ mlir-linalg-ods-yaml-gen
+ mlir-lsp-server
+ mlir-opt
+ mlir-pdll
+ mlir-pdll-lsp-server
+ mlir-query
+ mlir-reduce
+ mlir-rewrite
+ mlir-runner
+ mlir-tblgen
+ mlir-translate
+ tblgen-lsp-server
+ tblgen-to-irdl
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DBUILD_SHARED_LIBS=OFF
+ # this controls building libMLIR.so
+ -DLLVM_BUILD_LLVM_DYLIB=ON
+ -DMLIR_BUILD_MLIR_C_DYLIB=OFF
+ -DMLIR_LINK_MLIR_DYLIB=ON
+ -DMLIR_INCLUDE_TESTS=ON
+ -DMLIR_INCLUDE_INTEGRATION_TESTS=OFF
+ -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+ # this enables installing mlir-tblgen and mlir-pdll
+ -DLLVM_BUILD_UTILS=ON
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ -DLLVM_BUILD_TOOLS=ON
+ # TODO
+ -DMLIR_ENABLE_CUDA_RUNNER=0
+ -DMLIR_ENABLE_ROCM_RUNNER=0
+ -DMLIR_ENABLE_SYCL_RUNNER=0
+ -DMLIR_ENABLE_SPIRV_CPU_RUNNER=0
+ -DMLIR_ENABLE_VULKAN_RUNNER=0
+ -DMLIR_ENABLE_BINDINGS_PYTHON=0
+ -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+ cmake_build distribution
+}
+
+multilib_src_test() {
+ local known_xfail=(
+ # https://github.com/llvm/llvm-project/pull/157885#issuecomment-3288095032
+ mlir-pdll-lsp-server/view-output.test
+ )
+
+ case ${ABI} in
+ arm|ppc|x86)
+ known_xfail+=(
+ # MLIR is full of 64-bit assumptions, sigh
+ # https://github.com/llvm/llvm-project/issues/124541
+ Conversion/MemRefToLLVM/memref-to-llvm.mlir
+ Dialect/Bufferization/Transforms/one-shot-bufferize-pass-statistics.mlir
+ Dialect/LLVMIR/sroa-statistics.mlir
+ Dialect/Linalg/vectorize-tensor-extract.mlir
+ Dialect/MemRef/mem2reg-statistics.mlir
+ Dialect/Tensor/fold-tensor-subset-ops.mlir
+ Dialect/Tensor/tracking-listener.mlir
+ Pass/pipeline-stats-nested.mlir
+ Pass/pipeline-stats.mlir
+ )
+ ;;
+ esac
+
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ local -x LIT_XFAIL="${known_xfail[*]}"
+ LIT_XFAIL=${LIT_XFAIL// /;}
+ cmake_build check-mlir
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-distribution
+}
diff --git a/llvm-core/polly/Manifest b/llvm-core/polly/Manifest
index 653310360a5a..df0492433a10 100644
--- a/llvm-core/polly/Manifest
+++ b/llvm-core/polly/Manifest
@@ -4,4 +4,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-core/polly/polly-22.1.7.ebuild b/llvm-core/polly/polly-22.1.7.ebuild
new file mode 100644
index 000000000000..5eab63a32431
--- /dev/null
+++ b/llvm-core/polly/polly-22.1.7.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit cmake llvm.org python-any-r1
+
+DESCRIPTION="Polyhedral optimizations for LLVM"
+HOMEPAGE="https://polly.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+# vendored isl (fork?)
+LICENSE+=" MIT"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="debug test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}:${LLVM_MAJOR}=[debug=]
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( polly cmake )
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-polly
+}
diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 60e5190d5187..92080e50127b 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -4,6 +4,7 @@ DIST llvm-gentoo-patchset-18.1.8-r7.tar.xz 26644 BLAKE2B 8d7bbbd363bd646fc139405
DIST llvm-gentoo-patchset-19.1.7-r1.tar.xz 2644 BLAKE2B c9648797628ae84f81bb66947367d58fe7add9bb28f1e50b509c3d3eab15b6b50e6f58812fd67ce63c57310f1a90b56b10fb5909223d9b24998b3d30909caf0a SHA512 0ea8d8f86647cb28c443937b016b3cf46a2b921463815a85e32ab4488ef7368294a956f13c9b77f8fa70daeaa7bd165cb5975c3b4664ed6d11a6d24f11728d73
DIST llvm-gentoo-patchset-20.1.8.tar.xz 2168 BLAKE2B ab44783c8d8b2f536192e801082f02769eb5bb092bb14d867df9fa854455e9d986ec1074605505c8b43b2cc0b0448474e3eaec3edd89e782922b5b232db9a6e2 SHA512 664018ac834fa0b8a9abc92d64facedc92d3f48818b72d7cdd28cb7c76234ca65c2a16b4d89b4fa5406d3ea97b1d326ae2b63fd5b21b4efa04b6f46f15014542
DIST llvm-gentoo-patchset-22.1.6.tar.xz 3132 BLAKE2B fb6a4c81adaa6f1110784e42792f9e38f60c3d09c189bdfa5b79baa4e4b2ddb8ca4f44b5630da3c1bba631bcec1bbe3a8e5e909e19415bc85e5fa01cdc69593c SHA512 98d55f38299f3633d661f3be26e693a922ff3df9eba4b552c1dfe2b6b977cbf0d23042e5d4fb720d8e168b67035eccccb94937bbfd8f3617208ab03abae404e2
+DIST llvm-gentoo-patchset-22.1.7.tar.xz 1220 BLAKE2B 0b37c45625f0e595ab1cdb232950e52e2ea94192f35200bc358c453f38135e06befa92a85d0ad6bec984c8ded4e65a7d008661a0853cc4defbbb42ef0b04e277 SHA512 b87ac840a95d6a3307b7816df5e6351ab62b5e155c45b32ac8734e31598549bf0f494785974d45c506a086eb6dadf288551cb78391784fb799a18091dcc6e4b6
DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30
@@ -18,4 +19,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.1.7.ebuild
new file mode 100644
index 000000000000..ba2a064c76e5
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.1.7.ebuild
@@ -0,0 +1,239 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils python-any-r1
+
+DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="${LLVM_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"
+# sanitizer targets, keep in sync with config-ix.cmake
+# NB: ubsan, scudo deliberately match two entries
+SANITIZER_FLAGS=(
+ asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo
+ shadowcallstack gwp-asan nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+ || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+ test? (
+ cfi? ( ubsan )
+ gwp-asan? ( scudo )
+ )
+"
+RESTRICT="
+ !clang? ( test )
+ !test? ( test )
+"
+
+DEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+ virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+ clang? (
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/clang-linker-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
+ llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+ )
+ elibc_glibc? ( net-libs/libtirpc )
+ test? (
+ $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
+ =llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+"
+
+LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
+LLVM_TEST_COMPONENTS=(
+ llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+LLVM_PATCHSET=${PV}
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
+}
+
+check_space() {
+ if use test; then
+ local CHECKREQS_DISK_BUILD=11G
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
+ local flag
+ for flag in "${SANITIZER_FLAGS[@]}"; do
+ if ! use "${flag}"; then
+ local cmake_flag=${flag/-/_}
+ sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \
+ cmake/config-ix.cmake || die
+ fi
+ done
+
+ # TODO: fix these tests to be skipped upstream
+ if use asan && ! use profile; then
+ rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die
+ fi
+ if use ubsan && ! use cfi; then
+ > test/cfi/CMakeLists.txt || die
+ fi
+
+ llvm.org_src_prepare
+}
+
+src_configure() {
+ llvm_prepend_path "${LLVM_MAJOR}"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ # pre-set since we need to pass it to cmake
+ BUILD_DIR=${WORKDIR}/compiler-rt_build
+
+ if use clang; then
+ local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+ local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+ strip-unsupported-flags
+
+ # The full clang configuration might not be ready yet. Use the partial
+ # configuration files that are guaranteed to exist even during initial
+ # installations and upgrades.
+ local flags=(
+ --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+ )
+ local -x CFLAGS="${CFLAGS} ${flags[@]}"
+ local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+ local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
+ fi
+
+ local flag want_sanitizer=OFF
+ for flag in "${SANITIZER_FLAGS[@]}"; do
+ if use "${flag}"; then
+ want_sanitizer=ON
+ break
+ fi
+ done
+
+ local mycmakeargs=(
+ -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+ # use a build dir structure consistent with install
+ # this makes it possible to easily deploy test-friendly clang
+ -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${LLVM_MAJOR}"
+
+ -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+ # builtins & crt installed by llvm-runtimes/compiler-rt
+ -DCOMPILER_RT_BUILD_BUILTINS=OFF
+ -DCOMPILER_RT_BUILD_CRT=OFF
+ -DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+ -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer)
+ -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof)
+ -DCOMPILER_RT_BUILD_ORC=$(usex orc)
+ -DCOMPILER_RT_BUILD_PROFILE=$(usex profile)
+ -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}"
+ -DCOMPILER_RT_BUILD_XRAY=$(usex xray)
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if use amd64; then
+ mycmakeargs+=(
+ -DCAN_TARGET_i386=$(usex abi_x86_32)
+ -DCAN_TARGET_x86_64=$(usex abi_x86_64)
+ )
+ fi
+
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+
+ # they are created during src_test()
+ -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAJOR}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAJOR}/bin/clang++"
+ )
+
+ # same flags are passed for build & tests, so we need to strip
+ # them down to a subset supported by clang
+ CC=${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang \
+ CXX=${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++ \
+ strip-unsupported-flags
+ fi
+
+ if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
+ mycmakeargs+=(
+ # setting -isysroot is disabled with compiler-rt-prefix-paths.patch
+ # this allows adding arm64 support using SDK in EPREFIX
+ -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk"
+ # Set version based on the SDK in EPREFIX
+ # This disables i386 for SDK >= 10.15
+ # Will error if has_use tsan and SDK < 10.12
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath "${EPREFIX}/MacOSX.sdk" | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')"
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+ fi
+
+ cmake_src_configure
+
+ if use test; then
+ local sys_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+ [[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+ [[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+ local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+ [[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+ # copy clang over since resource_dir is located relatively to binary
+ # therefore, we can put our new libraries in it
+ mkdir -p "${BUILD_DIR}"/lib/{llvm/${LLVM_MAJOR}/{bin,$(get_libdir)},clang/${LLVM_MAJOR}/include} || die
+ cp "${EPREFIX}"/usr/lib/llvm/${LLVM_MAJOR}/bin/clang{,++} \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/bin/ || die
+ cp "${EPREFIX}"/usr/lib/clang/${LLVM_MAJOR}/include/*.h \
+ "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+ cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || die
+ # we also need LLVMgold.so for gold-based tests
+ if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/LLVMgold.so ]]; then
+ ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/LLVMgold.so \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/ || die
+ fi
+ fi
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ # disable sandbox to have it stop clobbering LD_PRELOAD
+ local -x SANDBOX_ON=0
+ # wipe LD_PRELOAD to make ASAN happy
+ local -x LD_PRELOAD=
+
+ cmake_build check-all
+}
diff --git a/llvm-runtimes/compiler-rt/Manifest b/llvm-runtimes/compiler-rt/Manifest
index ec558eb9e68e..56dc72c57ece 100644
--- a/llvm-runtimes/compiler-rt/Manifest
+++ b/llvm-runtimes/compiler-rt/Manifest
@@ -14,4 +14,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/compiler-rt/compiler-rt-22.1.7.ebuild b/llvm-runtimes/compiler-rt/compiler-rt-22.1.7.ebuild
new file mode 100644
index 000000000000..d5ee73a99f9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt/compiler-rt-22.1.7.ebuild
@@ -0,0 +1,191 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1
+inherit toolchain-funcs
+
+DESCRIPTION="Compiler runtime library for clang (built-in part)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="${LLVM_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +atomic-builtins +clang debug test"
+REQUIRED_USE="atomic-builtins? ( clang )"
+RESTRICT="!test? ( test ) !clang? ( test )"
+
+DEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/clang-linker-config:${LLVM_MAJOR}
+ )
+ test? (
+ $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
+ =llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+"
+
+LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake third-party/siphash )
+LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ if ! use clang && ! tc-is-clang; then
+ ewarn "Building using a compiler other than clang may result in broken atomics"
+ ewarn "library. Enable USE=clang unless you have a very good reason not to."
+ fi
+}
+
+pkg_setup() {
+ if target_is_not_host || tc-is-cross-compiler ; then
+ # strips vars like CFLAGS="-march=x86_64-v3" for non-x86 architectures
+ CHOST=${CTARGET} strip-unsupported-flags
+ # overrides host docs otherwise
+ DOCS=()
+ fi
+ python-any-r1_pkg_setup
+}
+
+test_compiler() {
+ target_is_not_host && return
+ $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+src_configure() {
+ if use clang || use test; then
+ llvm_prepend_path -b "${LLVM_MAJOR}"
+ fi
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ # pre-set since we need to pass it to cmake
+ BUILD_DIR=${WORKDIR}/${P}_build
+
+ if use clang && ! is_crosspkg; then
+ # Only do this conditionally to allow overriding with
+ # e.g. CC=clang-13 in case of breakage
+ if ! tc-is-clang ; then
+ local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+ local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+ fi
+
+ strip-unsupported-flags
+
+ # The full clang configuration might not be ready yet. Given that compiler-rt
+ # require runtime, use only the linker configuration.
+ local flags=(
+ --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-linker.cfg
+ )
+ local -x CFLAGS="${CFLAGS} ${flags[@]}"
+ local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+ local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
+ fi
+
+ if ! is_crosspkg && ! test_compiler ; then
+ local nolib_flags=( -nodefaultlibs -lc )
+
+ if test_compiler "${nolib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ elif test_compiler "${nolib_flags[@]}" -nostartfiles; then
+ # Avoiding -nostartfiles earlier on for bug #862540,
+ # and set available entry symbol for bug #862798.
+ nolib_flags+=( -nostartfiles -e main )
+
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ fi
+ fi
+
+ local mycmakeargs=(
+ -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=$(usex !atomic-builtins)
+ -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+ -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
+ -DCOMPILER_RT_BUILD_MEMPROF=OFF
+ -DCOMPILER_RT_BUILD_ORC=OFF
+ -DCOMPILER_RT_BUILD_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+ -DCOMPILER_RT_BUILD_XRAY=OFF
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if use amd64 && ! target_is_not_host; then
+ mycmakeargs+=(
+ -DCAN_TARGET_i386=$(usex abi_x86_32)
+ -DCAN_TARGET_x86_64=$(usex abi_x86_64)
+ )
+ fi
+
+ if is_crosspkg; then
+ # Needed to target built libc headers
+ export CFLAGS="${CFLAGS} -isystem /usr/${CTARGET}/usr/include"
+ mycmakeargs+=(
+ # Without this, the compiler will compile a test program
+ # and fail due to no builtins.
+ -DCMAKE_C_COMPILER_WORKS=1
+ -DCMAKE_CXX_COMPILER_WORKS=1
+
+ # Without this, compiler-rt install location is not unique
+ # to target triples, only to architecture.
+ # Needed if you want to target multiple libcs for one arch.
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON
+
+ -DCMAKE_ASM_COMPILER_TARGET="${CTARGET}"
+ -DCMAKE_C_COMPILER_TARGET="${CTARGET}"
+ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
+ )
+ fi
+
+ if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
+ mycmakeargs+=(
+ # setting -isysroot is disabled with compiler-rt-prefix-paths.patch
+ # this allows adding arm64 support using SDK in EPREFIX
+ -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk"
+ # Set version based on the SDK in EPREFIX.
+ # This disables i386 for SDK >= 10.15
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath "${EPREFIX}/MacOSX.sdk" | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')"
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+ fi
+
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+
+ -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ cmake_build check-builtins
+}
diff --git a/llvm-runtimes/flang-rt/Manifest b/llvm-runtimes/flang-rt/Manifest
index d6268d2c786d..eaf21d107c27 100644
--- a/llvm-runtimes/flang-rt/Manifest
+++ b/llvm-runtimes/flang-rt/Manifest
@@ -2,4 +2,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/flang-rt/flang-rt-22.1.7.ebuild b/llvm-runtimes/flang-rt/flang-rt-22.1.7.ebuild
new file mode 100644
index 000000000000..ecb171e3d008
--- /dev/null
+++ b/llvm-runtimes/flang-rt/flang-rt-22.1.7.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake flag-o-matic llvm.org python-any-r1
+
+DESCRIPTION="LLVM's Fortran runtime"
+HOMEPAGE="https://flang.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions"
+SLOT="${LLVM_MAJOR}"
+KEYWORDS="~amd64 ~arm64"
+IUSE="debug test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !<llvm-core/flang-21.0.0_pre20250221-r1
+"
+BDEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+ llvm-core/flang
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=(
+ runtimes flang-rt cmake flang llvm/{cmake,utils/llvm-lit}
+)
+LLVM_TEST_COMPONENTS=( third-party/unittest )
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ # the code is not portable
+ local -x FC=flang F77=flang
+ strip-unsupported-flags
+
+ local mycmakeargs=(
+ # we may not have a runtime yet
+ -DCMAKE_Fortran_COMPILER_WORKS=TRUE
+
+ -DLLVM_ENABLE_RUNTIMES="flang-rt"
+ # this package forces NO_DEFAULT_PATHS
+ -DLLVM_BINARY_DIR="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ # set correct install paths
+ -DFLANG_RT_INSTALL_RESOURCE_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+ -DLLVM_DEFAULT_TARGET_TRIPLE="${CHOST}"
+
+ -DFLANG_RT_INCLUDE_TESTS=$(usex test)
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-flang-rt
+}
diff --git a/llvm-runtimes/libcxx/Manifest b/llvm-runtimes/libcxx/Manifest
index d83daecfafe1..10dfa3a0ded8 100644
--- a/llvm-runtimes/libcxx/Manifest
+++ b/llvm-runtimes/libcxx/Manifest
@@ -13,4 +13,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/libcxx/libcxx-22.1.7.ebuild b/llvm-runtimes/libcxx/libcxx-22.1.7.ebuild
new file mode 100644
index 000000000000..5dafbd8ea388
--- /dev/null
+++ b/llvm-runtimes/libcxx/libcxx-22.1.7.ebuild
@@ -0,0 +1,267 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
+inherit python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="+clang +libcxxabi +static-libs test"
+REQUIRED_USE="test? ( clang )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ libcxxabi? (
+ ~llvm-runtimes/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
+ )
+ !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
+"
+DEPEND="
+ ${RDEPEND}
+ llvm-core/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/clang-linker-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+ test? (
+ dev-debug/gdb[python]
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=(
+ runtimes libcxx{,abi} libc llvm/{cmake,utils/llvm-lit} cmake
+)
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+
+ if ! use libcxxabi && ! tc-is-gcc ; then
+ eerror "To build ${PN} against libsupc++, you have to use gcc. Other"
+ eerror "compilers are not supported. Please set CC=gcc and CXX=g++"
+ eerror "and try again."
+ die
+ fi
+}
+
+test_compiler() {
+ $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+src_configure() {
+ local install_prefix=${EPREFIX}
+ is_crosspkg && install_prefix+=/usr/${CTARGET}
+
+ # note: we need to do this before multilib kicks in since it will
+ # alter the CHOST
+ local cxxabi cxxabi_incs
+ if use libcxxabi; then
+ cxxabi=system-libcxxabi
+ cxxabi_incs="${install_prefix}/usr/include/c++/v1"
+ else
+ local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
+ cxxabi=libsupc++
+ cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # Workaround for bgo #961153.
+ # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
+ if ! is_crosspkg; then
+ export CTARGET=${CHOST}
+ fi
+
+ if use clang; then
+ llvm_prepend_path -b "${LLVM_MAJOR}"
+ local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
+ local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
+ strip-unsupported-flags
+
+ # The full clang configuration might not be ready yet. Use the partial
+ # configuration of components that libunwind depends on.
+ local flags=(
+ --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
+ )
+ local -x CFLAGS="${CFLAGS} ${flags[@]}"
+ local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+ local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
+ fi
+
+ # link to compiler-rt
+ local use_compiler_rt=OFF
+ [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
+
+ local nostdlib_flags=( -nostdlib++ )
+ if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nort_flags[*]}"
+ ewarn "${CXX} seems to lack runtime, trying with ${nort_flags[*]}"
+ fi
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DLLVM_ENABLE_RUNTIMES=libcxx
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=$(usex static-libs)
+ -DLIBCXX_CXX_ABI=${cxxabi}
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs}
+ # we're using our own mechanism for generating linker scripts
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
+ -DLIBCXX_INCLUDE_TESTS=$(usex test)
+ -DLIBCXX_INSTALL_MODULES=ON
+ -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
+ # this is broken with standalone builds, and also meaningless
+ -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
+ )
+ if ! has_version -b sys-devel/gcc; then
+ # Since this package is merged before llvm-runtimes/clang-stdlib-config,
+ # clang will attempt to use libstdc++ for the C++ compiler check, and will
+ # fail if it is missing.
+ mycmakeargs+=( -DCMAKE_CXX_COMPILER_WORKS=1 )
+ fi
+ if is_crosspkg; then
+ # Needed to target built libc headers
+ local -x CFLAGS="${CFLAGS} -isystem ${ESYSROOT}/usr/${CTARGET}/usr/include"
+ mycmakeargs+=(
+ # Without this, the compiler will compile a test program
+ # and fail due to no builtins.
+ -DCMAKE_C_COMPILER_WORKS=1
+ -DCMAKE_CXX_COMPILER_WORKS=1
+ # Install inside the cross sysroot.
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
+ )
+ fi
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ fi
+ cmake_src_configure
+}
+
+multilib_src_compile() {
+ cmake_src_compile
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ local libdir=$(get_libdir)
+ gen_shared_ldscript
+ use static-libs && gen_static_ldscript
+ fi
+}
+
+multilib_src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ # https://github.com/llvm/llvm-project/issues/153940
+ local -x LIT_XFAIL="libcxx/gdb/gdb_pretty_printer_test.sh.cpp"
+ cmake_build libcxx-test-suite-install-cxx
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ local libdir=$(get_libdir)
+ cp "${BUILD_DIR}"/{,libcxx/test-suite-install/}"${libdir}"/libc++_shared.so || die
+ if use static-libs; then
+ cp "${BUILD_DIR}"/{,libcxx/test-suite-install/}"${libdir}"/libc++_static.a || die
+ fi
+ fi
+ cmake_build check-cxx
+}
+
+multilib_src_install() {
+ cmake_src_install
+ # since we've replaced libc++.{a,so} with ldscripts, now we have to
+ # install the extra symlinks
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ local libdir=$(get_libdir)
+ is_crosspkg && into /usr/${CTARGET}/usr
+ dolib.so "${libdir}"/libc++_shared.so
+ use static-libs && dolib.a "${libdir}"/libc++_static.a
+ fi
+
+ local install_prefix=
+ is_crosspkg && install_prefix=/usr/${CTARGET}
+ insinto "${install_prefix}/usr/share/libc++/gdb"
+ doins ../libcxx/utils/gdb/libcxx/printers.py
+
+ local lib_version=$(sed -n -e 's/^LIBCXX_LIBRARY_VERSION:STRING=//p' CMakeCache.txt || die)
+ [[ -n ${lib_version} ]] || die "Could not determine LIBCXX_LIBRARY_VERSION from CMakeCache.txt"
+
+ insinto "${install_prefix}/usr/share/gdb/auto-load/usr/$(get_libdir)"
+ newins - "libc++.so.${lib_version}-gdb.py" <<-EOF
+ __import__("sys").path.insert(0, "${EPREFIX}/usr/share/libc++/gdb")
+ __import__("printers").register_libcxx_printer_loader()
+ EOF
+}
+
+# Usage: deps
+gen_ldscript() {
+ local output_format
+ output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
+ [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"
+
+ cat <<-END_LDSCRIPT
+/* GNU ld script
+ Include missing dependencies
+*/
+${output_format}
+GROUP ( $@ )
+END_LDSCRIPT
+}
+
+gen_static_ldscript() {
+ # Move it first.
+ mv "${libdir}"/libc++{,_static}.a || die
+ # Generate libc++.a ldscript for inclusion of its dependencies so that
+ # clang++ -stdlib=libc++ -static works out of the box.
+ local deps=(
+ libc++_static.a
+ $(usex libcxxabi libc++abi.a libsupc++.a)
+ )
+ # On Linux/glibc it does not link without libpthread or libdl. It is
+ # fine on FreeBSD.
+ use elibc_glibc && deps+=( libpthread.a libdl.a )
+
+ gen_ldscript "${deps[*]}" > "${libdir}"/libc++.a || die
+}
+
+gen_shared_ldscript() {
+ # Move it first.
+ mv "${libdir}"/libc++{,_shared}.so || die
+ local deps=(
+ libc++_shared.so
+ # libsupc++ doesn't have a shared version
+ $(usex libcxxabi libc++abi.so libsupc++.a)
+ )
+
+ gen_ldscript "${deps[*]}" > "${libdir}"/libc++.so || die
+}
diff --git a/llvm-runtimes/libcxxabi/Manifest b/llvm-runtimes/libcxxabi/Manifest
index c07553137d1f..c4576cf69876 100644
--- a/llvm-runtimes/libcxxabi/Manifest
+++ b/llvm-runtimes/libcxxabi/Manifest
@@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/libcxxabi/libcxxabi-22.1.7.ebuild b/llvm-runtimes/libcxxabi/libcxxabi-22.1.7.ebuild
new file mode 100644
index 000000000000..4e095a79cf75
--- /dev/null
+++ b/llvm-runtimes/libcxxabi/libcxxabi-22.1.7.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
+inherit python-any-r1 toolchain-funcs
+
+DESCRIPTION="Low level support for a standard C++ library"
+HOMEPAGE="https://libcxxabi.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="+clang +static-libs test"
+REQUIRED_USE="test? ( clang )"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ${RDEPEND}
+ llvm-core/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/clang-linker-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{abi,} llvm/cmake cmake )
+LLVM_TEST_COMPONENTS=(
+ libc llvm/include/llvm/{Demangle,Testing} llvm/utils/llvm-lit
+)
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+test_compiler() {
+ target_is_not_host && return
+ $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+multilib_src_configure() {
+ # Workaround for bgo #961153.
+ # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
+ if ! is_crosspkg; then
+ export CTARGET=${CHOST}
+ fi
+
+ if use clang; then
+ llvm_prepend_path -b "${LLVM_MAJOR}"
+ local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
+ local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
+ strip-unsupported-flags
+
+ # The full clang configuration might not be ready yet. Use the partial
+ # configuration of components that libunwind depends on.
+ local flags=(
+ --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
+ )
+ local -x CFLAGS="${CFLAGS} ${flags[@]}"
+ local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+ local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
+ fi
+
+ local nostdlib_flags=( -nostdlib++ )
+ if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
+ ewarn "${CXX} seems to lack stdlib, trying with ${nostdlib_flags[*]}"
+ fi
+
+ # link to compiler-rt
+ local use_compiler_rt=OFF
+ [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx"
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+ -DLIBCXXABI_ENABLE_SHARED=ON
+ -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs)
+ -DLIBCXXABI_INCLUDE_TESTS=$(usex test)
+ -DLIBCXXABI_USE_COMPILER_RT=${use_compiler_rt}
+
+ # upstream is omitting standard search path for this
+ # probably because gcc & clang are bundling their own unwind.h
+ -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
+ # this is broken with standalone builds, and also meaningless
+ -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
+
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=OFF
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ )
+ if is_crosspkg; then
+ mycmakeargs+=(
+ # Without this, the compiler will compile a test program
+ # and fail due to no builtins.
+ -DCMAKE_C_COMPILER_WORKS=1
+ -DCMAKE_CXX_COMPILER_WORKS=1
+ # Install inside the cross sysroot.
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
+ )
+ fi
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ fi
+ cmake_src_configure
+}
+
+multilib_src_compile() {
+ cmake_build cxxabi
+}
+
+multilib_src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-cxxabi
+}
+
+multilib_src_install() {
+ DESTDIR="${D}" cmake_build install-cxxabi
+}
diff --git a/llvm-runtimes/libgcc/Manifest b/llvm-runtimes/libgcc/Manifest
index 32c8b10d8149..02fd9752cd42 100644
--- a/llvm-runtimes/libgcc/Manifest
+++ b/llvm-runtimes/libgcc/Manifest
@@ -6,4 +6,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/libgcc/libgcc-22.1.7.ebuild b/llvm-runtimes/libgcc/libgcc-22.1.7.ebuild
new file mode 100644
index 000000000000..4abcb8234fe6
--- /dev/null
+++ b/llvm-runtimes/libgcc/libgcc-22.1.7.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1
+inherit toolchain-funcs
+
+DESCRIPTION="Compiler runtime library for clang, compatible with libgcc_s"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="debug test"
+
+DEPEND="
+ ~llvm-runtimes/libunwind-${PV}[static-libs]
+"
+RDEPEND="
+ ${DEPEND}
+ !sys-devel/gcc
+"
+BDEPEND="
+ llvm-core/clang:${LLVM_MAJOR}
+ test? (
+ $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
+ =llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+"
+
+LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake llvm-libgcc third-party/siphash )
+LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ if target_is_not_host || tc-is-cross-compiler ; then
+ # strips vars like CFLAGS="-march=x86_64-v3" for non-x86 architectures
+ CHOST=${CTARGET} strip-unsupported-flags
+ # overrides host docs otherwise
+ DOCS=()
+ fi
+ python-any-r1_pkg_setup
+}
+
+src_configure() {
+ # We need to build a separate copy of compiler-rt, because we need to disable the
+ # COMPILER_RT_BUILTINS_HIDE_SYMBOLS option - compatibility with libgcc requires
+ # visibility of all symbols.
+
+ llvm_prepend_path -b "${LLVM_MAJOR}"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ export CC=${CTARGET}-clang CXX=${CTARGET}-clang++
+ strip-unsupported-flags
+
+ local mycmakeargs=(
+ -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+ -DCOMPILER_RT_BUILD_CRT=OFF
+ -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
+ -DCOMPILER_RT_BUILD_MEMPROF=OFF
+ -DCOMPILER_RT_BUILD_ORC=OFF
+ -DCOMPILER_RT_BUILD_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+ -DCOMPILER_RT_BUILD_XRAY=OFF
+
+ -DCOMPILER_RT_BUILTINS_HIDE_SYMBOLS=OFF
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ # disable building non-native runtimes since we don't do multilib
+ if use amd64; then
+ mycmakeargs+=(
+ -DCAN_TARGET_i386=OFF
+ )
+ fi
+
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+
+ -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+# Usage: deps
+gen_ldscript() {
+ local output_format
+ output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
+ [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"
+
+ cat <<-END_LDSCRIPT
+/* GNU ld script
+ Include missing dependencies
+*/
+${output_format}
+GROUP ( $@ )
+END_LDSCRIPT
+}
+
+src_compile() {
+ cmake_src_compile
+
+ local rtlib=$(
+ "${CC}" -rtlib=compiler-rt -resource-dir="${BUILD_DIR}" \
+ -print-libgcc-file-name || die
+ )
+
+ # Use the llvm-libgcc's version script to produce libgcc.{a,so}, which
+ # combines compiler-rt and libunwind into a libgcc replacement.
+ #
+ # What we do here is similar to what upstream does[0], with the following
+ # differences:
+ #
+ # * We build the local copy of compiler-rt manually, to have a full control
+ # over CMake options.
+ # * Upstream links the locally built copy of libunwind statically. We link the
+ # system-wide libunwind dynamically.
+ #
+ # [0] https://github.com/llvm/llvm-project/blob/llvmorg-19.1.7/llvm-libgcc/CMakeLists.txt#L102-L120
+ "${CC}" -E -xc \
+ "${WORKDIR}/llvm-libgcc/gcc_s.ver.in" \
+ -o gcc_s.ver || die
+ "${CC}" -nostdlib \
+ ${LDFLAGS} \
+ -Wl,--version-script,gcc_s.ver \
+ -Wl,--undefined-version \
+ -Wl,--whole-archive \
+ "${rtlib}" \
+ -Wl,-soname,libgcc_s.so.1.0 \
+ -lc -lunwind -shared \
+ -o libgcc_s.so.1.0 || die
+ # Generate libgcc_s.so ldscript for inclusion of libunwind as a
+ # dependency so that `clang -lgcc_s` works out of the box.
+ gen_ldscript libgcc_s.so.1.0 libunwind.so.1.0 > libgcc_s.so || die
+ cp "${rtlib}" libgcc.a || die
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ cmake_build check-builtins
+}
+
+src_install() {
+ local libdir=$(get_libdir)
+ dolib.so libgcc_s.so.1.0 libgcc_s.so
+ dolib.a libgcc.a
+ dosym libgcc_s.so.1.0 "/usr/${libdir}/libgcc_s.so.1"
+ dosym libunwind.a "/usr/${libdir}/libgcc_eh.a"
+}
diff --git a/llvm-runtimes/libunwind/Manifest b/llvm-runtimes/libunwind/Manifest
index c07553137d1f..c4576cf69876 100644
--- a/llvm-runtimes/libunwind/Manifest
+++ b/llvm-runtimes/libunwind/Manifest
@@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/libunwind/libunwind-22.1.7.ebuild b/llvm-runtimes/libunwind/libunwind-22.1.7.ebuild
new file mode 100644
index 000000000000..09592935af3a
--- /dev/null
+++ b/llvm-runtimes/libunwind/libunwind-22.1.7.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
+inherit python-any-r1 toolchain-funcs
+
+DESCRIPTION="C++ runtime stack unwinder from LLVM"
+HOMEPAGE="https://llvm.org/docs/ExceptionHandling.html"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="+clang debug static-libs test"
+REQUIRED_USE="test? ( clang )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !sys-libs/libunwind
+"
+DEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/clang-linker-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( runtimes libunwind libcxx llvm/cmake cmake )
+LLVM_TEST_COMPONENTS=( libc libcxxabi llvm/utils/llvm-lit )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+test_compiler() {
+ target_is_not_host && return
+ local compiler=${1}
+ shift
+ ${compiler} ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+multilib_src_configure() {
+ if use clang; then
+ llvm_prepend_path -b "${LLVM_MAJOR}"
+ fi
+
+ local libdir=$(get_libdir)
+
+ # https://github.com/llvm/llvm-project/issues/56825
+ # also separately bug #863917
+ filter-lto
+
+ # Workaround for bgo #961153.
+ # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
+ if ! is_crosspkg; then
+ export CTARGET=${CHOST}
+ fi
+
+ if use clang; then
+ local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
+ local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
+ strip-unsupported-flags
+
+ # The full clang configuration might not be ready yet. Use the partial
+ # configuration files that are guaranteed to exist even during initial
+ # installations and upgrades.
+ local flags=(
+ --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,linker}.cfg
+ )
+ local -x CFLAGS="${CFLAGS} ${flags[@]}"
+ local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+ local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
+ fi
+
+ # Check whether C compiler runtime is available.
+ if ! test_compiler "$(tc-getCC)"; then
+ local nolib_flags=( -nodefaultlibs -lc )
+ if test_compiler "$(tc-getCC)" "${nolib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ elif test_compiler "$(tc-getCC)" "${nolib_flags[@]}" -nostartfiles; then
+ # Avoiding -nostartfiles earlier on for bug #862540,
+ # and set available entry symbol for bug #862798.
+ nolib_flags+=( -nostartfiles -e main )
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ fi
+ fi
+ # Check whether C++ standard library is available,
+ local nostdlib_flags=( -nostdlib++ )
+ if ! test_compiler "$(tc-getCXX)" &&
+ test_compiler "$(tc-getCXX)" "${nostdlib_flags[@]}"
+ then
+ local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
+ ewarn "${CXX} seems to lack runtime, trying with ${nostdlib_flags[*]}"
+ fi
+
+ # link to compiler-rt
+ # https://github.com/gentoo/gentoo/pull/21516
+ local use_compiler_rt=OFF
+ [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
+
+ # Respect upstream build type assumptions (bug #910436) where they do:
+ # -DLIBUNWIND_ENABLE_ASSERTIONS=ON =>
+ # -DCMAKE_BUILD_TYPE=DEBUG => -UNDEBUG
+ # -DCMAKE_BUILD_TYPE!=debug => -DNDEBUG
+ # -DLIBUNWIND_ENABLE_ASSERTIONS=OFF =>
+ # -UNDEBUG
+ # See also https://github.com/llvm/llvm-project/issues/86#issuecomment-1649668826.
+ use debug || append-cppflags -DNDEBUG
+
+ local mycmakeargs=(
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCMAKE_C_COMPILER_TARGET="${CTARGET}"
+ -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DLLVM_ENABLE_RUNTIMES="libunwind"
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
+ -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
+ -DLIBUNWIND_INCLUDE_TESTS=$(usex test)
+ -DLIBUNWIND_INSTALL_HEADERS=ON
+
+ # cross-unwinding increases unwinding footprint (to account
+ # for the worst case) and causes some breakage on AArch64
+ # https://github.com/llvm/llvm-project/issues/152549
+ -DLIBUNWIND_ENABLE_CROSS_UNWINDING=OFF
+
+ # avoid dependency on libgcc_s if compiler-rt is used
+ -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt}
+ )
+ if is_crosspkg; then
+ mycmakeargs+=(
+ # Without this, the compiler will compile a test program
+ # and fail due to no builtins.
+ -DCMAKE_C_COMPILER_WORKS=1
+ -DCMAKE_CXX_COMPILER_WORKS=1
+ # Install inside the cross sysroot.
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
+ )
+ fi
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx"
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx"
+
+ -DLIBCXXABI_LIBDIR_SUFFIX=
+ -DLIBCXXABI_ENABLE_SHARED=OFF
+ -DLIBCXXABI_ENABLE_STATIC=ON
+ -DLIBCXXABI_USE_LLVM_UNWINDER=ON
+ -DLIBCXXABI_INCLUDE_TESTS=OFF
+
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=OFF
+ -DLIBCXX_ENABLE_STATIC=ON
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
+ )
+ fi
+
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-unwind
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-unwind
+}
diff --git a/llvm-runtimes/offload/Manifest b/llvm-runtimes/offload/Manifest
index bc62a9fd742f..3942503882eb 100644
--- a/llvm-runtimes/offload/Manifest
+++ b/llvm-runtimes/offload/Manifest
@@ -6,3 +6,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
diff --git a/llvm-runtimes/offload/offload-22.1.7.ebuild b/llvm-runtimes/offload/offload-22.1.7.ebuild
new file mode 100644
index 000000000000..b45a07366fc9
--- /dev/null
+++ b/llvm-runtimes/offload/offload-22.1.7.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake crossdev flag-o-matic llvm.org python-any-r1
+inherit toolchain-funcs
+
+DESCRIPTION="OpenMP offloading support"
+HOMEPAGE="https://openmp.llvm.org"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="+clang debug ompt test llvm_targets_AMDGPU llvm_targets_NVPTX"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-libs/libffi:=
+ ~llvm-core/llvm-${PV}
+ ~llvm-runtimes/openmp-${PV}[ompt?]
+ llvm_targets_AMDGPU? ( dev-libs/rocr-runtime:= )
+"
+DEPEND="
+ ${RDEPEND}
+"
+# tests:
+# - dev-python/lit provides the test runner
+# - llvm-core/llvm provide test utils (e.g. FileCheck)
+# - llvm-core/clang provides the compiler to run tests
+BDEPEND="
+ dev-lang/perl
+ virtual/pkgconfig
+ clang? ( llvm-core/clang )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/lit[${PYTHON_USEDEP}]
+ ')
+ llvm-core/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( runtimes offload cmake libc llvm/{cmake,utils/llvm-lit} )
+LLVM_TEST_COMPONENTS=( openmp/cmake )
+llvm.org_set_globals
+
+pkg_pretend() {
+ if [[ ${LLVM_ALLOW_GPU_TESTING} ]]; then
+ ewarn "LLVM_ALLOW_GPU_TESTING set. This package will run tests against your"
+ ewarn "GPU if it is supported. Note that these tests may be flaky, fail or"
+ ewarn "hang, or even cause your GPU to crash (requiring a reboot)."
+ fi
+}
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ if use test; then
+ python-any-r1_pkg_setup
+ fi
+}
+
+src_configure() {
+ if use clang && ! is_crosspkg; then
+ # Only do this conditionally to allow overriding with
+ # e.g. CC=clang-13 in case of breakage
+ if ! tc-is-clang ; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ fi
+
+ strip-unsupported-flags
+ fi
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ local libdir="$(get_libdir)"
+ local ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
+ local ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
+ local plugins="host"
+
+ if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then
+ if use llvm_targets_AMDGPU; then
+ plugins+=";amdgpu"
+ fi
+ if use llvm_targets_NVPTX; then
+ plugins+=";cuda"
+ fi
+ fi
+
+ local mycmakeargs=(
+ -DLLVM_ENABLE_RUNTIMES=offload
+ -DOPENMP_STANDALONE_BUILD=ON
+ -DOFFLOAD_LIBDIR_SUFFIX="${libdir#lib}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DOFFLOAD_INCLUDE_TESTS=$(usex test)
+ -DLIBOMPTARGET_PLUGINS_TO_BUILD="${plugins}"
+ -DLIBOMPTARGET_OMPT_SUPPORT="$(usex ompt)"
+
+ # this breaks building static target libs
+ -DBUILD_SHARED_LIBS=OFF
+ )
+
+ [[ ! ${LLVM_ALLOW_GPU_TESTING} ]] && mycmakeargs+=(
+ # prevent trying to access the GPU
+ -DLIBOMPTARGET_AMDGPU_ARCH=LIBOMPTARGET_AMDGPU_ARCH-NOTFOUND
+ -DLIBOMPTARGET_NVPTX_ARCH=LIBOMPTARGET_NVPTX_ARCH-NOTFOUND
+ )
+ use test && mycmakeargs+=(
+ # this project does not use standard LLVM cmake macros
+ -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit"
+ -DOPENMP_LIT_ARGS="$(get_lit_flags)"
+
+ -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")"
+ -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")"
+ # requires flang
+ -DOPENMP_TEST_Fortran_COMPILER=
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ cmake_build check-offload check-offload-unit
+}
diff --git a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest
index 433914ead0bb..3858090d9907 100644
--- a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest
+++ b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest
@@ -1,3 +1,5 @@
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-22.1.7.ebuild b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-22.1.7.ebuild
new file mode 100644
index 000000000000..e3c04254a01a
--- /dev/null
+++ b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-22.1.7.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake flag-o-matic llvm.org
+
+DESCRIPTION="OpenMP target library for amdgcn devices"
+HOMEPAGE="https://openmp.llvm.org"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0/${LLVM_SOABI}"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ !<llvm-runtimes/offload-22[llvm_targets_AMDGPU(-)]
+"
+BDEPEND="
+ ~llvm-core/clang-${PV}:${LLVM_MAJOR}[llvm_targets_AMDGPU]
+ llvm-core/lld:${LLVM_MAJOR}[llvm_targets_AMDGPU]
+"
+
+LLVM_COMPONENTS=(
+ runtimes openmp cmake llvm/{cmake,utils/llvm-lit} libc/shared
+ offload/include
+)
+llvm.org_set_globals
+
+src_configure() {
+ local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+ local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+ local triple=amdgcn-amd-amdhsa
+ filter-flags '-m*'
+ strip-unsupported-flags
+
+ local mycmakeargs=(
+ -DLLVM_DEFAULT_TARGET_TRIPLE=${triple}
+ -DLLVM_ENABLE_RUNTIMES=openmp
+ -DOPENMP_STANDALONE_BUILD=ON
+ -DOPENMP_INSTALL_LIBDIR="$(get_libdir)/${triple}"
+ )
+ cmake_src_configure
+}
diff --git a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest
index 433914ead0bb..3858090d9907 100644
--- a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest
+++ b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest
@@ -1,3 +1,5 @@
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-22.1.7.ebuild b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-22.1.7.ebuild
new file mode 100644
index 000000000000..ae4e75f6d090
--- /dev/null
+++ b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-22.1.7.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake flag-o-matic llvm.org
+
+DESCRIPTION="OpenMP target library for nvptx64 devices"
+HOMEPAGE="https://openmp.llvm.org"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0/${LLVM_SOABI}"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ !<llvm-runtimes/offload-22[llvm_targets_NVPTX(-)]
+"
+BDEPEND="
+ ~llvm-core/clang-${PV}:${LLVM_MAJOR}[llvm_targets_NVPTX]
+ llvm-core/lld:${LLVM_MAJOR}[llvm_targets_NVPTX]
+"
+
+LLVM_COMPONENTS=(
+ runtimes openmp cmake llvm/{cmake,utils/llvm-lit} libc/shared
+ offload/include
+)
+llvm.org_set_globals
+
+src_configure() {
+ local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+ local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+ local triple=nvptx64-nvidia-cuda
+ filter-flags '-m*'
+ strip-unsupported-flags
+
+ local mycmakeargs=(
+ -DLLVM_DEFAULT_TARGET_TRIPLE=${triple}
+ -DLLVM_ENABLE_RUNTIMES=openmp
+ -DOPENMP_STANDALONE_BUILD=ON
+ -DOPENMP_INSTALL_LIBDIR="$(get_libdir)/${triple}"
+ )
+ cmake_src_configure
+}
diff --git a/llvm-runtimes/openmp/Manifest b/llvm-runtimes/openmp/Manifest
index c07553137d1f..c4576cf69876 100644
--- a/llvm-runtimes/openmp/Manifest
+++ b/llvm-runtimes/openmp/Manifest
@@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
+DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd
+DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/openmp/openmp-22.1.7.ebuild b/llvm-runtimes/openmp/openmp-22.1.7.ebuild
new file mode 100644
index 000000000000..1587761ecc37
--- /dev/null
+++ b/llvm-runtimes/openmp/openmp-22.1.7.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit flag-o-matic cmake-multilib linux-info llvm.org python-single-r1
+
+DESCRIPTION="OpenMP runtime library for LLVM/clang compiler"
+HOMEPAGE="https://openmp.llvm.org"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~x64-macos"
+IUSE="debug gdb-plugin hwloc ompt test"
+REQUIRED_USE="
+ gdb-plugin? ( ${PYTHON_REQUIRED_USE} )
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ gdb-plugin? ( ${PYTHON_DEPS} )
+ hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] )
+"
+# tests:
+# - dev-python/lit provides the test runner
+# - llvm-core/llvm provide test utils (e.g. FileCheck)
+# - llvm-core/clang provides the compiler to run tests
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-lang/perl
+ test? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/lit[${PYTHON_USEDEP}]
+ ')
+ llvm-core/clang
+ )
+"
+
+LLVM_COMPONENTS=( runtimes openmp cmake llvm/{cmake,include,utils/llvm-lit} )
+llvm.org_set_globals
+
+pkg_setup() {
+ if use gdb-plugin || use test; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+multilib_src_configure() {
+ # LTO causes issues in other packages building, #870127
+ filter-lto
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ local libdir="$(get_libdir)"
+ local mycmakeargs=(
+ -DLLVM_ENABLE_RUNTIMES=openmp
+ -DOPENMP_STANDALONE_BUILD=ON
+ -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}"
+
+ -DLIBOMP_USE_HWLOC=$(usex hwloc)
+ -DLIBOMP_OMPD_GDB_SUPPORT=$(multilib_native_usex gdb-plugin)
+ -DLIBOMP_OMPT_SUPPORT=$(usex ompt)
+
+ # do not install libgomp.so & libiomp5.so aliases
+ -DLIBOMP_INSTALL_ALIASES=OFF
+ # disable unnecessary hack copying stuff back to srcdir
+ -DLIBOMP_COPY_EXPORTS=OFF
+ )
+
+ use test && mycmakeargs+=(
+ # this project does not use standard LLVM cmake macros
+ -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit"
+ -DOPENMP_LIT_ARGS="$(get_lit_flags)"
+
+ -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")"
+ -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")"
+ # disable Fortran tests for now
+ # (TODO: enable where we have flang keyworded)
+ -DOPENMP_TEST_Fortran_COMPILER=
+ )
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ cmake_build check-openmp
+}
diff --git a/lxqt-base/liblxqt/liblxqt-2.4.0.ebuild b/lxqt-base/liblxqt/liblxqt-2.4.0.ebuild
index 51988afaa4c3..72b79ae6acd6 100644
--- a/lxqt-base/liblxqt/liblxqt-2.4.0.ebuild
+++ b/lxqt-base/liblxqt/liblxqt-2.4.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1+ BSD"
diff --git a/lxqt-base/lxqt-about/lxqt-about-2.4.0.ebuild b/lxqt-base/lxqt-about/lxqt-about-2.4.0.ebuild
index 37dca25d07ae..51359fddf2b2 100644
--- a/lxqt-base/lxqt-about/lxqt-about-2.4.0.ebuild
+++ b/lxqt-base/lxqt-about/lxqt-about-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1+"
diff --git a/lxqt-base/lxqt-admin/lxqt-admin-2.4.0.ebuild b/lxqt-base/lxqt-admin/lxqt-admin-2.4.0.ebuild
index 227bad98b94d..a849d71001e2 100644
--- a/lxqt-base/lxqt-admin/lxqt-admin-2.4.0.ebuild
+++ b/lxqt-base/lxqt-admin/lxqt-admin-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1+"
diff --git a/lxqt-base/lxqt-config/lxqt-config-2.4.0.ebuild b/lxqt-base/lxqt-config/lxqt-config-2.4.0.ebuild
index 58c7699539fd..5057e60355e8 100644
--- a/lxqt-base/lxqt-config/lxqt-config-2.4.0.ebuild
+++ b/lxqt-base/lxqt-config/lxqt-config-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="GPL-2 GPL-2+ GPL-3 LGPL-2 LGPL-2+ LGPL-2.1+ WTFPL-2"
diff --git a/lxqt-base/lxqt-globalkeys/lxqt-globalkeys-2.4.0.ebuild b/lxqt-base/lxqt-globalkeys/lxqt-globalkeys-2.4.0.ebuild
index 96da7fb3213e..76026374f3be 100644
--- a/lxqt-base/lxqt-globalkeys/lxqt-globalkeys-2.4.0.ebuild
+++ b/lxqt-base/lxqt-globalkeys/lxqt-globalkeys-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1 LGPL-2.1+"
diff --git a/lxqt-base/lxqt-menu-data/lxqt-menu-data-2.4.0.ebuild b/lxqt-base/lxqt-menu-data/lxqt-menu-data-2.4.0.ebuild
index 3e869e4dd8c6..ddba5393f2cb 100644
--- a/lxqt-base/lxqt-menu-data/lxqt-menu-data-2.4.0.ebuild
+++ b/lxqt-base/lxqt-menu-data/lxqt-menu-data-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1"
diff --git a/lxqt-base/lxqt-meta/lxqt-meta-2.4.0.ebuild b/lxqt-base/lxqt-meta/lxqt-meta-2.4.0.ebuild
index 6a821a495f26..6bbdb93f276b 100644
--- a/lxqt-base/lxqt-meta/lxqt-meta-2.4.0.ebuild
+++ b/lxqt-base/lxqt-meta/lxqt-meta-2.4.0.ebuild
@@ -9,7 +9,7 @@ DESCRIPTION="Meta ebuild for LXQt, the Lightweight Desktop Environment"
HOMEPAGE="https://lxqt-project.org/"
if [[ ${PV} != 9999 ]]; then
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="metapackage"
diff --git a/lxqt-base/lxqt-notificationd/lxqt-notificationd-2.4.0.ebuild b/lxqt-base/lxqt-notificationd/lxqt-notificationd-2.4.0.ebuild
index 001fbf265953..91e71d44b2c0 100644
--- a/lxqt-base/lxqt-notificationd/lxqt-notificationd-2.4.0.ebuild
+++ b/lxqt-base/lxqt-notificationd/lxqt-notificationd-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1 LGPL-2.1+"
diff --git a/lxqt-base/lxqt-openssh-askpass/lxqt-openssh-askpass-2.4.0.ebuild b/lxqt-base/lxqt-openssh-askpass/lxqt-openssh-askpass-2.4.0.ebuild
index 985303942de1..0dda84a3877b 100644
--- a/lxqt-base/lxqt-openssh-askpass/lxqt-openssh-askpass-2.4.0.ebuild
+++ b/lxqt-base/lxqt-openssh-askpass/lxqt-openssh-askpass-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1 LGPL-2.1+"
diff --git a/lxqt-base/lxqt-panel/lxqt-panel-2.4.1.ebuild b/lxqt-base/lxqt-panel/lxqt-panel-2.4.1.ebuild
index f9e5991a4f5e..f96edd9f0eff 100644
--- a/lxqt-base/lxqt-panel/lxqt-panel-2.4.1.ebuild
+++ b/lxqt-base/lxqt-panel/lxqt-panel-2.4.1.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1 LGPL-2.1+"
diff --git a/lxqt-base/lxqt-policykit/lxqt-policykit-2.4.0.ebuild b/lxqt-base/lxqt-policykit/lxqt-policykit-2.4.0.ebuild
index 941b6865eeaa..9ccaa90485ed 100644
--- a/lxqt-base/lxqt-policykit/lxqt-policykit-2.4.0.ebuild
+++ b/lxqt-base/lxqt-policykit/lxqt-policykit-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1 LGPL-2.1+"
diff --git a/lxqt-base/lxqt-powermanagement/lxqt-powermanagement-2.4.0.ebuild b/lxqt-base/lxqt-powermanagement/lxqt-powermanagement-2.4.0.ebuild
index 6fe001a61b8c..33de7142a375 100644
--- a/lxqt-base/lxqt-powermanagement/lxqt-powermanagement-2.4.0.ebuild
+++ b/lxqt-base/lxqt-powermanagement/lxqt-powermanagement-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1 LGPL-2.1+"
diff --git a/lxqt-base/lxqt-qtplugin/lxqt-qtplugin-2.4.0.ebuild b/lxqt-base/lxqt-qtplugin/lxqt-qtplugin-2.4.0.ebuild
index 73196acb151b..d7145e06ce1a 100644
--- a/lxqt-base/lxqt-qtplugin/lxqt-qtplugin-2.4.0.ebuild
+++ b/lxqt-base/lxqt-qtplugin/lxqt-qtplugin-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1+"
diff --git a/lxqt-base/lxqt-runner/lxqt-runner-2.4.0.ebuild b/lxqt-base/lxqt-runner/lxqt-runner-2.4.0.ebuild
index da2959170494..daa96f7a4383 100644
--- a/lxqt-base/lxqt-runner/lxqt-runner-2.4.0.ebuild
+++ b/lxqt-base/lxqt-runner/lxqt-runner-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1 LGPL-2.1+"
diff --git a/lxqt-base/lxqt-session/lxqt-session-2.4.0.ebuild b/lxqt-base/lxqt-session/lxqt-session-2.4.0.ebuild
index 2ddfaa7158e0..09ca3bee3eac 100644
--- a/lxqt-base/lxqt-session/lxqt-session-2.4.0.ebuild
+++ b/lxqt-base/lxqt-session/lxqt-session-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1 LGPL-2.1+"
diff --git a/lxqt-base/lxqt-sudo/lxqt-sudo-2.4.0.ebuild b/lxqt-base/lxqt-sudo/lxqt-sudo-2.4.0.ebuild
index 6ec7266bfe70..717c236bbcd0 100644
--- a/lxqt-base/lxqt-sudo/lxqt-sudo-2.4.0.ebuild
+++ b/lxqt-base/lxqt-sudo/lxqt-sudo-2.4.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1 LGPL-2.1+"
diff --git a/mail-client/claws-mail/claws-mail-4.4.0.ebuild b/mail-client/claws-mail/claws-mail-4.4.0.ebuild
index 84aa837f33a3..2b9a0363a565 100644
--- a/mail-client/claws-mail/claws-mail-4.4.0.ebuild
+++ b/mail-client/claws-mail/claws-mail-4.4.0.ebuild
@@ -15,7 +15,7 @@ if [[ "${PV}" == *9999 ]] ; then
EGIT_REPO_URI="https://git.claws-mail.org/readonly/claws.git"
else
SRC_URI="https://www.claws-mail.org/download.php?file=releases/${P}.tar.xz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv ~sparc x86"
fi
LICENSE="GPL-3"
diff --git a/mail-filter/postsrsd/postsrsd-2.0.11-r5.ebuild b/mail-filter/postsrsd/postsrsd-2.0.11-r6.ebuild
index 823a73f08485..6684566b176d 100644
--- a/mail-filter/postsrsd/postsrsd-2.0.11-r5.ebuild
+++ b/mail-filter/postsrsd/postsrsd-2.0.11-r6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -88,9 +88,9 @@ src_install() {
\n\nSince postsrsd will create its socket with file mode 0666, it is
recommended to place it in a directory with restricted permissions,
for example:
- \n\n\t# mkdir /var/spool/postfix/sock
- \n\t# chown root:postfix /var/spool/postfix/sock
- \n\t# chmod 0770 /var/spool/postfix/sock
+ \n\n\t# mkdir /var/spool/postfix/postsrsd
+ \n\t# chown root:postfix /var/spool/postfix/postsrsd
+ \n\t# chmod 0770 /var/spool/postfix/postsrsd
\n\nand adjust \"{sender,recipient}_canonical_maps\" in main.cf
as well as \"socketmap\" in postsrsd.conf accordingly.
\n\nSee README.rst and the comments in postsrsd.conf for more detailed
@@ -112,6 +112,6 @@ pkg_postinst() {
eend $? "Installing ${f} failed"
fi
- ver_replacing -lt 2.0.11-r5 && local FORCE_PRINT_ELOG=1
+ ver_replacing -lt 2.0.11-r6 && local FORCE_PRINT_ELOG=1
readme.gentoo_print_elog
}
diff --git a/media-gfx/lximage-qt/lximage-qt-2.4.0.ebuild b/media-gfx/lximage-qt/lximage-qt-2.4.0.ebuild
index ea0471692077..2d4673d7a307 100644
--- a/media-gfx/lximage-qt/lximage-qt-2.4.0.ebuild
+++ b/media-gfx/lximage-qt/lximage-qt-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="GPL-2+"
diff --git a/media-libs/libsdl3/libsdl3-3.4.8.ebuild b/media-libs/libsdl3/libsdl3-3.4.8.ebuild
index 95de9684a072..5d658b5f56da 100644
--- a/media-libs/libsdl3/libsdl3-3.4.8.ebuild
+++ b/media-libs/libsdl3/libsdl3-3.4.8.ebuild
@@ -12,7 +12,7 @@ S=${WORKDIR}/SDL3-${PV}
LICENSE="ZLIB"
SLOT="0"
-KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
IUSE="
X alsa aqua bidi dbus doc ibus io-uring jack kms opengl oss
diff --git a/media-sound/pavucontrol-qt/pavucontrol-qt-2.4.0.ebuild b/media-sound/pavucontrol-qt/pavucontrol-qt-2.4.0.ebuild
index b23d194d523b..a72a7e8d71ad 100644
--- a/media-sound/pavucontrol-qt/pavucontrol-qt-2.4.0.ebuild
+++ b/media-sound/pavucontrol-qt/pavucontrol-qt-2.4.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~hppa ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~hppa ~ppc64 ~riscv ~x86"
fi
LICENSE="GPL-2 GPL-2+"
diff --git a/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild b/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild
index c50dfebfe9eb..eb54e277feb7 100644
--- a/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild
+++ b/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="https://github.com/linkchecker/linkchecker"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="sqlite"
RDEPEND="
diff --git a/net-misc/openvswitch/openvswitch-3.3.8-r1.ebuild b/net-misc/openvswitch/openvswitch-3.3.8-r1.ebuild
index 35ec054c5561..ef634587cce4 100644
--- a/net-misc/openvswitch/openvswitch-3.3.8-r1.ebuild
+++ b/net-misc/openvswitch/openvswitch-3.3.8-r1.ebuild
@@ -13,7 +13,7 @@ SRC_URI="https://www.openvswitch.org/releases/${P}.tar.gz"
LICENSE="Apache-2.0 GPL-2"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm64 ~ppc64 x86"
IUSE="debug monitor selinux +ssl unwind valgrind xdp"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/net-wireless/gr-paint/Manifest b/net-wireless/gr-paint/Manifest
index e3e9e30a9e63..b3517a92f2c5 100644
--- a/net-wireless/gr-paint/Manifest
+++ b/net-wireless/gr-paint/Manifest
@@ -1,2 +1 @@
-DIST gr-paint-0.0_p20230427.tar.gz 2094691 BLAKE2B 1dfa5fce3d24911dd9802bd322d4e9916a13066e69e5a0b57201f679a4b9bb985d7ee570e1d3881ecced257927ceb9a3b3845bd60422f407a753482dd35bf0a3 SHA512 7be52c524cdfde8a9620102c9b8cbdd813443c7bd9db1466ec3b73c588bb685fdd917fd2d8c602237b1b0450922d8a058ba9d2d507194a7b1ed4efe0c8f0a5f5
DIST gr-paint-0.0_p20250824.tar.gz 2095255 BLAKE2B a85a5909d664f0803e640502dbe08980fb6b8252f2b1e3abe3453903f56627cc85c549899c41443d1ab32c302907ebc3389a5dd616d7a98ba42110b57968c9eb SHA512 9ac34d9a29c9032b1b490347d5fe626a77d3c746201c0a62f13cf8fbf55b0548f0796d952832d81f2a4298f8bbf9217a3c66fdeca27418771ed03efd43497bf9
diff --git a/net-wireless/gr-paint/gr-paint-0.0_p20230427-r2.ebuild b/net-wireless/gr-paint/gr-paint-0.0_p20230427-r2.ebuild
deleted file mode 100644
index 7989e5d2edc2..000000000000
--- a/net-wireless/gr-paint/gr-paint-0.0_p20230427-r2.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9,10,11,12,13,14} )
-
-if [[ ${PV} == 9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/drmpeg/gr-paint.git"
-else
- COMMIT="995e888fdd575853349b5c72824c216dace74937"
- SRC_URI="https://github.com/drmpeg/gr-paint/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
- S="${WORKDIR}/${PN}-${COMMIT}"
- KEYWORDS="~amd64"
-fi
-inherit cmake python-single-r1
-
-DESCRIPTION="Paints monochrome images into the waterfall of a receiver"
-HOMEPAGE="https://github.com/drmpeg/gr-paint"
-
-LICENSE="GPL-3+"
-SLOT="0"
-IUSE="doc"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-#< drmpeg> What tests?
-RESTRICT="test"
-
-DEPEND="${PYTHON_DEPS}
- $(python_gen_cond_dep '
- dev-libs/boost:=[python,${PYTHON_USEDEP}]
- ')
- dev-libs/gmp
- dev-libs/spdlog:=
- sci-libs/volk:=
- sci-libs/fftw
- >=net-wireless/gnuradio-3.9:=[${PYTHON_SINGLE_USEDEP}]
- $(python_gen_cond_dep 'dev-python/pygccxml[${PYTHON_USEDEP}]')
-"
-
-RDEPEND="${DEPEND}"
-
-BDEPEND="
- $(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]')
- virtual/pkgconfig
- doc? ( app-text/doxygen )
-"
-
-src_configure() {
- local mycmakeargs=(
- -DENABLE_DOXYGEN=$(usex doc)
- -DPYTHON_EXECUTABLE="${PYTHON}"
- )
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
- find "${D}" -name '*.py[oc]' -delete || die
- python_optimize
- mv "${ED}/usr/share/doc/gr-paint" "${ED}/usr/share/doc/${P}"
-}
diff --git a/net-wireless/gr-paint/gr-paint-0.0_p20250824.ebuild b/net-wireless/gr-paint/gr-paint-0.0_p20250824-r1.ebuild
index 01c5a8ab6cfc..11056c88e017 100644
--- a/net-wireless/gr-paint/gr-paint-0.0_p20250824.ebuild
+++ b/net-wireless/gr-paint/gr-paint-0.0_p20250824-r1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-PYTHON_COMPAT=( python3_{9,10,11,12,13,14} )
+PYTHON_COMPAT=( python3_{12..14} )
if [[ ${PV} == 9999* ]]; then
inherit git-r3
diff --git a/profiles/package.mask/00-gentoo b/profiles/package.mask/00-gentoo
index ccd83b840dfc..c359c3bd4dc5 100644
--- a/profiles/package.mask/00-gentoo
+++ b/profiles/package.mask/00-gentoo
@@ -36,6 +36,11 @@
#--- END OF EXAMPLES ---
+# Sam James <sam@gentoo.org> (2026-06-02)
+# Fails to start (bug #976623)
+=sys-auth/elogind-255.26
+=sys-auth/elogind-257.15
+
# Sam James <sam@gentoo.org> (2026-06-01)
# Needs porting to Rust eclasses, bug #976139.
=gnome-extra/gnome-commander-2.0.0
diff --git a/sys-apps/checkpolicy/checkpolicy-3.10.ebuild b/sys-apps/checkpolicy/checkpolicy-3.10.ebuild
index e2cf2383ae23..e26174120f1b 100644
--- a/sys-apps/checkpolicy/checkpolicy-3.10.ebuild
+++ b/sys-apps/checkpolicy/checkpolicy-3.10.ebuild
@@ -17,7 +17,7 @@ if [[ ${PV} == 9999 ]] ; then
S="${WORKDIR}/${P}/${PN}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="amd64 arm ~arm64 ~mips ~riscv ~x86"
+ KEYWORDS="amd64 arm arm64 ~mips ~riscv x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/sys-apps/mcstrans/mcstrans-3.10.ebuild b/sys-apps/mcstrans/mcstrans-3.10.ebuild
index c67bf7af703c..7e0ec16dc24a 100644
--- a/sys-apps/mcstrans/mcstrans-3.10.ebuild
+++ b/sys-apps/mcstrans/mcstrans-3.10.ebuild
@@ -17,7 +17,7 @@ if [[ ${PV} == *9999 ]] ; then
S="${WORKDIR}/${P}/${PN}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="amd64 arm ~arm64 ~mips ~x86"
+ KEYWORDS="amd64 arm arm64 ~mips x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/sys-apps/policycoreutils/policycoreutils-3.10.ebuild b/sys-apps/policycoreutils/policycoreutils-3.10.ebuild
index 73cd83a799c9..8903c2b56594 100644
--- a/sys-apps/policycoreutils/policycoreutils-3.10.ebuild
+++ b/sys-apps/policycoreutils/policycoreutils-3.10.ebuild
@@ -24,7 +24,7 @@ if [[ ${PV} == 9999 ]]; then
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz
https://dev.gentoo.org/~perfinion/distfiles/policycoreutils-extra-${EXTRAS_VER}.tar.bz2"
- KEYWORDS="amd64 arm ~arm64 ~riscv ~x86"
+ KEYWORDS="amd64 arm arm64 ~riscv x86"
S1="${WORKDIR}/${MY_P}"
S2="${WORKDIR}/policycoreutils-extra"
S="${S1}"
diff --git a/sys-apps/razer-cli/razer-cli-2.3.0-r1.ebuild b/sys-apps/razer-cli/razer-cli-2.3.0-r1.ebuild
index 6527f1920f53..fe0354afacba 100644
--- a/sys-apps/razer-cli/razer-cli-2.3.0-r1.ebuild
+++ b/sys-apps/razer-cli/razer-cli-2.3.0-r1.ebuild
@@ -19,7 +19,7 @@ else
SRC_URI="https://github.com/LoLei/${PN}/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="amd64 ~x86"
fi
LICENSE="GPL-3+"
diff --git a/sys-apps/restorecond/restorecond-3.10.ebuild b/sys-apps/restorecond/restorecond-3.10.ebuild
index f221908b4ca3..0afdaae49752 100644
--- a/sys-apps/restorecond/restorecond-3.10.ebuild
+++ b/sys-apps/restorecond/restorecond-3.10.ebuild
@@ -14,7 +14,7 @@ if [[ ${PV} == *9999 ]] ; then
S="${WORKDIR}/${P}/${PN}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="amd64 arm ~arm64 ~mips ~x86"
+ KEYWORDS="amd64 arm arm64 ~mips x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/sys-apps/secilc/secilc-3.10.ebuild b/sys-apps/secilc/secilc-3.10.ebuild
index bd781f519ac8..4a0cbb879c55 100644
--- a/sys-apps/secilc/secilc-3.10.ebuild
+++ b/sys-apps/secilc/secilc-3.10.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
S="${WORKDIR}/${P}/${PN}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="amd64 arm ~arm64 ~riscv ~x86"
+ KEYWORDS="amd64 arm arm64 ~riscv x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/sys-apps/selinux-python/selinux-python-3.10.ebuild b/sys-apps/selinux-python/selinux-python-3.10.ebuild
index 40b22fa11c1e..4cd7b03da152 100644
--- a/sys-apps/selinux-python/selinux-python-3.10.ebuild
+++ b/sys-apps/selinux-python/selinux-python-3.10.ebuild
@@ -21,7 +21,7 @@ if [[ ${PV} == 9999 ]] ; then
S="${WORKDIR}/${P}/${PN#selinux-}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="amd64 arm ~arm64 ~riscv ~x86"
+ KEYWORDS="amd64 arm arm64 ~riscv x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/sys-apps/semodule-utils/semodule-utils-3.10.ebuild b/sys-apps/semodule-utils/semodule-utils-3.10.ebuild
index 682e5b547b27..deba00b7ff98 100644
--- a/sys-apps/semodule-utils/semodule-utils-3.10.ebuild
+++ b/sys-apps/semodule-utils/semodule-utils-3.10.ebuild
@@ -17,7 +17,7 @@ if [[ ${PV} == *9999 ]] ; then
S="${WORKDIR}/${P}/${PN}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="amd64 arm ~arm64 ~mips ~x86"
+ KEYWORDS="amd64 arm arm64 ~mips x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/sys-auth/elogind/Manifest b/sys-auth/elogind/Manifest
index 9a016c39db73..f29d4d3d73e3 100644
--- a/sys-auth/elogind/Manifest
+++ b/sys-auth/elogind/Manifest
@@ -4,4 +4,6 @@ DIST elogind-255.22.tar.gz 2139687 BLAKE2B ed7f8ea68c79813e5a2bbe82dcc0d05e3e240
DIST elogind-255.23.tar.gz 2141771 BLAKE2B cc80c423156912b0f8f4f6a81885b2ad3f21621da0d7866cdaa9993f06d695fa50f96e9787cc54c1321270785f346e005e5555c7046c8d787b4e8c7bc9ff2c9b SHA512 914d0febc15b609147c346326c9d109931434ce9994f536c8c4f5d32efac0b3f8b9d851c71af802bd931b75fd6ef2736728db26dc781363c5d343aaaf15e7c7c
DIST elogind-255.24.tar.gz 2143770 BLAKE2B b205cfa60a1eddac114e23f5dc28bd7dd3fa903ff67e1d4177cbe60f0e10da8f2cde9a92e8d7aea65535961aaf353e0c7a5df2d71196a5ab8154f38928b6739b SHA512 b8a436a7271df895613e6135f3ff9804f580fd7da915f38840e0c65638a6135f9a4671145f41fb186333b69a61ca52495b9e957aadbb383b15421e1e13f53b79
DIST elogind-255.25.tar.gz 2144947 BLAKE2B 69996aade480b8d16a6c190cf33b136e20b4c624f0f9cfcaa2c25722ab00dba3543377b1547fec419e8e40a0f762a51d281c81f17aa96ba17e80a473c7d5b1d4 SHA512 f4bc22438a5de70c703f8997e155be07120f348c41b8538c2faef3cc5046d2f306528bbc258062c4b98fa520546ecbe2bff1e8e56647bbbafd2a3f05727732cb
+DIST elogind-255.26.tar.gz 2145476 BLAKE2B e1a73b833f39d2a54ce4ba14ac4890428fa7c6cc705b638136e9aeb814bf4df108a2ff835f8d0c0cb9dea9dbd6a3ebc7da25c5303ff1a2d803aa412adf76d7b4 SHA512 6a038443d3c736f813d275d94a1a0b5fdd44b2e7a238998e524e5e83b3353d18f902bf4f5153b4ca0d315977f675d05634baf16ed4e096b65acc087d72a96a8e
DIST elogind-257.14.tar.gz 2639697 BLAKE2B a0e3e629c8022837e81100332914bdb85d0e2bd9a09934a13a59458ab22b30a264177feb66ea2e0de57b9cba96ec6b882c812064ebdace502771610978227773 SHA512 2ef3f197643093b3ebe9f46e47aa6275a5fccd1b0dab4cd500cf3009c8af70c8590684f363a9dfa8a599426b546e630074a0c853d3723391a244d5cb308fbdcc
+DIST elogind-257.15.tar.gz 2634053 BLAKE2B a94a59a667ce6e9703b9ba05eaa0a5bd4dbfbc1eb25c6c42877b057bdbb3466ef7755e7d0524c379622fee5cbc605008cce8a2575113e45d68975012ebbed8b1 SHA512 e1c5900837dad78667b5007ca99d81bc4c8ff4338a1f6d504a9611e43f5946b17fcd7863c407f77734218b75ec85e8cac9866b40d221efae99049f4ec9cb9d39
diff --git a/sys-auth/elogind/elogind-255.26.ebuild b/sys-auth/elogind/elogind-255.26.ebuild
new file mode 100644
index 000000000000..efec699ab1ed
--- /dev/null
+++ b/sys-auth/elogind/elogind-255.26.ebuild
@@ -0,0 +1,199 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_BRANCH="v255-stable"
+ EGIT_REPO_URI="https://github.com/elogind/elogind.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+inherit eapi9-ver linux-info meson pam python-any-r1 udev xdg-utils
+
+DESCRIPTION="The systemd project's logind, extracted to a standalone package"
+HOMEPAGE="https://github.com/elogind/elogind"
+
+LICENSE="CC0-1.0 LGPL-2.1+ public-domain"
+SLOT="0"
+IUSE="+acl audit cgroup-hybrid debug doc +pam +policykit selinux test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-util/gperf
+ virtual/pkgconfig
+ $(python_gen_any_dep 'dev-python/jinja2[${PYTHON_USEDEP}]')
+ $(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]')
+"
+DEPEND="
+ audit? ( sys-process/audit )
+ sys-apps/util-linux
+ sys-libs/libcap
+ virtual/libudev:=
+ acl? ( sys-apps/acl )
+ pam? ( sys-libs/pam )
+ selinux? ( sys-libs/libselinux )
+"
+RDEPEND="${DEPEND}
+ !sys-apps/systemd
+ >=sys-apps/systemd-utils-255.7-r4[udev]
+"
+PDEPEND="
+ sys-apps/dbus
+ policykit? ( sys-auth/polkit )
+"
+
+DOCS=( README.md )
+
+PATCHES=(
+ # all downstream patches:
+ "${FILESDIR}/${PN}-252.9-nodocs.patch"
+ # See also:
+ # https://github.com/elogind/elogind/issues/285
+ "${FILESDIR}/${PN}-255.17-revert-s2idle.patch" # bug 939042
+ "${FILESDIR}/${PN}-255.22-musl.patch" # bug 967191
+)
+
+python_check_deps() {
+ python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/lxml[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ local CONFIG_CHECK="~CGROUPS ~EPOLL ~INOTIFY_USER ~SIGNALFD ~TIMERFD"
+
+ use kernel_linux && linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+ xdg_environment_reset
+
+ # don't cleanup /dev/shm/ on logout on logout
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949698
+ sed -e "s/#RemoveIPC=yes/RemoveIPC=no/" \
+ -i src/login/logind.conf.in || die
+}
+
+src_configure() {
+ if use cgroup-hybrid; then
+ cgroupmode="hybrid"
+ else
+ cgroupmode="unified"
+ fi
+
+ python_setup
+
+ EMESON_BUILDTYPE="$(usex debug debug release)"
+
+ local emesonargs=(
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+ -Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html"
+ -Dudevrulesdir="${EPREFIX}$(get_udevdir)"/rules.d
+ --libexecdir="lib/elogind"
+ --localstatedir="${EPREFIX}"/var
+ -Dbashcompletiondir="${EPREFIX}/usr/share/bash-completion/completions"
+ -Dman=auto
+ -Dsmack=true
+ -Dcgroup-controller=openrc
+ -Ddefault-hierarchy=${cgroupmode}
+ -Ddefault-kill-user-processes=false
+ -Dacl=$(usex acl enabled disabled)
+ -Daudit=$(usex audit enabled disabled)
+ -Dhtml=$(usex doc auto disabled)
+ -Dpam=$(usex pam enabled disabled)
+ -Dpamlibdir="$(getpam_mod_dir)"
+ -Dselinux=$(usex selinux enabled disabled)
+ -Dtests=$(usex test true false)
+ -Dutmp=$(usex elibc_musl false true)
+ -Dmode=release
+
+ # Ensure consistency between merged-usr and split-usr (bug 945965)
+ -Dhalt-path="${EPREFIX}/sbin/halt"
+ -Dkexec-path="${EPREFIX}/usr/sbin/kexec"
+ -Dnologin-path="${EPREFIX}/sbin/nologin"
+ -Dpoweroff-path="${EPREFIX}/sbin/poweroff"
+ -Dreboot-path="${EPREFIX}/sbin/reboot"
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ keepdir /var/lib/elogind
+
+ newinitd "${FILESDIR}"/${PN}.init-r1 ${PN}
+
+ newconfd "${FILESDIR}"/${PN}.conf ${PN}
+}
+
+pkg_postinst() {
+ udev_reload
+ if ! use pam; then
+ ewarn "${PN} will not be managing user logins/seats without USE=\"pam\"!"
+ ewarn "In other words, it will be useless for most applications."
+ ewarn
+ fi
+ if ! use policykit; then
+ ewarn "loginctl will not be able to perform privileged operations without"
+ ewarn "USE=\"policykit\"! That means e.g. no suspend or hibernate."
+ ewarn
+ fi
+ if [[ "$(rc-config list boot | grep elogind)" != "" ]]; then
+ elog "elogind is currently started from boot runlevel."
+ elif [[ "$(rc-config list default | grep elogind)" != "" ]]; then
+ ewarn "elogind is currently started from default runlevel."
+ ewarn "Please remove elogind from the default runlevel and"
+ ewarn "add it to the boot runlevel by:"
+ ewarn "# rc-update del elogind default"
+ ewarn "# rc-update add elogind boot"
+ else
+ elog "elogind is currently not started from any runlevel."
+ elog "You may add it to the boot runlevel by:"
+ elog "# rc-update add elogind boot"
+ elog
+ elog "Alternatively, you can leave elogind out of any"
+ elog "runlevel. It will then be started automatically"
+ if use pam; then
+ elog "when the first service calls it via dbus, or"
+ elog "the first user logs into the system."
+ else
+ elog "when the first service calls it via dbus."
+ fi
+ fi
+
+ if ver_replacing -lt 252.9; then
+ elog "Starting with release 252.9 the sleep configuration is now done"
+ elog "in the /etc/elogind/sleep.conf. Should you use non-default sleep"
+ elog "configuration remember to migrate those to new configuration file."
+ fi
+
+ local file files
+ # find custom hooks excluding known (nvidia-drivers, sys-power/tlp)
+ if [[ -d "${EROOT}"/$(get_libdir)/elogind/system-sleep ]]; then
+ readarray -t files < <(find "${EROOT}"/$(get_libdir)/elogind/system-sleep/ \
+ -type f \( -not -iname ".keep_dir" -a \
+ -not -iname "nvidia" -a \
+ -not -iname "49-tlp-sleep" \) || die)
+ fi
+ if [[ ${#files[@]} -gt 0 ]]; then
+ ewarn "*** Custom hooks in obsolete path detected ***"
+ for file in "${files[@]}"; do
+ ewarn " ${file}"
+ done
+ ewarn "Move these custom hooks to ${EROOT}/etc/elogind/system-sleep/ instead."
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/sys-auth/elogind/elogind-257.14-r1.ebuild b/sys-auth/elogind/elogind-257.14-r1.ebuild
new file mode 100644
index 000000000000..c05136625cfe
--- /dev/null
+++ b/sys-auth/elogind/elogind-257.14-r1.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_BRANCH="v255-stable"
+ EGIT_REPO_URI="https://github.com/elogind/elogind.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+inherit eapi9-ver linux-info meson pam python-any-r1 udev xdg-utils
+
+DESCRIPTION="The systemd project's logind, extracted to a standalone package"
+HOMEPAGE="https://github.com/elogind/elogind"
+
+LICENSE="CC0-1.0 LGPL-2.1+ public-domain"
+SLOT="0"
+IUSE="+acl audit cgroup-hybrid debug doc +pam +policykit selinux test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-util/gperf
+ virtual/pkgconfig
+ $(python_gen_any_dep 'dev-python/jinja2[${PYTHON_USEDEP}]')
+ $(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]')
+"
+DEPEND="
+ audit? ( sys-process/audit )
+ sys-apps/util-linux
+ sys-libs/libcap
+ virtual/libudev:=
+ acl? ( sys-apps/acl )
+ pam? ( sys-libs/pam )
+ selinux? ( sys-libs/libselinux )
+"
+RDEPEND="${DEPEND}
+ !sys-apps/systemd
+ >=sys-apps/systemd-utils-255.7-r4[udev]
+"
+PDEPEND="
+ sys-apps/dbus
+ policykit? ( sys-auth/polkit )
+"
+
+DOCS=( README.md )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-257.14-dbus-service.patch" #975147
+)
+
+python_check_deps() {
+ python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/lxml[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ local CONFIG_CHECK="~CGROUPS ~EPOLL ~INOTIFY_USER ~SIGNALFD ~TIMERFD"
+
+ use kernel_linux && linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+ xdg_environment_reset
+
+ # don't cleanup /dev/shm/ on logout on logout
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949698
+ sed -e "s/#RemoveIPC=yes/RemoveIPC=no/" \
+ -i src/login/logind.conf.in || die
+}
+
+src_configure() {
+ if use cgroup-hybrid; then
+ cgroupmode="hybrid"
+ else
+ cgroupmode="unified"
+ fi
+
+ python_setup
+
+ EMESON_BUILDTYPE="$(usex debug debug release)"
+
+ local emesonargs=(
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+ -Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html"
+ -Dudevrulesdir="${EPREFIX}$(get_udevdir)"/rules.d
+ --libexecdir="lib/elogind"
+ --localstatedir="${EPREFIX}"/var
+ -Dbashcompletiondir="${EPREFIX}/usr/share/bash-completion/completions"
+ -Dman=auto
+ -Dsmack=true
+ -Dcgroup-controller=openrc
+ -Ddefault-hierarchy=${cgroupmode}
+ -Ddefault-kill-user-processes=false
+ -Dacl=$(usex acl enabled disabled)
+ -Daudit=$(usex audit enabled disabled)
+ -Dhtml=$(usex doc auto disabled)
+ -Dpam=$(usex pam enabled disabled)
+ -Dpamlibdir="$(getpam_mod_dir)"
+ -Dselinux=$(usex selinux enabled disabled)
+ -Dtests=$(usex test true false)
+ -Dutmp=$(usex elibc_musl false true)
+ -Dmode=release
+
+ # Ensure consistency between merged-usr and split-usr (bug 945965)
+ -Dhalt-path="${EPREFIX}/sbin/halt"
+ -Dkexec-path="${EPREFIX}/usr/sbin/kexec"
+ -Dnologin-path="${EPREFIX}/sbin/nologin"
+ -Dpoweroff-path="${EPREFIX}/sbin/poweroff"
+ -Dreboot-path="${EPREFIX}/sbin/reboot"
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ keepdir /var/lib/elogind
+
+ rm "${ED}"/usr/share/doc/${PF}/LICENSE* || die
+ rm "${ED}"/usr/share/doc/${PF}/CODING_STYLE.md || die
+
+ newinitd "${FILESDIR}"/${PN}.init-r1 ${PN}
+
+ newconfd "${FILESDIR}"/${PN}.conf ${PN}
+}
+
+pkg_postinst() {
+ udev_reload
+ if ! use pam; then
+ ewarn "${PN} will not be managing user logins/seats without USE=\"pam\"!"
+ ewarn "In other words, it will be useless for most applications."
+ ewarn
+ fi
+ if ! use policykit; then
+ ewarn "loginctl will not be able to perform privileged operations without"
+ ewarn "USE=\"policykit\"! That means e.g. no suspend or hibernate."
+ ewarn
+ fi
+ if [[ "$(rc-config list boot | grep elogind)" != "" ]]; then
+ elog "elogind is currently started from boot runlevel."
+ elif [[ "$(rc-config list default | grep elogind)" != "" ]]; then
+ ewarn "elogind is currently started from default runlevel."
+ ewarn "Please remove elogind from the default runlevel and"
+ ewarn "add it to the boot runlevel by:"
+ ewarn "# rc-update del elogind default"
+ ewarn "# rc-update add elogind boot"
+ else
+ elog "elogind is currently not started from any runlevel."
+ elog "You may add it to the boot runlevel by:"
+ elog "# rc-update add elogind boot"
+ elog
+ elog "Alternatively, you can leave elogind out of any"
+ elog "runlevel. It will then be started automatically"
+ if use pam; then
+ elog "when the first service calls it via dbus, or"
+ elog "the first user logs into the system."
+ else
+ elog "when the first service calls it via dbus."
+ fi
+ fi
+
+ if ver_replacing -lt 252.9; then
+ elog "Starting with release 252.9 the sleep configuration is now done"
+ elog "in the /etc/elogind/sleep.conf. Should you use non-default sleep"
+ elog "configuration remember to migrate those to new configuration file."
+ fi
+
+ local file files
+ # find custom hooks excluding known (nvidia-drivers, sys-power/tlp)
+ if [[ -d "${EROOT}"/$(get_libdir)/elogind/system-sleep ]]; then
+ readarray -t files < <(find "${EROOT}"/$(get_libdir)/elogind/system-sleep/ \
+ -type f \( -not -iname ".keep_dir" -a \
+ -not -iname "nvidia" -a \
+ -not -iname "49-tlp-sleep" \) || die)
+ fi
+ if [[ ${#files[@]} -gt 0 ]]; then
+ ewarn "*** Custom hooks in obsolete path detected ***"
+ for file in "${files[@]}"; do
+ ewarn " ${file}"
+ done
+ ewarn "Move these custom hooks to ${EROOT}/etc/elogind/system-sleep/ instead."
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/sys-auth/elogind/elogind-257.15.ebuild b/sys-auth/elogind/elogind-257.15.ebuild
new file mode 100644
index 000000000000..cd74dcbbdf71
--- /dev/null
+++ b/sys-auth/elogind/elogind-257.15.ebuild
@@ -0,0 +1,193 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_BRANCH="v255-stable"
+ EGIT_REPO_URI="https://github.com/elogind/elogind.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+inherit eapi9-ver linux-info meson pam python-any-r1 udev xdg-utils
+
+DESCRIPTION="The systemd project's logind, extracted to a standalone package"
+HOMEPAGE="https://github.com/elogind/elogind"
+
+LICENSE="CC0-1.0 LGPL-2.1+ public-domain"
+SLOT="0"
+IUSE="+acl audit cgroup-hybrid debug doc +pam +policykit selinux test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-util/gperf
+ virtual/pkgconfig
+ $(python_gen_any_dep 'dev-python/jinja2[${PYTHON_USEDEP}]')
+ $(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]')
+"
+DEPEND="
+ audit? ( sys-process/audit )
+ sys-apps/util-linux
+ sys-libs/libcap
+ virtual/libudev:=
+ acl? ( sys-apps/acl )
+ pam? ( sys-libs/pam )
+ selinux? ( sys-libs/libselinux )
+"
+RDEPEND="${DEPEND}
+ !sys-apps/systemd
+ >=sys-apps/systemd-utils-255.7-r4[udev]
+"
+PDEPEND="
+ sys-apps/dbus
+ policykit? ( sys-auth/polkit )
+"
+
+DOCS=( README.md )
+
+python_check_deps() {
+ python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/lxml[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ local CONFIG_CHECK="~CGROUPS ~EPOLL ~INOTIFY_USER ~SIGNALFD ~TIMERFD"
+
+ use kernel_linux && linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+ xdg_environment_reset
+
+ # don't cleanup /dev/shm/ on logout on logout
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949698
+ sed -e "s/#RemoveIPC=yes/RemoveIPC=no/" \
+ -i src/login/logind.conf.in || die
+}
+
+src_configure() {
+ if use cgroup-hybrid; then
+ cgroupmode="hybrid"
+ else
+ cgroupmode="unified"
+ fi
+
+ python_setup
+
+ EMESON_BUILDTYPE="$(usex debug debug release)"
+
+ local emesonargs=(
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+ -Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html"
+ -Dudevrulesdir="${EPREFIX}$(get_udevdir)"/rules.d
+ --libexecdir="lib/elogind"
+ --localstatedir="${EPREFIX}"/var
+ -Dbashcompletiondir="${EPREFIX}/usr/share/bash-completion/completions"
+ -Dman=auto
+ -Dsmack=true
+ -Dcgroup-controller=openrc
+ -Ddefault-hierarchy=${cgroupmode}
+ -Ddefault-kill-user-processes=false
+ -Dacl=$(usex acl enabled disabled)
+ -Daudit=$(usex audit enabled disabled)
+ -Dhtml=$(usex doc auto disabled)
+ -Dpam=$(usex pam enabled disabled)
+ -Dpamlibdir="$(getpam_mod_dir)"
+ -Dselinux=$(usex selinux enabled disabled)
+ -Dtests=$(usex test true false)
+ -Dutmp=$(usex elibc_musl false true)
+ -Dmode=release
+
+ # Ensure consistency between merged-usr and split-usr (bug 945965)
+ -Dhalt-path="${EPREFIX}/sbin/halt"
+ -Dkexec-path="${EPREFIX}/usr/sbin/kexec"
+ -Dnologin-path="${EPREFIX}/sbin/nologin"
+ -Dpoweroff-path="${EPREFIX}/sbin/poweroff"
+ -Dreboot-path="${EPREFIX}/sbin/reboot"
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ keepdir /var/lib/elogind
+
+ rm "${ED}"/usr/share/doc/${PF}/LICENSE* || die
+ rm "${ED}"/usr/share/doc/${PF}/CODING_STYLE.md || die
+
+ newinitd "${FILESDIR}"/${PN}.init-r1 ${PN}
+
+ newconfd "${FILESDIR}"/${PN}.conf ${PN}
+}
+
+pkg_postinst() {
+ udev_reload
+ if ! use pam; then
+ ewarn "${PN} will not be managing user logins/seats without USE=\"pam\"!"
+ ewarn "In other words, it will be useless for most applications."
+ ewarn
+ fi
+ if ! use policykit; then
+ ewarn "loginctl will not be able to perform privileged operations without"
+ ewarn "USE=\"policykit\"! That means e.g. no suspend or hibernate."
+ ewarn
+ fi
+ if [[ "$(rc-config list boot | grep elogind)" != "" ]]; then
+ elog "elogind is currently started from boot runlevel."
+ elif [[ "$(rc-config list default | grep elogind)" != "" ]]; then
+ ewarn "elogind is currently started from default runlevel."
+ ewarn "Please remove elogind from the default runlevel and"
+ ewarn "add it to the boot runlevel by:"
+ ewarn "# rc-update del elogind default"
+ ewarn "# rc-update add elogind boot"
+ else
+ elog "elogind is currently not started from any runlevel."
+ elog "You may add it to the boot runlevel by:"
+ elog "# rc-update add elogind boot"
+ elog
+ elog "Alternatively, you can leave elogind out of any"
+ elog "runlevel. It will then be started automatically"
+ if use pam; then
+ elog "when the first service calls it via dbus, or"
+ elog "the first user logs into the system."
+ else
+ elog "when the first service calls it via dbus."
+ fi
+ fi
+
+ if ver_replacing -lt 252.9; then
+ elog "Starting with release 252.9 the sleep configuration is now done"
+ elog "in the /etc/elogind/sleep.conf. Should you use non-default sleep"
+ elog "configuration remember to migrate those to new configuration file."
+ fi
+
+ local file files
+ # find custom hooks excluding known (nvidia-drivers, sys-power/tlp)
+ if [[ -d "${EROOT}"/$(get_libdir)/elogind/system-sleep ]]; then
+ readarray -t files < <(find "${EROOT}"/$(get_libdir)/elogind/system-sleep/ \
+ -type f \( -not -iname ".keep_dir" -a \
+ -not -iname "nvidia" -a \
+ -not -iname "49-tlp-sleep" \) || die)
+ fi
+ if [[ ${#files[@]} -gt 0 ]]; then
+ ewarn "*** Custom hooks in obsolete path detected ***"
+ for file in "${files[@]}"; do
+ ewarn " ${file}"
+ done
+ ewarn "Move these custom hooks to ${EROOT}/etc/elogind/system-sleep/ instead."
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/sys-auth/elogind/files/elogind-257.14-dbus-service.patch b/sys-auth/elogind/files/elogind-257.14-dbus-service.patch
new file mode 100644
index 000000000000..19d0689d4d81
--- /dev/null
+++ b/sys-auth/elogind/files/elogind-257.14-dbus-service.patch
@@ -0,0 +1,20 @@
+https://bugs.gentoo.org/975147
+
+From 1ed884548cc431a42b84ce67c600051e1f67ed09 Mon Sep 17 00:00:00 2001
+From: Sven Eden <sven@eden-worx.com>
+Date: Mon, 1 Jun 2026 12:05:28 +0200
+Subject: [PATCH] src/login/meson.build: enable install for D-Bus service file
+ (#354)
+
+--- a/src/login/meson.build
++++ b/src/login/meson.build
+@@ -208,7 +208,8 @@ if enable_logind
+ input: 'org.freedesktop.login1.service.in',
+ output: 'org.freedesktop.login1.service',
+ command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
+- install_dir : dbussystemservicedir)
++ install_dir : dbussystemservicedir,
++ install : true)
+ #endif // 0
+
+ install_data(
diff --git a/sys-cluster/sanlock/sanlock-5.1.0-r1.ebuild b/sys-cluster/sanlock/sanlock-5.1.0-r1.ebuild
index 536ca5fa8176..e1167496d3ba 100644
--- a/sys-cluster/sanlock/sanlock-5.1.0-r1.ebuild
+++ b/sys-cluster/sanlock/sanlock-5.1.0-r1.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://codeberg.org/${PN}/${PN}/releases/download/${P}/${P}.tar.gz"
LICENSE="LGPL-2+ GPL-2 GPL-2+"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="python selinux"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
diff --git a/sys-kernel/linux-docs/Manifest b/sys-kernel/linux-docs/Manifest
index 88a609ceb497..725530957137 100644
--- a/sys-kernel/linux-docs/Manifest
+++ b/sys-kernel/linux-docs/Manifest
@@ -1 +1 @@
-DIST linux-6.18.tar.xz 154309096 BLAKE2B b94b7b9bf18aca0c3e50baf79b009a1448fc6cd9c3ee019f641cc247dcf53a4abef4274ee0608ad8cd4943af69854363a95d26e117ff23620bb07dccb158859f SHA512 88599ffdec96d150c1feb9b261ba93bb0301a9d0e1ad6bef7aeab1f5372cbfc57d8b43c7e902bd8f76921d1dbd8189663c142ea869e51d0e2b483b150ee00fe0
+DIST linux-6.18.33.tar.xz 154477844 BLAKE2B 94a5e7b4821fa1ee0c48fb14f0bc9aff1a6ac31ea1fb860b9c806fda17341d0c5fb0650c220530463170d936fb737d16eef956323368305c77b77e5e2f587f84 SHA512 6d6f6c4f9c6ac7974f9cd15ff4569e00d5c6bda58c54f6164c4ceb3161269caa768cb6ec33b04d6ff723edf34e5d2ac70405d9c41bd6ddbbd97dda480b90a4f5
diff --git a/sys-kernel/linux-docs/linux-docs-6.18.ebuild b/sys-kernel/linux-docs/linux-docs-6.18.33.ebuild
index 2378dcfce4e7..53e99480bf83 100644
--- a/sys-kernel/linux-docs/linux-docs-6.18.ebuild
+++ b/sys-kernel/linux-docs/linux-docs-6.18.33.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/sys-libs/libselinux/libselinux-3.10-r1.ebuild b/sys-libs/libselinux/libselinux-3.10-r1.ebuild
index 959e3c761016..aea0eec53da5 100644
--- a/sys-libs/libselinux/libselinux-3.10-r1.ebuild
+++ b/sys-libs/libselinux/libselinux-3.10-r1.ebuild
@@ -24,7 +24,7 @@ if [[ ${PV} == 9999 ]]; then
S="${WORKDIR}/${P}/${PN}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="amd64 arm ~arm64 ~mips ~riscv ~x86"
+ KEYWORDS="amd64 arm arm64 ~mips ~riscv x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/sys-libs/libsemanage/libsemanage-3.10.ebuild b/sys-libs/libsemanage/libsemanage-3.10.ebuild
index edbfdcf8f8b9..8abadc71c9a0 100644
--- a/sys-libs/libsemanage/libsemanage-3.10.ebuild
+++ b/sys-libs/libsemanage/libsemanage-3.10.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
S="${WORKDIR}/${P}/${PN}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="amd64 arm ~arm64 ~mips ~riscv ~x86"
+ KEYWORDS="amd64 arm arm64 ~mips ~riscv x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/sys-libs/libsepol/libsepol-3.10.ebuild b/sys-libs/libsepol/libsepol-3.10.ebuild
index ae3408775d63..67fb105623ff 100644
--- a/sys-libs/libsepol/libsepol-3.10.ebuild
+++ b/sys-libs/libsepol/libsepol-3.10.ebuild
@@ -17,7 +17,7 @@ if [[ ${PV} == 9999 ]]; then
S="${WORKDIR}/${P}/${PN}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="amd64 arm ~arm64 ~mips ~riscv ~x86"
+ KEYWORDS="amd64 arm arm64 ~mips ~riscv x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/www-client/ungoogled-chromium/Manifest b/www-client/ungoogled-chromium/Manifest
index 9fced4951920..b851dbfbc37d 100644
--- a/www-client/ungoogled-chromium/Manifest
+++ b/www-client/ungoogled-chromium/Manifest
@@ -1,12 +1,19 @@
DIST chromium-148.0.7778.178-linux.tar.xz 1592152904 BLAKE2B 8d25be51cab30f196044a8e8da1e65afd025261bd316d0d8f9b8047fe2c0ac72ad8431bc9ca2d637488665a7a44565f6718073a2823fafa20ae1698a44045b84 SHA512 82ff2b4bf9a573cec83ec2e12edd2f1b576dd42ac38c0ac226e751c058c5b5c6afadafffb7d5dac00ac599317d22be8309d68cef2d9a976142ed8a0f1fc7ff2a
DIST chromium-148.0.7778.215-linux.tar.xz 1593166200 BLAKE2B da7ba3258bd15cdd02ce8c30571e8dcca25d9093e7daefc64ef662b445384b93c6acd548f12561cad9f0fc06b249fdda9e9cfab887cd708d63cef97e6436a961 SHA512 09f381d2b69c5a377ab421727e084857680210754051e922a9d96ba486323f877130f4ae289c408ca0af15f3ba1d4cbcdb02877016c085c81ad35254787e9fbd
+DIST chromium-149.0.7827.53-linux.tar.xz 1611305116 BLAKE2B 72018ef444c4769234e13dab7cbe0d2abd03d140631d7ba3cf0dcd4b6fa87f777cb8bbfa6b8100de2166f991f4557197545cac090a9935ddf6ec0f988610ad11 SHA512 36aa5854152d0c0ce338331be28c077aa2cf9edc45c608096368fbbdd84700df4d428daf67b7c76c36a3ff423ccd5b5f6518814bc87facce3d2da529e9dafafd
+DIST chromium-clang-llvmorg-23-init-10931-g20b6ec66-8.tar.xz 69605340 BLAKE2B 5ab6a03bfa76a8523d35c9f9541bc8aff2c33331208ffd2c729e6cd7e6d58e225d236ca8233893df57a52d4cefb0c62d79d61c8f902fbd909cdac8f148822fb8 SHA512 6e013faba35b624144535207c5c884d4675e4166f4eb212d2494c43dbb430b35030734d6f28fc087f5da79a8318531560529a0d0754a96d13e628eb5090de6b5
DIST chromium-clang-llvmorg-23-init-5669-g8a0be0bc-4.tar.xz 68803796 BLAKE2B 334d273c85a8e22dd7f6eec0f0591d54c5acdf85d01925511d0e912c611f5f07c448b3ff35925b4329307a601439dbabf54f5ee186f3b11d1229dc531e2a26af SHA512 570f00c716dd9d6f8ecc1d6364f735884e0485fba5d003bb45e8095cc60215107d11272702c387ce7273400a8c1679180ac5b51ec639e81fc73657aa55043903
DIST chromium-openpower-a85b64f07b.tar.bz2 387899 BLAKE2B b01fda2d64ce73068d1536a10cc0896f07a4b714cdb25698b1df8b3252baa0c21c4209b307cf1cb554854f6d0bfe3cd35e06aaa8d02ac5d409a119335084c324 SHA512 05eee81677e8766808441c939bee68e2e6c58ec91f471d88a40181d2eda78614a0a6d27d92ff8f9dda564d12f3451bace4ff2727594748c5c238a3533038019b
DIST chromium-patches-148-3.tar.bz2 20088 BLAKE2B 063146caf3fae4c4522e00c0abcbbd32652e4f401a81a6cfece043c36189a4177507ef9f44fc733e470d654e079e51e1ee3cd31604f55fd7625567406a228345 SHA512 769ada4905ad216ee1d6595d15dd88a9e2af432f820fc277d9483a5cb19357b15b5e9a94078a54b5c002afc6a7e7b1739f8d7d41893ea6d15f32e3df23555009
+DIST chromium-patches-149-2.tar.bz2 21452 BLAKE2B b9f9ce66998eaa3ff7d23b1d1296ad4a7a984bed08b2031a6e9398e2f724280ca2b4bdd48ddb415cdb5e79f952545c8d322ef3d007f1e5f8303307e45704dd7a SHA512 a318ab70ee226519f02bc114343c4f9794569252f1a2857a71adefdcdd66c6de9ac1ef48ac25e71cef4cbea2c2a56aa537fde7f7142d48e9aedbf1b81c78d027
+DIST chromium-patches-copium-b00f26bb5e.tar.gz 15099 BLAKE2B 886897afba6cb4495ab74298d8ae72643294dba1996a5a7d2939f83fb4af1cb599f7e4cd263b852fe595cf52e0a3689305d6a3c028014f9c4172df7deaf3e2dd SHA512 c337bcb6487252fa679b5910672230677aba87fa7572ecbfea32b369785326e12f06fd3d44c65f16fe32c1e83b5b8e710e81c970cdf03f24f25a68577f6984b9
DIST chromium-patches-copium-fe1caafa06.tar.gz 15572 BLAKE2B 4baa36a4536f9199caa89553fc10deac79ae7effa336fc4bd92fac59eb81a57749eead426e6f01ffecd9954b417eb34c29c899cc49a9d726fe65bf2e303712a0 SHA512 5310e48743a32f2f998b34138b1ed9667feed873ad16c18d3e495383f44a0d5df0f9634c7c4275cf1839002ae887ef58f6c3ec5fd9c5d46ad5114ffab439a664
+DIST chromium-rust-toolchain-4c4205163a-2-llvmorg-23-init-10931-g20b6ec66.tar.xz 274625900 BLAKE2B dc3851eb65570795fd789abe5135291cbfeb1fbf9df2c9c9fa3d61b6e3fb0daeb90b43f18c733e28e60bc138391fa9bb028ad3e5b5a4d5acad6addaeef8abdd4 SHA512 6894b2abc7d0e56784485d600d87a1adb373fdf25001c3be2a05d455584b7648ac458938fa84c9f5db4e8bac4c320e8e162b15e05dd8252c1749962a7f5c5e6e
DIST chromium-rust-toolchain-6f54d591c3-7-llvmorg-23-init-5669-g8a0be0bc.tar.xz 271641712 BLAKE2B 7436b7243fbdd2c46b6dd0d9e16a6727718bfdc1870df86395229f3f6420e6109d5e5b881b21c48e2e1434844e4d7a6080bf36c2877a60e0f61f3baa9b803389 SHA512 420122a3b4fd984a848d47aed7cd04c3fb9bbdc5e0413c94165a6dc091713ca5f2dfd78dc238357ce05ea547bdd8a36d116f106bd4d94a54e358f0e93c7a6028
+DIST chromium-testfonts-9c07d19d9c.tar.gz 33413117 BLAKE2B 95cb79288de5697b6de2a6f503f81bcfb7687ea1af0bd0e6db8cfc09af7cdaedd9a83f36dd9d0a3ac19dfca8ac7a6c3a891922a192db012688565c06da8a9cf8 SHA512 2d3602b7a924d2bb8d538882f13a05428e23bf16ea3a9cf07eb13801fe7f33261ce61f2e5dc12e5c6f61f21b392526024d1969e8a967cf1f5138c647b84025b6
DIST chromium-testfonts-a28b222b79.tar.gz 33233004 BLAKE2B 2329d6a6069a19058c6fd58b61ae2d66cff3b4971984a5d2449be708ead2ef169bd4401ba3b5e9d3aedeeb910b6bb8e7c81b6e338808df327b3102420d6ab2d0 SHA512 ca4f98300f2037a40e02f6c2ffa04427fdf08cdce8de34cc944a5ccb69d4279090d2b8476d5e77bd610db6542696eb3ed4d135c3462fc0375cbf9277bf2fa670
DIST cromite-cb3baf14f52eb4365d017f640f85310735c19b79.tar.gz 175351669 BLAKE2B f578d0783d2af02d62de152fea5364465aee457bc82c84cb9533d07683e475cdb0ede81999d526b1a3acd6fd78a9b06a18a4325c76c3c7a7fe0dfef08a42dbd8 SHA512 a6c97e36e5056a2fd0b8b2d708de637edf51f91a83561b124fe798d177edf37bdd7cf272f692a7b814d853da5ecf3bea63768d7e18078e4c1e04998f0aaa0ee3
DIST rollup-wasm-node-4.57.1.tgz 792515 BLAKE2B 52fa9c4b65f3e20149c66fdd44b3c2a8b47e836d87de85535dbbf8b7243acef3d65c5be9f794eebb1533af2f16888a1cb42a75ed392ba65251cf60b73b41d559 SHA512 6f4adc247f329046a77e04de0ed94fb9b86984850ec74a1a01e93ede18b34da164a02d450524ec6341a2c700780f91d9e6bdc6b76c88f5cf0cd7739c5bf916e4
DIST ungoogled-chromium-148.0.7778.178-1.tar.gz 661720 BLAKE2B 24aa515095c25725f9abf38a7d9c8ea3a92eaf3f575dedd3c3c80a6f111a11f3dec585012a50c9e4c00e3129d910eb171526aea4a5d64d3b6f2a18cddcaa655f SHA512 ebd236bc2c8e686b29a9a2be47b8355f6e1b489858e4ba12ba8e7f09c2ec4df45bcea9405e4577e9ec52888dff33e3ee2458dfa8695002f9397d75f317f1f49c
DIST ungoogled-chromium-148.0.7778.215-1.tar.gz 662274 BLAKE2B f7b5572128a48af4711512f9c1c43b1bcae3f6a41d3e5fda7916a50f276e878c92dfad1e2f457d55abf7665d6b2a09d1a08306c2e61d0ae456d78991c949949b SHA512 725bce1e30177918468f0d68f91cf4c254e22ba8497bcc01241547ac5826d5f30e22ca977692165402696afaa943a6755a7e85ad749d33963717e21a8e114dcb
+DIST ungoogled-chromium-4a7dad94814d52c463602516d1371587631a3bed.tar.gz 664161 BLAKE2B 350aaf3394aafb275a7e9f5be07681245e782a0f55cf1c30fa9935a5edfcac52fdfffcda48eed141264a5100089d4a925f24f4afc678d7347460262534647e18 SHA512 e3cd3cd0f7991ee3cd827cc1ac175b828af9e8981b01446ac6f972e534509c399f67dadc313a259f7df3e3b64b128493eb4290b67a175ed0fc1cdf5fcd931671
diff --git a/www-client/ungoogled-chromium/ungoogled-chromium-149.0.7827.53_p1.ebuild b/www-client/ungoogled-chromium/ungoogled-chromium-149.0.7827.53_p1.ebuild
new file mode 100644
index 000000000000..bf3b3bd81e04
--- /dev/null
+++ b/www-client/ungoogled-chromium/ungoogled-chromium-149.0.7827.53_p1.ebuild
@@ -0,0 +1,2515 @@
+# Copyright 2009-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Use following environment variables to customise the build
+# EXTRA_GN — pass extra options to gn
+# NINJAOPTS="-k0 -j8" useful to populate ccache even if ebuild is still failing
+# UGC_SKIP_PATCHES — space-separated list of patches to skip
+# UGC_KEEP_BINARIES — space-separated list of binaries to keep
+# UGC_SKIP_SUBSTITUTION — space-separated list of files to skip domain substitution
+
+# USE=bundled-toolchain is intended for users who want to use the same toolchain
+# as the upstream releases. It's also a good fallback in case we fall behind
+# and need to get a release out quickly (less likely with `dev` in-tree).
+# We can't rely on it as a default since the toolchain is only shipped for x86-64;
+# other architectures will need to use system toolchain.
+
+# Since m133 we are using CI-generated tarballs from
+# https://github.com/chromium-linux-tarballs/chromium-tarballs/
+
+# These are bit-for-bit identical to the official releases, but are built
+# using an external CI system that we have some control over, in case
+# issues pop up again with official tarball generation.
+
+GN_MIN_VER=0.2374
+# chromium-tools/get-chromium-toolchain-strings.py (or just use Chromicler)
+# Node for M145+ should be 24.12.0 but that's not packaged in Gentoo yet. See #969145
+TEST_FONT="9c07d19d9c5ee1ff94f717e6fb17e0c8c354e6f9"
+BUNDLED_CLANG_VER="llvmorg-23-init-10931-g20b6ec66-8"
+BUNDLED_RUST_VER="4c4205163abcbd08948b3efab796c543ba1ea687-2"
+RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
+NODE_VER="24.12.0"
+ESBUILD_VER="0.25.1"
+ROLLUP_VER="4.57.1" # currently manual.
+
+UGC_COMMIT_ID="4a7dad94814d52c463602516d1371587631a3bed"
+# UGC_PR_COMMITS=(
+# c917e096342e5b90eeea91ab1f8516447c8756cf
+# 5794e9d12bf82620d5f24505798fecb45ca5a22d
+# )
+
+CROMITE_COMMIT_ID="cb3baf14f52eb4365d017f640f85310735c19b79"
+
+#declare -A CHROMIUM_COMMITS=(
+# ["fcfb1a42813f1e9d8babedc7bb2e0f06101a3151"]="." #148+
+# ["-acb47d9a6b56c4889a2ed4216e9968cfc740086c"]="."
+# # ["-37c28a19804e47a68eabf3cf882a310689fc325b"]="." #disable style check for cromite
+# # ["cd5a0df905a28faa89ff2a4ab44f893f84dc4487"]="net/third_party/quiche/src"
+#)
+
+CHROMIUM_LANGS="af am ar as az be bg bn bs ca cs cy da de el en-GB es es-419 et eu fa fi fil
+ fr fr-CA gl gu he hi hr hu hy id is it ja ka kk km kn ko ky lo lt lv mk ml mn mr ms my
+ nb ne nl or pa pl pt-BR pt-PT ro ru si sk sl sq sr sr-Latn sv sw ta te th tr uk ur uz
+ vi zh-CN zh-HK zh-TW zu"
+
+LLVM_COMPAT=( 21 22 23 )
+PYTHON_COMPAT=( python3_{11..14} )
+PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.91.0
+RUST_NEEDS_LLVM="yes please"
+RUST_OPTIONAL="yes" # Not actually optional, but we don't need system Rust (or LLVM) with USE=bundled-toolchain
+RUST_REQ_USE="rustfmt" # Upstream run rustfmt on bindgen output, so we need it to be available.
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
+inherit python-any-r1 readme.gentoo-r1 rust systemd toolchain-funcs xdg-utils
+
+DESCRIPTION="Modifications to Chromium for removing Google integration and enhancing privacy"
+HOMEPAGE="https://github.com/ungoogled-software/ungoogled-chromium"
+PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
+PATCH_V="${PV%%\.*}-2"
+COPIUM_COMMIT="b00f26bb5e0781020da5f830981472a142c6baf1"
+SRC_URI="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV/_*}/chromium-${PV/_*}-linux.tar.xz
+ https://deps.gentoo.zip/www-client/chromium/rollup-wasm-node-${ROLLUP_VER}.tgz
+ https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
+ !bundled-toolchain? (
+ https://codeberg.org/selfisekai/copium/archive/${COPIUM_COMMIT}.tar.gz
+ -> chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
+ )
+ bundled-toolchain? (
+ https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
+ -> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz
+ https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
+ -> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz
+ )
+ test? (
+ https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz
+ )
+ ppc64? (
+ https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
+ )
+"
+
+# Gentoo tarball:
+# https://chromium-tarballs.distfiles.gentoo.org/chromium-${PV/_*}.tar.xz -> chromium-${PV/_*}-gentoo.tar.xz
+
+# chromium-linux-tarballs
+# https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV/_*}/chromium-${PV/_*}-linux.tar.xz
+
+# Official tarball:
+# https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${PV/_*}${LITE_TARBALL:+-lite}.tar.xz
+
+# https://gitweb.gentoo.org/proj/chromium-tools.git/tree/get-chromium-licences.py @ 145.0.7632.76
+LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL"
+LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0"
+LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
+LICENSE+=" cromite? ( GPL-3 )"
+
+SLOT="beta"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+IUSE_SYSTEM_LIBS="abseil-cpp av1 brotli crc32c double-conversion ffmpeg +harfbuzz icu jsoncpp +libusb libvpx +openh264 openjpeg re2 snappy woff2 +zstd"
+IUSE="+X bindist bluetooth bundled-toolchain cfi convert-dict cups custom-cflags debug ffmpeg-chromium enable-driver gtk4 hangouts headless kerberos +libcxx nvidia +official optimize-thinlto optimize-webui override-data-dir pax-kernel pgo"
+IUSE+=" +proprietary-codecs pulseaudio qt6 screencast selinux test thinlto cromite vaapi wayland widevine cpu_flags_ppc_vsx3"
+RESTRICT="
+ !bindist? ( bindist )
+ !test? ( test )
+ arm64? ( test )
+ !system-ffmpeg? ( proprietary-codecs? ( bindist ) )
+ !system-openh264? ( bindist )
+ cromite? ( bindist )"
+
+REQUIRED_USE="
+ !headless? ( || ( X wayland ) )
+ screencast? ( wayland )
+ ffmpeg-chromium? ( bindist proprietary-codecs )
+ optimize-thinlto? ( thinlto )
+ cfi? ( thinlto )
+ x86? ( !thinlto !widevine )
+ debug? ( !official )
+ vaapi? ( !system-av1 !system-libvpx )
+"
+
+UGC_PV="${PV/_p/-}"
+UGC_PF="${PN}-${UGC_PV}"
+UGC_URL="https://github.com/ungoogled-software/${PN}/archive/"
+
+if [ -z "$UGC_COMMIT_ID" ]; then
+ UGC_URL="${UGC_URL}${UGC_PV}.tar.gz -> ${UGC_PF}.tar.gz"
+ UGC_WD="${WORKDIR}/${UGC_PF}"
+else
+ UGC_URL="${UGC_URL}${UGC_COMMIT_ID}.tar.gz -> ${PN}-${UGC_COMMIT_ID}.tar.gz"
+ UGC_WD="${WORKDIR}/ungoogled-chromium-${UGC_COMMIT_ID}"
+fi
+
+SRC_URI+="${UGC_URL}
+"
+
+if [ ! -z "${UGC_PR_COMMITS[*]}" ]; then
+ for i in "${UGC_PR_COMMITS[@]}"; do
+ SRC_URI+="https://github.com/ungoogled-software/${PN}/commit/$i.patch?full_index=true -> ${PN}-$i.patch
+ "
+ done
+fi
+
+if [ ! -z "${CHROMIUM_COMMITS[*]}" ]; then
+ # for i in "${CHROMIUM_COMMITS[@]}"; do
+ for i in "${!CHROMIUM_COMMITS[@]}"; do
+ if [[ ${CHROMIUM_COMMITS[$i]} =~ webrtc ]]; then
+ #TODO: is it safe to use this mirror?
+ SRC_URI+="https://github.com/webrtc-mirror/webrtc/commit/${i/-}.patch?full_index=true -> webrtc-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ angle ]]; then
+ SRC_URI+="https://github.com/google/angle/commit/${i/-}.patch?full_index=true -> angle-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ quiche ]]; then
+ SRC_URI+="https://github.com/google/quiche/commit/${i/-}.patch?full_index=true -> quiche-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ dawn ]]; then
+ SRC_URI+="https://github.com/google/dawn/commit/${i/-}.patch?full_index=true -> dawn-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ perfetto ]]; then
+ SRC_URI+="https://github.com/google/perfetto/commit/${i/-}.patch?full_index=true -> perfetto-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ ink ]]; then
+ SRC_URI+="https://github.com/google/ink/commit/${i/-}.patch?full_index=true -> ink-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ vulkan-utility-libraries ]]; then
+ SRC_URI+="https://github.com/KhronosGroup/Vulkan-Utility-Libraries/commit/${i/-}.patch?full_index=true -> vulkan-utility-libraries-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ ruy ]]; then
+ SRC_URI+="https://github.com/google/ruy/commit/${i/-}.patch?full_index=true -> ruy-${i/-}.patch
+ "
+ else
+ SRC_URI+="https://github.com/chromium/chromium/commit/${i/-}.patch?full_index=true -> chromium-${i/-}.patch
+ "
+ fi
+ done
+fi
+
+SRC_URI+="cromite? ( https://github.com/uazo/cromite/archive/${CROMITE_COMMIT_ID}.tar.gz -> cromite-${CROMITE_COMMIT_ID}.tar.gz )
+"
+
+for i in ${IUSE_SYSTEM_LIBS}; do
+ [[ $i =~ ^(\+)?(.*)$ ]]
+ IUSE+=" ${BASH_REMATCH[1]}system-${BASH_REMATCH[2]}"
+done
+
+COMMON_X_DEPEND="
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libxshmfence:=
+"
+
+# sys-libs/zlib: https://bugs.gentoo.org/930365; -ng is not compatible.
+# We _could_ use the bundled minizip, but that's against policy.
+COMMON_SNAPSHOT_DEPEND="
+ system-icu? ( >=dev-libs/icu-78:= )
+ system-abseil-cpp? ( >=dev-cpp/abseil-cpp-20260107.0 )
+ system-brotli? ( >=app-arch/brotli-9999 )
+ system-crc32c? ( dev-libs/crc32c )
+ system-double-conversion? ( dev-libs/double-conversion )
+ system-woff2? ( media-libs/woff2 )
+ system-snappy? ( app-arch/snappy )
+ system-jsoncpp? ( dev-libs/jsoncpp )
+ system-openjpeg? ( media-libs/openjpeg:2= )
+ system-re2? ( >=dev-libs/re2-0.2019.08.01:= )
+ system-libvpx? ( >=media-libs/libvpx-1.13.0:=[postproc] )
+ system-libusb? ( virtual/libusb:1 )
+ cromite? ( dev-util/patchutils )
+ >=dev-libs/libxml2-2.12.4:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ dev-libs/libxslt:=
+ media-libs/fontconfig:=
+ >=media-libs/freetype-2.11.0-r1:=
+ system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-zstd? ( >=app-arch/zstd-1.5.5:= )
+ >=media-libs/libwebp-0.4.0:=
+ media-libs/mesa:=[gbm(+)]
+ >=media-libs/openh264-2.6.0:=
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-3.7.0:=
+ )
+ sys-libs/zlib:=
+ !headless? (
+ dev-libs/glib:2
+ >=media-libs/alsa-lib-1.0.19:=
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.9
+ )
+ )
+ sys-apps/pciutils:=
+ kerberos? ( virtual/krb5 )
+ vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+ X? (
+ x11-base/xorg-proto:=
+ x11-libs/libX11:=
+ x11-libs/libxcb:=
+ x11-libs/libXext:=
+ )
+ x11-libs/libxkbcommon:=
+ wayland? (
+ dev-libs/libffi:=
+ dev-libs/wayland:=
+ screencast? (
+ media-video/pipewire:=
+ || (
+ sys-apps/xdg-desktop-portal-gnome
+ sys-apps/xdg-desktop-portal-gtk
+ kde-plasma/xdg-desktop-portal-kde
+ gui-libs/xdg-desktop-portal-lxqt
+ gui-libs/xdg-desktop-portal-wlr
+ )
+ )
+ )
+ )
+"
+
+COMMON_DEPEND="
+ ${COMMON_SNAPSHOT_DEPEND}
+ app-arch/bzip2:=
+ dev-libs/expat:=
+ system-ffmpeg? (
+ >=media-video/ffmpeg-6.1:=
+ >=media-libs/opus-1.3.1:=
+ )
+ net-misc/curl[ssl]
+ sys-apps/dbus:=
+ media-libs/flac:=
+ sys-libs/zlib:=[minizip]
+ !headless? (
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ media-libs/mesa:=[X?,wayland?]
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ qt6? ( dev-qt/qtbase:6[gui,widgets] )
+ X? ( ${COMMON_X_DEPEND} )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ !www-client/ungoogled-chromium:0
+ >=www-client/chromium-common-2
+ !headless? (
+ || (
+ x11-libs/gtk+:3[X?,wayland?]
+ gui-libs/gtk:4[X?,wayland?]
+ )
+ qt6? ( dev-qt/qtbase:6[X?,wayland?] )
+ )
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ bindist? (
+ ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} )
+ )
+ !override-data-dir? (
+ !www-client/chromium:${SLOT}
+ !www-client/cromite:${SLOT}[-override-data-dir]
+ )
+"
+
+DEPEND="${COMMON_DEPEND}
+ !headless? (
+ gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+ !gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+ )
+"
+
+ # pgo? ( >=llvm-core/clang-22.0.0_pre20260106 >=llvm-core/lld-22.0.0_pre20260106 )
+BDEPEND="
+ ${COMMON_SNAPSHOT_DEPEND}
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ >=app-arch/gzip-1.7
+ !headless? (
+ qt6? ( dev-qt/qtbase:6 )
+ )
+ !bundled-toolchain? ( $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ llvm-core/lld:${LLVM_SLOT}
+ cfi? ( llvm-runtimes/clang-runtime:${LLVM_SLOT}[sanitize] )
+ official? (
+ !ppc64? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[cfi] )
+ ) ')
+ ${RUST_DEPEND}
+ )
+ >=dev-util/bindgen-0.72.1
+ >=dev-build/gn-${GN_MIN_VER}
+ app-alternatives/ninja
+ dev-lang/perl
+ >=dev-util/gperf-3.2
+ dev-util/esbuild:${ESBUILD_VER}
+ dev-vcs/git
+ >=net-libs/nodejs-${NODE_VER}[inspector]
+ sys-apps/hwdata
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ x11-misc/xdg-utils
+"
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+S="${WORKDIR}/chromium-${PV/_*}"
+
+python_check_deps() {
+ python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+ # Check build requirements: bugs #471810, #541816, #914220
+ # We're going to start doing maths here on the size of an unpacked source tarball,
+ # this should make updates easier as chromium continues to balloon in size.
+ # xz -l /var/cache/distfiles/chromium-${PV}*.tar.xz
+ local base_disk=9 # Round up
+ use test && base_disk=$((base_disk + 5))
+ local extra_disk=1 # Always include a little extra space
+ local memory=4
+ tc-is-cross-compiler && extra_disk=$((extra_disk * 2))
+ if tc-is-lto || use pgo; then
+ memory=$((memory * 2 + 1))
+ tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) # Double the requirements
+ use pgo && extra_disk=$((extra_disk + 4))
+ fi
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ if use custom-cflags; then
+ extra_disk=$((extra_disk + 5))
+ fi
+ memory=$((memory * 2))
+ fi
+ local CHECKREQS_MEMORY="${memory}G"
+ local CHECKREQS_DISK_BUILD="$((base_disk + extra_disk))G"
+ check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ # The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+ pre_build_checks
+ fi
+
+ if use headless; then
+ local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt6" "vaapi" "wayland")
+ for myiuse in ${headless_unused_flags[@]}; do
+ use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set."
+ done
+ fi
+
+ if ! use bindist && use ffmpeg-chromium; then
+ ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set."
+ fi
+ if use libcxx; then
+ ewarn
+ ewarn "Building with libcxx, please be aware that system-*"
+ ewarn "and some other c++ dependencies need to be compiled"
+ ewarn "with the same c++ library as ungoogled-chromium itself"
+ ewarn "dev-libs/jsoncpp is most problematic, see #58 #49 #119 for details"
+ ewarn "Simplest solution would be to disable corresponding system-* flags"
+ ewarn
+ fi
+ if use cfi; then
+ ewarn
+ ewarn "Building with cfi is only possible if building with -stdlib=libc++"
+ ewarn "Make sure all dependencies are also built this way, see #40"
+ ewarn
+ fi
+ if use cromite; then
+ ewarn
+ ewarn "Cromite patches are very experimental and unstable"
+ ewarn "Please consider testing them and giving feedback upstream:"
+ ewarn "https://github.com/uazo/cromite/issues"
+ ewarn "Not all patches are applied, let me know if others should be considered too"
+ ewarn
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ # The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+ pre_build_checks
+
+ # We haven't massaged any CFLAGS yet, so we want to do this before we force CC/CXX to prevent warnings.
+ local want_lto="false"
+ tc-is-lto && want_lto="true"
+
+ # The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
+ # We'll set these to clang here then use llvm-utils functions to very explicitly set these
+ # to a sane value.
+ # This is effectively the 'force-clang' path if GCC support is re-added.
+ if use !bundled-toolchain; then
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+
+ # Forcing clang; respect llvm_slot_x to enable selection of impl via LLVM_COMPAT
+ AR=llvm-ar
+ CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
+ NM=llvm-nm
+ CC="${CHOST}-clang-${LLVM_SLOT}"
+ CXX="${CHOST}-clang++-${LLVM_SLOT}"
+ fi
+
+ use_lto="false"
+ local lto_usable="true"
+ if [[ "$want_lto" == "true" ]]; then
+ if use arm64 && [[ "${LLVM_SLOT}" -lt 22 ]]; then
+ einfo "LTO is broken with LLVM 21 on arm64, ignoring CFLAGS."
+ lto_usable="false"
+ else
+ use_lto="true"
+ fi
+ # We can rely on GN to do this for us; without this builds
+ # take significantly longer with LTO enabled.
+ filter-lto
+ fi
+
+ if [[ "$use_lto" == "false" ]] && use official && [[ "$lto_usable" == "true" ]]; then
+ einfo "USE=official selected and LTO not detected."
+ einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
+ einfo "and to be consistent with the upstream \"official\" build optimisations."
+ fi
+
+ if [[ "$use_lto" == "false" ]] && use test; then
+ die "Tests require CFI which requires LTO"
+ fi
+
+ export use_lto
+
+ # 936858
+ if tc-ld-is-mold; then
+ eerror "Your toolchain is using the mold linker."
+ eerror "This is not supported by Chromium."
+ die "Please switch to a different linker."
+ fi
+
+ if tc-is-cross-compiler; then
+ use pgo && die "The pgo USE flag cannot be used when cross-compiling"
+ CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
+ fi
+
+ # Sanity checks for development convenience
+ if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
+ die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
+ fi
+
+ # Sometimes, when adding a new LLVM slot, devs (me) forget to install an appropriate lld.
+ local lld_ver=$(ld.lld --version | awk '{split($2,a,"."); print a[1]}' || die "Failed to check lld version")
+ if [[ ${lld_ver} -lt ${LLVM_SLOT} ]]; then
+ die "Your lld version (${lld_ver}) is too old for the selected LLVM slot (${LLVM_SLOT}). Please install a newer lld or select an older LLVM slot."
+ fi
+ fi
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_unpack() {
+ # # Here be dragons!
+ # local XCLD="--exclude=chromium-${PV/_*}/third_party/instrumented_libs \
+ # --exclude=chromium-${PV/_*}/third_party/llvm \
+ # --exclude=chromium-${PV/_*}/third_party/llvm-build \
+ # --exclude=chromium-${PV/_*}/third_party/node/linux \
+ # --exclude=chromium-${PV/_*}/third_party/rust-src \
+ # --exclude=chromium-${PV/_*}/third_party/rust-toolchain \
+ # --exclude=chromium-${PV/_*}/build/linux/debian_bullseye_i386-sysroot \
+ # --exclude=chromium-${PV/_*}/build/linux/debian_bullseye_amd64-sysroot \
+ # --exclude=chromium-${PV/_*}/third_party/angle/third_party/VK-GL-CTS \
+ # "
+
+ # if ! use libcxx ; then
+ # XCLD+=" --exclude=chromium-${PV/_*}/third_party/libc++"
+ # fi
+
+ # if ! use pgo ; then
+ # XCLD+=" --exclude=chromium-${PV/_*}/chrome/build/pgo_profiles"
+ # fi
+
+ # einfo "Unpacking chromium-${PV/_*}.tar.xz to ${WORKDIR}"
+ # # Gentoo tarball:
+ # # tar ${XCLD} -xf "${DISTDIR}/chromium-${PV/_*}-gentoo.tar.xz" -C "${WORKDIR}" || die
+ # tar ${XCLD} -xf "${DISTDIR}/chromium-${PV/_*}${LITE_TARBALL:+-lite}.tar.xz" -C "${WORKDIR}" || die
+
+ # unpack ${UGC_URL#*->}
+ # # unpack chromium-patches-${PATCH_V}.tar.bz2
+ # # Warned you!
+
+ unpack chromium-${PV/_*}-linux.tar.xz
+ unpack chromium-patches-${PATCH_V}.tar.bz2
+ # These should only be required when we're not using the official toolchain
+ if use !bundled-toolchain; then
+ unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
+ fi
+
+ if use test; then
+ # This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
+ local testfonts_dir="${WORKDIR}/chromium-${PV/_*}/third_party/test_fonts/test_fonts"
+ local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz"
+ einfo "Unpacking test fonts ..."
+ tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
+ fi
+
+ # We need to manually unpack this since M126 else we'd unpack one toolchain over the other.
+ # Since we're doing that anyway let's unpack to sensible locations to make symlink creation easier.
+ if use bundled-toolchain; then
+ einfo "Unpacking bundled Clang ..."
+ mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
+ tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
+ einfo "Unpacking bundled Rust ..."
+ local rust_dir="${WORKDIR}/rust-toolchain"
+ mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory"
+ tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" ||
+ die "Failed to unpack Rust"
+ fi
+
+ if use ppc64; then
+ unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
+ fi
+
+ # This is a dirty hack, but we need rollup to build successfully and it's proving to be challenging
+ # to build locally due to deps
+ unpack rollup-wasm-node-${ROLLUP_VER}.tgz
+
+ if use cromite; then
+ unpack cromite-${CROMITE_COMMIT_ID}.tar.gz
+ fi
+
+ unpack ${UGC_URL#*->}
+}
+
+remove_compiler_builtins() {
+ # We can't use the bundled compiler builtins with the system toolchain
+ # We used to `grep` then `sed`, but it was indirect. Combining the two into a single
+ # `awk` command is more efficient and lets us document the logic more clearly.
+
+ local pattern=' configs += [ "//build/config/clang:compiler_builtins" ]'
+ local target='build/config/compiler/BUILD.gn'
+
+ local tmpfile
+ tmpfile=$(mktemp) || die "Failed to create temporary file."
+
+ if awk -v pat="${pattern}" '
+ BEGIN {
+ match_found = 0
+ }
+
+ # If the delete countdown is active, decrement it and skip to the next line.
+ d > 0 { d--; next }
+
+ # If the current line matches the pattern...
+ $0 == pat {
+ match_found = 1 # ...set our flag to true.
+ d = 2 # Set delete counter for this line and the next two.
+ prev = "" # Clear the buffered previous line so it is not printed.
+ next
+ }
+
+ # For any other line, print the buffered previous line.
+ NR > 1 { print prev }
+
+ # Buffer the current line to be printed on the next cycle.
+ { prev = $0 }
+
+ END {
+ # Print the last line if it was not part of a deleted block.
+ if (d == 0) { print prev }
+
+ # If the pattern was never found, exit with a failure code.
+ if (match_found == 0) {
+ exit 1
+ }
+ }
+ ' "${target}" > "${tmpfile}"; then
+ # AWK SUCCEEDED (exit code 0): The pattern was found and edited.
+ # This is to avoid gawk's `-i inplace` option which users complain about.
+ mv "${tmpfile}" "${target}"
+ else
+ # AWK FAILED (exit code 1): The pattern was not found.
+ rm -f "${tmpfile}"
+ die "Awk patch failed: Pattern not found in ${target}."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # We'll fill this in as we go. Patches go in chromium-patches.
+ local PATCHES=()
+
+ rm "${WORKDIR}/chromium-patches-${PATCH_V}/common/cr131-unbundle-icu-target.patch"
+ if use pgo; then
+ rm "${WORKDIR}/chromium-patches-${PATCH_V}/rust/cr146-fix-botched-bytemuck-roll.patch"
+ sed -i '/SupportedLaneCount/d' third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/zeroable.rs || die
+ sed -i '/SupportedLaneCount/d' third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/pod.rs || die
+ fi
+
+ #cp -f ${WORKDIR}/chromium-patches-${PATCH_V}/*-compiler.patch "${T}/compiler.patch"
+ ##cp -f ${FILESDIR}/chromium-147-compiler.patch "${T}/compiler.patch"
+ #if ! use custom-cflags; then #See #25 #92
+ # sed -i '/default_stack_frames/Q' "${T}/compiler.patch" || die
+ #fi
+
+ PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}/common/" )
+ PATCHES+=( "${FILESDIR}/restore-x86-r3.patch" )
+
+ # https://issues.chromium.org/issues/442698344
+ # Unreleased fontconfig changed magic numbers and google have rolled to this version
+ if has_version "<=media-libs/fontconfig-2.17.1"; then
+ PATCHES+=( "${FILESDIR}/chromium-142-work-with-old-fontconfig.patch" )
+ fi
+
+ if use bundled-toolchain; then
+ # We need to symlink the toolchain into the expected location
+ einfo "Symlinking Clang toolchain to expected location ..."
+ mkdir -p third_party/llvm-build/ || die "Failed to create llvm-build directory"
+ # the 'Chromium Linux Tarballs' seem to already have 'Release+Asserts/{lib,bin}'; not sure if this is an
+ # upstream change - we're using the same scripts to build, theoretically. We'll still attempt to create
+ # llvm-build, but we'll rm Release+Asserts and symlink directly.
+ if [[ -d third_party/llvm-build/Release+Asserts ]]; then
+ rm -r third_party/llvm-build/Release+Asserts || die "Failed to remove third_party/llvm-build/Release+Asserts"
+ fi
+ ln -s "${WORKDIR}"/clang third_party/llvm-build/Release+Asserts || die "Failed to bundle Clang"
+ einfo "Symlinking Rust toolchain to expected location ..."
+ # As above, so below
+ if [[ -d third_party/rust-toolchain ]]; then
+ rm -r third_party/rust-toolchain || die "Failed to remove third_party/rust-toolchain"
+ fi
+ ln -s "${WORKDIR}"/rust-toolchain third_party/rust-toolchain || die "Failed to bundle rust"
+ cp "${WORKDIR}"/rust-toolchain/VERSION \
+ "${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version"
+ else
+ # We don't need our toolchain patches if we're using the official toolchain
+
+ # Copium patches go here.
+ PATCHES+=(
+ "${WORKDIR}/copium/cr143-libsync-__BEGIN_DECLS.patch"
+ "${WORKDIR}/copium/cr149-unbundle-minizip-undo-unicode.patch"
+ )
+
+ # Automate conditional application of chromium-patches
+ # The directory structure is expected to be something like:
+ # chromium-patches-145/
+ # ├── toolchain/
+ # │ ├── cr123-foo.patch
+ # │ └── cr135-bar.patch
+ # ├── llvm/
+ # │ ├── cr144-baz.patch
+ # │ └── lt-23/
+ # │ └── cr145-bleeding-edge-llvm-feature.patch
+ # Where `lt-23` means "apply this patch if the LLVM version is less than 23".
+ # Only categories in `slot_map` will be checked for version constraints.
+ shopt -s nullglob
+ local -A slot_map=( [llvm]="${LLVM_SLOT}" [rust]="${RUST_SLOT}" )
+
+ for category in "${WORKDIR}/chromium-patches-${PATCH_V}"/*/; do
+ local category_name="${category%/}"
+ category_name="${category_name##*/}"
+
+ # Skip arch-specific categories
+ if [[ "${category_name}" == "ppc64le" ]]; then
+ use ppc64 || continue
+ fi
+
+ # We applied common patches above, no need to apply them again here
+ [[ "${category_name}" == "common" ]] && continue
+
+ # Unconditional patches for this category
+ local category_patches=( "${category}"*.patch )
+ [[ ${#category_patches[@]} -gt 0 ]] && PATCHES+=( "${category}" )
+
+ # Version-constrained subdirectories (e.g., llvm/lt-23/)
+ for constraint_dir in "${category}"*/; do
+ local dir_name="${constraint_dir%/}"
+ dir_name="${dir_name##*/}"
+ if [[ "${dir_name}" =~ ^lt-(.*)$ && -v slot_map[${category_name}] ]]; then
+ ver_test "${slot_map[${category_name}]}" -lt "${BASH_REMATCH[1]}" &&
+ PATCHES+=( "${constraint_dir}" )
+ fi
+ done
+ done
+
+ shopt -u nullglob
+
+ # Strictly speaking this doesn't need to be gated (no bundled toolchain for ppc64); it keeps the logic together
+ if use ppc64; then
+ local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches"
+ # patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304)
+ local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch"
+ local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch"
+ # Apply the OpenPOWER patches (check for page size and isa 3.0)
+ openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" |
+ grep -v "${isa_3_patch}" || die) )
+ for patch in "${openpower_patches[@]}"; do
+ PATCHES+=( "${patchset_dir}/${patch}" )
+ done
+ if [[ $(getconf PAGESIZE) == 65536 ]]; then
+ PATCHES+=( "${patchset_dir}/${page_size_patch}" )
+ fi
+ # We use vsx3 as a proxy for 'want isa3.0' (POWER9)
+ if use cpu_flags_ppc_vsx3 ; then
+ PATCHES+=( "${patchset_dir}/${isa_3_patch}" )
+ fi
+ fi
+
+ remove_compiler_builtins
+
+ # We can't rely on the eselect'd Rust to actually include rustfmt, so we'll point to the selected slot specifically.
+ local suffix=""
+ if [[ "${RUST_TYPE}" == "binary" ]]; then
+ suffix="-bin-${RUST_SLOT}"
+ else
+ suffix="-${RUST_SLOT}"
+ fi
+ sed -i "s|/bin/rustfmt|/bin/rustfmt${suffix}|g" build/rust/rust_bindgen_generator.gni ||
+ die "Failed to update rustfmt path"
+
+ fi
+
+ # Do this before we apply patches since (e.g.) ppc64 needs to patch rollup and it's easier in ${S}
+ einfo "Moving rollup wasm-node package into place ..."
+ mkdir -p third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
+ die "Failed to create node_modules/@rollup/wasm-node"
+ mv "${WORKDIR}"/package/* third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
+ die "Failed to move rollup package"
+
+ if [ ! -z "${CHROMIUM_COMMITS[*]}" ]; then
+ # for i in "${CHROMIUM_COMMITS[@]}"; do
+ for i in "${!CHROMIUM_COMMITS[@]}"; do
+ if [[ ${CHROMIUM_COMMITS[$i]} =~ webrtc ]]; then
+ patch_prefix="webrtc"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ angle ]]; then
+ patch_prefix="angle"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ quiche ]]; then
+ patch_prefix="quiche"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ dawn ]]; then
+ patch_prefix="dawn"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ perfetto ]]; then
+ patch_prefix="perfetto"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ ink ]]; then
+ patch_prefix="ink"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ vulkan-utility-libraries ]]; then
+ patch_prefix="vulkan-utility-libraries"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ ruy ]]; then
+ patch_prefix="ruy"
+ else
+ patch_prefix="chromium"
+ fi
+ pushd "${CHROMIUM_COMMITS[$i]}" > /dev/null || die
+ if [[ $i = -* ]]; then
+ einfo "Reverting ${patch_prefix}-${i/-}.patch"
+ git_wrapper apply -R --exclude="*unittest.cc" --exclude="DEPS" \
+ -p1 < "${DISTDIR}/${patch_prefix}-${i/-}.patch"
+ else
+ einfo "Applying ${patch_prefix}-${i/-}.patch"
+ git_wrapper apply --exclude="*unittest.cc" --exclude="DEPS" \
+ -p1 < "${DISTDIR}/${patch_prefix}-${i/-}.patch"
+ fi
+ popd > /dev/null || die
+ done
+ fi
+
+ if ! use bluetooth ; then
+ PATCHES+=(
+ "${FILESDIR}/disable-bluez-r7.patch"
+ )
+ fi
+
+ if use convert-dict ; then
+ PATCHES+=(
+ "${FILESDIR}/chromium-ucf-dict-utility-r3.patch"
+ )
+ fi
+
+ if ! use libcxx ; then
+ PATCHES+=(
+ "${FILESDIR}/fix-wayland-oncecallback-copy.patch"
+ )
+ fi
+
+ if use system-ffmpeg; then
+ PATCHES+=(
+ "${FILESDIR}/chromium-141-opus-mp3.patch"
+ "${FILESDIR}/chromium-135-hevc.patch"
+ )
+ sed -i "\!AVFMT_FLAG_NOH264PARSE!d" media/filters/ffmpeg_glue.cc || die
+ ewarn "You need to expose \"av_stream_get_first_dts\" in ffmpeg via user patch"
+ fi
+
+ if use system-av1; then
+ PATCHES+=(
+ "${FILESDIR}/chromium-system-av1.patch"
+ )
+ fi
+
+ if use system-libvpx; then
+ PATCHES+=(
+ "${FILESDIR}/chromium-system-libvpx.patch"
+ )
+ fi
+
+ if use system-openjpeg ; then
+ PATCHES+=(
+ "${FILESDIR}/chromium-system-openjpeg-r4.patch"
+ )
+ fi
+
+ if use x86 ; then
+ #* Fixes a segfault in transport_security_state_generator
+ PATCHES+=(
+ "${FILESDIR}/fix-segfault-x86.patch"
+ )
+ fi
+
+ # Testing all patches when NODIE is defined
+ if [ ! -z "${NODIE}" ]; then
+ for i in "${PATCHES[@]}"; do
+ eapply_wrapper "$i"
+ done
+ nonfatal eapply_user
+ else
+ default
+ fi
+
+ if use cromite ; then
+ BR_PA_PATH="${WORKDIR}/cromite-${CROMITE_COMMIT_ID}/build/patches"
+
+ sed -i '/b\/components\/components_strings\.grd/,+10d' "${BR_PA_PATH}/Add-cromite-flags-support.patch" || die
+ sed -i '/b\/chrome\/android\/java\/res\/xml\/privacy_preferences\.xml/,+13d' "${BR_PA_PATH}/Add-cromite-flags-support.patch" || die
+ sed -i '/b\/android_webview\/support_library\/java\/src\/org\/chromium\/support_lib_glue/,+11d' "${BR_PA_PATH}/Client-hints-overrides.patch" || die
+ sed -i '/webapps_strings.grdp" \/>/{s++webapps_strings.grdp" /><part file="cromite_components_strings_grd/placeholder.txt"/>+;h};${x;/./{x;q0};x;q1}' \
+ components/components_strings.grd || die
+
+ sed -i 's/absl::/std::/' "${BR_PA_PATH}/Add-a-proxy-configuration-page.patch" || die
+
+ filterdiff -p1 "${BR_PA_PATH}/JIT-site-settings.patch" --exclude="content/browser/renderer_host/render_process_host_impl.cc" \
+ > "${BR_PA_PATH}/JIT-site-settings.patch1"
+ mv -f "${BR_PA_PATH}/JIT-site-settings.patch1" "${BR_PA_PATH}/JIT-site-settings.patch"
+
+ BROMITE_PATCHES=(
+ "${BR_PA_PATH}/bromite-build-utils.patch"
+ "${BR_PA_PATH}/Battery-API-return-nothing.patch"
+ "${BR_PA_PATH}/Multiple-fingerprinting-mitigations.patch"
+ "${BR_PA_PATH}/Add-flag-to-configure-maximum-connections-per-host.patch"
+ "${BR_PA_PATH}/Add-a-proxy-configuration-page.patch"
+ "${BR_PA_PATH}/Enable-StrictOriginIsolation-and-SitePerProcess.patch"
+ "${BR_PA_PATH}/Disable-requests-for-single-word-Omnibar-searches.patch"
+ "${BR_PA_PATH}/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch"
+ "${BR_PA_PATH}/Client-hints-overrides.patch"
+ "${BR_PA_PATH}/Disable-idle-detection.patch"
+ "${BR_PA_PATH}/Disable-TLS-resumption.patch"
+ "${BR_PA_PATH}/Remove-navigator.connection-info.patch"
+
+ "${BR_PA_PATH}/AudioBuffer-AnalyserNode-fp-mitigations.patch"
+ "${BR_PA_PATH}/Fonts-fingerprinting-mitigation.patch"
+ "${BR_PA_PATH}/Content-settings-infrastructure.patch"
+ "${BR_PA_PATH}/Add-autoplay-site-setting.patch"
+ "${BR_PA_PATH}/Site-setting-for-images.patch"
+ "${BR_PA_PATH}/JIT-site-settings.patch"
+ "${BR_PA_PATH}/Add-webGL-site-setting.patch"
+ "${BR_PA_PATH}/Add-webRTC-site-settings.patch"
+ "${BR_PA_PATH}/Show-site-settings-for-cookies-javascript-and-ads.patch"
+ "${BR_PA_PATH}/Viewport-Protection-flag.patch"
+ "${BR_PA_PATH}/Revert-remove-allowscript-content-setting-secondary-url.patch"
+ "${BR_PA_PATH}/Timezone-customization.patch"
+ "${BR_PA_PATH}/Disable-speechSynthesis-getVoices-API.patch"
+ "${BR_PA_PATH}/Remove-support-for-device-memory-and-cpu-recovery.patch"
+ "${BR_PA_PATH}/Disable-Feeback-Collector.patch"
+ "${BR_PA_PATH}/Disable-remote-altsvc-for-h3-connections.patch"
+ "${BR_PA_PATH}/Add-cromite-flags-support.patch"
+ "${BR_PA_PATH}/Enables-deactivation-of-the-js-debugger-statement.patch"
+ )
+ for i in "${BROMITE_PATCHES[@]}"; do
+ if [[ "$i" =~ "Add-autoplay-site-setting.patch" ]] ||
+ [[ "$i" =~ "JIT-site-settings.patch" ]] ||
+ [[ "$i" =~ "Site-setting-for-images.patch" ]]; then
+ einfo "Git binary patch: ${i##*/}"
+ git_wrapper apply -p1 < "$i"
+ else
+ filter_wrapper "$i" --exclude="chrome/android/*"
+ fi
+ done
+
+ #! conflicting patches
+ sed -i '/browser_features.cc/,+17d' \
+ "${UGC_WD}/patches/extra/ungoogled-chromium/add-flag-to-clear-data-on-exit.patch" || die
+ sed -i 's$} // namespace features$BASE_FEATURE(kClearDataOnExit, "ClearDataOnExit", base::FEATURE_DISABLED_BY_DEFAULT);}$' \
+ chrome/browser/browser_features.cc || die
+ sed -i 's$} // namespace features$BASE_DECLARE_FEATURE(kClearDataOnExit);}$' \
+ chrome/browser/browser_features.h || die
+ sed -i 's$kChromeUIAboutHost,$kChromeUIAboutHost,"ungoogled-first-run",$' \
+ chrome/common/webui_url_constants.cc || die
+ sed -i '/chrome\/common\/webui_url_constants.cc/Q' \
+ "${UGC_WD}/patches/extra/ungoogled-chromium/first-run-page.patch" || die
+
+ #! normalise paths in py
+ sed -i 's$os.path.dirname(include_file)$os.path.abspath(os.path.dirname(include_file))$' \
+ build/bromite/gyp/cpp_bromite_include.py || die
+ fi
+
+ # if [[ ${LLVM_SLOT} == "19" ]]; then
+ # # Upstream now hard depend on a feature that was added in LLVM 20.1, but we don't want to stabilise that yet.
+ # # Do the temp file shuffle in case someone is using something other than `gawk`
+ # {
+ # awk '/config\("clang_warning_suppression"\) \{/ { print $0 " }"; sub(/clang/, "xclang"); print; next }
+ # { print }' build/config/compiler/BUILD.gn > "${T}/build.gn" && \
+ # mv "${T}/build.gn" build/config/compiler/BUILD.gn
+ # } || die "Unable to disable warning suppression"
+ # fi
+
+ ## Not included in -lite tarballs, but we should check for it anyway.
+ #if [[ -f third_party/node/linux/node-linux-x64/bin/node ]]; then
+ # rm third_party/node/linux/node-linux-x64/bin/node || die
+ #else
+ # mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ #fi
+ #ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ cp "${FILESDIR}/libusb.gn" build/linux/unbundle || die
+ sed -i '/^REPLACEMENTS.*$/{s++REPLACEMENTS = {"libusb":"third_party/libusb/BUILD.gn",+;h};${x;/./{x;q0};x;q1}' \
+ build/linux/unbundle/replace_gn_files.py || die
+ sed -i '/^.*deps.*third_party\/jsoncpp.*$/{s++public_deps \+= [ "//third_party/jsoncpp" ]+;h};${x;/./{x;q0};x;q1}' \
+ third_party/webrtc/rtc_base/BUILD.gn || die
+
+ if use override-data-dir; then
+ sed -i '/"chromium";/{s++"ungoogled-chromium";+;h};${x;/./{x;q0};x;q1}' \
+ chrome/common/chrome_paths_linux.cc || die
+ fi
+
+ if use system-abseil-cpp; then
+ eapply_wrapper "${FILESDIR}/chromium-147-system-abseil.patch"
+
+ #! SFINAE mangling incompatibility between clang and gcc:
+ #! https://github.com/llvm/llvm-project/issues/85656
+ #! gcc: _ZN4absl12lts_202601074CordC1INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELi0EEEOT_
+ #! clang: _ZN4absl12lts_202601074CordC1INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr3std7is_sameIT_S8_EE5valueEiE4typeELi0EEEOSA_
+ #! So, either this:
+ eapply_wrapper "${FILESDIR}/chromium-141-system-abseil-cord.patch"
+ #! or build with -fclang-abi-compat=17
+
+ # cp -f /usr/include/absl/base/options.h third_party/abseil-cpp/absl/base/options.h
+ # sed -i '/^#define ABSL_OPTION_USE_STD_ORDERING.*$/{s++#define ABSL_OPTION_USE_STD_ORDERING 1+;h};${x;/./{x;q0};x;q1}' \
+ # third_party/abseil-cpp/absl/base/options.h || die
+ fi
+
+ #* Applying UGC PRs here
+ if [ ! -z "${UGC_PR_COMMITS[*]}" ]; then
+ pushd "${UGC_WD}" >/dev/null
+ for i in "${UGC_PR_COMMITS[@]}"; do
+ eapply_wrapper "${DISTDIR}/${PN}-$i.patch"
+ done
+ popd >/dev/null
+ fi
+
+ # From here we adapt ungoogled-chromium's patches to our needs
+ local ugc_pruning_list="${UGC_WD}/pruning.list"
+ local ugc_patch_series="${UGC_WD}/patches/series"
+ local ugc_substitution_list="${UGC_WD}/domain_substitution.list"
+
+ local ugc_unneeded=(
+ # GN bootstrap
+ extra/debian/gn/parallel
+ # following Gentoo's Chromium
+ core/ungoogled-chromium/build-with-wasm-rollup
+ )
+
+ if use cromite ; then
+ einfo "Using fingerprinting patches from Cromite instead"
+ ugc_unneeded+=(
+ extra/bromite/fingerprinting-flags-client-rects-and-measuretext
+ extra/bromite/flag-max-connections-per-host
+ extra/bromite/flag-fingerprinting-canvas-image-data-noise
+ extra/ungoogled-chromium/add-components-ungoogled
+ extra/ungoogled-chromium/remove-pac-size-limit
+ )
+ fi
+
+ # #* Temporary fix
+ # sed -i "\!ios/!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/icu/!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/libjpeg_turbo/!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/snappy/!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/closure_compiler/!d" "${ugc_pruning_list}" || die
+
+ # #* Didn't unpack them at the first place
+ # sed -i "\!build/linux/debian_bullseye_i386-sysroot!d" "${ugc_pruning_list}" || die
+ # sed -i "\!build/linux/debian_bullseye_amd64-sysroot!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/llvm-build!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/node/linux!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/rust-src!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/rust-toolchain!d" "${ugc_pruning_list}" || die
+ # if ! use libcxx ; then
+ # sed -i "\!third_party/libc!d" "${ugc_pruning_list}" || die
+ # fi
+ sed -i "s|debug('files|error('files|" \
+ "${UGC_WD}/utils/prune_binaries.py" || die
+ sed -i "\!third_party/node/linux!d" \
+ "${UGC_WD}/utils/prune_binaries.py" || die
+
+ local ugc_p ugc_dir
+ for p in "${ugc_unneeded[@]}"; do
+ einfo "Removing ${p}.patch"
+ sed -i "\!${p}.patch!d" "${ugc_patch_series}" || die
+ done
+
+ if [ ! -z "${UGC_SKIP_PATCHES}" ]; then
+ for p in ${UGC_SKIP_PATCHES}; do
+ ewarn "Removing ${p}"
+ sed -i "\!${p}!d" "${ugc_patch_series}" || die
+ done
+ fi
+
+ if [ ! -z "${UGC_KEEP_BINARIES}" ]; then
+ for p in ${UGC_KEEP_BINARIES}; do
+ ewarn "Keeping binary ${p}"
+ sed -i "\!${p}!d" "${ugc_pruning_list}" || die
+ done
+ fi
+
+ if [ ! -z "${UGC_SKIP_SUBSTITUTION}" ]; then
+ for p in ${UGC_SKIP_SUBSTITUTION}; do
+ ewarn "No substitutions in ${p}"
+ sed -i "\!${p}!d" "${ugc_substitution_list}" || die
+ done
+ fi
+
+ ebegin "Pruning binaries"
+ "${UGC_WD}/utils/prune_binaries.py" -q . "${UGC_WD}/pruning.list"
+ eend $? || die
+
+ ebegin "Applying ungoogled-chromium patches"
+ "${UGC_WD}/utils/patches.py" -q apply . "${UGC_WD}/patches"
+ eend $? || die
+
+ ebegin "Applying domain substitution"
+ "${UGC_WD}/utils/domain_substitution.py" -q apply -r "${UGC_WD}/domain_regex.list" -f "${UGC_WD}/domain_substitution.list" .
+ eend $? || die
+
+ # Sanity check esbuild version before we start removing files.
+ # We _could_ patch the version check out - in theory esbuild upstream are being super conservative after
+ # arch(AUR) packaged an `esbuild` binary and set ESBUILD_BINARY_PATH=/usr/bin/esbuild, causing much breakage,
+ # but this is fine too and exactly matches what upstream are expecting.
+ # https://github.com/evanw/esbuild/issues/2894
+ local esbuild_js="${S}/third_party/devtools-frontend/src/node_modules/esbuild/lib/main.js"
+ local found
+ found=$(awk -F'"' '/if \(binaryVersion !==/ {print $2}' "${esbuild_js}")
+ if [[ "${found}" != "${ESBUILD_VER}" ]]; then
+ die "esbuild version mismatch: expected ${ESBUILD_VER}, found ${found}"
+ fi
+
+ elog "Removing bundled binaries from source tree ..."
+ # Purge bundled ELF files: These are non-portable and will cause issues if used instead of system versions.
+ # Use `--wasm` to also remove WebAssembly binaries, if desired - they're portable so shouldn't break builds.
+ ${EPYTHON} "${FILESDIR}/bin-finder.py" --elf "${S}" | awk '{print $1}' | xargs rm -f ||
+ die "Failed to remove bundled binaries"
+
+ # And now we restore any that we actually need, from the host system
+ local esbuild_path="${S}/third_party/devtools-frontend/src/third_party/esbuild"
+ local -A restore_list=(
+ ["/usr/bin/esbuild-${ESBUILD_VER}"]="${esbuild_path}/esbuild"
+ ["/usr/bin/gperf"]="${S}/third_party/gperf/cipd/bin/gperf"
+ ["/usr/bin/node"]="${S}/third_party/node/linux/node-linux-x64/bin/node"
+ )
+
+ for src in "${!restore_list[@]}"; do
+ dst="${restore_list[${src}]}"
+ if [[ -f "${src}" ]]; then
+ einfo "Symlinking ${src} ..."
+ # Make sure the parent dir exists; some tarballs don't include (e.g.) node's bindir
+ mkdir -p "$(dirname "${dst}")" || die "Failed to create directory for ${dst}"
+ ln -s "${src}" "${dst}" || die "Failed to symlink ${dst} from ${src}"
+ if [[ ! -L "${dst}" || "$(readlink -f "${dst}")" != "${src}" ]]; then
+ die "Symlink verification failed for ${dst} -> ${src}"
+ fi
+ else
+ die "Expected to find ${src} to restore ${dst}, but it does not exist."
+ fi
+ done
+
+ # adjust python interpreter version
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+ # Use the system copy of hwdata's usb.ids; upstream is woefully out of date (2015!)
+ sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
+ -i services/device/public/cpp/usb/BUILD.gn || die "Failed to set system usb.ids path"
+
+ # remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party'
+ # whitelist matches use the right-most matching path component, so we need to whitelist from that point down.
+ local keeplibs=(
+ base/third_party/cityhash
+ )
+ use system-double-conversion || keeplibs+=(
+ base/third_party/double_conversion
+ )
+ keeplibs+=(
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ )
+ use cromite && keeplibs+=(
+ cromite_flags/third_party
+ )
+ keeplibs+=(
+ net/third_party/mozilla_security_manager
+ net/third_party/quic
+ net/third_party/uri_template
+ )
+ use system-abseil-cpp || keeplibs+=(
+ third_party/abseil-cpp
+ )
+ keeplibs+=(
+ third_party/angle
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/ceval
+ )
+ use nvidia || keeplibs+=(
+ third_party/angle/src/third_party/libXNVCtrl
+ )
+ keeplibs+=(
+ third_party/angle/src/third_party/volk
+ third_party/anonymous_tokens
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/bidimapper
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ )
+ use system-brotli || keeplibs+=(
+ third_party/brotli
+ )
+ keeplibs+=(
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4-4.9.3
+ third_party/catapult/third_party/html5lib-1.1
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/third_party/typ
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ )
+ use libcxx && keeplibs+=(
+ third_party/compiler-rt
+ )
+ keeplibs+=(
+ third_party/content_analysis_sdk
+ third_party/cpuinfo
+ third_party/crabbyavif
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ )
+ use system-crc32c || keeplibs+=(
+ third_party/crc32c
+ )
+ keeplibs+=(
+ third_party/cros_system_api
+ third_party/d3
+ third_party/dawn
+ third_party/dawn/third_party/gn/webgpu-cts
+ third_party/dawn/third_party/OpenGL-Registry
+ third_party/dawn/third_party/renderdoc
+ third_party/dawn/third_party/webgpu-headers
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
+ third_party/devtools-frontend/src/front_end/third_party/diff
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/json5
+ third_party/devtools-frontend/src/front_end/third_party/legacy-javascript
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/urlpattern-polyfill
+ third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec
+ third_party/devtools-frontend/src/front_end/third_party/third-party-web
+ third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/web-vitals
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/dragonbox
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fast_float
+ third_party/fdlibm
+ third_party/federated_compute/chromium/fcp/confidentialcompute
+ third_party/federated_compute/src/fcp/base
+ third_party/federated_compute/src/fcp/confidentialcompute
+ third_party/federated_compute/src/fcp/protos/confidentialcompute
+ third_party/federated_compute/src/fcp/protos/federatedcompute
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/fp16
+ third_party/freetype
+ third_party/fusejs
+ third_party/fxdiv
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/gperf # We symlink system gperf, but this will purge the symlink since we tidy up afterwards.
+ third_party/highway
+ third_party/hunspell
+ third_party/hyphenation-patterns
+ third_party/ink/src/ink/brush
+ third_party/ink/src/ink/color
+ third_party/ink/src/ink/geometry
+ third_party/ink/src/ink/rendering
+ third_party/ink/src/ink/rendering/skia/common_internal
+ third_party/ink/src/ink/rendering/skia/native
+ third_party/ink/src/ink/rendering/skia/native/internal
+ third_party/ink/src/ink/strokes
+ third_party/ink/src/ink/types
+ third_party/inspector_protocol
+ third_party/ipcz
+ third_party/jinja2
+ )
+ use system-jsoncpp || keeplibs+=(
+ third_party/jsoncpp
+ )
+ keeplibs+=(
+ third_party/khronos
+ third_party/lens_server_proto
+ third_party/leveldatabase
+ third_party/libaddressinput
+ )
+ use libcxx && keeplibs+=(
+ third_party/libc++
+ )
+ keeplibs+=(
+ third_party/libdrm
+ third_party/libgav1
+ third_party/libjingle
+ third_party/libpfm4
+ third_party/libphonenumber
+ third_party/libpng
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libtess2/libtess2
+ third_party/libtess2/src/Include
+ third_party/libtess2/src/Source
+ third_party/liburlpattern
+ )
+ use system-libusb || keeplibs+=(
+ third_party/libusb
+ )
+ keeplibs+=(
+ third_party/libva_protected_content
+ )
+ use system-libvpx || keeplibs+=(
+ third_party/libvpx
+ third_party/libvpx/source/libvpx/third_party/x86inc
+ )
+ keeplibs+=(
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/libzip
+ third_party/lit
+ )
+ use libcxx && keeplibs+=(
+ third_party/llvm-libc
+ third_party/llvm-libc/src/shared/
+ )
+ keeplibs+=(
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/material_color_utilities
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/ml_dtypes
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/oak/chromium/proto
+ third_party/oak/chromium/proto/attestation
+ third_party/omnibox_proto
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ )
+ use system-openjpeg || keeplibs+=(
+ third_party/pdfium/third_party/libopenjpeg
+ )
+ keeplibs+=(
+ third_party/pdfium/third_party/libtiff
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/perfetto/protos/third_party/pprof
+ third_party/perfetto/protos/third_party/primes
+ third_party/perfetto/protos/third_party/simpleperf
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private_membership
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/utf8_range
+ third_party/pthreadpool
+ third_party/puffin
+ third_party/pyjson5
+ third_party/pyyaml
+ third_party/rapidhash
+ third_party/readability
+ third_party/rnnoise
+ third_party/rust
+ third_party/ruy
+ third_party/s2cellid
+ third_party/search_engines_data
+ third_party/securemessage
+ third_party/selenium-atoms
+ third_party/sentencepiece
+ third_party/sentencepiece/src/third_party/darts_clone
+ third_party/shell-encryption
+ third_party/simdutf
+ third_party/simplejson
+ third_party/six
+ third_party/skia
+ third_party/skia/include/third_party/vulkan
+ third_party/smhasher
+ )
+ use system-snappy || keeplibs+=(
+ third_party/snappy
+ )
+ keeplibs+=(
+ third_party/spirv-headers
+ third_party/spirv-tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+ third_party/swiftshader/third_party/SPIRV-Tools
+ third_party/swiftshader/third_party/subzero
+ third_party/tensorflow_models
+ third_party/tensorflow-text
+ third_party/tflite
+ third_party/tflite/src/third_party/fft2d
+ third_party/tflite/src/third_party/xla/third_party/tsl
+ third_party/tflite/src/third_party/xla/xla/tsl/framework
+ third_party/tflite/src/third_party/xla/xla/tsl/lib/random
+ third_party/tflite/src/third_party/xla/xla/tsl/platform
+ third_party/tflite/src/third_party/xla/xla/tsl/protobuf
+ third_party/tflite/src/third_party/xla/xla/tsl/util
+ third_party/ukey2
+ third_party/utf
+ third_party/vulkan
+ third_party/wayland
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/widevine
+ )
+ use system-woff2 || keeplibs+=(
+ third_party/woff2
+ )
+ keeplibs+=(
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/xnnpack
+ third_party/zlib/google
+ third_party/zxcvbn-cpp
+ url/third_party/mozilla
+ v8/third_party/glibc
+ v8/third_party/inspector_protocol
+ v8/third_party/rapidhash-v8
+ v8/third_party/siphash
+ v8/third_party/utf8-decoder
+ v8/third_party/v8
+ v8/third_party/valgrind
+
+ # gyp -> gn leftovers
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ )
+
+ if use test; then
+ keeplibs+=(
+ third_party/breakpad/breakpad/src/processor
+ third_party/fuzztest
+ third_party/google_benchmark/src/include/benchmark
+ third_party/google_benchmark/src/src
+ third_party/test_fonts
+ third_party/test_fonts/fontconfig
+ third_party/test_fonts/test_fonts
+ )
+ fi
+
+ # USE=system-*
+ if ! use system-harfbuzz; then
+ keeplibs+=( third_party/harfbuzz )
+ fi
+
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+
+ if ! use system-zstd; then
+ keeplibs+=( third_party/zstd )
+ fi
+
+ if ! use system-av1; then
+ keeplibs+=(
+ third_party/dav1d
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ )
+ fi
+
+ if use libcxx; then
+ keeplibs+=(
+ third_party/libc++
+ third_party/llvm-libc
+ )
+ fi
+
+ if ! use system-openh264; then
+ keeplibs+=( third_party/openh264 )
+ fi
+
+ if ! use system-re2; then
+ keeplibs+=( third_party/re2 )
+ fi
+
+ # Arch-specific
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ # requires git and clang, bug #832803
+ # Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
+ # and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
+ # since we're not in a git repo
+ sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
+ generate_gni.sh || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+
+ pushd third_party/ffmpeg >/dev/null || die
+ cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+ cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+ popd >/dev/null || die
+ fi
+
+ # Sanity check keeplibs, on major version bumps it is often necessary to update this list
+ # and this enables us to hit them all at once.
+ # There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
+ whitelist_libs=(
+ net/third_party/quic
+ third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+ third_party/libjingle
+ third_party/mesa
+ third_party/skia/third_party/vulkan
+ third_party/vulkan
+ )
+ local not_found_libs=()
+ for lib in "${keeplibs[@]}"; do
+ if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
+ not_found_libs+=( "${lib}" )
+ fi
+ done
+
+ if [[ ${#not_found_libs[@]} -gt 0 ]]; then
+ ewarn "The following \`keeplibs\` directories were not found in the source tree:"
+ for lib in "${not_found_libs[@]}"; do
+ ewarn " ${lib}"
+ done
+ fi
+
+ keeplibs+=( third_party/ungoogled )
+
+ # Remove most bundled libraries. Some are still needed.
+ einfo "Unbundling third-party libraries ..."
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+ # Interferes with our bundled clang path; we don't want stripped binaries anyway.
+ sed -i -e 's|${clang_base_path}/bin/llvm-strip|/bin/true|g' \
+ -e 's|${clang_base_path}/bin/llvm-objcopy|/bin/true|g' \
+ build/linux/strip_binary.gni || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ libjpeg
+ libwebp
+ libxml
+ libxslt
+ zlib
+ )
+ if use system-abseil-cpp; then
+ gn_system_libraries+=(
+ absl_algorithm
+ absl_base
+ absl_cleanup
+ absl_container
+ absl_crc
+ absl_debugging
+ absl_flags
+ absl_functional
+ absl_hash
+ absl_log
+ absl_log_internal
+ absl_memory
+ absl_meta
+ absl_numeric
+ absl_random
+ absl_status
+ absl_strings
+ absl_synchronization
+ absl_time
+ absl_types
+ absl_utility
+ )
+ fi
+ if use system-brotli; then
+ gn_system_libraries+=( brotli )
+ fi
+ if use system-crc32c; then
+ gn_system_libraries+=( crc32c )
+ fi
+ if use system-double-conversion; then
+ gn_system_libraries+=( double-conversion )
+ fi
+ if use system-woff2; then
+ gn_system_libraries+=( woff2 )
+ fi
+ if use nvidia; then
+ gn_system_libraries+=( libXNVCtrl )
+ fi
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-jsoncpp; then
+ gn_system_libraries+=( jsoncpp )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-zstd; then
+ gn_system_libraries+=( zstd )
+ fi
+ if use system-av1; then
+ gn_system_libraries+=( dav1d libaom )
+ fi
+ if use system-libusb; then
+ gn_system_libraries+=( libusb )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ use system-openh264 && gn_system_libraries+=(
+ openh264
+ )
+ use system-re2 && gn_system_libraries+=(
+ re2
+ )
+ use system-snappy && gn_system_libraries+=(
+ snappy
+ )
+
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" ||
+ die "Failed to replace GN files for system libraries"
+
+ # TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file
+ # drop the last line, then append the freetype line and a new curly brace to end the block
+ local freetype_gni="build/config/freetype/freetype.gni"
+ sed -i -e '$d' ${freetype_gni} || die
+ echo " enable_freetype = true" >> ${freetype_gni} || die
+ echo "}" >> ${freetype_gni} || die
+
+ if use !custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ filter-flags "-g*"
+ # 949123: Several multimedia components explicitly build with specific CFLAGS and
+ # use runtime detection to enable optimisations; unfortunately any of our CFLAGS are suffixed
+ # to the end of the command line, which causes build failures.
+ use arm64 && filter-flags "-march*" "-mtune*" "-mcpu*"
+ fi
+
+ # We don't use the same clang version as upstream, and with -Werror
+ # we need to make sure that we don't get superfluous warnings.
+ append-flags -Wno-unknown-warning-option
+ if tc-is-cross-compiler; then # can you cross-compile with the bundled toolchain?
+ export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+ export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+ fi
+
+ # Start building our GN options
+ local myconf_gn=() # Tip: strings must be quoted, bools or numbers are fine
+
+ if use !bundled-toolchain; then
+ # We already forced the "correct" clang via pkg_setup
+
+ if tc-is-cross-compiler; then
+ CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
+ CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
+ BUILD_AR=${AR}
+ BUILD_CC=${CC}
+ BUILD_CXX=${CXX}
+ BUILD_NM=${NM}
+ fi
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ strip-unsupported-flags
+ append-ldflags -Wl,--undefined-version # https://bugs.gentoo.org/918897#c32
+
+ myconf_gn+=(
+ "is_clang=true"
+ "clang_use_chrome_plugins=false"
+ "use_clang_modules=false" # M141 enables this for the linux platform by default.
+ "use_lld=true"
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ # From M127 we need to provide a location for libclang.
+ # We patch this in for gentoo - see chromium-*-bindgen-custom-toolchain.patch
+ # rust_bindgen_root = directory with `bin/bindgen` beneath it.
+ # We don't need to set 'clang_base_path' for anything in our build
+ # and it defaults to the google toolchain location. Instead provide a location
+ # to where system clang lives so that bindgen can find system headers (e.g. stddef.h)
+ "bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
+ "clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
+ "rust_bindgen_root=\"${EPREFIX}/usr/\""
+ "rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ "rustc_version=\"${RUST_SLOT}\""
+ )
+
+ if [[ ${LLVM_SLOT} -lt 23 ]]; then
+ # Workaround for -fsanitize-ignore-for-ubsan-feature (added in LLVM 23)
+ myconf_gn+=( 'clang_has_ubsan_feature_ignore=false' )
+ fi
+
+ if ! tc-is-cross-compiler; then
+ myconf_gn+=( 'host_toolchain="//build/toolchain/linux/unbundle:default"' )
+ else
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=(
+ 'host_toolchain="//build/toolchain/linux/unbundle:host"'
+ 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"'
+ "host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+ "pkg_config=\"$(tc-getPKG_CONFIG)\""
+ )
+
+ # setup cups-config, build system only uses --libs option
+ if use cups; then
+ mkdir "${T}/cups-config" || die
+ cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+ export PATH="${PATH}:${T}/cups-config"
+ fi
+
+ # Don't inherit PKG_CONFIG_PATH from environment
+ local -x PKG_CONFIG_PATH=
+ fi
+
+ fi # !bundled-toolchain
+
+ local myarch
+ myarch="$(tc-arch)"
+ case ${myarch} in
+ amd64)
+ # Bug 530248, 544702, 546984, 853646.
+ use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
+ -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+ myconf_gn+=( 'target_cpu="x64"' )
+ ;;
+ x86)
+ # Bug 530248, 544702, 546984, 853646.
+ use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
+ -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+ myconf_gn+=( 'target_cpu="x86"' )
+ ;;
+ arm64)
+ myconf_gn+=( 'target_cpu="arm64"' )
+ ;;
+ ppc64)
+ myconf_gn+=( 'target_cpu="ppc64"' )
+ ;;
+ *)
+ die "Failed to determine target arch, got '${myarch}'."
+ ;;
+ esac
+
+ # Common options
+
+ myconf_gn+=(
+ # Disable code formating of generated files
+ "blink_enable_generated_code_formatting=false"
+ # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+ # DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+ "dcheck_always_on=$(usex debug true false)"
+ "dcheck_is_configurable=$(usex debug true false)"
+ # Chromium builds provided by Linux distros should disable the testing config
+ "disable_fieldtrial_testing_config=true"
+ # Custom patch: Enable building Chromium as individual channels (e.g. stable, beta, dev) that
+ # use different profile directories, desktop entries, etc. This enables slotting the ebuild.
+ "enable_channel_branding=true"
+ # 131 began laying the groundwork for replacing freetype with
+ # "Rust-based Fontations set of libraries plus Skia path rendering"
+ # We now need to opt-in
+ "enable_freetype=true"
+ "enable_hangout_services_extension=$(usex hangouts true false)"
+ # Don't need nocompile checks and GN crashes with our config (verify with modern GN)
+ "enable_nocompile_tests=false"
+ # pseudolocales are only used for testing
+ "enable_pseudolocales=false"
+ "enable_widevine=$(usex widevine true false)"
+ # Disable fatal linker warnings, bug 506268.
+ "fatal_linker_warnings=false"
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ "is_component_build=false"
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ "is_debug=false"
+ "is_official_build=$(usex official true false)"
+ # Enable ozone wayland and/or headless support
+ "ozone_auto_platforms=false"
+ "ozone_platform_headless=true"
+ # Enables building without non-free unRAR licence
+ "safe_browsing_use_unrar=false"
+ # "thin_lto_enable_optimizations=${use_lto}"
+ "treat_warnings_as_errors=false"
+ # Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi)
+ # instead of the system C++ library for C++ standard library support.
+ # default: true, but let's be explicit (forced since 120 ; USE removed 127).
+ "use_custom_libcxx=true"
+ # Enable ozone wayland and/or headless support
+ "use_ozone=true"
+ # The sysroot is the oldest debian image that chromium supports, we don't need it
+ "use_sysroot=false"
+ # See dependency logic in third_party/BUILD.gn
+ "use_system_harfbuzz=$(usex system-harfbuzz true false)"
+ # "use_thin_lto=${use_lto}"
+ # Only enabled for clang, but gcc has endian macros too
+ "v8_use_libm_trig_functions=true"
+ )
+
+ myconf_gn+=( "enable_iterator_debugging=$(usex debug true false)" )
+
+ if use debug; then
+ myconf_gn+=(
+ "symbol_level=2"
+ "blink_symbol_level=2"
+ "v8_symbol_level=2"
+ )
+ else
+ myconf_gn+=(
+ "symbol_level=0"
+ "blink_symbol_level=0"
+ "v8_symbol_level=0"
+ )
+ fi
+
+ if use bindist ; then
+ myconf_gn+=(
+ # If this is set to false Chromium won't be able to load any proprietary codecs
+ # even if provided with an ffmpeg capable of h264/aac decoding
+ "proprietary_codecs=true"
+ 'ffmpeg_branding="Chrome"'
+ # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
+ "is_component_ffmpeg=true"
+ )
+ else
+ myconf_gn+=(
+ "proprietary_codecs=$(usex proprietary-codecs true false)"
+ "ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
+ )
+ fi
+
+ if use headless; then
+ myconf_gn+=(
+ "enable_print_preview=false"
+ "enable_remoting=false"
+ 'ozone_platform="headless"'
+ "rtc_use_pipewire=false"
+ "use_alsa=false"
+ "use_cups=false"
+ "use_gio=false"
+ "use_glib=false"
+ "use_gtk=false"
+ "use_kerberos=false"
+ "use_libpci=false"
+ "use_pangocairo=false"
+ "use_pulseaudio=false"
+ "use_qt5=false"
+ "use_qt6=false"
+ "use_udev=false"
+ "use_vaapi=false"
+ "use_xkbcommon=false"
+ )
+ else
+ myconf_gn+=(
+ "gtk_version=$(usex gtk4 4 3)"
+ # link pulseaudio directly (DT_NEEDED) instead of using dlopen.
+ # helps with automated detection of ABI mismatches and prevents silent errors.
+ "link_pulseaudio=$(usex pulseaudio true false)"
+ "ozone_platform_wayland=$(usex wayland true false)"
+ "ozone_platform_x11=$(usex X true false)"
+ "ozone_platform=\"$(usex wayland wayland x11)\""
+ "rtc_use_pipewire=$(usex screencast true false)"
+ "use_cups=$(usex cups true false)"
+ "use_kerberos=$(usex kerberos true false)"
+ "use_pulseaudio=$(usex pulseaudio true false)"
+ "use_qt5=false"
+ "use_system_libffi=$(usex wayland true false)"
+ "use_system_minigbm=true"
+ "use_vaapi=$(usex vaapi true false)"
+ "use_xkbcommon=true"
+ )
+ if use qt6; then
+ local cbuild_libdir
+ cbuild_libdir="$(get_libdir)"
+ if tc-is-cross-compiler; then
+ # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+ cbuild_libdir="$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)"
+ cbuild_libdir="${cbuild_libdir:2}"
+ cbuild_libdir="${cbuild_libdir/% }"
+ fi
+ myconf_gn+=(
+ "use_qt6=true"
+ "moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
+ )
+ else
+ myconf_gn+=( "use_qt6=false" )
+ fi
+ fi
+
+ # Explicitly disable ICU data file support for system-icu/headless builds.
+ if use system-icu || use headless; then
+ myconf_gn+=( "icu_use_data_file=false" )
+ fi
+
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Don't add symbols to build
+ myconf_gn+=( "symbol_level=0" )
+ fi
+
+ if use pgo; then
+ myconf_gn+=(
+ "chrome_pgo_phase=2"
+ "v8_enable_builtins_optimization=true"
+ )
+ else
+ myconf_gn+=( "chrome_pgo_phase=0" )
+ fi
+
+ # Odds and ends
+
+ # skipping typecheck is only supported on amd64, bug #876157
+ if ! use amd64; then
+ myconf_gn+=( "devtools_skip_typecheck=false" )
+ fi
+
+ # Disable external code space for V8 for ppc64. It is disabled for ppc64
+ # by default, but cross-compiling on amd64 enables it again.
+ if tc-is-cross-compiler && use ppc64; then
+ myconf_gn+=( "v8_enable_external_code_space=false" )
+ fi
+
+ # This determines whether or not GN uses the bundled libcxx
+ if use libcxx; then
+ myconf_gn+=( "use_custom_libcxx=true" )
+ else
+ myconf_gn+=(
+ "use_custom_libcxx=false"
+ "use_llvm_libatomic=false"
+ )
+ append-cppflags -U_GLIBCXX_ASSERTIONS #See #318
+ fi
+
+ myconf_gn+=( "use_bluez=$(usex bluetooth true false)" )
+
+ myconf_gn+=( "is_cfi=$(usex cfi true false)" )
+
+ if use cfi; then
+ myconf_gn+=(
+ "use_cfi_icall=true"
+ "use_cfi_cast=true"
+ )
+ fi
+
+ myconf_gn+=(
+ "optimize_webui=$(usex optimize-webui true false)"
+ "use_system_freetype=$(usex system-harfbuzz true false)"
+ "use_system_libopenjpeg2=$(usex system-openjpeg true false)"
+ "enable_pdf=true"
+ "use_system_lcms2=true"
+ "enable_print_preview=true"
+ "use_thin_lto=$(usex thinlto true false)"
+ "thin_lto_enable_optimizations=$(usex optimize-thinlto true false)"
+
+ # Ungoogled flags
+ "build_with_tflite_lib=false"
+ "enable_mdns=false"
+ "enable_mse_mpeg2ts_stream_parser=$(usex proprietary-codecs true false)"
+ "enable_remoting=false"
+ "enable_reporting=false"
+ "enable_service_discovery=false"
+ "exclude_unwind_tables=true"
+ "google_api_key=\"\""
+ "google_default_client_id=\"\""
+ "google_default_client_secret=\"\""
+ "safe_browsing_mode=0"
+ "use_official_google_api_keys=false"
+ "use_unofficial_version_number=false"
+
+ # "enable_swiftshader=false"
+
+ # Additional flags
+ # "perfetto_use_system_zlib=true"
+ # "use_system_zlib=true"
+ # "use_system_libjpeg=true"
+ # "rtc_build_examples=false"
+ # "enable_chromium_prelude=false"
+ # "enable_updater=false"
+ # "enable_update_notifications=false"
+ # "enable_constraints=false"
+ # "rtc_rusty_base64=false"
+ # "v8_enable_temporal_support=false"
+ # "media_use_symphonia=false"
+ # "pdf_enable_rust_png=false"
+ # "skia_use_libpng_encode=true"
+ # "skia_use_libpng_decode=true"
+ # "skia_use_rust_png_decode=false"
+ # "skia_use_rust_png_encode=false"
+ # "enable_jxl_decoder=false"
+ )
+
+ if use amd64 || use arm64; then
+ myconf_gn+=(
+ "v8_drumbrake_bounds_checks=true"
+ "v8_enable_drumbrake=true"
+ )
+ fi
+
+ if use thinlto; then
+ # We need to change the default value of import-instr-limit in
+ # LLVM to limit the text size increase. The default value is
+ # 100, and we change it to 30 to reduce the text size increase
+ # from 25% to 10%. The performance number of page_cycler is the
+ # same on two of the thinLTO configurations, we got 1% slowdown
+ # on speedometer when changing import-instr-limit from 100 to 30.
+ # append-ldflags "-Wl,-plugin-opt,-import-instr-limit=30"
+ sed -i '/import_instr_limit = 5/{s++import_instr_limit = 30+;h};${x;/./{x;q0};x;q1}' \
+ build/config/compiler/BUILD.gn || die
+
+ append-ldflags "-Wl,--thinlto-jobs=$(makeopts_jobs)"
+ fi
+
+ # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn)
+ append-cflags -Wno-builtin-macro-redefined
+ append-cxxflags -Wno-builtin-macro-redefined
+ append-cppflags "-D__DATE__= -D__TIME__= -D__TIMESTAMP__="
+
+ local flags
+ einfo "Building with the following compiler settings:"
+ for flags in C{C,XX} AR NM RANLIB {C,CXX,CPP,LD}FLAGS \
+ EXTRA_GN UGC_{SKIP_{PATCHES,SUBSTITUTION},KEEP_BINARIES} ; do
+ einfo " ${flags} = \"${!flags}\""
+ done
+
+ # Since we build from tarballs, we need to set the channel here so that it can be used in the build.
+ export CHROME_VERSION_EXTRA="${SLOT}"
+
+ einfo "Configuring Chromium ..."
+ set -- gn gen --args="${myconf_gn[*]}${EXTRA_GN:+ ${EXTRA_GN}}" out/Release
+ echo "$@"
+ "$@" || die "Failed to configure Chromium"
+
+ # The "if" below should not be executed unless testing
+ if [ ! -z "${NODIE}" ]; then
+ # List all args
+ # gn args --list out/Release
+
+ # Quick compiler check
+ eninja -C out/Release protoc torque
+ fi
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # I hate doing this but upstream Rust have yet to come up with a better solution for
+ # us poor packagers. Required for Split LTO units, which are required for CFI.
+ export RUSTC_BOOTSTRAP=1
+
+ # Don't inherit PYTHONPATH from environment, bug #789021, #812689
+ local -x PYTHONPATH=
+
+ # Build mksnapshot and pax-mark it.
+ if use pax-kernel; then
+ local x
+ for x in mksnapshot v8_context_snapshot_generator code_cache_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+ fi
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chrome_sandbox $(use test && echo "base_unittests")
+
+ pax-mark m out/Release/chrome
+
+ # This codepath does minimal patching, so we're at the mercy of upstream
+ # CFLAGS. This is fine - we're not intending to force this on users
+ # and we do a lot of flag 'management' anyway.
+ if use bundled-toolchain; then
+ QA_FLAGS_IGNORED="
+ usr/lib64/chromium-browser/chrome
+ usr/lib64/chromium-browser/chrome-sandbox
+ usr/lib64/chromium-browser/chromedriver
+ usr/lib64/chromium-browser/chrome_crashpad_handler
+ usr/lib64/chromium-browser/libEGL.so
+ usr/lib64/chromium-browser/libGLESv2.so
+ usr/lib64/chromium-browser/libVkICD_mock_icd.so
+ usr/lib64/chromium-browser/libVkLayer_khronos_validation.so
+ usr/lib64/chromium-browser/libqt6_shim.so
+ usr/lib64/chromium-browser/libvk_swiftshader.so
+ usr/lib64/chromium-browser/libvulkan.so.1
+ "
+ fi
+
+ use convert-dict && eninja -C out/Release convert_dict
+
+ use enable-driver && eninja -C out/Release chromedriver
+ #use suid && eninja -C out/Release chrome_sandbox
+
+ use enable-driver && mv out/Release/chromedriver{.unstripped,}
+
+ rm -f out/Release/locales/*.pak.info || die
+
+ # Generate support files (desktop file, manpage, etc.) See: #684550 #706786 #968958
+ ${EPYTHON} "${FILESDIR}/generate-support-files.py" \
+ --installdir "/usr/$(get_libdir)/ungoogled-chromium-browser" \
+ --channel "${SLOT}" ||
+ die "Failed to generate support files"
+}
+
+src_test() {
+ # Tests may be flaky with usersandbox, and the test runner executes significantly faster without.
+ # If you seem to be excluding too many tests for a particular milestone: comment them out, reboot, and
+ # run the tests again. If that doesn't help, try FEATURES="-usersandbox" and send it because obviously the
+ # chromium gods are not smiling upon you today. Do some runtime testing, obvs.
+ local skip_tests=(
+ # Wildcard exclusions (if all tests in a test suite are broken)
+ 'AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/*'
+ 'AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/*'
+ 'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 crashes entire test runner with usersandbox.
+ 'CheckExitCodeAfterSignalHandlerDeathTest.*'
+ 'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*'
+ 'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
+ 'ToolsSanityTest.BadVirtualCall*'
+ # requires en-us locale
+ SysStrings.SysNativeMBAndWide
+ SysStrings.SysNativeMBToWide
+ SysStrings.SysWideToNativeMB
+ # Specific test cases
+ CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention
+ FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
+ HistogramTesterTest.PumaTestUniqueSample
+ PathServiceTest.CheckedGetFailure
+ PlatformThreadTest.CanChangeThreadType
+ RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144.
+ RustLogIntegrationTest.CheckAllSeverity
+ StackCanary.ChangingStackCanaryCrashesOnReturn
+ StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
+ TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
+ ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
+ )
+ local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
+ # test-launcher-bot-mode enables parallelism and plain output
+ # Check individual tests with --gtest_filter=<test you want> --single-process-tests
+ ./out/Release/base_unittests --test-launcher-bot-mode \
+ --test-launcher-jobs="$(get_makeopts_jobs)" \
+ --gtest_filter="${test_filter}" || die "Tests failed!"
+}
+
+src_install() {
+ local browser_suffix
+ if [[ "${SLOT}" != "stable" ]]; then
+ browser_suffix="-${SLOT}"
+ else
+ browser_suffix=""
+ fi
+ local CHROMIUM_HOME="/usr/$(get_libdir)/ungoogled-chromium-browser${browser_suffix}"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ #newexe out/Release/chrome_sandbox chrome-sandbox
+ #fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+ use enable-driver && doexe out/Release/chromedriver
+
+ #* https://github.com/ungoogled-software/ungoogled-chromium/pull/3563
+ doexe out/Release/chrome_crashpad_handler
+
+ if use convert-dict; then
+ newexe "${FILESDIR}/update-dicts.sh" update-dicts.sh
+ doexe out/Release/convert_dict
+ fi
+
+ ozone_auto_session () {
+ use X && use wayland && ! use headless && echo true || echo false
+ }
+
+ cat <<- EOF > "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
+ #!/bin/bash
+ # Wrapper to launch slotted Chromium via the chromium-common launcher script.
+ export CHROME_DESKTOP="ungoogled-chromium-browser${browser_suffix}.desktop"
+ export CHROME_EXEC_NAME="ungoogled-chromium-browser${browser_suffix}"
+ export CHROME_VERSION_EXTRA="${SLOT}"
+ export CHROME_WRAPPER="\$(readlink -f "\$0")"
+ export OZONE_AUTO_SESSION=$(ozone_auto_session)
+
+ exec /usr/libexec/chromium/chromium-launcher.sh "\$@"
+ EOF
+
+ chmod 755 "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/ungoogled-chromium-browser${browser_suffix}
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/ungoogled-chromium${browser_suffix}
+
+ use enable-driver && dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/ungoogled-chromedriver${browser_suffix}
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd > /dev/null || die
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins -r out/Release/hyphen-data
+
+ if use bindist; then
+ # We built libffmpeg as a component library, but we can't distribute it
+ # with proprietary codec support. Remove it and make a symlink to the requested
+ # system library.
+ rm -f out/Release/libffmpeg.so \
+ || die "Failed to remove bundled libffmpeg.so (with proprietary codecs)"
+ # symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium].
+ einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..."
+ dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \
+ /usr/$(get_libdir)/ungoogled-chromium-browser/libffmpeg.so
+ fi
+
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so out/Release/*.so.[0-9])
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu && ! use headless; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ #doins -r out/Release/MEIPreload
+
+ # Install vk_swiftshader_icd.json; bug #827861
+ doins out/Release/vk_swiftshader_icd.json
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ use widevine && dosym WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so "${CHROMIUM_HOME}/libwidevinecdm.so"
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ ungoogled-chromium-browser${browser_suffix}.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/ungoogled-chromium-browser${browser_suffix}.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ doins out/Release/ungoogled-chromium-browser${browser_suffix}.xml
+
+ # Install AppStream metadata
+ insinto /usr/share/appdata
+ doins out/Release/ungoogled-chromium-browser${browser_suffix}.appdata.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/ungoogled-chromium-browser${browser_suffix}.1
+ dosym ungoogled-chromium-browser${browser_suffix}.1 /usr/share/man/man1/ungoogled-chromium${browser_suffix}.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+
+ if use !headless && [[ -z "${REPLACING_VERSIONS}" ]]; then
+ if use vaapi; then
+ elog "Hardware-accelerated video decoding configuration:"
+ elog
+ elog "Chromium supports multiple backends for hardware acceleration. To enable one,"
+ elog " Add to CHROMIUM_FLAGS in /etc/chromium/default:"
+ elog
+ elog "1. VA-API with OpenGL (recommended for most users):"
+ elog " --enable-features=AcceleratedVideoDecodeLinuxGL"
+ elog " VaapiVideoDecoder may need to be added as well, but try without first."
+ elog
+ if use wayland; then
+ elog "2. Enhanced Wayland/EGL performance:"
+ elog " --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL"
+ elog
+ fi
+ if use X; then
+ elog "$(usex wayland "3" "2"). VA-API with Vulkan:"
+ elog " --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE"
+ elog
+ if use wayland; then
+ elog " NOTE: Vulkan acceleration requires X11 and will not work under Wayland sessions."
+ elog " Use OpenGL-based acceleration instead when running under Wayland."
+ elog
+ fi
+ fi
+ elog "Additional options:"
+ elog " To enable hardware-accelerated encoding (if supported)"
+ elog " add 'AcceleratedVideoEncoder' to your feature list"
+ elog " VaapiIgnoreDriverChecks bypasses driver compatibility checks"
+ elog " (may be needed for newer/unsupported hardware)"
+ elog
+ else
+ elog "This Chromium build was compiled without VA-API support, which provides"
+ elog "hardware-accelerated video decoding."
+ fi
+ if use screencast; then
+ elog "Screencast is disabled by default at runtime. Either enable it"
+ elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+ elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ elog
+ elog "Additional setup may be required for screencasting to work."
+ elog "See issue: https://github.com/PF4Public/gentoo-overlay/issues/314"
+ fi
+ if use gtk4; then
+ elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+ elog "behaviour you need to pass --gtk-version=4, e.g. by adding it"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ fi
+ if use widevine; then
+ elog "widevine requires binary plugins, which are distributed separately"
+ elog "Make sure you have www-plugins/chrome-binary-plugins installed"
+ fi
+ fi
+
+ if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then
+ ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd"
+ ewarn "indicates that the Gentoo handbook was not followed to completion."
+ ewarn ""
+ ewarn "Chromium is known to behave unpredictably with this system configuration;"
+ ewarn "please complete the configuration of this system before logging any bugs."
+ fi
+
+ # Stable slot doesn't change profile directory, and it's vanishingly unlikely that users will downgrade from dev.
+ if [[ -n "${REPLACING_VERSIONS}" ]]; then
+ local replacing_non_slotted=false
+ # there could be more than one PVR
+ for version in ${REPLACING_VERSIONS}; do
+ if ver_test "${version}" -le "145.0.7632.116"; then
+ replacing_non_slotted=true
+ break
+ fi
+ done
+ if ${replacing_non_slotted}; then
+ ewarn "This version of Chromium has replaced a non-slotted ebuild."
+ if [[ ${SLOT} != "stable" ]]; then
+ ewarn "This channel has its own profile directory, so your existing profile will not be used."
+ ewarn "To use your existing profile, either copy or move it to the new location."
+ ewarn "See https://wiki.gentoo.org/wiki/Chromium#Profile_Directories for more information."
+ ewarn ""
+ fi
+ ewarn "Any existing Progressive Web Apps (PWAs) will need to be reinstalled,"
+ ewarn "or have the path in the desktop files updated to point to the new wrapper script."
+ fi
+ fi
+}
+
+eapply_wrapper () {
+ if [ ! -z "${NODIE}" ]; then
+ nonfatal eapply "$@"
+ else
+ eapply "$@"
+ fi
+}
+
+git_wrapper () {
+ if [ ! -z "${NODIE}" ]; then
+ git "$@"
+ else
+ git "$@" || die
+ fi
+}
+
+filter_wrapper () {
+ einfo "Applying ${i##*/}"
+ #? fuzz factor of 3 is OK?
+ if [ ! -z "${NODIE}" ]; then
+ filterdiff -p1 "${@:2}" < "$1" | patch -F 3 -p1
+ else
+ filterdiff -p1 "${@:2}" < "$1" | patch -F 3 -p1 || die
+ fi
+}
diff --git a/x11-libs/libfm-qt/libfm-qt-2.4.0.ebuild b/x11-libs/libfm-qt/libfm-qt-2.4.0.ebuild
index 9ec0bcc9cadf..fee143044b1e 100644
--- a/x11-libs/libfm-qt/libfm-qt-2.4.0.ebuild
+++ b/x11-libs/libfm-qt/libfm-qt-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="BSD GPL-2+ LGPL-2.1+"
diff --git a/x11-libs/qtermwidget/qtermwidget-2.4.0.ebuild b/x11-libs/qtermwidget/qtermwidget-2.4.0.ebuild
index 47d7a284bd38..c6b5c5559e8d 100644
--- a/x11-libs/qtermwidget/qtermwidget-2.4.0.ebuild
+++ b/x11-libs/qtermwidget/qtermwidget-2.4.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="BSD GPL-2 LGPL-2+"
diff --git a/x11-misc/pcmanfm-qt/pcmanfm-qt-2.4.0.ebuild b/x11-misc/pcmanfm-qt/pcmanfm-qt-2.4.0.ebuild
index 32985167fd43..f42147db46ea 100644
--- a/x11-misc/pcmanfm-qt/pcmanfm-qt-2.4.0.ebuild
+++ b/x11-misc/pcmanfm-qt/pcmanfm-qt-2.4.0.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="GPL-2 GPL-2+ LGPL-2.1+"
diff --git a/x11-misc/qps/qps-2.13.0.ebuild b/x11-misc/qps/qps-2.13.0.ebuild
index 6bf5ead058ee..ffa85320fee2 100644
--- a/x11-misc/qps/qps-2.13.0.ebuild
+++ b/x11-misc/qps/qps-2.13.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="GPL-2 GPL-2+ LGPL-2.1+ QPL-1.0"
diff --git a/x11-misc/screengrab/screengrab-3.2.0.ebuild b/x11-misc/screengrab/screengrab-3.2.0.ebuild
index e1eefd58a136..1002c39dc8e3 100644
--- a/x11-misc/screengrab/screengrab-3.2.0.ebuild
+++ b/x11-misc/screengrab/screengrab-3.2.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86"
fi
LICENSE="GPL-2 GPL-2+ LGPL-2.1+"
diff --git a/x11-terms/qterminal/qterminal-2.4.0.ebuild b/x11-terms/qterminal/qterminal-2.4.0.ebuild
index 76b8304531f9..4679f3f85d49 100644
--- a/x11-terms/qterminal/qterminal-2.4.0.ebuild
+++ b/x11-terms/qterminal/qterminal-2.4.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="GPL-2 GPL-2+"
diff --git a/x11-themes/lxqt-themes/lxqt-themes-2.4.0.ebuild b/x11-themes/lxqt-themes/lxqt-themes-2.4.0.ebuild
index 32965cc320bc..6be26f82c4b0 100644
--- a/x11-themes/lxqt-themes/lxqt-themes-2.4.0.ebuild
+++ b/x11-themes/lxqt-themes/lxqt-themes-2.4.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
else
SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="LGPL-2.1+"