summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-admin/awscli/Manifest1
-rw-r--r--app-admin/awscli/awscli-1.45.48.ebuild92
-rw-r--r--app-admin/ig/Manifest4
-rw-r--r--app-admin/ig/ig-0.54.1.ebuild (renamed from app-admin/ig/ig-0.54.0.ebuild)0
-rw-r--r--app-dicts/myspell-en/Manifest1
-rw-r--r--app-dicts/myspell-en/myspell-en-20250401.ebuild62
-rw-r--r--app-dicts/myspell-es/Manifest23
-rw-r--r--app-dicts/myspell-es/myspell-es-2.9.ebuild41
-rw-r--r--app-editors/emacs/emacs-31.0.90.ebuild19
-rw-r--r--app-editors/emacs/emacs-31.0.9999-r1.ebuild17
-rw-r--r--app-editors/emacs/emacs-32.0.9999.ebuild17
-rw-r--r--app-editors/emacs/metadata.xml3
-rw-r--r--app-editors/gedit-plugins/gedit-plugins-49.0-r1.ebuild57
-rw-r--r--app-emulation/winetricks/Manifest1
-rw-r--r--app-emulation/winetricks/winetricks-20250102-r1.ebuild54
-rw-r--r--app-misc/freewvs/Manifest1
-rw-r--r--app-misc/freewvs/freewvs-0.1.4-r1.ebuild28
-rw-r--r--app-misc/yq/Manifest2
-rw-r--r--app-misc/yq/yq-3.4.4.ebuild59
-rw-r--r--app-misc/yq/yq-4.1.2.ebuild59
-rw-r--r--dev-cpp/msgpack-cxx/Manifest4
-rw-r--r--dev-cpp/msgpack-cxx/files/msgpack-cxx-6.0.0-gcc13.patch49
-rw-r--r--dev-cpp/msgpack-cxx/msgpack-cxx-5.0.0.ebuild59
-rw-r--r--dev-cpp/msgpack-cxx/msgpack-cxx-6.1.0.ebuild59
-rw-r--r--dev-cpp/msgpack-cxx/msgpack-cxx-8.0.0.ebuild (renamed from dev-cpp/msgpack-cxx/msgpack-cxx-6.0.0.ebuild)6
-rw-r--r--dev-java/ant-ivy/Manifest1
-rw-r--r--dev-java/ant-ivy/ant-ivy-2.5.0-r4.ebuild196
-rw-r--r--dev-java/assertj-core/Manifest1
-rw-r--r--dev-java/assertj-core/assertj-core-3.27.6.ebuild93
-rw-r--r--dev-java/bcmail/Manifest1
-rw-r--r--dev-java/bcmail/bcmail-1.83.ebuild63
-rw-r--r--dev-java/bcmail/bcmail-1.84.ebuild2
-rw-r--r--dev-java/bcpg/Manifest1
-rw-r--r--dev-java/bcpg/bcpg-1.83.ebuild62
-rw-r--r--dev-java/bcpg/bcpg-1.84.ebuild2
-rw-r--r--dev-java/bcpkix/Manifest2
-rw-r--r--dev-java/bcpkix/bcpkix-1.83.ebuild94
-rw-r--r--dev-java/bcpkix/bcpkix-1.84.ebuild2
-rw-r--r--dev-java/bcprov/Manifest2
-rw-r--r--dev-java/bcprov/bcprov-1.83.ebuild100
-rw-r--r--dev-java/bcprov/bcprov-1.84.ebuild2
-rw-r--r--dev-java/bcutil/Manifest1
-rw-r--r--dev-java/bcutil/bcutil-1.83.ebuild59
-rw-r--r--dev-java/bcutil/bcutil-1.84.ebuild2
-rw-r--r--dev-java/jackcess/Manifest1
-rw-r--r--dev-java/jackcess/jackcess-4.0.10.ebuild2
-rw-r--r--dev-java/jackcess/jackcess-4.0.7-r1.ebuild61
-rw-r--r--dev-java/openjfx/Manifest2
-rw-r--r--dev-java/openjfx/files/8/0000-Fix-wait-call-in-PosixPlatform.patch14
-rw-r--r--dev-java/openjfx/files/8/0001-Change-Lucene.patch79
-rw-r--r--dev-java/openjfx/files/8/0003-fix-cast-between-incompatible-function-types.patch68
-rw-r--r--dev-java/openjfx/files/8/0004-Fix-Compilation-Flags.patch23
-rw-r--r--dev-java/openjfx/files/8/0005-don-t-include-xlocale.h.patch19
-rw-r--r--dev-java/openjfx/files/8/06-disable-architecture-verification.patch21
-rw-r--r--dev-java/openjfx/files/8/10-javadoc-locale.patch21
-rw-r--r--dev-java/openjfx/files/8/99-sysdeps.patch26
-rw-r--r--dev-java/openjfx/files/8/Wno-error.patch68
-rw-r--r--dev-java/openjfx/files/8/disable-online-repos.patch52
-rw-r--r--dev-java/openjfx/files/8/don-t-force-msse.patch38
-rw-r--r--dev-java/openjfx/files/8/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch18
-rw-r--r--dev-java/openjfx/files/8/missing-casts.patch22
-rw-r--r--dev-java/openjfx/files/8/respect_flags.patch192
-rw-r--r--dev-java/openjfx/openjfx-8.1000-r2.ebuild196
-rw-r--r--dev-java/poi/Manifest2
-rw-r--r--dev-java/poi/poi-5.2.5.ebuild60
-rw-r--r--dev-java/poi/poi-5.5.1.ebuild2
-rw-r--r--dev-java/swt/Manifest2
-rw-r--r--dev-java/swt/files/swt-4.10-as-needed-and-flag-fixes.patch81
-rw-r--r--dev-java/swt/files/swt-4.10-manifest16
-rw-r--r--dev-java/swt/swt-4.10-r4.ebuild169
-rw-r--r--dev-lang/php/Manifest6
-rw-r--r--dev-lang/php/files/php-8.3-iconv-testfix-01.patch59
-rw-r--r--dev-lang/php/files/php-8.3-iconv-testfix-02.patch78
-rw-r--r--dev-lang/php/files/php-8.3-iconv-testfix-03.patch43
-rw-r--r--dev-lang/php/files/php-8.3-iconv-testfix-04.patch78
-rw-r--r--dev-lang/php/files/php-8.4-libgd-test-fixes.patch42
-rw-r--r--dev-lang/php/php-8.2.29.ebuild4
-rw-r--r--dev-lang/php/php-8.2.30.ebuild4
-rw-r--r--dev-lang/php/php-8.2.31.ebuild4
-rw-r--r--dev-lang/php/php-8.2.32.ebuild908
-rw-r--r--dev-lang/php/php-8.3.26.ebuild4
-rw-r--r--dev-lang/php/php-8.3.29.ebuild4
-rw-r--r--dev-lang/php/php-8.3.31.ebuild4
-rw-r--r--dev-lang/php/php-8.3.32.ebuild (renamed from dev-lang/php/php-8.5.7.ebuild)262
-rw-r--r--dev-lang/php/php-8.4.23.ebuild (renamed from dev-lang/php/php-8.4.22.ebuild)11
-rw-r--r--dev-lang/php/php-8.5.8.ebuild (renamed from dev-lang/php/php-8.5.7-r1.ebuild)11
-rw-r--r--dev-libs/amdgpu-pro-opencl/amdgpu-pro-opencl-20.40.1147286.ebuild4
-rw-r--r--dev-libs/msgpack/Manifest1
-rw-r--r--dev-libs/msgpack/msgpack-5.0.0.ebuild61
-rw-r--r--dev-libs/msgpack/msgpack-6.0.0-r1.ebuild5
-rw-r--r--dev-libs/msgpack/msgpack-7.0.1.ebuild7
-rw-r--r--dev-libs/uriparser/uriparser-1.0.2.ebuild2
-rw-r--r--dev-python/asgiref/Manifest1
-rw-r--r--dev-python/asgiref/asgiref-3.12.1.ebuild24
-rw-r--r--dev-python/bashate/bashate-2.1.1.ebuild2
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.48.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.48.ebuild67
-rw-r--r--dev-python/construct/construct-2.10.70.ebuild3
-rw-r--r--dev-python/dogpile-cache/dogpile-cache-1.5.0.ebuild2
-rw-r--r--dev-python/extras/extras-1.0.0-r2.ebuild8
-rw-r--r--dev-python/faker/Manifest1
-rw-r--r--dev-python/faker/faker-40.31.0.ebuild41
-rw-r--r--dev-python/httpx2/Manifest1
-rw-r--r--dev-python/httpx2/httpx2-2.7.0.ebuild107
-rw-r--r--dev-python/jc/Manifest1
-rw-r--r--dev-python/jc/jc-1.25.6.ebuild37
-rw-r--r--dev-python/jedi/jedi-0.20.0.ebuild9
-rw-r--r--dev-python/lockfile/lockfile-0.12.2-r3.ebuild3
-rw-r--r--dev-python/mechanicalsoup/mechanicalsoup-1.4.0.ebuild12
-rw-r--r--dev-python/munch/munch-4.0.0.ebuild3
-rw-r--r--dev-python/mypy/Manifest1
-rw-r--r--dev-python/mypy/mypy-2.3.0.ebuild148
-rw-r--r--dev-python/nextinspace/nextinspace-3.0.1.ebuild9
-rw-r--r--dev-python/nextinspace/nextinspace-9999.ebuild9
-rw-r--r--dev-python/oslotest/Manifest2
-rw-r--r--dev-python/oslotest/oslotest-6.0.0.ebuild32
-rw-r--r--dev-python/oslotest/oslotest-6.1.0.ebuild27
-rw-r--r--dev-python/parso/parso-0.8.7.ebuild19
-rw-r--r--dev-python/pbr/pbr-7.0.3-r1.ebuild79
-rw-r--r--dev-python/pbr/pbr-7.0.3-r2.ebuild25
-rw-r--r--dev-python/peewee/Manifest1
-rw-r--r--dev-python/peewee/peewee-4.2.3.ebuild83
-rw-r--r--dev-python/pudb/pudb-2025.1.5.ebuild2
-rw-r--r--dev-python/pyghmi/Manifest1
-rw-r--r--dev-python/pyghmi/pyghmi-1.6.18.ebuild32
-rw-r--r--dev-python/pykeepass/pykeepass-4.1.1_p1.ebuild1
-rw-r--r--dev-python/pymediainfo/pymediainfo-7.0.1.ebuild3
-rw-r--r--dev-python/pyperclip/pyperclip-1.11.0.ebuild2
-rw-r--r--dev-python/pytest-param-files/pytest-param-files-0.6.0.ebuild4
-rw-r--r--dev-python/pytest-tap/Manifest1
-rw-r--r--dev-python/pytest-tap/files/pytest-tap-3.5-hatchling-wheel.patch70
-rw-r--r--dev-python/pytest-tap/metadata.xml10
-rw-r--r--dev-python/pytest-tap/pytest-tap-3.5.ebuild34
-rw-r--r--dev-python/python-daemon/python-daemon-3.1.2.ebuild2
-rw-r--r--dev-python/python-glanceclient/files/python-glanceclient-4.12.0-py315.patch67
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-4.12.0.ebuild5
-rw-r--r--dev-python/python-manilaclient/python-manilaclient-6.2.0.ebuild2
-rw-r--r--dev-python/pywinrm/pywinrm-0.5.0.ebuild2
-rw-r--r--dev-python/requests-credssp/requests-credssp-2.0.0.ebuild2
-rw-r--r--dev-python/requests-kerberos/requests-kerberos-0.15.0.ebuild2
-rw-r--r--dev-python/requests-mock/requests-mock-1.12.1.ebuild5
-rw-r--r--dev-python/requests-ntlm/requests-ntlm-1.3.0.ebuild2
-rw-r--r--dev-python/requests-oauthlib/files/requests-oauthlib-2.0.0-test.patch31
-rw-r--r--dev-python/requests-oauthlib/requests-oauthlib-2.0.0.ebuild34
-rw-r--r--dev-python/ruamel-yaml/ruamel-yaml-0.19.1.ebuild6
-rw-r--r--dev-python/sphinx-basic-ng/sphinx-basic-ng-1.0.0_beta2.ebuild2
-rw-r--r--dev-python/sphinxcontrib-apidoc/sphinxcontrib-apidoc-0.6.0.ebuild8
-rw-r--r--dev-python/tavalidate/tavalidate-0.0.6-r1.ebuild1
-rw-r--r--dev-python/testscenarios/Manifest2
-rw-r--r--dev-python/testscenarios/testscenarios-0.5.0-r3.ebuild36
-rw-r--r--dev-python/testscenarios/testscenarios-0.6.ebuild37
-rw-r--r--dev-python/testtools/Manifest1
-rw-r--r--dev-python/testtools/files/testtools-2.7.2-py314.patch34
-rw-r--r--dev-python/testtools/files/testtools-2.7.2-twisted-fix.patch45
-rw-r--r--dev-python/testtools/testtools-2.7.2-r1.ebuild49
-rw-r--r--dev-python/tifffile/Manifest1
-rw-r--r--dev-python/tifffile/tifffile-2026.7.14.ebuild56
-rw-r--r--dev-python/twython/twython-3.9.1-r1.ebuild2
-rw-r--r--dev-util/android-studio/Manifest2
-rw-r--r--dev-util/android-studio/android-studio-2026.1.2.10.ebuild (renamed from dev-util/android-studio/android-studio-2026.1.1.10.ebuild)2
-rw-r--r--dev-util/pkgconf/Manifest2
-rw-r--r--dev-util/pkgconf/pkgconf-3.0.3.ebuild (renamed from dev-util/pkgconf/pkgconf-3.0.2.ebuild)0
-rw-r--r--dev-vcs/hg-git/hg-git-1.2.0-r1.ebuild4
-rw-r--r--eclass/java-osgi.eclass1
-rw-r--r--games-action/prismlauncher/Manifest1
-rw-r--r--games-action/prismlauncher/prismlauncher-11.0.3.ebuild115
-rw-r--r--games-emulation/zsnes/Manifest2
-rw-r--r--games-emulation/zsnes/zsnes-2.2.1.ebuild (renamed from games-emulation/zsnes/zsnes-2.1.0.ebuild)13
-rw-r--r--games-engines/devilutionx/Manifest1
-rw-r--r--games-engines/devilutionx/devilutionx-1.5.4-r1.ebuild89
-rw-r--r--games-engines/devilutionx/devilutionx-1.5.5.ebuild6
-rw-r--r--games-engines/devilutionx/files/devilutionx-1.5.5-missing-include.patch8
-rw-r--r--gnome-extra/gnome-shell-extension-desktop-icons-ng/Manifest1
-rw-r--r--gnome-extra/gnome-shell-extension-desktop-icons-ng/gnome-shell-extension-desktop-icons-ng-50.2.0.ebuild40
-rw-r--r--gnome-extra/gnome-shell-extension-lockscreen-studio/Manifest1
-rw-r--r--gnome-extra/gnome-shell-extension-lockscreen-studio/gnome-shell-extension-lockscreen-studio-1.1.2.ebuild45
-rw-r--r--gnome-extra/gnome-shell-extension-lockscreen-studio/metadata.xml9
-rw-r--r--gnome-extra/pch-session/Manifest1
-rw-r--r--gnome-extra/pch-session/pch-session-49.1.ebuild62
-rw-r--r--mail-mta/postfix/Manifest4
-rw-r--r--mail-mta/postfix/postfix-3.12_pre20260713.ebuild (renamed from mail-mta/postfix/postfix-3.12_pre20260710.ebuild)0
-rw-r--r--media-libs/fontconfig/Manifest1
-rw-r--r--media-libs/fontconfig/fontconfig-2.16.2-r1.ebuild4
-rw-r--r--media-libs/fontconfig/fontconfig-2.17.1.ebuild4
-rw-r--r--media-libs/fontconfig/fontconfig-2.18.1.ebuild2
-rw-r--r--media-libs/fontconfig/fontconfig-2.18.2.ebuild250
-rw-r--r--media-libs/nv-codec-headers/Manifest4
-rw-r--r--media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild4
-rw-r--r--media-libs/nv-codec-headers/nv-codec-headers-12.1.14.1.ebuild (renamed from media-libs/nv-codec-headers/nv-codec-headers-12.2.72.0.ebuild)6
-rw-r--r--media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild4
-rw-r--r--media-libs/nv-codec-headers/nv-codec-headers-13.0.19.1.ebuild37
-rw-r--r--media-libs/nv-codec-headers/nv-codec-headers-13.1.15.0.ebuild37
-rw-r--r--net-fs/cifs-utils/Manifest1
-rw-r--r--net-fs/cifs-utils/cifs-utils-7.7.ebuild144
-rw-r--r--net-im/discord/Manifest30
-rw-r--r--net-im/discord/discord-1.0.145.ebuild223
-rw-r--r--net-im/discord/discord-1.0.147.ebuild (renamed from net-im/discord/discord-1.0.144.ebuild)2
-rw-r--r--net-im/qtox/Manifest1
-rw-r--r--net-im/qtox/qtox-1.18.3-r1.ebuild77
-rw-r--r--net-im/toxic/Manifest2
-rw-r--r--net-im/toxic/toxic-0.16.3.ebuild (renamed from net-im/toxic/toxic-0.16.0.ebuild)6
-rw-r--r--net-libs/tox/Manifest2
-rw-r--r--net-libs/tox/tox-0.2.23.ebuild (renamed from net-libs/tox/tox-0.2.20.ebuild)48
-rw-r--r--net-misc/freerdp/Manifest2
-rw-r--r--net-misc/freerdp/freerdp-3.29.0.ebuild192
-rw-r--r--net-misc/geckodriver/geckodriver-0.37.0.ebuild2
-rw-r--r--net-misc/kea/Manifest2
-rw-r--r--net-misc/sb-hosts/Manifest2
-rw-r--r--net-misc/sb-hosts/sb-hosts-3.16.98.ebuild (renamed from net-misc/sb-hosts/sb-hosts-3.16.96.ebuild)0
-rw-r--r--net-vpn/openvpn/openvpn-2.7.5.ebuild2
-rw-r--r--net-wireless/bluez/bluez-5.87.ebuild2
-rw-r--r--profiles/package.deprecated9
-rw-r--r--sci-ml/ollama/files/ollama-0.31.1-llamaDL.patch11
-rw-r--r--sci-ml/ollama/files/ollama-0.31.1-nostrip.patch11
-rw-r--r--sci-ml/ollama/ollama-0.31.2-r1.ebuild73
-rw-r--r--sys-devel/gettext/gettext-0.22.5-r2.ebuild4
-rw-r--r--sys-devel/gettext/gettext-0.23.1-r1.ebuild4
-rw-r--r--sys-devel/gettext/gettext-0.23.2.ebuild4
-rw-r--r--sys-devel/gettext/gettext-0.25.1.ebuild4
-rw-r--r--sys-devel/gettext/gettext-0.26.ebuild4
-rw-r--r--sys-devel/gettext/gettext-1.0.ebuild2
-rw-r--r--sys-firmware/sof-firmware/Manifest2
-rw-r--r--sys-firmware/sof-firmware/sof-firmware-2025.12.1.ebuild45
-rw-r--r--sys-firmware/sof-firmware/sof-firmware-2025.12.ebuild45
-rw-r--r--virtual/httpd-php/httpd-php-8.5.ebuild4
-rw-r--r--www-client/firefox-bin/Manifest99
-rw-r--r--www-client/firefox-bin/firefox-bin-152.0.6.ebuild359
-rw-r--r--www-client/firefox-l10n/Manifest100
-rw-r--r--www-client/firefox-l10n/firefox-l10n-152.0.6.ebuild181
-rw-r--r--www-client/firefox/Manifest1
-rw-r--r--www-client/firefox/firefox-152.0.6.ebuild1389
-rw-r--r--www-client/ungoogled-chromium/Manifest2
-rw-r--r--www-client/ungoogled-chromium/ungoogled-chromium-150.0.7871.124_p1.ebuild2528
-rw-r--r--x11-libs/gtk+/gtk+-2.24.33-r3.ebuild4
-rw-r--r--x11-libs/gtk+/gtk+-3.24.51.ebuild4
-rw-r--r--x11-libs/gtk+/gtk+-3.24.52.ebuild4
-rw-r--r--x11-libs/libxcb/files/libxcb-1.17.0-unquoted-var.patch24
-rw-r--r--x11-libs/libxcb/libxcb-1.17.0.ebuild4
-rw-r--r--x11-libs/tslib/tslib-1.23-r1.ebuild4
-rw-r--r--x11-misc/primus/primus-0.2-r4.ebuild4
-rw-r--r--x11-misc/virtualgl/virtualgl-3.1.3.ebuild4
-rw-r--r--x11-misc/virtualgl/virtualgl-3.1.4.ebuild4
244 files changed, 8472 insertions, 3634 deletions
diff --git a/app-admin/awscli/Manifest b/app-admin/awscli/Manifest
index fa724efb1c24..2d280693bf36 100644
--- a/app-admin/awscli/Manifest
+++ b/app-admin/awscli/Manifest
@@ -3,3 +3,4 @@ DIST aws-cli-1.45.36.gh.tar.gz 3178460 BLAKE2B 2a1f837fc6991d9cfcdf4d9f54d57e7b8
DIST aws-cli-1.45.40.gh.tar.gz 3182287 BLAKE2B e0bc7454b7b0c7a75ef43a3eeaf2a0bddfbb7753fc92d39438d4219fa929ad7a9fd1017a1b9ecf1dfb560967ed7ad9feae266075c2ca44431b76c6f44383e240 SHA512 c19c645e4d161d215f49d55525a4ac939558f0c155e77380e00596018aaf8ce51f77e07d348b3d785c2634342225095b8cbba9da882eb40c402c8a42661673ef
DIST aws-cli-1.45.46.gh.tar.gz 3195842 BLAKE2B 83f941c9f929174cd93b36db6d4aa7dd9ba1fdcf01fb6c08c595970ce53a73b64adaae9daea7b15366d283af27e60783adeaa91300216d39879d092dad77a5ab SHA512 ad15c12fae077010b515f0161adc0dbff49126c0a6c42d553b7d397da4023e9dabb58884549481cd72f140d0ae398145560678687e9b4c472f2fde8207b0f8fd
DIST aws-cli-1.45.47.gh.tar.gz 3196069 BLAKE2B e1e515d1fd18a0fffc515e6698733dfe41cc9b9327feb42f7db37b868c63d1c70eb86392ea0b01c6ce4e00bb25f4f83f4c2d5920fc1b3de5138ba578f0c8e73e SHA512 a931eb3287d235412bb5df657697dcec181a611799ebacf7fb69c25bcac53af9478692953a0457d350d45c95d15ac3cd7a5bc18a77448dfcea8ab6fd116a1fc7
+DIST aws-cli-1.45.48.gh.tar.gz 3197435 BLAKE2B 4f8f135581e17e721b37975891c8666267d4218642878139aeaddd4053e401b17cbeb34e2baec6b17dfdb8874fff90f9a4ef22b58183853dea216adc1deeff50 SHA512 d10ca1c26bc076ecc050a31d7d539820df2b899d97db1b2215c9938ae1785c6a0eae42b32eb3833eb3df7fddc0f485cbd940e50793d55ebcb88c2690651e483a
diff --git a/app-admin/awscli/awscli-1.45.48.ebuild b/app-admin/awscli/awscli-1.45.48.ebuild
new file mode 100644
index 000000000000..7d3c8ade6a18
--- /dev/null
+++ b/app-admin/awscli/awscli-1.45.48.ebuild
@@ -0,0 +1,92 @@
+# 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 shell-completion
+
+MY_P=aws-cli-${PV}
+DESCRIPTION="Universal Command Line Environment for AWS"
+HOMEPAGE="
+ https://github.com/aws/aws-cli/
+ https://pypi.org/project/awscli/
+"
+SRC_URI="
+ https://github.com/aws/aws-cli/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+# botocore is x.(y-2).(z+10), sigh
+BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) - 2)).$(ver_cut 3)"
+RDEPEND="
+ >=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/rsa[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.18.0[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ !app-admin/awscli-bin
+"
+BDEPEND="
+ test? (
+ dev-python/packaging[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-forked )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # 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
+ # strip overzealous upper bounds on requirements
+ sed -i -e 's:,<[=0-9.]*::' -e 's:==:>=:' setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local serial_tests=(
+ tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
+ tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success}
+ tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success
+ tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
+ tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
+ tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
+ tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
+ tests/unit/customizations/test_sessionmanager.py
+ tests/unit/test_compat.py::TestIgnoreUserSignals
+ tests/unit/test_help.py
+ tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
+ )
+ EPYTEST_XDIST= epytest "${serial_tests[@]}"
+
+ local EPYTEST_DESELECT=(
+ "${serial_tests[@]}"
+
+ # flaky (some ordering?)
+ tests/functional/s3/test_cp_command.py::TestCPCommand::test_multipart_upload_with_checksum_algorithm_crc32
+ )
+ # integration tests require AWS credentials and Internet access
+ epytest tests/{functional,unit}
+}
+
+python_install_all() {
+ newbashcomp bin/aws_bash_completer aws
+ newzshcomp bin/aws_zsh_completer.sh _aws
+
+ distutils-r1_python_install_all
+
+ rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
+}
diff --git a/app-admin/ig/Manifest b/app-admin/ig/Manifest
index e04877d30857..df91458004df 100644
--- a/app-admin/ig/Manifest
+++ b/app-admin/ig/Manifest
@@ -1,2 +1,2 @@
-DIST ig-0.54.0.tar.gz 5394571 BLAKE2B 3a53883251cbb8c50e330895d570893d8bebf7da668ae7d57f6a6596cd5c3a5915335d139f68d9eafe72ede4894f5bdf4759e72fde668bb3dc693eb21f855740 SHA512 654dbf6c497f996d2a085a34e50b4d81bfed24680f0c9433e4dff9e75a35fbef66f2e0b44246115a13a410983eb4bcb067ddda9ca1bed5f8e4b5c9b7d021d4d7
-DIST inspektor-gadget-vendor-v0.54.0.tar.gz 15302806 BLAKE2B 47bab431629a3b93f638fdd6df199f0e1cf81a2b9101c0465135917b36869d30ce0216b322a6091aea279e29a0e348831c8d5e55272ab8e47d7385b36f30d8a8 SHA512 891f70dc5c6a50c59bf8cf05f72e532c1ac95493b20beb97657d22c41e6e9501ecb463000c8bc63c281b37a2a0515108a967e7f5e2331869351999fc3ed92dd1
+DIST ig-0.54.1.tar.gz 5392715 BLAKE2B 5ddff21ab3af7a5768921e7ba65ad232741cabd4f90288684a0ec5dc2693ea00a59c9355afaedf4d462231e3b7bac9e97a8da9b0cc759c4fe2a5c31ebf45e211 SHA512 8888b554f36c171dca770b8c96937028d7c68716624120620f0063fed160cbe9b721356addec87fb4f86c00ea0e146a40539465a3cc2ce780e2d8893209c365e
+DIST inspektor-gadget-vendor-v0.54.1.tar.gz 15301489 BLAKE2B 5b6f16bcf25758439b5421ceaee51ae2cffcdc29ac979c470ba6eb907d1140f854bb0a584cf7689eb082264142f06b1f1d48677f4c35de4224c498f6ac7b600d SHA512 2e6f5cce4bd08ddcca7a43f231c2dd0549d6dc662f67bd46e2f24b6e003522fb828a119b74255bd568d2c03c01cc8fb77ff5704e30452cd6f736d1e9e626d77b
diff --git a/app-admin/ig/ig-0.54.0.ebuild b/app-admin/ig/ig-0.54.1.ebuild
index a85094928984..a85094928984 100644
--- a/app-admin/ig/ig-0.54.0.ebuild
+++ b/app-admin/ig/ig-0.54.1.ebuild
diff --git a/app-dicts/myspell-en/Manifest b/app-dicts/myspell-en/Manifest
index d851a071cf28..c910d0d2e54c 100644
--- a/app-dicts/myspell-en/Manifest
+++ b/app-dicts/myspell-en/Manifest
@@ -1,2 +1 @@
-DIST dict-en-20250401_lo.oxt 6273269 BLAKE2B 3f7a90a445cc343229bf0a9360928dbcd68e440563c62512a147646bc52cc5953a8da9b9e57211b5fe2cdd759e7ee3fec72c18de11d58483dec29cf3b5f31424 SHA512 20ba9670cd748d3cd05d0e8857a02b76321cafeed16a8ed1806606078824a5f4b9269d1f82166dd2cdbe9a5207a67eaa18d603bd9440ce12062c96751ff28f41
DIST dict-en-20250901_lo.oxt 6277996 BLAKE2B 654d7d81d35541fe740432fe12dcf70e970a5e9ce8082a8ab27f76146204df7d79638a40eb962826b834309fd513da1253b48f08ee84fba44a30afa315245f94 SHA512 5eb9842da6ae6630be67ec1db026e2cc5d8acff014aa938d742ab35fc332673f17e6e3e77061af964839692e05bc3ea0ba36a066507d562f4dd9274e7ee388f6
diff --git a/app-dicts/myspell-en/myspell-en-20250401.ebuild b/app-dicts/myspell-en/myspell-en-20250401.ebuild
deleted file mode 100644
index 2fd317bb3e7a..000000000000
--- a/app-dicts/myspell-en/myspell-en-20250401.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit myspell-r2
-
-DESCRIPTION="English dictionaries for myspell/hunspell"
-HOMEPAGE="
- https://extensions.libreoffice.org/extensions/english-dictionaries
- https://github.com/marcoagpinto/aoo-mozilla-en-dict
- https://proofingtoolgui.org
-"
-SRC_URI="https://extensions.libreoffice.org/assets/downloads/41/1743477350/dict-en-20250401_lo.oxt"
-
-LICENSE="BSD MIT LGPL-3+"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-
-PLOCALES=( "en-AU" "en-CA" "en-GB" "en-US" "en-ZA" )
-IUSE="${PLOCALES[*]/#/+l10n_}"
-REQUIRED_USE="|| ( ${PLOCALES[*]/#/l10n_} )"
-
-src_prepare() {
- # This thesaurus is used by all the English dictionaries, see
- # ./dictionaries.xcu in the distfile, lines 71-81.
- MYSPELL_THES=(
- "th_en_US_v2.dat"
- "th_en_US_v2.idx"
- )
-
- local non_us_dic_used=0
- local mylinguas
- for lang in "${PLOCALES[@]}"; do
- mylinguas="${lang/-/_}"
- if use "l10n_${lang}"; then
- MYSPELL_DICT+=( "${mylinguas}.aff" "${mylinguas}.dic" )
- if [[ ${lang} == en-US ]]; then
- MYSPELL_HYPH=( "hyph_en_US.dic" )
- else
- non_us_dic_used=1
- fi
- else
- rm "README_${mylinguas}.txt" || die
- if [[ ${lang} == "en-US" ]]; then
- rm "README_hyph_en_US.txt" || die
- elif [[ ${lang} == "en-GB" ]]; then
- rm "README_en_GB_thes.txt" || die
- fi
- fi
- done
-
- if [[ non_us_dic_used -eq 1 ]]; then
- # This is used by every English variety, except for the en-US, see
- # ./dictionaries.xcu, lines 60-70.
- MYSPELL_HYPH+=( "hyph_en_GB.dic" )
- else
- rm "README_hyph_en_GB.txt" || die
- fi
-
- default
-}
diff --git a/app-dicts/myspell-es/Manifest b/app-dicts/myspell-es/Manifest
index 8d528c0a702c..88e52b5c9234 100644
--- a/app-dicts/myspell-es/Manifest
+++ b/app-dicts/myspell-es/Manifest
@@ -1,23 +1,46 @@
DIST es-2.6.oxt 1456882 BLAKE2B 67acb86fa3bd0612f7d462ad25af69e722ae88ef59b269ed3be00045b9ce9d9d573cffb731e31c1437aec22c2690411b77fd6c6ca54c9c29f1d2745bdaded6c0 SHA512 24926603a5e1d3578e45fa8c5f4a82a3474c437fd73b1f2a7567849847e44f60d081ca5c6a4e18f9cc605aad0caf8ed5d2b9b0dc67ad6da43a3c0cef5212e651
+DIST es-2.9.oxt 1475270 BLAKE2B 8fa7285a8f3dc200db46462e219e5cb99c3abd00c61afdb14bdf1f140ba6f2c4369454723ea8cd4e22bd3a0347e7af48fde8a691fc4a2227c8c1bab440363ab6 SHA512 647ba2240600ab29efbf0ed6a0ef5ca4c14d0601b3cb2a5fbac59e90506e5c414f65ba35ab28debe55782d439d2ca4ad01450122deada03648de8b9a672deb5e
DIST es_AR-2.6.oxt 1402278 BLAKE2B ac0cb625493482e91d33ea3e0f3738556deda68b799467d4c95811ff7e324dc6da82090a6557ce99ca2574afa4f75b0b92fd13937471f57f60aac43f09f3fe0b SHA512 70292809ad7894e24fe0981f3f81bf6f3f67c6447e4bdf020c42a72d6e6a4cc92b658df716b93c601ab557fcd6ba1f1994d9f3597461c02f062d7597d52b8e1c
+DIST es_AR-2.9.oxt 1421280 BLAKE2B 9a89bcb6c52ae6e6b0e911fc13855cb073834a24cf6fe44dfdab693d2d28260ab2f93715416e96d662a7649b694d5dc277f0ef6487aac9bd839730a4c4988f01 SHA512 77ca54293cb5898c207485bc51e3ab5fdb48fe5d1e5c898cd4995ecadef505aa6cb5ab9cc538c226f99ae6b7bba541a315b5f2dfa7a87632839d83fa70a92a67
DIST es_BO-2.6.oxt 1399256 BLAKE2B 7659beb5373f03375f7bdf7c37a14dcbec3a1e5f127cf5a20c805132ae754af32a3fbca3031b414a253e225e691fffb5f718c709120b1f6f9425322a05140250 SHA512 e77ba88f3f655d00997eabe986781a9efa8e855608e9fd478a7dc0971e5d76fb563d660c897fc7e0d20964be0a6431d8de97adaa78dc932cb2d1f691272167c6
+DIST es_BO-2.9.oxt 1418484 BLAKE2B a7ad1f4df62211d37805f98c2c7e35d7ebd0d4b0d324f72597af3484a4128fe054893e7ba05ce0ee2ff4d25143bf7e46c7e97df3d63ecad8b48d96a18d93c417 SHA512 8338963fb8a5625de9f89780e477917391bfd79c2669161f1095613d5473e1e0b9e275bab7289213615206c66e80d3d611649e80cd99bea10cf6cd9de3f2f7f4
DIST es_CL-2.6.oxt 1400390 BLAKE2B 6f3407a0d9fded82caf7828f0efc3ddb1dd5c903e2d2bf61cdcd7de6ed3f5dfb0ac24c089d527c8bdfff607150b31d20878b28b077b6d7c57ad7569aff8220a4 SHA512 c2032ab4e0991ea2051d7632ad4eec791960d96715db67680113a4fea1eeda7a5e513a78277b0948e89dd21d49b9286db15ce6709d3100b33bd0177a9664a7b3
+DIST es_CL-2.9.oxt 1419433 BLAKE2B 5cf237fb01159f8d218a9fd48d814c2ce6916f1dc4abc32e69cf37397bf47d5d373c58fab99951bd3bae3681aa521bec755244e8c8126791bf9db964d7413c38 SHA512 27d40f6b7973a0f7527a792a6586c3a11f035cee2e6e343f489e1239113b7e9f7817ec1d7820009088159421ae422ed05d3ff30ab47513daaa4d1f29ea6c3231
DIST es_CO-2.6.oxt 1418062 BLAKE2B 8d2bbbdacdf37f53a21ddf559adbb6ec697f0af92683d03abb18f7bf2d8e65643ce62b818ef227d7068f1379ac9561c9de93ae0246927b847a73ad693b4855b1 SHA512 81b272cec7e2592e48454c9e14309bdce244c2705e38bbce790a9bf9e0a0f927206c5f9de3c2472fda85d946caac8cd8e008b6bb2f2f4adbc9fb9ba754d6f3d7
+DIST es_CO-2.9.oxt 1436640 BLAKE2B 4a7f9e6d1ba50885ec1bc26f75b2d1393d222e46841d04ddcb9bfbb3fb3074f36f2a97905c4507159efaa1e3e6ff4d517356f068869ed35b4946c57796229e82 SHA512 844db386836183212cab671823ced9c781f40931f14b5de8018a4ca86460926c574f371157c94eab21564a71b2d568a0e8157a56a72cc1a987dbf5939bcfca9e
DIST es_CR-2.6.oxt 1398273 BLAKE2B e219f818101c0e3a06c998b4b0aa8539b2a8d945d64ec441fc043996275dc65ab8bae7574c2ca3efbd61a89da2227b50438485ffbf8c890d30dab14bb3399f9b SHA512 54a035f777eadf8c35c87b7296328d1f64e78276c83d122505f68533bb4d13e6becce99c7c9a14ed6fdfa0732b0592b95c53e5996df26005a7851aba28773a7c
+DIST es_CR-2.9.oxt 1417475 BLAKE2B 8ca8b23f0d6bdd47ac04885814088a9d6afaf8b5dee65799d3f3c559dce888fdf837a1231eafff0fa507a49f3ba92135ec3724a562c8247fbc32b09a31a7c7a6 SHA512 bd98002fb00b73936b11a9f0a3be29d658a760b81f6012c891a38ef78cb89e4c59c47f2234e03b3460d88bb2446fd115a64b73b26d5e9afbf81e29769be75408
DIST es_CU-2.6.oxt 1399550 BLAKE2B e9aba378978040b97cc116ca810ebe591ccea844eb440bd1e9a03dfeec59ade4e93fae05b2461ee4bb0711d58ac442ef12e68f6114c2cf35631256083573368a SHA512 45d336d46b83a969d904dc8c2512567e7c414ee62bcaec414c8547e96a0e429743629672e6fd1c445a6ea99a58cd8bc9a630feb12be26de3684f05f8e69542a1
+DIST es_CU-2.9.oxt 1418776 BLAKE2B 4a95f00f7fabffa3637282fc0b6a729608c29e435ae0a78e4b574d29e6b70e66863efb5579e85a1b4504b43ebdccccd9c208a768ed4e319ce92e381b4371f70a SHA512 52742c6c14a9217fe49aa18ea5c492048c0759a22d12c27772dbcd73a52baa93e44e793c7108040e318be38c2a6777a6ed767a3ec6390f7971a9826bb4d28bb3
DIST es_DO-2.6.oxt 1398197 BLAKE2B 13a7d20cffd6aff109ca6ca96d98e81c60c7bac6c36ac1355572a59d9d5c8a4b443bbc966e5c952ede05dbe2ed8471f525939b130add5c85daf3da5be0291bca SHA512 77445ffaf9143c31de9e0ecfdf4d5d72ad7e78ae1098ffc7e4d31e904aefedcf352f226b242adef1424ba1ddf599e72becfa6caa6505063118c5e30a09f46baf
+DIST es_DO-2.9.oxt 1417427 BLAKE2B b9f399efabb3e6ee15b25581aed708b44c9664c078ffbed83bd74b21a1485c68733e74528ee85bcdefce3eb1e7edd0d5a543f0907e40d8bf52e6de1ae1a044af SHA512 5711b0ac63239d5e2bd78d561829dba63b188a64c5254fcfeedb7840659365a1b8ce1674032acc701630e0d113a48a95671b080d584ac4c1c5c55ad2009905af
DIST es_EC-2.6.oxt 1399031 BLAKE2B 197c4a6dc2062dca10363668d9bde911c23538f529bfed04260dacbf6d2e71dd655588f281e119ffaa5095ee93da5884fb87fc16e2d3c83f9c953fb5bef762ec SHA512 1785aa28a3d7787dc61a21c95af5f0aea7859899c11f21899ad68db9e43dd400f9ecd425d315ba5a7fb04eb3ad5fb27a5944529ed9c627d91f281100cde2ac83
+DIST es_EC-2.9.oxt 1418238 BLAKE2B f348656431dedac626ba004a08ee883feddde100056149106ba5a354211d4e765d19fdc689e37da54fdad4132a27e61b90b2bd093cb100d65b0ac68698063a11 SHA512 b6913c56c9ede850306b5a3ca83bfb5800d23da18e52912ecfbc4a4d791fc40d468862c0110440caafd8269857c3e37515de99391af1f6452e47a4db9b37b228
DIST es_ES-2.6.oxt 1404258 BLAKE2B ba7f845fc1c3595ae6dca176ee2565e48e10ed417bc82d4f4905385feb167744c512a35126f7b59ba402e0440b23d016834a1998ec0391290154b3c1dfe9b519 SHA512 ae00c002bd911fd5f3569733735894511c1f08a155b13206e11ad1dd0777b31d6c0c226e6580ffb565b99d6a48bbafe86c38760f6194cb1f09199657127c6ca6
+DIST es_ES-2.9.oxt 1423283 BLAKE2B bd3304b0037af5cf9833eeb4a57329cb0981f1ba9c698272e4da35c54d76e7fd446f46c640e16260a5df214034c56ea8f787789d732ad7d6ec768dadb712fb63 SHA512 edcc34650bff4b0876fa01c356bdc7c58f49fbf689356f46fdc80bb8538c771e5fba057037b143e4b091ded34274cbb52962112599407b408744e5924feb1cd5
DIST es_GT-2.6.oxt 1398345 BLAKE2B 2f35be91ddff907559283c9e8f1a9f66b15fb4bbc38e296479c3ccfbc16c685bd9276fe4cb33b8ed5d6e13af80358aa82463fbc16c14a1a9c9519d4769c18538 SHA512 c935643e0f88b9b08e73dbf610a8581d001bdba22e8f44d0364bf4f16fbd78f8406c1b4fe182b9b6c6cd4220a3967a291bfa926444f9d361e5d94d4ef0bc3d5b
+DIST es_GT-2.9.oxt 1417570 BLAKE2B 006a9955cb9bc5b4fdf613733f103c2ad6f969197fa0349ee1ca4c55549cbb7192f7f2b1f8a2cffc82f8e6320a8aee87db3b76fea6f2236922a64d8cb5f9f7a5 SHA512 411783c277120e13b9224c9ef07baa9bb70c29dcb3fae42e7faf712a9af030c7476d5ca4265ecf405d017674ad99a61e5c3e1934249037500376ad411d0ac4d8
DIST es_HN-2.6.oxt 1398847 BLAKE2B a3c8f16e6620e21d6828d7189a9cf73a2f1bcbde127e0601af5da725f819007691745d12cef34c2316af5317b57faaf41d041613dd887171be5565862a17fe55 SHA512 a45b39d7b9cbc4931d2cdc798e600c40a221b5d036dfd287d65bc978326d913b7822cde2efb1488d9d6be64f4cfa8b728ab1c2e387f852c8aa4cd938909f73f1
+DIST es_HN-2.9.oxt 1418051 BLAKE2B 8d0178845f14384b151f81b065f741571421bc2cc6af7f9c0eff74d06bf5ab5ee2cbfe04a4e9c67945c5ff9fe732e41839fdad9195f6180f3ee9520fb7ddea74 SHA512 075cc734a1e877f9207c260534f9e302d2bbc54ec4986347d08c4bbe44577374e1444257ea0973cfe3d4594de0fde9ce597dc76b041001c3977bd55c970ed8b3
DIST es_MX-2.6.oxt 1407822 BLAKE2B 8af171c58b7028679245e66425762a26d19d55b5d9b68af753cf41837b32a48cd33ba8c71d4565f0a8f731965897e3df93377e7a472d009946867578a8972016 SHA512 f183792b625104f8e51beeac89b374c683a4fd004c1bdf9c94979cd15a5b3da8066bc605759393c6acfab2b0e1e4d65c60cf9ea1c4947cdc3e7553338a4a7f1a
+DIST es_MX-2.9.oxt 1426652 BLAKE2B accf3bd9023e958aa21277f08c70cc581fbc3c36e0e4ddc3735a6bc3788d4f3ef7c46da227ca915b6caabc6437894ed419f03035fef1ff88a0209161e1fbf0d1 SHA512 c5ef7516c460b3f9943493d36f8b1e6a71c820bedc1248a079afadbf7b299c1acf16f1c988c7a1a013633d5c3b43388251f9561b486199b884465e3fefa05d2a
DIST es_NI-2.6.oxt 1398536 BLAKE2B f74f56cad81d14d51eb6a402bcf2e7ce1f836c0f533b65fecbc2bc8a0186d62a6f15a4e8c22ce2a879b13dea5bdbcaaf1c0324acd2c21ceecf8e1c972b9a1af3 SHA512 d9a8512b70be764acfcdd9fb40c3a183c02c32524568b79869ad9233924c654693f9cd405b3ead7f5548aedde3151f287ee6ca94f83d3ff57991dc749bf59146
+DIST es_NI-2.9.oxt 1417756 BLAKE2B a00bcf60d9e1415ba69e9040209f26a5a5d11c906e44ec3dead36d4da03e8e3135781c349f9b1374eb51872850f64e35b18127b3962bbd75966ea8621d80ffe5 SHA512 81b0e87ea6ee0b6b50fc73c030d33c03f3332b2f6a58225a6964308d4e770228d4269dc81156399babd68b194587b07130679fb5b058f2368f4aa0079a209521
DIST es_PA-2.6.oxt 1398374 BLAKE2B 7750342b72744d8155d37c54c601ec5f0f522557779409cc43d53d13a2b789ad31012e9f957d5092b7423e3db02490c5546bd0ca6e7e0670e99a177553f62f7f SHA512 a5807d55b4cf3fab505a02f9f28b1ac496f9f656d34ab2350ee5a117b8a28621357bc6bfb8143499424aed1609630c626426c040079246185d5c556751faaa26
+DIST es_PA-2.9.oxt 1417596 BLAKE2B 56eb37054dab38c3b5408b95cd8b592f8acd4ce403f5badf3ae9806d695d4356551e5ac9bc8d61583579fafcf7fffa3620d1b0fa799ea9e6b5f63a8f95b00bba SHA512 9b26cb65d2c8ba21a6569dc211014bd971aca604fe791b9028a0e4e0dc3007dd7fbcb955d3535121ffc78d1ec8cbcfcc2e03678ba813a7fdfb191a1ad4d7af9c
DIST es_PE-2.6.oxt 1404244 BLAKE2B 19e136f2b8a8e7d432df292104e3149801448923d81ea78ea62d63eb4393b1462e9ccdb57db8b8a0a7ab557bcde06e653747971f0330ca8579bd8c575c437b3d SHA512 3366afdbc6cdd0ad59d282a6666669b2042d15795414911b2cd2e27d11b0ddb1a4ff288129fb7731cc21c642f81cef2ffdaf55e2a2eb7cf64b1c10976c6ff4ea
+DIST es_PE-2.9.oxt 1423143 BLAKE2B 5be3802cc284f10a1bd172e04a81f73741f71e303c7477d8d344e8afaeffe796bd1d53925d1e3921a9835abaa2124e938b55113157998201284d1a3dff18e435 SHA512 7f94c3ed7d993e9717ef83187bcef6af7f32a1a71e83e3b7a2217f2a8fbb8327cdb8bb1fd96ae74e352748dbed1e5f48e349fd8b8c91fcd2e59e953ee64d32f9
DIST es_PH-2.6.oxt 1439219 BLAKE2B 471679ca90e91f4c004d0ac623e4b88c0e49b14f5a7875a55acbbf0813dc498b5015d2a2936dfda9d42576f66b5a7828298bec04abbb93888e4a7e1b4e2f6012 SHA512 380358971bdc2b0d7e2a667b372209db6d300ba349ef44566de2617217eef6720366e0844663f0df698b94ed5062314eb4d0495a3179735ffb6f60342665ce06
+DIST es_PH-2.9.oxt 1457609 BLAKE2B a45dad6f0b1b6df5934d06fb90c61286488d0b00d758a9e8c62d27b1a73f289b00ef2e6223689714cab5c1e85081f5dd15f6f2ce71526bf3d5fc59241bc32c9c SHA512 00164489d8e6a3b72041d4d7b61b40048e950f0c9997c8da9940f26954a75b509376b97c98c44549d913657719cf1849b8b8eaafa63f7e7ef785ca6c15141ba0
DIST es_PR-2.6.oxt 1398833 BLAKE2B d380cdc10d19271fa97d603ef954ed8a096e5ffbdd58acaa9a89a87ee65edbdc3785de0713cd89cffd3299607029118fd0c8a3f756a8538e607f0fbcf643da72 SHA512 bdc3f41a6310a28f4147034ca70a6e74203498b87a5de814ce93c40cb2ba19b741addf33680048a558d681bc52989c46645b8e8a90ca76ef50299d4fb5e947a3
+DIST es_PR-2.9.oxt 1418061 BLAKE2B ee0915abdae052a9269bdbbc966666661ef20199e5be01288ed8b71fc4df9b28271dbf00172c2199ed12de49ce29b2c3ff0083d54af63590f89facb51d604ecb SHA512 0359f522b9449f55e5205d09c3f2b4bcec98e966889679a005dfa985c097ad1366ef6a3ff53aeb8305e1d4dd12b2d3dec52177787d46506e3320e57b45de31a2
DIST es_PY-2.6.oxt 1398291 BLAKE2B acb203c26081c9d7bf25976f2acda996cadc119658ae0e34cf184005740fa04e41f70056ed7103b2e152d28289d7ab50f28acb4a3cf1adb58f5f1cee7b1fba40 SHA512 bcc8e7a301bee762d1d1a9a3447e4e2c7a2a2b42eb5beed1053d439aaa908ef178165863bbe5db96eeeeeccbecdc472b0fcb8311595c07daebe779d55c4f10cb
+DIST es_PY-2.9.oxt 1417497 BLAKE2B 026b3d51fb9d995521d1038aedccb445425ac72be16ddd5e37ab9d4a41eee0b1ea55e0311a8d4b26a35c5f41d59819679722c3ba83aea4263f4c7f5a162eedcf SHA512 873524d98fcdaa7af2597b8890cdc548df6a396d55745d5bbc8e5477f50c4b2bbadf8c3e39059d566958f8ce3ed6a0cb9fe3e11c961e356cc92bf849ef34af7c
DIST es_SV-2.6.oxt 1398468 BLAKE2B f88b683d4c1f342606f30e3e80c3766d06ca66f0f851907924b24ce57e71a681fa8f4720fc3d756ab46e12665d6de5d5182c1353317e4e02264431d0fbd10745 SHA512 f8032d7930102af6c1773dc9d8e47dc16e0d9aa4968c1ae4d694d52b95fad82ed438bd3b85761ed47dbb25093c2fb08b116bc9cae284d955c7c8868cfc0457c6
+DIST es_SV-2.9.oxt 1417676 BLAKE2B ce1b767956ff1ad9ae0b87dc637685e9b8725d815bf32a9dffb0e4b727ca02831bbae49e84e037ae6822bf189032f16816b7100bd82e329f6100a6314d62457b SHA512 4012e0a81696f80bab5c994597199ab88743643ddee3b00abe17726a960c4fd353564dc254f6a796c1e83ad76a2c2e3f53f6d46a21a85311e0f01e238797b7a5
DIST es_US-2.6.oxt 1398918 BLAKE2B 1629aa767095197aa71fc3bc88221bad6f2821111e757e4c0e5e14684dee34f1e442a8a46d11d877d3b2d9ca9f04c258e8ce21d38b372ec84ebc637e9faa690a SHA512 b21fa5ed1af7f2bd0d709b4e35f5aa49fa3d9c25847d0a3e077e8e9e2c6cd3ab9bdf4599f83386fd1441f96937df7d0fcfe1ba36830721840fccf158e4bb4d65
+DIST es_US-2.9.oxt 1418131 BLAKE2B f1f94dacc61334fff145843f9123f0d53a15a067e80c66b5af752de2f31579da5fd06972d4ad4a4d25a790549dcb2f024c718b805ebd54c97cf35d5c7049c18d SHA512 3ead61208190d867265a239c9e23c2ffd8d2661bf4846f5fc6bfb270763cebff1ae08730440b71d70bce2e223bc79d6bc705b3322b92e2872bd9a1ca38d12aa6
DIST es_UY-2.6.oxt 1399347 BLAKE2B d92d6eb5d3d8cfcca8e93e771203f9613d8709d39752864e6b3eabb1a901d02a6811e4fe3f326fe53fa065ab52e4e4ffc2057e0cc86065cc50dca6cb01435fa1 SHA512 312e42fda60549a7171eed7b19e92e74a98d306f0b2f8f218e538a4653408a805573de838e476250b8fc54b8b75d0a83a6b5f261ca62a39171c69656d8235265
+DIST es_UY-2.9.oxt 1418541 BLAKE2B f8d7ad82d7d298338cf4d953f189921df25f4606da3a9be8df3fb21076c8f1dd85c41017b89de18d2c938530c7e12b9d933314badc5e23e73bfdfeab1bafa571 SHA512 f38b13439ca76b7201ff5f7b69b56f2884b88b499e80a145f65a64a984ee98510835532af3d9a74375056d53f736c9e814a38e35b1ab5ae5064ac1d39307b898
DIST es_VE-2.6.oxt 1399975 BLAKE2B bfa3f6e06c39bd2359300f58d43a1bda5604a9435143ea6f7d84a4b4bff0f71363074d2e4cef1f6c5749b041d53b178492d4b583bfed66b12dd53623bdd56f0e SHA512 026f808b8050d0ef2135679c9ae8af026f9181a2d004a033c79eb3ea9c43673fee091a3603527bb1f73595c8129949d6c569f97f56e6970d490460f3aca1e647
+DIST es_VE-2.9.oxt 1418933 BLAKE2B ac3f0ec4cbecdf09259a9d9511b69da6db783be9e5019f8ef7f68f23126a772a92334b94e3b3dc872e162fe31b61355a2545e85b183b92c202ac8cec43db9aee SHA512 a32bdef9f941da9936c72b16b7cc91e7eb6e49d69edfd824fa28f89fb07aa38e8fa843c328790929c3429f2c030c18bab35075a7eaf162c918dcd479f4194128
diff --git a/app-dicts/myspell-es/myspell-es-2.9.ebuild b/app-dicts/myspell-es/myspell-es-2.9.ebuild
new file mode 100644
index 000000000000..be105a34f223
--- /dev/null
+++ b/app-dicts/myspell-es/myspell-es-2.9.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MUTATIONS=(
+ "es" "es_AR" "es_BO" "es_CL" "es_CO" "es_CR" "es_CU" "es_DO" "es_EC" "es_ES" "es_GT" "es_HN"
+ "es_MX" "es_NI" "es_PA" "es_PE" "es_PH" "es_PR" "es_PY" "es_SV" "es_US" "es_UY" "es_VE"
+)
+
+MYSPELL_HYPH=(
+ "hyph_es.dic"
+)
+MYSPELL_THES=(
+ "th_es_v2.dat"
+ "th_es_v2.idx"
+)
+
+for i in "${MUTATIONS[@]}"; do
+ MYSPELL_DICT+=(
+ "${i}.dic"
+ "${i}.aff"
+ )
+ SRC_URI+=" https://github.com/sbosio/rla-es/releases/download/v${PV}/${i}.oxt -> ${i}-${PV}.oxt"
+done
+
+unset i MUTATIONS
+
+inherit myspell-r2
+
+DESCRIPTION="Spanish dictionaries for myspell/hunspell"
+HOMEPAGE="https://github.com/sbosio/rla-es"
+LICENSE="GPL-3+ LGPL-3+ MPL-1.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+src_prepare() {
+ # remove license files
+ rm {GPL,LGPL,MPL}* || die
+ default
+}
diff --git a/app-editors/emacs/emacs-31.0.90.ebuild b/app-editors/emacs/emacs-31.0.90.ebuild
index d9eb39c0ffb5..0b4dc6cdc0da 100644
--- a/app-editors/emacs/emacs-31.0.90.ebuild
+++ b/app-editors/emacs/emacs-31.0.90.ebuild
@@ -33,14 +33,14 @@ else
fi
SLOT="${PV%%.*}"
[[ ${PV} == *.*.* ]] && SLOT+="-vcs"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
fi
DESCRIPTION="The advanced, extensible, customizable, self-documenting editor"
HOMEPAGE="https://www.gnu.org/software/emacs/"
LICENSE="GPL-3+ FDL-1.3+ Boost-1.0 BSD CC-BY-SA-3.0 CC-BY-SA-4.0 HPND MIT MPL-2.0 PCRE PSF-2 unicode W3C"
-IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source sqlite ssl svg systemd +threads tiff toolkit-scroll-bars tree-sitter valgrind webp wide-int +X xattr Xaw3d xft +xpm zlib"
+IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source sqlite ssl svg systemd +threads tiff toolkit-scroll-bars tree-sitter valgrind webp wide-int +X xattr Xaw3d xft +xpm xwidgets zlib"
X_DEPEND="x11-libs/libICE
x11-libs/libSM
@@ -67,7 +67,13 @@ X_DEPEND="x11-libs/libICE
>=dev-libs/m17n-lib-1.5.1
)
)
- gtk? ( x11-libs/gtk+:3[X] )
+ gtk? (
+ x11-libs/gtk+:3[X]
+ xwidgets? (
+ net-libs/webkit-gtk:4.1=
+ x11-libs/libXcomposite
+ )
+ )
!gtk? (
motif? (
>=x11-libs/motif-2.3:0=
@@ -141,6 +147,7 @@ RDEPEND=">=app-emacs/emacs-common-1.11[games?,gui?]
>=dev-libs/libotf-0.9.4
>=dev-libs/m17n-lib-1.5.1
)
+ xwidgets? ( net-libs/webkit-gtk:4.1= )
) )
!gtk? ( ${X_DEPEND} )
X? ( ${X_DEPEND} )
@@ -307,11 +314,11 @@ src_configure() {
--with-pgtk --without-x --without-ns
--with-toolkit-scroll-bars #836392
--without-gconf
- --without-xwidgets
$(use_with gsettings)
$(use_with harfbuzz)
$(use_with m17n-lib libotf)
$(use_with m17n-lib m17n-flt)
+ $(use_with xwidgets)
)
else
# X11
@@ -358,7 +365,7 @@ src_configure() {
it with the Athena/Lucid or the Motif toolkit instead,
i.e. with USE="athena Xaw3d -gtk -motif" or USE="motif -gtk".
EOF
- myconf+=( --with-x-toolkit=gtk3 --without-xwidgets )
+ myconf+=( --with-x-toolkit=gtk3 $(use_with xwidgets) )
for f in motif Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"gtk\" is set."
@@ -377,6 +384,8 @@ src_configure() {
einfo "Configuring to build with no toolkit"
myconf+=( --with-x-toolkit=no )
fi
+ ! use gtk && use xwidgets && ewarn \
+ "USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
fi
if use gui; then
diff --git a/app-editors/emacs/emacs-31.0.9999-r1.ebuild b/app-editors/emacs/emacs-31.0.9999-r1.ebuild
index d9eb39c0ffb5..2a060e51bfab 100644
--- a/app-editors/emacs/emacs-31.0.9999-r1.ebuild
+++ b/app-editors/emacs/emacs-31.0.9999-r1.ebuild
@@ -40,7 +40,7 @@ DESCRIPTION="The advanced, extensible, customizable, self-documenting editor"
HOMEPAGE="https://www.gnu.org/software/emacs/"
LICENSE="GPL-3+ FDL-1.3+ Boost-1.0 BSD CC-BY-SA-3.0 CC-BY-SA-4.0 HPND MIT MPL-2.0 PCRE PSF-2 unicode W3C"
-IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source sqlite ssl svg systemd +threads tiff toolkit-scroll-bars tree-sitter valgrind webp wide-int +X xattr Xaw3d xft +xpm zlib"
+IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source sqlite ssl svg systemd +threads tiff toolkit-scroll-bars tree-sitter valgrind webp wide-int +X xattr Xaw3d xft +xpm xwidgets zlib"
X_DEPEND="x11-libs/libICE
x11-libs/libSM
@@ -67,7 +67,13 @@ X_DEPEND="x11-libs/libICE
>=dev-libs/m17n-lib-1.5.1
)
)
- gtk? ( x11-libs/gtk+:3[X] )
+ gtk? (
+ x11-libs/gtk+:3[X]
+ xwidgets? (
+ net-libs/webkit-gtk:4.1=
+ x11-libs/libXcomposite
+ )
+ )
!gtk? (
motif? (
>=x11-libs/motif-2.3:0=
@@ -141,6 +147,7 @@ RDEPEND=">=app-emacs/emacs-common-1.11[games?,gui?]
>=dev-libs/libotf-0.9.4
>=dev-libs/m17n-lib-1.5.1
)
+ xwidgets? ( net-libs/webkit-gtk:4.1= )
) )
!gtk? ( ${X_DEPEND} )
X? ( ${X_DEPEND} )
@@ -307,11 +314,11 @@ src_configure() {
--with-pgtk --without-x --without-ns
--with-toolkit-scroll-bars #836392
--without-gconf
- --without-xwidgets
$(use_with gsettings)
$(use_with harfbuzz)
$(use_with m17n-lib libotf)
$(use_with m17n-lib m17n-flt)
+ $(use_with xwidgets)
)
else
# X11
@@ -358,7 +365,7 @@ src_configure() {
it with the Athena/Lucid or the Motif toolkit instead,
i.e. with USE="athena Xaw3d -gtk -motif" or USE="motif -gtk".
EOF
- myconf+=( --with-x-toolkit=gtk3 --without-xwidgets )
+ myconf+=( --with-x-toolkit=gtk3 $(use_with xwidgets) )
for f in motif Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"gtk\" is set."
@@ -377,6 +384,8 @@ src_configure() {
einfo "Configuring to build with no toolkit"
myconf+=( --with-x-toolkit=no )
fi
+ ! use gtk && use xwidgets && ewarn \
+ "USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
fi
if use gui; then
diff --git a/app-editors/emacs/emacs-32.0.9999.ebuild b/app-editors/emacs/emacs-32.0.9999.ebuild
index 41978ee49c63..67a8b603fc62 100644
--- a/app-editors/emacs/emacs-32.0.9999.ebuild
+++ b/app-editors/emacs/emacs-32.0.9999.ebuild
@@ -40,7 +40,7 @@ DESCRIPTION="The advanced, extensible, customizable, self-documenting editor"
HOMEPAGE="https://www.gnu.org/software/emacs/"
LICENSE="GPL-3+ FDL-1.3+ Boost-1.0 BSD CC-BY-SA-3.0 CC-BY-SA-4.0 HPND MIT MPL-2.0 PCRE PSF-2 unicode W3C"
-IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source sqlite ssl svg systemd +threads tiff toolkit-scroll-bars tree-sitter valgrind webp wide-int +X xattr Xaw3d xft +xpm zlib"
+IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source sqlite ssl svg systemd +threads tiff toolkit-scroll-bars tree-sitter valgrind webp wide-int +X xattr Xaw3d xft +xpm xwidgets zlib"
X_DEPEND="x11-libs/libICE
x11-libs/libSM
@@ -67,7 +67,13 @@ X_DEPEND="x11-libs/libICE
>=dev-libs/m17n-lib-1.5.1
)
)
- gtk? ( x11-libs/gtk+:3[X] )
+ gtk? (
+ x11-libs/gtk+:3[X]
+ xwidgets? (
+ net-libs/webkit-gtk:4.1=
+ x11-libs/libXcomposite
+ )
+ )
!gtk? (
motif? (
>=x11-libs/motif-2.3:0=
@@ -141,6 +147,7 @@ RDEPEND=">=app-emacs/emacs-common-1.11[games?,gui?]
>=dev-libs/libotf-0.9.4
>=dev-libs/m17n-lib-1.5.1
)
+ xwidgets? ( net-libs/webkit-gtk:4.1= )
) )
!gtk? ( ${X_DEPEND} )
X? ( ${X_DEPEND} )
@@ -307,11 +314,11 @@ src_configure() {
--with-pgtk --without-x --without-ns
--with-toolkit-scroll-bars #836392
--without-gconf
- --without-xwidgets
$(use_with gsettings)
$(use_with harfbuzz)
$(use_with m17n-lib libotf)
$(use_with m17n-lib m17n-flt)
+ $(use_with xwidgets)
)
else
# X11
@@ -358,7 +365,7 @@ src_configure() {
it with the Athena/Lucid or the Motif toolkit instead,
i.e. with USE="athena Xaw3d -gtk -motif" or USE="motif -gtk".
EOF
- myconf+=( --with-x-toolkit=gtk3 --without-xwidgets )
+ myconf+=( --with-x-toolkit=gtk3 $(use_with xwidgets) )
for f in motif Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"gtk\" is set."
@@ -377,6 +384,8 @@ src_configure() {
einfo "Configuring to build with no toolkit"
myconf+=( --with-x-toolkit=no )
fi
+ ! use gtk && use xwidgets && ewarn \
+ "USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
fi
if use gui; then
diff --git a/app-editors/emacs/metadata.xml b/app-editors/emacs/metadata.xml
index 66b12988e8b3..a7f101c8bd74 100644
--- a/app-editors/emacs/metadata.xml
+++ b/app-editors/emacs/metadata.xml
@@ -81,6 +81,9 @@
effect only on 32-bit systems, where it increases the maximum buffer
size from 0.5 to 2 GiB, at the cost of 10% to 30% Lisp slowdown.
</flag>
+ <flag name="xwidgets">
+ Enable use of GTK widgets in Emacs buffers (requires GTK3)
+ </flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:gnu:emacs</remote-id>
diff --git a/app-editors/gedit-plugins/gedit-plugins-49.0-r1.ebuild b/app-editors/gedit-plugins/gedit-plugins-49.0-r1.ebuild
new file mode 100644
index 000000000000..8067fddfd2c9
--- /dev/null
+++ b/app-editors/gedit-plugins/gedit-plugins-49.0-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit gnome2-utils meson vala xdg
+
+DESCRIPTION="Collection of extra plugins for the gedit Text Editor"
+HOMEPAGE="https://gitlab.gnome.org/World/gedit/gedit-plugins"
+SRC_URI="https://gitlab.gnome.org/World/gedit/${PN}/-/archive/${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv x86"
+
+IUSE="vala"
+
+RDEPEND="
+ >=dev-libs/libpeas-1.38.1:0[gtk]
+ >=app-editors/gedit-49
+ >=dev-libs/glib-2.32:2
+ >=x11-libs/gtk+-3.9:3
+ gui-libs/libgedit-gtksourceview:300
+" # vte-0.52+ for feed_child API compatibility
+DEPEND="${RDEPEND}"
+BDEPEND="
+ dev-libs/libxml2
+ dev-util/itstool
+ >=sys-devel/gettext-0.19.8
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+"
+
+src_prepare() {
+ default
+ use vala && vala_setup
+ xdg_environment_reset
+}
+
+src_configure() {
+ local emesonargs=(
+ -Dplugin_bookmarks=true
+ -Dplugin_drawspaces=true
+ -Dplugin_smartspaces=true
+ -Dplugin_wordcompletion=true
+ )
+ meson_src_configure
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
diff --git a/app-emulation/winetricks/Manifest b/app-emulation/winetricks/Manifest
index 3f48d0d0a678..29937ee5664f 100644
--- a/app-emulation/winetricks/Manifest
+++ b/app-emulation/winetricks/Manifest
@@ -1,2 +1 @@
-DIST winetricks-20250102.tar.gz 669468 BLAKE2B 4fc1170d3d0755f86744aa206204c993ad9efea56ec3193de81c62997179addc66b5c61b34d257ee97b8715fadbd27c07ec6845b5b3d1125ef2bcaa087081186 SHA512 f9dc94eb7bb35c180a403bf58337a82166314e8d55123ce720ed4664b8d6fa9415576b8d02697f973a74b8d1dc578047bd3b1ed62a3c455a4ae6575f3ab7fccd
DIST winetricks-20260125.tar.gz 706134 BLAKE2B 0acedede3cc77723ec4feeab572bb402e088587c7409eda92136f823805f34cd0fb7172e6d2af6f69508e8df1892b03581095ddada6013f5da4b253629937f91 SHA512 ab29191c8032ba70ee8e807c7910916d47cbbdab658cdb5a1c1daa11f0eb7e219a8cd5555e4e681a154913237e4600a8c5056e8bdd9c1f44dac92f27ec875fcb
diff --git a/app-emulation/winetricks/winetricks-20250102-r1.ebuild b/app-emulation/winetricks/winetricks-20250102-r1.ebuild
deleted file mode 100644
index 3d70870fa646..000000000000
--- a/app-emulation/winetricks/winetricks-20250102-r1.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit xdg
-
-DESCRIPTION="Easy way to install DLLs needed to work around problems in Wine"
-HOMEPAGE="https://github.com/Winetricks/winetricks https://wiki.winehq.org/Winetricks"
-
-if [[ ${PV} == *99999999* ]] ; then
- EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git"
- inherit git-r3
-else
- SRC_URI="https://github.com/Winetricks/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 x86"
-fi
-
-LICENSE="LGPL-2.1+"
-SLOT="0"
-IUSE="gui rar"
-RESTRICT="test"
-
-RDEPEND="
- app-arch/cabextract
- || (
- >=app-arch/7zip-24.09[symlink(+)]
- app-arch/p7zip
- )
- app-arch/unzip
- net-misc/wget
- virtual/wine
- x11-misc/xdg-utils
- gui? ( || (
- gnome-extra/zenity
- kde-apps/kdialog:*
- ) )
- rar? ( app-arch/unrar )
-"
-
-src_unpack() {
- case ${PV} in
- *99999999*) git-r3_src_unpack ;&
- *) default ;;
- esac
-}
-
-src_install() {
- default
-
- if ! use gui; then
- rm -r "${ED}"/usr/share/{applications,icons} || die
- fi
-}
diff --git a/app-misc/freewvs/Manifest b/app-misc/freewvs/Manifest
index 3ad727d4370b..4d39b064884b 100644
--- a/app-misc/freewvs/Manifest
+++ b/app-misc/freewvs/Manifest
@@ -1,2 +1 @@
-DIST freewvs-0.1.4.tar.gz 18674 BLAKE2B 8923cd4dc9df529ff55d0ac807106e77d31b0e2ea7b7acab9d0bbd40526818d1d62d74718f2addf79f45e5b7154b0e6351ed3245e864f022f04ab6d4c235d228 SHA512 01632a5c3dd3dc58577225ea57debd5e44ca1a24b30d9cf0c9f17547f72b030b50caaf2ffa4a61ad5d0c1546eedda914da96ce39814ec3c2c421823e9d8e5760
DIST freewvs-0.1.5.tar.gz 19922 BLAKE2B f3cc7f2a1837287da409af91e28ced4b4b6cbc00370f221d38d2aaf6d080ee80ef8b041b54f838868b01820ce08a5139526062f402dcf1cac451c56329adad72 SHA512 3d1d55adbe4324ec8a7ba67dad3706ba6342347f84ca64e6f48e809d16b132570f281c9073d7b842cb1cd1503ae25b5ef50ffa49237dd1966974aa330a89f588
diff --git a/app-misc/freewvs/freewvs-0.1.4-r1.ebuild b/app-misc/freewvs/freewvs-0.1.4-r1.ebuild
deleted file mode 100644
index f3f4f7a91ee0..000000000000
--- a/app-misc/freewvs/freewvs-0.1.4-r1.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{13..14} )
-DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1 pypi
-
-DESCRIPTION="Scans filesystem for known vulnerable web applications"
-HOMEPAGE="https://freewvs.schokokeks.org/"
-
-LICENSE="0BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-
-DOCS=( README.md )
-
-pkg_postinst() {
- einfo To use freewvs you need to run
- einfo update-freewvsdb
- einfo first. You should run this on a regular basis to update
- einfo the web application data, e.g. via a cronjob.
-}
-
-# Only codingstyle and similar tests, require dependencies
-# not packaged in Gentoo
-RESTRICT="test"
diff --git a/app-misc/yq/Manifest b/app-misc/yq/Manifest
index 4556b42fdfcc..f9ad7b3d4877 100644
--- a/app-misc/yq/Manifest
+++ b/app-misc/yq/Manifest
@@ -1 +1,3 @@
DIST yq-3.4.3.tar.gz 33214 BLAKE2B a1b3d813d9761ac8a8429db3fe8efac64ade69e0d2fa9b137a1ca8c9e367a0f16b636482b6d9381e2de43392007f37388b6ab37def04739723488f271fd56d16 SHA512 db4ec57aafa1d08786ba11897040506c9f13d800cf06f76cea052d2bba88553db53627cdfcfdbbfbdec81324800114d397890759383fb4db31609727a10474eb
+DIST yq-3.4.4.tar.gz 33946 BLAKE2B c8fb6a6cad5e3e57dbd505976268912d240ef5875e2a8ed6c5d77c9d8bdfeb2b4ba6354046c6ad9d10fecc98845456f8c4485e0f10f984b7c64c5bf08bf72e4e SHA512 fd675df75a0e3a3942a22fd22ba917b6ce3e5d6ba7845e6f3a1f6ee93362706536a9c2e8a0f47578235073492267f72f50504957aee521a2e90ba215bfb7bbef
+DIST yq-4.1.2.tar.gz 33949 BLAKE2B 1aa1c54d11cc9e33109ab2bb382493872e27c2af025ff3ebe551ea07325f91c331ab9d6221089a521a5a15297780e84a67331a899bae8ad5de3ccdd216f2e69e SHA512 f5ad97fca018b40c356273cf499e1c8c72940b9c34eecb635fa7a0fe615023d51768e29faea40093f31164c04278fd8e3c902925e73e8b8cf700c1117c1e8081
diff --git a/app-misc/yq/yq-3.4.4.ebuild b/app-misc/yq/yq-3.4.4.ebuild
new file mode 100644
index 000000000000..94d78c35f98e
--- /dev/null
+++ b/app-misc/yq/yq-3.4.4.ebuild
@@ -0,0 +1,59 @@
+# 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=hatchling
+
+inherit pypi distutils-r1
+
+DESCRIPTION="Command-line YAML processor - jq wrapper for YAML documents"
+HOMEPAGE="
+ https://yq.readthedocs.io/
+ https://github.com/kislyuk/yq/
+ https://pypi.org/project/yq/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~x86"
+IUSE="test +yq-symlink"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ app-misc/jq
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.3.1[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.11.6[${PYTHON_USEDEP}]
+ yq-symlink? ( !app-misc/yq-go[yq-symlink] )
+"
+DEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/wheel[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/yq-3.1.2-test.patch"
+)
+
+python_prepare_all() {
+ sed -e 's:unittest.main():unittest.main(verbosity=2):' \
+ -i test/test.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${EPYTHON}" test/test.py </dev/null || die "tests failed under ${EPYTHON}"
+}
+
+src_install() {
+ distutils-r1_src_install
+ if use yq-symlink; then
+ dosym yq-python /usr/bin/yq
+ fi
+}
diff --git a/app-misc/yq/yq-4.1.2.ebuild b/app-misc/yq/yq-4.1.2.ebuild
new file mode 100644
index 000000000000..9bdadefafbd8
--- /dev/null
+++ b/app-misc/yq/yq-4.1.2.ebuild
@@ -0,0 +1,59 @@
+# 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=hatchling
+
+inherit pypi distutils-r1
+
+DESCRIPTION="Command-line YAML processor - jq wrapper for YAML documents"
+HOMEPAGE="
+ https://yq.readthedocs.io/
+ https://github.com/kislyuk/yq/
+ https://pypi.org/project/yq/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~x86"
+IUSE="test +yq-symlink"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ app-misc/jq
+ >=dev-python/argcomplete-1.8.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.3.1[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.11.6[${PYTHON_USEDEP}]
+ yq-symlink? ( !app-misc/yq-go[yq-symlink] )
+"
+DEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/wheel[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/yq-3.1.2-test.patch"
+)
+
+python_prepare_all() {
+ sed -e 's:unittest.main():unittest.main(verbosity=2):' \
+ -i test/test.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ "${EPYTHON}" test/test.py </dev/null || die "tests failed under ${EPYTHON}"
+}
+
+src_install() {
+ distutils-r1_src_install
+ if use yq-symlink; then
+ dosym yq-python /usr/bin/yq
+ fi
+}
diff --git a/dev-cpp/msgpack-cxx/Manifest b/dev-cpp/msgpack-cxx/Manifest
index 6e465b95701d..4228a9f0c6a0 100644
--- a/dev-cpp/msgpack-cxx/Manifest
+++ b/dev-cpp/msgpack-cxx/Manifest
@@ -1,4 +1,2 @@
-DIST msgpack-cxx-5.0.0.tar.gz 476103 BLAKE2B e631a47e8d39b6ad9c2dd5e782fbbd5044c177e18c619fb52d1293e2c5f2ea7e766e7b26ce6cac36a2ff98217143e12456e0541992afb4f78597ffd3852f2acf SHA512 5ee0237eb1bf05bd4becad32ab145a8f0654f8f0e2e3452331ed3df088cda03ee4cdf1557ba867447e3e18baed924c105c76934f7009dac98b6dc69282c39d0c
-DIST msgpack-cxx-6.0.0.tar.gz 476132 BLAKE2B 89b6505511bd8f6994a2e61661c7a33bd1aa68804c081ec2fcaf074f845caf4338ac362916af9fb0bab7285b0d0508c74b229316fa75ef8083546ac84c4ca95d SHA512 90f89216676af5a656d570fbff5a716d1177fa1941b0a928b2da20e0b6cd6d0ca880b7369e085dbbca944499c05694a73df919042d8cd78498ed4b34b77a0e9d
-DIST msgpack-cxx-6.1.0.tar.gz 478452 BLAKE2B 14c6e28ab02957e6313a01002d05c23e2599f433656c8ea8033eb338c6e8b97d10e00a91e1e67bc3b944c3f9b46ad1ea11fc6905d50554699caeed7bd9cbc8f7 SHA512 935453432b53d2cbecc3e34d4fb17ecd3bbc6eae9087fa3c4445c90750f144ab39ad6461cc9552eec7ed2b222315c5f6e8b30d409eb34a98bebe02e03582fd41
DIST msgpack-cxx-6.1.1.tar.gz 476459 BLAKE2B 6ec940af9b9e02d892c5f118791015baa6b12baa60c77aaf2ff867e8836f21b4f16c436ce448cdfeb7dc8f8a9356a75f3ac829eba9059ca5d78f42a4393700ff SHA512 6a3df977e7a9c8b50feb7c88cff7a78814d1d41d2f7a657dd37d6cfcfe24f44746f40a6dd46bd5dba7ea59d94b9e40c2baa62c08d9b02168ac93c58cbff3becc
+DIST msgpack-cxx-8.0.0.tar.gz 480783 BLAKE2B c01a39012dd137e6bd767a350f21e8ddd37d982f01cc95f2b6bf7582823ea79603de332241a77871ba6d7387243cdfe7a514378d591011120dac2b01cc7c9b04 SHA512 8d3a20b04a201a7095556ab901f55ca0ca664940c4b7bebcdddd405fbb3f052fb38720e49aec5259a5513f2c272b9584d8b108139fb7de7d63438ee4258cdfd9
diff --git a/dev-cpp/msgpack-cxx/files/msgpack-cxx-6.0.0-gcc13.patch b/dev-cpp/msgpack-cxx/files/msgpack-cxx-6.0.0-gcc13.patch
deleted file mode 100644
index 3e0b67675e2d..000000000000
--- a/dev-cpp/msgpack-cxx/files/msgpack-cxx-6.0.0-gcc13.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 2dd3dbc85f5c3ab789792844e50f7423bdb1d3f9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@gentoo.org>
-Date: Tue, 18 Apr 2023 15:50:52 +0200
-Subject: [PATCH] test: Add missing rebind to allocators
-
-See https://gcc.gnu.org/gcc-13/porting_to.html
----
-https://github.com/msgpack/msgpack-c/pull/1065
-
- test/msgpack_cpp11.cpp | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/test/msgpack_cpp11.cpp b/test/msgpack_cpp11.cpp
-index 2a856cb8..6b04e5a1 100644
---- a/test/msgpack_cpp11.cpp
-+++ b/test/msgpack_cpp11.cpp
-@@ -252,6 +252,9 @@ struct equal_to : std::equal_to<Key> {
- template <class Key>
- struct set_allocator : std::allocator<Key> {
- using std::allocator<Key>::allocator;
-+
-+ template<class U>
-+ struct rebind { using other = set_allocator<U>; };
- };
-
- // C++ named requirement Allocator implies that the first template type
-@@ -262,6 +265,9 @@ struct set_allocator : std::allocator<Key> {
- template <typename KeyValuePair>
- struct map_allocator_impl : std::allocator<KeyValuePair> {
- using std::allocator<KeyValuePair>::allocator;
-+
-+ template<class U>
-+ struct rebind { using other = map_allocator_impl<U>; };
- };
-
- template <class Key, class T>
-@@ -270,6 +276,9 @@ using map_allocator = map_allocator_impl<std::pair<const Key, T>>;
- template <class T>
- struct allocator : std::allocator<T> {
- using std::allocator<T>::allocator;
-+
-+ template<class U>
-+ struct rebind { using other = allocator<U>; };
- };
-
- } // namespace test
---
-2.40.0
-
diff --git a/dev-cpp/msgpack-cxx/msgpack-cxx-5.0.0.ebuild b/dev-cpp/msgpack-cxx/msgpack-cxx-5.0.0.ebuild
deleted file mode 100644
index 2a9ec41d2ccb..000000000000
--- a/dev-cpp/msgpack-cxx/msgpack-cxx-5.0.0.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake
-
-DESCRIPTION="MessagePack for C++"
-HOMEPAGE="https://msgpack.org/ https://github.com/msgpack/msgpack-c/"
-SRC_URI="https://github.com/msgpack/msgpack-c/releases/download/cpp-${PV}/${P}.tar.gz"
-
-LICENSE="Boost-1.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv x86 ~x64-macos"
-IUSE="+boost doc examples test"
-
-REQUIRED_USE="test? ( boost )"
-
-RESTRICT="!test? ( test )"
-
-RDEPEND="boost? ( dev-libs/boost[context] )
- !<dev-libs/msgpack-5.0.0"
-DEPEND="${RDEPEND}"
-BDEPEND="doc? ( app-text/doxygen[dot] )
- test? ( virtual/zlib )"
-
-src_configure() {
- local mycmakeargs=(
- -DMSGPACK_BUILD_EXAMPLES=OFF
- -DMSGPACK_CXX17=ON
- -DMSGPACK_BUILD_TESTS="$(usex test)"
- -DMSGPACK_USE_BOOST="$(usex boost)"
- -DMSGPACK_USE_X3_PARSE="$(usex boost)"
- )
-
- cmake_src_configure
-}
-
-src_compile() {
- cmake_src_compile
-
- if use doc; then
- cmake_build doxygen
- fi
-}
-
-src_install() {
- if use doc; then
- local HTML_DOCS=( "${BUILD_DIR}"/doc_cpp/html/. )
- fi
-
- if use examples; then
- docinto examples
- dodoc -r example/.
- docompress -x /usr/share/doc/${PF}/examples
- fi
-
- cmake_src_install
-}
diff --git a/dev-cpp/msgpack-cxx/msgpack-cxx-6.1.0.ebuild b/dev-cpp/msgpack-cxx/msgpack-cxx-6.1.0.ebuild
deleted file mode 100644
index 2a9ec41d2ccb..000000000000
--- a/dev-cpp/msgpack-cxx/msgpack-cxx-6.1.0.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake
-
-DESCRIPTION="MessagePack for C++"
-HOMEPAGE="https://msgpack.org/ https://github.com/msgpack/msgpack-c/"
-SRC_URI="https://github.com/msgpack/msgpack-c/releases/download/cpp-${PV}/${P}.tar.gz"
-
-LICENSE="Boost-1.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv x86 ~x64-macos"
-IUSE="+boost doc examples test"
-
-REQUIRED_USE="test? ( boost )"
-
-RESTRICT="!test? ( test )"
-
-RDEPEND="boost? ( dev-libs/boost[context] )
- !<dev-libs/msgpack-5.0.0"
-DEPEND="${RDEPEND}"
-BDEPEND="doc? ( app-text/doxygen[dot] )
- test? ( virtual/zlib )"
-
-src_configure() {
- local mycmakeargs=(
- -DMSGPACK_BUILD_EXAMPLES=OFF
- -DMSGPACK_CXX17=ON
- -DMSGPACK_BUILD_TESTS="$(usex test)"
- -DMSGPACK_USE_BOOST="$(usex boost)"
- -DMSGPACK_USE_X3_PARSE="$(usex boost)"
- )
-
- cmake_src_configure
-}
-
-src_compile() {
- cmake_src_compile
-
- if use doc; then
- cmake_build doxygen
- fi
-}
-
-src_install() {
- if use doc; then
- local HTML_DOCS=( "${BUILD_DIR}"/doc_cpp/html/. )
- fi
-
- if use examples; then
- docinto examples
- dodoc -r example/.
- docompress -x /usr/share/doc/${PF}/examples
- fi
-
- cmake_src_install
-}
diff --git a/dev-cpp/msgpack-cxx/msgpack-cxx-6.0.0.ebuild b/dev-cpp/msgpack-cxx/msgpack-cxx-8.0.0.ebuild
index 010a3e7f2563..60d0874f24d6 100644
--- a/dev-cpp/msgpack-cxx/msgpack-cxx-6.0.0.ebuild
+++ b/dev-cpp/msgpack-cxx/msgpack-cxx-8.0.0.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
@@ -24,10 +24,6 @@ DEPEND="${RDEPEND}"
BDEPEND="doc? ( app-text/doxygen[dot] )
test? ( virtual/zlib )"
-PATCHES=(
- "${FILESDIR}"/"${PN}"-6.0.0-gcc13.patch
-)
-
src_configure() {
local mycmakeargs=(
-DMSGPACK_BUILD_EXAMPLES=OFF
diff --git a/dev-java/ant-ivy/Manifest b/dev-java/ant-ivy/Manifest
index d876e93214c6..384a3ce1ffd1 100644
--- a/dev-java/ant-ivy/Manifest
+++ b/dev-java/ant-ivy/Manifest
@@ -1,3 +1,2 @@
-DIST apache-ivy-2.5.0-src.tar.gz 2719181 BLAKE2B 71c47e3493beac8de1bc4e8c86ae18383938265dd2803a1c4b9ad466306227dab9eeca256516ff94064d902d0694b4f0b35ce152c5f64b95b876e47289b25833 SHA512 59d9458345e3a51e8f527258ba26ebe2cf5cf257401c52fb5f75aced0da5f7bf36f8aa0f202bbc0cf029d1d49bd6634f7cb8b65ccc828eb55ff7084430879268
DIST apache-ivy-2.5.3-src.tar.gz 2740477 BLAKE2B 6539b73ea49b76fdd547417265fd54ece2352a042cd40cef34b88886c994d377048710469a4b07ac7d3ff586d8816d50e10493abf4ebe78f6d90c9f1cb3a0bee SHA512 135c9cdbd3b4d291f67849e1b38964e1adef51b879de6b46ea4b72fd1bfa2d337b7468d46c4632b2bf360bdb9a25af874195f1032c61fe9fcd1f39ffa02469be
DIST apache-ivy-2.5.3-src.tar.gz.asc 190 BLAKE2B a72faaa8ef1c0fc5d3073311d2fe85ae3d9d4a1494ba74ab53ad5a779787dbd13484da84d556e46d95ef712f35941a9751de7c3ac709eb556fab4ef3711e6588 SHA512 37c40100426b4e045a738570b5133845e753d3e0ebcd7a91d401be967446fed7d8d9d17275191b4cbd33f2847f042fa36fa5f125eaea305b3eef63ea668f9af3
diff --git a/dev-java/ant-ivy/ant-ivy-2.5.0-r4.ebuild b/dev-java/ant-ivy/ant-ivy-2.5.0-r4.ebuild
deleted file mode 100644
index da472003c39b..000000000000
--- a/dev-java/ant-ivy/ant-ivy-2.5.0-r4.ebuild
+++ /dev/null
@@ -1,196 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-JAVA_PKG_IUSE="doc source test"
-MAVEN_ID="org.apache.ivy:ivy:2.5.0"
-JAVA_TESTING_FRAMEWORKS="junit-4"
-
-inherit java-pkg-2 java-pkg-simple java-osgi
-
-DESCRIPTION="Ivy is a free java based dependency manager"
-HOMEPAGE="https://ant.apache.org/ivy/"
-SRC_URI="https://archive.apache.org/dist/ant/ivy/${PV}/apache-ivy-${PV}-src.tar.gz"
-S="${WORKDIR}/apache-ivy-${PV}"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ppc64"
-
-PROPERTIES="test_network"
-RESTRICT="test"
-
-CDEPEND="
- >=dev-java/ant-1.10.14-r3:0
- dev-java/bcpg:0
- dev-java/bcprov:0
- dev-java/httpcomponents-client:4
- dev-java/commons-vfs:2
- dev-java/httpcore:0
- dev-java/jakarta-oro:2.0
- dev-java/jsch:0
- dev-java/jsch-agent-proxy:0
- test? (
- >=dev-java/ant-1.10.14-r3:0[junit,junit4,junitlauncher,testutil]
- dev-java/hamcrest-core:1.3
- dev-java/hamcrest-library:1.3
- dev-java/xmlunit:1
- )"
-
-# Restrict to jdk:1.8 since java.util.jar.Pack200 was removed.
-DEPEND="${CDEPEND}
- virtual/jdk:1.8"
-RDEPEND="${CDEPEND}
- virtual/jre:1.8"
-
-DOCS=( LICENSE NOTICE README.adoc )
-
-JAVA_GENTOO_CLASSPATH="
- ant
- bcpg
- bcprov
- httpcomponents-client-4
- commons-vfs-2
- httpcore
- jakarta-oro-2.0
- jsch
- jsch-agent-proxy
-"
-JAVA_MAIN_CLASS="org.apache.ivy.Main"
-JAVA_SRC_DIR="src/java"
-JAVA_RESOURCE_DIRS="resources/java"
-
-JAVA_TEST_GENTOO_CLASSPATH="
- ant
- hamcrest-core-1.3
- hamcrest-library-1.3
- junit-4
- xmlunit-1
-"
-JAVA_TEST_SRC_DIR="test-src/java"
-JAVA_TEST_RESOURCE_DIRS="test"
-JAVA_GENTOO_CLASSPATH_EXTRA="ant-ivy.jar:test.jar:custom-resolver.jar"
-
-# according to 57,60 build-release.xml
-# https://github.com/apache/ant-ivy/commit/c0c8df492d2312c983f50cfdc5841e18177f6f7b
-JAVA_TEST_EXTRA_ARGS="-Divy.cache.ttl.default=1s -Dskip.download=true -Divy.home=/tmp -D/offline=true"
-
-# Several tests require a certain treatment to "generate-bundles":
-# https://github.com/apache/ant-ivy/blob/48234fc5ede85a865eb874a96c08472ce1751fd1/build.xml#L426-L428
-# <ant dir="${basedir}/test/test-repo" target="generate-bundles"/>
-#
-# The procedure is coded in https://github.com/apache/ant-ivy/blob/48234fc5ede85a865eb874a96c08472ce1751fd1/test/test-repo/build.xml#L19-L71
-# but appears too difficult to be reprodused with 'java-pkg-simple.eclass'.
-# So the failing tests will be excluded, saved for a later attempt.
-#
-# Not excluding any test classes results in "Tests run: 1109, Failures: 98"
-# Excluding those test classes listed below leads to "OK (812 tests)"
-JAVA_TEST_EXCLUDES=(
- # https://github.com/apache/ant-ivy/blob/083e3f685c1fe29092e59c63b87e81d31fc9babe/build.properties#L56
- # test.class.pattern = *Test
- "org.apache.ivy.ant.testutil.AntTaskTestCase" # not in scope
- "org.apache.ivy.core.TestPerformance" # not in scope
- "org.apache.ivy.util.TestXmlHelper" # not in scope
- "org.apache.ivy.TestFixture" # not in scope
- "org.apache.ivy.TestHelper" # not in scope
- # https://github.com/apache/ant-ivy/blob/48234fc5ede85a865eb874a96c08472ce1751fd1/build.xml#L412-L420
- # <exclude name="**/Abstract*Test.java"/>
- "org.apache.ivy.util.url.AbstractURLHandlerTest"
- "org.apache.ivy.plugins.resolver.AbstractDependencyResolverTest"
- "org.apache.ivy.plugins.matcher.AbstractPatternMatcherTest"
- # following excluded tests cause test failures
- "org.apache.ivy.ant.BuildOBRTaskTest" # Tests run: 3, Failures: 2
- "org.apache.ivy.core.deliver.DeliverTest" # Tests run: 1, Failures: 1
- "org.apache.ivy.core.module.descriptor.IvyMakePomTest" # Tests run: 1, Failures: 1
- "org.apache.ivy.core.settings.XmlSettingsParserTest" # Tests run: 29, Failures: 1
- "org.apache.ivy.osgi.core.AggregatedOSGiResolverTest" # Tests run: 3, Failures: 1
- "org.apache.ivy.osgi.obr.OBRResolverTest" # Tests run: 16, Failures: 16
- "org.apache.ivy.osgi.repo.BundleRepoTest" # Tests run: 4, Failures: 3
- "org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParserTest" # Tests run: 46, Failures: 1
- "org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParserTest" # Tests run: 44, Failures: 7
- "org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriterTest" # Tests run: 10, Failures: 1
- "org.apache.ivy.plugins.parser.xml.XmlModuleUpdaterTest" # Tests run: 14, Failures: 3
- "org.apache.ivy.plugins.resolver.JarResolverTest" # Tests run: 3, Failures: 3
- # following excluded tests can pass if run individually
- "org.apache.ivy.ant.IvyConfigureTest" # OK (14 tests)
- "org.apache.ivy.IvyTest" # OK (1 test)
- "org.apache.ivy.MainTest" # OK (12 tests)
- "org.apache.ivy.plugins.report.XmlReportWriterTest" # OK (3 tests)
- "org.apache.ivy.plugins.resolver.BintrayResolverTest" # OK (12 tests)
- "org.apache.ivy.plugins.resolver.ChainResolverTest" # OK (15 tests)
- "org.apache.ivy.plugins.resolver.FileSystemResolverTest" # OK (27 tests)
- "org.apache.ivy.plugins.resolver.IBiblioMavenSnapshotsResolutionTest" # OK (1 test)
- "org.apache.ivy.plugins.resolver.IvyRepResolverTest" # OK (3 tests)
- "org.apache.ivy.plugins.resolver.Maven2LocalTest" # OK (2 tests)
- "org.apache.ivy.plugins.resolver.PackagerResolverTest" # OK (3 tests)
- "org.apache.ivy.plugins.resolver.URLResolverTest" # OK (5 tests)
- "org.apache.ivy.plugins.trigger.LogTriggerTest" # OK (3 tests)
- # Without PROPERTIES="test_network", the following test cause additional failures.
- "org.apache.ivy.core.settings.OnlineXmlSettingsParserTest"
-# "org.apache.ivy.osgi.updatesite.UpdateSiteAndIbiblioResolverTest"
- "org.apache.ivy.osgi.updatesite.UpdateSiteLoaderTest"
-# "org.apache.ivy.plugins.resolver.IBiblioResolverTest"
-# "org.apache.ivy.plugins.resolver.MirroredURLResolverTest"
- "org.apache.ivy.util.url.ArtifactoryListingTest"
-# "org.apache.ivy.util.url.BasicURLHandlerTest"
-# "org.apache.ivy.util.url.HttpclientURLHandlerTest"
-)
-
-src_prepare() {
- default
-
- mkdir --parents "${JAVA_RESOURCE_DIRS}/META-INF" || die
- pushd "${JAVA_RESOURCE_DIRS}"
- cp "${S}"/{NOTICE,LICENSE} META-INF/ || die
- cp -r "${S}"/src/java/* . || die
-
- # DEPRECATED: 'ivyconf' element is deprecated, use 'ivysettings' instead
- # according to 210,221 build.xml and still in the upstream .jar file
- cp org/apache/ivy/core/settings/ivy{settings,conf}-local.xml || die
- cp org/apache/ivy/core/settings/ivy{settings,conf}-default-chain.xml || die
- cp org/apache/ivy/core/settings/ivy{settings,conf}-main-chain.xml || die
- cp org/apache/ivy/core/settings/ivy{settings,conf}-public.xml || die
- cp org/apache/ivy/core/settings/ivy{settings,conf}-shared.xml || die
- cp org/apache/ivy/core/settings/ivy{settings,conf}.xml || die
-
- find . -type f -name '*.java' -exec rm -rf {} + || die
- popd || die
-}
-
-src_test() {
- # https://github.com/apache/ant-ivy/blob/48234fc5ede85a865eb874a96c08472ce1751fd1/build.xml#L396-L407
- # name="build-custom-resolver-jar"
- JAVA_SRC_DIR="test/custom-classpath"
- JAVA_JAR_FILENAME="test/java/org/apache/ivy/core/settings/custom-resolver.jar"
- java-pkg-simple_src_compile
-
- # Without "license.xml" the tests won't even start. "Tests run: 1109, Failures: 318"
- jar -cf test.jar \
- -C test/java org/apache/ivy/plugins/parser/xml/license.xml \
- -C test/java org/apache/ivy/plugins/parser/m2/license.xml || die
-
- # Reduce number of failures to "Tests run: 1109, Failures: 98"
- jar -uf "test.jar" -C test/java . || die
-
- # Separate *.java files from test resources
- # https://github.com/apache/ant-ivy/blob/48234fc5ede85a865eb874a96c08472ce1751fd1/build.xml#L389-L393
- mkdir test-src || die
- cp -r test/java test-src/ || die
- find test -type f -name '*.java' -exec rm -rf {} + || die
-
- # https://github.com/apache/ant-ivy/blob/48234fc5ede85a865eb874a96c08472ce1751fd1/build.xml#L430-L438
- # name="prepare-test-jar-repositories"
- mkdir test/jar-repos || die
- jar -cfM "test/jar-repos/jarrepo1.jar" -C test/repositories/1 . || die
-# jar -cfM "test/jar-repos/jarrepo1_subdir.jar" -C test/repositories 1/**/*/ || die
-
- java-pkg-simple_src_test
-}
-
-src_install() {
- default
- java-osgi_dojar-fromfile "ant-ivy.jar" "META-INF/MANIFEST.MF" "ant-ivy"
- use doc && java-pkg_dojavadoc target/api
- use source && java-pkg_dosrc src/*
-}
diff --git a/dev-java/assertj-core/Manifest b/dev-java/assertj-core/Manifest
index 3639756b1ab3..212ff08d74fc 100644
--- a/dev-java/assertj-core/Manifest
+++ b/dev-java/assertj-core/Manifest
@@ -1,3 +1,2 @@
-DIST assertj-build-3.27.6.tar.gz 1889577 BLAKE2B 3d93636cd7ab18c775a5f19e4cc340c94b73049799c9f1ec2883cc44b5fdd266c1578596c79b955d31c208ea0f03aca5f8446835b3c899ac852953db01649bbb SHA512 87717a96e6ee776c0689f5271498314c8503feef03ea3194acf7af7617463fc9d904575e17a9f8fe1601e179f1c9731bbbe5cf6d684eb1c2770c5c909863b622
DIST assertj-build-3.27.7.tar.gz 1891766 BLAKE2B 647c07543d4cf0513b6ad208549f7916e09c0f2f3eec203a20d6f9057cd5ea06086f6731db7dbf00972646ae6e8500de1bd57fc1b7e9a54f52c7f4a8651ddac0 SHA512 7d44371c82377859cc4c7f2cac16b69808723f02e02f83980911f0c76fba83921533c3455491e3009ac5d19551d87f7315f334c29228b654dd3b0c657772800e
DIST assertj-core-3.10.0.tar.gz 1100495 BLAKE2B 4050060e027588d9c62abd5f4c6b77affd96d94a6474c4acc750a946cd3906787f9b2194627abff6d2e0849d590f5a74bbc702b41de6cbfaa09fae951a1012cf SHA512 3763768c5572e133de69735b01fd64432c4330723aa7e6cc0de42e5948cb2d455ae52d9ada66391fb41e47c261816fe12a00d07962e253f0da13ef49255fc5c6
diff --git a/dev-java/assertj-core/assertj-core-3.27.6.ebuild b/dev-java/assertj-core/assertj-core-3.27.6.ebuild
deleted file mode 100644
index 6b1e99229fa5..000000000000
--- a/dev-java/assertj-core/assertj-core-3.27.6.ebuild
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-JAVA_PKG_IUSE="doc source test"
-JAVA_TESTING_FRAMEWORKS="junit-jupiter"
-
-inherit java-pkg-2 java-pkg-simple junit5
-
-DESCRIPTION="Rich and fluent assertions for testing for Java"
-HOMEPAGE="https://assertj.github.io/doc/"
-SRC_URI="https://github.com/assertj/assertj/archive/assertj-build-${PV}.tar.gz"
-S="${WORKDIR}/assertj-assertj-build-${PV}/${PN}"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 ppc64"
-
-# package EngineTestKit does not exist
-# package jakarta.ws.rs.core does not exist
-# package nl.jqno.equalsverifier does not exist
-# package org.hibernate.collection.spi does not exist
-# package org.hibernate.engine.spi does not exist
-# package org.hibernate.persister.collection does not exist
-# package org.junit.jupiter.params.shadow.com.univocity.parsers.common does not exist
-# package org.junit.platform.testkit.engine does not exist
-# package org.springframework.core.convert does not exist
-# package org.springframework.core.convert.support does not exist
-# package org.springframework.core does not exist
-# package org.springframework.util does not exist
-RESTRICT="test" # Needs more stuff to get packaged
-
-CP_DEPEND="
- >=dev-java/byte-buddy-1.17.7:0
- >=dev-java/hamcrest-3.0:0
- dev-java/junit:4
- dev-java/junit:5
- dev-java/opentest4j:0
-"
-
-DEPEND="
- ${CP_DEPEND}
- >=virtual/jdk-11:*
- dev-java/apiguardian-api:0
- >=dev-java/asm-9.8-r1:0
- >=dev-java/jna-5.17.0:0
- dev-java/jsr305:0
- test? (
- >=dev-java/commons-collections-4.5.0:4
- >=dev-java/commons-io-2.19.0:0
- >=dev-java/commons-lang-3.18.0:0
- >=dev-java/commons-text-1.14.0:0
- >=dev-java/guava-33.4.8:0
- dev-java/junit-dataprovider:0
- >=dev-java/junit-pioneer-1.9.1:0
- dev-java/memoryfilesystem:0
- >=dev-java/mockito-5.20.0:0
- )
-"
-
-RDEPEND="
- ${CP_DEPEND}
- >=virtual/jre-1.8:*
-"
-
-JAVA_CLASSPATH_EXTRA="apiguardian-api asm jna jsr305"
-JAVA_INTERMEDIATE_JAR_NAME="org.assertj.core"
-JAVA_RELEASE_SRC_DIRS=( ["9"]="src/main/java9" )
-JAVA_SRC_DIR="src/main/java"
-
-JAVA_TEST_GENTOO_CLASSPATH="
- commons-collections-4
- commons-io
- commons-lang
- commons-text
- guava
- junit-5
- junit-pioneer
- mockito
-"
-
-JAVA_TEST_RESOURCE_DIRS="src/test/resources"
-JAVA_TEST_SRC_DIR="src/test/java"
-
-src_prepare() {
- java-pkg-2_src_prepare
-
- local vm_version="$(java-config -g PROVIDES_VERSION)"
- if ver_test "${vm_version}" -ge 17; then
- JAVA_TEST_EXTRA_ARGS+=( --add-opens=java.base/java.{io,lang,math,util}=ALL-UNNAMED )
- fi
-}
diff --git a/dev-java/bcmail/Manifest b/dev-java/bcmail/Manifest
index 341f3693eaaf..460b3805a908 100644
--- a/dev-java/bcmail/Manifest
+++ b/dev-java/bcmail/Manifest
@@ -1,2 +1 @@
-DIST bc-java-r1rv83.tar.gz 47658743 BLAKE2B 3b223d49120d54d22276d6f4d7457f1887577640e7a572aff6ceb322adc7da2c541e0090d16763b22745695ff1d6ae13aae2d91ea3f89b186e1cd0c3027ef1ca SHA512 f9d99538c38a65ef6cb3db0eda3a293b91e370d27210e71ef17e63ecd91fd3c5b01d09385c18fc237e686775649306b9a2fe1d8250a0a304fb0d6079f74e4926
DIST bc-java-r1rv84.tar.gz 47876878 BLAKE2B 29cfa797fa7ca464666c8e74d116b77b9882b0c0ee21c9ef178615ec25ea341bfe6633b5a82c6470651ada16d20c7099f92878eaa7d781a2e30a752547cdf47b SHA512 d20ab4e28ddc432851b068564b038e2a99be20d88784340c6ce4a0e75a1278e98af6e9b5f6c75ece4095199ee3e61621d0aebce1f43827945a4ff6adc77cf59d
diff --git a/dev-java/bcmail/bcmail-1.83.ebuild b/dev-java/bcmail/bcmail-1.83.ebuild
deleted file mode 100644
index ea1436c6e741..000000000000
--- a/dev-java/bcmail/bcmail-1.83.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-JAVA_PKG_IUSE="doc source test"
-JAVA_TESTING_FRAMEWORKS="junit-4"
-MAVEN_ID="org.bouncycastle:bcmail-jdk18on:${PV}"
-
-inherit java-pkg-2 java-pkg-simple
-
-DESCRIPTION="The Bouncy Castle Java S/MIME APIs for handling S/MIME protocols"
-HOMEPAGE="https://www.bouncycastle.org/download/bouncy-castle-java/"
-MY_PV="r$(ver_rs 1 'rv' 2 'v')"
-SRC_URI="https://github.com/bcgit/bc-java/archive/${MY_PV}.tar.gz -> bc-java-${MY_PV}.tar.gz"
-S="${WORKDIR}/bc-java-${MY_PV}/mail"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ppc64"
-
-CP_DEPEND="
- ~dev-java/bcpkix-${PV}:0
- ~dev-java/bcprov-${PV}:0
- ~dev-java/bcutil-${PV}:0
- dev-java/javax-mail:0
-"
-
-DEPEND="
- ${CP_DEPEND}
- dev-java/jakarta-activation:1
- >=virtual/jdk-11:*
-"
-
-RDEPEND="
- ${CP_DEPEND}
- dev-java/jakarta-activation-api:1
- >=virtual/jre-1.8:*
-"
-
-DOCS=( ../{README,SECURITY}.md )
-HTML_DOCS=( ../{CONTRIBUTORS,index}.html )
-
-JAVA_AUTOMATIC_MODULE_NAME="org.bouncycastle.mail"
-JAVA_CLASSPATH_EXTRA="jakarta-activation-1"
-JAVA_RESOURCE_DIRS="src/main/resources"
-JAVA_SRC_DIR=( "src/main/java" "src/main/jdk1.9" )
-JAVA_TEST_GENTOO_CLASSPATH="junit-4"
-JAVA_TEST_RESOURCE_DIRS=( "src/test/resources" "../pkix/src/main/resources" )
-JAVA_TEST_RUN_ONLY="org.bouncycastle.mail.smime.test.AllTests"
-JAVA_TEST_SRC_DIR="src/test/java"
-
-src_prepare() {
- java-pkg-2_src_prepare
- java-pkg_clean ..
-}
-
-src_install() {
- docinto html
- dodoc -r ../docs
- java-pkg-simple_src_install
- java-pkg_register-dependency jakarta-activation-api-1
-}
diff --git a/dev-java/bcmail/bcmail-1.84.ebuild b/dev-java/bcmail/bcmail-1.84.ebuild
index ba9a90e84529..875bd2480493 100644
--- a/dev-java/bcmail/bcmail-1.84.ebuild
+++ b/dev-java/bcmail/bcmail-1.84.ebuild
@@ -16,7 +16,7 @@ S="${WORKDIR}/bc-java-${MY_PV}/mail"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64"
+KEYWORDS="amd64 arm64 ppc64"
CP_DEPEND="
~dev-java/bcpkix-${PV}:0
diff --git a/dev-java/bcpg/Manifest b/dev-java/bcpg/Manifest
index 341f3693eaaf..460b3805a908 100644
--- a/dev-java/bcpg/Manifest
+++ b/dev-java/bcpg/Manifest
@@ -1,2 +1 @@
-DIST bc-java-r1rv83.tar.gz 47658743 BLAKE2B 3b223d49120d54d22276d6f4d7457f1887577640e7a572aff6ceb322adc7da2c541e0090d16763b22745695ff1d6ae13aae2d91ea3f89b186e1cd0c3027ef1ca SHA512 f9d99538c38a65ef6cb3db0eda3a293b91e370d27210e71ef17e63ecd91fd3c5b01d09385c18fc237e686775649306b9a2fe1d8250a0a304fb0d6079f74e4926
DIST bc-java-r1rv84.tar.gz 47876878 BLAKE2B 29cfa797fa7ca464666c8e74d116b77b9882b0c0ee21c9ef178615ec25ea341bfe6633b5a82c6470651ada16d20c7099f92878eaa7d781a2e30a752547cdf47b SHA512 d20ab4e28ddc432851b068564b038e2a99be20d88784340c6ce4a0e75a1278e98af6e9b5f6c75ece4095199ee3e61621d0aebce1f43827945a4ff6adc77cf59d
diff --git a/dev-java/bcpg/bcpg-1.83.ebuild b/dev-java/bcpg/bcpg-1.83.ebuild
deleted file mode 100644
index 7b245845d1af..000000000000
--- a/dev-java/bcpg/bcpg-1.83.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
-
-JAVA_PKG_IUSE="doc source test"
-JAVA_TESTING_FRAMEWORKS="junit-4"
-MAVEN_ID="org.bouncycastle:bcpg-jdk18on:${PV}"
-
-inherit java-pkg-2 java-pkg-simple
-
-DESCRIPTION="Java cryptography APIs"
-HOMEPAGE="https://www.bouncycastle.org/download/bouncy-castle-java/"
-MY_PV="r$(ver_rs 1 'rv' 2 'v')"
-SRC_URI="https://github.com/bcgit/bc-java/archive/${MY_PV}.tar.gz -> bc-java-${MY_PV}.tar.gz"
-S="${WORKDIR}/bc-java-${MY_PV}/pg"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ppc64"
-
-CP_DEPEND="
- ~dev-java/bcprov-${PV}:0
- ~dev-java/bcutil-${PV}:0
-"
-
-DEPEND="
- ${CP_DEPEND}
- >=virtual/jdk-11:*
-"
-
-RDEPEND="
- ${CP_DEPEND}
- >=virtual/jre-1.8:*
-"
-
-DOCS=( ../{README,SECURITY}.md )
-HTML_DOCS=( ../{CONTRIBUTORS,index}.html )
-
-JAVA_AUTOMATIC_MODULE_NAME="org.bouncycastle.pg"
-JAVA_SRC_DIR=( src/main/{java,jdk1.9} )
-JAVA_TEST_GENTOO_CLASSPATH="junit-4"
-JAVA_TEST_RESOURCE_DIRS="src/test/resources"
-JAVA_TEST_SRC_DIR="src/test/java"
-
-src_prepare() {
- java-pkg-2_src_prepare
- java-pkg_clean ..
-}
-
-src_test() {
- local TESTS=$(find src/test/java -name 'AllTests.java' -printf '%P\n' )
- TESTS="${TESTS//.java}"
- JAVA_TEST_RUN_ONLY="${TESTS//\//.}"
- java-pkg-simple_src_test
-}
-
-src_install() {
- docinto html
- dodoc -r ../docs
- java-pkg-simple_src_install
-}
diff --git a/dev-java/bcpg/bcpg-1.84.ebuild b/dev-java/bcpg/bcpg-1.84.ebuild
index 35355cb4df10..bd185d1e1997 100644
--- a/dev-java/bcpg/bcpg-1.84.ebuild
+++ b/dev-java/bcpg/bcpg-1.84.ebuild
@@ -16,7 +16,7 @@ S="${WORKDIR}/bc-java-${MY_PV}/pg"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64"
+KEYWORDS="amd64 arm64 ppc64"
CP_DEPEND="
~dev-java/bcprov-${PV}:0
diff --git a/dev-java/bcpkix/Manifest b/dev-java/bcpkix/Manifest
index f49f555dd611..66e844237afe 100644
--- a/dev-java/bcpkix/Manifest
+++ b/dev-java/bcpkix/Manifest
@@ -1,4 +1,2 @@
-DIST bc-java-r1rv83.tar.gz 47658743 BLAKE2B 3b223d49120d54d22276d6f4d7457f1887577640e7a572aff6ceb322adc7da2c541e0090d16763b22745695ff1d6ae13aae2d91ea3f89b186e1cd0c3027ef1ca SHA512 f9d99538c38a65ef6cb3db0eda3a293b91e370d27210e71ef17e63ecd91fd3c5b01d09385c18fc237e686775649306b9a2fe1d8250a0a304fb0d6079f74e4926
DIST bc-java-r1rv84.tar.gz 47876878 BLAKE2B 29cfa797fa7ca464666c8e74d116b77b9882b0c0ee21c9ef178615ec25ea341bfe6633b5a82c6470651ada16d20c7099f92878eaa7d781a2e30a752547cdf47b SHA512 d20ab4e28ddc432851b068564b038e2a99be20d88784340c6ce4a0e75a1278e98af6e9b5f6c75ece4095199ee3e61621d0aebce1f43827945a4ff6adc77cf59d
-DIST bc-test-data-r1rv83.tar.gz 2930411569 BLAKE2B dfe6cd87134ee728fd49d723ad320576a670c9eff22b1d05b4fc3b650a79ab35b8d67225cdf6e9667057afc51b89ea213435a265e36f574d36e212ca1038b389 SHA512 398ca8159225d58247404ae476a01197c617b2f3bcffc4a8c581d8abad869ddec2eef7f3380b162a20fa3786998d39e34c2db8b8cbfe14f683064ad619d310e8
DIST bc-test-data-r1rv84.tar.gz 2942290969 BLAKE2B fb5370e84c9f4bce6dcd26104ecf8a9c61fff92d29abd0cf5905763e6a44a888dc5823eaa906a3231f2754b284d34bf7d29224f56616941f152f5d61ec0f0c0f SHA512 5b84b317d5d5b93f6f1f1b94815eff2561982482b8f7401ffec2f1836f1e18d4de1b6313b5cfaa498c10158d727ba15e9a2a4972bad88e7fb12102f93b6449e4
diff --git a/dev-java/bcpkix/bcpkix-1.83.ebuild b/dev-java/bcpkix/bcpkix-1.83.ebuild
deleted file mode 100644
index 1162ee91448d..000000000000
--- a/dev-java/bcpkix/bcpkix-1.83.ebuild
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-JAVA_PKG_IUSE="doc source test"
-JAVA_TESTING_FRAMEWORKS="junit-4"
-MAVEN_ID="org.bouncycastle:bcpkix-jdk18on:${PV}"
-
-inherit java-pkg-2 java-pkg-simple check-reqs
-
-DESCRIPTION="Java APIs for CMS, PKCS, EAC, TSP, CMP, CRMF, OCSP, and certificate generation"
-HOMEPAGE="https://www.bouncycastle.org/download/bouncy-castle-java/"
-MY_PV="r$(ver_rs 1 'rv' 2 'v')"
-SRC_URI="https://github.com/bcgit/bc-java/archive/${MY_PV}.tar.gz -> bc-java-${MY_PV}.tar.gz
- test? ( https://github.com/bcgit/bc-test-data/archive/${MY_PV}.tar.gz -> bc-test-data-${MY_PV}.tar.gz )"
-S="${WORKDIR}/bc-java-${MY_PV}/pkix"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ppc64"
-
-CP_DEPEND="
- ~dev-java/bcprov-${PV}:0
- ~dev-java/bcutil-${PV}:0
-"
-
-DEPEND="
- ${CP_DEPEND}
- >=virtual/jdk-11:*
-"
-
-RDEPEND="
- ${CP_DEPEND}
- >=virtual/jre-1.8:*
-"
-
-DOCS=( ../{README,SECURITY}.md )
-HTML_DOCS=( ../{CONTRIBUTORS,index}.html )
-
-JAVA_AUTOMATIC_MODULE_NAME="org.bouncycastle.pkix"
-JAVA_SRC_DIR=( src/main/{java,jdk1.9} )
-JAVA_TEST_EXTRA_ARGS="-Dbc.test.data.home=${S}/../core/src/test/data"
-JAVA_TEST_GENTOO_CLASSPATH="junit-4"
-JAVA_TEST_RESOURCE_DIRS=( src/{main,test}/resources )
-JAVA_TEST_SRC_DIR="src/test/java"
-
-# https://bugs.gentoo.org/823347
-check_env() {
- if use test; then
- # this is needed only for tests
- CHECKREQS_MEMORY="2048M"
- check-reqs_pkg_pretend
- fi
-}
-
-# https://bugs.gentoo.org/823347
-pkg_pretend() {
- check_env
-}
-
-# https://bugs.gentoo.org/823347
-pkg_setup() {
- check_env
- java-pkg-2_pkg_setup
-}
-
-src_unpack() {
- unpack bc-java-${MY_PV}.tar.gz
- use test && unpack bc-test-data-${MY_PV}.tar.gz
-}
-
-src_prepare() {
- java-pkg-2_src_prepare
- java-pkg_clean ..
-}
-
-src_test() {
- mv ../../bc-test-data-${MY_PV} bc-test-data || die "cannot move bc-test-data"
-
- # https://bugs.gentoo.org/823347
- JAVA_TEST_EXTRA_ARGS+=" -Xmx${CHECKREQS_MEMORY}"
-
- local TESTS=$(find src/test/java -name 'AllTests.java' -printf '%P\n' )
- TESTS="${TESTS//.java}"
- JAVA_TEST_RUN_ONLY="${TESTS//\//.}"
- java-pkg-simple_src_test
-}
-
-src_install() {
- docinto html
- dodoc -r ../docs
- java-pkg-simple_src_install
-}
diff --git a/dev-java/bcpkix/bcpkix-1.84.ebuild b/dev-java/bcpkix/bcpkix-1.84.ebuild
index 16a1a950cd08..9d2c28aed29c 100644
--- a/dev-java/bcpkix/bcpkix-1.84.ebuild
+++ b/dev-java/bcpkix/bcpkix-1.84.ebuild
@@ -17,7 +17,7 @@ S="${WORKDIR}/bc-java-${MY_PV}/pkix"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64"
+KEYWORDS="amd64 arm64 ppc64"
CP_DEPEND="
~dev-java/bcprov-${PV}:0
diff --git a/dev-java/bcprov/Manifest b/dev-java/bcprov/Manifest
index f49f555dd611..66e844237afe 100644
--- a/dev-java/bcprov/Manifest
+++ b/dev-java/bcprov/Manifest
@@ -1,4 +1,2 @@
-DIST bc-java-r1rv83.tar.gz 47658743 BLAKE2B 3b223d49120d54d22276d6f4d7457f1887577640e7a572aff6ceb322adc7da2c541e0090d16763b22745695ff1d6ae13aae2d91ea3f89b186e1cd0c3027ef1ca SHA512 f9d99538c38a65ef6cb3db0eda3a293b91e370d27210e71ef17e63ecd91fd3c5b01d09385c18fc237e686775649306b9a2fe1d8250a0a304fb0d6079f74e4926
DIST bc-java-r1rv84.tar.gz 47876878 BLAKE2B 29cfa797fa7ca464666c8e74d116b77b9882b0c0ee21c9ef178615ec25ea341bfe6633b5a82c6470651ada16d20c7099f92878eaa7d781a2e30a752547cdf47b SHA512 d20ab4e28ddc432851b068564b038e2a99be20d88784340c6ce4a0e75a1278e98af6e9b5f6c75ece4095199ee3e61621d0aebce1f43827945a4ff6adc77cf59d
-DIST bc-test-data-r1rv83.tar.gz 2930411569 BLAKE2B dfe6cd87134ee728fd49d723ad320576a670c9eff22b1d05b4fc3b650a79ab35b8d67225cdf6e9667057afc51b89ea213435a265e36f574d36e212ca1038b389 SHA512 398ca8159225d58247404ae476a01197c617b2f3bcffc4a8c581d8abad869ddec2eef7f3380b162a20fa3786998d39e34c2db8b8cbfe14f683064ad619d310e8
DIST bc-test-data-r1rv84.tar.gz 2942290969 BLAKE2B fb5370e84c9f4bce6dcd26104ecf8a9c61fff92d29abd0cf5905763e6a44a888dc5823eaa906a3231f2754b284d34bf7d29224f56616941f152f5d61ec0f0c0f SHA512 5b84b317d5d5b93f6f1f1b94815eff2561982482b8f7401ffec2f1836f1e18d4de1b6313b5cfaa498c10158d727ba15e9a2a4972bad88e7fb12102f93b6449e4
diff --git a/dev-java/bcprov/bcprov-1.83.ebuild b/dev-java/bcprov/bcprov-1.83.ebuild
deleted file mode 100644
index 9db9ceac7e8b..000000000000
--- a/dev-java/bcprov/bcprov-1.83.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-JAVA_PKG_IUSE="doc source test"
-JAVA_TESTING_FRAMEWORKS="junit-4"
-MAVEN_ID="org.bouncycastle:bcprov-jdk18on:${PV}"
-
-inherit java-pkg-2 java-pkg-simple check-reqs
-
-DESCRIPTION="Java cryptography APIs"
-HOMEPAGE="https://www.bouncycastle.org/download/bouncy-castle-java/"
-MY_PV="r$(ver_rs 1 'rv' 2 'v')"
-SRC_URI="https://github.com/bcgit/bc-java/archive/${MY_PV}.tar.gz -> bc-java-${MY_PV}.tar.gz
- test? ( https://github.com/bcgit/bc-test-data/archive/${MY_PV}.tar.gz -> bc-test-data-${MY_PV}.tar.gz )"
-S="${WORKDIR}/bc-java-${MY_PV}"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ppc64"
-
-DEPEND=">=virtual/jdk-11:*"
-RDEPEND=">=virtual/jre-1.8:*"
-
-DOCS=( {README,SECURITY}.md )
-HTML_DOCS=( {CONTRIBUTORS,index}.html )
-
-check_env() {
- if use test; then
- # this is needed only for tests
- CHECKREQS_MEMORY="2048M"
- check-reqs_pkg_pretend
- fi
-}
-
-pkg_pretend() {
- check_env
-}
-
-pkg_setup() {
- check_env
- java-pkg-2_pkg_setup
-}
-
-src_unpack() {
- unpack bc-java-${MY_PV}.tar.gz
- use test && unpack bc-test-data-${MY_PV}.tar.gz
-}
-
-src_prepare() {
- java-pkg-2_src_prepare
- # TBD: unboundid-ldapsdk should be packaged from source.
- java-pkg_clean ! -path "./libs/unboundid-ldapsdk-6.0.8.jar"
-}
-
-src_compile() {
- JAVA_RESOURCE_DIRS=(
- "core/src/main/resources"
- "prov/src/main/resources"
- )
- JAVA_SRC_DIR=(
- "core/src/main/java"
- "prov/src/main/java"
- "prov/src/main/jdk1.9"
- )
- java-pkg-simple_src_compile
-}
-
-src_test() {
- mv ../bc-test-data-${MY_PV} bc-test-data || die "cannot move bc-test-data"
-
- JAVA_TEST_EXTRA_ARGS="-Dtest.java.version.prefix=$(java-config -g PROVIDES_VERSION)"
- JAVA_TEST_EXTRA_ARGS+=" -Dbc.test.data.home=${S}/core/src/test/data"
- JAVA_TEST_EXTRA_ARGS+=" -Xmx${CHECKREQS_MEMORY}"
- JAVA_TEST_GENTOO_CLASSPATH="junit-4"
-
- einfo "Testing \"core\""
- JAVA_TEST_RESOURCE_DIRS="core/src/test/resources"
- JAVA_TEST_SRC_DIR="core/src/test/java"
- local TESTS=$(find core/src/test/java -name "AllTests.java" -printf "%P\n")
- TESTS="${TESTS//.java}"
- JAVA_TEST_RUN_ONLY="${TESTS//\//.}"
- java-pkg-simple_src_test
-
- einfo "Testing bcprov"
- JAVA_GENTOO_CLASSPATH_EXTRA=":core.jar:libs/unboundid-ldapsdk-6.0.8.jar"
- JAVA_TEST_RESOURCE_DIRS="prov/src/test/resources"
- JAVA_TEST_SRC_DIR="prov/src/test/java"
- local TESTS=$(find prov/src/test/java -name "AllTests.java" -printf "%P\n")
- TESTS="${TESTS//.java}"
- JAVA_TEST_RUN_ONLY="${TESTS//\//.}"
- java-pkg-simple_src_test
-}
-
-src_install() {
- docinto html
- dodoc -r docs
- java-pkg-simple_src_install
-}
diff --git a/dev-java/bcprov/bcprov-1.84.ebuild b/dev-java/bcprov/bcprov-1.84.ebuild
index 5f76e64a11f8..580e007cf941 100644
--- a/dev-java/bcprov/bcprov-1.84.ebuild
+++ b/dev-java/bcprov/bcprov-1.84.ebuild
@@ -17,7 +17,7 @@ S="${WORKDIR}/bc-java-${MY_PV}"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64"
+KEYWORDS="amd64 arm64 ppc64"
DEPEND=">=virtual/jdk-11:*"
RDEPEND=">=virtual/jre-1.8:*"
diff --git a/dev-java/bcutil/Manifest b/dev-java/bcutil/Manifest
index 341f3693eaaf..460b3805a908 100644
--- a/dev-java/bcutil/Manifest
+++ b/dev-java/bcutil/Manifest
@@ -1,2 +1 @@
-DIST bc-java-r1rv83.tar.gz 47658743 BLAKE2B 3b223d49120d54d22276d6f4d7457f1887577640e7a572aff6ceb322adc7da2c541e0090d16763b22745695ff1d6ae13aae2d91ea3f89b186e1cd0c3027ef1ca SHA512 f9d99538c38a65ef6cb3db0eda3a293b91e370d27210e71ef17e63ecd91fd3c5b01d09385c18fc237e686775649306b9a2fe1d8250a0a304fb0d6079f74e4926
DIST bc-java-r1rv84.tar.gz 47876878 BLAKE2B 29cfa797fa7ca464666c8e74d116b77b9882b0c0ee21c9ef178615ec25ea341bfe6633b5a82c6470651ada16d20c7099f92878eaa7d781a2e30a752547cdf47b SHA512 d20ab4e28ddc432851b068564b038e2a99be20d88784340c6ce4a0e75a1278e98af6e9b5f6c75ece4095199ee3e61621d0aebce1f43827945a4ff6adc77cf59d
diff --git a/dev-java/bcutil/bcutil-1.83.ebuild b/dev-java/bcutil/bcutil-1.83.ebuild
deleted file mode 100644
index 795d7dcf34c4..000000000000
--- a/dev-java/bcutil/bcutil-1.83.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
-
-JAVA_PKG_IUSE="doc source test"
-JAVA_TESTING_FRAMEWORKS="junit-4"
-MAVEN_ID="org.bouncycastle:bcutil-jdk18on:${PV}"
-
-inherit java-pkg-2 java-pkg-simple
-
-DESCRIPTION="Java APIs for ASN.1 extension and utility APIs used to support bcpkix and bctls"
-HOMEPAGE="https://www.bouncycastle.org/download/bouncy-castle-java/"
-MY_PV="r$(ver_rs 1 'rv' 2 'v')"
-SRC_URI="https://github.com/bcgit/bc-java/archive/${MY_PV}.tar.gz -> bc-java-${MY_PV}.tar.gz"
-S="${WORKDIR}/bc-java-${MY_PV}/util"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ppc64"
-
-CP_DEPEND="~dev-java/bcprov-${PV}:0"
-
-DEPEND="
- ${CP_DEPEND}
- >=virtual/jdk-11:*
-"
-
-RDEPEND="
- ${CP_DEPEND}
- >=virtual/jre-1.8:*
-"
-
-DOCS=( ../{README,SECURITY}.md )
-HTML_DOCS=( ../{CONTRIBUTORS,index}.html )
-
-JAVA_AUTOMATIC_MODULE_NAME="org.bouncycastle.util"
-JAVA_SRC_DIR=( src/main/{java,jdk1.9} )
-JAVA_TEST_GENTOO_CLASSPATH="junit-4"
-JAVA_TEST_RESOURCE_DIRS="src/test/resources"
-JAVA_TEST_SRC_DIR="src/test/java"
-
-src_prepare() {
- java-pkg-2_src_prepare
- java-pkg_clean ..
-}
-
-src_test() {
- local TESTS=$(find src/test/java -name 'AllTests.java' -printf '%P\n' )
- TESTS="${TESTS//.java}"
- JAVA_TEST_RUN_ONLY="${TESTS//\//.}"
- java-pkg-simple_src_test
-}
-
-src_install() {
- docinto html
- dodoc -r ../docs
- java-pkg-simple_src_install
-}
diff --git a/dev-java/bcutil/bcutil-1.84.ebuild b/dev-java/bcutil/bcutil-1.84.ebuild
index 7b0e5e44b247..76c16300dc5a 100644
--- a/dev-java/bcutil/bcutil-1.84.ebuild
+++ b/dev-java/bcutil/bcutil-1.84.ebuild
@@ -16,7 +16,7 @@ S="${WORKDIR}/bc-java-${MY_PV}/util"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64"
+KEYWORDS="amd64 arm64 ppc64"
CP_DEPEND="~dev-java/bcprov-${PV}:0"
diff --git a/dev-java/jackcess/Manifest b/dev-java/jackcess/Manifest
index efb47f9deabf..403178864357 100644
--- a/dev-java/jackcess/Manifest
+++ b/dev-java/jackcess/Manifest
@@ -1,2 +1 @@
DIST jackcess-4.0.10-sources.tar.gz 12257097 BLAKE2B ba09a360f30d487f304e200304d71207b469ccbed6cd0a4d6ad5382471510b8afc890eeca3fc6808974548d751ff4712808a2670f90f598494829c85ef604f89 SHA512 81ec8f9b02032eb8dfebd778f6a59205b8500e4ed0a4460a6feba689b6ef694b60d8b4706ba0c638f74ff08cdcfca50d7de01e8027f366e2726304f38ffb0d3b
-DIST jackcess-4.0.7-sources.tar.gz 12257727 BLAKE2B 5d19d5aef02388342d881214e6956eb118e74fd4dcc6b750df927c888e689eb94bf605952c30884b0b0c4bfd1ae651c8b96cc908dd2dbf0fa7506fd789c14fa0 SHA512 3867019b50e8734938c08e562a57cd16b49f664865b8dbe904c418d73dc750492c6f94bccecd9c9a9d2ab2be51a211d49416a5dcb5130ac96aef7a9aeef7a3e0
diff --git a/dev-java/jackcess/jackcess-4.0.10.ebuild b/dev-java/jackcess/jackcess-4.0.10.ebuild
index 9eb4c9bf5ce2..2f64475b9642 100644
--- a/dev-java/jackcess/jackcess-4.0.10.ebuild
+++ b/dev-java/jackcess/jackcess-4.0.10.ebuild
@@ -15,7 +15,7 @@ S="${WORKDIR}/${PN}-${P}"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64"
+KEYWORDS="amd64 arm64 ppc64"
CP_DEPEND="
>=dev-java/poi-5.5.1:0
diff --git a/dev-java/jackcess/jackcess-4.0.7-r1.ebuild b/dev-java/jackcess/jackcess-4.0.7-r1.ebuild
deleted file mode 100644
index f3eb1698afd3..000000000000
--- a/dev-java/jackcess/jackcess-4.0.7-r1.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-JAVA_PKG_IUSE="doc source test"
-MAVEN_ID="com.healthmarketscience.jackcess:jackcess:4.0.7"
-JAVA_TESTING_FRAMEWORKS="junit-4"
-
-inherit java-pkg-2 java-pkg-simple
-
-DESCRIPTION="A pure Java library for reading from and writing to MS Access databases"
-HOMEPAGE="https://jackcess.sourceforge.io"
-SRC_URI="https://github.com/jahlborn/${PN}/archive/${P}.tar.gz -> ${P}-sources.tar.gz"
-S="${WORKDIR}/${PN}-${P}"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 ppc64"
-
-CP_DEPEND="
- >=dev-java/commons-lang-3.17:3.6
- >=dev-java/commons-logging-1.3.1:0[log4j]
- >=dev-java/poi-5.2.5:0
-"
-
-# max jdk-25 for bug #968556
-DEPEND="
- ${CP_DEPEND}
- <virtual/jdk-26:*
-"
-
-RDEPEND="
- >=virtual/jre-1.8:*
- ${CP_DEPEND}"
-
-PATCHES=( "${FILESDIR}/jackcess-4.0.0-fix-tests.patch" )
-
-JAVA_RESOURCE_DIRS="src/main/resources"
-JAVA_SRC_DIR="src/main/java"
-
-JAVA_TEST_GENTOO_CLASSPATH="junit-4"
-JAVA_TEST_RESOURCE_DIRS="src/test/resources"
-JAVA_TEST_SRC_DIR="src/test/java"
-
-JAVA_TEST_EXCLUDES=(
- # initializationError(com.healthmarketscience.jackcess.TestUtil)
- # org.junit.runners.model.InvalidTestClassError: Invalid test class 'com.healthmarketscience.jackcess.TestUtil'
- "com.healthmarketscience.jackcess.TestUtil"
-)
-
-src_prepare() {
- default #780585
- java-pkg-2_src_prepare
-}
-
-src_test() {
- export TZ=UTC
- export LC_ALL=C
- java-pkg-simple_src_test
-}
diff --git a/dev-java/openjfx/Manifest b/dev-java/openjfx/Manifest
index 63028b364713..924608fcfead 100644
--- a/dev-java/openjfx/Manifest
+++ b/dev-java/openjfx/Manifest
@@ -8,5 +8,3 @@ DIST lucene-queries-7.1.0.jar 243126 BLAKE2B 166c3efea04c19314be7fd8c1d6b1378b2b
DIST lucene-queryparser-7.1.0.jar 384680 BLAKE2B adce2572de9f534323eead31dd30f97b853b2d5e4be6828c415f0c647460c361e00680d856ff9ffbba0fe45c3e4a425d68938a3d2dc01c76491bb65673e120fa SHA512 7151ef899e318679995138262c3450577ae33580708864581dc22a027f43ca4989825d434680925547e3c04ad4453a454e7045f605d7eee0da57d63db978ed68
DIST lucene-sandbox-7.1.0.jar 182914 BLAKE2B 70c795f84d8f0908abe47db77f632eeb6571a77e1445b8ab04a75080cea40e3b8171071965ff7fd9f6d39a450dd33144e922d19c1f07c605de54b45e3e881323 SHA512 6faf9fd9c7c082bf062adb6a28d89447e6e27152eb3f0a325081e5f791196e5440334632ccbf9c458940220676f7e73390a174889d9b7a656d088b3dade5d500
DIST openjfx-11.0.11_p1.tar.bz2 65017753 BLAKE2B ea5834e469bb0bd3a70595a91cc298f6091bc45de4c471ee9d0bcd45700ab3966a3396781ace2666bf94decd1219a83f01b277116cf23baeb6dd34a1a0f44191 SHA512 a1f94b3166aca50344f8af77ec2a5f52be1b0abc1c65fd3ff97f98017377ab772262502af00ad8cd4a6c44281ea459aff43a9cb7e30a1c35b822da8fb39b94fb
-DIST openjfx-8.1000-backports.tar.bz2 9142182 BLAKE2B 58ea420ec015c49d2755105a3d11675a92ecab337c7bda5a1ad72e84d0b35f04ed4252cee24da89b1e7b1b5b8b8b9fea7db93364434800246b87827b21970cc3 SHA512 077392368947cb9da1b5c7e14b641d6edcddd9821eb4f16dbea33e8986568211e93799aca29e70b490c8ef2125d69f8372abd1b1ce428a95420f62ff15c414d6
-DIST openjfx-8.1000.tar.bz2 62286455 BLAKE2B c9a714a618d9ae02768dae6128756d64b2b6299a36a6ad9828bf2213dc641cbbcaa2d3f3e0b4913bb60893419a2d5c730ca2db88f759bbd94b3e83112199278c SHA512 6049730b72e569939fed3d62b46a409e949b4c2309f4355253c8c891799c7fb5138e20aa217454fbbd78b1dd99c254b34b3fe6c9cbb35854bd8656993655bf32
diff --git a/dev-java/openjfx/files/8/0000-Fix-wait-call-in-PosixPlatform.patch b/dev-java/openjfx/files/8/0000-Fix-wait-call-in-PosixPlatform.patch
deleted file mode 100644
index 4a482240dc6b..000000000000
--- a/dev-java/openjfx/files/8/0000-Fix-wait-call-in-PosixPlatform.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- rt-8u202-b02/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp
-+++ rt-8u202-b02-patched/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp
-@@ -232,10 +232,7 @@
- pid_t wpid = 0;
-
- //TODO Use waitpid instead of wait
--#ifdef LINUX
-- wait(&status);
--#endif
--#ifdef MAC
-+#if defined(LINUX) || defined(MAC)
- wpid = wait(&status);
- #endif
-
diff --git a/dev-java/openjfx/files/8/0001-Change-Lucene.patch b/dev-java/openjfx/files/8/0001-Change-Lucene.patch
deleted file mode 100644
index 58d0c805ccb5..000000000000
--- a/dev-java/openjfx/files/8/0001-Change-Lucene.patch
+++ /dev/null
@@ -1,79 +0,0 @@
---- rt-8u202-b02/build.gradle
-+++ rt-8u202-b02-patched/build.gradle
-@@ -3268,38 +3268,38 @@
- // The apps build is Ant based, and gradle lets us "import" ant build.xml
- // into our configuration.
-
-- ant.importBuild 'build.xml'
-+ //ant.importBuild 'build.xml'
-
- // Download the Lucene libraries needed for the Ensemble8 app
-- def luceneVersion = "7.4.0"
-- getConfigurations().create("lucene");
-- dependencies {
-- lucene group: "org.apache.lucene", name: "lucene-core", version: luceneVersion
-- lucene group: "org.apache.lucene", name: "lucene-grouping", version: luceneVersion
-- lucene group: "org.apache.lucene", name: "lucene-queryparser", version: luceneVersion
-- }
-+ //def luceneVersion = "7.4.0"
-+ //getConfigurations().create("lucene");
-+ //dependencies {
-+ // lucene group: "org.apache.lucene", name: "lucene-core", version: luceneVersion
-+ // lucene group: "org.apache.lucene", name: "lucene-grouping", version: luceneVersion
-+ // lucene group: "org.apache.lucene", name: "lucene-queryparser", version: luceneVersion
-+ //}
-
- // Copy Lucene libraries into the Ensemble8/lib directory
-- File ensembleLibDir = rootProject.file("apps/samples/Ensemble8/lib");
-- def libNames = [ "lucene-core-${luceneVersion}.jar",
-- "lucene-grouping-${luceneVersion}.jar",
-- "lucene-queryparser-${luceneVersion}.jar" ]
--
--
-- task getLucene(type: Copy) {
-- doFirst {
-- ensembleLibDir.mkdirs();
-- }
-- into ensembleLibDir
-- includeEmptyDirs = false
-- configurations.lucene.files.each { f ->
-- libNames.each { name ->
-- if (name == f.getName()) {
-- from f.getPath()
-- }
-- }
-- }
-- }
-+ //File ensembleLibDir = rootProject.file("apps/samples/Ensemble8/lib");
-+ //def libNames = [ "lucene-core-${luceneVersion}.jar",
-+ // "lucene-grouping-${luceneVersion}.jar",
-+ // "lucene-queryparser-${luceneVersion}.jar" ]
-+
-+
-+ //task getLucene(type: Copy) {
-+ // doFirst {
-+ // ensembleLibDir.mkdirs();
-+ // }
-+ // into ensembleLibDir
-+ // includeEmptyDirs = false
-+ // configurations.lucene.files.each { f ->
-+ // libNames.each { name ->
-+ // if (name == f.getName()) {
-+ // from f.getPath()
-+ // }
-+ // }
-+ // }
-+ //}
-
- compileTargets { t ->
- // The apps build is Ant based, and gradle lets us "import" ant apps/build.xml
-@@ -3310,7 +3310,7 @@
- def jfxrtJar = "${rootProject.buildDir}/${sdkDirName}/rt/lib/ext/jfxrt.jar"
-
- def appsJar = project.task("appsJar${t.capital}") {
-- dependsOn(sdk, getLucene)
-+ dependsOn(sdk)
- doLast() {
- ant.properties['targetBld'] = "$t.name"
- if (!rootProject.ext[t.upper].compileSwing) {
-
diff --git a/dev-java/openjfx/files/8/0003-fix-cast-between-incompatible-function-types.patch b/dev-java/openjfx/files/8/0003-fix-cast-between-incompatible-function-types.patch
deleted file mode 100644
index 7095841498a1..000000000000
--- a/dev-java/openjfx/files/8/0003-fix-cast-between-incompatible-function-types.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 36b952bdcdc301a600009308bff90440b6ceab5b Mon Sep 17 00:00:00 2001
-From: Mat Booth <mat.booth@redhat.com>
-Date: Thu, 21 Jun 2018 15:57:01 +0100
-Subject: [PATCH 4/4] fix cast between incompatible function types
-
---- a/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp
-+++ b/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp
-@@ -556,7 +556,7 @@ static GdkDragContext *get_drag_context() {
- return ctx;
- }
-
--static gboolean dnd_finish_callback() {
-+static gboolean dnd_finish_callback(gpointer data) {
- if (dnd_window) {
- dnd_set_performed_action(
- translate_gdk_action_to_glass(
-@@ -1079,6 +1079,10 @@ gboolean DragView::get_drag_image_offset(int* x, int* y) {
- return offset_set;
- }
-
-+static void on_pixbuf_destroy_notify(guchar *pixels, gpointer data) {
-+ g_free(pixels);
-+}
-+
- GdkPixbuf* DragView::get_drag_image(gboolean* is_raw_image, gint* width, gint* height) {
- GdkPixbuf *pixbuf = NULL;
- gboolean is_raw = FALSE;
-@@ -1106,7 +1110,7 @@ GdkPixbuf* DragView::get_drag_image(gboolean* is_raw_image, gint* width, gint* h
- if (data) {
- memcpy(data, (raw + whsz), nraw - whsz);
- pixbuf = gdk_pixbuf_new_from_data(data, GDK_COLORSPACE_RGB, TRUE, 8,
-- w, h, w * 4, (GdkPixbufDestroyNotify) g_free, NULL);
-+ w, h, w * 4, (GdkPixbufDestroyNotify) on_pixbuf_destroy_notify, NULL);
- }
- }
- }
---- a/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp
-+++ b/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp
-@@ -122,15 +122,12 @@ bool WindowContextBase::filterIME(GdkEvent * event) {
- }
- }
-
--//Note: this function must return int, despite the fact it doesn't conform to XIMProc type.
--// This is required in documentation of XIM
--static int im_preedit_start(XIM im_xim, XPointer client, XPointer call) {
-+static void im_preedit_start(XIM im_xim, XPointer client, XPointer call) {
- (void)im_xim;
- (void)call;
-
- mainEnv->CallVoidMethod((jobject) client, jViewNotifyPreeditMode, JNI_TRUE);
-- CHECK_JNI_EXCEPTION_RET(mainEnv, -1);
-- return -1; // No restrictions
-+ CHECK_JNI_EXCEPTION(mainEnv);
- }
-
- static void im_preedit_done(XIM im_xim, XPointer client, XPointer call) {
-@@ -234,7 +231,7 @@ void WindowContextBase::enableOrResetIME() {
- return;
- }
-
-- XIMCallback startCallback = {(XPointer) jview, (XIMProc) im_preedit_start};
-+ XIMCallback startCallback = {(XPointer) jview, im_preedit_start};
- XIMCallback doneCallback = {(XPointer) jview, im_preedit_done};
- XIMCallback drawCallback = {(XPointer) jview, im_preedit_draw};
- XIMCallback caretCallback = {(XPointer) jview, im_preedit_caret};
---
-2.17.1
-
diff --git a/dev-java/openjfx/files/8/0004-Fix-Compilation-Flags.patch b/dev-java/openjfx/files/8/0004-Fix-Compilation-Flags.patch
deleted file mode 100644
index 17c91ab9ab88..000000000000
--- a/dev-java/openjfx/files/8/0004-Fix-Compilation-Flags.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- rt-8u202-b07/buildSrc/linux.gradle
-+++ rt-8u202-b07-patched/buildSrc/linux.gradle
-@@ -54,7 +54,7 @@
- def ccFlags = [
- commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/linux", "-c",
- "-ffunction-sections", "-fdata-sections",
-- IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
-+ IS_DEBUG_NATIVE ? ["-ggdb", "-DNDEBUG"] : ["-O2", "-DNDEBUG"]].flatten()
- def ccFlagsGTK3 = ccFlags
- //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
- def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags,
-
---- rt-8u202-b07/buildSrc/x86egl.gradle
-+++ rt-8u202-b07-patched/buildSrc/x86egl.gradle
-@@ -99,7 +99,7 @@
- def ccFlags = [
- commonFlags,
- "-I$JDK_HOME/include", "-I$JDK_HOME/include/${jniPlatform}", "-c",
-- IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
-+ IS_DEBUG_NATIVE ? ["-ggdb", "-DNDEBUG"] : ["-O2", "-DNDEBUG"]].flatten()
- //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
- def linkFlags = ["-shared", commonFlags].flatten()
-
diff --git a/dev-java/openjfx/files/8/0005-don-t-include-xlocale.h.patch b/dev-java/openjfx/files/8/0005-don-t-include-xlocale.h.patch
deleted file mode 100644
index cabb36eefe54..000000000000
--- a/dev-java/openjfx/files/8/0005-don-t-include-xlocale.h.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From 597f200762be416d5a62f1efd351cba6e47c1c4c Mon Sep 17 00:00:00 2001
-From: Georgy Yakovlev <gyakovlev@gentoo.org>
-Date: Thu, 30 May 2019 12:07:30 -0700
-Subject: [PATCH] don't include xlocale.h
-
---- a/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c
-+++ b/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c
-@@ -39,7 +39,7 @@
-
- #ifdef HAVE_XLOCALE_H
- /* Needed on BSD/OS X for e.g. strtod_l */
--#include <xlocale.h>
-+#include <locale.h>
- #endif
-
- #ifdef G_OS_WIN32
---
-2.21.0
-
diff --git a/dev-java/openjfx/files/8/06-disable-architecture-verification.patch b/dev-java/openjfx/files/8/06-disable-architecture-verification.patch
deleted file mode 100644
index d10e62850c31..000000000000
--- a/dev-java/openjfx/files/8/06-disable-architecture-verification.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Description: Disable the architecture verification which is limited to i386 and amd64
-Author: Emmanuel Bourg <ebourg@apache.org>
-Forwarded: no
---- a/build.gradle
-+++ b/build.gradle
-@@ -699,6 +699,7 @@
- // at present building on PI is not supported, but we would only need to make
- // some changes on assumptions on what should be built (like SWT / Swing) and
- // such and we could probably make it work.
-+/*
- if (!IS_MAC && !IS_WINDOWS && !IS_LINUX) logger.error("Unsupported build OS ${OS_NAME}")
- if (IS_WINDOWS && OS_ARCH != "x86" && OS_ARCH != "amd64") {
- throw new Exception("Unknown and unsupported build architecture: $OS_ARCH")
-@@ -707,6 +708,7 @@
- } else if (IS_LINUX && OS_ARCH != "i386" && OS_ARCH != "amd64") {
- throw new Exception("Unknown and unsupported build architecture: $OS_ARCH")
- }
-+*/
-
- // Sanity check that we actually have a list of compile targets to execute
- if (COMPILE_TARGETS == null || COMPILE_TARGETS == "") {
diff --git a/dev-java/openjfx/files/8/10-javadoc-locale.patch b/dev-java/openjfx/files/8/10-javadoc-locale.patch
deleted file mode 100644
index 39d346a4fb73..000000000000
--- a/dev-java/openjfx/files/8/10-javadoc-locale.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Description: Set the locale of the javadoc to make the build reproducible
-Author: Emmanuel Bourg <ebourg@apache.org>
-Forwarded: no
---- a/build.gradle
-+++ b/build.gradle
-@@ -1218,6 +1218,7 @@
- } else {
- options.links(JDK_DOCS);
- }
-+ options.locale("en");
- options.addBooleanOption("XDignore.symbol.file").setValue(true);
- options.addBooleanOption("Xdoclint:none").setValue(!IS_DOC_LINT);
- options.addBooleanOption("javafx").setValue(true);
-@@ -2769,6 +2770,7 @@
- options.windowTitle("${javadocTitle}")
- options.header("${javadocHeader}")
- options.bottom("${javadocBottom}")
-+ options.locale("en");
- if (BUILD_CLOSED) {
- options.linksOffline(JDK_DOCS, JDK_DOCS_CLOSED);
- } else {
diff --git a/dev-java/openjfx/files/8/99-sysdeps.patch b/dev-java/openjfx/files/8/99-sysdeps.patch
deleted file mode 100644
index abcdbab67ef3..000000000000
--- a/dev-java/openjfx/files/8/99-sysdeps.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/build.gradle
-+++ b/build.gradle
-@@ -1309,6 +1309,7 @@ project(":graphics") {
- antlr3 group: "org.antlr", name: "antlr", version: "3.1.3"
- antlr3 group: "org.antlr", name: "antlr-runtime", version: "3.1.3"
- antlr3 group: "org.antlr", name: "stringtemplate", version: "3.2"
-+ antlr3 group: "antlr", name: "antlr", version: "2.7.7"
- }
-
- // Create a single "native" task which will depend on all the individual native tasks for graphics
---- a/buildSrc/build.gradle
-+++ b/buildSrc/build.gradle
-@@ -82,10 +82,13 @@ getConfigurations().create("antlr3");
-
- dependencies {
- compile group: "org.antlr", name: "antlr", version: "3.1.3"
-+ compile group: "org.antlr", name: "antlr-runtime", version: "3.1.3"
-+ compile group: "org.antlr", name: "stringtemplate", version: "3.2"
- testCompile group: "junit", name: "junit", version: "4.8.2"
- antlr3 group: "org.antlr", name: "antlr-runtime", version: "3.1.3"
- antlr3 group: "org.antlr", name: "stringtemplate", version: "3.2"
- antlr3 group: "org.antlr", name: "antlr", version: "3.1.3"
-+ antlr3 group: "antlr", name: "antlr", version: "2.7.7"
- }
-
- // At the moment the ASM library shipped with Gradle that is used to
diff --git a/dev-java/openjfx/files/8/Wno-error.patch b/dev-java/openjfx/files/8/Wno-error.patch
deleted file mode 100644
index 771da0707088..000000000000
--- a/dev-java/openjfx/files/8/Wno-error.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 822bf818933311327c5b73cb1b185484f22f55fb Mon Sep 17 00:00:00 2001
-From: Georgy Yakovlev <gyakovlev@gentoo.org>
-Date: Sun, 26 Apr 2020 21:15:36 -0700
-Subject: [PATCH] Wno-error
-
---- a/buildSrc/armv5sf.gradle
-+++ b/buildSrc/armv5sf.gradle
-@@ -135,7 +135,6 @@ def dfbLFlags = ["-ldl"]
- def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
- def monocleCFlags = [
- extraCFlags,
-- "-Werror",
- "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
- def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
- def glassCFlags = ["-ffast-math"]
---- a/buildSrc/armv6hf.gradle
-+++ b/buildSrc/armv6hf.gradle
-@@ -131,7 +131,6 @@ def extraLFlags = [
- def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
- def monocleCFlags = [
- extraCFlags,
-- "-Werror",
- "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
- def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
-
---- a/buildSrc/armv6sf.gradle
-+++ b/buildSrc/armv6sf.gradle
-@@ -135,7 +135,6 @@ def dfbLFlags = ["-ldl"]
- def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
- def monocleCFlags = [
- extraCFlags,
-- "-Werror",
- "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
- def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
- def glassCFlags = ["-ffast-math"]
---- a/buildSrc/armv7hf.gradle
-+++ b/buildSrc/armv7hf.gradle
-@@ -131,7 +131,6 @@ def extraLFlags = [
- def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
- def monocleCFlags = [
- extraCFlags,
-- "-Werror",
- "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
- def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
-
---- a/buildSrc/armv7sf.gradle
-+++ b/buildSrc/armv7sf.gradle
-@@ -135,7 +135,6 @@ def dfbLFlags = ["-ldl"]
- def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
- def monocleCFlags = [
- extraCFlags,
-- "-Werror",
- "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
- def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
- def glassCFlags = ["-ffast-math"]
---- a/buildSrc/x86egl.gradle
-+++ b/buildSrc/x86egl.gradle
-@@ -118,7 +118,6 @@ def extraLFlags = [
- def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
- def monocleCFlags = [
- extraCFlags,
-- "-Werror",
- "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
- def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
-
---
-2.26.2
-
diff --git a/dev-java/openjfx/files/8/disable-online-repos.patch b/dev-java/openjfx/files/8/disable-online-repos.patch
deleted file mode 100644
index 6dd2db128e90..000000000000
--- a/dev-java/openjfx/files/8/disable-online-repos.patch
+++ /dev/null
@@ -1,52 +0,0 @@
---- a/build.gradle
-+++ b/build.gradle
-@@ -1135,17 +1135,17 @@ allprojects {
- // "artifact" in the pattern below. Note that the closed builds use different repositories
- // so if you are debugging a closed-build artifact related build issue, check out the
- // closed gradle file instead.
-- if (!BUILD_CLOSED) {
-- repositories {
-- mavenCentral()
-- ivy {
-- url "http://download.eclipse.org/eclipse/updates/4.6/R-4.6.3-201703010400/plugins/"
-- layout "pattern", {
-- artifact "[artifact].[ext]"
-- }
-- }
-- }
-- }
-+ // if (!BUILD_CLOSED) {
-+ // repositories {
-+ // mavenCentral()
-+ // ivy {
-+ // url "http://download.eclipse.org/eclipse/updates/4.6/R-4.6.3-201703010400/plugins/"
-+ // layout "pattern", {
-+ // artifact "[artifact].[ext]"
-+ // }
-+ // }
-+ // }
-+ // }
-
- // We want to configure all projects as java projects and use the same compile settings
- // etc, except for the root project which we just want to ignore (and for now media)
-@@ -1785,13 +1785,13 @@ project(":fxpackager") {
- }
- // fxpackager has a dependency on ant in order to build the ant jar,
- // and as such needs to point to the apache binary repository
-- if (!BUILD_CLOSED) {
-- repositories {
-- maven {
-- url "https://repository.apache.org"
-- }
-- }
-- }
-+ // if (!BUILD_CLOSED) {
-+ // repositories {
-+ // maven {
-+ // url "https://repository.apache.org"
-+ // }
-+ // }
-+ // }
-
- dependencies {
- compile group: "org.apache.ant", name: "ant", version: "1.8.2"
diff --git a/dev-java/openjfx/files/8/don-t-force-msse.patch b/dev-java/openjfx/files/8/don-t-force-msse.patch
deleted file mode 100644
index 6cdb19e5a002..000000000000
--- a/dev-java/openjfx/files/8/don-t-force-msse.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 6483d73551590e8036cd5ec6d317e8114b403f36 Mon Sep 17 00:00:00 2001
-From: Georgy Yakovlev <gyakovlev@gentoo.org>
-Date: Sun, 26 Apr 2020 20:57:39 -0700
-Subject: [PATCH] don't force msse
-
---- a/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
-+++ b/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
-@@ -28,7 +28,6 @@ CFLAGS = -fPIC \
- -Wformat-security \
- -Werror=implicit-function-declaration \
- -fstack-protector \
-- -msse2 \
- -fbuiltin \
- -DHAVE_STDINT_H \
- -DLINUX \
---- a/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
-+++ b/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
-@@ -25,7 +25,6 @@ CFLAGS = -fPIC \
- -Wformat-security \
- -Werror=implicit-function-declaration \
- -fstack-protector \
-- -msse2 \
- -fbuiltin \
- -DHAVE_STDINT_H \
- -DLINUX \
---- a/modules/media/src/main/native/jfxmedia/projects/linux/Makefile
-+++ b/modules/media/src/main/native/jfxmedia/projects/linux/Makefile
-@@ -44,7 +44,6 @@ ifdef HOST_COMPILE
- -Wformat-security \
- -fstack-protector \
- -Werror=implicit-function-declaration \
-- -msse2 \
- -DGSTREAMER_LITE
-
- INCLUDES = $(BASE_INCLUDES) \
---
-2.26.2
-
diff --git a/dev-java/openjfx/files/8/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch b/dev-java/openjfx/files/8/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch
deleted file mode 100644
index 6fd0a9852012..000000000000
--- a/dev-java/openjfx/files/8/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-From 26d59b7c8cc2b40277756f55387606ba8a852b31 Mon Sep 17 00:00:00 2001
-From: Georgy Yakovlev <gyakovlev@gentoo.org>
-Date: Fri, 18 Sep 2020 21:43:57 -0700
-Subject: [PATCH] fxpackager: don't include obsolete sys/sysctl.h
-
---- a/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp
-+++ b/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp
-@@ -43,7 +43,6 @@
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <unistd.h>
--#include <sys/sysctl.h>
- #include <iostream>
- #include <dlfcn.h>
- #include <signal.h>
---
-2.28.0
-
diff --git a/dev-java/openjfx/files/8/missing-casts.patch b/dev-java/openjfx/files/8/missing-casts.patch
deleted file mode 100644
index c3d45f4f07df..000000000000
--- a/dev-java/openjfx/files/8/missing-casts.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/modules/graphics/src/main/native-font/pango.c
-+++ b/modules/graphics/src/main/native-font/pango.c
-@@ -225,7 +225,7 @@ JNIEXPORT jboolean JNICALL OS_NATIVE(FcConfigAppFontAddFile)
- if (text) {
- // rc = (jboolean)FcConfigAppFontAddFile(arg0, text);
- if (fp) {
-- rc = (jboolean)((jboolean (*)(void *, const char *))fp)(arg0, text);
-+ rc = (jboolean)((jboolean (*)(void *, const char *))fp)((void *)(intptr_t)arg0, text);
- }
- (*env)->ReleaseStringUTFChars(env, arg1, text);
- }
---- a/modules/graphics/src/main/native-prism-es2/x11/X11GLContext.c
-+++ b/modules/graphics/src/main/native-prism-es2/x11/X11GLContext.c
-@@ -275,7 +275,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_prism_es2_X11GLContext_nInitialize
- dlsym(RTLD_DEFAULT, "glXSwapIntervalSGI");
-
- if (ctxInfo->glXSwapIntervalSGI == NULL) {
-- ctxInfo->glXSwapIntervalSGI = glXGetProcAddress("glXSwapIntervalSGI");
-+ ctxInfo->glXSwapIntervalSGI = (PFNGLXSWAPINTERVALSGIPROC)glXGetProcAddress("glXSwapIntervalSGI");
- }
-
- }
diff --git a/dev-java/openjfx/files/8/respect_flags.patch b/dev-java/openjfx/files/8/respect_flags.patch
deleted file mode 100644
index b8a0975965a8..000000000000
--- a/dev-java/openjfx/files/8/respect_flags.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-From 102cfe6848fe3e67c3d85cca8f3c02c1f316845b Mon Sep 17 00:00:00 2001
-From: Georgy Yakovlev <gyakovlev@gentoo.org>
-Date: Thu, 25 Mar 2021 10:06:49 -0700
-Subject: [PATCH] respect flags
-
---- a/buildSrc/linux.gradle
-+++ b/buildSrc/linux.gradle
-@@ -46,6 +46,9 @@ def commonFlags = [
- "-fstack-protector",
- "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
-
-+
-+commonFlags.addAll(System.getenv('CFLAGS').trim().split(" "))
-+
- if (!IS_64) {
- commonFlags += "-m32"
- }
-@@ -61,6 +64,7 @@ def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags,
- "-z", "relro",
- "-Wl,--gc-sections"].flatten()
- def defaultLinkFlags = linkFlags.flatten()
-+linkFlags.addAll(System.getenv('LDFLAGS').trim().split(" "))
-
- def toolchainDir
- if (hasProperty('toolchainDir')) {
---- a/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
-+++ b/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
-@@ -22,7 +22,7 @@ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
- OBJBASE_DIR = $(BUILD_DIR)/obj/plugins/avplugin
- endif
-
--CFLAGS = -fPIC \
-+CFLAGS := -fPIC \
- -Wformat \
- -Wextra \
- -Wformat-security \
-@@ -34,13 +34,8 @@ CFLAGS = -fPIC \
- -DGST_DISABLE_LOADSAVE \
- -DGSTREAMER_LITE \
- -DG_DISABLE_DEPRECATED \
-- -ffunction-sections -fdata-sections
--
--ifeq ($(BUILD_TYPE), Release)
-- CFLAGS += -Os
--else
-- CFLAGS += -g -Wall
--endif
-+ -ffunction-sections -fdata-sections \
-+ ${CFLAGS}
-
- INCLUDES= -I../../../plugins \
- -I../../../plugins/av \
-@@ -50,11 +45,12 @@ INCLUDES= -I../../../plugins \
- -I$(GLIB_DIR)/glib \
- -I$(GLIB_DIR)/gmodule
-
--LDFLAGS = -L$(BUILD_DIR) \
-+LDFLAGS := -L$(BUILD_DIR) \
- -z relro \
- -lgstreamer-lite \
- -lglib-lite \
-- -static-libgcc -static-libstdc++ -Wl,--gc-sections
-+ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
-+ ${LDFLAGS}
-
- ifneq ($(strip $(LIBAV_DIR)),)
- INCLUDES += -I$(LIBAV_DIR)/include
---- a/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
-+++ b/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
-@@ -19,7 +19,7 @@ DIRLIST = progressbuffer \
-
- TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
-
--CFLAGS = -fPIC \
-+CFLAGS := -fPIC \
- -Wformat \
- -Wextra \
- -Wformat-security \
-@@ -35,14 +35,8 @@ CFLAGS = -fPIC \
- -DGST_DISABLE_GST_DEBUG \
- -DGSTREAMER_LITE \
- -DG_DISABLE_DEPRECATED \
-- -ffunction-sections -fdata-sections
--
--ifeq ($(BUILD_TYPE), Release)
-- CFLAGS += -Os
--else
-- CFLAGS += -g -Wall
--endif
--
-+ -ffunction-sections -fdata-sections \
-+ ${CFLAGS}
-
- INCLUDES = -I$(SRCBASE_DIR) \
- $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \
-@@ -52,9 +46,10 @@ INCLUDES = -I$(SRCBASE_DIR) \
- -I$(GLIB_DIR)/glib \
- -I$(GLIB_DIR)/gmodule
-
--LDFLAGS = -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \
-+LDFLAGS := -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \
- -z relro \
-- -static-libgcc -static-libstdc++ -Wl,--gc-sections
-+ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
-+ ${LDFLAGS}
-
- ifeq ($(ARCH), x32)
- CFLAGS += -m32
---- a/modules/media/src/main/native/gstreamer/projects/linux/glib-lite/Makefile
-+++ b/modules/media/src/main/native/gstreamer/projects/linux/glib-lite/Makefile
-@@ -40,20 +40,15 @@ CFLAGS += -fPIC \
- -DMATCH_LIMIT=10000000 \
- -DMATCH_LIMIT_RECURSION=10000000
-
--ifeq ($(BUILD_TYPE), Release)
-- CFLAGS += -Os
--else
-- CFLAGS += -g -Wall
--endif
--
- INCLUDES = -I$(SRCBASE_DIR) \
- -I$(SRCBASE_DIR)/glib \
- -I$(SRCBASE_DIR)/build/linux \
- -I$(LIBFFI_DIR)/include
-
--LDFLAGS = -L$(BUILD_DIR) -lffi \
-+LDFLAGS := -L$(BUILD_DIR) -lffi \
- -z relro \
-- -static-libgcc -static-libstdc++ -Wl,--gc-sections
-+ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
-+ ${LDFLAGS}
-
- ifeq ($(ARCH), x32)
- CFLAGS += -m32
---- a/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile
-+++ b/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile
-@@ -41,7 +41,7 @@ DIRLIST = gstreamer/gst \
-
- TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
-
--CFLAGS =-fPIC \
-+CFLAGS :=-fPIC \
- -Wformat \
- -Wextra \
- -Wformat-security \
-@@ -56,13 +56,8 @@ CFLAGS =-fPIC \
- -DGST_DISABLE_GST_DEBUG \
- -DGST_DISABLE_LOADSAVE \
- -DG_DISABLE_DEPRECATED \
-- -ffunction-sections -fdata-sections
--
--ifeq ($(BUILD_TYPE), Release)
-- CFLAGS += -Os
--else
-- CFLAGS += -g -Wall
--endif
-+ -ffunction-sections -fdata-sections \
-+ ${CFLAGS}
-
- INCLUDES = -I$(BASE_DIR)/plugins \
- -I$(SRCBASE_DIR)/projects/build/linux/common \
-@@ -83,9 +78,10 @@ INCLUDES = -I$(BASE_DIR)/plugins \
- PACKAGES_INCLUDES := $(shell pkg-config --cflags alsa)
- PACKAGES_LIBS := $(shell pkg-config --libs alsa)
-
--LDFLAGS = -L$(BUILD_DIR) -lm -lglib-lite $(PACKAGES_LIBS) \
-+LDFLAGS := -L$(BUILD_DIR) -lm -lglib-lite $(PACKAGES_LIBS) \
- -z relro \
-- -static-libgcc -static-libstdc++ -Wl,--gc-sections
-+ -static-libgcc -static-libstdc++ -Wl,--gc-sections \
-+ ${LDFLAGS}
-
- ifeq ($(ARCH), x32)
- CFLAGS += -m32
---- a/modules/media/src/main/native/gstreamer/projects/linux/libffi/Makefile
-+++ b/modules/media/src/main/native/gstreamer/projects/linux/libffi/Makefile
-@@ -20,12 +20,6 @@ CFLAGS += -c \
- -DHAVE_AS_X86_PCREL \
- -DGSTREAMER_LITE
-
--ifeq ($(BUILD_TYPE), Release)
-- CFLAGS += -Os
--else
-- CFLAGS += -O0 -g -Wall
--endif
--
- INCLUDES = -I$(SRCBASE_DIR)/include
-
- C_SOURCES = src/closures.c \
---
-2.31.0
-
diff --git a/dev-java/openjfx/openjfx-8.1000-r2.ebuild b/dev-java/openjfx/openjfx-8.1000-r2.ebuild
deleted file mode 100644
index 303971b7904b..000000000000
--- a/dev-java/openjfx/openjfx-8.1000-r2.ebuild
+++ /dev/null
@@ -1,196 +0,0 @@
-# Copyright 2020-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-JAVA_PKG_IUSE="doc source"
-
-inherit flag-o-matic java-pkg-2 java-pkg-simple multiprocessing toolchain-funcs
-
-EGRADLE_VER="4.10.3"
-EHG_COMMIT="9f49e3b6147f"
-
-DESCRIPTION="Java OpenJFX 8 client application platform"
-HOMEPAGE="https://openjfx.io"
-SRC_URI="
- https://hg.openjdk.java.net/${PN}/8u-dev/rt/archive/${EHG_COMMIT}.tar.bz2 -> ${P}.tar.bz2
- https://dev.gentoo.org/~gyakovlev/distfiles/${P}-backports.tar.bz2
- https://downloads.gradle.org/distributions/gradle-${EGRADLE_VER}-bin.zip
-"
-# eclass overrides it, set back to normal
-S="${WORKDIR}/${P}"
-
-LICENSE="GPL-2-with-classpath-exception"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~ppc64"
-IUSE="debug doc media cpu_flags_x86_sse2"
-REQUIRED_USE="amd64? ( cpu_flags_x86_sse2 )"
-RESTRICT="test" # needs junit version we don't have, fragile
-
-DEPEND="
- app-arch/unzip
- >=dev-java/ant-1.10.14:0
- >=dev-java/antlr-2.7.7-r7:0
- dev-java/antlr:3
- dev-java/openjdk:8
- dev-java/stringtemplate:0
- dev-java/swt:4.10[cairo,opengl]
- app-alternatives/yacc
- app-alternatives/lex
- virtual/jdk:1.8
- virtual/pkgconfig
-"
-
-RDEPEND="
- dev-java/swt:4.10[cairo,opengl]
- virtual/jre:1.8
-"
-
-# FIXME: majority of flags are honored, needs a bit more patching
-QA_FLAGS_IGNORED=".*"
-
-JAVA_PKG_WANT_BUILD_VM="openjdk-8"
-JAVA_PKG_WANT_SOURCE="1.8"
-JAVA_PKG_WANT_TARGET="1.8"
-
-PATCHES=(
- "${FILESDIR}"/8/99-sysdeps.patch
- "${FILESDIR}"/8/disable-online-repos.patch
- "${FILESDIR}"/8/respect_flags.patch
- "${FILESDIR}"/8/0000-Fix-wait-call-in-PosixPlatform.patch
- "${FILESDIR}"/8/0001-Change-Lucene.patch
- "${FILESDIR}"/8/0003-fix-cast-between-incompatible-function-types.patch
- "${FILESDIR}"/8/0004-Fix-Compilation-Flags.patch
- "${FILESDIR}"/8/0005-don-t-include-xlocale.h.patch
- "${FILESDIR}"/8/06-disable-architecture-verification.patch
- "${FILESDIR}"/8/10-javadoc-locale.patch
- "${FILESDIR}"/8/Wno-error.patch
- "${FILESDIR}"/8/don-t-force-msse.patch
- "${FILESDIR}"/8/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch
- "${FILESDIR}"/8/missing-casts.patch
-)
-
-egradle() {
- local GRADLE_HOME="${WORKDIR}/gradle-${EGRADLE_VER}"
- local gradle="${GRADLE_HOME}/bin/gradle"
- local gradle_args=(
- --info
- --stacktrace
- --no-build-cache
- --no-daemon
- --offline
- --gradle-user-home "${T}/gradle_user_home"
- --project-cache-dir "${T}/gradle_project_cache"
- )
-
- export GRADLE_HOME
-
- # FIXME: build.gradle believes $ANT_HOME/bin/ant shoud exist
- unset ANT_HOME
-
- einfo "gradle "${gradle_args[@]}" ${@}"
- # TERM needed, otherwise gradle may fail on terms it does not know about
- TERM="xterm" "${gradle}" "${gradle_args[@]}" ${@} || die "gradle failed"
-}
-
-src_unpack() {
- default
- mv -v "rt-${EHG_COMMIT}" "${P}" || die
-}
-
-src_prepare() {
- eapply "${WORKDIR}/${P}-backports"
- default
-
- # this will create local jar storage to be used as ivy repo
- local d="${T}/jars"
- mkdir "${d}" || die
-
- # we need jars subdir in every prokect so gradle can find them
- # only system jars, no bundling
- local target targets
- targets=(
- jars
- buildSrc/jars
- modules/{base,builders,controls,extensions,fxml}/jars
- modules/{graphics,jmx,media,swing,swt,web,fxpackager}/jars
- )
- einfo "Copying system jars"
- for target in ${targets[@]}; do
- ln -vs "${T}/jars" "${target}" || die
- done
-
- local swt_file_name="$(java-pkg_getjars swt-4.10)"
- java-pkg_jar-from --build-only --into "${d}" ant ant.jar ant-1.8.2.jar
- java-pkg_jar-from --build-only --into "${d}" ant ant-launcher.jar ant-launcher-1.8.2.jar
- java-pkg_jar-from --build-only --into "${d}" antlr antlr.jar antlr-2.7.7.jar
- java-pkg_jar-from --build-only --into "${d}" antlr-3 antlr-tool.jar antlr-3.1.3.jar
- java-pkg_jar-from --build-only --into "${d}" antlr-3 antlr-runtime.jar antlr-runtime-3.1.3.jar
- java-pkg_jar-from --build-only --into "${d}" stringtemplate stringtemplate.jar stringtemplate-3.2.jar
- sed -i "s#compile name: SWT_FILE_NAME#compile files(\"${swt_file_name}\")#" "${S}"/build.gradle || die
-
- sed -i 's/-rpath/-rpath-link/g' modules/media/src/main/native/jfxmedia/projects/linux/Makefile || die
-}
-
-src_configure() {
- # see gradle.properties.template in ${S}
- cat <<- _EOF_ > "${S}"/gradle.properties
- COMPILE_TARGETS = linux
- GRADLE_VERSION_CHECK = false
- COMPILE_AVPLUGIN = $(usex media true false)
- COMPILE_MEDIA = $(usex media true false)
- COMPILE_WEBKIT = false
- BUILD_JAVADOC = $(usex doc true false)
- BUILD_SRC_ZIP = $(usex source true false)
- FULL_TEST = false
- CONF = $(usex debug DebugNative Release)
- NUM_COMPILE_THREADS = $(makeopts_jobs)
- _EOF_
-
- local repostring='
- repositories {
- ivy {
- url file("${projectDir}/jars")
- layout "pattern", {
- artifact "[artifact]-[revision].[ext]"
- artifact "[artifact].[ext]"
- }
- }
- mavenLocal()
- }'
-
- cat <<- _EOF_ > "${S}"/buildSrc/gentoo.gradle
- ${repostring}
- _EOF_
-
- cat <<- _EOF_ > "${S}"/gentoo.gradle
- ${repostring}
- allprojects {
- ${repostring}
- }
- _EOF_
-
- echo "apply from: 'gentoo.gradle'" >> build.gradle || die
- echo "apply from: 'gentoo.gradle'" >> buildSrc/build.gradle || die
- sed -i 's/mavenCentral/mavenLocal/g' build.gradle || die
- sed -i 's/mavenCentral/mavenLocal/g' buildSrc/build.gradle || die
- einfo "Configured with the following settings:"
- cat gradle.properties || die
-
-}
-
-src_compile() {
- append-cflags '-fcommon'
- tc-export_build_env CC CXX PKG_CONFIG
- rm -r tests buildSrc/src/test || die
- egradle openExportLinux
-}
-
-src_install() {
- local dest="/usr/$(get_libdir)/openjdk-${SLOT}"
- local ddest="${ED}${dest}"
- dodir "${dest}"
- pushd build/export/sdk > /dev/null || die
- cp -pPRv * "${ddest}" || die
- popd > /dev/null || die
-}
diff --git a/dev-java/poi/Manifest b/dev-java/poi/Manifest
index 2bfa2caf7714..ecac6d6d0b00 100644
--- a/dev-java/poi/Manifest
+++ b/dev-java/poi/Manifest
@@ -1,4 +1,2 @@
DIST apache-poi-src-5.5.1-20251126.tgz 121846633 BLAKE2B 0435eac69119a6a2acf9c44e2f3a4522ab19e7b58c1f9e6fecedbcf46dc6129b369dbbe31c268d128acc2d8f8aa2a143e7e491f64ffae1ff1c517540b8b24812 SHA512 c40638012cacb52e0667af42eb397ebac28d618a882e82e6933b7833550fca7e17f636f297837616436afb79269ae6e5e110574294f2794e2366e1acbb158cac
DIST apache-poi-src-5.5.1-20251126.tgz.asc 488 BLAKE2B 159f281c39863a5153e7862cd1f6b89d6c0387772caa3848caf779b6540e2e7ca94574d959e223de0b7494fd34031b0f154dda283e8d83199a634e641da763a9 SHA512 8dedc18ba861b0d1b1a63158a321a1dd05e0438b11a7d1a0f57dd2d9e06e63bc584109bc2cc5d6ceb4c5a77fd29e36e0bcade05d8e331df4552de2952061f75b
-DIST poi-src-5.2.5-20231118.tgz 120325373 BLAKE2B a998b874040ac2fb136b9ffa59d30cf5939434efe59d51fc2e79c63f6fd1f3ad1679b532840f0e1975aa0fe79368951ecf2ddc0259e3dfce9fc2c34d95cb7216 SHA512 d46e94cfadc3a843d8e06033a618098dde738830f20146c6e39abd8f467aa88987719363ee2b91ecf6812e604cdc72a5c0a799676e264a6f9d3799aa4639a6c9
-DIST poi-src-5.2.5-20231118.tgz.asc 488 BLAKE2B 634ed5e3bacd71213a96b9da147348deb3dd2837f6cf47f4d76c254442504815e41b1d9a3facfaa27c927f11f1ba552acf4dc94c4ffbfd11cc70eefd054a1523 SHA512 3588d60ad1c5e59540f19e345f2cfd6600a592fda313ab53bfd280599906e9d3c44aedae8fb72409ebae67c0285b257290bdca9128a632379db894143585dd1e
diff --git a/dev-java/poi/poi-5.2.5.ebuild b/dev-java/poi/poi-5.2.5.ebuild
deleted file mode 100644
index e16a09749d08..000000000000
--- a/dev-java/poi/poi-5.2.5.ebuild
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# No tests, #839681
-JAVA_PKG_IUSE="doc source"
-MAVEN_ID="org.apache.poi:poi-main:${PV}"
-
-inherit java-pkg-2 java-pkg-simple verify-sig
-
-DESCRIPTION="Maven build of Apache POI for Sonar checks"
-HOMEPAGE="https://poi.apache.org/"
-RELEASE_DATE="20231118"
-SRC_URI="https://archive.apache.org/dist/poi/release/src/poi-src-${PV}-${RELEASE_DATE}.tgz
- verify-sig? ( https://archive.apache.org/dist/poi/release/src/poi-src-${PV}-${RELEASE_DATE}.tgz.asc )"
-S="${WORKDIR}/poi-src-${PV}-${RELEASE_DATE}"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 ppc64"
-
-VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/poi.apache.org.asc"
-BDEPEND="verify-sig? ( sec-keys/openpgp-keys-apache-poi )"
-DEPEND="
- dev-java/commons-codec:0
- dev-java/commons-collections:4
- dev-java/commons-io:1
- dev-java/commons-math:3
- dev-java/log4j-api:2
- >=dev-java/sparsebitset-1.3:0
- >=virtual/jdk-11:*
-"
-
-RDEPEND=">=virtual/jre-1.8:*"
-
-JAVA_AUTOMATIC_MODULE_NAME="org.apache.poi.poi"
-JAVA_CLASSPATH_EXTRA="
- commons-codec
- commons-collections-4
- commons-io-1
- commons-math-3
- log4j-api-2
- sparsebitset
-"
-JAVA_RESOURCE_DIRS="poi/src/main/resources"
-JAVA_SRC_DIR=( poi/src/main/java{,9} )
-
-src_prepare() {
- java-pkg-2_src_prepare
- sed \
- -e "s:@VERSION@:${PV}:g" \
- -e "s:@DSTAMP@:${RELEASE_DATE}:g" \
- poi/src/main/version/Version.java.template \
- > poi/src/main/java/org/apache/poi/Version.java || die
- # log4j-api does not provide Automatic-Module
- sed \
- -e '/org.apache.logging.log4j/d' \
- -i poi/src/main/java9/module-info.java || die
-}
diff --git a/dev-java/poi/poi-5.5.1.ebuild b/dev-java/poi/poi-5.5.1.ebuild
index 94dc5e44b97a..3a53ada970cd 100644
--- a/dev-java/poi/poi-5.5.1.ebuild
+++ b/dev-java/poi/poi-5.5.1.ebuild
@@ -16,7 +16,7 @@ S="${WORKDIR}/apache-poi-src-${PV}-${RELEASE_DATE}"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64"
+KEYWORDS="amd64 arm64 ppc64"
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-apache-poi-20240421 )"
DEPEND="
diff --git a/dev-java/swt/Manifest b/dev-java/swt/Manifest
index e3f7ac73b441..274290f156be 100644
--- a/dev-java/swt/Manifest
+++ b/dev-java/swt/Manifest
@@ -1,5 +1,3 @@
-DIST swt-4.10-gtk-linux-ppc64le.zip 3848264 BLAKE2B 214861fde6987906fb24f3187936f3bcb49aebed54fe242427c3737bf6761e8f77d049c376f30ca0fc33e74a1e8a48b6aff6d9863775ee9c33fea7cb2edd1309 SHA512 1b3ede58c2b41abae76f58a303bd3fbf1849ba8be3fd6518325bc22400e960c3ab542e7351b1bc08053e2746ea3e28812e04c2d1789cb1e19ea28745c8a5f39a
-DIST swt-4.10-gtk-linux-x86_64.zip 3844306 BLAKE2B 0e0ed21708acce347fd025920ee635f586c460f8a9c05a7067fd70eed9da999b4a62a5febd17f0c5546ab15198336038e4ab49a1bd588d49ffb39450353a1911 SHA512 9dd946cb7c11446f553f06b8af516167519bab00d4a89f626cd612be6d18e50023fc537aa3d844a8f7a56a767df00410efe4dd20e2bfd930639330a1e279a7a0
DIST swt-4.29-gtk-linux-aarch64.zip 3836724 BLAKE2B 8c905df298688686ee22c9f2021560856f7ac7b6a92dad744b27cd30530c6ff76470fdcbb79b91ada01f28c43b8f694c334ff1337d692366ae9dc0319f7e46e2 SHA512 44ff572b57631b1b6a98192f60624758d90f54a2b2272c6bbb140ece39e65bb4086cf08fbc50c5f2e388e7b410b28fc014b87a8560062053b4c131970fa38b17
DIST swt-4.29-gtk-linux-ppc64le.zip 3860955 BLAKE2B f24f8224581425dc86926a147f2f4c644f086cb7907e03bfca64df93ef5ce8341f519acc91e90c0af4eede65797ac019c17a410ff0312306714fa26ddb4234b4 SHA512 09326b5204970d9db2cede4aebf11c7f24a47c30b6bc49764dda1d0a33fa83c7c4755797cac387d1814a29ad2574e45244b994e5df0c7ef2fd1375fc7877814b
DIST swt-4.29-gtk-linux-x86_64.zip 3857122 BLAKE2B ac4416044f93eaed396ac10edb74eb5ebcbb967797109f57580bd0ac7c1e3752e8895c5ff1b315aa32b5d5b5ce8e1440badb8b9c3138a0eaeb4df63098919a8c SHA512 c92381e4d1479c219e174c027e54af781e674b266334a5e087f5821935e0a87696f40afbc9fe6f9ffaa00b5204165d9ff6476031b5e4e2df8aea1a54aeb2e65e
diff --git a/dev-java/swt/files/swt-4.10-as-needed-and-flag-fixes.patch b/dev-java/swt/files/swt-4.10-as-needed-and-flag-fixes.patch
deleted file mode 100644
index cb70122aa411..000000000000
--- a/dev-java/swt/files/swt-4.10-as-needed-and-flag-fixes.patch
+++ /dev/null
@@ -1,81 +0,0 @@
---- a/make_linux.mak
-+++ b/make_linux.mak
-@@ -101,7 +101,7 @@
- WEBKIT_OBJECTS = swt.o webkitgtk.o webkitgtk_structs.o webkitgtk_stats.o webkitgtk_custom.o
- GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o
-
--CFLAGS := $(CFLAGS) \
-+CFLAGS += -fPIC \
- -DSWT_VERSION=$(SWT_VERSION) \
- $(NATIVE_STATS) \
- $(SWT_DEBUG) \
-@@ -129,13 +129,13 @@
- make_swt: $(SWT_LIB) $(SWTPI_LIB)
-
- $(SWT_LIB): $(SWT_OBJECTS)
-- $(CC) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
-+ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
-
- callback.o: callback.c callback.h
- $(CC) $(CFLAGS) -DUSE_ASSEMBLER -c callback.c
-
- $(SWTPI_LIB): $(SWTPI_OBJECTS)
-- $(CC) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
-+ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
-
- swt.o: swt.c swt.h
- $(CC) $(CFLAGS) -c swt.c
-@@ -154,7 +154,7 @@
- make_cairo: $(CAIRO_LIB)
-
- $(CAIRO_LIB): $(CAIRO_OBJECTS)
-- $(CC) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
-+ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
-
- cairo.o: cairo.c cairo.h swt.h
- $(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo.c
-@@ -169,7 +169,7 @@
- make_awt:$(AWT_LIB)
-
- $(AWT_LIB): $(AWT_OBJECTS)
-- $(CC) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
-+ $(CC) -fPIC $(LDFLAGS) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
-
- #
- # Atk lib
-@@ -177,7 +177,7 @@
- make_atk: $(ATK_LIB)
-
- $(ATK_LIB): $(ATK_OBJECTS)
-- $(CC) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
-+ $(CC) $(LDFLAGS) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
-
- atk.o: atk.c atk.h
- $(CC) $(CFLAGS) $(ATKCFLAGS) -c atk.c
-@@ -198,7 +198,7 @@
- endif
-
- $(WEBKIT_LIB): $(WEBKIT_OBJECTS)
-- $(CC) $(LFLAGS) -o $(WEBKIT_LIB) $(WEBKIT_OBJECTS) $(WEBKITLIBS)
-+ $(CC) $(LDFLAGS) $(LFLAGS) -o $(WEBKIT_LIB) $(WEBKIT_OBJECTS) $(WEBKITLIBS)
-
- webkitgtk.o: webkitgtk.c webkitgtk_custom.h
- $(CC) $(CFLAGS) $(WEBKITCFLAGS) -c webkitgtk.c
-@@ -217,7 +217,7 @@
- make_webkit2extension: $(WEBKIT_EXTENSION_LIB)
-
- $(WEBKIT_EXTENSION_LIB) : webkitgtk_extension.o
-- $(CC) $(LFLAGS) -o $@ $^ $(WEBKIT_EXTENSION_LFLAGS)
-+ $(CC) $(LDFLAGS) $(LFLAGS) -o $@ $^ $(WEBKIT_EXTENSION_LFLAGS)
-
- webkitgtk_extension.o : webkitgtk_extension.c
- $(CC) $(CFLAGS) $(WEBKIT_EXTENSION_CFLAGS) ${SWT_PTR_CFLAGS} -fPIC -c $^
-@@ -228,7 +228,7 @@
- make_glx: $(GLX_LIB)
-
- $(GLX_LIB): $(GLX_OBJECTS)
-- $(CC) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
-+ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
-
- glx.o: glx.c
- $(CC) $(CFLAGS) $(GLXCFLAGS) -c glx.c
diff --git a/dev-java/swt/files/swt-4.10-manifest b/dev-java/swt/files/swt-4.10-manifest
deleted file mode 100644
index 230d33f7bf1c..000000000000
--- a/dev-java/swt/files/swt-4.10-manifest
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Fragment-Host: org.eclipse.swt; bundle-version=4.5.1
-Bundle-SymbolicName: org.eclipse.swt.gtk.linux.SWT_ARCH; singleton:=true
-Bundle-Version: 4.5
-Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=SWT_ARCH))
-Export-Package: org.eclipse.swt.internal.accessibility.gtk; x-internal:=true,
- org.eclipse.swt.internal.cairo; x-internal:=true,
- org.eclipse.swt.internal.cde; x-internal:=true,
- org.eclipse.swt.internal.gnome; x-internal:=true,
- org.eclipse.swt.internal.gtk; x-internal:=true,
- org.eclipse.swt.internal.opengl.glx; x-internal:=true
- org.eclipse.swt.internal.webkit; x-internal:=true
diff --git a/dev-java/swt/swt-4.10-r4.ebuild b/dev-java/swt/swt-4.10-r4.ebuild
deleted file mode 100644
index 9c3211738446..000000000000
--- a/dev-java/swt/swt-4.10-r4.ebuild
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-JAVA_PKG_IUSE="doc source"
-
-inherit flag-o-matic java-pkg-2 java-pkg-simple toolchain-funcs java-osgi
-
-MY_PV="${PV/_rc/RC}"
-MY_DMF="https://archive.eclipse.org/eclipse/downloads/drops4/R-${MY_PV}-201812060815"
-MY_P="${PN}-${MY_PV}"
-
-DESCRIPTION="GTK based SWT Library"
-HOMEPAGE="https://www.eclipse.org/swt/"
-SRC_URI="
- amd64? ( ${MY_DMF}/${MY_P}-gtk-linux-x86_64.zip )
- ppc64? ( ${MY_DMF}/${MY_P}-gtk-linux-ppc64le.zip )"
-
-LICENSE="CPL-1.0 LGPL-2.1 MPL-1.1"
-SLOT="4.10"
-KEYWORDS="amd64 ppc64"
-IUSE="cairo opengl webkit"
-
-BDEPEND="
- app-arch/unzip
- virtual/pkgconfig
-"
-COMMON_DEP="
- app-accessibility/at-spi2-core:2
- dev-libs/glib
- >=x11-libs/gtk+-2.6.8:2
- x11-libs/libXtst
- cairo? ( x11-libs/cairo )
- opengl? (
- virtual/glu
- virtual/opengl
- )
- webkit? (
- net-libs/webkit-gtk:4
- )"
-DEPEND="${COMMON_DEP}
- >=virtual/jdk-1.8:*[-headless-awt]
- x11-base/xorg-proto
- x11-libs/libX11
- x11-libs/libXrender
- x11-libs/libXt
- x11-libs/libXtst"
-RDEPEND="${COMMON_DEP}
- >=virtual/jre-1.8:*
- x11-libs/libX11"
-
-# JNI libraries don't need SONAME, bug #253756
-QA_SONAME='usr/lib[^/]*/libswt-[^/]+.so'
-
-JAVA_RESOURCE_DIRS="resources"
-JAVA_SRC_DIR="src"
-
-PATCHES=(
- "${FILESDIR}"/${P}-as-needed-and-flag-fixes.patch
-)
-
-src_unpack() {
- default
- unpack "./src.zip"
-}
-
-src_prepare() {
- default #780585
- java-pkg-2_src_prepare
- # .css stuff is essential at least for running net-p2p/biglybt
- unzip swt.jar 'org/eclipse/swt/internal/gtk/*.css' -d resources || die
- java-pkg_clean
-
- # Define missing g_thread_supported() to be already started.
- sed -i '1s/^/#define g_thread_supported() 1\n\n/' "${S}"/os_custom.h || die
-
- # Webext is also in the library directory
- sed -i 's|findResource([^,]\+|findResource("swt"|' \
- org/eclipse/swt/browser/WebKit.java || die
-
- mkdir src || die "mkdir failed"
- mv org src || die "moving java sources failed"
- pushd src > /dev/null || die
- find -type f ! -name '*.java' \
- | xargs \
- cp --parent -t ../resources -v \
- || die "copying resources failed"
- popd > /dev/null || die
- cp version.txt resources || die "adding version.txt failed"
-}
-
-src_compile() {
- append-cflags -fcommon # https://bugs.gentoo.org/707838
-
- local JAWTSO="libjawt.so"
- IFS=":" read -r -a ldpaths <<< $(java-config -g LDPATH)
-
- for libpath in "${ldpaths[@]}"; do
- if [[ -f "${libpath}/${JAWTSO}" ]]; then
- export AWT_LIB_PATH="${libpath}"
- break
- # this is a workaround for broken LDPATH in <=openjdk-8.292_p10 and <=dev-java/openjdk-bin-8.292_p10
- elif [[ -f "${libpath}/$(tc-arch)/${JAWTSO}" ]]; then
- export AWT_LIB_PATH="${libpath}/$(tc-arch)"
- break
- fi
- done
-
- if [[ -z "${AWT_LIB_PATH}" ]]; then
- eerror "${JAWTSO} not found in the JDK being used for compilation!"
- die "cannot build AWT library"
- fi
-
- # Fix the pointer size for AMD64
- export SWT_PTR_CFLAGS=-DJNI64
-
- # Bug #461784, g_thread_init is deprecated since glib-2.32.
- append-cflags -DNO__1g_1thread_1init
-
- local make="emake -f make_linux.mak NO_STRIP=y CC=$(tc-getCC) CXX=$(tc-getCXX)"
-
- einfo "Building AWT library"
- export SWT_JAVA_HOME="$(java-config -g JAVA_HOME)"
- ${make} make_awt AWT_LIBS="-L\$(AWT_LIB_PATH) -Wl,-rpath,\$(AWT_LIB_PATH) -ljawt \`pkg-config --libs x11\`"
-
- einfo "Building SWT library"
- ${make} make_swt
-
- einfo "Building JAVA-AT-SPI bridge"
- ${make} make_atk
-
- if use cairo ; then
- einfo "Building CAIRO support"
- ${make} make_cairo
- fi
-
- if use opengl ; then
- einfo "Building OpenGL component"
- ${make} make_glx
- fi
-
- if use webkit ; then
- einfo "Building WebKit component"
- ${make} make_webkit
- fi
-
- java-pkg-simple_src_compile
-}
-
-src_install() {
- local swtArch=${ARCH}
- use amd64 && swtArch=x86_64
-
- sed "s/SWT_ARCH/${swtArch}/" "${FILESDIR}/${PN}-${SLOT}-manifest" > "MANIFEST_TMP.MF" || die
- remove_from_manifest() {
- local subpkg=$1
- sed -i -e "/ org.eclipse.swt.internal.$subpkg; x-internal:=true,/d" "MANIFEST_TMP.MF" || die
- }
- use cairo || remove_from_manifest cairo
- use opengl || remove_from_manifest opengl.glx
- use webkit || remove_from_manifest webkit
- java-osgi_newjar-fromfile "swt.jar" "MANIFEST_TMP.MF" "Standard Widget Toolkit for GTK 2.0"
-
- java-pkg_sointo "/usr/$(get_libdir)/swt"
- java-pkg_doso *.so
-
- dodoc about.html
-}
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index 3608afaefe77..a84244056ec3 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -1,8 +1,10 @@
DIST php-8.2.29.tar.xz 12162364 BLAKE2B 5750dde1e75e0886fb583c4571f3802fc8d6ae30848fa5e423838e612b65414af05a6354896a86f35ebde292ad3b6c171c8f42cda85ea79216743194153112b9 SHA512 36d389e43a9d6bdc558f5e949f54e126c6fd4bf00da572e061e4e4c2f62ffeb292a34371486d3a64b85ab4a18678f7d84b2e3628e0ddc723a7757e90fecdbf92
DIST php-8.2.30.tar.xz 12153868 BLAKE2B 93e75dd6452a511f7c783d424bbee783fcf69044a5ce395df1064054f43668df9f3ae82bf3aec88da49d3a54604d2efa5ad1705f641659f29b4ec2840f242a0c SHA512 4026e39231551c45e0923d44d91a8a9b2614ab1cb432cf73fbb475b7d047f9fbdaa183289d7f149546b254ee1a6374ac65396272b46700d453e53bfe8af42a93
DIST php-8.2.31.tar.xz 12160520 BLAKE2B d02fc5fef89fc1a998ea9611f9ec333b6a4b62e7125eff48ee8a0851224e64f3df2fb34fb488c4e7a6e4c4834d049a493677ff53e0491792fab6b56ce2c4c522 SHA512 814ea663bf638133e940639e0be00acae8d1e6a2c5058980cbf72c71a81224be0ac6c6cb37ad141c3ab81f1064ab81523c775b38c61511c0d0be9b05dd173ecc
+DIST php-8.2.32.tar.xz 12162364 BLAKE2B 96484c84fab7041d972fc0f14ffc0b865c77b7303b69906d7d77d1b75212aff31d803d99a548a57e779214047c01108bb325ef79d7df5f897de568b56bbf61a4 SHA512 7411eb65ba5c50a8c793295fa6b635fd660c8e77586be64b25c86993080b1a31af4f2c6656d864af905d6cbaa11262eeeb620e91d24504e6e64ba5c100e07542
DIST php-8.3.26.tar.xz 12581368 BLAKE2B e47b603400f36dfcba2bde85ef64b55d95f156ca4745b7edf14f0b9fa6027158486511e95b9d8440d05321d8540f71c30fb1c2ceb601c62f02838356c5902f6d SHA512 252c0c95bb2c4d6bf03e686c205777b529aaebe52f143754b369069d7a8aa5b45e8c2addb968287d6473cee507df62729e2527607b796fb764d3f036ba89fafb
DIST php-8.3.29.tar.xz 12601944 BLAKE2B 8e730a0d22359ca646af1b91c77ff2c2da5b9d4a328148aaf9c74ddf180b5128d2e2c01e2e5971885b718269dd9a483ca58d916d8cacdf471feabb6559da975b SHA512 d5739ff7f13638c60cd7e62bad9aec831282eca7c9e9487c12ca72f4ed4494e46eb45555a19fc5eccb43d36253d2bada12611c691e0edc6dbb8cc9908d449733
DIST php-8.3.31.tar.xz 12603408 BLAKE2B b4257bd7f76b3f04e69c1c85e198c24cda0b200312b6a193cf2b23809b76616caaf2f3b375faebf29a948a4827232e534207ed4463d321a4a2d82b91c2eade10 SHA512 2341ce4061f5e654780c97145ea7bf92fa14f2d5c2ea83d38b8919ee5018c040a08c83c9b7cee97e4bba39267d412f5bf18c515f2001db1659a49449299cbeef
-DIST php-8.4.22.tar.xz 13731260 BLAKE2B 08a48d2f2f8ff9e88df244ade137cf14434ae288c4ba8f4887c263212d2ed4794f0dd5beedd0575ebe9b082355bf8aa2dbccaad08d807c4b1f80b960f0b0109b SHA512 44adb8dcc422813e92530a936e432d72e4a9328a23b40f4d2e68b471386c6048886b4810ae813f1277e47822c18645d78299c0e30fac41adbf69862222393ff4
-DIST php-8.5.7.tar.xz 14398060 BLAKE2B e19c28afeb87236ceae04df4829bd2ae337a3cb3763300e1a57b5861980928532fa18d75231a0c52d71c0bf365dc390475e3f683e609d2d87b8475b8aa89dc8f SHA512 2d4081b8684936afae946d5cc4d6714a6e40f8a25c9a286fe22190600896ab447293a0a73f58fae09d4543153134fd0b6a1131dccfc2b585406ae2a4d9aa08b7
+DIST php-8.3.32.tar.xz 12606844 BLAKE2B cf203285727e12ac8b87f6329039661c49160d5eba66a4cf176c3891846b1d58d856c44a3f912ebd5da5c7ece1d631dd586ec3b7b3778fb20bbad47dea9c5d25 SHA512 125683403ae0a300b4537a4493568e06d79cb27c57739c1c37af4b0bf869b484633247d03c4df860d5ab0aa0ccc3a06c66ff0b01b4415ff6d4f6232324c60c88
+DIST php-8.4.23.tar.xz 13741236 BLAKE2B 7463fbf61216dc18ea3cd101dafaf28b8ad59fe92b7c3249574278e8961a21c2256e3b0643c5335a7d1279e37f6c415300f0f82c98bdb766e555742dae68a360 SHA512 96a240e15f470e6386ddf5049fecacc4e007da9883bd64752a6620a96e1cf0441068cbaa946b729dd9c441d0648645f7201a78f17f91f257f9e51119b67a2b9b
+DIST php-8.5.8.tar.xz 14410156 BLAKE2B c1af28e4f56f784b882ab4c54dec8f5c24642aadfba257b59dc9c68cf362a05b245914c230bade1ad19bcdf7d9907fd444f26a6c6b2ffe08ced526dd494e4162 SHA512 9c58a121f91a23ec78834cb89b504031ba4d5d8ecb501c3de2172a315f2dad8a1dc39234e39f7b0e70c278c880a13f1eb198858fa7f1ee028701b583dbfbde28
diff --git a/dev-lang/php/files/php-8.3-iconv-testfix-01.patch b/dev-lang/php/files/php-8.3-iconv-testfix-01.patch
new file mode 100644
index 000000000000..16d87b707e8f
--- /dev/null
+++ b/dev-lang/php/files/php-8.3-iconv-testfix-01.patch
@@ -0,0 +1,59 @@
+From 26ba738e33ddd83aeba8c98dc106dd064ea4d7a5 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Wed, 1 Jul 2026 13:15:50 -0400
+Subject: [PATCH] ext/iconv/tests/bug76249.phpt: fallback for non-GNU iconv()
+
+This test fails on musl, where iconv trips over the //IGNORE suffix.
+It is not obvious that //IGNORE is required to trigger the issue in
+the first place, but since we are ensuring that a security bug is
+fixed, it is better to include it where possible.
+
+This commit updates the test to append //IGNORE only on the two GNU
+iconv implementations. Others may support it eventually, but at the
+moment, despite being part of POSIX, support is inconsistent (as
+evidenced by musl, if nothing else). In any case, we still test that
+iconv works with an invalid stream.
+---
+ ext/iconv/tests/bug76249.phpt | 24 +++++++++++++++++++-----
+ 1 file changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/ext/iconv/tests/bug76249.phpt b/ext/iconv/tests/bug76249.phpt
+index 37608ccc0447..b817a3f8285a 100644
+--- a/ext/iconv/tests/bug76249.phpt
++++ b/ext/iconv/tests/bug76249.phpt
+@@ -4,16 +4,30 @@ Bug #76249 (stream filter convert.iconv leads to infinite loop on invalid sequen
+ iconv
+ --FILE--
+ <?php
++$ignore = "";
++if (ICONV_IMPL == "libiconv" || ICONV_IMPL == "glibc") {
++ // The original bug report used "//IGNORE", and the bug itself
++ // involves the return value and errno from iconv(), so in the
++ // interest of fidelity we include the suffix on systems like the
++ // one where the bug was reported. On other systems however,
++ // despite being mentioned in POSIX 2024, the "//IGNORE" suffix is
++ // not supported consistently. Musl in particular does not support
++ // it at all, so we must omit it to avoid triggering other
++ // (unexpected) errors. In any case, it is nice to check that
++ // iconv and invalid streams do not interact badly.
++ $ignore = "//IGNORE";
++}
++
+ $fh = fopen('php://memory', 'rw');
+ fwrite($fh, "abc");
+ rewind($fh);
+-if (false === @stream_filter_append($fh, 'convert.iconv.ucs-2/utf8//IGNORE', STREAM_FILTER_READ, [])) {
+- stream_filter_append($fh, 'convert.iconv.ucs-2/utf-8//IGNORE', STREAM_FILTER_READ, []);
++if (false === @stream_filter_append($fh, "convert.iconv.ucs-2/utf8{$ignore}", STREAM_FILTER_READ, [])) {
++ stream_filter_append($fh, "convert.iconv.ucs-2/utf-8{$ignore}", STREAM_FILTER_READ, []);
+ }
+ var_dump(stream_get_contents($fh));
+ ?>
+ DONE
+---EXPECTF--
+-Warning: stream_get_contents(): iconv stream filter ("ucs-2"=>"utf%A8//IGNORE"): invalid multibyte sequence in %sbug76249.php on line %d
+-string(0) ""
++--EXPECTREGEX--
++Warning: stream_get_contents\(\): iconv stream filter \("ucs-2"=>"utf-?8(\/\/IGNORE)?"\): invalid multibyte sequence in .*bug76249\.php on line \d+
++string\(0\) ""
+ DONE
diff --git a/dev-lang/php/files/php-8.3-iconv-testfix-02.patch b/dev-lang/php/files/php-8.3-iconv-testfix-02.patch
new file mode 100644
index 000000000000..846847dd9400
--- /dev/null
+++ b/dev-lang/php/files/php-8.3-iconv-testfix-02.patch
@@ -0,0 +1,78 @@
+From e9d6b1fa4aada9b622a028981d8c71870d974b2b Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sat, 16 Nov 2024 22:55:07 -0500
+Subject: [PATCH 1/2] ext/iconv/tests/eucjp2iso2022jp.phpt: skip for "unknown"
+ iconv
+
+This test does a byte comparison of the expected ISO-2022-JP encoding
+with the result of iconv(). The ISO-2022-JP encoding, however, is
+stateful; there are many ways to arrive at a correct answer. Musl is
+known to have an inefficient encoding that causes it to fail this
+test, so we add a SKIPIF for the "unknown" iconv implementation that
+musl has.
+
+Nothing is wrong here per se, but to support the musl output (and that
+of other iconvs), an expert would need to verify it.
+---
+ ext/iconv/tests/eucjp2iso2022jp.phpt | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/ext/iconv/tests/eucjp2iso2022jp.phpt b/ext/iconv/tests/eucjp2iso2022jp.phpt
+index 6c1a8ec1214b..c3260c370f08 100644
+--- a/ext/iconv/tests/eucjp2iso2022jp.phpt
++++ b/ext/iconv/tests/eucjp2iso2022jp.phpt
+@@ -2,6 +2,16 @@
+ EUC-JP to ISO-2022-JP
+ --EXTENSIONS--
+ iconv
++--SKIPIF--
++<?php
++// ISO-2022-JP is a stateful encoding, so the right answer is not
++// unique. In particular, musl (type "unknown") is known to have an
++// inefficient encoding for it that does not agree with the expected
++// output below.
++if (ICONV_IMPL == "unknown") {
++ die("skip byte-comparison of stateful encoding with unknown iconv");
++}
++?>
+ --INI--
+ error_reporting=2039
+ --FILE--
+
+From d2f17feb1392219698ced5e4da36dff33dcd0ea3 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sat, 16 Nov 2024 23:13:42 -0500
+Subject: [PATCH 2/2] ext/iconv/tests/iconv_mime_encode.phpt: skip for
+ "unknown" iconv
+
+This test checks the output of iconv_mime_encode() with a target
+charset of ISO-2022-JP. That charset is stateful, though, and there
+are many ways to arrive at a correct answer. Musl has an inefficient
+encoding of it that causes this to fail because the actual output
+differs from (and is much longer than) the expected output. We add a
+SKIPIF for the "unknown" iconv implementation that musl has.
+---
+ ext/iconv/tests/iconv_mime_encode.phpt | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/ext/iconv/tests/iconv_mime_encode.phpt b/ext/iconv/tests/iconv_mime_encode.phpt
+index e055f53b016a..c6f41c56ad90 100644
+--- a/ext/iconv/tests/iconv_mime_encode.phpt
++++ b/ext/iconv/tests/iconv_mime_encode.phpt
+@@ -2,6 +2,16 @@
+ iconv_mime_encode()
+ --EXTENSIONS--
+ iconv
++--SKIPIF--
++<?php
++// ISO-2022-JP is a stateful encoding, so the right answer is not
++// unique. In particular, musl (type "unknown") is known to have an
++// inefficient encoding for it that does not agree with the expected
++// output below.
++if (ICONV_IMPL == "unknown") {
++ die("skip byte-comparison of stateful encoding with unknown iconv");
++}
++?>
+ --INI--
+ iconv.internal_charset=iso-8859-1
+ --FILE--
diff --git a/dev-lang/php/files/php-8.3-iconv-testfix-03.patch b/dev-lang/php/files/php-8.3-iconv-testfix-03.patch
new file mode 100644
index 000000000000..689970b2eec9
--- /dev/null
+++ b/dev-lang/php/files/php-8.3-iconv-testfix-03.patch
@@ -0,0 +1,43 @@
+From 13ac9654125e28d999cb7996ff04bc4839d0a42a Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Wed, 1 Jul 2026 18:39:44 -0400
+Subject: [PATCH] ext/iconv/tests/bug52211.phpt: use per-iconv charset names
+
+The charset names used in this test are implementation-specific, and
+in particular are not known to musl. This causes musl to fall back to
+utf8, in which the input string is not actually invalid, leading to
+a failed test. The input string is already invalid in ASCII however,
+so we solve the general problem by using ASCII as the to/from charset
+unless the ICONV_IMPL is known to support the originals.
+---
+ ext/iconv/tests/bug52211.phpt | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/ext/iconv/tests/bug52211.phpt b/ext/iconv/tests/bug52211.phpt
+index f213c764de81..fe599f8ac559 100644
+--- a/ext/iconv/tests/bug52211.phpt
++++ b/ext/iconv/tests/bug52211.phpt
+@@ -5,8 +5,22 @@ iconv
+ --FILE--
+ <?php
+
++// According to POSIX 2024, the to/from charset names are
++// implementation-defined. To keep this test true to its original
++// purpose, we retain the charsets used in bug 52211, but only when
++// the implementation is known to support them. Otherwise we default
++// both to ASCII, which should be supported everywhere (in particular
++// on musl) yet still considers the input invalid.
++$from_charset = "ASCII";
++$to_charset = "ASCII";
++
++if (ICONV_IMPL == "libiconv" || ICONV_IMPL == "glibc") {
++ $from_charset = "CP850";
++ $to_charset = "ISO-8859-1";
++}
++
+ $str = "PATHOLOGIES MÉDICO-CHIRUR. ADUL. PL";
+-$str_iconv = iconv('CP850', 'ISO-8859-1', $str );
++$str_iconv = iconv($from_charset, $to_charset, $str );
+ var_dump($str_iconv);
+
+ ?>
diff --git a/dev-lang/php/files/php-8.3-iconv-testfix-04.patch b/dev-lang/php/files/php-8.3-iconv-testfix-04.patch
new file mode 100644
index 000000000000..d60fa0e97887
--- /dev/null
+++ b/dev-lang/php/files/php-8.3-iconv-testfix-04.patch
@@ -0,0 +1,78 @@
+From 659d9779b553d2e4cfb892dbfca7d63b4f85fe9e Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Wed, 1 Jul 2026 22:55:56 -0400
+Subject: [PATCH] ext/iconv/tests/bug48147.phpt: whitelist iconvs with //IGNORE
+
+This test is for the behavior of iconv's magic "//IGNORE" suffix. The
+output it expects agrees with POSIX 2024 even when the underlying
+implementation (glibc) does not. A comment has been added to this
+effect, and two calls to urlencode() have been removed so that two
+(expected) errors are not swallowed.
+
+Afterwards, we whitelist the two iconv implementations that are known
+to support //IGNORE. While POSIX standardizes its behavior, it falls
+short of requiring implementations to support it. Musl in particular
+does not support any suffix.
+---
+ ext/iconv/tests/bug48147.phpt | 32 ++++++++++++++++++++++++++++----
+ 1 file changed, 28 insertions(+), 4 deletions(-)
+
+diff --git a/ext/iconv/tests/bug48147.phpt b/ext/iconv/tests/bug48147.phpt
+index ce304eecfb3c..434f71e517bb 100644
+--- a/ext/iconv/tests/bug48147.phpt
++++ b/ext/iconv/tests/bug48147.phpt
+@@ -2,17 +2,41 @@
+ Bug #48147 (iconv with //IGNORE cuts the string)
+ --EXTENSIONS--
+ iconv
++--SKIPIF--
++<?php
++/*
++ * POSIX 2024 specifies how the "//IGNORE" suffix should behave, but
++ * falls short of requiring implementations to support it (iconv_open
++ * is allowed to return EINVAL for a suffix it does not recognize).
++ *
++ * Many implementations still do not support it, which is OK. We
++ * whitelist the ones that are known to.
++ */
++if (ICONV_IMPL != "glibc" && ICONV_IMPL != "libiconv") {
++ die("skip iconv implementation may not support //IGNORE");
++}
++?>
+ --FILE--
+ <?php
++/*
++ * POSIX says that when //IGNORE is specified, invalid bytes followed
++ * by valid bytes "shall not be treated as an error." GNU iconv does
++ * not follow this convention, but PHP does the right thing. In the
++ * examples below, invalid bytes in the middle of the string get
++ * dropped, and a string is returned. The two examples where the
++ * problem is at the end do not qualify for the "shall not" exception
++ * because there are no VALID bytes after the error. So PHP is morally
++ * correct in those cases to return an error (false).
++ */
+ $text = "aa\xC3\xC3\xC3\xB8aa";
+ var_dump(iconv("UTF-8", "UTF-8", $text));
+ var_dump(urlencode(iconv("UTF-8", "UTF-8//IGNORE", $text)));
+ // only invalid
+-var_dump(urlencode(iconv("UTF-8", "UTF-8//IGNORE", "\xC3")));
++var_dump(iconv("UTF-8", "UTF-8//IGNORE", "\xC3"));
+ // start invalid
+ var_dump(urlencode(iconv("UTF-8", "UTF-8//IGNORE", "\xC3\xC3\xC3\xB8aa")));
+ // finish invalid
+-var_dump(urlencode(iconv("UTF-8", "UTF-8//IGNORE", "aa\xC3\xC3\xC3")));
++var_dump(iconv("UTF-8", "UTF-8//IGNORE", "aa\xC3\xC3\xC3"));
+ ?>
+ --EXPECTF--
+ Notice: iconv(): Detected an illegal character in input string in %s on line %d
+@@ -20,8 +44,8 @@ bool(false)
+ string(10) "aa%C3%B8aa"
+
+ Notice: iconv(): Detected an incomplete multibyte character in input string in %s on line %d
+-string(0) ""
++bool(false)
+ string(8) "%C3%B8aa"
+
+ Notice: iconv(): Detected an incomplete multibyte character in input string in %s on line %d
+-string(0) ""
++bool(false)
diff --git a/dev-lang/php/files/php-8.4-libgd-test-fixes.patch b/dev-lang/php/files/php-8.4-libgd-test-fixes.patch
new file mode 100644
index 000000000000..97c7e2076705
--- /dev/null
+++ b/dev-lang/php/files/php-8.4-libgd-test-fixes.patch
@@ -0,0 +1,42 @@
+From f1b08fb954d41c562103993810a5c78baf9e065e Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sun, 12 Jul 2026 19:21:54 -0400
+Subject: [PATCH] ext/gd/tests/gh19{666,739}.phpt: skip for external libgd
+
+These two are regression tests for the bundled libgd, we have to skip
+them if an external libgd is used.
+---
+ ext/gd/tests/gh19666.phpt | 4 ++++
+ ext/gd/tests/gh19739.phpt | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/ext/gd/tests/gh19666.phpt b/ext/gd/tests/gh19666.phpt
+index 2d82b9b44760..b1409946aa0a 100644
+--- a/ext/gd/tests/gh19666.phpt
++++ b/ext/gd/tests/gh19666.phpt
+@@ -2,6 +2,10 @@
+ GH-19666 (Unexpected nan value in imageconvolution)
+ --EXTENSIONS--
+ gd
++--SKIPIF--
++<?php
++ if (!GD_BUNDLED) die("skip requires bundled GD library\n");
++?>
+ --FILE--
+ <?php
+ $image = imagecreatetruecolor(180, 30);
+diff --git a/ext/gd/tests/gh19739.phpt b/ext/gd/tests/gh19739.phpt
+index 7dce387b780e..7ef73aeab67d 100644
+--- a/ext/gd/tests/gh19739.phpt
++++ b/ext/gd/tests/gh19739.phpt
+@@ -2,6 +2,10 @@
+ GH-19739 (integer overflow in imageellipse / imagefilledellipse)
+ --EXTENSIONS--
+ gd
++--SKIPIF--
++<?php
++ if (!GD_BUNDLED) die("skip requires bundled GD library\n");
++?>
+ --FILE--
+ <?php
+ $im = imagecreatetruecolor(400, 300);
diff --git a/dev-lang/php/php-8.2.29.ebuild b/dev-lang/php/php-8.2.29.ebuild
index c6a477381fec..cea37a09cde5 100644
--- a/dev-lang/php/php-8.2.29.ebuild
+++ b/dev-lang/php/php-8.2.29.ebuild
@@ -151,6 +151,10 @@ PATCHES=(
"${FILESDIR}/php-8.2.20-implicit-printf.patch"
"${FILESDIR}/php-8.2.23-fix-ub.patch"
"${FILESDIR}/php-bug75457-pcre2-backport.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-01.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-02.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-03.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-04.patch"
)
# ARM/Windows functions (bug 923335)
diff --git a/dev-lang/php/php-8.2.30.ebuild b/dev-lang/php/php-8.2.30.ebuild
index f1518217798f..280ca6daae05 100644
--- a/dev-lang/php/php-8.2.30.ebuild
+++ b/dev-lang/php/php-8.2.30.ebuild
@@ -151,6 +151,10 @@ PATCHES=(
"${FILESDIR}/php-8.2.20-implicit-printf.patch"
"${FILESDIR}/php-8.2.23-fix-ub.patch"
"${FILESDIR}/php-bug75457-pcre2-backport.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-01.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-02.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-03.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-04.patch"
)
# ARM/Windows functions (bug 923335)
diff --git a/dev-lang/php/php-8.2.31.ebuild b/dev-lang/php/php-8.2.31.ebuild
index 658bae62a2f9..8882c516fb2a 100644
--- a/dev-lang/php/php-8.2.31.ebuild
+++ b/dev-lang/php/php-8.2.31.ebuild
@@ -151,6 +151,10 @@ PATCHES=(
"${FILESDIR}/php-8.2.20-implicit-printf.patch"
"${FILESDIR}/php-8.2.23-fix-ub.patch"
"${FILESDIR}/php-bug75457-pcre2-backport.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-01.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-02.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-03.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-04.patch"
)
# ARM/Windows functions (bug 923335)
diff --git a/dev-lang/php/php-8.2.32.ebuild b/dev-lang/php/php-8.2.32.ebuild
new file mode 100644
index 000000000000..c44466eb8867
--- /dev/null
+++ b/dev-lang/php/php-8.2.32.ebuild
@@ -0,0 +1,908 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WANT_AUTOMAKE="none"
+
+inherit flag-o-matic multilib systemd autotools
+
+DESCRIPTION="The PHP language runtime engine"
+HOMEPAGE="https://www.php.net/"
+SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
+
+LICENSE="PHP-3.01
+ BSD
+ Zend-2.0
+ bcmath? ( LGPL-2.1+ )
+ fpm? ( BSD-2 )
+ gd? ( gd )
+ unicode? ( BSD-2 LGPL-2.1 )"
+
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+# We can build the following SAPIs in the given order
+SAPIS="embed cli cgi fpm apache2 phpdbg"
+
+# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
+IUSE="${IUSE}
+ ${SAPIS/cli/+cli}
+ threads"
+
+IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar
+ cdb cjk +ctype curl debug
+ enchant exif ffi +fileinfo +filter
+ +flatfile ftp gd gdbm gmp +iconv imap inifile
+ intl iodbc ipv6 +jit kerberos ldap ldap-sasl libedit lmdb
+ mhash mssql mysql mysqli nls
+ oci8-instant-client odbc +opcache +opcache-jit pcntl pdo +phar +posix
+ postgres qdbm readline selinux +session session-mm sharedmem
+ +simplexml snmp soap sockets sodium spell sqlite ssl
+ sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode
+ valgrind webp +xml xmlreader xmlwriter xpm xslt zip zlib"
+
+# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
+# The Oracle instant client provides its own incompatible ldap library.
+REQUIRED_USE="
+ || ( cli cgi fpm apache2 embed phpdbg )
+ avif? ( gd zlib )
+ cli? ( ^^ ( readline libedit ) )
+ !cli? ( ?? ( readline libedit ) )
+ truetype? ( gd zlib )
+ webp? ( gd zlib )
+ cjk? ( gd zlib )
+ exif? ( gd zlib )
+ xpm? ( gd zlib )
+ gd? ( zlib )
+ simplexml? ( xml )
+ soap? ( xml )
+ xmlreader? ( xml )
+ xmlwriter? ( xml )
+ xslt? ( xml )
+ ldap-sasl? ( ldap )
+ oci8-instant-client? ( !ldap )
+ qdbm? ( !gdbm )
+ session-mm? ( session !threads )
+ mysql? ( || ( mysqli pdo ) )
+ mssql? ( pdo )
+ test? ( cli )
+"
+
+RESTRICT="!test? ( test )"
+
+# The supported (that is, autodetected) versions of BDB are listed in
+# the ./configure script. Other versions *work*, but we need to stick to
+# the ones that can be detected to avoid a repeat of bug #564824.
+COMMON_DEPEND="
+ >=app-eselect/eselect-php-0.9.7[apache2?,fpm?]
+ >=dev-libs/libpcre2-10.30[jit?,unicode]
+ virtual/libcrypt:=
+ fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) selinux? ( sys-libs/libselinux ) )
+ apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
+ argon2? ( app-crypt/argon2:= )
+ avif? ( media-libs/libavif:= )
+ berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) )
+ bzip2? ( app-arch/bzip2:0= )
+ cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
+ curl? ( >=net-misc/curl-7.29.0 )
+ enchant? ( app-text/enchant:2 )
+ ffi? ( >=dev-libs/libffi-3.0.11:= )
+ gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= )
+ gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
+ gmp? ( dev-libs/gmp:0= )
+ iconv? ( virtual/libiconv )
+ imap? ( net-libs/c-client[kerberos=,ssl=] )
+ intl? ( dev-libs/icu:= )
+ kerberos? ( virtual/krb5 )
+ ldap? ( >=net-nds/openldap-1.2.11:= )
+ ldap-sasl? ( dev-libs/cyrus-sasl )
+ libedit? ( dev-libs/libedit )
+ lmdb? ( dev-db/lmdb:= )
+ mssql? ( dev-db/freetds[mssql] )
+ nls? ( sys-devel/gettext )
+ oci8-instant-client? ( dev-db/oracle-instantclient[sdk] )
+ odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
+ postgres? ( >=dev-db/postgresql-9.1:* )
+ qdbm? ( dev-db/qdbm )
+ readline? ( sys-libs/readline:0= )
+ session-mm? ( dev-libs/mm )
+ snmp? ( >=net-analyzer/net-snmp-5.2 )
+ sodium? ( dev-libs/libsodium:=[-minimal(-)] )
+ spell? ( >=app-text/aspell-0.50 )
+ sqlite? ( >=dev-db/sqlite-3.7.6.3 )
+ ssl? ( >=dev-libs/openssl-1.0.2:0= )
+ tidy? ( app-text/htmltidy )
+ tokyocabinet? ( dev-db/tokyocabinet )
+ truetype? ( =media-libs/freetype-2* )
+ unicode? ( dev-libs/oniguruma:= )
+ valgrind? ( dev-debug/valgrind )
+ webp? ( media-libs/libwebp:0= )
+ xml? ( >=dev-libs/libxml2-2.9.0:= )
+ xpm? ( x11-libs/libXpm )
+ xslt? ( dev-libs/libxslt )
+ zip? ( >=dev-libs/libzip-1.2.0:= )
+ zlib? ( >=virtual/zlib-1.2.0.4:= )
+"
+
+IDEPEND=">=app-eselect/eselect-php-0.9.7[apache2?,fpm?]"
+
+RDEPEND="${COMMON_DEPEND}
+ virtual/mta
+ fpm? (
+ selinux? ( sec-policy/selinux-phpfpm )
+ systemd? ( sys-apps/systemd ) )"
+
+# Bison isn't actually needed when building from a release tarball
+# However, the configure script will warn if it's absent or if you
+# have an incompatible version installed. See bug 593278.
+DEPEND="${COMMON_DEPEND}
+ app-arch/xz-utils
+ >=sys-devel/bison-3.0.1"
+
+BDEPEND="virtual/pkgconfig"
+
+PHP_MV="$(ver_cut 1)"
+
+PATCHES=(
+ "${FILESDIR}/php-iodbc-header-location.patch"
+ "${FILESDIR}/php-capstone-optional.patch"
+ "${FILESDIR}/php-8.2.8-openssl-tests.patch"
+ "${FILESDIR}/php-8.2.20-implicit-printf.patch"
+ "${FILESDIR}/php-8.2.23-fix-ub.patch"
+ "${FILESDIR}/php-bug75457-pcre2-backport.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-01.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-02.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-03.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-04.patch"
+)
+
+# ARM/Windows functions (bug 923335)
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __crc32d
+ _controlfp
+ _controlfp_s
+)
+
+# Functions from alternate iconv implementations (bug 925268)
+QA_CONFIG_IMPL_DECL_SKIP+=(
+ iconv_ccs_init
+ cstoccsid
+)
+
+php_install_ini() {
+ local phpsapi="${1}"
+
+ # work out where we are installing the ini file
+ php_set_ini_dir "${phpsapi}"
+
+ # Always install the production INI file, bug 611214.
+ local phpinisrc="php.ini-production-${phpsapi}"
+ cp php.ini-production "${phpinisrc}" || die
+
+ # default to /tmp for save_path, bug #282768
+ sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
+
+ # Set the extension dir
+ sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
+ -i "${phpinisrc}" || die
+
+ # Set the include path to point to where we want to find PEAR packages
+ sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
+
+ insinto "${PHP_INI_DIR#"${EPREFIX}"}"
+ newins "${phpinisrc}" php.ini
+
+ elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#"${EPREFIX}"}"
+ elog
+
+ dodir "${PHP_EXT_INI_DIR#"${EPREFIX}"}"
+ dodir "${PHP_EXT_INI_DIR_ACTIVE#"${EPREFIX}"}"
+
+ if use opcache; then
+ elog "Adding opcache to $PHP_EXT_INI_DIR"
+ echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
+ "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
+ dosym "../ext/opcache.ini" \
+ "${PHP_EXT_INI_DIR_ACTIVE#"${EPREFIX}"}/opcache.ini"
+ fi
+
+ # SAPI-specific handling
+ if [[ "${sapi}" == "fpm" ]] ; then
+ einfo "Installing FPM config files php-fpm.conf and www.conf"
+ insinto "${PHP_INI_DIR#"${EPREFIX}"}"
+ doins sapi/fpm/php-fpm.conf
+ insinto "${PHP_INI_DIR#"${EPREFIX}"}/fpm.d"
+ doins sapi/fpm/www.conf
+ fi
+
+ dodoc php.ini-{development,production}
+}
+
+php_set_ini_dir() {
+ PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
+ PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
+ PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
+}
+
+src_prepare() {
+ default
+
+ # In php-7.x, the FPM pool configuration files have been split off
+ # of the main config. By default the pool config files go in
+ # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
+ # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
+ # we'll install the pool configuration file "www.conf" there.
+ php_set_ini_dir fpm
+ sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
+ sapi/fpm/php-fpm.conf.in \
+ || die 'failed to move the include directory in php-fpm.conf'
+
+ # Emulate buildconf to support cross-compilation
+ rm -fr aclocal.m4 autom4te.cache config.cache \
+ configure main/php_config.h.in || die
+ eautoconf --force
+ eautoheader
+
+ # missing skipif; fixed upstream already
+ rm sapi/cgi/tests/005.phpt || die
+
+ # These three get BORKED on no-ipv6 systems,
+ #
+ # https://github.com/php/php-src/pull/11651
+ #
+ rm ext/sockets/tests/mcast_ipv6_recv.phpt \
+ ext/sockets/tests/mcast_ipv6_recv_limited.phpt \
+ ext/sockets/tests/mcast_ipv6_send.phpt \
+ || die
+
+ # fails in a network sandbox,
+ #
+ # https://github.com/php/php-src/issues/11662
+ #
+ rm ext/sockets/tests/bug63000.phpt || die
+
+ # expected output needs to be updated,
+ #
+ # https://github.com/php/php-src/pull/11648
+ #
+ rm ext/dba/tests/dba_tcadb.phpt || die
+
+ # Two IMAP tests missing SKIPIFs,
+ #
+ # https://github.com/php/php-src/pull/11654
+ #
+ rm ext/imap/tests/imap_mutf7_to_utf8.phpt \
+ ext/imap/tests/imap_utf8_to_mutf7_basic.phpt \
+ || die
+
+ # broken upstream with icu-73.x,
+ #
+ # https://github.com/php/php-src/issues/11128
+ #
+ rm ext/intl/tests/calendar_clear_variation1.phpt || die
+
+ # overly sensitive to INI values; fixes sent upstream:
+ #
+ # https://github.com/php/php-src/pull/11631
+ #
+ rm ext/session/tests/{bug74514,bug74936,gh7787}.phpt || die
+
+ # This is sensitive to the current "nice" level:
+ #
+ # https://github.com/php/php-src/issues/11630
+ #
+ rm ext/standard/tests/general_functions/proc_nice_basic.phpt || die
+
+ # Tests ignoring the "-n" flag we pass to run-tests.php,
+ #
+ # https://github.com/php/php-src/pull/11669
+ #
+ rm ext/standard/tests/file/bug60120.phpt \
+ ext/standard/tests/general_functions/proc_open_null.phpt \
+ ext/standard/tests/general_functions/proc_open_redirect.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets1.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets2.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets3.phpt \
+ ext/standard/tests/ini_info/php_ini_loaded_file.phpt \
+ sapi/cli/tests/016.phpt \
+ sapi/cli/tests/023.phpt \
+ sapi/cli/tests/bug65275.phpt \
+ sapi/cli/tests/bug74600.phpt \
+ sapi/cli/tests/bug78323.phpt \
+ || die
+
+ # Same TEST_PHP_EXTRA_ARGS (-n) issue with this one, but it's
+ # already been fixed upstream.
+ rm sapi/cli/tests/017.phpt || die
+
+ # Most Oracle tests are borked,
+ #
+ # * https://github.com/php/php-src/issues/11804
+ # * https://github.com/php/php-src/pull/11820
+ # * https://github.com/php/php-src/issues/11819
+ #
+ rm ext/oci8/tests/*.phpt || die
+
+ # https://github.com/php/php-src/issues/12801
+ rm ext/pcre/tests/gh11374.phpt || die
+
+ # This is a memory usage test with hard-coded limits. Whenever the
+ # limits are surpassed... they get increased... but in the meantime,
+ # the tests fail. This is not really a test that end users should
+ # be running pre-install, in my opinion. Bug 927461.
+ rm ext/fileinfo/tests/bug78987.phpt || die
+
+ # glibc-2.39 compatibility, fixed upstream in
+ # https://github.com/php/php-src/pull/14097
+ rm ext/standard/tests/strings/setlocale_variation3.phpt || die
+
+ # The expected warnings aren't triggered in this test because we
+ # define session.save_path on the CLI:
+ #
+ # https://github.com/php/php-src/issues/14368
+ #
+ rm ext/session/tests/gh13856.phpt || die
+
+ # Bug 935382, fixed eventually by
+ #
+ # - https://github.com/php/php-src/pull/14788
+ # - https://github.com/php/php-src/pull/14814
+ #
+ rm ext/standard/tests/strings/chunk_split_variation1_32bit.phpt || die
+ rm ext/standard/tests/strings/wordwrap_memory_limit.phpt || die
+
+ # Bug 935379, not yet fixed upstream but looks harmless (ordering
+ # of keys isn't guaranteed AFAICS):
+ #
+ # - https://github.com/php/php-src/issues/14786
+ #
+ rm ext/dba/tests/dba_gdbm.phpt || die
+
+ # https://github.com/php/php-src/pull/14439
+ rm ext/openssl/tests/bug74341.phpt || die
+
+ # Test for https://github.com/php/php-src/issues/16390 relies
+ # on the inifile handler to be present, so we have to skip
+ # this test in case the inifile USE flag is _not_ set.
+ if ! use inifile ; then
+ rm ext/dba/tests/gh16390.phpt || die
+ fi
+
+ # Test fails on curl 8.17+, originally fixed upstream, but not
+ # backported to 8.2 (yet).
+ rm ext/curl/tests/curl_setopt_ssl.phpt || die
+
+ # bug 977402
+ rm ext/standard/tests/file/fdatasync.phpt \
+ ext/standard/tests/file/fsync.phpt \
+ || die
+}
+
+src_configure() {
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+ addpredict /var/lib/net-snmp/mib_indexes #nowarn
+
+ # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
+ filter-lto
+
+ PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
+
+ # Don't allow ./configure to detect and use an existing version
+ # of PHP; this can lead to all sorts of weird unpredictability
+ # as in bug 900210.
+ export ac_cv_prog_PHP=""
+
+ # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
+ # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
+ local our_conf=(
+ --prefix="${PHP_DESTDIR}"
+ --mandir="${PHP_DESTDIR}/man"
+ --infodir="${PHP_DESTDIR}/info"
+ --libdir="${PHP_DESTDIR}/lib"
+ --with-libdir="$(get_libdir)"
+ --localstatedir="${EPREFIX}/var"
+ --without-pear
+ --without-valgrind
+ --with-external-libcrypt
+ $(use_enable threads zts)
+ )
+
+ # The slotted man/info pages will be missed by the default list of
+ # docompress paths.
+ docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info"
+
+ our_conf+=(
+ $(use_with apparmor fpm-apparmor)
+ $(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(use_with avif)
+ $(use_enable bcmath)
+ $(use_with bzip2 bz2 "${EPREFIX}/usr")
+ $(use_enable calendar)
+ $(use_enable ctype)
+ $(use_with curl)
+ $(use_enable xml dom)
+ $(use_with enchant)
+ $(use_enable exif)
+ $(use_with ffi)
+ $(use_enable fileinfo)
+ $(use_enable filter)
+ $(use_enable ftp)
+ $(use_with nls gettext "${EPREFIX}/usr")
+ $(use_with gmp gmp "${EPREFIX}/usr")
+ $(use_with mhash mhash "${EPREFIX}/usr")
+ $(use_with iconv iconv \
+ $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
+ $(use_enable intl)
+ $(use_enable ipv6)
+ $(use_with kerberos)
+ $(use_with xml libxml)
+ $(use_enable unicode mbstring)
+ $(use_with ssl openssl)
+ $(use_enable pcntl)
+ $(use_enable phar)
+ $(use_enable pdo)
+ $(use_enable opcache)
+ $(use_enable opcache-jit)
+ $(use_with postgres pgsql "${EPREFIX}/usr")
+ $(use_enable posix)
+ $(use_with selinux fpm-selinux)
+ $(use_with spell pspell "${EPREFIX}/usr")
+ $(use_enable simplexml)
+ $(use_enable sharedmem shmop)
+ $(use_with snmp snmp "${EPREFIX}/usr")
+ $(use_enable soap)
+ $(use_enable sockets)
+ $(use_with sodium)
+ $(use_with sqlite sqlite3)
+ $(use_enable sysvipc sysvmsg)
+ $(use_enable sysvipc sysvsem)
+ $(use_enable sysvipc sysvshm)
+ $(use_with tidy tidy "${EPREFIX}/usr")
+ $(use_enable tokenizer)
+ $(use_enable xml)
+ $(use_enable xmlreader)
+ $(use_enable xmlwriter)
+ $(use_with xslt xsl)
+ $(use_with zip)
+ $(use_with zlib zlib "${EPREFIX}/usr")
+ $(use_enable debug)
+ $(use_with valgrind)
+ )
+
+ # DBA support
+ if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
+ || use qdbm || use lmdb || use tokyocabinet ; then
+ our_conf+=( "--enable-dba" )
+ fi
+
+ # DBA drivers support
+ our_conf+=(
+ $(use_with cdb)
+ $(use_with berkdb db4 "${EPREFIX}/usr")
+ $(use_enable flatfile)
+ $(use_with gdbm gdbm "${EPREFIX}/usr")
+ $(use_enable inifile)
+ $(use_with qdbm qdbm "${EPREFIX}/usr")
+ $(use_with tokyocabinet tcadb "${EPREFIX}/usr")
+ $(use_with lmdb lmdb "${EPREFIX}/usr")
+ )
+
+ # Support for the GD graphics library
+ our_conf+=(
+ $(use_with truetype freetype)
+ $(use_enable cjk gd-jis-conv)
+ $(use_with gd jpeg)
+ $(use_with xpm)
+ $(use_with webp)
+ )
+ # enable gd last, so configure can pick up the previous settings
+ our_conf+=( $(use_enable gd) )
+
+ # IMAP support
+ if use imap ; then
+ our_conf+=(
+ $(use_with imap imap "${EPREFIX}/usr")
+ $(use_with ssl imap-ssl "${EPREFIX}/usr")
+ )
+ fi
+
+ # LDAP support
+ if use ldap ; then
+ our_conf+=(
+ $(use_with ldap ldap "${EPREFIX}/usr")
+ $(use_with ldap-sasl)
+ )
+ fi
+
+ # MySQL support
+ our_conf+=( $(use_with mysqli) )
+
+ local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ if use mysql || use mysqli ; then
+ our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
+ fi
+
+ # ODBC support
+ if use odbc && use iodbc ; then
+ our_conf+=(
+ --without-unixODBC
+ --with-iodbc
+ $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr")
+ )
+ elif use odbc ; then
+ our_conf+=(
+ --with-unixODBC="${EPREFIX}/usr"
+ --without-iodbc
+ $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr")
+ )
+ else
+ our_conf+=(
+ --without-unixODBC
+ --without-iodbc
+ --without-pdo-odbc
+ )
+ fi
+
+ # Oracle support
+ our_conf+=( $(use_with oci8-instant-client oci8) )
+
+ # PDO support
+ if use pdo ; then
+ our_conf+=(
+ $(use_with mssql pdo-dblib "${EPREFIX}/usr")
+ $(use_with mysql pdo-mysql "mysqlnd")
+ $(use_with postgres pdo-pgsql)
+ $(use_with sqlite pdo-sqlite)
+ $(use_with oci8-instant-client pdo-oci)
+ )
+ fi
+
+ # readline/libedit support
+ our_conf+=(
+ $(use_with readline readline "${EPREFIX}/usr")
+ $(use_with libedit)
+ )
+
+ # Session support
+ if use session ; then
+ our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
+ else
+ our_conf+=( $(use_enable session) )
+ fi
+
+ # Use pic for shared modules such as apache2's mod_php
+ our_conf+=( --with-pic )
+
+ # we use the system copy of pcre
+ # --with-external-pcre affects ext/pcre
+ our_conf+=(
+ --with-external-pcre
+ $(use_with jit pcre-jit)
+ )
+
+ # Catch CFLAGS problems
+ # Fixes bug #14067.
+ # Changed order to run it in reverse for bug #32022 and #12021.
+ replace-cpu-flags "k6*" "i586"
+
+ # Cache the ./configure test results between SAPIs.
+ our_conf+=( --cache-file="${T}/config.cache" )
+
+ # Support user-passed configuration parameters
+ our_conf+=( ${EXTRA_ECONF:-} )
+
+ # Support the Apache2 extras, they must be set globally for all
+ # SAPIs to work correctly, especially for external PHP extensions
+
+ # Create separate build trees for each enabled SAPI. The upstream
+ # build system doesn't do this, but we have to do it to use a
+ # different php.ini for each SAPI (see --with-config-file-path and
+ # --with-config-file-scan-dir below). The path winds up define'd
+ # in main/build-defs.h which is included in main/php.h which is
+ # included by basically everything; so, avoiding a rebuild after
+ # changing it is not an easy job.
+ local one_sapi
+ local sapi
+ mkdir "${WORKDIR}/sapis-build" || die
+ for one_sapi in $SAPIS ; do
+ use "${one_sapi}" || continue
+ php_set_ini_dir "${one_sapi}"
+
+ # The BUILD_DIR variable is used to determine where to output
+ # the files that autotools creates. This was all originally
+ # based on the autotools-utils eclass.
+ BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
+ cp -a "${S}" "${BUILD_DIR}" || die
+
+ local sapi_conf=(
+ --with-config-file-path="${PHP_INI_DIR}"
+ --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
+ )
+
+ for sapi in $SAPIS ; do
+ case "$sapi" in
+ cli|cgi|embed|fpm|phpdbg)
+ if [[ "${one_sapi}" == "${sapi}" ]] ; then
+ sapi_conf+=( "--enable-${sapi}" )
+ if [[ "fpm" == "${sapi}" ]] ; then
+ sapi_conf+=(
+ $(use_with acl fpm-acl)
+ $(use_with systemd fpm-systemd)
+ )
+ fi
+ else
+ sapi_conf+=( "--disable-${sapi}" )
+ fi
+ ;;
+
+ apache2)
+ if [[ "${one_sapi}" == "${sapi}" ]] ; then
+ sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
+ else
+ sapi_conf+=( --without-apxs2 )
+ fi
+ ;;
+ esac
+ done
+
+ # Construct the $myeconfargs array by concatenating $our_conf
+ # (the common args) and $sapi_conf (the SAPI-specific args).
+ local myeconfargs=( "${our_conf[@]}" )
+ myeconfargs+=( "${sapi_conf[@]}" )
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+ einfo "Running econf in ${BUILD_DIR}"
+ econf "${myeconfargs[@]}"
+ popd > /dev/null || die
+ done
+}
+
+src_compile() {
+ # snmp seems to run during src_compile, too (bug #324739)
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+ addpredict /var/lib/net-snmp/mib_indexes #nowarn
+
+ if use oci8-instant-client && use kerberos && use imap && use phar; then
+ # A conspiracy takes place when the first three of these flags
+ # are set together, causing the newly-built "php" to open
+ # /dev/urandom with mode rw when it starts. That's not actually
+ # a problem... unless you also have USE=phar, which runs that
+ # "php" to build some phar thingy in src_compile(). Later in
+ # src_test(), portage (at least) sets "addpredict /" so the
+ # problem does not repeat.
+ addpredict /dev/urandom #nowarn
+ fi
+
+ local sapi
+ for sapi in ${SAPIS} ; do
+ use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}"
+ done
+}
+
+src_install() {
+ # see bug #324739 for what happens when we don't have that
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+
+ # grab the first SAPI that got built and install common files from there
+ local first_sapi="", sapi=""
+ for sapi in $SAPIS ; do
+ if use $sapi ; then
+ first_sapi=$sapi
+ break
+ fi
+ done
+
+ # Makefile forgets to create this before trying to write to it...
+ dodir "${PHP_DESTDIR#"${EPREFIX}"}/bin"
+
+ # Install php environment (without any sapis)
+ cd "${WORKDIR}/sapis-build/$first_sapi" || die
+ emake INSTALL_ROOT="${D}" \
+ install-build install-headers install-programs
+
+ local extension_dir="$("${ED}/${PHP_DESTDIR#"${EPREFIX}"}/bin/php-config" --extension-dir)"
+
+ # Create the directory where we'll put version-specific php scripts
+ keepdir "/usr/share/php${PHP_MV}"
+
+ local file=""
+ local sapi_list=""
+
+ for sapi in ${SAPIS}; do
+ if use "${sapi}" ; then
+ einfo "Installing SAPI: ${sapi}"
+ cd "${WORKDIR}/sapis-build/${sapi}" || die
+
+ if [[ "${sapi}" == "apache2" ]] ; then
+ # We're specifically not using emake install-sapi as libtool
+ # may cause unnecessary relink failures (see bug #351266)
+ insinto "${PHP_DESTDIR#"${EPREFIX}"}/apache2/"
+ newins ".libs/libphp$(get_libname)" \
+ "libphp${PHP_MV}$(get_libname)"
+ keepdir "/usr/$(get_libdir)/apache2/modules"
+ else
+ # needed each time, php_install_ini would reset it
+ local dest="${PHP_DESTDIR#"${EPREFIX}"}"
+ into "${dest}"
+ case "$sapi" in
+ cli)
+ source="sapi/cli/php"
+ # Install the "phar" archive utility.
+ if use phar ; then
+ emake INSTALL_ROOT="${D}" install-pharcmd
+ dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
+ fi
+ ;;
+ cgi)
+ source="sapi/cgi/php-cgi"
+ ;;
+ fpm)
+ source="sapi/fpm/php-fpm"
+ ;;
+ embed)
+ source="libs/libphp$(get_libname)"
+ ;;
+ phpdbg)
+ source="sapi/phpdbg/phpdbg"
+ ;;
+ *)
+ die "unhandled sapi in src_install"
+ ;;
+ esac
+
+ if [[ "${source}" == *"$(get_libname)" ]]; then
+ dolib.so "${source}"
+ else
+ dobin "${source}"
+ local name="$(basename ${source})"
+ dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
+ fi
+ fi
+
+ php_install_ini "${sapi}"
+
+ # construct correct SAPI string for php-config
+ # thanks to ferringb for the bash voodoo
+ if [[ "${sapi}" == "apache2" ]]; then
+ sapi_list="${sapi_list:+${sapi_list} }apache2handler"
+ else
+ sapi_list="${sapi_list:+${sapi_list} }${sapi}"
+ fi
+ fi
+ done
+
+ # Installing opcache module
+ if use opcache ; then
+ into "${PHP_DESTDIR#"${EPREFIX}"}"
+ dolib.so "modules/opcache$(get_libname)"
+ fi
+
+ # Install env.d files
+ newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
+ sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
+ sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
+
+ # set php-config variable correctly (bug #278439)
+ sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
+ "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
+
+ if use fpm ; then
+ if use systemd; then
+ systemd_newunit "${FILESDIR}/php-fpm_at.service" \
+ "php-fpm@${SLOT}.service"
+ else
+ systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
+ "php-fpm@${SLOT}.service"
+ fi
+ fi
+}
+
+src_test() {
+ export TEST_PHP_EXECUTABLE="${WORKDIR}/sapis-build/cli/sapi/cli/php"
+
+ # Sometimes when the sub-php launches a sub-sub-php, it uses these.
+ # Without an "-n" in all instances, the *live* php.ini can be loaded,
+ # pulling in *live* zend extensions. And those can be incompatible
+ # with the thing we just built.
+ export TEST_PHP_EXTRA_ARGS="-n"
+
+ if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
+ export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
+ fi
+
+ if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
+ export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
+ fi
+
+ # The sendmail override prevents ext/imap/tests/bug77020.phpt from
+ # actually trying to send mail, and will be fixed upstream soon:
+ #
+ # https://github.com/php/php-src/issues/11629
+ #
+ # The IO capture tests need to be disabled because they fail when
+ # std{in,out,err} are redirected (as they are within portage).
+ #
+ # One -n applies to the top-level "php", while the other applies
+ # to any sub-php that get invoked by the test runner.
+ SKIP_IO_CAPTURE_TESTS=1 SKIP_PERF_SENSITIVE=1 REPORT_EXIT_STATUS=1 \
+ "${TEST_PHP_EXECUTABLE}" -n \
+ "${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \
+ -d "session.save_path=${T}" \
+ -d "sendmail_path=echo >/dev/null" \
+ || die "tests failed"
+}
+
+pkg_postinst() {
+ # Output some general info to the user
+ if use apache2 ; then
+ elog
+ elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
+ elog "your apache2 command. OpenRC users can append that string to"
+ elog "APACHE2_OPTS in /etc/conf.d/apache2."
+ elog
+ elog "The apache module configuration file 70_mod_php.conf is"
+ elog "provided (and maintained) by eselect-php."
+ elog
+ fi
+
+ # Create the symlinks for php
+ local m
+ for m in ${SAPIS}; do
+ [[ ${m} == 'embed' ]] && continue;
+ if use $m ; then
+ local ci=$(eselect php show $m)
+ if [[ -z $ci ]]; then
+ eselect php set $m php${SLOT} || die
+ einfo "Switched ${m} to use php:${SLOT}"
+ einfo
+ elif [[ $ci != "php${SLOT}" ]] ; then
+ elog "To switch $m to use php:${SLOT}, run"
+ elog " eselect php set $m php${SLOT}"
+ elog
+ fi
+ fi
+ done
+
+ # Remove dead symlinks for SAPIs that were just disabled. For
+ # example, if the user has the cgi SAPI enabled, then he has an
+ # eselect-php symlink for it. If he later reinstalls PHP with
+ # USE="-cgi", that symlink will break. This call to eselect is
+ # supposed to remove that dead link per bug 572436.
+ eselect php cleanup || die
+
+ if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
+ elog "To build extensions for this version of PHP, you will need to"
+ elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
+ elog
+ fi
+
+ # Warn about the removal of PHP_INI_VERSION if the user has it set.
+ if [[ -n "${PHP_INI_VERSION}" ]]; then
+ ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
+ ewarn 'remove it from your configuration at your convenience. See'
+ ewarn
+ ewarn ' https://bugs.gentoo.org/611214'
+ ewarn
+ ewarn 'for more information.'
+ fi
+
+ elog "For details on how version slotting works, please see"
+ elog "the wiki:"
+ elog
+ elog " https://wiki.gentoo.org/wiki/PHP"
+ elog
+}
+
+pkg_postrm() {
+ # This serves two purposes. First, if we have just removed the last
+ # installed version of PHP, then this will remove any dead symlinks
+ # belonging to eselect-php. Second, if a user upgrades slots from
+ # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
+ # his existing symlinks to point to the new 7.0 installation. The
+ # latter is bug 432962.
+ #
+ # Note: the eselect-php package may not be installed at this point,
+ # so we can't die() if this command fails.
+ eselect php cleanup
+}
diff --git a/dev-lang/php/php-8.3.26.ebuild b/dev-lang/php/php-8.3.26.ebuild
index 3c9690b0d176..f5877f188fb4 100644
--- a/dev-lang/php/php-8.3.26.ebuild
+++ b/dev-lang/php/php-8.3.26.ebuild
@@ -135,6 +135,10 @@ BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}/php-8.3.9-gd-cachevars.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-01.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-02.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-03.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-04.patch"
)
PHP_MV="$(ver_cut 1)"
diff --git a/dev-lang/php/php-8.3.29.ebuild b/dev-lang/php/php-8.3.29.ebuild
index 7092fdfed5d0..f205c6602303 100644
--- a/dev-lang/php/php-8.3.29.ebuild
+++ b/dev-lang/php/php-8.3.29.ebuild
@@ -135,6 +135,10 @@ BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}/php-8.3.9-gd-cachevars.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-01.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-02.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-03.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-04.patch"
)
PHP_MV="$(ver_cut 1)"
diff --git a/dev-lang/php/php-8.3.31.ebuild b/dev-lang/php/php-8.3.31.ebuild
index cd31fc04928f..1076d098663e 100644
--- a/dev-lang/php/php-8.3.31.ebuild
+++ b/dev-lang/php/php-8.3.31.ebuild
@@ -137,6 +137,10 @@ PATCHES=(
"${FILESDIR}/php-8.3.9-gd-cachevars.patch"
"${FILESDIR}/php-8.3.31-libgd-test-fixes.patch"
"${FILESDIR}/php-8.3.31-ipv6-printing-test-fix.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-01.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-02.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-03.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-04.patch"
)
PHP_MV="$(ver_cut 1)"
diff --git a/dev-lang/php/php-8.5.7.ebuild b/dev-lang/php/php-8.3.32.ebuild
index af826ac7c944..b886eb5566a6 100644
--- a/dev-lang/php/php-8.5.7.ebuild
+++ b/dev-lang/php/php-8.3.32.ebuild
@@ -5,7 +5,7 @@ EAPI=8
WANT_AUTOMAKE="none"
POSTGRES_COMPAT=( {15..18} )
-inherit flag-o-matic multilib postgres systemd
+inherit autotools flag-o-matic multilib postgres systemd
DESCRIPTION="The PHP language runtime engine"
HOMEPAGE="https://www.php.net/"
@@ -21,24 +21,21 @@ LICENSE="PHP-3.01
SLOT="$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
-# We can build the following SAPIs in the given order.
-ALL_SAPIS=( embed cli cgi fpm apache2 phpdbg )
+# We can build the following SAPIs in the given order
+SAPIS="embed cli cgi fpm apache2 phpdbg"
-# Will populate this in src_configure() when USE is known.
-ENABLED_SAPIS=()
-
-# SAPIs and SAPI-specific USE flags (cli SAPI is default on).
+# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
IUSE="${IUSE}
- ${ALL_SAPIS[@]/cli/+cli}
+ ${SAPIS/cli/+cli}
threads"
IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar
capstone cdb +ctype curl debug
enchant exif ffi +fileinfo +filter
- +flatfile ftp gd gdbm gmp +iconv inifile
- intl iodbc ipv6 +jit jpeg ldap ldap-sasl libedit lmdb
+ +flatfile ftp gd gdbm gmp +iconv imap inifile
+ intl iodbc ipv6 +jit jpeg kerberos ldap ldap-sasl libedit lmdb
mhash mssql mysql mysqli nls
- odbc +opcache-jit pcntl pdo +phar +posix postgres png
+ odbc +opcache +opcache-jit pcntl pdo +phar +posix postgres png
qdbm readline selinux +session session-mm sharedmem
+simplexml snmp soap sockets sodium spell sqlite ssl
sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode
@@ -89,7 +86,9 @@ COMMON_DEPEND="
gdbm? ( sys-libs/gdbm:0= )
gmp? ( dev-libs/gmp:0= )
iconv? ( virtual/libiconv )
+ imap? ( net-libs/c-client[kerberos=,ssl=] )
intl? ( dev-libs/icu:= )
+ kerberos? ( virtual/krb5 )
ldap? ( net-nds/openldap:= )
ldap-sasl? ( dev-libs/cyrus-sasl )
libedit? ( dev-libs/libedit )
@@ -135,7 +134,13 @@ DEPEND="${COMMON_DEPEND}
BDEPEND="virtual/pkgconfig"
PATCHES=(
+ "${FILESDIR}/php-8.3.9-gd-cachevars.patch"
+ "${FILESDIR}/php-8.3.31-libgd-test-fixes.patch"
"${FILESDIR}/php-8.3.31-ipv6-printing-test-fix.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-01.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-02.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-03.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-04.patch"
)
PHP_MV="$(ver_cut 1)"
@@ -181,6 +186,14 @@ php_install_ini() {
dodir "${PHP_EXT_INI_DIR#"${EPREFIX}"}"
dodir "${PHP_EXT_INI_DIR_ACTIVE#"${EPREFIX}"}"
+ if use opcache; then
+ elog "Adding opcache to $PHP_EXT_INI_DIR"
+ echo "zend_extension = opcache.so" >> \
+ "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
+ dosym "../ext/opcache.ini" \
+ "${PHP_EXT_INI_DIR_ACTIVE#"${EPREFIX}"}/opcache.ini"
+ fi
+
# SAPI-specific handling
if [[ "${sapi}" == "fpm" ]] ; then
einfo "Installing FPM config files php-fpm.conf and www.conf"
@@ -206,7 +219,7 @@ pkg_setup() {
src_prepare() {
default
- # In php-8.x, the FPM pool configuration files have been split off
+ # In php-7.x, the FPM pool configuration files have been split off
# of the main config. By default the pool config files go in
# e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
# include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
@@ -240,6 +253,12 @@ src_prepare() {
sapi/cli/tests/bug78323.phpt \
|| die
+ # This is a memory usage test with hard-coded limits. Whenever the
+ # limits are surpassed... they get increased... but in the meantime,
+ # the tests fail. This is not really a test that end users should
+ # be running pre-install, in my opinion. Bug 927461.
+ rm ext/fileinfo/tests/bug78987.phpt || die
+
# Most tests failing with an external libgd have been fixed,
# but there are a few stragglers:
#
@@ -255,26 +274,27 @@ src_prepare() {
ext/gd/tests/bug73272.phpt \
|| die
- # Test requires USE=cdb, so we have to skip it when
- # the cdb USE flag is unset
- #
- # * https://github.com/php/php-src/issues/19706
- #
- if ! use cdb; then
- rm ext/dba/tests/gh19706.phpt
- fi
+ # One-off, somebody forgot to update a version constant
+ rm ext/reflection/tests/ReflectionZendExtension.phpt || die
+ # Fixed upstream, but not in 8.3.30.
+ rm ext/openssl/tests/bug{74796,80770}.phpt || die
+ rm ext/openssl/tests/{sni_server.phpt,sni_server_key_cert.phpt} || die
+
+ # Test fails on curl 8.17+, originally fixed upstream, but not
+ # backported to 8.2 (yet).
+ rm ext/curl/tests/curl_setopt_ssl.phpt || die
+
+ # bug 977402
+ rm ext/standard/tests/file/fdatasync.phpt \
+ ext/standard/tests/file/fsync.phpt \
+ ext/standard/tests/general_functions/proc_nice_basic.phpt \
+ || die
+
+ eautoconf --force
}
src_configure() {
- # Loop through the list of all SAPIs, and consult the user's USE
- # flags to build the list of enabled ones. This avoids having to
- # loop and check over and over again.
- local sapi
- for sapi in "${ALL_SAPIS[@]}" ; do
- use "${sapi}" && ENABLED_SAPIS+=( "${sapi}" )
- done
-
addpredict /usr/share/snmp/mibs/.index #nowarn
addpredict /var/lib/net-snmp/mib_indexes #nowarn
@@ -289,15 +309,9 @@ src_configure() {
export ac_cv_prog_PHP=""
# The php-fpm config file wants localstatedir to be ${EPREFIX}/var
- # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. We
- # use --sbindir=$bindir for backwards compatibility: in the past we
- # installed php-fpm to $bindir by hand, but now the upstream build
- # system puts it in $sbindir. If nothing else, eselect-php expects
- # it in $bindir.
+ # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
local our_conf=(
--prefix="${PHP_DESTDIR}"
- --datadir="${PHP_DESTDIR}/share"
- --sbindir="${PHP_DESTDIR}/bin"
--mandir="${PHP_DESTDIR}/man"
--infodir="${PHP_DESTDIR}/info"
--libdir="${PHP_DESTDIR}/lib"
@@ -336,16 +350,19 @@ src_configure() {
$(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
$(use_enable intl)
$(use_enable ipv6)
+ $(use_with kerberos)
$(use_with xml libxml)
$(use_enable unicode mbstring)
$(use_with ssl openssl)
$(use_enable pcntl)
$(use_enable phar)
$(use_enable pdo)
+ $(use_enable opcache)
$(use_enable opcache-jit)
$(use_with postgres pgsql "$("${PG_CONFIG:-true}" --bindir)/..")
$(use_enable posix)
$(use_with selinux fpm-selinux)
+ $(use_with spell pspell "${EPREFIX}/usr")
$(use_enable simplexml)
$(use_enable sharedmem shmop)
$(use_with snmp snmp "${EPREFIX}/usr")
@@ -412,6 +429,14 @@ src_configure() {
php_cv_lib_gd_gdImageCreateFromXpm=$(usex xpm)
)
+ # IMAP support
+ if use imap ; then
+ our_conf+=(
+ $(use_with imap imap "${EPREFIX}/usr")
+ $(use_with ssl imap-ssl "${EPREFIX}/usr")
+ )
+ fi
+
# LDAP support
if use ldap ; then
our_conf+=(
@@ -461,8 +486,7 @@ src_configure() {
)
fi
- # PDO support, sqlite is the only one enabled by default.
- our_conf+=( --without-pdo-sqlite )
+ # PDO support
if use pdo ; then
our_conf+=(
$(use_with mssql pdo-dblib "${EPREFIX}/usr")
@@ -523,7 +547,8 @@ src_configure() {
local one_sapi
local sapi
mkdir "${WORKDIR}/sapis-build" || die
- for one_sapi in "${ENABLED_SAPIS[@]}" ; do
+ for one_sapi in $SAPIS ; do
+ use "${one_sapi}" || continue
php_set_ini_dir "${one_sapi}"
# The BUILD_DIR variable is used to determine where to output
@@ -537,9 +562,7 @@ src_configure() {
--with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
)
- # We loop through *all* SAPIs here because we want to
- # --disable-foo any SAPIs that aren't enabled.
- for sapi in "${ALL_SAPIS[@]}" ; do
+ for sapi in $SAPIS ; do
case "$sapi" in
cli|cgi|embed|fpm|phpdbg)
if [[ "${one_sapi}" == "${sapi}" ]] ; then
@@ -583,8 +606,8 @@ src_compile() {
addpredict /var/lib/net-snmp/mib_indexes #nowarn
local sapi
- for sapi in "${ENABLED_SAPIS[@]}" ; do
- emake -C "${WORKDIR}/sapis-build/${sapi}"
+ for sapi in ${SAPIS} ; do
+ use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}"
done
}
@@ -592,77 +615,87 @@ src_install() {
# see bug #324739 for what happens when we don't have that
addpredict /usr/share/snmp/mibs/.index #nowarn
- # The current SAPI name as we loop through them.
- local sapi
-
- for sapi in "${ENABLED_SAPIS[@]}" ; do
- # Grab the first SAPI that got built, and install common
- # (SAPI-independent) targets from there.
- cd "${WORKDIR}/sapis-build/${sapi}" || die
- emake INSTALL_ROOT="${D}" install-build install-programs
- break
+ # grab the first SAPI that got built and install common files from there
+ local first_sapi="", sapi=""
+ for sapi in $SAPIS ; do
+ if use $sapi ; then
+ first_sapi=$sapi
+ break
+ fi
done
- # Where we'll put the versioned php scripts
- keepdir "/usr/share/php${PHP_MV}"
+ # Install SAPI-independent targets
+ cd "${WORKDIR}/sapis-build/$first_sapi" || die
+ emake INSTALL_ROOT="${D}" \
+ install-build install-headers install-programs
+ use opcache && emake INSTALL_ROOT="${D}" install-modules
- for sapi in "${ENABLED_SAPIS[@]}" ; do
- einfo "Installing SAPI: ${sapi}"
- cd "${WORKDIR}/sapis-build/${sapi}" || die
- php_install_ini "${sapi}"
+ # Create the directory where we'll put version-specific php scripts
+ keepdir "/usr/share/php${PHP_MV}"
- # Required in each iteration because php_install_ini() resets it.
- local dest="${PHP_DESTDIR#"${EPREFIX}"}"
- into "${dest}"
+ local sapi_list=""
- # The headers target includes SAPI-specific headers, so we
- # need to install them for each SAPI even though most of
- # the headers are repeated.
- emake INSTALL_ROOT="${D}" install-headers
+ for sapi in ${SAPIS}; do
+ if use "${sapi}" ; then
+ einfo "Installing SAPI: ${sapi}"
+ cd "${WORKDIR}/sapis-build/${sapi}" || die
- case "${sapi}" in
- apache2)
- # We're intentionally not using emake install-sapi as
- # libtool may cause unnecessary relink failures (bug
- # #351266)
+ if [[ "${sapi}" == "apache2" ]] ; then
+ # We're specifically not using emake install-sapi as libtool
+ # may cause unnecessary relink failures (see bug #351266)
insinto "${PHP_DESTDIR#"${EPREFIX}"}/apache2/"
newins ".libs/libphp$(get_libname)" \
"libphp${PHP_MV}$(get_libname)"
keepdir "/usr/$(get_libdir)/apache2/modules"
- ;;
- embed)
- dolib.so "libs/libphp$(get_libname)"
- ;;
- cli)
- emake INSTALL_ROOT="${D}" install-cli
- dosym "..${dest#/usr}/bin/php" "/usr/bin/php${SLOT}"
+ else
+ # needed each time, php_install_ini would reset it
+ local dest="${PHP_DESTDIR#"${EPREFIX}"}"
+ into "${dest}"
+ case "$sapi" in
+ cli)
+ source="sapi/cli/php"
+ # Install the "phar" archive utility.
+ if use phar ; then
+ emake INSTALL_ROOT="${D}" install-pharcmd
+ dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
+ fi
+ ;;
+ cgi)
+ source="sapi/cgi/php-cgi"
+ ;;
+ fpm)
+ source="sapi/fpm/php-fpm"
+ ;;
+ embed)
+ source="libs/libphp$(get_libname)"
+ ;;
+ phpdbg)
+ source="sapi/phpdbg/phpdbg"
+ ;;
+ *)
+ die "unhandled sapi in src_install"
+ ;;
+ esac
- # Install the "phar" archive utility.
- if use phar ; then
- emake INSTALL_ROOT="${D}" install-pharcmd
- dosym "..${dest#/usr}/bin/phar" \
- "/usr/bin/phar${SLOT}"
+ if [[ "${source}" == *"$(get_libname)" ]]; then
+ dolib.so "${source}"
+ else
+ dobin "${source}"
+ local name="$(basename ${source})"
+ dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
fi
- ;;
- cgi)
- emake INSTALL_ROOT="${D}" install-cgi
- dosym "..${dest#/usr}/bin/php-cgi" \
- "/usr/bin/php-cgi${SLOT}"
- ;;
- fpm)
- emake INSTALL_ROOT="${D}" install-fpm
- dosym "..${dest#/usr}/bin/php-fpm" \
- "/usr/bin/php-fpm${SLOT}"
- ;;
- phpdbg)
- emake INSTALL_ROOT="${D}" install-phpdbg
- dosym "..${dest#/usr}/bin/phpdbg" \
- "/usr/bin/phpdbg${SLOT}"
- ;;
- *)
- die "unhandled sapi in src_install"
- ;;
- esac
+ fi
+
+ php_install_ini "${sapi}"
+
+ # construct correct SAPI string for php-config
+ # thanks to ferringb for the bash voodoo
+ if [[ "${sapi}" == "apache2" ]]; then
+ sapi_list="${sapi_list:+${sapi_list} }apache2handler"
+ else
+ sapi_list="${sapi_list:+${sapi_list} }${sapi}"
+ fi
+ fi
done
# Install env.d files
@@ -671,8 +704,6 @@ src_install() {
sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
# set php-config variable correctly (bug #278439)
- local sapi_list="${ENABLED_SAPIS[@]}"
- sapi_list="${sapi_list/apache2/apache2handler}"
sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
"${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
@@ -731,18 +762,19 @@ pkg_postinst() {
# Create the symlinks for php
local m
- for m in "${ENABLED_SAPIS[@]}" ; do
+ for m in ${SAPIS}; do
[[ ${m} == 'embed' ]] && continue;
-
- local ci=$(eselect php show $m)
- if [[ -z $ci ]]; then
- eselect php set $m php${SLOT} || die
- einfo "Switched ${m} to use php:${SLOT}"
- einfo
- elif [[ $ci != "php${SLOT}" ]] ; then
- elog "To switch $m to use php:${SLOT}, run"
- elog " eselect php set $m php${SLOT}"
- elog
+ if use $m ; then
+ local ci=$(eselect php show $m)
+ if [[ -z $ci ]]; then
+ eselect php set $m php${SLOT} || die
+ einfo "Switched ${m} to use php:${SLOT}"
+ einfo
+ elif [[ $ci != "php${SLOT}" ]] ; then
+ elog "To switch $m to use php:${SLOT}, run"
+ elog " eselect php set $m php${SLOT}"
+ elog
+ fi
fi
done
diff --git a/dev-lang/php/php-8.4.22.ebuild b/dev-lang/php/php-8.4.23.ebuild
index 8aa62a66d0ff..e2e2d6edee7d 100644
--- a/dev-lang/php/php-8.4.22.ebuild
+++ b/dev-lang/php/php-8.4.23.ebuild
@@ -136,6 +136,11 @@ BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}/php-8.3.31-ipv6-printing-test-fix.patch"
+ "${FILESDIR}/php-8.4-libgd-test-fixes.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-01.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-02.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-03.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-04.patch"
)
PHP_MV="$(ver_cut 1)"
@@ -708,6 +713,12 @@ src_install() {
"php-fpm@${SLOT}.service"
fi
fi
+
+ # Delete empty /var/run and /var/log directories.
+ # See bug #977105
+ if use fpm ; then
+ rmdir "${D}/var/log" "${D}/var/run" || die
+ fi
}
src_test() {
diff --git a/dev-lang/php/php-8.5.7-r1.ebuild b/dev-lang/php/php-8.5.8.ebuild
index 18b5b61a1702..b15b0ef4d8a6 100644
--- a/dev-lang/php/php-8.5.7-r1.ebuild
+++ b/dev-lang/php/php-8.5.8.ebuild
@@ -137,6 +137,11 @@ BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}/php-8.3.31-ipv6-printing-test-fix.patch"
+ "${FILESDIR}/php-8.4-libgd-test-fixes.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-01.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-02.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-03.patch"
+ "${FILESDIR}/php-8.3-iconv-testfix-04.patch"
)
PHP_MV="$(ver_cut 1)"
@@ -707,6 +712,12 @@ src_install() {
"php-fpm@${SLOT}.service"
fi
fi
+
+ # Delete empty /var/run and /var/log directories.
+ # See bug #977105
+ if use fpm ; then
+ rmdir "${D}/var/log" "${D}/var/run" || die
+ fi
}
src_test() {
diff --git a/dev-libs/amdgpu-pro-opencl/amdgpu-pro-opencl-20.40.1147286.ebuild b/dev-libs/amdgpu-pro-opencl/amdgpu-pro-opencl-20.40.1147286.ebuild
index 4c69674212fb..b6c7ccd52c01 100644
--- a/dev-libs/amdgpu-pro-opencl/amdgpu-pro-opencl-20.40.1147286.ebuild
+++ b/dev-libs/amdgpu-pro-opencl/amdgpu-pro-opencl-20.40.1147286.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -44,7 +44,7 @@ src_unpack() {
local patchlevel=$(ver_cut 3)
cd "${S}" || die
unpack_deb "${S}/libdrm-amdgpu-common_${ids_ver}-${patchlevel}_all.deb"
- multilib_parallel_foreach_abi multilib_src_unpack
+ multilib_foreach_abi multilib_src_unpack
}
multilib_src_unpack() {
diff --git a/dev-libs/msgpack/Manifest b/dev-libs/msgpack/Manifest
index 097d363b011f..2825966b474b 100644
--- a/dev-libs/msgpack/Manifest
+++ b/dev-libs/msgpack/Manifest
@@ -1,3 +1,2 @@
-DIST msgpack-c-5.0.0.tar.gz 69275 BLAKE2B 9c4ebc60387028cba04d5a8f4d97ca3cf6caa3db93fa7da1a90089d63cd58b36a7fb387b4fd5410d0c422719c1aed6d479418d3cbc011b609afb49cf89c4d0e3 SHA512 f61f19c7dcb5ef2a94cd3fb84e9b090e236caa922f590496e6455bd49a3d001021b55d0f28cea3ce3c35558bedb64f2f932c0e107fb15e6efc6855b99cbe4de6
DIST msgpack-c-6.0.0.tar.gz 69341 BLAKE2B e5f4f99266e568e7df46064803f869874559b766d32a3eb61f722b610753dd20eb755657eab305079ce0c3c6798848d6511b56d9e60cfedab6fa809cb2f1cb2f SHA512 77a2a3c984e04fcda298ae34571b6826f1d4f6e53b5f7166992269421ae3153b986ed69ba0360347920047e38f6941680bc9e38563ec79f15591bf8d66cd7978
DIST msgpack-c-7.0.1.tar.gz 70469 BLAKE2B 1cec8847b5100b3d215516911ccc5baf99a3dee90b66bddbcc7624525e51e68ba206b345789cf49a1aa922d73d827771b56033d81df680c01681d05ba6f38497 SHA512 a0ea9139a3cd5dc798c825a12ce2bfb27da74b28f86ffe5066e46e0264198c00b417737b26a9e48e632768dab671c00bde830bc3e2f8dba8c4a076c4cb6503d5
diff --git a/dev-libs/msgpack/msgpack-5.0.0.ebuild b/dev-libs/msgpack/msgpack-5.0.0.ebuild
deleted file mode 100644
index 61c77da8263b..000000000000
--- a/dev-libs/msgpack/msgpack-5.0.0.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake-multilib
-
-MY_PN="${PN}-c"
-MY_P="${MY_PN}-${PV}"
-
-DESCRIPTION="MessagePack is a binary-based efficient data interchange format"
-HOMEPAGE="https://msgpack.org/ https://github.com/msgpack/msgpack-c/"
-SRC_URI="https://github.com/${PN}/${PN}-c/releases/download/c-${PV}/${MY_P}.tar.gz"
-
-LICENSE="Boost-1.0"
-SLOT="0/2"
-KEYWORDS="amd64 ~arm arm64 ~riscv x86 ~x64-macos"
-IUSE="doc examples test"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="doc? ( app-text/doxygen[dot] )
- test? (
- dev-cpp/gtest[${MULTILIB_USEDEP}]
- virtual/zlib:=[${MULTILIB_USEDEP}]
- )"
-
-S="${WORKDIR}"/${MY_P}
-
-multilib_src_configure() {
- local mycmakeargs=(
- -DMSGPACK_BUILD_EXAMPLES=OFF
- -DMSGPACK_BUILD_TESTS="$(usex test)"
- )
-
- cmake_src_configure
-}
-
-multilib_src_compile() {
- cmake_src_compile
-
- if multilib_is_native_abi && use doc; then
- cmake_build doxygen
- fi
-}
-
-multilib_src_install() {
- if multilib_is_native_abi; then
- if use doc; then
- local HTML_DOCS=( "${BUILD_DIR}"/doc_c/html/. )
- fi
-
- if use examples; then
- docinto examples
- dodoc -r "${S}"/example/.
- docompress -x /usr/share/doc/${PF}/examples
- fi
- fi
-
- cmake_src_install
-}
diff --git a/dev-libs/msgpack/msgpack-6.0.0-r1.ebuild b/dev-libs/msgpack/msgpack-6.0.0-r1.ebuild
index 8224a5d54516..fae785d4f329 100644
--- a/dev-libs/msgpack/msgpack-6.0.0-r1.ebuild
+++ b/dev-libs/msgpack/msgpack-6.0.0-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
@@ -11,6 +11,7 @@ MY_P="${MY_PN}-${PV}"
DESCRIPTION="MessagePack is a binary-based efficient data interchange format"
HOMEPAGE="https://msgpack.org/ https://github.com/msgpack/msgpack-c/"
SRC_URI="https://github.com/${PN}/${PN}-c/releases/download/c-${PV}/${MY_P}.tar.gz"
+S="${WORKDIR}"/${MY_P}
LICENSE="Boost-1.0"
# Need the -c as a one-off (can drop on next soname bump) as the library rename
@@ -29,8 +30,6 @@ BDEPEND="doc? ( app-text/doxygen[dot] )
virtual/zlib:=[${MULTILIB_USEDEP}]
)"
-S="${WORKDIR}"/${MY_P}
-
multilib_src_configure() {
local mycmakeargs=(
-DMSGPACK_BUILD_EXAMPLES=OFF
diff --git a/dev-libs/msgpack/msgpack-7.0.1.ebuild b/dev-libs/msgpack/msgpack-7.0.1.ebuild
index 0ffb36445823..99c366582ec1 100644
--- a/dev-libs/msgpack/msgpack-7.0.1.ebuild
+++ b/dev-libs/msgpack/msgpack-7.0.1.ebuild
@@ -11,6 +11,7 @@ MY_P="${MY_PN}-${PV}"
DESCRIPTION="MessagePack is a binary-based efficient data interchange format"
HOMEPAGE="https://msgpack.org/ https://github.com/msgpack/msgpack-c/"
SRC_URI="https://github.com/${PN}/${PN}-c/releases/download/c-${PV}/${MY_P}.tar.gz"
+S="${WORKDIR}"/${MY_P}
LICENSE="Boost-1.0"
# Need the -c as a one-off (can drop on next soname bump) as the library rename
@@ -29,7 +30,11 @@ BDEPEND="doc? ( app-text/doxygen[dot] )
virtual/zlib:=[${MULTILIB_USEDEP}]
)"
-S="${WORKDIR}"/${MY_P}
+src_prepare() {
+ # Avoid cmake 3.5 deprecation warning
+ rm example/cmake/CMakeLists.txt || die
+ cmake_src_prepare
+}
multilib_src_configure() {
local mycmakeargs=(
diff --git a/dev-libs/uriparser/uriparser-1.0.2.ebuild b/dev-libs/uriparser/uriparser-1.0.2.ebuild
index 603d94651f2c..100ce8b7346e 100644
--- a/dev-libs/uriparser/uriparser-1.0.2.ebuild
+++ b/dev-libs/uriparser/uriparser-1.0.2.ebuild
@@ -12,7 +12,7 @@ SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.bz2"
LICENSE="test? ( LGPL-2.1+ ) BSD"
SLOT="0"
KEYWORDS="amd64 arm arm64 ppc ~ppc64 ~riscv ~sparc x86"
-IUSE="+doc qt6 test unicode" # +doc to address warning RequiredUseDefaults
+IUSE="doc qt6 test unicode"
REQUIRED_USE="qt6? ( doc ) test? ( unicode )"
RESTRICT="!test? ( test )"
diff --git a/dev-python/asgiref/Manifest b/dev-python/asgiref/Manifest
index 03e68c421116..e2c1334d2728 100644
--- a/dev-python/asgiref/Manifest
+++ b/dev-python/asgiref/Manifest
@@ -1 +1,2 @@
DIST asgiref-3.11.1.tar.gz 38550 BLAKE2B 0741e7eb098adb54a72e9e364b60f898368348050dbc56c0d7d8af6b0dc20f3dc5f0761645e922948f885d1939aae4a874f100732479425d63df6f32153fbfce SHA512 f41977ac7a07af7b7c2630b50df30ea4dbbe6b2e6157e9064e3440e342297b5e0c3776648f29e9f8eb95de04d2486872eb2f3e6734b9695073c76f8abaf4053a
+DIST asgiref-3.12.1.tar.gz 42378 BLAKE2B 0e825068e755eb408fddc2abbfe8f8d884b18398087edfa4e9b807fb6774596e2b38248d757b6398019d24cb1751c3eb707bae0491d1cd7f5c4f059800856019 SHA512 21cea091580c0595bffae0fd92a81c18404318d8b7a6597032f23a42e1fda7b94c64c1dfa6ad0034839479a1246f55d5aa02aadcdd2d00df9d415027d2a120ff
diff --git a/dev-python/asgiref/asgiref-3.12.1.ebuild b/dev-python/asgiref/asgiref-3.12.1.ebuild
new file mode 100644
index 000000000000..084cbf2813db
--- /dev/null
+++ b/dev-python/asgiref/asgiref-3.12.1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 2020-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="ASGI utilities (successor to WSGI)"
+HOMEPAGE="
+ https://asgi.readthedocs.io/en/latest/
+ https://github.com/django/asgiref/
+ https://pypi.org/project/asgiref/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
diff --git a/dev-python/bashate/bashate-2.1.1.ebuild b/dev-python/bashate/bashate-2.1.1.ebuild
index a201db4f6fd1..e68185dae39d 100644
--- a/dev-python/bashate/bashate-2.1.1.ebuild
+++ b/dev-python/bashate/bashate-2.1.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
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 4a7900b08b57..c34b89b8468a 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -3,3 +3,4 @@ DIST boto3-1.43.36.gh.tar.gz 1169288 BLAKE2B c316bf8bc804c7c7a70eed0b01a66d7cf8f
DIST boto3-1.43.40.gh.tar.gz 1175361 BLAKE2B cb24a2dd76debf1b3b2d759d020b2cf17248db20044b06e0c191821170644f4762997a527b8e5c401305f5b0c725d1269d610c9cb1aa2bb776d894f70b09f3ac SHA512 eb7d0218051abddd74e544d8eaa4e83cdd2e9ef305d059c165c926ade12a795ae196eefbaa2b64176fe26a1bf20419d775670fccc4fda485c93197d10efcbcf1
DIST boto3-1.43.46.gh.tar.gz 1180600 BLAKE2B b27ffe984aade7d1f1b0a4c66204acecd5216cf5ccd66c40ed18015c48103c1a9a8c68ea39e5ddc971f6fdeaa0bcf4c39cdd9c252494f1650ea0f431644f4148 SHA512 447256677ce2943450877d7e08dc3c9bc2dc6da284d68c7a43ef25c6445acf135b5b26bf5ede80bd4d6fde48181bf6e5898aadda84e3190caad176280c313a31
DIST boto3-1.43.47.gh.tar.gz 1181255 BLAKE2B 9ecbe5f8f8720df1b5f9359aded4d708c25078703ca38763720068ba1135ade97f12bb288bc83850a72a14a56fbb5b58cbbd41c7160ba04c9e35ea6f47963f9f SHA512 d33f8e155195169727996dfbbe84a7d51ec1c65730853d61e21a952a0acbc7b5cb2c02ac61530a3da83dfd952ee423ffda62544723fe04ccd367a97ceed2e36c
+DIST boto3-1.43.48.gh.tar.gz 1182113 BLAKE2B 8485ed17dc4abb15648962d35264738d274e808f63cfe86c33e69462601f591f12ad3409e0e640c0ba394211b50a058154f628a3e2bd7c7bfe4223fd89a6921c SHA512 2b35c4b13cf36d93f1d74936e03acf38dc7939a9e509330c6af3e866c755d90b3c1eb95c4fbd153120eb8fce5d6a88eac0ff7a121812bad411b452fa74d3c300
diff --git a/dev-python/boto3/boto3-1.43.48.ebuild b/dev-python/boto3/boto3-1.43.48.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.48.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 bde2d104ae9d..c7c285eedabb 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -3,3 +3,4 @@ DIST botocore-1.43.36.gh.tar.gz 16601718 BLAKE2B b4643995a2c173c9df865923d6912e2
DIST botocore-1.43.40.gh.tar.gz 16621912 BLAKE2B 87339ac693df7e8753b8a7463a93aea57f24005c48c6d5b0276307928704893f315e1b7c671d9a91340899bd8bff8846f7afa23eca4dbfaa03f54a3f07b2fa43 SHA512 49257c431950a63d34c137b2b3ed1bb642cfbdc98351dab2cb2dfdaae6f6e88ecb11c74d89d9ec52ad6b558e9d94fa6bc5da13c5a0e67ad441decf1df516e888
DIST botocore-1.43.46.gh.tar.gz 16680698 BLAKE2B cbb2a15145d8fd7d4021538774b21bdb3adfc95c0e9f91a5970b1cb1fc03f5453ab0b6315d27c70b846ea12a2fc8442eccebd04e357d22589cddf5e39fa251dd SHA512 a37e10b54383ad6a7fc1a764c8f565c127eac81e989197335b5bc3ca57b736cbcb36635c070d6d2cc48a06fafdb7c88319630d2c22b3b4349efb406438ba2a50
DIST botocore-1.43.47.gh.tar.gz 16683434 BLAKE2B ff7b769b782fd8c94e3faeaffa095f0a659b31afbe271619a698d18b2804c2d38e91f94f8d561fbedae08bf6461d4b48cee09a25e96f8d532a48a408499c14b3 SHA512 12f33f16dcc43b60904b1ec7f1307a7a45072f4cdafe3b9a6b4c4859009c7cd1b434a76a6c661e7b1d79c67a82743440ff57d07ee3fe5b3bf0ef8a980ad943e8
+DIST botocore-1.43.48.gh.tar.gz 16688909 BLAKE2B 18765fa54b970c5792bed052d910faa1179b8813000da14da41c72735c1a91f86286222b1614fd6b70d6793216e4f35017d42007b9c3a18c92ae03803c5854ed SHA512 560bcbb47f8de85de29bbcd359a01f314eaea8a38298e31f6efdc43b17fb307c10aabe7dfd19866a9fb37b4df42aff1e77f173c105d1c3a46e0117d1b40b5d40
diff --git a/dev-python/botocore/botocore-1.43.48.ebuild b/dev-python/botocore/botocore-1.43.48.ebuild
new file mode 100644
index 000000000000..a3a161f78545
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.48.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/construct/construct-2.10.70.ebuild b/dev-python/construct/construct-2.10.70.ebuild
index 589656d9ce40..81217fdff02e 100644
--- a/dev-python/construct/construct-2.10.70.ebuild
+++ b/dev-python/construct/construct-2.10.70.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
@@ -34,6 +34,7 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
EPYTEST_IGNORE=(
diff --git a/dev-python/dogpile-cache/dogpile-cache-1.5.0.ebuild b/dev-python/dogpile-cache/dogpile-cache-1.5.0.ebuild
index 6db5d1838a49..9acb2016de18 100644
--- a/dev-python/dogpile-cache/dogpile-cache-1.5.0.ebuild
+++ b/dev-python/dogpile-cache/dogpile-cache-1.5.0.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/dev-python/extras/extras-1.0.0-r2.ebuild b/dev-python/extras/extras-1.0.0-r2.ebuild
index ee0bbeb0979c..afea5eb9c002 100644
--- a/dev-python/extras/extras-1.0.0-r2.ebuild
+++ b/dev-python/extras/extras-1.0.0-r2.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
@@ -27,3 +27,9 @@ BDEPEND="
"
distutils_enable_tests unittest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e 's:assertEquals:assertEqual:' extras/tests/test_*.py || die
+}
diff --git a/dev-python/faker/Manifest b/dev-python/faker/Manifest
index 848176511d7a..177de3ccac8b 100644
--- a/dev-python/faker/Manifest
+++ b/dev-python/faker/Manifest
@@ -1,3 +1,4 @@
DIST faker-40.23.0.tar.gz 1972975 BLAKE2B bd31c81933c72a1cb367e764331295656e5b92f8b2aab19ee15bbf41a5c9cadae504e76068ee3882b90f13be9a323131e4d1b2af224f9462121acdbf9c6b5988 SHA512 734a4e51073596f6ba8b46cea54257e32f5f1567c21c44f15d82e5eff19a8209a07dd130767d57c02626d95e17cd517ee3c0aec3fc4682761b56e10c25058165
DIST faker-40.27.0.tar.gz 2018361 BLAKE2B 0a2caa035f137738669b57c50a79209f3c3dfedd0fd077992c2290d3cbde4fca3605d797630327cf82afac50f592cb972f10622832483ed45e7d18cd796906a2 SHA512 33734d76f291e6b36b3551201b6055c515d06d943ec1aaeeba739d38d4709849a99af785e1c49a5473ac12fc58d43114a5493a46de52a0d56861dbe5c84c9b0f
DIST faker-40.28.1.tar.gz 2022717 BLAKE2B a677249f4144ae6c123b438bae2e7d10c8e7faff839fe7371fe4c7d6fdbe61f0d70a4e90c0cc12448f857afb5aec1d4a424cd9ac3f998f5b78d5ff942aaf136d SHA512 3b0c86a85e4772a10b8995df39af498878d2961e4caa5bda61ef3a2f88e26dc1c3f97781f714e46ef67b0dece68ebfb37390379c06f5768a2914f074c7254d92
+DIST faker-40.31.0.tar.gz 2024136 BLAKE2B f3c1256c9d03d6ec918a849fb720b9bf18e8c177babc422896b174effac242b3c979092a084e7d290b718b7f2f9caaa5040479b62dd5d5cde2ac8c4e7ea14cc8 SHA512 aca52d229f21e80b41b94a95986ea1f5f96bbcfe42e3e9a6b197b44a95b0b6b6ef43fac7be7189a9afa8bd11fd28b6735ee321da37a1d74b222ae62f0c419ffb
diff --git a/dev-python/faker/faker-40.31.0.ebuild b/dev-python/faker/faker-40.31.0.ebuild
new file mode 100644
index 000000000000..125fe3904e57
--- /dev/null
+++ b/dev-python/faker/faker-40.31.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=${PN^}
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python package that generates fake data for you"
+HOMEPAGE="
+ https://github.com/joke2k/faker/
+ https://pypi.org/project/Faker/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ !dev-ruby/faker
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP},tiff]
+ dev-python/validators[${PYTHON_USEDEP}]
+ )
+"
+
+# note: tests are flaky with xdist
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" )
+distutils_enable_tests pytest
+
+python_test() {
+ epytest
+ epytest --exclusive-faker-session tests/pytest/session_overrides
+}
diff --git a/dev-python/httpx2/Manifest b/dev-python/httpx2/Manifest
index 6d832149447f..efa09e893ff7 100644
--- a/dev-python/httpx2/Manifest
+++ b/dev-python/httpx2/Manifest
@@ -1,2 +1,3 @@
DIST httpx2-2.4.0.gh.tar.gz 2049043 BLAKE2B ec36c399853c4264bfb8247b770f6ddddecab3de150e75659455820fed1d41758326201684c1ec4adaa4a2e5451fceeba58b4ef0210aed7978e285b750ccf806 SHA512 f6033c1032faa078cb954fc9107a3c34ad46a6ab71ef426048f64147b94bd1737ab80447e5bcceec7c3147fd9ccfdf1b58dbaac5d3b9ab8b9bbb46f9e28617ab
DIST httpx2-2.5.0.gh.tar.gz 2053138 BLAKE2B 8d436c215dcb47664c41f0b286bfd614e9eef08161a3c534a40bac5e59d5fe57ec51f87ead1498965d13ad41c4939b3a93b2a053ac2a73d0927593aa8cb61a2a SHA512 45cfadee3c884843e595eb8cffb0887fbee98c069d94c1e5c2498e7ac8c90b414c7d4fff2e8ed4a03589b56b605566674f2dd20e22738aa92812795b50c287f3
+DIST httpx2-2.7.0.gh.tar.gz 2084293 BLAKE2B 82a2ba5d9ea378ecd345e2f44e83a231e52c6a4551c854d2719387abc5a6b03da16fa8c99b731773ee73bbd7212eaa0843bab586edf0938751f0e545b7d170c5 SHA512 4badec86b0e5a4bf0c0974168e65ab24033598f414ea57af24d63c33d5c4700637de3a443cb552cf87f33c6aad3ed17fe498a7ed061d96bde0fe8c22073f3fb2
diff --git a/dev-python/httpx2/httpx2-2.7.0.ebuild b/dev-python/httpx2/httpx2-2.7.0.ebuild
new file mode 100644
index 000000000000..91015cb37a30
--- /dev/null
+++ b/dev-python/httpx2/httpx2-2.7.0.ebuild
@@ -0,0 +1,107 @@
+# Copyright 2026 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
+
+# This package combines httpx2 and httpcore2 (because of exact version pin).
+DESCRIPTION="The next generation HTTP client (Pydantic fork)"
+HOMEPAGE="
+ https://pypi.org/project/httpx2/
+ https://pypi.org/project/httpcore2/
+ https://github.com/pydantic/httpx2/
+"
+SRC_URI="
+ https://github.com/pydantic/httpx2/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/anyio-4.10[${PYTHON_USEDEP}]
+ >=dev-python/idna-3.18[${PYTHON_USEDEP}]
+ >=dev-python/h11-0.16[${PYTHON_USEDEP}]
+ >=dev-python/truststore-0.10[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+ ' 3.12)
+ cli? (
+ >=dev-python/click-8.4[${PYTHON_USEDEP}]
+ =dev-python/pygments-2*[${PYTHON_USEDEP}]
+ >=dev-python/rich-10[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
+ dev-python/uv-dynamic-versioning[${PYTHON_USEDEP}]
+ test? (
+ dev-python/brotlicffi[${PYTHON_USEDEP}]
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/h2[${PYTHON_USEDEP}]
+ dev-python/starlette[${PYTHON_USEDEP}]
+ dev-python/socksio[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/uvicorn[${PYTHON_USEDEP}]
+ dev-python/websockets[${PYTHON_USEDEP}]
+ >=dev-python/wsproto-1.2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/zstandard-0.18.0[${PYTHON_USEDEP}]
+ ' 3.12 3.13)
+ )
+"
+
+EPYTEST_PLUGINS=( anyio flaky pytest-{httpbin,trio} )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_compile() {
+ local -x UV_DYNAMIC_VERSIONING_BYPASS=${PV}
+
+ cd src/httpcore2 || die
+ distutils-r1_python_compile
+ cd ../httpx2 || die
+ distutils-r1_python_compile
+ cd ../.. || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # random HTTP header case mismatch
+ tests/httpx2/test_main.py::test_auth
+ tests/httpx2/test_main.py::test_binary
+ tests/httpx2/test_main.py::test_follow_redirects
+ tests/httpx2/test_main.py::test_get
+ tests/httpx2/test_main.py::test_json
+ tests/httpx2/test_main.py::test_post
+ tests/httpx2/test_main.py::test_redirects
+ tests/httpx2/test_main.py::test_verbose
+ # Internet
+ tests/httpcore2/test_cancellations.py::test_h2_timeout_during_request
+ tests/httpx2/client/test_proxies.py::test_async_proxy_close
+ tests/httpx2/client/test_proxies.py::test_sync_proxy_close
+ # unexpected logs from uvicorn
+ tests/httpx2/test_utils.py::test_logging_request
+ tests/httpx2/test_utils.py::test_logging_redirect_chain
+ )
+
+ local EPYTEST_IGNORE=()
+ if ! use cli; then
+ EPYTEST_IGNORE+=(
+ tests/httpx2/test_main.py
+ )
+ fi
+
+ epytest tests/{httpcore2,httpx2}
+}
diff --git a/dev-python/jc/Manifest b/dev-python/jc/Manifest
index 55976c1c2b68..d6e3a29bba7a 100644
--- a/dev-python/jc/Manifest
+++ b/dev-python/jc/Manifest
@@ -1,2 +1 @@
-DIST jc-1.25.6.gh.tar.gz 15300270 BLAKE2B a49f05773eb74288dcd93795aed0c2ae8e8efddffdaa20736fbfc1b7397e52fe1f07618c7fb835e304ca845eb93ce3f827cb161a93c6eb3cf4fe4b1821f51e9b SHA512 5ec64731f5e01608fb5cd97fa0e12ad43e7147b79ccc3ab86c685aba7742cdd8a7d8da8d2bec518f675625e569287661a68bc5351f85c2db3776db0644d26dc4
DIST jc-1.25.7.gh.tar.gz 15380863 BLAKE2B 7005171140989c3b4b9053a663e0e2aee6bc8815a541ab61e04373add275806a22b4c13ac10ce1e5875a221d6b3c8c03aab3d79f2edc1161f15f4cb05dfe82e0 SHA512 2b06e538850f91c57b547272468e6096ef6a64e95206cbdd298296eda90605deda96a64ee63b8648bc9d710927249c1639a8cba9423746db2b8b19c61ed0af1d
diff --git a/dev-python/jc/jc-1.25.6.ebuild b/dev-python/jc/jc-1.25.6.ebuild
deleted file mode 100644
index c67537802447..000000000000
--- a/dev-python/jc/jc-1.25.6.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 2022-2025 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="Converts the output of popular command-line tools and file-types to JSON"
-HOMEPAGE="
- https://github.com/kellyjonbrazil/jc/
- https://pypi.org/project/jc/
-"
-# no tests in sdist, as of 1.23.2
-SRC_URI="
- https://github.com/kellyjonbrazil/jc/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64"
-
-RDEPEND="
- dev-python/pygments[${PYTHON_USEDEP}]
- dev-python/ruamel-yaml[${PYTHON_USEDEP}]
- dev-python/xmltodict[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests unittest
-
-python_test() {
- local -x TZ=America/Los_Angeles
- eunittest
-}
diff --git a/dev-python/jedi/jedi-0.20.0.ebuild b/dev-python/jedi/jedi-0.20.0.ebuild
index 5f974213fd54..482cf7bd384e 100644
--- a/dev-python/jedi/jedi-0.20.0.ebuild
+++ b/dev-python/jedi/jedi-0.20.0.ebuild
@@ -47,14 +47,9 @@ python_test() {
)
case ${EPYTHON} in
- pypy3.11)
+ python3.15*)
EPYTEST_DESELECT+=(
- test/test_api/test_api.py::test_preload_modules
- test/test_api/test_interpreter.py::test_param_infer_default
- test/test_inference/test_compiled.py::test_next_docstr
- test/test_inference/test_compiled.py::test_time_docstring
- test/test_inference/test_gradual/test_typeshed.py::test_module_exists_only_as_stub
- test/test_utils.py::TestSetupReadline::test_import
+ test/test_inference/test_sys_path.py::test_venv_and_pths
)
;;
esac
diff --git a/dev-python/lockfile/lockfile-0.12.2-r3.ebuild b/dev-python/lockfile/lockfile-0.12.2-r3.ebuild
index ce5e67d093be..3ccdb728430d 100644
--- a/dev-python/lockfile/lockfile-0.12.2-r3.ebuild
+++ b/dev-python/lockfile/lockfile-0.12.2-r3.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
@@ -26,5 +26,6 @@ PATCHES=(
"${FILESDIR}"/${P}-pytest.patch
)
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
distutils_enable_sphinx doc/source --no-autodoc
diff --git a/dev-python/mechanicalsoup/mechanicalsoup-1.4.0.ebuild b/dev-python/mechanicalsoup/mechanicalsoup-1.4.0.ebuild
index f5e05b99de9f..91ba4344dd98 100644
--- a/dev-python/mechanicalsoup/mechanicalsoup-1.4.0.ebuild
+++ b/dev-python/mechanicalsoup/mechanicalsoup-1.4.0.ebuild
@@ -27,17 +27,17 @@ RDEPEND="
>=dev-python/requests-2.22.0[${PYTHON_USEDEP}]
>=dev-python/urllib3-2.2.2[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- >=dev-python/requests-mock-1.3.0[${PYTHON_USEDEP}]
- )
-"
-EPYTEST_PLUGINS=( pytest-{httpbin,mock} )
+EPYTEST_PLUGINS=( pytest-{httpbin,mock} requests-mock )
distutils_enable_tests pytest
distutils_enable_sphinx docs
python_test() {
+ local EPYTEST_DESELECT=(
+ # random regression (deps?)
+ tests/test_stateful_browser.py::test_select_form_associated_elements
+ )
+
epytest -o addopts=
}
diff --git a/dev-python/munch/munch-4.0.0.ebuild b/dev-python/munch/munch-4.0.0.ebuild
index c7cc1235f2e1..1706a270a29e 100644
--- a/dev-python/munch/munch-4.0.0.ebuild
+++ b/dev-python/munch/munch-4.0.0.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
@@ -25,6 +25,7 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
PATCHES=(
diff --git a/dev-python/mypy/Manifest b/dev-python/mypy/Manifest
index 3684f8b8c01a..5da9d5206fa8 100644
--- a/dev-python/mypy/Manifest
+++ b/dev-python/mypy/Manifest
@@ -1,3 +1,4 @@
DIST mypy-1.20.2.gh.tar.gz 3837137 BLAKE2B cc28ad8a145d27dd4f6f395496e44ed80859df634e89fe7d584975107534cf063db97817b5b94665e2b7629ca1fa67c75c0ed2978237f10d68606c33bc6e79d3 SHA512 55affb5d086b18ea16b5cc9fd4bb2fbc99987d444f2c0b6c64aaa9dd87a7790f99385b922eb6afbd5fe0c0ff0a5da9f69ab03bb3d8aac350aa5b2f85174fc130
DIST mypy-2.1.0.gh.tar.gz 3916741 BLAKE2B 37bf2f6d79377ebde68537119c0b58ae9cf6868421329b1d5b814e48788749e53cd34053bb5472385881b167cc8af7fdd85cef3c63792868668286516fe27462 SHA512 ae24addeaa7c7f51b43df718482be368e9078c16c42c2449cabed74b98d3a36a701235b092d044c3e452ec84ee26806090f2d38e173d752e8511a178e12cd761
DIST mypy-2.2.0.gh.tar.gz 3970949 BLAKE2B 975d59c31ad9127be7d490a706c9bceb06b9eb0c19e96ed9112f35626c0a615edd51f83ddd4c1a30188c58572b45768dfbdd3f3c65c670972de46f96c3427cd3 SHA512 6f8d3be955df2e3de1495c67931ec813f62c05b68969108a2ba1a978221924e860bc03b48eddf51f4efca1c8f684e2708637004f6ce457489ba6fdea31582fdb
+DIST mypy-2.3.0.gh.tar.gz 4005925 BLAKE2B 72d9e55459d11729fe75e299c36dee981acb0576925bc4c4273f688bf7859736e17ccebf349bcf345f3cd1939353e1bbfe81ad655c3ba99cc08f11d3cf89cf78 SHA512 6457a9372149cb7154ea772bc3981838a7f7a51d652fefe2caa56015d7b1c1389ea069cfae6086e9840e317a97eb980548089b70b3135f5d1b1e6580298dfcbe
diff --git a/dev-python/mypy/mypy-2.3.0.ebuild b/dev-python/mypy/mypy-2.3.0.ebuild
new file mode 100644
index 000000000000..525c023a8c1c
--- /dev/null
+++ b/dev-python/mypy/mypy-2.3.0.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Optional static typing for Python"
+HOMEPAGE="
+ https://www.mypy-lang.org/
+ https://github.com/python/mypy/
+ https://pypi.org/project/mypy/
+"
+SRC_URI="
+ https://github.com/python/mypy/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="native-extensions"
+
+# stubgen collides with this package: https://bugs.gentoo.org/585594
+RDEPEND="
+ !dev-util/stubgen
+ <dev-python/ast-serialize-1[${PYTHON_USEDEP}]
+ >=dev-python/ast-serialize-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/librt-0.13.0[${PYTHON_USEDEP}]
+ >=dev-python/mypy-extensions-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pathspec-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ native-extensions? (
+ ${RDEPEND}
+ dev-python/types-psutil[${PYTHON_USEDEP}]
+ dev-python/types-setuptools[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/attrs-18.0[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.9.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+# frustratingly, mypyc produces non-deterministic output. If ccache is enabled it will be a waste of time,
+# but simultaneously it might trash your system and fill up the cache with a giant wave of non-reproducible
+# test files (https://github.com/mypyc/mypyc/issues/1014)
+export CCACHE_DISABLE=1
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.14.0-no-werror.patch
+)
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # don't force pytest-xdist, in case user asked for EPYTEST_JOBS=1
+ sed -i -e '/addopts/s:-nauto::' pyproject.toml || die
+}
+
+python_compile() {
+ local -x MYPY_USE_MYPYC=$(usex native-extensions 1 0)
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # the majority of them require Internet (via pip)
+ mypy/test/testpep561.py
+ # known broken with assertions enabled
+ # https://github.com/python/mypy/issues/16043
+ mypyc/test/test_external.py::TestExternal::test_c_unit_test
+ mypyc/test/test_run.py::TestRun::run-async.test::testRunAsyncMiscTypesInEnvironment
+ mypyc/test/test_run.py::TestRun::run-bools.test::testBoolOps
+ mypyc/test/test_run.py::TestRun::run-classes.test::testDelException
+ mypyc/test/test_run.py::TestRun::run-classes.test::testDelForDictSubclass
+ mypyc/test/test_run.py::TestRun::run-classes.test::testSubclassDict
+ mypyc/test/test_run.py::TestRun::run-dicts.test::testDictIterationMethodsRun
+ mypyc/test/test_run.py::TestRun::run-dicts.test::testDictMethods
+ mypyc/test/test_run.py::TestRun::run-dunders.test::testDundersContainer
+ mypyc/test/test_run.py::TestRun::run-floats.test::testFloatOps
+ mypyc/test/test_run.py::TestRun::run-i64.test::testI64BasicOps
+ mypyc/test/test_run.py::TestRun::run-i64.test::testI64DefaultArgValues
+ mypyc/test/test_run.py::TestRun::run-i64.test::testI64ErrorValuesAndUndefined
+ mypyc/test/test_run.py::TestRun::run-i64.test::testI64GlueMethodsAndInheritance
+ mypyc/test/test_run.py::TestRun::run-librt-strings.test::testLibrtStrings_librt
+ mypyc/test/test_run.py::TestRun::run-vecs-i64.test::testVecI64BasicOps_librt
+ mypyc/test/test_run.py::TestRun::run-vecs-i64.test::testVecI64BasicOps_librt_experimental
+ mypyc/test/test_run.py::TestRun::run-vecs-misc.test::testVecMiscBasicOps_librt
+ mypyc/test/test_run.py::TestRun::run-vecs-nested.test::testVecNestedBasicOps_librt
+ mypyc/test/test_run.py::TestRun::run-vecs-t.test::testVecTBasicOps_librt
+ mypyc/test/test_run.py::TestRun::run-vecs-t.test::testVecTBasicOps_librt_experimental
+ mypyc/test/test_run.py::TestRunStrictDunderTyping::run-dunders.test::testDundersContainer_dunder_typing
+ mypyc/test/test_run.py::TestRunStrictDunderTyping::run-floats.test::testFloatOps_dunder_typing
+ # these assume that types-docutils are not installed
+ mypy/test/testpythoneval.py::PythonEvaluationSuite::pythoneval.test::testIgnoreImportIfNoPython3StubAvailable
+ mypy/test/testpythoneval.py::PythonEvaluationSuite::pythoneval.test::testNoPython3StubAvailable
+ # TODO
+ mypy/test/meta/test_parse_data.py
+ mypy/test/meta/test_update_data.py
+ # Unknown SIGBUS, bug #967850
+ mypyc/test/test_run.py::TestRun::run-classes.test::testBufferRoundTrip_native_libs
+ )
+
+ case ${EPYTHON} in
+ python3.1[45]*)
+ EPYTEST_DESELECT+=(
+ mypyc/test/test_run.py::TestRun::run-async.test::testRunAsyncRefCounting
+ mypyc/test/test_run.py::TestRun::run-tuples.test::testNamedTupleClassSyntax
+ )
+ ;;
+ esac
+
+ # Some mypy/test/testcmdline.py::PythonCmdlineSuite tests
+ # fail with high COLUMNS values
+ local -x COLUMNS=80
+
+ # The tests depend on having in-source compiled extensions if you want to
+ # test those compiled extensions. Various crucial test dependencies aren't
+ # installed. Even pyproject.toml is needed because that's where pytest args
+ # are in. Hack them into the build directory and delete them afterwards.
+ # See: https://github.com/python/mypy/issues/16143
+ local -x MYPY_TEST_PREFIX="${S}"
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ cp -r "${S}"/{conftest.py,pyproject.toml} . || die
+
+ local failed=
+ nonfatal epytest || failed=1
+
+ rm -r conftest.py pyproject.toml .mypy_cache || die
+
+ [[ ${failed} ]] && die "epytest failed with ${EPYTHON}"
+}
+
+pkg_postinst() {
+ optfeature "dmypy status -v support for memory use" dev-python/psutil
+}
diff --git a/dev-python/nextinspace/nextinspace-3.0.1.ebuild b/dev-python/nextinspace/nextinspace-3.0.1.ebuild
index 5a44788bf6d5..d7cfc842e967 100644
--- a/dev-python/nextinspace/nextinspace-3.0.1.ebuild
+++ b/dev-python/nextinspace/nextinspace-3.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -25,11 +25,6 @@ RDEPEND="
>=dev-python/colorama-0.4.3[${PYTHON_USEDEP}]
>=dev-python/requests-2.24[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- dev-python/pytest-lazy-fixtures[${PYTHON_USEDEP}]
- >=dev-python/requests-mock-1.8[${PYTHON_USEDEP}]
- )
-"
+EPYTEST_PLUGINS=( pytest-lazy-fixtures requests-mock )
distutils_enable_tests pytest
diff --git a/dev-python/nextinspace/nextinspace-9999.ebuild b/dev-python/nextinspace/nextinspace-9999.ebuild
index 23039ff15516..d7314c82636e 100644
--- a/dev-python/nextinspace/nextinspace-9999.ebuild
+++ b/dev-python/nextinspace/nextinspace-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -25,11 +25,6 @@ RDEPEND="
>=dev-python/colorama-0.4.3[${PYTHON_USEDEP}]
>=dev-python/requests-2.24[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- dev-python/pytest-lazy-fixtures[${PYTHON_USEDEP}]
- >=dev-python/requests-mock-1.8[${PYTHON_USEDEP}]
- )
-"
+EPYTEST_PLUGINS=( pytest-lazy-fixtures requests-mock )
distutils_enable_tests pytest
diff --git a/dev-python/oslotest/Manifest b/dev-python/oslotest/Manifest
index 744e30d8e259..917e798ab3a5 100644
--- a/dev-python/oslotest/Manifest
+++ b/dev-python/oslotest/Manifest
@@ -1,3 +1 @@
-DIST oslotest-6.0.0.tar.gz 32997 BLAKE2B 5943f211d1a1d6c0f1b9700be935792c7f83a6db4dc7604afe1f4645939d2e113960c2fd258fe46e08e6f7f653f76bcbc5cb1b5c2e9a30524be7a8f81c50063f SHA512 4541f4fd4cb5ed4e903076fbcb58514709bbf3a9400964a8d54a5708ef8015b75023ef1442eb50980b78e0e794c6c4f95ae6cd75e8c8555fe897862f3d77fbdc
-DIST oslotest-6.1.0.tar.gz 34358 BLAKE2B 4258e3010500fb29b67d58df6ab2088a4e8b7396bb2f6b819d11cbd607a3ccee454a961037d00f6313efbf1f1b144a4655bcf1ae0ac588aef15e4109f6987c00 SHA512 b226f92bee97ad708b672188d0ff03e62673b04496211afb0398232cc6d4abbacf1f730fc2f652532032f19eeef309d178fd5059a603594dee3cdd116b9fcd3a
DIST oslotest-6.1.1.tar.gz 34131 BLAKE2B 681c024e1e7291983ed1ff98cddb14a6e57188c6b604440dbbddf1bd0900453c469a272eaa1e9dd242b69c378a5e9581a8f492ba293402f87ef91153c49b0514 SHA512 11524557f50549d187ab438e5368258b10aa4c10100979305c31269a681d201c204411047e84a89e9b310fe523cdee460fec0d1fdee65491de634b8bf11ec3ea
diff --git a/dev-python/oslotest/oslotest-6.0.0.ebuild b/dev-python/oslotest/oslotest-6.0.0.ebuild
deleted file mode 100644
index a7384b6aedde..000000000000
--- a/dev-python/oslotest/oslotest-6.0.0.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pbr
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Oslo test framework"
-HOMEPAGE="
- https://opendev.org/openstack/oslotest/
- https://github.com/openstack/oslotest/
- https://pypi.org/project/oslotest/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 x86"
-
-RDEPEND="
- >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests unittest
-
-src_prepare() {
- sed -i -e '/subunit/d' requirements.txt || die
- distutils-r1_src_prepare
-}
diff --git a/dev-python/oslotest/oslotest-6.1.0.ebuild b/dev-python/oslotest/oslotest-6.1.0.ebuild
deleted file mode 100644
index d98cd5af7007..000000000000
--- a/dev-python/oslotest/oslotest-6.1.0.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pbr
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Oslo test framework"
-HOMEPAGE="
- https://opendev.org/openstack/oslotest/
- https://github.com/openstack/oslotest/
- https://pypi.org/project/oslotest/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 x86"
-
-RDEPEND="
- >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests unittest
diff --git a/dev-python/parso/parso-0.8.7.ebuild b/dev-python/parso/parso-0.8.7.ebuild
index bbb9021820bd..22d476196605 100644
--- a/dev-python/parso/parso-0.8.7.ebuild
+++ b/dev-python/parso/parso-0.8.7.ebuild
@@ -27,3 +27,22 @@ distutils_enable_sphinx docs
EPYTEST_PLUGINS=()
EPYTEST_XDIST=1
distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ case ${EPYTHON} in
+ python3.15*)
+ EPYTEST_DESELECT+=(
+ # minor exception message mismatch
+ 'test/test_python_errors.py::test_python_exception_matches[def f(x, x): pass]'
+ 'test/test_python_errors.py::test_python_exception_matches[def x(*): pass]'
+ # now valid in py3.15
+ 'test/test_python_errors.py::test_python_exception_matches[[*[] for a in [1]]]'
+ 'test/test_python_errors.py::test_python_exception_matches[{**{} for a in [1]}]'
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/pbr/pbr-7.0.3-r1.ebuild b/dev-python/pbr/pbr-7.0.3-r1.ebuild
deleted file mode 100644
index 1a48791d56e9..000000000000
--- a/dev-python/pbr/pbr-7.0.3-r1.ebuild
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYTHON_TESTED=( python3_{13..14} )
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
-HOMEPAGE="
- https://opendev.org/openstack/pbr/
- https://github.com/openstack/pbr/
- https://pypi.org/project/pbr/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-# importlib-resources/pkg-resources: _compat/metadata.py
-# packaging/pkg-resources: _compat/packaging.py
-RDEPEND="
- || (
- dev-python/importlib-resources[${PYTHON_USEDEP}]
- dev-python/pkg-resources[${PYTHON_USEDEP}]
- )
- || (
- >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
- dev-python/pkg-resources[${PYTHON_USEDEP}]
- )
- >=dev-python/setuptools-64.0.0[${PYTHON_USEDEP}]
-"
-
-# git is needed for tests, see https://bugs.launchpad.net/pbr/+bug/1326682 and
-# https://bugs.gentoo.org/show_bug.cgi?id=561038 docutils is needed for sphinx
-# exceptions... https://bugs.gentoo.org/show_bug.cgi?id=603848 stestr is run as
-# external tool.
-BDEPEND="
- ${RDEPEND}
- test? (
- $(python_gen_cond_dep '
- >=dev-python/wheel-0.32.0[${PYTHON_USEDEP}]
- >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
- >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/virtualenv-20.0.3[${PYTHON_USEDEP}]
- dev-vcs/git
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-distutils_enable_tests unittest
-
-python_prepare_all() {
- # TODO: investigate
- sed -e 's:test_with_argument:_&:' \
- -e 's:test_wsgi_script_run:_&:' \
- -i pbr/tests/functional/test_wsgi_scripts.py || die
- # installs random packages via pip from the Internet
- rm pbr/tests/functional/test_pep517.py || die
- rm pbr/tests/functional/test_requirements.py || die
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
- einfo "Testing on ${EPYTHON} is not supported at the moment"
- return
- fi
-
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
- eunittest -b
-}
diff --git a/dev-python/pbr/pbr-7.0.3-r2.ebuild b/dev-python/pbr/pbr-7.0.3-r2.ebuild
index 4f449b2e2167..355fe1236522 100644
--- a/dev-python/pbr/pbr-7.0.3-r2.ebuild
+++ b/dev-python/pbr/pbr-7.0.3-r2.ebuild
@@ -4,7 +4,6 @@
EAPI=8
DISTUTILS_USE_PEP517=standalone
-PYTHON_TESTED=( python3_{13..14} )
PYTHON_COMPAT=( python3_{13..14} )
PYTHON_REQ_USE="threads(+)"
@@ -22,9 +21,6 @@ SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
- $(python_gen_cond_dep '
- dev-python/importlib-resources[${PYTHON_USEDEP}]
- ' pypy3_11 3.11)
>=dev-python/packaging-20.0[${PYTHON_USEDEP}]
>=dev-python/setuptools-64.0.0[${PYTHON_USEDEP}]
"
@@ -36,15 +32,13 @@ RDEPEND="
BDEPEND="
${RDEPEND}
test? (
- $(python_gen_cond_dep '
- >=dev-python/wheel-0.32.0[${PYTHON_USEDEP}]
- >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
- >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/virtualenv-20.0.3[${PYTHON_USEDEP}]
- dev-vcs/git
- ' "${PYTHON_TESTED[@]}")
+ >=dev-python/wheel-0.32.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20.0.3[${PYTHON_USEDEP}]
+ dev-vcs/git
)
"
@@ -63,11 +57,6 @@ python_prepare_all() {
}
python_test() {
- if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
- einfo "Testing on ${EPYTHON} is not supported at the moment"
- return
- fi
-
cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
eunittest -b
}
diff --git a/dev-python/peewee/Manifest b/dev-python/peewee/Manifest
index 1b031c995ea7..88599aaffbfd 100644
--- a/dev-python/peewee/Manifest
+++ b/dev-python/peewee/Manifest
@@ -4,3 +4,4 @@ DIST peewee-4.0.9.gh.tar.gz 1002262 BLAKE2B 456af69c3d57d2e8344080cf40845163c9d0
DIST peewee-4.1.2.gh.tar.gz 1046776 BLAKE2B 8a66ea828ad669db4d20cce089e485f75b9f792bc94fea8a1a1d46f9391e062f89c33cb2e7a34aae84645580967c586d4efff067d1aa4d7cfd6cc1da01fe90e9 SHA512 4a384817a8b3a146ac818b7327cc1ef4a02c0322409353ac29f64d9c66e1e6eeebb226db67fa6e4754662e82307b0abaa57b7526faa4dc7d90d911b8cc3094e9
DIST peewee-4.2.1.gh.tar.gz 1052835 BLAKE2B 1e6600f93622b06ab83b049f6f0ba0791c61e0027c9d00fd6c66a7619176b6be13fd50e655bf233c62247834f9804df338a5cbb8dfac5a9e384f54bafdc3fd8e SHA512 14fef860da92f7408047a24b2faaa9e1941072ff293044d610971ad5a8fafdc9c72f1784a57258529e769e81438a1c47ed42a784f1f7a41bffa563c1a956fd90
DIST peewee-4.2.2.gh.tar.gz 1055796 BLAKE2B caf2e0cd0ffde1073f09d161be2b10665cb9878786e38c25f14579ccea362591948bdadab8c9f7d8d898b287892a0e9ee772653eebe952943e368b054b3b15ed SHA512 0fabf02e266750819df0e0e9ff1934dc43a688b5b697984ca131236f04f68012d7b6b42e74af4b67863f0518a787589880a9c371419ff20d289581a727b783c0
+DIST peewee-4.2.3.gh.tar.gz 1060965 BLAKE2B 8efec0c00959f42586dd53a8f3181935bdb99b44a890faa2fe5f3c44661b98d9c8319711b39998be159cfdca98df86877af92beb407633381576bd40957e6892 SHA512 3094c10735aeaf4729c6232002d48af476d3839ebd844281775fd18a2277c1d03c7ea8c23d18c98735a64c66c9d77e0ce26ea7089aa4d448758a25e663dc3836
diff --git a/dev-python/peewee/peewee-4.2.3.ebuild b/dev-python/peewee/peewee-4.2.3.ebuild
new file mode 100644
index 000000000000..354b1a91f483
--- /dev/null
+++ b/dev-python/peewee/peewee-4.2.3.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+DESCRIPTION="Small Python ORM"
+HOMEPAGE="
+ https://github.com/coleifer/peewee/
+ https://pypi.org/project/peewee/
+"
+SRC_URI="
+ https://github.com/coleifer/peewee/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="examples +native-extensions test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ native-extensions? ( dev-db/sqlite:3= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-db/postgresql
+ dev-python/psycopg:0[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+ )
+"
+
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
+
+src_prepare() {
+ default
+
+ # disable test failing on postgres 16
+ sed -e 's/test_timeout/_&/' -i tests/sqliteq.py || die
+}
+
+src_compile() {
+ if ! use native-extensions; then
+ local -x NO_SQLITE=1
+ fi
+
+ distutils-r1_src_compile
+}
+
+src_test() {
+ initdb -D "${T}"/pgsql || die
+ pg_ctl -w -D "${T}"/pgsql start -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" peewee_test || die
+ psql -h "${T}" peewee_test -c 'create extension hstore;' || die
+
+ local -x PEEWEE_PSQL_HOST="${T}"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ "${EPYTHON}" runtests.py -v 2 || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && DOCS=( examples/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pudb/pudb-2025.1.5.ebuild b/dev-python/pudb/pudb-2025.1.5.ebuild
index 2af9e0b6f4bf..8725abbd4629 100644
--- a/dev-python/pudb/pudb-2025.1.5.ebuild
+++ b/dev-python/pudb/pudb-2025.1.5.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/dev-python/pyghmi/Manifest b/dev-python/pyghmi/Manifest
index 9bec1e3c1b1d..ffb708f6524e 100644
--- a/dev-python/pyghmi/Manifest
+++ b/dev-python/pyghmi/Manifest
@@ -1,2 +1 @@
-DIST pyghmi-1.6.18.tar.gz 286180 BLAKE2B 1fed199f2df8142e2d2dde91fd6c53c327a4899432fc8bca73e8bcb8db91bb2d6cb404ac40f8b1c989ce8854d12353692f6359e1906e0d7f989530808abaed0c SHA512 28182d2b13dd9100acf46f07781fd8a6e7fac757471dfa484a760de5b331dd4c71e1113eb3c03d2d7378d64986f5226fc0e20ca4b6c50184f11ac622718068a9
DIST pyghmi-1.6.19.tar.gz 286305 BLAKE2B da1de714f9bc7dc33d332cf3b627dcd27a3c4c82acdfb12ce7fbd72d7d2825f2c949739c84e1d7824172b957e5e1a7a706ca4c5c5bf257a4c92205497bd302b1 SHA512 92c98636e84f0fecdd17c1f4a7aa09d55f937eddf45ab41cd28fe5fe336991b7e19ede3b199b3b71ba66f125ecd33f3fc46b04ea44cbb99ca7afed6cdd129a55
diff --git a/dev-python/pyghmi/pyghmi-1.6.18.ebuild b/dev-python/pyghmi/pyghmi-1.6.18.ebuild
deleted file mode 100644
index ad0c0c312dde..000000000000
--- a/dev-python/pyghmi/pyghmi-1.6.18.ebuild
+++ /dev/null
@@ -1,32 +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 implementation of IPMI protocol"
-HOMEPAGE="
- https://opendev.org/x/pyghmi/
- https://pypi.org/project/pyghmi/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-RDEPEND="
- >=dev-python/cryptography-2.1[${PYTHON_USEDEP}]
- dev-python/pbr[${PYTHON_USEDEP}]
- >=dev-python/python-dateutil-2.8.1[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests unittest
diff --git a/dev-python/pykeepass/pykeepass-4.1.1_p1.ebuild b/dev-python/pykeepass/pykeepass-4.1.1_p1.ebuild
index 9fa6f231a0c7..88446de2b80e 100644
--- a/dev-python/pykeepass/pykeepass-4.1.1_p1.ebuild
+++ b/dev-python/pykeepass/pykeepass-4.1.1_p1.ebuild
@@ -31,7 +31,6 @@ RDEPEND="
>=dev-python/pyotp-2.9.0[${PYTHON_USEDEP}]
"
-EPYTEST_PLUGINS=()
distutils_enable_tests unittest
python_prepare() {
diff --git a/dev-python/pymediainfo/pymediainfo-7.0.1.ebuild b/dev-python/pymediainfo/pymediainfo-7.0.1.ebuild
index b65c8ff1731a..1986b833d291 100644
--- a/dev-python/pymediainfo/pymediainfo-7.0.1.ebuild
+++ b/dev-python/pymediainfo/pymediainfo-7.0.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
@@ -31,4 +31,5 @@ BDEPEND="
"
distutils_enable_sphinx docs dev-python/alabaster dev-python/myst-parser
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/pyperclip/pyperclip-1.11.0.ebuild b/dev-python/pyperclip/pyperclip-1.11.0.ebuild
index 65734613e821..5f78a8102921 100644
--- a/dev-python/pyperclip/pyperclip-1.11.0.ebuild
+++ b/dev-python/pyperclip/pyperclip-1.11.0.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/dev-python/pytest-param-files/pytest-param-files-0.6.0.ebuild b/dev-python/pytest-param-files/pytest-param-files-0.6.0.ebuild
index 9fcda277909d..99257fa7897a 100644
--- a/dev-python/pytest-param-files/pytest-param-files-0.6.0.ebuild
+++ b/dev-python/pytest-param-files/pytest-param-files-0.6.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-DISTUTILS_USE_PEP517=flit
+DISTUTILS_USE_PEP517=flit-core
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1
@@ -27,4 +27,6 @@ RDEPEND="
>=dev-python/ruamel-yaml-0.15[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=( "${PN}" )
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
distutils_enable_tests pytest
diff --git a/dev-python/pytest-tap/Manifest b/dev-python/pytest-tap/Manifest
new file mode 100644
index 000000000000..778000a5626e
--- /dev/null
+++ b/dev-python/pytest-tap/Manifest
@@ -0,0 +1 @@
+DIST pytest-tap-3.5.gh.tar.gz 17237 BLAKE2B 7a665b81faa08f11bcdc21945e77f4c74372c40ba737c198ee7975de62842f123ccd3a3c1ee5e365c3c43b7f8404f391adf1c2c85fc4017d40f52ab14cc95bb3 SHA512 5227af603294a6f039bb4759859bbcb69629bf057f92c71e51472bce222740346e7c911e00bd0646abf1e6998259d4c4064e91db131c2672b3c9211df0836712
diff --git a/dev-python/pytest-tap/files/pytest-tap-3.5-hatchling-wheel.patch b/dev-python/pytest-tap/files/pytest-tap-3.5-hatchling-wheel.patch
new file mode 100644
index 000000000000..dc7df6edd335
--- /dev/null
+++ b/dev-python/pytest-tap/files/pytest-tap-3.5-hatchling-wheel.patch
@@ -0,0 +1,70 @@
+https://github.com/python-tap/pytest-tap/commit/aba9dfa88c8736e96e6af6382b2688c919600050
+
+From aba9dfa88c8736e96e6af6382b2688c919600050 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= <cynerd@email.cz>
+Date: Thu, 30 Oct 2025 03:24:39 +0100
+Subject: [PATCH] pyproject.toml: fix missing package i wheel (#105)
+
+* pyproject.toml: fix missing package i wheel
+
+The wheel was missing package due to it not being packaged. The
+hatchling documentation specifies that packages should be set this way.
+
+The testing of this change in virtual environment:
+
+ nobody@host:pytest-tap$ python3 -m venv env wheelfix+
+ nobody@host:pytest-tap$ . ./env/bin/activate wheelfix+
+ ((env) ) nobody@host:pytest-tap$ pip install . wheelfix+
+ Processing /home/cynerd/src/pytest-tap
+ Installing build dependencies ... done
+ Getting requirements to build wheel ... done
+ Preparing metadata (pyproject.toml) ... done
+ Requirement already satisfied: pytest>=3.0 in /nix/store/094gpcj7d1z8wdvymhxvi2rns757vb2p-python3.12-pytest-8.3.5/lib/python3.12/site-packages (from pytest-tap==3.5) (8.3.5)
+ Requirement already satisfied: tap-py<4.0,>=3.2 in /nix/store/bmvj5dimxkphyrzwl0jyvi6blz8imqpn-python3.12-tap.py-3.2.1/lib/python3.12/site-packages (from pytest-tap==3.5) (3.2.1)
+ Requirement already satisfied: iniconfig in /nix/store/8bcr5c5m8d1359k52mwjdbqjw2rzwdgq-python3.12-iniconfig-2.1.0/lib/python3.12/site-packages (from pytest>=3.0->pytest-tap==3.5) (2.1.0)
+ Requirement already satisfied: packaging in /nix/store/wr2lp9ziysxbjbf5ww09a4k7ivvnxbc4-python3.12-packaging-24.2/lib/python3.12/site-packages (from pytest>=3.0->pytest-tap==3.5) (24.2)
+ Requirement already satisfied: pluggy<2,>=1.5 in /nix/store/fbbyfni2ccjw8r7rh7ww3x8ky1yk4hi7-python3.12-pluggy-1.5.0/lib/python3.12/site-packages (from pytest>=3.0->pytest-tap==3.5) (1.5.0)
+ Building wheels for collected packages: pytest-tap
+ Building wheel for pytest-tap (pyproject.toml) ... done
+ Created wheel for pytest-tap: filename=pytest_tap-3.5-py3-none-any.whl size=6543 sha256=6733459ec7272402507031361355d4820fd799659e4102568790d9e53b2863c0
+ Stored in directory: /home/cynerd/.cache/pip/wheels/e4/ea/6f/0c79e4850b81f185670c0a561a2ebc457c7a0b4ee105c88476
+ Successfully built pytest-tap
+ Installing collected packages: pytest-tap
+ Successfully installed pytest-tap-3.5
+
+ [notice] A new release of pip is available: 25.0.1 -> 25.1.1
+ [notice] To update, run: pip install --upgrade pip
+ ((env) ) nobody@host:pytest-tap$ ls env/lib/python3.12/site-packages/pytest_tap/ wheelfix+
+ __init__.py plugin.py
+
+The listed directory wasn't present before this change.
+
+* Remove sources entry from pyproject.toml
+
+This applies a similar fix to https://github.com/python-tap/tappy/pull/166
+
+---------
+
+Co-authored-by: Matt Layman <matthewlayman@gmail.com>
+---
+ pyproject.toml | 4 +---
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 940540c..97b9a37 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -47,11 +47,9 @@ include = [
+ "/docs",
+ "/tests",
+ ]
+-sources = ["src"]
+
+ [tool.hatch.build.targets.wheel]
+-sources = ["src"]
+-packages = ["pytest_tap"]
++packages = ["src/pytest_tap"]
+
+ [tool.pytest.ini_options]
+ pythonpath = [".", "src"]
+
diff --git a/dev-python/pytest-tap/metadata.xml b/dev-python/pytest-tap/metadata.xml
new file mode 100644
index 000000000000..5e95859f915a
--- /dev/null
+++ b/dev-python/pytest-tap/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <stabilize-allarches />
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/pytest-tap/pytest-tap-3.5.ebuild b/dev-python/pytest-tap/pytest-tap-3.5.ebuild
new file mode 100644
index 000000000000..cb9dacdc00a9
--- /dev/null
+++ b/dev-python/pytest-tap/pytest-tap-3.5.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2026 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
+
+DESCRIPTION="Reporting plugin for pytest that outputs Test Anything Protocol (TAP) data"
+HOMEPAGE="
+ https://github.com/python-tap/pytest-tap
+ https://pypi.org/project/pytest-tap/
+"
+# No tests in sdist
+SRC_URI="https://github.com/python-tap/pytest-tap/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/tap-py-3.2[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.5-hatchling-wheel.patch
+)
+
+EPYTEST_PLUGINS=( "${PN}" )
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+distutils_enable_tests pytest
diff --git a/dev-python/python-daemon/python-daemon-3.1.2.ebuild b/dev-python/python-daemon/python-daemon-3.1.2.ebuild
index 00e72c722b52..66a666573474 100644
--- a/dev-python/python-daemon/python-daemon-3.1.2.ebuild
+++ b/dev-python/python-daemon/python-daemon-3.1.2.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/dev-python/python-glanceclient/files/python-glanceclient-4.12.0-py315.patch b/dev-python/python-glanceclient/files/python-glanceclient-4.12.0-py315.patch
new file mode 100644
index 000000000000..aeae21445037
--- /dev/null
+++ b/dev-python/python-glanceclient/files/python-glanceclient-4.12.0-py315.patch
@@ -0,0 +1,67 @@
+From 98fa6a7ffcb128e406922ac8520180fc05c21648 Mon Sep 17 00:00:00 2001
+From: Steve Traylen <steve.traylen@cern.ch>
+Date: Sun, 26 Apr 2026 16:49:34 +0200
+Subject: [PATCH] fix hashlib ValueError message check for py3.15
+
+I realise python3.15 is is not supported yet but this allows tests
+to pass on 3.15a8.
+
+Python 3.15 changed the ValueError message raised by hashlib.new() for
+unknown algorithms from "unsupported hash type <name>" to "unsupported
+hash algorithm <name>",
+
+Replace the prefix check with a test for the algorithm name in
+the exception message
+
+Python change:
+
+https://github.com/python/cpython/commit/6be49ee517258281357aa6846d2564bc5626b7ca
+Change-Id: I69b1b0fb2ac18c0a590b9d375b88030361251935
+Signed-off-by: Steve Traylen <steve.traylen@cern.ch>
+---
+
+diff --git a/glanceclient/tests/unit/v2/test_images.py b/glanceclient/tests/unit/v2/test_images.py
+index 33626fd..839d7fe 100644
+--- a/glanceclient/tests/unit/v2/test_images.py
++++ b/glanceclient/tests/unit/v2/test_images.py
+@@ -1184,12 +1184,12 @@
+ do_checksum=False)
+ body = ''.join([b for b in body])
+ self.assertEqual('BB', body)
+- try:
+- body = self.controller.data('badalgo-db27-11e1-a1eb-080027cbe205')
+- self.fail('bad os_hash_algo did not raise an error.')
+- except ValueError as e:
+- msg = 'unsupported hash type not_an_algo'
+- self.assertIn(msg, str(e))
++ self.assertRaisesRegex(
++ ValueError,
++ r'unsupported hash (type|algorithm) not_an_algo',
++ self.controller.data,
++ 'badalgo-db27-11e1-a1eb-080027cbe205'
++ )
+
+ def test_data_with_checksum(self):
+ for prefix in ['headeronly', 'chkonly', 'multihash']:
+@@ -1207,7 +1207,7 @@
+ @ddt.data('headeronly', 'chkonly', 'multihash')
+ def test_data_with_checksum_but_no_md5_algo(self, prefix):
+ with mock.patch('hashlib.new', mock.MagicMock(
+- side_effect=ValueError('unsupported hash type'))):
++ side_effect=ValueError('unsupported hash algorithm sha384'))):
+ body = self.controller.data(prefix +
+ '-dd57-11e1-af0f-02163e68b1d8',
+ allow_md5_fallback=True)
+diff --git a/glanceclient/v2/images.py b/glanceclient/v2/images.py
+index 3c658fa..6cff610 100644
+--- a/glanceclient/v2/images.py
++++ b/glanceclient/v2/images.py
+@@ -278,7 +278,7 @@
+ meta_hash_value)
+ check_md5sum = False
+ except ValueError as ve:
+- if (str(ve).startswith('unsupported hash type') and
++ if (str(meta_hash_algo) in str(ve) and
+ allow_md5_fallback):
+ check_md5sum = True
+ else:
diff --git a/dev-python/python-glanceclient/python-glanceclient-4.12.0.ebuild b/dev-python/python-glanceclient/python-glanceclient-4.12.0.ebuild
index a82673afcd02..800afebd5fda 100644
--- a/dev-python/python-glanceclient/python-glanceclient-4.12.0.ebuild
+++ b/dev-python/python-glanceclient/python-glanceclient-4.12.0.ebuild
@@ -44,6 +44,11 @@ BDEPEND="
distutils_enable_tests unittest
+PATCHES=(
+ # https://review.opendev.org/c/openstack/python-glanceclient/+/986313
+ "${FILESDIR}/${P}-py315.patch"
+)
+
python_test() {
# functional tests require cloud instance access
eunittest -b glanceclient/tests/unit
diff --git a/dev-python/python-manilaclient/python-manilaclient-6.2.0.ebuild b/dev-python/python-manilaclient/python-manilaclient-6.2.0.ebuild
index 6392eaf1aa0b..2fbb1ebe03d7 100644
--- a/dev-python/python-manilaclient/python-manilaclient-6.2.0.ebuild
+++ b/dev-python/python-manilaclient/python-manilaclient-6.2.0.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/dev-python/pywinrm/pywinrm-0.5.0.ebuild b/dev-python/pywinrm/pywinrm-0.5.0.ebuild
index bbe83a95e6d6..a3c5f9b3d789 100644
--- a/dev-python/pywinrm/pywinrm-0.5.0.ebuild
+++ b/dev-python/pywinrm/pywinrm-0.5.0.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/dev-python/requests-credssp/requests-credssp-2.0.0.ebuild b/dev-python/requests-credssp/requests-credssp-2.0.0.ebuild
index 323e169473d1..7798855c7507 100644
--- a/dev-python/requests-credssp/requests-credssp-2.0.0.ebuild
+++ b/dev-python/requests-credssp/requests-credssp-2.0.0.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/dev-python/requests-kerberos/requests-kerberos-0.15.0.ebuild b/dev-python/requests-kerberos/requests-kerberos-0.15.0.ebuild
index d539dbd7bab8..10a60ec09b56 100644
--- a/dev-python/requests-kerberos/requests-kerberos-0.15.0.ebuild
+++ b/dev-python/requests-kerberos/requests-kerberos-0.15.0.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/dev-python/requests-mock/requests-mock-1.12.1.ebuild b/dev-python/requests-mock/requests-mock-1.12.1.ebuild
index 3b78e2d00837..e781ce5c2705 100644
--- a/dev-python/requests-mock/requests-mock-1.12.1.ebuild
+++ b/dev-python/requests-mock/requests-mock-1.12.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
@@ -26,13 +26,13 @@ BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
test? (
dev-python/fixtures[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
dev-python/requests-futures[${PYTHON_USEDEP}]
dev-python/testtools[${PYTHON_USEDEP}]
)
"
distutils_enable_sphinx doc/source
+EPYTEST_PLUGINS=( "${PN}" )
distutils_enable_tests pytest
python_prepare_all() {
@@ -49,5 +49,6 @@ python_prepare_all() {
# Disable a test which requires purl (not in the tree)
sed -e "/^import purl$/d" -e "s/test_with_purl/_&/" \
-i tests/test_adapter.py || die
+ sed -i -e 's:assertEquals:assertEqual:' tests/test_*.py || die
distutils-r1_python_prepare_all
}
diff --git a/dev-python/requests-ntlm/requests-ntlm-1.3.0.ebuild b/dev-python/requests-ntlm/requests-ntlm-1.3.0.ebuild
index fdffeec34803..8249d2912101 100644
--- a/dev-python/requests-ntlm/requests-ntlm-1.3.0.ebuild
+++ b/dev-python/requests-ntlm/requests-ntlm-1.3.0.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/dev-python/requests-oauthlib/files/requests-oauthlib-2.0.0-test.patch b/dev-python/requests-oauthlib/files/requests-oauthlib-2.0.0-test.patch
new file mode 100644
index 000000000000..fd85d16fc0cf
--- /dev/null
+++ b/dev-python/requests-oauthlib/files/requests-oauthlib-2.0.0-test.patch
@@ -0,0 +1,31 @@
+From b1dd93c5d024500b6236dea06734d6e6482c3565 Mon Sep 17 00:00:00 2001
+From: Jonathan Huot <jonathan.huot@gmail.com>
+Date: Thu, 12 Jun 2025 20:06:32 +0200
+Subject: [PATCH] Updated tests to support 3.3.0/changes rel. to expires_at
+
+---
+ tests/test_compliance_fixes.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/test_compliance_fixes.py b/tests/test_compliance_fixes.py
+index c5166bd..9ad6d09 100644
+--- a/tests/test_compliance_fixes.py
++++ b/tests/test_compliance_fixes.py
+@@ -115,7 +115,7 @@ def test_fetch_access_token(self):
+ authorization_response="https://i.b/?code=hello",
+ )
+ # Times should be close
+- approx_expires_at = time.time() + 3600
++ approx_expires_at = round(time.time()) + 3600
+ actual_expires_at = token.pop("expires_at")
+ self.assertAlmostEqual(actual_expires_at, approx_expires_at, places=2)
+
+@@ -289,7 +289,7 @@ def test_fetch_access_token(self):
+ authorization_response="https://i.b/?code=hello",
+ )
+
+- approx_expires_at = time.time() + 86400
++ approx_expires_at = round(time.time()) + 86400
+ actual_expires_at = token.pop("expires_at")
+ self.assertAlmostEqual(actual_expires_at, approx_expires_at, places=2)
+
diff --git a/dev-python/requests-oauthlib/requests-oauthlib-2.0.0.ebuild b/dev-python/requests-oauthlib/requests-oauthlib-2.0.0.ebuild
index 875e3ba59f05..57aba141ce0c 100644
--- a/dev-python/requests-oauthlib/requests-oauthlib-2.0.0.ebuild
+++ b/dev-python/requests-oauthlib/requests-oauthlib-2.0.0.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
@@ -26,25 +26,21 @@ RDEPEND="
>=dev-python/requests-2.0.0[${PYTHON_USEDEP}]
>=dev-python/oauthlib-3.0.0[${PYTHON_USEDEP}]
"
-BDEPEND="
- test? (
- dev-python/requests-mock[${PYTHON_USEDEP}]
- )
-"
+EPYTEST_PLUGINS=( requests-mock )
distutils_enable_tests pytest
-python_test() {
- local EPYTEST_DESELECT=(
- # Internet access
- tests/test_core.py::OAuth1Test::testCanPostBinaryData
- tests/test_core.py::OAuth1Test::test_content_type_override
- tests/test_core.py::OAuth1Test::test_url_is_native_str
- )
- local EPYTEST_IGNORE=(
- tests/examples
- )
+PATCHES=(
+ # https://github.com/requests/requests-oauthlib/commit/b1dd93c5d024500b6236dea06734d6e6482c3565
+ "${FILESDIR}/${P}-test.patch"
+)
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
+EPYTEST_DESELECT=(
+ # Internet access
+ tests/test_core.py::OAuth1Test::testCanPostBinaryData
+ tests/test_core.py::OAuth1Test::test_content_type_override
+ tests/test_core.py::OAuth1Test::test_url_is_native_str
+)
+EPYTEST_IGNORE=(
+ tests/examples
+)
diff --git a/dev-python/ruamel-yaml/ruamel-yaml-0.19.1.ebuild b/dev-python/ruamel-yaml/ruamel-yaml-0.19.1.ebuild
index 9403bd180d37..868a11e63518 100644
--- a/dev-python/ruamel-yaml/ruamel-yaml-0.19.1.ebuild
+++ b/dev-python/ruamel-yaml/ruamel-yaml-0.19.1.ebuild
@@ -27,17 +27,11 @@ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390
RDEPEND="
dev-python/ruamel-yaml-clibz[${PYTHON_USEDEP}]
- !dev-python/namespace-ruamel
"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
-python_compile() {
- distutils-r1_python_compile
- find "${BUILD_DIR}" -name '*.pth' -delete || die
-}
-
python_test() {
local EPYTEST_IGNORE=(
# Old PyYAML tests from lib/ require special set-up and are
diff --git a/dev-python/sphinx-basic-ng/sphinx-basic-ng-1.0.0_beta2.ebuild b/dev-python/sphinx-basic-ng/sphinx-basic-ng-1.0.0_beta2.ebuild
index 5257473834cb..71fd3d4081e3 100644
--- a/dev-python/sphinx-basic-ng/sphinx-basic-ng-1.0.0_beta2.ebuild
+++ b/dev-python/sphinx-basic-ng/sphinx-basic-ng-1.0.0_beta2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/sphinxcontrib-apidoc/sphinxcontrib-apidoc-0.6.0.ebuild b/dev-python/sphinxcontrib-apidoc/sphinxcontrib-apidoc-0.6.0.ebuild
index af5b9b9713ea..e5d59af86050 100644
--- a/dev-python/sphinxcontrib-apidoc/sphinxcontrib-apidoc-0.6.0.ebuild
+++ b/dev-python/sphinxcontrib-apidoc/sphinxcontrib-apidoc-0.6.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021-2025 Gentoo Authors
+# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -29,13 +29,7 @@ RDEPEND="
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
-python_compile() {
- distutils-r1_python_compile
- find "${BUILD_DIR}" -name '*.pth' -delete || die
-}
-
python_test() {
- distutils_write_namespace sphinxcontrib
cd "${T}" || die
epytest "${S}"/tests
}
diff --git a/dev-python/tavalidate/tavalidate-0.0.6-r1.ebuild b/dev-python/tavalidate/tavalidate-0.0.6-r1.ebuild
index cc6c65fe1b87..c37c65bc4cf2 100644
--- a/dev-python/tavalidate/tavalidate-0.0.6-r1.ebuild
+++ b/dev-python/tavalidate/tavalidate-0.0.6-r1.ebuild
@@ -23,4 +23,5 @@ RDEPEND="
dev-python/python-box[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/testscenarios/Manifest b/dev-python/testscenarios/Manifest
index cadab344de92..ab659246115d 100644
--- a/dev-python/testscenarios/Manifest
+++ b/dev-python/testscenarios/Manifest
@@ -1,4 +1,2 @@
-DIST testscenarios-0.5.0.tar.gz 20951 BLAKE2B 154915281456aad3353e144ffec8404514622fdeb8d2129ba530d3d5a02814599c2fead9dc25ab4904bad68b2892a435f9cbbcde92503d71477624bbec154f53 SHA512 f08b868babf504482369c5cb945d3e95bca1cc00f92d5013f6898c488051be0c26dc49aaabcef362aea45450a8d041d9826fb6b5c848beec013fb102d6935521
DIST testscenarios-0.6.1.tar.gz 18484 BLAKE2B 0d8d2cb28fbaf2a245efa6bb5c52311ef04ced5910880519d8931fee4022de35d28046c1c10f63bdae34487a13033f75e046abb6290e02ad268c1829d84e933f SHA512 a8220e1f18c3eb6ad55b9bbe61e58b1ead5e730babda2375df5d1648dbcbabe56ddfd62f41d654b28eca605d54e7303799e99fbeef005f3fd66304b7f61cc81c
DIST testscenarios-0.6.1.tar.gz.provenance 9708 BLAKE2B 15bb80ad8cc73ce0f96d1deb4cc7a55a6c4e101c9ec38361f1ac2ef01effcc1e2071f5ed0bd5140e6268b36dac82cdf5a91f3aa890e500df80d13378aa85d202 SHA512 bf004f8b8f33520f3cc71171127c8699470c4850947a35a14d60968b0281d0a537c266cf571588628b426f0a1fcf0bd093509bbe65db40f290c50de73f650ac2
-DIST testscenarios-0.6.tar.gz 14970 BLAKE2B 01e0ee8160ed56da1ef6f00870aff2ac414bb3c7492773656936c9e7c8a0ae5be2bea21fe62fb7cc18809b0177a0d1e60a0fe5c6a4399eed1f08174339e518b7 SHA512 fd83ed0fae6a1d39d829db5616bc54e86b960cf5f049fb472e416e6a49bdbba676bdea543f4396471debe990ba5c6bbf8574964111eea9bc7afed4355c1191c6
diff --git a/dev-python/testscenarios/testscenarios-0.5.0-r3.ebuild b/dev-python/testscenarios/testscenarios-0.5.0-r3.ebuild
deleted file mode 100644
index 2cdb982c68b1..000000000000
--- a/dev-python/testscenarios/testscenarios-0.5.0-r3.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2025 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 pyunit extension for dependency injection"
-HOMEPAGE="
- https://launchpad.net/testscenarios/
- https://github.com/testing-cabal/testscenarios/
- https://pypi.org/project/testscenarios/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-
-RDEPEND="
- dev-python/testtools[${PYTHON_USEDEP}]
- >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
-"
-
-# using pytest for tests since unittest loader fails with py3.5+
-BDEPEND="
- >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- testscenarios/tests/test_testcase.py
-)
diff --git a/dev-python/testscenarios/testscenarios-0.6.ebuild b/dev-python/testscenarios/testscenarios-0.6.ebuild
deleted file mode 100644
index 407660250e8f..000000000000
--- a/dev-python/testscenarios/testscenarios-0.6.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2026 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="A pyunit extension for dependency injection"
-HOMEPAGE="
- https://launchpad.net/testscenarios/
- https://github.com/testing-cabal/testscenarios/
- https://pypi.org/project/testscenarios/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-python/testtools[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- ${RDEPEND}
- )
-"
-
-python_test() {
- "${EPYTHON}" -m testtools.run -v testscenarios.tests.test_suite ||
- die "Tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/testtools/Manifest b/dev-python/testtools/Manifest
index 9dc319250ddb..0aa5f92580c2 100644
--- a/dev-python/testtools/Manifest
+++ b/dev-python/testtools/Manifest
@@ -1,3 +1,2 @@
-DIST testtools-2.7.2.tar.gz 201430 BLAKE2B d827d8e66c85908f4d16aa0762c3b0a454d374a0d23323fc3c123027f55f0e85f4fea9a24b5d1d0279266af2185f08abbcbbdcb785014b237df45a6448587611 SHA512 5815519d2b72d6b1e9f453c02793c70eb7d3b6580a211fb3708cd6121aed3c6100ceb1e35321f481a63b1f999ede030e43f1ae91d3621faf461c1908db767551
DIST testtools-2.9.1.tar.gz 221377 BLAKE2B 61684837047dc9ec91a412b22f7423c43f19500062571d0b36f821576503537218f5225c963f603feb142e3f1a5766d825a59df8e6a5da12d739372ae7c55b85 SHA512 68530c96756d383575602c6e3b6d33ca19fec4fe35ac6dba4ada4954be969a31414f930572cebbcbe4008fbdd1904537be793acdb5cce8458e36cdcbbfe719e0
DIST testtools-2.9.1.tar.gz.provenance 9604 BLAKE2B 01f82b392b2dd0226fda576aefd788c388ba50c275740f4adeab5ad2decf56a6a628e911bb8db0423ef047bf845325759f8c5c3135abd8146a33e4e699fa92c6 SHA512 5177b6070f4760baffc1644536abea1de55937e797de08e8d499e7ce07053ce8e0c22d996e9401a53e2ebe2461ce0c32e50732cdd9af0a26e40b3e19aac8891e
diff --git a/dev-python/testtools/files/testtools-2.7.2-py314.patch b/dev-python/testtools/files/testtools-2.7.2-py314.patch
deleted file mode 100644
index afce3b2c12ad..000000000000
--- a/dev-python/testtools/files/testtools-2.7.2-py314.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-https://github.com/testing-cabal/testtools/commit/79fa5d41a05c423cf43a65d2b347c7c566bcdfa5
-
-From 79fa5d41a05c423cf43a65d2b347c7c566bcdfa5 Mon Sep 17 00:00:00 2001
-From: Stephen Finucane <stephen@that.guru>
-Date: Fri, 21 Feb 2025 11:14:35 +0000
-Subject: [PATCH] Resolve deprecation warning
-
-See [1] for more info.
-
-[1] https://github.com/python/cpython/issues/79893
-
-Signed-off-by: Stephen Finucane <stephen@that.guru>
----
- testtools/testcase.py | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/testtools/testcase.py b/testtools/testcase.py
-index ad983730..4f4923b3 100644
---- a/testtools/testcase.py
-+++ b/testtools/testcase.py
-@@ -268,8 +268,10 @@ def _reset(self):
-
- def __eq__(self, other):
- eq = getattr(unittest.TestCase, "__eq__", None)
-- if eq is not None and not unittest.TestCase.__eq__(self, other):
-- return False
-+ if eq is not None:
-+ eq_ = unittest.TestCase.__eq__(self, other)
-+ if eq_ is NotImplemented or not eq_:
-+ return False
- return self.__dict__ == getattr(other, "__dict__", None)
-
- # We need to explicitly set this since we're overriding __eq__
-
diff --git a/dev-python/testtools/files/testtools-2.7.2-twisted-fix.patch b/dev-python/testtools/files/testtools-2.7.2-twisted-fix.patch
deleted file mode 100644
index bbf943be60d1..000000000000
--- a/dev-python/testtools/files/testtools-2.7.2-twisted-fix.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 5b8cb6497c7159f593e68de6a13e15f7e78e56e3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@atlas.cz>
-Date: Mon, 1 Jul 2024 10:00:05 +0200
-Subject: [PATCH] Prepare tests for upcoming twisted version
-
-Twisted recently changed behavior of logger on failures [1]. It newly
-logs the `Main loop terminated.` even on exceptions, which breaks two
-test in twistedsupport test suite. This hack attempts to address the
-upcoming issue.
-
-[1] https://github.com/twisted/twisted/pull/12207
-
-Upstream-PR: https://github.com/testing-cabal/testtools/pull/387
-
-diff --git a/testtools/tests/twistedsupport/test_runtest.py b/testtools/tests/twistedsupport/test_runtest.py
-index 4b46cc64..f8faf7c6 100644
---- a/testtools/tests/twistedsupport/test_runtest.py
-+++ b/testtools/tests/twistedsupport/test_runtest.py
-@@ -16,7 +16,6 @@
- Contains,
- ContainsAll,
- ContainsDict,
-- EndsWith,
- Equals,
- Is,
- KeysEqual,
-@@ -749,7 +748,7 @@ def test_something(self):
- test,
- {
- "traceback": Not(Is(None)),
-- "twisted-log": AsText(EndsWith(" foo\n")),
-+ "twisted-log": AsText(Contains(" foo\n")),
- },
- ),
- ("stopTest", test),
-@@ -790,7 +789,8 @@ def test_something(self):
- result = self.make_result()
- runner.run(result)
- self.assertThat(
-- messages, MatchesListwise([ContainsDict({"message": Equals(("foo",))})])
-+ messages[0:1],
-+ MatchesListwise([ContainsDict({"message": Equals(("foo",))})]),
- )
-
- def test_restore_observers(self):
diff --git a/dev-python/testtools/testtools-2.7.2-r1.ebuild b/dev-python/testtools/testtools-2.7.2-r1.ebuild
deleted file mode 100644
index 4abb03a66fca..000000000000
--- a/dev-python/testtools/testtools-2.7.2-r1.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-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} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Extensions to the Python standard library unit testing framework"
-HOMEPAGE="
- https://github.com/testing-cabal/testtools/
- https://pypi.org/project/testtools/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- >=dev-python/fixtures-2.0.0[${PYTHON_USEDEP}]
- dev-python/testscenarios[${PYTHON_USEDEP}]
- dev-python/testresources[${PYTHON_USEDEP}]
- dev-python/twisted[${PYTHON_USEDEP}]
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.7.2-twisted-fix.patch"
- "${FILESDIR}/${PN}-2.7.2-py314.patch"
-)
-
-distutils_enable_sphinx doc
-
-python_test() {
- cp testtools/tests/__init__.py test_suite.py || die
- if ! has_version "dev-python/twisted[${PYTHON_USEDEP}]"; then
- sed -i -e '/twistedsupport/d' test_suite.py || die
- fi
-
- "${EPYTHON}" -m testtools.run test_suite.test_suite ||
- die "tests failed under ${EPYTHON}"
-}
diff --git a/dev-python/tifffile/Manifest b/dev-python/tifffile/Manifest
index 744af0e6a0a5..e0c503806217 100644
--- a/dev-python/tifffile/Manifest
+++ b/dev-python/tifffile/Manifest
@@ -1 +1,2 @@
DIST tifffile-2026.6.1.gh.tar.gz 418247 BLAKE2B 2c20840bbf901fda3b001638d93887e1821d8aa4325f903f44bfdc65e1e48eef80ea087dec7443a415f8d767859ddb588e7292dd85805e27ae86894e6463ffb1 SHA512 4296d605ce212b065acb288b8a60515f9fcd4135474523eb68261736c1861606969c54f33a75116b6908c4218a6392a0f9cba008c2409e7744ee5a19d2bb767a
+DIST tifffile-2026.7.14.gh.tar.gz 423471 BLAKE2B 14670ce0fc117ef1cc95e6bd161ae5dc68a0a85594aa2b49b77b6d6fe0460fb914536117bcaae61a95d4c2646032359b2be358865273d6119032fcca03ea1950 SHA512 9cb973d885c931afbec1754f50bd121580d1ba9bce8e49b95c122b0fc960f4c76b7664a669aa8a46251d4a82647a41420be85c1ca9400155d7c05042b92208b5
diff --git a/dev-python/tifffile/tifffile-2026.7.14.ebuild b/dev-python/tifffile/tifffile-2026.7.14.ebuild
new file mode 100644
index 000000000000..49630e1bd1b8
--- /dev/null
+++ b/dev-python/tifffile/tifffile-2026.7.14.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2021-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="Read and write TIFF files"
+HOMEPAGE="
+ https://pypi.org/project/tifffile/
+ https://github.com/cgohlke/tifffile/
+ https://www.cgohlke.com/
+"
+SRC_URI="
+ https://github.com/cgohlke/tifffile/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/numpy-2.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ >=dev-python/fsspec-2021.5.0[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/xarray[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # not marked properly
+ # https://github.com/cgohlke/tifffile/pull/308
+ tests/test_tifffile.py::test_issue_dcp
+ # meaningless and broken on py<3.13
+ # https://github.com/cgohlke/tifffile/pull/309
+ tests/test_tifffile.py::test_gil_enabled
+ )
+
+ local -x SKIP_LARGE=1
+ local -x SKIP_HTTP=1
+
+ epytest
+}
diff --git a/dev-python/twython/twython-3.9.1-r1.ebuild b/dev-python/twython/twython-3.9.1-r1.ebuild
index b0d7741bc9ce..2a62f3dae268 100644
--- a/dev-python/twython/twython-3.9.1-r1.ebuild
+++ b/dev-python/twython/twython-3.9.1-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/dev-util/android-studio/Manifest b/dev-util/android-studio/Manifest
index 88a974551939..0b5d07adeb38 100644
--- a/dev-util/android-studio/Manifest
+++ b/dev-util/android-studio/Manifest
@@ -1 +1 @@
-DIST android-studio-quail1-patch2-linux.tar.gz 1529034844 BLAKE2B add83a328549401870044e843aa594c7efcaead55d62ee0b2af0e5de104f28f468fa960bf2d6663b7f74276f219af872696357e2ff0e4193da85caf9a790d9ba SHA512 69a6e0019c21a2f49271ed2bfd2cf21c33b511a6db0114985be7edb5f0148dc94c4818ea10d170b36042b0d77c02dcce66da9df3a17e780b2b7f14986de1fe21
+DIST android-studio-quail2-linux.tar.gz 1541218005 BLAKE2B 9f61ad03790109850b572a313cb71d7a7bc3e107158577cf22478cfbff8a51bf895ae0eb55a46f652b749d92d42b113d5c1712b13886e171a8e0df7cbd9841cd SHA512 27ff348ccb82d6ae5ec4e44449459d6286672774e8aa2350a3a98d1d1c0d1983c53cb48dac69c19bc13338f199fd916ffc4020b3743de476e8adbfe04fcceedd
diff --git a/dev-util/android-studio/android-studio-2026.1.1.10.ebuild b/dev-util/android-studio/android-studio-2026.1.2.10.ebuild
index e281069aa649..e332ac5703df 100644
--- a/dev-util/android-studio/android-studio-2026.1.1.10.ebuild
+++ b/dev-util/android-studio/android-studio-2026.1.2.10.ebuild
@@ -31,7 +31,7 @@ QA_PREBUILT="
DESCRIPTION="Android development environment based on IntelliJ IDEA"
HOMEPAGE="https://developer.android.com/studio"
-SRC_URI="https://edgedl.me.gvt1.com/android/studio/ide-zips/${PV}/${PN}-quail1-patch2-linux.tar.gz"
+SRC_URI="https://edgedl.me.gvt1.com/android/studio/ide-zips/${PV}/${PN}-quail2-linux.tar.gz"
S=${WORKDIR}/${PN}
LICENSE="Apache-2.0 android BSD BSD-2 CDDL-1.1 CPL-0.5
EPL-1.0 GPL-2 GPL-2+ JDOM IJG LGPL-2.1 MIT
diff --git a/dev-util/pkgconf/Manifest b/dev-util/pkgconf/Manifest
index e3eb8b8e8b51..cf204fcd8f92 100644
--- a/dev-util/pkgconf/Manifest
+++ b/dev-util/pkgconf/Manifest
@@ -1,2 +1,2 @@
DIST pkgconf-2.5.1.tar.xz 328064 BLAKE2B 0995c1d649876d27e9275a77b702c0c100979c7b83fb7b58c925ca287be5e1568dd7ae2781dac51beb9e84a41d4424428f0542e4de488c45d005d602e76e1277 SHA512 e654c3a460e5f0f801e8ac43ad9086f397d1da0553186ff05f5f0e18ffdac99fb652fd9b6c0379db4bc8307699699d69bc66d13cc85a4a6b0cd36462f5948a1d
-DIST pkgconf-3.0.2.tar.xz 415496 BLAKE2B 61839b1cd0fce9e9f08a0c74b6fe524bca72616959a37029579ebf64e974fb6dd6ff42a2c5a814988750ed3f92efe30a1e5b3a1ef8aa7dc1c7e10e15fae80aff SHA512 bb8909aefab2739850d90d6d490f9436fb021ce89ec9a9ed27dfc5ed70f17210615920e1d0499f3f55b0417a3b4f9d64dcd095ded8749f2d16b910eac03f6c85
+DIST pkgconf-3.0.3.tar.xz 415512 BLAKE2B 1de3b5f81b1bf291c3861c39244e2020de5333046f594161e687aa56388615b5b6d97db07cee9f19d66d6c6dae09a50e8b1045f8718ab8c7bea5e630a1252e2e SHA512 72dfd924e4e1763ac362ed7ed2f88378d05f21118f67883a521524fbf8500d6e21152805802cd104dbd123d427dc2b0293a3e0c05b7553d42c0f1eb418a0331f
diff --git a/dev-util/pkgconf/pkgconf-3.0.2.ebuild b/dev-util/pkgconf/pkgconf-3.0.3.ebuild
index d77151edc86d..d77151edc86d 100644
--- a/dev-util/pkgconf/pkgconf-3.0.2.ebuild
+++ b/dev-util/pkgconf/pkgconf-3.0.3.ebuild
diff --git a/dev-vcs/hg-git/hg-git-1.2.0-r1.ebuild b/dev-vcs/hg-git/hg-git-1.2.0-r1.ebuild
index 5659fb520f6c..d28e4ba497ce 100644
--- a/dev-vcs/hg-git/hg-git-1.2.0-r1.ebuild
+++ b/dev-vcs/hg-git/hg-git-1.2.0-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"
@@ -21,7 +21,7 @@ IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
- >=dev-vcs/mercurial-6.6[${PYTHON_USEDEP}]
+ <dev-vcs/mercurial-7.2[${PYTHON_USEDEP}]
>=dev-python/dulwich-0.21.6[${PYTHON_USEDEP}]
"
DEPEND="
diff --git a/eclass/java-osgi.eclass b/eclass/java-osgi.eclass
index 114790d824bf..544a5eaa0a57 100644
--- a/eclass/java-osgi.eclass
+++ b/eclass/java-osgi.eclass
@@ -9,6 +9,7 @@
# @SUPPORTED_EAPIS: 8
# @PROVIDES: java-utils-2
# @BLURB: Java OSGi eclass
+# @DEPRECATED: none
# @DESCRIPTION:
# This eclass provides functionality which is used by packages that need to be
# OSGi compliant. This means that the generated jars will have special headers
diff --git a/games-action/prismlauncher/Manifest b/games-action/prismlauncher/Manifest
index 933187b71454..31d97f245ae4 100644
--- a/games-action/prismlauncher/Manifest
+++ b/games-action/prismlauncher/Manifest
@@ -1,5 +1,6 @@
DIST prismlauncher-10.0.5.tar.gz 4078955 BLAKE2B e8ff80fa957e33e3d6b17ba89c28c19869dd0a16fc440c40ccbf56e77bedaa918a8dc3082538acdba2ccd2eac5f541705dcdd177a1499eb6157cae4073d120a0 SHA512 b8e99817a10b63bba4bdc450d0b3801c3e3d3c3939c46427a1605c77452d3c88cd30016faf829e88f4e164403b19739f0579cfc1f14865f73c598e3bd70ad556
DIST prismlauncher-11.0.0.tar.gz 4104245 BLAKE2B 5f5f6c297bb7fbdbe5afb53f880d2c8093f848d02db63a2883a1253dcdc1abfafe7c4df2d6da709bcb775097c0ce272e5683bb7395746e7c18a68dd20ee7adfd SHA512 75a440647a4046a45016183ad9c57ea68711969cc93856b5b5d2dc450b4371745e04efa5e9b7a43559a485a6e7efa5b4b4f5482f8283448428217000dec49d59
DIST prismlauncher-11.0.2.tar.gz 4104613 BLAKE2B 2fd5affcda9fd7604e47f054ee809f23d26586cada65dd47acd73c854b3d26bc76bab77f7e4736c32c6c8b621c934160caea40924946283c163b949ee28987b0 SHA512 910b9b82b216619887dc93d9d62b10fe71cb4d3a700d94ffe0759b16f5fdcea3e4f047dfdfb20bbbd9c74b82454b717ebd769f316ce816a258f2f1e8b1620792
+DIST prismlauncher-11.0.3.tar.gz 4111624 BLAKE2B 539b6d38b8b0feb593581c72628bd0fc21ad6bb0780b09cdfcbef10ef19aa8d8af289f0ba4deac4ba64a5eb4aa72637031cb0062bb25a7537b768e1a62793523 SHA512 00070da6372738f7d30e11ced5115bb97a73c424ed10bfb385e00cf9f8b9a7a13206da382e82913d9eb9a17affbe9859debf0b997c336debcdd7d9d2e525b0b0
DIST prismlauncher-9.1.tar.gz 8460672 BLAKE2B 1bb31dab88d9ca4317e61b6938f9b5aeb0b76cab3407d69b62ecf9bfa1ade3308a8927f53e020b6531fbe0cce962c7e560727298a911f07b9fec1f51b1470cd9 SHA512 5a486bb0034464be873d80512ba164fab44eb60e3abda28771387f8bed471c5a323269a5f961a0950692915698b849bb4e7de7405c26e3ad29aa8732f140a66d
DIST prismlauncher-9.4.tar.gz 8544189 BLAKE2B 57bb4391e8b84265e42b08545bb0cf64046915fca2a80a7f40923f6abf605d9bdd7efefae40694cb5118451346ed4cf8b9d77291b6ebc5b82ec1bb1fbafc16fc SHA512 7a81d6bd77da953ca92311f93ed753287b837ebdf51ae6898afa14769a0407eee55c17b6d9e09f4623f012375314b533c2a0bca2a16dedcce2e5327a5a1930a6
diff --git a/games-action/prismlauncher/prismlauncher-11.0.3.ebuild b/games-action/prismlauncher/prismlauncher-11.0.3.ebuild
new file mode 100644
index 000000000000..01c2573e94d0
--- /dev/null
+++ b/games-action/prismlauncher/prismlauncher-11.0.3.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+QTMIN=6.0.0
+inherit branding cmake java-pkg-2 optfeature toolchain-funcs xdg
+
+DESCRIPTION="Custom, open source Minecraft launcher"
+HOMEPAGE="https://prismlauncher.org/ https://github.com/PrismLauncher/PrismLauncher"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/PrismLauncher/PrismLauncher"
+ EGIT_SUBMODULES=( 'libraries/libnbtplusplus' )
+else
+ MY_PN="PrismLauncher"
+ # use vendored tarball to avoid dealing with submodules directly
+ SRC_URI="
+ https://github.com/PrismLauncher/PrismLauncher/releases/download/${PV}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz
+ "
+ S="${WORKDIR}/${MY_PN}-${PV}"
+ KEYWORDS="~amd64 ~arm64"
+fi
+
+# GPL-3 for PolyMC (PrismLauncher is forked from it) and Prism itself
+# Apache-2.0 for MultiMC (PolyMC is forked from it)
+# LGPL-3+ for libnbtplusplus
+# rest of its libs: https://github.com/PrismLauncher/PrismLauncher/tree/develop/libraries
+LICENSE="Apache-2.0 BSD BSD-2 GPL-2+ GPL-3 ISC LGPL-2.1+ LGPL-3+"
+SLOT="0"
+IUSE="test"
+
+RESTRICT="!test? ( test )"
+
+# Required at both build time and runtime
+COMMON_DEPEND="
+ app-arch/libarchive:=
+ app-text/cmark:=
+ dev-cpp/tomlplusplus
+ >=dev-qt/qtbase-${QTMIN}:6[concurrent,gui,opengl,network,vulkan,widgets,xml(+)]
+ >=dev-qt/qtnetworkauth-${QTMIN}:6
+ games-util/gamemode
+ media-gfx/qrencode:=
+ virtual/zlib:=
+"
+# max jdk-25 for bug #968411
+DEPEND="${COMMON_DEPEND}
+ media-libs/libglvnd
+ <virtual/jdk-26:*
+"
+# QtSvg imageplugin needed at runtime for svg icons, via QIcon.
+# At runtime we don't depend on JDK, only JRE
+# And we need more than just the GL headers
+RDEPEND="${COMMON_DEPEND}
+ >=dev-qt/qtsvg-${QTMIN}:6
+ >=virtual/jre-1.8.0:*
+ virtual/opengl
+"
+BDEPEND="
+ app-text/scdoc
+ >=kde-frameworks/extra-cmake-modules-6.0.0:*
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-11.0.2-fortify-source-redef.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ local java="$(java-config -f)"
+ local java_version=${java//[^0-9]/}
+ if [[ ${java_version} -ge 20 ]]; then
+ elog "Java 20 and up has dropped binary compatibility with java 7."
+ elog "${PN} is being compiled with java ${java_version}."
+ elog "The sources will be patched to build binary compatible with"
+ elog "java 8 instead of java 7. This may cause issues with very old"
+ elog "Minecraft versions and/or older forge versions."
+ elog
+ elog "If you experience any problems, install an older java compiler"
+ elog "and select it with \"eselect java\", then recompile ${PN}."
+ eapply "${FILESDIR}/${PN}-10.0.3-openjdk21.patch"
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="/usr"
+ # Resulting binary is named prismlauncher
+ -DLauncher_APP_BINARY_NAME="${PN}"
+ -DLauncher_BUILD_PLATFORM="${BRANDING_OS_PRETTY_NAME}"
+ -DLauncher_QT_VERSION_MAJOR=6
+
+ -DENABLE_LTO=$(tc-is-lto)
+ -DBUILD_TESTING=$(usex test)
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ # Original issue: https://github.com/PolyMC/PolyMC/issues/227
+ optfeature "old Minecraft (<= 1.12.2) support" x11-apps/xrandr
+
+ optfeature "built-in MangoHud support (available in GURU overlay)" games-util/mangohud
+ optfeature "built-in Feral Gamemode support" games-util/gamemode
+}
diff --git a/games-emulation/zsnes/Manifest b/games-emulation/zsnes/Manifest
index addaa2afec69..4407fe7a35ce 100644
--- a/games-emulation/zsnes/Manifest
+++ b/games-emulation/zsnes/Manifest
@@ -1,2 +1,2 @@
-DIST zsnes-2.1.0.tar.gz 1209591 BLAKE2B f0bc9de0cad3ee52b552a66be3dea43d63d8587b21ae016685a5917d0939b4939d51088feba8f6afc3cb881ab85d37fc2af55ef952b477a90fba87adf0d9af4e SHA512 65169452bc9f31dbb2282960c57fe804980776ebd5d46cfec9e59240d3fb40f11a6720db5a77e8e3d58c2ca6b260a97ac68ed98b162aa3a6ac79458dfaef242b
DIST zsnes-2.1.1.tar.gz 1211001 BLAKE2B 7f40305c86adf80dc6f4bec24dbb82929abc8d4dac54cb81693f9e74968a7300c88b99122cd32abea1bd3b91f0476925433581734e446a9d7b61cfc2e6359fe8 SHA512 10e71c5f9bcebf889625696f6f83a40cb7529291f3ef37113ddf8c0f231e199e6d4ca48274a4bee54996290ec9cf119b9ffc90c0df316da0097df18a043529af
+DIST zsnes-2.2.1.tar.gz 1241244 BLAKE2B 28f6f5b9acffd6109f30fbed1952866ed7952679124e7d39bd6e2004a53f3124b984489c848965fdaa882b1f488fd35259d22d6cdf3bd6cf5ce7bafb2bc5f5a1 SHA512 599fe81b296e00ad47158d57fc1d844ebd58639054b4d39c3a961bb8c9a057c1132b2dd9c5476bccb96da7bd5cf54073e76db54e2cb0a75d080ade73e3795214
diff --git a/games-emulation/zsnes/zsnes-2.1.0.ebuild b/games-emulation/zsnes/zsnes-2.2.1.ebuild
index 00ec04d501bb..1118834c29b9 100644
--- a/games-emulation/zsnes/zsnes-2.1.0.ebuild
+++ b/games-emulation/zsnes/zsnes-2.2.1.ebuild
@@ -23,14 +23,10 @@ RDEPEND="
media-libs/libpng:=[abi_x86_32(-)]
media-libs/libsdl3[abi_x86_32(-),opengl]
virtual/zlib:=[abi_x86_32(-)]
- x11-libs/libX11[abi_x86_32(-)]
ao? ( media-libs/libao[abi_x86_32(-)] )
pipewire? ( media-video/pipewire:=[abi_x86_32(-)] )
"
-DEPEND="
- ${RDEPEND}
- x11-base/xorg-proto
-"
+DEPEND="${RDEPEND}"
BDEPEND="
${PYTHON_DEPS}
dev-lang/nasm
@@ -50,12 +46,15 @@ src_compile() {
if use !custom-cflags; then
strip-flags
append-cppflags -U_FORTIFY_SOURCE # to disable =3, Makefile enables =2
+
+ # furthermore fails with -Werror=strict-aliasing+lto-type-mismatch
+ append-cflags -fno-strict-aliasing
+ filter-lto
fi
use amd64 && multilib_toolchain_setup x86
- tc-export CC CXX
+ tc-export CC
append-cflags ${CPPFLAGS}
- append-cxxflags ${CPPFLAGS}
ZSNES_MAKEARGS=(
ARCH=LINUX
diff --git a/games-engines/devilutionx/Manifest b/games-engines/devilutionx/Manifest
index cc8a8e0d7ead..d134328735a7 100644
--- a/games-engines/devilutionx/Manifest
+++ b/games-engines/devilutionx/Manifest
@@ -1,2 +1 @@
-DIST devilutionx-1.5.4.tar.xz 22665424 BLAKE2B 2debdc0235618bf3b244da4b6ef48af45c0940bba7b923fefec3d1a2183e80459b5a997440008d56fe9483cb84e2b78c6eff41e21b4c25617fba067e7e27f704 SHA512 1d601453a826d4a214f851844c1b6e68114ac099f152464edbabe4e6bfd4553746ab1e6da83a01e6318e83f8e559000052a991fbfb7e88c6f1a7e9d059ab3380
DIST devilutionx-1.5.5.tar.xz 22561696 BLAKE2B 2023d8483f712507a90b0a121ac985a0cbeb745989d501b8b8a9de8367d1645cdc58767d0992d579181710518b63177dbf591d97aea318a3fe12c9d9a587d8d5 SHA512 e62d11f9970625f5d20a0b9a46a2c90b6d837e02ca1d7665b0d8e21049d745237ed2b6f17c40e606178ae987a4e5a9a6d711844fef7c173c71c1192689697bb1
diff --git a/games-engines/devilutionx/devilutionx-1.5.4-r1.ebuild b/games-engines/devilutionx/devilutionx-1.5.4-r1.ebuild
deleted file mode 100644
index a885ff46e940..000000000000
--- a/games-engines/devilutionx/devilutionx-1.5.4-r1.ebuild
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake xdg
-
-DESCRIPTION="Diablo engine for modern operating systems"
-HOMEPAGE="https://github.com/diasurgical/devilutionX/"
-SRC_URI="
- https://github.com/diasurgical/devilutionX/releases/download/${PV}/devilutionx-src.tar.xz
- -> ${P}.tar.xz
-"
-S=${WORKDIR}/${PN}-src-${PV}
-
-LICENSE="
- Sustainable-Use-1.0
- Boost-1.0 BSD CC-BY-4.0 GPL-2+ LGPL-2.1+ MIT OFL-1.1
- zerotier? ( BUSL-1.1 )
-"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc64 ~x86"
-IUSE="debug +sodium test zerotier"
-RESTRICT="bindist mirror !test? ( test )"
-
-RDEPEND="
- app-arch/bzip2:=
- dev-libs/libfmt:=
- media-libs/libsdl2[haptic,joystick,opengl,video]
- media-libs/sdl2-image[png]
- media-libs/sdl_audiolib
- virtual/zlib:=
- sodium? ( dev-libs/libsodium:= )
-"
-DEPEND="
- ${RDEPEND}
- dev-cpp/simpleini
- test? ( dev-cpp/gtest )
-"
-BDEPEND="
- sys-devel/gettext
-"
-
-CMAKE_SKIP_TESTS=(
- # timedemo tests only pass when game assets are available
- Timedemo.
-)
-
-src_prepare() {
- cmake_src_prepare
-
- # ensure system copies are used
- rm -r dist/{simpleini,sdl_audiolib}-src || die
-}
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_TESTING=$(usex test)
- -DCCACHE_PROGRAM=no #813768
- -DDEBUG=$(usex debug)
- -DDISABLE_LTO=yes # let CFLAGS control this
- -DDISABLE_ZERO_TIER=$(usex !zerotier)
- -DPACKET_ENCRYPTION=$(usex sodium)
- -DPIE=yes
- )
-
- cmake_src_configure
-}
-
-src_install() {
- local DOCS=( Packaging/nix/README.txt docs/*.md )
- cmake_src_install
-
- rm -- "${ED}"/usr/share/diasurgical/devilutionx/README.txt || die
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- if [[ ! ${REPLACING_VERSIONS} ]]; then
- elog "In order to play the game, you will need to copy the following data file"
- elog "from the original game, and optionally the hellfire expansion files:"
- elog " - DIABDAT.MPQ"
- elog " - hellfire.mpq hfmonk.mpq hfmusic.mpq hfvoice.mpq"
- elog "to ~/.local/share/diasurgical/devilution/"
- elog
- elog "See ${EROOT}/usr/share/doc/${PF}/README.txt* for details."
- fi
-}
diff --git a/games-engines/devilutionx/devilutionx-1.5.5.ebuild b/games-engines/devilutionx/devilutionx-1.5.5.ebuild
index 4b1cc50c481d..86d3fc008d1c 100644
--- a/games-engines/devilutionx/devilutionx-1.5.5.ebuild
+++ b/games-engines/devilutionx/devilutionx-1.5.5.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
@@ -48,6 +48,10 @@ CMAKE_SKIP_TESTS=(
CMAKE_QA_COMPAT_SKIP=1 #957952
+PATCHES=(
+ "${FILESDIR}"/${P}-missing-include.patch
+)
+
src_prepare() {
cmake_src_prepare
diff --git a/games-engines/devilutionx/files/devilutionx-1.5.5-missing-include.patch b/games-engines/devilutionx/files/devilutionx-1.5.5-missing-include.patch
new file mode 100644
index 000000000000..d4ec0c9d2870
--- /dev/null
+++ b/games-engines/devilutionx/files/devilutionx-1.5.5-missing-include.patch
@@ -0,0 +1,8 @@
+https://bugs.gentoo.org/979231
+https://github.com/diasurgical/DevilutionX/commit/cfa65293579112
+--- a/test/animationinfo_test.cpp
++++ b/test/animationinfo_test.cpp
+@@ -1 +1,3 @@
++#include <iomanip>
++
+ #include <gtest/gtest.h>
diff --git a/gnome-extra/gnome-shell-extension-desktop-icons-ng/Manifest b/gnome-extra/gnome-shell-extension-desktop-icons-ng/Manifest
index cbacfb4c2551..425fe53e9444 100644
--- a/gnome-extra/gnome-shell-extension-desktop-icons-ng/Manifest
+++ b/gnome-extra/gnome-shell-extension-desktop-icons-ng/Manifest
@@ -1,2 +1 @@
-DIST desktop-icons-ng-50.2.0.tar.bz2 177364 BLAKE2B fa81000e7119cd3aa82942d92ce2a7bc1873546aa9fc1256097fc1c0577dc922e45ec3af73a4e0219884607fadb8b5320da9061e23e37d4936ac97601f9ef4d1 SHA512 6b8011d30b975f2230e03077205579735a1434ce0cff14477391a15e7370a81bdb72fe8ddc3be051f7eef2924e3c44462f7bd7f1e717fe540da87cd3b1f6273b
DIST desktop-icons-ng-50.3.0.tar.bz2 178219 BLAKE2B 271c309846d6e0592243f776d01f2974f12707a46fa49a671de69ee4ebf5960d54e17e8bf47ec7aa9d96a831b0b82c597c2c4e3505fc952f76cf67751aa3bc2c SHA512 f4d077973267f144780046355f5056e12f0e8508372f582a28832af7fc3a02fbb6a04190cb690f2cf870519cab05181679c652002e4eed2bfec69c0dd5396369
diff --git a/gnome-extra/gnome-shell-extension-desktop-icons-ng/gnome-shell-extension-desktop-icons-ng-50.2.0.ebuild b/gnome-extra/gnome-shell-extension-desktop-icons-ng/gnome-shell-extension-desktop-icons-ng-50.2.0.ebuild
deleted file mode 100644
index dc817a909d12..000000000000
--- a/gnome-extra/gnome-shell-extension-desktop-icons-ng/gnome-shell-extension-desktop-icons-ng-50.2.0.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-inherit gnome2-utils meson
-
-MY_PN="desktop-icons-ng"
-MY_P="${MY_PN}-${PV}"
-
-DESCRIPTION="Desktop icon support for GNOME Shell"
-HOMEPAGE="https://gitlab.com/rastersoft/desktop-icons-ng"
-SRC_URI="https://gitlab.com/rastersoft/${MY_PN}/-/archive/${PV}/${MY_P}.tar.bz2"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-COMMON_DEPEND="dev-libs/glib:2"
-RDEPEND="${COMMON_DEPEND}
- app-eselect/eselect-gnome-shell-extensions
- >=gnome-base/gnome-shell-46
- >=gnome-base/nautilus-3.38
-"
-DEPEND="${COMMON_DEPEND}"
-
-pkg_preinst() {
- gnome2_schemas_savelist
-}
-
-pkg_postinst() {
- gnome2_schemas_update
- ebegin "Updating list of installed extensions"
- eselect gnome-shell-extensions update
- eend $?
-}
-
-pkg_postrm() {
- gnome2_schemas_update
-}
diff --git a/gnome-extra/gnome-shell-extension-lockscreen-studio/Manifest b/gnome-extra/gnome-shell-extension-lockscreen-studio/Manifest
new file mode 100644
index 000000000000..eef0dbc5a107
--- /dev/null
+++ b/gnome-extra/gnome-shell-extension-lockscreen-studio/Manifest
@@ -0,0 +1 @@
+DIST gnome-shell-extension-lockscreen-studio-1.1.2.tar.gz 870331 BLAKE2B 2d172b6cc63a50818a8445bb1c4dd71d24feaa6a377b42e4b46950640f94b89de64df6d3e591b77961667a4a0648df3b88ef699fcd444940cb773ef115475d8e SHA512 ca4ba1dc01b269e3f80021d13abf7ec0e3b4ab2239c51c3f34300fbf1336634132ae681fa5ba49dabab516f2906289297e1d595651001815bb3b8512d91eb82c
diff --git a/gnome-extra/gnome-shell-extension-lockscreen-studio/gnome-shell-extension-lockscreen-studio-1.1.2.ebuild b/gnome-extra/gnome-shell-extension-lockscreen-studio/gnome-shell-extension-lockscreen-studio-1.1.2.ebuild
new file mode 100644
index 000000000000..8a299362a73f
--- /dev/null
+++ b/gnome-extra/gnome-shell-extension-lockscreen-studio/gnome-shell-extension-lockscreen-studio-1.1.2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit gnome2-utils
+
+DESCRIPTION="Customization extension for the gnome-shell lock screen"
+HOMEPAGE="https://github.com/phenrique-coder/lockscreen-studio"
+SRC_URI="https://github.com/phenrique-coder/lockscreen-studio/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P/gnome-shell-extension-}"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="amd64"
+
+RDEPEND="
+ dev-libs/glib:2
+ app-eselect/eselect-gnome-shell-extensions
+ >=gnome-base/gnome-shell-45
+"
+
+extension_uuid="lockscreen-studio@pedro.projects"
+
+src_install() {
+ einstalldocs
+ insinto /usr/share/glib-2.0/schemas
+ doins schemas/*.xml
+ insinto /usr/share/gnome-shell/extensions/"${extension_uuid}"
+ doins metadata.json extension.js prefs.js
+}
+
+pkg_preinst() {
+ gnome2_schemas_savelist
+}
+
+pkg_postinst() {
+ gnome2_schemas_update
+ ebegin "Updating list of installed extensions"
+ eselect gnome-shell-extensions update
+ eend $?
+}
+
+pkg_postrm() {
+ gnome2_schemas_update
+}
diff --git a/gnome-extra/gnome-shell-extension-lockscreen-studio/metadata.xml b/gnome-extra/gnome-shell-extension-lockscreen-studio/metadata.xml
new file mode 100644
index 000000000000..ddb376056c16
--- /dev/null
+++ b/gnome-extra/gnome-shell-extension-lockscreen-studio/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>pacho@gentoo.org</email>
+ </maintainer>
+ <stabilize-allarches />
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/gnome-extra/pch-session/Manifest b/gnome-extra/pch-session/Manifest
index e749dbb62520..cf143cb0a8fb 100644
--- a/gnome-extra/pch-session/Manifest
+++ b/gnome-extra/pch-session/Manifest
@@ -1,2 +1,3 @@
DIST pch-session-48.0.tar.bz2 3611182 BLAKE2B b83403ea6bd18aef4f58204835fb9e1276ea3b97eac6a12c1a4658ff92a44e3f99cfcecebe11070aef97f7b6992a0156387b14f2c2321e31f0c55fb77460dd37 SHA512 62c0a71b3a47c011ed14c7b076a0d38917dcbf13862f1571da6004a61cef9c21503d3d46a8073109f06d9b5f6dc153c9fb7a72e945d60578201bbfbbfbd2be6c
DIST pch-session-49.0.tar.bz2 3611391 BLAKE2B 56d4fd3b2cd10deb57953126fc58f642c151e8a873a63847a679992ddcd70bf84090fcccb404ee1ae4411f096a6a4258d042ad13e47304a60a4fcb745e2efa96 SHA512 4f24cd28da543e10da4f522aa6a08254b6a5d37dfb73409c8886d10e1da4d0a5df73718fcac415109d4b82b1506510ceb777f3232b2a6cd0eaeea85cc1c4e795
+DIST pch-session-49.1.tar.bz2 3611440 BLAKE2B 1b8d1a93abe501602bc84a6944e9ead1e2467373da379ec44f268b9b08dbe2df96795a9b8e53ef1c248a37895a8ddb0b5a1a46e24e15910ca96569fdab3ceb00 SHA512 b997ccaa992865ece1d388a6145f76df879746269c97eabb1726c429f7184bb73c94b9f1288947a7ef6ce944440a8dfc57542c5e30f2ebf8835103bf172438fd
diff --git a/gnome-extra/pch-session/pch-session-49.1.ebuild b/gnome-extra/pch-session/pch-session-49.1.ebuild
new file mode 100644
index 000000000000..65e6f118eac2
--- /dev/null
+++ b/gnome-extra/pch-session/pch-session-49.1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 2019-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit gnome2-utils
+
+DESCRIPTION="Unofficial gnome based session with different default settings and extensions"
+HOMEPAGE="https://gitlab.com/pachoramos/pch-session"
+SRC_URI="https://gitlab.com/pachoramos/${PN}/-/archive/${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="breeze qt6 wayland webp"
+
+RDEPEND="
+ >=gnome-base/gnome-shell-49
+ >=gnome-extra/gnome-shell-extensions-49
+ >=gnome-extra/gnome-shell-extension-alphabetical-grid-44.0
+ >=gnome-extra/gnome-shell-extension-appindicator-64
+ >=gnome-extra/gnome-shell-extension-applications-overview-tooltip-24
+ >=gnome-extra/gnome-shell-extension-bing-wallpaper-52
+ >=gnome-extra/gnome-shell-extension-dash-to-panel-73
+ >=gnome-extra/gnome-shell-extension-desktop-icons-ng-50.0.0
+ >=gnome-extra/gnome-shell-extension-gsconnect-71
+ >=gnome-extra/gnome-shell-extension-lockscreen-studio-1.1.2
+ >=gnome-extra/gnome-shell-extension-weather-oclock-50.2
+ >=gnome-extra/gnome-tweaks-49
+
+ >=gnome-extra/gnome-clocks-49
+ >=media-fonts/fonts-meta-2
+ || (
+ sys-apps/tuned[ppd]
+ sys-power/power-profiles-daemon
+ )
+ x11-themes/papirus-icon-theme
+
+ breeze? ( kde-plasma/breeze:6 )
+ qt6? (
+ x11-themes/QGnomePlatform
+ wayland? ( x11-themes/QAdwaitaDecorations )
+ )
+ webp? ( gui-libs/gdk-pixbuf-loader-webp )
+"
+
+pkg_preinst() {
+ gnome2_schemas_update
+}
+
+src_install() {
+ insinto /
+ doins -r usr/ etc/
+ einstalldocs
+}
+
+pkg_postinst() {
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ gnome2_schemas_update
+}
diff --git a/mail-mta/postfix/Manifest b/mail-mta/postfix/Manifest
index eeec304b0e96..673049ef8db7 100644
--- a/mail-mta/postfix/Manifest
+++ b/mail-mta/postfix/Manifest
@@ -1,4 +1,4 @@
DIST postfix-3.11.5.tar.gz 5287872 BLAKE2B c677014019ce0851e45b103e5d6a88972a10cd3685d4c68b47f6b94ee318b9e81fb017f5b15f4307f3b8c6719afcbba33f4fc1c31a4fb65fe040522d6af38704 SHA512 af9d3678844afcbdf77c228e29138255a935c63988c3b8dff31bb2a66315f376d94d782b5545829e1491c6a1335172ad194b7f8fd02038db35cd6527cff82087
DIST postfix-3.11.5.tar.gz.asc 220 BLAKE2B 410b111707ebd9539e8be33a9bd2605d7515c0931d971cbaf0114e3f8f505e759d6c9c25350080becebb77532ca03ece647c14ce15b2d10f5e938bd08e6f76a3 SHA512 7e8fe9ace6ada3168cf7f1f6611879c5a0015c0114d5da07ed46e6d9455847be4963c79dcfdf60b53b07b2a7dadf24d6e2449c81a72e966bc75613ef83f4a7b8
-DIST postfix-3.12-20260710.tar.gz 5409047 BLAKE2B 74855cd589dbce0b09d0bc9a630bdb83687df20dc9eaec5468556993cde47bbf10508b6c414e0f2f82fb6c321c4e34ed267b4dc8209007577649b751e896d52c SHA512 aefacbc9830fa8620eb64c04e371d08630277a238858f5a3943f64bd25b511ad41576471bfa61301206da6c593e2b78009a37b45cbf456688e83e92a28983011
-DIST postfix-3.12-20260710.tar.gz.asc 220 BLAKE2B 93ad238879128c521cf1a9a2f523d70fbecaaeb35abeb812d2380d02ab6354474666b6cb147e03d899b4fdac359476126afbd07499475ffbedb5cc86b78d5e5f SHA512 527ccc8f7b3806af805a28ae30afa165a3cb5cee89a883773316d337d26f2bac7a48ebfd16a75c4d7787cd03c5876da8091967806ebd1452c91bc7975a6e81ec
+DIST postfix-3.12-20260713.tar.gz 5409855 BLAKE2B 110319b0223f74732849d32a6f5aad8af292de3c749f963ac3fa681237d5c2d15a8d1889d1c211efe960c09bb8383c78f20397c3dc80e634c07f8cb116bcb321 SHA512 c2564be73753c0b0329a05addfa3a92a9414a5207a07c60fec5ebc62c35967188224c282974819d40bf7943c86f13697f099c849205313befcf3f012ffcc2f07
+DIST postfix-3.12-20260713.tar.gz.asc 220 BLAKE2B 992480afdbbeb28d640d2425286b8e3da5e78f9f10a1da9465c80b8103e4b2940f5104f0a181096d91dd54ef0cfd10da51488c8ea4154889885a3507391c3e7e SHA512 671eff57e4cff47fb58545fddfe7876ed87763ccc24605966687acbda08c7b0e16e46891b57242e70e184f00fe1e29ba16fd6a0f87ec66da67e7ec3ea773cc42
diff --git a/mail-mta/postfix/postfix-3.12_pre20260710.ebuild b/mail-mta/postfix/postfix-3.12_pre20260713.ebuild
index 3b1e7e4d29ff..3b1e7e4d29ff 100644
--- a/mail-mta/postfix/postfix-3.12_pre20260710.ebuild
+++ b/mail-mta/postfix/postfix-3.12_pre20260713.ebuild
diff --git a/media-libs/fontconfig/Manifest b/media-libs/fontconfig/Manifest
index 986dd9fe0311..3df1bdcfa4ff 100644
--- a/media-libs/fontconfig/Manifest
+++ b/media-libs/fontconfig/Manifest
@@ -1,3 +1,4 @@
DIST fontconfig-2.16.2.tar.xz 1298436 BLAKE2B 24fdbfc573d1a97e08fc159b91e24b77ddeb646e59ab62bb154b18f07383103a8b1e00c635299e1209fb5965dc889b8ab8f5d7228083af1a916978fa69c71136 SHA512 b51ac822f00b41026d74b73aabcdb5ec766b68c478fdb0a50d5ec20c5ad4661ba38417aac088ee86ef097bd1ecda708f818636389acb34502444298a08701c12
DIST fontconfig-2.17.1.tar.xz 1326312 BLAKE2B 6a25826efacd177c89613aa63b0c94312129af500fb0f5a24de3bb16146b68cc42e45d80b020096286f15b730e0cbf0e640d57024f57299caec4a31b6d178ba9 SHA512 c09c1f041f61ee0d220ff906a86b5c4b329106dc96f8c04b23f8fdeb480df626717fe3613bccb41cb39e86334078139322710377f5ddaa3abe48569e798161c9
DIST fontconfig-2.18.1.tar.xz 1358564 BLAKE2B 57fc8c71e670081236e711bf1703ff2821ec4b823bbe51a5e3d3515d4dc3a696d946beaa546edb75562a0e8300db5683f60f38ed31069713601248264198ac27 SHA512 5d637a030625fa5b55399a2711b4dd48949429caae4b80503655bc7bd12b9a58cc278b520660845c9e93dcac4631ad5c36bf97793ac1af1b8f3131e7bd22077c
+DIST fontconfig-2.18.2.tar.xz 1347988 BLAKE2B 537f0f26a13dd967899becb331e303d5ff1d635c64488ca131d0847b2f2a364735f51a0ca9f5cef3e1d7dc7ead9409b1b6d52ad0546bafaeca4a7e46ca86716c SHA512 eba8f7fe5409159d6a9e0fd562dd3a7643da94b41fc0fdb2b742d5f4950ca2d6e636461352b2f148720653c83957373d28329ed20b50e7efd76ecfc60b2f3434
diff --git a/media-libs/fontconfig/fontconfig-2.16.2-r1.ebuild b/media-libs/fontconfig/fontconfig-2.16.2-r1.ebuild
index f5c79c643737..bdc126f245ad 100644
--- a/media-libs/fontconfig/fontconfig-2.16.2-r1.ebuild
+++ b/media-libs/fontconfig/fontconfig-2.16.2-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
@@ -236,6 +236,6 @@ pkg_postinst() {
eend $?
}
- multilib_parallel_foreach_abi multilib_pkg_postinst
+ multilib_foreach_abi multilib_pkg_postinst
fi
}
diff --git a/media-libs/fontconfig/fontconfig-2.17.1.ebuild b/media-libs/fontconfig/fontconfig-2.17.1.ebuild
index 047cef24e3d4..18beab0b1169 100644
--- a/media-libs/fontconfig/fontconfig-2.17.1.ebuild
+++ b/media-libs/fontconfig/fontconfig-2.17.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
@@ -236,6 +236,6 @@ pkg_postinst() {
eend $?
}
- multilib_parallel_foreach_abi multilib_pkg_postinst
+ multilib_foreach_abi multilib_pkg_postinst
fi
}
diff --git a/media-libs/fontconfig/fontconfig-2.18.1.ebuild b/media-libs/fontconfig/fontconfig-2.18.1.ebuild
index da45fb32da70..6e355e3f69b3 100644
--- a/media-libs/fontconfig/fontconfig-2.18.1.ebuild
+++ b/media-libs/fontconfig/fontconfig-2.18.1.ebuild
@@ -235,6 +235,6 @@ pkg_postinst() {
eend $?
}
- multilib_parallel_foreach_abi multilib_pkg_postinst
+ multilib_foreach_abi multilib_pkg_postinst
fi
}
diff --git a/media-libs/fontconfig/fontconfig-2.18.2.ebuild b/media-libs/fontconfig/fontconfig-2.18.2.ebuild
new file mode 100644
index 000000000000..558f5eedd827
--- /dev/null
+++ b/media-libs/fontconfig/fontconfig-2.18.2.ebuild
@@ -0,0 +1,250 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit eapi9-ver multilib meson-multilib python-any-r1 readme.gentoo-r1
+
+DESCRIPTION="A library for configuring and customizing font access"
+HOMEPAGE="https://fontconfig.org/"
+SRC_URI="
+ https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/${PV}/${P}.tar.xz
+ https://fontconfig.org/release/${P}.tar.xz
+"
+
+LICENSE="MIT"
+SLOT="1.0"
+if ! [[ $(ver_cut 3) -ge 90 ]] ; then
+ KEYWORDS="~amd64"
+fi
+IUSE="doc nls test"
+RESTRICT="!test? ( test )"
+
+# - Check minimum freetype & other deps on bumps. See
+# https://gitlab.freedesktop.org/fontconfig/fontconfig/-/blob/main/configure.ac#L314.
+# Note that FT versioning is confusing, need to map it using
+# https://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/VERSIONS.TXT
+# But sometimes it's actually greater than that, e.g. see Fedora's spec file
+# https://src.fedoraproject.org/rpms/fontconfig/blob/rawhide/f/fontconfig.spec#_1
+#
+# - Purposefully dropped the xml USE flag and libxml2 support. Expat is the
+# default and used by every distro. See bug #283191.
+#
+# - There's a test-only dep on json-c.
+# It might become an optional(?) runtime dep in future though. Who knows.
+# Keep an eye on it.
+RDEPEND="
+ >=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}]
+ >=media-libs/freetype-2.9.1[${MULTILIB_USEDEP}]
+ virtual/libintl[${MULTILIB_USEDEP}]
+ !elibc_Darwin? ( !elibc_SunOS? ( sys-apps/util-linux[${MULTILIB_USEDEP}] ) )
+ elibc_Darwin? ( sys-libs/native-uuid )
+ elibc_SunOS? ( sys-libs/libuuid )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-libs/json-c )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=dev-build/meson-1.11.0
+ dev-util/gperf
+ virtual/pkgconfig
+ doc? (
+ =app-text/docbook-sgml-dtd-3.1*
+ app-text/docbook-sgml-utils[jadetex]
+ )
+ nls? ( >=sys-devel/gettext-0.19.8 )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/pytest-tap[${PYTHON_USEDEP}]
+ ')
+ )
+"
+PDEPEND="virtual/ttf-fonts"
+# We need app-eselect/eselect-fontconfig in IDEPEND to update ROOT
+# when cross-compiling.
+IDEPEND="app-eselect/eselect-fontconfig"
+
+PATCHES=(
+ # bug #130466 + make liberation default
+ "${FILESDIR}"/${PN}-2.14.0-latin-update.patch
+ # Fix build failure with -ggdb3
+ "${FILESDIR}"/${PN}-2.17.0-macro-preprocess.patch
+
+ # Patches from upstream (can usually be removed with next version bump)
+)
+
+DOC_CONTENTS="Please make fontconfig configuration changes using
+\`eselect fontconfig\`. Any changes made to /etc/fonts/fonts.conf will be
+overwritten. If you need to reset your configuration to upstream defaults,
+delete the directory ${EROOT}/etc/fonts/conf.d/ and re-emerge fontconfig."
+
+python_check_deps() {
+ use test || return 0
+
+ python_has_version "dev-python/pytest-tap[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ default
+
+ # Test needs network access
+ # https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/319
+ # On bumps, please check to see if this has been fixed
+ # to allow local access!
+ sed -i -e '/test-crbug1004254/d' test/meson.build || die
+}
+
+multilib_src_configure() {
+ local addfonts=(
+ "${EPREFIX}"/usr/local/share/fonts
+ )
+
+ # Harvest some font locations, such that users can benefit from the
+ # host OS's installed fonts
+ case ${CHOST} in
+ *-darwin*)
+ addfonts+=(
+ /Library/Fonts
+ /System/Library/Fonts
+ )
+ ;;
+
+ *-solaris*)
+ [[ -d /usr/X/lib/X11/fonts/TrueType ]] && \
+ addfonts+=( /usr/X/lib/X11/fonts/TrueType )
+ [[ -d /usr/X/lib/X11/fonts/Type1 ]] &&
+ addfonts+=( /usr/X/lib/X11/fonts/Type1 )
+ ;;
+
+ *-linux-gnu)
+ use prefix && [[ -d /usr/share/fonts ]] && \
+ addfonts+=( /usr/share/fonts )
+ ;;
+ esac
+
+ local emesonargs=(
+ # USE=doc only controls the additional bits like html/pdf
+ # and regeneration of man pages from source. We always install
+ # the prebuilt man pages.
+ $(meson_native_use_feature doc)
+ $(meson_native_use_feature doc doc-txt)
+ $(meson_native_use_feature doc doc-html)
+ $(meson_native_use_feature doc doc-man)
+ $(meson_native_use_feature doc doc-pdf)
+
+ $(meson_native_use_feature nls)
+ $(meson_feature test tests)
+ -Dtests-bwrap=disabled
+ -Dtests-external-fonts=disabled
+
+ -Dcache-build=disabled
+ -Dcache-dir="${EPREFIX}"/var/cache/fontconfig
+ -Ddefault-fonts-dirs="${EPREFIX}"/usr/share/fonts
+ -Dadditional-fonts-dirs=$(IFS=, ; echo "${addfonts[*]}" )
+ -Dtemplate-dir="${EPREFIX}"/etc/fonts/conf.avail
+ # TODO: Rust
+ -Dfontations=disabled
+ -Dxml-backend=expat
+
+ # Let users choose via eselect-fontconfig. See bug #900681
+ # and https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/356.
+ -Ddefault-sub-pixel-rendering=none
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install() {
+ MULTILIB_CHOST_TOOLS=( /usr/bin/fc-cache$(get_exeext) )
+
+ meson_src_install
+
+ rm -rf "${ED}"/var/cache || die
+
+ # Avoid calling this multiple times, bug #459210
+ if multilib_is_native_abi; then
+ insinto /etc/fonts
+ doins fonts.conf
+ fi
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ # fc-lang directory contains language coverage datafiles
+ # which are needed to test the coverage of fonts.
+ insinto /usr/share/fc-lang
+ doins fc-lang/*.orth
+
+ dodoc doc/fontconfig-user.{txt,pdf}
+
+ if ! use doc ; then
+ find "${S}" -name "*.[[:digit:]]" -type f -exec doman '{}' + || die
+ fi
+
+ if [[ -e ${ED}/usr/share/doc/fontconfig/ ]] ; then
+ mv "${ED}"/usr/share/doc/fontconfig/* "${ED}"/usr/share/doc/${PF} || die
+ rm -rf "${ED}"/usr/share/doc/fontconfig || die
+ fi
+
+ # Changes should be made to /etc/fonts/local.conf, and as we had
+ # too much problems with broken fonts.conf we force update it ...
+ echo 'CONFIG_PROTECT_MASK="/etc/fonts/fonts.conf"' > "${T}"/37fontconfig || die
+ doenvd "${T}"/37fontconfig
+
+ # As of fontconfig 2.7, everything sticks their noses in here.
+ dodir /etc/sandbox.d
+ echo 'SANDBOX_PREDICT="/var/cache/fontconfig"' > "${ED}"/etc/sandbox.d/37fontconfig || die
+
+ readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+ # bug #193476
+ # /etc/fonts/conf.d/ contains symlinks to ../conf.avail/ to include various
+ # config files. If we install as-is, we'll blow away user settings.
+ ebegin "Syncing fontconfig configuration to system"
+ if [[ -e ${EROOT}/etc/fonts/conf.d ]] ; then
+ local file f
+ for file in "${EROOT}"/etc/fonts/conf.avail/* ; do
+ f=${file##*/}
+ if [[ -L ${EROOT}/etc/fonts/conf.d/${f} ]] ; then
+ [[ -f ${ED}/etc/fonts/conf.avail/${f} ]] \
+ && ln -sf ../conf.avail/"${f}" \
+ "${ED}"/etc/fonts/conf.d/ &>/dev/null
+ else
+ [[ -f ${ED}/etc/fonts/conf.avail/${f} ]] \
+ && rm "${ED}"/etc/fonts/conf.d/"${f}" &>/dev/null
+ fi
+ done
+ fi
+ eend $?
+}
+
+pkg_postinst() {
+ einfo "Cleaning broken symlinks in ${EROOT}/etc/fonts/conf.d/"
+ find -L "${EROOT}"/etc/fonts/conf.d/ -type l -delete
+
+ readme.gentoo_print_elog
+
+ # 2.14.2 and 2.14.2-r1 included the bad 10-sub-pixel-none.conf
+ if ver_replacing -eq 2.14.2 || ver_replacing -eq 2.14.2-r1; then
+ if [[ -e "${EROOT}"/etc/fonts/conf.d/10-sub-pixel-none.conf ]] ; then
+ einfo "Deleting 10-sub-pixel-none.conf from bad fontconfig-2.14.2 (bug #900681)"
+ rm "${EROOT}"/etc/fonts/conf.d/10-sub-pixel-none.conf || die
+ fi
+ fi
+
+ if [[ -z ${ROOT} ]] ; then
+ multilib_pkg_postinst() {
+ ebegin "Creating global font cache for ${ABI}"
+ "${EPREFIX}"/usr/bin/${CHOST}-fc-cache -srf
+ eend $?
+ }
+
+ multilib_foreach_abi multilib_pkg_postinst
+ fi
+}
diff --git a/media-libs/nv-codec-headers/Manifest b/media-libs/nv-codec-headers/Manifest
index cc0c06310e81..4c5786fb75a5 100644
--- a/media-libs/nv-codec-headers/Manifest
+++ b/media-libs/nv-codec-headers/Manifest
@@ -1,3 +1,5 @@
DIST nv-codec-headers-12.1.14.0.tar.gz 77418 BLAKE2B e9e9bb25da88108c8d9168c7d810f12ea3759b1e42e8a2115e5fc45164b1de18d59e30ed3b8a368945fd1a3774c4ad418a90b616cc9ac29cc7912a5e03a0876c SHA512 2b70becf2896a2bb1d1fe06a7e12245c69c34eb67592bb30fa64784063de0b952f9b066ab74c01aec4caca301fe7a3ecc615eeec919f23f6a5fafeff2ada6c18
-DIST nv-codec-headers-12.2.72.0.tar.gz 78822 BLAKE2B a04e093cc1da8204855b875047ed4b65a0b93391b01f08cdfce1bc5621359c2ec3edf9d91919fc73cb87c31a75e2b781fb3b2bfcc60dd59ebcc50f21da91d2d7 SHA512 67faadacf781bb60e7cca69aaa50c56ac7f7250f1eb41b6d21d392222dee56043fdf8354339e3bd8aaad5a997f48e494a7a0054a2516ed0021b4526f5669b36e
+DIST nv-codec-headers-12.1.14.1.tar.gz 78065 BLAKE2B 7125cce9e052b05a2f5b59b129f6743b46255bc40e996ced0b989327fcf14d4cdae1c1d3255b2928a3d0bba2a47a74f4197f6797374c0d94da4e14e059602647 SHA512 df1bf49c58e55bd16669c37b3d3c6b51f359b6a86a5a7d8c83e7b73a6d5a3ab0a037eb238805ce0a2297b7b2ac284f02836d061eeeb4e9cf71fdb28fefa79dfd
DIST nv-codec-headers-13.0.19.0.tar.gz 81250 BLAKE2B de73304485de0266f41ba4600691de6718049be98db58d4387089c5e622078d47a1303b8b55e05155ca3e1a565246635b599aaa8ff737911bf203183df98f013 SHA512 6e278c35737be5eea05582c4b47f8e36c58a8922983e5565b58357105d7fac2d7ba500e475a8bec598c0e6bca93eb4a0ed2867ddd198aa9f2a8c656eaa962dac
+DIST nv-codec-headers-13.0.19.1.tar.gz 81874 BLAKE2B 2148e1ac1b50b2394ac8c7e4934864f27eb0f234518923222ae2aabde1fbb085e4920044a555e8a599aac8165ee6e59270987825cda8256e4c5ba3ec9235e605 SHA512 62721a302cf20d5a251d4703e3e90147968dd46393c84c20978194aff68a60775507fdeabf00b39702f65b1787ae77a96be4ba38da3008a0b9e6eaf8097477d4
+DIST nv-codec-headers-13.1.15.0.tar.gz 84034 BLAKE2B b564d233b8acac28730989791cd1e6e9548c591683a2d38aa6de8d907319f8b45fd9fc360c000f025af972b218a6faaaeaed9d6439bcec77b5131103a68fc5f5 SHA512 3acf4343c2c0d747a42f75132fcf09748017ef4c9206a8fb36f333811dce02878a8607893f3d04fdb7fe472e326ed2d76d0a840531c0f55f4eb80eb32cb55057
diff --git a/media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild b/media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild
index 52814050dd63..88c886daad69 100644
--- a/media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild
+++ b/media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-# ideally only stabilize versions that work for all non-masked nvidia-drivers
+# only stabilize versions that work for all widely used nvidia-drivers branches
NV_MIN_VERSION=530.41.03 # see README
DESCRIPTION="FFmpeg version of headers required to interface with Nvidias codec APIs"
diff --git a/media-libs/nv-codec-headers/nv-codec-headers-12.2.72.0.ebuild b/media-libs/nv-codec-headers/nv-codec-headers-12.1.14.1.ebuild
index cb05c373deb3..5a8b05af1a30 100644
--- a/media-libs/nv-codec-headers/nv-codec-headers-12.2.72.0.ebuild
+++ b/media-libs/nv-codec-headers/nv-codec-headers-12.1.14.1.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-# ideally only stabilize versions that work for all non-masked nvidia-drivers
-NV_MIN_VERSION=550.54.14 # see README
+# only stabilize versions that work for all widely used nvidia-drivers branches
+NV_MIN_VERSION=530.41.03 # see README
DESCRIPTION="FFmpeg version of headers required to interface with Nvidias codec APIs"
HOMEPAGE="https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git"
diff --git a/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild b/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild
index 5d6844da867c..869b8f3af8ef 100644
--- a/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild
+++ b/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-# ideally only stabilize versions that work for all non-masked nvidia-drivers
+# only stabilize versions that work for all widely used nvidia-drivers branches
NV_MIN_VERSION=570 # see README
DESCRIPTION="FFmpeg version of headers required to interface with Nvidias codec APIs"
diff --git a/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.1.ebuild b/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.1.ebuild
new file mode 100644
index 000000000000..869b8f3af8ef
--- /dev/null
+++ b/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# only stabilize versions that work for all widely used nvidia-drivers branches
+NV_MIN_VERSION=570 # see README
+
+DESCRIPTION="FFmpeg version of headers required to interface with Nvidias codec APIs"
+HOMEPAGE="https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git"
+SRC_URI="https://github.com/FFmpeg/nv-codec-headers/releases/download/n${PV}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong"
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}"/usr LIBDIR=share install
+ einstalldocs
+}
+
+pkg_postinst() {
+ # prefer not to depend on nvidia-drivers given this package is depended
+ # on as header-only and drivers are optfeature'ish which can be better
+ # for e.g. binhosts to provide support (binding operators also not really
+ # suitable in DEPEND-only wrt rebuilds, rebuilds are not currently needed
+ # to work with *newer* drivers, and would be annoying for users switching
+ # driver versions only to troubleshoot non-nvenc issues)
+ if ! has_version ">=x11-drivers/nvidia-drivers-${NV_MIN_VERSION}"; then
+ ewarn
+ ewarn "Be warned that packages built using this version of ${PN}"
+ ewarn "will require x11-drivers/nvidia-drivers of version ${NV_MIN_VERSION} or"
+ ewarn "higher for NVDEC/NVENC to function properly. If switch to an older"
+ ewarn "${PN} version, remember to rebuild packages that are using"
+ ewarn "this such as ffmpeg or mpv."
+ fi
+}
diff --git a/media-libs/nv-codec-headers/nv-codec-headers-13.1.15.0.ebuild b/media-libs/nv-codec-headers/nv-codec-headers-13.1.15.0.ebuild
new file mode 100644
index 000000000000..2b38e63340a1
--- /dev/null
+++ b/media-libs/nv-codec-headers/nv-codec-headers-13.1.15.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# only stabilize versions that work for all widely used nvidia-drivers branches
+NV_MIN_VERSION=610 # see README
+
+DESCRIPTION="FFmpeg version of headers required to interface with Nvidias codec APIs"
+HOMEPAGE="https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git"
+SRC_URI="https://github.com/FFmpeg/nv-codec-headers/releases/download/n${PV}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong"
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}"/usr LIBDIR=share install
+ einstalldocs
+}
+
+pkg_postinst() {
+ # prefer not to depend on nvidia-drivers given this package is depended
+ # on as header-only and drivers are optfeature'ish which can be better
+ # for e.g. binhosts to provide support (binding operators also not really
+ # suitable in DEPEND-only wrt rebuilds, rebuilds are not currently needed
+ # to work with *newer* drivers, and would be annoying for users switching
+ # driver versions only to troubleshoot non-nvenc issues)
+ if ! has_version ">=x11-drivers/nvidia-drivers-${NV_MIN_VERSION}"; then
+ ewarn
+ ewarn "Be warned that packages built using this version of ${PN}"
+ ewarn "will require x11-drivers/nvidia-drivers of version ${NV_MIN_VERSION} or"
+ ewarn "higher for NVDEC/NVENC to function properly. If switch to an older"
+ ewarn "${PN} version, remember to rebuild packages that are using"
+ ewarn "this such as ffmpeg or mpv."
+ fi
+}
diff --git a/net-fs/cifs-utils/Manifest b/net-fs/cifs-utils/Manifest
index 5517854ea5c5..d3bd5c3324d9 100644
--- a/net-fs/cifs-utils/Manifest
+++ b/net-fs/cifs-utils/Manifest
@@ -1,2 +1,3 @@
DIST cifs-utils-7.5.tar.bz2 423849 BLAKE2B ddabbaaa122252640d9e69f7c180b53c33d0d02d14b26d96f1fc52858e3d6a3d491c64cec9bc9e0367dedfbc041fa7098d1de6aa3dc991e655ef45c919e3b1a3 SHA512 d44b26ca3224160bcb4fc712eb6c6d09fcfee196197d46481e95333494eaae1a4851712fba9b922c203e3cd301c481b433ff49ec396428c12ff7db3c628ce9e9
DIST cifs-utils-7.6.tar.bz2 236411 BLAKE2B 8a05d1c31f43ae107d3ea4f4ccd18b3ca95ad669a33fe8dc3991cfe77343ff2ad59c15ccf85740795b3d74c0f5a189d3c5ea5ab2d4eef9f4ebcc3573160587cd SHA512 000bca9eb0242c8c04dc1110244ad26cd39f11541cc038e36a1b36c2e683fde19d61a59234e0e592bf8d83ebebafb4d46a7e6978c745bba5e3e155e05908dcbc
+DIST cifs-utils-7.7.tar.bz2 426805 BLAKE2B 4b0934778a803863cdca37375c9273c601494a6656d070ab5ad510616adbce92c68b0c952146257b839a19d15c42216d3c4f0f1b83942b9f0dd8e0d3d06916ea SHA512 cc94105a1ff639d2257a3e644e3b766259ef7a83725c9dddb465e8a8c7126f06a0a036a1c8cfb495943b4d1e370aae8df0bb51f85ff36e54b4894e27d8ddce29
diff --git a/net-fs/cifs-utils/cifs-utils-7.7.ebuild b/net-fs/cifs-utils/cifs-utils-7.7.ebuild
new file mode 100644
index 000000000000..84e6d80fe8d7
--- /dev/null
+++ b/net-fs/cifs-utils/cifs-utils-7.7.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit autotools bash-completion-r1 flag-o-matic linux-info pam python-single-r1
+
+DESCRIPTION="Tools for Managing Linux CIFS Client Filesystems"
+HOMEPAGE="https://wiki.samba.org/index.php/LinuxCIFS_utils https://git.samba.org/cifs-utils.git/?p=cifs-utils.git"
+SRC_URI="https://ftp.samba.org/pub/linux-cifs/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+acl +ads +caps creds pam +python systemd"
+
+RDEPEND="
+ sys-libs/talloc
+ ads? (
+ sys-apps/keyutils:=
+ virtual/krb5
+ )
+ caps? ( sys-libs/libcap-ng )
+ creds? ( sys-apps/keyutils:= )
+ pam? (
+ sys-apps/keyutils:=
+ sys-libs/pam
+ )
+ python? ( ${PYTHON_DEPS} )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="dev-python/docutils"
+PDEPEND="
+ acl? ( >=net-fs/samba-4.0.0_alpha1 )
+"
+
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+DOCS="doc/linux-cifs-client-guide.odt"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-7.3-no-clobber-fortify-source.patch"
+)
+
+pkg_setup() {
+ linux-info_pkg_setup
+
+ if ! linux_config_exists || ! linux_chkconfig_present CIFS; then
+ ewarn "You must enable CIFS support in your kernel config, "
+ ewarn "to be able to mount samba shares. You can find it at"
+ ewarn
+ ewarn " File systems"
+ ewarn " Network File Systems"
+ ewarn " CIFS support"
+ ewarn
+ ewarn "and recompile your kernel ..."
+ fi
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ if has_version app-crypt/heimdal ; then
+ # bug #612584
+ eapply "${FILESDIR}/${PN}-6.7-heimdal.patch"
+ fi
+
+ eautoreconf
+}
+
+src_configure() {
+ # bug #927809
+ filter-flags -fno-semantic-interposition
+
+ local myeconfargs=(
+ --enable-man
+ --enable-smbinfo
+ $(use_enable acl cifsacl cifsidmap)
+ $(use_enable ads cifsupcall)
+ $(use_with caps libcap)
+ $(use_with caps libcap-ng)
+ $(use_enable creds cifscreds)
+ $(use_enable pam)
+ $(use_with pam pamdir $(getpam_mod_dir))
+ $(use_enable python pythontools)
+ # mount.cifs can get passwords from systemd
+ $(use_enable systemd)
+ )
+
+ ROOTSBINDIR="${EPREFIX}"/sbin econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ # remove empty directories
+ find "${ED}" -type d -empty -delete || die
+
+ if use acl ; then
+ dodir /etc/cifs-utils
+ dosym ../../usr/$(get_libdir)/cifs-utils/idmapwb.so \
+ /etc/cifs-utils/idmap-plugin
+ dodir /etc/request-key.d
+ echo 'create cifs.idmap * * /usr/sbin/cifs.idmap %k' \
+ > "${ED}/etc/request-key.d/cifs.idmap.conf"
+ fi
+
+ if use ads ; then
+ dodir /etc/request-key.d
+ echo 'create dns_resolver * * /usr/sbin/cifs.upcall %k' \
+ > "${ED}/etc/request-key.d/cifs.upcall.conf"
+ echo 'create cifs.spnego * * /usr/sbin/cifs.upcall %k' \
+ > "${ED}/etc/request-key.d/cifs.spnego.conf"
+ fi
+
+ dobashcomp bash-completion/smbinfo
+ use python && python_fix_shebang "${ED}"
+}
+
+pkg_postinst() {
+ # Inform about set-user-ID bit of mount.cifs
+ ewarn "setuid use flag was dropped due to multiple security implications"
+ ewarn "such as CVE-2009-2948, CVE-2011-3585 and CVE-2012-1586"
+ ewarn "You are free to set setuid flags by yourself"
+
+ # Inform about upcall usage
+ if use acl ; then
+ einfo "The cifs.idmap utility has been enabled by creating the"
+ einfo "configuration file /etc/request-key.d/cifs.idmap.conf"
+ einfo "This enables you to get and set CIFS acls."
+ fi
+
+ if use ads ; then
+ einfo "The cifs.upcall utility has been enabled by creating the"
+ einfo "configuration file /etc/request-key.d/cifs.upcall.conf"
+ einfo "This enables you to mount DFS shares."
+ fi
+}
diff --git a/net-im/discord/Manifest b/net-im/discord/Manifest
index 29b44d7ce22b..931275823d9a 100644
--- a/net-im/discord/Manifest
+++ b/net-im/discord/Manifest
@@ -1,24 +1,4 @@
DIST discord-0.0.135.tar.gz 107861168 BLAKE2B 59f7a303c45c137cdf870abf8cf421c39ced29b55cd3b8703f2d9d253857c305cd579380cc4f7cba2cf95ac2f64524a9dc53c0fcf6eefe4c7805d58b8f1dac59 SHA512 7be159b69fe322939fccfbe82c2c15b0dffb2ee2106a19824d7cc1ccb6b5f87b90446ba1915dfb81bbc59dab56561c104645d969acca5e9a95ac5b4c7afbd2ba
-DIST discord-1.0.144-discord_desktop_core.distro 523230 BLAKE2B ef3573dbd5734bf38d07a4c50fde69b66b012b69ede0bd6b89d48f8b2a69f71c0461a70717f552cf0febffdedadcd8fb1fe83ef31ebeeb282580d7c251404b39 SHA512 3d3ec8d9d7f9b75b948d9444eeceacfd56cb307dadb1d0c53fced219fd559f26e5ee542fb4073067d8ae4c481410da250ad264c86ad2a0c6f838253902e74b08
-DIST discord-1.0.144-discord_erlpack.distro 2065589 BLAKE2B 0f9d0ba65427f35e7c67edde0bd4f96119bb70e85e5af653421d53ad135b0bf8768dc8d72b903e74d45ab004ee29cd4cf009234d7fcfe02c36dff5120b2b30ab SHA512 7b03cde71d8269a7e1165160979ffd3daaaef7bcff4d28adb01bd464b9566e76823fbe9182ae1bef719ce463ee350717d1aaae215db0c0a65ad046f22131fb9e
-DIST discord-1.0.144-discord_game_utils.distro 3172504 BLAKE2B 57ea1d4931145781bba378172730b00679bf0acef6d086dff852100c614aafbc17a3a7f6f33f072c2f3ef7a69290ca3c1d99d8f5854ee8cc73d4f10aa7e22b3b SHA512 31ca37ccb7ed82313627992f68b6b22f7c000b1b3876a93531187e2859c1e80344ec08af841cf43119d710764f2a1587d6fe4abe48755c19d6ca31a386d58c2f
-DIST discord-1.0.144-discord_krisp.distro 36158747 BLAKE2B f13be529d237ee16cd7af6f1866a886de347336a8cfd9b6df01b3cbc816bd9f165bea06be0bfef88f6f135afdbc2f4570f835be2f783df8129d28745dff4a5ed SHA512 fb6ececcbbae91727b836f956cca571fe5c8a79e3ecb04ccee3b93638188ff2db1d5552990930c110518074e857dbe12093e4214fc2d0f6a093cf0e249559282
-DIST discord-1.0.144-discord_rpc.distro 30381 BLAKE2B ff78ee434efba00c5f42a1fa1d073cf0bcf81619749719a0207491de9918a41084b9fbdfb07e8d90cae1181353f89e7c8d2f37dad38118ac1e3c70a517f000e0 SHA512 83fe02eacebf5f7315ee15019b91cda39674240d0c411dfce31c534579a4fe3f848e5f39d3d94cfa3e8339440730f675a2c93163993e150c7cbcccf4a52651da
-DIST discord-1.0.144-discord_spellcheck.distro 9889932 BLAKE2B e152bcd7c62e7e1fa943d571a6d3d6eadf1326ab28bcf773031ff0e0e403504bcdaca0e85797e5826dccb2b14566549bfb81e2cec367233ca5e5c66c3c9f8f66 SHA512 f64aae9bde31e01ccee20d31970173e96c43999086f87e4c4538f822f3c260d1ffb31c550589a2c00a8e19ec277ac54adea856f86108e75a04eea70f3eb07764
-DIST discord-1.0.144-discord_utils.distro 4598171 BLAKE2B 1a220e9766723e6374607aa65797c41d03887ef1536b50c57afa4a64ca6bb6208dade10c5ca169a5b65dcfe3d34936c3d38ed5e47fe0f1a4c2d96d6282b8ae7e SHA512 0430481d59e9345088136114e8f81d0e9abcc0bbf65a0020a936105330f456f5ca829c7838d9d75613c7d201885dc9576d1da3109e96651e6953b761c6b653c9
-DIST discord-1.0.144-discord_voice.distro 32744887 BLAKE2B 00c01152ce292277305a4afcd0ad3d9389ff92d58a080d0c165f8b817ed40245f8624102c8d755af53e697f9176d23eb9e254e45d62a9856e4a0aac741894e84 SHA512 acd37f8848a717043a558095d497234caac7500fb8b00030783ae5a5c51c3a5e3b352a7e289f55d244d566bb01c26e5afeeb7859a2be788ce1cc37efd1627be2
-DIST discord-1.0.144-discord_zstd.distro 328106 BLAKE2B 0087528fde0e4e8bc7eae46f5edd2adfd570cd645071af243f68e9903a96bcbf53dd2f9262a194d035c39b650b7e9f12c168ff60abdccad248872425e9004461 SHA512 984d79f024094d4ac72df7ddf1e35eb67144afa7d80b4b10bf55d78232317dc290ecdaaf013643f2049d11f11fdef475309e5a6236e42d5baa2fdadff5545099
-DIST discord-1.0.144.distro 91387526 BLAKE2B eadf6346baace6286a16d7cee6cc013128c91faead4dc1c91c043dfe4d6288ffc64315e873b81b3a237e61d92d979c923b9942158e044ee7d44d34bd8cb600b6 SHA512 58c24e26be0d0fb8cea968440772e276a01e98869a299f56d4b0ad8435fc8e31248f9181134cf2084f9b02fc5863e6f2e842770ccbbf5dfe4862c0638478d5b8
-DIST discord-1.0.145-discord_desktop_core.distro 523947 BLAKE2B 4c2c574b4144723c3660e105546e46752f108715b712b0b4d62228906c3a5889e259837056bb5cbb15f3aaea77497930482f143a5a9aec858508db3247486ad9 SHA512 ad3d4334f9079b97310aac64b93ec35dbdfa205a1747f6b6359659fd93516326865c6fcddc82e1fe762cad31758d1257feec68f0bc5a5a1fffa91a4f36a3745a
-DIST discord-1.0.145-discord_erlpack.distro 2068679 BLAKE2B e7fb5d350cbc45aa1f252ddd753a3415cbb03bf6d0ba5d052e50212749962e7fdf5b07ae71c88611b01a79c2054f05adbf9953362569c1e665cfab5347c0c5ff SHA512 d2e08a3b5f69fd4eb5ead1d33e237434c7d6735257143eebd22d00d2c794bbda42b73e9f3d7bbf7ced235f5586cb585455fdf6fa1772cafbce74ef6ca10a44b5
-DIST discord-1.0.145-discord_game_utils.distro 3172465 BLAKE2B 75bb14f6784e85b7c28b63e4bdba8722f02a06f165b0bfdfcc24cf6c75bcccf5bcdf1b4a0dddd5b907509bac8f5d47aa3861de374b0029adeb46bd9d212a7ebb SHA512 8882599f8df1bd277cae73bc7c5f04ed194381c28f726f7081148c85b44606b0f8543a31b27e8d6d072bbfb45ab6402cc63c0929422d7a9af98f082d84166721
-DIST discord-1.0.145-discord_krisp.distro 36157987 BLAKE2B 14c43b0a5462351550cc1df336f9e5b9943ddd4c3cbc5812eed9ac6905d5fc15642b8517851ec6e617c0923f647d30aaf3f3e36d0aa908a0960292b814366f0d SHA512 fa2d2b15a03fdd182facd7d4c3765bfff353f0f74cb88db97313e37c1721c5bdbb31d34d94781b36fecd061c129f735d6f5eb353a7e43ded6237dd5314819324
-DIST discord-1.0.145-discord_rpc.distro 30382 BLAKE2B bb784aecd6e0db5cf3e173d61ebc3d32e3e6d850a6499527c84661e4ace6a123af780fa38736c4645381c767a81fe0a662eba84ee25cfde4c454f75039d2f229 SHA512 a43fb16e00dfc26196bdbd1712a3be8cb9cbe83e3dcd71b98d7c0c73f30195b6da60c59672fb8ccb129afe83a059d6422a3282765830a4b15511e1d0f6cf3ab0
-DIST discord-1.0.145-discord_spellcheck.distro 9889607 BLAKE2B 105f65006ae48173115c79ac878aae9eab402af3e057f8edb1a47f2fdeb7e45365a65d55a27d5a551c70db38ab03dad5f6854efd0d114a13b2938f7d4de14044 SHA512 ffb4d994cf74535e79b91f428d8274164a885676df625534ef80ea6f05d55fd6e0b9b77473cde740529a6ea8e41aaae17f91e3f30009acd945ae6e617095df13
-DIST discord-1.0.145-discord_utils.distro 4598154 BLAKE2B b3dfd06b65fe02fd2f3dd72d655b6a50e95447a7dd8af6ed563e94f3c145afe4192211108a1356cb456d11f6c3b1165e1f8868da53d7da37bc5fe70569ba4a38 SHA512 22628f401aa739f9b34f074fdcd6ac9546b0876c3e2148f4d1072d515cb953d6ad67e793861c9ce12b802b846133cb8cf35263f265fe617d897df154866bb286
-DIST discord-1.0.145-discord_voice.distro 32828004 BLAKE2B c28f27fc613c2be9d9a211c28ebebae6b1f625d758f02fa0278f034d4de2e75acce73ecacd8747c11698fa9e3689b8f6a32f81ec9d2ab03ad92d6b88d43d78fa SHA512 af8f47d22707325c9dc88a1babb93a90acbe656d62f3014c5ad169e3d2759a1825a37715f3c1e34dbfdb2f677aabe4918cc72c9b12910f3fe6a82985bd4044cf
-DIST discord-1.0.145-discord_zstd.distro 328074 BLAKE2B ec56d0136c558422407f7297119dfdc4c3a46740730542e1494a8bf082cd5fdf899748550c464f8e73fda7d835ed11b028d0bbc59295d97fd0f9aded50865b80 SHA512 3c1d59f189911a35b4be377ead0d3add05eedcebb54028987f7b7507c00b335dfb9ea2a3c68ebcb463712c650f2d56d85d94cdc08430cf4d83caa9e5705ae2b0
-DIST discord-1.0.145.distro 91388717 BLAKE2B 9265ca8df91edb50156b13eba0244edadad8752bc219d7d5a946426bceb76b008e1b4585911cee9cd85494c5882b0936646615af78079dabf054f091604696f9 SHA512 bbf0d6ddd09fbc6ba69d155d7b21552646f72942a3238a7a1e0ab9bf98e68dec399ef235974e8d887df083c9ea4db2b4c8d164436eaf5536512e30a2b9cf4fa3
DIST discord-1.0.146-discord_desktop_core.distro 525075 BLAKE2B 26670215bc3f8dc2119bee6e2cab2c4d683a0e9a3b2c1a625679d36acc56e07d7ee21c29014cceed7b7715d7de22ed62e542ae50597f0027fc0f64312f30f4c1 SHA512 88024b0faf4e4db8e283af9081b88072ec8ab908e4b72a7c0bab8ae7fcb3c5ae09b2b3e34af0b35429b51f46be359dc39983191e376a762c6c4831d4918a9792
DIST discord-1.0.146-discord_erlpack.distro 2067901 BLAKE2B 1121dbd1d74abb61824e3f44fa6812ecd7ae6c2f97a83238c0775f49ff32ada41828825c0fa1f6b30ac1f228d3440edc3c14f86b204a35837da8618dd5e59521 SHA512 755e37330fc16d99f630ed0036eaabf83b4f137123c72eae35fe47996d243ceaed1ddc6f1891efaeffb3f28fa4c0eb9b2be76308df50d98a97be24c37f5e41f0
DIST discord-1.0.146-discord_game_utils.distro 3172533 BLAKE2B d820da64a700f033c3e318bfa8a87d38043eb7ecde4bce0f14f7e2d880707ebac401062ee60ec1ecaa80ceb9b7fa768fbf0081576de1e237fb775282ffd5ec53 SHA512 f23b41b7e55c6611a77767c4ccd7010bfc5a901d241ac91826b191ca7d894e5960eda1afde05a0b52564b555006ce762620b08c9378eff733a0b89c5fd49a3e4
@@ -29,4 +9,14 @@ DIST discord-1.0.146-discord_utils.distro 4597694 BLAKE2B aa7009ba3466cca3ac3397
DIST discord-1.0.146-discord_voice.distro 32845629 BLAKE2B 07a376e84e0bb552507a55b704ca1423fba5c24a8b0c06f4114df0df01ff0dadf0256e11b53301c00cc2de728e21762b646e0096ee2f52fb58846333571d6149 SHA512 fc5dd9840f0b13bf8b66dc4901833c701293a914c54765c04c18414755f237284e93e1a7bf2660120507263500f9ab385c1c9966fe0f33e368b3fae9d695b432
DIST discord-1.0.146-discord_zstd.distro 328071 BLAKE2B 7e5cd3914da41834a0b01466602e9e421600a9cf7c2c3c33c3405c06c90fe3be1b58cfc27c02e7e97bee0e7dd96657fdfe4326073534e94e733b71604e03d828 SHA512 b7a676bd7e7cb1a9d57aaad1c828499f7ecdc0360bb982a3138181bb29710354509c50998344004c73ca2b87f7866a603109c2cb79b848b3240fa08a35578b16
DIST discord-1.0.146.distro 91381828 BLAKE2B 4dd4a2b2751a0adec640a29a23a12999ae5ec108e089671dba532d4b203ed63d7ec5e359277effa063d7718ac1bf032c5d1b5bdc7ccb92b7b48b25639f95fdf1 SHA512 dca9bbf55afcb1425af7bd0fc4d891fe0cc37859436a8b2a1ae9d29689d72e574dc2f974d468a86527c0420847fd27af5517da7b02075ee2eebe8bd2d43a7d09
+DIST discord-1.0.147-discord_desktop_core.distro 525093 BLAKE2B e60942556c96bb40802a5955a4ed4e7d1510606839a9e870a6f7117569a2f4f93432515742dd0751312f644e9d9140e064dec61653ddd4ac849b71dbe26128a1 SHA512 0a0c02df8fd04e6671f391b052c7227b29aa805afd86688d4c435b4b7b6f6d3b58669c205f37f84a8057074e976fea449d8fb17f88011e370a5eb7058215a892
+DIST discord-1.0.147-discord_erlpack.distro 2065488 BLAKE2B e15d3dd989d4d0c45e2d89f1fca8eb3a1941270967f949071fb39b10288478ce0778b2d2f55c409969ae7035b4674a7d0f877cfdd7518fccd71a079d2ca76b76 SHA512 798c6cb73018b4cec6ff1c94259be3d56b3051f3daaea6cd5fee26d2fb55dee109cafd978b33d2b54f260d6db0ba0876501d83e342e135b5ebfb05f7d744a696
+DIST discord-1.0.147-discord_game_utils.distro 3172405 BLAKE2B 1556e8434e0af0a68a997ecf2cb343318fb650111b338d5b7cc3e453b3fd6577d8c5217a933729edb3ac5915b11d27f5a994ccfd8e7af3d241dbe5a4d3417bac SHA512 c027fe9cf7e60c0272a719ae56eb14bf2ceafb6d012fecf521750a5d8608668ae422b085e621458a0c7dde7cf75bf7a705052be4cee39a52cb21b8081d87ea6a
+DIST discord-1.0.147-discord_krisp.distro 36158393 BLAKE2B c3edae9d983aac07c2398e1b233cc517614c78cdd974a97b782bd6225433e2857ec48e07b3010afae3cc52da97a5ab35560b9aff37e9956ffe16cc6b39f121ac SHA512 0984ec74faf3596b3744b5cf8d0b0ce09feef32ee557ad023c688dbd9234f7e2848e0c503a2b879ab02bf3e0609e5ec96fd53e639854af6fc1744c9f12f1b65d
+DIST discord-1.0.147-discord_rpc.distro 30379 BLAKE2B 576525cd3267eacaf36bf9089bcf6cd7d8e4762fcb4ffa63ae1cdb0d59d90701ad442f9383e6d230d3041266df35b336044baf03a82fb226bd335cc5e154ff1d SHA512 b080157280c02b2f26c44d5dfbfd0a3c46e85b200181281f3a5e50b8f290167f88d517ef05ec1bb71e8053593aa90b8e427136a1cbf98e7d14068a163f8424a3
+DIST discord-1.0.147-discord_spellcheck.distro 9902531 BLAKE2B 82b92f668a99545984e0b8277b8f4d9489e06a9d38aaee0936d32db8f998804090b94e6dd55fe70141e3b86a5ca05263f19bf1d7e99fb3edc1dcdb539b6b2b1b SHA512 b59404a48493afeb5a8733b3b3c62d0650667d3dcd58e1afc181cdde524e339da12f0683dce1af90c250226828bf10a92e6b2d869a533d452caf378fa0b11985
+DIST discord-1.0.147-discord_utils.distro 4597800 BLAKE2B c23c6bf4be84ba72df81f8e783457d677751844d1cb8f07efa39adbfd0abf282e35bc3937978973972e26787682005d5de9d4a99ad655f1c6da272a585500540 SHA512 1adba698aff755767abbdd5249416fc7721389e658732105349194b1585a06d7de5b82268818db4852b3e914b1458b677968c7a5321b004a6c019f64182bc09b
+DIST discord-1.0.147-discord_voice.distro 32863361 BLAKE2B 0c9600f405401b0c7c1e718ce909fa1546456f7e1ec7032fdaad9c64b2126c93bfe09624120e959e0022c580253e77a6feb177f2a4f9e89026328dfd0905fbca SHA512 e561cf39de736024e9ada0f9a358b17b351e9a86fec023d08b7cef0b105739d33e040892127c25009f7ad27b14aaa4fcdc3b5866ef0b3ccd71d2b31c58dc63d4
+DIST discord-1.0.147-discord_zstd.distro 328096 BLAKE2B fee95e0e1b9041844024460ae6dba19f89f823bfc8edb42fe492c0cc9b377d5fd1bcde810a71f7170810dd63e5e33985eeb5b81542adb174e644c3c55980854a SHA512 ff520ab95719fafb3c38d7592152c2914ae8b20245ad3bf58a7fe4b2afa06c824f0948954581e02afd9569db6669a0d93f430a6032ca62d8e5e7dbb46cb3099c
+DIST discord-1.0.147.distro 91387601 BLAKE2B 3648418ca590cf5e3fe51ef06960e90eb69ac4c9530b8120a56111ec60629d1b619eddf705872b258ff65bd9ffb2c8a4c0511fc19bd635b01f927e8ffc2cb5f2 SHA512 434f927e1f259adebbf7988a4c42a7eb6b5a4a271f0fa30ee13eaf234f83ed655a92edf182a17d8684f28e3d57beafd9b4bdf1bcaa755811f304e4689e582f6a
DIST discord-disable-breaking-updates-2f26748a667045d26bc19841f1a731b4be7a7514.py 1299 BLAKE2B b6c923c450a28405e2a439e0d1b8a83e01e0536c62095fafbae74612aa4e891df733aa13999ce6a8be3618fd14e154aec802aa4ee21aad1303b05626ffd23314 SHA512 a7ef493a216c71a5b02685cff6866bfc3940aaf9cdc73b58859c962d0d33b613349289ef7027359f184f42dddaed486b84f6d85b9023ab8530ab7ba66431c3c7
diff --git a/net-im/discord/discord-1.0.145.ebuild b/net-im/discord/discord-1.0.145.ebuild
deleted file mode 100644
index 2bb428c4c8b4..000000000000
--- a/net-im/discord/discord-1.0.145.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-MY_PN="${PN/-bin/}"
-MY_PV="${PV/-r*/}"
-
-CHROMIUM_LANGS="
- af am ar bg bn ca cs da de el en-GB en-US es es-419 et fa fi fil fr gu he hi
- hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv
- sw ta te th tr uk ur vi zh-CN zh-TW
-"
-PYTHON_COMPAT=( python3_{13..14} )
-UPDATE_DISABLER_COMMIT="2f26748a667045d26bc19841f1a731b4be7a7514"
-
-inherit chromium-2 desktop linux-info optfeature python-single-r1 unpacker xdg
-
-DESCRIPTION="All-in-one voice and text chat for gamers"
-HOMEPAGE="https://discord.com/"
-
-SRC_URI="
- https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${MY_PV}/full.distro -> ${P}.distro
- https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${MY_PV}/discord_desktop_core/1/full.distro
- -> ${P}-${MY_PN}_desktop_core.distro
- https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${MY_PV}/discord_erlpack/1/full.distro
- -> ${P}-${MY_PN}_erlpack.distro
- https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${MY_PV}/discord_spellcheck/1/full.distro
- -> ${P}-${MY_PN}_spellcheck.distro
- https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${MY_PV}/discord_utils/1/full.distro
- -> ${P}-${MY_PN}_utils.distro
- https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${MY_PV}/discord_voice/1/full.distro
- -> ${P}-${MY_PN}_voice.distro
- https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${MY_PV}/discord_zstd/1/full.distro
- -> ${P}-${MY_PN}_zstd.distro
- https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${MY_PV}/discord_rpc/1/full.distro
- -> ${P}-${MY_PN}_rpc.distro
- https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${MY_PV}/discord_game_utils/1/full.distro
- -> ${P}-${MY_PN}_game_utils.distro
- https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${MY_PV}/discord_krisp/1/full.distro
- -> ${P}-${MY_PN}_krisp.distro
- https://github.com/flathub/com.discordapp.Discord/raw/${UPDATE_DISABLER_COMMIT}/disable-breaking-updates.py
- -> discord-disable-breaking-updates-${UPDATE_DISABLER_COMMIT}.py
-"
-S="${WORKDIR}/${MY_PN^}"
-
-LICENSE="all-rights-reserved"
-SLOT="0"
-KEYWORDS="~amd64"
-
-IUSE="appindicator +seccomp wayland"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist mirror strip test"
-BDEPEND="app-arch/brotli
- app-arch/zip"
-RDEPEND="
- ${PYTHON_DEPS}
- >=app-accessibility/at-spi2-core-2.46.0:2
- dev-libs/expat
- dev-libs/glib:2
- dev-libs/nspr
- dev-libs/nss
- dev-libs/wayland
- media-libs/alsa-lib
- media-libs/fontconfig
- media-libs/mesa[gbm(+)]
- net-print/cups
- sys-apps/dbus
- sys-apps/util-linux
- sys-libs/glibc
- x11-libs/cairo
- x11-libs/libdrm
- x11-libs/gdk-pixbuf:2
- x11-libs/gtk+:3
- x11-libs/libX11
- x11-libs/libXScrnSaver
- x11-libs/libXcomposite
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- x11-libs/libXrandr
- x11-libs/libxcb
- x11-libs/libxkbcommon
- x11-libs/libxshmfence
- x11-libs/pango
- appindicator? ( dev-libs/libayatana-appindicator )
-"
-
-DESTDIR="/opt/${MY_PN}"
-
-QA_PREBUILT="*"
-
-CONFIG_CHECK="~USER_NS"
-
-repackage_node_modules() {
- brotli -d "${DISTDIR}/${P}"-$1.distro -o "${T}"/$1.tar 2>/dev/null || die
- unpack "${T}"/$1.tar || die
- pushd "${WORKDIR}"/files 2>/dev/null || die
- zip -rq "${WORKDIR}"/$1.zip . || die
- popd 2>/dev/null || die
- mv $1.zip "${S}"/resources/bootstrap/ || die
- rm -r "${WORKDIR}"/files || die
-}
-
-src_unpack() {
- # Upstream now only ships an autoupdater, where the binaries downloaded from the
- # upstream package do not contain the app, but instead contain software that
- # downloads and installs the app. To work around this, we manually download
- # the same Brotli-compressed tar archives that the autoupdater would, for both
- # the base app itself and the required Node modules. The Node modules need to be
- # unpacked and installed in ~/.config/discord/${PV}/modules, and luckily the base app
- # can automatically do this for us on the first launch if we package the Node
- # modules into a .zip and put them in <base app location>/resources/bootstrap.
- # Some modules are installed at runtime, but we want to bootstrap those too,
- # so we use a custom <base app location>/resources/bootstrap/manifest.json
- # copied over from $FILESDIR.
- brotli -d "${DISTDIR}/${P}".distro -o "${T}/${P}.tar" 2>/dev/null || die
- unpack "${T}/${P}.tar"
- mv "${WORKDIR}"/files "${S}" || die
- rm "${T}/${P}.tar" || die
- # For any new Node modules, add the Brotli-compressed archive to SRC_URI
- # following the same pattern, and then add a corressponding call to
- # repackage_node_modules here. You can find a list of required modules
- # at <base app location>/resources/bootstrap/manifest.json, as well as
- # running the application and looking for lines in the output about "modules".
- # If checking manifest.json, make sure to check the one directly from upstream,
- # as the one installed on the system is copied over from $FILESDIR.
- repackage_node_modules "discord_desktop_core"
- repackage_node_modules "discord_erlpack"
- repackage_node_modules "discord_spellcheck"
- repackage_node_modules "discord_utils"
- repackage_node_modules "discord_voice"
- repackage_node_modules "discord_zstd"
- repackage_node_modules "discord_rpc"
- repackage_node_modules "discord_game_utils"
- repackage_node_modules "discord_krisp"
-}
-
-src_configure() {
- default
- chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
- default
- # cleanup languages
- pushd "locales/" >/dev/null || die "location change for language cleanup failed"
- chromium_remove_language_paks
- popd >/dev/null || die "location reset for language cleanup failed"
-
- # Update exec location in launcher
- sed --expression "s:@@DESTDIR@@:${DESTDIR}:" \
- "${FILESDIR}/launcher-r1.sh" > "${T}/launcher.sh" || die "updating of exec location in launcher failed"
-
- # USE seccomp in launcher
- if use seccomp; then
- sed --in-place --expression '/^EBUILD_SECCOMP=/s/false/true/' \
- "${T}/launcher.sh" || die "sed failed for seccomp"
- fi
-
- # USE wayland in launcher
- if use wayland; then
- sed --in-place --expression '/^EBUILD_WAYLAND=/s/false/true/' \
- "${T}/launcher.sh" || die "sed failed for wayland"
- fi
- cp "${FILESDIR}/manifest.json" resources/bootstrap/manifest.json || die "Failed copying manifest.json"
-}
-
-src_install() {
- doicon -s 256 "${MY_PN}.png"
-
- # install .desktop file
- make_desktop_entry "${EPREFIX}/usr/bin/discord" Discord "${PN}" \
- "Network;InstantMessaging;" \
- "StartupWMClass=discord" \
- "Path=${EPREFIX}/usr/bin"
-
- exeinto "${DESTDIR}"
-
- doexe "${MY_PN^}" chrome-sandbox libEGL.so libffmpeg.so libGLESv2.so libvk_swiftshader.so
-
- insinto "${DESTDIR}"
- doins chrome_100_percent.pak chrome_200_percent.pak icudtl.dat resources.pak snapshot_blob.bin v8_context_snapshot.bin
- insopts -m0755
- doins -r locales resources
-
- # Chrome-sandbox requires the setuid bit to be specifically set.
- # see https://github.com/electron/electron/issues/17972
- fowners root "${DESTDIR}/chrome-sandbox"
- fperms 4711 "${DESTDIR}/chrome-sandbox"
-
- # Crashpad is included in the package once in a while and when it does, it must be installed.
- # See #903616 and #890595
- [[ -x chrome_crashpad_handler ]] && doins chrome_crashpad_handler
-
- # https://bugs.gentoo.org/905289
- newins "${DISTDIR}/discord-disable-breaking-updates-${UPDATE_DISABLER_COMMIT}.py" disable-breaking-updates.py
- python_fix_shebang "${ED}/${DESTDIR}/disable-breaking-updates.py"
-
- exeinto "/usr/bin"
- newexe "${T}/launcher.sh" "discord" || die "failing to install launcher"
-
- # https://bugs.gentoo.org/898912
- if use appindicator; then
- dosym ../../usr/lib64/libayatana-appindicator3.so /opt/discord/libappindicator3.so
- fi
-
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- optfeature_header "Install the following packages for additional support:"
- optfeature "sound support" \
- media-sound/pulseaudio media-sound/apulse[sdk] media-video/pipewire
- optfeature "emoji support" media-fonts/noto-emoji
- if has_version kde-plasma/kwin[-screencast] && use wayland; then
- einfo " "
- einfo "When using KWin on Wayland, the kde-plasma/kwin[screencast] USE flag"
- einfo "must be enabled for screensharing."
- einfo " "
- fi
-}
diff --git a/net-im/discord/discord-1.0.144.ebuild b/net-im/discord/discord-1.0.147.ebuild
index 2bb428c4c8b4..008eb84bc750 100644
--- a/net-im/discord/discord-1.0.144.ebuild
+++ b/net-im/discord/discord-1.0.147.ebuild
@@ -46,7 +46,7 @@ S="${WORKDIR}/${MY_PN^}"
LICENSE="all-rights-reserved"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="appindicator +seccomp wayland"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/net-im/qtox/Manifest b/net-im/qtox/Manifest
index d16a2ed95df2..e1b42ee08830 100644
--- a/net-im/qtox/Manifest
+++ b/net-im/qtox/Manifest
@@ -1,3 +1,2 @@
-DIST qTox-1.18.3.tar.gz 5312073 BLAKE2B 5c7e4827b72af6bc6383600ace8bd878b47f5b3cf6edab3b8bfa65e0f489ddeca75f15f6bb5e5c41d63be2dd8a6aab2b600075284b4f8a8960377c13ca345e22 SHA512 c0d9a832fc937b5d0b67a5905d3ac60d31ffa92492533c41caad23a53d8538bc44202b09811d2d1495afb3a0a0f1badb0c6900b8a291ef78ee736d47fc030136
DIST qTox-1.18.4.tar.gz 5400012 BLAKE2B a84aa227b72969f9af1bd20b8feab7134ba0660796a405cf61609d84585db9b2d872438be1240fdb4533c980d0cd905409d521b4be68e0ce5439c75af5a8e8d4 SHA512 265d4b7266e05f5ad2389a766d72af2be111089d77ddedff39b9409e519542c2712d49225b759f93d33bf2cf2b988d24338dd2225bcc0e2755f07129bb8a6797
DIST qTox-1.18.5.tar.gz 5403534 BLAKE2B b882bca0ce53c28acb548bc23dd5eb477bc83cd4de7eda7181d33dc376154267fa2f5b15e6f53b88c92e06384029eaf5cca0628cd10ab4fc743438f44b764bfd SHA512 25a6cbb1a7059740c3eea3667225d5460e4a686f175acb593f9248c2e3e7789bd2ad6edb829013abf09862f9ac60012e18aae477abf0c02f9b4d441afc4f359d
diff --git a/net-im/qtox/qtox-1.18.3-r1.ebuild b/net-im/qtox/qtox-1.18.3-r1.ebuild
deleted file mode 100644
index 265cb4cdc802..000000000000
--- a/net-im/qtox/qtox-1.18.3-r1.ebuild
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake xdg
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/TokTok/qTox.git"
-else
- MY_P="qTox-${PV}"
- SRC_URI="https://github.com/TokTok/qTox/archive/v${PV}/v${PV}.tar.gz -> ${MY_P}.tar.gz"
- KEYWORDS="amd64"
- S="${WORKDIR}/qTox-${PV}"
-fi
-
-DESCRIPTION="Instant messaging client using the encrypted p2p Tox protocol"
-HOMEPAGE="https://qtox.github.io/"
-
-LICENSE="GPL-3+"
-SLOT="0"
-IUSE="spellcheck X"
-
-BDEPEND="
- dev-qt/qttools:6[linguist]
- virtual/pkgconfig
-"
-RDEPEND="
- dev-db/sqlcipher
- dev-libs/libsodium:=
- dev-qt/qtbase:6[concurrent,gui,network,opengl,widgets,xml]
- dev-qt/qtsvg:6
- media-gfx/qrencode:=
- media-libs/libexif
- media-libs/openal
- media-video/ffmpeg:=[webp]
- >=net-libs/tox-0.2.19:=[av]
- spellcheck? (
- || (
- kde-frameworks/sonnet:6[aspell]
- kde-frameworks/sonnet:6[hunspell]
- )
- )
- X? (
- dev-qt/qtbase:6=[X]
- x11-libs/libX11
- x11-libs/libXScrnSaver
- )
-"
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )
-"
-
-DOCS=( CHANGELOG.md README.md doc/user_manual_en.md )
-
-src_configure() {
- local mycmakeargs=(
- -DASAN=OFF
- -DPLATFORM_EXTENSIONS=$(usex X)
- -DSPELL_CHECK=$(usex spellcheck)
- -DSTRICT_OPTIONS=OFF
- -DTSAN=OFF
- -DUBSAN=ON
- -DUPDATE_CHECK=OFF
- -DUSE_CCACHE=OFF
- )
-
- [[ ${PV} != 9999 ]] && mycmakeargs+=( -DGIT_DESCRIBE=${PV} )
-
- cmake_src_configure
-}
-
-src_test() {
- # The excluded tests require network access.
- cmake_src_test -E "test_(bsu|core)"
-}
diff --git a/net-im/toxic/Manifest b/net-im/toxic/Manifest
index 04ad7a27f7c2..ab61f088c746 100644
--- a/net-im/toxic/Manifest
+++ b/net-im/toxic/Manifest
@@ -1,2 +1,2 @@
-DIST toxic-0.16.0.tar.gz 1246725 BLAKE2B 47a1d22137de1db635e99dcff1618150aae5e98c1cea58ce944284c97ccd1c8c141d20be17a2f4a3691dc823a1fdb09ab312d643b224668c51c47dbf36c659cf SHA512 94e8c61bff56533f384367270b5b946727e7cb6a3f928b312c47578b104a881fd344af829bbf4712a79ef65526ba75c84c335ef31685e97b4a7b03b96bd642b2
DIST toxic-0.16.2.tar.gz 1257173 BLAKE2B de49de03db5fbb1a79fd3094cb01c9f137552fad244bb8ff248baf6b6ec171c48a903cee206711f73689b6bea211a5fda5d3ba7a804febd66aeec2ef8adb84d5 SHA512 5033afdefea4771f0a8f4e4a79953b48087087ff6de08f4685067ff2ec439bcdf6c3f276aa915168f4a0df4cca5c276f9b7f0a12413a9e98b69bc664960e3750
+DIST toxic-0.16.3.tar.gz 1257798 BLAKE2B 2658aac851c69097c1ac1966764369032066ccb502952a227df394fb48c61be0804793c6a19bccfaf7508e1e08edff4c043ace36406c968d56b3e9965ce67d15 SHA512 0f71ee6bb1308ad67ede9bd3912bb82deba0929774124094cb37ba71e7c0279c4e277a98f64b4165a62eb9f51a5a85368f25b28c6367d2c0aed2025a9204aebb
diff --git a/net-im/toxic/toxic-0.16.0.ebuild b/net-im/toxic/toxic-0.16.3.ebuild
index c65e9524de9b..4b96b14dd796 100644
--- a/net-im/toxic/toxic-0.16.0.ebuild
+++ b/net-im/toxic/toxic-0.16.3.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
@@ -13,7 +13,7 @@ SRC_URI="https://github.com/JFreegman/toxic/archive/v${PV}.tar.gz -> ${P}.tar.gz
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="amd64 x86"
+KEYWORDS="~amd64 ~x86"
IUSE="+audio-notify debug experimental games llvm notification png python qrcode +sound +video +X"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
video? ( sound X ) "
@@ -21,7 +21,7 @@ REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
BDEPEND="virtual/pkgconfig"
RDEPEND="dev-libs/libconfig:=
- >=net-libs/tox-0.2.19:=
+ >=net-libs/tox-0.2.23:=
net-misc/curl
sys-kernel/linux-headers
sys-libs/ncurses:=
diff --git a/net-libs/tox/Manifest b/net-libs/tox/Manifest
index 5797cbe69c1b..2cd59d8bfbd2 100644
--- a/net-libs/tox/Manifest
+++ b/net-libs/tox/Manifest
@@ -1,3 +1,3 @@
-DIST c-toxcore-0.2.20.tar.gz 862660 BLAKE2B 77f0d423f3579f83f114e2201315d8bb97a951a79aeefaf9ef6e012c7c98b6bba7889359a405746c976ac4689112a9366bdf291998c6f835972e540d01782b20 SHA512 84497bd8d542d8ccb4d77d9210852a0e73a0f2c4885b8282c39263042555495c37196b5f2ddf37f393bcc2b84d839bba3506da2c68440e4d5329d086b2ebefb6
DIST c-toxcore-0.2.22.tar.gz 959762 BLAKE2B 976d702f7b036eea8941c73d656c35e32e2fb8be758c7588c758f4efa033077647aaadfe45572999698fbdb253811751e951441f928c10bfcc30b12b2bcfd3dd SHA512 c42fba4da94eb5ec28f4b9c8afb3ad61ec36c1a17dabb6dd5530caa31b66192bdb0b057a2e939dccb7ffe91ec24691e8953e0641cd33f0dd7edea921910f7b1a
+DIST c-toxcore-0.2.23.tar.gz 972079 BLAKE2B 671c3cab36c467f14129c14e512a4d34323a76343c60a50b407855cc1ad9fd891e17d26360c7609a24f246b3609d1ef0e841a2e1158976a4cf0293a956d7de81 SHA512 3a56e5ec28b90fe60fb86ac3e703bc3a4fd4fae6a3e87d725d6efdb23064e887a04f0f00f6ff979a9b18b6b8c93dda9e85d22ffe3c712b8653f09c6d1dd003e0
DIST toktok-cmp-52bfcfa17d2eb4322da2037ad625f5575129cece.tar.gz 40169 BLAKE2B 761a81845f1d577853b95464acb52e7c507808c498d5ab0518e5cc8e26150e3b4448e095ffd554f512ca7771b1c88c1c7200442f42c599d71005722992ea977f SHA512 fc336deb0a42b9ef2b5ddb24ffe6fe68bad34587dc23ceb5893ac164f0c5228a5626689d602ed8903c8c4f7f213f1f2a1d17f016ab2561d835cfb05c217a5542
diff --git a/net-libs/tox/tox-0.2.20.ebuild b/net-libs/tox/tox-0.2.23.ebuild
index 7b713e490f0a..5902fda9a2fc 100644
--- a/net-libs/tox/tox-0.2.20.ebuild
+++ b/net-libs/tox/tox-0.2.23.ebuild
@@ -1,19 +1,34 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake systemd
+# The notice is triggered by a docker file, which is unused here.
+# https://bugs.gentoo.org/964599
+CMAKE_QA_COMPAT_SKIP=1
+CMP_COMMIT="52bfcfa17d2eb4322da2037ad625f5575129cece"
+
DESCRIPTION="Encrypted P2P, messaging, and audio/video calling platform"
HOMEPAGE="https://tox.chat https://github.com/TokTok/c-toxcore"
-MY_P="c-toxcore-${PV}"
-S="${WORKDIR}/${MY_P}"
-SRC_URI="https://github.com/TokTok/c-toxcore/releases/download/v${PV}/${MY_P}.tar.gz"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/TokTok/c-toxcore.git"
+ EGIT_SUBMODULES=( third_party/cmp )
+else
+ MY_P="c-toxcore-${PV}"
+ SRC_URI="
+ https://github.com/TokTok/c-toxcore/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz
+ https://github.com/TokTok/cmp/archive/${CMP_COMMIT}.tar.gz -> toktok-cmp-${CMP_COMMIT}.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~x86"
+ S="${WORKDIR}/${MY_P}"
+fi
LICENSE="GPL-3+"
SLOT="0/0.2"
-KEYWORDS="amd64 ~arm x86"
IUSE="+av debug daemon dht-node experimental ipv6 key-utils log-debug +log-error log-info log-trace log-warn test"
REQUIRED_USE="?? ( log-debug log-error log-info log-trace log-warn )
@@ -35,13 +50,22 @@ RDEPEND="${DEPEND}
)
key-utils? ( || ( sys-devel/gcc[openmp] llvm-runtimes/clang-runtime[openmp] ) )"
-src_prepare() {
- cmake_src_prepare
+# Skip flaky tests.
+CMAKE_SKIP_TESTS=(
+ scenario_group_topic
+ scenario_lan_discovery
+ scenario_tox_many
+)
+
+src_unpack() {
+ default
- #Remove faulty tests
- for testname in group_topic, lan_discovery; do
- sed -i -e "/^auto_test(${testname})$/d" ./auto_tests/CMakeLists.txt || die
- done
+ if [[ ${PV} == 9999 ]]; then
+ git-r3_src_unpack
+ else
+ rm -d ${MY_P}/third_party/cmp || die
+ mv cmp-${CMP_COMMIT} ${MY_P}/third_party/cmp || die
+ fi
}
src_configure() {
@@ -92,6 +116,8 @@ src_configure() {
}
src_test() {
+ # Some tests appear to get flaky with multiple jobs running.
+ # https://bugs.gentoo.org/730434
cmake_src_test -j1
}
diff --git a/net-misc/freerdp/Manifest b/net-misc/freerdp/Manifest
index 0b2cd2c0f0f4..1a548d25c249 100644
--- a/net-misc/freerdp/Manifest
+++ b/net-misc/freerdp/Manifest
@@ -1,2 +1,4 @@
DIST freerdp-3.27.1.tar.gz 11452205 BLAKE2B ee08cfc2e4d203e6a2796bc52fa5b2285d6359d38482c5a4ffcc8dd3bd11c2593ab21a5772bdc13acaf810a8f229d669324f8d6d573d5c7ee9bec20dcfd46c4e SHA512 8d564dd8552abf3ecd592a106c43434f62895caeebb425fa2b259456d6670e64d513d6174ffc31a26aac57697e954156e0f8bb9900524d6f96efd3d8d4f3afe5
DIST freerdp-3.27.1.tar.gz.asc 228 BLAKE2B 5d0d86bd3e1643b8c325d6197295c74e8ccaa38d2cabb497fbe98ee285f9ab73ffc6f28f1ee4428bab57d7a54952d9ee6daef68761109dc25a3cfd7d5768471b SHA512 32f052e66ecec48315288e2f675853ab823309f20e090596e38a00177e6fecdb69df77d6021564bc4ea6f2c5b914504de105639f1b29ce810fb07d9511910242
+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
diff --git a/net-misc/freerdp/freerdp-3.29.0.ebuild b/net-misc/freerdp/freerdp-3.29.0.ebuild
new file mode 100644
index 000000000000..e3a36bfd8578
--- /dev/null
+++ b/net-misc/freerdp/freerdp-3.29.0.ebuild
@@ -0,0 +1,192 @@
+# 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/geckodriver/geckodriver-0.37.0.ebuild b/net-misc/geckodriver/geckodriver-0.37.0.ebuild
index b6b44f55b037..e6dc8ffe2ecb 100644
--- a/net-misc/geckodriver/geckodriver-0.37.0.ebuild
+++ b/net-misc/geckodriver/geckodriver-0.37.0.ebuild
@@ -20,7 +20,7 @@ LICENSE+="
|| ( Apache-2.0 Boost-1.0 )
"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm64 ppc64 ~riscv x86"
IUSE="unchained"
diff --git a/net-misc/kea/Manifest b/net-misc/kea/Manifest
index b52d33272bb8..576c546193e1 100644
--- a/net-misc/kea/Manifest
+++ b/net-misc/kea/Manifest
@@ -4,4 +4,4 @@ DIST kea-3.0.3.tar.xz.asc 833 BLAKE2B 6db52edd917165e99947e4fa448ac9cffff149534f
DIST kea-3.2.0.tar.xz 6765764 BLAKE2B 0b803155e5cf3a0f88dadd1dcfb2ca1a868093019f847125a2c6c2b84dca25013c6c4482c3790aa07c3bdb5976e8c5cc37e2518642fbd6f389d4fd8557979ce9 SHA512 67677a90f98704bca2b769cd1fededb384ba8d627fa2564c66f44a656d82a4de9ae9cd86071ec0d953e9291d82b009c63ceed56947daa5530d97ae83e66d0afe
DIST kea-3.2.0.tar.xz.asc 833 BLAKE2B 9dcb71535605c6677e18a998fd81d48d9f32498f4cd297e9d5e2b88776fb4b3d5c499ad3d0f468e589144a75966cf339eafa31d59e6c3c3c2f81af8958d9d724 SHA512 eec8835aa59b7f244c13d56b4d7883129b65f0c9a13e520a05492f6118a34050a4436405e0885a811b6b7eecd6836b87c6194aa62add841a43c4ef3ea4beb70f
DIST kea-manpages-3.0.3.tar.gz 6745 BLAKE2B 8009d67bb9a0e15189001392ce6e804a95b7b8251acf890313ddb1b4e897d65af4b200d8dc33fd138c5de8983184dc45349254e03aa3ccdd89dcc01946b5c650 SHA512 0e57d6fd9d1d139cd12f85bc0200401136492a2f4a1afc8b28b97ca1d2e2ce8566ce6b01461b0ead612bf6ae59a5eb439f07a40bc7c8dfe21d10d95cb29ee11c
-DIST kea-manpages-3.2.0.tar.gz 14446 BLAKE2B 68da30b2ff54f3d20595dc40294cbd27df552cf1dbb759f06f1a98275c1279382b183b47a752bd78b0216b43a935ed9781188ac7eda184d06e85cce6e399554a SHA512 a4f767b9b8845ff88b9548b8f87cba111cc395a103f175c5f47d8dce39c235fa27f14c5b61f54a303ea6a14fc7be3d5b0520bdf3f2edda080f8b44db4e75d38e
+DIST kea-manpages-3.2.0.tar.gz 13883 BLAKE2B 6213c93b9374772b089a07dda8755af156376920b059fda43124f64d02125bcde0b1bcad643f5d11afd3b8188b537aa7bf20d1fa443085b8819f9c2c3cedc78f SHA512 5a93ff794533ad631fbfe7eae961df275b2a6d6ed505c16bb977b73f6b0d5235fccccec5cd104df8242391747be9fdf8b7a53b69d348fbd17975c721f0d959cf
diff --git a/net-misc/sb-hosts/Manifest b/net-misc/sb-hosts/Manifest
index c750750168af..72202ede588d 100644
--- a/net-misc/sb-hosts/Manifest
+++ b/net-misc/sb-hosts/Manifest
@@ -1,2 +1,2 @@
-DIST sb-hosts-3.16.96.tar.gz 21509620 BLAKE2B fdb597778130bf7b320a745f30c58c4673bcefce9577b4e019bd10e6109852f7540fe66254ef557cd12cce5643fb6cc02f0162a78ca0b0b7a2c495e465f3ba78 SHA512 ee99efd2ce925216b8b418fa49199f11fe4535841a0d04dc3e0b884d2e8f68597483cb6fdaa5bb34d773bd3f3edb5a0f90c5d5c27f409a3cfe55e607e1354bba
DIST sb-hosts-3.16.97.tar.gz 21612967 BLAKE2B 5c99d2a5aaabf669b52a671fa25a181643896f7900fe0aca9dc1ab603eded3a429722bdc443295e9e20295afed560bb72466fbe33d888149bc1f5548b9caf0a0 SHA512 79fcfbdf8cd873b394ae364647370b48ab33fc3ef2e577f4295844b8b5cef8267297d66415b8a5bbc53d7af1c32593c6823d396d55e2d656292fbbc0c324884e
+DIST sb-hosts-3.16.98.tar.gz 21315483 BLAKE2B 4f13575cf9612acde978e7115ecd6ff4494bf41cbbdc399d91870074609a006e8922606e86814ae669c9a70e4fac49b52718e47148ab7195a376b57b1397d26d SHA512 cd1eefb94269123e4e8ac55098fdfe83b65e512e8c2214f370dd5b20780b7707bac2949f753fa708251ef728067670973610d2debd561d92890fb9de5b7710d6
diff --git a/net-misc/sb-hosts/sb-hosts-3.16.96.ebuild b/net-misc/sb-hosts/sb-hosts-3.16.98.ebuild
index 941876ea977f..941876ea977f 100644
--- a/net-misc/sb-hosts/sb-hosts-3.16.96.ebuild
+++ b/net-misc/sb-hosts/sb-hosts-3.16.98.ebuild
diff --git a/net-vpn/openvpn/openvpn-2.7.5.ebuild b/net-vpn/openvpn/openvpn-2.7.5.ebuild
index 7179b0a6bec7..070d0b7bf731 100644
--- a/net-vpn/openvpn/openvpn-2.7.5.ebuild
+++ b/net-vpn/openvpn/openvpn-2.7.5.ebuild
@@ -74,7 +74,7 @@ RDEPEND="
if [[ ${PV} = "9999" ]]; then
BDEPEND+=" dev-python/docutils"
else
- BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openvpn )"
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-openvpn-202600704 )"
fi
pkg_setup() {
diff --git a/net-wireless/bluez/bluez-5.87.ebuild b/net-wireless/bluez/bluez-5.87.ebuild
index 1d66dca097d3..c13f66d516f0 100644
--- a/net-wireless/bluez/bluez-5.87.ebuild
+++ b/net-wireless/bluez/bluez-5.87.ebuild
@@ -198,7 +198,7 @@ multilib_src_install() {
fi
# Not installed by default after being built, bug #666756
- use btpclient && dobin tools/btpclient
+ use btpclient && dobin client/btpclient/btpclient
# Unittests are not that useful once installed, so make them optional
if use test-programs; then
diff --git a/profiles/package.deprecated b/profiles/package.deprecated
index 1d43844d54d7..71e53cf2fc82 100644
--- a/profiles/package.deprecated
+++ b/profiles/package.deprecated
@@ -77,15 +77,6 @@ dev-python/httpretty
# Bug 892854
dev-python/berkeleydb
-# Michał Górny <mgorny@gentoo.org> (2025-07-29)
-# dev-python/flaky and dev-python/pytest-rerunfailurse have conflicting
-# pytest fixtures, with the latter providing a more powerful fixture
-# (and the former breaking packages requiring it). If your package
-# uses `@pytest.mark.flaky`, use pytest-rerunfailures instead.
-# If it uses `@flaky.flaky`, send a patch upstream to switch
-# to `@pytest.mark.flaky`.
-dev-python/flaky
-
# Michał Górny <mgorny@gentoo.org> (2025-06-28)
# versioningit does not provide any support for building via GitHub
# archives, and has rejected the efforts to provide an envvar override
diff --git a/sci-ml/ollama/files/ollama-0.31.1-llamaDL.patch b/sci-ml/ollama/files/ollama-0.31.1-llamaDL.patch
deleted file mode 100644
index 8720bc36c3f9..000000000000
--- a/sci-ml/ollama/files/ollama-0.31.1-llamaDL.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/cmake/local.cmake.old 2026-07-04 11:21:56.571755428 +0200
-+++ b/cmake/local.cmake 2026-07-04 11:22:30.948410723 +0200
-@@ -124,7 +124,7 @@
- else()
- set(OLLAMA_LLAMA_CPP_SOURCE_DIR "${CMAKE_BINARY_DIR}/_deps/llama_cpp-src")
- ExternalProject_Add(ollama-llama-cpp-source
-- GIT_REPOSITORY "https://github.com/ggml-org/llama.cpp.git"
-+ DOWNLOAD_COMMAND true
- GIT_TAG ${OLLAMA_LLAMA_CPP_GIT_TAG}
- GIT_SHALLOW TRUE
- SOURCE_DIR ${OLLAMA_LLAMA_CPP_SOURCE_DIR}
diff --git a/sci-ml/ollama/files/ollama-0.31.1-nostrip.patch b/sci-ml/ollama/files/ollama-0.31.1-nostrip.patch
deleted file mode 100644
index 7d73e24ea50f..000000000000
--- a/sci-ml/ollama/files/ollama-0.31.1-nostrip.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/cmake/local.cmake 2026-07-06 12:13:41.141873612 +0200
-+++ b/cmake/local.cmake 2026-07-06 12:13:51.589768325 +0200
-@@ -483,7 +483,7 @@
- get_filename_component(OLLAMA_GO_OUTPUT_DIR "${OLLAMA_GO_OUTPUT}" DIRECTORY)
-
- set(OLLAMA_GO_LDFLAGS
-- "-s -w -X=github.com/ollama/ollama/version.Version=${OLLAMA_VERSION} -X=github.com/ollama/ollama/server.mode=release")
-+ "-X=github.com/ollama/ollama/version.Version=${OLLAMA_VERSION} -X=github.com/ollama/ollama/server.mode=release")
- if(GO_EXECUTABLE)
- add_custom_target(ollama-go ALL
- COMMAND ${CMAKE_COMMAND} -E make_directory "${OLLAMA_GO_OUTPUT_DIR}"
diff --git a/sci-ml/ollama/ollama-0.31.2-r1.ebuild b/sci-ml/ollama/ollama-0.31.2-r1.ebuild
index 2c277da984af..04274b56f1b5 100644
--- a/sci-ml/ollama/ollama-0.31.2-r1.ebuild
+++ b/sci-ml/ollama/ollama-0.31.2-r1.ebuild
@@ -39,32 +39,85 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-0.31.1-ggml.patch
- "${FILESDIR}"/${PN}-0.31.1-llamaDL.patch
"${FILESDIR}"/${PN}-0.31.1-cmake.patch
- "${FILESDIR}"/${PN}-0.31.1-nostrip.patch
)
src_prepare() {
cmake_src_prepare
- cd ../llama.cpp-${LLAMA_CPP_tag}
- eapply "${FILESDIR}"/${PN}-0.31.1-gcc17.patch
+
+ local llama_src="${BUILD_DIR}/_deps/llama_cpp-src"
+ local llama_patch_dir="${WORKDIR}/${P}/llama/compat"
+
+ mkdir -p "${BUILD_DIR}"/_deps || die
+
+ ln -s "${WORKDIR}"/llama.cpp-${LLAMA_CPP_tag} "${llama_src}" || die
+
+ # Switch to the llama.cpp source directory
+ pushd "${llama_src}" > /dev/null || die
+ eapply "${llama_patch_dir}"/*.patch \
+ "${llama_patch_dir}"/models/*.patch \
+ "${FILESDIR}"/${PN}-0.31.1-gcc17.patch
+
+ # Remove vendored
rm -r vendor/stb || die
+ popd > /dev/null || die
}
src_configure() {
+ # Configure Embedded local Server
+ local llama_src="${BUILD_DIR}/_deps/llama_cpp-src"
local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${BUILD_DIR}"
+ -DOLLAMA_RUNNER_DIR=""
+ -DFETCHCONTENT_SOURCE_DIR_LLAMA_CPP="${llama_src}"
+ -DOLLAMA_LLAMA_CPP_SKIP_COMPAT_PATCH=ON
+ -DBUILD_SHARED_LIBS=ON
-DLLAMA_USE_SYSTEM_GGML=ON
)
-
+ local CMAKE_USE_DIR="${S}/llama/server"
+ local BUILD_DIR="${BUILD_DIR}/llama-server-local"
cmake_src_configure
- rm -rf "${BUILD_DIR}"/_deps/llama_cpp-src || die
- ln -s "${WORKDIR}"/llama.cpp-${LLAMA_CPP_tag} \
- "${BUILD_DIR}"/_deps/llama_cpp-src || die
+}
+
+src_compile() {
+ local SAVE_BUILD_DIR="${BUILD_DIR}"
+
+ # Compile Embedded Local Server
+ local BUILD_DIR="${BUILD_DIR}"/llama-server-local
+ local cmake_src_compile_opts=(
+ --target llama-server
+ --target llama-quantize
+ )
+ cmake_src_compile
+
+ # Install/Stage Local Server Component
+ "${CMAKE_BINARY}" \
+ --install "${BUILD_DIR}" \
+ --prefix "${SAVE_BUILD_DIR}" \
+ --component llama-server \
+ || die "Failed to stage server component"
+
+ # Expose CGO to Go and establish compiler optimization paths
+ export CGO_ENABLED=1
+
+ # Replicate the linker flags dynamically from your ebuild version
+ local mygoldflags="-X github.com/ollama/ollama/version.Version=${PV} \
+ -X github.com/ollama/ollama/server.mode=release"
+
+ # Call the Go build engine natively with standard Gentoo flags
+ ego build \
+ -trimpath \
+ -ldflags "${mygoldflags}" \
+ -o "${BUILD_DIR}/ollama" \
+ . || die "Go build failed"
}
src_install() {
- cmake_src_install
- rm -rf "${D}"/var || die
+ dobin "${BUILD_DIR}"/llama-server-local/ollama
+ insinto usr
+ doins -r "${BUILD_DIR}"/lib
+
+ einstalldocs
newinitd "${FILESDIR}/ollama.init" "${PN}"
newconfd "${FILESDIR}/ollama.confd" "${PN}"
diff --git a/sys-devel/gettext/gettext-0.22.5-r2.ebuild b/sys-devel/gettext/gettext-0.22.5-r2.ebuild
index fe06327b5d23..b3af4d9425b6 100644
--- a/sys-devel/gettext/gettext-0.22.5-r2.ebuild
+++ b/sys-devel/gettext/gettext-0.22.5-r2.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
# Note: Keep version bumps in sync with dev-libs/libintl.
@@ -135,7 +135,7 @@ multilib_src_configure() {
$(use_enable nls)
$(use_enable openmp)
$(use_enable static-libs static)
- $(use_enable xattr attr)
+ $(use_enable xattr)
)
local ECONF_SOURCE="${S}"
diff --git a/sys-devel/gettext/gettext-0.23.1-r1.ebuild b/sys-devel/gettext/gettext-0.23.1-r1.ebuild
index 968daaad081f..01bd6563c5d8 100644
--- a/sys-devel/gettext/gettext-0.23.1-r1.ebuild
+++ b/sys-devel/gettext/gettext-0.23.1-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
# Note: Keep version bumps in sync with dev-libs/libintl.
@@ -137,7 +137,7 @@ multilib_src_configure() {
$(use_enable nls)
$(use_enable openmp)
$(use_enable static-libs static)
- $(use_enable xattr attr)
+ $(use_enable xattr)
)
local ECONF_SOURCE="${S}"
diff --git a/sys-devel/gettext/gettext-0.23.2.ebuild b/sys-devel/gettext/gettext-0.23.2.ebuild
index f93795f09912..b5614336a2aa 100644
--- a/sys-devel/gettext/gettext-0.23.2.ebuild
+++ b/sys-devel/gettext/gettext-0.23.2.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
# Note: Keep version bumps in sync with dev-libs/libintl.
@@ -137,7 +137,7 @@ multilib_src_configure() {
$(use_enable nls)
$(use_enable openmp)
$(use_enable static-libs static)
- $(use_enable xattr attr)
+ $(use_enable xattr)
)
local ECONF_SOURCE="${S}"
diff --git a/sys-devel/gettext/gettext-0.25.1.ebuild b/sys-devel/gettext/gettext-0.25.1.ebuild
index 82211b73d7b7..b09ce1cd770b 100644
--- a/sys-devel/gettext/gettext-0.25.1.ebuild
+++ b/sys-devel/gettext/gettext-0.25.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
# Note: Keep version bumps in sync with dev-libs/libintl.
@@ -149,7 +149,7 @@ multilib_src_configure() {
$(use_enable nls)
$(use_enable openmp)
$(use_enable static-libs static)
- $(use_enable xattr attr)
+ $(use_enable xattr)
)
local ECONF_SOURCE="${S}"
diff --git a/sys-devel/gettext/gettext-0.26.ebuild b/sys-devel/gettext/gettext-0.26.ebuild
index 82211b73d7b7..b09ce1cd770b 100644
--- a/sys-devel/gettext/gettext-0.26.ebuild
+++ b/sys-devel/gettext/gettext-0.26.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
# Note: Keep version bumps in sync with dev-libs/libintl.
@@ -149,7 +149,7 @@ multilib_src_configure() {
$(use_enable nls)
$(use_enable openmp)
$(use_enable static-libs static)
- $(use_enable xattr attr)
+ $(use_enable xattr)
)
local ECONF_SOURCE="${S}"
diff --git a/sys-devel/gettext/gettext-1.0.ebuild b/sys-devel/gettext/gettext-1.0.ebuild
index 5194846322b3..551446063e1e 100644
--- a/sys-devel/gettext/gettext-1.0.ebuild
+++ b/sys-devel/gettext/gettext-1.0.ebuild
@@ -150,7 +150,7 @@ multilib_src_configure() {
$(use_enable nls)
$(use_enable openmp)
$(use_enable static-libs static)
- $(use_enable xattr attr)
+ $(use_enable xattr)
)
local ECONF_SOURCE="${S}"
diff --git a/sys-firmware/sof-firmware/Manifest b/sys-firmware/sof-firmware/Manifest
index 8e5ec0feb853..4022f4a65725 100644
--- a/sys-firmware/sof-firmware/Manifest
+++ b/sys-firmware/sof-firmware/Manifest
@@ -1,3 +1 @@
-DIST sof-firmware-2025.12.1.tar.gz 13486538 BLAKE2B f791dccb488ae3a1db26e39d149d0a51b68c200943ef35d2f40a59c0e17a4bc7bcaea5f54195ccc6cd9574371aceb07a394a1869efe1bdfd418d938283f8e7b8 SHA512 78885d29720dbf2b54999e3ac4dc4124ac0f6fc466cd51bdfff3ae93dcd796a99e96fe3ea7d997f32e9b85936780c1ad04565002244024d92731a68c889c2087
DIST sof-firmware-2025.12.2.tar.gz 13486442 BLAKE2B 284584e043404a65bbc2f04fcd78e9db4b1e844343a5fe1fd463e1021e92e7dcddbf8e5a8b620ca1e25d77a2469dec1804a0bafea02d3bcbfe175f64a92816a1 SHA512 5eb64665c2cb87967ff2aa81f7d39397dc6e813abea531e89c12bb5c0a15821e7cbfd8c485af196e37984c1cdf9ac72c93f9feea1205d9d71736d163f5af0084
-DIST sof-firmware-2025.12.tar.gz 13398826 BLAKE2B 935f909e4b5ab9fed3424767b660e7ac3b96e121f23d2b52d0b0f24e82877e1acbd54fce530861f43bf01b1b0343874959a0e75c712440c15bc761b3d9d643f2 SHA512 f77c47a401e68e3edb29b281efbfe97505b9ae4c188ea09ccd2855aaced4976631160885df8ce50cf83550bdfdc2bc7489cfee3ed6d9cd63563bbf3d0be8f661
diff --git a/sys-firmware/sof-firmware/sof-firmware-2025.12.1.ebuild b/sys-firmware/sof-firmware/sof-firmware-2025.12.1.ebuild
deleted file mode 100644
index 5bd47e5655f4..000000000000
--- a/sys-firmware/sof-firmware/sof-firmware-2025.12.1.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Sound Open Firmware (SOF) binary files"
-HOMEPAGE="https://www.sofproject.org https://github.com/thesofproject/sof https://github.com/thesofproject/sof-bin"
-SRC_URI="https://github.com/thesofproject/sof-bin/releases/download/v${PV}/sof-bin-${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}"/sof-bin-${PV}
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="tools"
-
-RDEPEND="
- tools? (
- media-libs/alsa-lib
- sys-libs/glibc
- )
-"
-
-QA_PREBUILT="usr/bin/sof-ctl
- usr/bin/sof-logger
- usr/bin/sof-probes"
-
-src_install() {
- dodir /lib/firmware/intel
- dodir /usr/bin
- FW_DEST="${D}/lib/firmware/intel" TOOLS_DEST="${D}/usr/bin" "${S}/install.sh" || die
-
- # Drop tools if requested (i.e. useful for musl systems, where glibc
- # is not available)
- if ! use tools ; then
- rm -rv "${D}"/usr/bin || die
- fi
-}
-
-pkg_preinst() {
- # Fix sof-ace-tplg directory symlink collisions
- local sofpath="${EROOT}/lib/firmware/intel/sof-ace-tplg"
- if [[ ! -L "${sofpath}" && -d "${sofpath}" ]] ; then
- rm -r "${sofpath}" || die
- fi
-}
diff --git a/sys-firmware/sof-firmware/sof-firmware-2025.12.ebuild b/sys-firmware/sof-firmware/sof-firmware-2025.12.ebuild
deleted file mode 100644
index 40a085cc2e66..000000000000
--- a/sys-firmware/sof-firmware/sof-firmware-2025.12.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Sound Open Firmware (SOF) binary files"
-HOMEPAGE="https://www.sofproject.org https://github.com/thesofproject/sof https://github.com/thesofproject/sof-bin"
-SRC_URI="https://github.com/thesofproject/sof-bin/releases/download/v${PV}/sof-bin-${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}"/sof-bin-${PV}
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64"
-IUSE="tools"
-
-RDEPEND="
- tools? (
- media-libs/alsa-lib
- sys-libs/glibc
- )
-"
-
-QA_PREBUILT="usr/bin/sof-ctl
- usr/bin/sof-logger
- usr/bin/sof-probes"
-
-src_install() {
- dodir /lib/firmware/intel
- dodir /usr/bin
- FW_DEST="${D}/lib/firmware/intel" TOOLS_DEST="${D}/usr/bin" "${S}/install.sh" || die
-
- # Drop tools if requested (i.e. useful for musl systems, where glibc
- # is not available)
- if ! use tools ; then
- rm -rv "${D}"/usr/bin || die
- fi
-}
-
-pkg_preinst() {
- # Fix sof-ace-tplg directory symlink collisions
- local sofpath="${EROOT}/lib/firmware/intel/sof-ace-tplg"
- if [[ ! -L "${sofpath}" && -d "${sofpath}" ]] ; then
- rm -r "${sofpath}" || die
- fi
-}
diff --git a/virtual/httpd-php/httpd-php-8.5.ebuild b/virtual/httpd-php/httpd-php-8.5.ebuild
index fb2dfdb87a2b..3e1b3b514f3e 100644
--- a/virtual/httpd-php/httpd-php-8.5.ebuild
+++ b/virtual/httpd-php/httpd-php-8.5.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
DESCRIPTION="Virtual to provide PHP-enabled webservers"
SLOT="${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
RDEPEND="|| ( dev-lang/php:${SLOT}[fpm]
dev-lang/php:${SLOT}[apache2]
diff --git a/www-client/firefox-bin/Manifest b/www-client/firefox-bin/Manifest
index ae26191c3f98..da6f48243561 100644
--- a/www-client/firefox-bin/Manifest
+++ b/www-client/firefox-bin/Manifest
@@ -192,8 +192,107 @@ DIST firefox-152.0.5-vi.xpi 516537 BLAKE2B b12fc7be70358a7659c9951b78533df70c738
DIST firefox-152.0.5-xh.xpi 275320 BLAKE2B 0a72132347ab4948cb56a1cc6f2532602504ac6da509d645e17269067a3876f42bb181c4cb0b25a932c54c754998be2d8820da097ea016d8f4baeb1efc2de186 SHA512 7c040d3f08f9add75da352b2885ca0f4303cd87f3e21c182d15cbdddf5ca2b992b3049550b290b6338d3bd2a93610ea5bf3b41ac9ce6fcad42230750df982915
DIST firefox-152.0.5-zh-CN.xpi 506653 BLAKE2B ad779697055f8995a538be6ea824dbc5fa59faa8689622b8629b9519492081fba97f42c51760b2741b24b7a33f2e3e86779b911ff01e9c224eefe4fb4d5813aa SHA512 22094f3530128d9fde1f89e5e2fe8f29aea56ab7d765ee75dc0e56c28ede29ecd55359d1c15c50419e360228ec235b312cab1a7cb74dd61e9abeceed3cbaf56c
DIST firefox-152.0.5-zh-TW.xpi 510788 BLAKE2B aa974692771a52c08003a13808ae1b20aa55c1d4de1d129634aa95fe2016e7344e3b7e3ae8e779009e88baf99c4a1ca5e28d9e46f124608df5d357243f9b2e1d SHA512 99307fe39b33e85e786f64856fec8941b3b7e22f38d01d6b53d67188be8632724ac2291f7ac295e1c12ff5d9daf2972c59c2de2a08b3e0640ad6c6817acae0d1
+DIST firefox-152.0.6-ach.xpi 295754 BLAKE2B 22291e8efd897e7f52212f47627d70ef94c7a8ac1f8e06a73691320048e9e837540969e7e71d29f0324c081fb56c606a29f086dad3d8f13437eb0e07976e5cab SHA512 a7431c21bce0e2fb4b28a7e3ff1dc2aabcce10104401778799df5cec3ac67bb746ec5887916df5d5ed631a1bdbb85d6ce32136abd3c97cb0d308eb646b65344a
+DIST firefox-152.0.6-af.xpi 269407 BLAKE2B 1c3155c56485657f3def9bcd9d197325f4ca3fcce79b9a3f0dfc777ae607dca05f7a7dd2aa7396c11a0db2ff381c4d759031686935095a97f2e73590193babe9 SHA512 5a87d20581c919cc045371d016ab3ade5fd7c10ca9759f8462964f5a737f31399b2bd0296a8a699471d8873808a64fff6e440e88b7e6f305325c0e91b074b047
+DIST firefox-152.0.6-an.xpi 332681 BLAKE2B c080a5635619a97a13c0290f3c9be93a8a93515cb45bd4d61a2e5dd607dcdb5c6421ee14d6449f0989a1aa66a72ac8e13249f24c7094c796b3604879e3f0116c SHA512 913be83251f5beefce2d61ebd92beceaea958c6303dd461fb20a02bf34e515b4fcb9e5e840a88bf19a67994be82c1a668c4bda3ec9926ea0bd9c6914aa88986b
+DIST firefox-152.0.6-ar.xpi 508568 BLAKE2B 7aef2c4572f6941aa92e9f8ca37053f4fa616e26ff42a258efe5de79c321aa79ad4f9cfa2b9d23027aa14853ce418ce92f4214de5f880983579f04a1e1c1ecfa SHA512 4874ce62a4aa19777f9c3e8c3dd542659dc2418a7bfec4d263a6a23faca1f4bd5d4714cb47cd8ccbdcbe9f852097020a1724348a0196b1a920f275cf1f388207
+DIST firefox-152.0.6-ast.xpi 313615 BLAKE2B d788d04a68b5ed400f6095bfca770373ef9e184aff9cf50f218f9588740464d4cb8ea053258d67e429ab5096b8b6b96d23ef2a69f08b29bf3c766949032cb4f5 SHA512 cffab83daf3f3cf63fb11cca9e0122cc2b0eafe9d43e8735fdc8ede0401df901b2188b227b54783334a8cfec168061d2fda75afb678328fc4baccb46089ef766
+DIST firefox-152.0.6-az.xpi 319317 BLAKE2B 01aa7f0f38e9dcf770a9e65b087fd6b9b5100edcc379b04800b6b06b5007ea1847811f7270515c5a2b94f0c4c4dab01d0e1d9015dc6a361ae594b54dc16340a8 SHA512 973cca06e9efd6960ae9958d505266b4ba1c58123ab2ee6559bd8e028cf342e63c9651608fcf0e9d68f56dfe616e179152933cd820e95b336253c08ff0549d60
+DIST firefox-152.0.6-be.xpi 577430 BLAKE2B 36d248b2206c49699db15fcc44b8340e64393e64b786faadd91d555faf65af19890e49798c802ae0960db8982d5e8e57a1608e21d62ff9dd0209e55de35be004 SHA512 09b191ee7d15d314b653917391c7a3ca758a3ae741e811bcc475d81b61800e8800e1ae9f712f26c5d13081b54129e1d5cf2c19f65b726065d8fe374261cc758e
+DIST firefox-152.0.6-bg.xpi 474919 BLAKE2B b7132de567ef85a132933c7b27394c370f59cb0138dc150c53c6506716efa26d98995368d9b4da8b6ba7a7c31986623d130804d419d8f50ad0cb3e7cc626f361 SHA512 fa59289e06aeeb1f719c36c6564c1de758963e4f66e2dfc86412f1df4c2277b6828d189aa747ede6b923176edaea5f0ed2cd24b36f9dd3ecfe791e4aed2c413d
+DIST firefox-152.0.6-bn.xpi 413024 BLAKE2B 330d323196438da0482f443d1a4e29fb31e8cc7b069f2cef230267de20402860c4ccbc91e289bbc49db3dd48a0d821f70a9f0a230c59267b0219a9afb76eb1f7 SHA512 70c745eac5762e75b84ce6bf8dfb1625aaf5a515d7dd5beaa8bf9f8889cf3f95b166de2b38f6f593b8e763eb352c0bb2d25241e2a97692c491a33108df1c667a
+DIST firefox-152.0.6-br.xpi 396238 BLAKE2B 195422db57d52c4eaaf91950bc74e8232c67714b29dcacac30d4edfad69ccda5a28bf3c4618c897a029aa11b3fdb8453306c376c262ee97ce5fe355504538322 SHA512 7c3b8e8bc848615b4847f2bc38aaf45cb7f2d040dd1b4e744c20aa8fd1c4711cbcb88088b461350f6ddff9faf1ede4e3c68c77556c492fd705fad382b9b62932
+DIST firefox-152.0.6-bs.xpi 449427 BLAKE2B c2de41021400e2ee75590b0cd30d84ceb42bf5287f4f28395e096d44250149ffc693288226740a7937c5678bc247fc7e1a04e2b7bcc2f030de42eb4b1e7fae86 SHA512 d34c5c195e60573005700a967143826a5a7cf0cf899c7ef690a8eeac2ac15199c0d3d71b8467e480e24f420b1dd34af4fa7c57446243d1d25d540627ea7f8053
+DIST firefox-152.0.6-ca-valencia.xpi 358799 BLAKE2B 0a115d48a21843bf74be424cc6bfb253323654c9c133c914ec41e0c324c60b2af9c3376abcc6195cb30906e4e96daf6c158753fcde4fea808b242c6d094856be SHA512 6fa9f4744b64cd2db8c119ee9aa5d0d786b4c081691189fd6240546b14617efc0da0fc50804e7edd9ad9d61e209e8f0d28db146551fb7767de7ac05b65afaf6b
+DIST firefox-152.0.6-ca.xpi 439476 BLAKE2B 84f940cf51dc4955ae40b9030d817eedcb22070fd032b78ef38bdac98b3603d724c3321a036805e57f02df1c31ecd9aa7a610dc535ad3346b95a95b069f43955 SHA512 09cd23f192d723309d75335059c39037fc62b4bb0f81b8b201e9c676b397b1e489b31d9f27120fe705b037dc65d1274205729e593a63e12276d71048cd1f1093
+DIST firefox-152.0.6-cak.xpi 390244 BLAKE2B 7ce71e6bd7335cefb68aee859798683a80549901b833db975b77016bc5fa6895a7c9ec14b449c2f3b0cae4ec55ebb5ff548dbfd4d8e71fd02e4c94dc475f0ebe SHA512 75ac746e90a4e7aed5a4ea8b2a9004c56a724387bb746da59cb69438481a1b20c6ab69d29cbe2b3a49d4d0873808dec1f4c8c34f19e0043d8a611b07afc0801e
+DIST firefox-152.0.6-cs.xpi 528069 BLAKE2B 5c57b97ba69bb1f41634a3a9beb724820ababde94b8c9b7ea242ce25db6fe9daba69e34fa2402bc148075462c272eaa4a36ebc07b4a172f1a8e8458fdb5f110a SHA512 ff5672349314d8353ee845c743f98e1a41a666aa601cd7b0556201bbb81b0d2209fc9f6c8206cceaeb748fb33ae4f3dc3f6c457e3245b33c90d218eb322e469b
+DIST firefox-152.0.6-cy.xpi 488944 BLAKE2B 2fdb18ce0f53e5714430a9e4d22cbf754dd9f16c3c427af200dea03feb3585d14c94937c5f638ae775f46857c18c0a92a63be0e44ce51774329e285788ccbd74 SHA512 bb7e9a91c9f7e49a7945d94823e0f63356f8e93f6947bb9d333510086a52086fc8f6526b439f867c92ece676b958d66d1185b5856652504b8182963bc017a8ed
+DIST firefox-152.0.6-da.xpi 468424 BLAKE2B 75fb9d8d72d94141b041d63d226bfd2530477dae6a320219378c16398e57dc9431916ed4d0828708a8a2456e9b91e316f9d19b049e4688f63efe9a01129c1388 SHA512 9f601f71ca04d5cd5356a65863c995dcefe6c8473a748a2fd95f13af661b4c6c2cc9705f7c28ee24ec17953fd0d1b73bbe341c0958cf2849e8adc2892ae3b716
+DIST firefox-152.0.6-de.xpi 500408 BLAKE2B e578526ebcccc5bc9b0253b003d430e5087989a2012d3f83e999fef89050ed1a3f93046f70257baeaf3d3509de13e8f34e2ae7ec4a6e73e196e3533b25185a99 SHA512 1639d18c482180c05257428cc28a456a069336e4470001980b29d7bc674de1c02855a4d85740d77bd96f31046476699271db9c49841f7a1b70cca09306f2856b
+DIST firefox-152.0.6-dsb.xpi 514572 BLAKE2B 93db404a3caff0753f735d67154218ab8f333a3d34de28186cd9d2261302f3388297f62b9a7e1904b50d31c66150c081568891b7e796824686467740b2aa3525 SHA512 dd8278e8764ca5d88c214f817752d6244fa0222e8dd2a34f4e9caab0a43c9a3c4274938a10814ce8e88840a6cea643f7d816e99cb1324a1a575ee097c76d4532
+DIST firefox-152.0.6-el.xpi 593115 BLAKE2B 0bb2542945a0f85de8c5e5768a295f5498f41a5beece6b071a32bb64c1ff059a78d2976ee40564c6b74b2033a9a56d3b183aef1c9f42d45643fcdd43ecc3e3f8 SHA512 3005643a38c16a83e60f84fc8c2dd1bf870efb2379f1f1cf6157d87b438dbcc8b91fcb14f33b069696622fd5c425a424e3313612ff5ab1d91015a15cf5bfd5b0
+DIST firefox-152.0.6-en-CA.xpi 452174 BLAKE2B 081da1bfa9790386049d0fec9770b7267d1004d4b0b1bc0fb3d65d6925f2c37de4e5421b496ac5d7c6c1ca2b95aa74ea878c8e1e956e6ce863974743cbd8f981 SHA512 d3ef1d8f19ed83c4bfb4a42260ad66b5f09ba91cd57942f0ac947eed3e94bdfc566f03603acd5ed615d50d8f34c4792b0c411a501d26a484c05211f14e628942
+DIST firefox-152.0.6-en-GB.xpi 452475 BLAKE2B be89d0025d3989ab5ce6773dacd5c5dcde4aa392a6f0d37044c13e286ddedd91583dccc915241f10b65ca62112d523d6c3f2188de18d87451ac39cf9c34af3c9 SHA512 baea8b75662f0e413578911c85cc69bfd64d351821b69b71d9cbb1f2fe82b3a0a0079ff75c7be5c13e73cf020b1d0d833b68fdc59296a23891b2b632acdf1039
+DIST firefox-152.0.6-eo.xpi 478154 BLAKE2B bb772bc481bbfa18aec2810bf32cdc679d997a0087f09ba4faee37beed87ba7610376c0399ed4b30d4d88169abe0aedc37988d28defec843f017b01bc0b551ab SHA512 aae9fc7dbb37662dda83f17374e819630d32f1b2f7b3e24e72ef82a48e5ba9163055ef6a386c8cdec7d68132d52e9b75bb7ae2dd0c193c7e0b77916f6eb2f563
+DIST firefox-152.0.6-es-AR.xpi 490660 BLAKE2B c0a304b26ed466127d5b4ba62c531d5ec35ac3fff6ff2bd90b60ba90922c36a5f2ea4db10f0e79b594978663082f1e9977aef41207d2c3f1c8ef0690f4f468c3 SHA512 8400c63872214413f381aba13f49536600750a66bbf969a73f3d032a757fbf2f52ddee838816e483ff68b31916de2c8ec63d041dfd89366d8776af1bf72af7cf
+DIST firefox-152.0.6-es-CL.xpi 492411 BLAKE2B da676fbaa29d5b51ff8f3e70d58bd61567cef3369f58c67a847328fd60c33f8be57866de85d3c69fb33db5fa19344136481e15f96774426e05a5a83b15489baa SHA512 830b196b8bb270b391c759befb6ea1e1e5dbd4c939e56e80a9ced081621b149636355db5388465bcce3ba521913f9e7a35d3821fbcb7643d5cc5594a72309c53
+DIST firefox-152.0.6-es-ES.xpi 493165 BLAKE2B 590b047e866fc92cde609a729b2171a954630de29331473ed7661edd3e7ad5e640977e682987cce1357d6698d20aa86c27c57d00d35ae92abf8379de2219136b SHA512 a8091d070c741964709d8b94e618747aa6e686d79bebe70bed16f4f495d15dbe354908431a398a47413cf628466d6be2367050a7be8107a1f96c7635ca466197
+DIST firefox-152.0.6-es-MX.xpi 496053 BLAKE2B 7e5ca98ec4afd76290090f440c9c3b5a217e71dc2e69b6f169a008739c4c8512736ce82b5bbadc032c6e16fbfb84eaeb97b50e1160b7caf7bf9cf55451d097a6 SHA512 d5fcabf938aabe04b3124e248aeeb11b5f79eccd130d2539ba68b31eeaab8c42a4f6df3753b277f906da1af55004134bab1e92f31b548268baa8a61e059ad417
+DIST firefox-152.0.6-et.xpi 360495 BLAKE2B 2cd5c996d182a3f4800471d95c4f8573292084281f77fa22bd8728547aeb98274394cb0e010bc6d3fcb7387d15565dc27992ba6d6fd41f6b9610974e5bbe3b85 SHA512 800a43248582e9865b6589ea92f73c3918a96f4553368324fc14902e2264faf7583b290967f198a6e096b85211d892ab4dec9c3e224d5cefc1894a26f424b15e
+DIST firefox-152.0.6-eu.xpi 477712 BLAKE2B 19934eed5815010139530e318434537d88e4bcdea07d0d4073b0dd0136ff8a9c316f42cb4e718cfecd9afb094c8cccc2d8fe98694670454506e65fbc14454a40 SHA512 94686646b32ac3a1376440f19a729065ca12a48ed510bf852b27c6cacd29443964872d09035279d5c10966951844ebcd63577b1ce94b3cb5de3fa71589d910b9
+DIST firefox-152.0.6-fa.xpi 420812 BLAKE2B c007c792eb89e01d2bdc0df1cbac676168b60e294461d194ccf8a9b15927d600cca20b888101be7831a8ad3105abc1c6bc1ddc8bcb65acff64b40bc3fe0ad4ce SHA512 d512c2355ec29b0eae5bad4454195e48a79ec42b650f338c0dd6351db201ff9426d11b281131a40750118679ae02734cbbaa508555f70ae2d77ed008624ba229
+DIST firefox-152.0.6-ff.xpi 311018 BLAKE2B e6f868a17c83106dd6b5bcc35dec99fa10b859a7ba127ae8bafe4079d1c1b8df752df077b2011993df603f73374930a0f4373e9e3b3e2ba9f6e35364cad581ed SHA512 062e563aa2665b3f2afbfc34d512014d2f62a690e9943248ddc9556771a16be7bc52270a5c865a0f6c975de7a68fe531ae6ba97a7369c1708872abb30b1c9e2b
+DIST firefox-152.0.6-fi.xpi 476310 BLAKE2B d77d001e8568260d1b17d5715adf0eee78dadeddbd2607d3802f5c501e70f361611b24f26a108e4d85b1c45fbeaf201aef63e2a5a4e5ff4e8cf65bf6c2bc41c3 SHA512 ebfff471da5e20cd2867d798a2125001b789d8d1312902279de0e54bec764efd70478367228352c46830afe44837d8208ee81eb81e1996a22ce531b9eb5fa110
+DIST firefox-152.0.6-fr.xpi 506058 BLAKE2B e56137a5964d9b27a2e62ed81290f16711cf64d0a9ea1d2b3f76d573b4f99461bf31693e5cdb1000726211aaf9072bba4ae1fb327cc489b51d1fab0f8374162d SHA512 6b949f4fe1218f0178b8f8ff5dcfc3cf7bc6a628ea9d537647d1c31e721bb3da4a47dc0b435303df63b3149838e88d5bd34bc226aaa9c01478311190cbeb0d4c
+DIST firefox-152.0.6-fy-NL.xpi 487571 BLAKE2B 9768fe623a3826e83f3dd1279bf1fe9339b8b499e14c6772591db813fe955fc0e7de5c9a25103ebc306d7966e2100e5567d3969049be557a0ebfabacbae7d98b SHA512 c4173b36fe851c94e7f50fc50db4e1ebf9bd5a24eef40c35c256b4ea40cd8e2aa2a1d453946400ea541a17c2868e0cc33f0399e68e7ccdab4f07effd5ce25db5
+DIST firefox-152.0.6-ga-IE.xpi 319425 BLAKE2B 477c85e6e5d4154d9f7d30df66572da8c5b1ab13cb9194d92e37492dfffd9faf251a1c57ec878fe2260b4ca80416bf71b7eb643b611fb5f20d4b72ee62d6a263 SHA512 7d0b54dc90f7c61dccd7b7c8eefee49885aff18f7bb9d20b627778abcc22ac015ec58b2758dd2b6af305ac5ef1eed28f3ef007a872dea6ed2b79d5242a9bbcaf
+DIST firefox-152.0.6-gd.xpi 409698 BLAKE2B 5689875b5a5b9f8e5b148745254b06536f5fbe845018e344e616746df7be53019920d0cd74e616ac730d86f3b85c8365b55d23a84bb056a2e0825142d5a1cbbd SHA512 73b9703ce7e03b4b11584fa187697f5bdcc17e5db4a09c44271efc8737783c4e84a794f4e9bba05edb4ce38162c82dd5488987792b6aa190ba6051f3b8d7f252
+DIST firefox-152.0.6-gl.xpi 446293 BLAKE2B c531502f591de3a5d90fbac3847d4ec128ca4cc7f677488d0343010501d29f0104f4e163cd4a667e44f9fec74d9720f6deafffa63f780ed45bff1e14a2c7ecf2 SHA512 217ccf00e924074f0aa06ba583325e42bb93d0d304f3c83ab9aed124f8ad815e815166f3011ad9de729bef31bc151060f0ac274703b522a92521348c5533074e
+DIST firefox-152.0.6-gn.xpi 495743 BLAKE2B 38efecded88c6547896df473a115cb9bb2b456929ee6ba7cb1d54710f232c05cecfd282bee072b2371d15d284163ca6d933c8f9572d015e9c392bea6ef0405d8 SHA512 c4b6217e0714abb3e808cb9fdf6d7f5f457c5863a8b5ffb1a930c1e38c3982979b52539be9bdbe4d3210b14bf53a60040c12fd211b540e1ccc90d440ec405a2f
+DIST firefox-152.0.6-gu-IN.xpi 358918 BLAKE2B 8896cc9769ace08e6bffeb975c84ee0a100884096d0cec3b40bffb0fab5000f82b4fc8e96ebd0920d904c37850935a8b10d9a35427513ebaa41c5811b7145b28 SHA512 2d75c63a5fbf4faa4659ecfdc6aec94c31e680e00bea41e1931982279de3ea15a22300c93e9f9cb641e49ff00452b52ef6ab897100337a645c4eb80b3db425a3
+DIST firefox-152.0.6-he.xpi 492267 BLAKE2B b28f4f53ba5102ab02e75a41591599f4e988ce16c3fc6f8d8d0584f9c0c0a829565220fc0c3202021a80eacf6dbd59b4f8d161a7ae34b41c20e28a00c406799e SHA512 cc0c129e5455975a4ad2acd3bcceffe1cd80a0f79fc3e9bbed8062fcce187af4a1968a1deeb6f8998a269adde861a4d457a56c6e075a30bee2941eeefdbfd119
+DIST firefox-152.0.6-hi-IN.xpi 377793 BLAKE2B 3f1e3f2e93ea5a6ff27c475c152c1eb20307e8e12ee5f60348c916df17e7d0c43b5ee504cdf8bc54e8bf63b89b3d9f56f505e331615836de500bb19f5020c0d6 SHA512 cae16b08bf81fc93c598d01c6e7c805bc421e5c01a9999402aaa4809753d214967e01f71c1346a43be84fb07bda16277486c3b53ccce3f68f427d222439605b8
+DIST firefox-152.0.6-hr.xpi 472448 BLAKE2B c72175fca5889f62bb3443d9739f79a00fcb7561824964428f5593e276679f814b89c0c1e160f87587e96cb8fa66d996f772130491e66776d49c44e0d577c583 SHA512 ab89f9ebae0c5a17f28f4df8b1f592abf4ace14aef6032044011a0c37941d7080c4fc8a4a60efd98561d82320c9e26c5248c6df5aeb344c72791d4b58d9c32a4
+DIST firefox-152.0.6-hsb.xpi 511227 BLAKE2B 7a12392230a1ef3c4215339ea4176cc67a96ab3271e635d37d6b4d1ae89998a845069ec3fc429b47d4f1bbcbb0eeddc8a6731839353eafc18a6d841d29a336fc SHA512 cbf9f6605362da37e3bbc40adae6ea6b33ca51c81488853fc68e931afc1a9ff23633b51b75e93998f7c79a88ed7a71c2b4c6d232e46aff43b5c38a2f9a3f45cd
+DIST firefox-152.0.6-hu.xpi 515437 BLAKE2B 9a86af97287b7f3c314658c54ae2a2dcde907ef3fa345e856c68cf433189f902c44d5ecc00e8abd2a34a01d732da2760274407214e64f1b4ca4dc08da399d973 SHA512 afd0a0a00d93addcef3894d5564810aceff9669a31a7f7a8661e13c0c3d763a72f41c3b232e6a5719b44fb964a49fa00a43be06892358342621d91f6c6d036d2
+DIST firefox-152.0.6-hy-AM.xpi 498184 BLAKE2B 4e862faa0c4fe2d876c535e3a488f50610cc3932d09d94db10604d1e655e1098ea9bc65ff80c4526dccc6d9c063cf941d5dfada7d5dd9a16fd0f7fda25a3bfdd SHA512 c06d24937fffac9f6297aa7312dec743558645f0574cb6f0e655ce06e377838f60bc2a4ae35eec2dbf73fb6614ea14177e5ec8b122d09ed646109019c479d6df
+DIST firefox-152.0.6-ia.xpi 474254 BLAKE2B 38a1f13f8226f91e795c555b162b8451f2c217aa69e3b82658a13449103bd7c2334030e852a1c83a841bb88bd63ee61845ce7d2b537748654c807e197c3c83be SHA512 433f4da58da4304e3a0a899a96dc22da8425a6a74765cefa8c7e196cb73bbda66a95db47e5b91cc398104f6ede07f3ac85440165977304957c75261cb268ce7d
+DIST firefox-152.0.6-id.xpi 433197 BLAKE2B 91df1c032e92e243556115e17e7e7496a32de559725e6a76514276122f6e21c6a96e5c895c47a4a5d98a3dd35bcd628b3990545e6e25ee49d467c0ac0f0ba56f SHA512 a1bec707bbc2d0a685fe97549037cbe053a087deb973861b9ef871f1fa61e9c47b79ec2d892874a5159687dbba7003795e56c84a6cb3dc0a7978ee33e8fd4619
+DIST firefox-152.0.6-is.xpi 441018 BLAKE2B 56e8cec18601e0eaf9970d9f243a6cccdb4fce2d66848d5c5717055f7e875683dc549e7e41a4d10ea747e2e8a8e3e5922f28f24e1d0fd4ccfd6175aac66c8254 SHA512 5600e9ca2b80c89bad0058e3fc2fd36903f938554b09c7a7e25d3d74ac269b94c9badcf7cf3053769a4d7837c75ae99f59701b6e5cec12c548bd025d286de3ae
+DIST firefox-152.0.6-it.xpi 486440 BLAKE2B 541cd4cbd30271a25dc8eacd31491bec1e55e820fc941ef9bdae35d136e58d33460c603e7982933522c4d5a5a04130d682386a7b55c80726ef5948ad8f754bf6 SHA512 355d149bc51f7ee44fd764ba0bd00c0d41646f6fd8d62a77b910aae0a2303d792475a2f3e833aae9fc30ca63db8d8c6b79d3e63c2ce897abb11c15707b92fbc5
+DIST firefox-152.0.6-ja.xpi 530161 BLAKE2B e4053f17d5c1f2159715ef675e97bc7445316b38ae433c555a13960e1fd7e90d1ef72675faa233085d9033a43af4457fbb3ede8004bec82bc1cfeaf1971f9c36 SHA512 2a15cd849edfd4e09dff5d96b3bb6ec1c0d2e7023be8f98f2953cba465294afbc8f11dc6b01672097e73d2edaded1adcc9e41e47eff4ea7f468b658aceaf1097
+DIST firefox-152.0.6-ka.xpi 549529 BLAKE2B 3a425e45dcb602b8b29a1e1017c84bfb74f13103fd4c8b47c30178e9257afc2b7fd459c6c26303d71b605669cd3c73e5c07d879308318a207ab6785c2bd5140e SHA512 78a55d816dc22149c0d6d9d1ce1975105370550d55d871a1f135db9103a03f38b3fb7a6ba215c38de82639d0bf6988b5364b7a12af160ba96a29c011c40d75b5
+DIST firefox-152.0.6-kab.xpi 427380 BLAKE2B 89090054af5e33b7c65beebc983c6b2419ff186196e75763d78013cfa490b5db1e36aba341e5db561c961363c0f288e4e6661101a442ff963373b45cade6f26e SHA512 4033ad854ab4c388dc77d8a9ca520223b9b12a01241a1aa5af555bff8cbc6ae517520f9777fb9fa757a5077947666a2f248f663b3be0775ce8527c03fa37a75f
+DIST firefox-152.0.6-kk.xpi 568463 BLAKE2B 8af8e9eea545c82d06b8bcb2398ac7949b22d99e14370e127bde63e2f6f7592ebe0e3f8c89fd9dc24d2c0ae4e012e443c31b43a8411f009e421fe6ca2d002a8f SHA512 7eb4c8dc7ac1dbb120f143e2497b0fb46baaf5dc875bbcab9d30bfa03e4e0e0b3ad88817385a81517a5d643dd953ba430a56fffc9ffe7d64467ce2587cc359c2
+DIST firefox-152.0.6-km.xpi 375973 BLAKE2B 6cc33d7519dc6fd1f1903e97a8d6f337ca53e1da1dd32b9835292e4eda4b2a2b0dfe6018f6ed45caba601c06b0610fbda45ca8ac330d42b15382980135757eee SHA512 d1813afbbe3f6fa24c31e69de95c86d200b045ceb7859bff01a634f615a88459b0b5582c46d002ce89dcc8ecc86990e2867764c38305393ce1990d73f534afee
+DIST firefox-152.0.6-kn.xpi 333350 BLAKE2B 62bb302e9c923862d6a440038f20f0b51e0ed89f5b5f18fe8b6329d2e5e0480d93bda315fcae1c8fac10a67ce2d35e6968ce34656b3e5f7063587ce877bf94e1 SHA512 366cf7254063404a9dd03be79a50ce9f9eec3d4dcc66189b7d54442a3f578efa5021fc82b2bb3bafd63d2eb7cc261ce8d80afb3c7871f7c422d31fc5922f2f96
+DIST firefox-152.0.6-ko.xpi 514478 BLAKE2B bcf9e5da2c72d5086ef5520eee4475ff9cd3685e095dad107073396aaebfd9d9477f5d275c1368c6da07d07ac969c6c5043bd6f61281d6489e230cad0b6d9bbc SHA512 c672d240fc63fcec65ba03f62ce76dfac5c7a06b16ae7b7df32073e5549edaab60e5ba4203c0a5bb1b38e56453d5dbe6d5e07ef7f4591de9034632db4b81e830
+DIST firefox-152.0.6-lij.xpi 323320 BLAKE2B 615485cba5fb3accf8744d15f042eae3e9545626a3e2cfa53678b18c1e7ce809db10dc9974aa51ca7326fdc363c2336e58b7cfdb31b3d945b1657db628863dda SHA512 c663972b1076762ae6a4d02c09d1ef5d8c2430ea31c219f1a56d1265c4b1bff330fc4da5ecfd2014605d00695174d71816a4b77fe9290415c60af0f23f2ce24c
+DIST firefox-152.0.6-lt.xpi 379977 BLAKE2B 43dad45ba44cd6e50a527f536e7d32c4340a5bebad51a73b7ac92d2076da7b1270a5fe9cfe5f94a164c597cf840b34f960de75539c7e71f5dbd2c63c35b12803 SHA512 34cf185f9d173a1525e732bd2779855e783789a1bca491e542493a6a138794e2a8622b540051b75d8524c6d181cc0320b3f076fa5d4a37f337711f7a752fe97e
+DIST firefox-152.0.6-lv.xpi 398449 BLAKE2B 1bc81fc6feabf2f85fa28939a6b6d4037f6d73ee83d668c22037b209046d1243262b4ecda021f214f7b72be32797b0208ff6957692b32a104ad7b4b76d21c6d0 SHA512 9872c33e13576cde44c1b94d3309b92fca82e3a725f7f3fc0d3762b363ed9d8482f620c929f4439525b1a2631a9395809bccdd2518e40ca8b50a9adb1bb10911
+DIST firefox-152.0.6-mk.xpi 371146 BLAKE2B 4290dc341d55b18e6843820ad148da4581548a8f1f8bbe8bda663843bd7fdeb6c911dce8b8509b2a79157a922bdc85e7948056bf7c779eabec37f167d3fb5c32 SHA512 235bb3a59e1c5fac1e265245fd6e3f9f61e5f33c6d3d3621929476dd24ab4b708309841f7bb407711e466502d43cbe967e002fedb95d79f6c573730e4c73bf6e
+DIST firefox-152.0.6-mr.xpi 356754 BLAKE2B 61f81f7fce0a25b25c58c3013196c2c460cd34fd63e65da54d59feab9dc1947c53b7bf9d9fc0aa9bf0f5754fa6c7b159a981c300c23215705ef2c14d3b237b72 SHA512 3e4eddd50317eb389f42dfef358b1c3cd83a2c32435c8f0b654c034421efd51b028b2e5885d84c1b6a5ff1de048c047bfb047344912f6bf016b9a01f9845a580
+DIST firefox-152.0.6-ms.xpi 296901 BLAKE2B 233c944263daaaac5365c5d8382505f18882a8072122e8ab2ce45d16cd8f48086fdd06b7e791d73bb57dc8da87518b9872a9a2524eb5f986ea4cd0c0ebaf4dd0 SHA512 35da6eab61647c62adcdfb8fb3b8eb9d4dc4d1299bbe7b4e3b04876522440ffb2bc2ebe1c81faef760b50c478d4cd02696368da16244395d8a899d7f36e4dbf7
+DIST firefox-152.0.6-my.xpi 343717 BLAKE2B db34cee0f60e8611d68be36f7c5a1bc57fdeb85c79f4a7a4c5b7f11df1e9690e00ae7ac0f014d0c44e2bd9f490ca26e94eb28447b290bec6d6e70642f6af251f SHA512 eadf1111f2e00d81acad63d137feefc850e7a3caec26370f73675723662e160e86206f1ba15019fb23d5b6a12dadcd18684cef6b01a358aa5dad3f9f9ba12590
+DIST firefox-152.0.6-nb-NO.xpi 473270 BLAKE2B d68561034ffce24ef12fe9a927a6cf064272c03887197cc87b4539737308870bc2c4f5c71c6d48f76a1e6b0ed3d904885cc8bfa0c051ca15c7b9aa87f1226903 SHA512 235e826c5a5bea532c0c8cff16dceca490293a871204c741b92cb344151af7d9ab62f72f23d3d844c51e5271d287579dfd35892fc6d8f1e5bbb3c4b1c5c61786
+DIST firefox-152.0.6-ne-NP.xpi 348954 BLAKE2B a73dbd410a528e45a60ffde52d7cac2275ef71b97b8c315d1f0843867f131f819344121bca67c15c5a2286bd51cbe3fc7e312a05d9757f2b0ee83f3d05f7a5cf SHA512 2a35971622d70fdafc47e5af4fb474742764b5554183a5ca61abdd8f9f7a1ccf87ce376cb50c628b5ce8ca09265b1da830cfa114e673f39ef5a2191e1da02360
+DIST firefox-152.0.6-nl.xpi 481114 BLAKE2B 26be01aeeef3247cb578c00ddcc493ec8b49f64099bf79e9aa8b2150262be59027116ed72dd9f6359408c0148246169050e85e1799f576be280ff77fbaac8f97 SHA512 0b08674ed4a551f8a128a6d490b11a0a430cb6a880228fb7e2084e234b8ad5abab48e6d9717edc14d7e8064d08740c98a55a640045a2c973299e029840b4ff53
+DIST firefox-152.0.6-nn-NO.xpi 476705 BLAKE2B 6dffe7772653f5ce93fc70b0df4a645f610ae98456f6f7cdb23cbe9c45a10b7d6ef468c091ee466ebc3381dabf568141049445384dc5ab861ed34e5ac6d414a3 SHA512 b5c914323d8953f6a85a7b45ef6f7a56ff3df4909b075ebd02e546f6e263f0e1b81a091d96fded33308f7ea32b92cdd7d4c3cb9763f425cbaf2aa58febf4079a
+DIST firefox-152.0.6-oc.xpi 414367 BLAKE2B 1413086e1668068107ff0449a7886ddb3f5bd83a8ff966c0a7cfe98f00b01c97df2766472e9a0c4bb387ecc2f383b43dd28fb9924cba065d7c8d8cd7a1009ebc SHA512 7273de3e6c579ab2b60d542e9e59cde6ad9e0bc9834e8adf1274489f3fda632a4e7ee6e347981aab570279e621bd9950ddd0724bffbe2703acd4738311c8be5c
+DIST firefox-152.0.6-pa-IN.xpi 547927 BLAKE2B 8ec2969826619d9e0326dc336b45044092028424f8d80c9cbb20ec8be028018fedd5013113d7c414d7c3d751c16ab993764911b68a942659c29995bd5ca5af64 SHA512 d535c627cce209cdc3025feabf42d07d45576507f8c7fc8b9b9bcd56868567502c9d0f81dcf3b7de8824d74943320615c25dedd71075859462cdc47d945e4fe8
+DIST firefox-152.0.6-pl.xpi 512173 BLAKE2B 65017a7c5bf489eca57d17faebc5e5d68a22efa850422e27639bf715412df33313a621b1c74321eb158ec8a92ed6676ad34f8bd0f63b7aeab0813d10a256a389 SHA512 803c5f1117c3ca533603d90319791dfa0395df03a6252f8f6cd4c1f687771b1fe7d38f49dcf271fb8fa1bbd8a7b4246b1cffaddbcdcfbb6272be2febd2e63ee6
+DIST firefox-152.0.6-pt-BR.xpi 485864 BLAKE2B c837991fee7602f92b67b7673e8b017bec6aeb924dedc821f54a0feb1a68a71934366164e5d728d7d131e9e1317b64a34b78291ed42da778e8caca06a08bb5de SHA512 7fecc489d60d3b75d97879a68eb42e98da9f7835726bc221867603870f6f48cd1889de330579bb924daae717c747fe9b80dee902553a1f7709501c2f72d3a04d
+DIST firefox-152.0.6-pt-PT.xpi 489645 BLAKE2B ca0464e2be48de771a3123ed9d087cb361178cfb60af8d249f88f9da42394ce10f403db7584025df8308ee6221bcd7101ef2a39a1fa4b8601d3eaf837dac3d5a SHA512 9d7948d5dc8edbbb1351b8e04281fcc5f20858ac5860717a505a6ec85dc2c7f2049d33f3fcf9797d876c62554e8b7d871e1ff7e14186baa2ca3bdb1445a72855
+DIST firefox-152.0.6-rm.xpi 458007 BLAKE2B 15fea99996489d241c1cf5e24368335b7fc9ddf4ca407e5f962ddd06b9471764a8459b937f734f6ee8b0d7ebdc7fe922eb32cade74dc76d3b4927f2f58b6382b SHA512 b43529dc705b8bde379cf7cfc9a824e0450ed5295ea8b789ed7b36f245bfe1fea1d254fe01cede7d9c08b90008089e503a0214f93cc0681cabc6eae4514009c4
+DIST firefox-152.0.6-ro.xpi 499820 BLAKE2B 4f557e3956d608308c78b1585c3a02c0c63f46c2bad55f86a454f42346c4381e208dfae5394727919ceaf706ed06831ab132087bba1b4f762f06b09cb348e82a SHA512 7394db1490f96c78db49d1b97f75524882a8947198354dd1cf93253a8f7cf5bbf9628de5b9463094caa9616a69ca6baa23a6dafbeb260af21237405c3762d223
+DIST firefox-152.0.6-ru.xpi 581057 BLAKE2B 56500485bf4871166a848892b4e3fc00c5123ef0d681bf1626b872aa5ae8dd90bdfac2bbe182d3589444081a2c839cf14d06d100e394010cd2c197c7962d829a SHA512 28d15be09aa44ccf024b8f8240fcbe678db92f1c9e8599715b5ed5705c83303977ed228f12a85c9534a4e088b796d820c4ce3a1aa86b42bf75b5958e3d8a0fc5
+DIST firefox-152.0.6-sco.xpi 323544 BLAKE2B cee1afe19a8715592ee769615b0a826938aad2485c9833212ca8dbc715236d49f4ab91d196739c97bed34af6b0953dec0eb48f094086ac8a3c791e2c5f02e3c4 SHA512 e6906af7d842c571401dce61e380b0bc11da6cf7bfc0594e51f9cb8860b6dc582ea0da96037e53c42e256a00721393efaede0ebc6d1928d4409609388eccdaaf
+DIST firefox-152.0.6-si.xpi 409421 BLAKE2B fb6152c4e6cfa8289708e617d41e7929fecf46245cc09c7cea7f165b1b05bcebb401a07d550f1853d3629124d2ede51dc46c91152f87ea93dc344abda5972a7d SHA512 c27ea2fda3ec60d153ea3227ab7cad6db2763e91fc194bcea87e871a1a56a5e689203ec2495d2ce61492443b06a37ea5634832b2686001908fdad1979b53d2ab
+DIST firefox-152.0.6-sk.xpi 518351 BLAKE2B 6caa4dde2f34e6646ae037da4c9036d414aeb912ff7d5041fa3175996e03803719d9ed5a57f733afb02e26848c9ebc25ab19b1153fa6bb7de5125f2b7cb701db SHA512 4c6ad137715abc4a581baf9241fde7b873808dd9b4d2994a8d99b88e85e5c70ca6cf78d0636df7f503c473e2ff366249354398787cbd22e1549ade7d6483dece
+DIST firefox-152.0.6-skr.xpi 484341 BLAKE2B ef62bc93c11764c7b8b1c2ea9cd173e6c8b6ce1e7a38d99adb73627d476d50e791ed1a137bbdb3db42154c104c0687d5b3a106be8602df5754b69ed4775f35df SHA512 381ce221ebd0754e1a9c85327babcc90097a35a38fe07fb805d8228d04b2bdab53636d734bf87589d7864ab265468aa705ba8aaf10502cda44da07f0a911edcc
+DIST firefox-152.0.6-sl.xpi 484095 BLAKE2B 9810d6275a9429fa71dcad7e35bad31483ded9357d49b851f7eabeea1d0ca859d178445824877a72c41952866196be0461127757e75ce0ca956ced15cf3ebb3d SHA512 1b7592e69c256e7b5f336a00aea8a096de9463e81de850510c59e99ac6840953af603ef2900b41918d2f644a5b3c690701ca332d29a90491d10a791ec46c8ef4
+DIST firefox-152.0.6-son.xpi 275890 BLAKE2B d1e4f9d902915f39dc27384e553f465991fc617b2e0c1d11ee284c7db43cfa9941e31269f8523dd4cd7b712f1c01e417b7f9cd29700b352efe67cb511c2a2cb4 SHA512 cca379e3974f958fb1bbe079a189b2a658b5ced3a7253fe7da4d161777744dd34e5bb6c35a8de7aad49f1e6ab8a0d1233eb3f08f06725d949da72ce75c7d664b
+DIST firefox-152.0.6-sq.xpi 492022 BLAKE2B 45b8270cc93f7cbfca64253ab34587299ea78270fa3722ca96bba716530a1e8009211600aec5ed7a95b0d0eec683a91ffbc2061bb74557d8a5eeec768d4d8a5b SHA512 1d72ad0495bb0c29d9c5ec06cf341b34b60e59904d8b28b5e27b2466d762e9e70de9b7f412e71ac7af9b9326ab41f454ad5c2f5ab04edc2a4fbf307e6925b684
+DIST firefox-152.0.6-sr.xpi 552473 BLAKE2B 9a3446d9a1b51f6848d1291e9b40579439c7cd4a8f99dbc6456d5a49476dc33fe5b324cd14bb6eb3875c67f0fd0495ee7eb457ca07c539ab589217c53fabd58d SHA512 99111ca0ad72ad982c17b9842958701a5f848aaa6e09a2bab440c477f3874d6bf49bbcc4a93049a7e9db8f21c9654a7a0645f5f947b2e844dbf7be57851f1876
+DIST firefox-152.0.6-sv-SE.xpi 480606 BLAKE2B a3dea0900342d2d808c535aaa87263f8f6ccaf2cdbca694be1737a4ebee3fb7fb7210bae60f7136e5f974f6faecdecc1732ebdf787d21631e10a6e14606453c8 SHA512 555919e2df6e9685d5edd6f40f0fb392977041a138b0c22f1cbdd24a6c56ea15c372e7fbd3b226c646984167766c515eabcb16a998db4730d55fc2649dbe591b
+DIST firefox-152.0.6-ta.xpi 338706 BLAKE2B 532937f9644c6177ab1ba05c1d5c4772f7f32a2e9aaf95b22567e13a9bd965c3b3476d32cd01221084622b9d8dc932a204a7f4eb1a2983411d9da5c461d6b844 SHA512 9c5649857bad1672b59c856798102422c75be6d493c9dc53ee9036d9b51ceeb1c2febec54dff3b5f53c7f3c9f63ec86a624e10ab9cc33a2a11239578afddcdd8
+DIST firefox-152.0.6-te.xpi 388473 BLAKE2B ae9bb54ea03bf65c7d6ecd376e5de68e6b66cecae1a0f7fba481f268ddd82ee103d72f27be4f1d668c6c47bd3da705e9705a50c72415fa988a19ca55bbb3dbe1 SHA512 4028ce2fbbd2f81a969077bf38bd099b7d8446b853484794bc9ba0aec71da36b0a9b273c253f16fdc34bd9852b7f37ac69bf4c27d75cc277cba828eb3236d1a5
+DIST firefox-152.0.6-th.xpi 558165 BLAKE2B 9ed5b03fb57e9450113592c22d80746033481457d24e11a4f8822bc06ea8d6ac5f549d9adc1c21c79d0642759e1746771205622cfc813a84e4a95d5fb54c2aff SHA512 8ec00e9268e5bba96c4b3d638e7b02e0f3a08eb00bbd0eae26f823db38e5e3c6516be59054c66d1e08a7f7716624fd8fd1e2d0b9f9759d6120b57abf589b4998
+DIST firefox-152.0.6-tl.xpi 356373 BLAKE2B 5e6d793476c7a00587449e7852cecd613e4b1abc09e3240902940a49716f867a40620ec3e8ba1127a885139250fc8f79682d6e9130c864b10f568e770ea5f23f SHA512 d853a517b921cd933eaf1ae4db19770828b2e1de2cb481180b35d6e161cd50a35808bd7ee61eb9a3934290f4e6cbfa4b27d99dbf36ad2038a21d4870540ef9a4
+DIST firefox-152.0.6-tr.xpi 495513 BLAKE2B 120ec8ddce40952774b88963031f00802ed6e71d1ca48112ae6c95912e72af4c2313b3231acfc201f3ba2d9044b24a55a60b3f8c9c92a21d95eff5606743b27d SHA512 a39044da85db80b67783ecff97cdedfbcd5e820f84bc05208acb0192289607c703f1524fef052bf1ed92ade7246ebaff52787e366975754ed228b12d9953bcb3
+DIST firefox-152.0.6-trs.xpi 325402 BLAKE2B 2aaeaa4e5fccfe7b1fae231b436730b9b038cfd23bb7c67ec6683272c38e1d2063b3d0f6aad737345f565346da2db4f3f5263a9515bb0f8dd979549b15e5193d SHA512 cdb61729a178d46bf07b1e8f10c8f1a9d5305750e68927e192485d40ebffc77d8c89055a7deb780407836bbc570b0b50928e878ac4e24c1dd38accffbc93754a
+DIST firefox-152.0.6-uk.xpi 565394 BLAKE2B 552d2f9b9fef0744554b81b8014e69e0d3c34aa7eaea755d91853a1ec4387287a7d9350b2e49edd8ffc78a09afc520cfd094dcfe1e5e3ac089690ca2f17b233f SHA512 79e62b94c38454cd5d70d0e76ad1f3a0b65432b2859b10828d3f89090ea16717af92704db7c12ef29d75578ccf3b7babce188e55e94d2db1f8fea5bb87eff575
+DIST firefox-152.0.6-ur.xpi 371124 BLAKE2B af2ac69551d060ec6f569e989944aba2cb108e46436398383c2c8d26bdd9631ebb2cfa8118d54f8becdfd1bac41aa57e22490d88da313583dcf7f350748b2428 SHA512 89b314c34772fe1df024a7b2cf82c677b4b588b6af97de4268e326cad927c23e3f97d2ebe5cd8c842fe9e91ebfaa167d50eb2bd6874a9c5188e83b20f1953f71
+DIST firefox-152.0.6-uz.xpi 305663 BLAKE2B 24a3374ae659c063d9553c09513e0ad2810e30fe99ac42236c341f66631f067a4d66a9eeab6cbcf5f3560d7e677a3112c628055e0eb951ead759ab6c51e85898 SHA512 c587aca3d4db7a072f8287fe904ff076ccd4562cb5c8b33b35c7475de117b7ef3d4f0f1527b3df0058ca4e4c93272d694333febae32d1ab90ae5fa86c852d863
+DIST firefox-152.0.6-vi.xpi 516614 BLAKE2B d64bef02a4c15960658e3e70de6f678bcfc55c4bf49e6337bf2b4726eb6c509dbddf72659630ea1d93a2a57009d43f70a3409705482e6421040b2518634da50d SHA512 69e4d61e8b1d3fb3dc2d73903a7d442c43f8a76fbfd03c96171a2bff9929e50e38f39c784081c06310aff07f7163c1e5f6420ef27882f5090df3c7a10bb8af4b
+DIST firefox-152.0.6-xh.xpi 275378 BLAKE2B e26f4c2d4c75dfe535c9f39440687636191f0d3e978cc9ce93d78ef3d096e29f80b59a1eadc285236445191eb13d7d8b346560cd1c76a5a3960afd64ba6f6766 SHA512 3d1dc3208d2f0d881006ac45fa1475f2604fe6a6ab321eff65df58e011a456a87e7b947df23958b1a26af4b44df40ef4134076438c6696dda4eef86a98501a04
+DIST firefox-152.0.6-zh-CN.xpi 506726 BLAKE2B 64916a9933073504203ddaa8353342a4b3da8f5175403263c07d3589ed681a056ff0e11daeffc3635efadd856f02c792d90b91b58662aa984636b9006405fb41 SHA512 5f9bce4e899267ce2b8de6b5fd8908c2b7f456227bb461ed6bed7395c088b20fb690ca10c7aa8da3e2ca08182b2fac6b8b4288f56ab018e08db7ee2581d4eed7
+DIST firefox-152.0.6-zh-TW.xpi 510886 BLAKE2B d209f239923cac1677b8b084dbd986a2eb3b9040c4474d0930aa8b47ecd858a4af668c51e7b4b82ea92f3304b46ecf5c5b41877bd2f1e1f83eaab9db9cbddb70 SHA512 db3557af70134c6509781474b2d8b9ebc2810b8b837201a93bf9e36d3ac724dd087157d38a7df5a7a062e41cd75db5db50861b6e7c3d546ee69b8b214836efcc
DIST firefox-bin_aarch64-140.12.0.tar.xz 66491416 BLAKE2B c49e14b248305d1dec7861fc875249620ce00509240c20ffd2281cdc525ae7e387c4dbd8078a816c20ca9e69add9b4c6b847154e0c12dd171dea7e23cdd19b99 SHA512 bbbcf5b5273019c3767eb9780d4db3592b6bd48821986fff1032d5a2a431a48127d25290f76d67fea086b8f0c5ea181c4a4d91165be03de0737b35f6e4919405
DIST firefox-bin_aarch64-152.0.5.tar.xz 72747640 BLAKE2B b36df5b1593923f0b147a23974188576fc2534622d06ee4b432b0615d6a63d43ac1b0ebcc119a43a92413bc5868660d0a45579846c32e150f112b158e1b75eb1 SHA512 54a04a1f178bf530fe62e5b00d15f820b53bb124f979d2f0f98a977490bfa90a3bfc4b3ce33db0d025d3b1cf72ab75871a62fad864ce4f71d4c1c8ac040c8951
+DIST firefox-bin_aarch64-152.0.6.tar.xz 72750384 BLAKE2B 8d7aa97118d8bcc93610977790eec5281c471f85cc5679c7cc875c9bfd58c0441b1ed0192e68f765d8808fa192284185da8f9703e949e4b81a9bc63ea1f01793 SHA512 774a05b4512bb25c32a242f023803fdd8c36411dc618a7a352aca683cb9c7222dd71206fe253ed95511c758c90e6191a17b3dfe1a15a40d6d7efd3a543a377e9
DIST firefox-bin_i686-140.12.0.tar.xz 78697392 BLAKE2B d66d6c0df0d6134733a476f2103baeca1f442dd2c68d7a6b3a31e6c55a522515bacd36fe05e4a362f84f540ef6082f0d1e146f20be520f424d3a2d16df948c5b SHA512 27a3009e9667d58723b219511d9c727a128d761e20f7226fbd2dc28e9ee851234919b3a5c78e34ca308a7dcda7d72aa034f648a1fa5c5908113d265eadccf565
DIST firefox-bin_x86_64-140.12.0.tar.xz 75366748 BLAKE2B 6d5856e50c95b9ceaec4a7acfdad065ff17ac7d28904f842c79bf1b30c5d825380905d2d1d9d89727a34d4e4e0afc088e035fc48f177c0c671a6ff2639dbab50 SHA512 71cbb52c78187a96034df19d1ac57a4f68316335d7918f130588b26cf93308a212f2f946510fdd8f02a8c76a1a211246a6af1d899e0c131f13bc567e33259557
DIST firefox-bin_x86_64-152.0.5.tar.xz 84615388 BLAKE2B 9753c013a0acdebc1ad879422d29a444d4cf846735b428599286ce2a83396d2bf807c72f80a833f3dd6b8f5fb210a9f861faef5dd17b0d81c87ce9fdee92927d SHA512 7c006e291d9a414a4abeed196654f1b513610bd7de1d7dbcd7688313c537d832b856ab239687583d2caf01026c490ffb4ce05f85f468a291b4a2598a813dba42
+DIST firefox-bin_x86_64-152.0.6.tar.xz 85090976 BLAKE2B 7ba75393fc67f7c5f95cdd2c3e366e0dc2de65bf3ae057f07fa553c4d2e49360d6ec04acf34d8074a062f4a234098273af9ffe7feec4480d7a8c6898e2d396db SHA512 414b060f5e28e1b9c8818dee51896a81bd273c6cf6a4cffa53c4d7214f2c1d26d0416b9088518294435a7ead014a320a8deb910e93f3345ab6fbbbe596b4a336
diff --git a/www-client/firefox-bin/firefox-bin-152.0.6.ebuild b/www-client/firefox-bin/firefox-bin-152.0.6.ebuild
new file mode 100644
index 000000000000..dea9320c7c9c
--- /dev/null
+++ b/www-client/firefox-bin/firefox-bin-152.0.6.ebuild
@@ -0,0 +1,359 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+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"
+ HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/"
+ SLOT="esr"
+else
+ HOMEPAGE="https://www.firefox.com"
+ SLOT="rapid"
+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="amd64? ( ${MOZ_SRC_BASE_URI}/linux-x86_64/en-US/${MOZ_P}.tar.xz -> ${PN}_x86_64-${PV}.tar.xz )
+ arm64? ( ${MOZ_SRC_BASE_URI}/linux-aarch64/en-US/${MOZ_P}.tar.xz -> ${PN}_aarch64-${PV}.tar.xz )"
+
+DESCRIPTION="Firefox Web Browser"
+
+KEYWORDS="-* amd64 ~arm64"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+IUSE="+gmp-autoupdate selinux wayland"
+
+RESTRICT="strip"
+
+BDEPEND="app-arch/unzip"
+RDEPEND="${DEPEND}
+ !www-client/firefox-bin:0
+ || (
+ 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 )
+"
+
+# ESR and rapid dependencies.
+if [[ -n ${MOZ_ESR} ]] ; then
+ RDEPEND+=" !www-client/firefox-bin:rapid"
+else
+ RDEPEND+=" !www-client/firefox-bin:esr"
+fi
+
+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=(
+ ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy
+ da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu
+ fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM
+ ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my
+ nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru sco
+ si sk skr sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi
+ xh zh-CN zh-TW
+)
+
+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"
+
+ 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
+
+ # 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"
+ local icon_symbolic_file="${FILESDIR}/firefox-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ 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="Mozilla ${MOZ_PN^} (bin)"
+ local desktop_file="${FILESDIR}/${PN}-r3.desktop"
+ local desktop_filename="${PN}.desktop"
+ local exec_command="${PN} --name=firefox-bin"
+ 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}/${PN}-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
+
+ 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
+
+ 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/firefox-l10n/Manifest b/www-client/firefox-l10n/Manifest
index 5b9835fc52ce..b39c13f4f7bc 100644
--- a/www-client/firefox-l10n/Manifest
+++ b/www-client/firefox-l10n/Manifest
@@ -98,3 +98,103 @@ DIST firefox-152.0.5-vi.xpi 516537 BLAKE2B b12fc7be70358a7659c9951b78533df70c738
DIST firefox-152.0.5-xh.xpi 275320 BLAKE2B 0a72132347ab4948cb56a1cc6f2532602504ac6da509d645e17269067a3876f42bb181c4cb0b25a932c54c754998be2d8820da097ea016d8f4baeb1efc2de186 SHA512 7c040d3f08f9add75da352b2885ca0f4303cd87f3e21c182d15cbdddf5ca2b992b3049550b290b6338d3bd2a93610ea5bf3b41ac9ce6fcad42230750df982915
DIST firefox-152.0.5-zh-CN.xpi 506653 BLAKE2B ad779697055f8995a538be6ea824dbc5fa59faa8689622b8629b9519492081fba97f42c51760b2741b24b7a33f2e3e86779b911ff01e9c224eefe4fb4d5813aa SHA512 22094f3530128d9fde1f89e5e2fe8f29aea56ab7d765ee75dc0e56c28ede29ecd55359d1c15c50419e360228ec235b312cab1a7cb74dd61e9abeceed3cbaf56c
DIST firefox-152.0.5-zh-TW.xpi 510788 BLAKE2B aa974692771a52c08003a13808ae1b20aa55c1d4de1d129634aa95fe2016e7344e3b7e3ae8e779009e88baf99c4a1ca5e28d9e46f124608df5d357243f9b2e1d SHA512 99307fe39b33e85e786f64856fec8941b3b7e22f38d01d6b53d67188be8632724ac2291f7ac295e1c12ff5d9daf2972c59c2de2a08b3e0640ad6c6817acae0d1
+DIST firefox-152.0.6-ach.xpi 295754 BLAKE2B 22291e8efd897e7f52212f47627d70ef94c7a8ac1f8e06a73691320048e9e837540969e7e71d29f0324c081fb56c606a29f086dad3d8f13437eb0e07976e5cab SHA512 a7431c21bce0e2fb4b28a7e3ff1dc2aabcce10104401778799df5cec3ac67bb746ec5887916df5d5ed631a1bdbb85d6ce32136abd3c97cb0d308eb646b65344a
+DIST firefox-152.0.6-af.xpi 269407 BLAKE2B 1c3155c56485657f3def9bcd9d197325f4ca3fcce79b9a3f0dfc777ae607dca05f7a7dd2aa7396c11a0db2ff381c4d759031686935095a97f2e73590193babe9 SHA512 5a87d20581c919cc045371d016ab3ade5fd7c10ca9759f8462964f5a737f31399b2bd0296a8a699471d8873808a64fff6e440e88b7e6f305325c0e91b074b047
+DIST firefox-152.0.6-an.xpi 332681 BLAKE2B c080a5635619a97a13c0290f3c9be93a8a93515cb45bd4d61a2e5dd607dcdb5c6421ee14d6449f0989a1aa66a72ac8e13249f24c7094c796b3604879e3f0116c SHA512 913be83251f5beefce2d61ebd92beceaea958c6303dd461fb20a02bf34e515b4fcb9e5e840a88bf19a67994be82c1a668c4bda3ec9926ea0bd9c6914aa88986b
+DIST firefox-152.0.6-ar.xpi 508568 BLAKE2B 7aef2c4572f6941aa92e9f8ca37053f4fa616e26ff42a258efe5de79c321aa79ad4f9cfa2b9d23027aa14853ce418ce92f4214de5f880983579f04a1e1c1ecfa SHA512 4874ce62a4aa19777f9c3e8c3dd542659dc2418a7bfec4d263a6a23faca1f4bd5d4714cb47cd8ccbdcbe9f852097020a1724348a0196b1a920f275cf1f388207
+DIST firefox-152.0.6-ast.xpi 313615 BLAKE2B d788d04a68b5ed400f6095bfca770373ef9e184aff9cf50f218f9588740464d4cb8ea053258d67e429ab5096b8b6b96d23ef2a69f08b29bf3c766949032cb4f5 SHA512 cffab83daf3f3cf63fb11cca9e0122cc2b0eafe9d43e8735fdc8ede0401df901b2188b227b54783334a8cfec168061d2fda75afb678328fc4baccb46089ef766
+DIST firefox-152.0.6-az.xpi 319317 BLAKE2B 01aa7f0f38e9dcf770a9e65b087fd6b9b5100edcc379b04800b6b06b5007ea1847811f7270515c5a2b94f0c4c4dab01d0e1d9015dc6a361ae594b54dc16340a8 SHA512 973cca06e9efd6960ae9958d505266b4ba1c58123ab2ee6559bd8e028cf342e63c9651608fcf0e9d68f56dfe616e179152933cd820e95b336253c08ff0549d60
+DIST firefox-152.0.6-be.xpi 577430 BLAKE2B 36d248b2206c49699db15fcc44b8340e64393e64b786faadd91d555faf65af19890e49798c802ae0960db8982d5e8e57a1608e21d62ff9dd0209e55de35be004 SHA512 09b191ee7d15d314b653917391c7a3ca758a3ae741e811bcc475d81b61800e8800e1ae9f712f26c5d13081b54129e1d5cf2c19f65b726065d8fe374261cc758e
+DIST firefox-152.0.6-bg.xpi 474919 BLAKE2B b7132de567ef85a132933c7b27394c370f59cb0138dc150c53c6506716efa26d98995368d9b4da8b6ba7a7c31986623d130804d419d8f50ad0cb3e7cc626f361 SHA512 fa59289e06aeeb1f719c36c6564c1de758963e4f66e2dfc86412f1df4c2277b6828d189aa747ede6b923176edaea5f0ed2cd24b36f9dd3ecfe791e4aed2c413d
+DIST firefox-152.0.6-bn.xpi 413024 BLAKE2B 330d323196438da0482f443d1a4e29fb31e8cc7b069f2cef230267de20402860c4ccbc91e289bbc49db3dd48a0d821f70a9f0a230c59267b0219a9afb76eb1f7 SHA512 70c745eac5762e75b84ce6bf8dfb1625aaf5a515d7dd5beaa8bf9f8889cf3f95b166de2b38f6f593b8e763eb352c0bb2d25241e2a97692c491a33108df1c667a
+DIST firefox-152.0.6-br.xpi 396238 BLAKE2B 195422db57d52c4eaaf91950bc74e8232c67714b29dcacac30d4edfad69ccda5a28bf3c4618c897a029aa11b3fdb8453306c376c262ee97ce5fe355504538322 SHA512 7c3b8e8bc848615b4847f2bc38aaf45cb7f2d040dd1b4e744c20aa8fd1c4711cbcb88088b461350f6ddff9faf1ede4e3c68c77556c492fd705fad382b9b62932
+DIST firefox-152.0.6-bs.xpi 449427 BLAKE2B c2de41021400e2ee75590b0cd30d84ceb42bf5287f4f28395e096d44250149ffc693288226740a7937c5678bc247fc7e1a04e2b7bcc2f030de42eb4b1e7fae86 SHA512 d34c5c195e60573005700a967143826a5a7cf0cf899c7ef690a8eeac2ac15199c0d3d71b8467e480e24f420b1dd34af4fa7c57446243d1d25d540627ea7f8053
+DIST firefox-152.0.6-ca-valencia.xpi 358799 BLAKE2B 0a115d48a21843bf74be424cc6bfb253323654c9c133c914ec41e0c324c60b2af9c3376abcc6195cb30906e4e96daf6c158753fcde4fea808b242c6d094856be SHA512 6fa9f4744b64cd2db8c119ee9aa5d0d786b4c081691189fd6240546b14617efc0da0fc50804e7edd9ad9d61e209e8f0d28db146551fb7767de7ac05b65afaf6b
+DIST firefox-152.0.6-ca.xpi 439476 BLAKE2B 84f940cf51dc4955ae40b9030d817eedcb22070fd032b78ef38bdac98b3603d724c3321a036805e57f02df1c31ecd9aa7a610dc535ad3346b95a95b069f43955 SHA512 09cd23f192d723309d75335059c39037fc62b4bb0f81b8b201e9c676b397b1e489b31d9f27120fe705b037dc65d1274205729e593a63e12276d71048cd1f1093
+DIST firefox-152.0.6-cak.xpi 390244 BLAKE2B 7ce71e6bd7335cefb68aee859798683a80549901b833db975b77016bc5fa6895a7c9ec14b449c2f3b0cae4ec55ebb5ff548dbfd4d8e71fd02e4c94dc475f0ebe SHA512 75ac746e90a4e7aed5a4ea8b2a9004c56a724387bb746da59cb69438481a1b20c6ab69d29cbe2b3a49d4d0873808dec1f4c8c34f19e0043d8a611b07afc0801e
+DIST firefox-152.0.6-cs.xpi 528069 BLAKE2B 5c57b97ba69bb1f41634a3a9beb724820ababde94b8c9b7ea242ce25db6fe9daba69e34fa2402bc148075462c272eaa4a36ebc07b4a172f1a8e8458fdb5f110a SHA512 ff5672349314d8353ee845c743f98e1a41a666aa601cd7b0556201bbb81b0d2209fc9f6c8206cceaeb748fb33ae4f3dc3f6c457e3245b33c90d218eb322e469b
+DIST firefox-152.0.6-cy.xpi 488944 BLAKE2B 2fdb18ce0f53e5714430a9e4d22cbf754dd9f16c3c427af200dea03feb3585d14c94937c5f638ae775f46857c18c0a92a63be0e44ce51774329e285788ccbd74 SHA512 bb7e9a91c9f7e49a7945d94823e0f63356f8e93f6947bb9d333510086a52086fc8f6526b439f867c92ece676b958d66d1185b5856652504b8182963bc017a8ed
+DIST firefox-152.0.6-da.xpi 468424 BLAKE2B 75fb9d8d72d94141b041d63d226bfd2530477dae6a320219378c16398e57dc9431916ed4d0828708a8a2456e9b91e316f9d19b049e4688f63efe9a01129c1388 SHA512 9f601f71ca04d5cd5356a65863c995dcefe6c8473a748a2fd95f13af661b4c6c2cc9705f7c28ee24ec17953fd0d1b73bbe341c0958cf2849e8adc2892ae3b716
+DIST firefox-152.0.6-de.xpi 500408 BLAKE2B e578526ebcccc5bc9b0253b003d430e5087989a2012d3f83e999fef89050ed1a3f93046f70257baeaf3d3509de13e8f34e2ae7ec4a6e73e196e3533b25185a99 SHA512 1639d18c482180c05257428cc28a456a069336e4470001980b29d7bc674de1c02855a4d85740d77bd96f31046476699271db9c49841f7a1b70cca09306f2856b
+DIST firefox-152.0.6-dsb.xpi 514572 BLAKE2B 93db404a3caff0753f735d67154218ab8f333a3d34de28186cd9d2261302f3388297f62b9a7e1904b50d31c66150c081568891b7e796824686467740b2aa3525 SHA512 dd8278e8764ca5d88c214f817752d6244fa0222e8dd2a34f4e9caab0a43c9a3c4274938a10814ce8e88840a6cea643f7d816e99cb1324a1a575ee097c76d4532
+DIST firefox-152.0.6-el.xpi 593115 BLAKE2B 0bb2542945a0f85de8c5e5768a295f5498f41a5beece6b071a32bb64c1ff059a78d2976ee40564c6b74b2033a9a56d3b183aef1c9f42d45643fcdd43ecc3e3f8 SHA512 3005643a38c16a83e60f84fc8c2dd1bf870efb2379f1f1cf6157d87b438dbcc8b91fcb14f33b069696622fd5c425a424e3313612ff5ab1d91015a15cf5bfd5b0
+DIST firefox-152.0.6-en-CA.xpi 452174 BLAKE2B 081da1bfa9790386049d0fec9770b7267d1004d4b0b1bc0fb3d65d6925f2c37de4e5421b496ac5d7c6c1ca2b95aa74ea878c8e1e956e6ce863974743cbd8f981 SHA512 d3ef1d8f19ed83c4bfb4a42260ad66b5f09ba91cd57942f0ac947eed3e94bdfc566f03603acd5ed615d50d8f34c4792b0c411a501d26a484c05211f14e628942
+DIST firefox-152.0.6-en-GB.xpi 452475 BLAKE2B be89d0025d3989ab5ce6773dacd5c5dcde4aa392a6f0d37044c13e286ddedd91583dccc915241f10b65ca62112d523d6c3f2188de18d87451ac39cf9c34af3c9 SHA512 baea8b75662f0e413578911c85cc69bfd64d351821b69b71d9cbb1f2fe82b3a0a0079ff75c7be5c13e73cf020b1d0d833b68fdc59296a23891b2b632acdf1039
+DIST firefox-152.0.6-eo.xpi 478154 BLAKE2B bb772bc481bbfa18aec2810bf32cdc679d997a0087f09ba4faee37beed87ba7610376c0399ed4b30d4d88169abe0aedc37988d28defec843f017b01bc0b551ab SHA512 aae9fc7dbb37662dda83f17374e819630d32f1b2f7b3e24e72ef82a48e5ba9163055ef6a386c8cdec7d68132d52e9b75bb7ae2dd0c193c7e0b77916f6eb2f563
+DIST firefox-152.0.6-es-AR.xpi 490660 BLAKE2B c0a304b26ed466127d5b4ba62c531d5ec35ac3fff6ff2bd90b60ba90922c36a5f2ea4db10f0e79b594978663082f1e9977aef41207d2c3f1c8ef0690f4f468c3 SHA512 8400c63872214413f381aba13f49536600750a66bbf969a73f3d032a757fbf2f52ddee838816e483ff68b31916de2c8ec63d041dfd89366d8776af1bf72af7cf
+DIST firefox-152.0.6-es-CL.xpi 492411 BLAKE2B da676fbaa29d5b51ff8f3e70d58bd61567cef3369f58c67a847328fd60c33f8be57866de85d3c69fb33db5fa19344136481e15f96774426e05a5a83b15489baa SHA512 830b196b8bb270b391c759befb6ea1e1e5dbd4c939e56e80a9ced081621b149636355db5388465bcce3ba521913f9e7a35d3821fbcb7643d5cc5594a72309c53
+DIST firefox-152.0.6-es-ES.xpi 493165 BLAKE2B 590b047e866fc92cde609a729b2171a954630de29331473ed7661edd3e7ad5e640977e682987cce1357d6698d20aa86c27c57d00d35ae92abf8379de2219136b SHA512 a8091d070c741964709d8b94e618747aa6e686d79bebe70bed16f4f495d15dbe354908431a398a47413cf628466d6be2367050a7be8107a1f96c7635ca466197
+DIST firefox-152.0.6-es-MX.xpi 496053 BLAKE2B 7e5ca98ec4afd76290090f440c9c3b5a217e71dc2e69b6f169a008739c4c8512736ce82b5bbadc032c6e16fbfb84eaeb97b50e1160b7caf7bf9cf55451d097a6 SHA512 d5fcabf938aabe04b3124e248aeeb11b5f79eccd130d2539ba68b31eeaab8c42a4f6df3753b277f906da1af55004134bab1e92f31b548268baa8a61e059ad417
+DIST firefox-152.0.6-et.xpi 360495 BLAKE2B 2cd5c996d182a3f4800471d95c4f8573292084281f77fa22bd8728547aeb98274394cb0e010bc6d3fcb7387d15565dc27992ba6d6fd41f6b9610974e5bbe3b85 SHA512 800a43248582e9865b6589ea92f73c3918a96f4553368324fc14902e2264faf7583b290967f198a6e096b85211d892ab4dec9c3e224d5cefc1894a26f424b15e
+DIST firefox-152.0.6-eu.xpi 477712 BLAKE2B 19934eed5815010139530e318434537d88e4bcdea07d0d4073b0dd0136ff8a9c316f42cb4e718cfecd9afb094c8cccc2d8fe98694670454506e65fbc14454a40 SHA512 94686646b32ac3a1376440f19a729065ca12a48ed510bf852b27c6cacd29443964872d09035279d5c10966951844ebcd63577b1ce94b3cb5de3fa71589d910b9
+DIST firefox-152.0.6-fa.xpi 420812 BLAKE2B c007c792eb89e01d2bdc0df1cbac676168b60e294461d194ccf8a9b15927d600cca20b888101be7831a8ad3105abc1c6bc1ddc8bcb65acff64b40bc3fe0ad4ce SHA512 d512c2355ec29b0eae5bad4454195e48a79ec42b650f338c0dd6351db201ff9426d11b281131a40750118679ae02734cbbaa508555f70ae2d77ed008624ba229
+DIST firefox-152.0.6-ff.xpi 311018 BLAKE2B e6f868a17c83106dd6b5bcc35dec99fa10b859a7ba127ae8bafe4079d1c1b8df752df077b2011993df603f73374930a0f4373e9e3b3e2ba9f6e35364cad581ed SHA512 062e563aa2665b3f2afbfc34d512014d2f62a690e9943248ddc9556771a16be7bc52270a5c865a0f6c975de7a68fe531ae6ba97a7369c1708872abb30b1c9e2b
+DIST firefox-152.0.6-fi.xpi 476310 BLAKE2B d77d001e8568260d1b17d5715adf0eee78dadeddbd2607d3802f5c501e70f361611b24f26a108e4d85b1c45fbeaf201aef63e2a5a4e5ff4e8cf65bf6c2bc41c3 SHA512 ebfff471da5e20cd2867d798a2125001b789d8d1312902279de0e54bec764efd70478367228352c46830afe44837d8208ee81eb81e1996a22ce531b9eb5fa110
+DIST firefox-152.0.6-fr.xpi 506058 BLAKE2B e56137a5964d9b27a2e62ed81290f16711cf64d0a9ea1d2b3f76d573b4f99461bf31693e5cdb1000726211aaf9072bba4ae1fb327cc489b51d1fab0f8374162d SHA512 6b949f4fe1218f0178b8f8ff5dcfc3cf7bc6a628ea9d537647d1c31e721bb3da4a47dc0b435303df63b3149838e88d5bd34bc226aaa9c01478311190cbeb0d4c
+DIST firefox-152.0.6-fur.xpi 492914 BLAKE2B 728fe395b978ff24ccebbb7a58d04e33bb2307ce5149d1be3c82c186156c5998dcc6a3dde38605eeafdc51dc192342cf234eed1c2cd9a5e16e5e2c73dad47222 SHA512 0a3f90ea4f08c863c631bda1dcbe0d48d79e8cead4c99eb91b61fe96f397d9ff5cccb69671ef89111a6fa0a082c9f54d029fc3cc0c3e8908bc0ee7c12e4babac
+DIST firefox-152.0.6-fy-NL.xpi 487571 BLAKE2B 9768fe623a3826e83f3dd1279bf1fe9339b8b499e14c6772591db813fe955fc0e7de5c9a25103ebc306d7966e2100e5567d3969049be557a0ebfabacbae7d98b SHA512 c4173b36fe851c94e7f50fc50db4e1ebf9bd5a24eef40c35c256b4ea40cd8e2aa2a1d453946400ea541a17c2868e0cc33f0399e68e7ccdab4f07effd5ce25db5
+DIST firefox-152.0.6-ga-IE.xpi 319425 BLAKE2B 477c85e6e5d4154d9f7d30df66572da8c5b1ab13cb9194d92e37492dfffd9faf251a1c57ec878fe2260b4ca80416bf71b7eb643b611fb5f20d4b72ee62d6a263 SHA512 7d0b54dc90f7c61dccd7b7c8eefee49885aff18f7bb9d20b627778abcc22ac015ec58b2758dd2b6af305ac5ef1eed28f3ef007a872dea6ed2b79d5242a9bbcaf
+DIST firefox-152.0.6-gd.xpi 409698 BLAKE2B 5689875b5a5b9f8e5b148745254b06536f5fbe845018e344e616746df7be53019920d0cd74e616ac730d86f3b85c8365b55d23a84bb056a2e0825142d5a1cbbd SHA512 73b9703ce7e03b4b11584fa187697f5bdcc17e5db4a09c44271efc8737783c4e84a794f4e9bba05edb4ce38162c82dd5488987792b6aa190ba6051f3b8d7f252
+DIST firefox-152.0.6-gl.xpi 446293 BLAKE2B c531502f591de3a5d90fbac3847d4ec128ca4cc7f677488d0343010501d29f0104f4e163cd4a667e44f9fec74d9720f6deafffa63f780ed45bff1e14a2c7ecf2 SHA512 217ccf00e924074f0aa06ba583325e42bb93d0d304f3c83ab9aed124f8ad815e815166f3011ad9de729bef31bc151060f0ac274703b522a92521348c5533074e
+DIST firefox-152.0.6-gn.xpi 495743 BLAKE2B 38efecded88c6547896df473a115cb9bb2b456929ee6ba7cb1d54710f232c05cecfd282bee072b2371d15d284163ca6d933c8f9572d015e9c392bea6ef0405d8 SHA512 c4b6217e0714abb3e808cb9fdf6d7f5f457c5863a8b5ffb1a930c1e38c3982979b52539be9bdbe4d3210b14bf53a60040c12fd211b540e1ccc90d440ec405a2f
+DIST firefox-152.0.6-gu-IN.xpi 358918 BLAKE2B 8896cc9769ace08e6bffeb975c84ee0a100884096d0cec3b40bffb0fab5000f82b4fc8e96ebd0920d904c37850935a8b10d9a35427513ebaa41c5811b7145b28 SHA512 2d75c63a5fbf4faa4659ecfdc6aec94c31e680e00bea41e1931982279de3ea15a22300c93e9f9cb641e49ff00452b52ef6ab897100337a645c4eb80b3db425a3
+DIST firefox-152.0.6-he.xpi 492267 BLAKE2B b28f4f53ba5102ab02e75a41591599f4e988ce16c3fc6f8d8d0584f9c0c0a829565220fc0c3202021a80eacf6dbd59b4f8d161a7ae34b41c20e28a00c406799e SHA512 cc0c129e5455975a4ad2acd3bcceffe1cd80a0f79fc3e9bbed8062fcce187af4a1968a1deeb6f8998a269adde861a4d457a56c6e075a30bee2941eeefdbfd119
+DIST firefox-152.0.6-hi-IN.xpi 377793 BLAKE2B 3f1e3f2e93ea5a6ff27c475c152c1eb20307e8e12ee5f60348c916df17e7d0c43b5ee504cdf8bc54e8bf63b89b3d9f56f505e331615836de500bb19f5020c0d6 SHA512 cae16b08bf81fc93c598d01c6e7c805bc421e5c01a9999402aaa4809753d214967e01f71c1346a43be84fb07bda16277486c3b53ccce3f68f427d222439605b8
+DIST firefox-152.0.6-hr.xpi 472448 BLAKE2B c72175fca5889f62bb3443d9739f79a00fcb7561824964428f5593e276679f814b89c0c1e160f87587e96cb8fa66d996f772130491e66776d49c44e0d577c583 SHA512 ab89f9ebae0c5a17f28f4df8b1f592abf4ace14aef6032044011a0c37941d7080c4fc8a4a60efd98561d82320c9e26c5248c6df5aeb344c72791d4b58d9c32a4
+DIST firefox-152.0.6-hsb.xpi 511227 BLAKE2B 7a12392230a1ef3c4215339ea4176cc67a96ab3271e635d37d6b4d1ae89998a845069ec3fc429b47d4f1bbcbb0eeddc8a6731839353eafc18a6d841d29a336fc SHA512 cbf9f6605362da37e3bbc40adae6ea6b33ca51c81488853fc68e931afc1a9ff23633b51b75e93998f7c79a88ed7a71c2b4c6d232e46aff43b5c38a2f9a3f45cd
+DIST firefox-152.0.6-hu.xpi 515437 BLAKE2B 9a86af97287b7f3c314658c54ae2a2dcde907ef3fa345e856c68cf433189f902c44d5ecc00e8abd2a34a01d732da2760274407214e64f1b4ca4dc08da399d973 SHA512 afd0a0a00d93addcef3894d5564810aceff9669a31a7f7a8661e13c0c3d763a72f41c3b232e6a5719b44fb964a49fa00a43be06892358342621d91f6c6d036d2
+DIST firefox-152.0.6-hy-AM.xpi 498184 BLAKE2B 4e862faa0c4fe2d876c535e3a488f50610cc3932d09d94db10604d1e655e1098ea9bc65ff80c4526dccc6d9c063cf941d5dfada7d5dd9a16fd0f7fda25a3bfdd SHA512 c06d24937fffac9f6297aa7312dec743558645f0574cb6f0e655ce06e377838f60bc2a4ae35eec2dbf73fb6614ea14177e5ec8b122d09ed646109019c479d6df
+DIST firefox-152.0.6-ia.xpi 474254 BLAKE2B 38a1f13f8226f91e795c555b162b8451f2c217aa69e3b82658a13449103bd7c2334030e852a1c83a841bb88bd63ee61845ce7d2b537748654c807e197c3c83be SHA512 433f4da58da4304e3a0a899a96dc22da8425a6a74765cefa8c7e196cb73bbda66a95db47e5b91cc398104f6ede07f3ac85440165977304957c75261cb268ce7d
+DIST firefox-152.0.6-id.xpi 433197 BLAKE2B 91df1c032e92e243556115e17e7e7496a32de559725e6a76514276122f6e21c6a96e5c895c47a4a5d98a3dd35bcd628b3990545e6e25ee49d467c0ac0f0ba56f SHA512 a1bec707bbc2d0a685fe97549037cbe053a087deb973861b9ef871f1fa61e9c47b79ec2d892874a5159687dbba7003795e56c84a6cb3dc0a7978ee33e8fd4619
+DIST firefox-152.0.6-is.xpi 441018 BLAKE2B 56e8cec18601e0eaf9970d9f243a6cccdb4fce2d66848d5c5717055f7e875683dc549e7e41a4d10ea747e2e8a8e3e5922f28f24e1d0fd4ccfd6175aac66c8254 SHA512 5600e9ca2b80c89bad0058e3fc2fd36903f938554b09c7a7e25d3d74ac269b94c9badcf7cf3053769a4d7837c75ae99f59701b6e5cec12c548bd025d286de3ae
+DIST firefox-152.0.6-it.xpi 486440 BLAKE2B 541cd4cbd30271a25dc8eacd31491bec1e55e820fc941ef9bdae35d136e58d33460c603e7982933522c4d5a5a04130d682386a7b55c80726ef5948ad8f754bf6 SHA512 355d149bc51f7ee44fd764ba0bd00c0d41646f6fd8d62a77b910aae0a2303d792475a2f3e833aae9fc30ca63db8d8c6b79d3e63c2ce897abb11c15707b92fbc5
+DIST firefox-152.0.6-ja.xpi 530161 BLAKE2B e4053f17d5c1f2159715ef675e97bc7445316b38ae433c555a13960e1fd7e90d1ef72675faa233085d9033a43af4457fbb3ede8004bec82bc1cfeaf1971f9c36 SHA512 2a15cd849edfd4e09dff5d96b3bb6ec1c0d2e7023be8f98f2953cba465294afbc8f11dc6b01672097e73d2edaded1adcc9e41e47eff4ea7f468b658aceaf1097
+DIST firefox-152.0.6-ka.xpi 549529 BLAKE2B 3a425e45dcb602b8b29a1e1017c84bfb74f13103fd4c8b47c30178e9257afc2b7fd459c6c26303d71b605669cd3c73e5c07d879308318a207ab6785c2bd5140e SHA512 78a55d816dc22149c0d6d9d1ce1975105370550d55d871a1f135db9103a03f38b3fb7a6ba215c38de82639d0bf6988b5364b7a12af160ba96a29c011c40d75b5
+DIST firefox-152.0.6-kab.xpi 427380 BLAKE2B 89090054af5e33b7c65beebc983c6b2419ff186196e75763d78013cfa490b5db1e36aba341e5db561c961363c0f288e4e6661101a442ff963373b45cade6f26e SHA512 4033ad854ab4c388dc77d8a9ca520223b9b12a01241a1aa5af555bff8cbc6ae517520f9777fb9fa757a5077947666a2f248f663b3be0775ce8527c03fa37a75f
+DIST firefox-152.0.6-kk.xpi 568463 BLAKE2B 8af8e9eea545c82d06b8bcb2398ac7949b22d99e14370e127bde63e2f6f7592ebe0e3f8c89fd9dc24d2c0ae4e012e443c31b43a8411f009e421fe6ca2d002a8f SHA512 7eb4c8dc7ac1dbb120f143e2497b0fb46baaf5dc875bbcab9d30bfa03e4e0e0b3ad88817385a81517a5d643dd953ba430a56fffc9ffe7d64467ce2587cc359c2
+DIST firefox-152.0.6-km.xpi 375973 BLAKE2B 6cc33d7519dc6fd1f1903e97a8d6f337ca53e1da1dd32b9835292e4eda4b2a2b0dfe6018f6ed45caba601c06b0610fbda45ca8ac330d42b15382980135757eee SHA512 d1813afbbe3f6fa24c31e69de95c86d200b045ceb7859bff01a634f615a88459b0b5582c46d002ce89dcc8ecc86990e2867764c38305393ce1990d73f534afee
+DIST firefox-152.0.6-kn.xpi 333350 BLAKE2B 62bb302e9c923862d6a440038f20f0b51e0ed89f5b5f18fe8b6329d2e5e0480d93bda315fcae1c8fac10a67ce2d35e6968ce34656b3e5f7063587ce877bf94e1 SHA512 366cf7254063404a9dd03be79a50ce9f9eec3d4dcc66189b7d54442a3f578efa5021fc82b2bb3bafd63d2eb7cc261ce8d80afb3c7871f7c422d31fc5922f2f96
+DIST firefox-152.0.6-ko.xpi 514478 BLAKE2B bcf9e5da2c72d5086ef5520eee4475ff9cd3685e095dad107073396aaebfd9d9477f5d275c1368c6da07d07ac969c6c5043bd6f61281d6489e230cad0b6d9bbc SHA512 c672d240fc63fcec65ba03f62ce76dfac5c7a06b16ae7b7df32073e5549edaab60e5ba4203c0a5bb1b38e56453d5dbe6d5e07ef7f4591de9034632db4b81e830
+DIST firefox-152.0.6-lij.xpi 323320 BLAKE2B 615485cba5fb3accf8744d15f042eae3e9545626a3e2cfa53678b18c1e7ce809db10dc9974aa51ca7326fdc363c2336e58b7cfdb31b3d945b1657db628863dda SHA512 c663972b1076762ae6a4d02c09d1ef5d8c2430ea31c219f1a56d1265c4b1bff330fc4da5ecfd2014605d00695174d71816a4b77fe9290415c60af0f23f2ce24c
+DIST firefox-152.0.6-lt.xpi 379977 BLAKE2B 43dad45ba44cd6e50a527f536e7d32c4340a5bebad51a73b7ac92d2076da7b1270a5fe9cfe5f94a164c597cf840b34f960de75539c7e71f5dbd2c63c35b12803 SHA512 34cf185f9d173a1525e732bd2779855e783789a1bca491e542493a6a138794e2a8622b540051b75d8524c6d181cc0320b3f076fa5d4a37f337711f7a752fe97e
+DIST firefox-152.0.6-lv.xpi 398449 BLAKE2B 1bc81fc6feabf2f85fa28939a6b6d4037f6d73ee83d668c22037b209046d1243262b4ecda021f214f7b72be32797b0208ff6957692b32a104ad7b4b76d21c6d0 SHA512 9872c33e13576cde44c1b94d3309b92fca82e3a725f7f3fc0d3762b363ed9d8482f620c929f4439525b1a2631a9395809bccdd2518e40ca8b50a9adb1bb10911
+DIST firefox-152.0.6-mk.xpi 371146 BLAKE2B 4290dc341d55b18e6843820ad148da4581548a8f1f8bbe8bda663843bd7fdeb6c911dce8b8509b2a79157a922bdc85e7948056bf7c779eabec37f167d3fb5c32 SHA512 235bb3a59e1c5fac1e265245fd6e3f9f61e5f33c6d3d3621929476dd24ab4b708309841f7bb407711e466502d43cbe967e002fedb95d79f6c573730e4c73bf6e
+DIST firefox-152.0.6-mr.xpi 356754 BLAKE2B 61f81f7fce0a25b25c58c3013196c2c460cd34fd63e65da54d59feab9dc1947c53b7bf9d9fc0aa9bf0f5754fa6c7b159a981c300c23215705ef2c14d3b237b72 SHA512 3e4eddd50317eb389f42dfef358b1c3cd83a2c32435c8f0b654c034421efd51b028b2e5885d84c1b6a5ff1de048c047bfb047344912f6bf016b9a01f9845a580
+DIST firefox-152.0.6-ms.xpi 296901 BLAKE2B 233c944263daaaac5365c5d8382505f18882a8072122e8ab2ce45d16cd8f48086fdd06b7e791d73bb57dc8da87518b9872a9a2524eb5f986ea4cd0c0ebaf4dd0 SHA512 35da6eab61647c62adcdfb8fb3b8eb9d4dc4d1299bbe7b4e3b04876522440ffb2bc2ebe1c81faef760b50c478d4cd02696368da16244395d8a899d7f36e4dbf7
+DIST firefox-152.0.6-my.xpi 343717 BLAKE2B db34cee0f60e8611d68be36f7c5a1bc57fdeb85c79f4a7a4c5b7f11df1e9690e00ae7ac0f014d0c44e2bd9f490ca26e94eb28447b290bec6d6e70642f6af251f SHA512 eadf1111f2e00d81acad63d137feefc850e7a3caec26370f73675723662e160e86206f1ba15019fb23d5b6a12dadcd18684cef6b01a358aa5dad3f9f9ba12590
+DIST firefox-152.0.6-nb-NO.xpi 473270 BLAKE2B d68561034ffce24ef12fe9a927a6cf064272c03887197cc87b4539737308870bc2c4f5c71c6d48f76a1e6b0ed3d904885cc8bfa0c051ca15c7b9aa87f1226903 SHA512 235e826c5a5bea532c0c8cff16dceca490293a871204c741b92cb344151af7d9ab62f72f23d3d844c51e5271d287579dfd35892fc6d8f1e5bbb3c4b1c5c61786
+DIST firefox-152.0.6-ne-NP.xpi 348954 BLAKE2B a73dbd410a528e45a60ffde52d7cac2275ef71b97b8c315d1f0843867f131f819344121bca67c15c5a2286bd51cbe3fc7e312a05d9757f2b0ee83f3d05f7a5cf SHA512 2a35971622d70fdafc47e5af4fb474742764b5554183a5ca61abdd8f9f7a1ccf87ce376cb50c628b5ce8ca09265b1da830cfa114e673f39ef5a2191e1da02360
+DIST firefox-152.0.6-nl.xpi 481114 BLAKE2B 26be01aeeef3247cb578c00ddcc493ec8b49f64099bf79e9aa8b2150262be59027116ed72dd9f6359408c0148246169050e85e1799f576be280ff77fbaac8f97 SHA512 0b08674ed4a551f8a128a6d490b11a0a430cb6a880228fb7e2084e234b8ad5abab48e6d9717edc14d7e8064d08740c98a55a640045a2c973299e029840b4ff53
+DIST firefox-152.0.6-nn-NO.xpi 476705 BLAKE2B 6dffe7772653f5ce93fc70b0df4a645f610ae98456f6f7cdb23cbe9c45a10b7d6ef468c091ee466ebc3381dabf568141049445384dc5ab861ed34e5ac6d414a3 SHA512 b5c914323d8953f6a85a7b45ef6f7a56ff3df4909b075ebd02e546f6e263f0e1b81a091d96fded33308f7ea32b92cdd7d4c3cb9763f425cbaf2aa58febf4079a
+DIST firefox-152.0.6-oc.xpi 414367 BLAKE2B 1413086e1668068107ff0449a7886ddb3f5bd83a8ff966c0a7cfe98f00b01c97df2766472e9a0c4bb387ecc2f383b43dd28fb9924cba065d7c8d8cd7a1009ebc SHA512 7273de3e6c579ab2b60d542e9e59cde6ad9e0bc9834e8adf1274489f3fda632a4e7ee6e347981aab570279e621bd9950ddd0724bffbe2703acd4738311c8be5c
+DIST firefox-152.0.6-pa-IN.xpi 547927 BLAKE2B 8ec2969826619d9e0326dc336b45044092028424f8d80c9cbb20ec8be028018fedd5013113d7c414d7c3d751c16ab993764911b68a942659c29995bd5ca5af64 SHA512 d535c627cce209cdc3025feabf42d07d45576507f8c7fc8b9b9bcd56868567502c9d0f81dcf3b7de8824d74943320615c25dedd71075859462cdc47d945e4fe8
+DIST firefox-152.0.6-pl.xpi 512173 BLAKE2B 65017a7c5bf489eca57d17faebc5e5d68a22efa850422e27639bf715412df33313a621b1c74321eb158ec8a92ed6676ad34f8bd0f63b7aeab0813d10a256a389 SHA512 803c5f1117c3ca533603d90319791dfa0395df03a6252f8f6cd4c1f687771b1fe7d38f49dcf271fb8fa1bbd8a7b4246b1cffaddbcdcfbb6272be2febd2e63ee6
+DIST firefox-152.0.6-pt-BR.xpi 485864 BLAKE2B c837991fee7602f92b67b7673e8b017bec6aeb924dedc821f54a0feb1a68a71934366164e5d728d7d131e9e1317b64a34b78291ed42da778e8caca06a08bb5de SHA512 7fecc489d60d3b75d97879a68eb42e98da9f7835726bc221867603870f6f48cd1889de330579bb924daae717c747fe9b80dee902553a1f7709501c2f72d3a04d
+DIST firefox-152.0.6-pt-PT.xpi 489645 BLAKE2B ca0464e2be48de771a3123ed9d087cb361178cfb60af8d249f88f9da42394ce10f403db7584025df8308ee6221bcd7101ef2a39a1fa4b8601d3eaf837dac3d5a SHA512 9d7948d5dc8edbbb1351b8e04281fcc5f20858ac5860717a505a6ec85dc2c7f2049d33f3fcf9797d876c62554e8b7d871e1ff7e14186baa2ca3bdb1445a72855
+DIST firefox-152.0.6-rm.xpi 458007 BLAKE2B 15fea99996489d241c1cf5e24368335b7fc9ddf4ca407e5f962ddd06b9471764a8459b937f734f6ee8b0d7ebdc7fe922eb32cade74dc76d3b4927f2f58b6382b SHA512 b43529dc705b8bde379cf7cfc9a824e0450ed5295ea8b789ed7b36f245bfe1fea1d254fe01cede7d9c08b90008089e503a0214f93cc0681cabc6eae4514009c4
+DIST firefox-152.0.6-ro.xpi 499820 BLAKE2B 4f557e3956d608308c78b1585c3a02c0c63f46c2bad55f86a454f42346c4381e208dfae5394727919ceaf706ed06831ab132087bba1b4f762f06b09cb348e82a SHA512 7394db1490f96c78db49d1b97f75524882a8947198354dd1cf93253a8f7cf5bbf9628de5b9463094caa9616a69ca6baa23a6dafbeb260af21237405c3762d223
+DIST firefox-152.0.6-ru.xpi 581057 BLAKE2B 56500485bf4871166a848892b4e3fc00c5123ef0d681bf1626b872aa5ae8dd90bdfac2bbe182d3589444081a2c839cf14d06d100e394010cd2c197c7962d829a SHA512 28d15be09aa44ccf024b8f8240fcbe678db92f1c9e8599715b5ed5705c83303977ed228f12a85c9534a4e088b796d820c4ce3a1aa86b42bf75b5958e3d8a0fc5
+DIST firefox-152.0.6-sc.xpi 430003 BLAKE2B 14ab668be5750d2d4b1ae9de0f1745771a48c8fb9903442a4be140d926d1ba80e75bf74d24d2cc994ae9de3fab576efb320a96e82afe7ab14b9d1f285d3b3ad4 SHA512 4557c070466a0d1667cf37463b20d37f66824634a43c215276c9a1ce9684370b207d8df62f8c5e717f3a615588fb73f06abaf6447dc802caeef156de8eac6944
+DIST firefox-152.0.6-sco.xpi 323544 BLAKE2B cee1afe19a8715592ee769615b0a826938aad2485c9833212ca8dbc715236d49f4ab91d196739c97bed34af6b0953dec0eb48f094086ac8a3c791e2c5f02e3c4 SHA512 e6906af7d842c571401dce61e380b0bc11da6cf7bfc0594e51f9cb8860b6dc582ea0da96037e53c42e256a00721393efaede0ebc6d1928d4409609388eccdaaf
+DIST firefox-152.0.6-si.xpi 409421 BLAKE2B fb6152c4e6cfa8289708e617d41e7929fecf46245cc09c7cea7f165b1b05bcebb401a07d550f1853d3629124d2ede51dc46c91152f87ea93dc344abda5972a7d SHA512 c27ea2fda3ec60d153ea3227ab7cad6db2763e91fc194bcea87e871a1a56a5e689203ec2495d2ce61492443b06a37ea5634832b2686001908fdad1979b53d2ab
+DIST firefox-152.0.6-sk.xpi 518351 BLAKE2B 6caa4dde2f34e6646ae037da4c9036d414aeb912ff7d5041fa3175996e03803719d9ed5a57f733afb02e26848c9ebc25ab19b1153fa6bb7de5125f2b7cb701db SHA512 4c6ad137715abc4a581baf9241fde7b873808dd9b4d2994a8d99b88e85e5c70ca6cf78d0636df7f503c473e2ff366249354398787cbd22e1549ade7d6483dece
+DIST firefox-152.0.6-skr.xpi 484341 BLAKE2B ef62bc93c11764c7b8b1c2ea9cd173e6c8b6ce1e7a38d99adb73627d476d50e791ed1a137bbdb3db42154c104c0687d5b3a106be8602df5754b69ed4775f35df SHA512 381ce221ebd0754e1a9c85327babcc90097a35a38fe07fb805d8228d04b2bdab53636d734bf87589d7864ab265468aa705ba8aaf10502cda44da07f0a911edcc
+DIST firefox-152.0.6-sl.xpi 484095 BLAKE2B 9810d6275a9429fa71dcad7e35bad31483ded9357d49b851f7eabeea1d0ca859d178445824877a72c41952866196be0461127757e75ce0ca956ced15cf3ebb3d SHA512 1b7592e69c256e7b5f336a00aea8a096de9463e81de850510c59e99ac6840953af603ef2900b41918d2f644a5b3c690701ca332d29a90491d10a791ec46c8ef4
+DIST firefox-152.0.6-son.xpi 275890 BLAKE2B d1e4f9d902915f39dc27384e553f465991fc617b2e0c1d11ee284c7db43cfa9941e31269f8523dd4cd7b712f1c01e417b7f9cd29700b352efe67cb511c2a2cb4 SHA512 cca379e3974f958fb1bbe079a189b2a658b5ced3a7253fe7da4d161777744dd34e5bb6c35a8de7aad49f1e6ab8a0d1233eb3f08f06725d949da72ce75c7d664b
+DIST firefox-152.0.6-sq.xpi 492022 BLAKE2B 45b8270cc93f7cbfca64253ab34587299ea78270fa3722ca96bba716530a1e8009211600aec5ed7a95b0d0eec683a91ffbc2061bb74557d8a5eeec768d4d8a5b SHA512 1d72ad0495bb0c29d9c5ec06cf341b34b60e59904d8b28b5e27b2466d762e9e70de9b7f412e71ac7af9b9326ab41f454ad5c2f5ab04edc2a4fbf307e6925b684
+DIST firefox-152.0.6-sr.xpi 552473 BLAKE2B 9a3446d9a1b51f6848d1291e9b40579439c7cd4a8f99dbc6456d5a49476dc33fe5b324cd14bb6eb3875c67f0fd0495ee7eb457ca07c539ab589217c53fabd58d SHA512 99111ca0ad72ad982c17b9842958701a5f848aaa6e09a2bab440c477f3874d6bf49bbcc4a93049a7e9db8f21c9654a7a0645f5f947b2e844dbf7be57851f1876
+DIST firefox-152.0.6-sv-SE.xpi 480606 BLAKE2B a3dea0900342d2d808c535aaa87263f8f6ccaf2cdbca694be1737a4ebee3fb7fb7210bae60f7136e5f974f6faecdecc1732ebdf787d21631e10a6e14606453c8 SHA512 555919e2df6e9685d5edd6f40f0fb392977041a138b0c22f1cbdd24a6c56ea15c372e7fbd3b226c646984167766c515eabcb16a998db4730d55fc2649dbe591b
+DIST firefox-152.0.6-szl.xpi 342094 BLAKE2B 6778b3988f5b8a7df7e3cb96832403c42582e596f54e6ed8b2519ed07d9e3d2153ce33776ae08463170234b90b9f2143b8f984572ddd726bda4009ab481f4afc SHA512 e60a886c87c03a5742c69cfef152d675172478fcfe84463513c2858bc3413b29887eed297db1f6dbd7bed156083d36033c442fe7b79a2e90b6a3be8f35d32762
+DIST firefox-152.0.6-ta.xpi 338706 BLAKE2B 532937f9644c6177ab1ba05c1d5c4772f7f32a2e9aaf95b22567e13a9bd965c3b3476d32cd01221084622b9d8dc932a204a7f4eb1a2983411d9da5c461d6b844 SHA512 9c5649857bad1672b59c856798102422c75be6d493c9dc53ee9036d9b51ceeb1c2febec54dff3b5f53c7f3c9f63ec86a624e10ab9cc33a2a11239578afddcdd8
+DIST firefox-152.0.6-te.xpi 388473 BLAKE2B ae9bb54ea03bf65c7d6ecd376e5de68e6b66cecae1a0f7fba481f268ddd82ee103d72f27be4f1d668c6c47bd3da705e9705a50c72415fa988a19ca55bbb3dbe1 SHA512 4028ce2fbbd2f81a969077bf38bd099b7d8446b853484794bc9ba0aec71da36b0a9b273c253f16fdc34bd9852b7f37ac69bf4c27d75cc277cba828eb3236d1a5
+DIST firefox-152.0.6-th.xpi 558165 BLAKE2B 9ed5b03fb57e9450113592c22d80746033481457d24e11a4f8822bc06ea8d6ac5f549d9adc1c21c79d0642759e1746771205622cfc813a84e4a95d5fb54c2aff SHA512 8ec00e9268e5bba96c4b3d638e7b02e0f3a08eb00bbd0eae26f823db38e5e3c6516be59054c66d1e08a7f7716624fd8fd1e2d0b9f9759d6120b57abf589b4998
+DIST firefox-152.0.6-tl.xpi 356373 BLAKE2B 5e6d793476c7a00587449e7852cecd613e4b1abc09e3240902940a49716f867a40620ec3e8ba1127a885139250fc8f79682d6e9130c864b10f568e770ea5f23f SHA512 d853a517b921cd933eaf1ae4db19770828b2e1de2cb481180b35d6e161cd50a35808bd7ee61eb9a3934290f4e6cbfa4b27d99dbf36ad2038a21d4870540ef9a4
+DIST firefox-152.0.6-tr.xpi 495513 BLAKE2B 120ec8ddce40952774b88963031f00802ed6e71d1ca48112ae6c95912e72af4c2313b3231acfc201f3ba2d9044b24a55a60b3f8c9c92a21d95eff5606743b27d SHA512 a39044da85db80b67783ecff97cdedfbcd5e820f84bc05208acb0192289607c703f1524fef052bf1ed92ade7246ebaff52787e366975754ed228b12d9953bcb3
+DIST firefox-152.0.6-trs.xpi 325402 BLAKE2B 2aaeaa4e5fccfe7b1fae231b436730b9b038cfd23bb7c67ec6683272c38e1d2063b3d0f6aad737345f565346da2db4f3f5263a9515bb0f8dd979549b15e5193d SHA512 cdb61729a178d46bf07b1e8f10c8f1a9d5305750e68927e192485d40ebffc77d8c89055a7deb780407836bbc570b0b50928e878ac4e24c1dd38accffbc93754a
+DIST firefox-152.0.6-uk.xpi 565394 BLAKE2B 552d2f9b9fef0744554b81b8014e69e0d3c34aa7eaea755d91853a1ec4387287a7d9350b2e49edd8ffc78a09afc520cfd094dcfe1e5e3ac089690ca2f17b233f SHA512 79e62b94c38454cd5d70d0e76ad1f3a0b65432b2859b10828d3f89090ea16717af92704db7c12ef29d75578ccf3b7babce188e55e94d2db1f8fea5bb87eff575
+DIST firefox-152.0.6-ur.xpi 371124 BLAKE2B af2ac69551d060ec6f569e989944aba2cb108e46436398383c2c8d26bdd9631ebb2cfa8118d54f8becdfd1bac41aa57e22490d88da313583dcf7f350748b2428 SHA512 89b314c34772fe1df024a7b2cf82c677b4b588b6af97de4268e326cad927c23e3f97d2ebe5cd8c842fe9e91ebfaa167d50eb2bd6874a9c5188e83b20f1953f71
+DIST firefox-152.0.6-uz.xpi 305663 BLAKE2B 24a3374ae659c063d9553c09513e0ad2810e30fe99ac42236c341f66631f067a4d66a9eeab6cbcf5f3560d7e677a3112c628055e0eb951ead759ab6c51e85898 SHA512 c587aca3d4db7a072f8287fe904ff076ccd4562cb5c8b33b35c7475de117b7ef3d4f0f1527b3df0058ca4e4c93272d694333febae32d1ab90ae5fa86c852d863
+DIST firefox-152.0.6-vi.xpi 516614 BLAKE2B d64bef02a4c15960658e3e70de6f678bcfc55c4bf49e6337bf2b4726eb6c509dbddf72659630ea1d93a2a57009d43f70a3409705482e6421040b2518634da50d SHA512 69e4d61e8b1d3fb3dc2d73903a7d442c43f8a76fbfd03c96171a2bff9929e50e38f39c784081c06310aff07f7163c1e5f6420ef27882f5090df3c7a10bb8af4b
+DIST firefox-152.0.6-xh.xpi 275378 BLAKE2B e26f4c2d4c75dfe535c9f39440687636191f0d3e978cc9ce93d78ef3d096e29f80b59a1eadc285236445191eb13d7d8b346560cd1c76a5a3960afd64ba6f6766 SHA512 3d1dc3208d2f0d881006ac45fa1475f2604fe6a6ab321eff65df58e011a456a87e7b947df23958b1a26af4b44df40ef4134076438c6696dda4eef86a98501a04
+DIST firefox-152.0.6-zh-CN.xpi 506726 BLAKE2B 64916a9933073504203ddaa8353342a4b3da8f5175403263c07d3589ed681a056ff0e11daeffc3635efadd856f02c792d90b91b58662aa984636b9006405fb41 SHA512 5f9bce4e899267ce2b8de6b5fd8908c2b7f456227bb461ed6bed7395c088b20fb690ca10c7aa8da3e2ca08182b2fac6b8b4288f56ab018e08db7ee2581d4eed7
+DIST firefox-152.0.6-zh-TW.xpi 510886 BLAKE2B d209f239923cac1677b8b084dbd986a2eb3b9040c4474d0930aa8b47ecd858a4af668c51e7b4b82ea92f3304b46ecf5c5b41877bd2f1e1f83eaab9db9cbddb70 SHA512 db3557af70134c6509781474b2d8b9ebc2810b8b837201a93bf9e36d3ac724dd087157d38a7df5a7a062e41cd75db5db50861b6e7c3d546ee69b8b214836efcc
diff --git a/www-client/firefox-l10n/firefox-l10n-152.0.6.ebuild b/www-client/firefox-l10n/firefox-l10n-152.0.6.ebuild
new file mode 100644
index 000000000000..47f081fa54d4
--- /dev/null
+++ b/www-client/firefox-l10n/firefox-l10n-152.0.6.ebuild
@@ -0,0 +1,181 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+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"
+ HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/"
+else
+ HOMEPAGE="https://www.firefox.com"
+fi
+
+MOZ_PN="${PN%-l10n}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+DESCRIPTION="Firefox Web Browser's translation files"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+# 149.0 is when the firefox-l10n was introduced.
+RDEPEND="!<www-client/firefox-149.0"
+BDEPEND="app-arch/unzip"
+
+S="${WORKDIR}"
+
+MOZ_LANGS=(
+ af ar ast be bg br ca cak cs cy da de dsb el en-CA en-GB
+ en-US es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hsb hu id
+ is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO pa-IN pl pt-BR
+ pt-PT rm ro ru sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( skr )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+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
+}
+
+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_install() {
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${MOZ_PN}"
+
+ # 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
+}
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 752cbba85b6a..89652087f9ca 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -103,5 +103,6 @@ DIST firefox-140.12.0esr.source.tar.xz 641934156 BLAKE2B c9e3b2fd860edf1e9147541
DIST firefox-140esr-patches-12.tar.xz 16200 BLAKE2B 51110f80537b2c3fd2e53e6c65c8d19b78b6ec828161da8697dfb3eb008c39e036517c78b0491f1131351967d3a775154d795bafe978850415b2f9fa5415b8a2 SHA512 a73007646116a1e50da1e2cfab623794283ba6890743c17bfefe4115ee4b1dca5a55fe1ed798a6efcad0c2ff708dd38bab0d328007b4ebd99c9c90f880920bc4
DIST firefox-152-patches-03.tar.xz 14440 BLAKE2B f081628d26a591637df5f9f316a368045cfdacc5d9b5eb732777272c4d3be7a42691443f194ca1a6538b2262b4c4b0bf21bbcd53836a98fb90cc8b442bfd13a8 SHA512 ea6a1a3d7cd9ada4950cc69e63b79b1d5dc7ae2218de856198c24e24eb9b52f552db54dc8796e6a795a61524319182b87d3f2f49f588a1a0719c66ce1f26df5f
DIST firefox-152.0.5.source.tar.xz 800076384 BLAKE2B 011cae8194c98ada33d47f468ce3e23c7c3056f09c9ee0c69cd8eb58007d88002436a374bcb8eb9cbffbbde27b083004c53b752a5a4b6d342af220193ab2e7f7 SHA512 6cf2dc7f28a6a3430f2866df4ca35063cbadf234c82a34fa651e02d909e5741e50cd986fef1bd97d486b51244cb639b2b103514688347bf7f94fd16d264cc4f2
+DIST firefox-152.0.6.source.tar.xz 801138984 BLAKE2B d0a55f6f30a78516d244037d593ccb08f6803498b582508af35d5b2811097f00584c5b1760c488ae6e7073837b88087ff94ab36eee9af8d7a110350515fc94eb SHA512 c4d877837d7007fb611c38d49d9b6dd3bc4c5c9ca900b54e722e140ce7ecd0924f69b5cedc7f8c1fe602e7efe1d7159b019de27999e29235cd631821bb13e6b0
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
diff --git a/www-client/firefox/firefox-152.0.6.ebuild b/www-client/firefox/firefox-152.0.6.ebuild
new file mode 100644
index 000000000000..e512c7ef7628
--- /dev/null
+++ b/www-client/firefox/firefox-152.0.6.ebuild
@@ -0,0 +1,1389 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-152-patches-03.tar.xz"
+
+LLVM_COMPAT=( 21 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"
+
+# Information about the bundled wasi toolchain from
+# https://github.com/WebAssembly/wasi-sdk/
+WASI_SDK_VER=32.0
+WASI_SDK_LLVM_VER=22
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+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"
+ HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/"
+ SLOT="esr"
+else
+ HOMEPAGE="https://www.firefox.com"
+ SLOT="rapid"
+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 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
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+DESCRIPTION="Firefox Web Browser"
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${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}/${PN}-${PV%_*}"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+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"
+IUSE+=" system-pipewire system-png +system-webp test valgrind wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry wasm-sandbox"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( jumbo-build )
+ wayland? ( dbus )
+ wifi? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+ 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.124
+ >=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
+ )"
+
+# ESR and rapid dependencies.
+if [[ -n ${MOZ_ESR} ]] ; then
+ RDEPEND+=" !www-client/firefox:rapid"
+else
+ RDEPEND+=" !www-client/firefox:esr"
+fi
+
+# Firefox-only RDEPEND
+RDEPEND+=" ~www-client/firefox-l10n-${PV}"
+
+# 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_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"
+
+ if ! use clang ; then
+ if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then
+ eerror "<gcc-15.2.1_p20251108-r1:15 and pgo detected. Firefox-145.0 can not be compiled"
+ eerror "with this GCC, when also enabling pgo."
+ eerror "See bug https://gcc.gnu.org/PR122620"
+ eerror ""
+ eerror "Your options are:"
+ eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0"
+ eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1,"
+ eerror " or use the \"trunk\" version,"
+ eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or"
+ eerror " 3) disable pgo when compiling with GCC for now."
+ die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)"
+ fi
+ fi
+ elif tc-is-lto ; then
+ CHECKREQS_DISK_BUILD="10900M"
+
+ if ! use clang ; then
+ if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then
+ eerror "<gcc-15.2.1_p20251108-r1:15 and lto detected. Firefox-145.0 can not be compiled"
+ eerror "with this GCC, when also enabling lto."
+ eerror "See bug https://gcc.gnu.org/PR122620"
+ eerror ""
+ eerror "Your options are:"
+ eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0"
+ eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1,"
+ eerror " or use the \"trunk\" version,"
+ eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or"
+ eerror " 3) disable lto when compiling with GCC for now."
+ die "Firefox-${PV} with gcc+lto cannot be compiled with the detected gcc version: $(gcc-fullversion)"
+ fi
+ fi
+ 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
+
+ if ! use clang ; then
+ if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then
+ eerror "<gcc-15.2.1_p20251108-r1:15 and pgo detected. Firefox-145.0 can not be compiled"
+ eerror "with this GCC, when also enabling lto."
+ eerror "See bug https://gcc.gnu.org/PR122620"
+ eerror ""
+ eerror "Your options are:"
+ eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0"
+ eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1,"
+ eerror " or use the \"trunk\" version,"
+ eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or"
+ eerror " 3) disable lto when compiling with GCC for now."
+ die "Firefox-${PV} with gcc+lto cannot be compiled with the detected gcc version: $(gcc-fullversion)"
+ fi
+ fi
+ fi
+
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
+ fi
+
+ if ! use clang ; then
+ if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then
+ eerror "<gcc-15.2.1_p20251108-r1:15 and lto detected. Firefox-145.0 can not be compiled"
+ eerror "with this GCC, when also enabling pgo."
+ eerror "See bug https://gcc.gnu.org/PR122620"
+ eerror ""
+ eerror "Your options are:"
+ eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0"
+ eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1,"
+ eerror " or use the \"trunk\" version,"
+ eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or"
+ eerror " 3) disable pgo when compiling with GCC for now."
+ die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)"
+ fi
+ 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
+ # glslopt: bgo#969412
+ moz_clear_vendor_checksums glslopt
+ moz_clear_vendor_checksums encoding_rs
+
+ # 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
+ if use telemetry; then
+ export MOZILLA_OFFICIAL=1
+ fi
+
+ 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-official-branding \
+ --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
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --enable-update-channel=${update_channel}
+
+ # 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
+ elif use valgrind; then
+ mozconfig_add_options_ac 'valgrind requirement' --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
+
+ 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 valgrind
+
+ 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
+
+ ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build
+
+ 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
+
+ if use valgrind; then
+ mozconfig_add_options_ac 'valgrind requirement' --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
+
+ if use valgrind; then
+ sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die
+ fi
+
+ ./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
+
+ # 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
+
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+
+ # 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-r2 \
+ >>"${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 vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969)
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/vaapitest
+ doexe "${BUILD_DIR}"/dist/bin/vulkantest
+
+ # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded)
+ if use arm64 ; then
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/v4l2test
+ fi
+ 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/official"
+
+ # Prefer the upstream svg file they use when packaging flatpak so it's always up-to-date.
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${S}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg firefox-symbolic.svg
+ dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg /usr/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg
+
+ 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="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if [[ -n ${MOZ_ESR} ]] ; then
+ local desktop_filename="${PN}-esr.desktop"
+ else
+ local desktop_filename="${PN}.desktop"
+ fi
+
+ 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 gnome-shell ; then
+ # Install search provider for Gnome
+ insinto /usr/share/gnome-shell/search-providers/
+ doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini
+
+ insinto /usr/share/dbus-1/services/
+ doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service
+
+ # Toggle between rapid and esr desktop file names
+ if [[ -n ${MOZ_ESR} ]] ; then
+ sed -e "s/firefox.desktop/${desktop_filename}/g" \
+ -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" ||
+ die "Failed to sed org.mozilla.firefox.search-provider.ini file."
+ fi
+
+ # Make the dbus service aware of a previous session, bgo#939196
+ sed -e \
+ "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \
+ -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" ||
+ die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file"
+
+ # Update prefs to enable Gnome search provider
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs"
+ pref("browser.gnome-search-provider.enabled", true);
+ EOF
+ fi
+
+ 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}/${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
+
+ # bug 835078
+ # might work fine with vulkan, starting in 152.0?
+ if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+ ewarn "You have nouveau drivers installed in your system and 'hwaccel' "
+ ewarn "enabled for Firefox. Nouveau / your GPU might not support the "
+ ewarn "required EGL, so either disable 'hwaccel' or try the workaround "
+ ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes."
+ 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 e773d4e7802f..1616703cda44 100644
--- a/www-client/ungoogled-chromium/Manifest
+++ b/www-client/ungoogled-chromium/Manifest
@@ -7,6 +7,7 @@ DIST chromium-149.0.7827.196-linux.tar.xz 1609747760 BLAKE2B 35426def770e108f166
DIST chromium-149.0.7827.200-linux.tar.xz 1609868392 BLAKE2B 4ced9d2d5f3d273ce0049033c094e3401faf6d8bd4877fda60e6da79cafb96af876a0d92440b8b70067319f6881bda1d27ac696c4a9b9a971c4934ac49586305 SHA512 40d198bd9210fca8570787d7338a3ad0472deaaded00d1983b27bdbb7f98379cbbaecf4a6d99171d0a83ab8edf86f5ab5d015f73bb8c403c1c5c0c0d3ae1a02a
DIST chromium-149.0.7827.53-linux.tar.xz 1611305116 BLAKE2B 72018ef444c4769234e13dab7cbe0d2abd03d140631d7ba3cf0dcd4b6fa87f777cb8bbfa6b8100de2166f991f4557197545cac090a9935ddf6ec0f988610ad11 SHA512 36aa5854152d0c0ce338331be28c077aa2cf9edc45c608096368fbbdd84700df4d428daf67b7c76c36a3ff423ccd5b5f6518814bc87facce3d2da529e9dafafd
DIST chromium-150.0.7871.114-linux.tar.xz 1670274328 BLAKE2B 7462e3f64b27ef260197d7d3920ca38561404baf155fb2e2500628c9526bd774b7ed721415606d4b0704bd923536aedc8b750fc2eb0b2cfe01cefaa5b9f15984 SHA512 c6ab88182810bbf9423f01c1c4d02abfb3dcec8c182095ddfae5a49bb3817aef21a43eb743dcc95a6418ffaa54f3a8a4686795fb2e7be67f4c3d0ab489f0ee66
+DIST chromium-150.0.7871.124-linux.tar.xz 1670364688 BLAKE2B 68a19fca963ca95e1bbea6afa28bde1de3ac84301e719cf0c6885dba82061688966940b91bf6b821c620e1e07540bea88cc4a677ca815c62b61b6220321fa575 SHA512 bd9ff49b3d48a7311878f358a3fb15e31e882b234f7ff36f9657c28a0e1d0f3e7bda7324452cb0aecc08d4ca2f34fc19700651813e309d92936f068cbe0de527
DIST chromium-cf94ed446320d35c8613ed9b3ffb6e6a61bfcb5f.patch 9972 BLAKE2B 72d3b755214a8cc0299129c645b938746a2e4dff31cc9aa154019ebaf5c29d5ce9a8378dbecbf0455f253c5e10b83dbfd03a10573d8fa93992f2d6ac965a2b1f SHA512 62ffd3162a0c1aa4be51d3ead238b3a84463f8c6d55b9aad5806bcb23dfb2b832ad6aec7f348690c4b3aaf430260352ca558e791ca611d5e791e6b3eadcffcf1
DIST chromium-clang-llvmorg-23-init-10931-g20b6ec66-11.tar.xz 69635068 BLAKE2B 5250889dac7ca048030266b9e5eb9b08a1288acb1023fff3513555ca361f787fdb273b04d5cb5cc9960d7d13e804604ca63e65b056d1873a8f5e1d56e8f59db8 SHA512 4a1f06bacfb5894e277f3957df3adcc937f262ec91927d6fd97a2e4b88b795e2559a8498be633d6b191dd4d52a5df52669f76c59c2939689f5f88fc7457cabae
DIST chromium-clang-llvmorg-23-init-10931-g20b6ec66-8.tar.xz 69605340 BLAKE2B 5ab6a03bfa76a8523d35c9f9541bc8aff2c33331208ffd2c729e6cd7e6d58e225d236ca8233893df57a52d4cefb0c62d79d61c8f902fbd909cdac8f148822fb8 SHA512 6e013faba35b624144535207c5c884d4675e4166f4eb212d2494c43dbb430b35030734d6f28fc087f5da79a8318531560529a0d0754a96d13e628eb5090de6b5
@@ -32,4 +33,5 @@ DIST ungoogled-chromium-149.0.7827.196-1.tar.gz 665767 BLAKE2B bb080b21bee602be0
DIST ungoogled-chromium-149.0.7827.200-1.tar.gz 665727 BLAKE2B 4374ff19aeccd38bc47551c895250a3f972ecac6d9e8e79fb14817d1bd4b0bc8dbebb209db07da8a1cedc4c4a26b3fe252c300021d6a1b724b1a46e9bbe2a99a SHA512 f194ed2f943b6f58b09f1547e67fdca842456c4847f5d0d9dc9d0959af86853edac8cb4a8b897241bfe30fb4e5d60f63cecfd3f0b1d1e43c1a81b933bba59925
DIST ungoogled-chromium-149.0.7827.53-1.tar.gz 664795 BLAKE2B 1f64ccac79b560cecc25b5e9d0846d6bd048900edffe06c5549a18f7d7312634a868f1b1b08c178826e95fb4f96fa9d3d48665288bf3ad943f385f56e3f9e5f6 SHA512 dd6dbb61fdab41924c7e417b593521d747bb51ec16c68f5fef9e0e3c574abd338cd9b4d98f8216c741ba4178d2612a4dd0ef6f164b3402d1b3b0ee3bb56c7921
DIST ungoogled-chromium-150.0.7871.114-1.tar.gz 669709 BLAKE2B 1e79d1a073ffbb3733e0e758130cf2b206eace70937e984791f2d08760d15cbb8b352ada59e0c21d05b7761cfdd5a3d9d33564b249162a3c07d25e178105d11d SHA512 caf5810553f68d15dfe72a180fd568601302cc52d311b5d5e7621e696a4e53944f72b0f5a93fb0a442ca1c87e2f0d66c7efb1db0ff7e903a966be3dce38653de
+DIST ungoogled-chromium-3a1e4997f632b1e32552adb39f0e2007bd78b3a3.tar.gz 669506 BLAKE2B 62411f36e5c97d0de4117edc0c1d96149ec6da65735bf6cab27dc4b82c389686fa503aa1e27262fe8d8ac2454cd32225ec20e1d9aca8eda7da80ee278d38222a SHA512 ce60946630b521d1742f6d0013ab7dd7058cbe077962b751a426149f8836731fff987e9af4e400bee615326c4aa80e0ddfbf41933c513bc761427b574587d342
DIST ungoogled-chromium-4d7bb965938b072e1dc7d9a5fa26121805f97fc8.tar.gz 665638 BLAKE2B 84d8ef00835f9d880007db9c125729209900d4df1087099af9fd9b66727fbb37b1520908d3bedcf3416302e45866a4f7278cc0589ef6de25a5e6142c123d08b9 SHA512 b6653986b3af157ad5749eabd185280ccd24cf5a551f2e639a6ac9b51aff2fa4f5aa7c0b3cd881162b0da2f44e022755013d1f747e1268378a18fcb9cdfde015
diff --git a/www-client/ungoogled-chromium/ungoogled-chromium-150.0.7871.124_p1.ebuild b/www-client/ungoogled-chromium/ungoogled-chromium-150.0.7871.124_p1.ebuild
new file mode 100644
index 000000000000..176cde865b1f
--- /dev/null
+++ b/www-client/ungoogled-chromium/ungoogled-chromium-150.0.7871.124_p1.ebuild
@@ -0,0 +1,2528 @@
+# Copyright 2009-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Use following environment variables to customise the build
+# EXTRA_GN — pass extra options to gn
+# NINJAOPTS="-k0 -j8" useful to populate ccache even if ebuild is still failing
+# UGC_SKIP_PATCHES — space-separated list of patches to skip
+# UGC_KEEP_BINARIES — space-separated list of binaries to keep
+# UGC_SKIP_SUBSTITUTION — space-separated list of files to skip domain substitution
+
+# USE=bundled-toolchain is intended for users who want to use the same toolchain
+# as the upstream releases. It's also a good fallback in case we fall behind
+# and need to get a release out quickly (less likely with `dev` in-tree).
+# We can't rely on it as a default since the toolchain is only shipped for x86-64;
+# other architectures will need to use system toolchain.
+
+# Since m133 we are using CI-generated tarballs from
+# https://github.com/chromium-linux-tarballs/chromium-tarballs/
+
+# These are bit-for-bit identical to the official releases, but are built
+# using an external CI system that we have some control over, in case
+# issues pop up again with official tarball generation.
+
+GN_MIN_VER=0.2374
+# chromium-tools/get-chromium-toolchain-strings.py (or just use Chromicler)
+# Node for M145+ should be 24.12.0 but that's not packaged in Gentoo yet. See #969145
+TEST_FONT="9c07d19d9c5ee1ff94f717e6fb17e0c8c354e6f9"
+BUNDLED_CLANG_VER="llvmorg-23-init-10931-g20b6ec66-11"
+BUNDLED_RUST_VER="4c4205163abcbd08948b3efab796c543ba1ea687-5"
+RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
+NODE_VER="24.16.0-r1"
+ESBUILD_VER="0.25.1"
+ROLLUP_VER="4.57.1" # currently manual.
+
+CHROMIUM_LANGS="af am ar as az be bg bn bs ca cs cy da de el en-GB es es-419 et eu fa fi fil
+ fr fr-CA gl gu he hi hr hu hy id is it ja ka kk km kn ko ky lo lt lv mk ml mn mr ms my
+ nb ne nl or pa pl pt-BR pt-PT ro ru si sk sl sq sr sr-Latn sv sw ta te th tr uk ur uz
+ vi zh-CN zh-HK zh-TW zu"
+
+UGC_COMMIT_ID="3a1e4997f632b1e32552adb39f0e2007bd78b3a3"
+# UGC_PR_COMMITS=(
+# c917e096342e5b90eeea91ab1f8516447c8756cf
+# 5794e9d12bf82620d5f24505798fecb45ca5a22d
+# )
+
+CROMITE_COMMIT_ID="cb3baf14f52eb4365d017f640f85310735c19b79"
+
+declare -A CHROMIUM_COMMITS=(
+# ["fcfb1a42813f1e9d8babedc7bb2e0f06101a3151"]="." #148+
+ ["-cf94ed446320d35c8613ed9b3ffb6e6a61bfcb5f"]="."
+# # ["-37c28a19804e47a68eabf3cf882a310689fc325b"]="." #disable style check for cromite
+# # ["cd5a0df905a28faa89ff2a4ab44f893f84dc4487"]="net/third_party/quiche/src"
+)
+
+LLVM_COMPAT=( 21 22 23 )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.91.0
+RUST_NEEDS_LLVM="yes please"
+RUST_OPTIONAL="yes" # Not actually optional, but we don't need system Rust (or LLVM) with USE=bundled-toolchain
+RUST_REQ_USE="rustfmt" # Upstream run rustfmt on bindgen output, so we need it to be available.
+
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
+inherit python-any-r1 readme.gentoo-r1 rust systemd toolchain-funcs xdg-utils
+
+DESCRIPTION="Modifications to Chromium for removing Google integration and enhancing privacy"
+HOMEPAGE="https://github.com/ungoogled-software/ungoogled-chromium"
+PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
+PATCH_V="${PV%%\.*}-1"
+COPIUM_COMMIT="b00f26bb5e0781020da5f830981472a142c6baf1"
+SRC_URI="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV/_*}/chromium-${PV/_*}-linux.tar.xz
+ https://deps.gentoo.zip/www-client/chromium/rollup-wasm-node-${ROLLUP_VER}.tgz
+ https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
+ !bundled-toolchain? (
+ https://codeberg.org/selfisekai/copium/archive/${COPIUM_COMMIT}.tar.gz
+ -> chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
+ )
+ bundled-toolchain? (
+ https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
+ -> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz
+ https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
+ -> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz
+ )
+ test? (
+ https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz
+ )
+ ppc64? (
+ https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
+ )
+"
+
+# Gentoo tarball:
+# https://chromium-tarballs.distfiles.gentoo.org/chromium-${PV/_*}.tar.xz -> chromium-${PV/_*}-gentoo.tar.xz
+
+# chromium-linux-tarballs
+# https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV/_*}/chromium-${PV/_*}-linux.tar.xz
+
+# Official tarball:
+# https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${PV/_*}${LITE_TARBALL:+-lite}.tar.xz
+
+# https://gitweb.gentoo.org/proj/chromium-tools.git/tree/get-chromium-licences.py @ 145.0.7632.76
+LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL"
+LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0"
+LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
+LICENSE+=" cromite? ( GPL-3 )"
+
+SLOT="beta"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+IUSE_SYSTEM_LIBS="abseil-cpp av1 brotli crc32c double-conversion ffmpeg +harfbuzz icu jsoncpp +libusb libvpx +openh264 openjpeg re2 snappy woff2 +zstd"
+IUSE="+X bindist bluetooth bundled-toolchain cfi convert-dict cups custom-cflags debug ffmpeg-chromium enable-driver gtk4 hangouts headless kerberos +libcxx nvidia +official optimize-thinlto optimize-webui override-data-dir pax-kernel pgo"
+IUSE+=" +proprietary-codecs pulseaudio qt6 screencast selinux test thinlto cromite vaapi wayland widevine cpu_flags_ppc_vsx3"
+RESTRICT="
+ !bindist? ( bindist )
+ !test? ( test )
+ arm64? ( test )
+ !system-ffmpeg? ( proprietary-codecs? ( bindist ) )
+ !system-openh264? ( bindist )
+ cromite? ( bindist )"
+
+REQUIRED_USE="
+ !headless? ( || ( X wayland ) )
+ screencast? ( wayland )
+ ffmpeg-chromium? ( bindist proprietary-codecs )
+ optimize-thinlto? ( thinlto )
+ cfi? ( thinlto )
+ x86? ( !thinlto !widevine )
+ debug? ( !official )
+ vaapi? ( !system-av1 !system-libvpx )
+"
+
+UGC_PV="${PV/_p/-}"
+UGC_PF="${PN}-${UGC_PV}"
+UGC_URL="https://github.com/ungoogled-software/${PN}/archive/"
+
+if [ -z "$UGC_COMMIT_ID" ]; then
+ UGC_URL="${UGC_URL}${UGC_PV}.tar.gz -> ${UGC_PF}.tar.gz"
+ UGC_WD="${WORKDIR}/${UGC_PF}"
+else
+ UGC_URL="${UGC_URL}${UGC_COMMIT_ID}.tar.gz -> ${PN}-${UGC_COMMIT_ID}.tar.gz"
+ UGC_WD="${WORKDIR}/ungoogled-chromium-${UGC_COMMIT_ID}"
+fi
+
+SRC_URI+="${UGC_URL}
+"
+
+if [ ! -z "${UGC_PR_COMMITS[*]}" ]; then
+ for i in "${UGC_PR_COMMITS[@]}"; do
+ SRC_URI+="https://github.com/ungoogled-software/${PN}/commit/$i.patch?full_index=true -> ${PN}-$i.patch
+ "
+ done
+fi
+
+if [ ! -z "${CHROMIUM_COMMITS[*]}" ]; then
+ # for i in "${CHROMIUM_COMMITS[@]}"; do
+ for i in "${!CHROMIUM_COMMITS[@]}"; do
+ if [[ ${CHROMIUM_COMMITS[$i]} =~ webrtc ]]; then
+ #TODO: is it safe to use this mirror?
+ SRC_URI+="https://github.com/webrtc-mirror/webrtc/commit/${i/-}.patch?full_index=true -> webrtc-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ angle ]]; then
+ SRC_URI+="https://github.com/google/angle/commit/${i/-}.patch?full_index=true -> angle-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ quiche ]]; then
+ SRC_URI+="https://github.com/google/quiche/commit/${i/-}.patch?full_index=true -> quiche-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ dawn ]]; then
+ SRC_URI+="https://github.com/google/dawn/commit/${i/-}.patch?full_index=true -> dawn-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ perfetto ]]; then
+ SRC_URI+="https://github.com/google/perfetto/commit/${i/-}.patch?full_index=true -> perfetto-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ ink ]]; then
+ SRC_URI+="https://github.com/google/ink/commit/${i/-}.patch?full_index=true -> ink-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ vulkan-utility-libraries ]]; then
+ SRC_URI+="https://github.com/KhronosGroup/Vulkan-Utility-Libraries/commit/${i/-}.patch?full_index=true -> vulkan-utility-libraries-${i/-}.patch
+ "
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ ruy ]]; then
+ SRC_URI+="https://github.com/google/ruy/commit/${i/-}.patch?full_index=true -> ruy-${i/-}.patch
+ "
+ else
+ SRC_URI+="https://github.com/chromium/chromium/commit/${i/-}.patch?full_index=true -> chromium-${i/-}.patch
+ "
+ fi
+ done
+fi
+
+SRC_URI+="cromite? ( https://github.com/uazo/cromite/archive/${CROMITE_COMMIT_ID}.tar.gz -> cromite-${CROMITE_COMMIT_ID}.tar.gz )
+"
+
+for i in ${IUSE_SYSTEM_LIBS}; do
+ [[ $i =~ ^(\+)?(.*)$ ]]
+ IUSE+=" ${BASH_REMATCH[1]}system-${BASH_REMATCH[2]}"
+done
+
+COMMON_X_DEPEND="
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libxshmfence:=
+"
+
+# sys-libs/zlib: https://bugs.gentoo.org/930365; -ng is not compatible.
+# We _could_ use the bundled minizip, but that's against policy.
+COMMON_SNAPSHOT_DEPEND="
+ system-icu? ( >=dev-libs/icu-78:= )
+ system-abseil-cpp? ( >=dev-cpp/abseil-cpp-20260107.0 )
+ system-brotli? ( >=app-arch/brotli-9999 )
+ system-crc32c? ( dev-libs/crc32c )
+ system-double-conversion? ( dev-libs/double-conversion )
+ system-woff2? ( media-libs/woff2 )
+ system-snappy? ( app-arch/snappy )
+ system-jsoncpp? ( dev-libs/jsoncpp )
+ system-openjpeg? ( media-libs/openjpeg:2= )
+ system-re2? ( >=dev-libs/re2-0.2019.08.01:= )
+ system-libvpx? ( >=media-libs/libvpx-1.13.0:=[postproc] )
+ system-libusb? ( virtual/libusb:1 )
+ cromite? ( dev-util/patchutils )
+ >=dev-libs/libxml2-2.12.4:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ dev-libs/libxslt:=
+ media-libs/fontconfig:=
+ >=media-libs/freetype-2.11.0-r1:=
+ system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-zstd? ( >=app-arch/zstd-1.5.5:= )
+ >=media-libs/libwebp-0.4.0:=
+ media-libs/mesa:=[gbm(+)]
+ >=media-libs/openh264-2.6.0:=
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-3.7.0:=
+ )
+ sys-libs/zlib:=
+ !headless? (
+ dev-libs/glib:2
+ >=media-libs/alsa-lib-1.0.19:=
+ media-video/pipewire:=
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.9
+ )
+ )
+ sys-apps/pciutils:=
+ kerberos? ( virtual/krb5 )
+ vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
+ X? (
+ x11-base/xorg-proto:=
+ x11-libs/libX11:=
+ x11-libs/libxcb:=
+ x11-libs/libXext:=
+ )
+ x11-libs/libxkbcommon:=
+ wayland? (
+ screencast? ( media-video/pipewire:= )
+ dev-libs/libffi:=
+ dev-libs/wayland:=
+ screencast? (
+ media-video/pipewire:=
+ || (
+ sys-apps/xdg-desktop-portal-gnome
+ sys-apps/xdg-desktop-portal-gtk
+ kde-plasma/xdg-desktop-portal-kde
+ gui-libs/xdg-desktop-portal-lxqt
+ gui-libs/xdg-desktop-portal-wlr
+ )
+ )
+ )
+ )
+"
+
+COMMON_DEPEND="
+ ${COMMON_SNAPSHOT_DEPEND}
+ app-arch/bzip2:=
+ dev-libs/expat:=
+ system-ffmpeg? (
+ >=media-video/ffmpeg-6.1:=
+ >=media-libs/opus-1.3.1:=
+ )
+ net-misc/curl[ssl]
+ sys-apps/dbus:=
+ media-libs/flac:=
+ sys-libs/zlib:=[minizip]
+ !headless? (
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ media-libs/mesa:=[X?,wayland?]
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ qt6? ( dev-qt/qtbase:6[gui,widgets] )
+ X? ( ${COMMON_X_DEPEND} )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ !www-client/ungoogled-chromium:0
+ >=www-client/chromium-common-2
+ !headless? (
+ || (
+ x11-libs/gtk+:3[X?,wayland?]
+ gui-libs/gtk:4[X?,wayland?]
+ )
+ qt6? ( dev-qt/qtbase:6[X?,wayland?] )
+ )
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ bindist? (
+ ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} )
+ )
+ !override-data-dir? (
+ !www-client/chromium:${SLOT}
+ !www-client/cromite:${SLOT}[-override-data-dir]
+ )
+"
+# For M149+ pipewire is a mandatory build-time dependency, but it's optional at runtime for most configurations.
+DEPEND="${COMMON_DEPEND}
+ !headless? (
+ media-video/pipewire
+ gtk4? ( gui-libs/gtk:4[X?,wayland?] )
+ !gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
+ )
+"
+
+ # pgo? ( >=llvm-core/clang-22.0.0_pre20260106 >=llvm-core/lld-22.0.0_pre20260106 )
+BDEPEND="
+ ${COMMON_SNAPSHOT_DEPEND}
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ >=app-arch/gzip-1.7
+ !headless? (
+ qt6? ( dev-qt/qtbase:6 )
+ )
+ !bundled-toolchain? ( $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ cfi? ( llvm-runtimes/clang-runtime:${LLVM_SLOT}[sanitize] )
+ official? (
+ !ppc64? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[cfi] )
+ ) ')
+ || (
+ $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}')
+ >=sys-devel/mold-2.41.0
+ )
+ ${RUST_DEPEND}
+ )
+ >=dev-util/bindgen-0.72.1
+ >=dev-build/gn-${GN_MIN_VER}
+ app-alternatives/ninja
+ dev-lang/perl
+ >=dev-util/gperf-3.2
+ dev-util/esbuild:${ESBUILD_VER}
+ dev-vcs/git
+ >=net-libs/nodejs-${NODE_VER}[inspector]
+ sys-apps/hwdata
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ x11-misc/xdg-utils
+"
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+S="${WORKDIR}/chromium-${PV/_*}"
+
+python_check_deps() {
+ python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+ # Check build requirements: bugs #471810, #541816, #914220
+ # We're going to start doing maths here on the size of an unpacked source tarball,
+ # this should make updates easier as chromium continues to balloon in size.
+ # xz -l /var/cache/distfiles/chromium-${PV}*.tar.xz
+ local base_disk=9 # Round up
+ use test && base_disk=$((base_disk + 5))
+ local extra_disk=1 # Always include a little extra space
+ local memory=4
+ tc-is-cross-compiler && extra_disk=$((extra_disk * 2))
+ if tc-is-lto || use pgo; then
+ memory=$((memory * 2 + 1))
+ tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) # Double the requirements
+ use pgo && extra_disk=$((extra_disk + 4))
+ fi
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ if use custom-cflags; then
+ extra_disk=$((extra_disk + 5))
+ fi
+ memory=$((memory * 2))
+ fi
+ local CHECKREQS_MEMORY="${memory}G"
+ local CHECKREQS_DISK_BUILD="$((base_disk + extra_disk))G"
+ check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ # The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+ pre_build_checks
+ fi
+
+ if use headless; then
+ local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt6" "vaapi" "wayland")
+ for myiuse in ${headless_unused_flags[@]}; do
+ use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set."
+ done
+ fi
+
+ if ! use bindist && use ffmpeg-chromium; then
+ ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set."
+ fi
+ if use libcxx; then
+ ewarn
+ ewarn "Building with libcxx, please be aware that system-*"
+ ewarn "and some other c++ dependencies need to be compiled"
+ ewarn "with the same c++ library as ungoogled-chromium itself"
+ ewarn "dev-libs/jsoncpp is most problematic, see #58 #49 #119 for details"
+ ewarn "Simplest solution would be to disable corresponding system-* flags"
+ ewarn
+ fi
+ if use cfi; then
+ ewarn
+ ewarn "Building with cfi is only possible if building with -stdlib=libc++"
+ ewarn "Make sure all dependencies are also built this way, see #40"
+ ewarn
+ fi
+ if use cromite; then
+ ewarn
+ ewarn "Cromite patches are very experimental and unstable"
+ ewarn "Please consider testing them and giving feedback upstream:"
+ ewarn "https://github.com/uazo/cromite/issues"
+ ewarn "Not all patches are applied, let me know if others should be considered too"
+ ewarn
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ # The pre_build_checks are all about compilation resources, no need to run it for a binpkg
+ pre_build_checks
+
+ # We haven't massaged any CFLAGS yet, so we want to do this before we force CC/CXX to prevent warnings.
+ local want_lto="false"
+ tc-is-lto && want_lto="true"
+
+ # The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
+ # We'll set these to clang here then use llvm-utils functions to very explicitly set these
+ # to a sane value.
+ # This is effectively the 'force-clang' path if GCC support is re-added.
+ if use !bundled-toolchain; then
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+
+ # Forcing clang; respect llvm_slot_x to enable selection of impl via LLVM_COMPAT
+ AR=llvm-ar
+ CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
+ NM=llvm-nm
+ CC="${CHOST}-clang-${LLVM_SLOT}"
+ CXX="${CHOST}-clang++-${LLVM_SLOT}"
+ fi
+
+ # LTO in Chromium means LLVM ThinLTO, if GCC support is re-added
+ # We'll need to handle that here too.
+ use_lto="false"
+ local lto_usable="true"
+ if [[ "$want_lto" == "true" ]]; then
+ if use arm64 && [[ "${LLVM_SLOT}" -lt 22 ]]; then
+ einfo "LTO is broken with LLVM 21 on arm64, ignoring CFLAGS."
+ lto_usable="false"
+ else
+ use_lto="true"
+ fi
+ # We can rely on GN to do this for us; without this builds
+ # take significantly longer with LTO enabled.
+ filter-lto
+ fi
+
+ if [[ "$use_lto" == "false" ]] && use official && [[ "$lto_usable" == "true" ]]; then
+ einfo "USE=official selected and LTO not detected."
+ einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
+ einfo "and to be consistent with the upstream \"official\" build optimisations."
+ fi
+
+ if [[ "$use_lto" == "false" ]] && use test; then
+ die "Tests require CFI which requires LTO"
+ fi
+
+ export use_lto
+
+ if tc-is-cross-compiler; then
+ use pgo && die "The pgo USE flag cannot be used when cross-compiling"
+ CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
+ fi
+
+ # Sanity checks for development convenience
+ if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
+ die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
+ fi
+
+ # Sometimes, when adding a new LLVM slot, devs (me) forget to install an appropriate lld.
+ if tc-ld-is-lld; then
+ local lld_ver=$(ld.lld --version | awk '{split($2,a,"."); print a[1]}' || die "Failed to check lld version")
+ if [[ ${lld_ver} -lt ${LLVM_SLOT} ]]; then
+ die "Your lld version (${lld_ver}) is too old for the selected LLVM slot (${LLVM_SLOT}). Please install a newer lld or select an older LLVM slot."
+ fi
+ fi
+ fi
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_unpack() {
+ # # Here be dragons!
+ # local XCLD="--exclude=chromium-${PV/_*}/third_party/instrumented_libs \
+ # --exclude=chromium-${PV/_*}/third_party/llvm \
+ # --exclude=chromium-${PV/_*}/third_party/llvm-build \
+ # --exclude=chromium-${PV/_*}/third_party/node/linux \
+ # --exclude=chromium-${PV/_*}/third_party/rust-src \
+ # --exclude=chromium-${PV/_*}/third_party/rust-toolchain \
+ # --exclude=chromium-${PV/_*}/build/linux/debian_bullseye_i386-sysroot \
+ # --exclude=chromium-${PV/_*}/build/linux/debian_bullseye_amd64-sysroot \
+ # --exclude=chromium-${PV/_*}/third_party/angle/third_party/VK-GL-CTS \
+ # "
+
+ # if ! use libcxx ; then
+ # XCLD+=" --exclude=chromium-${PV/_*}/third_party/libc++"
+ # fi
+
+ # if ! use pgo ; then
+ # XCLD+=" --exclude=chromium-${PV/_*}/chrome/build/pgo_profiles"
+ # fi
+
+ # einfo "Unpacking chromium-${PV/_*}.tar.xz to ${WORKDIR}"
+ # # Gentoo tarball:
+ # # tar ${XCLD} -xf "${DISTDIR}/chromium-${PV/_*}-gentoo.tar.xz" -C "${WORKDIR}" || die
+ # tar ${XCLD} -xf "${DISTDIR}/chromium-${PV/_*}${LITE_TARBALL:+-lite}.tar.xz" -C "${WORKDIR}" || die
+
+ # unpack ${UGC_URL#*->}
+ # # unpack chromium-patches-${PATCH_V}.tar.bz2
+ # # Warned you!
+
+ unpack chromium-${PV/_*}-linux.tar.xz
+ unpack chromium-patches-${PATCH_V}.tar.bz2
+ # These should only be required when we're not using the official toolchain
+ if use !bundled-toolchain; then
+ unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
+ fi
+
+ if use test; then
+ # This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
+ local testfonts_dir="${WORKDIR}/chromium-${PV/_*}/third_party/test_fonts/test_fonts"
+ local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz"
+ einfo "Unpacking test fonts ..."
+ tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
+ fi
+
+ # We need to manually unpack this since M126 else we'd unpack one toolchain over the other.
+ # Since we're doing that anyway let's unpack to sensible locations to make symlink creation easier.
+ if use bundled-toolchain; then
+ einfo "Unpacking bundled Clang ..."
+ mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
+ tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
+ einfo "Unpacking bundled Rust ..."
+ local rust_dir="${WORKDIR}/rust-toolchain"
+ mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory"
+ tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" ||
+ die "Failed to unpack Rust"
+ fi
+
+ if use ppc64; then
+ unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
+ fi
+
+ # This is a dirty hack, but we need rollup to build successfully and it's proving to be challenging
+ # to build locally due to deps
+ unpack rollup-wasm-node-${ROLLUP_VER}.tgz
+
+ if use cromite; then
+ unpack cromite-${CROMITE_COMMIT_ID}.tar.gz
+ fi
+
+ unpack ${UGC_URL#*->}
+}
+
+remove_compiler_builtins() {
+ # We can't use the bundled compiler builtins with the system toolchain
+ # We used to `grep` then `sed`, but it was indirect. Combining the two into a single
+ # `awk` command is more efficient and lets us document the logic more clearly.
+
+ local pattern=' configs += [ "//build/config/clang:compiler_builtins" ]'
+ local target='build/config/compiler/BUILD.gn'
+
+ local tmpfile
+ tmpfile=$(mktemp) || die "Failed to create temporary file."
+
+ if awk -v pat="${pattern}" '
+ BEGIN {
+ match_found = 0
+ }
+
+ # If the delete countdown is active, decrement it and skip to the next line.
+ d > 0 { d--; next }
+
+ # If the current line matches the pattern...
+ $0 == pat {
+ match_found = 1 # ...set our flag to true.
+ d = 2 # Set delete counter for this line and the next two.
+ prev = "" # Clear the buffered previous line so it is not printed.
+ next
+ }
+
+ # For any other line, print the buffered previous line.
+ NR > 1 { print prev }
+
+ # Buffer the current line to be printed on the next cycle.
+ { prev = $0 }
+
+ END {
+ # Print the last line if it was not part of a deleted block.
+ if (d == 0) { print prev }
+
+ # If the pattern was never found, exit with a failure code.
+ if (match_found == 0) {
+ exit 1
+ }
+ }
+ ' "${target}" > "${tmpfile}"; then
+ # AWK SUCCEEDED (exit code 0): The pattern was found and edited.
+ # This is to avoid gawk's `-i inplace` option which users complain about.
+ mv "${tmpfile}" "${target}"
+ else
+ # AWK FAILED (exit code 1): The pattern was not found.
+ rm -f "${tmpfile}"
+ die "Awk patch failed: Pattern not found in ${target}."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # We'll fill this in as we go. Patches go in chromium-patches.
+ local PATCHES=()
+
+ rm "${WORKDIR}/chromium-patches-${PATCH_V}/common/cr131-unbundle-icu-target.patch"
+ if ver_test "${RUST_SLOT}" -ge "1.95.0"; then
+ rm "${WORKDIR}/chromium-patches-${PATCH_V}/rust/cr146-fix-botched-bytemuck-roll.patch"
+ sed -i '/SupportedLaneCount/d' third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/zeroable.rs || die
+ sed -i '/SupportedLaneCount/d' third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/pod.rs || die
+ fi
+
+ #cp -f ${WORKDIR}/chromium-patches-${PATCH_V}/*-compiler.patch "${T}/compiler.patch"
+ ##cp -f ${FILESDIR}/chromium-147-compiler.patch "${T}/compiler.patch"
+ #if ! use custom-cflags; then #See #25 #92
+ # sed -i '/default_stack_frames/Q' "${T}/compiler.patch" || die
+ #fi
+
+ PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}/common/" )
+ PATCHES+=( "${FILESDIR}/restore-x86-r4.patch" )
+
+ # https://issues.chromium.org/issues/442698344
+ # Unreleased fontconfig changed magic numbers and google have rolled to this version
+ if has_version "<=media-libs/fontconfig-2.17.1"; then
+ PATCHES+=( "${FILESDIR}/chromium-142-work-with-old-fontconfig.patch" )
+ fi
+
+ if use bundled-toolchain; then
+ # We need to symlink the toolchain into the expected location
+ einfo "Symlinking Clang toolchain to expected location ..."
+ mkdir -p third_party/llvm-build/ || die "Failed to create llvm-build directory"
+ # the 'Chromium Linux Tarballs' seem to already have 'Release+Asserts/{lib,bin}'; not sure if this is an
+ # upstream change - we're using the same scripts to build, theoretically. We'll still attempt to create
+ # llvm-build, but we'll rm Release+Asserts and symlink directly.
+ if [[ -d third_party/llvm-build/Release+Asserts ]]; then
+ rm -r third_party/llvm-build/Release+Asserts || die "Failed to remove third_party/llvm-build/Release+Asserts"
+ fi
+ ln -s "${WORKDIR}"/clang third_party/llvm-build/Release+Asserts || die "Failed to bundle Clang"
+ einfo "Symlinking Rust toolchain to expected location ..."
+ # As above, so below
+ if [[ -d third_party/rust-toolchain ]]; then
+ rm -r third_party/rust-toolchain || die "Failed to remove third_party/rust-toolchain"
+ fi
+ ln -s "${WORKDIR}"/rust-toolchain third_party/rust-toolchain || die "Failed to bundle rust"
+ cp "${WORKDIR}"/rust-toolchain/VERSION \
+ "${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version"
+ else
+ # We don't need our toolchain patches if we're using the official toolchain
+
+ # Copium patches go here.
+ PATCHES+=(
+ "${WORKDIR}/copium/cr143-libsync-__BEGIN_DECLS.patch"
+ "${WORKDIR}/copium/cr149-unbundle-minizip-undo-unicode.patch"
+ )
+
+ # Automate conditional application of chromium-patches
+ # The directory structure is expected to be something like:
+ # chromium-patches-145/
+ # ├── toolchain/
+ # │ ├── cr123-foo.patch
+ # │ └── cr135-bar.patch
+ # ├── llvm/
+ # │ ├── cr144-baz.patch
+ # │ └── lt-23/
+ # │ └── cr145-bleeding-edge-llvm-feature.patch
+ # Where `lt-23` means "apply this patch if the LLVM version is less than 23".
+ # Only categories in `slot_map` will be checked for version constraints.
+ shopt -s nullglob
+ local -A slot_map=( [llvm]="${LLVM_SLOT}" [rust]="${RUST_SLOT}" )
+
+ for category in "${WORKDIR}/chromium-patches-${PATCH_V}"/*/; do
+ local category_name="${category%/}"
+ category_name="${category_name##*/}"
+
+ # Skip arch-specific categories
+ if [[ "${category_name}" == "ppc64le" ]]; then
+ use ppc64 || continue
+ fi
+
+ # We applied common patches above, no need to apply them again here
+ [[ "${category_name}" == "common" ]] && continue
+
+ # Unconditional patches for this category
+ local category_patches=( "${category}"*.patch )
+ [[ ${#category_patches[@]} -gt 0 ]] && PATCHES+=( "${category}" )
+
+ # Version-constrained subdirectories (e.g., llvm/lt-23/)
+ for constraint_dir in "${category}"*/; do
+ local dir_name="${constraint_dir%/}"
+ dir_name="${dir_name##*/}"
+ if [[ "${dir_name}" =~ ^lt-(.*)$ && -v slot_map[${category_name}] ]]; then
+ ver_test "${slot_map[${category_name}]}" -lt "${BASH_REMATCH[1]}" &&
+ PATCHES+=( "${constraint_dir}" )
+ fi
+ done
+ done
+
+ shopt -u nullglob
+
+ # Strictly speaking this doesn't need to be gated (no bundled toolchain for ppc64); it keeps the logic together
+ if use ppc64; then
+ local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches"
+ # patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304)
+ local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch"
+ local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch"
+ # Apply the OpenPOWER patches (check for page size and isa 3.0)
+ openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" |
+ grep -v "${isa_3_patch}" || die) )
+ for patch in "${openpower_patches[@]}"; do
+ PATCHES+=( "${patchset_dir}/${patch}" )
+ done
+ if [[ $(getconf PAGESIZE) == 65536 ]]; then
+ PATCHES+=( "${patchset_dir}/${page_size_patch}" )
+ fi
+ # We use vsx3 as a proxy for 'want isa3.0' (POWER9)
+ if use cpu_flags_ppc_vsx3 ; then
+ PATCHES+=( "${patchset_dir}/${isa_3_patch}" )
+ fi
+ fi
+
+ remove_compiler_builtins
+
+ # We can't rely on the eselect'd Rust to actually include rustfmt, so we'll point to the selected slot specifically.
+ local suffix=""
+ if [[ "${RUST_TYPE}" == "binary" ]]; then
+ suffix="-bin-${RUST_SLOT}"
+ else
+ suffix="-${RUST_SLOT}"
+ fi
+ sed -i "s|/bin/rustfmt|/bin/rustfmt${suffix}|g" build/rust/rust_bindgen_generator.gni ||
+ die "Failed to update rustfmt path"
+
+ fi
+
+ # Do this before we apply patches since (e.g.) ppc64 needs to patch rollup and it's easier in ${S}
+ einfo "Moving rollup wasm-node package into place ..."
+ mkdir -p third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
+ die "Failed to create node_modules/@rollup/wasm-node"
+ mv "${WORKDIR}"/package/* third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
+ die "Failed to move rollup package"
+
+ if [ ! -z "${CHROMIUM_COMMITS[*]}" ]; then
+ # for i in "${CHROMIUM_COMMITS[@]}"; do
+ for i in "${!CHROMIUM_COMMITS[@]}"; do
+ if [[ ${CHROMIUM_COMMITS[$i]} =~ webrtc ]]; then
+ patch_prefix="webrtc"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ angle ]]; then
+ patch_prefix="angle"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ quiche ]]; then
+ patch_prefix="quiche"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ dawn ]]; then
+ patch_prefix="dawn"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ perfetto ]]; then
+ patch_prefix="perfetto"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ ink ]]; then
+ patch_prefix="ink"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ vulkan-utility-libraries ]]; then
+ patch_prefix="vulkan-utility-libraries"
+ elif [[ ${CHROMIUM_COMMITS[$i]} =~ ruy ]]; then
+ patch_prefix="ruy"
+ else
+ patch_prefix="chromium"
+ fi
+ pushd "${CHROMIUM_COMMITS[$i]}" > /dev/null || die
+ if [[ $i = -* ]]; then
+ einfo "Reverting ${patch_prefix}-${i/-}.patch"
+ git_wrapper apply -R --exclude="*unittest.cc" --exclude="DEPS" \
+ -p1 < "${DISTDIR}/${patch_prefix}-${i/-}.patch"
+ else
+ einfo "Applying ${patch_prefix}-${i/-}.patch"
+ git_wrapper apply --exclude="*unittest.cc" --exclude="DEPS" \
+ -p1 < "${DISTDIR}/${patch_prefix}-${i/-}.patch"
+ fi
+ popd > /dev/null || die
+ done
+ fi
+
+ if ! use bluetooth ; then
+ PATCHES+=(
+ "${FILESDIR}/disable-bluez-r7.patch"
+ )
+ fi
+
+ if use convert-dict ; then
+ PATCHES+=(
+ "${FILESDIR}/chromium-ucf-dict-utility-r3.patch"
+ )
+ fi
+
+ if ! use libcxx ; then
+ PATCHES+=(
+ "${FILESDIR}/fix-wayland-oncecallback-copy.patch"
+ )
+ fi
+
+ if use system-ffmpeg; then
+ PATCHES+=(
+ "${FILESDIR}/chromium-141-opus-mp3.patch"
+ "${FILESDIR}/chromium-135-hevc.patch"
+ )
+ sed -i "\!AVFMT_FLAG_NOH264PARSE!d" media/filters/ffmpeg_glue.cc || die
+ ewarn "You need to expose \"av_stream_get_first_dts\" in ffmpeg via user patch"
+ fi
+
+ if use system-av1; then
+ PATCHES+=(
+ "${FILESDIR}/chromium-system-av1.patch"
+ )
+ fi
+
+ if use system-libvpx; then
+ PATCHES+=(
+ "${FILESDIR}/chromium-system-libvpx.patch"
+ )
+ fi
+
+ if use system-openjpeg ; then
+ PATCHES+=(
+ "${FILESDIR}/chromium-system-openjpeg-r4.patch"
+ )
+ fi
+
+ # if use x86 ; then
+ # #* Fixes a segfault in transport_security_state_generator
+ # PATCHES+=(
+ # "${FILESDIR}/fix-segfault-x86.patch"
+ # )
+ # fi
+
+ # Testing all patches when NODIE is defined
+ if [ ! -z "${NODIE}" ]; then
+ for i in "${PATCHES[@]}"; do
+ eapply_wrapper "$i"
+ done
+ nonfatal eapply_user
+ else
+ default
+ fi
+
+ if use cromite ; then
+ BR_PA_PATH="${WORKDIR}/cromite-${CROMITE_COMMIT_ID}/build/patches"
+
+ sed -i '/b\/components\/components_strings\.grd/,+10d' "${BR_PA_PATH}/Add-cromite-flags-support.patch" || die
+ sed -i '/b\/chrome\/android\/java\/res\/xml\/privacy_preferences\.xml/,+13d' "${BR_PA_PATH}/Add-cromite-flags-support.patch" || die
+ sed -i '/b\/android_webview\/support_library\/java\/src\/org\/chromium\/support_lib_glue/,+11d' "${BR_PA_PATH}/Client-hints-overrides.patch" || die
+ sed -i '/webapps_strings.grdp" \/>/{s++webapps_strings.grdp" /><part file="cromite_components_strings_grd/placeholder.txt"/>+;h};${x;/./{x;q0};x;q1}' \
+ components/components_strings.grd || die
+
+ sed -i 's/absl::/std::/' "${BR_PA_PATH}/Add-a-proxy-configuration-page.patch" || die
+
+ filterdiff -p1 "${BR_PA_PATH}/JIT-site-settings.patch" --exclude="content/browser/renderer_host/render_process_host_impl.cc" \
+ > "${BR_PA_PATH}/JIT-site-settings.patch1"
+ mv -f "${BR_PA_PATH}/JIT-site-settings.patch1" "${BR_PA_PATH}/JIT-site-settings.patch"
+
+ BROMITE_PATCHES=(
+ "${BR_PA_PATH}/bromite-build-utils.patch"
+ "${BR_PA_PATH}/Battery-API-return-nothing.patch"
+ "${BR_PA_PATH}/Multiple-fingerprinting-mitigations.patch"
+ "${BR_PA_PATH}/Add-flag-to-configure-maximum-connections-per-host.patch"
+ "${BR_PA_PATH}/Add-a-proxy-configuration-page.patch"
+ "${BR_PA_PATH}/Enable-StrictOriginIsolation-and-SitePerProcess.patch"
+ "${BR_PA_PATH}/Disable-requests-for-single-word-Omnibar-searches.patch"
+ "${BR_PA_PATH}/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch"
+ "${BR_PA_PATH}/Client-hints-overrides.patch"
+ "${BR_PA_PATH}/Disable-idle-detection.patch"
+ "${BR_PA_PATH}/Disable-TLS-resumption.patch"
+ "${BR_PA_PATH}/Remove-navigator.connection-info.patch"
+
+ "${BR_PA_PATH}/AudioBuffer-AnalyserNode-fp-mitigations.patch"
+ "${BR_PA_PATH}/Fonts-fingerprinting-mitigation.patch"
+ "${BR_PA_PATH}/Content-settings-infrastructure.patch"
+ "${BR_PA_PATH}/Add-autoplay-site-setting.patch"
+ "${BR_PA_PATH}/Site-setting-for-images.patch"
+ "${BR_PA_PATH}/JIT-site-settings.patch"
+ "${BR_PA_PATH}/Add-webGL-site-setting.patch"
+ "${BR_PA_PATH}/Add-webRTC-site-settings.patch"
+ "${BR_PA_PATH}/Show-site-settings-for-cookies-javascript-and-ads.patch"
+ "${BR_PA_PATH}/Viewport-Protection-flag.patch"
+ "${BR_PA_PATH}/Revert-remove-allowscript-content-setting-secondary-url.patch"
+ "${BR_PA_PATH}/Timezone-customization.patch"
+ "${BR_PA_PATH}/Disable-speechSynthesis-getVoices-API.patch"
+ "${BR_PA_PATH}/Remove-support-for-device-memory-and-cpu-recovery.patch"
+ "${BR_PA_PATH}/Disable-Feeback-Collector.patch"
+ "${BR_PA_PATH}/Disable-remote-altsvc-for-h3-connections.patch"
+ "${BR_PA_PATH}/Add-cromite-flags-support.patch"
+ "${BR_PA_PATH}/Enables-deactivation-of-the-js-debugger-statement.patch"
+ )
+ for i in "${BROMITE_PATCHES[@]}"; do
+ if [[ "$i" =~ "Add-autoplay-site-setting.patch" ]] ||
+ [[ "$i" =~ "JIT-site-settings.patch" ]] ||
+ [[ "$i" =~ "Site-setting-for-images.patch" ]]; then
+ einfo "Git binary patch: ${i##*/}"
+ git_wrapper apply -p1 < "$i"
+ else
+ filter_wrapper "$i" --exclude="chrome/android/*"
+ fi
+ done
+
+ #! conflicting patches
+ sed -i '/browser_features.cc/,+17d' \
+ "${UGC_WD}/patches/extra/ungoogled-chromium/add-flag-to-clear-data-on-exit.patch" || die
+ sed -i 's$} // namespace features$BASE_FEATURE(kClearDataOnExit, "ClearDataOnExit", base::FEATURE_DISABLED_BY_DEFAULT);}$' \
+ chrome/browser/browser_features.cc || die
+ sed -i 's$} // namespace features$BASE_DECLARE_FEATURE(kClearDataOnExit);}$' \
+ chrome/browser/browser_features.h || die
+ sed -i 's$kChromeUIAboutHost,$kChromeUIAboutHost,"ungoogled-first-run",$' \
+ chrome/common/webui_url_constants.cc || die
+ sed -i '/chrome\/common\/webui_url_constants.cc/Q' \
+ "${UGC_WD}/patches/extra/ungoogled-chromium/first-run-page.patch" || die
+
+ #! normalise paths in py
+ sed -i 's$os.path.dirname(include_file)$os.path.abspath(os.path.dirname(include_file))$' \
+ build/bromite/gyp/cpp_bromite_include.py || die
+ fi
+
+ # if [[ ${LLVM_SLOT} == "19" ]]; then
+ # # Upstream now hard depend on a feature that was added in LLVM 20.1, but we don't want to stabilise that yet.
+ # # Do the temp file shuffle in case someone is using something other than `gawk`
+ # {
+ # awk '/config\("clang_warning_suppression"\) \{/ { print $0 " }"; sub(/clang/, "xclang"); print; next }
+ # { print }' build/config/compiler/BUILD.gn > "${T}/build.gn" && \
+ # mv "${T}/build.gn" build/config/compiler/BUILD.gn
+ # } || die "Unable to disable warning suppression"
+ # fi
+
+ ## Not included in -lite tarballs, but we should check for it anyway.
+ #if [[ -f third_party/node/linux/node-linux-x64/bin/node ]]; then
+ # rm third_party/node/linux/node-linux-x64/bin/node || die
+ #else
+ # mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ #fi
+ #ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ cp "${FILESDIR}/libusb.gn" build/linux/unbundle || die
+ sed -i '/^REPLACEMENTS.*$/{s++REPLACEMENTS = {"libusb":"third_party/libusb/BUILD.gn",+;h};${x;/./{x;q0};x;q1}' \
+ build/linux/unbundle/replace_gn_files.py || die
+ sed -i '/^.*deps.*third_party\/jsoncpp.*$/{s++public_deps \+= [ "//third_party/jsoncpp" ]+;h};${x;/./{x;q0};x;q1}' \
+ third_party/webrtc/rtc_base/BUILD.gn || die
+
+ if use override-data-dir; then
+ sed -i '/"chromium";/{s++"ungoogled-chromium";+;h};${x;/./{x;q0};x;q1}' \
+ chrome/common/chrome_paths_linux.cc || die
+ fi
+
+ if use system-abseil-cpp; then
+ eapply_wrapper "${FILESDIR}/chromium-147-system-abseil.patch"
+
+ #! SFINAE mangling incompatibility between clang and gcc:
+ #! https://github.com/llvm/llvm-project/issues/85656
+ #! gcc: _ZN4absl12lts_202601074CordC1INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELi0EEEOT_
+ #! clang: _ZN4absl12lts_202601074CordC1INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr3std7is_sameIT_S8_EE5valueEiE4typeELi0EEEOSA_
+ #! So, either this:
+ eapply_wrapper "${FILESDIR}/chromium-141-system-abseil-cord.patch"
+ #! or build with -fclang-abi-compat=17
+
+ # cp -f /usr/include/absl/base/options.h third_party/abseil-cpp/absl/base/options.h
+ # sed -i '/^#define ABSL_OPTION_USE_STD_ORDERING.*$/{s++#define ABSL_OPTION_USE_STD_ORDERING 1+;h};${x;/./{x;q0};x;q1}' \
+ # third_party/abseil-cpp/absl/base/options.h || die
+ fi
+
+ #* Applying UGC PRs here
+ if [ ! -z "${UGC_PR_COMMITS[*]}" ]; then
+ pushd "${UGC_WD}" >/dev/null
+ for i in "${UGC_PR_COMMITS[@]}"; do
+ eapply_wrapper "${DISTDIR}/${PN}-$i.patch"
+ done
+ popd >/dev/null
+ fi
+
+ # From here we adapt ungoogled-chromium's patches to our needs
+ local ugc_pruning_list="${UGC_WD}/pruning.list"
+ local ugc_patch_series="${UGC_WD}/patches/series"
+ local ugc_substitution_list="${UGC_WD}/domain_substitution.list"
+
+ local ugc_unneeded=(
+ # GN bootstrap
+ extra/debian/gn/parallel
+ # following Gentoo's Chromium
+ core/ungoogled-chromium/build-with-wasm-rollup
+ )
+
+ if use cromite ; then
+ einfo "Using fingerprinting patches from Cromite instead"
+ ugc_unneeded+=(
+ extra/bromite/fingerprinting-flags-client-rects-and-measuretext
+ extra/bromite/flag-max-connections-per-host
+ extra/bromite/flag-fingerprinting-canvas-image-data-noise
+ extra/ungoogled-chromium/add-components-ungoogled
+ extra/ungoogled-chromium/remove-pac-size-limit
+ )
+ fi
+
+ # #* Temporary fix
+ # sed -i "\!ios/!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/icu/!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/libjpeg_turbo/!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/snappy/!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/closure_compiler/!d" "${ugc_pruning_list}" || die
+
+ # #* Didn't unpack them at the first place
+ # sed -i "\!build/linux/debian_bullseye_i386-sysroot!d" "${ugc_pruning_list}" || die
+ # sed -i "\!build/linux/debian_bullseye_amd64-sysroot!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/llvm-build!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/node/linux!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/rust-src!d" "${ugc_pruning_list}" || die
+ # sed -i "\!third_party/rust-toolchain!d" "${ugc_pruning_list}" || die
+ # if ! use libcxx ; then
+ # sed -i "\!third_party/libc!d" "${ugc_pruning_list}" || die
+ # fi
+ sed -i "s|debug('files|error('files|" \
+ "${UGC_WD}/utils/prune_binaries.py" || die
+ sed -i "\!third_party/node/linux!d" \
+ "${UGC_WD}/utils/prune_binaries.py" || die
+
+ local ugc_p ugc_dir
+ for p in "${ugc_unneeded[@]}"; do
+ einfo "Removing ${p}.patch"
+ sed -i "\!${p}.patch!d" "${ugc_patch_series}" || die
+ done
+
+ if [ ! -z "${UGC_SKIP_PATCHES}" ]; then
+ for p in ${UGC_SKIP_PATCHES}; do
+ ewarn "Removing ${p}"
+ sed -i "\!${p}!d" "${ugc_patch_series}" || die
+ done
+ fi
+
+ if [ ! -z "${UGC_KEEP_BINARIES}" ]; then
+ for p in ${UGC_KEEP_BINARIES}; do
+ ewarn "Keeping binary ${p}"
+ sed -i "\!${p}!d" "${ugc_pruning_list}" || die
+ done
+ fi
+
+ if [ ! -z "${UGC_SKIP_SUBSTITUTION}" ]; then
+ for p in ${UGC_SKIP_SUBSTITUTION}; do
+ ewarn "No substitutions in ${p}"
+ sed -i "\!${p}!d" "${ugc_substitution_list}" || die
+ done
+ fi
+
+ ebegin "Pruning binaries"
+ "${UGC_WD}/utils/prune_binaries.py" -q . "${UGC_WD}/pruning.list"
+ eend $? || die
+
+ ebegin "Applying ungoogled-chromium patches"
+ "${UGC_WD}/utils/patches.py" -q apply . "${UGC_WD}/patches"
+ eend $? || die
+
+ ebegin "Applying domain substitution"
+ "${UGC_WD}/utils/domain_substitution.py" -q apply -r "${UGC_WD}/domain_regex.list" -f "${UGC_WD}/domain_substitution.list" .
+ eend $? || die
+
+ # Sanity check esbuild version before we start removing files.
+ # We _could_ patch the version check out - in theory esbuild upstream are being super conservative after
+ # arch(AUR) packaged an `esbuild` binary and set ESBUILD_BINARY_PATH=/usr/bin/esbuild, causing much breakage,
+ # but this is fine too and exactly matches what upstream are expecting.
+ # https://github.com/evanw/esbuild/issues/2894
+ local esbuild_js="${S}/third_party/devtools-frontend/src/node_modules/esbuild/lib/main.js"
+ local found
+ found=$(awk -F'"' '/if \(binaryVersion !==/ {print $2}' "${esbuild_js}")
+ if [[ "${found}" != "${ESBUILD_VER}" ]]; then
+ die "esbuild version mismatch: expected ${ESBUILD_VER}, found ${found}"
+ fi
+
+ elog "Removing bundled binaries from source tree ..."
+ # Purge bundled ELF files: These are non-portable and will cause issues if used instead of system versions.
+ # Use `--wasm` to also remove WebAssembly binaries, if desired - they're portable so shouldn't break builds.
+ ${EPYTHON} "${FILESDIR}/bin-finder.py" --elf "${S}" | awk '{print $1}' | xargs rm -f ||
+ die "Failed to remove bundled binaries"
+
+ # And now we restore any that we actually need, from the host system
+ local esbuild_path="${S}/third_party/devtools-frontend/src/third_party/esbuild"
+ local -A restore_list=(
+ ["/usr/bin/esbuild-${ESBUILD_VER}"]="${esbuild_path}/esbuild"
+ ["/usr/bin/gperf"]="${S}/third_party/gperf/cipd/bin/gperf"
+ ["/usr/bin/node"]="${S}/third_party/node/linux/node-linux-x64/bin/node"
+ )
+
+ for src in "${!restore_list[@]}"; do
+ dst="${restore_list[${src}]}"
+ if [[ -f "${src}" ]]; then
+ einfo "Symlinking ${src} ..."
+ # Make sure the parent dir exists; some tarballs don't include (e.g.) node's bindir
+ mkdir -p "$(dirname "${dst}")" || die "Failed to create directory for ${dst}"
+ ln -s "${src}" "${dst}" || die "Failed to symlink ${dst} from ${src}"
+ if [[ ! -L "${dst}" || "$(readlink -f "${dst}")" != "${src}" ]]; then
+ die "Symlink verification failed for ${dst} -> ${src}"
+ fi
+ else
+ die "Expected to find ${src} to restore ${dst}, but it does not exist."
+ fi
+ done
+
+ # adjust python interpreter version
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+ # Use the system copy of hwdata's usb.ids; upstream is woefully out of date (2015!)
+ sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
+ -i services/device/public/cpp/usb/BUILD.gn || die "Failed to set system usb.ids path"
+
+ # remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party'
+ # whitelist matches use the right-most matching path component, so we need to whitelist from that point down.
+ local keeplibs=(
+ base/third_party/cityhash
+ )
+ use system-double-conversion || keeplibs+=(
+ base/third_party/double_conversion
+ )
+ keeplibs+=(
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ )
+ use cromite && keeplibs+=(
+ cromite_flags/third_party
+ )
+ keeplibs+=(
+ net/third_party/mozilla_security_manager
+ net/third_party/quic
+ net/third_party/uri_template
+ )
+ use system-abseil-cpp || keeplibs+=(
+ third_party/abseil-cpp
+ )
+ keeplibs+=(
+ third_party/angle
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/ceval
+ )
+ use nvidia || keeplibs+=(
+ third_party/angle/src/third_party/libXNVCtrl
+ )
+ keeplibs+=(
+ third_party/angle/src/third_party/volk
+ third_party/anonymous_tokens
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/bidimapper
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ )
+ use system-brotli || keeplibs+=(
+ third_party/brotli
+ )
+ keeplibs+=(
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4-4.9.3
+ third_party/catapult/third_party/html5lib-1.1
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/third_party/typ
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ )
+ use libcxx && keeplibs+=(
+ third_party/compiler-rt
+ )
+ keeplibs+=(
+ third_party/content_analysis_sdk
+ third_party/cpuinfo
+ third_party/crabbyavif
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ )
+ use system-crc32c || keeplibs+=(
+ third_party/crc32c
+ )
+ keeplibs+=(
+ third_party/cros_system_api
+ third_party/d3
+ third_party/dawn
+ third_party/dawn/third_party/gn/webgpu-cts
+ third_party/dawn/third_party/OpenGL-Registry
+ third_party/dawn/third_party/renderdoc
+ third_party/dawn/third_party/webgpu-headers
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
+ third_party/devtools-frontend/src/front_end/third_party/diff
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/json5
+ third_party/devtools-frontend/src/front_end/third_party/legacy-javascript
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/mitt
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/parsel-js
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/rxjs
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/urlpattern-polyfill
+ third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec
+ third_party/devtools-frontend/src/front_end/third_party/third-party-web
+ third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/web-vitals
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/dragonbox
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fast_float
+ third_party/fdlibm
+ third_party/federated_compute/chromium/fcp/confidentialcompute
+ third_party/federated_compute/src/fcp/base
+ third_party/federated_compute/src/fcp/confidentialcompute
+ third_party/federated_compute/src/fcp/protos/confidentialcompute
+ third_party/federated_compute/src/fcp/protos/federatedcompute
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/fp16
+ third_party/freetype
+ third_party/fusejs
+ third_party/fxdiv
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/gperf # We symlink system gperf, but this will purge the symlink since we tidy up afterwards.
+ third_party/highway
+ third_party/hunspell
+ third_party/hyphenation-patterns
+ third_party/ink/src/ink/brush
+ third_party/ink/src/ink/color
+ third_party/ink/src/ink/geometry
+ third_party/ink/src/ink/rendering
+ third_party/ink/src/ink/rendering/skia/common_internal
+ third_party/ink/src/ink/rendering/skia/native
+ third_party/ink/src/ink/rendering/skia/native/internal
+ third_party/ink/src/ink/strokes
+ third_party/ink/src/ink/types
+ third_party/inspector_protocol
+ third_party/ipcz
+ third_party/jinja2
+ )
+ use system-jsoncpp || keeplibs+=(
+ third_party/jsoncpp
+ )
+ keeplibs+=(
+ third_party/khronos
+ third_party/lens_server_proto
+ third_party/leveldatabase
+ third_party/libaddressinput
+ )
+ use libcxx && keeplibs+=(
+ third_party/libc++
+ )
+ keeplibs+=(
+ third_party/libdrm
+ third_party/libgav1
+ third_party/libjingle
+ third_party/libpfm4
+ third_party/libphonenumber
+ third_party/libpng
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libtess2/libtess2
+ third_party/libtess2/src/Include
+ third_party/libtess2/src/Source
+ third_party/liburlpattern
+ )
+ use system-libusb || keeplibs+=(
+ third_party/libusb
+ )
+ keeplibs+=(
+ third_party/libva_protected_content
+ )
+ use system-libvpx || keeplibs+=(
+ third_party/libvpx
+ third_party/libvpx/source/libvpx/third_party/x86inc
+ )
+ keeplibs+=(
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/libzip
+ third_party/lit
+ )
+ use libcxx && keeplibs+=(
+ third_party/llvm-libc
+ third_party/llvm-libc/src/shared/
+ )
+ keeplibs+=(
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/material_color_utilities
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/ml_dtypes
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/oak/chromium/proto
+ third_party/oak/chromium/proto/attestation
+ third_party/omnibox_proto
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ )
+ use system-openjpeg || keeplibs+=(
+ third_party/pdfium/third_party/libopenjpeg
+ )
+ keeplibs+=(
+ third_party/pdfium/third_party/libtiff
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/android
+ third_party/perfetto/protos/third_party/chromium
+ third_party/perfetto/protos/third_party/pprof
+ third_party/perfetto/protos/third_party/primes
+ third_party/perfetto/protos/third_party/simpleperf
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private_membership
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/utf8_range
+ third_party/pthreadpool
+ third_party/puffin
+ third_party/pyjson5
+ third_party/pyyaml
+ third_party/rapidhash
+ third_party/readability
+ third_party/rnnoise
+ third_party/rust
+ third_party/ruy
+ third_party/s2cellid
+ third_party/search_engines_data
+ third_party/securemessage
+ third_party/selenium-atoms
+ third_party/sentencepiece
+ third_party/sentencepiece/src/third_party/darts_clone
+ third_party/shell-encryption
+ third_party/simdutf
+ third_party/simplejson
+ third_party/six
+ third_party/skia
+ third_party/skia/include/third_party/vulkan
+ third_party/smhasher
+ )
+ use system-snappy || keeplibs+=(
+ third_party/snappy
+ )
+ keeplibs+=(
+ third_party/spirv-headers
+ third_party/spirv-tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
+ third_party/swiftshader/third_party/SPIRV-Tools
+ third_party/swiftshader/third_party/subzero
+ third_party/tensorflow_models
+ third_party/tensorflow-text
+ third_party/tflite
+ third_party/tflite/src/third_party/fft2d
+ third_party/tflite/src/third_party/xla/third_party/tsl
+ third_party/tflite/src/third_party/xla/xla/tsl/framework
+ third_party/tflite/src/third_party/xla/xla/tsl/lib/random
+ third_party/tflite/src/third_party/xla/xla/tsl/platform
+ third_party/tflite/src/third_party/xla/xla/tsl/protobuf
+ third_party/tflite/src/third_party/xla/xla/tsl/util
+ third_party/ukey2
+ third_party/utf
+ third_party/vulkan
+ third_party/wayland
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/widevine
+ )
+ use system-woff2 || keeplibs+=(
+ third_party/woff2
+ )
+ keeplibs+=(
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/xnnpack
+ third_party/zlib/google
+ third_party/zxcvbn-cpp
+ url/third_party/mozilla
+ v8/third_party/glibc
+ v8/third_party/inspector_protocol
+ v8/third_party/rapidhash-v8
+ v8/third_party/siphash
+ v8/third_party/utf8-decoder
+ v8/third_party/v8
+ v8/third_party/valgrind
+
+ # gyp -> gn leftovers
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ )
+
+ if use test; then
+ keeplibs+=(
+ third_party/breakpad/breakpad/src/processor
+ third_party/fuzztest
+ third_party/google_benchmark/src/include/benchmark
+ third_party/google_benchmark/src/src
+ third_party/test_fonts
+ third_party/test_fonts/fontconfig
+ third_party/test_fonts/test_fonts
+ )
+ fi
+
+ # USE=system-*
+ if ! use system-harfbuzz; then
+ keeplibs+=( third_party/harfbuzz )
+ fi
+
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+
+ if ! use system-zstd; then
+ keeplibs+=( third_party/zstd )
+ fi
+
+ if ! use system-av1; then
+ keeplibs+=(
+ third_party/dav1d
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ )
+ fi
+
+ if use libcxx; then
+ keeplibs+=(
+ third_party/libc++
+ third_party/llvm-libc
+ )
+ fi
+
+ if ! use system-openh264; then
+ keeplibs+=( third_party/openh264 )
+ fi
+
+ if ! use system-re2; then
+ keeplibs+=( third_party/re2 )
+ fi
+
+ # Arch-specific
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ # requires git and clang, bug #832803
+ # Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
+ # and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
+ # since we're not in a git repo
+ sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
+ generate_gni.sh || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+
+ pushd third_party/ffmpeg >/dev/null || die
+ cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
+ cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
+ popd >/dev/null || die
+ fi
+
+ # Sanity check keeplibs, on major version bumps it is often necessary to update this list
+ # and this enables us to hit them all at once.
+ # There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
+ whitelist_libs=(
+ net/third_party/quic
+ third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
+ third_party/libjingle
+ third_party/mesa
+ third_party/skia/third_party/vulkan
+ third_party/vulkan
+ )
+ local not_found_libs=()
+ for lib in "${keeplibs[@]}"; do
+ if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
+ not_found_libs+=( "${lib}" )
+ fi
+ done
+
+ if [[ ${#not_found_libs[@]} -gt 0 ]]; then
+ ewarn "The following \`keeplibs\` directories were not found in the source tree:"
+ for lib in "${not_found_libs[@]}"; do
+ ewarn " ${lib}"
+ done
+ fi
+
+ keeplibs+=( third_party/ungoogled )
+
+ # Remove most bundled libraries. Some are still needed.
+ einfo "Unbundling third-party libraries ..."
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+ # Interferes with our bundled clang path; we don't want stripped binaries anyway.
+ sed -i -e 's|${clang_base_path}/bin/llvm-strip|/bin/true|g' \
+ -e 's|${clang_base_path}/bin/llvm-objcopy|/bin/true|g' \
+ build/linux/strip_binary.gni || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ libjpeg
+ libwebp
+ libxml
+ libxslt
+ zlib
+ )
+ if use system-abseil-cpp; then
+ gn_system_libraries+=(
+ absl_algorithm
+ absl_base
+ absl_cleanup
+ absl_container
+ absl_crc
+ absl_debugging
+ absl_flags
+ absl_functional
+ absl_hash
+ absl_log
+ absl_log_internal
+ absl_memory
+ absl_meta
+ absl_numeric
+ absl_random
+ absl_status
+ absl_strings
+ absl_synchronization
+ absl_time
+ absl_types
+ absl_utility
+ )
+ fi
+ if use system-brotli; then
+ gn_system_libraries+=( brotli )
+ fi
+ if use system-crc32c; then
+ gn_system_libraries+=( crc32c )
+ fi
+ if use system-double-conversion; then
+ gn_system_libraries+=( double-conversion )
+ fi
+ if use system-woff2; then
+ gn_system_libraries+=( woff2 )
+ fi
+ if use nvidia; then
+ gn_system_libraries+=( libXNVCtrl )
+ fi
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-jsoncpp; then
+ gn_system_libraries+=( jsoncpp )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-zstd; then
+ gn_system_libraries+=( zstd )
+ fi
+ if use system-av1; then
+ gn_system_libraries+=( dav1d libaom )
+ fi
+ if use system-libusb; then
+ gn_system_libraries+=( libusb )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ use system-openh264 && gn_system_libraries+=(
+ openh264
+ )
+ use system-re2 && gn_system_libraries+=(
+ re2
+ )
+ use system-snappy && gn_system_libraries+=(
+ snappy
+ )
+
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" ||
+ die "Failed to replace GN files for system libraries"
+
+ # TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file
+ # drop the last line, then append the freetype line and a new curly brace to end the block
+ local freetype_gni="build/config/freetype/freetype.gni"
+ sed -i -e '$d' ${freetype_gni} || die
+ echo " enable_freetype = true" >> ${freetype_gni} || die
+ echo "}" >> ${freetype_gni} || die
+
+ if use !custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ filter-flags "-g*"
+ # 949123: Several multimedia components explicitly build with specific CFLAGS and
+ # use runtime detection to enable optimisations; unfortunately any of our CFLAGS are suffixed
+ # to the end of the command line, which causes build failures.
+ fi
+ # Since M150 `skia` will begin breaking for x86_64 due to compilation of `avx512` code paths;
+ # we need to filter these for all arches.
+ filter-flags "-march*" "-mtune*" "-mcpu*"
+
+ # We don't use the same clang version as upstream, and with -Werror
+ # we need to make sure that we don't get superfluous warnings.
+ append-flags -Wno-unknown-warning-option
+ if tc-is-cross-compiler; then # can you cross-compile with the bundled toolchain?
+ export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
+ export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
+ fi
+
+ # Start building our GN options
+ local myconf_gn=() # Tip: strings must be quoted, bools or numbers are fine
+
+ if use !bundled-toolchain; then
+ # We already forced the "correct" clang via pkg_setup
+
+ if tc-is-cross-compiler; then
+ CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
+ CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
+ BUILD_AR=${AR}
+ BUILD_CC=${CC}
+ BUILD_CXX=${CXX}
+ BUILD_NM=${NM}
+ fi
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ strip-unsupported-flags
+ append-ldflags -Wl,--undefined-version # https://bugs.gentoo.org/918897#c32
+
+ myconf_gn+=(
+ "is_clang=true"
+ "clang_use_chrome_plugins=false"
+ "use_clang_modules=false" # M141 enables this for the linux platform by default.
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ # From M127 we need to provide a location for libclang and the clang resource dir so that bindgen can find them
+ "bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
+ "bindgen_clang_resource_dir=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\""
+ "bindgen_extra_clang_args=[\"-I${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\"]"
+ "clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
+ "rust_bindgen_root=\"${EPREFIX}/usr/\""
+ "rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ "rustc_version=\"${RUST_SLOT}\""
+ )
+
+ if tc-ld-is-mold; then
+ myconf_gn+=(
+ "use_mold=true"
+ "use_lld=false"
+ "linker_path=\"${EPREFIX}/usr/bin/mold\""
+ )
+ else
+ myconf_gn+=( "use_lld=true" )
+ fi
+
+ if [[ ${LLVM_SLOT} -lt 23 ]]; then
+ # Workaround for -fsanitize-ignore-for-ubsan-feature (added in LLVM 23)
+ myconf_gn+=( 'clang_has_ubsan_feature_ignore=false' )
+ fi
+
+ if ! tc-is-cross-compiler; then
+ myconf_gn+=( 'host_toolchain="//build/toolchain/linux/unbundle:default"' )
+ else
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=(
+ 'host_toolchain="//build/toolchain/linux/unbundle:host"'
+ 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"'
+ "host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
+ "pkg_config=\"$(tc-getPKG_CONFIG)\""
+ )
+
+ # setup cups-config, build system only uses --libs option
+ if use cups; then
+ mkdir "${T}/cups-config" || die
+ cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
+ export PATH="${PATH}:${T}/cups-config"
+ fi
+
+ # Don't inherit PKG_CONFIG_PATH from environment
+ local -x PKG_CONFIG_PATH=
+ fi
+
+ fi # !bundled-toolchain
+
+ local myarch
+ myarch="$(tc-arch)"
+ case ${myarch} in
+ amd64)
+ # Bug 530248, 544702, 546984, 853646.
+ use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
+ -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+ myconf_gn+=( 'target_cpu="x64"' )
+ ;;
+ x86)
+ # Bug 530248, 544702, 546984, 853646.
+ use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
+ -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
+ myconf_gn+=( 'target_cpu="x86"' )
+ ;;
+ arm64)
+ myconf_gn+=( 'target_cpu="arm64"' )
+ ;;
+ ppc64)
+ myconf_gn+=( 'target_cpu="ppc64"' )
+ ;;
+ *)
+ die "Failed to determine target arch, got '${myarch}'."
+ ;;
+ esac
+
+ # Common options
+
+ myconf_gn+=(
+ # Disable code formating of generated files
+ "blink_enable_generated_code_formatting=false"
+ # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+ # DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+ "dcheck_always_on=$(usex debug true false)"
+ "dcheck_is_configurable=$(usex debug true false)"
+ # Chromium builds provided by Linux distros should disable the testing config
+ "disable_fieldtrial_testing_config=true"
+ # Custom patch: Enable building Chromium as individual channels (e.g. stable, beta, dev) that
+ # use different profile directories, desktop entries, etc. This enables slotting the ebuild.
+ "enable_channel_branding=true"
+ # 131 began laying the groundwork for replacing freetype with
+ # "Rust-based Fontations set of libraries plus Skia path rendering"
+ # We now need to opt-in
+ "enable_freetype=true"
+ "enable_hangout_services_extension=$(usex hangouts true false)"
+ # Don't need nocompile checks and GN crashes with our config (verify with modern GN)
+ "enable_nocompile_tests=false"
+ # pseudolocales are only used for testing
+ "enable_pseudolocales=false"
+ "enable_widevine=$(usex widevine true false)"
+ # Disable fatal linker warnings, bug 506268.
+ "fatal_linker_warnings=false"
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ "is_component_build=false"
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ "is_debug=false"
+ "is_official_build=$(usex official true false)"
+ # Enable ozone wayland and/or headless support
+ "ozone_auto_platforms=false"
+ "ozone_platform_headless=true"
+ # Enables building without non-free unRAR licence
+ "safe_browsing_use_unrar=false"
+ # "thin_lto_enable_optimizations=${use_lto}"
+ "treat_warnings_as_errors=false"
+ # Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi)
+ # instead of the system C++ library for C++ standard library support.
+ # default: true, but let's be explicit (forced since 120 ; USE removed 127).
+ "use_custom_libcxx=true"
+ # Enable ozone wayland and/or headless support
+ "use_ozone=true"
+ # The sysroot is the oldest debian image that chromium supports, we don't need it
+ "use_sysroot=false"
+ # See dependency logic in third_party/BUILD.gn
+ "use_system_harfbuzz=$(usex system-harfbuzz true false)"
+ # "use_thin_lto=${use_lto}"
+ # Only enabled for clang, but gcc has endian macros too
+ "v8_use_libm_trig_functions=true"
+ )
+
+ myconf_gn+=( "enable_iterator_debugging=$(usex debug true false)" )
+
+ if use debug; then
+ myconf_gn+=(
+ "symbol_level=2"
+ "blink_symbol_level=2"
+ "v8_symbol_level=2"
+ )
+ else
+ myconf_gn+=(
+ "symbol_level=0"
+ "blink_symbol_level=0"
+ "v8_symbol_level=0"
+ )
+ fi
+
+ if use bindist ; then
+ myconf_gn+=(
+ # If this is set to false Chromium won't be able to load any proprietary codecs
+ # even if provided with an ffmpeg capable of h264/aac decoding
+ "proprietary_codecs=true"
+ 'ffmpeg_branding="Chrome"'
+ # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
+ "is_component_ffmpeg=true"
+ )
+ else
+ myconf_gn+=(
+ "proprietary_codecs=$(usex proprietary-codecs true false)"
+ "ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
+ )
+ fi
+
+ if use headless; then
+ myconf_gn+=(
+ "enable_print_preview=false"
+ "enable_remoting=false"
+ 'ozone_platform="headless"'
+ "rtc_use_pipewire=false"
+ "use_alsa=false"
+ "use_cups=false"
+ "use_gio=false"
+ "use_glib=false"
+ "use_gtk=false"
+ "use_kerberos=false"
+ "use_libpci=false"
+ "use_pangocairo=false"
+ "use_pulseaudio=false"
+ "use_qt5=false"
+ "use_qt6=false"
+ "use_udev=false"
+ "use_vaapi=false"
+ "use_xkbcommon=false"
+ )
+ else
+ myconf_gn+=(
+ "gtk_version=$(usex gtk4 4 3)"
+ # link pulseaudio directly (DT_NEEDED) instead of using dlopen.
+ # helps with automated detection of ABI mismatches and prevents silent errors.
+ "link_pulseaudio=$(usex pulseaudio true false)"
+ "ozone_platform_wayland=$(usex wayland true false)"
+ "ozone_platform_x11=$(usex X true false)"
+ "ozone_platform=\"$(usex wayland wayland x11)\""
+ "rtc_use_pipewire=$(usex screencast true false)"
+ "use_cups=$(usex cups true false)"
+ "use_kerberos=$(usex kerberos true false)"
+ "use_pulseaudio=$(usex pulseaudio true false)"
+ "use_qt5=false"
+ "use_system_libffi=$(usex wayland true false)"
+ "use_system_minigbm=true"
+ "use_vaapi=$(usex vaapi true false)"
+ "use_xkbcommon=true"
+ )
+ if use qt6; then
+ local cbuild_libdir
+ cbuild_libdir="$(get_libdir)"
+ if tc-is-cross-compiler; then
+ # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+ cbuild_libdir="$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)"
+ cbuild_libdir="${cbuild_libdir:2}"
+ cbuild_libdir="${cbuild_libdir/% }"
+ fi
+ myconf_gn+=(
+ "use_qt6=true"
+ "moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
+ )
+ else
+ myconf_gn+=( "use_qt6=false" )
+ fi
+ fi
+
+ # Explicitly disable ICU data file support for system-icu/headless builds.
+ if use system-icu || use headless; then
+ myconf_gn+=( "icu_use_data_file=false" )
+ fi
+
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Don't add symbols to build
+ myconf_gn+=( "symbol_level=0" )
+ fi
+
+ if use pgo; then
+ myconf_gn+=(
+ "chrome_pgo_phase=2"
+ "v8_enable_builtins_optimization=true"
+ )
+ else
+ myconf_gn+=( "chrome_pgo_phase=0" )
+ fi
+
+ # Odds and ends
+
+ # skipping typecheck is only supported on amd64, bug #876157
+ if ! use amd64; then
+ myconf_gn+=( "devtools_skip_typecheck=false" )
+ fi
+
+ # Disable external code space for V8 for ppc64. It is disabled for ppc64
+ # by default, but cross-compiling on amd64 enables it again.
+ if tc-is-cross-compiler && use ppc64; then
+ myconf_gn+=( "v8_enable_external_code_space=false" )
+ fi
+
+ # This determines whether or not GN uses the bundled libcxx
+ if use libcxx; then
+ myconf_gn+=( "use_custom_libcxx=true" )
+ else
+ myconf_gn+=(
+ "use_custom_libcxx=false"
+ "use_llvm_libatomic=false"
+ )
+ append-cppflags -U_GLIBCXX_ASSERTIONS #See #318
+ fi
+
+ myconf_gn+=( "use_bluez=$(usex bluetooth true false)" )
+
+ myconf_gn+=( "is_cfi=$(usex cfi true false)" )
+
+ if use cfi; then
+ myconf_gn+=(
+ "use_cfi_icall=true"
+ "use_cfi_cast=true"
+ )
+ fi
+
+ myconf_gn+=(
+ "optimize_webui=$(usex optimize-webui true false)"
+ "use_system_freetype=$(usex system-harfbuzz true false)"
+ "use_system_libopenjpeg2=$(usex system-openjpeg true false)"
+ "enable_pdf=true"
+ "use_system_lcms2=true"
+ "enable_print_preview=true"
+ "use_thin_lto=$(usex thinlto true false)"
+ "thin_lto_enable_optimizations=$(usex optimize-thinlto true false)"
+
+ # Ungoogled flags
+ "build_with_tflite_lib=false"
+ "enable_mdns=false"
+ "enable_mse_mpeg2ts_stream_parser=$(usex proprietary-codecs true false)"
+ "enable_remoting=false"
+ "enable_reporting=false"
+ "enable_service_discovery=false"
+ "exclude_unwind_tables=true"
+ "google_api_key=\"\""
+ "google_default_client_id=\"\""
+ "google_default_client_secret=\"\""
+ "safe_browsing_mode=0"
+ "use_official_google_api_keys=false"
+ "use_unofficial_version_number=false"
+
+ # "enable_swiftshader=false"
+
+ # Additional flags
+ # "perfetto_use_system_zlib=true"
+ # "use_system_zlib=true"
+ # "use_system_libjpeg=true"
+ # "rtc_build_examples=false"
+ # "enable_chromium_prelude=false"
+ # "enable_updater=false"
+ # "enable_update_notifications=false"
+ # "enable_constraints=false"
+ # "rtc_rusty_base64=false"
+ # "v8_enable_temporal_support=false"
+ # "media_use_symphonia=false"
+ # "pdf_enable_rust_png=false"
+ # "skia_use_libpng_encode=true"
+ # "skia_use_libpng_decode=true"
+ # "skia_use_rust_png_decode=false"
+ # "skia_use_rust_png_encode=false"
+ # "enable_jxl_decoder=false"
+ )
+
+ if use amd64 || use arm64; then
+ myconf_gn+=(
+ "v8_drumbrake_bounds_checks=true"
+ # "v8_enable_drumbrake=true"
+ )
+ fi
+
+ if use thinlto; then
+ # We need to change the default value of import-instr-limit in
+ # LLVM to limit the text size increase. The default value is
+ # 100, and we change it to 30 to reduce the text size increase
+ # from 25% to 10%. The performance number of page_cycler is the
+ # same on two of the thinLTO configurations, we got 1% slowdown
+ # on speedometer when changing import-instr-limit from 100 to 30.
+ # append-ldflags "-Wl,-plugin-opt,-import-instr-limit=30"
+ sed -i '/import_instr_limit = 5/{s++import_instr_limit = 30+;h};${x;/./{x;q0};x;q1}' \
+ build/config/compiler/BUILD.gn || die
+
+ append-ldflags "-Wl,--thinlto-jobs=$(makeopts_jobs)"
+ fi
+
+ # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn)
+ append-cflags -Wno-builtin-macro-redefined
+ append-cxxflags -Wno-builtin-macro-redefined
+ append-cppflags "-D__DATE__= -D__TIME__= -D__TIMESTAMP__="
+
+ local flags
+ einfo "Building with the following compiler settings:"
+ for flags in C{C,XX} AR NM RANLIB {C,CXX,CPP,LD}FLAGS \
+ EXTRA_GN UGC_{SKIP_{PATCHES,SUBSTITUTION},KEEP_BINARIES} ; do
+ einfo " ${flags} = \"${!flags}\""
+ done
+
+ # Since we build from tarballs, we need to set the channel here so that it can be used in the build.
+ export CHROME_VERSION_EXTRA="${SLOT}"
+
+ einfo "Configuring Chromium ..."
+ set -- gn gen --args="${myconf_gn[*]}${EXTRA_GN:+ ${EXTRA_GN}}" out/Release
+ echo "$@"
+ "$@" || die "Failed to configure Chromium"
+
+ # The "if" below should not be executed unless testing
+ if [ ! -z "${NODIE}" ]; then
+ # List all args
+ # gn args --list out/Release
+
+ # Quick compiler check
+ eninja -C out/Release protoc torque
+ fi
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # I hate doing this but upstream Rust have yet to come up with a better solution for
+ # us poor packagers. Required for Split LTO units, which are required for CFI.
+ export RUSTC_BOOTSTRAP=1
+
+ # Don't inherit PYTHONPATH from environment, bug #789021, #812689
+ local -x PYTHONPATH=
+
+ # Build mksnapshot and pax-mark it.
+ if use pax-kernel; then
+ local x
+ for x in mksnapshot v8_context_snapshot_generator code_cache_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+ fi
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chrome_sandbox $(use test && echo "base_unittests")
+
+ pax-mark m out/Release/chrome
+
+ # This codepath does minimal patching, so we're at the mercy of upstream
+ # CFLAGS. This is fine - we're not intending to force this on users
+ # and we do a lot of flag 'management' anyway.
+ if use bundled-toolchain; then
+ QA_FLAGS_IGNORED="
+ usr/lib64/chromium-browser/chrome
+ usr/lib64/chromium-browser/chrome-sandbox
+ usr/lib64/chromium-browser/chromedriver
+ usr/lib64/chromium-browser/chrome_crashpad_handler
+ usr/lib64/chromium-browser/libEGL.so
+ usr/lib64/chromium-browser/libGLESv2.so
+ usr/lib64/chromium-browser/libVkICD_mock_icd.so
+ usr/lib64/chromium-browser/libVkLayer_khronos_validation.so
+ usr/lib64/chromium-browser/libqt6_shim.so
+ usr/lib64/chromium-browser/libvk_swiftshader.so
+ usr/lib64/chromium-browser/libvulkan.so.1
+ "
+ fi
+
+ use convert-dict && eninja -C out/Release convert_dict
+
+ use enable-driver && eninja -C out/Release chromedriver
+ #use suid && eninja -C out/Release chrome_sandbox
+
+ use enable-driver && mv out/Release/chromedriver{.unstripped,}
+
+ rm -f out/Release/locales/*.pak.info || die
+
+ # Generate support files (desktop file, manpage, etc.) See: #684550 #706786 #968958
+ ${EPYTHON} "${FILESDIR}/generate-support-files.py" \
+ --installdir "/usr/$(get_libdir)/ungoogled-chromium-browser" \
+ --channel "${SLOT}" ||
+ die "Failed to generate support files"
+}
+
+src_test() {
+ # Tests may be flaky with usersandbox, and the test runner executes significantly faster without.
+ # If you seem to be excluding too many tests for a particular milestone: comment them out, reboot, and
+ # run the tests again. If that doesn't help, try FEATURES="-usersandbox" and send it because obviously the
+ # chromium gods are not smiling upon you today. Do some runtime testing, obvs.
+ local skip_tests=(
+ # Wildcard exclusions (if all tests in a test suite are broken)
+ 'AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/*'
+ 'AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/*'
+ 'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 crashes entire test runner with usersandbox.
+ 'CheckExitCodeAfterSignalHandlerDeathTest.*'
+ 'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*'
+ 'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
+ 'ToolsSanityTest.BadVirtualCall*'
+ # requires en-us locale
+ SysStrings.SysNativeMBAndWide
+ SysStrings.SysNativeMBToWide
+ SysStrings.SysWideToNativeMB
+ # Specific test cases
+ CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention
+ FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
+ HistogramTesterTest.PumaTestUniqueSample
+ ImmediateCrashTest.ExpectedOpcodeSequence # M150
+ PathServiceTest.CheckedGetFailure
+ PlatformThreadTest.CanChangeThreadType
+ RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144.
+ RustLogIntegrationTest.CheckAllSeverity
+ StackCanary.ChangingStackCanaryCrashesOnReturn
+ StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
+ TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
+ ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
+ )
+ local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
+ # test-launcher-bot-mode enables parallelism and plain output
+ # Check individual tests with --gtest_filter=<test you want> --single-process-tests
+ ./out/Release/base_unittests --test-launcher-bot-mode \
+ --test-launcher-jobs="$(get_makeopts_jobs)" \
+ --gtest_filter="${test_filter}" || die "Tests failed!"
+}
+
+src_install() {
+ local browser_suffix
+ if [[ "${SLOT}" != "stable" ]]; then
+ browser_suffix="-${SLOT}"
+ else
+ browser_suffix=""
+ fi
+ local CHROMIUM_HOME="/usr/$(get_libdir)/ungoogled-chromium-browser${browser_suffix}"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ #newexe out/Release/chrome_sandbox chrome-sandbox
+ #fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+
+ use enable-driver && doexe out/Release/chromedriver
+
+ #* https://github.com/ungoogled-software/ungoogled-chromium/pull/3563
+ doexe out/Release/chrome_crashpad_handler
+
+ if use convert-dict; then
+ newexe "${FILESDIR}/update-dicts.sh" update-dicts.sh
+ doexe out/Release/convert_dict
+ fi
+
+ ozone_auto_session () {
+ use X && use wayland && ! use headless && echo true || echo false
+ }
+
+ cat <<- EOF > "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
+ #!/bin/bash
+ # Wrapper to launch slotted Chromium via the chromium-common launcher script.
+ export CHROME_DESKTOP="ungoogled-chromium-browser${browser_suffix}.desktop"
+ export CHROME_EXEC_NAME="ungoogled-chromium-browser${browser_suffix}"
+ export CHROME_VERSION_EXTRA="${SLOT}"
+ export CHROME_WRAPPER="\$(readlink -f "\$0")"
+ export OZONE_AUTO_SESSION=$(ozone_auto_session)
+
+ exec /usr/libexec/chromium/chromium-launcher.sh "\$@"
+ EOF
+
+ chmod 755 "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/ungoogled-chromium-browser${browser_suffix}
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/ungoogled-chromium${browser_suffix}
+
+ use enable-driver && dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/ungoogled-chromedriver${browser_suffix}
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd > /dev/null || die
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins -r out/Release/hyphen-data
+
+ if use bindist; then
+ # We built libffmpeg as a component library, but we can't distribute it
+ # with proprietary codec support. Remove it and make a symlink to the requested
+ # system library.
+ rm -f out/Release/libffmpeg.so \
+ || die "Failed to remove bundled libffmpeg.so (with proprietary codecs)"
+ # symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium].
+ einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..."
+ dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \
+ /usr/$(get_libdir)/ungoogled-chromium-browser/libffmpeg.so
+ fi
+
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so out/Release/*.so.[0-9])
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu && ! use headless; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ #doins -r out/Release/MEIPreload
+
+ # Install vk_swiftshader_icd.json; bug #827861
+ doins out/Release/vk_swiftshader_icd.json
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ use widevine && dosym WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so "${CHROMIUM_HOME}/libwidevinecdm.so"
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ ungoogled-chromium-browser${browser_suffix}.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/ungoogled-chromium-browser${browser_suffix}.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ doins out/Release/ungoogled-chromium-browser${browser_suffix}.xml
+
+ # Install AppStream metadata
+ insinto /usr/share/appdata
+ doins out/Release/ungoogled-chromium-browser${browser_suffix}.appdata.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/ungoogled-chromium-browser${browser_suffix}.1
+ dosym ungoogled-chromium-browser${browser_suffix}.1 /usr/share/man/man1/ungoogled-chromium${browser_suffix}.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+
+ if use !headless && [[ -z "${REPLACING_VERSIONS}" ]]; then
+ if use vaapi; then
+ elog "Hardware-accelerated video decoding configuration:"
+ elog
+ elog "Chromium supports multiple backends for hardware acceleration. To enable one,"
+ elog " Add to CHROMIUM_FLAGS in /etc/chromium/default:"
+ elog
+ elog "1. VA-API with OpenGL (recommended for most users):"
+ elog " --enable-features=AcceleratedVideoDecodeLinuxGL"
+ elog " VaapiVideoDecoder may need to be added as well, but try without first."
+ elog
+ if use wayland; then
+ elog "2. Enhanced Wayland/EGL performance:"
+ elog " --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL"
+ elog
+ fi
+ if use X; then
+ elog "$(usex wayland "3" "2"). VA-API with Vulkan:"
+ elog " --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE"
+ elog
+ if use wayland; then
+ elog " NOTE: Vulkan acceleration requires X11 and will not work under Wayland sessions."
+ elog " Use OpenGL-based acceleration instead when running under Wayland."
+ elog
+ fi
+ fi
+ elog "Additional options:"
+ elog " To enable hardware-accelerated encoding (if supported)"
+ elog " add 'AcceleratedVideoEncoder' to your feature list"
+ elog " VaapiIgnoreDriverChecks bypasses driver compatibility checks"
+ elog " (may be needed for newer/unsupported hardware)"
+ elog
+ else
+ elog "This Chromium build was compiled without VA-API support, which provides"
+ elog "hardware-accelerated video decoding."
+ fi
+ if use screencast; then
+ elog "Screencast is disabled by default at runtime. Either enable it"
+ elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+ elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ elog
+ elog "Additional setup may be required for screencasting to work."
+ elog "See issue: https://github.com/PF4Public/gentoo-overlay/issues/314"
+ fi
+ if use gtk4; then
+ elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
+ elog "behaviour you need to pass --gtk-version=4, e.g. by adding it"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ fi
+ if use widevine; then
+ elog "widevine requires binary plugins, which are distributed separately"
+ elog "Make sure you have www-plugins/chrome-binary-plugins installed"
+ fi
+ fi
+
+ if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then
+ ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd"
+ ewarn "indicates that the Gentoo handbook was not followed to completion."
+ ewarn ""
+ ewarn "Chromium is known to behave unpredictably with this system configuration;"
+ ewarn "please complete the configuration of this system before logging any bugs."
+ fi
+
+ # Stable slot doesn't change profile directory, and it's vanishingly unlikely that users will downgrade from dev.
+ if [[ -n "${REPLACING_VERSIONS}" ]]; then
+ local replacing_non_slotted=false
+ # there could be more than one PVR
+ for version in ${REPLACING_VERSIONS}; do
+ if ver_test "${version}" -le "145.0.7632.116"; then
+ replacing_non_slotted=true
+ break
+ fi
+ done
+ if ${replacing_non_slotted}; then
+ ewarn "This version of Chromium has replaced a non-slotted ebuild."
+ if [[ ${SLOT} != "stable" ]]; then
+ ewarn "This channel has its own profile directory, so your existing profile will not be used."
+ ewarn "To use your existing profile, either copy or move it to the new location."
+ ewarn "See https://wiki.gentoo.org/wiki/Chromium#Profile_Directories for more information."
+ ewarn ""
+ fi
+ ewarn "Any existing Progressive Web Apps (PWAs) will need to be reinstalled,"
+ ewarn "or have the path in the desktop files updated to point to the new wrapper script."
+ fi
+ fi
+}
+
+eapply_wrapper () {
+ if [ ! -z "${NODIE}" ]; then
+ nonfatal eapply "$@"
+ else
+ eapply "$@"
+ fi
+}
+
+git_wrapper () {
+ if [ ! -z "${NODIE}" ]; then
+ git "$@"
+ else
+ git "$@" || die
+ fi
+}
+
+filter_wrapper () {
+ einfo "Applying ${i##*/}"
+ #? fuzz factor of 3 is OK?
+ if [ ! -z "${NODIE}" ]; then
+ filterdiff -p1 "${@:2}" < "$1" | patch -F 3 -p1
+ else
+ filterdiff -p1 "${@:2}" < "$1" | patch -F 3 -p1 || die
+ fi
+}
diff --git a/x11-libs/gtk+/gtk+-2.24.33-r3.ebuild b/x11-libs/gtk+/gtk+-2.24.33-r3.ebuild
index e60753fae99d..3050cf935f81 100644
--- a/x11-libs/gtk+/gtk+-2.24.33-r3.ebuild
+++ b/x11-libs/gtk+/gtk+-2.24.33-r3.ebuild
@@ -243,7 +243,7 @@ pkg_preinst() {
touch "${ED}${cache}" || die
fi
}
- multilib_parallel_foreach_abi multilib_pkg_preinst
+ multilib_foreach_abi multilib_pkg_preinst
}
pkg_postinst() {
@@ -253,7 +253,7 @@ pkg_postinst() {
gnome2_query_immodules_gtk2 \
|| die "Update immodules cache failed (for ${ABI})"
}
- multilib_parallel_foreach_abi multilib_pkg_postinst
+ multilib_foreach_abi multilib_pkg_postinst
set_gtk2_confdir
diff --git a/x11-libs/gtk+/gtk+-3.24.51.ebuild b/x11-libs/gtk+/gtk+-3.24.51.ebuild
index 9152fa3ad5b8..edfa19001e6f 100644
--- a/x11-libs/gtk+/gtk+-3.24.51.ebuild
+++ b/x11-libs/gtk+/gtk+-3.24.51.ebuild
@@ -179,7 +179,7 @@ pkg_preinst() {
touch "${ED}${cache}" || die
fi
}
- multilib_parallel_foreach_abi multilib_pkg_preinst
+ multilib_foreach_abi multilib_pkg_preinst
}
pkg_postinst() {
@@ -189,7 +189,7 @@ pkg_postinst() {
gnome2_query_immodules_gtk3 \
|| die "Update immodules cache failed (for ${ABI})"
}
- multilib_parallel_foreach_abi multilib_pkg_postinst
+ multilib_foreach_abi multilib_pkg_postinst
if ! has_version "app-text/evince"; then
elog "Please install app-text/evince for print preview functionality."
diff --git a/x11-libs/gtk+/gtk+-3.24.52.ebuild b/x11-libs/gtk+/gtk+-3.24.52.ebuild
index 68ee54a8b61c..c74c90053455 100644
--- a/x11-libs/gtk+/gtk+-3.24.52.ebuild
+++ b/x11-libs/gtk+/gtk+-3.24.52.ebuild
@@ -186,7 +186,7 @@ pkg_preinst() {
touch "${ED}${cache}" || die
fi
}
- multilib_parallel_foreach_abi multilib_pkg_preinst
+ multilib_foreach_abi multilib_pkg_preinst
}
pkg_postinst() {
@@ -196,7 +196,7 @@ pkg_postinst() {
gnome2_query_immodules_gtk3 \
|| die "Update immodules cache failed (for ${ABI})"
}
- multilib_parallel_foreach_abi multilib_pkg_postinst
+ multilib_foreach_abi multilib_pkg_postinst
if ! has_version "app-text/evince"; then
elog "Please install app-text/evince for print preview functionality."
diff --git a/x11-libs/libxcb/files/libxcb-1.17.0-unquoted-var.patch b/x11-libs/libxcb/files/libxcb-1.17.0-unquoted-var.patch
new file mode 100644
index 000000000000..b762e0980bbc
--- /dev/null
+++ b/x11-libs/libxcb/files/libxcb-1.17.0-unquoted-var.patch
@@ -0,0 +1,24 @@
+https://bugs.gentoo.org/979126
+
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -270,7 +270,7 @@
+
+ $(EXTSOURCES): c_client.py $(XCBPROTO_XCBINCLUDEDIR)/$(@:.c=.xml)
+ $(AM_V_GEN)$(PYTHON) $(srcdir)/c_client.py -c "$(PACKAGE_STRING)" -l "$(XORG_MAN_PAGE)" \
+- -s "$(LIB_MAN_SUFFIX)" -p $(XCBPROTO_XCBPYTHONDIR) \
++ -s "$(LIB_MAN_SUFFIX)" -p "$(XCBPROTO_XCBPYTHONDIR)" \
+ $(C_CLIENT_PY_EXTRA_ARGS) \
+ $(XCBPROTO_XCBINCLUDEDIR)/$(@:.c=.xml)
+
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -1423,7 +1423,7 @@
+
+ $(EXTSOURCES): c_client.py $(XCBPROTO_XCBINCLUDEDIR)/$(@:.c=.xml)
+ $(AM_V_GEN)$(PYTHON) $(srcdir)/c_client.py -c "$(PACKAGE_STRING)" -l "$(XORG_MAN_PAGE)" \
+- -s "$(LIB_MAN_SUFFIX)" -p $(XCBPROTO_XCBPYTHONDIR) \
++ -s "$(LIB_MAN_SUFFIX)" -p "$(XCBPROTO_XCBPYTHONDIR)" \
+ $(C_CLIENT_PY_EXTRA_ARGS) \
+ $(XCBPROTO_XCBINCLUDEDIR)/$(@:.c=.xml)
+
diff --git a/x11-libs/libxcb/libxcb-1.17.0.ebuild b/x11-libs/libxcb/libxcb-1.17.0.ebuild
index 035f4ea48279..d80ea3eeedb7 100644
--- a/x11-libs/libxcb/libxcb-1.17.0.ebuild
+++ b/x11-libs/libxcb/libxcb-1.17.0.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
@@ -37,6 +37,8 @@ BDEPEND="${PYTHON_DEPS}
test? ( dev-libs/libxslt )
"
+PATCHES=( "${FILESDIR}"/${PN}-1.17.0-unquoted-var.patch )
+
python_check_deps() {
python_has_version "${XCB_PROTO_DEP}[${PYTHON_USEDEP}]"
}
diff --git a/x11-libs/tslib/tslib-1.23-r1.ebuild b/x11-libs/tslib/tslib-1.23-r1.ebuild
index b4994471fdc3..f134e39c5c8e 100644
--- a/x11-libs/tslib/tslib-1.23-r1.ebuild
+++ b/x11-libs/tslib/tslib-1.23-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
@@ -58,5 +58,5 @@ src_configure() {
cmake_src_configure
}
- multilib_parallel_foreach_abi my_configure
+ multilib_foreach_abi my_configure
}
diff --git a/x11-misc/primus/primus-0.2-r4.ebuild b/x11-misc/primus/primus-0.2-r4.ebuild
index acd44b6182fd..01c139711c07 100644
--- a/x11-misc/primus/primus-0.2-r4.ebuild
+++ b/x11-misc/primus/primus-0.2-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -48,7 +48,7 @@ src_compile() {
mymake() {
emake LIBDIR=$(get_libdir)
}
- multilib_parallel_foreach_abi mymake
+ multilib_foreach_abi mymake
}
src_install() {
diff --git a/x11-misc/virtualgl/virtualgl-3.1.3.ebuild b/x11-misc/virtualgl/virtualgl-3.1.3.ebuild
index 89fef3628cc5..ba2a11f7dd48 100644
--- a/x11-misc/virtualgl/virtualgl-3.1.3.ebuild
+++ b/x11-misc/virtualgl/virtualgl-3.1.3.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
@@ -71,7 +71,7 @@ src_configure() {
)
cmake_src_configure
}
- multilib_parallel_foreach_abi abi_configure
+ multilib_foreach_abi abi_configure
}
src_install() {
diff --git a/x11-misc/virtualgl/virtualgl-3.1.4.ebuild b/x11-misc/virtualgl/virtualgl-3.1.4.ebuild
index 89fef3628cc5..ba2a11f7dd48 100644
--- a/x11-misc/virtualgl/virtualgl-3.1.4.ebuild
+++ b/x11-misc/virtualgl/virtualgl-3.1.4.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
@@ -71,7 +71,7 @@ src_configure() {
)
cmake_src_configure
}
- multilib_parallel_foreach_abi abi_configure
+ multilib_foreach_abi abi_configure
}
src_install() {