summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-admin/ansible-core/Manifest1
-rw-r--r--app-admin/ansible-core/ansible-core-2.21.3.ebuild53
-rw-r--r--app-admin/ansible/Manifest1
-rw-r--r--app-admin/ansible/ansible-14.3.1.ebuild35
-rw-r--r--app-admin/terraform/Manifest2
-rw-r--r--app-admin/terraform/metadata.xml4
-rw-r--r--app-admin/terraform/terraform-1.15.6.ebuild2
-rw-r--r--app-admin/terraform/terraform-1.16.1.ebuild40
-rw-r--r--app-doc/eclass-manpages/Manifest1
-rw-r--r--app-doc/eclass-manpages/eclass-manpages-20260426.ebuild24
-rw-r--r--app-doc/eclass-manpages/eclass-manpages-99999999.ebuild40
-rw-r--r--app-doc/eclass-manpages/metadata.xml5
-rw-r--r--app-editors/vscode/Manifest6
-rw-r--r--app-editors/vscode/vscode-1.136.1.ebuild (renamed from app-editors/vscode/vscode-1.136.0.ebuild)0
-rw-r--r--app-metrics/alertmanager/alertmanager-0.33.1.ebuild2
-rw-r--r--app-metrics/blackbox_exporter/blackbox_exporter-0.28.0.ebuild2
-rw-r--r--app-metrics/node_exporter/node_exporter-1.12.1.ebuild2
-rw-r--r--app-metrics/snmp_exporter/Manifest2
-rw-r--r--app-metrics/snmp_exporter/files/snmp_exporter.service28
-rw-r--r--app-metrics/snmp_exporter/snmp_exporter-0.30.1.ebuild55
-rw-r--r--app-misc/yq-go/Manifest2
-rw-r--r--app-misc/yq-go/yq-go-4.53.6.ebuild38
-rw-r--r--app-text/mdbook/mdbook-0.5.4.ebuild2
-rw-r--r--dev-db/mongodb-compass-bin/Manifest2
-rw-r--r--dev-db/mongodb-compass-bin/mongodb-compass-bin-1.50.0.ebuild (renamed from dev-db/mongodb-compass-bin/mongodb-compass-bin-1.49.6.ebuild)0
-rw-r--r--dev-lang/go/Manifest2
-rw-r--r--dev-lang/go/go-1.25.13.ebuild2
-rw-r--r--dev-lang/go/go-1.26.5.ebuild2
-rw-r--r--dev-lang/go/go-1.27.1.ebuild (renamed from dev-lang/go/go-1.27.0.ebuild)0
-rw-r--r--dev-lang/go/metadata.xml6
-rw-r--r--dev-lang/rust-bin/Manifest36
-rw-r--r--dev-lang/rust-bin/rust-bin-1.97.1.ebuild2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.98.1.ebuild336
-rw-r--r--dev-lang/rust-common/Manifest2
-rw-r--r--dev-lang/rust-common/rust-common-1.97.1.ebuild2
-rw-r--r--dev-lang/rust-common/rust-common-1.98.1.ebuild73
-rw-r--r--dev-lang/rust/Manifest3
-rw-r--r--dev-lang/rust/rust-1.97.1.ebuild13
-rw-r--r--dev-lang/rust/rust-1.98.1.ebuild963
-rw-r--r--dev-lang/rust/rust-9999.ebuild11
-rw-r--r--dev-libs/libmirage/Manifest1
-rw-r--r--dev-libs/libmirage/libmirage-3.3.3.ebuild58
-rw-r--r--dev-libs/simdjson/Manifest1
-rw-r--r--dev-libs/simdjson/simdjson-4.6.10.ebuild107
-rw-r--r--dev-python/amqp/amqp-5.3.1.ebuild10
-rw-r--r--dev-python/bashate/bashate-2.1.1.ebuild2
-rw-r--r--dev-python/bitstring/Manifest1
-rw-r--r--dev-python/bitstring/bitstring-4.3.1.ebuild35
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.88.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.88.ebuild67
-rw-r--r--dev-python/capturer/capturer-3.0-r1.ebuild1
-rw-r--r--dev-python/django-otp/Manifest2
-rw-r--r--dev-python/django-otp/django-otp-1.7.2.ebuild (renamed from dev-python/django-otp/django-otp-1.7.0.ebuild)0
-rw-r--r--dev-python/gherkin-official/gherkin-official-42.0.1.ebuild2
-rw-r--r--dev-python/google-api-core/Manifest2
-rw-r--r--dev-python/google-api-core/google-api-core-2.36.0.ebuild58
-rw-r--r--dev-python/google-auth/Manifest2
-rw-r--r--dev-python/google-auth/google-auth-2.57.1.ebuild63
-rw-r--r--dev-python/googleapis-common-protos/Manifest2
-rw-r--r--dev-python/googleapis-common-protos/googleapis-common-protos-1.75.3.ebuild29
-rw-r--r--dev-python/micawber/Manifest1
-rw-r--r--dev-python/micawber/micawber-0.8.0.ebuild35
-rw-r--r--dev-python/pymongo/Manifest1
-rw-r--r--dev-python/pymongo/pymongo-4.13.2.ebuild202
-rw-r--r--dev-python/pyqt6-sip/pyqt6-sip-13.12.0.ebuild2
-rw-r--r--dev-python/pytest-rerunfailures/Manifest1
-rw-r--r--dev-python/pytest-rerunfailures/pytest-rerunfailures-16.6.1.ebuild29
-rw-r--r--dev-python/setuptools-scm/Manifest2
-rw-r--r--dev-python/setuptools-scm/setuptools-scm-10.2.3.ebuild62
-rw-r--r--dev-python/sip/sip-6.16.1.ebuild2
-rw-r--r--dev-python/spyder/Manifest1
-rw-r--r--dev-python/spyder/spyder-6.1.7.ebuild209
-rw-r--r--dev-python/sqlglot/Manifest2
-rw-r--r--dev-python/sqlglot/sqlglot-30.18.0.ebuild (renamed from dev-python/sqlglot/sqlglot-30.16.0.ebuild)0
-rw-r--r--dev-python/urwid/Manifest2
-rw-r--r--dev-python/urwid/urwid-4.1.1.ebuild49
-rw-r--r--dev-python/vcs-versioning/Manifest2
-rw-r--r--dev-python/vcs-versioning/vcs-versioning-2.3.4.ebuild39
-rw-r--r--dev-python/vdirsyncer/Manifest1
-rw-r--r--dev-python/vdirsyncer/vdirsyncer-0.21.0.ebuild70
-rw-r--r--dev-python/zmq-anyio/Manifest3
-rw-r--r--dev-python/zmq-anyio/zmq-anyio-0.3.10.ebuild49
-rw-r--r--dev-python/zmq-anyio/zmq-anyio-0.4.1.ebuild35
-rw-r--r--dev-qt/qt-creator/Manifest1
-rw-r--r--dev-qt/qt-creator/files/qt-creator-20.0.1-libcxx23.patch44
-rw-r--r--dev-qt/qt-creator/qt-creator-20.0.0.ebuild285
-rw-r--r--dev-qt/qt-creator/qt-creator-20.0.1.ebuild3
-rw-r--r--dev-qt/qt-creator/qt-creator-9999.ebuild3
-rw-r--r--dev-qt/qttools/Manifest1
-rw-r--r--dev-qt/qttools/qttools-6.11.2.ebuild12
-rw-r--r--dev-qt/qttools/qttools-6.11.9999.ebuild12
-rw-r--r--dev-qt/qttools/qttools-6.12.9999.ebuild5
-rw-r--r--dev-qt/qttools/qttools-6.9999.ebuild5
-rw-r--r--dev-util/github-cli/Manifest2
-rw-r--r--dev-util/github-cli/github-cli-2.100.0.ebuild51
-rw-r--r--dev-util/github-cli/metadata.xml4
-rw-r--r--dev-util/gitlab-cli/Manifest2
-rw-r--r--dev-util/gitlab-cli/gitlab-cli-1.116.0.ebuild54
-rw-r--r--dev-util/gitlab-cli/metadata.xml4
-rw-r--r--dev-util/intellij-idea/Manifest4
-rw-r--r--dev-util/intellij-idea/intellij-idea-2026.2.2.ebuild (renamed from dev-util/intellij-idea/intellij-idea-2026.2.1.ebuild)0
-rw-r--r--dev-util/pixi/Manifest4
-rw-r--r--dev-util/pixi/pixi-0.79.0.ebuild (renamed from dev-util/pixi/pixi-0.77.1.ebuild)0
-rw-r--r--dev-vcs/jj/Manifest2
-rw-r--r--dev-vcs/jj/jj-0.45.1.ebuild58
-rw-r--r--eclass/distutils-r1.eclass48
-rw-r--r--eclass/elisp-common.eclass11
-rw-r--r--eclass/rust.eclass2
-rw-r--r--games-emulation/pcsx2/files/pcsx2-2.8.1-libcxx23.patch62
-rw-r--r--games-emulation/pcsx2/pcsx2-2.8.1.ebuild1
-rw-r--r--games-emulation/pcsx2/pcsx2-9999.ebuild1
-rw-r--r--llvm-runtimes/libunwind/libunwind-17.0.6.ebuild2
-rw-r--r--llvm-runtimes/libunwind/libunwind-18.1.8.ebuild2
-rw-r--r--llvm-runtimes/libunwind/libunwind-19.1.7.ebuild2
-rw-r--r--llvm-runtimes/libunwind/libunwind-20.1.8-r1.ebuild2
-rw-r--r--llvm-runtimes/libunwind/libunwind-21.1.8.ebuild2
-rw-r--r--llvm-runtimes/libunwind/libunwind-22.1.8-r1.ebuild (renamed from llvm-runtimes/libunwind/libunwind-22.1.8.ebuild)3
-rw-r--r--llvm-runtimes/libunwind/libunwind-23.1.0-r1.ebuild (renamed from llvm-runtimes/libunwind/libunwind-23.1.0.ebuild)3
-rw-r--r--llvm-runtimes/libunwind/libunwind-24.0.0.9999.ebuild3
-rw-r--r--llvm-runtimes/libunwind/libunwind-24.0.0_pre20260725.ebuild3
-rw-r--r--llvm-runtimes/libunwind/metadata.xml1
-rw-r--r--mail-client/thunderbird/thunderbird-140.15.0.ebuild2
-rw-r--r--mail-mta/postfix/Manifest4
-rw-r--r--mail-mta/postfix/postfix-3.12_pre20260901.ebuild (renamed from mail-mta/postfix/postfix-3.12_pre20260821.ebuild)4
-rw-r--r--media-radio/fldigi/Manifest2
-rw-r--r--media-radio/fldigi/fldigi-4.2.11.ebuild59
-rw-r--r--media-radio/fldigi/fldigi-4.2.12.ebuild59
-rw-r--r--media-radio/flrig/Manifest1
-rw-r--r--media-radio/flrig/flrig-2.0.10-r1.ebuild42
-rw-r--r--media-sound/beets/Manifest9
-rw-r--r--media-sound/beets/beets-1.7.0_pre20240501-r1.ebuild174
-rw-r--r--media-sound/beets/beets-2.11.0.ebuild172
-rw-r--r--media-sound/beets/beets-2.13.1.ebuild (renamed from media-sound/beets/beets-2.10.0.ebuild)8
-rw-r--r--media-sound/beets/beets-2.3.1.ebuild173
-rw-r--r--net-mail/b4/b4-0.16.0-r1.ebuild1
-rw-r--r--net-misc/freerdp/Manifest6
-rw-r--r--net-misc/freerdp/files/freerdp-3.31.0-debug.patch63
-rw-r--r--net-misc/freerdp/freerdp-3.29.0.ebuild192
-rw-r--r--net-misc/freerdp/freerdp-3.30.0.ebuild192
-rw-r--r--net-misc/freerdp/freerdp-3.31.0-r1.ebuild197
-rw-r--r--net-misc/freerdp/freerdp-3.31.1.ebuild2
-rw-r--r--net-misc/gallery-dl/Manifest2
-rw-r--r--net-misc/gallery-dl/gallery-dl-1.32.10-r1.ebuild (renamed from net-misc/gallery-dl/gallery-dl-1.32.10.ebuild)10
-rw-r--r--net-misc/gallery-dl/gallery-dl-9999.ebuild10
-rw-r--r--net-misc/gallery-dl/metadata.xml2
-rw-r--r--net-misc/kea/files/kea-confd-r47
-rw-r--r--net-misc/kea/files/kea-initd-r578
-rw-r--r--net-misc/kea/kea-3.2.0-r1.ebuild335
-rw-r--r--net-misc/kea/kea-9999.ebuild87
-rw-r--r--net-vpn/openvpn/Manifest2
-rw-r--r--net-vpn/openvpn/openvpn-2.7.6.ebuild224
-rw-r--r--net-vpn/tailscale/tailscale-1.102.0.ebuild2
-rw-r--r--net-wireless/wireless-regdb/Manifest2
-rw-r--r--net-wireless/wireless-regdb/wireless-regdb-20260204.ebuild62
-rw-r--r--net-wireless/wireless-regdb/wireless-regdb-20260318.ebuild62
-rw-r--r--net-wireless/wireless-regdb/wireless-regdb-20260530.ebuild2
-rw-r--r--profiles/base/package.use.force2
-rw-r--r--profiles/base/package.use.mask5
-rw-r--r--profiles/package.mask/00-gentoo12
-rw-r--r--sci-ml/pytorch/Manifest1
-rw-r--r--sci-ml/pytorch/files/pytorch-2.14.0-license.patch10
-rw-r--r--sci-ml/pytorch/files/pytorch-2.14.0-removekineto-pr178960.patch288
-rw-r--r--sci-ml/pytorch/files/pytorch-2.14.0-unbundle_pocketfft.patch18
-rw-r--r--sci-ml/pytorch/pytorch-2.14.0.ebuild365
-rw-r--r--sys-apps/systemd/Manifest1
-rw-r--r--sys-apps/systemd/files/systemd-261-lxml-6.1.3.patch59
-rw-r--r--sys-apps/systemd/systemd-260.1-r2.ebuild1
-rw-r--r--sys-apps/systemd/systemd-260.4.ebuild610
-rw-r--r--sys-apps/systemd/systemd-261.2.ebuild1
-rw-r--r--sys-apps/systemd/systemd-262_rc1.ebuild1
-rw-r--r--sys-devel/rust-std/Manifest2
-rw-r--r--sys-devel/rust-std/rust-std-1.98.1.ebuild171
-rw-r--r--sys-kernel/raspberrypi-sources/Manifest3
-rw-r--r--sys-kernel/raspberrypi-sources/raspberrypi-sources-6.18.32_p20260521-r1.ebuild74
-rw-r--r--sys-kernel/raspberrypi-sources/raspberrypi-sources-6.18.46_p20260824-r1.ebuild (renamed from sys-kernel/raspberrypi-sources/raspberrypi-sources-6.18.46_p20260824.ebuild)2
-rw-r--r--sys-power/nct6687d/Manifest2
-rw-r--r--sys-power/nct6687d/nct6687d-0_pre20260901.ebuild (renamed from sys-power/nct6687d/nct6687d-0_pre20260313.ebuild)6
-rw-r--r--sys-power/nct6687d/nct6687d-9999.ebuild4
-rw-r--r--www-client/firefox/firefox-140.15.0.ebuild2
-rw-r--r--www-client/librewolf-bin/Manifest2
-rw-r--r--www-client/librewolf-bin/librewolf-bin-155.0_p1.ebuild321
-rw-r--r--www-client/librewolf/Manifest4
-rw-r--r--www-client/librewolf/files/gentoo-hwaccel-prefs.js-r49
-rw-r--r--www-client/librewolf/librewolf-155.0_p1.ebuild1321
-rw-r--r--www-client/ungoogled-chromium/Manifest2
-rw-r--r--www-client/ungoogled-chromium/ungoogled-chromium-152.0.7977.75_p1.ebuild6
-rw-r--r--x11-themes/QGnomePlatform/QGnomePlatform-0.9.2-r8.ebuild (renamed from x11-themes/QGnomePlatform/QGnomePlatform-0.9.2-r7.ebuild)57
-rw-r--r--x11-themes/adwaita-qt/adwaita-qt-1.4.2-r1.ebuild55
-rw-r--r--x11-themes/adwaita-qt/adwaita-qt-1.4.2-r2.ebuild24
191 files changed, 7126 insertions, 2367 deletions
diff --git a/app-admin/ansible-core/Manifest b/app-admin/ansible-core/Manifest
index 5844d9522138..031986831ef3 100644
--- a/app-admin/ansible-core/Manifest
+++ b/app-admin/ansible-core/Manifest
@@ -4,3 +4,4 @@ DIST ansible_core-2.20.0.tar.gz 3315281 BLAKE2B 16748ce88c9112eb3e41d9db35d67626
DIST ansible_core-2.20.3.tar.gz 3325132 BLAKE2B 6820e645a64ee2cb4d2b55251c9fd0fffd624c69078f79763fa66e4d8e26c3ef61f0842f267f4397e6d90688dc5809b7314180386022a48972197b336d4fb7c8 SHA512 f9281aa0d7a32ed81a548e26d035877efffe847673df4f8293f2ef101881a9eb64ff116a90d7291b627e0eeb488abdf297add67fccaaaa801c339dbc9218284a
DIST ansible_core-2.20.5.tar.gz 3339511 BLAKE2B 54b712687aa5e21edf7ea0089eb7987d139bb0f9c427f08ec94a12adb1d022613bac0b327b5362abf8ed486b13bfb52d77e19c2ca2a527827f6dda338b9a407e SHA512 90c6bfdac03f303df70d9653a6beda53bac413c877ce360020e4f646b415207a26c40d8861dbe246ca5d7d5fb8bc91ec4c31c1544feceba4b62b8b7078e194a0
DIST ansible_core-2.21.1.tar.gz 3384534 BLAKE2B 9c6fbff3a185e539f3508e8ac6a4d884505e0b60f14cc170484b7829ffd6d15753ffe3dbb4dae16e3c534c20f159db52104fb35ae78d906afe3813d16e448946 SHA512 4e3099ba5613cc32d386d73692816d91bf4864b02b362efaac87e8c90f583674dd07fe76eec2247966ccd8846698caa24d674fe7a1fbbedee5c47a2067eea87f
+DIST ansible_core-2.21.3.tar.gz 3397615 BLAKE2B 97661f2c83f0cf00511e80e5d7f8a70c55084457ad51776810adcb0decc0d7f17484c3c507b0f2780be041288506ec77f3596026a354fe35845a73913cce6f38 SHA512 a06a9cf817ee7fabff6fb03ab66965fedf18dd84d96a281b6493b4fddd45163dcb46202cbb6389098cd88dda97c1759cf2772c002d94959a3d0ab912d460d541
diff --git a/app-admin/ansible-core/ansible-core-2.21.3.ebuild b/app-admin/ansible-core/ansible-core-2.21.3.ebuild
new file mode 100644
index 000000000000..e759b8ae39f4
--- /dev/null
+++ b/app-admin/ansible-core/ansible-core-2.21.3.ebuild
@@ -0,0 +1,53 @@
+# 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_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Model-driven deployment, config management, and command execution framework"
+HOMEPAGE="https://www.ansible.com/"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/ansible/ansible.git"
+ EGIT_BRANCH="devel"
+else
+ inherit pypi
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~x64-macos"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-python/paramiko-3.5.1[${PYTHON_USEDEP}]
+ dev-python/jinja2[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/netaddr[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/resolvelib-0.8.0[${PYTHON_USEDEP}]
+ <dev-python/resolvelib-2.0.0[${PYTHON_USEDEP}]
+ net-misc/sshpass
+ virtual/ssh
+"
+BDEPEND="
+ >=dev-python/packaging-16.6[${PYTHON_USEDEP}]
+ test? (
+ dev-python/botocore[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )"
+
+distutils_enable_tests pytest
+
+python_compile() {
+ export ANSIBLE_SKIP_CONFLICT_CHECK=1
+ distutils-r1_python_compile
+}
diff --git a/app-admin/ansible/Manifest b/app-admin/ansible/Manifest
index ed57201920f4..db2cc8083635 100644
--- a/app-admin/ansible/Manifest
+++ b/app-admin/ansible/Manifest
@@ -5,3 +5,4 @@ DIST ansible-13.0.0.tar.gz 50725940 BLAKE2B dae2c7dbdaea8edf026c8c52a2d1b2278f18
DIST ansible-13.2.0.tar.gz 52000144 BLAKE2B a2611f9b00e2c461f904d6e6cf825620049bdb1ee865949b5b0df2913bd50dd6d56856914471e18718c66aa10736246812ae598b7f2376641243dcee928fe2e8 SHA512 34a21653742729962cd784f6743ca37855089544a0b8029b2c1d48555df94b8cc68b0441a28950e2d0f074f0e1f4b1cd7bf693faa3d61aaaf716bfa6ed9a30a2
DIST ansible-13.6.0.tar.gz 52989793 BLAKE2B 8b4b944b2f82cdece23328df03806aa383e21683d52bf97c0a19c4e1cd78a7706c86835df67118b73d725113ea2be842b92ba67c0d9d554787e35d3705ad9189 SHA512 0d1f9b531c61af8085fd5abaac8f7c5a58a8d6fbaac90c653f4e26a4d79303475fa5000c0a05c5d2d039c3280087dd4e44b173af7237524a11834df818d315ac
DIST ansible-14.1.0.tar.gz 49560987 BLAKE2B 60a6831553a0ce8612760f56f6784237545afb88ef4efbca0cdbfdb27c594190348ba9450f8d1a2e685de275a48a62f9a7315d1cb7a779809ac917275d8df9f5 SHA512 52115cd87b5ea81f6dec38d4eceb1fefae385163d3018640da5dca2a6c65d0aad903499f559d018f4d53be8fbfe935ebdb7f711408e923f562a791589dea1747
+DIST ansible-14.3.1.tar.gz 50442504 BLAKE2B bb65b6b2f624f4647b616fd0dbf13f71847fc079c1e956da21bd196c268bf82c1460d9b68e0048169911f43b9e817ae99c6b11795f3b6402ededa6f460cf353d SHA512 35b147ca15ffb7ed683243f6921bee2c97d82593fac2678eb0d686d20e67992ee3ad41d7a48b87e31b1c8846dfdc30f49b78e204af409a19f540f028be4ea3ed
diff --git a/app-admin/ansible/ansible-14.3.1.ebuild b/app-admin/ansible/ansible-14.3.1.ebuild
new file mode 100644
index 000000000000..159812d528d1
--- /dev/null
+++ b/app-admin/ansible/ansible-14.3.1.ebuild
@@ -0,0 +1,35 @@
+# 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_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Model-driven deployment, config management, and command execution framework"
+HOMEPAGE="
+ https://www.redhat.com/en/ansible-collaborative
+ https://github.com/ansible-community/ansible-build-data
+"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~x64-macos"
+RESTRICT="test"
+
+RDEPEND="
+ >=app-admin/ansible-core-2.21.0
+ <app-admin/ansible-core-2.22.0
+"
+
+python_compile() {
+ local -x ANSIBLE_SKIP_CONFLICT_CHECK=1
+ distutils-r1_python_compile
+}
+
+python_install() {
+ local -x ANSIBLE_SKIP_CONFLICT_CHECK=1
+ distutils-r1_python_install
+}
diff --git a/app-admin/terraform/Manifest b/app-admin/terraform/Manifest
index e1729a86c830..d6268f8e8f83 100644
--- a/app-admin/terraform/Manifest
+++ b/app-admin/terraform/Manifest
@@ -4,3 +4,5 @@ DIST terraform-1.15.5-vendor.tar.xz 10561416 BLAKE2B d92740c6c8dfc63e0a3a0ccaadf
DIST terraform-1.15.5.tar.gz 5771239 BLAKE2B 93752a2d203bd7407f779855b96b5491dd6ce8808b63c348ab9b96b6da91cdfb3c1389e288beae80ef2810b226531b466db0c9aea8d6a8a2f661e94128558b62 SHA512 7bc3a2801da1b45d5e8fabbb68e9d63b8682d5e47a2e9d61b6cebf155722d0f7e7fa7ebee261f499d3fae0a8d61ba2010aaff1e64b481c01b4631cdcf5cf6797
DIST terraform-1.15.6-vendor.tar.xz 10549840 BLAKE2B 95239b3553faef1c8694246938a232eedd604345c2b660475af079c184fb9e817640c4b0f34643197b1f152a78d44ee8dd7dd6d2b5980aa8eb458175313d6e66 SHA512 331966b86146c9e8edb1c35085c87966a24cfcf7da12358c767bedc6b381b0f52525148857b1a5047a522d4fb7aa18b4630866ce6749a0de4698868eb0faae05
DIST terraform-1.15.6.tar.gz 5774269 BLAKE2B 46d3a1a1fc819f05a530653d4cd77356dac8b26aa664293a0b122c14e42ba5dead036a21bf1f64104c2643647c03b44cedb0d3d6848a22461efe16eb84ea826a SHA512 9376876bffa4e3d89976b14864b115a70fecee81389af3a87991120e62c5935948a73d6fbcd79d4535998c22114d3ff76d80f64321bdd94777b0bd289bbb307c
+DIST terraform-1.16.1-vendor.tar.xz 10616344 BLAKE2B dd71fa141e414fe5774d6bb935795447c294751e110a3fc0b53c742501eb184a83e791ebd35892991e2567b6ca2fcdb20219596db746c1782e6c7b84adc7b696 SHA512 9e2d3aa350983d5a181a4e841a86692814732768fed7480fad0e1a5dafefafc2f7e0fb51d10b178ce9f898e7544d1b363f80741876ad698786e3f9026eac2de5
+DIST terraform-1.16.1.tar.gz 6003010 BLAKE2B f9ba479cb1555dac1691b74425098e3fe16d55e44701f2917d4511bdaa35045c418672d223851284a3bc4ba1b143432d2f95855020f9d00181ddb175b2c700d3 SHA512 b0243824bf8a3875ca72cf50690424bd899a007cd5e0620c632cffa25c9e58797acf0991a1d505300d03287fbee3c070efbcfe6704dc21aaf728ea1086f4078b
diff --git a/app-admin/terraform/metadata.xml b/app-admin/terraform/metadata.xml
index 2d66fab3cd4c..38ac20690869 100644
--- a/app-admin/terraform/metadata.xml
+++ b/app-admin/terraform/metadata.xml
@@ -5,6 +5,10 @@
<email>williamh@gentoo.org</email>
<name>William Hubbs</name>
</maintainer>
+ <maintainer type="person">
+ <email>arthurzam@gentoo.org</email>
+ <name>Arthur Zamarin</name>
+ </maintainer>
<longdescription lang="en">
Terraform is a tool for building, changing, and versioning infrastructure
safely and efficiently. Terraform can manage existing and popular service
diff --git a/app-admin/terraform/terraform-1.15.6.ebuild b/app-admin/terraform/terraform-1.15.6.ebuild
index 11c3005ed642..37238d6605c1 100644
--- a/app-admin/terraform/terraform-1.15.6.ebuild
+++ b/app-admin/terraform/terraform-1.15.6.ebuild
@@ -14,7 +14,7 @@ LICENSE="BUSL-1.1"
# Dependent licenses
LICENSE+=" Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv"
+KEYWORDS="amd64 ~arm64 ~riscv"
RESTRICT="test"
BDEPEND=">=dev-lang/go-1.25.10"
diff --git a/app-admin/terraform/terraform-1.16.1.ebuild b/app-admin/terraform/terraform-1.16.1.ebuild
new file mode 100644
index 000000000000..f09c4ae5d875
--- /dev/null
+++ b/app-admin/terraform/terraform-1.16.1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+inherit go-module shell-completion
+
+DESCRIPTION="A tool for building, changing, and combining infrastructure safely"
+HOMEPAGE="https://www.terraform.io/"
+SRC_URI="https://github.com/hashicorp/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-vendor.tar.xz"
+
+LICENSE="BUSL-1.1"
+# Dependent licenses
+LICENSE+=" Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+RESTRICT="test"
+
+BDEPEND=">=dev-lang/go-1.26.4"
+
+DOCS=( {README,CHANGELOG}.md )
+
+src_compile() {
+ local -x CGO_ENABLED=0
+ local go_ldflags=(
+ -w
+ -X github.com/hashicorp/terraform/version.dev=no
+ )
+ ego build -ldflags "${go_ldflags[*]}" -o bin/${PN} .
+}
+
+src_install() {
+ dobin bin/${PN}
+ einstalldocs
+
+ newbashcomp - "${PN}" <<- EOF
+ complete -C '/usr/bin/${PN}' ${PN}
+ EOF
+}
diff --git a/app-doc/eclass-manpages/Manifest b/app-doc/eclass-manpages/Manifest
index 3061a0e7f688..fdd7e08bf6bc 100644
--- a/app-doc/eclass-manpages/Manifest
+++ b/app-doc/eclass-manpages/Manifest
@@ -1,2 +1 @@
-DIST eclass-manpages-20260426.tar.xz 516192 BLAKE2B 5fd40d3839fefcd90bce77c763b3a6b9ac53eca40f412c01e1bcf1a6744d376d11810a941541783dd901eb4f49ae656e1b78c9bd7ce01f7a6ed3069e29f19513 SHA512 dfc6a5ef6a9ad3bf12857618412146ac5081878fe1d2416b28fc37de85bc9f2ce4a25d3a087b5aff6953e79a3d6f9220be325d68e5b27c8d68fac62a12952aec
DIST eclass-manpages-20260624.tar.xz 518600 BLAKE2B 8b044c6c35820ddaf60e02203e562d4c1d01445c1bd982ff33235ee6e55f93cccf0da7eb536dc2febded3207c4fee8e1d73b35281dc348e10e16b3abdc35cfed SHA512 82ecee2f15f99db10422740e81478eb590e682e181983a12aa48d92b462537527bfa50dbf4eb3ae61799355b17cc6ad0e5256b3345b65d2a135e625d3e133066
diff --git a/app-doc/eclass-manpages/eclass-manpages-20260426.ebuild b/app-doc/eclass-manpages/eclass-manpages-20260426.ebuild
deleted file mode 100644
index 1427ea35350f..000000000000
--- a/app-doc/eclass-manpages/eclass-manpages-20260426.ebuild
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Instructions to make a dist tarball:
-# git clone https://github.com/projg2/eclass-to-manpage.git
-# cd eclass-to-manpage
-# make dist ECLASSDIR=~/g/eclass/
-
-DESCRIPTION="Collection of Gentoo eclass manpages"
-HOMEPAGE="https://github.com/projg2/eclass-to-manpage"
-SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-# Keep the keywords stable. No need to change to ~arch.
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-
-BDEPEND="sys-apps/gawk"
-
-src_install() {
- emake install DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
-}
diff --git a/app-doc/eclass-manpages/eclass-manpages-99999999.ebuild b/app-doc/eclass-manpages/eclass-manpages-99999999.ebuild
index 2a553378b663..a5251b8c5f4e 100644
--- a/app-doc/eclass-manpages/eclass-manpages-99999999.ebuild
+++ b/app-doc/eclass-manpages/eclass-manpages-99999999.ebuild
@@ -1,32 +1,40 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=8
+EAPI=9
-inherit git-r3
+if [[ ${PV} = 99999999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/gentoo/gentoo.git"
+ S="${WORKDIR}/${P}/eclass"
+else
+ # Instructions to make a dist tarball:
+ # cd /path/to/gentoo-repo
+ # tar -cJf ${P}.tar.xz --transform="s:^eclass/:${P}/:" eclass/*.eclass
+ SRC_URI="https://distfiles.gentoo.org/pub/proj/qa/${PN}/${P}.tar.xz"
+ # Keep the keywords stable. No need to change to ~arch.
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+fi
DESCRIPTION="Collection of Gentoo eclass manpages"
-HOMEPAGE="https://github.com/projg2/eclass-to-manpage"
-EGIT_REPO_URI="https://anongit.gentoo.org/git/repo/gentoo.git
- https://github.com/gentoo/gentoo.git"
+HOMEPAGE="https://gitweb.gentoo.org/repo/gentoo.git/tree/eclass"
LICENSE="GPL-2"
SLOT="0"
-BDEPEND="sys-apps/gawk"
+BDEPEND="sys-apps/pkgcore"
-src_unpack() {
- git-r3_fetch
- git-r3_fetch "https://github.com/projg2/eclass-to-manpage.git"
-
- git-r3_checkout "" "" "" eclass
- git-r3_checkout "https://github.com/projg2/eclass-to-manpage.git"
-}
+if [[ ${PV} = 99999999 ]]; then
+ src_unpack() {
+ git-r3_fetch
+ git-r3_checkout "" "" "" eclass
+ }
+fi
src_compile() {
- emake ECLASSDIR=eclass
+ pmaint eclass -f man -o "{eclass}.eclass.5" *.eclass
}
src_install() {
- emake install ECLASSDIR=eclass DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ doman *.5
}
diff --git a/app-doc/eclass-manpages/metadata.xml b/app-doc/eclass-manpages/metadata.xml
index 7d6818cea8d9..624a694456ff 100644
--- a/app-doc/eclass-manpages/metadata.xml
+++ b/app-doc/eclass-manpages/metadata.xml
@@ -5,12 +5,13 @@
<email>mgorny@gentoo.org</email>
<name>Michał Górny</name>
</maintainer>
- <maintainer type="project">
- <email>devmanual@gentoo.org</email>
+ <maintainer type="person">
+ <email>ulm@gentoo.org</email>
</maintainer>
<maintainer type="project">
<email>tools-portage@gentoo.org</email>
<name>Gentoo Portage tools team</name>
</maintainer>
+ <straight-to-stable />
<origin>baldeagleos-repo</origin>
</pkgmetadata>
diff --git a/app-editors/vscode/Manifest b/app-editors/vscode/Manifest
index 0c4cbef25c45..a38e63baadef 100644
--- a/app-editors/vscode/Manifest
+++ b/app-editors/vscode/Manifest
@@ -1,6 +1,6 @@
DIST vscode-1.135.0-amd64.tar.gz 346537015 BLAKE2B 39087946e674ee2be9b3cbd7b067f676009de77e1667a2b507666380e48ea131ab9333a5730a3fee61b480e1a5ee837240aae2cd0089009386e0ac098f39754a SHA512 d55cc70677e26c305f6dc3e0b68c0e1cbc11e51a9dd04818e387eedc3a7fb6d213ba41952ab5b127b2a1e36c4cae3bb98399a1bd3275999f115a78fc1a5920d4
DIST vscode-1.135.0-arm.tar.gz 219802594 BLAKE2B 171b23a2e7c3cdeba80d8390c3c0ae05b826179df6d783989282cbcd7d093291792469bd3bfd7be9c65b0e6be8cc17af51f63e6c15520cad7bae479bd8c3b1d0 SHA512 8ba4e8f711613f03b0eff504c0d1ccec3134b63f9badd7fbbc14455288acfbd641b52f8f0f551cbb3b058bc0ee6d799cf09042c6f6633c68a7e1c422b14f16ee
DIST vscode-1.135.0-arm64.tar.gz 333059693 BLAKE2B 40bf9ebfbaaf75171f257ea290e7f6687efa128970a73cf9a0da9bf4feacfc43ffa01c6e7e6446d28e6975ff2d29d20061e6a9c5a456c7758e095ccf4b5172a8 SHA512 9e9eb0fdaa95092031f4c8738fcb29696ea6200d3274e5ebf55d583f94787028f2f5c7c21a02dfba46d7f102fd541ef50eb0693034273f2feabc832c4c50c0be
-DIST vscode-1.136.0-amd64.tar.gz 354676337 BLAKE2B 01cb4ab0edd6bc5f01826ffa11f65d4fd5090a331635bc2540e439e65fd5c067fab505af61cf46056a4063f960597150453b47017b22c36b97726cc310926468 SHA512 f6ec7bbbe4878fef6da8484724de6fbb7bab71a8bc3df6903e3a6b69635944af8195f5aedc2ffabb128b6bd4c3fcd1177002bd6351955b5cd550f073eb49b14a
-DIST vscode-1.136.0-arm.tar.gz 224160311 BLAKE2B 14fabd2d350a34964ea0df10ccee03447c299f7b706fbc8b2155171ae0049cee4e43e1a57698a68b16d504db56b7f1ef0d7b81107eb25f9be724b263237d1bf5 SHA512 f646b08a8a50d9662fe3b4a8d662911d73ceebd2655d9cb3f0187b0dccad3ffb69434e7b427661a55fd2faea6a05199e6d47bd31e557bcff67019e88c11c2713
-DIST vscode-1.136.0-arm64.tar.gz 342655159 BLAKE2B 5851ec55898b98dd11ab52e2b6086643c3450093565fde1a73efad2654ccc3975fc8ae777917b1142f0bf18384d1554581fc3fe9e12c1acd5a756ef917656d25 SHA512 1e7a5d467d51b55bda4acec896db4c27dbc3b0fab3e31f18953f33f5005c95ecc8d69b1b8d2218837a532d6cfd07ce717eac4b0d8053967e1028c5a3154b3633
+DIST vscode-1.136.1-amd64.tar.gz 354666608 BLAKE2B 6f3e133beaf531c45521446edf986af439464ac3ae0fbfaa0312a3264c0558e246c3c3059e0d179aa446b2dd335a0dfc00bbaae65f2a5771a6aac7d8ab232111 SHA512 fe7f8ed928debe38ac0a82750baf12189c475fe8a2694f365ba0fddc5f1815d99bfd0a43fcb7e65286c2688df1851b56f7376501b4ec2f06f75706fd1019f03b
+DIST vscode-1.136.1-arm.tar.gz 224172150 BLAKE2B 16ba28865d222ccb0932ef231e3a6a98762a0159daabb8cfb6bf79722e1b3e3ef876bc0f5c608b438058c0811c918c88df4ab983e6a2d65f38918723630a5f43 SHA512 ee44e6a3920cf1efda33b616b3047d955b505f62d725f40ee170ace60e150d3e1c92907dcb444b73c9fba3dc27d0444826208e9f7507ac3ba031ec598e625ce3
+DIST vscode-1.136.1-arm64.tar.gz 342644352 BLAKE2B 07d8cd732ae9b7ad1ce2ce4c69a4f427e0e1be64930270b6c814799b8939b819a64f676150d7426460619b42307b5d21302160125beb3b7b53a9af809b0de20a SHA512 e7f73186b0d864094c4d9a6ead070329a4b8d91368a202808e6037d21131a7c5cf2d46f1ae3b10e91e23f54f13ed62a2854014a8dd9f7e7a4e8788ffdbb8691e
diff --git a/app-editors/vscode/vscode-1.136.0.ebuild b/app-editors/vscode/vscode-1.136.1.ebuild
index 9cf66870460a..9cf66870460a 100644
--- a/app-editors/vscode/vscode-1.136.0.ebuild
+++ b/app-editors/vscode/vscode-1.136.1.ebuild
diff --git a/app-metrics/alertmanager/alertmanager-0.33.1.ebuild b/app-metrics/alertmanager/alertmanager-0.33.1.ebuild
index fd80ccfecdb5..a90cac3c74cc 100644
--- a/app-metrics/alertmanager/alertmanager-0.33.1.ebuild
+++ b/app-metrics/alertmanager/alertmanager-0.33.1.ebuild
@@ -14,7 +14,7 @@ SRC_URI="
"
LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="amd64 ~arm64"
# tests don't work due to "missing files"
RESTRICT+=" test"
diff --git a/app-metrics/blackbox_exporter/blackbox_exporter-0.28.0.ebuild b/app-metrics/blackbox_exporter/blackbox_exporter-0.28.0.ebuild
index adc7c8096366..cd824b498e91 100644
--- a/app-metrics/blackbox_exporter/blackbox_exporter-0.28.0.ebuild
+++ b/app-metrics/blackbox_exporter/blackbox_exporter-0.28.0.ebuild
@@ -13,7 +13,7 @@ SRC_URI+=" https://github.com/gentoo-golang-dist/blackbox_exporter/releases/down
LICENSE="Apache-2.0 BSD BSD-2 MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
COMMON_DEPEND="acct-group/blackbox_exporter
acct-user/blackbox_exporter"
diff --git a/app-metrics/node_exporter/node_exporter-1.12.1.ebuild b/app-metrics/node_exporter/node_exporter-1.12.1.ebuild
index 4b748fc98554..2a7ff5e3e7c5 100644
--- a/app-metrics/node_exporter/node_exporter-1.12.1.ebuild
+++ b/app-metrics/node_exporter/node_exporter-1.12.1.ebuild
@@ -15,7 +15,7 @@ else
SRC_URI="https://github.com/prometheus/node_exporter/archive/v${PV}.tar.gz -> ${P}.tar.gz"
SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-vendor.tar.xz"
- KEYWORDS="~amd64 ~arm64 ~loong ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~loong ~riscv ~x86"
fi
# main pkg
diff --git a/app-metrics/snmp_exporter/Manifest b/app-metrics/snmp_exporter/Manifest
index 5342bd2ce26a..0518198dda5e 100644
--- a/app-metrics/snmp_exporter/Manifest
+++ b/app-metrics/snmp_exporter/Manifest
@@ -2,3 +2,5 @@ DIST snmp_exporter-0.24.1-deps.tar.xz 23690876 BLAKE2B 35cc65341bbae092fb88ebb42
DIST snmp_exporter-0.24.1.tar.gz 168914 BLAKE2B 555136b42af1057cbd553a774ab96f00877f20b1d72b8f78dc87d85e958d14d56b8d58eb5aab829ad33acd9581fe80c4d65ae4faad1c8be0773e2205ac088cb2 SHA512 5268129a50bd255a9505b16d27957ab2e7a23321a25933c9a1a98cd9900aef3a882a59a43d92e021dfa6e732f84f8be1fe171271935a8eac1e023588f417822e
DIST snmp_exporter-0.27.0-deps.tar.xz 40692548 BLAKE2B 3a553497515153e2cc5fdf2b03190a5b3fd4169b6d9ea2e869c92a662d1a7cd1210a76b02662222326b8a4c4861a2f7448f75c8b6ecbe6179a4e2c831a76fe24 SHA512 11d4072a4ffd94943fac8704d45b1c8f5ed23fb1e7ea0102b67aa29a1be95c91b9ca899eb99eb828b140f82828e3f30c448eeedf05c735604c165c63bdb6024f
DIST snmp_exporter-0.27.0.tar.gz 235589 BLAKE2B e61262a3785e0f81e112c5eaf046c0607bef64d61cac81b394f15e276e0648f14166e0854708e41f64b9740ab5deb10b61d1e45f748134f11014c93d937a327c SHA512 bcc6e795c73c278cbb1497eb49e9b4aec8624132771016804dcbfb092c9c02d9ef73e74a0cf6e47567a299dc2cdb19621cbbee3c6bfc2a988d697c743434746d
+DIST snmp_exporter-0.30.1-vendor.tar.xz 1390384 BLAKE2B 70ebb752e1d5620119afa58662075af8e4642d657d5fa7fab4002345cd1366e2f513a144b26efa37b723238696e9d943950e9e7c05f8579df273b6ff971b3bed SHA512 dfc2034213e8f226daec1912cb60f83d9c824721269b46c47a829f3555685b9af6aedd8c32c049f03d39dfe1be52d44fe3fa8f85860be036670f5bd1cf43de81
+DIST snmp_exporter-0.30.1.tar.gz 272868 BLAKE2B b5c98b315b1eef0966f6f658ced30b8ba3763b885ab9264e4b82eef68c9a181d54da28b16e852a9710e5b9d44644bc6d6caf87a37cd9f8c677807d637a94cfe3 SHA512 99b4c1af62f81842a71471e002911c0a4ef24a5ca3932d8c803151d23a77f75a4fa3033c5fdde3af9dcbf4f6b3764f82cb0b1180a776cded3b40795b8e2b1cbf
diff --git a/app-metrics/snmp_exporter/files/snmp_exporter.service b/app-metrics/snmp_exporter/files/snmp_exporter.service
new file mode 100644
index 000000000000..8e3638a98e5e
--- /dev/null
+++ b/app-metrics/snmp_exporter/files/snmp_exporter.service
@@ -0,0 +1,28 @@
+[Unit]
+Description=Prometheus SNMP Exporter
+Documentation=https://github.com/prometheus/snmp_exporter
+After=network.target
+
+[Service]
+User=snmp_exporter
+Group=snmp_exporter
+ExecStart=/usr/bin/snmp_exporter --config.file=/etc/snmp_exporter/snmp.yml
+ExecReload=/bin/kill -HUP $MAINPID
+
+NoNewPrivileges=true
+ProtectSystem=full
+ProtectHome=true
+ProtectHostname=true
+ProtectKernelLogs=true
+ProtectKernelModules=true
+ProtectKernelTunables=true
+ProtectControlGroups=true
+PrivateTmp=true
+PrivateDevices=true
+LockPersonality=true
+MemoryDenyWriteExecute=true
+RestrictRealtime=true
+CapabilityBoundingSet=
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-metrics/snmp_exporter/snmp_exporter-0.30.1.ebuild b/app-metrics/snmp_exporter/snmp_exporter-0.30.1.ebuild
new file mode 100644
index 000000000000..601a1b022161
--- /dev/null
+++ b/app-metrics/snmp_exporter/snmp_exporter-0.30.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-module systemd
+
+# update this on every bump
+SNMP_EXPORTER_COMMIT=48b810af
+
+DESCRIPTION="Prometheus exporter for snmp metrics"
+HOMEPAGE="https://github.com/prometheus/snmp_exporter"
+SRC_URI="https://github.com/prometheus/${PN}/archive/v${PV/_rc/-rc.}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-vendor.tar.xz"
+
+LICENSE="Apache-2.0 BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="acct-group/snmp_exporter
+ acct-user/snmp_exporter
+ net-analyzer/net-snmp"
+RDEPEND="${DEPEND}"
+BDEPEND="dev-util/promu"
+
+src_prepare() {
+ default
+ sed -i -e "s/{{.Revision}}/${SNMP_EXPORTER_COMMIT}/" .promu.yml || die
+}
+
+src_compile() {
+ promu build --prefix bin || die
+ pushd generator || die
+ ego build -o ../bin/generator
+ popd || die
+}
+
+src_test() {
+ emake test-flags= test
+}
+
+src_install() {
+ dobin bin/generator
+ newbin bin/${PN}-${PV} ${PN}
+ dodoc {README,CONTRIBUTING}.md generator/{FORMAT,README}.md generator/generator.yml CHANGELOG.md
+ insinto /etc/snmp_exporter
+ newins snmp.yml snmp.yml.example
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+ systemd_dounit "${FILESDIR}"/${PN}.service
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/${PN}.logrotated" "${PN}"
+ keepdir /var/lib/snmp_exporter /var/log/snmp_exporter
+ fowners ${PN}:${PN} /var/lib/snmp_exporter /var/log/snmp_exporter
+}
diff --git a/app-misc/yq-go/Manifest b/app-misc/yq-go/Manifest
index e207910025ed..efc47caff4f4 100644
--- a/app-misc/yq-go/Manifest
+++ b/app-misc/yq-go/Manifest
@@ -6,3 +6,5 @@ DIST yq-4.50.1-vendor.tar.xz 1987136 BLAKE2B 7d01204debd9b6d318890d196d77fc72bd3
DIST yq-4.50.1.tar.gz 333696 BLAKE2B 9b4a17baf7ed0b6bcedd77fc41675f26bea0a2a70eefc85674c6949cd3263911dbf5075ae40b661bd924588b8e908916338f755d5b9b39e0c9e8a7870e1ac8eb SHA512 1030b28d78fbe24bb421a05a70c7138960fac8c9e6a3419bc4afe0d9f07fcc9c0363fb2449657696acdc91af2ac2640555bd61394abbb4e72441060570aca322
DIST yq-4.53.3-vendor.tar.xz 1973604 BLAKE2B 0cd4eff20a5387176346288265db68665a90028b145a333acb547bb513378259bbfde252397c3099fcd94f6d22ee8e568859788228ff38a66df59f82496f0420 SHA512 da7d46af76c1dc0661bd9cbb88d883a92f4131ef161112b243b320eef2a4571bf7e8b29de266d131f268c97a48cb0c94f859eb4c9b887c94e5907c1403b71424
DIST yq-4.53.3.tar.gz 369698 BLAKE2B 5036e2a79fbe106ddae0889f84c1254150ca30f24fa255df9a49264723c01aeff0831fcc730e49fcadcd7075f2cc9fb7187da290a5e7059018ccdb43c3e81f0d SHA512 420825768e0806ee82393dd80dccedcd8f62a31a2ed14b1ba1a22c89a8fcf34c5100cb1efa7e38bea9f4f6db07450417701dd1193588e5f48b04f9baad8cb28e
+DIST yq-4.53.6-vendor.tar.xz 1994024 BLAKE2B 7eace6bbedd652308320ee63242e8420c243d558cd67bdf502653aa500b012f924e8c2346d5a89bf0cafa2cd551b339687733eb510abd40192237a86b2822677 SHA512 7dcfd782241d332e31357a6e3ea48d30e89c14082dd73aa6f52a4397ec074e5b43ad2b414fc94f9497830507b0db95114e0abba46d3e9101e6d432032cb497a1
+DIST yq-4.53.6.tar.gz 375145 BLAKE2B 99018d6b0c5b762c05313680d0c87ee5474a93526747290bec52527ca43e6648ed083de97b01cd9e1573482a3b509499bdb95d13522c53911a43f8acad99f467 SHA512 35b125c63ee4cce1254d582f60a2aea7ec590772b1e1175e8092d71a30830e429ae34c064cbcb99a05792b894b21829d571d4f631a6db94dfeef66b01158cc44
diff --git a/app-misc/yq-go/yq-go-4.53.6.ebuild b/app-misc/yq-go/yq-go-4.53.6.ebuild
new file mode 100644
index 000000000000..f6af4aa7f148
--- /dev/null
+++ b/app-misc/yq-go/yq-go-4.53.6.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+inherit go-module
+
+DESCRIPTION="yq is a lightweight and portable command-line YAML, JSON and XML processor"
+HOMEPAGE="https://github.com/mikefarah/yq"
+SRC_URI="https://github.com/mikefarah/yq/archive/refs/tags/v${PV}.tar.gz -> ${P/-go/}.tar.gz"
+SRC_URI+=" https://github.com/gentoo-golang-dist/yq/releases/download/v${PV}/${P/-go/}-vendor.tar.xz"
+S=${WORKDIR}/${P/-go/}
+
+LICENSE="MIT"
+# Dependent licenses
+LICENSE+=" Apache-2.0 BSD BSD-2 MIT MPL-2.0 Unicode-DFS-2016"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong"
+IUSE="+yq-symlink"
+
+RDEPEND="yq-symlink? ( !app-misc/yq[yq-symlink(+)] )"
+BDEPEND=">=dev-lang/go-1.25.0"
+
+DOCS=( README.md )
+
+src_compile() {
+ CGO_ENABLED=0 ego build -ldflags "-X main.GitDescribe=v${PV} -w"
+}
+
+src_test() {
+ ./scripts/test.sh || die
+}
+
+src_install() {
+ einstalldocs
+ newbin yq yq-go
+ use yq-symlink && dosym yq-go /usr/bin/yq
+}
diff --git a/app-text/mdbook/mdbook-0.5.4.ebuild b/app-text/mdbook/mdbook-0.5.4.ebuild
index 1406609231b3..a119b095df3b 100644
--- a/app-text/mdbook/mdbook-0.5.4.ebuild
+++ b/app-text/mdbook/mdbook-0.5.4.ebuild
@@ -21,7 +21,7 @@ LICENSE+="
Apache-2.0 BSD CC-BY-4.0 CC0-1.0 ISC MIT MPL-2.0 Unicode-3.0
" # crates
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv ~s390 ~sparc x86"
IUSE="doc"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/dev-db/mongodb-compass-bin/Manifest b/dev-db/mongodb-compass-bin/Manifest
index e95b6587c3a1..980a32961a3a 100644
--- a/dev-db/mongodb-compass-bin/Manifest
+++ b/dev-db/mongodb-compass-bin/Manifest
@@ -1,2 +1,2 @@
-DIST mongodb-compass_1.49.6_amd64.deb 118051012 BLAKE2B dff7ad1d4d1d498747079d9d65a5a1eca1adeb5aafbbf4637e0a4729ffe148326afa55b83cd9d6c81f9bc73b532b66a7dd46f198be8c10b222682042f04d73f9 SHA512 9b78009e6a17c14e312c8b09bbc8405c03a0f0fe9178dbc8a2836e3d32d73e47ffc772a413df8a9280c13999c8c9bcd346c47a7c2a97d8d3d2a36639facff120
DIST mongodb-compass_1.49.8_amd64.deb 118056584 BLAKE2B 6f9ea2ef2c804a807117cc0f3ed82d6c97634c439439ebaf3fc50020eb874442cebf6410efceb1ae09f7f339be7882031558f778023d66079a2044b44e19c83a SHA512 43e0016d286f44041b761b00125b6b7a4605f0d1e97408f8383aaf03700319dcbd94768b71bd67357bd7c02aec13558e11b14e652c50cf09f1cd3f588ca94719
+DIST mongodb-compass_1.50.0_amd64.deb 129462028 BLAKE2B 5136d18c352bb3c93ef876f46d33b9ddaed3b87783f036833b4475ad4e8ed506c601d9797f77ed0cf1f9fd4e6a2fa8e976bf373ab1c88fb2bbc620297e166ccb SHA512 758f4585bb029ce5b10af76cdd157d5aa9fec6574be6d565f7a1d852c233e02f75e88bd6b6dfe5f19acb16ece8c59bf24f16d734f800ac4250e69df16d14c60b
diff --git a/dev-db/mongodb-compass-bin/mongodb-compass-bin-1.49.6.ebuild b/dev-db/mongodb-compass-bin/mongodb-compass-bin-1.50.0.ebuild
index 01703eac3671..01703eac3671 100644
--- a/dev-db/mongodb-compass-bin/mongodb-compass-bin-1.49.6.ebuild
+++ b/dev-db/mongodb-compass-bin/mongodb-compass-bin-1.50.0.ebuild
diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
index f4501aa15e07..f37c5f2765a5 100644
--- a/dev-lang/go/Manifest
+++ b/dev-lang/go/Manifest
@@ -6,4 +6,4 @@ DIST go1.26.4.src.tar.gz 34118246 BLAKE2B 6a9da2e9b876f52f8f35754ff6640eb5b26c17
DIST go1.26.5.src.tar.gz 34140216 BLAKE2B 0903273e37d73ef81e5c88f108f345d21f829aef6cfc5af0c63cc41584ce822912b8e90a989b37dad74debc90d70a9eea99621a043af56003fa9622e96bcb49d SHA512 1c1ff7bc002438e77c968155b077c51df87935d1a1a214c8750e748abe3af5cf83769eae5cfe85ca1b12a0e6fa4a0dfe4344b1023f037f206dad328607bba9f7
DIST go1.26.6.src.tar.gz 34151057 BLAKE2B 1f67f6f99c3c067388a714f1721eb24d52acf94adece1cded75df3b6c1045b0f2826cfb3edc05b5f1e1db8e17cca0289a69c8aeb8abb2cf244954c5983e6116d SHA512 73325ff6e1ed60228a4c409baf2fc592f41c10f77d86207d3e98d8ca764ec43249c453ac70997dd3990ccbd11efa872bbfcdb6623e0a67b7dfd7ab4cf4dfe1e8
DIST go1.26.7.src.tar.gz 34150794 BLAKE2B c6df632587189b6e67aa1624a0e572d9f15f63a004a43a73aca20575fed93fec8c04d3fd2b62b6c83298d66eb21ceaa93a8e0f1335652c13f99d64d5f1d4147c SHA512 708c8f19d43c7f931287ee0c710eb7a0c4a3d7589f546a59fcdb276f2963d8eb1fba1599977613e751d6de95b8386b6bca8e7d2caf9c555a1d51d1ef0d40289b
-DIST go1.27.0.src.tar.gz 35080395 BLAKE2B eee787d8c81ad0fcc50d0eaaa2bd354bc2ba5b5568e64748236a02cb1f25c6feff4b018c4a6376a186554914d300c9029dc34a3d060915d649abc87d3e26ea73 SHA512 2709a190db3b7d230743a88fe95fd25cb378e06bc31b745c3ccaa783c0b82c83e9d2cfd8ecc364c8fe47844fcdf85fef0701dca2ce2653260f61b9c98be5e682
+DIST go1.27.1.src.tar.gz 35109201 BLAKE2B ba51f0e3f23bc2fddd39eb87a952f5bce1c9dee0b37ae4918b19b1ddb3038a644ddb8fffd6c5e4685600768ae741dcee801761e752dd0184c76cfbff4d31a872 SHA512 21c928507be39cb91ecb2392a3bf00e1581e176c09e2bf6da447931dffa6198301efa39e106b252c498dbada9251dd5ccc017cbca66b9a0a03bf1e446ee4b5c5
diff --git a/dev-lang/go/go-1.25.13.ebuild b/dev-lang/go/go-1.25.13.ebuild
index 4fae67fcf5a9..11b1353dddb2 100644
--- a/dev-lang/go/go-1.25.13.ebuild
+++ b/dev-lang/go/go-1.25.13.ebuild
@@ -20,7 +20,7 @@ case ${PV} in
*)
SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz "
S="${WORKDIR}"/go
- KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~x64-macos ~x64-solaris"
+ KEYWORDS="-* amd64 ~arm arm64 ~loong ~mips ~ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris"
;;
esac
diff --git a/dev-lang/go/go-1.26.5.ebuild b/dev-lang/go/go-1.26.5.ebuild
index 452231977fd8..c94eb4ca111b 100644
--- a/dev-lang/go/go-1.26.5.ebuild
+++ b/dev-lang/go/go-1.26.5.ebuild
@@ -20,7 +20,7 @@ case ${PV} in
*)
SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz "
S="${WORKDIR}"/go
- KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~x64-macos ~x64-solaris"
+ KEYWORDS="-* amd64 ~arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris"
;;
esac
diff --git a/dev-lang/go/go-1.27.0.ebuild b/dev-lang/go/go-1.27.1.ebuild
index 452231977fd8..452231977fd8 100644
--- a/dev-lang/go/go-1.27.0.ebuild
+++ b/dev-lang/go/go-1.27.1.ebuild
diff --git a/dev-lang/go/metadata.xml b/dev-lang/go/metadata.xml
index ab5c0447b6a7..34f44f90b42d 100644
--- a/dev-lang/go/metadata.xml
+++ b/dev-lang/go/metadata.xml
@@ -5,10 +5,14 @@
<email>williamh@gentoo.org</email>
<name>William Hubbs</name>
</maintainer>
+ <maintainer type="person">
+ <email>arthurzam@gentoo.org</email>
+ <name>Arthur Zamarin</name>
+ </maintainer>
<longdescription lang="en">
Go is a new systems programming language developed at google by
Rob Pike. It has garbage collection, coroutines, communication
- channels and a clean syntax.
+ channels and a clean syntax.
</longdescription>
<upstream>
<remote-id type="cpe">cpe:/a:golang:go</remote-id>
diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
index 89d85c82ff90..c29831f637f8 100644
--- a/dev-lang/rust-bin/Manifest
+++ b/dev-lang/rust-bin/Manifest
@@ -969,6 +969,41 @@ DIST rust-1.97.1-x86_64-unknown-linux-gnu.tar.xz 201303968 BLAKE2B b34681966c6d1
DIST rust-1.97.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bd7e3ff768fc85127b05149bcea780946655dc9739c16890b91ac5c072c447e95e017e48dbd923f1f72707c6d58a90c6d94afa0a8bf9f5180fcdff1fa9915595 SHA512 a956a6ab9380d4ced3b2936cb21a08df53b12207255ef1bbd7449fbdb05e5c3be7700fd66b742391721b45c66740f3e577f7b82531ed54a063cf337bbb6bba20
DIST rust-1.97.1-x86_64-unknown-linux-musl.tar.xz 303757716 BLAKE2B 3f5f348946480dde1914d4c34c7dd8f8a4b0a1e8fab3080f30d52abd5b57a11f855a14e338bdfc1cfbd3fc23ab46f12d343d0dd94aebb012166b263eceb6706e SHA512 4e041737709981d4dd9f16fd542eab4c44de46df8f14bb59d73592c394ea94d44ed9dcdf4796b85ed2a056d573d078975909484b6676467ddd56edd5925d45af
DIST rust-1.97.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 29f54843b77cf4f94c5d023b554c6e48d7ae3b7d8759a499e940deb0a00e649f38f97f6af59581d40930caba1fba782b1c075d300d2e91a9fb67725b6cf76dac SHA512 eae2c10c61ae3f399376bda5db6f87f963be1d1dcb840ea39b6168af83807b97dc9ddcd7573717fcd573e0d83485ff55deded33221176d033df7f770450ae80e
+DIST rust-1.98.1-aarch64-unknown-linux-gnu.tar.xz 182826816 BLAKE2B b4a312b85ddb8b15399ea9eb1f5b769bef746d96aae1beceb608eb09d1c5f2ae536e30242f3413b109b3e660f2ab0dcda3cfedaeb6e50ff58e0f58e15f41e28c SHA512 cd8dbce47aa8af3cc21c0ba1784c4a4b733bf636dc5d8c5a6e5474fe7ce6c9594671c2c738ca9da8cbe2e80307f3aa62facf972e672967380ae18655c11c2182
+DIST rust-1.98.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 22d1b6c08bffc2a0799dc81270cd55cf98f867d15249e9fc862ff328f89d6a58b820d3261143829dcbbb8ec2a18a16827a9c440314e7860938c5db9136a21998 SHA512 81d7e26d830630d8776e1e76f3c02114fe479bca69fe42091710727b035d4acfb6f06bdbdc637b896f5cce0440fa68ac299eb292ab4b94486c2553a9a91f4ed7
+DIST rust-1.98.1-aarch64-unknown-linux-musl.tar.xz 277938252 BLAKE2B 00c852bc550256e04eafff8f95d689feb47d097c73bfd40fafc4248023ffd8ebf31b56d43352adb7d325de3b4c0b03041a5b13ad2279a42c134f0a29b87e7b02 SHA512 1f532c70293ed70f2909d1dab5e1b2cbc6f5691eceb9a85c4ee6a1e773df0f3086c96433940f984f4ace850208543f3bde4f404c43e2d149dbecba74d162d66e
+DIST rust-1.98.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B ea19c9c544d204c69a292e1b4af5a8ce236292d322b80f2eb5147b39c117cab1451f6ae3a900bfcc6f01b31ea1fc42b07da04a34b952b67a29642b0d105b0977 SHA512 d7551e1fba3d1fb2fe44ff001641aa966c65ddff1a0d0db9043e14bfc83553df26d855fda1892719c548efb3d22ff2bcbee70855f1adbf66180164abc1591f32
+DIST rust-1.98.1-arm-unknown-linux-gnueabi.tar.xz 256579464 BLAKE2B 9dc3e5ccaa4a1ce124d2d42a662efd360682d6c7ad659e7381ef80c2700e9b3b9f99aaa2abd965e177832d776ed7f6d7ab38f36e3559dd05e5975327e56f65bb SHA512 932467bd810f89543e8d77f41045133804583817e439005c26b270557167edee9f8f06cdaee7ef8824410154478008bc793c5be8a040c76a810a89abf8e03c6d
+DIST rust-1.98.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 5a2d21e686e9ff1932a2cbefc84061d2b6a2fc286ce337b90224bfe8fb93af98f0288b704578945d7b4d449ea3f76296c142d17c749efe08fb79ef883cff615b SHA512 05dd2c84ffe98b8e846f300f50882295b6c1f3e90b15d8bf99a1550792dbf4e7177ab244778345099c560c906920a0803e32116f318c17117d24240328f837fa
+DIST rust-1.98.1-arm-unknown-linux-gnueabihf.tar.xz 254940280 BLAKE2B 32bd562f6f91939f7423d3859962ecd95359f06ee7ccc62ae09a304d05cced785672c7cb81d355d67357a2c6c532b7d1c787172fe72a9d2d19a19015ba90bdf6 SHA512 5efc5aeed53b52ea9133628055c57df8b65eae9cbf661f096e076478c75628fd1795b10e4d5751220eb2ec574058dede011ba1568352d424c22b983f786a72d5
+DIST rust-1.98.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 569cd931c5e1b26314b8c635e679c2ddba72c44e7b2349f6e73f5f7c078fe9f74bb49e87b1e83a93a4c94fb4dc88218637aa8e43b5590facdafc7468be11c191 SHA512 b884a77c3ad6ded0c7ea170dfb4239a9569c626a70087aecb4d729fe3fcdedc8e9163fd9e7161881287c58ebff8a21407ec303a006afc310c89eb0d25a73f8e9
+DIST rust-1.98.1-armv7-unknown-linux-gnueabihf.tar.xz 258744412 BLAKE2B c7cd8736196dd605e5d2cbe671b85e40765184d0b63834a424adba7d15c754a7f6db513e693108f660743ff79471a04097cb09fa767ffa6e1f24057fb2909256 SHA512 fcd49bba8cf1d66cc5f5e9e9254b8fdb4af039b69a0272b225406fecd56df6ea6d7c0a093885d2c993fe5f50c671ce086790fddc00f90a1843a2a4ece11284fb
+DIST rust-1.98.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B c4d5f923a793081c6d8a299e72ce7e2f157ebf5fa3806e38314cf99c792b72d9c63b7f31253f7c5dc80c64ef609bb027af190d01e40d8885a83267cb5fc19958 SHA512 0d6f7283a8a1f18cf9d7a905d6ddbc6953f2392f502247e6ae37744d31e56c10ebf1042fd1bfc4feebff9e9cdd34279e3ac45a000aef55eb42487633ba21bbe9
+DIST rust-1.98.1-i686-unknown-linux-gnu.tar.xz 294851320 BLAKE2B d93f9578882254eaff7309cb59f509224a3c33437311f4225e081f66187ee4a942e1af114b32f2dd2dfc60133106ba706a863741301438d2218a2c11ae48f560 SHA512 d9a89aacaf90238c78e484ea0683ebf193695a9f230606e8fe8250b0b0956194cf4e0fb1709ea18d6acfc9db791aeacaf736cc1b5322ea1d9b02a406396ee850
+DIST rust-1.98.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e5dfb9dbfa7c123b7dc61e25dc7765287f80a96800a65b35bedec27751a7f3ef656f29cfcbc37908c8e56180c0c01252e678c2f769d44bc5b58bba6348cab6ba SHA512 5294995edb70043ad6abecdfd7a9d4e4520d8b48bc4f210f1c76d0260690560bc7d547e64d20913045698b61344d43dbca20d5eb4cb7b96791f673d7503a02f3
+DIST rust-1.98.1-loongarch64-unknown-linux-gnu.tar.xz 292178716 BLAKE2B 40fefd2e591afb0a7764667fca3781efc148ea34949f2186524d66c52f5a2b2e8098abd955076ca95fb6df7ac066435404f3cc7cead5e22fb620a6523826aac6 SHA512 55a597368e9138c45d64aff148f5883256795b0d9b1a124d50e4fbb0fc148a1b66a8a959faffc8e18bcb547f709d5db8189b74e3fc54e7569dac722a42805f77
+DIST rust-1.98.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 78d49f0d35338784ce3c24d6563ab4d7901223b95fa4ec19015d1fa119d03c31cffec242b2413b2ad8cbf76bd6a981d11070cf73a26b92bc781ebd607e435626 SHA512 151dea3d985dcdb0d7717b2c8b08c15fa49b301bfb17f4f6b5ce73eb86e578d51f53ce200b18827c33ca98527f8f103d07d2322ba5353a52e14430d03359da98
+DIST rust-1.98.1-mips-unknown-linux-gnu.tar.xz 82998968 BLAKE2B d3c3eba8ab9a763fa4078ccc6423a4f6a7ca47f26c48616ec9853107ffafbfc8ff5f2be322d2f7838a032b9a3d724a1fb6e507618326f11c1692424ead99b0e3 SHA512 d01f525e0780385e3bc98247cc702a48192fd8876b9a87684d5712e7146cd78ffc7707beb98aaf78a4d8f189865777bbd1ff43181c5c3aeb659b3d16826e4896
+DIST rust-1.98.1-mips64-unknown-linux-gnuabi64.tar.xz 82829200 BLAKE2B b62db04df84b965165c17625e59d56b5f91e18331d50e63dc08e3810551bee474b922ef793661e1fe2fe44840c82e89cbf4b41b3238deb100323a6591be34f18 SHA512 ba1a89ce0267b8d9c3eca1336c1d35738102568ce390553fc077b3c7c1e3abdb0c8bbb793c79e4839b2c3076e0c0b480e33f467dd4164675aa5ad6efe4c990c3
+DIST rust-1.98.1-mips64el-unknown-linux-gnuabi64.tar.xz 84489728 BLAKE2B ca071c9a83be8d3a5bee44fed412fd835e3a8cdb389267c08c5cc9b29e9566d96d879e500ab1b01364e6cc46a3faec7ca5ea8d6e215c6050877a923f47889260 SHA512 cee6cc4bf53d231169a2b89e36aea5fdb9f10bc46378e2dd5a17e15b9bc27945c975e1fa26ee3c39bb968e6b63fa218fb8fc30dea7abba1c474412e57fefa453
+DIST rust-1.98.1-mipsel-unknown-linux-gnu.tar.xz 84777848 BLAKE2B aa5753908f4f8f9a4f65653781b1527776c3b09947c9e9044d52ab22361d3cf5f1d1f80d72551c8835d65e0fa709fdeacf31a2ad3c9b471fb93c7d34b36a86a1 SHA512 9f575694aa89f8bb743c6541ebb1c4b05e6cf4ee95e5f1df6ce0edf75a7059fa78c4cd88d5e083649d7d39f27bb04522389b80591eca1f03d91bd8ebf95de7c2
+DIST rust-1.98.1-powerpc-unknown-linux-gnu.tar.xz 282546556 BLAKE2B 569f002068bc2627bef4e46021061b8b948035dc16df1fa7a5815f835d9b5ae7cb40d2af32608db5a25527e5f2a9df3340ee8866da5954889f680baf2d81d5a7 SHA512 07747ae5f43e4faabcfb19cb53c8f2c1254d5197ca594171278f0d523cd05b894ecf5634735f4e53f937c0b792fff4b3043bc85368176f5b98bdac6946f42ea1
+DIST rust-1.98.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 174e6da5cfd771f3f9ca24a55083f9698ba6c8d8e6736be0dce0f19860b361ea336b82c854cf6d5dece92fddd340e853c32acbb5ac6b6a1223f35b114bafe0b6 SHA512 dafffd4ab16ccd2a73fec23f7931e2c9f4e8ec469c8dee79b0c5267ed3262240ba99e6c36ac404627ad666a350d86947900d461f2ff185581a5b23d5de9444e5
+DIST rust-1.98.1-powerpc64-unknown-linux-gnu.tar.xz 283751128 BLAKE2B 9137602ea2371ef02dc2950547be2e2c9781093a65fc485d8f8cfa5041ea910948f6e6a6c8fd1b5ea12efd34e1a2b8c31bd391eedba7fade746417c10505339f SHA512 a8f21059f296308b6be99865e20e8d4cf443c8d6c8a336184b7e598a776fa0468eb62d06176b5e457a2466b86a7ed54918d6212ae7a021657259f98cde1ebdc5
+DIST rust-1.98.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1da50601219c6a51b4edce60d67a07d416ab8822ec979564b2b1d373abbbcec01f8f92cf2745e08b155ec1351ec58c4b3305f05fed13b3eb554b827e53eccc23 SHA512 eef45fa634c8e255ffcc1f30d5f1dc2c42b1d679411e1798f51772bff4922f25d0b2ca07e112a0c5eda36b004fd4d3607ec60a026f14b4169ef8fefcc0564406
+DIST rust-1.98.1-powerpc64-unknown-linux-musl.tar.xz 87345456 BLAKE2B 7854c98aeb68136719351bd4ebae4d353cb3607fdf42ed48c574366c14699202bcffbb66a79413c09e7a1bd3dcd24bdb1617f39857b0b428a283a12292ae627a SHA512 1e3c8518637edd2ab0bc0b8c7794a1c233d31663d8182ee86d4e49ce2954f31822b421de23c104c6de45dfc96fded300336a1cae05078993eaba97ec67586802
+DIST rust-1.98.1-powerpc64le-unknown-linux-gnu.tar.xz 302535636 BLAKE2B 67936077c5f482fc490e581f78f86a8429b74e7bdf66312fdfec2f2cd6fd8cf726178718f0453b52a0ecb2964f288b8851657c935906b9e0c3125583a7ddc2e6 SHA512 03a947c8cd268eda39de3c8558eba52a71b07e7b620ed87798500959ac33b7c221b3e8847a62093057e9ffe123ea577209bd527fdfc5e212d3112da9bd7a54d7
+DIST rust-1.98.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 08b886bf164070d201dde10b2dd664823114229c0e61666faaa6892c81422ac1a9aac939c89a42fc41e186d837f6b7e026e71942fcaf85dea795b45cf6881900 SHA512 888d63591c13bbfa778df2b3fc296e53af7d2c6c74b57143ee1f350bfaa181cf39f275ead71476d374432fdd5fac367c519f591291ebbc734da3fe9ab4fb9f82
+DIST rust-1.98.1-riscv64gc-unknown-linux-gnu.tar.xz 276387076 BLAKE2B 3cf93f837c91ea769f24fdc718d240ff731754459bba55cee20ed19490f166bd10c0fd400a2e31c792a644f460e19984d23d80c49af722ad671198b4e8cbcf47 SHA512 7bd7e9d48c5f96c0256fdf7aa8950f86863ba11613da8417821eaefce0dc9c69013314e48cf610974d14bbfe990403b98949369abfd28d655f16f3046a7d0742
+DIST rust-1.98.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0e2437c3aafc02edf9e9c11681ecdf710ffc5c788197945d4e5914f2b1367e079452d968db412619729f4073ffd7651924351972c2ba3a53107813e8bcf3a9ac SHA512 cb0b8af11e3ca95dcd5312ef87c6b1336d86d6485b659c8043d54e6f99bd800ccfb0171fc7ac8c3299078769f81910cea20585129ce6f5e7621472cdf28928b7
+DIST rust-1.98.1-riscv64gc-unknown-linux-musl.tar.xz 91871692 BLAKE2B 15f1f42860e85dc3dde5a68818be7e8fe441c585cf97b3326e55f26aefc3c04e257134094956dc59754da553bcc63ca7e1fc3c27c80393aef5bbe8be461bf891 SHA512 d17877eb32aef1e6888e3925165441489e1398b3b5e023dc8d61a77de469cbdef491fc07dc6cf0f23946cea08683051431926c68ed4550af76e5c1f87cb63a28
+DIST rust-1.98.1-s390x-unknown-linux-gnu.tar.xz 274406204 BLAKE2B 7e845bbba27f51fbdd585af2efebf2a325161456d7e0fcf37b001d5f2aef5f74485b36c6d64cfcfbb614b00b2db77b650e0dc7821503abe6a4471ad036a4e0ad SHA512 4d35f6f5ddd9bab933e8e43bd5e207023d3c2f3c88e0ba0fd0387c9b714a6b5eef1e2b1c0c7f4215d061e015940f9ca25b57fdb965c486500b32522652f89108
+DIST rust-1.98.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ed1ca8f191b35da0cde979e556f379be45a5394c15b0260f3d81514308b6a9a09982bf7982b3ae011f7842434aa10c632d65f7ac7b694990e7cd2663e34ee131 SHA512 9d741f9c30ec1562e976a5264da3664a351677427cf69fccd310441ee9e8803c11eaa684f5a9b6055b609938419b897edce55747a3121de31628d58d3ef42796
+DIST rust-1.98.1-sparc64-unknown-linux-gnu.tar.xz 80476244 BLAKE2B 5b9c70486bc9a7bdba2cc61095b03cc778a544b7e3e1d402dea075a17eb356b033f38fda1129899f6edf41c831e83447bd2775bbefcfc3aebb8870571cf050bc SHA512 3d4091bed3c1ec1e74cc40b1f60f3b1fd5ae582e05025054933dbdd94a4ffd8337b18ac64f0836598326719936e40c2565581105f77231b26a5c934542d52753
+DIST rust-1.98.1-x86_64-unknown-linux-gnu.tar.xz 202560136 BLAKE2B 7418f0b386ef4ccd111e44e35cb08b7f85814f85bfa46d8e38d7156582c2c3cc9db3f0b9df97531cfa57f1873f1135bfe70fbb1ba5a04b11a7467b2559edec36 SHA512 eb66023aa9014091485e9dc400969040283c54de62a7ad8bbf3510d239c2756a4c47da79c2829e2769531ed128eece8f549cb4d79384cce3d629054e51ea7dcf
+DIST rust-1.98.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8b80744332642bf008fee49c5bca353077745a57a34cb2ee032f399bd3318cd75fd9a2d43b1eb55a91d1bdd2923f67af19ce2f38e5378281b3b990974a7c6a36 SHA512 80b0f668b4581b9dd27657473c495604656b2d62ed99613ceb66a2b8e2992067c8c4a96fe542be87c4930e45ddf975ce6983de329d7bf87f83df50eea528cc28
+DIST rust-1.98.1-x86_64-unknown-linux-musl.tar.xz 323672928 BLAKE2B 933a3ec8a17dd4ec68c6a1afb1724b87870b1ebdd342825f7ebe44a7f380bcf4584fa8db661ccf50dd54889417559874ab803e4b359fc63dadd6f7c84c112b0c SHA512 a0aeb4730c63023b49fe00b30dea9f7db79f671b429f4b78cb5fd8c3eb21359b68ed88f602e1624952ff4d81828873c8bb63c9c7883966af71801d9017eb9fd6
+DIST rust-1.98.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e900be29f69f99944b0b42ed87dba207358f2bc6001712c014bb2b904bcd221e6d756e15a09af1fe950244168abff6df16594830639f25c10793b3750c884cee SHA512 e021d13de96b82e2af5f89e509d2974c65df736f09ad31fcc770d68f8bf3df5576abcf06ff4f417ea850036e3a3187b49177baa4724085c7bf49887ea03eaabb
DIST rust-src-1.74.1.tar.xz 2544036 BLAKE2B d95431b69f102782f51878ff73ce8802cac6dab7909497c3231d1c479b95dc2a618cc6efd8bac9c6bd59a2b10dc6be05199f1e1bd74e45cc640ee52352c29268 SHA512 11467d0936193c5a5be8c2eba1aefe2b7028af48494698863de2c4057d68ce33dcee1fc66dc2d68b1d32f0202ce49e9b906727849de8f8d904dd07930e76d5a4
DIST rust-src-1.75.0.tar.xz 2570256 BLAKE2B 9db7ccff07ffe6991233e9f530321fd6ba48c561dcf1226537afa70c7d045421d8e83c5300b0866ec6fccfaae96dd67b9f204e9e0e12108c0c766d467cd78909 SHA512 e7565cea2f1658a05237a698e38880df2544319b41b6d8b0805db5f1f94fd3bb4f986967d0440fcdfe3a135e33246f3c747665b964f57ff5942f56133af78cdd
DIST rust-src-1.76.0.tar.xz 2590884 BLAKE2B d1a6215dab34d7b10c3177d2b248f997d3a846388f3442567572880aa5c5bc51b56398f5d4dc32727cee7c9dbef494430d6534a76b66c4ae5ac4fed07266644d SHA512 39d2fe58fae8c8c5a6cb3fb1ef2a1c7548c018fef6ccea531659fdfecd68a4aa77125299d2cbe5b58e500337b4d074928318fa9ebce358af500d0ef27260e3ca
@@ -997,3 +1032,4 @@ DIST rust-src-1.94.1.tar.xz 3751284 BLAKE2B fd15a40f67fd4180adf48c4a4972858f68d7
DIST rust-src-1.95.0.tar.xz 3827368 BLAKE2B b19d0c6043b405fc5d1889f58cbeb8c4b00226ba8ccfb139ff8d3e3c86196a3ebcac5145e9b6befe3e193d1934766d16c190299afa4d87343dc76570c1eb2069 SHA512 7936cd86c35c5283e0845cf848470fb96b142020a43a7a632c646a0bc3e7eb7d7c6f934b84d2a583747decc03be5ef5318de0c7974c8286ba2951cd60db217b2
DIST rust-src-1.96.1.tar.xz 3868228 BLAKE2B f509efa5be0be11da292a9b2d9f4ae87667ea69293fdf81329ae6fb1790437fe3f01c5c7c0691e4e535d5386bca0e1dd090a4b74f7e55f58db4d63be27fff419 SHA512 daca9d4df578682c1a92e0addf4fcb258e135ff9610c81826004089d4ffdf41b3f0b3dbfa2a1562f9531d4e5a58f744e87655f011ff9bbafe04ac5bc63e16639
DIST rust-src-1.97.1.tar.xz 5660384 BLAKE2B 23357e49cc9ba35d1f9f1999af32589fd6e12790cb16ec1895aa9272a8f73a4bea93b0ad4d2b0d330ba46bc5458ca9ade9b5a2400d7f96ef093d4f537a567672 SHA512 fe1ba24325d63c66de18c5bd877cd247173ee3bbb67f6fdc54519c52841658f602d28b3b648849ac9a916b9b5c5f7684415bd8c05556137d717bf73367650db7
+DIST rust-src-1.98.1.tar.xz 5741168 BLAKE2B b5d80e3f45b4d36da9ea2cf6262e41f0213a7c3903a9011850f3ecd4d56de29a1da2e9a98c6da910a786ca21df2ade52e8703a8749b224ac9680a82812cd15ab SHA512 9b3536ecedc719e151c51c11ff1a3f67972ccfbadaa57a5d395f436ab45db78a27e1cb55268cdc72389c333080de08cdf9af0012c4cdda7e384fd24369518198
diff --git a/dev-lang/rust-bin/rust-bin-1.97.1.ebuild b/dev-lang/rust-bin/rust-bin-1.97.1.ebuild
index eca8d155fa21..ef4415f94837 100644
--- a/dev-lang/rust-bin/rust-bin-1.97.1.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.97.1.ebuild
@@ -24,7 +24,7 @@ else
SRC_URI="$(rust_all_arch_uris "rust-${PV}")
rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2026-07-16/rust-src-${PV}.tar.xz )
"
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
fi
GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash
diff --git a/dev-lang/rust-bin/rust-bin-1.98.1.ebuild b/dev-lang/rust-bin/rust-bin-1.98.1.ebuild
new file mode 100644
index 000000000000..b09ce50a5887
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.98.1.ebuild
@@ -0,0 +1,336 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 22 )
+LLVM_OPTIONAL="yes"
+
+inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature
+
+if [[ ${PV} == *9999* ]]; then
+ # We need to fetch a tarball in src_unpack
+ PROPERTIES+=" live"
+elif [[ ${PV} == *beta* ]]; then
+ # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src"
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/
+ SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV})
+ rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz )
+ "
+else
+ # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src"
+ SRC_URI="$(rust_all_arch_uris "rust-${PV}")
+ rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2026-09-03/rust-src-${PV}.tar.xz )
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+
+if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then
+ # Keep this separate to allow easy commenting out if not yet built
+ SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) "
+ SRC_URI+=" mips? (
+ abi_mips_o32? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz )
+ )
+ abi_mips_n64? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz )
+ )
+ )"
+ SRC_URI+=" riscv? (
+ elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz )
+ )"
+ SRC_URI+=" ppc64? ( elibc_musl? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz )
+ ) )"
+fi
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable
+IUSE="big-endian +clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src +rustfmt"
+
+# net-misc/curl is needed for our own bootstrapped rustc, since cross-compiling bundled curl is not supported
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ net-misc/curl
+ sys-apps/lsb-release
+ || (
+ llvm-runtimes/libgcc
+ sys-devel/gcc:*
+ )
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
+"
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+QA_PREBUILT="
+ opt/rust-bin-${SLOT}/bin/.*
+ opt/rust-bin-${SLOT}/lib/.*.so*
+ opt/rust-bin-${SLOT}/libexec/.*
+ opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.*
+ opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${PN}-${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
+src_unpack() {
+ if [[ ${PV} == *9999* ]]; then
+ # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch
+ local rust_bin_url rustc_src_url
+ # Cut down on webrequests by fetching the nightly toml once
+ curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" ||
+ die "Failed to fetch nightly revision info"
+ rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2)
+
+ if use rust-src; then
+ einfo "Using nightly Rust-src from: ${rustc_src_url}"
+ # We need to fetch the rust-src tarball
+ einfo "Fetching nightly rust-src tarball ..."
+ curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" ||
+ die "Failed to fetch nightly rust-src tarball."
+ # no verify-sig here, just unpack it
+ tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball"
+ fi
+
+ local v
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ rust_bin_url=$(grep "xz_url.*rust-nightly-${rust_target}" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2)
+ einfo "Using nightly Rust from ${rust_bin_url} for ${rust_target}"
+
+ einfo "Fetching nightly Rust tarball for ${rust_target} ..."
+ curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball for ${rust_target}"
+ if use verify-sig; then
+ einfo "Fetching nightly signature for ${rust_target} ..."
+ curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature for ${rust_target}"
+ verify-sig_verify_detached "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" \
+ "${WORKDIR}/rust-nightly-${rust_target}.tar.xz.asc"
+ fi
+
+ tar -xf "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" || die "Failed to unpack nightly tarball for ${rust_target}"
+ done
+ else
+ # sadly rust-src tarball does not have corresponding .asc file
+ # so do partial verification
+ if use verify-sig; then
+ for f in ${A}; do
+ if [[ -f ${DISTDIR}/${f}.asc ]]; then
+ verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
+ fi
+ done
+ fi
+
+ default_src_unpack
+ fi
+
+ # We only want to do this for the native ABI. Non-native ABIs are
+ # handled differently in multilib_src_install.
+ case ${PV} in
+ *9999*)
+ mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die
+ ;;
+ *beta*)
+ mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die
+ ;;
+ *)
+ mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die
+ ;;
+ esac
+}
+
+patchelf_for_bin() {
+ local filetype=$(file -b ${1})
+ if [[ ${filetype} == *ELF*interpreter* ]]; then
+ einfo "${1}'s interpreter changed"
+ patchelf ${1} --set-interpreter ${2} || die
+ elif [[ ${filetype} == *script* ]]; then
+ hprefixify ${1}
+ fi
+}
+
+rust_native_abi_install() {
+ pushd "${S}" >/dev/null || die
+ local std="$(grep 'std' ./components || die "std not found in components")"
+ local components=( "rustc" "cargo" "${std}" )
+ use doc && components+=( "rust-docs" )
+ use clippy && components+=( "clippy-preview" )
+ use rustfmt && components+=( "rustfmt-preview" )
+ if use rust-analyzer; then
+ local analysis="$(grep 'analysis' ./components || die "analysis not found in components")"
+ components+=( "rust-analyzer-preview" "${analysis}" )
+ fi
+ # Rust component 'rust-src' is extracted from separate archive
+ if use rust-src; then
+ einfo "Combining rust and rust-src installers"
+ case ${PV} in
+ *9999*)
+ mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die
+ ;;
+ *beta*)
+ mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die
+ ;;
+ *)
+ mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+ ;;
+ esac
+ echo rust-src >> ./components || die
+ components+=( "rust-src" )
+ fi
+ edo ./install.sh \
+ --components="$(IFS=,; echo "${components[*]}")" \
+ --disable-verify \
+ --prefix="${ED}/opt/rust-bin-${SLOT}" \
+ --mandir="${ED}/opt/rust-bin-${SLOT}/man" \
+ --disable-ldconfig
+
+ docompress /opt/${P}/man/
+
+ if use prefix; then
+ local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash)
+ ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/rust-bin-${SLOT}/bin"
+ find "${ED}/opt/rust-bin-${SLOT}/bin" -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ patchelf_for_bin ${filename} ${interpreter} \; || die
+ done
+ eend $?
+ fi
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
+ local ver_i="${i}-bin-${SLOT}"
+ ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die
+ dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}"
+ dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}"
+ dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}"
+ dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
+ _EOF_
+ doenvd "${T}/50${P}"
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${PN}-${SLOT}"
+ popd >/dev/null || die
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ rust_native_abi_install
+ else
+ local rust_target version
+ case ${PV} in
+ *9999*)
+ version=nightly
+ ;;
+ *beta*)
+ version=beta
+ ;;
+ *)
+ version=${PV}
+ ;;
+ esac
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ dodir "/opt/${P}/lib/rustlib"
+ cp -vr "${WORKDIR}/rust-${version}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+ "${ED}/opt/${P}/lib/rustlib" || die
+ fi
+
+ # BUG: installs x86_64 binary on other arches
+ rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version llvm-core/lldb; then
+ elog "Rust installs helper scripts for calling GDB and LLDB,"
+ elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ optfeature "emacs support for rust" app-emacs/rust-mode
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ optfeature "vim support for rust" app-vim/rust-vim
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust-common/Manifest b/dev-lang/rust-common/Manifest
index 63ea5f330b38..a02a9957513a 100644
--- a/dev-lang/rust-common/Manifest
+++ b/dev-lang/rust-common/Manifest
@@ -36,3 +36,5 @@ DIST rustc-1.96.1-src.tar.xz 241602032 BLAKE2B b8a489293a232faf24a7eaaa439f752bc
DIST rustc-1.96.1-src.tar.xz.asc 801 BLAKE2B b54bed57d90fed66806fe0b16c6d81d880bf0398030d639cdc440d7df5a8699d1d0ec5803baee9f0ffd9503be11be3b202f6f4ec86a2167f5349317a714bd265 SHA512 1765666d2509d93cbbad5f47507ba7510fc07cf650689238a8d39d33be0d85a06c4cd67281d78a1b5e29258002d7dd6da912c9015a8d0e942ee01fc46fa0dca3
DIST rustc-1.97.1-src.tar.xz 242787896 BLAKE2B d54e89d84b25d68761663f1c243480f1bb061c30ee17e731f3d9cd1ff52639cf198647347884d7325f2dbc1582a3d8095908352edcb944a49e5b0581160d5fb6 SHA512 a04178bf0f2c43cbb503a5ea48145eebfee371766a589c0855079ae6a7f3945223850dcc6bce2a94b9f9ead1595d99de09bb00cd6180300e0da58dc247f043eb
DIST rustc-1.97.1-src.tar.xz.asc 801 BLAKE2B d0841e9decf17d18c13c33bf0bdb8a51873799465bafa402090f7f680046d141eea0a633278a7387ee741a8a5dd6ceac40384b4a06132e99b34bb7e22f740d04 SHA512 9d3ca698b1a1a453cac8758622609414f10868e8890491d8cd8c0eed796b689623f91cc28377c1e4c33095f02e92af7d1230458fe4e1fd830b6139799af50f32
+DIST rustc-1.98.1-src.tar.xz 244440824 BLAKE2B a055c8341556f29a6e2ca5137ca7943365d61d3b7dc30b182c5c62907659d16ad0caf8c5e884ce2bcf79a01844e19563c9c208fecbebe0c38f8ae6473f60e0eb SHA512 58941e5606651d5a254f36d9771bf6524347068a69ad6fcfb72d0f02b066b16fb415e5d54c8e1266fef777a64ede69c47042f13525a29e39be3e9da84dbccdf4
+DIST rustc-1.98.1-src.tar.xz.asc 801 BLAKE2B abee669a3b9545a50cbc8e4c604a8ff167bf4f0ebf77ef5efebe2c38141e22930ab11ec6c54cd2892bca5295510cb4b65a5a28eba5f70b148cd474921e4fd140 SHA512 2c030148eca74e2d1e5f497b6dc0725a3d3d5dc328ad9f854d46067f24b682f99e7cee9de415b3450e8c315015dd73c1945dd2785163d12dfd0119d089b78276
diff --git a/dev-lang/rust-common/rust-common-1.97.1.ebuild b/dev-lang/rust-common/rust-common-1.97.1.ebuild
index 1037d635a091..44d5013f245f 100644
--- a/dev-lang/rust-common/rust-common-1.97.1.ebuild
+++ b/dev-lang/rust-common/rust-common-1.97.1.ebuild
@@ -32,7 +32,7 @@ else
verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc )
"
S="${WORKDIR}/rustc-${MY_PV}-src"
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
fi
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
diff --git a/dev-lang/rust-common/rust-common-1.98.1.ebuild b/dev-lang/rust-common/rust-common-1.98.1.ebuild
new file mode 100644
index 000000000000..1037d635a091
--- /dev/null
+++ b/dev-lang/rust-common/rust-common-1.98.1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+inherit shell-completion verify-sig
+
+DESCRIPTION="Common files shared between multiple slots of Rust"
+HOMEPAGE="https://www.rust-lang.org/"
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ # In case cargo is not in sync we'll fetch it as a submodule
+ # Nightly users will probably already have the repo cloned and up-to-date anyway.
+ EGIT_REPO_URI="https://github.com/rust-lang/rust.git"
+ EGIT_SUBMODULES=( "-*" "src/tools/cargo" )
+elif [[ ${PV} == *beta* ]]; then
+ # Identify the snapshot date of the beta release:
+ # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz
+ MY_PV=beta
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz
+ verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc
+ -> rustc-${PV}-src.tar.xz.asc )
+ "
+ S="${WORKDIR}/rustc-${MY_PV}-src"
+else
+ MY_PV=${PV}
+ SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz
+ verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc )
+ "
+ S="${WORKDIR}/rustc-${MY_PV}-src"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="0"
+
+# Legacy non-slotted versions bash completions will collide.
+RDEPEND="
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
+"
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )"
+
+src_unpack() {
+ if [[ ${PV} == *9999* ]]; then
+ git-r3_src_unpack
+ else
+ if use verify-sig ; then
+ verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc
+ fi
+
+ # Avoid unpacking the whole tarball which would need check-reqs
+ tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz \
+ "rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die
+ fi
+}
+
+src_configure() {
+ :
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
+ dozshcomp src/tools/cargo/src/etc/_cargo
+}
diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
index f46c2a8d9865..7545061c2a72 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -26,6 +26,7 @@ DIST rust-patches-1.94.1.tar.bz2 3152 BLAKE2B 211eb9785b231225f02673967b05cb0f1f
DIST rust-patches-1.95.0.tar.bz2 2972 BLAKE2B f826baad880a245f9baa9c7ba4a2a7c70fe3d594c8ffb94e58633e5f4149e96a07ce561562cd3d9b303507d7299e535e7031165c108b53a962f8b848682e0c96 SHA512 0fb6662f20490b5fb0512bc670a98fa7d661476de2387fa8025edfbb8359fcef11c7e917e46750ea92231fb49a91b0228fbbe94dbf0427e7a5a924498328f3ce
DIST rust-patches-1.96.1.tar.bz2 2993 BLAKE2B e0e908bc33d6876e491291c6db012f3b670a84c4199faada379f49f2022b74b6f439a7bf26ef945a8f3c868e0493b4b95477ee51a403cafc21ca31449219c635 SHA512 dafbccc233fffad6a294164e536fc6c8d9fe803892ae3462731439ca02fd6e6dcbe17633eca55b308c2bab2436eabbd2bb7ecd2acc57ffb75a63a35f0d27b361
DIST rust-patches-1.97.1.tar.bz2 2987 BLAKE2B 0db863f0c51612a619b74d08818987c18d13270f808db844f002c0eb0799430a7bfeefe026082584baa8cf0f3e1a0f5f018f94297d94ae9291e48a180ec90678 SHA512 6fec796d4c98b23814d0237e0cb5baa514dcd100ec875dd94a56f4d5d9614af4ba44d805fdf385cf36a8ffbdcf54e5f994c5b8212512c4dfb7f929be1f6494d3
+DIST rust-patches-1.98.1.tar.bz2 2980 BLAKE2B 3f5f4c76dd2a23d74f4b00b89a269157a930fd30309cf2bd04c6f8bc8861e648ed092d138fee6315e6031855b2cb425dfdd0c5f89eba260d259b8bf974c145ae SHA512 ad5614457553b803858108432591e1a404a555e68fc374dbbb9e52a781a7f6705560028d9c92dac2852e604abb63bb6f4975d6b9856f2dd05d3efe00506c1bd1
DIST rustc-1.74.1-src.tar.xz 155968724 BLAKE2B e05f2379ac94b286f85791a138e1928e5b5b5a7749f0981d82c40c2a12860f55bf96bb2f0e924e35a0f8b2447b13052d38adea909aaa3199105787bb5a4861b3 SHA512 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d
DIST rustc-1.74.1-src.tar.xz.asc 801 BLAKE2B ddf73175b164233babf31ca3a381b03e20c0f36d017c1d5f85d6ab11f0986d861ab23b11c061e6b2444ced70c3d6a494cc3de4ec86f0deb221a805491bd75420 SHA512 9a96ff9ba9a4e2af4e267b2ec126fc0675c78d0eb767703daa2f28491c3d85c2ab00fbd8584390bf658812ec6c4ab6c57e43b386db59fd505bd3134a8873a09e
DIST rustc-1.75.0-src.tar.xz 159624388 BLAKE2B 8937b80585eddaa3e1f1ef948899d14a170308518c6fef9fe569560cdd870053776956743f796055f2119399b9ca6c0df12fedd789ae46324d071e5126c4e495 SHA512 7b0f25d91b1b5c317980fc88e059200bd43b56a70b445fbc72fb9b96e09775bfd3a98e9bd9d662af80f0ce3aef527c777ee82777e96ca876f47a972d63da8606
@@ -82,3 +83,5 @@ DIST rustc-1.96.1-src.tar.xz 241602032 BLAKE2B b8a489293a232faf24a7eaaa439f752bc
DIST rustc-1.96.1-src.tar.xz.asc 801 BLAKE2B b54bed57d90fed66806fe0b16c6d81d880bf0398030d639cdc440d7df5a8699d1d0ec5803baee9f0ffd9503be11be3b202f6f4ec86a2167f5349317a714bd265 SHA512 1765666d2509d93cbbad5f47507ba7510fc07cf650689238a8d39d33be0d85a06c4cd67281d78a1b5e29258002d7dd6da912c9015a8d0e942ee01fc46fa0dca3
DIST rustc-1.97.1-src.tar.xz 242787896 BLAKE2B d54e89d84b25d68761663f1c243480f1bb061c30ee17e731f3d9cd1ff52639cf198647347884d7325f2dbc1582a3d8095908352edcb944a49e5b0581160d5fb6 SHA512 a04178bf0f2c43cbb503a5ea48145eebfee371766a589c0855079ae6a7f3945223850dcc6bce2a94b9f9ead1595d99de09bb00cd6180300e0da58dc247f043eb
DIST rustc-1.97.1-src.tar.xz.asc 801 BLAKE2B d0841e9decf17d18c13c33bf0bdb8a51873799465bafa402090f7f680046d141eea0a633278a7387ee741a8a5dd6ceac40384b4a06132e99b34bb7e22f740d04 SHA512 9d3ca698b1a1a453cac8758622609414f10868e8890491d8cd8c0eed796b689623f91cc28377c1e4c33095f02e92af7d1230458fe4e1fd830b6139799af50f32
+DIST rustc-1.98.1-src.tar.xz 244440824 BLAKE2B a055c8341556f29a6e2ca5137ca7943365d61d3b7dc30b182c5c62907659d16ad0caf8c5e884ce2bcf79a01844e19563c9c208fecbebe0c38f8ae6473f60e0eb SHA512 58941e5606651d5a254f36d9771bf6524347068a69ad6fcfb72d0f02b066b16fb415e5d54c8e1266fef777a64ede69c47042f13525a29e39be3e9da84dbccdf4
+DIST rustc-1.98.1-src.tar.xz.asc 801 BLAKE2B abee669a3b9545a50cbc8e4c604a8ff167bf4f0ebf77ef5efebe2c38141e22930ab11ec6c54cd2892bca5295510cb4b65a5a28eba5f70b148cd474921e4fd140 SHA512 2c030148eca74e2d1e5f497b6dc0725a3d3d5dc328ad9f854d46067f24b682f99e7cee9de415b3450e8c315015dd73c1945dd2785163d12dfd0119d089b78276
diff --git a/dev-lang/rust/rust-1.97.1.ebuild b/dev-lang/rust/rust-1.97.1.ebuild
index ca030bbee5b7..5b3eeda68df2 100644
--- a/dev-lang/rust/rust-1.97.1.ebuild
+++ b/dev-lang/rust/rust-1.97.1.ebuild
@@ -61,7 +61,7 @@ else
"
S="${WORKDIR}/${MY_P}-src"
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
fi
DESCRIPTION="Systems programming language originally developed by Mozilla"
@@ -262,6 +262,17 @@ pkg_setup() {
pre_build_checks
python-any-r1_pkg_setup
+ if ! [[ -v _RUST_LLVM_MAP[${SLOT}] ]] ; then
+ die "${SLOT} is missing from rust.eclass's RUST_LLVM_MAP! Please fix the eclass."
+ fi
+ local found_slot i
+ for (( i = 0; i < ${#_RUST_SLOTS_ORDERED[@]} ; i++ )) ; do
+ [[ ${_RUST_SLOTS_ORDERED[i]} == ${SLOT} ]] && found_slot=1
+ done
+ if ! [[ -v found_slot ]] ; then
+ die "${SLOT} is missing from rust.eclass's _RUST_SLOTS_ORDERED! Please fix the eclass."
+ fi
+
export LIBGIT2_NO_PKG_CONFIG=1 #749381
if tc-is-cross-compiler; then
use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
diff --git a/dev-lang/rust/rust-1.98.1.ebuild b/dev-lang/rust/rust-1.98.1.ebuild
new file mode 100644
index 000000000000..7a14c866f493
--- /dev/null
+++ b/dev-lang/rust/rust-1.98.1.ebuild
@@ -0,0 +1,963 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump
+
+LLVM_COMPAT=( 22 )
+PYTHON_COMPAT=( python3_{13..14} )
+
+# Patches are kept in rust-patches.git, see its README.rst for the versioning
+# scheme.
+#
+# We use _pN from the ebuild version for the patchset but it can be overridden
+# in the ebuild for changes that don't require a revbump.
+#
+# Uncomment this line when the ebuild needs a patchset update but no revbump.
+# RUST_PATCH_VER=${PV}-1
+
+RUST_MAX_VER=${PV%%_*}
+RUST_PV=${PV%%_p*}
+RUST_P=${PN}-${RUST_PV}
+[[ -z ${RUST_PATCH_VER} ]] && RUST_PATCH_VER=${PV}
+
+if [[ ${PV} == *9999* ]]; then
+ # Update this as new `beta` releases come out.
+ RUST_MIN_VER="1.93.0"
+elif [[ ${PV} == *beta* ]]; then
+ RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0"
+else
+ RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0"
+fi
+
+inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature
+inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs
+inherit verify-sig
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+elif [[ ${PV} == *beta* ]]; then
+ # Identify the snapshot date of the beta release:
+ # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SRC_URI="
+ https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${RUST_PV}-src.tar.xz
+ https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2
+ verify-sig? (
+ https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc
+ -> rustc-${RUST_PV}-src.tar.xz.asc
+ )
+ "
+ S="${WORKDIR}/${MY_P}-src"
+else
+ MY_P="rustc-${RUST_PV}"
+ SRC_URI="
+ https://static.rust-lang.org/dist/${MY_P}-src.tar.xz
+ https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2
+ verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc )
+ "
+ S="${WORKDIR}/${MY_P}-src"
+
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+DESCRIPTION="Systems programming language originally developed by Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai )
+ALL_LLVM_TARGETS+=( LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV )
+ALL_LLVM_TARGETS+=( SystemZ VE WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+# https://github.com/rust-lang/llvm-project/blob/rustc-1.87.0/llvm/CMakeLists.txt
+_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k Xtensa )
+declare -A ALL_RUST_EXPERIMENTAL_TARGETS
+for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do
+ ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0
+done
+
+# Bare metal targets which can be built on the host system and have no
+# dependency on compiler runtime, libc and unwinder.
+ALL_RUST_SYSROOTS=( bpf wasm )
+ALL_RUST_SYSROOTS=( "${ALL_RUST_SYSROOTS[@]/#/rust_sysroots_}" )
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable
+
+IUSE="big-endian +clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto"
+IUSE+=" +rustfmt rust-analyzer rust-src +system-llvm test"
+IUSE+=" ${ALL_LLVM_TARGETS[*]} ${ALL_RUST_SYSROOTS[*]}"
+
+if [[ ${PV} = *9999* ]]; then
+ # These USE flags require nightly rust
+ IUSE+=" miri"
+fi
+
+LLVM_DEPEND=()
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+for _x in "${ALL_LLVM_TARGETS[@]}"; do
+ LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}=]") )" )
+ if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then
+ ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1
+ fi
+done
+LLVM_DEPEND+=( " rust_sysroots_wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" )
+LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" )
+
+# dev-libs/oniguruma is used for documentation
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ dev-libs/oniguruma
+ || (
+ >=sys-devel/gcc-4.7[cxx]
+ >=llvm-core/clang-3.5
+ )
+ lto? ( system-llvm? (
+ || (
+ $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}')
+ sys-devel/mold
+ )
+ ) )
+ rust_sysroots_wasm? ( llvm-core/clang )
+ !system-llvm? (
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ dev-db/sqlite:3
+ net-misc/curl[http2,ssl]
+ virtual/zlib:=
+ dev-libs/openssl:0=
+ system-llvm? (
+ ${LLVM_DEPEND[*]}
+ llvm-libunwind? ( llvm-runtimes/libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="
+ ${DEPEND}
+ app-eselect/eselect-rust
+ dev-lang/rust-common
+ sys-apps/lsb-release
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
+"
+
+REQUIRED_USE="
+ || ( ${ALL_LLVM_TARGETS[*]} )
+ rust-analyzer? ( rust-src )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ rust_sysroots_bpf? ( llvm_targets_BPF )
+ rust_sysroots_wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warning
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${SLOT}/bin/.*
+ usr/lib/${PN}/${SLOT}/libexec/.*
+ usr/lib/${PN}/${SLOT}/lib/lib.*.so
+ usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${SLOT}/lib/lib.*.so.*
+ usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-objcopy
+ usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+pre_build_checks() {
+ local M=9216
+ # multiply requirements by 1.3 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ if [[ ${PV} == *9999* ]]; then
+ M=$(( $(usex miri 128 0) + ${M} ))
+ fi
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex rust_sysroots_bpf 256 0) + ${M} ))
+ M=$(( $(usex rust_sysroots_wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ if ! [[ -v _RUST_LLVM_MAP[${SLOT}] ]] ; then
+ die "${SLOT} is missing from rust.eclass's RUST_LLVM_MAP! Please fix the eclass."
+ fi
+ local found_slot i
+ for (( i = 0; i < ${#_RUST_SLOTS_ORDERED[@]} ; i++ )) ; do
+ [[ ${_RUST_SLOTS_ORDERED[i]} == ${SLOT} ]] && found_slot=1
+ done
+ if ! [[ -v found_slot ]] ; then
+ die "${SLOT} is missing from rust.eclass's _RUST_SLOTS_ORDERED! Please fix the eclass."
+ fi
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ rust_pkg_setup
+
+ if use system-llvm; then
+ llvm-r1_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix)/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+rust_live_get_sources() {
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/rust-patches.git
+ "
+ EGIT_CHECKOUT_DIR="${WORKDIR}/rust-patches-${RUST_PATCH_VER}"
+ git-r3_src_unpack
+
+ EGIT_REPO_URI="
+ https://github.com/rust-lang/rust.git
+ "
+ EGIT_SUBMODULES=(
+ "*"
+ "-src/gcc"
+ )
+ S="${WORKDIR}/rust"
+ EGIT_CHECKOUT_DIR="${S}"
+ git-r3_src_unpack
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999* ]] ; then
+ rust_live_get_sources
+
+ # Vendor dependencies
+ mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml}
+ touch "${S}/.cargo/bootstrap.toml" || die
+ local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")"
+ # Configure vendor to use the portage-provided toolchain. This prevents it from
+ # attempting to fetch a `beta` toolchain from the internet.
+ cat <<- _EOF_ > "${T}/vendor-bootstrap.toml"
+ # Suppresses a warning about tracking changes which we don't care about.
+ change-id = "ignore"
+ [build]
+ build = "$(rust_abi "${CBUILD}")"
+ host = ["$(rust_abi "${CHOST}")"]
+ target = ["$(rust_abi "${CHOST}")"]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ _EOF_
+ # We're using git sources so we need to run the Vendor script
+ # to ensure that all dependencies are present and up-to-date
+ mkdir "${S}/vendor" || die
+ # This also compiles the 'build helper', there's no way to avoid this.
+ ${EPYTHON} "${S}"/x.py vendor -v --config="${T}"/vendor-bootstrap.toml \
+ -j$(get_makeopts_jobs) ||
+ die "Failed to vendor dependencies"
+ # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around.
+ cat <<- _EOF_ > "${S}/.cargo/config.toml"
+ [source.crates-io]
+ replace-with = "vendored-sources"
+
+ [source."git+https://github.com/rust-lang/team"]
+ git = "https://github.com/rust-lang/team"
+ replace-with = "vendored-sources"
+
+ [source.vendored-sources]
+ directory = "vendor"
+ _EOF_
+ elif use verify-sig ; then
+ # Patch tarballs are not signed (but we trust Gentoo infra)
+ verify-sig_verify_detached "${DISTDIR}"/rustc-${RUST_PV}-src.tar.xz{,.asc}
+ default
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ # Commit patches to the appropriate branch in proj/rust-patches.git
+ # then cut a new tag / tarball. Don't add patches to ${FILESDIR}
+ PATCHES=(
+ "${WORKDIR}/rust-patches-${RUST_PATCH_VER}/"
+ )
+
+ if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then
+ export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld"
+ fi
+
+ default
+}
+
+src_configure() {
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+
+ local rust_host_triple="$(rust_abi "${CHOST}")"
+
+ # https://docs.rs/pkg-config/latest/pkg_config/#cross-compilation
+ local pcvar
+ for pcvar in PKG_CONFIG_{PATH,LIBDIR} ; do
+ pcvar="${pcvar}_${rust_host_triple//-/_}"
+
+ [[ -n ${!pcvar} ]] && continue
+
+ case ${pcvar} in
+ *PKG_CONFIG_PATH*)
+ printf -v "${pcvar}" "${ESYSROOT}/usr/$(get_libdir)/pkgconfig"
+ ;;
+ *PKG_CONFIG_LIBDIR*)
+ printf -v "${pcvar}" "${ESYSROOT}/usr/$(get_libdir)"
+ ;;
+ *)
+ continue
+ ;;
+ esac
+
+ export "${pcvar}"
+ done
+
+ # https://docs.rs/openssl/latest/openssl/#manual
+ local osslvar
+ for osslvar in OPENSSL_{INCLUDE_,LIB_,}DIR ; do
+ osslvar="${rust_host_triple}_${osslvar}"
+ osslvar="${osslvar^^}"
+ osslvar="${osslvar//-/_}"
+
+ [[ -n ${!osslvar} ]] && continue
+
+ case ${osslvar} in
+ *OPENSSL_DIR*)
+ printf -v "${osslvar}" "${ESYSROOT}/usr"
+ ;;
+ *OPENSSL_INCLUDE_DIR*)
+ printf -v "${osslvar}" "${ESYSROOT}/usr/include"
+ ;;
+ *OPENSSL_LIB_DIR*)
+ printf -v "${osslvar}" "${ESYSROOT}/usr/$(get_libdir)"
+ ;;
+ *)
+ continue
+ ;;
+ esac
+
+ export "${osslvar}"
+ done
+
+ # https://issues.chromium.org/issues/357917328
+ # https://github.com/rust-lang/libz-sys/blob/1.1.18/build.rs#L25
+ export LIBZ_SYS_STATIC=1
+ fi
+
+ # Avoid bundled copies of libraries
+ export RUSTONIG_SYSTEM_LIBONIG=1
+ export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
+
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use rust_sysroots_bpf; then
+ rust_targets+=",\"bpfeb-unknown-none\",\"bpfel-unknown-none\""
+ fi
+ if use rust_sysroots_wasm; then
+ rust_targets+=",\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
+ use rust-src && tools+=',"src"'
+
+ if [[ ${PV} == *9999* ]]; then
+ use miri && tools+=',"miri"'
+ fi
+
+ local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")"
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ RUST_EXPERIMENTAL_TARGETS=()
+ for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do
+ if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then
+ RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} )
+ fi
+ done
+ RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]}
+
+ local cm_btype="$(usex debug DEBUG RELEASE)"
+ local build_channel
+ local build_miri="false"
+ case "${PV}" in
+ *9999*)
+ build_channel="nightly"
+ ;;
+ *beta*)
+ build_channel="beta"
+ ;;
+ *)
+ build_channel="stable"
+ ;;
+ esac
+
+ # TODO: Add optimized-compiler-builtins for system-llvm to avoid
+ # building bundled compiler-rt.
+ cat <<- _EOF_ > "${S}"/bootstrap.toml
+ # Suppresses a warning about tracking changes which we don't care about.
+ change-id = "ignore"
+ # https://github.com/rust-lang/rust/issues/135358 (bug #947897)
+ profile = "dist"
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}"
+ link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ echo "use-libcxx = true"
+ echo "static-libstdcpp = false"
+ fi)
+ $(case "${rust_target}" in
+ i586-*-linux-*)
+ # https://github.com/rust-lang/rust/issues/93059
+ echo 'cflags = "-fcf-protection=none"'
+ echo 'cxxflags = "-fcf-protection=none"'
+ echo 'ldflags = "-fcf-protection=none"'
+ ;;
+ *)
+ ;;
+ esac)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ description = "gentoo"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = true
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"${CHOST}-cc\""
+ fi)
+ channel = "${build_channel}"
+ rpath = true
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ omit-git-hash = false
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex rust_sysroots_wasm))
+ $(if use lto && tc-is-clang && ! tc-ld-is-mold; then
+ echo "use-lld = true"
+ fi)
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex rust_sysroots_wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ # See https://github.com/rust-lang/rust/issues/121124
+ lto = "$(usex lto thin off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/bootstrap.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/bootstrap.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/bootstrap.toml
+ crt-static = false
+ musl-root = "$($(tc-getCC) -print-sysroot)/usr"
+ _EOF_
+ fi
+ done
+ if use rust_sysroots_wasm; then
+ wasm_target="wasm32-unknown-unknown"
+ if tc-is-clang; then
+ local wasm_cc=$(tc-getCC)
+ local wasm_cxx=$(tc-getCXX)
+ else
+ local wasm_cc=${CHOST}-clang
+ local wasm_cxx=${CHOST}-clang++
+ fi
+ export CFLAGS_${wasm_target//-/_}="$(
+ CC="${wasm_cc} --target=wasm32-unknown-unknown"
+ filter-flags '-mcpu*' '-march*' '-mtune*'
+ strip-unsupported-flags
+ echo "${CFLAGS}"
+ )"
+ cat <<- _EOF_ >> "${S}"/bootstrap.toml
+ [target.wasm32-unknown-unknown]
+ cc = "${wasm_cc}"
+ cxx = "${wasm_cxx}"
+ linker = "$(usex system-llvm lld rust-lld)"
+ # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
+ profiler = false
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/bootstrap.toml
+ [target.${cross_rust_target}]
+ ar = "${cross_toolchain}-ar"
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ranlib = "${cross_toolchain}-ranlib"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/bootstrap.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/bootstrap.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+ if [[ "${cross_rust_target}" == *-uefi ]]; then
+ # Profiler is not supported on bare-metal
+ cat <<- _EOF_ >> "${S}"/bootstrap.toml
+ profiler = false
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" bootstrap.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "bootstrap.toml contents:"
+ cat "${S}"/bootstrap.toml || die
+ echo
+}
+
+src_compile() {
+ # -v will show invocations, -vv "very verbose" is overkill, -vvv "very very verbose" is insane
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -v \
+ --config="${S}"/bootstrap.toml -j$(get_makeopts_jobs) || die
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen-units
+ crashes
+ codegen-llvm
+ incremental
+ mir-opt
+ pretty
+ run-make
+ run-make-cargo
+ )
+
+ # tests for standard and core library
+ local std_tests=(
+ std
+ core
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly-llvm )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]} ${std_tests[@]}"
+ for i in "tests/${tests[@]}" "library/${std_tests[@]}"; do
+ local t="${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/bootstrap.toml \
+ -j$(get_makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -v \
+ --config="${S}"/bootstrap.toml -j$(get_makeopts_jobs) || die
+
+ docompress /usr/lib/${PN}/${SLOT}/share/man/
+
+ # bash-completion files are installed by dev-lang/rust-common instead
+ # bug #689562, #689160.
+ rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d" || die
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ if [[ ${PV} = *9999* ]]; then
+ use miri && symlinks+=( miri cargo-miri )
+ fi
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${RUST_PV%%_*}"
+ if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}"
+ use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}"
+ dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}"
+ dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}"
+ dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${RUST_P}"
+
+ newenvd - "50${RUST_P}" <<-_EOF_
+ MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${RUST_P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${RUST_P}"
+ fi
+ if [[ ${SLOT} == *9999* ]] && use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${RUST_P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${RUST_P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${RUST_P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${RUST_P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/lib/rust/libexec >> "${T}/provider-${RUST_P}"
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${RUST_P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${PN}-${SLOT}"
+
+ if use dist; then
+ "${EPYTHON}" ./x.py dist -v --config="${S}"/bootstrap.toml \
+ -j$(get_makeopts_jobs) || die
+ insinto "/usr/lib/${PN}/${SLOT}/dist"
+ doins -r "${S}/build/dist/."
+ fi
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version llvm-core/lldb; then
+ elog "Rust installs helper scripts for calling GDB and LLDB,"
+ elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${RUST_PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ optfeature "emacs support for rust" app-emacs/rust-mode
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ optfeature "vim support for rust" app-vim/rust-vim
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust/rust-9999.ebuild b/dev-lang/rust/rust-9999.ebuild
index cbf34ecb6833..2ebfd7ba7f3f 100644
--- a/dev-lang/rust/rust-9999.ebuild
+++ b/dev-lang/rust/rust-9999.ebuild
@@ -262,6 +262,17 @@ pkg_setup() {
pre_build_checks
python-any-r1_pkg_setup
+ if ! [[ -v _RUST_LLVM_MAP[${SLOT}] ]] ; then
+ die "${SLOT} is missing from rust.eclass's RUST_LLVM_MAP! Please fix the eclass."
+ fi
+ local found_slot i
+ for (( i = 0; i < ${#_RUST_SLOTS_ORDERED[@]} ; i++ )) ; do
+ [[ ${_RUST_SLOTS_ORDERED[i]} == ${SLOT} ]] && found_slot=1
+ done
+ if ! [[ -v found_slot ]] ; then
+ die "${SLOT} is missing from rust.eclass's _RUST_SLOTS_ORDERED! Please fix the eclass."
+ fi
+
export LIBGIT2_NO_PKG_CONFIG=1 #749381
if tc-is-cross-compiler; then
use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
diff --git a/dev-libs/libmirage/Manifest b/dev-libs/libmirage/Manifest
index f9696b2866be..e7414827d5b0 100644
--- a/dev-libs/libmirage/Manifest
+++ b/dev-libs/libmirage/Manifest
@@ -1 +1,2 @@
DIST libmirage-3.3.2.tar.xz 274492 BLAKE2B e2abd9497e48649939b990a60fc11f79002fd67160c42f8d729ac74a4fdf657437133f338db9e7f3311b35d7da1197152348a9c84c8fac07760b8bccd1bc4d04 SHA512 e9cc7e97d2271159a26fda92dda8197a518608dce1d467ca081edc6aa28bf669dcb783abfaaab1d2ec4c58e3cc20608bbbe31459db23ccd6106a11c147aa92ce
+DIST libmirage-3.3.3.tar.xz 274956 BLAKE2B b095b4e208da80de810fad4c39ac05f36ce9e77937b0faf3df68e7b093da1252c32b078235d1d5f4c2143d22dbb379228ad0d528316ceba6ec45b92d119eac18 SHA512 52cc4d07356926f6a5791d86d32971ebdbb9aff5e1ff62c6a2ec22cf3a3428775857485cdefff3c9220bf647d1250780cb7b10862fbaa7fe7bb3b7a71f38b9e7
diff --git a/dev-libs/libmirage/libmirage-3.3.3.ebuild b/dev-libs/libmirage/libmirage-3.3.3.ebuild
new file mode 100644
index 000000000000..8ce0a9712692
--- /dev/null
+++ b/dev-libs/libmirage/libmirage-3.3.3.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake xdg-utils
+
+DESCRIPTION="CD and DVD image access library"
+HOMEPAGE="https://cdemu.sourceforge.io"
+SRC_URI="https://download.sourceforge.net/cdemu/libmirage/${P}.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="0/12"
+KEYWORDS="~amd64 ~x86"
+IUSE="crypt doc +introspection"
+
+DEPEND="
+ >=app-arch/bzip2-1:=
+ >=app-arch/xz-utils-5:=
+ >=dev-libs/glib-2.38:2
+ >=media-libs/libchdr-0.2:=
+ >=media-libs/libsamplerate-0.1:=
+ >=media-libs/libsndfile-1.0:=
+ virtual/zlib:=
+ crypt? ( dev-libs/libgcrypt:= )
+ introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2 )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ dev-util/desktop-file-utils
+ dev-util/intltool
+ sys-devel/gettext
+ virtual/pkgconfig
+ doc? ( dev-util/gtk-doc )
+ introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2 )
+"
+
+DOCS=( AUTHORS README )
+
+src_configure() {
+ local mycmakeargs=(
+ -DGTKDOC_ENABLED="$(usex doc)"
+ -DINTROSPECTION_ENABLED="$(usex introspection)"
+ -DPOST_INSTALL_HOOKS=OFF # avoid sandbox violation, #487304
+ -DLIBGCRYPT_ENABLED=$(usex crypt)
+ )
+ cmake_src_configure
+}
+
+pkg_postinst() {
+ xdg_mimeinfo_database_update
+}
+
+pkg_postrm() {
+ xdg_mimeinfo_database_update
+}
diff --git a/dev-libs/simdjson/Manifest b/dev-libs/simdjson/Manifest
index 1d4597989577..552a74f2a7fb 100644
--- a/dev-libs/simdjson/Manifest
+++ b/dev-libs/simdjson/Manifest
@@ -1,5 +1,6 @@
DIST CPM_0.40.2.cmake 41017 BLAKE2B 012ee2bfc1aac818efc49a04a52e77a3f574c63a12b260b06258d5dced5fc14da860eedc0d8c13c61efc77623f92503150733fa9932276e57b8dd88839ac0de9 SHA512 5cb650049473690466c9678ac5f1c42185429c0c12f95e2bab0577c34640fa80c1331b0f46af18ecae258a9eb3c6ed980df4f1cca07650f5ca2a084a88415ffc
DIST simdjson-4.3.0.gh.tar.gz 6620038 BLAKE2B dc916ef76b5e1e254af076358f35f3b6ce335770ed28963072c28d12422108ec77ff38b69be68f91c09e80da1b0332794402e966ab6f09dbcdd17e08dc163a6c SHA512 e0aee07decb7d6f82b4b32d3a6f41ec35c1902558c7278a6fad595fbe151a957fab4f16292a13a103a6d1f828003656f7ae855f725fcac96e91585425c868eb4
+DIST simdjson-4.6.10.gh.tar.gz 6694097 BLAKE2B 53178327959d97417834198830e8165a5b8e15a8dd4d1d76707f588099fef6821885d02688a595337dc3ba6113fbe3dcc0b97e43d8c2df218019cc157523202a SHA512 65f1efcb6ba1288782e42af316b0c04c53b4f5c58f4e22116c2ae4930a819abdfc07b8feadd993f614abaa5c400c7880ae96fdec5a51479d0f2768703cdedc98
DIST simdjson-4.6.2.gh.tar.gz 6678316 BLAKE2B 17669f71eb6cb6f03a5f0d6e69cec42a5b821f4d0984662c3633622ae7101e1cb152f541a2185f80c334a20ac701f2302e50309137c2f4a707c28d24de8966d1 SHA512 69612610cb91854c8e7160470ee268f7de3b3513b5e4097d260d3e87860be111c0b3ac4ccc6dcfd8b81801305d88db09def3ab933ed977bfccc46ff60dbe4d54
DIST simdjson-4.6.7.gh.tar.gz 6690017 BLAKE2B 1fda88f8794ca56f70f97111f6c707c58ccf064ea4ae33ab0b3c8402ae96f17382ad74678bb21d3a6452550e9341fe9cb3b6bb17afccd58c7f6912264a8432a0 SHA512 2ae72d7a63f997e9a0bd61d0ae5104bfd61654190ff4710caa35477d7fdb84918bf081203b7aff1230f2c2aa20bde64c543fce345fa179134067d657a2623683
DIST simdjson-4.6.9.gh.tar.gz 6693715 BLAKE2B fc5f435e57f7afab0ff5993a50a4da6c88db34a442481922705e8db5144d74767ca70614a264d009b455cbfd3624455c42f572272ef0c2caa4bf27dd3430fc6e SHA512 b5c70b29fff7728ec5883ebff39829b9fe1c6dac4e2775b01be0bfcc99f7dab596f97f8e3b58852b2556b81639ad5e08b43b036407814defd6487edfbc7f3abe
diff --git a/dev-libs/simdjson/simdjson-4.6.10.ebuild b/dev-libs/simdjson/simdjson-4.6.10.ebuild
new file mode 100644
index 000000000000..9b89182eacef
--- /dev/null
+++ b/dev-libs/simdjson/simdjson-4.6.10.ebuild
@@ -0,0 +1,107 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs cmake
+
+SIMDJSON_DATA_HASH="351949906abde446f0314bf79606fb5d884f5be7"
+CPM_SIMDJSON_DATA_HASH="3a55454e9d9a7133903378c28fb053f478f24537"
+CPM_VERSION="0.40.2"
+DESCRIPTION="SIMD accelerated C++ JSON library"
+HOMEPAGE="
+ https://simdjson.org/
+ https://github.com/simdjson/simdjson
+"
+SRC_URI="
+ https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz
+ https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_VERSION}/CPM.cmake -> CPM_${CPM_VERSION}.cmake
+ https://github.com/${PN}/${PN}-data/archive/${SIMDJSON_DATA_HASH}.tar.gz -> ${PN}-data-${SIMDJSON_DATA_HASH}.tar.gz
+"
+
+LICENSE="Apache-2.0 Boost-1.0 BSD MIT"
+SLOT="0/33"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+IUSE="+all-impls test tools"
+
+BDEPEND="
+ sys-apps/file
+ sys-apps/grep
+ virtual/pkgconfig
+"
+DEPEND="
+ tools? ( >=dev-libs/cxxopts-3.2:= )
+"
+
+REQUIRED_USE="test? ( tools )"
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/simdjson-1.0.0-install-tools.patch"
+ "${FILESDIR}/simdjson-3.10.1-tests.patch"
+)
+
+DOCS=(
+ AUTHORS
+ CONTRIBUTING.md
+ CONTRIBUTORS
+ HACKING.md
+ README.md
+)
+
+src_prepare() {
+ # Need to make sure that CPM finds the data package
+ mkdir "${WORKDIR}/cpm" "${WORKDIR}/${PN}-data" || die
+ cp "${DISTDIR}/CPM_${CPM_VERSION}.cmake" "${WORKDIR}/cpm/CPM_${CPM_VERSION}.cmake" || die
+ ln -s "../${PN}-data-${SIMDJSON_DATA_HASH}" "${WORKDIR}/${PN}-data/${CPM_SIMDJSON_DATA_HASH}" || die
+
+ sed -e 's:-Werror ::' -i cmake/developer-options.cmake || die
+ sed -e '/Werror/ d ; /Werror/ d ' -i tests/ondemand/compilation_failure_tests/CMakeLists.txt || die
+ sed -e "s:^c++ :$(tc-getCXX) :" -i singleheader/README.md || die
+ mv tools/{,simd}jsonpointer.cpp || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DSIMDJSON_INSTALL:BOOL=ON
+ -DSIMDJSON_ENABLE_THREADS:BOOL=ON
+ -DSIMDJSON_ENABLE_FUZZING:BOOL=OFF
+ -DCPM_SOURCE_CACHE:STRING="${WORKDIR}"
+ -Wno-dev
+ )
+ use test && mycmakeargs+=(
+ -DSIMDJSON_TESTS:BOOL=ON
+ )
+
+ if use tools; then
+ mycmakeargs+=(
+ -DSIMDJSON_DEVELOPER_MODE:BOOL=ON
+ -DSIMDJSON_ALLOW_DOWNLOADS:BOOL=OFF
+ -DSIMDJSON_GOOGLE_BENCHMARKS:BOOL=OFF
+ -DSIMDJSON_COMPETITION:BOOL=OFF
+ -DSIMDJSON_TOOLS:BOOL=ON
+ )
+ elif ! use test; then
+ mycmakeargs+=(
+ -DSIMDJSON_DEVELOPER_MODE:BOOL=OFF
+ )
+ fi
+
+ if use all-impls; then
+ local -a impls=("fallback")
+ if use amd64; then
+ impls+=("westmere" "haswell" "icelake")
+ elif use arm64; then
+ impls+=("arm64")
+ elif use ppc64; then
+ impls+=("ppc64")
+ fi
+
+ mycmakeargs+=(
+ -DSIMDJSON_IMPLEMENTATION:STRING=$(printf '%s;' "${impls[@]}")
+ )
+ fi
+
+ cmake_src_configure
+}
diff --git a/dev-python/amqp/amqp-5.3.1.ebuild b/dev-python/amqp/amqp-5.3.1.ebuild
index fb26fe332810..1611d5749cf6 100644
--- a/dev-python/amqp/amqp-5.3.1.ebuild
+++ b/dev-python/amqp/amqp-5.3.1.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
@@ -22,19 +22,15 @@ IUSE="extras"
RDEPEND="
>=dev-python/vine-5.0.0[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- >=dev-python/pytest-rerunfailures-6.0[${PYTHON_USEDEP}]
- )
-"
distutils_enable_sphinx docs \
'>=dev-python/sphinx-celery-2.1.3'
+EPYTEST_PLUGINS=( pytest-rerunfailures )
distutils_enable_tests pytest
EPYTEST_IGNORE=(
# rmq tests require a rabbitmq instance
- t/integration/test_rmq.py
+ /integration/test_rmq.py
)
EPYTEST_DESELECT=(
diff --git a/dev-python/bashate/bashate-2.1.1.ebuild b/dev-python/bashate/bashate-2.1.1.ebuild
index e68185dae39d..3d894aa13f2f 100644
--- a/dev-python/bashate/bashate-2.1.1.ebuild
+++ b/dev-python/bashate/bashate-2.1.1.ebuild
@@ -17,7 +17,7 @@ IUSE="test"
RESTRICT="!test? ( test )"
BDEPEND="
- >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pbr-2.2.0[${PYTHON_USEDEP}]
test? (
dev-python/fixtures[${PYTHON_USEDEP}]
dev-python/testtools[${PYTHON_USEDEP}]
diff --git a/dev-python/bitstring/Manifest b/dev-python/bitstring/Manifest
index d138be1eee0a..d63992109a84 100644
--- a/dev-python/bitstring/Manifest
+++ b/dev-python/bitstring/Manifest
@@ -1,2 +1 @@
-DIST bitstring-4.3.1.tar.gz 251426 BLAKE2B 9dfc8e3b31c8edcba3a492e844ceca5da9fb874e655bb45c1dc478b8c0fe54a66beebb8869d70fbe9fbc02fc0cccfb8faee73602d99051abd732ff4d18e02e01 SHA512 5c36d37eb447632c95559788187ea40436fb327a6fab72c6c7332a11726172a1ac9f9ea115022ed2bab644152f04e73541efd838a057890763a2dba78d1dc4ab
DIST bitstring-4.4.0.tar.gz 255209 BLAKE2B f060e2ac349cb5b8430b87d262f738b3c028e9246cc6f3e2e041bd35f23326d36b48b79f43b1dd3d8974997db941b6068f42f9b84f618ce82217187be8aaad9a SHA512 ee845ba43cf77f9e36fee1109b73a0f61c35a4f08fd5bcba38bc3be934b9405830f4666704d77811593302bfcdecc25403c1a455a3fdf9174b133be758a46ccc
diff --git a/dev-python/bitstring/bitstring-4.3.1.ebuild b/dev-python/bitstring/bitstring-4.3.1.ebuild
deleted file mode 100644
index 310c3680f019..000000000000
--- a/dev-python/bitstring/bitstring-4.3.1.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# 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_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A pure Python module for creation and analysis of binary data"
-HOMEPAGE="
- https://github.com/scott-griffiths/bitstring/
- https://pypi.org/project/bitstring/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86"
-
-RDEPEND="
- =dev-python/bitarray-3*[${PYTHON_USEDEP}]
- >=dev-python/gfloat-0.1[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/hypothesis[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-EPYTEST_IGNORE=(
- tests/test_benchmarks.py
-)
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index c2d96d08589b..b01887e7d931 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -16,3 +16,4 @@ DIST boto3-1.43.83.gh.tar.gz 1218064 BLAKE2B 0758e28dd9b086615b045e107aece2ef46b
DIST boto3-1.43.85.gh.tar.gz 1219943 BLAKE2B 4fe0a155efcdd5dcc17c91047fab4c59edb71ac6574fc1e6472db83d9b5effb66d69d346767a159f6708d7e2f61f2f59f6bf84557df98eb6fab83b4438f7540e SHA512 3f8ca9eb5857d3376dbc204b4c3755704e6039ddc3363665e7c3a3d764808815b43c3ce0181e19113a51b5e3c8965d3030c875435cf9b872df6e02bb6136e09f
DIST boto3-1.43.86.gh.tar.gz 1222155 BLAKE2B 9d7b9fcc7a0b016779a75fba6bbefc9e8482a4f0d323be4f70df93501384a089eb9958e70d54f8ae7034d20783f123124eed5e3bef80d432b2d73cfc1994ba4d SHA512 928731d0772f743654316b3280821450979dd219457370bbbbf2cd4670a1f0c414c022c042b35a950b6c1fdc7de2c7865f4ada12c3f43851a7279d056073964a
DIST boto3-1.43.87.gh.tar.gz 1223277 BLAKE2B 382ae63edc6c2578875d90f94132ac3d78d638121ba661f5ea38b9baba02a247e427d3a84ab1b9fac989ee6dfc9a125c7388e816951507346c59a657d5cf451a SHA512 2962861366281d0bb3c29554d90110dc4b86ae7e0c62aef9ed211443350329701d722d1b17a55706f9aa8ed96a2c7e9364f21f1eac8609786219fc8e3d4b386e
+DIST boto3-1.43.88.gh.tar.gz 1224962 BLAKE2B 653cabca3187a1b1bad1e8d7163b889599393c0f82e59aa920081eaa284b6fbc9b4fc4b1e43e9bfb4639ddd7e8b6f0083e67b64df5115645d0686b0d884c6ff8 SHA512 2f8a49a4a587b86964faaa995a8b1a3e4b8867e65c6854d68b9129fc9db90e357c1548f044f51931a9157405bc71fd70784444b7e7cc88fe4bde1a16d4c34efe
diff --git a/dev-python/boto3/boto3-1.43.88.ebuild b/dev-python/boto3/boto3-1.43.88.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.88.ebuild
@@ -0,0 +1,53 @@
+# 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_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index a6a964795f2e..e615538f788b 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -16,3 +16,4 @@ DIST botocore-1.43.83.gh.tar.gz 17038145 BLAKE2B f74b399b04f9b259e1a2f424719c4b8
DIST botocore-1.43.85.gh.tar.gz 17071353 BLAKE2B 84edcc7b58925e2674af6610760d683e74351dbf53c86d8fb5412739b4705677b2bd66a7f9b904ef917894cf0f1d818821fd3a61730c544d25f13e6ab54a3e1f SHA512 425d67488cfe19cd306792ab3a72e0afff0c269abb46fb26121c302f41bf683f905f480729b21929718e86ac74e390a70c07f52d0fabdc7961e063cfc87f49df
DIST botocore-1.43.86.gh.tar.gz 17090953 BLAKE2B 678080faeba0124717742214de0d2aeff669d12c315dda79df1213d897435fba91ceee6f999ae57e5f98784bdce771cbc4da735b1228c5ce945a08cd8e086173 SHA512 107571fc5da8d1ca180b64001f866e03099bec06d37129de9874ac2f28512dc0ff3915334b7681f151c4c6e4d50d58b1417552d0379afcb67c4743a0575acf99
DIST botocore-1.43.87.gh.tar.gz 17095695 BLAKE2B 9b964d12a54442537fab058a04da654314b17f075aa03d3a4f38f73f4d1a7893d9d5f7e5b9a34387e1a865f520cb50e0a8e919733a1060a5d58afbf700981903 SHA512 4cc96344bcad8ce8e0d72b998a7448cf6f6caa8520f0cef4bcdca0933ba897188ce9a70d164a867c8a19c0efb5a3aa0ebd88393ac1a7effb8f5677784bced3c8
+DIST botocore-1.43.88.gh.tar.gz 17108559 BLAKE2B 1e73e271b312208c14dd217d87046a973ddf2ee8e6f7fcd41bc03809dd86e0b890541fa43c9a6bb1c5d25b771fc7146df507b159e0a95081de27734d5db527e9 SHA512 76561aac063440763130062e5e5293198b18064c425b2cda695400c52644840f8d9c8135470952483204ac37fa11649e064f19ecb95d2ac2ec79e929fe921df1
diff --git a/dev-python/botocore/botocore-1.43.88.ebuild b/dev-python/botocore/botocore-1.43.88.ebuild
new file mode 100644
index 000000000000..a3a161f78545
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.88.ebuild
@@ -0,0 +1,67 @@
+# 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_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/capturer/capturer-3.0-r1.ebuild b/dev-python/capturer/capturer-3.0-r1.ebuild
index 1b8fc19488ea..76b19a22f22a 100644
--- a/dev-python/capturer/capturer-3.0-r1.ebuild
+++ b/dev-python/capturer/capturer-3.0-r1.ebuild
@@ -23,6 +23,7 @@ PATCHES=(
)
distutils_enable_sphinx docs
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/django-otp/Manifest b/dev-python/django-otp/Manifest
index 098529081a6e..e95d0ba3a06b 100644
--- a/dev-python/django-otp/Manifest
+++ b/dev-python/django-otp/Manifest
@@ -1,2 +1,2 @@
-DIST django_otp-1.7.0.tar.gz 75858 BLAKE2B 5c6ed23664e4c0d5af9a161e132d268dceb8518ffe795159e37ef324bef04773ac98c9e000e7b32c2703e9fcf2e048e584093f3a7d20cb125a5a1f56b8e7d9e5 SHA512 ecaeb839002ff348cd26e0a90c49e6191d01f49adc49691fda16beb062b1454a002c77e27dca791ec041dafd4d5cdd7b1ed08e1711809cfa18f1ade77662fa96
DIST django_otp-1.7.1.tar.gz 76923 BLAKE2B 96915810b86a52ac490f6f8a28bd516d07ee5d8890c66bd5120be2ee4bc9a72997cef6f0ac6e42e20a1f83b2a257ad02160b5976343a94a81f7d2f34893dda00 SHA512 db81dc18505a89a1be109d27c700891bb16df8bf2f281a51886c9c4666d3102a70bd0d87284407026b4ab1a478ca2029d348e908a09533e018c8583f65cd261d
+DIST django_otp-1.7.2.tar.gz 77376 BLAKE2B 197ac5c2375159523fbab9a02cba0a7507f8d0731c260c38edc10c08a6d91a27b42a1a28bd91b4c5505cb68a376ebfaa94836587d08358ccab4bf9f0a5b05765 SHA512 ffec0cd2ab0069615dee2e6a87501d89294d9c50ca0d28ef9bee5b600cdfe84a9df4b751aaa81c9fa330cb372fb3fdc9dd6bd0ab19cde26acd6dd1dd566dd051
diff --git a/dev-python/django-otp/django-otp-1.7.0.ebuild b/dev-python/django-otp/django-otp-1.7.2.ebuild
index 963a451ff6e8..963a451ff6e8 100644
--- a/dev-python/django-otp/django-otp-1.7.0.ebuild
+++ b/dev-python/django-otp/django-otp-1.7.2.ebuild
diff --git a/dev-python/gherkin-official/gherkin-official-42.0.1.ebuild b/dev-python/gherkin-official/gherkin-official-42.0.1.ebuild
index c123c65c80a2..7bafaa7c6544 100644
--- a/dev-python/gherkin-official/gherkin-official-42.0.1.ebuild
+++ b/dev-python/gherkin-official/gherkin-official-42.0.1.ebuild
@@ -21,7 +21,7 @@ S=${WORKDIR}/gherkin-${PV}/python
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="amd64 arm64"
RDEPEND="
dev-python/typing-extensions[${PYTHON_USEDEP}]
diff --git a/dev-python/google-api-core/Manifest b/dev-python/google-api-core/Manifest
index e1369f6d88e8..b1786660c322 100644
--- a/dev-python/google-api-core/Manifest
+++ b/dev-python/google-api-core/Manifest
@@ -4,3 +4,5 @@ DIST google_api_core-2.34.0.tar.gz 187953 BLAKE2B 5dd6c5fc1fe7317da1c2ad62cca890
DIST google_api_core-2.34.0.tar.gz.provenance 6103 BLAKE2B 0d06be8f59bfda59e4f00ec463d603f536c6f04fd8249f685f4d1eab449f3034c47e9f259cb3386ff8a96c399384c011f1f6c2c7a87d489c5361a478d91deb58 SHA512 5b1ad715956badb3fa8d0c991438e3ad5ad8c674277bba4de59f9dabcac6f548bdfe5b1e68ee83e00f35fbabca685f855cdb0e2598b122a1e2f898a3b71dbec5
DIST google_api_core-2.35.0.tar.gz 192600 BLAKE2B 3b124dabd34faba1b46b00c6cf4c1aadb95d8dec31a21df76e9980163de46a3b0b3961cf304b62af870478fc84c117b5c01ed7466d084962eb7549e1644eb80f SHA512 b577c925ef3f09a4ab5b5bb263883056dca9311f486c82178ddf112076083ec3b98f05e4423f2c544c5f598182fb6954259d5e5d7ca1fae85868b47848d24a53
DIST google_api_core-2.35.0.tar.gz.provenance 6093 BLAKE2B f40b129971da678fc75f68ba2b84bf408f5d00a5c713f4832d2a9c3e33e0bb35a279471d84317d0b1824d6fa5eef7fa62e1919aab7df8843a16d7efe384e5258 SHA512 1559570c5be55e094e23f38462e9b0189de0d2c2bdd8ea4bee01640eb9485fc1e2ca0222f71d3a83641da325ffddbe2e13ec07702917b57e5cad99dbde6dbe0e
+DIST google_api_core-2.36.0.tar.gz 196879 BLAKE2B b9026e37bec28104b81040536544938b319e6e559296c846991c74147399eb07042e8f2b9810af6e13f5d5936918d088f024005e999ee8bf497079431d22c15d SHA512 119d446ebd67bdd2f527d8bbc05e7877e1fa528e9421dabbef95597cf2e1a4555fe630f9e573b10836b98a65aa437c3a7d72a89a06d700cbf5214fd7084a44ca
+DIST google_api_core-2.36.0.tar.gz.provenance 5964 BLAKE2B ef264b3a188a19058f713cd8f83323e71734276d465b72f77b99a37c2ece8f0b9e25a70faa3879305621f84f1f99fe31029ec7c4f5c435565518c83a0ec4c17b SHA512 63ddeb9323376f41ce5368674f4a29cf5a8bfa0d9a4b60f3a469e4a11e2c8aaa3288cad03159ef4da605f93726ad1e4d46952403c2c00b90147014dc8e641835
diff --git a/dev-python/google-api-core/google-api-core-2.36.0.ebuild b/dev-python/google-api-core/google-api-core-2.36.0.ebuild
new file mode 100644
index 000000000000..2b11a77adbaf
--- /dev/null
+++ b/dev-python/google-api-core/google-api-core-2.36.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=gcp:google-cloud-sdk-py@oss-exit-gate-prod.iam.gserviceaccount.com
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Core Library for Google Client Libraries"
+HOMEPAGE="
+ https://github.com/googleapis/google-cloud-python/
+ https://pypi.org/project/google-api-core/
+ https://googleapis.dev/python/google-api-core/latest/index.html
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="grpc"
+
+RDEPEND="
+ >=dev-python/googleapis-common-protos-1.69.2[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-1.25.0[${PYTHON_USEDEP}]
+ <dev-python/opentelemetry-api-2[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-api-1.44.0[${PYTHON_USEDEP}]
+ >=dev-python/proto-plus-1.26.1[${PYTHON_USEDEP}]
+ >=dev-python/protobuf-6.33.5[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.33.0[${PYTHON_USEDEP}]
+ <dev-python/requests-3[${PYTHON_USEDEP}]
+ grpc? (
+ >=dev-python/grpcio-1.75.1[${PYTHON_USEDEP}]
+ >=dev-python/grpcio-status-1.75.1[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/grpcio-1.75.1[${PYTHON_USEDEP}]
+ >=dev-python/grpcio-status-1.75.1[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-sdk-1.44.0[${PYTHON_USEDEP}]
+ dev-python/rsa[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock} )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # The grpc_gcp module is missing to perform a stress test
+ tests/unit/test_grpc_helpers.py
+)
+
+python_test() {
+ rm -rf google || die
+ epytest tests
+}
diff --git a/dev-python/google-auth/Manifest b/dev-python/google-auth/Manifest
index 5bba6e561de4..229766c16e9e 100644
--- a/dev-python/google-auth/Manifest
+++ b/dev-python/google-auth/Manifest
@@ -4,3 +4,5 @@ DIST google_auth-2.56.3.tar.gz 367110 BLAKE2B d1c415d18e686ca7f0fd30f463261a9132
DIST google_auth-2.56.3.tar.gz.provenance 5911 BLAKE2B 33eeb083308a9f009de72cf9e50a16f7ab06729b9b60a575d5f4086eb43d980bda64a167a8333f318e540d5c35325231ced0c5a2d01b6aaa554806f7dc1801f1 SHA512 c339ee649742bc69d8bd2b447d90dc953475ad805677f3718c80d9f742e1f8e7552379b84579d958b648172030b039cadd8dd45a28dc1776a3be540841474d4d
DIST google_auth-2.57.0.tar.gz 370794 BLAKE2B 6ba872c80505223bf510547702abcb016abcb85e6d30fa6d819bc29e27b0700b2d41c29b4dd4e8b1965e8026ccdc683ff996ded74c32b82ae1283689127be873 SHA512 8aa4d2054273ce7c7f4b0ad771d19f1aa857ac7e47757bdf3e2e57184978cb57ad21479a335402e1b152deaa7caf3dc3e68a6c76eede687e81c6609e36ae3b7a
DIST google_auth-2.57.0.tar.gz.provenance 6089 BLAKE2B c62f6c80cc0ed0c5395d8e7a46462121ecc1adaaca6c440a1e9d4868373240157a4be21442f76088febccf0450741875ce433079b0d4205c6dc55293f3590432 SHA512 088c42769c686e08aebe04e3a70979f2e85ea9e360446448f12d59697176e051e839ca7d616d29f04a75fc323dd8f7fffd2e50b0225838eeb2f71dd0eb8ccaf8
+DIST google_auth-2.57.1.tar.gz 372426 BLAKE2B 55f44f41186b6fa55254c2bb50ca088fabc7263923fd0cf5be73c83f1e7a7f63ac3eefaa8016e87139529b23b875d098b62661164171a1bd82c274c1c90bbcac SHA512 355df27135280e6b7d1ee8741eb2fa57717146e6f56e1cb094bf5e0e88eedaae3efc0a01d619dd31e1c4323cc1321625ec9f25fa60712a7643bf4a3cd7cea21a
+DIST google_auth-2.57.1.tar.gz.provenance 6136 BLAKE2B 3f723f6b4ba7e50c326e24d4b4277a9c5e82c812a7c05680118ffa2071ed1034adf70f8ac0697d546330e784233ebd2b5efa8418625be0bea07c1f3bba182309 SHA512 b90e933a30f62868d9cd748c506d552023568c7713e76cd78bcd9dd6e26ebce3326117fb8ab0b63f4ac388d91d28b3b6cdfe1d88d77a78e588acfaeca0aa3d47
diff --git a/dev-python/google-auth/google-auth-2.57.1.ebuild b/dev-python/google-auth/google-auth-2.57.1.ebuild
new file mode 100644
index 000000000000..e460c792a87a
--- /dev/null
+++ b/dev-python/google-auth/google-auth-2.57.1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=gcp:google-cloud-sdk-py@oss-exit-gate-prod.iam.gserviceaccount.com
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google Authentication Library"
+HOMEPAGE="
+ https://github.com/googleapis/google-auth-library-python/
+ https://pypi.org/project/google-auth/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+# TODO: rsa is now optional
+RDEPEND="
+ >=dev-python/cryptography-41.0.5[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-modules-0.2.1[${PYTHON_USEDEP}]
+ >=dev-python/rsa-3.1.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/aioresponses[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-2.0[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pyu2f[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,localserver} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # tests are broken with up-to-date pyopenssl
+ tests/transport/test__mtls_helper.py::TestDecryptPrivateKey::test_success
+)
+
+EPYTEST_IGNORE=(
+ # these are compatibility tests with oauth2client
+ # disable them to unblock removal of that package
+ tests/test__oauth2client.py
+)
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unpin deps
+ sed -i -e 's:,<[0-9.]*::' setup.py || die
+}
diff --git a/dev-python/googleapis-common-protos/Manifest b/dev-python/googleapis-common-protos/Manifest
index 52528c3f6b05..1e25eb15a045 100644
--- a/dev-python/googleapis-common-protos/Manifest
+++ b/dev-python/googleapis-common-protos/Manifest
@@ -4,3 +4,5 @@ DIST googleapis_common_protos-1.75.1.tar.gz 150967 BLAKE2B 7af6c2314ce6ea567a287
DIST googleapis_common_protos-1.75.1.tar.gz.provenance 5974 BLAKE2B 720967601e6d83119a439dfcb95aad4695ebf36167d9213a338b1f95bb7144edb2b147a59449d609654e84b52f8a27cd63834b29059ef39825d49fa5561f26df SHA512 4c3a6cb8b25fa373278be9dd5005dd48f462435d14631847e8b4e4bae37075f5cccb2ea2bf243a12b2c25bff24dcb083589b10c73ca501eeea88fa28fae50fd6
DIST googleapis_common_protos-1.75.2.tar.gz 154083 BLAKE2B 50f1bb744f232e37c93a3ef6b71e8df77f0c9c74a67998c6d08faead3bf3b67a9338b91113cd75c7f28388fca04db424695eb8ff79ecb695158bed8b2e4b46ba SHA512 993e03c956c370f96703aea6477534f8eaa57ba7e4119f4739b1380c7ace478160c135137c8401804f0d47bf2def264b80eb336c92299a61965f7bb81d8dd53e
DIST googleapis_common_protos-1.75.2.tar.gz.provenance 6117 BLAKE2B dc55edaeb136c7943a9723724dcb11f8a8c7f8c1dfafb82b42d9b4d3924f7e4821a1dddd46a0ae5ce79935104452b9e42d6e93b6de8846f8a25e0ab29675ba90 SHA512 663e49e09567e48ecc660a542f27ad8c810a1ae9cef78f5a72af6f6f162fa6752d7d319f00509e9cc368630d95b7be0b5f68a284a6d4ccb540db7ba415368d60
+DIST googleapis_common_protos-1.75.3.tar.gz 153905 BLAKE2B c735728ca27c4781f4c8ca73662d4a5ad53c72932b2a0a0e8c91e9b77e580aec0d183a689d44a91307e64b8ac7eb5ec429d9d382324e64e4d2edc339f7cfbdef SHA512 3122c836efe8340e40d33bed4097f1fa765ee35146c186c2578af2166ba4e2070aea2e949499bee37ad41ae0229ec9840c7c3ed346d07485f095531f58a4598a
+DIST googleapis_common_protos-1.75.3.tar.gz.provenance 5976 BLAKE2B 3980706aec265c9584ea7004dd9be8b76926ba601f599f703c0d2d235308dcbc70b7be330a8d96bce447004dacb31f6df7d27a1fb6a56460d2bdd1d589f2c8e4 SHA512 5830412389ee994a9ccd04c480f796e5c6d516fc6dcada66c5a7094b61eb68b3ea615a147135f0855b7fdc9ab885ec9c494192efb7501714d321d3414b31d46d
diff --git a/dev-python/googleapis-common-protos/googleapis-common-protos-1.75.3.ebuild b/dev-python/googleapis-common-protos/googleapis-common-protos-1.75.3.ebuild
new file mode 100644
index 000000000000..ff059c44f854
--- /dev/null
+++ b/dev-python/googleapis-common-protos/googleapis-common-protos-1.75.3.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=gcp:google-cloud-sdk-py@oss-exit-gate-prod.iam.gserviceaccount.com
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python classes generated from the common protos in the googleapis repository"
+HOMEPAGE="
+ https://github.com/googleapis/python-api-common-protos/
+ https://github.com/googleapis/google-cloud-python/tree/main/packages/googleapis-common-protos/
+ https://pypi.org/project/googleapis-common-protos/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+
+RDEPEND="
+ <dev-python/protobuf-8[${PYTHON_USEDEP}]
+ >=dev-python/protobuf-6.33.5[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/micawber/Manifest b/dev-python/micawber/Manifest
index a0413630ee55..bfe99b9a592c 100644
--- a/dev-python/micawber/Manifest
+++ b/dev-python/micawber/Manifest
@@ -1,2 +1,3 @@
DIST micawber-0.7.0.tar.gz 20023 BLAKE2B 438607127c1a742991bf7a2c725949ada5129817142c8d581bdb2a4dcbcde8ad041b93b83674975e9d73609f9c7aa3059e748fb86ab6019615ea711416ffe27d SHA512 58e3be30f26e7d939821dc4ce8a27b61a692ebe0734cd6f887a94d5b9ef8100c334a330590c7a4b07b4b9097abafc5e85f4d0b1ce18040dd0110f1cac15a1d01
DIST micawber-0.7.1.tar.gz 21456 BLAKE2B 430a8b2483aff09f58e10fd0e64e19256827864f16d8958f971ac035252e433ab72845c021feeaf9a4dbc98c319e9623b407348e0ef1a6ecbb02e651e78d30e9 SHA512 8b7d9e4bb28afd002d6b5fa2529c7248213b44f82e76e8ea1365a8674c09cf8dbcb79db65bc26d9f522c10d7f9bf6cf28c266b8b209d6d838d12c259c8adf2c7
+DIST micawber-0.8.0.tar.gz 38226 BLAKE2B 9683cc1644eaed4e37842b9b072ccb0e6d902dffce3ddfd9549b20a370d78f648de018966c8617155eca7ea0acfcdac2a8adb10e3f222652f6f44841456263b8 SHA512 97bc157d574c514108c8fbd40d6d3a622bf8c2e9188c0828158a3823474aab33858bad76c5ced8ec8d2331b05b3312409534869f5236e6a7ac339e86cdbb90a4
diff --git a/dev-python/micawber/micawber-0.8.0.ebuild b/dev-python/micawber/micawber-0.8.0.ebuild
new file mode 100644
index 000000000000..cb8a6196134a
--- /dev/null
+++ b/dev-python/micawber/micawber-0.8.0.ebuild
@@ -0,0 +1,35 @@
+# 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_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A small library for extracting rich content from urls"
+HOMEPAGE="
+ https://github.com/coleifer/micawber/
+ https://pypi.org/project/micawber/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/beautifulsoup4-4.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ dev-python/django[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ "${EPYTHON}" runtests.py || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest
index ded7b6a71d97..e1fee0e79488 100644
--- a/dev-python/pymongo/Manifest
+++ b/dev-python/pymongo/Manifest
@@ -1,3 +1,2 @@
-DIST mongo-python-driver-4.13.2.gh.tar.gz 2227437 BLAKE2B 3aa6d0feedc6a33eb4e9299d85eeab2a9638bf713cfadf9f4018f6bd668758d3afd5b9b4b71dec037fb3f99e89cc34e299e1d9b4521c8ace9da9ce50ae95142b SHA512 845cf92e702a9970f2ef1b5085fffcca96021e0f2fc5133e24b2860482dafabe7770d9421922659d0c6008aac1d5a70834ee4f1728a648fd83e6d33bc33568b0
DIST mongo-python-driver-4.16.0.gh.tar.gz 2569546 BLAKE2B 7e81fd259f6ed21d4a600f41b6945f520b650bcde2764cdafab85664143dbe76b2d9e1a1db0306bc39afdcd62afc3e250c6e04031b01ffd9dacda8b968786c21 SHA512 38e347599fe26cbe9846ef7f1e0e4adb3aea5dc949d0e8a4bd61806dc00808804e1c34e9213f09c30aab75d26243dd2ed54ab5014e604b127a5c71337855195f
DIST mongo-python-driver-4.17.0.gh.tar.gz 2597488 BLAKE2B ad733542ca37f1de3e267ef58b5d4c23a4ee10f1b7a9e43ad95adc8602b427cee4ed4126632618c2f1f7134da3d51ee31bed27c36aab47c9f0ee1ebb47e5e6ce SHA512 da3d2d6136e9e4c697f6f5a9a38010bcd6f00a5cbf018de7b6afb3bc9e459ce9a8fcc95db79422eb2ef5d677baa564934db01a5ca4e2909a63c4538098986ab7
diff --git a/dev-python/pymongo/pymongo-4.13.2.ebuild b/dev-python/pymongo/pymongo-4.13.2.ebuild
deleted file mode 100644
index d0593db55e90..000000000000
--- a/dev-python/pymongo/pymongo-4.13.2.ebuild
+++ /dev/null
@@ -1,202 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit check-reqs distutils-r1
-
-MY_P=mongo-python-driver-${PV}
-DESCRIPTION="Python driver for MongoDB"
-HOMEPAGE="
- https://github.com/mongodb/mongo-python-driver/
- https://pypi.org/project/pymongo/
-"
-SRC_URI="
- https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="doc kerberos +native-extensions +test-full"
-
-RDEPEND="
- <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
- kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
-"
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- test-full? (
- >=dev-db/mongodb-2.6.0
- )
- )
-"
-
-distutils_enable_sphinx doc
-distutils_enable_tests pytest
-
-reqcheck() {
- if use test && use test-full; then
- # During the tests, database size reaches 1.5G.
- local CHECKREQS_DISK_BUILD=1536M
-
- check-reqs_${1}
- fi
-}
-
-pkg_pretend() {
- reqcheck pkg_pretend
-}
-
-pkg_setup() {
- reqcheck pkg_setup
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- # we do not want hatch-requirements-txt and its ton of NIH deps
- sed -i -e '/requirements/d' pyproject.toml || die
-}
-
-python_compile() {
- # causes build errors to be fatal
- local -x TOX_ENV_NAME=whatever
- local DISTUTILS_ARGS=()
- # unconditionally implicitly disabled on pypy3
- if ! use native-extensions; then
- export NO_EXT=1
- else
- export PYMONGO_C_EXT_MUST_BUILD=1
- unset NO_EXT
- fi
-
- distutils-r1_python_compile
-
- # upstream forces setup.py build_ext -i in their setuptools hack
- find -name '*.so' -delete || die
-}
-
-python_test() {
- rm -rf bson pymongo || die
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local EPYTEST_DESELECT=(
- # network-sandbox
- test/asynchronous/test_async_loop_unblocked.py::TestClientLoopUnblocked::test_client_does_not_block_loop
- test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
- test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging
- test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning
- test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs
- test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg
- test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
- test/test_client.py::ClientUnitTest::test_detected_environment_logging
- test/test_client.py::ClientUnitTest::test_detected_environment_warning
- test/test_client.py::TestClient::test_service_name_from_kwargs
- test/test_client.py::TestClient::test_srv_max_hosts_kwarg
- test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
- test/asynchronous/test_dns.py::IsolatedAsyncioTestCaseInsensitive::test_connect_case_insensitive
- test/test_srv_polling.py
- test/asynchronous/test_srv_polling.py
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
-
- # broken regularly by changes in mypy
- test/test_typing.py::TestMypyFails::test_mypy_failures
-
- # fragile to timing? fails because we're getting too many logs
- test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
-
- # hangs?
- test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks
-
- # broken async tests?
- test/asynchronous/test_encryption.py
-
- # -Werror
- test/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated
- test/asynchronous/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated
-
- # fragile to timing? Internet?
- test/test_client.py::TestClient::test_repr_srv_host
- test/asynchronous/test_client.py::TestClient::test_repr_srv_host
- test/asynchronous/test_ssl.py::TestSSL::test_pyopenssl_ignored_in_async
- )
-
- if ! use test-full; then
- # .invalid is guaranteed to return NXDOMAIN per RFC 6761
- local -x DB_IP=mongodb.invalid
- epytest -p asyncio
- return
- fi
-
- # Yes, we need TCP/IP for that...
- local -x DB_IP=127.0.0.1
- local -x DB_PORT=27000
-
- local dbpath=${TMPDIR}/mongo.db
- local logpath=${TMPDIR}/mongod.log
-
- local failed=
- mkdir -p "${dbpath}" || die
- while true; do
- ebegin "Trying to start mongod on port ${DB_PORT}"
-
- # mongodb is extremely inefficient
- # https://www.mongodb.com/docs/manual/reference/ulimit/#review-and-set-resource-limits
- ulimit -n 64000 || die
-
- local mongod_options=(
- --dbpath "${dbpath}"
- --bind_ip "${DB_IP}"
- --port "${DB_PORT}"
- --unixSocketPrefix "${TMPDIR}"
- --logpath "${logpath}"
- --fork
-
- # try to reduce resource use
- --wiredTigerCacheSizeGB 0.25
- )
-
- LC_ALL=C mongod "${mongod_options[@]}" && sleep 2
-
- # Now we need to check if the server actually started...
- if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
- # yay!
- eend 0
- break
- elif grep -q 'Address already in use' "${logpath}"; then
- # ay, someone took our port!
- eend 1
- : $(( DB_PORT += 1 ))
- continue
- else
- eend 1
- eerror "Unable to start mongod for tests. See the server log:"
- eerror " ${logpath}"
- die "Unable to start mongod for tests."
- fi
- done
-
- nonfatal epytest -p asyncio -p rerunfailures --reruns=5 \
- -m "default or default_async or encryption" || failed=1
-
- mongod --dbpath "${dbpath}" --shutdown || die
-
- [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
-
- rm -rf "${dbpath}" || die
-}
diff --git a/dev-python/pyqt6-sip/pyqt6-sip-13.12.0.ebuild b/dev-python/pyqt6-sip/pyqt6-sip-13.12.0.ebuild
index b6efea97c713..030dcc8529d3 100644
--- a/dev-python/pyqt6-sip/pyqt6-sip-13.12.0.ebuild
+++ b/dev-python/pyqt6-sip/pyqt6-sip-13.12.0.ebuild
@@ -14,4 +14,4 @@ HOMEPAGE="https://pypi.org/project/PyQt6-sip/"
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86"
diff --git a/dev-python/pytest-rerunfailures/Manifest b/dev-python/pytest-rerunfailures/Manifest
index 30418ec4686f..ba27fc32d04d 100644
--- a/dev-python/pytest-rerunfailures/Manifest
+++ b/dev-python/pytest-rerunfailures/Manifest
@@ -1,3 +1,4 @@
DIST pytest_rerunfailures-16.4.tar.gz 36635 BLAKE2B 7c58727d8a7a0525a385744df124b4c7cf0ae0342407e3f458809316b66afeae4f0635d210fdab4d3222c0795a53cb652b8c6ec926430406702ee1cec2cb7b72 SHA512 d8b9f6fec33305654b7283802cad6b3741d91e0157f1ba901aa4f75c853a3bd73e7be6be0de17ae95707f161755f7a0905267a9171c20fa904033fcb0ad460ef
DIST pytest_rerunfailures-16.5.tar.gz 41475 BLAKE2B b9ca891a231d275714e0184c1907a89be7ed87a7df96195fb6d474d53d6130989ab0d9d8432a080a643d9b703a695bebf763d5947c4ace1ac34c726bb0d4467b SHA512 13752459ed30e5cf45c772ce71e04e2cca0e7cbe8788a8fdd8d5077117855b0c64194a21438ab15c945200597686c64711766e8b405ef74cf9d60e38ee91d92b
+DIST pytest_rerunfailures-16.6.1.tar.gz 47719 BLAKE2B a2ba5ba2d1a6ae81af4a8c69616d7f6fb86594dbee5d47356493ea783984c58669526cf264adc7538a57dd68a115e3217f73aa03f021aef2ef3ed5d1be67f6b2 SHA512 cd623dba6a31dccffb577ec452495c6ca60f7868dd904316cdcad557e5a504cb3cd446d9b0ec4dbe579171fbe11c48419956165584bb9df8c038ee43eee10ef4
DIST pytest_rerunfailures-16.6.tar.gz 42806 BLAKE2B 480cc28393b98efb749b9ffde5e9ab348b5447ed82ea095212192902e106b6304a11cb4d9c8c2d7d8e7842dad3720b0d6e7b2c1b9ea6935fa6c7729348abacc7 SHA512 13e89a18d70054eeb023836666a0246db268b3361fe943137a05890c8d57035d6e3dda7bc758f6c101df5ea14a14c0be944c18c1c94924e685511e1061291b9d
diff --git a/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.6.1.ebuild b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.6.1.ebuild
new file mode 100644
index 000000000000..58e4cd8777e3
--- /dev/null
+++ b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.6.1.ebuild
@@ -0,0 +1,29 @@
+# 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_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="pytest plugin to re-run tests to eliminate flaky failures"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-rerunfailures/
+ https://pypi.org/project/pytest-rerunfailures/
+"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-17.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8.2.3[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
diff --git a/dev-python/setuptools-scm/Manifest b/dev-python/setuptools-scm/Manifest
index 8aa3ff89c4f7..3f3c1004ea19 100644
--- a/dev-python/setuptools-scm/Manifest
+++ b/dev-python/setuptools-scm/Manifest
@@ -2,5 +2,7 @@ DIST setuptools_scm-10.2.1.tar.gz 154237 BLAKE2B 250978fc39815dc05f79aa5da3a6883
DIST setuptools_scm-10.2.1.tar.gz.provenance 10217 BLAKE2B 305ce26746d8239bca467956131f6d61b10084218e72e668cdee2108af9c03da6597d663d7bbc8309e056c3865d4808538ac7187c31dcfdeb9f659571754ef4c SHA512 e1620b0da56d77d6ca658e993d7663a86ac3cd5eb7d4e31ce147d156ad3365d922aa28ab42cf61c8c85f0f8e2cc350590d1f5cf4b2a63def8517d963125f870f
DIST setuptools_scm-10.2.2.tar.gz 67111 BLAKE2B ce2f0eb600dbe7c6622bacb7307e8cc49273b516f9b907cb6cc93332c53e1ebdb5eab2e75312632931e7e81d519596dc38a40fb207341882c4aa98a05df3f347 SHA512 6b790910b6658c0843e8dd74ed21a2aa50eee67dbf20648ab7a466f020f871037f7826a0392c6398f515df5e7e57ed7c92bf855245d2e8b6275c73a5147e4dfe
DIST setuptools_scm-10.2.2.tar.gz.provenance 10207 BLAKE2B 4d2aed3ed9bfb79eceeb1ab5dd138afd11452beca54062c7a20523eaef910225e839c3548ef268ff1533697284ccda84fd902641e7c602bb79b5ab49b2103d36 SHA512 93502cdff448756fda9ff9ca45de0480a2250745a5fd63cc57b369d4378baf42755cf942925eb03fff90433b95c603293dd6014c032ccc16fba1edabfbc1bdb7
+DIST setuptools_scm-10.2.3.tar.gz 67696 BLAKE2B 43d36a0ef3221f96d980311b5c4ac884320b7f54665fefe4f56e03ae3172954bd95f29bb881074bbb04f3c248c6140e7281b2ae5232f9fa09770449a5c7e5fcb SHA512 845403e925247c70f9399dc98da08e13fd5bbdbabb339ed380abccc07590eaf35efc592c04f5b8b44e55bbbf63d5c92e423fc12cf06534efafff20fb70c53f57
+DIST setuptools_scm-10.2.3.tar.gz.provenance 10125 BLAKE2B 581394d2844a82bd6f4eabc86a6c77d355a573573140e151a4b0d99525e51ea0df8fec8cbae2c331764f4377b3c4283620d8f1336251218f1c14b58318a2e31a SHA512 304b057feab4715373caff13d24b4599e73711a9de0833b4f0e6422914be997ad63fbb4fb15b14329c03e772c89493c5b68d97d6b0a37e6d99c5907db77c4298
DIST setuptools_scm-9.2.2.tar.gz 203385 BLAKE2B 8577c4c6265ae851212be04b245b3da8b49d541174f5e675dea916c76b3cba5b5ab9f6264a97904e2d5ca02dee4e3f8eb88c9e8badbba2ed53bed531fe9f6b6c SHA512 757ca11a3d13601606b6914ea70e3d271d287f26ada976ec77334fc0f611208669585d2580994f1ddff830cd698a837d3e882dd5cdccdaf9f8eba34fdd8cb708
DIST setuptools_scm-9.2.2.tar.gz.provenance 9705 BLAKE2B b710df7f8cbb324aa2927243ab0416869319813016d64f589b7a9f565576fff58c1aee18da4ea9bc3fb5a969cf74c1fcaa1332812bf88267ec9f2bf437876e53 SHA512 6ac563d0ab5f1afce28976eb030364a451508ec7d47b6e99668c37b8ba09e3b56500b104d62ad6047fad9f6be0b2b6ebea66b561041485b9d15b84c39fe92313
diff --git a/dev-python/setuptools-scm/setuptools-scm-10.2.3.ebuild b/dev-python/setuptools-scm/setuptools-scm-10.2.3.ebuild
new file mode 100644
index 000000000000..1670599d087d
--- /dev/null
+++ b/dev-python/setuptools-scm/setuptools-scm-10.2.3.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pypa/setuptools-scm
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Manage versions by scm tags via setuptools"
+HOMEPAGE="
+ https://github.com/pypa/setuptools-scm/
+ https://pypi.org/project/setuptools-scm/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# there's an optional dep on rich for cute logs
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-64[${PYTHON_USEDEP}]
+ =dev-python/vcs-versioning-2*[${PYTHON_USEDEP}]
+ >=dev-python/vcs-versioning-2.3.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ =dev-python/vcs-versioning-2*[${PYTHON_USEDEP}]
+ >=dev-python/vcs-versioning-2.3.2[${PYTHON_USEDEP}]
+ test? (
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-vcs/git
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ testing_scm/test_functions.py::test_dump_version_mypy
+ testing_scm/test_integration.py::test_xmlsec_download_regression
+ testing_scm/test_regressions.py::test_pip_download
+ # dependent on ruff version
+ testing_scm/test_functions.py::test_dump_version_ruff
+ )
+
+ if ! has_version "dev-python/pip[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ testing_scm/test_integration.py::test_editable_install_without_env_var
+ testing_scm/test_integration.py::test_editable_install_version_file
+ )
+ fi
+
+ epytest
+}
diff --git a/dev-python/sip/sip-6.16.1.ebuild b/dev-python/sip/sip-6.16.1.ebuild
index 6d5b58e93a85..eda9bce6bed2 100644
--- a/dev-python/sip/sip-6.16.1.ebuild
+++ b/dev-python/sip/sip-6.16.1.ebuild
@@ -16,7 +16,7 @@ SRC_URI="
LICENSE="BSD-2 BSD"
SLOT="5"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
dev-python/packaging[${PYTHON_USEDEP}]
diff --git a/dev-python/spyder/Manifest b/dev-python/spyder/Manifest
index 7d0b8f90a449..42660b235a18 100644
--- a/dev-python/spyder/Manifest
+++ b/dev-python/spyder/Manifest
@@ -1,2 +1,3 @@
DIST spyder-6.1.6.gh.tar.gz 16204529 BLAKE2B 6d1948db87f392a5578755b942baf2414da4c15a3197e75dd0fa3293fd9590d7bb8e86970b6240628522f1237a6e3453eaca422877c6dc15d437514f4c214b44 SHA512 0159bcd0b7ea1f4b9bbc428cd5d154d199a8ec9c71d15f431e10a5000418343fea4ece9fd65c8ba19800bde7a9861f2fef0dfa391397bca6b420a1ee2d8ac7f7
+DIST spyder-6.1.7.gh.tar.gz 16213857 BLAKE2B 2803581a911e501de3e0b41b313519b32d7e73c22479781945e9feda99b80b75abe6a1c408417a53e9dd8433a6680c335cd4a9e92bb8f8a597402637e1bbf283 SHA512 35953b23e7769b725337d928d139ac3d224e13b53fae2d2e2cc54ee6aa1bdebf614a6f99a6e775e2b59419713075cf17a585ce1a92a12b3838a0c87bca9a7010
DIST spyder-docs-98004cb46d97fa9fa1cfc3f469919928761e7054.gh.tar.gz 93375891 BLAKE2B c98d391bb33b1ba70bf9c8e8072073e87437541aacd4be42140711b786e8ae07bf5a7ca53dffdb826922b5523150fa2950b04117c335dc57f7c2c22eb693c23f SHA512 55e13f9a55075aed007be32581af954d406703dd9586352084162e01865f943c5aff3aa11b50bdc9813dd8a3a52f8fa8f961c73cfc3f96d95930f2a7b823a1d1
diff --git a/dev-python/spyder/spyder-6.1.7.ebuild b/dev-python/spyder/spyder-6.1.7.ebuild
new file mode 100644
index 000000000000..63d451a76f0a
--- /dev/null
+++ b/dev-python/spyder/spyder-6.1.7.ebuild
@@ -0,0 +1,209 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1 optfeature xdg #virtualx
+
+# Commit of documentation to fetch
+DOCS_PV="98004cb46d97fa9fa1cfc3f469919928761e7054"
+
+DESCRIPTION="The Scientific Python Development Environment"
+HOMEPAGE="
+ https://www.spyder-ide.org/
+ https://github.com/spyder-ide/spyder/
+ https://pypi.org/project/spyder/
+"
+SRC_URI="
+ https://github.com/spyder-ide/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz
+ https://github.com/spyder-ide/${PN}-docs/archive/${DOCS_PV}.tar.gz -> ${PN}-docs-${DOCS_PV}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+# Missing deps and broken
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-python/aiohttp-3.11.2[${PYTHON_USEDEP}]
+ >=dev-python/asyncssh-2.14.0[${PYTHON_USEDEP}]
+ <dev-python/asyncssh-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/bcrypt-4.3.0[${PYTHON_USEDEP}]
+ >=dev-python/chardet-5.2.0[${PYTHON_USEDEP}]
+ <dev-python/chardet-8.0.0[${PYTHON_USEDEP}]
+ >=dev-util/cookiecutter-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/diff-match-patch-20181111[${PYTHON_USEDEP}]
+ >=dev-python/intervaltree-3.0.2[${PYTHON_USEDEP}]
+ >=dev-python/ipython-pygments-lexers-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jellyfish-0.7[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/keyring-17.0.0[${PYTHON_USEDEP}]
+ >=dev-python/markdown-it-py-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-4.0[${PYTHON_USEDEP}]
+ >=dev-python/numpydoc-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ >=dev-python/pexpect-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pickleshare-0.4[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.3[${PYTHON_USEDEP}]
+ >=dev-python/pygithub-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.0[${PYTHON_USEDEP}]
+ >=dev-python/pylint-venv-3.0.2[${PYTHON_USEDEP}]
+ >=dev-python/python-lsp-black-2.0.0[${PYTHON_USEDEP}]
+ <dev-python/python-lsp-black-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/python-lsp-ruff-2.3.0[${PYTHON_USEDEP}]
+ <dev-python/python-lsp-ruff-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyls-spyder-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/pyuca-1.2[${PYTHON_USEDEP}]
+ >=dev-python/pyxdg-0.26[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-24.0.0[${PYTHON_USEDEP}]
+ >=dev-python/qdarkstyle-3.2.0[${PYTHON_USEDEP}]
+ <dev-python/qdarkstyle-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/qstylizer-0.2.2[${PYTHON_USEDEP}]
+ >=dev-python/qtawesome-1.4.1[${PYTHON_USEDEP}]
+ <dev-python/qtawesome-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/qtconsole-5.7.2[${PYTHON_USEDEP}]
+ <dev-python/qtconsole-5.9.0[${PYTHON_USEDEP}]
+ >=dev-python/qtpy-2.4.0[${PYTHON_USEDEP},pyqt6,quick,svg,webengine]
+ >=dev-python/rtree-0.9.7[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-7.2.0[${PYTHON_USEDEP}]
+ >=dev-python/spyder-kernels-3.1.6[${PYTHON_USEDEP}]
+ <dev-python/spyder-kernels-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/superqt-0.6.2[${PYTHON_USEDEP}]
+ <dev-python/superqt-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/textdistance-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/three-merge-0.1.1[${PYTHON_USEDEP}]
+ >=dev-python/watchdog-0.10.3[${PYTHON_USEDEP}]
+ >=dev-python/yarl-1.9.4[${PYTHON_USEDEP}]
+"
+
+# BDEPEND="
+# test? (
+# dev-python/cython[${PYTHON_USEDEP}]
+# dev-python/flaky[${PYTHON_USEDEP}]
+# dev-python/matplotlib[tk,${PYTHON_USEDEP}]
+# dev-python/pandas[${PYTHON_USEDEP}]
+# dev-python/pillow[${PYTHON_USEDEP}]
+# dev-python/pytest-lazy-fixture[${PYTHON_USEDEP}]
+# dev-python/pytest-mock[${PYTHON_USEDEP}]
+# dev-python/pytest-order[${PYTHON_USEDEP}]
+# dev-python/pytest-qt[${PYTHON_USEDEP}]
+# dev-python/pytest-timeout[${PYTHON_USEDEP}]
+# dev-python/pyyaml[${PYTHON_USEDEP}]
+# dev-python/qtpy[${PYTHON_USEDEP}]
+# dev-python/scipy[${PYTHON_USEDEP}]
+# dev-python/sympy[${PYTHON_USEDEP}]
+# )"
+
+# Based on the courtesy of Arfrever
+# This patch removes a call to update-desktop-database during build
+# This fails because access is denied to this command during build
+PATCHES=(
+ "${FILESDIR}/${PN}-5.0.0-build.patch"
+ "${FILESDIR}/${PN}-6.0.3-no-dep-on-importlib.patch"
+)
+
+DOCS=(
+ "AUTHORS.txt"
+ "Announcements.md"
+ "CHANGELOG.md"
+ "CODE_OF_CONDUCT.md"
+ "CONTRIBUTING.md"
+ "NOTICE.txt"
+ "README.md"
+ "RELEASE.md"
+)
+
+distutils_enable_tests pytest
+# TODO: Package sphinx-design
+# distutils_enable_sphinx docs/doc \
+# dev-python/sphinx-panels \
+# dev-python/pydata-sphinx-theme \
+# dev-python/sphinx-multiversion
+
+python_prepare_all() {
+ # move docs into workdir
+ mv ../spyder-docs-${DOCS_PV}* docs || die
+
+ # these dependencies are packaged separately:
+ # dev-python/spyder-kernels,
+ # dev-python/python-lsp-server,
+ # dev-python/qdarkstyle
+ rm -r external-deps/* || die
+ # runs against things packaged in external-deps dir
+ rm conftest.py || die
+
+ # Do not depend on pyqt5<5.16, this dependency is carried by QtPy[pyqt5]
+ # Do not depend on pyqtwebengine<5.16, this dependency is carried by QtPy[webengine]
+ # Do not depend on parso and jedi, this is dependency is carried in python-lsp-server
+ # Do not depend on python-lsp-server, this dependency is carried in pyls-spyder
+ # Do not depend on ipython, this dependency is carried in spyder-kernels
+ # The explicit version requirements only make things more complicated, if e.g.
+ # pyls-spyder gains compatibility with a newer version of python-lsp-server
+ # in a new release it will take time for this information to propagate into
+ # the next spyder release. So just remove the dependency and let the other
+ # ebuilds handle the version requirements to speed things up and prevent
+ # issues such as Bug 803269.
+ sed -i \
+ -e "/'pyqt5[ 0-9<=>.,]*',/d" \
+ -e "/'pyqtwebengine[ 0-9<=>.,]*',/d" \
+ -e "/'python-lsp-server\[all\][ 0-9<=>.,]*',/d" \
+ -e "/'parso[ 0-9<=>.,]*',/d" \
+ -e "/'jedi[ 0-9<=>.,]*',/d" \
+ -e "/'pylint[ 0-9<=>.,]*',/d" \
+ setup.py || die
+ # -e "/'ipython[ 0-9<=>.,]*',/d" \
+ sed -i \
+ -e "/^PYLS_REQVER/c\PYLS_REQVER = '>=0.0.1'" \
+ -e "/^PYLSP_REQVER/c\PYLSP_REQVER = '>=0.0.1'" \
+ -e "/^PARSO_REQVER/c\PARSO_REQVER = '>=0.0.1'" \
+ -e "/^JEDI_REQVER/c\JEDI_REQVER = '>=0.0.1'" \
+ -e "/^PYLINT_REQVER/c\PYLINT_REQVER = '>=0.0.1'" \
+ spyder/dependencies.py || die
+ # -e "/^IPYTHON_REQVER/c\IPYTHON_REQVER = '>=0.0.1'" \
+
+ # do not check deps, fails because we removed dependencies above
+ sed -i -e 's:test_dependencies_for_spyder_setup_install_requires_in_sync:_&:' \
+ spyder/tests/test_dependencies_in_sync.py || die
+
+ # skip online test
+ rm spyder/widgets/github/tests/test_github_backend.py || die
+
+ export SPYDER_QT_BINDING=pyqt6
+
+ distutils-r1_python_prepare_all
+}
+
+# Calling pytest directly somehow passes the pytest arguments to spyder
+# causing an invalid argument error
+# python_test() {
+# virtx "${EPYTHON}" runtests.py
+# }
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ optfeature "2D/3D plotting in the Python and IPython consoles" dev-python/matplotlib
+ optfeature "View and edit DataFrames and Series in the Variable Explorer" dev-python/pandas
+ optfeature "View and edit two or three dimensional arrays in the Variable Explorer" dev-python/numpy
+ optfeature "Symbolic mathematics in the IPython console" dev-python/sympy
+ optfeature "Import Matlab workspace files in the Variable Explorer" dev-python/scipy
+ optfeature "Run Cython files in the IPython console" dev-python/cython
+ optfeature "The hdf5/h5py plugin" dev-python/h5py
+ optfeature "The line profiler plugin" dev-python/spyder-line-profiler
+ optfeature "Vim key bindings" dev-python/spyder-vim
+ optfeature "Unittest support" dev-python/spyder-unittest
+ optfeature "System terminal inside spyder" dev-python/spyder-terminal
+ optfeature "Jupyter notebook support" dev-python/spyder-notebook
+ # spyder-memory-profiler is not compatible with spyder-5.2+ yet
+ # optfeature "The memory profiler plugin" dev-python/spyder-memory-profiler
+ # spyder-reports not yet updated to >=spyder-4.0.0
+ # optfeature "Markdown reports using Pweave" dev-python/spyder-reports
+ # Plugins with no release yet:
+ # optfeature "Manage virtual environments and packages" dev-python/spyder-env-manager
+ # optfeature "VCS (e.g. git) integration" dev-python/spyder-vcs
+}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index c7560ce4379f..f09370f4637e 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -1,2 +1,2 @@
-DIST sqlglot-30.16.0.tar.gz 5984853 BLAKE2B d53a8f73b7029642a726d0c71c9bbd6c5ba736381df2e11776704ff3a7eeb78eee76011edec18b4be45c13392276f5a351d2440896e3af27367a3667e41bea01 SHA512 2c6bda73778bd7a8e669351362e78c807a5bbf17a282c4d17e4f3de7557103f7e7635a42cdf88a60bd3d6b29d2bd80eb671dd8631b6ff1d8daa72ae5684f2616
DIST sqlglot-30.17.0.tar.gz 5999019 BLAKE2B 7d9e3855bc37296b01f55cde9f48a4da4ababc9600e59a9afe1748d00ae99046aaf41fce488ecee3a096351e73464c6da0da3b1b3481b427d768314b87e69cab SHA512 f451481fd2aea96e6c7818604414ac3759c478bbd4adff655358e0c551e125111ce12b956e9fac6cb1ec5e0cb5338991744a90972e1fe546954978ebd856d730
+DIST sqlglot-30.18.0.tar.gz 6018496 BLAKE2B 0df58a325c3c5b19ba79d667d6e2be5cfbab5d61714056784a12f5f689fae3cd5ef887ee366f6f38c4a0ee42c26f0c1a771da8d6e7142c71ce2d83273e4ea90d SHA512 817c667e7dc7f178d3b9b838d3db10e28a25d0c903b6fd80eef80f74eeaec2ef49db5ceb6a425d2359aaf864d201603bc4e8e82ab436d881d4685d4ff6601356
diff --git a/dev-python/sqlglot/sqlglot-30.16.0.ebuild b/dev-python/sqlglot/sqlglot-30.18.0.ebuild
index 063fa5096326..063fa5096326 100644
--- a/dev-python/sqlglot/sqlglot-30.16.0.ebuild
+++ b/dev-python/sqlglot/sqlglot-30.18.0.ebuild
diff --git a/dev-python/urwid/Manifest b/dev-python/urwid/Manifest
index 831387b0d64e..70aa575c999f 100644
--- a/dev-python/urwid/Manifest
+++ b/dev-python/urwid/Manifest
@@ -8,3 +8,5 @@ DIST urwid-4.0.9.tar.gz 880825 BLAKE2B 466b04d033482a9bc09f628bee147a8f1a481d5d3
DIST urwid-4.0.9.tar.gz.provenance 9679 BLAKE2B 8b53a0a266492cbc0bf19d8d6a7f0fff0e9935ca0c19f82c13494266d46d8cb2654e822c4003843a18b3acab5e0e1c598faadd69ac401e3fab2b4bbf4e1153bc SHA512 c76ef14f4023eec53998bf55dc91dd8ce06a3c9dd5c82b3437ecdde86644415e45a4084cfe2773a1329724489bf783debeddf02cf402e209f054c43bf3f1080c
DIST urwid-4.1.0.tar.gz 929987 BLAKE2B a66a8830bcad394ee4d6c7cb59533325f7dadcea1dfb0277ad130649b9da3879bbbf48f876d63241afba03d40ba9936b58156f2b7b4dde44bb752c9b26fd4d35 SHA512 f364bb288a0e2a2767fa7554da71a6d4b9a5fa4b84a65f9d44a30792c1744ce65705503d69921ca061a93d0a3478679ad7318e36a30e3ab6ef4f356051691a57
DIST urwid-4.1.0.tar.gz.provenance 9448 BLAKE2B 5b62f268c52e6b3f3565f2e37d805d614455004e8ec1051b0699036f5c8107f10e3e0c24a5fb55ee62c26df34510b9efdd049b9f4ac2e2f71b27c396ecb621a3 SHA512 acec0570ee000146a801f7511cb5bc92b4f342634afea8750cbffeb84f44fe094260c66924778e87cd68204f9b1888fea293b5591e2be97bb25fc935f7635b49
+DIST urwid-4.1.1.tar.gz 931618 BLAKE2B e95dd2d7e6b3031bef3c18ad281061b4d28c4e94c0a37d7c2373bc5de3a9d95e0414cb175f725788e59ef5e0ff3258a8718ec07912433528e8eb4f8dac33bd83 SHA512 3c6e0fe1c6d88fe4ccacc62265d112cefa671a856c06061cab41dd63ed038dd38e7fffe23bd0d35e8c1e645b518284da5803960dd55022c3407fc17b7b268001
+DIST urwid-4.1.1.tar.gz.provenance 9585 BLAKE2B 6d7c6f2771f44b0d58dc1637f1ee2619a0984e6f18d90040e748bc8e825574dbeab7945718212b94c7e6eb2b0517d994cf61aaa459dc6f4beb686bf7342636b2 SHA512 eddcc53048ce59d01caa6c9f8a6f7cc936fc98148d10f856f6ae68b4033d77957b454333e8a91af383a4c3cdf492f1aec8e36666b6a460e2145c1c1665dc6828
diff --git a/dev-python/urwid/urwid-4.1.1.ebuild b/dev-python/urwid/urwid-4.1.1.ebuild
new file mode 100644
index 000000000000..aba0d14bbb3d
--- /dev/null
+++ b/dev-python/urwid/urwid-4.1.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/urwid/urwid
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Curses-based user interface library for Python"
+HOMEPAGE="
+ https://urwid.org/
+ https://pypi.org/project/urwid/
+ https://github.com/urwid/urwid/
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="examples"
+
+RDEPEND="
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ >=dev-python/wcwidth-0.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e 's:--cov --cov-report=term::' pyproject.toml || die
+}
+
+python_install_all() {
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "Trio event loop" "dev-python/trio"
+}
diff --git a/dev-python/vcs-versioning/Manifest b/dev-python/vcs-versioning/Manifest
index c0fa35050544..ab01c2b4bd55 100644
--- a/dev-python/vcs-versioning/Manifest
+++ b/dev-python/vcs-versioning/Manifest
@@ -6,3 +6,5 @@ DIST vcs_versioning-2.3.1.tar.gz 156292 BLAKE2B 5d8ceee494d3d048e6e6102455123ff7
DIST vcs_versioning-2.3.1.tar.gz.provenance 10199 BLAKE2B 3e9f7ba44894c8a28eadd9cf6d5398dd56ed53a60776e89d0f6eadbe379e0c0f6d973ebaa4580c96e1f7862bf711ab6e1db26f196c5bdff42f8e271ed2c053e5 SHA512 cbafe022dbcf0bc28db3d4e17a272f052ff2ab17c44a155a8e63b11fe640bdbdbec8ab4b9ba3fe8ed9028de3a756190e0b76eed1be692d7234a5086046839a3c
DIST vcs_versioning-2.3.2.tar.gz 149377 BLAKE2B 59ef750eef0f2bfe8a23697830bd1b30aaf262a875f4926d362a71390cec5ef38e7d741587751432ae02df563ec457aff1a72ec385887dce0927bb705197d7d5 SHA512 d50d809d2062e828181180d74f983aa68bb35e3cc985e5a14cad785da47a99c390b44da66ab473bcff22b49d340338ae2027efbb70087938ba23743550eaead0
DIST vcs_versioning-2.3.2.tar.gz.provenance 10156 BLAKE2B a4ff73c5f12f0da7c2cbd20f9eff44a60fe9e9157a040439059f0e577744b0505b4fb870ad2c9c937dce791e06a366950db382b89e4dc5930fefb91d9e78bd96 SHA512 4f0de3cf863dc730cd5d2ac0e4802fbdd0803749254c4ec0e30095d2619ebcab52bcef284c46d95c6a9c4c679150c370bcd328b611b51e81c1bf8cc28db90195
+DIST vcs_versioning-2.3.4.tar.gz 149647 BLAKE2B 1ca6aea0effd2d743140e23828ed025be1cb22190be1a971f31de912de539f70e1c6316472ed4d0535bee1dfd647771884e4297f6d58fc5f5362cfa932064c7f SHA512 6eebdf57d70f994e9f760c736fd66613eb639d72ee71737d9a8e9fb05edcc07a6532f0ee16dc4f6296f502f903300b86042892f57fe14ee4ab50fe10bc54dd8a
+DIST vcs_versioning-2.3.4.tar.gz.provenance 10246 BLAKE2B 562e356ece3ee4061fe5b55ffc9c7f67d621aa903c8cc8ac724789f4e8bae4f7a5044d49fed38130ac74afdaedc4f456af31aa9b9a24759e6580773c0d17d1fa SHA512 48e6903166bce3c2157f5c8622c07d254e3daa9ef14a404780fdc25d7d7bb9eea3a37a8c183c51df9fc1f0ee5d37cbaf8a2fb8454c4ea24f3b0b966f4651e02c
diff --git a/dev-python/vcs-versioning/vcs-versioning-2.3.4.ebuild b/dev-python/vcs-versioning/vcs-versioning-2.3.4.ebuild
new file mode 100644
index 000000000000..f253689d01b8
--- /dev/null
+++ b/dev-python/vcs-versioning/vcs-versioning-2.3.4.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pypa/setuptools-scm
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Core VCS versioning functionality from setuptools-scm"
+HOMEPAGE="
+ https://github.com/pypa/setuptools-scm/
+ https://pypi.org/project/vcs-versioning/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-26.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ >=dev-python/setuptools-scm-10.1.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # the usual nondescript gpg-agent failure
+ testing_vcs/test_git.py::test_git_getdate_signed_commit
+)
diff --git a/dev-python/vdirsyncer/Manifest b/dev-python/vdirsyncer/Manifest
index f154cfb80fbc..388a2498c170 100644
--- a/dev-python/vdirsyncer/Manifest
+++ b/dev-python/vdirsyncer/Manifest
@@ -1 +1,2 @@
DIST vdirsyncer-0.20.0.tar.gz 126633 BLAKE2B 4d9c984d18eddcee4dea2fe29b76060ce1ca51cff23a6f188fed12d848a7e544102333808d584fcf342faf08fa792f54e0ce997d0a3ca846c6cf9741a21a2c9a SHA512 8499440ce8ba036d40f5bbff9d7cadb485be8bb2419d1fbad947f244259dabba9f2527ffff24298f697dd10e6ccd39155ea9547a480c584f64da0eadb993dad7
+DIST vdirsyncer-0.21.0.tar.gz 130993 BLAKE2B 2e92d069cf5dbbb1ec9987b31d3972e6aaf4075ff2aba805a2f8bfc297c6230079c58cfe5a2e12a0cf5fea488a5ac5e9a9cd778f3f10b94d2baac0a3084e04de SHA512 ac7dfab03221cbe682de6cb88042d99bbcefce7bf6b07bd24ed3e92b2085023e18ac5514c83cec3c0d07fe7ffe49ddff89c99da7b51d4dc7c46724a729547f67
diff --git a/dev-python/vdirsyncer/vdirsyncer-0.21.0.ebuild b/dev-python/vdirsyncer/vdirsyncer-0.21.0.ebuild
new file mode 100644
index 000000000000..62c99768b6b0
--- /dev/null
+++ b/dev-python/vdirsyncer/vdirsyncer-0.21.0.ebuild
@@ -0,0 +1,70 @@
+# 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_{13..14} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 pypi systemd
+
+DESCRIPTION="Synchronize calendars and contacts"
+HOMEPAGE="
+ https://github.com/pimutils/vdirsyncer/
+ https://pypi.org/project/vdirsyncer/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aiohttp-3.9.0[${PYTHON_USEDEP}]
+ dev-python/aiohttp-oauthlib[${PYTHON_USEDEP}]
+ >=dev-python/aiostream-0.4.3[${PYTHON_USEDEP}]
+ >=dev-python/click-5.0[${PYTHON_USEDEP}]
+ >=dev-python/click-log-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.20.0[${PYTHON_USEDEP}]
+ >=dev-python/tenacity-9.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-8[${PYTHON_USEDEP}]
+ test? (
+ dev-python/aioresponses[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( AUTHORS.rst CHANGELOG.rst CONTRIBUTING.rst README.rst config.example )
+
+EPYTEST_PLUGINS=( hypothesis pytest-{asyncio,httpserver} )
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # skip tests needing servers running
+ local -x DAV_SERVER=skip
+ local -x REMOTESTORAGE_SERVER=skip
+ # pytest dies hard if the envvars do not have any value...
+ local -x CI=false
+ local -x DETERMINISTIC_TESTS=false
+
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/system/utils/test_main.py::test_request_ssl
+ )
+
+ epytest -o addopts=
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ systemd_douserunit contrib/vdirsyncer.{service,timer}
+}
diff --git a/dev-python/zmq-anyio/Manifest b/dev-python/zmq-anyio/Manifest
index 4377c104aed8..aa1a14d0b449 100644
--- a/dev-python/zmq-anyio/Manifest
+++ b/dev-python/zmq-anyio/Manifest
@@ -1,3 +1,4 @@
-DIST zmq_anyio-0.3.10.tar.gz 14648 BLAKE2B 96864cddc1287df6c80432cd3693865eadf508482e10af3788ec1ffee6a2ea9fbc50ba13e8f527682c90fab5027be5cd1abbddecb05b099c4f8da0e78b60ff0a SHA512 b41ea654cff258fdba05108e4603c113bac8d56439ed65184d9cbb1c88b45471d989b7a0e232d9f5fc587691720135982fc39d39f0dfc7efc01178128f386630
DIST zmq_anyio-0.3.14.tar.gz 12132 BLAKE2B 94a2e1f25a04a41eea6d76f91a0def9e4c9fe1627781ccd5900519d915acf3b9aa5dd8934893c90c004108a7a7812cb076949d49ded5d192c09c156a3ed1bcf3 SHA512 8fc85c1cdf995e1e606856991a70eb3c77c14df82eb9b62b470e90dda5671ff9de7c8a623b37b8c3773b753f6d55a5ebc566441889e7076feba961c05f26ada4
DIST zmq_anyio-0.3.14.tar.gz.provenance 9620 BLAKE2B 136683af915869833bf3eed3d7a7b6ec4bea60bc6c1b3324bad5913ebfb9ac99474c6f74cec233e95e10d4116a72ec0361655811a16016e2b764978c1d94c043 SHA512 ce913788aae5d0b2366a839a94f693e5b07d91b1f4a02b104376792d141e147c27e18c75b4316608eac05d7cb205fc171fc5c12b19ca3c1b7fa70879f12ca54a
+DIST zmq_anyio-0.4.1.tar.gz 12610 BLAKE2B 7ebba47ed6d68d0f49ffd6f7866849c04f60df39137212ec79acff5e9b1724c1c77ddf7e2d45b0202a9c538c28e09b4808e81c18d67f680ca70cbd9c6cbc9bf7 SHA512 bb8dd4cef0d209b27177db6118a8a7d2eaf249c85e3636fbca8ddef8c13d7e1c99e1d07f99ff3f6313c0dd5170a6edff57b37523ab065f23c0eecc62fae842db
+DIST zmq_anyio-0.4.1.tar.gz.provenance 9897 BLAKE2B 342ea73e0f61cc9481d2dc0f9e15ecf59787bde8f27e5e84b416e3f28c8fb727ca497fa6619cc21c1b69f3b5e130128652c84a525f79b7db1d78363f36a2c009 SHA512 e63a63b69fbb0416b65bc3ef4cec9a45665e5f5249aa5b63fd0a10161194d86b2d54ccd6975b9cc5d17c621572ec4b4f96a0d779b3f7903339f3d14d66e2a597
diff --git a/dev-python/zmq-anyio/zmq-anyio-0.3.10.ebuild b/dev-python/zmq-anyio/zmq-anyio-0.3.10.ebuild
deleted file mode 100644
index bb9c39b57348..000000000000
--- a/dev-python/zmq-anyio/zmq-anyio-0.3.10.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Asynchronous API for ZMQ using AnyIO"
-HOMEPAGE="
- https://github.com/QuantStack/zmq-anyio/
- https://pypi.org/project/zmq-anyio/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test-rust"
-
-RDEPEND="
- <dev-python/anyio-5[${PYTHON_USEDEP}]
- >=dev-python/anyio-4.8.0[${PYTHON_USEDEP}]
- <dev-python/anyioutils-0.8[${PYTHON_USEDEP}]
- >=dev-python/anyioutils-0.7.1[${PYTHON_USEDEP}]
- <dev-python/pyzmq-28[${PYTHON_USEDEP}]
- >=dev-python/pyzmq-26.0.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/pytest-timeout[${PYTHON_USEDEP}]
- test-rust? (
- >=dev-python/trio-0.27.0[${PYTHON_USEDEP}]
- )
- )
-"
-
-EPYTEST_PLUGINS=( anyio )
-distutils_enable_tests pytest
-
-python_test() {
- local args=()
- if ! has_version "dev-python/trio[${PYTHON_USEDEP}]"; then
- args+=( -k "not trio" )
- fi
-
- epytest "${args[@]}"
-}
diff --git a/dev-python/zmq-anyio/zmq-anyio-0.4.1.ebuild b/dev-python/zmq-anyio/zmq-anyio-0.4.1.ebuild
new file mode 100644
index 000000000000..4985177026cf
--- /dev/null
+++ b/dev-python/zmq-anyio/zmq-anyio-0.4.1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=uv-build
+PYPI_VERIFY_REPO=https://github.com/QuantStack/zmq-anyio
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Asynchronous API for ZMQ using AnyIO"
+HOMEPAGE="
+ https://github.com/QuantStack/zmq-anyio/
+ https://pypi.org/project/zmq-anyio/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ <dev-python/anyio-5[${PYTHON_USEDEP}]
+ >=dev-python/anyio-4.15.0[${PYTHON_USEDEP}]
+ <dev-python/pyzmq-28[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-27.1.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/trio-0.27.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( anyio pytest-timeout )
+distutils_enable_tests pytest
diff --git a/dev-qt/qt-creator/Manifest b/dev-qt/qt-creator/Manifest
index 05c7fb312cc3..bd68cd621d3e 100644
--- a/dev-qt/qt-creator/Manifest
+++ b/dev-qt/qt-creator/Manifest
@@ -1,2 +1 @@
-DIST qt-creator-opensource-src-20.0.0.tar.xz 40130492 BLAKE2B 4b22ef73e4fd4b5ee850561218cc92c7708661182137bae761a6655d2c79ce75e70fc4e767d69edc3e4e21af0957a9470dd37d87fc37cac52b832df8238cb571 SHA512 16d5435f47c7ab79641a9020f293a3577aa2468d7c46ceaad48880cdcbfa64aa2a393e93c54391f694e1af28714e927ce562f7f5b750f0df3f02ef65e19985bf
DIST qt-creator-opensource-src-20.0.1.tar.xz 40201704 BLAKE2B 9426c4a1b00ddde501a08b5bba4ffd70cecec07b373478ef0357f80e8a78d4c4135bfef6b7f9f72ef7b050e03026340ea4d0d93ab22ba99b911ee7619325b15e SHA512 199d7473d9ee3f729a05a79bf499c14e53aeb252ff8aba5fe4e59085a793f8c29000a090c58967ff7021470f7af81ac6004d8c3e71bdb8e8037a5566f3803618
diff --git a/dev-qt/qt-creator/files/qt-creator-20.0.1-libcxx23.patch b/dev-qt/qt-creator/files/qt-creator-20.0.1-libcxx23.patch
new file mode 100644
index 000000000000..f4be0cf0e530
--- /dev/null
+++ b/dev-qt/qt-creator/files/qt-creator-20.0.1-libcxx23.patch
@@ -0,0 +1,44 @@
+https://bugs.gentoo.org/981862
+https://github.com/nonstd-lite/span-lite/pull/88
+https://github.com/nonstd-lite/span-lite/commit/5ac676ad861
+--- a/src/libs/3rdparty/span/span.hpp
++++ b/src/libs/3rdparty/span/span.hpp
+@@ -47,4 +47,20 @@
+ #endif
+
++#ifndef span_CONFIG_CONTRACT_LEVEL_ON
++# define span_CONFIG_CONTRACT_LEVEL_ON 1
++#endif
++
++#ifndef span_CONFIG_CONTRACT_VIOLATION_THROWS
++# define span_CONFIG_CONTRACT_VIOLATION_THROWS 0
++#endif
++
++#ifndef span_CONFIG_CONTRACT_VIOLATION_TERMINATES
++# if span_CONFIG_CONTRACT_VIOLATION_THROWS
++# define span_CONFIG_CONTRACT_VIOLATION_TERMINATES 0
++# else
++# define span_CONFIG_CONTRACT_VIOLATION_TERMINATES 1
++# endif
++#endif
++
+ #ifndef span_CONFIG_EXTENT_TYPE
+ # define span_CONFIG_EXTENT_TYPE std::size_t
+@@ -171,6 +187,6 @@
+ #endif
+
+-#if defined( span_CONFIG_CONTRACT_VIOLATION_THROWS ) && span_CONFIG_CONTRACT_VIOLATION_THROWS && \
+- defined( span_CONFIG_CONTRACT_VIOLATION_TERMINATES ) && span_CONFIG_CONTRACT_VIOLATION_TERMINATES
++#if span_CONFIG_CONTRACT_VIOLATION_THROWS && \
++ span_CONFIG_CONTRACT_VIOLATION_TERMINATES
+ # error Please define none or one of span_CONFIG_CONTRACT_VIOLATION_THROWS and span_CONFIG_CONTRACT_VIOLATION_TERMINATES to 1, but not both.
+ #endif
+@@ -497,4 +513,8 @@
+ #endif
+
++#if span_CONFIG( CONTRACT_VIOLATION_TERMINATES )
++# include <exception>
++#endif
++
+ // Contract violation
+
diff --git a/dev-qt/qt-creator/qt-creator-20.0.0.ebuild b/dev-qt/qt-creator/qt-creator-20.0.0.ebuild
deleted file mode 100644
index 07eafae97d73..000000000000
--- a/dev-qt/qt-creator/qt-creator-20.0.0.ebuild
+++ /dev/null
@@ -1,285 +0,0 @@
-# Copyright 2023-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-LLVM_COMPAT=( {17..22} )
-LLVM_OPTIONAL=1
-PYTHON_COMPAT=( python3_{13..14} )
-inherit cmake flag-o-matic llvm-r2 python-any-r1 readme.gentoo-r1 xdg
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI=(
- "https://code.qt.io/qt-creator/qt-creator.git"
- "https://github.com/qt-creator/qt-creator.git"
- )
- EGIT_SUBMODULES=(
- perfparser
- src/libs/qlitehtml
- src/libs/qlitehtml/src/3rdparty/litehtml
- )
-else
- QTC_PV=${PV/_/-}
- QTC_P=${PN}-opensource-src-${QTC_PV}
- [[ ${QTC_PV} == ${PV} ]] && QTC_REL=official || QTC_REL=development
- SRC_URI="
- https://download.qt.io/${QTC_REL}_releases/qtcreator/$(ver_cut 1-2)/${PV/_/-}/${QTC_P}.tar.xz
- "
- S=${WORKDIR}/${QTC_P}
- KEYWORDS="amd64"
-fi
-
-DESCRIPTION="Lightweight IDE for C++/QML development centering around Qt"
-HOMEPAGE="https://www.qt.io/product/development-tools"
-
-LICENSE="GPL-3"
-SLOT="0"
-IUSE="
- +clang designer doc +help keyring plugin-dev qmldesigner
- serialterminal +svg test +tracing webengine
-"
-REQUIRED_USE="clang? ( ${LLVM_REQUIRED_USE} )"
-RESTRICT="!test? ( test )"
-
-QT_PV=6.7.3:6
-
-# := is used where Qt's private APIs are used for safety
-COMMON_DEPEND="
- app-arch/libarchive:=
- dev-cpp/yaml-cpp:=
- >=dev-qt/qtbase-${QT_PV}=[concurrent,dbus,gui,network,ssl,widgets,xml]
- >=dev-qt/qtdeclarative-${QT_PV}=
- >=dev-qt/qthttpserver-${QT_PV}
- >=dev-qt/qttasktree-${QT_PV}
- clang? (
- $(llvm_gen_dep '
- llvm-core/clang:${LLVM_SLOT}=
- llvm-core/llvm:${LLVM_SLOT}=
- ')
- )
- designer? ( >=dev-qt/qttools-${QT_PV}[designer] )
- help? (
- >=dev-qt/qttools-${QT_PV}[assistant]
- webengine? ( >=dev-qt/qtwebengine-${QT_PV} )
- )
- keyring? (
- app-crypt/libsecret
- dev-libs/glib:2
- )
- qmldesigner? (
- >=dev-qt/qtquick3d-${QT_PV}=
- >=dev-qt/qtsvg-${QT_PV}
- >=dev-qt/qtwebsockets-${QT_PV}
- webengine? ( >=dev-qt/qtwebengine-${QT_PV} )
- )
- serialterminal? ( >=dev-qt/qtserialport-${QT_PV} )
- svg? ( >=dev-qt/qtsvg-${QT_PV} )
- tracing? (
- app-arch/zstd:=
- dev-libs/elfutils
- >=dev-qt/qtcharts-${QT_PV}
- >=dev-qt/qtshadertools-${QT_PV}
- )
-"
-# qtimageformats for .webp in examples, semi-optfeature but useful in general
-RDEPEND="
- ${COMMON_DEPEND}
- help? ( >=dev-qt/qtimageformats-${QT_PV} )
- qmldesigner? ( >=dev-qt/qtquicktimeline-${QT_PV} )
-"
-DEPEND="${COMMON_DEPEND}"
-BDEPEND="
- ${PYTHON_DEPS}
- >=dev-qt/qttools-${QT_PV}[linguist]
- doc? ( >=dev-qt/qttools-${QT_PV}[qdoc,qtattributionsscanner] )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-16.0.0-musl-no-execinfo.patch
- "${FILESDIR}"/${PN}-12.0.0-musl-no-malloc-trim.patch
-)
-
-src_prepare() {
- cmake_src_prepare
-
- # needed for finding docs at runtime in PF
- sed -e "/_IDE_DOC_PATH/s/qtcreator/${PF}/" \
- -i cmake/QtCreatorAPIInternal.cmake || die
-
- # avoid building manual tests (aka not ran) for nothing (bug #950010)
- cmake_comment_add_subdirectory -f tests/CMakeLists.txt manual
-
- if use plugin-dev; then #928423
- # cmake --install --component integrates poorly with the cmake
- # eclass and the install targets are otherwise missing, so strip
- # out EXCLUDE_FROM_ALL until figure out a better solution
- find . \( -name CMakeLists.txt -o -name '*.cmake' \) -exec sed -i -zE \
- 's/COMPONENT[[:space:]]+Devel[[:space:]]+EXCLUDE_FROM_ALL//g' {} + || die
- fi
-}
-
-src_configure() {
- use clang && llvm_chost_setup
-
- replace-flags '-O[sz]' -O2 #980116
-
- # -Werror=lto-type-mismatch issues, needs looking into
- filter-lto
-
- # temporary workaround for musl-1.2.4 (bug #903611), this ideally
- # needs fixing in qtbase as *64 usage comes from its headers' macros
- use elibc_musl && append-lfs-flags
-
- local mycmakeargs=(
- -DBUILD_DEVELOPER_DOCS=$(usex doc)
- -DBUILD_DOCS_BY_DEFAULT=$(usex doc)
- -DBUILD_WITH_PCH=no
- -DWITH_DOCS=$(usex doc)
- -DWITH_TESTS=$(usex test)
-
- # sticking to bundled for now until it switches to KF6's
- -DBUILD_LIBRARY_KSYNTAXHIGHLIGHTING=yes
-
- # Much can be optional, but do not want to flood users (or maintainers)
- # with too many flags. Not to mention that many plugins are merely
- # wrappers around still optional tools (e.g. cvs) and any unwanted
- # plugins can be disabled at runtime. So optional flags are limited
- # to plugins with additional build-time dependencies.
- -DBUILD_LIBRARY_TRACING=$(usex tracing) # qml+perfprofiler,ctfvisual
- -DBUILD_EXECUTABLE_PERFPARSER=$(usex tracing)
- -DBUILD_PLUGIN_APPSTATISTICSMONITOR=$(usex tracing)
-
- -DBUILD_PLUGIN_CLANGCODEMODEL=$(usex clang)
- -DBUILD_PLUGIN_CLANGFORMAT=$(usex clang)
- -DBUILD_PLUGIN_CLANGTOOLS=$(usex clang)
- -DCLANGTOOLING_LINK_CLANG_DYLIB=yes
-
- -DBUILD_PLUGIN_DESIGNER=$(usex designer)
-
- -DBUILD_PLUGIN_HELP=$(usex help)
- -DBUILD_HELPVIEWERBACKEND_QTWEBENGINE=$(usex webengine)
- # TODO?: unbundle litehtml, but support for latest releases
- # tend to lag behind and bundled may work out better for now
- -DBUILD_LIBRARY_QLITEHTML=$(usex help $(usex !webengine))
-
- # help shouldn't use with the above, but qmldesigner is automagic
- $(use help || use qmldesigner &&
- cmake_use_find_package webengine Qt6WebEngineWidgets)
-
- -DBUILD_PLUGIN_SERIALTERMINAL=$(usex serialterminal)
- -DENABLE_SVG_SUPPORT=$(usex svg)
- -DWITH_QMLDESIGNER=$(usex qmldesigner)
-
- # cmdbridge-server is a hardly used maintenance burden (bug #967488)
- -DBUILD_EXECUTABLE_CMDBRIDGE=no
-
- # meant to be in sync with qtbase[journald], but think(?) not worth
- # handling given qt-creator can use QT_FORCE_STDERR_LOGGING=1 nowadays
- -Djournald=no
-
- # not packaged, but allow using if found
- #-DCMAKE_DISABLE_FIND_PACKAGE_LibDDemangle=yes
- #-DCMAKE_DISABLE_FIND_PACKAGE_LibRustcDemangle=yes
-
- # for bundled qtkeychain (no switch to unbundle right now)
- # reminder: if ever unbundled/optional, qtbase[dbus] can be removed
- -DLIBSECRET_SUPPORT=$(usex keyring)
- )
-
- cmake_src_configure
-}
-
-src_test() {
- local -x QT_QPA_PLATFORM=offscreen
-
- local CMAKE_SKIP_TESTS=(
- # broke since 17.0.0 and hasn't really been looked into yet,
- # does not seem to cause visible problems so skipping for now
- tst_process
- # skipping same tests+label as upstream's CI by default
- # `grep ctest .github/workflows/build_cmake.yml`
- tst_perfdata
- )
-
- cmake_src_test --label-exclude exclude_from_precheck
-}
-
-src_install() {
- cmake_src_install
-
- if use doc; then
- dodoc -r "${BUILD_DIR}"/doc/html
- dodoc "${BUILD_DIR}"/share/doc/${PF}/qtcreator{,-dev}.qch
- docompress -x /usr/share/doc/${PF}/qtcreator{,-dev}.qch
- fi
-
- local DISABLE_AUTOFORMATTING=yes
- local DOC_CONTENTS="\
-Some plugins (if used) may need optional extra dependencies/USE.
-
-This list provides associations with Gentoo's packages (if exists)
-ordered as in Qt Creator's Help -> About Plugins (not exhaustive).
-
-dev-qt/qt-docs:6 with USE=\"examples qch\" is notably recommended, or
-else the example tab will be empty alongside missing documentation.
-
-Build Systems:
-- CMakeProjectManager (dev-build/cmake)
-- MesonProjectManager (dev-build/meson)
-- QbsProjectManager (dev-util/qbs)
-
-C++:
-- Beautifier (dev-util/astyle and/or dev-util/uncrustify)
-- ClangCodeModel (USE=clang, dev-util/clazy to understand Qt semantics)
-- ClangFormat (USE=clang)
-
-Code Analyzer:
-- ClangTools (USE=clang)
-- Cppcheck (dev-util/cppcheck)
-- CtfVisualizer (USE=tracing)
-- PerfProfiler (USE=tracing)
-- Valgrind (dev-debug/valgrind)
-
-Core:
-- Help (USE=help + dev-qt/qt-docs:6 with USE=\"examples qch\")
-
-Device Support:
-- Android (virtual/jdk, will also want the unpackaged Qt for Android)
-
-Other Languages:
-- Nim (dev-lang/nim)
-- Python (dev-lang/python)
-
-Qt Creator:
-- Designer (USE=designer)
-
-Qt Quick:
-- Insight (USE=qmldesigner)
-- QmlDesigner (USE=qmldesigner)
-- QmlProfiler (USE=tracing)
-
-Utilities:
-- AppStatisticsMonitor (USE=tracing)
-- Autotest (dev-cpp/catch, dev-cpp/gtest, or dev-libs/boost if used)
-- Conan (dev-util/conan)
-- Docker (app-containers/docker)
-- Haskell (dev-lang/ghc)
-- ScreenRecorder (media-video/ffmpeg)
-- SerialTerminal (USE=serialterminal)
-- SilverSearcher (sys-apps/the_silver_searcher)
-- StudioWelcome (USE=qmldesigner)
-
-Version Control:
-- CVS (dev-vcs/cvs)
-- Fossil (dev-vcs/fossil)
-- Git (dev-vcs/git)
-- Mercurial (dev-vcs/mercurial)
-- Subversion (dev-vcs/subversion)"
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- readme.gentoo_print_elog
-}
diff --git a/dev-qt/qt-creator/qt-creator-20.0.1.ebuild b/dev-qt/qt-creator/qt-creator-20.0.1.ebuild
index 07eafae97d73..a0231c0af349 100644
--- a/dev-qt/qt-creator/qt-creator-20.0.1.ebuild
+++ b/dev-qt/qt-creator/qt-creator-20.0.1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-LLVM_COMPAT=( {17..22} )
+LLVM_COMPAT=( {17..23} )
LLVM_OPTIONAL=1
PYTHON_COMPAT=( python3_{13..14} )
inherit cmake flag-o-matic llvm-r2 python-any-r1 readme.gentoo-r1 xdg
@@ -98,6 +98,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-16.0.0-musl-no-execinfo.patch
"${FILESDIR}"/${PN}-12.0.0-musl-no-malloc-trim.patch
+ "${FILESDIR}"/${PN}-20.0.1-libcxx23.patch
)
src_prepare() {
diff --git a/dev-qt/qt-creator/qt-creator-9999.ebuild b/dev-qt/qt-creator/qt-creator-9999.ebuild
index 37d4f56877bb..b235109e708c 100644
--- a/dev-qt/qt-creator/qt-creator-9999.ebuild
+++ b/dev-qt/qt-creator/qt-creator-9999.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-LLVM_COMPAT=( {17..22} )
+LLVM_COMPAT=( {17..23} )
LLVM_OPTIONAL=1
PYTHON_COMPAT=( python3_{13..14} )
inherit cmake flag-o-matic llvm-r2 python-any-r1 readme.gentoo-r1 xdg
@@ -97,6 +97,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-21.0.0-musl-no-execinfo.patch
+ "${FILESDIR}"/${PN}-20.0.1-libcxx23.patch
)
src_prepare() {
diff --git a/dev-qt/qttools/Manifest b/dev-qt/qttools/Manifest
index fdda753d0d10..b588e8b2738e 100644
--- a/dev-qt/qttools/Manifest
+++ b/dev-qt/qttools/Manifest
@@ -1,2 +1,3 @@
+DIST qttools-6.11.2-llvm22.patch.xz 4676 BLAKE2B 29944c9ef71e0b3830c312bd7d32694ed9d3b4aab2a1bd8d1c6cf1ba4126567aca3086c25b3b5397b75eba907bbd5e0e02635798b44564a16832f35cc5ef90ba SHA512 b2dcf4e0b8600ecae612b78f42ab505b7f77db381e7dd122b7d40545e0443e66c9dd868f470aa15a3ebab2da04ab305706fe9258d11b20330f71e3cb5ab714a8
DIST qttools-everywhere-src-6.11.1.tar.xz 10225832 BLAKE2B 29acbe64c62dd2a0cf1f1833a532e338c564fa8b1c73a131476869cb9caf988a6d5de1abba837661bf916d29068383f1fe724282de9eacf40a93bac133553872 SHA512 826d21ed3e45feebe8c083b9fc9fc8e2a64aaec972d58388c94eabeaa3c2d8e4c86f1620a7caa6a1784f2f84641aec3df4b20006fe369eeaeb1968b838497b56
DIST qttools-everywhere-src-6.11.2.tar.xz 10226452 BLAKE2B 52489f7754aa37884cae0149cf4b0c5f3882c182170d3c92f6bfd95f0cc9e30162eb9d1349fdb8f634f8ab29b863d10cf54d98521ba6e14209067bba2f33b23c SHA512 2c420cbafbcfa300168e1c46d0e8a71e15671b065e6a2190eebcb4f1456cc95175c0e8ce0831ab9e4cca7263ba18c0320f4a1c677c4aa2f796c19afe8a76f482
diff --git a/dev-qt/qttools/qttools-6.11.2.ebuild b/dev-qt/qttools/qttools-6.11.2.ebuild
index de64f0f3663a..556443683ed3 100644
--- a/dev-qt/qttools/qttools-6.11.2.ebuild
+++ b/dev-qt/qttools/qttools-6.11.2.ebuild
@@ -3,8 +3,9 @@
EAPI=8
-# match QDOC_SUPPORTED_CLANG_VERSIONS in src/qdoc/cmake/QDocConfiguration.cmake
-LLVM_COMPAT=( {17..21} )
+# see QDOC_SUPPORTED_CLANG_VERSIONS in src/qdoc/cmake/QDocConfiguration.cmake
+# for officially supported versions, but newer may work
+LLVM_COMPAT=( {17..23} )
LLVM_OPTIONAL=1
# behaves very badly when qttools is not already installed, also
@@ -15,6 +16,9 @@ QT6_RESTRICT_TESTS=1
inherit flag-o-matic llvm-r2 optfeature qt6-build xdg
DESCRIPTION="Qt Tools Collection"
+SRC_URI+="
+ https://distfiles.gentoo.org/pub/dev/ionen@gentoo.org/${PN}-6.11.2-llvm22.patch.xz
+"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
@@ -65,6 +69,10 @@ DEPEND="
)
"
+PATCHES=(
+ "${WORKDIR}"/${PN}-6.11.2-llvm22.patch
+)
+
src_prepare() {
qt6-build_src_prepare
diff --git a/dev-qt/qttools/qttools-6.11.9999.ebuild b/dev-qt/qttools/qttools-6.11.9999.ebuild
index de64f0f3663a..556443683ed3 100644
--- a/dev-qt/qttools/qttools-6.11.9999.ebuild
+++ b/dev-qt/qttools/qttools-6.11.9999.ebuild
@@ -3,8 +3,9 @@
EAPI=8
-# match QDOC_SUPPORTED_CLANG_VERSIONS in src/qdoc/cmake/QDocConfiguration.cmake
-LLVM_COMPAT=( {17..21} )
+# see QDOC_SUPPORTED_CLANG_VERSIONS in src/qdoc/cmake/QDocConfiguration.cmake
+# for officially supported versions, but newer may work
+LLVM_COMPAT=( {17..23} )
LLVM_OPTIONAL=1
# behaves very badly when qttools is not already installed, also
@@ -15,6 +16,9 @@ QT6_RESTRICT_TESTS=1
inherit flag-o-matic llvm-r2 optfeature qt6-build xdg
DESCRIPTION="Qt Tools Collection"
+SRC_URI+="
+ https://distfiles.gentoo.org/pub/dev/ionen@gentoo.org/${PN}-6.11.2-llvm22.patch.xz
+"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
@@ -65,6 +69,10 @@ DEPEND="
)
"
+PATCHES=(
+ "${WORKDIR}"/${PN}-6.11.2-llvm22.patch
+)
+
src_prepare() {
qt6-build_src_prepare
diff --git a/dev-qt/qttools/qttools-6.12.9999.ebuild b/dev-qt/qttools/qttools-6.12.9999.ebuild
index b3dc19d06eaf..3700693b0bd1 100644
--- a/dev-qt/qttools/qttools-6.12.9999.ebuild
+++ b/dev-qt/qttools/qttools-6.12.9999.ebuild
@@ -3,8 +3,9 @@
EAPI=8
-# match QDOC_SUPPORTED_CLANG_VERSIONS in src/qdoc/cmake/QDocConfiguration.cmake
-LLVM_COMPAT=( {17..22} )
+# see QDOC_SUPPORTED_CLANG_VERSIONS in src/qdoc/cmake/QDocConfiguration.cmake
+# for officially supported versions, but newer may work
+LLVM_COMPAT=( {17..23} )
LLVM_OPTIONAL=1
# behaves very badly when qttools is not already installed, also
diff --git a/dev-qt/qttools/qttools-6.9999.ebuild b/dev-qt/qttools/qttools-6.9999.ebuild
index b3dc19d06eaf..3700693b0bd1 100644
--- a/dev-qt/qttools/qttools-6.9999.ebuild
+++ b/dev-qt/qttools/qttools-6.9999.ebuild
@@ -3,8 +3,9 @@
EAPI=8
-# match QDOC_SUPPORTED_CLANG_VERSIONS in src/qdoc/cmake/QDocConfiguration.cmake
-LLVM_COMPAT=( {17..22} )
+# see QDOC_SUPPORTED_CLANG_VERSIONS in src/qdoc/cmake/QDocConfiguration.cmake
+# for officially supported versions, but newer may work
+LLVM_COMPAT=( {17..23} )
LLVM_OPTIONAL=1
# behaves very badly when qttools is not already installed, also
diff --git a/dev-util/github-cli/Manifest b/dev-util/github-cli/Manifest
index bb4f07c8c87a..a3b881dfa78d 100644
--- a/dev-util/github-cli/Manifest
+++ b/dev-util/github-cli/Manifest
@@ -1,3 +1,5 @@
+DIST github-cli-2.100.0-deps.tar.xz 62670456 BLAKE2B c8f93715498cac5090d2490688c238f32e5495d7df20006a260abcdd71b0abdf7212e23dacf9550e54a0b3ea0e686402bf7eb9eed956fcfa27ee8a02e8bcafbd SHA512 11b9ddb673749b90201b008fb9b7fe7a47fa356b7c33915f2220d710ff5edf4607119d51dbdba27e4f8374dadd2aba833554695ec2e4fa13a9731868584d6f7b
+DIST github-cli-2.100.0.tar.gz 15067137 BLAKE2B 4fd52c059dfdc931d27860d953fbfbf8e0b2ce604549b6e28e9fdf8054014d807c42c542c3bba35cc73880df9f9177d2aa4c81d00c4816271bc6e7ba5097d74e SHA512 af9ea93dd72bc57ce7f66f164d26b11a1f7c2c2b7b8c76c447d5d3785d214757cac6e4682a409b05bd5560f170cd96423b5274351ac3042581d1fe65c67a8664
DIST github-cli-2.96.0-deps.tar.xz 62178716 BLAKE2B 9e06cb75d05b00785cc073d2c8ea4dd081a12686dd356586ef9335c8c453ed56aa87a783e2c11ae19b3402941c066054c227c695af8094af236452d99938ab28 SHA512 f2589251d1c65609338d3d20b0eba3db7379375f14f6bb9a65966d39cde98d3a32d1e7870343c957ab44794763846504329f0f198bd40e4496890c64a848a969
DIST github-cli-2.96.0.tar.gz 14796760 BLAKE2B 6fadf6a785d2f5fd5ec4ebc55bb08bb3eaaa135929595ca04119ebd0ecee131a1b2cec4ce77c59a408bf106a6b28ff8793b2bbc602f7a8cfb0a168445cb50553 SHA512 af530e2bd052bc75e20c1285712e35c952872160a690afba9127bd4654ea35d0963231e908648d5766803bfec803d39a58479b69e605d8e9ac7121ad0be1a6ca
DIST github-cli-2.98.0-deps.tar.xz 62386296 BLAKE2B cc07ec3afe4723a366939648eb1b1985a109501077902c1e9982c0723b1373868284b2f91bddab6e9ce5b7ab785470d5c701194978f37ef02d9b5ba3cbab4b9a SHA512 4fe76d421986a8f2edc6262620c5e5ebe9321a3946fd82f52f17e3e9ef67dcc5b1e8f85d9d4ab43be08b4bbbf6b9ebab7c187425017ce97627accc0e83356505
diff --git a/dev-util/github-cli/github-cli-2.100.0.ebuild b/dev-util/github-cli/github-cli-2.100.0.ebuild
new file mode 100644
index 000000000000..f45edf95ba48
--- /dev/null
+++ b/dev-util/github-cli/github-cli-2.100.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+inherit go-module
+
+DESCRIPTION="GitHub CLI"
+HOMEPAGE="https://github.com/cli/cli"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/cli/cli.git"
+else
+ SRC_URI="https://github.com/cli/cli/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-deps.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv"
+ S="${WORKDIR}/cli-${PV}"
+fi
+
+LICENSE="MIT"
+# Dependent licenses
+LICENSE+=" Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0 Unlicense"
+SLOT="0"
+RESTRICT="test"
+
+RDEPEND=">=dev-vcs/git-1.7.3"
+BDEPEND=">=dev-lang/go-1.26.1"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.92.0-disable-telemetry.patch"
+)
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]]; then
+ git-r3_src_unpack
+ go-module_live_vendor
+ else
+ go-module_src_unpack
+ fi
+}
+
+src_compile() {
+ [[ ${PV} != 9999 ]] && export GH_VERSION="v${PV}"
+ emake prefix="${EPREFIX}/usr" bin/gh manpages completions
+}
+
+src_install() {
+ emake prefix="${EPREFIX}/usr" DESTDIR="${D}" install
+ dodoc README.md
+}
diff --git a/dev-util/github-cli/metadata.xml b/dev-util/github-cli/metadata.xml
index 17492b5107c4..478583f5b166 100644
--- a/dev-util/github-cli/metadata.xml
+++ b/dev-util/github-cli/metadata.xml
@@ -5,5 +5,9 @@
<email>williamh@gentoo.org</email>
<name>William Hubbs</name>
</maintainer>
+ <maintainer type="person">
+ <email>arthurzam@gentoo.org</email>
+ <name>Arthur Zamarin</name>
+ </maintainer>
<origin>baldeagleos-repo</origin>
</pkgmetadata>
diff --git a/dev-util/gitlab-cli/Manifest b/dev-util/gitlab-cli/Manifest
index d54c3c621fc8..d189fb171ab0 100644
--- a/dev-util/gitlab-cli/Manifest
+++ b/dev-util/gitlab-cli/Manifest
@@ -2,6 +2,8 @@ DIST gitlab-cli-1.100.0-vendor.tar.xz 10362492 BLAKE2B bdb8e415d77a15eeb67cd1c7f
DIST gitlab-cli-1.100.0.tar.bz2 17607550 BLAKE2B e4237b9ff926988edb5ac35baca3860beb894d6652dae8b065666e5f7d5bc62313e9e66233a3c191b793a453b489b52c54446c5a85a458248fdacd2049d14c73 SHA512 18eaa1202395b6285641cd0c775c5508ad9cd657eedb4f9e314434d7694fca181704ccf947435aa9ba8c0292510528679e2ba730e0daba9bedc77e793bc3594b
DIST gitlab-cli-1.106.0-vendor.tar.xz 10388708 BLAKE2B 14bb5b6bcd8c4450bba277fbf69ba63350a357e34f2ac60c8556b17b81c9f822ed1ab78acc3015726110e56d0acbe07edc20b54153d18e45d290dfd2db5fdcc7 SHA512 44aa4d5dda1cc044e72476776c0e0a82c58dedf516ef3038f7df9b50493c4a3639752a908c93d8f00e45801c5dbd3a110d2fa4b4295d59d04bbafa48a699eeca
DIST gitlab-cli-1.106.0.tar.bz2 17711631 BLAKE2B 4069c0094f73d1c0c79e1c6e9c92f9095b45237b46f51b3a9fe32ae14c20b0e075d9c1384f4f705fd6a07e3b49e01086476e44b1038f1a367cc6ce52e77e0889 SHA512 b8b287d7b7ae5f7b11ece75502c07c22fbfc17fbf313e20d59049041aab81a6d0c139be016c8b7a2c00e274177593580c096947aa0ba8c4b95507cc46422c19e
+DIST gitlab-cli-1.116.0-vendor.tar.xz 10438712 BLAKE2B 92c55aac214c4f646813bb25697aa66b1c0eda7d4d0687b90092a1259d5cd5f5a06bb92b78f64235b62de25e12c269be1614b8b656ebda441ee7107de1c5385d SHA512 d8e89662c23a3156023169f81e41c2812131243d2f93b03ee0e49d56a3626c5d8503a1d9342d079cfb3e7226915fa9e10f77491fae42ddde796bcb9487ad3dcd
+DIST gitlab-cli-1.116.0.tar.bz2 17874337 BLAKE2B 0524389cd0d4b2c3c9eb4a9c0ef3d8739dd38e3b0365b1a6d68afe14e87ed7e00f7c11852fbcc30f2ef4275215c9b273519385e83f935cc73942efe96ea8085f SHA512 22193ea737d6944bbe0aa6e220d6e5607a9e3c77a4cb054349947b51e415ab2d09268c7b593c8757ee36a307a891ab1115d2ff0963ed892ea57e70496a918ba0
DIST gitlab-cli-1.65.0-deps.tar.xz 45676844 BLAKE2B 62def35751dfb2fed5ac811520f45452468a71ae24947154a4731ea7011430626d3696cdad5e7887abc32abd74a587a2ceb56f6c7e2118e7ed619d5328f17dc7 SHA512 87edf69548b80277050bfd52ef53f4a3830042c512e4329353aa8c9ddc24442f2227d2c7ee4aa857b52760032e4e0b421f2ea0290f43d4dcbc280505e5183436
DIST gitlab-cli-1.65.0-man.tar.xz 30832 BLAKE2B cf0aacd559b9a98bb1ac85137020ea48f2ed7ae4fc61ae8159b0d019cbd3573c9140e5f6036ae31f77b578ce2ff28929eb8c44f4da9ed9ff8e3ebe7997d96c92 SHA512 b828de026c1f3c891e4a5da411c3d292933a9f82ddadeb1eaadf640934746bd9955ed19b8ebb509374057dfd91386451986cacb48b015c4b8a9495f70eaf3d7c
DIST gitlab-cli-1.65.0.tar.bz2 16964412 BLAKE2B 5cb5d073c5624acfe890eb73fd504aadadd8cfd2d33040db25234f840a1d78e0afd149eb1c2d7f23d277e6f74cbfd5fd53734d7b185f26b5c3d59c3134d455d4 SHA512 e01548eb4419ebd441c991b7e30037ddc7a6184a7ddbcde4206a45a0d64a41baaf044db137f56e781eeadef85421f793d59b162922fb32a31f886092f44406e9
diff --git a/dev-util/gitlab-cli/gitlab-cli-1.116.0.ebuild b/dev-util/gitlab-cli/gitlab-cli-1.116.0.ebuild
new file mode 100644
index 000000000000..90a43f0528c6
--- /dev/null
+++ b/dev-util/gitlab-cli/gitlab-cli-1.116.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 2023-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+inherit go-module shell-completion sysroot
+
+# update on every bump
+GIT_COMMIT=e8436ca8a1715369087a8c67787493b2434a3822
+
+DESCRIPTION="the official gitlab command line interface"
+HOMEPAGE="https://gitlab.com/gitlab-org/cli"
+SRC_URI="https://gitlab.com/gitlab-org/cli/-/archive/v${PV}/${PN}-v${PV}.tar.bz2 -> ${P}.tar.bz2"
+SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-vendor.tar.xz"
+S="${WORKDIR}/cli-v${PV}-${GIT_COMMIT}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# tests communicate with gitlab.com and require a personal access token
+RESTRICT="test"
+
+BDEPEND=">=dev-lang/go-1.27.0"
+
+QA_PRESTRIPPED=usr/bin/glab
+
+src_unpack() {
+ mkdir -p "${S}" || die
+ ln -s "../${P}/vendor" "${S}/vendor" || die
+ go-module_src_unpack
+}
+
+src_compile() {
+ emake \
+ BUILD_COMMIT_SHA=${GIT_COMMIT::8} \
+ GLAB_VERSION=v${PV} \
+ build manpage
+
+ einfo "generating shell completion files"
+ sysroot_try_run_prefixed bin/glab completion -s bash > "${T}"/glab.bash || die
+ sysroot_try_run_prefixed bin/glab completion -s zsh > "${T}"/glab.zsh || die
+ sysroot_try_run_prefixed bin/glab completion -s fish > "${T}"/glab.fish || die
+}
+
+src_install() {
+ dobin bin/glab
+ dodoc README.md
+ doman share/man/man1/*
+
+ [[ -s "${T}"/glab.bash ]] && newbashcomp "${T}"/glab.bash glab
+ [[ -s "${T}"/glab.zsh ]] && newzshcomp "${T}"/glab.zsh _glab
+ [[ -s "${T}"/glab.fish ]] && dofishcomp "${T}"/glab.fish
+}
diff --git a/dev-util/gitlab-cli/metadata.xml b/dev-util/gitlab-cli/metadata.xml
index 17492b5107c4..478583f5b166 100644
--- a/dev-util/gitlab-cli/metadata.xml
+++ b/dev-util/gitlab-cli/metadata.xml
@@ -5,5 +5,9 @@
<email>williamh@gentoo.org</email>
<name>William Hubbs</name>
</maintainer>
+ <maintainer type="person">
+ <email>arthurzam@gentoo.org</email>
+ <name>Arthur Zamarin</name>
+ </maintainer>
<origin>baldeagleos-repo</origin>
</pkgmetadata>
diff --git a/dev-util/intellij-idea/Manifest b/dev-util/intellij-idea/Manifest
index 6c0891364886..2c8b5854c000 100644
--- a/dev-util/intellij-idea/Manifest
+++ b/dev-util/intellij-idea/Manifest
@@ -1,2 +1,2 @@
-DIST intellij-idea-2026.2.1-aarch64.tar.gz 1623506701 BLAKE2B 46dd9fea1428e3f4942338246337980ef20a089bfbe3a1faa60d06295507b30c6c86529a19a8b024a533dac94fb1415da9ee900b24bdaef67b984eadf9893e28 SHA512 1a54a9dee975a628d810eeaf0ed7183830f3629c7182a78e788342059a124a66d73a36a48d4e67716a4d005e2675998b473e31f6d1fafdfe82d8bc74d327f3c5
-DIST intellij-idea-2026.2.1.tar.gz 1600796874 BLAKE2B 065d0aeb62142a4ad8e6fd2d2a88d0fa616b23788c32ad863e8c56cc51a6f5e1b168de3a635b4ba5c7d77bd78a013aebfe5942367f41e583339827ca2b3d341f SHA512 d0f9798426c6603dfac1db32c77957cb8951501a876e6005ac7a760e89ef1354d2b812eb6c49eadc269cbecb262a9e9470c3359c28c15bf3aabf846e47ea5004
+DIST intellij-idea-2026.2.2-aarch64.tar.gz 1628647297 BLAKE2B cb87a1d607d02e5b1e28f68d60d7cd3048fa08428fd422511620a7781efde94f65bee87ff8d3ffcdb12e0eecf4fdc83a5442e0c707baa045d80f057fc4adb5ab SHA512 e73850ca6a321fcf71127637c989b2d24bd8b76e1cd586a590c1f36874573e05213f91ec62c76ba6ac8409f297c37444736f6c87e29ae8b6c8314e27671e22d6
+DIST intellij-idea-2026.2.2.tar.gz 1606104586 BLAKE2B cb0e2c63256857c72b1191e00b2e57c5f98807c616f68751ff320346317f233d9a833a0e6d0100c1c29a6b2e789ddcf7735dabf0a3d9a6f26ece2579b631a6d8 SHA512 03d89b0d1e423ab3d5af9a8412f581f96dd5cb84cc35c72abd12df50d570628aacf81cefd23523db88c1588f9d25b0efc1b3be5a33c358d17b015d6f7cb1f674
diff --git a/dev-util/intellij-idea/intellij-idea-2026.2.1.ebuild b/dev-util/intellij-idea/intellij-idea-2026.2.2.ebuild
index 7ab03efa4565..7ab03efa4565 100644
--- a/dev-util/intellij-idea/intellij-idea-2026.2.1.ebuild
+++ b/dev-util/intellij-idea/intellij-idea-2026.2.2.ebuild
diff --git a/dev-util/pixi/Manifest b/dev-util/pixi/Manifest
index 37bbe570fa76..949cf6fede2e 100644
--- a/dev-util/pixi/Manifest
+++ b/dev-util/pixi/Manifest
@@ -1,6 +1,6 @@
-DIST pixi-0.77.1-crates.tar.xz 78456632 BLAKE2B 0e4f740dd69f74f39a67c66b61883aaad301b5fd9b5cca14f56a97a569e9709d5a0df51e1c6b16d2ba71d0ba8e2cc2210827c4dffed8522a94320edbc1f04c11 SHA512 d86ea7dab16b6848286f085604e2f4683838fae8f346e15d0d5976006f9e3182d3a39453ed8bd82e9ebf5e45d0ff9dcb4b9c7b725200e84ff9719ea4f803dd9b
-DIST pixi-0.77.1.tar.gz 19822590 BLAKE2B ae51fb04f7abc6648e1da7e00a3537705dcd2864148709e52a886cd99d63a721675fd99a446cada1804737a993c9569eecaec9d2942bdcd97061a984e1e43531 SHA512 df836333d74e3b6bd22f34167ea7ee3574e615cbfae718971ff6c7702d967644694cf798fa1eae7d3f7ee4749e401d328a692eb05e98b1119bb26245daa00701
DIST pixi-0.78.0-crates.tar.xz 78464748 BLAKE2B 1302ce5ab22d0167af1fdcff6602e865f37478d93a1bf2c78a5ce2d0c82b98f2f1947c488f952d8aa4bf60a5fc8cea182f05b0e845d4b782e6006697f7b7522d SHA512 eac5649d36e4c70576f72e65c5be03e2a3b768ef33c2691a53c5b929aa50d6182b46d686d09ac2fd23d94ebfab06ac5de3fd8996bbb519ca63291df239d6ab85
DIST pixi-0.78.0.tar.gz 19863645 BLAKE2B 7c70cb172db3588d435c670ee74ba5d832a096ee25272f558299175281950f281cbce33940cc30cff921b0a185b4ab90f1c494b6e7fa2060670a4bd036a43937 SHA512 f91c043e5b462a26077ceff31c2b02150c6addefc62c7a10442427c6b45c75610af93216f237233bd96348228f0db61069e78d512e299480eca676b3e946377a
+DIST pixi-0.79.0-crates.tar.xz 78344160 BLAKE2B 4965008f0b0185ef729fa728215d7ae72c2b8357f62f75a1416b58be90e9ac0b2f21315d803d62e84b13cde063ea4ec7e7853e6dc3f4023f5bbf86d6c2335f18 SHA512 3a8dbbdc75148add5a5ad8b3f3211ef48976c612a0b4a77560b93766bcf15f6a0e0ea5bd4d9b0d3ad09bfb92b7f5e27093ece3bf469472d3ebd4db836507b76c
+DIST pixi-0.79.0.tar.gz 19868796 BLAKE2B d736801e76bae9aa5cd0dc004db96142c42aa35aa7a6a8eae11635b2c96dbe41ec5a01a8d72dc1d611ce85a24399501a4bc71383a7dda2385682a02e09097398 SHA512 ae6a01d5b07b8b23b02b04cef8bc01a894236681a7203cce8ddd8502482532c7694e4633a5ceee0fe0fe7e9f7dc6387668ed41cb9bb4a93854b55e65a699486e
DIST pubgrub-d8efd77673c9a90792da9da31b6c0da7ea8a324b.gh.tar.gz 100042 BLAKE2B cacdd77783aae1a94c3aaea56c2bd47b22f13ca34eddcef53b5d205244a213eff2934db03965532085c1aa6892b27bbbabfc19513f62936f8ac1faa466570dd4 SHA512 3a2a146fd9d9b458dced6563a1f5674e81e8ba36de11be5c189b0c76b6ede6f32957f48fb0978b97b0892768822c6c4c32c6870141e8fc1ea5d8b8f7d8b5b464
DIST uv-3cffe97c2e48c9e49422c738da3af95919dd0bf5.gh.tar.gz 5303746 BLAKE2B b45e64d4c036c2fb54ca3e82a1ce953363f10786e76bb1128e20a6204c03dff3e0d18e3ca652320f81d78b94cebdaefd463b45da639260659e00fa0e2cd3d1f6 SHA512 444defce55de8bca79d9d572dc5231198c23df07a43048c7b621496d35ea46fc274b3aa3eb97fcfc4a045ac81ab540dcf9657ef1d74d5a9535e1a86a68e7d9e6
diff --git a/dev-util/pixi/pixi-0.77.1.ebuild b/dev-util/pixi/pixi-0.79.0.ebuild
index 8913b7bf42cc..8913b7bf42cc 100644
--- a/dev-util/pixi/pixi-0.77.1.ebuild
+++ b/dev-util/pixi/pixi-0.79.0.ebuild
diff --git a/dev-vcs/jj/Manifest b/dev-vcs/jj/Manifest
index 5e9ae2c0b6f9..9ad83bb7246a 100644
--- a/dev-vcs/jj/Manifest
+++ b/dev-vcs/jj/Manifest
@@ -5,4 +5,6 @@ DIST jj-0.42.0-crates.tar.xz 29760440 BLAKE2B e3d2d8929b832ac7a430f7347f69524252
DIST jj-0.42.0.gh.tar.gz 2746246 BLAKE2B 1d42664126da77005c922dd25aa0c1f46a8dea15d3684198834e3a62486548a8cc061bc186564673179558209f0af24868e5a57ba8a4868735b860f63e214151 SHA512 fae17f11e2764025afea152eb4874a672c4229a3c204cb2fb5330d04f96ac67af9e82531d4690d39c5ebd87215b6b7473f55b9b4f9ce05217ef1f8701b6f827d
DIST jj-0.44.0-crates.tar.xz 28865548 BLAKE2B ee5417bb7cebf78670b4846c68c9b2ce96b077e73e24d5525dad247600d98bf5d0f5d91d12b5cf43ee2e309de00291ce87d6d1e97e06ba36162979201ec9d8dd SHA512 363b9af32e0f944d62494e0f8a9689e9c0efa72d91dec7abc492216d557e894013eeefebec1c7974ce548902451032a7503af960e6d413cd9f0681bd70ddeb47
DIST jj-0.44.0.gh.tar.gz 2820280 BLAKE2B dad271be39fd9cc6bb89666953dacb461dab6589d06f6c5d4f5c11fcb488f8e91217050c776d86d1fcfcb47c07ac3c9f1adf272541f2452f854c70905226262d SHA512 24f0188a834eda568e3e620c9095dcea3d67a42ca4c80ebc31cef036e137828e99cdc5d6943bb0de3622b3c39e250367ce82f1af39fcdc99cc24fa22bf299af1
+DIST jj-0.45.1-crates.tar.xz 29443156 BLAKE2B a6a05af3f10a0e933f6ce8e70eaf415b535f14c49d65de0630a73fb726f81620bb9804b97125e0cad36d540680ac1164eea262fb040e71d2be9d10cee1fd872f SHA512 a4d8743011b16dccfecc774ff2ea3055b3672774286409043e86d1d806ad123f266b4b70bf54720a445ab17713a5226daa7ab7fa416e6481ead9f4c589d1e897
+DIST jj-0.45.1.gh.tar.gz 2863640 BLAKE2B 37a7ecf25045a5610e7862410bceef4838c2fdcd76784de6f98296a9f490db85c5016d422c49afd272e470ce772c2e7ec676b2b98f9571f5239d9eb3970d82d0 SHA512 aabaf5b3588236033be649f82ac24784fecfd222072fe1ab360e3ff7a56c6920c0610a3ff0087a84140a46c474cfcd69dfd7701e3f3fbe54efb5970a86151cdc
DIST jj-cli-0.40.0-crates.tar.xz 30315940 BLAKE2B 100195e1c28834126ef3be40e8d97a86d825eb0917466cccae30b153833cb120fb972054b09a7f37c723e8464b746b7ca32d8fcf34d2fc02993643759cffeb70 SHA512 1a7d7feb4f20066f6f3662c9273c56c0bb53c21f1296bad6374efdf2e1fcb5d0e8ab2a3fbef481132aae297b47f37515d3e81050503d7f808fc720814d8b2ee8
diff --git a/dev-vcs/jj/jj-0.45.1.ebuild b/dev-vcs/jj/jj-0.45.1.ebuild
new file mode 100644
index 000000000000..800ab3bf6b1f
--- /dev/null
+++ b/dev-vcs/jj/jj-0.45.1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.15.1
+
+EAPI=8
+
+CRATES="
+"
+
+RUST_MIN_VER="1.89.0"
+
+inherit cargo
+
+DESCRIPTION="Jujutsu - an experimental version control system"
+HOMEPAGE="https://www.jj-vcs.dev/"
+SRC_URI="
+ https://github.com/jj-vcs/jj/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz
+ https://github.com/gentoo-crate-dist/${PN}/releases/download/v${PV}/${P}-crates.tar.xz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="Apache-2.0"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 BSD MIT MIT-0 MPL-2.0 Unicode-3.0 Unicode-DFS-2016
+ WTFPL-2 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+
+DOCS=(
+ CHANGELOG.md
+ GOVERNANCE.md
+ README.md
+ SECURITY.md
+ demos/
+ docs/
+)
+
+src_install() {
+ cargo_src_install --path cli
+
+ einstalldocs
+}
+
+src_test() {
+ local CARGO_SKIP_TESTS=(
+ test_converge_command::test_converge_description_changed_inconsistently::invoke_text_editor
+ test_gpg::gpgsm_unknown_key
+ )
+
+ cargo_src_test
+}
diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index 004c04293585..e53499cb4b11 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -1120,30 +1120,36 @@ distutils_pep517_install() {
fi
;;
sip)
- if [[ -n ${DISTUTILS_ARGS[@]} ]]; then
- # NB: for practical reasons, we support only --foo=bar,
- # not --foo bar
- local arg
- for arg in "${DISTUTILS_ARGS[@]}"; do
- [[ ${arg} != -* ]] &&
- die "Bare arguments in DISTUTILS_ARGS unsupported: ${arg}"
- done
+ # NB: for practical reasons, we support only --foo=bar,
+ # not --foo bar
+ local arg
+ for arg in "${DISTUTILS_ARGS[@]}"; do
+ [[ ${arg} != -* ]] &&
+ die "Bare arguments in DISTUTILS_ARGS unsupported: ${arg}"
+ done
- config_settings=$(
- "${EPYTHON}" - "${DISTUTILS_ARGS[@]}" <<-EOF || die
- import collections
- import json
- import sys
+ local sip_args=(
+ # sip adds manylinux to tags by default which is wrong
+ # without a curated environment and causes problems on
+ # musl with gpep517's --verify-tags
+ --no-manylinux
+ "${DISTUTILS_ARGS[@]}"
+ )
- args = collections.defaultdict(list)
- for arg in (x.split("=", 1) for x in sys.argv[1:]): \
- args[arg[0]].extend(
- [arg[1]] if len(arg) > 1 else [])
+ config_settings=$(
+ "${EPYTHON}" - "${sip_args[@]}" <<-EOF || die
+ import collections
+ import json
+ import sys
- print(json.dumps(args))
- EOF
- )
- fi
+ args = collections.defaultdict(list)
+ for arg in (x.split("=", 1) for x in sys.argv[1:]): \
+ args[arg[0]].extend(
+ [arg[1]] if len(arg) > 1 else [])
+
+ print(json.dumps(args))
+ EOF
+ )
;;
*)
[[ -n ${DISTUTILS_ARGS[@]} ]] &&
diff --git a/eclass/elisp-common.eclass b/eclass/elisp-common.eclass
index b07ceaf63ce7..ed601c9a0fe3 100644
--- a/eclass/elisp-common.eclass
+++ b/eclass/elisp-common.eclass
@@ -25,7 +25,7 @@
# When relying on the emacs USE flag, you need to add
#
# @CODE
-# emacs? ( >=app-editors/emacs-26.3:* )
+# emacs? ( >=app-editors/emacs-27.2:* )
# @CODE
#
# to your DEPEND/RDEPEND line and use the functions provided here to
@@ -206,7 +206,7 @@ EMACS=${EPREFIX}/usr/bin/emacs
# @ECLASS_VARIABLE: EMACSFLAGS
# @DESCRIPTION:
# Flags for executing Emacs in batch mode.
-# These work for Emacs versions 18 to 30, so don't change them.
+# These work for Emacs versions 18 to 31, so don't change them.
EMACSFLAGS="-batch -q --no-site-file"
# @ECLASS_VARIABLE: BYTECOMPFLAGS
@@ -217,7 +217,7 @@ BYTECOMPFLAGS="-L ."
# @ECLASS_VARIABLE: NEED_EMACS
# @DESCRIPTION:
# The minimum Emacs version required for the package.
-: "${NEED_EMACS:=26.3}"
+: "${NEED_EMACS:=27.2}"
# @ECLASS_VARIABLE: _ELISP_EMACS_VERSION
# @INTERNAL
@@ -234,8 +234,9 @@ elisp-emacs-version() {
local version ret tmout="timeout -k 5 55"
# Run without timeout if the command is not available
${tmout} true &>/dev/null || tmout=""
- # The following will work for at least versions 18 to 30.
- echo "(princ emacs-version)" >"${T}"/emacs-version.el
+ # The following will work for at least versions 18 to 31.
+ printf '%s\n' ";;-*-lexical-binding:t-*-" "(princ emacs-version)" \
+ >"${T}"/emacs-version.el
version=$(
# EMACS could be a microemacs variant that ignores the -batch
# option and would therefore hang, waiting for user interaction.
diff --git a/eclass/rust.eclass b/eclass/rust.eclass
index 6d2a676dec91..112b63ac8a13 100644
--- a/eclass/rust.eclass
+++ b/eclass/rust.eclass
@@ -68,6 +68,7 @@ fi
# Definitive list of Rust slots and the associated LLVM slot, newest first.
declare -A -g -r _RUST_LLVM_MAP=(
["9999"]=22
+ ["1.98.1"]=22
["1.97.1"]=22
["1.96.1"]=22
["1.95.0"]=22
@@ -106,6 +107,7 @@ declare -A -g -r _RUST_LLVM_MAP=(
# this array is used to store the Rust slots in a more convenient order for iteration.
declare -a -g -r _RUST_SLOTS_ORDERED=(
"9999"
+ "1.98.1"
"1.97.1"
"1.96.1"
"1.95.0"
diff --git a/games-emulation/pcsx2/files/pcsx2-2.8.1-libcxx23.patch b/games-emulation/pcsx2/files/pcsx2-2.8.1-libcxx23.patch
new file mode 100644
index 000000000000..0ae7d6186584
--- /dev/null
+++ b/games-emulation/pcsx2/files/pcsx2-2.8.1-libcxx23.patch
@@ -0,0 +1,62 @@
+--- a/common/Linux/LnxHostSys.cpp
++++ b/common/Linux/LnxHostSys.cpp
+@@ -19,2 +19,5 @@
+ #include <ucontext.h>
++#ifndef __FreeBSD__
++#include <cstdlib>
++#endif
+ #endif
+--- a/common/ReadbackSpinManager.cpp
++++ b/common/ReadbackSpinManager.cpp
+@@ -6,2 +6,3 @@
+ #include <algorithm>
++#include <cstdlib>
+
+--- a/common/SmallString.cpp
++++ b/common/SmallString.cpp
+@@ -9,2 +9,3 @@
+ #include <cstdio>
++#include <cstdlib>
+ #include <cstring>
+--- a/common/YAML.cpp
++++ b/common/YAML.cpp
+@@ -12,2 +12,3 @@
+ #include <csetjmp>
++#include <exception>
+
+--- a/pcsx2/CDVD/ThreadedFileReader.h
++++ b/pcsx2/CDVD/ThreadedFileReader.h
+@@ -11,2 +11,3 @@
+ #include <condition_variable>
++#include <string>
+
+--- a/pcsx2/GS/MultiISA.cpp
++++ b/pcsx2/GS/MultiISA.cpp
+@@ -14,2 +14,3 @@
+ #ifdef _M_X86
++#include <cstdlib>
+
+--- a/pcsx2/Host/SDLAudioStream.cpp
++++ b/pcsx2/Host/SDLAudioStream.cpp
+@@ -9,2 +9,3 @@
+
++#include <cstdlib>
+ #include <SDL3/SDL.h>
+--- a/pcsx2/Patch.h
++++ b/pcsx2/Patch.h
+@@ -22,2 +22,3 @@
+
++#include <cstdlib>
+ #include <string>
+--- a/pcsx2/USB/qemu-usb/core.cpp
++++ b/pcsx2/USB/qemu-usb/core.cpp
+@@ -35,2 +35,3 @@
+ #include <climits>
++#include <cstdlib>
+ #include <cstring>
+--- a/pcsx2/USB/qemu-usb/usb-ohci.cpp
++++ b/pcsx2/USB/qemu-usb/usb-ohci.cpp
+@@ -10,2 +10,3 @@
+
++#include <cstdlib>
+ #include <cstring>
diff --git a/games-emulation/pcsx2/pcsx2-2.8.1.ebuild b/games-emulation/pcsx2/pcsx2-2.8.1.ebuild
index cc2f77f3f6c5..5b40bcce55ad 100644
--- a/games-emulation/pcsx2/pcsx2-2.8.1.ebuild
+++ b/games-emulation/pcsx2/pcsx2-2.8.1.ebuild
@@ -94,6 +94,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-2.6.3-cubeb-alsa.patch
"${FILESDIR}"/${PN}-2.6.3-ffmpeg9.patch
"${FILESDIR}"/${PN}-2.8.0-musl-sysconf.patch
+ "${FILESDIR}"/${PN}-2.8.1-libcxx23.patch
)
CMAKE_QA_COMPAT_SKIP=1 #957976
diff --git a/games-emulation/pcsx2/pcsx2-9999.ebuild b/games-emulation/pcsx2/pcsx2-9999.ebuild
index 6676ff0e7e00..a4259237a982 100644
--- a/games-emulation/pcsx2/pcsx2-9999.ebuild
+++ b/games-emulation/pcsx2/pcsx2-9999.ebuild
@@ -93,6 +93,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-2.6.3-climits.patch
"${FILESDIR}"/${PN}-2.6.3-cubeb-alsa.patch
"${FILESDIR}"/${PN}-2.8.0-musl-sysconf.patch
+ "${FILESDIR}"/${PN}-2.8.1-libcxx23.patch
)
CMAKE_QA_COMPAT_SKIP=1 #957976
diff --git a/llvm-runtimes/libunwind/libunwind-17.0.6.ebuild b/llvm-runtimes/libunwind/libunwind-17.0.6.ebuild
index 36bfaf30e75a..381ab69fa60d 100644
--- a/llvm-runtimes/libunwind/libunwind-17.0.6.ebuild
+++ b/llvm-runtimes/libunwind/libunwind-17.0.6.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/llvm-runtimes/libunwind/libunwind-18.1.8.ebuild b/llvm-runtimes/libunwind/libunwind-18.1.8.ebuild
index 9e958d90dd1a..334ea1dcdaf6 100644
--- a/llvm-runtimes/libunwind/libunwind-18.1.8.ebuild
+++ b/llvm-runtimes/libunwind/libunwind-18.1.8.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/llvm-runtimes/libunwind/libunwind-19.1.7.ebuild b/llvm-runtimes/libunwind/libunwind-19.1.7.ebuild
index 5b8cd8f4064d..f3b5f8aec6da 100644
--- a/llvm-runtimes/libunwind/libunwind-19.1.7.ebuild
+++ b/llvm-runtimes/libunwind/libunwind-19.1.7.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/llvm-runtimes/libunwind/libunwind-20.1.8-r1.ebuild b/llvm-runtimes/libunwind/libunwind-20.1.8-r1.ebuild
index 432b4300ec37..f4492eb10845 100644
--- a/llvm-runtimes/libunwind/libunwind-20.1.8-r1.ebuild
+++ b/llvm-runtimes/libunwind/libunwind-20.1.8-r1.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/llvm-runtimes/libunwind/libunwind-21.1.8.ebuild b/llvm-runtimes/libunwind/libunwind-21.1.8.ebuild
index 5a8d206b7e4a..d65c980a9bd7 100644
--- a/llvm-runtimes/libunwind/libunwind-21.1.8.ebuild
+++ b/llvm-runtimes/libunwind/libunwind-21.1.8.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/llvm-runtimes/libunwind/libunwind-22.1.8.ebuild b/llvm-runtimes/libunwind/libunwind-22.1.8-r1.ebuild
index d65c980a9bd7..af3f07541e13 100644
--- a/llvm-runtimes/libunwind/libunwind-22.1.8.ebuild
+++ b/llvm-runtimes/libunwind/libunwind-22.1.8-r1.ebuild
@@ -13,7 +13,7 @@ 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"
+IUSE="cet +clang debug static-libs test"
REQUIRED_USE="test? ( clang )"
RESTRICT="!test? ( test )"
@@ -133,6 +133,7 @@ multilib_src_configure() {
-DLLVM_ENABLE_RUNTIMES="libunwind"
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-DLLVM_INCLUDE_TESTS=OFF
+ -DLIBUNWIND_ENABLE_CET=$(usex cet)
-DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
-DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
-DLIBUNWIND_INCLUDE_TESTS=$(usex test)
diff --git a/llvm-runtimes/libunwind/libunwind-23.1.0.ebuild b/llvm-runtimes/libunwind/libunwind-23.1.0-r1.ebuild
index a0ae74127f79..c8f3e271aa11 100644
--- a/llvm-runtimes/libunwind/libunwind-23.1.0.ebuild
+++ b/llvm-runtimes/libunwind/libunwind-23.1.0-r1.ebuild
@@ -13,7 +13,7 @@ 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"
+IUSE="cet +clang debug static-libs test"
REQUIRED_USE="test? ( clang )"
RESTRICT="!test? ( test )"
@@ -134,6 +134,7 @@ multilib_src_configure() {
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-DLLVM_INCLUDE_TESTS=OFF
-DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
+ -DLIBUNWIND_ENABLE_CET=$(usex cet)
-DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
-DLIBUNWIND_INCLUDE_TESTS=$(usex test)
-DLIBUNWIND_INSTALL_HEADERS=ON
diff --git a/llvm-runtimes/libunwind/libunwind-24.0.0.9999.ebuild b/llvm-runtimes/libunwind/libunwind-24.0.0.9999.ebuild
index 3a2535cd561c..264dc5aae763 100644
--- a/llvm-runtimes/libunwind/libunwind-24.0.0.9999.ebuild
+++ b/llvm-runtimes/libunwind/libunwind-24.0.0.9999.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://llvm.org/docs/ExceptionHandling.html"
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
SLOT="0"
-IUSE="+clang +debug static-libs test"
+IUSE="cet +clang +debug static-libs test"
REQUIRED_USE="test? ( clang )"
RESTRICT="!test? ( test )"
@@ -132,6 +132,7 @@ multilib_src_configure() {
-DLLVM_ENABLE_RUNTIMES="libunwind"
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-DLLVM_INCLUDE_TESTS=OFF
+ -DLIBUNWIND_ENABLE_CET=$(usex cet)
-DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
-DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
-DLIBUNWIND_INCLUDE_TESTS=$(usex test)
diff --git a/llvm-runtimes/libunwind/libunwind-24.0.0_pre20260725.ebuild b/llvm-runtimes/libunwind/libunwind-24.0.0_pre20260725.ebuild
index 3a2535cd561c..264dc5aae763 100644
--- a/llvm-runtimes/libunwind/libunwind-24.0.0_pre20260725.ebuild
+++ b/llvm-runtimes/libunwind/libunwind-24.0.0_pre20260725.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://llvm.org/docs/ExceptionHandling.html"
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
SLOT="0"
-IUSE="+clang +debug static-libs test"
+IUSE="cet +clang +debug static-libs test"
REQUIRED_USE="test? ( clang )"
RESTRICT="!test? ( test )"
@@ -132,6 +132,7 @@ multilib_src_configure() {
-DLLVM_ENABLE_RUNTIMES="libunwind"
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-DLLVM_INCLUDE_TESTS=OFF
+ -DLIBUNWIND_ENABLE_CET=$(usex cet)
-DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
-DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
-DLIBUNWIND_INCLUDE_TESTS=$(usex test)
diff --git a/llvm-runtimes/libunwind/metadata.xml b/llvm-runtimes/libunwind/metadata.xml
index c7ae1c9b678f..68eba1b42287 100644
--- a/llvm-runtimes/libunwind/metadata.xml
+++ b/llvm-runtimes/libunwind/metadata.xml
@@ -5,6 +5,7 @@
<email>llvm@gentoo.org</email>
</maintainer>
<use>
+ <flag name="cet">Enable Intel Control-flow Enforcement Technology</flag>
<flag name="clang">Force building using installed clang (rather
than the default CC/CXX; required for testing).</flag>
</use>
diff --git a/mail-client/thunderbird/thunderbird-140.15.0.ebuild b/mail-client/thunderbird/thunderbird-140.15.0.ebuild
index dcfeaa6de6d3..e2afe1d68d63 100644
--- a/mail-client/thunderbird/thunderbird-140.15.0.ebuild
+++ b/mail-client/thunderbird/thunderbird-140.15.0.ebuild
@@ -74,7 +74,7 @@ else
fi
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
-KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86"
+KEYWORDS="amd64 arm64 ~loong ~ppc64 ~x86"
IUSE="+clang debug eme-free hardened hwaccel jack libproxy pgo pulseaudio selinux sndio"
IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx"
diff --git a/mail-mta/postfix/Manifest b/mail-mta/postfix/Manifest
index 4f6f1c82ae54..84bdbe5fec14 100644
--- a/mail-mta/postfix/Manifest
+++ b/mail-mta/postfix/Manifest
@@ -1,4 +1,4 @@
DIST postfix-3.11.6.tar.gz 5289392 BLAKE2B e4a1194fa3f718212413bcee4f61f3c7fe3bd6b0bc6e96a714ca4093e3827350c2eda0e68c5826d865fc9c657e6bcebb0724b99c282c7a85dd877f2207de5075 SHA512 eddb71b7b64a8f9e0fca8a93679e86ac53eebc458a09910e5f3a871523d35361071a391cc904e511835137d4461a6a779c1b24c519e2f6a7de577e55e71a75ba
DIST postfix-3.11.6.tar.gz.asc 220 BLAKE2B 594b165846bf1ef6ead41a135b38cc9e4180a61450c529bd57f022180758074a9f546c472ccca21452b49f723395c0f33e02bb314d20dc708438ed992f51f5e3 SHA512 d8255c2d7fda771b45e261d68ba8d1a066217b851c88a2d9c5de231b98c0ec5f1d7a41948d51c5f388400301cf6a804c7ded24561ad137f1f635b21c24281651
-DIST postfix-3.12-20260821.tar.gz 5424185 BLAKE2B 51555c48908359300cd9db553a8837cb215c1c1d11ec12c5912d9b525895ebdb4add7cde5387d8f188c31a915896bf167afbee6336e50108ec143e2f7a4045b8 SHA512 c4a637537992048368303e8d01811e4a440a83ced0ea5155e25764c5dc4a42d96af6aeb70eb49791dbf00b95abd0e7c39955aedd1b7780310169541ceb52edab
-DIST postfix-3.12-20260821.tar.gz.asc 220 BLAKE2B caeefac4fa4134a2eb7612836ffd939e4fd9f40693ec05916cc6028ce680af3b3e31f4da75062bc4077bdfc0419b399b65f2db9465e5f4dde3aa4081f6944b92 SHA512 cc243360f2ab20d30cadcd43ef9cf15601d3a40e466b516f0b2f11db7a089d780ede26e6f5ec4237059881c925614c6b2eaeada2605161ba5719c0359b6f9cd0
+DIST postfix-3.12-20260901.tar.gz 5425210 BLAKE2B 8d17972e29d76d0dfe9d1fbb53d590d3b927f8e6add27b8b154311ab8a557ef0904f4110fd06fa0400e256464875400ffe7decd3a80dbd7b278f942badef0715 SHA512 6c1a6cea8871f4c0e7b6ddc1240bc32a75cdad92e9d2ec6d0b8d708b3d603031f211f8e51373e185251c5df63dc4c575c88ec9dcb9182f71e6ffffdc896be52f
+DIST postfix-3.12-20260901.tar.gz.asc 220 BLAKE2B ec001e12e7062b59477fcba11e03c80256d62f408c3962e034a59cc34ace5bf00d977a3d13c6e733c1aa36b4cc667cd2de81ca7790a5a9a00c00910e1b86a072 SHA512 d3f8e54d064d896e69f3c0a36e8979417e79a4aaa33fc036f4ae76b6d41b5d957f5b5686939d0ffb6cf5799979655226a81ae5afac0a58e75adc25a0c634a3c2
diff --git a/mail-mta/postfix/postfix-3.12_pre20260821.ebuild b/mail-mta/postfix/postfix-3.12_pre20260901.ebuild
index d4d30ce8dba2..3e568b90be9c 100644
--- a/mail-mta/postfix/postfix-3.12_pre20260821.ebuild
+++ b/mail-mta/postfix/postfix-3.12_pre20260901.ebuild
@@ -36,9 +36,7 @@ DEPEND="
eai? ( dev-libs/icu:= )
ldap? ( net-nds/openldap:= )
ldap-bind? ( net-nds/openldap:=[sasl] )
- lmdb? (
- dev-db/lmdb:0=
- )
+ lmdb? ( dev-db/lmdb:0= )
mongodb? ( >=dev-libs/mongo-c-driver-1.23.0 >=dev-libs/libbson-1.23.0 )
mysql? ( dev-db/mysql-connector-c:0= )
nis? ( net-libs/libnsl:= )
diff --git a/media-radio/fldigi/Manifest b/media-radio/fldigi/Manifest
index 6795f623959f..2bfb656a7d16 100644
--- a/media-radio/fldigi/Manifest
+++ b/media-radio/fldigi/Manifest
@@ -1,3 +1 @@
-DIST fldigi-4.2.11.tar.gz 5282315 BLAKE2B e25cb530138ad4f6161b429137313ba860e1285e751330a4d97035c90179ba797315541a450cba4a254f16167ec71c9cfd5e47a7e7d87c1a55b8ea5eacef2885 SHA512 3cd085ff6af34b358c68e6ae898ebb4738c9c09f8841ac69874b8383eba804232d40ffa31756da4690947f19547f1797be9c553ca456a4e89ac0db65425788e0
-DIST fldigi-4.2.12.tar.gz 5245873 BLAKE2B 6c4c3c86116c8464787c8c87926dfdeb2e2db3d40f2d7f299e3a1dd7a5c3c707bac41ab129790a96bc119600cc787afef475ecc92eb77d93345e5a9b36dfd2bd SHA512 aa68f2f0f39c2db7b0884374fb39a3cb8407d847e855c094c66b3d605235534489fbc1b775019ed6e11a7783525e0194e2442e3ca781fe24d5dfac907d156ed1
DIST fldigi-4.2.13.tar.gz 5244956 BLAKE2B c6878e7527bc2aab70bfef5bd89b1a3baf9cd4c25a5f5b0b6335dfda95c78a8f9669018683d663662d5c3a3c3ebbff0214ed7830952913b390b845bac0913be1 SHA512 1346dec156cdd6a1e6874feea615506ecef11f801093a8cb65973559de6fd71bd3617fe078aac8c06af01d77182831d8e199d2ec588e7a432e87d77be1d8ada8
diff --git a/media-radio/fldigi/fldigi-4.2.11.ebuild b/media-radio/fldigi/fldigi-4.2.11.ebuild
deleted file mode 100644
index 09fe975ecc52..000000000000
--- a/media-radio/fldigi/fldigi-4.2.11.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic
-
-DESCRIPTION="Sound card based multimode software modem for Amateur Radio use"
-HOMEPAGE="http://www.w1hkj.com"
-SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="hamlib nls pulseaudio"
-IUSE_CPU_FLAGS=" sse sse2 sse3"
-IUSE+=" ${IUSE_CPU_FLAGS// / cpu_flags_x86_}"
-
-RDEPEND="x11-libs/fltk:1=[threads(+),xft(+)]
- x11-libs/libX11
- virtual/libudev:=
- media-libs/libsamplerate
- media-libs/libpng:=
- x11-misc/xdg-utils
- dev-perl/RPC-XML
- dev-perl/Term-ReadLine-Perl
- || (
- media-libs/portaudio[oss]
- media-libs/portaudio[alsa]
- )
- hamlib? ( media-libs/hamlib:= )
- pulseaudio? ( media-libs/libpulse )
- media-libs/libsndfile"
-DEPEND="${RDEPEND}
- nls? ( sys-devel/gettext )
- virtual/pkgconfig"
-
-DOCS=( AUTHORS ChangeLog NEWS README )
-
-PATCHES=( "${FILESDIR}/${PN}-drop-nullptr-definition.patch" )
-
-src_configure() {
- #fails to compile with -flto (bug #860405)
- filter-lto
-
- append-cxxflags $(test-flags-CXX -std=c++14)
- local myconf=""
-
- use cpu_flags_x86_sse && myconf="${myconf} --enable-optimizations=sse"
- use cpu_flags_x86_sse2 && myconf="${myconf} --enable-optimizations=sse2"
- use cpu_flags_x86_sse3 && myconf="${myconf} --enable-optimizations=sse3"
-
- econf ${myconf} \
- --with-sndfile \
- $(use_with hamlib) \
- $(use_enable nls) \
- $(use_with pulseaudio) \
- --without-asciidoc
-}
diff --git a/media-radio/fldigi/fldigi-4.2.12.ebuild b/media-radio/fldigi/fldigi-4.2.12.ebuild
deleted file mode 100644
index 819eec8d0fb4..000000000000
--- a/media-radio/fldigi/fldigi-4.2.12.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic
-
-DESCRIPTION="Sound card based multimode software modem for Amateur Radio use"
-HOMEPAGE="http://www.w1hkj.com"
-SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="hamlib nls pulseaudio"
-IUSE_CPU_FLAGS=" sse sse2 sse3"
-IUSE+=" ${IUSE_CPU_FLAGS// / cpu_flags_x86_}"
-
-RDEPEND="x11-libs/fltk:1=[threads(+),xft(+)]
- x11-libs/libX11
- virtual/libudev:=
- media-libs/libsamplerate
- media-libs/libpng:=
- x11-misc/xdg-utils
- dev-perl/RPC-XML
- dev-perl/Term-ReadLine-Perl
- || (
- media-libs/portaudio[oss]
- media-libs/portaudio[alsa]
- )
- hamlib? ( media-libs/hamlib:= )
- pulseaudio? ( media-libs/libpulse )
- media-libs/libsndfile"
-DEPEND="${RDEPEND}
- nls? ( sys-devel/gettext )
- virtual/pkgconfig"
-
-DOCS=( AUTHORS ChangeLog NEWS README )
-
-PATCHES=( "${FILESDIR}/${PN}-drop-nullptr-definition.patch" )
-
-src_configure() {
- #fails to compile with -flto (bug #860405)
- filter-lto
-
- append-cxxflags $(test-flags-CXX -std=c++14)
- local myconf=""
-
- use cpu_flags_x86_sse && myconf="${myconf} --enable-optimizations=sse"
- use cpu_flags_x86_sse2 && myconf="${myconf} --enable-optimizations=sse2"
- use cpu_flags_x86_sse3 && myconf="${myconf} --enable-optimizations=sse3"
-
- econf ${myconf} \
- --with-sndfile \
- $(use_with hamlib) \
- $(use_enable nls) \
- $(use_with pulseaudio) \
- --without-asciidoc
-}
diff --git a/media-radio/flrig/Manifest b/media-radio/flrig/Manifest
index bb10cc848c4a..6691589ba916 100644
--- a/media-radio/flrig/Manifest
+++ b/media-radio/flrig/Manifest
@@ -1,2 +1 @@
-DIST flrig-2.0.10.tar.gz 1225020 BLAKE2B b28691a07f13262e4a755979091fa73523da1f68ca0934072f72adbe0c7bd19fefb7024d9de644f9ce12ee7d693582b2b7b4e15b095cae82745322c64c3a9ad9 SHA512 d8ee677561f5bf3ba49f1c3da62836ce8504611b1774135e1f920eda71296bb3f45d056537111ac58c08d255fd3cd6a194dabd7adf2736dae811e68b5ffe82be
DIST flrig-2.0.12.tar.gz 1233270 BLAKE2B 5648466fba123ed34257d7f53439f23d30fae458cc6d08b8db2b4d652ad3a57d5e2095aba4f4725a2ab4204d700be781f2351e38c85875a0599696392cd5e7b2 SHA512 717df725afa3512cf663f1667a20c3caa6fd023efb078aa164f0ad233d498b1d6d38390c03090bd84dae663462bcb8b16abc03f94a93ae449a41b87902f0b079
diff --git a/media-radio/flrig/flrig-2.0.10-r1.ebuild b/media-radio/flrig/flrig-2.0.10-r1.ebuild
deleted file mode 100644
index e3b0ae627a21..000000000000
--- a/media-radio/flrig/flrig-2.0.10-r1.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic
-
-DESCRIPTION="Transceiver control program for Amateur Radio use"
-HOMEPAGE="http://www.w1hkj.com/flrig-help/index.html"
-SRC_URI="https://downloads.sourceforge.net/fldigi/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="nls"
-
-DOCS=(AUTHORS ChangeLog README)
-
-RDEPEND="x11-libs/libX11
- x11-libs/fltk:1=
- x11-misc/xdg-utils"
-
-DEPEND="${RDEPEND}
- sys-devel/gettext"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.0.05-musl.patch"
- "${FILESDIR}/${PN}-2.0.10-build-m4.patch"
- )
-
-src_prepare() {
- default_src_prepare
- eapply_user
- autoreconf -i
-}
-
-src_configure() {
- #fails to compile with -flto (bug #860408)
- filter-lto
-
- econf
-}
diff --git a/media-sound/beets/Manifest b/media-sound/beets/Manifest
index c046418d0bb7..0ef3bab64fe5 100644
--- a/media-sound/beets/Manifest
+++ b/media-sound/beets/Manifest
@@ -1,9 +1,4 @@
-DIST beets-1.7.0_pre20240501.gh.tar.gz 2247319 BLAKE2B e215c8a2a30a44d298746351be4fa2de1cebb7d6aec2bc7dfc679b133ea5eddefec20d038aa1aa1d734b176c09163b93f917c6c29ea5115c4c2349e090c8c5df SHA512 f397c72b481d7d8822db598ab37c99d0b9063ae45455c0d34116fab7b5a4cc683a3357bdfe436181b1dea46ee05192cc37faf355b5e093d63c2e440e523b92bc
-DIST beets-2.10.0.tar.gz 2282966 BLAKE2B 7e5819f1857d48a32581e854a7e4095afc28c2cb446a5f1fca6a3621d7443005ba901a753340cd2035cc8e2bcf176323b268fe0b903563d4983b8d9a9e0ee05d SHA512 9a34720f7d851b769f74bf573d8a8d8324f443b20dd6ec5c91f18457144a9ab5a912cb24d58a1da4d50ba3438f1a58f7763cb7268f1db134195369b07064e5d6
-DIST beets-2.10.0.tar.gz.provenance 9362 BLAKE2B b5a0eb9fd1a9da6d51218aed9003018e4f32c7cc9ef005f9775417b10bc3961c1374691cb7511b1c4a25602c971531e2a5c8ca5bdd0728e10c58d37b513197df SHA512 34f83916b45d2c97af64b4a0f46b4e33509d2a055c112daee627a2c44ab8d3e49df0149b36a06e3bdf5674cd3bfa19f167cabf70c29400cde22638c55653bb00
-DIST beets-2.11.0.tar.gz 2298259 BLAKE2B 33a8bd82c79fc41b3303424e36f7fcb98ed9d1480fbd1c0939044f7f354c48162a344a06698fba718f4bc7bcec40fb4758f72f80577aeb0984cf983a49278bee SHA512 54e077d893485786f3448e04c956b74aa247e731b85f6359dc208cf993bf2b7f4a4139dec6e8bc81bca05a79326314ba4a0427256eee63b56fe29085b972cf3a
-DIST beets-2.11.0.tar.gz.provenance 9609 BLAKE2B 6dbcf6417c4127515e1860c7bee942bf824126aceae06a061ac2c7e2db92daaa0c584521c6e9c54f3faef63f3d0e08d5f1e6d0e9ee3779100d662c0298eb5bbc SHA512 f3f151bcb271c312f6b1927443701edebd2dcee1afee6c957aa80cf6789a6c2840446c231ba61f6e56633509d0e8c974607864b452b3f103238fd94ac5ed5992
DIST beets-2.12.0.tar.gz 2305682 BLAKE2B 40b4295a6cf8e66ed513b9c51600a80284baa9851ec91c9f17a17c3c54f3b019b4d70725159e814738ee716297be2a48d349b571fae85ea17169437a43647fd1 SHA512 ab069c6494925442b63b62c3530a122cdf1ba54281e086791f32699e91a59c3b81cfbe4687cbb28a70c6d47ae7889cf940461198247c4f52ba07287960319480
DIST beets-2.12.0.tar.gz.provenance 9656 BLAKE2B fe285697ea3ec8f907eb4a31a3d69637aa10b4d49cc9b6a1f980ac0b9e610b238f427c14118a5a32f3f2b521924b926474a7e2bf80ff8d02af602c164f5f8ed7 SHA512 bb033e9c9b2c80192cfe0e443e78fc030aa0342645ad595a0e27109b1b91dbba938ef063c4242fa9be710aa6f66cc2a6dade968109dbe47d5d50db8af98e9945
-DIST beets-2.3.1.tar.gz 2133246 BLAKE2B 1c5eb7ab0029683448bf996c82579f780940752146fa40a764cd3d353b7894226a4c7f8ae3c7ecca58c25dc1f2f8d44f0d66053f037c332f65396d0d90aa9754 SHA512 b065dd9f1ce5dd63779b085d44510e5158d23046fdc9ecaa1ce9a10d5f8fa660e1ad130c68fed4ddac323453fcbf6d1ea2dc2a9897931c486da099b87dcfc047
-DIST beets-2.3.1.tar.gz.provenance 9322 BLAKE2B ce059df773672f050ef9c3e0dee65313ce064190a8d3a8b0448947a2a288433cc5eff7cddae1d0c295f9067ac3efedaaac9a4a01e925ea22202b925e1f446186 SHA512 39ee130a52bac880d4565200a61a85cb7b2b3169841e66318fa392a6302ef1f5bed2be7cac0aaec8172a34747a88a52f9032f28c8144346e2cac80c33fb900c8
+DIST beets-2.13.1.tar.gz 2447541 BLAKE2B a483c5166f6deac68ea0bd027b2d6af7a33b61812c9208130c9638bdeb9ada0f3b317138f512f31d8b5d4acb8ca8bb5427433492deefe5ff8ccbf7dc0c88e25a SHA512 3a3eaeb16f061ede4648da1b1df9324ec9c7ec026e2ab8f59fcc19521c8715b4c98eb1ea04aa91c654ef10183f8053a41d4f5b7c72dec641bffa2dc979efc1d6
+DIST beets-2.13.1.tar.gz.provenance 9615 BLAKE2B f9588a8cde19117d183492592556be7595043014048bfb465809636ef7fed26c0a3573929e755c98cf199c85695639eb001d7245e4f85a0d1537da9bae13265e SHA512 92cdcc5c45b3b28c494beba4dfad0015a9583615f3e77dfbb5e8e3fdef828edf8a4537c638539181b55bb328b596558f97fb706decf9b2f01950bd75f8e82c33
diff --git a/media-sound/beets/beets-1.7.0_pre20240501-r1.ebuild b/media-sound/beets/beets-1.7.0_pre20240501-r1.ebuild
deleted file mode 100644
index a893c29e24f8..000000000000
--- a/media-sound/beets/beets-1.7.0_pre20240501-r1.ebuild
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="sqlite"
-
-# These envvars are used to treat github tarball builds differently
-# from pypi sources. Enable where required
-: ${IS_VCS_SOURCE="no"}
-: ${UPDATE_VERSION="no"}
-
-inherit distutils-r1 bash-completion-r1 multiprocessing optfeature
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/beetbox/beets.git"
- inherit git-r3
-else
- MY_COMMIT=c75f07a0da6c622d3cd0f5aad0a08edaea360dad
- # This should be set to 1 if we're not sourcing tarballs from pypi; we need to generate mans.
- IS_VCS_SOURCE="yes"
- UPDATE_VERSION="yes"
- SRC_URI="https://github.com/beetbox/beets/archive/${MY_COMMIT}.tar.gz -> ${P}.gh.tar.gz"
- KEYWORDS="amd64 ~x86"
- S="${WORKDIR}/${PN}-${MY_COMMIT}"
-fi
-
-DESCRIPTION="Media library management system for obsessive music geeks"
-HOMEPAGE="https://beets.io/ https://pypi.org/project/beets/"
-
-LICENSE="MIT"
-SLOT="0"
-IUSE="doc test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/jellyfish-0.7.1[${PYTHON_USEDEP}]
- dev-python/munkres[${PYTHON_USEDEP}]
- >=media-libs/mutagen-1.33[${PYTHON_USEDEP}]
- >=dev-python/musicbrainzngs-0.4[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/confuse[${PYTHON_USEDEP}]
- dev-python/mediafile[${PYTHON_USEDEP}]
- dev-python/reflink[${PYTHON_USEDEP}]
- dev-python/requests-oauthlib[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- dev-python/unidecode[${PYTHON_USEDEP}]
- ')"
-DEPEND="
- ${RDEPEND}
-"
-BDEPEND="
- doc? (
- dev-python/sphinx
- dev-python/pydata-sphinx-theme
- )
- $(python_gen_cond_dep '
- test? (
- dev-db/sqlite[icu]
- dev-python/beautifulsoup4[${PYTHON_USEDEP}]
- dev-python/bluelet[${PYTHON_USEDEP}]
- dev-python/python3-discogs-client[${PYTHON_USEDEP}]
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pyacoustid[${PYTHON_USEDEP}]
- dev-python/pylast[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- dev-python/python-mpd2[${PYTHON_USEDEP}]
- dev-python/pyxdg[${PYTHON_USEDEP}]
- dev-python/reflink[${PYTHON_USEDEP}]
- || (
- dev-python/pillow[${PYTHON_USEDEP}]
- media-gfx/imagemagick
- )
- dev-python/rarfile[${PYTHON_USEDEP}]
- dev-python/responses[${PYTHON_USEDEP}]
- dev-python/wheel[${PYTHON_USEDEP}]
- media-libs/chromaprint[tools]
- media-libs/flac
- media-libs/gst-plugins-bad:1.0
- media-libs/gst-plugins-good:1.0
- media-sound/mp3val
- media-sound/mp3gain
- media-plugins/gst-plugins-libav:1.0
- media-video/ffmpeg[encode(+)]
- app-shells/bash-completion
- )
- ')"
-
-# Beets uses sphinx to generate manpages; these are not available
-# directly in VCS sources, only pypi tarballs, so handle the dependency
-# here automagically.
-if [[ ${PV} == "9999" ]] || [[ ${IS_VCS_SOURCE} == "yes" ]]; then
- BDEPEND+="
- dev-python/sphinx
- "
-fi
-
-DOCS=( README.rst docs/changelog.rst )
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # https://github.com/beetbox/beets/commit/8b4983fe7cae9397acd3e23602e419d8dc1041d4
- # merged code coverage into standard test runs; since we disable coverage globally
- # we need to sed out some 'addopts' for coverage in setup.cfg that cause tests to choke.
- sed -i -e "/--cov=beets/,+9d" setup.cfg || die "Failed to disable code coverage options in setup.cfg"
- # Update the version if we're not building from pypy; it's probably a _pre or live ebuild.
- if [[ ${PV} == "9999" ]] || [[ ${UPDATE_VERSION} == "yes" ]]; then
- sed -i -e "s/version=\".*\"/version=\"${PV}\"/" setup.py || die "Failed to update version in VCS sources"
- sed -i -e "s/__version__ = \".*\"/__version__ = \"${PV}\"/" beets/__init__.py
- fi
- default
-}
-
-python_prepare_all() {
- distutils-r1_python_prepare_all
-}
-
-python_compile_all() {
- if use doc ; then
- sphinx-build -b html docs docs/build/html || die
- fi
- # If building from VCS sources we need to generate manpages, then copy them to ${S}/man
- # We could install mans from the sphinx build path, but to be consistent with pypi for src_install
- # we'll instead generate them and copy to the same install location if building from VCS sources.
- if [[ ${PV} == "9999" ]] || [[ ${IS_VCS_SOURCE} == "yes" ]]; then
- einfo "Building man pages"
- sphinx-build -b man docs docs/build/man || die "Failed to generate man pages"
- mkdir "${S}/man" || die
- cp docs/build/man/{beet.1,beetsconfig.5} "${S}/man" || die
- fi
-}
-
-python_test() {
- # https://github.com/beetbox/beets/issues/5243 testing bash completions is broken.
- local EPYTEST_DESELECT=(
- test/test_ui.py::CompletionTest::test_completion
- )
- epytest -n$(makeopts_jobs) -v
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- doman man/*
- use doc && local HTML_DOCS=( docs/build/html/. )
- einstalldocs
- # Generate the bash completions; we'll set PYTHONPATH for this invocation so that beets can start.
- PYTHONPATH="${ED}/usr/lib/${PYTHON}:$PYTHONPATH" ${PYTHON} "${ED}/usr/bin/beet" completion > "${T}/beet.bash" || die
- newbashcomp "${T}/beet.bash" beet
- insinto /usr/share/zsh/site-functions
- newins "${S}/extra/_beet" _beet
-
- optfeature "badfiles support" "media-libs/flac media-sound/mp3val"
- optfeature "chromaprint support" "dev-python/pyacoustid media-libs/chromaprint[tools]"
- optfeature "discogs support" dev-python/python3-discogs-client
- optfeature "ffmpeg support" media-video/ffmpeg
- optfeature "gstreamer support" "media-libs/gst-plugins-bad media-libs/gst-plugins-good"
- optfeature "icu support" dev-db/sqlite[icu]
- optfeature "lastfm support" dev-python/pylast
- optfeature "mpd support" "dev-python/bluelet dev-python/python-mpd2"
- optfeature "replaygain with gstreamer support" "dev-python/pygobject media-plugins/gst-plugins-libav"
- optfeature "replaygain without gstreamer support" media-sound/mp3gain
- optfeature "thumbnail support" dev-python/pyxdg "dev-python/pillow media-gfx/imagemagick"
- optfeature "webserver support" dev-python/flask
- optfeature "webserver cors support" dev-python/flask-cors
-}
diff --git a/media-sound/beets/beets-2.11.0.ebuild b/media-sound/beets/beets-2.11.0.ebuild
deleted file mode 100644
index f258a8caec43..000000000000
--- a/media-sound/beets/beets-2.11.0.ebuild
+++ /dev/null
@@ -1,172 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_USE_PEP517=poetry
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="sqlite"
-
-# These envvars are used to treat github tarball builds differently
-# from pypi sources. Enable where required
-: ${IS_VCS_SOURCE="no"}
-: ${UPDATE_VERSION="no"}
-
-inherit distutils-r1 optfeature shell-completion
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/beetbox/beets.git"
- IS_VCS_SOURCE="yes"
- UPDATE_VERSION="yes"
- inherit git-r3
-else
- PYPI_VERIFY_REPO=https://github.com/beetbox/beets
- inherit pypi
- MY_PV=${PV/_beta/-beta.}
- MY_P=${PN}-${MY_PV}
- KEYWORDS="amd64"
- S="${WORKDIR}/${MY_P}"
-fi
-
-DESCRIPTION="Media library management system for obsessive music geeks"
-HOMEPAGE="https://beets.io/ https://pypi.org/project/beets/"
-
-LICENSE="MIT"
-SLOT="0"
-
-# TODO: test-full with GITHUB_ACTIONS=true. Would require packaging more dependencies.
-
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/jellyfish-0.7.1[${PYTHON_USEDEP}]
- >=media-libs/mutagen-1.33[${PYTHON_USEDEP}]
- >=dev-python/confuse-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/lap-0.5.12[${PYTHON_USEDEP}]
- >=dev-python/mediafile-0.16.2[${PYTHON_USEDEP}]
- >=dev-python/numpy-2[${PYTHON_USEDEP}]
- >=dev-python/packaging-24.0[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/reflink[${PYTHON_USEDEP}]
- >=dev-python/requests-ratelimiter-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/requests-2.32.5[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- >=dev-python/unidecode-1.3.6[${PYTHON_USEDEP}]
- ')
-"
-BDEPEND="
- $(python_gen_cond_dep '
- test? (
- dev-db/sqlite[icu]
- dev-python/beautifulsoup4[${PYTHON_USEDEP}]
- dev-python/bluelet[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-python/python3-discogs-client[${PYTHON_USEDEP}]
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pyacoustid[${PYTHON_USEDEP}]
- dev-python/pylast[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- dev-python/python-mpd2[${PYTHON_USEDEP}]
- dev-python/pyxdg[${PYTHON_USEDEP}]
- dev-python/reflink[${PYTHON_USEDEP}]
- || (
- dev-python/pillow[${PYTHON_USEDEP}]
- media-gfx/imagemagick
- )
- dev-python/rarfile[${PYTHON_USEDEP}]
- dev-python/requests-mock[${PYTHON_USEDEP}]
- dev-python/responses[${PYTHON_USEDEP}]
- dev-python/wheel[${PYTHON_USEDEP}]
- media-libs/chromaprint[tools]
- media-libs/flac
- media-libs/gst-plugins-bad:1.0
- media-libs/gst-plugins-good:1.0
- media-sound/mp3val
- media-sound/mp3gain
- media-plugins/gst-plugins-libav:1.0
- media-video/ffmpeg[encode(+)]
- app-shells/bash-completion
- )
- ')
-"
-
-# Beets uses sphinx to generate manpages; these are not available
-# directly in VCS sources, only pypi tarballs, so handle the dependency
-# here automagically.
-if [[ ${PV} == "9999" ]] || [[ ${IS_VCS_SOURCE} == "yes" ]]; then
- BDEPEND+=" $(python_gen_cond_dep 'dev-python/sphinx[${PYTHON_USEDEP}]')"
-fi
-
-DOCS=( README.rst docs/changelog.rst )
-
-EPYTEST_PLUGINS=( pytest-flask )
-EPYTEST_IGNORE=(
- # Not relevant downstream
- test/test_release.py
- # Unpackaged test dependencies: titlecase and pytest-factoryboy
- # (These tests aren't included in the sdist)
- test/plugins
-)
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_prepare_all() {
- distutils-r1_python_prepare_all
-
- if [[ ${PV} == "9999" ]] || [[ ${UPDATE_VERSION} == "yes" ]]; then
- sed -i -e "s/^version = \".*\"$/version = \"${PV}\"/" \
- pyproject.toml \
- || die "Failed to update version in VCS sources"
- sed -i -e "s/__version__ = \".*\"/__version__ = \"${PV}\"/" beets/__init__.py
- fi
-
- # Don't require extra unpackaged sphinx dependencies to generate man pages on live
- sed -e '/sphinx_design/d' \
- -e '/sphinx_copybutton/d' \
- -e '/sphinx_toolbox/d' \
- -i docs/conf.py || die
-}
-
-python_compile_all() {
- # If building from VCS sources we need to generate manpages, then copy them to ${S}/man
- # We could install mans from the sphinx build path, but to be consistent with pypi for src_install
- # we'll instead generate them and copy to the same install location if building from VCS sources.
- if [[ ${PV} == "9999" ]] || [[ ${IS_VCS_SOURCE} == "yes" ]]; then
- einfo "Building man pages"
- sphinx-build -b man docs docs/build/man || die "Failed to generate man pages"
- mkdir "${S}/man" || die
- cp docs/build/man/{beet.1,beetsconfig.5} "${S}/man" || die
- fi
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- # remove leftover file in sdist
- if [[ -e man/_sphinx_design_static ]]; then
- rm -rf man/_sphinx_design_static || die
- fi
- doman man/*
- einstalldocs
-
- # Generate the bash completions; we'll set PYTHONPATH for this invocation so that beets can start.
- PYTHONPATH="${ED}/usr/lib/${PYTHON}:$PYTHONPATH" ${PYTHON} "${ED}/usr/bin/beet" completion > "${T}/beet.bash" || die
- newbashcomp "${T}/beet.bash" beet
- newzshcomp "${S}/extra/_beet" _beet
-
- optfeature "badfiles support" "media-libs/flac media-sound/mp3val"
- optfeature "chromaprint support" "dev-python/pyacoustid media-libs/chromaprint[tools]"
- optfeature "discogs support" dev-python/python3-discogs-client
- optfeature "ffmpeg support" media-video/ffmpeg
- optfeature "gstreamer support" "media-libs/gst-plugins-bad media-libs/gst-plugins-good"
- optfeature "icu support" dev-db/sqlite[icu]
- optfeature "lastfm support" dev-python/pylast
- optfeature "mpd support" "dev-python/bluelet dev-python/python-mpd2"
- optfeature "replaygain with gstreamer support" "dev-python/pygobject media-plugins/gst-plugins-libav"
- optfeature "replaygain without gstreamer support" media-sound/mp3gain
- optfeature "thumbnail support" dev-python/pyxdg "dev-python/pillow media-gfx/imagemagick"
- optfeature "webserver support" dev-python/flask
- optfeature "webserver cors support" dev-python/flask-cors
- optfeature "Amarok metadata synchronisation" dev-python/dbus-python
-}
diff --git a/media-sound/beets/beets-2.10.0.ebuild b/media-sound/beets/beets-2.13.1.ebuild
index dae900843d0f..5e4b5b095d52 100644
--- a/media-sound/beets/beets-2.10.0.ebuild
+++ b/media-sound/beets/beets-2.13.1.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_USE_PEP517=poetry
+DISTUTILS_USE_PEP517=hatchling
PYTHON_COMPAT=( python3_{13..14} )
PYTHON_REQ_USE="sqlite"
@@ -25,7 +25,7 @@ else
inherit pypi
MY_PV=${PV/_beta/-beta.}
MY_P=${PN}-${MY_PV}
- KEYWORDS="~amd64"
+ KEYWORDS="~amd64 ~x86"
S="${WORKDIR}/${MY_P}"
fi
@@ -103,12 +103,11 @@ DOCS=( README.rst docs/changelog.rst )
EPYTEST_PLUGINS=( pytest-flask )
EPYTEST_IGNORE=(
# Not relevant downstream
- test/test_release.py
+ test/extra/test_release.py
# Unpackaged test dependencies: titlecase and pytest-factoryboy
# (These tests aren't included in the sdist)
test/plugins
)
-EPYTEST_XDIST=1
distutils_enable_tests pytest
python_prepare_all() {
@@ -133,6 +132,7 @@ python_compile_all() {
# We could install mans from the sphinx build path, but to be consistent with pypi for src_install
# we'll instead generate them and copy to the same install location if building from VCS sources.
if [[ ${PV} == "9999" ]] || [[ ${IS_VCS_SOURCE} == "yes" ]]; then
+ local -x PYTHONPATH=.
einfo "Building man pages"
sphinx-build -b man docs docs/build/man || die "Failed to generate man pages"
mkdir "${S}/man" || die
diff --git a/media-sound/beets/beets-2.3.1.ebuild b/media-sound/beets/beets-2.3.1.ebuild
deleted file mode 100644
index 3a90be343d40..000000000000
--- a/media-sound/beets/beets-2.3.1.ebuild
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_USE_PEP517=poetry
-PYPI_VERIFY_REPO=https://github.com/beetbox/beets
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="sqlite"
-
-# These envvars are used to treat github tarball builds differently
-# from pypi sources. Enable where required
-: ${IS_VCS_SOURCE="no"}
-: ${UPDATE_VERSION="no"}
-
-inherit distutils-r1 multiprocessing optfeature shell-completion
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="https://github.com/beetbox/beets.git"
- IS_VCS_SOURCE="yes"
- UPDATE_VERSION="yes"
- inherit git-r3
-else
- inherit pypi
- MY_PV=${PV/_beta/-beta.}
- MY_P=${PN}-${MY_PV}
- KEYWORDS="amd64"
- S="${WORKDIR}/${MY_P}"
-fi
-
-DESCRIPTION="Media library management system for obsessive music geeks"
-HOMEPAGE="https://beets.io/ https://pypi.org/project/beets/"
-
-LICENSE="MIT"
-SLOT="0"
-IUSE="doc test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/jellyfish-0.7.1[${PYTHON_USEDEP}]
- >=media-libs/mutagen-1.33[${PYTHON_USEDEP}]
- >=dev-python/musicbrainzngs-0.4[${PYTHON_USEDEP}]
- dev-python/confuse[${PYTHON_USEDEP}]
- >=dev-python/lap-0.5.12[${PYTHON_USEDEP}]
- dev-python/mediafile[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.24.4[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/reflink[${PYTHON_USEDEP}]
- dev-python/requests-oauthlib[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- dev-python/unidecode[${PYTHON_USEDEP}]
- ')"
-DEPEND="
- ${RDEPEND}
-"
-BDEPEND="
- doc? (
- dev-python/sphinx
- dev-python/pydata-sphinx-theme
- )
- $(python_gen_cond_dep '
- test? (
- dev-db/sqlite[icu]
- dev-python/beautifulsoup4[${PYTHON_USEDEP}]
- dev-python/bluelet[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-python/python3-discogs-client[${PYTHON_USEDEP}]
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pyacoustid[${PYTHON_USEDEP}]
- dev-python/pylast[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- dev-python/pytest-flask[${PYTHON_USEDEP}]
- dev-python/python-mpd2[${PYTHON_USEDEP}]
- dev-python/pyxdg[${PYTHON_USEDEP}]
- dev-python/reflink[${PYTHON_USEDEP}]
- || (
- dev-python/pillow[${PYTHON_USEDEP}]
- media-gfx/imagemagick
- )
- dev-python/rarfile[${PYTHON_USEDEP}]
- dev-python/requests-mock[${PYTHON_USEDEP}]
- dev-python/responses[${PYTHON_USEDEP}]
- dev-python/wheel[${PYTHON_USEDEP}]
- media-libs/chromaprint[tools]
- media-libs/flac
- media-libs/gst-plugins-bad:1.0
- media-libs/gst-plugins-good:1.0
- media-sound/mp3val
- media-sound/mp3gain
- media-plugins/gst-plugins-libav:1.0
- media-video/ffmpeg[encode(+)]
- app-shells/bash-completion
- )
- ')"
-
-# Beets uses sphinx to generate manpages; these are not available
-# directly in VCS sources, only pypi tarballs, so handle the dependency
-# here automagically.
-if [[ ${PV} == "9999" ]] || [[ ${IS_VCS_SOURCE} == "yes" ]]; then
- BDEPEND+="
- dev-python/sphinx
- "
-fi
-
-DOCS=( README.rst docs/changelog.rst )
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- if [[ ${PV} == "9999" ]] || [[ ${UPDATE_VERSION} == "yes" ]]; then
- sed -i -e "s/^version = \".*\"$/version = \"${PV}\"/" \
- pyproject.toml \
- || die "Failed to update version in VCS sources"
- sed -i -e "s/__version__ = \".*\"/__version__ = \"${PV}\"/" beets/__init__.py
- fi
- default
-}
-
-python_prepare_all() {
- distutils-r1_python_prepare_all
-}
-
-python_compile_all() {
- if use doc ; then
- sphinx-build -b html docs docs/build/html || die
- fi
- # If building from VCS sources we need to generate manpages, then copy them to ${S}/man
- # We could install mans from the sphinx build path, but to be consistent with pypi for src_install
- # we'll instead generate them and copy to the same install location if building from VCS sources.
- if [[ ${PV} == "9999" ]] || [[ ${IS_VCS_SOURCE} == "yes" ]]; then
- einfo "Building man pages"
- sphinx-build -b man docs docs/build/man || die "Failed to generate man pages"
- mkdir "${S}/man" || die
- cp docs/build/man/{beet.1,beetsconfig.5} "${S}/man" || die
- fi
-}
-
-python_test() {
- # test/test_art_resize.py can be flaky, parallelisation?
- epytest -n$(makeopts_jobs) -v
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- doman man/*
- use doc && local HTML_DOCS=( docs/build/html/. )
- einstalldocs
- # Generate the bash completions; we'll set PYTHONPATH for this invocation so that beets can start.
- PYTHONPATH="${ED}/usr/lib/${PYTHON}:$PYTHONPATH" ${PYTHON} "${ED}/usr/bin/beet" completion > "${T}/beet.bash" || die
- newbashcomp "${T}/beet.bash" beet
- newzshcomp "${S}/extra/_beet" _beet
-
- optfeature "badfiles support" "media-libs/flac media-sound/mp3val"
- optfeature "chromaprint support" "dev-python/pyacoustid media-libs/chromaprint[tools]"
- optfeature "discogs support" dev-python/python3-discogs-client
- optfeature "ffmpeg support" media-video/ffmpeg
- optfeature "gstreamer support" "media-libs/gst-plugins-bad media-libs/gst-plugins-good"
- optfeature "icu support" dev-db/sqlite[icu]
- optfeature "lastfm support" dev-python/pylast
- optfeature "mpd support" "dev-python/bluelet dev-python/python-mpd2"
- optfeature "replaygain with gstreamer support" "dev-python/pygobject media-plugins/gst-plugins-libav"
- optfeature "replaygain without gstreamer support" media-sound/mp3gain
- optfeature "thumbnail support" dev-python/pyxdg "dev-python/pillow media-gfx/imagemagick"
- optfeature "webserver support" dev-python/flask
- optfeature "webserver cors support" dev-python/flask-cors
- optfeature "Amarok metadata synchronisation" dev-python/dbus-python
-}
diff --git a/net-mail/b4/b4-0.16.0-r1.ebuild b/net-mail/b4/b4-0.16.0-r1.ebuild
index 955ab11f9371..8449780e0a75 100644
--- a/net-mail/b4/b4-0.16.0-r1.ebuild
+++ b/net-mail/b4/b4-0.16.0-r1.ebuild
@@ -35,6 +35,7 @@ BDEPEND="
dev-python/shtab[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=( pytest-asyncio )
distutils_enable_tests pytest
EPYTEST_DESELECT=(
# broken upstream
diff --git a/net-misc/freerdp/Manifest b/net-misc/freerdp/Manifest
index 1baa6f6da2a5..f2f01036fa57 100644
--- a/net-misc/freerdp/Manifest
+++ b/net-misc/freerdp/Manifest
@@ -1,8 +1,2 @@
-DIST freerdp-3.29.0.tar.gz 11067925 BLAKE2B 2202eae9cca1275b366b6b87935760ec438b10ef0e15222241ee8126b74614938dc47586d51c28e68e1597fc46a0a02130238af7dff5db4fc850d6604e516548 SHA512 daa1dc6d561c5ffa65a422ffbd218a6244dd3eff400759a456f33ead3618461302d13543ae32a41aa188b2e3590f15b143cf158b13f38b235fe992c38c9916f9
-DIST freerdp-3.29.0.tar.gz.asc 228 BLAKE2B 5df8af1b75bfe5eb0be2526908c39d6324c9bbd04219528b84b467e9db875ed4b406e550d8e2a4ca4ee528d405063183d551f98aa405a1361fdc28307a0b3453 SHA512 46373f21988db91fa9179364290e0daf3a8b2d58cc084a6c1fbd5870994b011bebab01b8e9ee32e7df266350fb0a647defaab37aa5d10246f8922b196460d1ff
-DIST freerdp-3.30.0.tar.gz 11070523 BLAKE2B 654816d8fede28e5a302f4288481411ae6dc07ab2bd090026e2d92c3d19a896e40b5d8ca79fe45daa7e77459b21b540ef825abd3df1d573a88a59c2dccdcfade SHA512 a7048c67936640779c9a754af35466fe4821b4cf98f68ebeccdbc6793ddf755e53e672390a91cd0440d26b9be9ae65e67689d8e3c9c249ce6971bee3a10c6629
-DIST freerdp-3.30.0.tar.gz.asc 228 BLAKE2B 4ffb2710ca3a24df878a77c350b875c44515a1696a212a99596f3dbb79433ed3a2f066f4aa3187653a579db4a37d0d0b342aac372db0a3803ba8bf0c52fc3673 SHA512 df68f5ff8d0c895202c579b4b14f1dcc0555b6459ba0c73ad82224d8b2f031a88ff35c50a92c9426cc13c64ede138179eaa256a6785a77b78aefb7e55f7c1c24
-DIST freerdp-3.31.0.tar.gz 11106371 BLAKE2B 62b2a227e05a6e96f031888de95281a37db9d0b82a52117a2b88570f0a0e0308469194e5c93542d56bb335ce6091641f2139359ce65daa5394e5e93b72183676 SHA512 3543a32b0204dcdc64deb6d4a410e223dce5c4195de8bc5c5931f569cf184a54441ddf315ca509e6500f79735693372c8f7dd108d94dd187df0da3f935a2c28d
-DIST freerdp-3.31.0.tar.gz.asc 228 BLAKE2B 91e961f6987090cb85f9189415620dc8eed578afa5599e698579b0e075a858c3ade2952935e746d3811fc661180facfa53f70a156e1d3156c76e43452634fe1d SHA512 0e001b1ff461fe9eca67e80f0487d9d069c9a188412667a6bf5e3e21a0d5189126fe7b4ae0ee173ba8935ce915d5d1c2d49adc03b5b09bf8ae4863a09de73f98
DIST freerdp-3.31.1.tar.gz 11111567 BLAKE2B 97d47a4daab1341b558212da34c580543fc9c62d5e4fa6ea71b230a8b79b8c5aa2d960aa49294b48f19fcf27f0a6d81cae9c75d3987477c8ff964a1ec71d723b SHA512 708fa170d70c01cbd5b16b2bc0359092114e0158c3a76c38862b58b19bc2757a467656cf0f326cd9e81c366f2a9c1ff11073a099ee81304006556dac0d8b5a7e
DIST freerdp-3.31.1.tar.gz.asc 228 BLAKE2B 6b009b8969c06a2123469eadf02a85a18567a541b745b7a7a82324dd3c27faa99f53c05846933ee24001686f4bc297d32d48a9f4d7f82045161d94bf7586f0f5 SHA512 5c9bfc3cb28cc900cce93f9b9f94e41e3e7ed1ee1b87c68d46bed260ddc294bab3035676a2361e8943c5d6be8791c237f89032e04dc772e16d0bc6117d13ded9
diff --git a/net-misc/freerdp/files/freerdp-3.31.0-debug.patch b/net-misc/freerdp/files/freerdp-3.31.0-debug.patch
deleted file mode 100644
index 6c7e299c4f52..000000000000
--- a/net-misc/freerdp/files/freerdp-3.31.0-debug.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-https://bugs.gentoo.org/981480
-https://github.com/FreeRDP/FreeRDP/pull/13283
-
-From 6055267480f91dcdfd2060922af778d152a5662a Mon Sep 17 00:00:00 2001
-From: Armin Novak <armin.novak@thincast.com>
-Date: Wed, 26 Aug 2026 22:06:58 +0200
-Subject: [PATCH] [debug,logs] fix warnings and errors WITH_DEBUG_ALL
-
----
- client/common/client_cliprdr_file.c | 4 ++--
- libfreerdp/codec/include/bitmap.h | 3 ++-
- libfreerdp/core/server.c | 2 +-
- 3 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/client/common/client_cliprdr_file.c b/client/common/client_cliprdr_file.c
-index 5095ab856c75..947bda8cb834 100644
---- a/client/common/client_cliprdr_file.c
-+++ b/client/common/client_cliprdr_file.c
-@@ -998,7 +998,7 @@ static BOOL request_file_range_async(CliprdrFileContext* file_context, CliprdrFu
- // NOLINTBEGIN(clang-analyzer-unix.Malloc)
- DEBUG_CLIPRDR(
- file_context->log,
-- "Requested file range (%zu Bytes at offset %lu) for file \"%s\" with stream id %u",
-+ "Requested file range (%zu Bytes at offset %ld) for file \"%s\" with stream id %u",
- requested_size, offset, fuse_file->filename, fuse_request->stream_id);
-
- return TRUE;
-@@ -1104,7 +1104,7 @@ static void cliprdr_file_fuse_readdir(fuse_req_t fuse_req, fuse_ino_t fuse_ino,
- return;
- }
-
-- DEBUG_CLIPRDR(file_context->log, "Reading directory \"%s\" at offset %lu",
-+ DEBUG_CLIPRDR(file_context->log, "Reading directory \"%s\" at offset %ld",
- fuse_file->filename_with_root, offset);
-
- if ((offset < 0) || ((size_t)offset >= ArrayList_Count(fuse_file->children)))
-diff --git a/libfreerdp/codec/include/bitmap.h b/libfreerdp/codec/include/bitmap.h
-index 07874dade123..f180fb5abb15 100644
---- a/libfreerdp/codec/include/bitmap.h
-+++ b/libfreerdp/codec/include/bitmap.h
-@@ -153,7 +153,8 @@ static inline BOOL RLEDECOMPRESS(const BYTE* WINPR_RESTRICT pbSrcBuffer, UINT32
- code = ExtractCodeId(*pbSrc);
-
- #if defined(WITH_DEBUG_CODECS)
-- WLog_VRB(TAG, "pbSrc=%p code=%s, rem=%" PRIuz, pbSrc, rle_code_str(code), pbEnd - pbSrc);
-+ WLog_VRB(TAG, "pbSrc=%p code=%s, rem=%ld", (const void*)pbSrc, rle_code_str(code),
-+ pbEnd - pbSrc);
- #endif
-
- /* Handle Background Run Orders. */
-diff --git a/libfreerdp/core/server.c b/libfreerdp/core/server.c
-index 9183843f9375..f5a06553eb6c 100644
---- a/libfreerdp/core/server.c
-+++ b/libfreerdp/core/server.c
-@@ -375,7 +375,7 @@ static BOOL wts_read_drdynvc_pdu_ready(rdpPeerChannel* channel, wStream* s, UINT
- return FALSE;
-
- DEBUG_DVC("Cmd %s ChannelId %" PRIu32 " length %" PRIuz "", drdynvc_get_packet_type(Cmd),
-- ChannelId, length);
-+ ChannelId, Stream_GetRemainingLength(s));
- table = channel->vcm->dynamicVirtualChannels;
- if (!table)
- return FALSE;
diff --git a/net-misc/freerdp/freerdp-3.29.0.ebuild b/net-misc/freerdp/freerdp-3.29.0.ebuild
deleted file mode 100644
index 3398e4ac12ec..000000000000
--- a/net-misc/freerdp/freerdp-3.29.0.ebuild
+++ /dev/null
@@ -1,192 +0,0 @@
-# Copyright 2011-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake flag-o-matic
-
-if [[ ${PV} == *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/FreeRDP/FreeRDP.git"
- case ${PV} in
- 2.*) EGIT_BRANCH="stable-2.0";;
- esac
-else
- inherit verify-sig
- MY_P=${P/_/-}
- S="${WORKDIR}/${MY_P}"
- SRC_URI="https://pub.freerdp.com/releases/${MY_P}.tar.gz
- verify-sig? ( https://pub.freerdp.com/releases/${MY_P}.tar.gz.asc )"
- KEYWORDS="~alpha amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86"
- BDEPEND="verify-sig? ( sec-keys/openpgp-keys-akallabeth )"
- VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/akallabeth.asc"
-fi
-
-DESCRIPTION="Free implementation of the Remote Desktop Protocol"
-HOMEPAGE="https://www.freerdp.com/"
-
-LICENSE="Apache-2.0"
-SLOT="3"
-IUSE="aad alsa camera cpu_flags_arm_neon +client cups debug +ffmpeg +fuse gstreamer +icu jpeg kerberos openh264 pulseaudio sdl server smartcard systemd test usb valgrind wayland X xinerama xv"
-RESTRICT="!test? ( test )"
-
-BDEPEND+="
- virtual/pkgconfig
- app-text/docbook-xsl-stylesheets
- dev-libs/libxslt
-"
-COMMON_DEPEND="
- dev-libs/openssl:0=
- virtual/zlib:=
- aad? ( dev-libs/cJSON )
- alsa? ( media-libs/alsa-lib )
- cups? ( net-print/cups )
- usb? (
- virtual/libudev:0=
- sys-apps/util-linux:0=
- dev-libs/dbus-glib:0=
- virtual/libusb:1=
- )
- X? (
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXi
- x11-libs/libXrender
- xinerama? ( x11-libs/libXinerama )
- xv? ( x11-libs/libXv )
- )
- ffmpeg? ( media-video/ffmpeg:0= )
- !ffmpeg? (
- x11-libs/cairo:0=
- )
- fuse? ( sys-fs/fuse:3= )
- gstreamer? (
- media-libs/gstreamer:1.0
- media-libs/gst-plugins-base:1.0
- X? ( x11-libs/libXrandr )
- )
- icu? ( dev-libs/icu:0= )
- jpeg? ( media-libs/libjpeg-turbo:0= )
- kerberos? ( virtual/krb5 )
- openh264? ( media-libs/openh264:0= )
- pulseaudio? ( media-libs/libpulse )
- server? (
- X? (
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- x11-libs/libXrandr
- x11-libs/libXtst
- xinerama? ( x11-libs/libXinerama )
- )
- )
- smartcard? ( sys-apps/pcsc-lite )
- systemd? ( sys-apps/systemd:0= )
- client? (
- camera? ( media-libs/libv4l )
- sdl? (
- media-libs/libsdl3
- media-libs/sdl3-ttf
- )
- wayland? (
- dev-libs/wayland
- x11-libs/libxkbcommon
- )
- )
- X? (
- x11-libs/libX11
- x11-libs/libxkbfile
- )
-"
-DEPEND="${COMMON_DEPEND}
- test? (
- ffmpeg? ( media-video/ffmpeg:0[x264(-)] )
- )
- valgrind? ( dev-debug/valgrind )
-"
-RDEPEND="${COMMON_DEPEND}
- !net-misc/freerdp:0
- client? ( !net-misc/freerdp:2[client] )
- server? ( !net-misc/freerdp:2[server] )
- smartcard? ( app-crypt/p11-kit )
-"
-
-option() {
- usex "$1" ON OFF
-}
-
-option_client() {
- if use client; then
- option "$1"
- else
- echo OFF
- fi
-}
-
-src_configure() {
- use debug || append-cppflags -DNDEBUG
- local mycmakeargs=(
- -Wno-dev
-
- -DBUILD_TESTING=$(option test)
-
- # https://bugs.gentoo.org/927037
- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF
-
- -DCHANNEL_URBDRC=$(option usb)
- -DCHANNEL_RDPECAM_CLIENT=$(option_client camera)
- -DWITH_AAD=$(option aad)
- -DWITH_ALSA=$(option alsa)
- -DWITH_CCACHE=OFF
- -DWITH_CLIENT=$(option client)
- -DWITH_CLIENT_SDL2=OFF
- -DWITH_CLIENT_SDL3=$(option_client sdl)
- -DWITH_SAMPLE=OFF
- -DWITH_CUPS=$(option cups)
- -DWITH_DEBUG_ALL=$(option debug)
- -DWITH_VERBOSE_WINPR_ASSERT=$(option debug)
- -DWITH_MANPAGES=ON
- -DWITH_FFMPEG=$(option ffmpeg)
- -DWITH_FREERDP_DEPRECATED_COMMANDLINE=ON
- -DWITH_SWSCALE=$(option ffmpeg)
- -DWITH_CAIRO=$(option !ffmpeg)
- -DWITH_DSP_FFMPEG=$(option ffmpeg)
- -DWITH_FUSE=$(option fuse)
- -DWITH_GSTREAMER_1_0=$(option gstreamer)
- -DWITH_JPEG=$(option jpeg)
- -DWITH_KRB5=$(option kerberos)
- -DWITH_NEON=$(option cpu_flags_arm_neon)
- -DWITH_OPENH264=$(option openh264)
- -DWITH_OSS=OFF
- -DWITH_PCSC=$(option smartcard)
- -DWITH_PKCS11=$(option smartcard)
- -DWITH_PULSE=$(option pulseaudio)
- -DWITH_SERVER=$(option server)
- -DWITH_LIBSYSTEMD=$(option systemd)
- -DWITH_UNICODE_BUILTIN=$(option !icu)
- -DWITH_VALGRIND_MEMCHECK=$(option valgrind)
- -DWITH_X11=$(option X)
- -DWITH_XINERAMA=$(option xinerama)
- -DWITH_XV=$(option xv)
- -DWITH_WAYLAND=$(option_client wayland)
- -DWITH_WEBVIEW=OFF
- -DWITH_WINPR_TOOLS=$(option server)
- )
- cmake_src_configure
-}
-
-src_test() {
- # TestBacktrace: bug 930636
- # TestSynchCritical, TestSynchMultipleThreads: bug 951301
- local CMAKE_SKIP_TESTS=( TestBacktrace TestSynchCritical TestSynchMultipleThreads )
- if has network-sandbox ${FEATURES}; then
- CMAKE_SKIP_TESTS+=( TestConnect )
- fi
- cmake_src_test
-}
-
-src_install() {
- cmake_src_install
- mv "${ED}"/usr/share/man/man7/wlog{,3}.7 || die
-}
diff --git a/net-misc/freerdp/freerdp-3.30.0.ebuild b/net-misc/freerdp/freerdp-3.30.0.ebuild
deleted file mode 100644
index e3a36bfd8578..000000000000
--- a/net-misc/freerdp/freerdp-3.30.0.ebuild
+++ /dev/null
@@ -1,192 +0,0 @@
-# Copyright 2011-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake flag-o-matic
-
-if [[ ${PV} == *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/FreeRDP/FreeRDP.git"
- case ${PV} in
- 2.*) EGIT_BRANCH="stable-2.0";;
- esac
-else
- inherit verify-sig
- MY_P=${P/_/-}
- S="${WORKDIR}/${MY_P}"
- SRC_URI="https://pub.freerdp.com/releases/${MY_P}.tar.gz
- verify-sig? ( https://pub.freerdp.com/releases/${MY_P}.tar.gz.asc )"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
- BDEPEND="verify-sig? ( sec-keys/openpgp-keys-akallabeth )"
- VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/akallabeth.asc"
-fi
-
-DESCRIPTION="Free implementation of the Remote Desktop Protocol"
-HOMEPAGE="https://www.freerdp.com/"
-
-LICENSE="Apache-2.0"
-SLOT="3"
-IUSE="aad alsa camera cpu_flags_arm_neon +client cups debug +ffmpeg +fuse gstreamer +icu jpeg kerberos openh264 pulseaudio sdl server smartcard systemd test usb valgrind wayland X xinerama xv"
-RESTRICT="!test? ( test )"
-
-BDEPEND+="
- virtual/pkgconfig
- app-text/docbook-xsl-stylesheets
- dev-libs/libxslt
-"
-COMMON_DEPEND="
- dev-libs/openssl:0=
- virtual/zlib:=
- aad? ( dev-libs/cJSON )
- alsa? ( media-libs/alsa-lib )
- cups? ( net-print/cups )
- usb? (
- virtual/libudev:0=
- sys-apps/util-linux:0=
- dev-libs/dbus-glib:0=
- virtual/libusb:1=
- )
- X? (
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXi
- x11-libs/libXrender
- xinerama? ( x11-libs/libXinerama )
- xv? ( x11-libs/libXv )
- )
- ffmpeg? ( media-video/ffmpeg:0= )
- !ffmpeg? (
- x11-libs/cairo:0=
- )
- fuse? ( sys-fs/fuse:3= )
- gstreamer? (
- media-libs/gstreamer:1.0
- media-libs/gst-plugins-base:1.0
- X? ( x11-libs/libXrandr )
- )
- icu? ( dev-libs/icu:0= )
- jpeg? ( media-libs/libjpeg-turbo:0= )
- kerberos? ( virtual/krb5 )
- openh264? ( media-libs/openh264:0= )
- pulseaudio? ( media-libs/libpulse )
- server? (
- X? (
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- x11-libs/libXrandr
- x11-libs/libXtst
- xinerama? ( x11-libs/libXinerama )
- )
- )
- smartcard? ( sys-apps/pcsc-lite )
- systemd? ( sys-apps/systemd:0= )
- client? (
- camera? ( media-libs/libv4l )
- sdl? (
- media-libs/libsdl3
- media-libs/sdl3-ttf
- )
- wayland? (
- dev-libs/wayland
- x11-libs/libxkbcommon
- )
- )
- X? (
- x11-libs/libX11
- x11-libs/libxkbfile
- )
-"
-DEPEND="${COMMON_DEPEND}
- test? (
- ffmpeg? ( media-video/ffmpeg:0[x264(-)] )
- )
- valgrind? ( dev-debug/valgrind )
-"
-RDEPEND="${COMMON_DEPEND}
- !net-misc/freerdp:0
- client? ( !net-misc/freerdp:2[client] )
- server? ( !net-misc/freerdp:2[server] )
- smartcard? ( app-crypt/p11-kit )
-"
-
-option() {
- usex "$1" ON OFF
-}
-
-option_client() {
- if use client; then
- option "$1"
- else
- echo OFF
- fi
-}
-
-src_configure() {
- use debug || append-cppflags -DNDEBUG
- local mycmakeargs=(
- -Wno-dev
-
- -DBUILD_TESTING=$(option test)
-
- # https://bugs.gentoo.org/927037
- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF
-
- -DCHANNEL_URBDRC=$(option usb)
- -DCHANNEL_RDPECAM_CLIENT=$(option_client camera)
- -DWITH_AAD=$(option aad)
- -DWITH_ALSA=$(option alsa)
- -DWITH_CCACHE=OFF
- -DWITH_CLIENT=$(option client)
- -DWITH_CLIENT_SDL2=OFF
- -DWITH_CLIENT_SDL3=$(option_client sdl)
- -DWITH_SAMPLE=OFF
- -DWITH_CUPS=$(option cups)
- -DWITH_DEBUG_ALL=$(option debug)
- -DWITH_VERBOSE_WINPR_ASSERT=$(option debug)
- -DWITH_MANPAGES=ON
- -DWITH_FFMPEG=$(option ffmpeg)
- -DWITH_FREERDP_DEPRECATED_COMMANDLINE=ON
- -DWITH_SWSCALE=$(option ffmpeg)
- -DWITH_CAIRO=$(option !ffmpeg)
- -DWITH_DSP_FFMPEG=$(option ffmpeg)
- -DWITH_FUSE=$(option fuse)
- -DWITH_GSTREAMER_1_0=$(option gstreamer)
- -DWITH_JPEG=$(option jpeg)
- -DWITH_KRB5=$(option kerberos)
- -DWITH_NEON=$(option cpu_flags_arm_neon)
- -DWITH_OPENH264=$(option openh264)
- -DWITH_OSS=OFF
- -DWITH_PCSC=$(option smartcard)
- -DWITH_PKCS11=$(option smartcard)
- -DWITH_PULSE=$(option pulseaudio)
- -DWITH_SERVER=$(option server)
- -DWITH_LIBSYSTEMD=$(option systemd)
- -DWITH_UNICODE_BUILTIN=$(option !icu)
- -DWITH_VALGRIND_MEMCHECK=$(option valgrind)
- -DWITH_X11=$(option X)
- -DWITH_XINERAMA=$(option xinerama)
- -DWITH_XV=$(option xv)
- -DWITH_WAYLAND=$(option_client wayland)
- -DWITH_WEBVIEW=OFF
- -DWITH_WINPR_TOOLS=$(option server)
- )
- cmake_src_configure
-}
-
-src_test() {
- # TestBacktrace: bug 930636
- # TestSynchCritical, TestSynchMultipleThreads: bug 951301
- local CMAKE_SKIP_TESTS=( TestBacktrace TestSynchCritical TestSynchMultipleThreads )
- if has network-sandbox ${FEATURES}; then
- CMAKE_SKIP_TESTS+=( TestConnect )
- fi
- cmake_src_test
-}
-
-src_install() {
- cmake_src_install
- mv "${ED}"/usr/share/man/man7/wlog{,3}.7 || die
-}
diff --git a/net-misc/freerdp/freerdp-3.31.0-r1.ebuild b/net-misc/freerdp/freerdp-3.31.0-r1.ebuild
deleted file mode 100644
index 7c228858a6e0..000000000000
--- a/net-misc/freerdp/freerdp-3.31.0-r1.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# Copyright 2011-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake flag-o-matic
-
-if [[ ${PV} == *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/FreeRDP/FreeRDP.git"
- case ${PV} in
- 2.*) EGIT_BRANCH="stable-2.0";;
- esac
-else
- inherit verify-sig
- MY_P=${P/_/-}
- S="${WORKDIR}/${MY_P}"
- SRC_URI="https://pub.freerdp.com/releases/${MY_P}.tar.gz
- verify-sig? ( https://pub.freerdp.com/releases/${MY_P}.tar.gz.asc )"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
- BDEPEND="verify-sig? ( sec-keys/openpgp-keys-akallabeth )"
- VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/akallabeth.asc"
-fi
-
-DESCRIPTION="Free implementation of the Remote Desktop Protocol"
-HOMEPAGE="https://www.freerdp.com/"
-
-LICENSE="Apache-2.0"
-SLOT="3"
-IUSE="aad alsa camera cpu_flags_arm_neon +client cups debug +ffmpeg +fuse gstreamer +icu jpeg kerberos openh264 pulseaudio sdl server smartcard systemd test usb valgrind wayland X xinerama xv"
-RESTRICT="!test? ( test )"
-
-BDEPEND+="
- virtual/pkgconfig
- app-text/docbook-xsl-stylesheets
- dev-libs/libxslt
-"
-COMMON_DEPEND="
- dev-libs/openssl:0=
- virtual/zlib:=
- aad? ( dev-libs/cJSON )
- alsa? ( media-libs/alsa-lib )
- cups? ( net-print/cups )
- usb? (
- virtual/libudev:0=
- sys-apps/util-linux:0=
- dev-libs/dbus-glib:0=
- virtual/libusb:1=
- )
- X? (
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXi
- x11-libs/libXrender
- xinerama? ( x11-libs/libXinerama )
- xv? ( x11-libs/libXv )
- )
- ffmpeg? ( media-video/ffmpeg:0= )
- !ffmpeg? (
- x11-libs/cairo:0=
- )
- fuse? ( sys-fs/fuse:3= )
- gstreamer? (
- media-libs/gstreamer:1.0
- media-libs/gst-plugins-base:1.0
- X? ( x11-libs/libXrandr )
- )
- icu? ( dev-libs/icu:0= )
- jpeg? ( media-libs/libjpeg-turbo:0= )
- kerberos? ( virtual/krb5 )
- openh264? ( media-libs/openh264:0= )
- pulseaudio? ( media-libs/libpulse )
- server? (
- X? (
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- x11-libs/libXrandr
- x11-libs/libXtst
- xinerama? ( x11-libs/libXinerama )
- )
- )
- smartcard? ( sys-apps/pcsc-lite )
- systemd? ( sys-apps/systemd:0= )
- client? (
- camera? ( media-libs/libv4l )
- sdl? (
- media-libs/libsdl3
- media-libs/sdl3-ttf
- )
- wayland? (
- dev-libs/wayland
- x11-libs/libxkbcommon
- )
- )
- X? (
- x11-libs/libX11
- x11-libs/libxkbfile
- )
-"
-DEPEND="${COMMON_DEPEND}
- test? (
- ffmpeg? ( media-video/ffmpeg:0[x264(-)] )
- )
- valgrind? ( dev-debug/valgrind )
-"
-RDEPEND="${COMMON_DEPEND}
- !net-misc/freerdp:0
- client? ( !net-misc/freerdp:2[client] )
- server? ( !net-misc/freerdp:2[server] )
- smartcard? ( app-crypt/p11-kit )
-"
-
-PATCHES=(
- "${FILESDIR}/freerdp-3.31.0-debug.patch"
-)
-
-option() {
- usex "$1" ON OFF
-}
-
-option_client() {
- if use client; then
- option "$1"
- else
- echo OFF
- fi
-}
-
-src_configure() {
- use debug || append-cppflags -DNDEBUG
- local mycmakeargs=(
- -Wno-dev
-
- -DBUILD_TESTING=$(option test)
-
- # https://bugs.gentoo.org/927037
- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF
-
- -DCHANNEL_URBDRC=$(option usb)
- -DCHANNEL_RDPECAM_CLIENT=$(option_client camera)
- -DWITH_AAD=$(option aad)
- -DWITH_ALSA=$(option alsa)
- -DWITH_CCACHE=OFF
- -DWITH_CLIENT=$(option client)
- -DWITH_CLIENT_SDL2=OFF
- -DWITH_CLIENT_SDL3=$(option_client sdl)
- -DWITH_SAMPLE=OFF
- -DWITH_CUPS=$(option cups)
- -DWITH_DEBUG_ALL=$(option debug)
- -DWITH_VERBOSE_WINPR_ASSERT=$(option debug)
- -DWITH_MANPAGES=ON
- -DWITH_FFMPEG=$(option ffmpeg)
- -DWITH_FREERDP_DEPRECATED_COMMANDLINE=ON
- -DWITH_SWSCALE=$(option ffmpeg)
- -DWITH_CAIRO=$(option !ffmpeg)
- -DWITH_DSP_FFMPEG=$(option ffmpeg)
- -DWITH_FUSE=$(option fuse)
- -DWITH_GSTREAMER_1_0=$(option gstreamer)
- -DWITH_JPEG=$(option jpeg)
- -DWITH_KRB5=$(option kerberos)
- -DWITH_NEON=$(option cpu_flags_arm_neon)
- -DWITH_OPENH264=$(option openh264)
- -DWITH_OSS=OFF
- -DWITH_PCSC=$(option smartcard)
- -DWITH_PKCS11=$(option smartcard)
- -DWITH_PULSE=$(option pulseaudio)
- -DWITH_SERVER=$(option server)
- -DWITH_LIBSYSTEMD=$(option systemd)
- -DWITH_UNICODE_BUILTIN=$(option !icu)
- -DWITH_VALGRIND_MEMCHECK=$(option valgrind)
- -DWITH_X11=$(option X)
- -DWITH_XINERAMA=$(option xinerama)
- -DWITH_XV=$(option xv)
- -DWITH_WAYLAND=$(option_client wayland)
- -DWITH_WEBVIEW=OFF
- # https://bugs.gentoo.org/981523
- #-DWITH_WINPR_TOOLS=$(option server)
- )
- cmake_src_configure
-}
-
-src_test() {
- # TestBacktrace: bug 930636
- # TestSynchCritical, TestSynchMultipleThreads: bug 951301
- local CMAKE_SKIP_TESTS=( TestBacktrace TestSynchCritical TestSynchMultipleThreads )
- if has network-sandbox ${FEATURES}; then
- CMAKE_SKIP_TESTS+=( TestConnect )
- fi
- cmake_src_test
-}
-
-src_install() {
- cmake_src_install
- mv "${ED}"/usr/share/man/man7/wlog{,3}.7 || die
-}
diff --git a/net-misc/freerdp/freerdp-3.31.1.ebuild b/net-misc/freerdp/freerdp-3.31.1.ebuild
index ff26f7257c8b..00793ccacb25 100644
--- a/net-misc/freerdp/freerdp-3.31.1.ebuild
+++ b/net-misc/freerdp/freerdp-3.31.1.ebuild
@@ -17,7 +17,7 @@ else
S="${WORKDIR}/${MY_P}"
SRC_URI="https://pub.freerdp.com/releases/${MY_P}.tar.gz
verify-sig? ( https://pub.freerdp.com/releases/${MY_P}.tar.gz.asc )"
- KEYWORDS="~alpha ~amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~x86"
+ KEYWORDS="~alpha amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-akallabeth )"
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/akallabeth.asc"
fi
diff --git a/net-misc/gallery-dl/Manifest b/net-misc/gallery-dl/Manifest
index f59cecc80066..c4b429382b15 100644
--- a/net-misc/gallery-dl/Manifest
+++ b/net-misc/gallery-dl/Manifest
@@ -1,4 +1,4 @@
-DIST gallery-dl-1.32.10.gh.tar.gz 1145881 BLAKE2B 1fcd613e5b7f42c2d6ab620a86a442074152c9d2b229d986debf1b8745512f888d166781e723d411fdeddb92c91e2fc68294146a8b1e1b530005934afae92d89 SHA512 8c09c43eb51280a26e43e9c497e760a3c44fbb39c5fe2b5f93277aee7800b48e96c7caf9e8aa0f6e928cf83decfc18cae0b7fcd86f8bde2047ebeef6194afb1b
+DIST gallery-dl-1.32.10.codeberg.tar.gz 1271009 BLAKE2B 340375456255e7495827cf620f64da8405c366df6b35461a057697d3d0bc09e95c4785d10d6b666a92be99bfa2da94891a0367c9919b31d2e490cc57fbc4329e SHA512 ef83fb0538331dd4bc5cc612078db17a2179c83de6a4081f20ff3c612195a5df97b38ef4e50c1d55b30634d2b9863495f926ce076f15c1d43ac631311266551c
DIST gallery-dl-1.32.6.gh.tar.gz 1144576 BLAKE2B 4056a43b7caf99812faee983417ebe8257a83e997f4f25e7a2542ebf2d9d239ad2dadd489f301337ccf428cef0ee0ca1c2ee4ba57dbcb156ef0fe10d5be75810 SHA512 1eee3701083bc487527433c8b367963cd43ab583fc7d8839b0470c1bffbc7ed13defb823e3c1906105b49500587ccdf42af87a5790dcd6475a0e3e925becab26
DIST gallery-dl-1.32.8.gh.tar.gz 1144378 BLAKE2B 619c745592448d90ad8b62c88bc9fc216f0b34f114c7d22761338a61605d1244617fc6a65db0f3bdfba52aac5e1512b6a73e9b18fde3a88eb8b40806124b8974 SHA512 8dcf9df4b364decf9daa5f3e48c157c534ee467a4f17398a905adf6b3fb9e4cc2832851063fe31657f09f8abd0e9971e5c4149f690fd5172127c162e4dcc1068
DIST gallery-dl-1.32.9.gh.tar.gz 1144928 BLAKE2B 6c0776849259d48a2c4822d4aeb330c3e58e6b3efca5d0439d7ecef4b06ed62be8b5a03115b0640f8bb589ebf463281cd5ee8ab3aafe780e3a64e9a782e7f519 SHA512 9bfcd4a68af20e882260cd7a821877a8d64a711df246e968d541993020e791fc877520eae4c520ada50821c25538e68024e4505fe9ac0f4cbd947bb1981606c9
diff --git a/net-misc/gallery-dl/gallery-dl-1.32.10.ebuild b/net-misc/gallery-dl/gallery-dl-1.32.10-r1.ebuild
index b3ff03178a27..a4b1349cec6a 100644
--- a/net-misc/gallery-dl/gallery-dl-1.32.10.ebuild
+++ b/net-misc/gallery-dl/gallery-dl-1.32.10-r1.ebuild
@@ -10,14 +10,16 @@ DISTUTILS_USE_PEP517="setuptools"
inherit distutils-r1 optfeature
DESCRIPTION="Download image galleries and collections from several image hosting sites"
-HOMEPAGE="https://github.com/mikf/gallery-dl/"
+HOMEPAGE="https://codeberg.org/mikf/gallery-dl/
+ https://github.com/mikf/gallery-dl/"
if [[ "${PV}" == *9999* ]]; then
inherit git-r3
- EGIT_REPO_URI="https://github.com/mikf/${PN}"
+ EGIT_REPO_URI="https://codeberg.org/mikf/${PN}"
else
- SRC_URI="https://github.com/mikf/${PN}/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz"
+ SRC_URI="https://codeberg.org/mikf/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.codeberg.tar.gz"
+ S="${WORKDIR}/${PN}"
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
fi
diff --git a/net-misc/gallery-dl/gallery-dl-9999.ebuild b/net-misc/gallery-dl/gallery-dl-9999.ebuild
index b3ff03178a27..a4b1349cec6a 100644
--- a/net-misc/gallery-dl/gallery-dl-9999.ebuild
+++ b/net-misc/gallery-dl/gallery-dl-9999.ebuild
@@ -10,14 +10,16 @@ DISTUTILS_USE_PEP517="setuptools"
inherit distutils-r1 optfeature
DESCRIPTION="Download image galleries and collections from several image hosting sites"
-HOMEPAGE="https://github.com/mikf/gallery-dl/"
+HOMEPAGE="https://codeberg.org/mikf/gallery-dl/
+ https://github.com/mikf/gallery-dl/"
if [[ "${PV}" == *9999* ]]; then
inherit git-r3
- EGIT_REPO_URI="https://github.com/mikf/${PN}"
+ EGIT_REPO_URI="https://codeberg.org/mikf/${PN}"
else
- SRC_URI="https://github.com/mikf/${PN}/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz"
+ SRC_URI="https://codeberg.org/mikf/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.codeberg.tar.gz"
+ S="${WORKDIR}/${PN}"
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
fi
diff --git a/net-misc/gallery-dl/metadata.xml b/net-misc/gallery-dl/metadata.xml
index 53ec7d516144..a376b93d1700 100644
--- a/net-misc/gallery-dl/metadata.xml
+++ b/net-misc/gallery-dl/metadata.xml
@@ -6,7 +6,7 @@
<name>Maciej Barć</name>
</maintainer>
<upstream>
- <bugs-to>https://github.com/mikf/gallery-dl/issues/</bugs-to>
+ <bugs-to>https://codeberg.org/mikf/gallery-dl/issues/</bugs-to>
</upstream>
<stabilize-allarches />
<longdescription>
diff --git a/net-misc/kea/files/kea-confd-r4 b/net-misc/kea/files/kea-confd-r4
new file mode 100644
index 000000000000..a39610acadc7
--- /dev/null
+++ b/net-misc/kea/files/kea-confd-r4
@@ -0,0 +1,7 @@
+# KEA_SVC must be defined here!
+# Available values: dhcp4 dhcp6 dhcp-ddns
+KEA_SVC="@KEA_SVC@"
+
+#KEA_USER=dhcp
+#KEA_GROUP=dhcp
+#KEA_CONFIG=/etc/kea/kea-@KEA_SVC@.conf
diff --git a/net-misc/kea/files/kea-initd-r5 b/net-misc/kea/files/kea-initd-r5
new file mode 100644
index 000000000000..0208b21d4678
--- /dev/null
+++ b/net-misc/kea/files/kea-initd-r5
@@ -0,0 +1,78 @@
+#!/sbin/openrc-run
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${KEA_USER:=dhcp}
+: ${KEA_GROUP:=dhcp}
+: ${KEA_CONFIG:=/etc/kea/${RC_SVCNAME}.conf}
+
+description="kea ${KEA_SVC} services"
+command="/usr/sbin/kea-${KEA_SVC}"
+command_args="-c ${KEA_CONFIG}"
+command_user="${KEA_USER}:${KEA_GROUP}"
+pidfile="/run/kea/$(basename ${KEA_CONFIG%.*}).kea-${KEA_SVC}.pid"
+required_files="${KEA_CONFIG}"
+start_stop_daemon_args="--background"
+
+extra_commands="check_kea_svc checkconfig"
+extra_started_commands="reload"
+
+check_kea_svc() {
+ if [ "${RC_SVCNAME}" = "kea" ]; then
+ eerror "You are not supposed to run this script directly."
+ eerror "Create a symlink for the kea service you want to run."
+ eerror "Symlinks should have been created during installation."
+ return 1
+ fi
+
+ case "${KEA_SVC}" in
+ dhcp4)
+ capabilities="^cap_net_bind_service,^cap_net_raw"
+ ;;
+ dhcp6|dhcp-ddns)
+ capabilities="^cap_net_bind_service"
+ ;;
+ *)
+ eerror "KEA_SVC is undefined or invalid!"
+ eerror "It should be defined in /etc/conf.d/${RC_SVCNAME}"
+ return 1
+ ;;
+ esac
+}
+
+checkconfig() {
+ ${command} -t ${KEA_CONFIG} 1>/dev/null || return 1
+}
+
+reload() {
+ checkconfig || return 1
+ ebegin "Reloading ${RC_SVCNAME}"
+ start-stop-daemon --signal HUP --pidfile ${pidfile}
+ eend $?
+}
+
+start_pre() {
+ check_kea_svc || return 1
+
+ if [ $(stat -c "%U:%G" ${KEA_CONFIG}) != "root:${KEA_GROUP}" ] ; then
+ eerror "${KEA_CONFIG} config file is not owned by root:${KEA_GROUP}"
+ eerror "you should reset the ownership:"
+ eerror "chown root:${KEA_GROUP} ${KEA_CONFIG}"
+ return 1
+ fi
+
+ if [ "${RC_CMD}" != "restart" ]; then
+ checkconfig || return 1
+ fi
+}
+
+start_post() {
+ # Kea creates the pidfile only after it has started successfully.
+ ewaitfile "${STARTUP_TIMEOUT:-1}" "${pidfile}"
+}
+
+stop_pre() {
+ if [ "${RC_CMD}" = "restart" ]; then
+ checkconfig || return 1
+ fi
+}
diff --git a/net-misc/kea/kea-3.2.0-r1.ebuild b/net-misc/kea/kea-3.2.0-r1.ebuild
new file mode 100644
index 000000000000..ad055115322a
--- /dev/null
+++ b/net-misc/kea/kea-3.2.0-r1.ebuild
@@ -0,0 +1,335 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/isc.asc
+inherit eapi9-ver flag-o-matic meson python-r1 systemd tmpfiles
+inherit toolchain-funcs verify-sig
+
+DESCRIPTION="High-performance production grade DHCPv4 & DHCPv6 server"
+HOMEPAGE="https://www.isc.org/kea/"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.isc.org/isc-projects/kea.git"
+else
+ SRC_URI="
+ https://downloads.isc.org/isc/kea/${PV}/${P}.tar.xz
+ !doc? ( https://codeberg.org/peter1010/kea-manpages/archive/kea-manpages-${PV}.tar.gz )
+ verify-sig? ( https://downloads.isc.org/isc/kea/${PV}/${P}.tar.xz.asc )
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+fi
+
+LICENSE="MPL-2.0"
+SLOT="0"
+IUSE="debug doc kerberos mysql +openssl postgres selinux shell test"
+
+REQUIRED_USE="shell? ( ${PYTHON_REQUIRED_USE} )"
+RESTRICT="!test? ( test )"
+
+COMMON_DEPEND="
+ >=dev-libs/boost-1.66:=
+ dev-libs/log4cplus:=
+ kerberos? ( virtual/krb5 )
+ mysql? (
+ app-arch/zstd:=
+ dev-db/mysql-connector-c:=
+ dev-libs/openssl:=
+ virtual/zlib:=
+ )
+ !openssl? ( dev-libs/botan:3=[boost] )
+ openssl? ( dev-libs/openssl:0= )
+ postgres? ( dev-db/postgresql:* )
+ shell? ( ${PYTHON_DEPS} )
+"
+DEPEND="${COMMON_DEPEND}
+ test? ( dev-cpp/gtest )
+"
+RDEPEND="${COMMON_DEPEND}
+ acct-group/dhcp
+ acct-user/dhcp
+ selinux? ( sec-policy/selinux-dhcp )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=dev-build/meson-1.8
+ virtual/pkgconfig
+ doc? (
+ $(python_gen_any_dep '
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ ')
+ )
+ verify-sig? ( sec-keys/openpgp-keys-isc )
+"
+
+python_check_deps() {
+ use doc || return 0
+ python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" \
+ "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && python_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]]; then
+ git-r3_src_unpack
+ return
+ fi
+
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.asc}
+ fi
+
+ default
+}
+
+src_prepare() {
+ default
+
+ # Fix up all doc paths, whether or not we are installing full set of docs
+ sed -e "s:'doc/kea':'doc/${PF}':" \
+ -i meson.build || die
+ sed -e "s:'share/doc/kea':'share/doc/${PF}':" \
+ -i doc/meson.build || die
+ sed -e "s:'doc/kea':'doc/${PF}':" \
+ -i doc/sphinx/meson.build || die
+ sed -e "s:share/doc/kea/:share/doc/${PF}/:" \
+ -i doc/sphinx/arm/install.rst || die
+ sed -e "s:share/doc/kea/examples:share/doc/${PF}/examples:" \
+ -i doc/sphinx/arm/config.rst || die
+
+ # set shebang before meson whether or not we are installing the shell
+ sed -e 's:^#!@PYTHON@:#!/usr/bin/env python3:' \
+ -i src/bin/shell/kea-shell.in || die
+
+ # Don't allow meson to install shell, we shall do that if required
+ sed -e 's:install\: true:install\: false:' \
+ -i src/bin/shell/meson.build || die
+
+ # do not create /run
+ sed -e '/^install_emptydir(RUNSTATEDIR/d' \
+ -i meson.build || die
+}
+
+src_configure() {
+ # https://bugs.gentoo.org/861617
+ # https://gitlab.isc.org/isc-projects/kea/-/issues/3946
+ #
+ # Upstream does not support LTO
+ filter-lto
+
+ if use !openssl; then
+ append-cxxflags -std=c++20
+ fi
+
+ # Note: https://gitlab.isc.org/isc-projects/kea/-/issues/4171 suggests patching meson.build to set umask,
+ # instead here we pass install-umask as an argument to do the same thing, i.e. control permissions on
+ # installed files.
+ local emesonargs=(
+ --localstatedir="${EPREFIX}/var"
+ -Drunstatedir="${EPREFIX}/run"
+ $(meson_feature kerberos krb5)
+ -Dnetconf=disabled
+ -Dcrypto=$(usex openssl openssl botan)
+ $(meson_feature mysql)
+ $(meson_feature postgres postgresql)
+ $(meson_feature test tests)
+ --install-umask=0o023
+ )
+ if use debug; then
+ emesonargs+=(
+ --debug
+ )
+ fi
+ meson_src_configure
+}
+
+src_compile() {
+ meson_src_compile
+
+ use doc && meson_src_compile doc
+}
+
+src_test() {
+ # Get list of all test suites into an associative array
+ # the meson test --list returns either "kea / test_suite", "kea:shell-tests / test_suite" or
+ # "kea:python-tests / test_suite"
+ # Note: In meson >= 1.10 the format has changed to
+ # the meson test --list returns either "kea:test_suite", "shell-tests - kea:test_suite" or
+ # "python-tests - kea:test_suite"
+ #
+ # Discard the shell tests as we can't run shell tests in sandbox
+
+ pushd "${BUILD_DIR}" || die
+
+ local -A test_suites
+ local -a words
+ while IFS="/: " read -ra words ; do
+ if [[ "${words[0]}" != "shell-tests" ]] && [[ "${words[2]}" != "shell-tests" ]]; then
+ test_suites["${words[-1]}"]=1
+ fi
+ done < <(meson test --list || die)
+ popd || die
+
+ # Some other tests will fail for interface access restrictions, we have to remove the test suites those tests
+ # belong to
+ local -a skip_tests=(
+ dhcp-radius-tests
+ kea-log-buffer_logger_test.sh
+ kea-log-console_test.sh
+ dhcp-lease-query-tests
+ kea-dhcp6-tests
+ kea-dhcp4-tests
+ kea-dhcp-tests
+ )
+
+ # skip shell tests that require a running instance of MySQL
+ if use mysql; then
+ skip_tests+=(
+ kea-mysql-tests
+ dhcp-mysql-lib-tests
+ dhcp-forensic-log-libload-tests
+ )
+ fi
+
+ # skip shell tests that require a running instance of PgSQL
+ if use postgres; then
+ skip_tests+=(
+ kea-pgsql-tests
+ dhcp-pgsql-lib-tests
+ dhcp-forensic-log-libload-tests
+ )
+ fi
+
+ if use kerberos; then
+ skip_tests+=(
+ ddns-gss-tsig-tests
+ )
+ fi
+
+ if [[ $(tc-get-ptr-size) -eq 4 ]]; then
+ # see https://bugs.gentoo.org/958171 for reason for skipping these tests
+ skip_tests+=(
+ kea-util-tests
+ kea-dhcpsrv-tests
+ dhcp-ha-lib-tests
+ kea-d2-tests
+ )
+ fi
+
+ local name
+ for name in ${skip_tests[@]}; do
+ unset -v 'test_suites[${name}]'
+ done
+
+ meson_src_test "${!test_suites[@]}"
+}
+
+install_shell() {
+ local orig_build_dir=$1
+ python_domodule "${orig_build_dir}"/src/bin/shell/*.py
+ python_doscript "${orig_build_dir}"/src/bin/shell/kea-shell
+
+ # fix path to import kea modules
+ sed -e "/^sys.path.append/s|(.*)|('$(python_get_sitedir)/${PN}')|" \
+ -i "${ED}"/usr/lib/python-exec/${EPYTHON}/kea-shell || die
+}
+
+src_install() {
+ meson_install
+
+ # Remove unused database files
+ if use !mysql; then
+ rm -r "${ED}"/usr/share/kea/scripts/mysql || die
+ fi
+ if use !postgres; then
+ rm -r "${ED}"/usr/share/kea/scripts/pgsql || die
+ fi
+
+ # No easy way to control how meson_install sets permissions in meson < 1.9
+ # So make sure permissions are same as in previous versions of kea
+ # To avoid any differences between an update vers first time install
+ fperms -R 0755 /usr/sbin
+ fperms -R 0755 /usr/bin
+ fperms -R 0755 /usr/$(get_libdir)
+
+ if use shell; then
+ python_moduleinto ${PN}
+ python_foreach_impl install_shell "${BUILD_DIR}"
+ fi
+
+ # We don't use keactrl.conf so move to reduce confusion
+ mv "${ED}"/etc/${PN}/keactrl.conf "${ED}"/usr/share/doc/${PF}/examples/keactrl.conf || die
+
+ fowners -R root:dhcp /etc/${PN}
+
+ # A side effect of using install_umask 023 in meson setup is setting config files to be world readable
+ # lets not do that
+ fperms -R 0750 /etc/${PN}
+ chmod 0640 "${ED}"/etc/${PN}/*.conf || die
+
+ # Install a conf per service and a linked init script per service
+ newinitd "${FILESDIR}"/${PN}-initd-r5 ${PN}
+ local svc
+ for svc in dhcp4 dhcp6 dhcp-ddns; do
+ newconfd "${FILESDIR}"/${PN}-confd-r4 kea-${svc}
+ sed -e "s:@KEA_SVC@:${svc}:g" \
+ -i "${ED}"/etc/conf.d/kea-${svc} || die
+ dosym kea "${EPREFIX}"/etc/init.d/kea-${svc}
+ done
+
+ if use !doc; then
+ doman "${WORKDIR}"/kea-manpages/man/*
+ fi
+
+ systemd_newunit "${FILESDIR}"/${PN}-dhcp-ddns.service-r2 ${PN}-dhcp-ddns.service
+ systemd_newunit "${FILESDIR}"/${PN}-dhcp4.service-r2 ${PN}-dhcp4.service
+ systemd_newunit "${FILESDIR}"/${PN}-dhcp6.service-r2 ${PN}-dhcp6.service
+
+ newtmpfiles "${FILESDIR}"/${PN}.tmpfiles.conf ${PN}.conf
+
+ keepdir /var/lib/${PN} /var/log/${PN}
+ fowners -R dhcp:dhcp /var/lib/${PN} /var/log/${PN}
+ fperms 750 /var/lib/${PN} /var/log/${PN}
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}.conf
+
+ if ver_replacing -lt 2.6; then
+ ewarn "Several changes have been made for daemons:"
+ ewarn " To comply with common practices for this package,"
+ ewarn " config paths by default has been changed as below:"
+ ewarn " /etc/kea/kea-dhcp4.conf"
+ ewarn " /etc/kea/kea-dhcp6.conf"
+ ewarn " /etc/kea/kea-dhcp-ddns.conf"
+ ewarn
+ ewarn " Daemons are launched by default with the unprivileged user 'dhcp'"
+ ewarn
+ ewarn "Please check your configuration!"
+ fi
+
+ if ver_replacing -lt 3.0; then
+ ewarn "Make sure that ${EPREFIX}/var/lib/kea and all the files in it are owned by dhcp:"
+ ewarn "chown -R dhcp:dhcp ${EPREFIX}/var/lib/kea"
+ ewarn
+ ewarn "If using openrc;"
+ ewarn " There are now separate conf.d scripts and associated init.d per daemon!"
+ ewarn " Each Daemon needs to be launched separately, i.e. the daemons are"
+ ewarn " kea-dhcp4"
+ ewarn " kea-dhcp6"
+ ewarn " kea-dhcp-ddns"
+ ewarn "Please adjust your service startups appropriately"
+ fi
+
+ if ! has_version net-misc/kea; then
+ elog "See examples of config files in:"
+ elog " ${EROOT}/usr/share/doc/${PF}/examples"
+ fi
+}
diff --git a/net-misc/kea/kea-9999.ebuild b/net-misc/kea/kea-9999.ebuild
index 4b59b16e4ec3..7e7acad9111b 100644
--- a/net-misc/kea/kea-9999.ebuild
+++ b/net-misc/kea/kea-9999.ebuild
@@ -5,7 +5,7 @@ EAPI=8
PYTHON_COMPAT=( python3_{13..14} )
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/isc.asc
-inherit eapi9-ver flag-o-matic meson python-r1 systemd tmpfiles
+inherit flag-o-matic meson python-r1 systemd tmpfiles
inherit toolchain-funcs verify-sig
DESCRIPTION="High-performance production grade DHCPv4 & DHCPv6 server"
@@ -66,7 +66,7 @@ BDEPEND="
"
python_check_deps() {
- use doc || return 0;
+ use doc || return 0
python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" \
"dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]"
}
@@ -76,7 +76,7 @@ pkg_setup() {
}
src_unpack() {
- if [[ ${PV} == 9999 ]] ; then
+ if [[ ${PV} == 9999 ]]; then
git-r3_src_unpack
return
fi
@@ -112,7 +112,7 @@ src_prepare() {
-i src/bin/shell/meson.build || die
# do not create /run
- sed -e '/^install_emptydir(RUNSTATEDIR)$/d' \
+ sed -e '/^install_emptydir(RUNSTATEDIR/d' \
-i meson.build || die
}
@@ -120,7 +120,7 @@ src_configure() {
# https://bugs.gentoo.org/861617
# https://gitlab.isc.org/isc-projects/kea/-/issues/3946
#
- # Kea Devs say no to LTO
+ # Upstream does not support LTO
filter-lto
if use !openssl; then
@@ -152,8 +152,6 @@ src_configure() {
src_compile() {
meson_src_compile
- # Note: If you want man pages doc use has to be set. This may change
- # in the future and be like 2.6.3 where man pages were part of the release tarball
use doc && meson_src_compile doc
}
@@ -168,18 +166,19 @@ src_test() {
# Discard the shell tests as we can't run shell tests in sandbox
pushd "${BUILD_DIR}" || die
- local -A TEST_SUITES
- while IFS="/: " read -a words ; do
+ local -A test_suites
+ local -a words
+ while IFS="/: " read -ra words ; do
if [[ "${words[0]}" != "shell-tests" ]] && [[ "${words[2]}" != "shell-tests" ]]; then
- TEST_SUITES["${words[-1]}"]=1
+ test_suites["${words[-1]}"]=1
fi
done < <(meson test --list || die)
- popd
+ popd || die
# Some other tests will fail for interface access restrictions, we have to remove the test suites those tests
# belong to
- local SKIP_TESTS=(
+ local -a skip_tests=(
dhcp-radius-tests
kea-log-buffer_logger_test.sh
kea-log-console_test.sh
@@ -191,31 +190,31 @@ src_test() {
# skip shell tests that require a running instance of MySQL
if use mysql; then
- SKIP_TESTS+=(
+ skip_tests+=(
kea-mysql-tests
dhcp-mysql-lib-tests
- dhcp-forensic-log-libloadtests
+ dhcp-forensic-log-libload-tests
)
fi
# skip shell tests that require a running instance of PgSQL
if use postgres; then
- SKIP_TESTS+=(
+ skip_tests+=(
kea-pgsql-tests
dhcp-pgsql-lib-tests
- dhcp-forensic-log-libloadtests
+ dhcp-forensic-log-libload-tests
)
fi
if use kerberos; then
- SKIP_TESTS+=(
+ skip_tests+=(
ddns-gss-tsig-tests
)
fi
if [[ $(tc-get-ptr-size) -eq 4 ]]; then
# see https://bugs.gentoo.org/958171 for reason for skipping these tests
- SKIP_TESTS+=(
+ skip_tests+=(
kea-util-tests
kea-dhcpsrv-tests
dhcp-ha-lib-tests
@@ -223,16 +222,18 @@ src_test() {
)
fi
- for SKIP in ${SKIP_TESTS[@]}; do
- unset TEST_SUITES["${SKIP}"]
+ local name
+ for name in ${skip_tests[@]}; do
+ unset -v 'test_suites[${name}]'
done
- meson_src_test ${!TEST_SUITES[@]}
+ meson_src_test "${!test_suites[@]}"
}
install_shell() {
- python_domodule ${ORIG_BUILD_DIR}/src/bin/shell/*.py
- python_doscript ${ORIG_BUILD_DIR}/src/bin/shell/kea-shell
+ local orig_build_dir=$1
+ python_domodule "${orig_build_dir}"/src/bin/shell/*.py
+ python_doscript "${orig_build_dir}"/src/bin/shell/kea-shell
# fix path to import kea modules
sed -e "/^sys.path.append/s|(.*)|('$(python_get_sitedir)/${PN}')|" \
@@ -242,7 +243,7 @@ install_shell() {
src_install() {
meson_install
- # Tidy up
+ # Remove build metadata and unused database files
rm -r "${ED}"/usr/share/kea/meson-info || die
if use !mysql; then
rm -r "${ED}"/usr/share/kea/scripts/mysql || die
@@ -260,7 +261,7 @@ src_install() {
if use shell; then
python_moduleinto ${PN}
- ORIG_BUILD_DIR=${BUILD_DIR} python_foreach_impl install_shell
+ python_foreach_impl install_shell "${BUILD_DIR}"
fi
# We don't use keactrl.conf so move to reduce confusion
@@ -274,16 +275,16 @@ src_install() {
chmod 0640 "${ED}"/etc/${PN}/*.conf || die
# Install a conf per service and a linked init script per service
- newinitd "${FILESDIR}"/${PN}-initd-r4 ${PN}
+ newinitd "${FILESDIR}"/${PN}-initd-r5 ${PN}
+
local svc
- for svc in dhcp4 dhcp6 dhcp-ddns ctrl-agent; do
- newconfd "${FILESDIR}"/${PN}-confd-r3 kea-${svc}
+ for svc in dhcp4 dhcp6 dhcp-ddns; do
+ newconfd "${FILESDIR}"/${PN}-confd-r4 kea-${svc}
sed -e "s:@KEA_SVC@:${svc}:g" \
-i "${ED}"/etc/conf.d/kea-${svc} || die
dosym kea "${EPREFIX}"/etc/init.d/kea-${svc}
done
- systemd_newunit "${FILESDIR}"/${PN}-ctrl-agent.service-r2 ${PN}-ctrl-agent.service
systemd_newunit "${FILESDIR}"/${PN}-dhcp-ddns.service-r2 ${PN}-dhcp-ddns.service
systemd_newunit "${FILESDIR}"/${PN}-dhcp4.service-r2 ${PN}-dhcp4.service
systemd_newunit "${FILESDIR}"/${PN}-dhcp6.service-r2 ${PN}-dhcp6.service
@@ -298,34 +299,6 @@ src_install() {
pkg_postinst() {
tmpfiles_process ${PN}.conf
- if ver_replacing -lt 2.6; then
- ewarn "Several changes have been made for daemons:"
- ewarn " To comply with common practices for this package,"
- ewarn " config paths by default has been changed as below:"
- ewarn " /etc/kea/kea-dhcp4.conf"
- ewarn " /etc/kea/kea-dhcp6.conf"
- ewarn " /etc/kea/kea-dhcp-ddns.conf"
- ewarn " /etc/kea/kea-ctrl-agent.conf"
- ewarn
- ewarn " Daemons are launched by default with the unprivileged user 'dhcp'"
- ewarn
- ewarn "Please check your configuration!"
- fi
-
- if ver_replacing -lt 3.0; then
- ewarn "Make sure that ${EPREFIX}/var/lib/kea and all the files in it are owned by dhcp:"
- ewarn "chown -R dhcp:dhcp ${EPREFIX}/var/lib/kea"
- ewarn
- ewarn "If using openrc;"
- ewarn " There are now separate conf.d scripts and associated init.d per daemon!"
- ewarn " Each Daemon needs to be launched separately, i.e. the daemons are"
- ewarn " kea-dhcp4"
- ewarn " kea-dhcp6"
- ewarn " kea-dhcp-ddns"
- ewarn " kea-ctrl"
- ewarn "Please adjust your service startups appropriately"
- fi
-
if ! has_version net-misc/kea; then
elog "See examples of config files in:"
elog " ${EROOT}/usr/share/doc/${PF}/examples"
diff --git a/net-vpn/openvpn/Manifest b/net-vpn/openvpn/Manifest
index 6924ff2e08f7..6757d7d3eac5 100644
--- a/net-vpn/openvpn/Manifest
+++ b/net-vpn/openvpn/Manifest
@@ -4,3 +4,5 @@ DIST openvpn-2.7.4.tar.gz 2092050 BLAKE2B 8957cde4fbf04a8108e9cb19720ed089275055
DIST openvpn-2.7.4.tar.gz.asc 833 BLAKE2B 4f0f700a065eef8cd0f11c0935f032d65bd3ad17fe5829239dcc7ce4d209955b8e4782ed89d5dfd74574e13dd3a983087a65786a4ea8626bc57670148a86fed4 SHA512 8a8bde1b6e72dae040cf7ccf546be29d20d298825ce0c4156b3548a3e4a40b830af49600ef785e534c569fdab2362dd64809d1d52bd6d0acb69364905fbcf254
DIST openvpn-2.7.5.tar.gz 2101063 BLAKE2B ea660165d76391239e07522b919936a483944de5a6153ca0a9a0ed66df0515bfac5c0c6ea8bef58e0c084ade68d7ad68043087d44198615e60d6a5d5630ec3f9 SHA512 cc671df2582b0eb2eb1a73d5466dec7593b94518bb6ab31cc31b3d6b14cbc91942fa55e3865b861626acc866bb329cbed0d7a73a37963bd32a2ebece7ba938d2
DIST openvpn-2.7.5.tar.gz.asc 833 BLAKE2B 538b890e60d20f812e21c98e30a231383713f3e0dfae22a05e9693b598abde7d45ded005e1718525f4585b084bfa80ab550d7c6eee134f04e13dc56734be975d SHA512 a60bf826a048e4b2f254fd9c9030e671c1cbea1a302b678b9ac49ae299f41543f2229058a8f91ee4d99ad3df190c3a63ecb0c981533ab1ac060bb881acc3f998
+DIST openvpn-2.7.6.tar.gz 2105678 BLAKE2B 0cf4f6c7337ef3e31cb6f261423863b86fedcaaa69272d26811f4066afcece873ccebca167cb5e9f37bc474ccbbad7f71effc0678b98ed52864a96351a8cc3f0 SHA512 2e45d147f0983b6f343b6772c20b17e67bff0143e7bcf3c2a10551b77d9929c64c86e53b4ade5493023517f3ccd92b0c1011d03cb3543321d0f9faea408e6020
+DIST openvpn-2.7.6.tar.gz.asc 833 BLAKE2B 28d5e137fbe0ee84de4862f03a682bb6313b604c6beded797bfe00e5936ff8ccb33e7266e7ec0a9604d1b4e26c756117292899f8c9779d5b16a766ff82a6b6a3 SHA512 79af977aa59ca3fcf0dc4c3f6c26d397e1b3eac85b92d1282440445486404a5943f1e1e55fed367be28fa38ccaba68cd08fd59613703b15b65f4d091360d02b4
diff --git a/net-vpn/openvpn/openvpn-2.7.6.ebuild b/net-vpn/openvpn/openvpn-2.7.6.ebuild
new file mode 100644
index 000000000000..070d0b7bf731
--- /dev/null
+++ b/net-vpn/openvpn/openvpn-2.7.6.ebuild
@@ -0,0 +1,224 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools dot-a systemd linux-info tmpfiles toolchain-funcs
+
+DESCRIPTION="Robust and highly flexible tunneling application compatible with many OSes"
+HOMEPAGE="https://community.openvpn.net/ https://openvpn.net"
+
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/OpenVPN/${PN}.git"
+ inherit git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openvpn.asc
+ inherit verify-sig
+
+ SRC_URI="
+ https://build.openvpn.net/downloads/releases/${P}.tar.gz
+ verify-sig? ( https://build.openvpn.net/downloads/releases/${P}.tar.gz.asc )
+ "
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="dco down-root examples inotify iproute2 kernel-ovpn +lz4 +lzo mbedtls"
+IUSE+=" +openssl pam pkcs11 +plugins selinux systemd test"
+
+RESTRICT="!test? ( test )"
+REQUIRED_USE="
+ ^^ ( openssl mbedtls )
+ pkcs11? ( !mbedtls )
+ !plugins? ( !pam !down-root )
+ inotify? ( plugins )
+ dco? ( !iproute2 )
+"
+
+COMMON_DEPEND="
+ kernel_linux? (
+ iproute2? ( sys-apps/iproute2[-minimal] )
+ )
+ lz4? ( app-arch/lz4 )
+ lzo? ( >=dev-libs/lzo-1.07 )
+ mbedtls? ( net-libs/mbedtls:3= )
+ openssl? ( >=dev-libs/openssl-1.0.2:0= )
+ pam? ( sys-libs/pam )
+ pkcs11? ( >=dev-libs/pkcs11-helper-1.11 )
+ selinux? ( sys-libs/libselinux )
+ systemd? ( sys-apps/systemd )
+ dco? (
+ !kernel-ovpn? ( >=net-vpn/ovpn-dco-0.2 )
+ >=dev-libs/libnl-3.2.29:=
+ )
+ sys-libs/libcap-ng:=
+"
+
+BDEPEND="
+ virtual/pkgconfig
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ test? ( dev-util/cmocka )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ acct-group/openvpn
+ acct-user/openvpn
+ selinux? ( sec-policy/selinux-openvpn )
+"
+
+if [[ ${PV} = "9999" ]]; then
+ BDEPEND+=" dev-python/docutils"
+else
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-openvpn-202600704 )"
+fi
+
+pkg_setup() {
+ local CONFIG_CHECK="~TUN"
+ if use kernel-ovpn; then
+ local CONFIG_CHECK+=" ~OVPN"
+ fi
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ local -a myeconfargs
+
+ # See tests-no-lto.patch (done unconditionally to not have the build
+ # vary with and without tests)
+ lto-guarantee-fat
+
+ local MBEDTLS_CFLAGS
+ local MBEDTLS_LIBS
+ if ! use mbedtls; then
+ myeconfargs+=(
+ $(use_enable pkcs11)
+ )
+ else
+ MBEDTLS_CFLAGS="$($(tc-getPKG_CONFIG) --cflags mbedtls-3 mbedcrypto-3 mbedx509-3)"
+ MBEDTLS_LIBS="$($(tc-getPKG_CONFIG) --libs mbedtls-3 mbedcrypto-3 mbedx509-3)"
+ fi
+
+ myeconfargs+=(
+ $(use_enable inotify async-push)
+ --with-crypto-library=$(usex mbedtls mbedtls openssl)
+ $(use_enable lz4)
+ $(use_enable lzo)
+ $(use_enable plugins)
+ $(use_enable iproute2)
+ $(use_enable pam plugin-auth-pam)
+ $(use_enable down-root plugin-down-root)
+ $(use_enable selinux)
+ $(use_enable systemd)
+ $(use_enable dco)
+ )
+
+ SYSTEMD_UNIT_DIR=$(systemd_get_systemunitdir) \
+ TMPFILES_DIR="/usr/lib/tmpfiles.d" \
+ IPROUTE=$(usex iproute2 '/bin/ip' '') \
+ MBEDTLS_CFLAGS="${MBEDTLS_CFLAGS}" \
+ MBEDTLS_LIBS="${MBEDTLS_LIBS}" \
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ local -x RUN_SUDO=false
+
+ elog "Running top-level tests"
+ emake check
+
+ pushd tests/unit_tests &>/dev/null || die
+ elog "Running unit tests"
+ emake check
+ popd &>/dev/null || die
+}
+
+src_install() {
+ default
+
+ find "${ED}/usr" -type f -name '*.la' -delete || die
+
+ # install documentation
+ dodoc AUTHORS ChangeLog PORTS README
+
+ # Install some helper scripts
+ keepdir /etc/openvpn
+ exeinto /etc/openvpn
+ doexe "${FILESDIR}/up.sh"
+ doexe "${FILESDIR}/down.sh"
+
+ # Install the init script and config file
+ newinitd "${FILESDIR}/${PN}-2.1.init" openvpn
+ newconfd "${FILESDIR}/${PN}-2.1.conf" openvpn
+
+ # install examples, controlled by the respective useflag
+ if use examples ; then
+ # (is the below comment relevant anymore?)
+ ## dodoc does not supportly support directory traversal, #15193
+ docinto examples
+ dodoc -r sample contrib
+ fi
+
+ # https://bugs.gentoo.org/755680#c3
+ doman doc/openvpn.8
+
+ # https://github.com/OpenVPN/openvpn/issues/482 (bug #857648)
+ newtmpfiles distro/systemd/tmpfiles-openvpn.conf openvpn.conf
+}
+
+pkg_postinst() {
+ tmpfiles_process openvpn.conf
+
+ if systemd_is_booted || has_version sys-apps/systemd ; then
+ elog "In order to use OpenVPN with systemd please use the correct systemd service file."
+ elog
+ elog "server:"
+ elog
+ elog "- Place your server configuration file in /etc/openvpn/server"
+ elog "- Use the openvpn-server@.service like so"
+ elog "systemctl start openvpn-server@{Server-config}"
+ elog
+ elog "client:"
+ elog
+ elog "- Place your client configuration file in /etc/openvpn/client"
+ elog "- Use the openvpn-client@.service like so:"
+ elog "systemctl start openvpn-client@{Client-config}"
+ else
+ elog "The openvpn init script expects to find the configuration file"
+ elog "openvpn.conf in /etc/openvpn along with any extra files it may need."
+ elog
+ elog "To create more VPNs, simply create a new .conf file for it and"
+ elog "then create a symlink to the openvpn init script from a link called"
+ elog "openvpn.newconfname - like so"
+ elog " cd /etc/openvpn"
+ elog " ${EDITOR##*/} foo.conf"
+ elog " cd /etc/init.d"
+ elog " ln -s openvpn openvpn.foo"
+ elog
+ elog "You can then treat openvpn.foo as any other service, so you can"
+ elog "stop one vpn and start another if you need to."
+ fi
+
+ if grep -Eq "^[ \t]*(up|down)[ \t].*" "${ROOT}/etc/openvpn"/*.conf 2>/dev/null ; then
+ ewarn
+ ewarn "WARNING: If you use the remote keyword then you are deemed to be"
+ ewarn "a client by our init script and as such we force up,down scripts."
+ ewarn "These scripts call /etc/openvpn/\$SVCNAME-{up,down}.sh where you"
+ ewarn "can move your scripts to."
+ fi
+
+ if use plugins ; then
+ einfo
+ einfo "plugins have been installed into /usr/$(get_libdir)/${PN}/plugins"
+ fi
+}
diff --git a/net-vpn/tailscale/tailscale-1.102.0.ebuild b/net-vpn/tailscale/tailscale-1.102.0.ebuild
index 4c275da9ec73..a9888e11e103 100644
--- a/net-vpn/tailscale/tailscale-1.102.0.ebuild
+++ b/net-vpn/tailscale/tailscale-1.102.0.ebuild
@@ -20,7 +20,7 @@ LICENSE="MIT"
# Dependent licenses
LICENSE+=" Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm arm64 ~ppc64 ~riscv ~x86"
RESTRICT="test"
CONFIG_CHECK="~TUN"
diff --git a/net-wireless/wireless-regdb/Manifest b/net-wireless/wireless-regdb/Manifest
index 54b6605da565..64dac884a0df 100644
--- a/net-wireless/wireless-regdb/Manifest
+++ b/net-wireless/wireless-regdb/Manifest
@@ -1,4 +1,2 @@
DIST wireless-regdb-2025.10.07.tar.xz 31468 BLAKE2B 655c637ca2a9269b6b17bc374c7d09dcbbc5228aaefcbe60cd0c24dc78d778a56848a338f830cac8deed7930100a0fffcfdc2d694513c4afa5d537ccf9397f97 SHA512 9635ba89a45742449a60dd776f1d4b062a11bf11ee5011a7141382042ed24065df8214d9b244644c27bdfe4fa46d18fa467b8674392f28ba68b86cd8994cecd4
-DIST wireless-regdb-2026.02.04.tar.xz 31656 BLAKE2B 51b528effd27bef82337babc911e85586a105efce758264d52065b8b2137f08a803e0962ef07a600fec36fd110eecacd1b88d2569aa73ad2a289702164d88581 SHA512 5c4da6cd94a3f0d3b1265e3aee493c04cc7c3675fedec2982af34a60f6837faf78c2aa112a740a5cb60eeb830043c9ef0c27247c33c686052ab8812c7232f6c9
-DIST wireless-regdb-2026.03.18.tar.xz 31760 BLAKE2B 2d4f1154be1b41911a62ffbcf10b42529282ce1964897af50aa49ac49b17f06a8a9583b5a42d1b8875a12df04e436679c6af3846ea2cc3c9df7fc29daec7f1ce SHA512 e5b1cc0f8696205e977c9a84ac835994f93dbadeb30725f0a3976cd5a734db44c9df7f98c6acef937814ebc6804312dc516d6bff12e3cbf02814bddea8b2588e
DIST wireless-regdb-2026.05.30.tar.xz 32044 BLAKE2B 81aa422097580319e6088d0a52a2c4007696331df175c3aed1ce6b6c750e9b7bda08a4aa4ee6249abaa3f283f8a942803eefca8334020de68c33f5e7e35a57e0 SHA512 db06f3115051c030f749419f074543309e24626ebdd59d468c56ac3130f38a6c9e4a69ecebbc3bf65d0cdf9876d9c0de0703e00fc9afb402ab2b1a8a0ca1e146
diff --git a/net-wireless/wireless-regdb/wireless-regdb-20260204.ebuild b/net-wireless/wireless-regdb/wireless-regdb-20260204.ebuild
deleted file mode 100644
index 6ac4a2991c22..000000000000
--- a/net-wireless/wireless-regdb/wireless-regdb-20260204.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit linux-info
-
-MY_P="wireless-regdb-${PV:0:4}.${PV:4:2}.${PV:6:2}"
-DESCRIPTION="Wireless Regulatory database for Linux"
-HOMEPAGE="https://wireless.docs.kernel.org/en/latest/en/developers/regulatory/wireless-regdb.html"
-SRC_URI="https://mirrors.edge.kernel.org/pub/software/network/${PN}/${MY_P}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="ISC"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
-REQUIRED_USE="kernel_linux"
-
-pkg_pretend() {
- if kernel_is -ge 4 15; then
- if linux_config_exists; then
- if linux_chkconfig_builtin CFG80211 &&
- [[ $(linux_chkconfig_string EXTRA_FIRMWARE) != *regulatory.db* ]]; then
- ewarn "REGULATORY DOMAIN PROBLEM:"
- ewarn " With CONFIG_CFG80211=y (built-in), the driver(s) won't be able to load regulatory.db from"
- ewarn " /lib/firmware, resulting in broken regulatory domain support. Please set CONFIG_CFG80211=m"
- ewarn " or add regulatory.db and regulatory.db.p7s to CONFIG_EXTRA_FIRMWARE."
- fi
- if ! linux_chkconfig_present CFG80211; then
- ewarn "REGULATORY DOMAIN PROBLEM:"
- ewarn " With CONFIG_CFG80211 unset, the driver(s) won't be able to load the regulatory.db from"
- ewarn " /lib/firmware, resulting in broken regulatory domain support. Please set CONFIG_CFG80211=m."
- fi
- if linux_chkconfig_present EXPERT && linux_chkconfig_present CFG80211_CRDA_SUPPORT; then
- ewarn "You can safely disable CFG80211_CRDA_SUPPORT"
- fi
- fi
- else
- CONFIG_CHECK="~CFG80211_CRDA_SUPPORT"
- WARNING_CFG80211_CRDA_SUPPORT="REGULATORY DOMAIN PROBLEM: \
-please enable CFG80211_CRDA_SUPPORT for proper regulatory domain support"
- fi
-
- check_extra_config
-}
-
-src_compile() {
- einfo "Recompiling regulatory database(s) from db.txt would break signature verification."
- einfo "Installing unmodified binary version."
-}
-
-src_install() {
- # install the files the kernel needs unconditionally,
- # they are small and kernels get upgraded
- insinto /lib/firmware
- doins regulatory.db regulatory.db.p7s
-
- echo '.so man5/regulatory.bin.5' > regulatory.db.5 || die
- # without -i18n= workaround regulatory.db.5 is installed as db/man5/regulatory.5
- doman -i18n= regulatory.db.5 regulatory.bin.5
- dodoc README db.txt
-}
diff --git a/net-wireless/wireless-regdb/wireless-regdb-20260318.ebuild b/net-wireless/wireless-regdb/wireless-regdb-20260318.ebuild
deleted file mode 100644
index 6ac4a2991c22..000000000000
--- a/net-wireless/wireless-regdb/wireless-regdb-20260318.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit linux-info
-
-MY_P="wireless-regdb-${PV:0:4}.${PV:4:2}.${PV:6:2}"
-DESCRIPTION="Wireless Regulatory database for Linux"
-HOMEPAGE="https://wireless.docs.kernel.org/en/latest/en/developers/regulatory/wireless-regdb.html"
-SRC_URI="https://mirrors.edge.kernel.org/pub/software/network/${PN}/${MY_P}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="ISC"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
-REQUIRED_USE="kernel_linux"
-
-pkg_pretend() {
- if kernel_is -ge 4 15; then
- if linux_config_exists; then
- if linux_chkconfig_builtin CFG80211 &&
- [[ $(linux_chkconfig_string EXTRA_FIRMWARE) != *regulatory.db* ]]; then
- ewarn "REGULATORY DOMAIN PROBLEM:"
- ewarn " With CONFIG_CFG80211=y (built-in), the driver(s) won't be able to load regulatory.db from"
- ewarn " /lib/firmware, resulting in broken regulatory domain support. Please set CONFIG_CFG80211=m"
- ewarn " or add regulatory.db and regulatory.db.p7s to CONFIG_EXTRA_FIRMWARE."
- fi
- if ! linux_chkconfig_present CFG80211; then
- ewarn "REGULATORY DOMAIN PROBLEM:"
- ewarn " With CONFIG_CFG80211 unset, the driver(s) won't be able to load the regulatory.db from"
- ewarn " /lib/firmware, resulting in broken regulatory domain support. Please set CONFIG_CFG80211=m."
- fi
- if linux_chkconfig_present EXPERT && linux_chkconfig_present CFG80211_CRDA_SUPPORT; then
- ewarn "You can safely disable CFG80211_CRDA_SUPPORT"
- fi
- fi
- else
- CONFIG_CHECK="~CFG80211_CRDA_SUPPORT"
- WARNING_CFG80211_CRDA_SUPPORT="REGULATORY DOMAIN PROBLEM: \
-please enable CFG80211_CRDA_SUPPORT for proper regulatory domain support"
- fi
-
- check_extra_config
-}
-
-src_compile() {
- einfo "Recompiling regulatory database(s) from db.txt would break signature verification."
- einfo "Installing unmodified binary version."
-}
-
-src_install() {
- # install the files the kernel needs unconditionally,
- # they are small and kernels get upgraded
- insinto /lib/firmware
- doins regulatory.db regulatory.db.p7s
-
- echo '.so man5/regulatory.bin.5' > regulatory.db.5 || die
- # without -i18n= workaround regulatory.db.5 is installed as db/man5/regulatory.5
- doman -i18n= regulatory.db.5 regulatory.bin.5
- dodoc README db.txt
-}
diff --git a/net-wireless/wireless-regdb/wireless-regdb-20260530.ebuild b/net-wireless/wireless-regdb/wireless-regdb-20260530.ebuild
index 6ac4a2991c22..eecf36d9c4fd 100644
--- a/net-wireless/wireless-regdb/wireless-regdb-20260530.ebuild
+++ b/net-wireless/wireless-regdb/wireless-regdb-20260530.ebuild
@@ -13,7 +13,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="ISC"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
REQUIRED_USE="kernel_linux"
pkg_pretend() {
diff --git a/profiles/base/package.use.force b/profiles/base/package.use.force
index 7459cb062a6b..847e3a0c30fd 100644
--- a/profiles/base/package.use.force
+++ b/profiles/base/package.use.force
@@ -120,6 +120,8 @@ llvm-runtimes/libcxxabi clang
# echo "dev-lang/rust:${slot} llvm_slot_${_RUST_LLVM_MAP[${slot}]}"
# echo "dev-lang/rust-bin:${slot} llvm_slot_${_RUST_LLVM_MAP[${slot}]}"
# done
+dev-lang/rust:1.98.1 llvm_slot_22
+dev-lang/rust-bin:1.98.1 llvm_slot_22
dev-lang/rust:1.97.1 llvm_slot_22
dev-lang/rust-bin:1.97.1 llvm_slot_22
dev-lang/rust:1.96.1 llvm_slot_22
diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask
index 8ee274898c66..13a445619ab5 100644
--- a/profiles/base/package.use.mask
+++ b/profiles/base/package.use.mask
@@ -44,11 +44,6 @@ dev-cpp/eigen:3/3.4 test
# uses MeDiPack
~sci-libs/adolc-9999 -mpi
-# Andreas Sturmlechner <asturm@gentoo.org> (2026-05-15)
-# Various integration packages. Maintainers, you must drop Qt5 support.
-<=x11-themes/QGnomePlatform-0.9.2-r7 qt5
-<=x11-themes/adwaita-qt-1.4.2-r1 qt5
-
# Michał Górny <mgorny@gentoo.org> (2026-05-07)
# Force-enable all PYTHON_TARGETS for python-exec to avoid using private
# API. Please remember to keep it in sync with python_targets.desc.
diff --git a/profiles/package.mask/00-gentoo b/profiles/package.mask/00-gentoo
index 331a61b7a6cf..21111aff1f9b 100644
--- a/profiles/package.mask/00-gentoo
+++ b/profiles/package.mask/00-gentoo
@@ -36,6 +36,12 @@
#--- END OF EXAMPLES ---
+# Michał Górny <mgorny@gentoo.org> (2026-09-04)
+# Test suite broken with numpy-2. Last release in 2020. No reverse
+# dependencies.
+# Removal on 2026-10-04. Bug #952323.
+dev-python/chart-studio
+
# Michał Górny <mgorny@gentoo.org> (2026-09-01)
# Low quality slop package with high code churn and frequently changing
# results. All the most recent releases are broken.
@@ -73,12 +79,6 @@ acct-group/croc
acct-user/croc
net-misc/croc
-# Arthur Zamarin <arthurzam@gentoo.org> (2026-08-20)
-# Masked for testing. Already detected regressions, so downgrade
-# unless you want to help test.
-# Bug #981130.
-=dev-lang/go-1.27.0
-
# James Le Cuirot <chewi@gentoo.org> (2026-08-16)
# This fork of Barrier sadly didn't get very far. Upstream have now archived the
# repository. Use gui-apps/deskflow, which is now the FOSS upstream of the
diff --git a/sci-ml/pytorch/Manifest b/sci-ml/pytorch/Manifest
index d41e29f2e8ca..e525ede57b4c 100644
--- a/sci-ml/pytorch/Manifest
+++ b/sci-ml/pytorch/Manifest
@@ -2,3 +2,4 @@ DIST composable_kernel-f1746955.tar.gz 7687217 BLAKE2B 973bf5b8eece2944e053c17eb
DIST flash-attention-2.7.4.gh.tar.gz 5841323 BLAKE2B 432999d763f2b3d732580ddfea5d3e01370351db0656546259a5e500a07516dd03c98828bfb55855dabe4adc651033b5d97ea4725ca46158b9970f0fbc662710 SHA512 05a4afb09e666f7404d6a3f8b5256e7bed6eba60a6f1bde2b7dbb96d318975f0b458c2521c7a38d88e97b6e4c27f29077cf787849daf82586e33f43a3d9a84b3
DIST pytorch-2.12.0.tar.gz 64740318 BLAKE2B e5e46a93422454da420563d0a8057c87d1ed4b27e0bd9b3b30e46b5e40cfbb489072144ac00267af2f085432d55e12adf750daf15ea165a1252449b00dca1ff9 SHA512 f5ab0f6933d88271f772b416f8c9b3b0d3e1ffaf8d00838b455206266b40d7c805e34003d84b01cddc7f1ad917dd72d6f79a05063b0962cbf223d9042cff3206
DIST pytorch-2.13.0.tar.gz 66369404 BLAKE2B 373df49b4f2d504aafedd948e34562696335d316ebcd497dbd86a54a3a3c39310d1595050cc2bcae858d0085e6a0c59ed5299962d6a2706441ab28c1699c4821 SHA512 0f7465835ae9206746d507e1b927afb94f8860248473f2d1c5d71ccd40defbd23d0e3e27a1b09deb907e753a7c9008352830170b53441701ade0916d68a42562
+DIST pytorch-2.14.0.tar.gz 69721997 BLAKE2B 8f6ba5cca094ca3dc4d7b3cf2bd9972196b71b84506c54ecf40f9fa80f0f87b469f3bd04b1200766c19aa4faf94b5bf4f1c6477bb98db1a0b26217fa4b2de10d SHA512 403f160b73800739772c54208b0edb2e4a462a45d282cf03b38e8b1e3f3e45053974bfdba57c4249a1d0cc47f7807fd1ff11c22a321306bf74e758f2ccb4cb18
diff --git a/sci-ml/pytorch/files/pytorch-2.14.0-license.patch b/sci-ml/pytorch/files/pytorch-2.14.0-license.patch
new file mode 100644
index 000000000000..a1886ce1ff5d
--- /dev/null
+++ b/sci-ml/pytorch/files/pytorch-2.14.0-license.patch
@@ -0,0 +1,10 @@
+--- a/pyproject.toml 2026-09-03 16:46:07.080977356 +0200
++++ b/pyproject.toml 2026-09-03 18:11:07.550648831 +0200
+@@ -354,7 +354,6 @@
+ "LICENSE",
+ "third_party/**/LICENSE",
+ "third_party/**/LICENSE.txt",
+- "third_party/**/LICENSE.rst",
+ ]
+ authors = [{ name = "PyTorch Team", email = "packages@pytorch.org" }]
+ keywords = ["pytorch", "machine learning"]
diff --git a/sci-ml/pytorch/files/pytorch-2.14.0-removekineto-pr178960.patch b/sci-ml/pytorch/files/pytorch-2.14.0-removekineto-pr178960.patch
new file mode 100644
index 000000000000..ee083a12b75a
--- /dev/null
+++ b/sci-ml/pytorch/files/pytorch-2.14.0-removekineto-pr178960.patch
@@ -0,0 +1,288 @@
+From 37e33881b9e995f8328da0a149d71f4314bd7aa1 Mon Sep 17 00:00:00 2001
+From: Samaresh Kumar Singh <ssam3003@gmail.com>
+Date: Tue, 31 Mar 2026 21:39:08 -0500
+Subject: [PATCH 1/3] profiler: fix USE_KINETO=OFF build failure due to
+ unconditional ActivityType.h include
+
+kineto_shim.h was unconditionally including <ActivityType.h>, which is a Kineto header, causing a fatal compile error when building with USE_KINETO=OFF and Kineto is not installed (e.g. on Gentoo with system libraries).
+
+Guard the include with #ifdef USE_KINETO and provide a minimal stub (enum class ActivityType : uint8_t { NONE = 0 }) so the data structures and function signatures that reference libkineto::ActivityType still compile. Guard the corresponding function bodies in kineto_shim.cpp (addCPUActivity,
+deviceTypeFromActivity) and collection.cpp (scopeToType, kinetoType) that use concrete enum values, adding no-op stubs for the non-Kineto paths.Fixes the bug #178939
+---
+ torch/csrc/profiler/collection.cpp | 8 ++++++++
+ torch/csrc/profiler/kineto_shim.cpp | 16 ++++++++++++++--
+ torch/csrc/profiler/kineto_shim.h | 7 +++++++
+ 3 files changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/torch/csrc/profiler/collection.cpp b/torch/csrc/profiler/collection.cpp
+index 1be2d80310910..e8054d4f44df7 100644
+--- a/torch/csrc/profiler/collection.cpp
++++ b/torch/csrc/profiler/collection.cpp
+@@ -646,11 +646,13 @@ std::string toString(const ExtraFields<EventType::PyCall>& e) {
+ e.callsite_.funcname_.str());
+ }
+
++#ifdef USE_KINETO
+ auto scopeToType(at::RecordScope scope) {
+ return scope == at::RecordScope::USER_SCOPE
+ ? libkineto::ActivityType::USER_ANNOTATION
+ : libkineto::ActivityType::CPU_OP;
+ }
++#endif
+
+ int64_t torchOpEndNS(
+ const ExtraFields<EventType::TorchOp>& e,
+@@ -699,6 +701,7 @@ std::string Result::overload_name() const {
+ [](const auto& e) -> std::string { return ""; }));
+ }
+
++#ifdef USE_KINETO
+ libkineto::ActivityType Result::kinetoType() const {
+ return visit(c10::overloaded(
+ ATTRIBUTE(TorchOp, scopeToType(e.scope_)),
+@@ -711,6 +714,11 @@ libkineto::ActivityType Result::kinetoType() const {
+ ATTRIBUTE(PythonGC, libkineto::ActivityType::PYTHON_FUNCTION),
+ ATTRIBUTE(Kineto, e.activity_type_)));
+ }
++#else
++libkineto::ActivityType Result::kinetoType() const {
++ return libkineto::ActivityType::NONE;
++}
++#endif
+
+ uint64_t Result::correlationID() const {
+ return visit(c10::overloaded(
+diff --git a/torch/csrc/profiler/kineto_shim.cpp b/torch/csrc/profiler/kineto_shim.cpp
+index fa232e1a01016..0ddf62997a07e 100644
+--- a/torch/csrc/profiler/kineto_shim.cpp
++++ b/torch/csrc/profiler/kineto_shim.cpp
+@@ -196,6 +196,7 @@ TraceWrapper::TraceWrapper(const int64_t start_time, const std::string& name)
+ }
+ #endif // USE_KINETO
+
++#ifdef USE_KINETO
+ activity_t* TraceWrapper::addCPUActivity(
+ const std::string& name,
+ const libkineto::ActivityType type,
+@@ -203,7 +204,6 @@ activity_t* TraceWrapper::addCPUActivity(
+ const uint64_t correlation_id,
+ const int64_t start_time,
+ const int64_t end_time) {
+-#ifdef USE_KINETO
+ TORCH_CHECK((bool)(*this), "Cannot add event to non-existent trace.");
+ cpu_trace_->emplace_activity(cpu_trace_->span, type, name);
+ auto& act = libkineto::CpuTraceBuffer::toRef(cpu_trace_->activities.back());
+@@ -215,10 +215,18 @@ activity_t* TraceWrapper::addCPUActivity(
+ act.endTime = end_time;
+ }
+ return cpu_trace_->activities.back().get();
++}
+ #else
++activity_t* TraceWrapper::addCPUActivity(
++ const std::string& name,
++ const libkineto::ActivityType type,
++ const DeviceAndResource device_and_resource,
++ const uint64_t correlation_id,
++ const int64_t start_time,
++ const int64_t end_time) {
+ return nullptr;
+-#endif // USE_KINETO
+ }
++#endif // USE_KINETO
+
+ void TraceWrapper::transferCpuTrace(int64_t end_time) {
+ #ifdef USE_KINETO
+@@ -498,6 +506,7 @@ void logInvariantViolation(
+
+ namespace autograd::profiler {
+ c10::DeviceType deviceTypeFromActivity(libkineto::ActivityType activity_type) {
++#ifdef USE_KINETO
+ // PrivateUse1 kineto backend reuse some ActivityTypes,
+ // If PrivateUse1 backend is enabled, this should return
+ // c10::DeviceType::PrivateUse1.
+@@ -551,6 +560,9 @@ c10::DeviceType deviceTypeFromActivity(libkineto::ActivityType activity_type) {
+ return c10::DeviceType::CPU;
+ }
+ }
++#else
++ return c10::DeviceType::CPU;
++#endif // USE_KINETO
+ }
+
+ void addMetadataJson(const std::string& key, const std::string& value) {
+diff --git a/torch/csrc/profiler/kineto_shim.h b/torch/csrc/profiler/kineto_shim.h
+index 4f9bdc6770507..44bcb0e18a6e0 100644
+--- a/torch/csrc/profiler/kineto_shim.h
++++ b/torch/csrc/profiler/kineto_shim.h
+@@ -12,7 +12,14 @@
+ #undef USE_KINETO
+ #endif
+
++#ifdef USE_KINETO
+ #include <ActivityType.h>
++#else
++// Minimal stub so non-Kineto builds can compile types that hold ActivityType.
++namespace libkineto {
++enum class ActivityType : uint8_t { NONE = 0 };
++} // namespace libkineto
++#endif
+
+ #include <torch/csrc/Export.h>
+ #include <torch/csrc/profiler/api.h>
+
+From f5e3a9d9aa12c6e2006a9243c97ef7703fcbbe2f Mon Sep 17 00:00:00 2001
+From: Samaresh Kumar Singh <ssam3003@gmail.com>
+Date: Wed, 1 Apr 2026 10:34:24 -0500
+Subject: [PATCH 2/3] Fixed the USER_ANNOTATION/GPU_USER_ANNOTATION build
+ errors with external kineto
+
+When building against a system-installed kineto (e.g. Gentoo's sci-ml/kineto) that lacks USER_ANNOTATION and GPU_USER_ANNOTATION in its ActivityType enum,
+init.cpp failed to compile because it referenced those enum member names directly.
+---
+ torch/csrc/autograd/init.cpp | 7 +------
+ torch/csrc/autograd/profiler_kineto.cpp | 7 +++++++
+ torch/csrc/autograd/profiler_kineto.h | 1 +
+ torch/csrc/profiler/kineto_shim.h | 11 +++++++++--
+ 4 files changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/torch/csrc/autograd/init.cpp b/torch/csrc/autograd/init.cpp
+index 1e2442a5d99db..f8e8795c5805e 100644
+--- a/torch/csrc/autograd/init.cpp
++++ b/torch/csrc/autograd/init.cpp
+@@ -310,12 +310,7 @@ PyObject* THPAutograd_initExtension(PyObject* _unused, PyObject* unused) {
+ .def("privateuse1_elapsed_us", &KinetoEvent::privateuse1ElapsedUs)
+ .def(
+ "is_user_annotation",
+- [](const KinetoEvent& e) {
+- return e.activityType() ==
+- (uint8_t)libkineto::ActivityType::USER_ANNOTATION ||
+- e.activityType() ==
+- (uint8_t)libkineto::ActivityType::GPU_USER_ANNOTATION;
+- })
++ [](const KinetoEvent& e) { return e.isUserAnnotation(); })
+ .def(
+ "is_python_function",
+ [](const KinetoEvent& e) { return e.isPythonFunction(); })
+diff --git a/torch/csrc/autograd/profiler_kineto.cpp b/torch/csrc/autograd/profiler_kineto.cpp
+index 9a076f58d7143..6b5165f0872fb 100644
+--- a/torch/csrc/autograd/profiler_kineto.cpp
++++ b/torch/csrc/autograd/profiler_kineto.cpp
+@@ -1165,6 +1165,13 @@
+ &privateuse1_event_start, &privateuse1_event_end);
+ }
+
++bool KinetoEvent::isUserAnnotation() const {
++ constexpr uint8_t kUserAnnotation = 1;
++ constexpr uint8_t kGpuUserAnnotation = 2;
++ const auto type = activityType();
++ return type == kUserAnnotation || type == kGpuUserAnnotation;
++}
++
+ void KinetoEvent::getPerfEventCounters(std::vector<uint64_t>& in) const {
+ return result_->visit(c10::overloaded(
+ [&in](const ExtraFields<EventType::TorchOp>& e) -> void {
+diff --git a/torch/csrc/autograd/profiler_kineto.h b/torch/csrc/autograd/profiler_kineto.h
+index 777b8a5851ed5..c3135c61245d4 100644
+--- a/torch/csrc/autograd/profiler_kineto.h
++++ b/torch/csrc/autograd/profiler_kineto.h
+@@ -72,6 +72,7 @@ struct TORCH_API KinetoEvent {
+ bool isPythonFunction() const;
+ int64_t cudaElapsedUs() const;
+ int64_t privateuse1ElapsedUs() const;
++ bool isUserAnnotation() const;
+ void getPerfEventCounters(torch::profiler::perf_counters_t& /*in*/) const;
+ extra_meta_t extraMeta() const;
+ const typed_metadata_t& typedMetadata() const;
+diff --git a/torch/csrc/profiler/kineto_shim.h b/torch/csrc/profiler/kineto_shim.h
+index 44bcb0e18a6e0..ddc00c03fa9cc 100644
+--- a/torch/csrc/profiler/kineto_shim.h
++++ b/torch/csrc/profiler/kineto_shim.h
+@@ -15,9 +15,16 @@
+ #ifdef USE_KINETO
+ #include <ActivityType.h>
+ #else
+-// Minimal stub so non-Kineto builds can compile types that hold ActivityType.
+ namespace libkineto {
+-enum class ActivityType : uint8_t { NONE = 0 };
++enum class ActivityType : uint8_t {
++ CPU_OP = 0,
++ USER_ANNOTATION,
++ GPU_USER_ANNOTATION,
++ NONE = CPU_OP,
++};
++inline const char* toString(ActivityType) {
++ return "CPU_OP";
++}
+ } // namespace libkineto
+ #endif
+
+
+From 717526b7ce90d242cb917db90f4cb13c85c93661 Mon Sep 17 00:00:00 2001
+From: Samaresh Kumar Singh <ssam3003@gmail.com>
+Date: Fri, 3 Apr 2026 13:01:01 -0500
+Subject: [PATCH 3/3] profiler: guard GPU ActivityType checks with KINETO GPU
+ backend macros
+
+The externalId() function referenced GPU-specific libkineto::ActivityType
+values (GPU_MEMCPY, GPU_MEMSET, CONCURRENT_KERNEL, CUDA_RUNTIME,
+CUDA_DRIVER, PRIVATEUSE1_RUNTIME, PRIVATEUSE1_DRIVER) that are only
+present in kineto builds with GPU backend support.
+
+System-installed kineto packages built without CUDA/ROCm support
+(LIBKINETO_NOCUPTI + LIBKINETO_NOROCTRACER) omit these enum values,
+causing compile errors. Guard the check with the existing GPU backend
+macros. Also restructures the condition to an early-return to avoid
+duplicating the correlation ID lookup.
+---
+ torch/csrc/autograd/profiler_kineto.cpp | 38 ++++++++++++++-----------
+ 1 file changed, 22 insertions(+), 16 deletions(-)
+
+diff --git a/torch/csrc/autograd/profiler_kineto.cpp b/torch/csrc/autograd/profiler_kineto.cpp
+index 6b5165f0872fb..466e8d66ab518 100644
+--- a/torch/csrc/autograd/profiler_kineto.cpp
++++ b/torch/csrc/autograd/profiler_kineto.cpp
+@@ -1209,18 +1209,25 @@
+ return static_cast<int64_t>(linked);
+ }
+
++#if defined(USE_KINETO) && \
++ (!defined(LIBKINETO_NOCUPTI) || !defined(LIBKINETO_NOROCTRACER))
+ // Orphaned GPU activities (no linked CPU op) in these types should not get
+ // an External id, to avoid incorrect cross-linking in trace viewers.
++ // These GPU-specific ActivityType values are only present when kineto is
++ // built with GPU backend support (CUPTI or ROCtracer). CPU-only kineto
++ // builds (e.g. system packages without GPU support) omit them.
+ auto type = static_cast<libkineto::ActivityType>(activityType());
+- if (type != libkineto::ActivityType::GPU_MEMCPY &&
+- type != libkineto::ActivityType::GPU_MEMSET &&
+- type != libkineto::ActivityType::CONCURRENT_KERNEL &&
+- type != libkineto::ActivityType::CUDA_RUNTIME &&
+- type != libkineto::ActivityType::CUDA_DRIVER &&
+- type != libkineto::ActivityType::XPU_RUNTIME &&
+- type != libkineto::ActivityType::XPU_DRIVER &&
+- type != libkineto::ActivityType::PRIVATEUSE1_RUNTIME &&
+- type != libkineto::ActivityType::PRIVATEUSE1_DRIVER) {
++ if (type == libkineto::ActivityType::GPU_MEMCPY ||
++ type == libkineto::ActivityType::GPU_MEMSET ||
++ type == libkineto::ActivityType::CONCURRENT_KERNEL ||
++ type == libkineto::ActivityType::CUDA_RUNTIME ||
++ type == libkineto::ActivityType::CUDA_DRIVER ||
++ type == libkineto::ActivityType::PRIVATEUSE1_RUNTIME ||
++ type == libkineto::ActivityType::PRIVATEUSE1_DRIVER) {
++ return 0;
++ }
++#endif
++
+ return static_cast<int64_t>(result_->visit(c10::overloaded(
+ [](const ExtraFields<EventType::TorchOp>& e) -> uint64_t {
+ return e.correlation_id_;
+@@ -1229,9 +1236,6 @@
+ return e.correlation_id_;
+ },
+ [](const auto&) -> uint64_t { return 0; })));
+- }
+-
+- return 0;
+ }
+
+ #define FORWARD_FROM_RESULT(method_name, result_expr) \
diff --git a/sci-ml/pytorch/files/pytorch-2.14.0-unbundle_pocketfft.patch b/sci-ml/pytorch/files/pytorch-2.14.0-unbundle_pocketfft.patch
new file mode 100644
index 000000000000..505ffe7940a3
--- /dev/null
+++ b/sci-ml/pytorch/files/pytorch-2.14.0-unbundle_pocketfft.patch
@@ -0,0 +1,18 @@
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -276,15 +276,8 @@
+ # --- [ PocketFFT
+ set(AT_POCKETFFT_ENABLED 0)
+ if(NOT AT_MKL_ENABLED)
+- set(POCKETFFT_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/third_party/pocketfft/")
+- if(NOT EXISTS "${POCKETFFT_INCLUDE_DIR}")
+- message(FATAL_ERROR "pocketfft directory not found, expected ${POCKETFFT_INCLUDE_DIR}")
+- elseif(NOT EXISTS "${POCKETFFT_INCLUDE_DIR}/pocketfft_hdronly.h")
+- message(FATAL_ERROR "pocketfft headers not found in ${POCKETFFT_INCLUDE_DIR}")
+- endif()
+
+ set(AT_POCKETFFT_ENABLED 1)
+- message(STATUS "Using pocketfft in directory: ${POCKETFFT_INCLUDE_DIR}")
+ endif()
+
+ # ---[ Dependencies
diff --git a/sci-ml/pytorch/pytorch-2.14.0.ebuild b/sci-ml/pytorch/pytorch-2.14.0.ebuild
new file mode 100644
index 000000000000..f824f8d76109
--- /dev/null
+++ b/sci-ml/pytorch/pytorch-2.14.0.ebuild
@@ -0,0 +1,365 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=scikit-build-core
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_EXT=1
+
+ROCM_VERSION=6.1
+inherit distutils-r1 prefix cuda flag-o-matic rocm multiprocessing
+
+# pytorch-2.13.0 depends on specific commit of composable kernel
+# TODO: replace it with DEPEND in the future
+CK_COMMIT=f1746955fdaf80a3414de814bf32437686dac347
+CK_P=composable_kernel-${CK_COMMIT:0:8}
+
+# Starting from 2.7.0 pytorch moved flash attention out-of-tree,
+# but hardcoded it as third_party subproject
+# TODO: unbundle
+FLASH_PV=2.7.4
+FLASH_PN=flash-attention
+FLASH_P=${FLASH_PN}-${FLASH_PV}
+FLASH_ATT_URI="https://github.com/Dao-AILab/${FLASH_PN}/archive/refs/tags/v${FLASH_PV}.tar.gz -> ${FLASH_P}.gh.tar.gz"
+
+DESCRIPTION="Tensors and Dynamic neural networks in Python with strong GPU acceleration"
+HOMEPAGE="https://pytorch.org/"
+SRC_URI="https://github.com/pytorch/${PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ rocm? (
+ https://github.com/ROCm/composable_kernel/archive/${CK_COMMIT}.tar.gz
+ -> ${CK_P}.tar.gz
+ )
+ cuda? (
+ flash? ( ${FLASH_ATT_URI} )
+ memefficient? ( ${FLASH_ATT_URI} )
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="cuda cusparselt distributed fbgemm flash gloo kineto memefficient
+ mimalloc mkl mpi nccl nnpack +numpy onednn openblas opencl openmp qnnpack
+ rocm xnnpack"
+RESTRICT="test"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ mpi? ( distributed )
+ gloo? ( distributed )
+ ?? ( cuda rocm )
+ rocm? (
+ || ( ${ROCM_REQUIRED_USE} )
+ memefficient? ( flash )
+ )
+ cusparselt? ( || ( cuda rocm ) )
+ flash? ( || ( cuda rocm ) )
+ memefficient? ( || ( cuda rocm ) )
+ nccl? ( rocm )
+"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ !sci-ml/caffe2
+ dev-cpp/abseil-cpp:=
+ dev-cpp/gflags:=
+ >=dev-cpp/glog-0.6.0:=
+ >=dev-libs/cpuinfo-2025.11.14
+ dev-libs/libfmt:=
+ dev-libs/protobuf:=
+ dev-libs/sleef
+ sci-ml/onnx
+ $(python_gen_cond_dep '
+ dev-python/sympy[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ')
+ !mkl? ( !openblas? ( virtual/blas ) )
+ cuda? (
+ dev-libs/cudnn
+ >=sci-ml/cudnn-frontend-1.12.0:=
+ >=dev-util/nvidia-cuda-toolkit-12.9:=[profiler]
+ cusparselt? ( dev-libs/cusparselt )
+ )
+ distributed? (
+ !rocm? ( sci-ml/tensorpipe[cuda?] )
+ dev-cpp/cpp-httplib:=
+ )
+ fbgemm? ( >=sci-ml/FBGEMM-1.4 )
+ gloo? ( >=sci-ml/gloo-2025.06.04[cuda?,rocm?] )
+ kineto? ( ~sci-ml/kineto-0.4.0_p20260603 )
+ mimalloc? ( dev-libs/mimalloc )
+ mkl? ( sci-libs/mkl )
+ mpi? ( virtual/mpi )
+ nnpack? (
+ sci-ml/NNPACK
+ dev-libs/pthreadpool
+ )
+ numpy? ( $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ ') )
+ onednn? ( sci-ml/oneDNN )
+ openblas? ( sci-libs/openblas )
+ opencl? ( virtual/opencl )
+ qnnpack? (
+ !sci-libs/QNNPACK
+ sci-ml/gemmlowp
+ dev-libs/pthreadpool
+ )
+ rocm? (
+ nccl? ( >=dev-libs/rccl-6.3:= <dev-libs/rccl-7.3:= )
+ >=dev-util/hip-6.3:= <dev-util/hip-7.3:=
+ >=dev-util/roctracer-6.3:= <dev-util/roctracer-7.3:=
+ >=sci-libs/hipBLAS-6.3:= <sci-libs/hipBLAS-7.3:=[rocsolver(+)]
+ >=sci-libs/hipBLASLt-6.3:= <sci-libs/hipBLASLt-7.3:=
+ >=sci-libs/hipFFT-6.3:= <sci-libs/hipFFT-7.3:=
+ >=sci-libs/hipRAND-6.3:= <sci-libs/hipRAND-7.3:=
+ >=sci-libs/hipSOLVER-6.3:= <sci-libs/hipSOLVER-7.3:=
+ >=sci-libs/hipSPARSE-6.3:= <sci-libs/hipSPARSE-7.3:=
+ >=sci-libs/miopen-6.3:= <sci-libs/miopen-7.3:=
+ >=sci-libs/rocBLAS-6.3:= <sci-libs/rocBLAS-7.3:=
+ >=sci-libs/rocRAND-6.3:= <sci-libs/rocRAND-7.3:=
+ >=sci-libs/rocSOLVER-6.3:= <sci-libs/rocSOLVER-7.3:=
+ memefficient? ( =sci-libs/aotriton-bin-0.13*:= )
+ distributed? (
+ >=dev-util/rocm-smi-6.3:= <dev-util/rocm-smi-7.3:=
+ >=dev-util/amdsmi-6.3:= <dev-util/amdsmi-7.3:=
+ )
+ cusparselt? ( >=sci-libs/hipsparselt-6.3:= <sci-libs/hipsparselt-7.3:= )
+ )
+ xnnpack? (
+ >=sci-ml/XNNPACK-2024.11
+ dev-libs/pthreadpool
+ )
+"
+
+DEPEND="
+ ${RDEPEND}
+ dev-cpp/nlohmann_json
+ dev-libs/flatbuffers
+ dev-libs/FXdiv
+ dev-libs/pocketfft
+ dev-libs/psimd
+ sci-ml/FP16
+ $(python_gen_cond_dep '
+ <dev-python/pybind11-3.0.5[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ')
+ cuda? ( ~dev-libs/cutlass-4.4.2[tools(+)] )
+ onednn? ( sci-ml/ideep )
+ rocm? (
+ >=sci-libs/hipCUB-6.3:= <sci-libs/hipCUB-7.3:=
+ >=sci-libs/rocPRIM-6.3:= <sci-libs/rocPRIM-7.3:=
+ >=sci-libs/rocThrust-6.3:= <sci-libs/rocThrust-7.3:=
+ )
+ qnnpack? ( dev-libs/clog )
+"
+
+BDEPEND="dev-build/cmake"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.13.0-aotriton-fixes.patch
+ "${FILESDIR}"/${PN}-2.13.0-glog.patch
+ "${FILESDIR}"/${PN}-2.13.0-mimalloc.patch
+ "${FILESDIR}"/${P}-removekineto-pr178960.patch
+ "${FILESDIR}"/${PN}-2.13.0-rocm-assert-fix.patch
+ "${FILESDIR}"/${PN}-2.13.0-unbundle_fbgemm.patch
+ "${FILESDIR}"/${PN}-2.13.0-unbundle_flatbuffers.patch
+ "${FILESDIR}"/${PN}-2.13.0-unbundle_fmt.patch
+ "${FILESDIR}"/${PN}-2.13.0-unbundle_fxdiv.patch
+ "${FILESDIR}"/${PN}-2.13.0-unbundle_httplib.patch
+ "${FILESDIR}"/${PN}-2.13.0-unbundle_kineto.patch
+ "${FILESDIR}"/${PN}-2.13.0-unbundle_mkldnn.patch
+ "${FILESDIR}"/${PN}-2.13.0-unbundle_nnpack.patch
+ "${FILESDIR}"/${P}-unbundle_pocketfft.patch
+ "${FILESDIR}"/${PN}-2.13.0-xnnpack.patch
+ "${FILESDIR}"/${P}-license.patch
+)
+
+src_prepare() {
+ if use cuda && ( use flash || use memefficient ); then
+ mv "${WORKDIR}"/${FLASH_P}/* third_party/${FLASH_PN}/ || die
+ fi
+ filter-lto #bug 862672
+
+ eapply "${FILESDIR}/${PN}-2.10.0-cpp-extension-multilib.patch"
+ # Replace placeholders added by cpp-extension.patch
+ sed -e "s|%LIB_DIR%|$(get_libdir)|g" \
+ -i torch/utils/cpp_extension.py || die
+
+ # Unbundle fmt
+ sed -i \
+ -e 's|::fmt-header-only||' \
+ c10/CMakeLists.txt \
+ cmake/Dependencies.cmake \
+ torch/CMakeLists.txt \
+ || die
+
+ # tensorpipe is in system, not a build target of pytorch
+ sed -e '/target_compile_options_if_supported(tensorpipe/d' -i cmake/Dependencies.cmake || die
+
+ # Drop third_party from CMake tree
+ sed -i \
+ -e '/add_subdirectory.*third_party/d' \
+ CMakeLists.txt \
+ cmake/Dependencies.cmake \
+ cmake/ProtoBuf.cmake \
+ aten/src/ATen/CMakeLists.txt \
+ || die
+
+ # Add needed file for cutlass as symbolic link
+ ln -sf /usr/share/cutlass/examples third_party/cutlass/examples || die
+
+ # cudnn_frontend is unbundled, but some targets still look for its
+ # headers under third_party/cudnn_frontend/include.
+ if use cuda; then
+ mkdir -p third_party/cudnn_frontend || die
+ ln -sf /usr/include third_party/cudnn_frontend/include || die
+ fi
+
+ distutils-r1_src_prepare
+
+ # Noisy warnings from Logging.h
+ sed -i 's/-Wextra-semi//' cmake/public/utils.cmake || die
+
+ pushd torch/csrc/jit/serialization > /dev/null || die
+ flatc --cpp --gen-mutable --scoped-enums mobile_bytecode.fbs || die
+ popd > /dev/null || die
+
+ # prefixify the hardcoded paths, after all patches are applied
+ hprefixify \
+ aten/CMakeLists.txt \
+ caffe2/CMakeLists.txt \
+ cmake/Metal.cmake \
+ cmake/Modules/*.cmake \
+ cmake/Modules_CUDA_fix/FindCUDNN.cmake \
+ cmake/Modules_CUDA_fix/upstream/FindCUDA/make2cmake.cmake \
+ cmake/Modules_CUDA_fix/upstream/FindPackageHandleStandardArgs.cmake \
+ cmake/public/LoadHIP.cmake \
+ cmake/public/cuda.cmake \
+ cmake/Dependencies.cmake \
+ tools/setup_helpers/env.py \
+ torch/CMakeLists.txt \
+ CMakeLists.txt
+
+ if use rocm; then
+ # TODO: delete, when caffe2 depends on systemwide composable_kernel
+ sed -e "s:third_party/composable_kernel:../composable_kernel-${CK_COMMIT}:g" \
+ -i aten/src/ATen/CMakeLists.txt || die
+
+ # Workaround for libc++ issue https://github.com/llvm/llvm-project/issues/100802
+ sed -e 's/std::memcpy/memcpy/g' \
+ -i torch/headeronly/util/Half.h \
+ -i aten/src/ATen/native/cuda/int4mm.cu || die
+
+ ebegin "HIPifying cuda sources"
+ FBCODE_BUILD_TOOL="buck" ${EPYTHON} tools/amd_build/build_amd.py || die
+ eend $?
+ fi
+}
+
+src_configure() {
+ if use cuda && [[ -z ${TORCH_CUDA_ARCH_LIST} ]]; then
+ ewarn "WARNING: pytorch is being built with its default CUDA compute capabilities: 3.5 and 7.0."
+ ewarn "These may not be optimal for your GPU."
+ ewarn ""
+ ewarn "To configure pytorch with the CUDA compute capability that is optimal for your GPU,"
+ ewarn "set TORCH_CUDA_ARCH_LIST in your make.conf, and re-emerge pytorch."
+ ewarn "For example, to use CUDA capability 7.5 & 3.5, add: TORCH_CUDA_ARCH_LIST=7.5 3.5"
+ ewarn "For a Maxwell model GPU, an example value would be: TORCH_CUDA_ARCH_LIST=Maxwell"
+ ewarn ""
+ ewarn "You can look up your GPU's CUDA compute capability at https://developer.nvidia.com/cuda-gpus"
+ ewarn "or by running /opt/cuda/extras/demo_suite/deviceQuery | grep 'CUDA Capability'"
+ fi
+}
+
+python_compile() {
+ local -x BUILD_TEST=OFF
+ local -x CMAKE_BUILD_DIR="${BUILD_DIR}"
+ local -x MAX_JOBS=$(makeopts_jobs)
+ local -x PYTORCH_BUILD_VERSION=${PV}
+ local -x PYTORCH_BUILD_NUMBER=0
+ local -x USE_CCACHE=OFF
+ local -x USE_CUDA=$(usex cuda)
+ local -x USE_DISTRIBUTED=$(usex distributed)
+ local -x USE_FBGEMM=$(usex fbgemm)
+ local -x USE_FLASH_ATTENTION=$(usex flash)
+ local -x USE_GFLAGS=ON
+ local -x USE_GLOG=ON
+ local -x USE_GLOO=$(usex gloo)
+ local -x USE_ITT=OFF
+ local -x USE_KINETO=$(usex kineto)
+ local -x USE_KLEIDIAI=OFF # TODO
+ local -x USE_MAGMA=OFF # TODO: In GURU as sci-libs/magma
+ local -x USE_MEM_EFF_ATTENTION=$(usex memefficient)
+ local -x USE_MIMALLOC=$(usex mimalloc)
+ local -x USE_MKLDNN=$(usex onednn)
+ local -x USE_MPI=$(usex mpi)
+ local -x USE_NNPACK=$(usex nnpack)
+ local -x USE_NUMA=OFF
+ local -x USE_NUMPY=$(usex numpy)
+ local -x USE_OPENCL=$(usex opencl)
+ local -x USE_OPENMP=$(usex openmp)
+ local -x USE_PYTORCH_QNNPACK=$(usex qnnpack)
+ local -x USE_PYTORCH_METAL=OFF
+ local -x USE_ROCM=$(usex rocm)
+ local -x USE_SYSTEM_LIBS=ON
+ local -x USE_SYSTEM_XNNPACK=$(usex xnnpack)
+ local -x USE_TENSORPIPE=$(usex distributed $(usex !rocm))
+ local -x DUSE_UCC=OFF
+ local -x USE_VALGRIND=OFF
+ local -x USE_XNNPACK=$(usex xnnpack)
+ local -x USE_XPU=OFF
+
+ if use mkl; then
+ local -x USE_BLAS=ON
+ local -x BLAS=MKL
+ elif use openblas; then
+ local -x USE_BLAS=ON
+ local -x BLAS=OpenBLAS
+ else
+ # Note: USE_BLAS=OFF does not properly work, instead pytorch still searches for libraries.
+ # Even though it is easy to patch pytorch to disable BLAS usage completely,
+ # it is practically not useful, as it would render the library barely usable.
+ local -x USE_BLAS=ON
+ local -x BLAS=Generic
+ local -x GENERIC_BLAS_LIBRARIES=cblas
+ fi
+
+ if use cuda; then
+ # bug 867706 926116
+ cuda_add_sandbox
+ addpredict "/dev/char/"
+
+ local -x CMAKE_CUDA_FLAGS="$(cuda_gccdir -f | tr -d \")"
+ local -x TORCH_CUDA_ARCH_LIST="${TORCH_CUDA_ARCH_LIST:-7.0}"
+ local -x USE_CUDNN=ON
+ local -x USE_FLASH_ATTENTION=OFF
+ local -x USE_MEM_EFF_ATTENTION=OFF
+ local -x USE_NCCL=OFF # TODO: NVIDIA Collective Communication Library
+
+ elif use rocm; then
+ export PYTORCH_ROCM_ARCH="$(get_amdgpu_flags)"
+
+ if use memefficient; then
+ export AOTRITON_INSTALLED_PREFIX="${ESYSROOT}/usr"
+ fi
+
+ local -x CMAKE_REQUIRE_FIND_PACKAGE_HIP=ON
+ local -x USE_NCCL=$(usex nccl)
+ local -x CMAKE_DISABLE_FIND_PACKAGE_hipsparselt=$(usex !cusparselt) # disable automagic
+ local -x USE_ROCM_CK_SDPA=OFF # requires flash + aiter, works only on gfx90a/gfx942/gfx950
+ local -x ROCM_PATH=/usr
+ local -x HIP_CLANG_PATH=$(hipconfig --hipclangpath)
+
+ # ROCm libraries produce too much warnings
+ append-cxxflags -Wno-deprecated-declarations -Wno-unused-result -Wno-unused-value
+ else
+ local -x USE_NCCL=OFF
+ fi
+
+ distutils-r1_python_compile develop sdist
+}
diff --git a/sys-apps/systemd/Manifest b/sys-apps/systemd/Manifest
index 30a90ff0c83b..48d5b46febd5 100644
--- a/sys-apps/systemd/Manifest
+++ b/sys-apps/systemd/Manifest
@@ -1,6 +1,7 @@
DIST systemd-259.4.tar.gz 17336661 BLAKE2B 5e90410698e21e8fc8f5f22e3e26858f51d2cdfc362870f09ecccf8ed882602cdcef2614843738b14601349b05cfd3a8358a1771fc1fcd8e75d831940a8683c8 SHA512 bf572f92b0b01ecaf08f36ea5e13a2c05a79e6c0c2d9ef191855d1b83ae791a2977841ca85541ace1d30945d5f879d703d390767f708294986b29aeda1449b1f
DIST systemd-260.1.tar.gz 17581096 BLAKE2B 072424e7288f8796be1e6952fadc5452c2ab54633b356796a29872609a03b4cc2edbc0cac0df7542bc969b06d265d2cbf52f9174742c5a570a5a3d7a7664cfa8 SHA512 9f975dce6861853a817a7ceab18a24449a85d1bda6939b3a5173430c02a4d8a9a2b34ebb8cce1c51db9b0ff9078fcc65da7b0f44e3bdcbbe013b9e04bb6f0ff9
DIST systemd-260.2.tar.gz 17663337 BLAKE2B 6f19c9ab444d9bcd8d585a4c2ef5bf8763dcfcd69bbcc02659d8ebdbdebb97b25941fe38e6b7a5cc3046b7b724b14e3e94c1c95919314a30818c9f81143cb9e7 SHA512 63d15da49e7580952a48a0b50df20c1b398e4b77edf259510b0cdb9022e919387baadf2190194a50f1f582b83e0768c13997a4189cf0fb6a61b65015496d9c80
+DIST systemd-260.4.tar.gz 17757440 BLAKE2B a1e171a2282e494cf1881fb0c33f9974eee06b7b1d623fe8e041b7fcabf9424af080ca21a8d0d2829f90469253fa42265a1870f1bf7f824326db8e32384a18bc SHA512 1cd03f78d2e782d351dc049bb8ef22ab03a2600f5f667721045aa113baea0c7f72743088932b813140f39007a43d5491e58f40ef36eeb9ddfd9a183d39e4b000
DIST systemd-261.1.tar.gz 18405830 BLAKE2B ab345d6ae27d361aa56d3b021263e2b2e3af76cdc37ee9015932557f1b904f2e5e5a6d5911b4a442057d12d5eedf8a702a30aa13f9b68294ccc14833f397a0ea SHA512 5dbf8b902fbed6e719367266da658b46ed55e76c93b7aa48ebaf9daca36cb19261ebd45cb97139c51227022a8ca3d07da360953bd9b0aebb429dce6d111f7e5c
DIST systemd-261.2.tar.gz 18456346 BLAKE2B f8f57c5e78ff31727ecfd18b61d3a3a95b764e5a049c0cc974be567273db2f771ab2f50df1ebf06b0c3a659c7e02db309dee4844217e3a91ae1169877971a34e SHA512 876f043970cb65b39ae15fba39f23bf94c7c3d80569503d6e8ea2c8013c30ee40ce43cb55cbcb1cf14d5c3021aafc09c0f67473bbf742d8964bf9fa30693b971
DIST systemd-261.tar.gz 18390754 BLAKE2B 3e307fa237911ee18e9dca2e3e26eac4859fe19bd856c970d9c557ed2a3420944a20affad60bf10dc4cada657778bac38a1a529fc0081ba255550bfd4c1a1f06 SHA512 6a21c2a9bd83d962db4e6c095078ec79259d8109583b59094d17e76c0826e96a6183778f46b64352b0fe62cb8890736e9331f35e9a4c8b65f9b574fa915f9fd8
diff --git a/sys-apps/systemd/files/systemd-261-lxml-6.1.3.patch b/sys-apps/systemd/files/systemd-261-lxml-6.1.3.patch
new file mode 100644
index 000000000000..00c6ceea9bc7
--- /dev/null
+++ b/sys-apps/systemd/files/systemd-261-lxml-6.1.3.patch
@@ -0,0 +1,59 @@
+https://github.com/systemd/systemd/pull/43626
+https://bugs.gentoo.org/981868
+
+From 40d1acd6d9293915e0f1e69c5e5ecac086fdcb38 Mon Sep 17 00:00:00 2001
+From: Luca Boccassi <luca.boccassi@gmail.com>
+Date: Wed, 2 Sep 2026 20:32:51 +0100
+Subject: [PATCH] tools: fix building manpages with lxml 6.1.3
+
+manpages build fails on Arch with new lxml:
+
+Traceback (most recent call last):
+ File "/work/src/tools/make-directive-index.py", line 169, in make_page
+ _extract_directives(directive_groups, formatting, page)
+ ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/work/src/tools/make-directive-index.py", line 18, in _extract_directives
+ t = xml_parse(page)
+ File "/work/src/tools/xml_helper.py", line 25, in xml_parse
+ doc = tree.parse(page, _parser)
+ File "src/lxml/etree.pyx", line 3717, in lxml.etree.parse
+ File "src/lxml/parser.pxi", line 2045, in lxml.etree._parseDocument
+ File "src/lxml/parser.pxi", line 2071, in lxml.etree._parseDocumentFromURL
+ File "src/lxml/parser.pxi", line 1962, in lxml.etree._parseDocFromFile
+ File "src/lxml/parser.pxi", line 1231, in lxml.etree._BaseParser._parseDocFromFile
+ File "src/lxml/parser.pxi", line 647, in lxml.etree._ParserContext._handleParseResultDoc
+ File "src/lxml/parser.pxi", line 765, in lxml.etree._handleParseResult
+ File "src/lxml/parser.pxi", line 689, in lxml.etree._raiseParseError
+ File "../src/man/hostname.xml", line 5
+lxml.etree.XMLSyntaxError: Entity 'entities' not defined, line 5, column 11
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+ File "/work/src/tools/make-directive-index.py", line 180, in <module>
+ _xml = make_page(_template_path, _xml_files)
+ File "/work/src/tools/make-directive-index.py", line 171, in make_page
+ raise ValueError('failed to process ' + page) from e
+ValueError: failed to process ../src/man/hostname.xml
+
+Relying on XMLParser() defaults leaves the external parameter entity
+used to load custom-entities.ent unresolved. Request entity resolution explicitly.
+
+Follow-up for 1a13e31d275430ffba713c8a68ee7f22093c29e0
+---
+ tools/xml_helper.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/xml_helper.py b/tools/xml_helper.py
+index 87c24ab02a0f..e26ca92d9454 100755
+--- a/tools/xml_helper.py
++++ b/tools/xml_helper.py
+@@ -16,7 +16,7 @@ def resolve(self, url, _id, context):
+ return None
+
+
+-_parser = tree.XMLParser()
++_parser = tree.XMLParser(resolve_entities=True)
+ # pylint: disable=no-member
+ _parser.resolvers.add(CustomResolver())
+
diff --git a/sys-apps/systemd/systemd-260.1-r2.ebuild b/sys-apps/systemd/systemd-260.1-r2.ebuild
index f51c5114e8fe..1fc768b44e8b 100644
--- a/sys-apps/systemd/systemd-260.1-r2.ebuild
+++ b/sys-apps/systemd/systemd-260.1-r2.ebuild
@@ -260,6 +260,7 @@ src_prepare() {
"${FILESDIR}/systemd-260.1-openssl-4.patch"
"${FILESDIR}/systemd-260.1-gcc-17.patch"
"${FILESDIR}/systemd-260.1-gpt-generator.patch"
+ "${FILESDIR}/systemd-261-lxml-6.1.3.patch"
)
if ! use vanilla; then
diff --git a/sys-apps/systemd/systemd-260.4.ebuild b/sys-apps/systemd/systemd-260.4.ebuild
new file mode 100644
index 000000000000..fdedb0868b5d
--- /dev/null
+++ b/sys-apps/systemd/systemd-260.4.ebuild
@@ -0,0 +1,610 @@
+# Copyright 2011-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+# Avoid QA warnings
+TMPFILES_OPTIONAL=1
+UDEV_OPTIONAL=1
+
+QA_PKGCONFIG_VERSION=$(ver_cut 1)
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/systemd/systemd.git"
+ inherit git-r3
+else
+ MY_PV=${PV/_/-}
+ MY_P=${PN}-${MY_PV}
+ S=${WORKDIR}/${MY_P}
+ SRC_URI="https://github.com/systemd/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+
+ if [[ ${PV} != *rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ fi
+fi
+
+inherit branding flag-o-matic linux-info meson-multilib optfeature pam python-single-r1
+inherit secureboot shell-completion systemd toolchain-funcs udev
+
+DESCRIPTION="System and service manager for Linux"
+HOMEPAGE="https://systemd.io/"
+
+LICENSE="GPL-2 LGPL-2.1 MIT public-domain"
+SLOT="0/2"
+IUSE="
+ acl apparmor audit boot bpf cryptsetup curl +dns-over-tls elfutils
+ fido2 +gcrypt gnutls homed idn importd +kernel-install +kmod +libarchive +lz4 lzma
+ +openssl pam passwdqc pcre pkcs11 policykit pwquality qrcode remote
+ +resolvconf +seccomp selinux sysv-utils test tpm ukify vanilla xkb +zstd
+"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ boot? ( kernel-install )
+ dns-over-tls? ( openssl )
+ fido2? ( cryptsetup openssl )
+ homed? ( cryptsetup pam openssl )
+ importd? ( curl libarchive lzma openssl )
+ ?? ( passwdqc pwquality )
+ passwdqc? ( homed )
+ pwquality? ( homed )
+ remote? ( curl )
+ ukify? ( boot )
+"
+RESTRICT="!test? ( test )"
+
+MINKV="5.10"
+
+COMMON_DEPEND="
+ >=sys-apps/util-linux-2.37
+ acl? ( sys-apps/acl )
+ apparmor? ( >=sys-libs/libapparmor-2.13 )
+ audit? ( >=sys-process/audit-2 )
+ bpf? ( >=dev-libs/libbpf-1.4.0 )
+ cryptsetup? ( >=sys-fs/cryptsetup-2.4.0:= )
+ curl? ( >=net-misc/curl-7.32.0:0= )
+ elfutils? ( >=dev-libs/elfutils-0.177 )
+ elibc_glibc? (
+ >=sys-libs/glibc-2.34
+ >=sys-libs/libxcrypt-4.4.0
+ )
+ elibc_musl? (
+ >=sys-libs/musl-1.2.5-r8
+ virtual/libcrypt
+ )
+ fido2? (
+ dev-libs/libfido2
+ )
+ gcrypt? ( >=dev-libs/libgcrypt-1.4.5 )
+ gnutls? ( >=net-libs/gnutls-3.6.0:0= )
+ remote? ( >=net-libs/libmicrohttpd-0.9.33:0=[epoll(+)] )
+ idn? ( net-dns/libidn2 )
+ importd? (
+ app-arch/bzip2:0=
+ virtual/zlib:=
+ )
+ kmod? ( >=sys-apps/kmod-15:0= )
+ libarchive? ( >=app-arch/libarchive-3.0:0= )
+ lz4? ( >=app-arch/lz4-0_p131:0= )
+ lzma? ( >=app-arch/xz-utils-5.0.5-r1:0= )
+ openssl? ( >=dev-libs/openssl-3.0.0:0= )
+ pam? ( sys-libs/pam:=[${MULTILIB_USEDEP}] )
+ passwdqc? ( sys-auth/passwdqc )
+ pkcs11? ( >=app-crypt/p11-kit-0.23.3 )
+ pcre? ( dev-libs/libpcre2 )
+ pwquality? ( >=dev-libs/libpwquality-1.4.1 )
+ qrcode? ( >=media-gfx/qrencode-3:0= )
+ seccomp? ( >=sys-libs/libseccomp-2.4.0 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ tpm? ( app-crypt/tpm2-tss )
+ xkb? ( >=x11-libs/libxkbcommon-0.4.1 )
+ zstd? ( >=app-arch/zstd-1.4.0:0= )
+"
+
+# Newer linux-headers needed by ia64, bug #480218
+DEPEND="${COMMON_DEPEND}
+ >=sys-kernel/linux-headers-${MINKV}
+"
+
+PEFILE_DEPEND='dev-python/pefile[${PYTHON_USEDEP}]'
+
+# baselayout-2.2 has /run
+RDEPEND="${COMMON_DEPEND}
+ >=acct-group/adm-0-r1
+ >=acct-group/wheel-0-r1
+ >=acct-group/kmem-0-r1
+ >=acct-group/tty-0-r1
+ >=acct-group/utmp-0-r1
+ >=acct-group/audio-0-r1
+ >=acct-group/cdrom-0-r1
+ acct-group/clock
+ >=acct-group/dialout-0-r1
+ >=acct-group/disk-0-r1
+ >=acct-group/input-0-r1
+ >=acct-group/kvm-0-r1
+ >=acct-group/lp-0-r1
+ >=acct-group/render-0-r1
+ acct-group/sgx
+ >=acct-group/tape-0-r1
+ acct-group/users
+ >=acct-group/video-0-r1
+ >=acct-group/systemd-journal-0-r1
+ >=acct-user/root-0-r1
+ acct-user/nobody
+ >=acct-user/systemd-journal-remote-0-r1
+ >=acct-user/systemd-coredump-0-r1
+ >=acct-user/systemd-network-0-r1
+ acct-user/systemd-oom
+ >=acct-user/systemd-resolve-0-r1
+ >=acct-user/systemd-timesync-0-r1
+ >=sys-apps/baselayout-2.2
+ ukify? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep "${PEFILE_DEPEND}")
+ )
+ selinux? (
+ sec-policy/selinux-base-policy[systemd]
+ sec-policy/selinux-ntp
+ )
+ sysv-utils? (
+ !sys-apps/openrc[sysv-utils(-)]
+ !sys-apps/sysvinit
+ )
+ !sysv-utils? ( sys-apps/sysvinit )
+ resolvconf? ( !net-dns/openresolv )
+ !sys-auth/nss-myhostname
+ !sys-fs/eudev
+ !sys-fs/udev
+"
+
+# sys-apps/dbus: the daemon only (+ build-time lib dep for tests)
+PDEPEND="
+ >=sys-apps/dbus-1.9.8[systemd]
+ >=sys-fs/udev-init-scripts-34
+ policykit? ( sys-auth/polkit )
+ !sysv-utils? ( sys-apps/systemd-initctl )
+ !vanilla? ( sys-apps/gentoo-systemd-integration )
+"
+
+BDEPEND="
+ app-arch/xz-utils:0
+ dev-util/gperf
+ >=dev-build/meson-0.46
+ >=sys-apps/coreutils-8.16
+ sys-devel/gettext
+ virtual/pkgconfig
+ bpf? (
+ >=dev-util/bpftool-7.0.0
+ sys-devel/bpf-toolchain
+ )
+ test? (
+ app-text/tree
+ dev-lang/perl
+ >=dev-libs/glib-2.22.0:2
+ sys-apps/dbus
+ )
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt:0
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep "
+ dev-python/jinja2[\${PYTHON_USEDEP}]
+ dev-python/lxml[\${PYTHON_USEDEP}]
+ boot? (
+ >=dev-python/pyelftools-0.30[\${PYTHON_USEDEP}]
+ test? ( ${PEFILE_DEPEND} )
+ )
+ ")
+"
+
+QA_FLAGS_IGNORED="usr/lib/systemd/boot/efi/.*"
+QA_EXECSTACK="usr/lib/systemd/boot/efi/*"
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ local CONFIG_CHECK="~BLK_DEV_BSG ~CGROUPS
+ ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE
+ ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS
+ ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS
+ ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED
+ ~!SYSFS_DEPRECATED_V2"
+
+ use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL"
+ use bpf && CONFIG_CHECK+=" ~BPF ~BPF_SYSCALL ~BPF_LSM ~DEBUG_INFO_BTF"
+ use seccomp && CONFIG_CHECK+=" ~SECCOMP ~SECCOMP_FILTER"
+
+ if kernel_is -ge 5 10 20; then
+ CONFIG_CHECK+=" ~KCMP"
+ else
+ CONFIG_CHECK+=" ~CHECKPOINT_RESTORE"
+ fi
+
+ if kernel_is -ge 4 18; then
+ CONFIG_CHECK+=" ~AUTOFS_FS"
+ else
+ CONFIG_CHECK+=" ~AUTOFS4_FS"
+ fi
+
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ if linux_chkconfig_present X86; then
+ CONFIG_CHECK+=" ~DMIID"
+ fi
+ fi
+
+ if kernel_is -lt ${MINKV//./ }; then
+ ewarn "Kernel version at least ${MINKV} required"
+ fi
+
+ check_extra_config
+ fi
+}
+
+pkg_setup() {
+ use boot && secureboot_pkg_setup
+}
+
+src_unpack() {
+ default
+ [[ ${PV} != 9999 ]] || git-r3_src_unpack
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}/systemd-261-lxml-6.1.3.patch"
+ )
+
+ if ! use vanilla; then
+ PATCHES+=(
+ "${FILESDIR}/gentoo-journald-audit-r4.patch"
+ )
+ fi
+
+ default
+}
+
+src_configure() {
+ # Prevent conflicts with i686 cross toolchain, bug 559726
+ tc-export AR CC NM OBJCOPY RANLIB
+
+ # Our toolchain sets F_S=2 by default w/ >= -O2, so we need
+ # to unset F_S first, then explicitly set 2, to negate any default
+ # and anything set by the user if they're choosing 3 (or if they've
+ # modified GCC to set 3).
+ #
+ # malloc_usable_size doesn't play well with _F_S=3:
+ # https://github.com/systemd/systemd/issues/41459 (bug #971773)
+ if tc-is-clang && tc-enables-fortify-source ; then
+ # We can't unconditionally do this b/c we fortify needs
+ # some level of optimisation.
+ filter-flags -D_FORTIFY_SOURCE=3
+ append-cppflags -U_FORTIFY_SOURCE -D_GENTOO_NO_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
+ fi
+
+ python_setup
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myconf=(
+ --localstatedir="${EPREFIX}/var"
+ -Ddocdir="share/doc/${PF}"
+ -Dmode=release # default is developer, bug 918671
+ -Dlibc=$(usex elibc_musl musl glibc)
+ -Dsupport-url="${BRANDING_OS_SUPPORT_URL}"
+ -Dpamlibdir="$(getpam_mod_dir)"
+ -Dbashcompletiondir="$(get_bashcompdir)"
+ -Dzshcompletiondir="$(get_zshcompdir)"
+ -Dsplit-bin=false
+ -Dima=true # no deps
+ -Ddebug-shell="${EPREFIX}/bin/sh" # Match /etc/shells, bug 919749
+ -Ddefault-user-shell="${EPREFIX}/bin/bash"
+ -Dbpf-compiler=gcc
+ -Dntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org"
+ # Breaks screen, tmux, etc.
+ -Ddefault-kill-user-processes=false
+ -Dcreate-log-dirs=false
+ -Dlibcrypt=enabled
+ -Dcompat-mutable-uid-boundaries=true
+
+ # options affecting multilib
+ $(meson_use !elibc_musl nss-myhostname)
+ $(meson_feature !elibc_musl nss-mymachines)
+ $(meson_feature !elibc_musl nss-resolve)
+ $(meson_use !elibc_musl nss-systemd)
+ $(meson_feature pam)
+ )
+
+ # workaround for bug 969103
+ if [[ ${CHOST} == riscv32* ]] ; then
+ myconf+=( -Dtests=true )
+ else
+ myconf+=( $(meson_use test tests) )
+ fi
+
+ if multilib_is_native_abi; then
+ myconf+=(
+ --auto-features=enabled
+ -Dman=enabled
+ -Dxenctrl=disabled
+
+ # Optional components/dependencies
+ $(meson_feature acl)
+ $(meson_feature apparmor)
+ $(meson_feature audit)
+ $(meson_feature boot bootloader)
+ $(meson_feature bpf bpf-framework)
+ $(meson_feature cryptsetup libcryptsetup)
+ $(meson_feature cryptsetup libcryptsetup-plugins)
+ $(meson_feature curl libcurl)
+ $(meson_use dns-over-tls dns-over-tls)
+ $(meson_feature elfutils)
+ $(meson_feature fido2 libfido2)
+ $(meson_feature gcrypt)
+ $(meson_feature gnutls)
+ $(meson_feature homed)
+ $(meson_use idn)
+ $(meson_feature importd)
+ $(meson_feature importd bzip2)
+ $(meson_feature importd sysupdate)
+ $(meson_feature importd zlib)
+ $(meson_use kernel-install)
+ $(meson_feature kmod)
+ $(meson_feature libarchive)
+ $(meson_feature lz4)
+ $(meson_feature lzma xz)
+ $(meson_feature zstd)
+ $(meson_feature openssl)
+ $(meson_feature passwdqc)
+ $(meson_feature pkcs11 p11kit)
+ $(meson_feature pcre pcre2)
+ $(meson_feature policykit polkit)
+ $(meson_feature pwquality)
+ $(meson_feature qrcode qrencode)
+ $(meson_feature remote)
+ $(meson_feature remote microhttpd)
+ $(meson_feature seccomp)
+ $(meson_feature selinux)
+ $(meson_feature tpm tpm2)
+ $(meson_feature test dbus)
+ $(meson_feature test glib)
+ $(meson_feature ukify)
+ $(meson_feature xkb xkbcommon)
+ )
+
+ case $(tc-arch) in
+ amd64|arm|arm64|loong|ppc|ppc64|riscv|s390|x86)
+ # src/vmspawn/vmspawn-util.h: QEMU_MACHINE_TYPE
+ myconf+=( $(meson_native_enabled vmspawn) ) ;;
+ *)
+ myconf+=( -Dvmspawn=disabled ) ;;
+ esac
+ else
+ myconf+=(
+ --auto-features=disabled
+ )
+ fi
+
+ meson_src_configure "${myconf[@]}"
+}
+
+multilib_src_compile() {
+ local args=()
+ if ! multilib_is_native_abi; then
+ args+=(
+ devel libsystemd libudev
+ $(usex elibc_musl '' nss)
+ $(usev pam)
+ )
+ fi
+ meson_src_compile "${args[@]}"
+}
+
+multilib_src_test() {
+ local args=( --timeout-multiplier=10 )
+ if ! multilib_is_native_abi; then
+ args+=(
+ --suite libsystemd --suite libudev
+ $(usex elibc_musl '' '--suite nss')
+ $(usex pam '--suite pam' '')
+ )
+ fi
+ (
+ unset DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR
+ export COLUMNS=80
+ addpredict /dev
+ addpredict /proc
+ addpredict /run
+ addpredict /sys/fs/cgroup
+ meson_src_test "${args[@]}"
+ ) || die
+}
+
+multilib_src_install() {
+ local args=()
+ if ! multilib_is_native_abi; then
+ local tags=devel,libsystemd,libudev
+ use !elibc_musl && tags+=,nss
+ use pam && tags+=,pam
+ args+=( --tags "${tags}" )
+ fi
+ meson_src_install "${args[@]}"
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ dodoc "${FILESDIR}"/nsswitch.conf
+
+ insinto /usr/lib/tmpfiles.d
+ doins "${FILESDIR}"/legacy.conf
+
+ if ! use resolvconf; then
+ rm -f "${ED}"/usr/bin/resolvconf || die
+ fi
+
+ if ! use sysv-utils; then
+ rm "${ED}"/usr/bin/{halt,init,poweroff,reboot,shutdown} || die
+ rm "${ED}"/usr/share/man/man1/init.1 || die
+ rm "${ED}"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 || die
+ fi
+
+ # https://bugs.gentoo.org/761763
+ rm -r "${ED}"/usr/lib/sysusers.d || die
+
+ # Preserve empty dirs in /etc & /var, bug #437008
+ keepdir /etc/{binfmt.d,modules-load.d,tmpfiles.d}
+ keepdir /etc/kernel/install.d
+ keepdir /etc/systemd/{network,system,user}
+ keepdir /etc/udev/rules.d
+
+ keepdir /etc/udev/hwdb.d
+
+ keepdir /usr/lib/systemd/{system-sleep,system-shutdown}
+ keepdir /usr/lib/{binfmt.d,modules-load.d}
+ keepdir /usr/lib/systemd/user-generators
+ keepdir /var/lib/systemd
+ keepdir /var/log/journal
+
+ if use pam; then
+ if use selinux; then
+ newpamd "${FILESDIR}"/systemd-user-selinux.pam systemd-user
+ else
+ newpamd "${FILESDIR}"/systemd-user.pam systemd-user
+ fi
+ fi
+
+ if use kernel-install; then
+ # Dummy config, remove to make room for sys-kernel/installkernel
+ rm "${ED}/usr/lib/kernel/install.conf" || die
+ fi
+
+ use ukify && python_fix_shebang "${ED}"
+ use boot && secureboot_auto_sign
+}
+
+migrate_locale() {
+ local envd_locale_def="${EROOT}/etc/env.d/02locale"
+ local envd_locale=( "${EROOT}"/etc/env.d/??locale )
+ local locale_conf="${EROOT}/etc/locale.conf"
+
+ if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then
+ # If locale.conf does not exist...
+ if [[ -e ${envd_locale} ]]; then
+ # ...either copy env.d/??locale if there's one
+ ebegin "Moving ${envd_locale} to ${locale_conf}"
+ mv "${envd_locale}" "${locale_conf}"
+ eend ${?} || FAIL=1
+ else
+ # ...or create a dummy default
+ ebegin "Creating ${locale_conf}"
+ cat > "${locale_conf}" <<-EOF
+ # This file has been created by the sys-apps/systemd ebuild.
+ # See locale.conf(5) and localectl(1).
+
+ # LANG=${LANG}
+ EOF
+ eend ${?} || FAIL=1
+ fi
+ fi
+
+ if [[ ! -L ${envd_locale} ]]; then
+ # now, if env.d/??locale is not a symlink (to locale.conf)...
+ if [[ -e ${envd_locale} ]]; then
+ # ...warn the user that he has duplicate locale settings
+ ewarn
+ ewarn "To ensure consistent behavior, you should replace ${envd_locale}"
+ ewarn "with a symlink to ${locale_conf}. Please migrate your settings"
+ ewarn "and create the symlink with the following command:"
+ ewarn "ln -s -n -f ../locale.conf ${envd_locale}"
+ ewarn
+ else
+ # ...or just create the symlink if there's nothing here
+ ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink"
+ ln -n -s ../locale.conf "${envd_locale_def}"
+ eend ${?} || FAIL=1
+ fi
+ fi
+}
+
+pkg_preinst() {
+ if [[ -e ${EROOT}/etc/sysctl.conf ]]; then
+ # Symlink /etc/sysctl.conf for easy migration.
+ dosym ../../../etc/sysctl.conf /usr/lib/sysctl.d/99-sysctl.conf
+ fi
+
+ if ! use boot && has_version "sys-apps/systemd[gnuefi(-)]"; then
+ ewarn "The 'gnuefi' USE flag has been renamed to 'boot'."
+ ewarn "Make sure to enable the 'boot' USE flag if you use systemd-boot."
+ fi
+}
+
+pkg_postinst() {
+ systemd_update_catalog
+
+ # Keep this here in case the database format changes so it gets updated
+ # when required.
+ udev_hwdb_update || FAIL=1
+ udev_reload || FAIL=1
+
+ # Bug 465468, make sure locales are respected, and ensure consistency
+ # between OpenRC & systemd
+ migrate_locale
+
+ # Bug 971385, 974688
+ local autovt=${EROOT}/etc/systemd/system/autovt@.service
+ if [[ ! -e ${autovt} && ! -L ${autovt} ]]; then
+ ln -s "${EPREFIX}/usr/lib/systemd/system/getty@.service" "${autovt}" || FAIL=1
+ fi
+
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ if type systemctl &>/dev/null; then
+ systemctl --root="${ROOT:-/}" enable getty@.service remote-fs.target || FAIL=1
+ fi
+ elog "To enable a useful set of services, run the following:"
+ elog " systemctl preset-all --preset-mode=enable-only"
+ fi
+
+ if [[ -L ${EROOT}/var/lib/systemd/timesync ]]; then
+ rm "${EROOT}/var/lib/systemd/timesync"
+ fi
+
+ if [[ -z ${ROOT} && -d /run/systemd/system ]]; then
+ ebegin "Reexecuting system manager (systemd)"
+ systemctl daemon-reexec
+ eend $? || FAIL=1
+
+ # https://lists.freedesktop.org/archives/systemd-devel/2024-June/050466.html
+ ebegin "Signaling user managers to reexec"
+ systemctl kill --kill-whom='main' --signal='SIGRTMIN+25' 'user@*.service'
+ eend $?
+ fi
+
+ if [[ ${FAIL} ]]; then
+ eerror "One of the postinst commands failed. Please check the postinst output"
+ eerror "for errors. You may need to clean up your system and/or try installing"
+ eerror "systemd again."
+ eerror
+ fi
+
+ if use boot; then
+ optfeature "installing kernels in systemd-boot's native layout and update loader entries" \
+ "sys-kernel/installkernel[systemd-boot]"
+ fi
+ if use ukify; then
+ optfeature "generating unified kernel image on each kernel installation" \
+ "sys-kernel/installkernel[ukify]"
+ fi
+}
+
+pkg_prerm() {
+ # If removing systemd completely, remove the catalog database.
+ if [[ ! ${REPLACED_BY_VERSION} ]]; then
+ rm -f -v "${EROOT}"/var/lib/systemd/catalog/database
+ fi
+}
diff --git a/sys-apps/systemd/systemd-261.2.ebuild b/sys-apps/systemd/systemd-261.2.ebuild
index 93a8fe78f62f..8ac96c6c8510 100644
--- a/sys-apps/systemd/systemd-261.2.ebuild
+++ b/sys-apps/systemd/systemd-261.2.ebuild
@@ -261,6 +261,7 @@ src_unpack() {
src_prepare() {
local PATCHES=(
"${FILESDIR}/261-gcc-bpf.patch"
+ "${FILESDIR}/systemd-261-lxml-6.1.3.patch"
)
if ! use vanilla; then
diff --git a/sys-apps/systemd/systemd-262_rc1.ebuild b/sys-apps/systemd/systemd-262_rc1.ebuild
index 84983a094210..59b2bb2d98e2 100644
--- a/sys-apps/systemd/systemd-262_rc1.ebuild
+++ b/sys-apps/systemd/systemd-262_rc1.ebuild
@@ -260,6 +260,7 @@ src_unpack() {
src_prepare() {
local PATCHES=(
+ "${FILESDIR}/systemd-261-lxml-6.1.3.patch"
)
if ! use vanilla; then
diff --git a/sys-devel/rust-std/Manifest b/sys-devel/rust-std/Manifest
index 504a79a1c450..ec54855ceeb9 100644
--- a/sys-devel/rust-std/Manifest
+++ b/sys-devel/rust-std/Manifest
@@ -36,3 +36,5 @@ DIST rustc-1.96.1-src.tar.xz 241602032 BLAKE2B b8a489293a232faf24a7eaaa439f752bc
DIST rustc-1.96.1-src.tar.xz.asc 801 BLAKE2B b54bed57d90fed66806fe0b16c6d81d880bf0398030d639cdc440d7df5a8699d1d0ec5803baee9f0ffd9503be11be3b202f6f4ec86a2167f5349317a714bd265 SHA512 1765666d2509d93cbbad5f47507ba7510fc07cf650689238a8d39d33be0d85a06c4cd67281d78a1b5e29258002d7dd6da912c9015a8d0e942ee01fc46fa0dca3
DIST rustc-1.97.1-src.tar.xz 242787896 BLAKE2B d54e89d84b25d68761663f1c243480f1bb061c30ee17e731f3d9cd1ff52639cf198647347884d7325f2dbc1582a3d8095908352edcb944a49e5b0581160d5fb6 SHA512 a04178bf0f2c43cbb503a5ea48145eebfee371766a589c0855079ae6a7f3945223850dcc6bce2a94b9f9ead1595d99de09bb00cd6180300e0da58dc247f043eb
DIST rustc-1.97.1-src.tar.xz.asc 801 BLAKE2B d0841e9decf17d18c13c33bf0bdb8a51873799465bafa402090f7f680046d141eea0a633278a7387ee741a8a5dd6ceac40384b4a06132e99b34bb7e22f740d04 SHA512 9d3ca698b1a1a453cac8758622609414f10868e8890491d8cd8c0eed796b689623f91cc28377c1e4c33095f02e92af7d1230458fe4e1fd830b6139799af50f32
+DIST rustc-1.98.1-src.tar.xz 244440824 BLAKE2B a055c8341556f29a6e2ca5137ca7943365d61d3b7dc30b182c5c62907659d16ad0caf8c5e884ce2bcf79a01844e19563c9c208fecbebe0c38f8ae6473f60e0eb SHA512 58941e5606651d5a254f36d9771bf6524347068a69ad6fcfb72d0f02b066b16fb415e5d54c8e1266fef777a64ede69c47042f13525a29e39be3e9da84dbccdf4
+DIST rustc-1.98.1-src.tar.xz.asc 801 BLAKE2B abee669a3b9545a50cbc8e4c604a8ff167bf4f0ebf77ef5efebe2c38141e22930ab11ec6c54cd2892bca5295510cb4b65a5a28eba5f70b148cd474921e4fd140 SHA512 2c030148eca74e2d1e5f497b6dc0725a3d3d5dc328ad9f854d46067f24b682f99e7cee9de415b3450e8c315015dd73c1945dd2785163d12dfd0119d089b78276
diff --git a/sys-devel/rust-std/rust-std-1.98.1.ebuild b/sys-devel/rust-std/rust-std-1.98.1.ebuild
new file mode 100644
index 000000000000..72ddaac7aa30
--- /dev/null
+++ b/sys-devel/rust-std/rust-std-1.98.1.ebuild
@@ -0,0 +1,171 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo flag-o-matic multiprocessing python-any-r1 rust-toolchain toolchain-funcs verify-sig crossdev
+
+DESCRIPTION="Rust standard library, standalone (for crossdev)"
+HOMEPAGE="https://rust-lang.org/"
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/rust-lang/rust.git"
+ EGIT_SUBMODULES=(
+ "*"
+ "-src/gcc"
+ )
+elif [[ ${PV} == *beta* ]]; then
+ # Identify the snapshot date of the beta release:
+ # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz
+ verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc
+ -> rustc-${PV}-src.tar.xz.asc )
+ "
+ S="${WORKDIR}/${MY_P}-src"
+else
+ MY_P="rustc-${PV}"
+ SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz
+ verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc )
+ "
+ S="${WORKDIR}/${MY_P}-src"
+fi
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4"
+SLOT="stable/$(ver_cut 1-2)"
+# please do not keyword
+#KEYWORDS="" #nowarn
+IUSE="debug llvm-libunwind"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/rust-${PV}:=
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+DEPEND="||
+ (
+ >="${CATEGORY}"/gcc-4.7:*
+ >="${CATEGORY/sys-devel/llvm-core}"/clang-3.5:*
+ )
+"
+RDEPEND="${DEPEND}"
+
+# need full compiler to run tests
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+QA_FLAGS_IGNORED="usr/lib/rust/${PV}/rustlib/.*/lib/lib.*.so"
+
+toml_usex() {
+ usex "$1" true false
+}
+
+pkg_pretend() {
+ is_crosspkg || die "${PN} should only be used for cross"
+}
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+}
+
+src_configure() {
+ # do the great cleanup
+ strip-flags
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*' '-m32' '-m64'
+ strip-unsupported-flags
+
+ local rust_root x
+ rust_root="$(rustc --print sysroot)"
+ rtarget="$(rust_abi ${CTARGET})"
+ rtarget="${ERUST_STD_RTARGET:-${rtarget}}" # some targets need to be custom.
+ rbuild="$(rust_abi ${CBUILD})"
+ rhost="$(rust_abi ${CHOST})"
+
+ echo
+ for x in CATEGORY rust_root rbuild rhost rtarget RUSTFLAGS CFLAGS CXXFLAGS LDFLAGS; do
+ einfo "$(printf '%10s' ${x^^}:) ${!x}"
+ done
+
+ cat <<- EOF > "${S}"/bootstrap.toml
+ [build]
+ build = "${rbuild}"
+ host = ["${rhost}"]
+ target = ["${rtarget}"]
+ cargo = "${rust_root}/bin/cargo"
+ rustc = "${rust_root}/bin/rustc"
+ submodules = false
+ local-rebuild = true
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ verbose = 2
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debuginfo-level-rustc = 0
+ backtrace = true
+ incremental = false
+ default-linker = "$(tc-getCC)"
+ rpath = false
+ dist-src = false
+ remap-debuginfo = true
+ jemalloc = false
+ [dist]
+ src-tarball = false
+ [target.${rtarget}]
+ ar = "$(tc-getAR ${CTARGET})"
+ cc = "$(tc-getCC ${CTARGET})"
+ cxx = "$(tc-getCXX ${CTARGET})"
+ linker = "$(tc-getCC ${CTARGET})"
+ ranlib = "$(tc-getRANLIB ${CTARGET})"
+ llvm-libunwind = "$(usex llvm-libunwind in-tree no)"
+ EOF
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/bootstrap.toml
+ crt-static = false
+ musl-root = "/usr/${CTARGET}/usr"
+ _EOF_
+ fi
+ einfo "${PN^} configured with the following settings:"
+ cat "${S}"/bootstrap.toml || die
+}
+
+src_compile() {
+ edo env RUST_BACKTRACE=1 \
+ "${EPYTHON}" ./x.py build -vv --config="${S}"/bootstrap.toml -j$(makeopts_jobs) \
+ library/std --stage 0
+}
+
+src_test() {
+ ewarn "${PN} can't run tests"
+}
+
+src_install() {
+ local rustlib="lib/rust/${PV}/lib/rustlib"
+ dodir "/usr/${rustlib}"
+ pushd "build/${rhost}/stage0-sysroot/lib/rustlib" > /dev/null || die
+ cp -pPRv "${rtarget}" "${ED}/usr/${rustlib}" || die
+ popd > /dev/null || die
+}
diff --git a/sys-kernel/raspberrypi-sources/Manifest b/sys-kernel/raspberrypi-sources/Manifest
index 2d631a3918a8..95680384f6f6 100644
--- a/sys-kernel/raspberrypi-sources/Manifest
+++ b/sys-kernel/raspberrypi-sources/Manifest
@@ -15,7 +15,8 @@ DIST genpatches-6.6-54.extras.tar.xz 4060 BLAKE2B 22ea7d143bfe168bc5d9d30832423b
DIST linux-6.1.21_p20230405-raspberrypi.tar.gz 221783059 BLAKE2B 5e9e13b6410df1b9e4bcdef85a6b33de83621a74d89bb6760dcff86cd736262513f613e9279a8dccf5ca306a807c16652084a3e6b4cb34c3658a8e9e3196c5d1 SHA512 0c8252833bb737977c0981ed48764ff9742de7cb494fefec532c90312e0d8e0e48a230dd14a0d6f99b54b015e6c91e647b579f2ef7408b80e349a547767d9925
DIST linux-6.12.47_p20250916-raspberrypi.tar.gz 246822724 BLAKE2B 65250b110ddc9b0510e2e64f1b15c43495a8e073dde40f43c6c0257ffe377067c4d6125aa3c5a2ae39af8586e3d98ac54efd73500774351b48ab57edf6441e42 SHA512 5818d7ac495dc31a27c9b967bf146d291ab6fd06b99e819d9c685d5413472593cd99a4d7ce10218c45d7fb631adceed8e20806b1f2f9909277ce0de7ad204565
DIST linux-6.12.75_p20260408-raspberrypi.tar.gz 246976073 BLAKE2B 4f3ec9e161baf686868ce7eafb99c8d686c606008b5c078259bed0623ca0ba1a011c6e9298d87edd58ff0a471d54ecc51ce896eb66eeb907d664e95b1dd8b2d1 SHA512 5f960ef9a7c7569b8bef98051d9ffe1debf83d449dad99f1a8261011c58293d0bb1ad1e78d458f632ebf2f931e6798f6bf6e2e30114ec27b67bc4473a4ac62ad
+DIST linux-6.18.32_p20260521-raspberrypi-r1.tar.gz 256933973 BLAKE2B 3855bfe22e4a0f9fe1ec8f90de0086fe1cd9e19ff83e345953e96ee864dff5f757b6d371ead10afb8047b331af13bfaa47fcb23e05c4048d4e7fbe288735cb47 SHA512 2fe076a58c237808bad337c5ffc713144cc69ba2ae8f4e2a83dbb79317cdfe4340db7df3f60f784d5d646cee1471d493567596c39089a8bbb33b51123118c512
DIST linux-6.18.32_p20260521-raspberrypi.tar.gz 256913944 BLAKE2B f1c30cff226d16c00f3c208b15b40598937eeb4360d7b6eeef6192a36336ba03ecd7f2ec2652f32d32da4ccc8b4d30748760cd0f180602658f145ab1acd462d5 SHA512 a3204305d5a1689412d8b239033b20211563295b6e1e79130e31358e3836726104a6e4b8678a753e9cc5ed3a1988cca69ef0f1c0d88be40c196c1bd4e362b082
-DIST linux-6.18.46_p20260824-raspberrypi.tar.gz 256913944 BLAKE2B f1c30cff226d16c00f3c208b15b40598937eeb4360d7b6eeef6192a36336ba03ecd7f2ec2652f32d32da4ccc8b4d30748760cd0f180602658f145ab1acd462d5 SHA512 a3204305d5a1689412d8b239033b20211563295b6e1e79130e31358e3836726104a6e4b8678a753e9cc5ed3a1988cca69ef0f1c0d88be40c196c1bd4e362b082
+DIST linux-6.18.46_p20260824-raspberrypi-r1.tar.gz 257237911 BLAKE2B 339ceefee6222cc864a11ade1eee2914d3f79c0f0e4ba0eb0fdbc32460009f8a76afae885168dfd291ccdde9e681e9d708be5b78a299d05d4d8fed80c6017118 SHA512 38e2e23a8ac98f19d8146c252751153f1fffe355ef8451b8db6c08341588e8fbab91ede4483b9e0c14f9075189a8959b6f6157ccd2f40eb8864424f964798de0
DIST linux-6.6.31_p20240529-raspberrypi.tar.gz 230924637 BLAKE2B bf8e5aba5597e98279b1c9d007112f57175c7cab15acbd2e9a7151f6290d3f1bee10299344b2655ade3cf2c73035b8f6e7fc9071d182a4c4ab839937fb0b59ef SHA512 3eb710dab82783a5254169e5bc2ac59fe4d3bd0fffbfd7a119a6182767b48186f4505d551fd7cc9ff002abf957e82108242d5a101266f77146d514fe3116fea5
DIST linux-6.6.47_p20240902-raspberrypi.tar.gz 231225067 BLAKE2B a7848290848f33ab8ae39364c6b5895f45ae82e9a72f60b8471522c8f8bf04627b3abab26e7c1ed10c12b6621d0490d10a6cbc455013dfc8b1296d35b7230998 SHA512 98c033c3f3440c26d97d17855b6057f41d633f0d7d5d22af32feec49f12fcec4181497ec97ac78ce96eb4e601a1fd400c832acf6e148da3cad419cdfc2587382
diff --git a/sys-kernel/raspberrypi-sources/raspberrypi-sources-6.18.32_p20260521-r1.ebuild b/sys-kernel/raspberrypi-sources/raspberrypi-sources-6.18.32_p20260521-r1.ebuild
new file mode 100644
index 000000000000..6eca384056af
--- /dev/null
+++ b/sys-kernel/raspberrypi-sources/raspberrypi-sources-6.18.32_p20260521-r1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ETYPE=sources
+K_DEFCONFIG="bcmrpi_defconfig"
+K_SECURITY_UNSUPPORTED=1
+EXTRAVERSION="-${PN}/-*"
+
+K_EXP_GENPATCHES_NOUSE=1
+K_GENPATCHES_VER=36
+K_DEBLOB_AVAILABLE=0
+K_WANT_GENPATCHES="base extras"
+
+inherit kernel-2 linux-info
+detect_version
+detect_arch
+
+#MY_P=$(ver_cut 4-)
+#MY_P="stable_${MY_P/p/}"
+COMMIT=e165a3e0c5c6729d077c30c6d720c029d688d99d
+MY_P=${COMMIT}
+
+DESCRIPTION="Raspberry Pi kernel sources"
+HOMEPAGE="https://github.com/raspberrypi/linux"
+SRC_URI="
+ https://github.com/raspberrypi/linux/archive/${MY_P}.tar.gz -> linux-${KV_FULL}.tar.gz
+ ${GENPATCHES_URI}
+"
+
+KEYWORDS="~arm ~arm64"
+
+PATCHES=("${FILESDIR}"/${PN}-6.1.21-gentoo-kconfig.patch)
+
+UNIPATCH_EXCLUDE="
+ 10*
+ 15*
+ 1600
+ 1700
+ 1730
+ 1740
+ 1741
+ 1801
+ 2000
+ 201*
+ 2400
+ 2700
+ 2800
+ 29*
+ 3000
+ 4567"
+
+pkg_setup() {
+ ewarn ""
+ ewarn "${PN} is *not* supported by the Gentoo Kernel Project in any way."
+ ewarn "If you need support, please contact the raspberrypi developers directly."
+ ewarn "Do *not* open bugs in Gentoo's bugzilla unless you have issues with"
+ ewarn "the ebuilds. Thank you."
+ ewarn ""
+
+ kernel-2_pkg_setup
+}
+
+universal_unpack() {
+ unpack linux-${KV_FULL}.tar.gz
+
+ # We want to rename the unpacked directory to a nice normalised string
+ # bug #762766
+ mv "${WORKDIR}"/linux-${MY_P} "${WORKDIR}"/linux-${KV_FULL} || die
+
+ # remove all backup files
+ find . -iname "*~" -exec rm {} \; 2>/dev/null
+}
diff --git a/sys-kernel/raspberrypi-sources/raspberrypi-sources-6.18.46_p20260824.ebuild b/sys-kernel/raspberrypi-sources/raspberrypi-sources-6.18.46_p20260824-r1.ebuild
index b01f7660d24f..2c90ab45fef0 100644
--- a/sys-kernel/raspberrypi-sources/raspberrypi-sources-6.18.46_p20260824.ebuild
+++ b/sys-kernel/raspberrypi-sources/raspberrypi-sources-6.18.46_p20260824-r1.ebuild
@@ -19,7 +19,7 @@ detect_arch
#MY_P=$(ver_cut 4-)
#MY_P="stable_${MY_P/p/}"
-COMMIT=66318c5b5cd8145a662303af12ed39ac07eb27cc
+COMMIT=16f1da3c4e94437449d6aa151589ca0ad4b388bb
MY_P=${COMMIT}
DESCRIPTION="Raspberry Pi kernel sources"
diff --git a/sys-power/nct6687d/Manifest b/sys-power/nct6687d/Manifest
index 7bdb7fb03af2..122d1171a197 100644
--- a/sys-power/nct6687d/Manifest
+++ b/sys-power/nct6687d/Manifest
@@ -1,2 +1,2 @@
-DIST nct6687d-0_pre20260313.tar.gz 278911 BLAKE2B c14889cb43f1c71488c570ef4587da8d984fa0030735b5d45d105d1fc5534faf95b14cb9b8a09d23e4eb0a9941e8bfd0bbe12974fec549935253b040a880ad29 SHA512 a70c814cda5a1065b6fa75e8f84d0d0c8cfa2186d6873c4e486552bbeb05245c80a39200c0de8a4f60e78bbdff9d7e0d00ae95a9be99a7b6bae529691744fd21
DIST nct6687d-0_pre20260519.tar.gz 279788 BLAKE2B 926f55d2cb63a7ac00653e0209b802e0833bd8ec0dae4de79b25fea664239e026943e0b98544c6f56384367348932256e0e1d0913cf23ef23be5f28c7d2043b3 SHA512 b997a67ebc9d272489e14a4ffa3dbfa596d16151cb882002ce8dcdc31a1ad75c54a02256c3c41cdd80dfbbe44e2562ddaf561740e9721e6df417825460fe6774
+DIST nct6687d-0_pre20260901.tar.gz 285460 BLAKE2B 28c9b0c8f5c81578a2ca59713357fba6f0d0dc1261146106801170b06f9059744c350ea4c2912a6b258b839b9460c64650bc306821967cf2a6c6e6afccaf32f6 SHA512 39f7c441d54d7000f50d36eae87384a097acc909d5c12c1b832b6e2ee21b2966e51eeecd95bcccc6bc034a0dffc67f16259fc4953e7eca23f7d7ba1b9731aa78
diff --git a/sys-power/nct6687d/nct6687d-0_pre20260313.ebuild b/sys-power/nct6687d/nct6687d-0_pre20260901.ebuild
index ececb76e4ca1..b1f9e51a0c16 100644
--- a/sys-power/nct6687d/nct6687d-0_pre20260313.ebuild
+++ b/sys-power/nct6687d/nct6687d-0_pre20260901.ebuild
@@ -9,7 +9,7 @@ if [[ ${PV} == 9999 ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/Fred78290/nct6687d"
else
- COMMIT="cedda8bff09a4083e07414fb80fdc3901e7ab544"
+ COMMIT="5997c92b41081bfb870a9b6167b7e96e3efdd50f"
SRC_URI="https://github.com/Fred78290/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${COMMIT}"
KEYWORDS="~amd64"
@@ -22,7 +22,7 @@ LICENSE="GPL-2"
SLOT="0"
src_compile() {
- local modlist=( nct6687=drivers/hwmon::${KV_FULL}:build )
- local modargs=( kver="${KV_FULL}" )
+ local modlist=( nct6687=kernel/drivers/hwmon:::build )
+ local modargs=( KVER="${KV_FULL}" KDIR="${KV_OUT_DIR}" )
linux-mod-r1_src_compile
}
diff --git a/sys-power/nct6687d/nct6687d-9999.ebuild b/sys-power/nct6687d/nct6687d-9999.ebuild
index a079a1543a49..60a285907814 100644
--- a/sys-power/nct6687d/nct6687d-9999.ebuild
+++ b/sys-power/nct6687d/nct6687d-9999.ebuild
@@ -22,7 +22,7 @@ LICENSE="GPL-2"
SLOT="0"
src_compile() {
- local modlist=( nct6687=kernel/drivers/hwmon::${KV_FULL}:build )
- local modargs=( kver="${KV_FULL}" )
+ local modlist=( nct6687=kernel/drivers/hwmon:::build )
+ local modargs=( KVER="${KV_FULL}" KDIR="${KV_OUT_DIR}" )
linux-mod-r1_src_compile
}
diff --git a/www-client/firefox/firefox-140.15.0.ebuild b/www-client/firefox/firefox-140.15.0.ebuild
index 70251c99a5e6..ea897bae0190 100644
--- a/www-client/firefox/firefox-140.15.0.ebuild
+++ b/www-client/firefox/firefox-140.15.0.ebuild
@@ -80,7 +80,7 @@ SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}
S="${WORKDIR}/${PN}-${PV%_*}"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
-KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio selinux sndio"
IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx"
diff --git a/www-client/librewolf-bin/Manifest b/www-client/librewolf-bin/Manifest
index c7699469fcad..c6b73a1005ad 100644
--- a/www-client/librewolf-bin/Manifest
+++ b/www-client/librewolf-bin/Manifest
@@ -2,3 +2,5 @@ DIST librewolf-154.0-2-linux-arm64-package.tar.xz 89749460 BLAKE2B 307be59a6f4fd
DIST librewolf-154.0-2-linux-x86_64-package.tar.xz 99993892 BLAKE2B ceffec15fbf6b44759544edc1f85d46e2d6d4b78d97bda88810f30163e7962fade3cd2dc1d7d6b2257a746d1abdb03c3bd35415d23b483317ace0cb60c6d04a1 SHA512 3aa2e1f634fcb2251d52192c88197bacf7481440e67506c10a16b0d12f7849e7c9231ed686fc8c6915cd6f424b25c8fa84ebb74ce0a3db874279f333cc5729ed
DIST librewolf-154.0.1-3-linux-arm64-package.tar.xz 89547904 BLAKE2B 92112aeebbb48adc7170bb8a912117d51c324b4d69bb4fefa431f65e61013c4cb3f786cadb9691dbe4d82449ed47481f4243f2a438addc4b5ed0c604873ae5f4 SHA512 faae1642f99d81309edb700c02cb7c6a965797c55660fb49d8907523348754d3900b1f6fe2111ac517e60c3a5c5f66f9d4a5c80632477b6bb10740b86d7e9497
DIST librewolf-154.0.1-3-linux-x86_64-package.tar.xz 99533404 BLAKE2B 3251f745520e3e8bdfb03dff2bbbd3ff016f9fd57ddde41e9497e53fa0e27f9a421fe57f49b47936152043a52a5f7215e568c1232f9f20b3824ce7f0f6fff5dc SHA512 913a11e7d6bd32481919cf8e7fc12b27d4516c5b5bc6cf53544afa126bb71bade942cf65cf3a27a99e1eae47beb871c14a9dc11ab5a3ebbbda54ab5234ce449b
+DIST librewolf-155.0-1-linux-arm64-package.tar.xz 89404648 BLAKE2B 5b3b54d0e0739bd0c1ad3078e64ac352cb78ce6b3492dbf5a414688081e9c900c2f26bcc2c396332d6a0c86a338f4b045b183766027185d1d73cfeea743266ec SHA512 d8d4e002ae7b54b93a2d58b2f6722f46b0b8d1a4c4952e2c4d831fb5b3585fb75ff1d858f7da69d28fced724acb995812232bf738487d7ceb4bbb3834bb1cacc
+DIST librewolf-155.0-1-linux-x86_64-package.tar.xz 99628592 BLAKE2B 552440be23bc288119fa09db0ee8d7fcf51e1cc2857983bf15a558ebe1b7869e63bc80a7a7da5a7b4f5dbabe9ac9f8a502c59bff886cb72294f2d3a32e0c1605 SHA512 dcf871c029fef0c2abc30ccc668a8e68e556644f7cb74b3712d96a9fe16fa49ab4a733bf5c32fca3a3ba514008d480a30bab5c9690ed3239e5b186c3b3abba23
diff --git a/www-client/librewolf-bin/librewolf-bin-155.0_p1.ebuild b/www-client/librewolf-bin/librewolf-bin-155.0_p1.ebuild
new file mode 100644
index 000000000000..caefc458634a
--- /dev/null
+++ b/www-client/librewolf-bin/librewolf-bin-155.0_p1.ebuild
@@ -0,0 +1,321 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LIBREWOLF_PV="${PV/_p/-}"
+
+MOZ_ESR=
+
+MOZ_PV=${PV/_p[0-9]/}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit desktop linux-info optfeature pax-utils xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+SRC_URI="${SRC_URI}
+ amd64? ( https://dl.librewolf.net/librewolf/${LIBREWOLF_PV}/librewolf-${LIBREWOLF_PV}-linux-x86_64-package.tar.xz )
+ arm64? ( https://dl.librewolf.net/librewolf/${LIBREWOLF_PV}/librewolf-${LIBREWOLF_PV}-linux-arm64-package.tar.xz )"
+
+DESCRIPTION="LibreWolf Web Browser"
+HOMEPAGE="https://librewolf.net/"
+
+KEYWORDS="-* amd64 ~arm64"
+SLOT="0"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+IUSE="selinux wayland"
+
+RESTRICT="strip"
+
+BDEPEND="app-arch/unzip"
+RDEPEND="${DEPEND}
+ || (
+ media-libs/libpulse
+ media-sound/apulse
+ )
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ >=dev-libs/glib-2.26:2
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ >=media-libs/freetype-2.4.10
+ media-video/ffmpeg
+ sys-apps/dbus
+ virtual/freedesktop-icon-theme
+ >=x11-libs/cairo-1.10[X]
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-3.11:3[X,wayland?]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXcursor
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libxcb
+ >=x11-libs/pango-1.22.0
+ selinux? ( sec-policy/selinux-mozilla )
+"
+
+QA_PREBUILT="opt/${MOZ_PN}/*"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+MOZ_LANGS=()
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+ SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
+ SRC_URI+=" )"
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
+
+ linux-info_pkg_setup
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ mkdir "${S}" || die
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ MY_SRC_FILE=${_src_file}
+ fi
+ done
+}
+
+src_install() {
+ # Set MOZILLA_FIVE_HOME
+ local MOZILLA_FIVE_HOME="/opt/${MOZ_PN}"
+
+ dodir /opt
+ pushd "${ED}"/opt &>/dev/null || die
+ unpack "${MY_SRC_FILE}"
+ popd &>/dev/null || die
+
+ pax-mark m \
+ "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN} \
+ "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN}-bin \
+ "${ED}${MOZILLA_FIVE_HOME}"/plugin-container
+
+ # Prevent auto-updater from popping up.
+ echo "This installation is managed by Gentoo's package manager." > "${ED}${MOZILLA_FIVE_HOME}"/is-packaged-app
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ # insinto "${PREFS_DIR}"
+ # newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js
+
+ # local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js"
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install icons
+ local icon_srcdir="${ED}/${MOZILLA_FIVE_HOME}/browser/chrome/icons/default"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="LibreWolf (bin)"
+ local desktop_file="${FILESDIR}/firefox-bin-r3.desktop"
+ local desktop_filename="${PN}.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ # Add apulse support through our wrapper shell launcher, patchelf-method broken since 119.0.
+ # See bgo#916230, bgo#941873
+ local apulselib=
+ if has_version -r media-sound/apulse[-sdk] ; then
+ apulselib="${EPREFIX}/usr/$(get_libdir)/apulse"
+ ewarn "media-sound/apulse with -sdk use flag detected!"
+ ewarn "Firefox-bin will be installed with a wrapper, that attempts to load"
+ ewarn "apulse instead of pipewire/pulseadio. This may lead to sound issues."
+ ewarn "Please either enable sdk use flag for apulse, or remove apulse"
+ ewarn "completely and re-install firefox-bin to utilize pipewire/pulseaudio instead."
+ fi
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" \
+ || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/firefox-bin-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${EPREFIX}${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" \
+ || die
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ local show_doh_information show_normandy_information
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ # New install; Tell user that DoH is disabled by default
+ show_doh_information=yes
+ show_normandy_information=yes
+ fi
+
+ if [[ -n "${show_doh_information}" ]] ; then
+ elog
+ elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
+ elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
+ elog "DNS traffic to Cloudflare by default is not a good idea and applications"
+ elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
+ elog "(\"Off by choice\") by default."
+ elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+ fi
+
+ # bug 713782
+ if [[ -n "${show_normandy_information}" ]] ; then
+ elog
+ elog "Upstream operates a service named Normandy which allows Mozilla to"
+ elog "push changes for default settings or even install new add-ons remotely."
+ elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
+ elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
+ elog "concerns prevail, which is why we have switched off the use of this"
+ elog "service by default."
+ elog
+ elog "To re-enable this service set"
+ elog
+ elog " app.normandy.enabled=true"
+ elog
+ elog "in about:config."
+ fi
+
+ optfeature_header "Optional programs for extra features:"
+ optfeature "speech syntesis (text-to-speech) support" app-accessibility/speech-dispatcher
+ optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas
+ # optfeature "ffmpeg-based audio/video codec support, required for HTML5 video rendering" media-video/ffmpeg
+ optfeature "desktop notifications" x11-libs/libnotify
+}
diff --git a/www-client/librewolf/Manifest b/www-client/librewolf/Manifest
index 242d92bb20b2..b7e1837e7a6d 100644
--- a/www-client/librewolf/Manifest
+++ b/www-client/librewolf/Manifest
@@ -1,9 +1,13 @@
DIST firefox-153-patches-01.tar.xz 11308 BLAKE2B cfb7e8528f46e780ff10d728d6f2f00215c9cb940f3ba289aafee183199fd2a38cbe866697b5bd89458d8dce7e82e9a7dc6977e817bbeac1a01178a64adb0405 SHA512 11895ae7eba03b12ae60c280c3ea555c2954dd15eaa8a459f9a95b96629723ed599ab4e7738b33f1bdb0d09d19bccb53d511eaac9913a58e6418c11fe93c92bc
DIST firefox-154-patches-01.tar.xz 12796 BLAKE2B bc9cff535a3a8ca67564ffdf636e3d4741e4cb3307e2acaf07c58448061ab16dad0827ca51df670007c58424fcd2e8670e30ef3a59ba98428676eb19b34903ce SHA512 4ca08c6ede5a4d1e02c84ef023d33026d8e25b864a581e552096510eaebd1c674f230b4d8c1c6f4d8f7489fd1981c26b6a4713b574416bde770d28505b6d7c1c
DIST firefox-154-patches-02.tar.xz 14064 BLAKE2B 43fe3a4d309eed7fad5514d54a2a261c9914223a2f28f2457b0671793e050484f108ff55fa91f40d6256ed3d1657082bd26219aa79c27da06eca04999578a56a SHA512 efe0aebb62e847cb8d0399a4a3020f4826ab894a0bd34534de12a9ea8361a8352ecba564e1474ea92e3cf92d3a126fed5b0584ef5be3ccc1bec7466f5d5ce130
+DIST firefox-155-patches-04.tar.xz 12860 BLAKE2B f16f2ce03d625f12c1512ab8271c6bd368b5774482b4173723fbfed7be4f37444f084d6b18c047310dc76ed4be42b18f5580934cc5e9afbb6058173c869a63df SHA512 8f341eaf640d3b75e95b152e36e59836ef7cacfa4182c8dd759e2303fadc3261c28a1f81440f1456aa5477ccbb53542f79599be021d208cf4b1a025eebce07ba
DIST librewolf-153.0.3-1.source.tar.gz 1164999841 BLAKE2B 407c3cfeb37fe226af82af394b83dcb5f880c521fcdb03a990c01c8a3a5a3179664b59a88529f0c6e14496b0ef19d88be08cb03d988e59d92cfa0e1c94602182 SHA512 4b988d4df3f3c45e7382e86631c9c76f579f7907f5d1bc6cbba57301fc3fb3735fd52d6151c412f256f1af379d88b34d11213b355d658e7614fbcc9dc6541fe2
DIST librewolf-153.0.4-1.source.tar.gz 1165787893 BLAKE2B 3714f45d6073a62d044d4be68cfe67a449cf7873a9b6d52ff7a60efac63f4804e862ed3693c5817105f9098b6cb0e0eb8f57383b387f5e06b2ae589c3bb1d2a3 SHA512 cbeb6d82e65ec28a66b20cd80ab1f29a16fcb946749b5c267e74ec954d8ef467927e9fe362f658a1e1a366ef20455f440bc073f4a7d055bc24b8f348898fb3db
DIST librewolf-154.0-2.source.tar.gz 1174385173 BLAKE2B fa7842d664d8f0472fc9e3e0b7971a8c3dd71d9e5c1fd45dc520732de123b408a501279a267ee5e32e854134125ef28a0c8b4adda8f51d310eac598e04cde329 SHA512 14f25b40bd6f8f0edb2801dc779c0da51b2ff6ec7bc3d55d707d00a09eaf96f974173a3038269b947fcdabc3d98fb1588dd123776ecf12d50886a63a638375ef
DIST librewolf-154.0.1-3.source.tar.gz 1175015645 BLAKE2B 41ab15543b2452711315cab593eb62130c97a50845eacfef4c4faecc06cc2bb821128efe48ffdbf0ebc750026c37f699fff4bca9fed323f03300727fbc6d73cf SHA512 a01425a6ba9f8bf32067499815bce97e8de0ca3804ef382900f60a018cb8778f65e3db12ad42499d1b05eb05f9169cf6cecb0e5f2b630e4716cd9b1a410ad68e
+DIST librewolf-155.0-1.source.tar.gz 1175547857 BLAKE2B 40fadff66b74a6c6584677ff711a8dc083ded4064f3b03984a2321386610b868af40faa9fe9f559377dfabba3f6b0ebeb1694d9deace01828474a097f3f26feb SHA512 63fbd4fcf5b60efc41a50904ab9446db6cc1e6167d250ee934f8426d3ab36f2ddb39c717635f20d711fcde97c43a352b6770d313c18ee761e6c654981e75d824
DIST wasi-sdk-32.0-arm64-linux.tar.gz 142940986 BLAKE2B 45712415f916c2749bac9002157def84f75d005bcac0403cb9b5a814623a1e0c2a2f24092d55478ca5204afa82c7499cabf405b8e5c6e95a514351801da4a91c SHA512 e39f3130290e63a7c2674e8838bd6569ca6a630c0231e2a303d6bd4a6b7f9c78b59a99606193c3ba3e200d93d9221339d23653e98ef720632d54c5c6866dde69
DIST wasi-sdk-32.0-x86_64-linux.tar.gz 143157058 BLAKE2B 62b83e2db70b24361962b392551c604b21c59535b8d34a5e652447d7b722b033327334f0e17381d28eaa6dcb31fb02aad9978c66b761fb592b6de502012aeb57 SHA512 f77c08d1eb0f8e765bed4955d4794b33bb38149df5a144bebbe43e91fce3cfda7210cdf57073c0ff23c1d3c68105b6c69b4782af1643a0be2f3310001a2398f0
+DIST wasi-sdk-34.0-arm64-linux.tar.gz 192255247 BLAKE2B 3d185e7e98a1e5091aba98f76f221b7e641acadb8dae5aa453ec24a07f1b3e1643ab2a4d4da2d86cd08fbe3e93a7617864716fb7ca64e716d203bdece6087aa5 SHA512 b27453c20b949e8c783980e69937cfa24a306ed3fe0ce2716a72b5ba4cbf231bdd0f114af6a519c41dd6cd81da7bfb06bb86d7b86a45ffd4a723fe4341d8b653
+DIST wasi-sdk-34.0-x86_64-linux.tar.gz 192383077 BLAKE2B 065494c3f81555844293f33974a7230a47f50133aa2b8ed0c81de771c9342799e36a4814d6b3084daf07f19b4d7ce2dc576e134015625b2fad94c14e199ba319 SHA512 12d773d5c3d4b333c82f3280ac753c93877966df84a11b70e70d07aa1dbf20607eb64ceae836e21f9c6aed44054dc3e50f910657bedc590415e3b02789ab4685
diff --git a/www-client/librewolf/files/gentoo-hwaccel-prefs.js-r4 b/www-client/librewolf/files/gentoo-hwaccel-prefs.js-r4
new file mode 100644
index 000000000000..ff3aa452aec8
--- /dev/null
+++ b/www-client/librewolf/files/gentoo-hwaccel-prefs.js-r4
@@ -0,0 +1,9 @@
+/* Force hardware accelerated rendering due to USE=hwaccel */
+pref("gfx.webrender.all", true);
+pref("layers.acceleration.force-enabled", true);
+pref("layers.gpu-process.enabled", true);
+pref("media.hardware-video-decoding.enabled", true);
+pref("webgl.force-enabled", true);
+pref("gfx.webrender.layer-compositor", true);
+pref("media.hardware-video-decoding-vulkan.enabled", true);
+pref("media.hardware-video-decoding-vulkan.direct-export.enabled", false);
diff --git a/www-client/librewolf/librewolf-155.0_p1.ebuild b/www-client/librewolf/librewolf-155.0_p1.ebuild
new file mode 100644
index 000000000000..e924aa936551
--- /dev/null
+++ b/www-client/librewolf/librewolf-155.0_p1.ebuild
@@ -0,0 +1,1321 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-155-patches-04.tar.xz"
+
+LLVM_COMPAT=( 22 )
+
+# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+RUST_MIN_VER=1.90.0
+
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+VIRTUALX_REQUIRED="manual"
+
+# Librewolf version (please rev-bump if changed)
+# Used when cloning patches repository.
+LIBREWOLF_PV="${PV/_p/-}"
+
+# Information about the bundled wasi toolchain from
+# https://github.com/WebAssembly/wasi-sdk/
+WASI_SDK_VER=34.0
+WASI_SDK_LLVM_VER=23
+
+HOMEPAGE="https://librewolf.net/"
+
+MOZ_PN="firefox"
+
+inherit check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg
+
+LIBREWOLF_SRC_URI="https://librewolf.dev/api/packages/librewolf/generic/librewolf-source/${LIBREWOLF_PV}/librewolf-${LIBREWOLF_PV}.source.tar.gz"
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+DESCRIPTION="LibreWolf Web Browser"
+SRC_URI="${LIBREWOLF_SRC_URI} -> librewolf-${LIBREWOLF_PV}.source.tar.gz
+ ${PATCH_URIS[@]}
+ wasm-sandbox? (
+ amd64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz )
+ arm64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz )
+ )"
+
+S="${WORKDIR}/librewolf-${LIBREWOLF_PV}"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RESTRICT="
+ mirror
+ !test? ( test )
+"
+
+IUSE="+clang dbus debug eme-free +hardened hwaccel jack libproxy pgo pulseaudio selinux sndio"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx"
+IUSE+=" system-pipewire system-png +system-webp test wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate jpegxl +jumbo-build openh264 telemetry valgrind wasm-sandbox"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( jumbo-build )
+ wayland? ( dbus )
+ wifi? ( dbus )
+"
+
+FF_ONLY_DEPEND="selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ clang? (
+ llvm-core/lld:${LLVM_SLOT}
+ pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+ )
+ wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} )
+ ')
+ app-alternatives/awk
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.29.4
+ net-libs/nodejs
+ virtual/pkgconfig
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )
+ pgo? (
+ X? (
+ sys-devel/gettext
+ x11-base/xorg-server[xvfb]
+ x11-apps/xhost
+ )
+ !X? (
+ gui-wm/tinywl
+ x11-misc/xkeyboard-config
+ )
+ )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.127
+ >=dev-libs/nspr-4.39
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ virtual/zlib:=
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libdrm
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? (
+ sys-apps/dbus
+ )
+ jack? ( virtual/jack )
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ libproxy? ( net-libs/libproxy )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( >=media-sound/sndio-1.8.0-r1 )
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-3.10.0:=
+ )
+ system-harfbuzz? (
+ >=media-libs/harfbuzz-2.8.1:0=
+ !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+ )
+ system-icu? ( >=dev-libs/icu-78.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
+ system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-pipewire? ( >=media-video/pipewire-1.4.7-r2:= )
+ system-png? ( >=media-libs/libpng-1.6.45:0=[apng] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ valgrind? ( dev-debug/valgrind )
+ wayland? (
+ >=media-libs/libepoxy-1.5.10-r1
+ x11-libs/gtk+:3[wayland]
+ )
+ wifi? (
+ kernel_linux? (
+ || (
+ net-misc/networkmanager
+ net-misc/connman[networkmanager]
+ )
+ sys-apps/dbus
+ )
+ )
+ X? (
+ virtual/opengl
+ x11-libs/cairo[X]
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libxcb:=
+ )"
+RDEPEND="${COMMON_DEPEND}
+ hwaccel? (
+ media-video/libva-utils
+ sys-apps/pciutils
+ )
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+ X? (
+ x11-base/xorg-proto
+ x11-libs/libICE
+ x11-libs/libSM
+ )"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
+ einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang && ! tc-ld-is-mold ; then
+ if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
+ einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+ einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+ einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ ace ach af ak an ar as ast az be bg bn bn-BD bn-IN bo bqi br brx bs ca cak ca-valencia
+ ckb crh cs csb cy da de dsb el en-CA en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa
+ ff fi fr frp fur fy-NL ga-IE gd gl gn gu-IN gv he hi hi-IN hr hsb hto hu hy-AM
+ hye ia id ilo is it ixl ja ja-JP-mac ka kab kk km kn ko kok ks ku kw lb lg lij lo lt ltg
+ lv mai meh mix mk ml mn mr ms my nb-NO ne-NP nl nn-NO nr nso ny oc or pai pa-IN pbb pl
+ ppl pt-BR pt-PT quy qvi rm ro ru rw sah sat sc scn sco si sk skr sl son sq sr ss st sv-SE
+ sw szl ta ta-LK te tg th tl tn tr trs ts tsz uk ur uz ve vi wo xcl xh zam zh-CN zh-TW zu
+)
+MOZ_LANG_MAP=()
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ MOZ_LANG_MAP+=("l10n_${xflag/[_@]/-} ${lang}")
+
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -ne 1 ]] ; then
+ die "${FUNCNAME} requires exact one argument"
+ fi
+
+ einfo "Clearing cargo checksums for ${1} ..."
+
+ sed -i \
+ -e 's/\("files":{\)[^}]*/\1/' \
+ "${S}"/third_party/rust/${1}/.cargo-checksum.json || die
+}
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+mozconfig_use_with() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_with "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+virtwl() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+ [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset"
+ tinywl -h >/dev/null || die 'tinywl -h failed'
+
+ local VIRTWL VIRTWL_PID
+ coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; }
+ local -x WAYLAND_DISPLAY
+ read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+ debug-print "${FUNCNAME}: $@"
+ "$@"
+ local r=$?
+
+ [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+ exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+ return $r
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ # Ensure we have enough disk space to compile
+ if use pgo || use debug ; then
+ CHECKREQS_DISK_BUILD="18700M"
+ elif tc-is-lto ; then
+ CHECKREQS_DISK_BUILD="10900M"
+ else
+ CHECKREQS_DISK_BUILD="9700M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+
+ # Get LTO from environment; export after this phase for use in src_configure (etc)
+ use_lto=no
+
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ filter-lto
+ fi
+
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ if [[ ${use_lto} = yes ]]; then
+ # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use debug ; then
+ CHECKREQS_DISK_BUILD="18700M"
+ elif [[ ${use_lto} == "yes" ]] ; then
+ CHECKREQS_DISK_BUILD="10900M"
+ else
+ CHECKREQS_DISK_BUILD="9700M"
+ fi
+
+ check-reqs_pkg_setup
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+ python-any-r1_pkg_setup
+
+ # Avoid PGO profiling problems due to enviroment leakage
+ # These should *always* be cleaned up anyway
+ unset \
+ DBUS_SESSION_BUS_ADDRESS \
+ DISPLAY \
+ ORBIT_SOCKETDIR \
+ SESSION_MANAGER \
+ XAUTHORITY \
+ XDG_CACHE_HOME \
+ XDG_SESSION_COOKIE
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if use pgo ; then
+ # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure
+ # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage
+ # (PORTAGE_SCHEDULING_POLICY) update...
+ addpredict /proc
+
+ # Clear tons of conditions, since PGO is hardware-dependant.
+ addpredict /dev
+ fi
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+ MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+ fi
+
+ if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+ MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+ fi
+
+ # Mozilla API keys (see https://location.services.mozilla.com/api)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+ MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ export use_lto
+
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
+ linux-info_pkg_setup
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ unpack ${_src_file}
+ fi
+ done
+}
+
+src_prepare() {
+ if [[ ${use_lto} == "yes" ]]; then
+ rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+ fi
+
+ # Workaround for bgo#915651 and bmo#1988166 on musl
+ if use elibc_glibc ; then
+ rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+ rm -v "${WORKDIR}"/firefox-patches/*bgo-967694-musl-prctrl-exception-on-musl.patch || die
+ fi
+
+ eapply "${WORKDIR}/firefox-patches"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Workaround for bgo#915651
+ if ! use elibc_glibc ; then
+ if use amd64 ; then
+ export RUST_TARGET="x86_64-unknown-linux-musl"
+ elif use x86 ; then
+ export RUST_TARGET="i686-unknown-linux-musl"
+ elif use arm64 ; then
+ export RUST_TARGET="aarch64-unknown-linux-musl"
+ elif use loong; then
+ # Only the LP64D ABI of LoongArch64 is actively supported among
+ # the wider Linux ecosystem, so the assumption is safe.
+ export RUST_TARGET="loongarch64-unknown-linux-musl"
+ elif use ppc64 ; then
+ export RUST_TARGET="powerpc64le-unknown-linux-musl"
+ elif use riscv ; then
+ # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of
+ # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working
+ # guess right now though.
+ elog "riscv detected, forcing a riscv64 target for now."
+ export RUST_TARGET="riscv64gc-unknown-linux-musl"
+ else
+ die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info"
+ fi
+ fi
+
+ # Pre-built wasm-sandbox path manipulation.
+ if use wasm-sandbox ; then
+ if use amd64 ; then
+ export wasi_arch="x86_64"
+ elif use arm64 ; then
+ export wasi_arch="arm64"
+ else
+ die "wasm-sandbox enabled on unknown/unsupported arch!"
+ fi
+
+ sed -i \
+ -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \
+ -e "s:%%WASI_ARCH%%:${wasi_arch}:" \
+ -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \
+ -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \
+ toolkit/moz.configure || die "Failed to update wasi-related paths."
+ fi
+
+ # Make LTO respect MAKEOPTS
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/third_party/chromium/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Clear checksums from cargo crates we've manually patched.
+ # moz_clear_vendor_checksums xyz
+
+ # Respect choice for "jumbo-build"
+ # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431
+ if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then
+ local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16}
+ elog ""
+ elog "jumbo-build defaults modified to ${my_files_per_unified_file}."
+ elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE,"
+ elog "if that fails try -jumbo-build before opening a bug report."
+ elog ""
+
+ sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \
+ python/mozbuild/mozbuild/frontend/data.py ||
+ die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py"
+ sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \
+ js/src/moz.build ||
+ die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build"
+ fi
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+
+ AR=llvm-ar
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+
+ # Configuration tests expect llvm-readelf output, bug 913130
+ READELF="llvm-readelf"
+
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+ mozconfig_add_options_ac '' --enable-project=browser
+
+ # Set Gentoo defaults
+ export MOZILLA_OFFICIAL=1
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-disk-remnant-avoidance \
+ --disable-geckodriver \
+ --disable-install-strip \
+ --disable-legacy-profile-creation \
+ --disable-parental-controls \
+ --disable-strip \
+ --disable-updater \
+ --disable-wmf \
+ --enable-negotiateauth \
+ --enable-new-pass-manager \
+ --enable-packed-relative-relocs \
+ --enable-release \
+ --enable-system-policies \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-ffi \
+ --with-system-gbm \
+ --with-system-libdrm \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-pixman \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system
+
+ # Librewolf
+ mozconfig_add_options_ac 'LibreWolf Branding' \
+ --with-app-name="librewolf" \
+ --with-app-basename="librewolf" \
+ --with-branding=browser/branding/librewolf
+ export MOZ_APP_REMOTINGNAME=LibreWolf
+
+ # I really have know idea if this is actually doing anything.
+ mozconfig_add_options_ac 'LibreWolf Localization' \
+ --with-l10n-base=$PWD/lw/l10n
+
+ ## Controlled via 'telemetry' IUSE
+ # mozconfig_add_options_mk 'LibreWolf Disable Telemetry' \
+ # MOZ_CRASHREPORTER=0 \
+ # MOZ_DATA_REPORTING=0 \
+ # MOZ_SERVICES_HEALTHREPORT=0 \
+ # MOZ_TELEMETRY_REPORTING=0
+
+ export MOZ_REQUIRE_SIGNING=
+
+ # Set update channel
+ mozconfig_add_options_ac '' --enable-update-channel=release
+
+ # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default.
+ if use amd64 || use arm64 || use ppc64 || use loong || use riscv ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ # For future keywording: This is currently (97.0) only supported on:
+ # amd64, arm, arm64 & x86.
+ # Might want to flip the logic around if Firefox is to support more arches.
+ # bug 833001, bug 903411#c8
+ if use loong || use ppc64 || use riscv; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ # riscv-related options, bgo#947337, bgo#947338, bgo#977845
+ if use riscv ; then
+ mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc
+ mozconfig_add_options_ac 'Disable JIT for RISC-V' --disable-jit
+ fi
+
+ mozconfig_use_enable valgrind
+
+ if use valgrind ; then
+ mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox
+ mozconfig_add_options_ac 'valgrind requirement' --disable-jemalloc
+
+ sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die
+ fi
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-pipewire
+ mozconfig_use_with system-png
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+ mozconfig_use_enable libproxy
+ mozconfig_use_enable jumbo-build unified-build
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ mozconfig_add_options_ac "+hardened stl" --enable-stl-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+
+ # Increase the FORTIFY_SOURCE value, #910071.
+ sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die
+ fi
+
+ local myaudiobackends=""
+ use jack && myaudiobackends+="jack,"
+ use sndio && myaudiobackends+="sndio,"
+ use pulseaudio && myaudiobackends+="pulseaudio,"
+ ! use pulseaudio && myaudiobackends+="alsa,"
+
+ mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use X && use wayland ; then
+ mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
+ elif ! use X && use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only
+ else
+ mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only
+ fi
+
+ # wasm-sandbox
+ # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm-sandbox.
+ if use wasm-sandbox ; then
+ mozconfig_add_options_ac '+wasm-sandbox' --with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/"
+ else
+ mozconfig_add_options_ac 'no wasm-sandbox' --without-wasm-sandboxed-libraries
+ mozconfig_use_with system-harfbuzz system-graphite2
+ fi
+
+ ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl
+
+ if [[ ${use_lto} == "yes" ]] ; then
+ if use clang ; then
+ # Upstream only supports lld or mold when using clang.
+ if tc-ld-is-mold ; then
+ # mold expects the -flto line from *FLAGS configuration, bgo#923119
+ append-ldflags "-flto=thin"
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+ fi
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ # ThinLTO is currently broken, see bmo#1644409.
+ # mold does not support gcc+lto combination.
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # lld is upstream's default
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ fi
+
+ else
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd
+ fi
+ fi
+ fi
+
+ # PGO was moved outside lto block to allow building pgo without lto.
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ # Avoid compressing just-built instrumented Firefox with
+ # high levels of compression. Just use tar as a container
+ # to save >=10 minutes.
+ export MOZ_PKG_FORMAT=TAR
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ else
+ # Attempt to fix pgo hanging with gcc, bgo#966309.
+ export MOZ_REMOTE_SETTINGS_DEVTOOLS=1
+ fi
+ fi
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ mozconfig_add_options_ac '+debug' --enable-jemalloc
+ mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+ else
+ mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing
+
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # elf-hack
+ # Filter "-z,pack-relative-relocs" and let the build system handle it instead.
+ if use amd64 || use x86 ; then
+ filter-flags "-z,pack-relative-relocs"
+
+ if tc-ld-is-mold ; then
+ # relr-elf-hack is currently broken with mold, bgo#916259
+ mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack
+ else
+ mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr
+ fi
+ elif use loong || use ppc64 || use riscv ; then
+ # '--disable-elf-hack' is not recognized on loong/ppc64/riscv,
+ # see bgo #917049, #930046
+ :;
+ else
+ mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack
+ fi
+
+ if ! use elibc_glibc; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # System-av1 fix
+ use system-av1 && append-ldflags "-Wl,--undefined-version"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+
+ if ! use telemetry; then
+ mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0"
+ mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0"
+ mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0"
+ mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0"
+ fi
+
+ mozconfig_use_enable test tests
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then
+ # increase ulimit with mold+lto, bugs #892641, #907485
+ if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
+ ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources."
+ ewarn "Please see bugs #892641 & #907485."
+ else
+ ulimit -n 16384
+ fi
+ fi
+
+ if use pgo; then
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+
+ if ! use X; then
+ virtx_cmd=virtwl
+ else
+ virtx_cmd=virtx
+ fi
+ fi
+
+ if ! use X; then
+ local -x GDK_BACKEND=wayland
+ else
+ local -x GDK_BACKEND=x11
+ fi
+
+ ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_test() {
+ # https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html
+ local -a failures=()
+
+ # Some tests respect this
+ local -x MOZ_HEADLESS=1
+
+ # Check testing/mach_commands.py
+ einfo "Testing with cppunittest ..."
+ ./mach cppunittest
+ local ret=$?
+ if [[ ${ret} -ne 0 ]]; then
+ eerror "Test suite cppunittest failed with error code ${ret}"
+ failures+=( cppunittest )
+ fi
+
+ if [[ ${#failures} -eq 0 ]]; then
+ einfo "Test suites succeeded"
+ else
+ die "Test suites failed: ${failures[@]}"
+ fi
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ #DESTDIR="${D}" ./mach install || die
+ ## LibreWolf
+ # ./mach install doesn't install the locale information for some reason.
+ # Use packge-multi-locale instead
+ local mymozlangs=()
+ for lang_tuple in "${MOZ_LANG_MAP[@]}"; do
+ IFS=' ' read -r l10n lang <<< "${lang_tuple}"
+
+ if use "${l10n}"; then
+ mymozlangs+=("${lang}")
+ fi
+ done
+
+ if (( ${#mymozlangs[@]} == 0 )); then
+ einfo "Running ./mach package"
+ ./mach package || die
+ else
+ einfo "Running ./mach package-multi-locale"
+ ./mach package-multi-locale --locale "${mymozlangs[@]}" || die
+ fi
+
+ dodir "${MOZILLA_FIVE_HOME}" || die
+ cp -r "${BUILD_DIR}"/dist/librewolf/* "${ED}"/"${MOZILLA_FIVE_HOME}" || die
+
+ ## LibreWolf
+ # For some reason 'local-settings.js' doesn't get properly packaged.
+ # Install it manually
+ insinto "${MOZILLA_FIVE_HOME}/defaults/pref"
+ doins "${S}/lw/local-settings.js"
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from llvm-core/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ ## Disabled for LibreWolf
+ # Install policy (currently only used to disable application updates)
+ # insinto "${MOZILLA_FIVE_HOME}/distribution"
+ # newins "${FILESDIR}"/distribution.ini distribution.ini
+ # newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r4 \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+
+ if use wayland; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
+ pref("gfx.x11-egl.force-enabled", false);
+ EOF
+ else
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
+ pref("gfx.x11-egl.force-enabled", true);
+ EOF
+ fi
+
+ # Install the gfxtest binary on supported arches
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/gfxtest
+ fi
+
+ if ! use gmp-autoupdate ; then
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ einfo "Disabling auto-update for ${plugin} plugin ..."
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
+ pref("media.${plugin}.autoupdate", false);
+ EOF
+ done
+ fi
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Add telemetry config prefs, just in case something happens in future and telemetry build
+ # options stop working.
+ if ! use telemetry ; then
+ cat "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" || die "failed to set telemetry prefs"
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/${PN}"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="LibreWolf"
+ local desktop_file="${FILESDIR}/icon/${MOZ_PN}-r3.desktop"
+ local desktop_filename="${PN}.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ if use jpegxl ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable jpegxl via pref"
+ pref("image.jxl.enabled", true);
+ EOF
+ fi
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${MOZ_PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" || die
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ! use gmp-autoupdate ; then
+ elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
+ elog "installing into new profiles:"
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ elog "\t ${plugin}"
+ done
+ elog
+ fi
+
+ readme.gentoo_print_elog
+
+ optfeature_header "Optional programs for extra features:"
+ optfeature "desktop notifications" x11-libs/libnotify
+ optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas
+ optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal
+
+ if ! has_version "sys-libs/glibc"; then
+ elog
+ elog "glibc not found! You won't be able to play DRM content."
+ elog "See Gentoo bug #910309 or upstream bug #1843683."
+ elog
+ fi
+}
diff --git a/www-client/ungoogled-chromium/Manifest b/www-client/ungoogled-chromium/Manifest
index d5614f0d55e8..93ec7b87c389 100644
--- a/www-client/ungoogled-chromium/Manifest
+++ b/www-client/ungoogled-chromium/Manifest
@@ -66,7 +66,7 @@ DIST ungoogled-chromium-151.0.7922.169-1.tar.gz 670587 BLAKE2B 00538b5b5d0d7b4a1
DIST ungoogled-chromium-151.0.7922.71-1.tar.gz 670363 BLAKE2B df0c82404b74654f47b14e65514b38595e67b890a6bd66d1e2af14d0cfadd5d48cf335143297c8474eccab6ce0fe194afa1b26ec381a7bea1db77b0ae54653fa SHA512 2a5624628d7922ee837cf47d981da4bd7c5c21efb7e969113f77beedbe3f84bf402334f849c08969541dd18367b4534c84913a9b77d2d7bebcc134c1f25f4d03
DIST ungoogled-chromium-151.0.7922.75-1.tar.gz 670502 BLAKE2B 57c204077ebfdfdc527a690d4dafbe5e286ee2707696d26472991089f44b7eec9b915e29a8d543d9dcd617e12e3df6737b5ef8ba16abb676e7da5b27e3f5ea29 SHA512 4a7b3e026742bd3c8421436a5552bd2a6c46d40a48b9d20e3ef232615a65b8c94aff5b249d98d4ed327cc00aeaf258868bd610df65bb923e7dfdbd081abd32e6
DIST ungoogled-chromium-152.0.7977.64-1.tar.gz 670160 BLAKE2B 3b367b063171165fef6965dcef10006084e035ae5b929486af9a348db4464c1ec010edf155411aad8658950eeee1e2e0bcd5aea4d7706ce1cdce474d9c66cc08 SHA512 0be5192684bc5e77b48e43185884a20ec9f5138006015951977e98cf17b9a9a34827885dad65a28379abba9efadc1f5c180b18f9eb1478f16bbd77bfb7818b7e
+DIST ungoogled-chromium-152.0.7977.75-1.tar.gz 670284 BLAKE2B 49f1c85a310189f510a96332bfe19526b857d370e3e4aeed51275d3621516361eb429c0730797af025ca851f31b33b38e7cfc649dcd6eaf85c26b8bd521804d5 SHA512 574dddb069de3aac00a28b4121c9cf0733b2a9416c11f8b03295ff321209bfb80e5a7bd24af7a3c8b073aef4b15f6ba506c0d8b31edab85c14d98618b99f4b56
DIST ungoogled-chromium-4087f48e6d66e55486fe7c3a634303559634ba3f.tar.gz 670504 BLAKE2B d01153b1d8ddac8a0287cd42889c1ca618397a59f14a479d222d40415624d6e2ec2b8ecf3ec5d9614fa5c873c8e72d52d65da12e13b55020827a50a5d0242045 SHA512 dc30ee5e3b05382dc9ee02c114d8cabda140b36d505b4d2faf31357b75c23fbff7e3b589baf2f74741a4f7c99093df0ad69c9c368a5f69d6a361e042f43310e5
DIST ungoogled-chromium-4d7bb965938b072e1dc7d9a5fa26121805f97fc8.tar.gz 665638 BLAKE2B 84d8ef00835f9d880007db9c125729209900d4df1087099af9fd9b66727fbb37b1520908d3bedcf3416302e45866a4f7278cc0589ef6de25a5e6142c123d08b9 SHA512 b6653986b3af157ad5749eabd185280ccd24cf5a551f2e639a6ac9b51aff2fa4f5aa7c0b3cd881162b0da2f44e022755013d1f747e1268378a18fcb9cdfde015
DIST ungoogled-chromium-6fda5bc707792220745f9d53c25e84b89ceaabe4.tar.gz 669732 BLAKE2B 6a50e0428bcbb35383f1f039bf0d0a09fd853ae899a7ab366a516c29296bdc45a927cbe11b1b97c61c73cef98b252500a5e455ef0714b5b8ef42bdd3e180296c SHA512 97ec74a2b119a952a023a28de0d0ab93d81ba6c6623280f81eaf1cfadd0cbcec6fbf0d0574cdc2e777c89818c468cb2a55378f6be18c60b3bf8f92fb3a1de703
-DIST ungoogled-chromium-cacf0f0fd2446a837528c54df1880b75874b9580.tar.gz 670164 BLAKE2B be0931fb20848f92dc126e143483124f3d2f1297904abcfc7a468f7c2612d13122640d83574e2e1d3f3ae7ea3896a5873ea473a45c429620984d0d16bd515ac6 SHA512 223a066d1bed11cb32aa599f61dccead5ca07693d99c4bb8c3202812f211c0f53a16f7d34bef40cb1a68cfc316081b80755618afb4c0d1838bc3307b87a70f1c
diff --git a/www-client/ungoogled-chromium/ungoogled-chromium-152.0.7977.75_p1.ebuild b/www-client/ungoogled-chromium/ungoogled-chromium-152.0.7977.75_p1.ebuild
index 5160bbc84cfa..cf5169391779 100644
--- a/www-client/ungoogled-chromium/ungoogled-chromium-152.0.7977.75_p1.ebuild
+++ b/www-client/ungoogled-chromium/ungoogled-chromium-152.0.7977.75_p1.ebuild
@@ -40,7 +40,7 @@ CHROMIUM_LANGS="af am ar as az be bg bn bs ca cs cy da de el en-GB es es-419 et
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"
-UGC_COMMIT_ID="cacf0f0fd2446a837528c54df1880b75874b9580"
+#UGC_COMMIT_ID="cacf0f0fd2446a837528c54df1880b75874b9580"
# UGC_PR_COMMITS=(
# c917e096342e5b90eeea91ab1f8516447c8756cf
# 5794e9d12bf82620d5f24505798fecb45ca5a22d
@@ -109,8 +109,8 @@ LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSL
LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
LICENSE+=" cromite? ( GPL-3 )"
-SLOT="beta"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+SLOT="stable"
+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"
diff --git a/x11-themes/QGnomePlatform/QGnomePlatform-0.9.2-r7.ebuild b/x11-themes/QGnomePlatform/QGnomePlatform-0.9.2-r8.ebuild
index fb2bc90a2ffd..8e237215376b 100644
--- a/x11-themes/QGnomePlatform/QGnomePlatform-0.9.2-r7.ebuild
+++ b/x11-themes/QGnomePlatform/QGnomePlatform-0.9.2-r8.ebuild
@@ -12,34 +12,18 @@ SRC_URI="https://github.com/FedoraQt/QGnomePlatform/archive/${PV}.tar.gz -> ${P}
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="amd64 ~arm64 ~ppc64 x86"
-
-IUSE="qt5 +qt6 wayland X"
-REQUIRED_USE="|| ( qt5 qt6 )"
+IUSE="wayland X"
DEPEND="
- qt5? (
- >=dev-qt/qtcore-5.15.2:5
- >=dev-qt/qtdbus-5.15.2:5
- >=dev-qt/qtgui-5.15.2:5=
- >=dev-qt/qtquickcontrols2-5.15.2:5
- >=dev-qt/qtwidgets-5.15.2:5
- wayland? ( dev-qt/qtwayland:5= )
- )
- qt6? (
- dev-qt/qtbase:6=[dbus,gui,wayland?,widgets]
- dev-qt/qtdeclarative:6
- )
+ >=dev-qt/qtbase-6.10:6=[dbus,gui,wayland?,widgets]
+ >=dev-qt/qtdeclarative-6.10:6
gnome-base/gsettings-desktop-schemas
sys-apps/xdg-desktop-portal
x11-libs/gtk+:3[wayland?,X?]
>=x11-themes/adwaita-qt-1.4.2
"
RDEPEND="${DEPEND}"
-RDEPEND+=" || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 )"
-BDEPEND="
- qt5? ( >=dev-qt/qtcore-5.15.2:5 )
- qt6? ( dev-qt/qtbase:6 )
-"
+BDEPEND="dev-qt/qtbase:6"
PATCHES=(
"${FILESDIR}/${P}-cmake4.patch" # bugs #958301, #965856
@@ -51,36 +35,15 @@ src_configure() {
use X || append-cppflags -DGENTOO_GTK_HIDE_X11
use wayland || append-cppflags -DGENTOO_GTK_HIDE_WAYLAND
- if use qt5; then
- BUILD_DIR="${WORKDIR}/${PN}_qt5"
- local mycmakeargs=(
- -DUSE_QT6=OFF
- -DDISABLE_DECORATION_SUPPORT="$(usex wayland false true)"
- )
- cmake_src_configure
- fi
- if use qt6; then
- BUILD_DIR="${WORKDIR}/${PN}_qt6"
- local mycmakeargs=(
- -DUSE_QT6=ON
- -DDISABLE_DECORATION_SUPPORT="$(usex wayland false true)"
- )
- cmake_src_configure
- fi
-}
-
-src_compile() {
- local _d
- for _d in "${WORKDIR}"/${PN}_qt*; do
- cmake_src_compile -C "${_d}"
- done
+ local mycmakeargs=(
+ -DUSE_QT6=ON
+ -DDISABLE_DECORATION_SUPPORT="$(usex wayland false true)"
+ )
+ cmake_src_configure
}
src_install() {
- local _d
- for _d in "${WORKDIR}"/${PN}_qt*; do
- cmake_src_install -C "${_d}"
- done
+ cmake_src_install
# https://github.com/FedoraQt/QGnomePlatform/pull/150#issuecomment-1689693729
insinto /etc/profile.d
diff --git a/x11-themes/adwaita-qt/adwaita-qt-1.4.2-r1.ebuild b/x11-themes/adwaita-qt/adwaita-qt-1.4.2-r1.ebuild
deleted file mode 100644
index b6b7fb18b30a..000000000000
--- a/x11-themes/adwaita-qt/adwaita-qt-1.4.2-r1.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-inherit cmake
-
-DESCRIPTION="A style to bend Qt applications to look like they belong into GNOME Shell"
-HOMEPAGE="https://github.com/FedoraQt/adwaita-qt"
-SRC_URI="https://github.com/FedoraQt/${PN}/archive/${PV}/${P}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64 x86"
-IUSE="gnome qt5 +qt6"
-REQUIRED_USE="|| ( qt5 qt6 )"
-
-DEPEND="
- qt5? (
- dev-qt/qtcore:5
- dev-qt/qtdbus:5
- dev-qt/qtgui:5
- dev-qt/qtwidgets:5
- dev-qt/qtx11extras:5
- )
- qt6? ( dev-qt/qtbase:6[dbus,gui,widgets] )
-"
-RDEPEND="${DEPEND}"
-PDEPEND="gnome? ( x11-themes/QGnomePlatform )"
-
-src_configure() {
- if use qt5; then
- BUILD_DIR="${WORKDIR}/${PN}_qt5"
- local mycmakeargs=(-DUSE_QT6=OFF)
- cmake_src_configure
- fi
- if use qt6; then
- BUILD_DIR="${WORKDIR}/${PN}_qt6"
- local mycmakeargs=(-DUSE_QT6=ON)
- cmake_src_configure
- fi
-}
-
-src_compile() {
- local _d
- for _d in "${WORKDIR}"/${PN}_qt*; do
- cmake_src_compile -C "${_d}"
- done
-}
-
-src_install() {
- local _d
- for _d in "${WORKDIR}"/${PN}_qt*; do
- cmake_src_install -C "${_d}"
- done
-}
diff --git a/x11-themes/adwaita-qt/adwaita-qt-1.4.2-r2.ebuild b/x11-themes/adwaita-qt/adwaita-qt-1.4.2-r2.ebuild
new file mode 100644
index 000000000000..a814987a8e29
--- /dev/null
+++ b/x11-themes/adwaita-qt/adwaita-qt-1.4.2-r2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="A style to bend Qt applications to look like they belong into GNOME Shell"
+HOMEPAGE="https://github.com/FedoraQt/adwaita-qt"
+SRC_URI="https://github.com/FedoraQt/${PN}/archive/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~ppc64 x86"
+IUSE="gnome"
+
+DEPEND="dev-qt/qtbase:6[dbus,gui,widgets]"
+RDEPEND="${DEPEND}"
+PDEPEND="gnome? ( x11-themes/QGnomePlatform )"
+
+src_configure() {
+ local mycmakeargs=( -DUSE_QT6=ON )
+ cmake_src_configure
+}