diff --git a/dev-python/itsdangerous/itsdangerous-2.2.0.ebuild b/dev-python/itsdangerous/itsdangerous-2.2.0.ebuild deleted file mode 100644 index b39be1545c69c..0000000000000 --- a/dev-python/itsdangerous/itsdangerous-2.2.0.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="Various helpers to pass trusted data to untrusted environments and back" -HOMEPAGE=" - https://palletsprojects.com/p/itsdangerous/ - https://github.com/pallets/itsdangerous/ - https://pypi.org/project/itsdangerous/ -" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" - -BDEPEND=" - test? ( - dev-python/freezegun[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest diff --git a/dev-python/jack-client/jack-client-0.5.5.ebuild b/dev-python/jack-client/jack-client-0.5.5.ebuild index 6f30a66340e6a..a036013e95e04 100644 --- a/dev-python/jack-client/jack-client-0.5.5.ebuild +++ b/dev-python/jack-client/jack-client-0.5.5.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{12..13} ) DISTUTILS_USE_PEP517=setuptools PYPI_NO_NORMALIZE=1 PYPI_PN="JACK-Client" @@ -34,6 +34,7 @@ RDEPEND="${BDEPEND} # sphinx_last_updated_by_git not in the tree yet #distutils_enable_sphinx doc dev-python/sphinx-last-updated-by-git +EPYTEST_PLUGINS=() distutils_enable_tests pytest python_test() { diff --git a/dev-python/jaraco-vcs/jaraco-vcs-2.4.1.ebuild b/dev-python/jaraco-vcs/jaraco-vcs-2.4.1.ebuild index cef73f50faa93..f1a191832cc4b 100644 --- a/dev-python/jaraco-vcs/jaraco-vcs-2.4.1.ebuild +++ b/dev-python/jaraco-vcs/jaraco-vcs-2.4.1.ebuild @@ -1,11 +1,11 @@ -# Copyright 2024-2025 Gentoo Authors +# Copyright 2024-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=( pypy3_11 python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..15} ) inherit distutils-r1 pypi @@ -30,19 +30,14 @@ RDEPEND=" " BDEPEND=" test? ( - dev-python/pytest-home[${PYTHON_USEDEP}] dev-vcs/git ) " +EPYTEST_PLUGINS=( "${PN}" pytest-home ) distutils_enable_tests pytest -python_test() { - local EPYTEST_DESELECT=( - # assumes running inside the git repo - jaraco/vcs/__init__.py::jaraco.vcs - ) - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -p home -p jaraco.vcs.fixtures -} +EPYTEST_DESELECT=( + # assumes running inside the git repo + jaraco/vcs/__init__.py::jaraco.vcs +) diff --git a/dev-python/jaraco-versioning/jaraco-versioning-1.1.0.ebuild b/dev-python/jaraco-versioning/jaraco-versioning-1.1.0.ebuild index f524eaf4b4483..16bec26288070 100644 --- a/dev-python/jaraco-versioning/jaraco-versioning-1.1.0.ebuild +++ b/dev-python/jaraco-versioning/jaraco-versioning-1.1.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 2024-2025 Gentoo Authors +# Copyright 2024-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools PYPI_NO_NORMALIZE=1 PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..15} ) inherit distutils-r1 pypi @@ -24,4 +24,10 @@ RDEPEND=" dev-python/packaging[${PYTHON_USEDEP}] " +EPYTEST_PLUGINS=() distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # repr() mismatch (pytest changes?) + jaraco/versioning.py::versioning.SummableVersion +) diff --git a/dev-python/jedi/Manifest b/dev-python/jedi/Manifest index 84e7519b7beb9..9eed22a4c1ba3 100644 --- a/dev-python/jedi/Manifest +++ b/dev-python/jedi/Manifest @@ -1,4 +1 @@ -DIST django-stubs-fd057010f6cbf176f57d1099e82be46d39b99cb9.tar.gz 183312 BLAKE2B a68f6139903f5001db994ee0d881f40ab74932e81c3e2c3a0c22dc56e6be681d0fb42ce837603b21e4d0d448ccb25884ef0f69039305f309e82603267cee9f6a SHA512 506322c132f94e6a1e88cdbde6027a566387731fa6ad59934f95c3511f49d90eff2a3138363811be648b096407d418cd1f801df0bc35b1e464ef181e4076ada1 -DIST jedi-0.19.2.gh.tar.gz 475890 BLAKE2B e68a6245b0887e50e97f490b15b3f21865250cb954fb7aaa825755c54489aab6543256a4941feb41570cf0cc747f929634e0323aad57a13c0f4273de2af0e3de SHA512 5146e804b7b1b9f9dff2e372c4e3384c15dc05643b399d0aaab797451e9ef43a84914cc5fd4b130c9b4a9d2eff5ab917b3956f4fc6b71394d8e6c8a39467a4ad DIST jedi-0.20.0.tar.gz 3119416 BLAKE2B a5e70e6e815b417ce22f518af384d26452695bcc3693505960aba5ed417fdf06f23e9d9d197b1b0aae17fd302c77fc3275390da3828767b395211c118b253970 SHA512 17775ab845b661dd3b93963b12055013a54314680d717087d49f64cb03332a5b5716dbfeb59e821aba34e2962c8bd01b86e8de881fb64dd31b374ef58b50ff00 -DIST typeshed-ae9d4f4b21bb5e1239816c301da7b1ea904b44c3.tar.gz 602044 BLAKE2B 53298918a7e9a1163e76d4c70ad2a2117ee90b49329aa82d82b2aaaeaf000c971872f83ed283af6dc4be068b813876760c8b1b4acb4131865572a4aed3ea9230 SHA512 b3b9da66b6c6e03e0b262b3262df31215a5e080468ca9ebf4332ed53d715cd3956db7067fad3ec267042ff704f81ac665c703ef2fd0c5b445d440bd8e52bf1aa diff --git a/dev-python/jedi/jedi-0.19.2.ebuild b/dev-python/jedi/jedi-0.19.2.ebuild deleted file mode 100644 index 632ee9d072100..0000000000000 --- a/dev-python/jedi/jedi-0.19.2.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 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) - -inherit distutils-r1 - -TYPESHED_P="typeshed-ae9d4f4b21bb5e1239816c301da7b1ea904b44c3" -DJANGO_STUBS_P="django-stubs-fd057010f6cbf176f57d1099e82be46d39b99cb9" -EGIT_COMMIT="82d1902f382ddac5b0e6647646b72f28a3181ec3" - -DESCRIPTION="Autocompletion library for Python" -HOMEPAGE=" - https://github.com/davidhalter/jedi/ - https://pypi.org/project/jedi/ -" -SRC_URI=" - https://github.com/davidhalter/jedi/archive/v${PV}.tar.gz - -> ${P}.gh.tar.gz - https://github.com/davidhalter/typeshed/archive/${TYPESHED_P#typeshed-}.tar.gz - -> ${TYPESHED_P}.tar.gz - https://github.com/davidhalter/django-stubs/archive/${DJANGO_STUBS_P#django-stubs-}.tar.gz - -> ${DJANGO_STUBS_P/v/}.tar.gz -" - -LICENSE=" - MIT - test? ( Apache-2.0 ) -" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" - -RDEPEND=" - =dev-python/parso-0.8.3[${PYTHON_USEDEP}] -" - -# RDEPEND needed because of an import jedi inside conf.py -distutils_enable_sphinx docs \ - dev-python/parso \ - dev-python/sphinx-rtd-theme -distutils_enable_tests pytest - -python_prepare_all() { - # upstream includes these as submodules ... - rmdir "${S}"/jedi/third_party/{django-stubs,typeshed} || die - mv "${WORKDIR}/${DJANGO_STUBS_P/v/}" \ - "${S}/jedi/third_party/django-stubs" || die - mv "${WORKDIR}/${TYPESHED_P}" \ - "${S}/jedi/third_party/typeshed" || die - - # test_complete_expanduser relies on $HOME not being empty - > "${HOME}"/somefile || die - - distutils-r1_python_prepare_all -} - -python_test() { - local EPYTEST_DESELECT=( - # fragile - test/test_speed.py - # assumes pristine virtualenv - test/test_inference/test_imports.py::test_duplicated_import - test/test_inference/test_imports.py::test_os_issues - ) - - case ${EPYTHON} in - pypy3.11) - EPYTEST_DESELECT+=( - 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 - ) - ;; - python3.14*) - EPYTEST_DESELECT+=( - # type annotation printing difference - test/test_inference/test_mixed.py::test_compiled_signature_annotation_string - # extra attributes in os - test/test_utils.py::TestSetupReadline::test_import - ) - ;; - esac - - # some plugin breaks case-insensitivity on completions - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - # django and pytest tests are very version dependent - epytest -o addopts= -k "not django and not pytest" -} diff --git a/dev-python/jq/Manifest b/dev-python/jq/Manifest index c3e78f03f4bfc..4ace8f2e6a198 100644 --- a/dev-python/jq/Manifest +++ b/dev-python/jq/Manifest @@ -1,4 +1 @@ -DIST jq.py-1.10.0.gh.tar.gz 2029466 BLAKE2B d7131950c06cdc0d81a6743d6af8cafa8b8c00b72df9d3ce4d7f8e75e7389f3d35e551edf3cd641d310a37d89471297974ee3e10cde6f0c1ae1e98bb4dedecf1 SHA512 31494408239c5b0eb943c720e76a4b8048c41f2a052b14d801f73845377976c2b4375d691c964f6179e1e38f4eda4b6da9d4fd3789c3a9e9200e4f8ed418d3e7 -DIST jq.py-1.11.0.gh.tar.gz 2029780 BLAKE2B 0ca4a4bcbef3c1537b41c8338d3d5c965ab2ebb38ff80a7148bc5a1c14913d96f025a90c49b4247bbe761712d6c3fb44715c823552b567323c7a39859f77442d SHA512 e1ae1220822023f80c6465dcb776e9d23c5a1b35e6431dd3f55b60ccb32ddc80d7a399811b374aa161eb4ccbf5ae99df1d58bbea2d53d9ec93b950e93f9730b5 DIST jq.py-1.12.0.gh.tar.gz 1964395 BLAKE2B 929e7f84d6fca914b8da67688c60a34588f807a4ee1b2cc0ede9ec13d036eef267dffc5521055f62362551d73f550babfdae3acf5832ea9d3f84125b457159ac SHA512 6bbdf055d9524e6ed48233611a283cd232b4601466b62f1e554aa7e8d4abcd1a7cfa5e41b085bd12a1562048ad01cc8b14ca268476a55f52f0b0570a4fe83c1d -DIST jq.py-1.8.0.gh.tar.gz 1954418 BLAKE2B e823ab01a7ce42abc542b58bb1f966e6447b85d66c7b72e8b0765a65f6ae510cf5c6045e14c802237360c2108f84428dc9b18a452e1334ba5ee709a4c835e5bd SHA512 83e9a7599518b5281f25954d5fc66de488678ef86982964bc04ae3739d4627220a9ec92570810f9cf235a8e5351284ac430053e6f826ca42f831d837b4750d83 diff --git a/dev-python/jq/jq-1.10.0.ebuild b/dev-python/jq/jq-1.10.0.ebuild deleted file mode 100644 index 8b2f0b2162394..0000000000000 --- a/dev-python/jq/jq-1.10.0.ebuild +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright 2021-2025 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_{11..14} ) - -inherit distutils-r1 - -MY_P="jq.py-${PV}" -DESCRIPTION="Python bindings for jq" -HOMEPAGE=" - https://github.com/mwilliamson/jq.py/ - https://pypi.org/project/jq/ -" -# pypi sdist is missing .pyx -SRC_URI=" - https://github.com/mwilliamson/jq.py/archive/${PV}.tar.gz - -> ${MY_P}.gh.tar.gz -" -S=${WORKDIR}/${MY_P} - -LICENSE="BSD-2" -SLOT="0" -KEYWORDS="amd64 ~arm64 ~x86" - -# Minimum versions of jq + onigurama are from setup.py's bundled versions -DEPEND=" - >=app-misc/jq-1.8.0:= - >=dev-libs/oniguruma-6.9.8:= -" -RDEPEND=" - ${DEPEND} -" -BDEPEND=" - dev-python/cython[${PYTHON_USEDEP}] -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -python_compile() { - local -x JQPY_USE_SYSTEM_LIBS=1 - - distutils-r1_python_compile -} diff --git a/dev-python/jq/jq-1.11.0.ebuild b/dev-python/jq/jq-1.11.0.ebuild deleted file mode 100644 index 8d4eec2bc780a..0000000000000 --- a/dev-python/jq/jq-1.11.0.ebuild +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright 2021-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_{11..14} ) - -inherit distutils-r1 - -MY_P="jq.py-${PV}" -DESCRIPTION="Python bindings for jq" -HOMEPAGE=" - https://github.com/mwilliamson/jq.py/ - https://pypi.org/project/jq/ -" -# pypi sdist is missing .pyx -SRC_URI=" - https://github.com/mwilliamson/jq.py/archive/${PV}.tar.gz - -> ${MY_P}.gh.tar.gz -" -S=${WORKDIR}/${MY_P} - -LICENSE="BSD-2" -SLOT="0" -KEYWORDS="amd64 arm64 ~x86" - -# Minimum versions of jq + onigurama are from setup.py's bundled versions -DEPEND=" - >=app-misc/jq-1.8.0:= - >=dev-libs/oniguruma-6.9.8:= -" -RDEPEND=" - ${DEPEND} -" -BDEPEND=" - dev-python/cython[${PYTHON_USEDEP}] -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -python_compile() { - local -x JQPY_USE_SYSTEM_LIBS=1 - - distutils-r1_python_compile -} diff --git a/dev-python/jq/jq-1.8.0.ebuild b/dev-python/jq/jq-1.8.0.ebuild deleted file mode 100644 index 5e205402f5676..0000000000000 --- a/dev-python/jq/jq-1.8.0.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 2021-2025 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_{11..14} ) - -inherit distutils-r1 - -MY_P="jq.py-${PV}" -DESCRIPTION="Python bindings for jq" -HOMEPAGE=" - https://github.com/mwilliamson/jq.py/ - https://pypi.org/project/jq/ -" -# pypi sdist is missing .pyx -SRC_URI=" - https://github.com/mwilliamson/jq.py/archive/${PV}.tar.gz - -> ${MY_P}.gh.tar.gz -" -S=${WORKDIR}/${MY_P} - -LICENSE="BSD-2" -SLOT="0" -KEYWORDS="amd64 ~arm64 x86" - -# Minimum versions of jq + onigurama are from setup.py's bundled versions -DEPEND=" - >=app-misc/jq-1.7.1:= - >=dev-libs/oniguruma-6.9.8:= -" -RDEPEND=" - ${DEPEND} -" -BDEPEND=" - dev-python/cython[${PYTHON_USEDEP}] -" - -distutils_enable_tests pytest - -python_compile() { - local -x JQPY_USE_SYSTEM_LIBS=1 - - # Cython compilation isn't part of setup.py, so do it manually - "${EPYTHON}" -m cython -3 jq.pyx -o jq.c || die - distutils-r1_python_compile -} diff --git a/dev-python/jschema-to-python/jschema-to-python-1.2.3-r1.ebuild b/dev-python/jschema-to-python/jschema-to-python-1.2.3-r1.ebuild index bc658497ed1c9..6db169c40e975 100644 --- a/dev-python/jschema-to-python/jschema-to-python-1.2.3-r1.ebuild +++ b/dev-python/jschema-to-python/jschema-to-python-1.2.3-r1.ebuild @@ -27,4 +27,5 @@ BDEPEND=" dev-python/pbr[${PYTHON_USEDEP}] " +EPYTEST_PLUGINS=() distutils_enable_tests pytest diff --git a/dev-python/jsonpickle/Manifest b/dev-python/jsonpickle/Manifest index 079c47ae94897..4b70596bb23ad 100644 --- a/dev-python/jsonpickle/Manifest +++ b/dev-python/jsonpickle/Manifest @@ -1,2 +1 @@ -DIST jsonpickle-4.1.1.gh.tar.gz 309768 BLAKE2B 06711ba9123ae2d5e453e2fa277629131c62518dbb3bbd48e0f589e6fc02aea7094d2ce7d7a8dbbb2430077f380c14e26c318c2f669d37610897c8ebdf922d58 SHA512 13894e2e5ed258f8d16e27fd2e7ca5d0d38ae91552675c121b3516e4d22c2732b9a9a0656e06e648ae115e523a0f1ae82d756fbf504a884abe9ea7ad6bbccc5a DIST jsonpickle-4.1.2.tar.gz 319120 BLAKE2B c00b4f82f709b24813204b264fb5dafa4274c68e74692d3dffeb1618d3d139c76b335bd9c1fbcc5988bd18446afa43ad8de96e6d6185ff9e204a73e173f631bf SHA512 e3ecb9cecc9d7799ff8d2a610fb9327616830ac26970bb486d46de2e94f0b551526cadeb82f7e8536ef5b207df4f4fd110e52d5c5ff1a55b3e869641a94ec936 diff --git a/dev-python/jsonpickle/jsonpickle-4.1.1.ebuild b/dev-python/jsonpickle/jsonpickle-4.1.1.ebuild deleted file mode 100644 index c38a0380666bf..0000000000000 --- a/dev-python/jsonpickle/jsonpickle-4.1.1.ebuild +++ /dev/null @@ -1,72 +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_FULLY_TESTED=( python3_{12..13} ) -PYTHON_COMPAT=( "${PYTHON_FULLY_TESTED[@]}" python3_14 ) -inherit distutils-r1 optfeature - -DESCRIPTION="Python library for serializing any arbitrary object graph into JSON" -HOMEPAGE=" - https://github.com/jsonpickle/jsonpickle/ - https://pypi.org/project/jsonpickle/ -" -SRC_URI=" - https://github.com/jsonpickle/jsonpickle/archive/refs/tags/v${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="amd64 arm64 ~riscv x86" -IUSE="test-full" - -BDEPEND=" - dev-python/setuptools-scm[${PYTHON_USEDEP}] - test? ( - dev-python/feedparser[${PYTHON_USEDEP}] - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/simplejson[${PYTHON_USEDEP}] - dev-python/sqlalchemy[${PYTHON_USEDEP}] - dev-python/ujson[${PYTHON_USEDEP}] - test-full? ( - $(python_gen_cond_dep ' - dev-python/gmpy2[${PYTHON_USEDEP}] - dev-python/pandas[${PYTHON_USEDEP}] - ' "${PYTHON_FULLY_TESTED[@]}") - ) - ) -" - -distutils_enable_tests pytest - -python_prepare_all() { - distutils-r1_python_prepare_all - - export SETUPTOOLS_SCM_PRETEND_VERSION=${PV} -} - -python_test() { - local EPYTEST_IGNORE=( - # unpackaged bson dependency - tests/bson_test.py - ) - - if ! use test-full || ! has_version "dev-python/gmpy2[${PYTHON_USEDEP}]"; then - EPYTEST_IGNORE+=( jsonpickle/ext/gmpy.py ) - fi - if ! use test-full || ! has_version "dev-python/pandas[${PYTHON_USEDEP}]"; then - EPYTEST_IGNORE+=( jsonpickle/ext/pandas.py ) - fi - - epytest tests -} - -pkg_postinst() { - # Unpackaged optional backends: yajl, demjson - optfeature "encoding numpy-based data" dev-python/numpy - optfeature "encoding pandas objects" dev-python/pandas - optfeature "fast JSON backend" dev-python/simplejson -} diff --git a/dev-python/jsonrpclib/jsonrpclib-0.4.3.2.ebuild b/dev-python/jsonrpclib/jsonrpclib-0.4.3.2.ebuild index cfe6a077da7b7..30d6cc5fe75ab 100644 --- a/dev-python/jsonrpclib/jsonrpclib-0.4.3.2.ebuild +++ b/dev-python/jsonrpclib/jsonrpclib-0.4.3.2.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 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) inherit distutils-r1 @@ -35,6 +35,7 @@ BDEPEND=" ) " +EPYTEST_PLUGINS=() distutils_enable_tests pytest python_test() { diff --git a/dev-python/jsonrpclib/jsonrpclib-9999.ebuild b/dev-python/jsonrpclib/jsonrpclib-9999.ebuild index 8ad7ffc4a706f..be01a349c403c 100644 --- a/dev-python/jsonrpclib/jsonrpclib-9999.ebuild +++ b/dev-python/jsonrpclib/jsonrpclib-9999.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 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) inherit distutils-r1 @@ -35,6 +35,7 @@ BDEPEND=" ) " +EPYTEST_PLUGINS=() distutils_enable_tests pytest python_test() { diff --git a/dev-python/jsonschema/Manifest b/dev-python/jsonschema/Manifest index af0b06028642b..7db0c498e3b77 100644 --- a/dev-python/jsonschema/Manifest +++ b/dev-python/jsonschema/Manifest @@ -1,3 +1,2 @@ -DIST jsonschema-4.24.0.tar.gz 353480 BLAKE2B d063c9e55f25472b403645f9b274b8274cbaeca68f9cd1c88867431d05fca07a5885b805a7e91bd82f30cc6bc76dd44a2c561c0a69e5f1847dcea5a3ecbf90c2 SHA512 64840a1c989874fbdda2a996288ac0c5f46fe1ae9d5254eface832326b49d0090f33c3a06de952965b910eb8857daf9548e790de604abaf9cea588c8e3d89234 DIST jsonschema-4.26.0.tar.gz 366583 BLAKE2B faa55e067a66c7a9778dfe40bc292c9fd99b4df815b68b2b1ceec088ce4b65ace65543273fde513b0cb34fc08813c546f31c030c35ff6cf6654996488a85909d SHA512 a7ae00392b8deb742f5826a65bce0a9149a67c6ddc4deff0bb2e99a79ed94f02c4738d93fef5247e30016fa38397ec68ecdead1c1d76a0caaf7755941544a0a2 DIST jsonschema-4.26.0.tar.gz.provenance 9611 BLAKE2B 1d2e5b4e4044ab54aead8994d7b6ec1644e2d19facfec13a1d14f13e3f55533371ec93e4b83fdf3965b930251c93651515f4f052cd629d8e85b3fbc65f9f89b5 SHA512 f26f956159f0c31699af60dffa709eb0645ecd7cd27edfcc732143f3513a75c4ac28821bc360748479418ffc6771bac058bf3c70984ce87fb6dc870d6b77824e diff --git a/dev-python/jsonschema/jsonschema-4.24.0.ebuild b/dev-python/jsonschema/jsonschema-4.24.0.ebuild deleted file mode 100644 index 82ad30fa7bcef..0000000000000 --- a/dev-python/jsonschema/jsonschema-4.24.0.ebuild +++ /dev/null @@ -1,57 +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=( pypy3_11 python3_{11..14} ) - -inherit distutils-r1 pypi - -DESCRIPTION="An implementation of JSON-Schema validation for Python" -HOMEPAGE=" - https://pypi.org/project/jsonschema/ - https://github.com/python-jsonschema/jsonschema/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - -RDEPEND=" - >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}] - >=dev-python/jsonschema-specifications-2023.03.6[${PYTHON_USEDEP}] - >=dev-python/referencing-0.28.4[${PYTHON_USEDEP}] - >=dev-python/rpds-py-0.7.1[${PYTHON_USEDEP}] -" -BDEPEND=" - dev-python/hatch-vcs[${PYTHON_USEDEP}] - dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}] - test? ( - !!dev-python/shiboken6 - ) -" - -# formatter deps -RDEPEND+=" - dev-python/fqdn[${PYTHON_USEDEP}] - dev-python/idna[${PYTHON_USEDEP}] - dev-python/isoduration[${PYTHON_USEDEP}] - >=dev-python/jsonpointer-1.13[${PYTHON_USEDEP}] - dev-python/rfc3339-validator[${PYTHON_USEDEP}] - dev-python/rfc3986-validator[${PYTHON_USEDEP}] - dev-python/rfc3987[${PYTHON_USEDEP}] - dev-python/uri-template[${PYTHON_USEDEP}] - >=dev-python/webcolors-24.6.0[${PYTHON_USEDEP}] -" - -distutils_enable_tests pytest - -EPYTEST_DESELECT=( - # requires pip, does not make much sense for the users - jsonschema/tests/test_cli.py::TestCLIIntegration::test_license - # fragile warning tests - jsonschema/tests/test_deprecations.py - # wtf? - jsonschema/tests/test_jsonschema_test_suite.py::test_suite_bug -) diff --git a/dev-python/jupyter-server-proxy/Manifest b/dev-python/jupyter-server-proxy/Manifest index 4d231fb3e738e..3b76d7ef47354 100644 --- a/dev-python/jupyter-server-proxy/Manifest +++ b/dev-python/jupyter-server-proxy/Manifest @@ -1,2 +1 @@ -DIST jupyter_server_proxy-4.4.0.tar.gz 136830 BLAKE2B 2c97e2acc6794fd058b1a2c8bc1fa923a590ed7366a2b0ba25ddd550142ba42c49ecc461b18201f9b57647813a92b9d62884b71208f67fa934cae290f46393fc SHA512 df7d1a39eefae1e1540fd350551a5d5e21bcfee01c1dee6fb4cc620261c6d19db4ba9e1de0d38edf5b4cde165f39fe9255834c443223d524744b3ce368518f03 DIST jupyter_server_proxy-4.5.0.tar.gz 164414 BLAKE2B 254f17bbd46fbc8db42b6e3f7d9510572213415b81905711d1aa4c320f1154e59d36aecbe1b5f3920f8fc94defbde742d1c9d2915de48f84e48091d9aabeef38 SHA512 2b32b144b28468707f7ffe2eaaf3b558c1387f53f4349cb4712da0dd85439d98fc99e041293a15b0af2671363f73b0feaaf88f25130502287d1478c279ee880c diff --git a/dev-python/jupyter-server-proxy/jupyter-server-proxy-4.4.0.ebuild b/dev-python/jupyter-server-proxy/jupyter-server-proxy-4.4.0.ebuild deleted file mode 100644 index b1b786051554b..0000000000000 --- a/dev-python/jupyter-server-proxy/jupyter-server-proxy-4.4.0.ebuild +++ /dev/null @@ -1,50 +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_{12..13} ) -inherit distutils-r1 pypi - -DESCRIPTION="Jupyter notebook server extension to proxy web services" -HOMEPAGE="https://github.com/jupyterhub/jupyter-server-proxy" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -# Connection refused, even without network-sandbox -RESTRICT="test" - -RDEPEND=" - dev-python/aiohttp[${PYTHON_USEDEP}] - >=dev-python/jupyter-server-1.24.0[${PYTHON_USEDEP}] - >=dev-python/simpervisor-1.0[${PYTHON_USEDEP}] - >=dev-python/tornado-6.1.0[${PYTHON_USEDEP}] - >=dev-python/traitlets-5.1.0[${PYTHON_USEDEP}] -" - -BDEPEND=" - >=dev-python/hatch-jupyter-builder-0.8.3[${PYTHON_USEDEP}] - >=dev-python/jupyterlab-4.0.6[${PYTHON_USEDEP}] - test? ( - dev-python/pytest-asyncio[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest - -python_prepare_all() { - sed \ - -e "/--cov.*,/d" \ - -e "/--no-cov.*,/d" \ - -e "/--html.*,/d" \ - -i pyproject.toml || die - distutils-r1_python_prepare_all -} - -src_install() { - distutils-r1_src_install - mv "${ED}/usr/etc" "${ED}/etc" || die -} diff --git a/dev-python/jupyter-server-proxy/jupyter-server-proxy-4.5.0.ebuild b/dev-python/jupyter-server-proxy/jupyter-server-proxy-4.5.0.ebuild index b1b786051554b..49af831698bea 100644 --- a/dev-python/jupyter-server-proxy/jupyter-server-proxy-4.5.0.ebuild +++ b/dev-python/jupyter-server-proxy/jupyter-server-proxy-4.5.0.ebuild @@ -28,11 +28,9 @@ RDEPEND=" BDEPEND=" >=dev-python/hatch-jupyter-builder-0.8.3[${PYTHON_USEDEP}] >=dev-python/jupyterlab-4.0.6[${PYTHON_USEDEP}] - test? ( - dev-python/pytest-asyncio[${PYTHON_USEDEP}] - ) " +EPYTEST_PLUGINS=( pytest-asyncio ) distutils_enable_tests pytest python_prepare_all() { diff --git a/dev-python/kaptan/kaptan-0.6.0.ebuild b/dev-python/kaptan/kaptan-0.6.0.ebuild index 10dfe69f39890..1821a6a34ee67 100644 --- a/dev-python/kaptan/kaptan-0.6.0.ebuild +++ b/dev-python/kaptan/kaptan-0.6.0.ebuild @@ -1,10 +1,10 @@ -# Copyright 2019-2025 Gentoo Authors +# Copyright 2019-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_COMPAT=( python3_{12..14} ) inherit distutils-r1 pypi @@ -22,4 +22,5 @@ RDEPEND=" >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}] " +EPYTEST_PLUGINS=() distutils_enable_tests pytest diff --git a/dev-python/rst-linker/rst-linker-2.6.0.ebuild b/dev-python/rst-linker/rst-linker-2.6.0.ebuild index 7857383ef67fd..98495bf380f80 100644 --- a/dev-python/rst-linker/rst-linker-2.6.0.ebuild +++ b/dev-python/rst-linker/rst-linker-2.6.0.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 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..15} ) inherit distutils-r1 pypi diff --git a/www-client/firefox-l10n/Manifest b/www-client/firefox-l10n/Manifest index 2a25e5403c470..63c04d97a7f4c 100644 --- a/www-client/firefox-l10n/Manifest +++ b/www-client/firefox-l10n/Manifest @@ -498,3 +498,103 @@ DIST firefox-155.0-vi.xpi 547899 BLAKE2B c2f558b6592f09ddd9bb15a00eafdfbb77a0893 DIST firefox-155.0-xh.xpi 360262 BLAKE2B 68a7041e57d4634c42a518bd88b5435e1f1c9cc5449895ffb745fb742511f35115151965596188f92d680b6e1fac80ba66601da12550e59e3318380cf28631c8 SHA512 c8968842295f0357a92a40c979e6246412ed44675f7f200316388d37c3b6ec09e68d2fc8a254c8f6b694844b6beb16ef6bc6af656fd3c8c3287ab92110e92568 DIST firefox-155.0-zh-CN.xpi 533238 BLAKE2B cfcc669cca616c32d57dce9130019c436815ae80c281e3b5430ea07cefc53c80d309ee30c30ced7dcec039197d9b8a444f01444458d5ba7acc92456f65c97357 SHA512 3804b13bc26d969d87435e8c213611baab3bef24253d07c131fa30abb1e1d877cf2449cb511fb98dd7a16717cbc27147de88256f0a19cbe34739b38016783ab2 DIST firefox-155.0-zh-TW.xpi 539331 BLAKE2B 9785eaaa022f965123d4c297f71f740774f4bbaec8298718569c2f7873554d0f223b2ce6a4694ca8b25e3929e44b3d808d7562fe1a093851793e079385994525 SHA512 cfa314abdfe1963dc86d6ba19bc500f23c29c78a4cc479c75b7dfb1c54d233c3d86b04749a56689540411bb72f9f9a7926781cce2bc911d2b58f4d3bc039078e +DIST firefox-155.0.1-ach.xpi 368812 BLAKE2B d81ffba339bd6b50ac1860a4615766e154c51c23a5c5688b492ea1084a2cfa01b6c80f0e6e737a3ac2dda354b9f78ceb8aad7c136290c64a2e1afa36b9464f6d SHA512 c83e2002a2293bfc3ed6118aea8ebe8add24bddd46386087dd26b5dc1eafc609f732feea251699c8a1c34ac0fa5ff7f356b92bdead6dc0efc3fb083c40bc4f1a +DIST firefox-155.0.1-af.xpi 355042 BLAKE2B be2bfe8ebcfe51c3ce4251bd6bdc94c227ef56b6fa301df2720d7f6a4372f1976ccc7783a3751410dc839d1d8e8749c47961fdea643c322b92185edc464ec386 SHA512 957464b212f7b2a1fa499c1fc1a5e804f0d32ec47aa18a15384164783d2f2f7997d1da1823fb1eb3f2523f238fc91346f06f4a2c0a3c804743c0aebf7ed08e46 +DIST firefox-155.0.1-an.xpi 397611 BLAKE2B 5a72bf820b5340c1862e91e94540ddc446343323f810ef1283261f02259d8b1a7b4cf646431e08209c6ddb9c14b7064766ebc3fe0676e17e82e89189dd978e63 SHA512 95e24319c3ecaa61f5821c184bf09ef50ad24f3bd2210270e3fb30f28348b5d6c08275c42e29e4da5d25aed0b168cb4286f043db0cb1b88167e819e5facf326d +DIST firefox-155.0.1-ar.xpi 542853 BLAKE2B 6ec6cd1d8ade2313102fc24c4220ca9769bd4cab16e9b6b0eef4bcd1c6f9e6fd405df0f6d9dde46e7f1621837af58bf236d955b66b073a023368c8d9450da63e SHA512 f95f30511e8cb31d330afa248f33669cc5d2b97e58833e9b2d9ecc8816ba3945c67f372622ac71cbe869400d4ef6a03f3bc4668159670c1bb14b86fb096aaa3a +DIST firefox-155.0.1-ast.xpi 392612 BLAKE2B 86572dfbd543120125eb06e1c9e8d634fe1575c45addfc817053aa22dd89fc59620f89320818a27b0e12a701758cf1135460ed4e9a066d20cae32c2e14568f3b SHA512 13151ea1366d17635b178ec59068f99fde7dfdc25966815714afe6e326c8bb5e783f5acdec0e62ae5a45576611a0f9638a8a9960db40b44b0e0b43d94a6c10ac +DIST firefox-155.0.1-az.xpi 409272 BLAKE2B d93d2a9c56dbeb5882025ffb8247c8e7caec52427fdc0df124463b2c0d9d37308425f9047ae0f01f41071baf07c46337412ead898c8322fdeea51b1bc137a27f SHA512 90cb77f4eb8faabb10a29981f7790831d938c6c6aafec34bdd0b155d5ee19b0c5c7b5bf40fccc9640d18306c7f4f37b74d24ce1f011e818d0972c8383e6fc19e +DIST firefox-155.0.1-be.xpi 609765 BLAKE2B 49039080f2c8f2ee63a739ba7352e1518fc800aeeb2325ebac96c7591053070b1bbd3c9b7b8f2cf9322708b06b66642946c8650adef6097a2f7ac241b074bbb3 SHA512 6746cf4a754451e8d245b1a1df766289da034916b5b31e184c5b7256e5aac0b59c865699f2c9dd5765f885286b2553b51b981ba07e90be9392546b23c0d9110d +DIST firefox-155.0.1-bg.xpi 519564 BLAKE2B 026a17b0142b0edc76c0d126b0f23f786c5a8a05b9dd9c0c2e319a11c62faeb615275f4b36a1efd3d0ec22c912f00449c5e26ea968ba49eda02bf6eb032f2127 SHA512 a06509532b4527fb1c61ab29306bc149a2e169900d4c260de7a5eeee482e8fa85ae18694ecb3d9d12f5193b893acb7ae26648a71120b1ebf62ba9c3548b90ecd +DIST firefox-155.0.1-bn.xpi 468731 BLAKE2B 2b8d1fe71b5fba69fbc0d0cb58985cdacb5faefeefbcebf1764ff98f8a7a1a21cd613a771cf86a68f71722c29919f70790013cf7649be950716ee228f8b9a2b6 SHA512 0b65b2f1b3e743cd2be0f06d71ce0ce93db07d499fc938d24e4e7001c44f188dc7681f341679a918847f923a9fc88e3e0dcecc44e13130e839bc198dba2e562c +DIST firefox-155.0.1-br.xpi 440679 BLAKE2B 598c55931a8eb42f561082a8cf89aaf8156f30d2c5e310f7e1344c3cc2162dd1629d3185f49a442b765e492787bec9e17a750eeb54c0c4780ada351bd0235d85 SHA512 d68e9e4d8d912ab69074bb27ef0c1f7a6c129b94d771e0f48644f53125b149bd1451f249b768f133fe6247ea5b2a80cc57846631c58f51d7951993c5162f44e7 +DIST firefox-155.0.1-bs.xpi 474881 BLAKE2B 1595a0c8bd3b4e00cf2b72d17e118a8518d631bc80c745f57dc62e7b68a7690e77dad70da8561ea2a8ae85c946d1020416eb789fdeb60f24050b8a1065b32581 SHA512 86b49e817338db6eed2ee7f00d8545c8ca261ec9569f8c7fdd1aa4c3d433e646a41c765ab22b4405453984589c9e934d4d3548efafead955580d5e4bc3af93d2 +DIST firefox-155.0.1-ca-valencia.xpi 418291 BLAKE2B 5186c07a0a8dab14b1f08783d80e5a8cb6bbd3933839f9da1ed954d75be92559d129721c74f60810f7d94eb57ac168afa2149b40eb233884c35e6378dde90a52 SHA512 c3c615bf34a1c90b8ae63f18f8443896d6f88fc9acf56071e1c632e078fcd50793f371169191d281b1d6ec7eb6877b9d8b47ba31e134e9a991b66b36d8ecd9b0 +DIST firefox-155.0.1-ca.xpi 495377 BLAKE2B 2d5a070f69dcea6d071f38aa7de0004e7b82b498407a1daac14de7adefc099f246aeba1672f54ebcaf4472899d969848e614c8e04267868c52e9f2860b41768c SHA512 683ec7a9e1f3be2cc1d4184880bcfa1f6847b7a1242572f93de9fa536e5f703fe02a3c11430985a0dd387d9b80e45f9b9b6eafd89d3b87cbb9d56d36f74adab2 +DIST firefox-155.0.1-cak.xpi 443021 BLAKE2B 300cea28eaebf319f11111ab9cde90f15e3958adf07ecf92460dcf76e22717496bb4e5fe13341e72a7a499b1c6e74f6cba357df0cfb8ebccb48b28764b0ff5a1 SHA512 8f73ea69243636800ec5814df2c56a04253bf58a605dd1fa6cf253b0ceb8a089c67245665ff6f56f26e9e15af3ab02586e0ab754a18c70e192c724fd3fe735f3 +DIST firefox-155.0.1-cs.xpi 558431 BLAKE2B cebcdcf1621c09bb1d51b186f50c84ac1329c45d9593eac47adaf4ed82c4ca354e06497ea58aacdd8b5ac502d37b39525e24e5417305369435bf6bddf992a64d SHA512 3420d1ac7e48001c1f8fcc3dec528c6cec1335fecd628dd3beb7539d3fa6b620e7cfcbe4eda0cc7bedf7610c05825f02e253cf08c074258c23e4acf78a3215a0 +DIST firefox-155.0.1-cy.xpi 516188 BLAKE2B ae466b4c976ea4fab960ee044830dabdd0362edcbc4e19b88b08d1c20641f6b70141edb122d23a3fbf985b8b765146daa618e93df45c7aaacd14d62193bc8367 SHA512 7b4ae862f40f44a308eab6d290621b32a2d7311201574a34bf8fea29b36082c771314c7ac4b583dee2d75126ee289f0175f0228fda258dc7938329e4be4ef207 +DIST firefox-155.0.1-da.xpi 487429 BLAKE2B 7efda9ac9693574175c788693868ea7fc3c8b07bb2a88a4bda3c460e324600d5afe30340ec6f5c86a13432951f543bb26830cfd943e813c97689ac560be7d616 SHA512 64b9dc84e15ab3156e3f3543a7c75f6e5e5e5c9c294504620c95d8af06ec3817c24fb11555d2ec98efa42a7cd35b894e604792fa5a55bb8e6f5748daa2ac7393 +DIST firefox-155.0.1-de.xpi 527914 BLAKE2B f5ee29e2315309bf744fa4a9c7564374d6d668fc730ae2f62b5004bc37584c2a8687fc51db5ec59ade381c8faf7fb79a11ca02b3d2a29472018de1096546017c SHA512 801824990fd4d57fe4b746595c9da2682aa6784ccb3b1ca0e58ee10ae559d32669ff2b4d607e90a4a40e954bb1b19f1f313cc241878ccc24ed39019a649623d7 +DIST firefox-155.0.1-dsb.xpi 543099 BLAKE2B 48b7cedc6b135a4372f4817bbb22773053f9f82fae316b2e8223d7453a4e3fb7bfe4db30c9c15b77f5a1f1cd8f035c0175d4cf4dd898f2036e26e720ed2fe39d SHA512 145024b02dfbbc66443fd03142af1d376bfb11c1b059fff75a2b5303004e967f51fbc2529e79085b955c2ea50f8e5d78dcdd33686a9140a6a8668d755808a97e +DIST firefox-155.0.1-el.xpi 626605 BLAKE2B 7275afaa0d06536f759a16a6d718cc5fc8f21e17467e3fb1dc9259ee1d1a2c2418287c1546a6d76805508d4d3188b18e646a2d06f430f9aee17bca61df7b2752 SHA512 a1068e52c289de49f8927c74d641b29e8aece84c3207dcf8bd1b0b91ab9144ecb96f491616c16526b93cf2ea31227b75c870f316e6458221201ab8862d9e64f4 +DIST firefox-155.0.1-en-CA.xpi 476334 BLAKE2B 03064d898f0923f0eed41c568626c4acf551ca60a7fef3f8de6e3e4ab66c90f804d9636c8d5014cd9661766a83712c6d59715c8add1567ee251e309be3380dc7 SHA512 0ee307589a21d7c378bda341f1c659672149a37a3377b16d6be5362ce8e04c9f884ffdd81b274de06c817311cda5081194f00667737eae3dedbcc8ee9438a6ac +DIST firefox-155.0.1-en-GB.xpi 476599 BLAKE2B 0557d0c8424cf2d8be83cebf76499633a1df9627c91b1d42243bb4eae3c2bb2bddcb69ae4adc33ce5d1b2872e927dc98cbcbc97e0ec3962968a8702da8c5fbaa SHA512 848913f9047d1a0e06a2c75aedbf00e86b9d2d21f2036648e1d9ea56f9bb3f7bf3d9f89275c92d5ad04eafa6086001460b3e0c0e76ec137a6c3fa200672f3b5c +DIST firefox-155.0.1-eo.xpi 504074 BLAKE2B 8c42abb4fa58439acc136239727430ef994f3e3414687c612593e2acee19b3dc4e3af7d43ce83371855af4dc447ba41e03a23e46f0245ba8acd62621af57fa2c SHA512 b267a8a0482d17ebf86096bf64e7f3c8ec3247506eee0e43c8d193779858dae9c9fb7fed49a92ce647c64f11e5b0b42d9c94eae2b2f2e341bcc5e6f23504d264 +DIST firefox-155.0.1-es-AR.xpi 517186 BLAKE2B 6f68a72e8614ead5d532c538ac152bf2d45b75d1fa71f2d37e29aa2087b725d7d15b3142e74010caf5344efbbb7f24304f5a8e6e9facf1f4a32f09d752993baf SHA512 213301dcbf6989314a17463c09aa9cbd050682aa32a90a214830a8b821c1b887426c0f1e7ab2b89058f108778aa05f6899e65801ceed072487320b28626fca73 +DIST firefox-155.0.1-es-CL.xpi 519492 BLAKE2B 681bf15173c870269e36e0246ccfce5fd6d6d3926bd24ab32971685955bc3b06b18a2ac6f5765966c7364be9070115bee6283b7aa834d5d7469eb6a668c29c7a SHA512 7638807644407c900873c807f82367dacdb00c12a92d2670d256dd03548edf0c72ae5deaa6362825f2e34d8f465cbfc9e8e5e80f06e7ae7eaae32261c96343b6 +DIST firefox-155.0.1-es-ES.xpi 507876 BLAKE2B 94002bfabdabb7b21d41b138759d7e2a91d10fb368b38633e73743507b8cd32e18fded0d8d1a87a59b77eb2ea1c2e8d766c7ab0d15202e71e4d00bfb401afe59 SHA512 e03749c9a2e4eb96e42622158d0b769c38a303b180769126fa9502b872c1a07fe41a98b07b77a1e63640ad9bf47b7d0c4ebfffe0dcb10179110446d2b20b13e8 +DIST firefox-155.0.1-es-MX.xpi 518850 BLAKE2B 2b8554370cdbac2f5bbd0fdc698c5e7236249e1c860c2ababa085ad067fa16d0e22dc542679445628b47dc8f7e1435db853f8e808dbc251a59b516cf1deb10b3 SHA512 6bec857864b5ed64ab18184894555d5457316ec70d5b203bf8b3e44e2e46ae122fccc877319386b11a1aa2d82de7494396252b92e25bccb8cc5f8bfb3734674d +DIST firefox-155.0.1-et.xpi 407811 BLAKE2B f146e0d8fd51890dfaaf43d130b37db4cf468fa55b65e10cadbe7ab78817f36221419cea5c021d7e31b4167947526e6e397db6ff81eb9835df5fbb029976b3c2 SHA512 e92475e9d17f624d322f19a7f4ecad9277a9c77f8a8dec130cfdbd41d5f31eaf1ae338a087ff02184c9740aa5400c72c6318f55f536d7f8e2f3606910f185bee +DIST firefox-155.0.1-eu.xpi 502179 BLAKE2B 390d5ddff799f94b5a8ad9b6aa9eb2168d367849ee7379104980028c1b38cfb22053e294b1ccc8d9ccfcd936ea31ac74eb75affbfb6097826beea776094b7593 SHA512 a1924f018feb72021f91b618da301d45d546fdeeab188cad7ac39b7cea9d7235cb094cf69f08e596012b035d89af80cf694b04cb64ce8f1bd315a7d7efe4c413 +DIST firefox-155.0.1-fa.xpi 475301 BLAKE2B 284a6f765dfa97e28029ec7df8ac9f86796d0e953939c7adf01e90caed5d263f15ef9dedb5385d817542953a453584ae3b82e875e0cf7d1e7e25803f315301d6 SHA512 655fdd1fd49840d4e24ef3541210726ff5062c9bd55cd3804124bd2931b9d3706a5ff544fa6708e8bd329b4129dffc15a25fc804486a37d33a98611ba8322d6e +DIST firefox-155.0.1-ff.xpi 380399 BLAKE2B 3278a90875ec9c5b9107dc4c2546de7feec699b2c0f62e864ff835426beebe001870f9b193a82d4c71023c0facdb35e1ac7e332858b4da8b0729ebf7c1ff2007 SHA512 0eb3f2e9c8b9bca7e070cd61e7d09fc604cf76681d472b7708db2b3fd6c0543c128aec5c4169bc7484787bff3b3138ff141eacc1867de832b2f1f6a351ef2d62 +DIST firefox-155.0.1-fi.xpi 506348 BLAKE2B 3c68091b4d10f556a62390fe03dedb587a7f029b4777038468c847d0794e8381da9c22821dd6b274d259ba2fcc2742ed9583cd8c98d9e580f341a874c43135c0 SHA512 d2436bc81daaf1a37c933ff3763772dd87208ac98730af906e2d3446989955c4e96b6cff197d61ab49ef08ed194e6f108967e3565700a8d25f63d3b921111753 +DIST firefox-155.0.1-fr.xpi 534194 BLAKE2B 7e2301056dc75f103d36a306397f0eaffe903d0edcdf181defbc066057f579aa86db15ae19e0ed5b35b21c3c02b2017803fe88cc113ef002cc0cf8c2db0e754e SHA512 4e7fd34e0536139972eecc19ebd29976719b7c19d25de819e877cf107c3f5c4d51bddf17029b5606ca06d2348f8578d87ca8498a270c68bfe0d6dca0523d6a6c +DIST firefox-155.0.1-fur.xpi 509043 BLAKE2B 46fac6ab293c0b4d9e399624504df94788e9f8c26ac47ed82f07a018ccb248e39ec8210e0a86e388614afde976784505ad335bfe9d360fb161f0cc88c0a6ed4d SHA512 8574580dad17940185d2c901c2c8e0a3a93d42dee8304819e595bb52d2263fbfd6ec15aa3b8d89b8114ba81a226ae44e00948c16b17275d3ed595bb896ba297f +DIST firefox-155.0.1-fy-NL.xpi 513642 BLAKE2B 42c46c927ff4e73f11ebe37acb56dee9180e8f04fe7324bc894650ac554a7374e57e107efd420aba1f4b3d8a93b196833e61e0d5d7e570895d2542c138521c86 SHA512 0222a1c976ef0e090263a9aff9eb6c575272228af635ab9a3956c16ebf24ebd35c79859dd526035e9f6cd5dd1826741248a85151060d40f81a58c59e072dbb16 +DIST firefox-155.0.1-ga-IE.xpi 392207 BLAKE2B 076805ccc42388f5580e635b203ba7dd0db11a9c7257c5680f03c193f7ec154a9231a5ebcf8e7d575eae1e7549e310758b17c210f527eaf8e1cb510e87447a98 SHA512 2050d232aa7da1a1c48b6bde7a5ca1422a8798d27d29fa25de71c2cab5c041e2797a042705cd677089cc8881da7bfc601c3bbeebe5f6ed2a56425b8af16cae33 +DIST firefox-155.0.1-gd.xpi 449346 BLAKE2B d18163f257b49e634119d23e332fc5eec6fbafb11d6678b8c55d1c2b36f8e47950db35fd45cb960a22dfe97228f4de4a49841cf4bb01d24def34f51e84cb0e1a SHA512 d8ee4d429ea6bbbed4675c2a434c65a18c3db4eaca64b826dc3280b896792c49d917d1c10b40fc9499aaddf5440215f88592b565ad2428cd2fb371b89f9e6404 +DIST firefox-155.0.1-gl.xpi 471213 BLAKE2B e378a0d02caf290e03726b6ab346c2b26e7bc6b6f84694925f28ef4dd80fa35b1a1d577691716fc4432317a1d185834696aaa2a0a4768748e17a202a9725820c SHA512 582b2895b8daf9fbaeefd0daf891977143d227e5ea0a742d709517499d0df70b42ba104bb2478a2c389a3b9fa83d0aadd4a24415e1508f67b1a2e49c07e32858 +DIST firefox-155.0.1-gn.xpi 522388 BLAKE2B 0d28452e584d6f1509bdecd1407e046b196f49e67b5f48ac1b03889ece59911db31f199cd5beafce18fe93fb8a9040838a77bbb82318d757189422497a5f2963 SHA512 52e5e675c673387167f489494e6179315acee4546e098d701357ab96302795dbe8f375cc668dedd8af982bf4004359485892648a8df8529c3e7e68be893618bc +DIST firefox-155.0.1-gu-IN.xpi 427707 BLAKE2B 8171022fdcf5199fb79478a677af5ae23af0600d179f804a0450d4f2816fe0e0b69650665c5bda37def141cd914a58ca679904b9589b7530f6d6e70c649d11e1 SHA512 c525890509dc5f5bbdecba419a17625681f0f35d696673ae005f1309bdd945b93f29358014ed01a58373d6eff1afe9dbc50483094406fb9fe60ad7386e05f915 +DIST firefox-155.0.1-he.xpi 530669 BLAKE2B d4ccde3b714d98a4a62e677b1708a9372b26cd5691a2062db7efeb17413cd43c47ae514a411d9d2826bbf6c66958e2d1519c00865a6d1fb279b7e5fc62b9a428 SHA512 8ef8a5892571ac0ad2c70eb9c0a4fe6d8b095c0b20c7effbdae38fec76c677fc1ce24fc4913812ec9610f9b6405c3cc80c52410d937ff4a9a951a8cd1ba07fd0 +DIST firefox-155.0.1-hi-IN.xpi 442118 BLAKE2B dafc088aeb5034a77931eab7c3e880f94cf75399a981e5fd4cfec04dc557baf832975e8f7dc8cddcb612180861337e1285f5eb39b45bb30741b881cf2c77b34d SHA512 ea568f0385aca493698258be119d0c403046e87eb8b796fe9e0f0094e58112ad9a7eb33150bfcb2a03120485adce07dbde3948d26651baca3e321ebb283aabd2 +DIST firefox-155.0.1-hr.xpi 497583 BLAKE2B 974dee47e8294961fc159320417740b21935b4c5fb524573de383109afd52898084e20e05009eb7ce06669c6d2a0f5441bc25e264b2510ae42d447ccb3622673 SHA512 c8a3ecca230161b84a986e160059d4538e92d0ed3bbc05b0af04443e1239b8c2a7c374615aaae9cf28b94ce5898098ba58ac3c45c11657b495a9e4e295f967c6 +DIST firefox-155.0.1-hsb.xpi 539560 BLAKE2B 987f94db0b5e208940c8dfb485428ee3c1855abb52e9a7420cbc9923b2f68a5a1e4e8598bf1c0adab6693469d326e5d13aae6c0a4dd926215c58e871e68350e4 SHA512 609bbce18b873f56d8d558bea3cf3cf5757d98806c8c546950ce230f1d647315f0c4404bf9cbb2cd78a039b081141bddd245a2cb77880c01c1f49427beb8996f +DIST firefox-155.0.1-hu.xpi 543700 BLAKE2B c995da1ec2caf8a8d6d8a07482ad115795dbdc862b1b7bb67f7dabaa66dfecd48f5d1574070cb20e740cc1350ebf01cbd02ec610586dae6ad019e0f023e672c9 SHA512 e2606695e9b646ae649330cb81f1eb44497b21ddef287ab8d10f21a3280069081c9eb40eb9fdeb2f362e16ee4805e11e07fcc539568bb0d0e4a0793891fccfdf +DIST firefox-155.0.1-hy-AM.xpi 545987 BLAKE2B 0c2002608d7d5bb8f11cd719235251a57afc9b0a556c10ad619ff1a8c27b546e72b95cd00798379582dd8f1ba38f8b19b38ebe3b0b67d25a050fb650dea73317 SHA512 1e785bd7be306a5d241cf74e25d8e8bf8c81bbb61a125dacac9842f3244258c56b6fcf0bbe0808ea533a06e9ed8c507dfd0ea1ea85323110ba904960ba1c1464 +DIST firefox-155.0.1-ia.xpi 500007 BLAKE2B 9e5c78825adf13bc96973388ed552db6406e7d1d84b2a4c0bf4ced384412bc3208117cdeef36049516f81882470ff776838f7a48f2d08277a715223a7f6b3f2c SHA512 faf6e1fce33238ba795cb7ab03af039fb52b415742b61459dfcb18ec586df6f09393cf526759d5be323100b86c1ee6eb3462746b7e12d1f33afb0148416cce06 +DIST firefox-155.0.1-id.xpi 460563 BLAKE2B 773b60c04556f314fcbbfec7918850ceb20a9ccfa5ddfe0bde70d63df1106aa285a3b45364ae8d7f5a97f87fd3e965d0618e66650f86f201c5ff91938375ebe2 SHA512 b4779ce7bcba77e233564b076b7212aca20aa1db2641527d487d9a64d409ea5c64b6a2b639177315c954df769d403287b8922964b3879c48ea17d52ac1feecf4 +DIST firefox-155.0.1-is.xpi 474717 BLAKE2B f9a8c0ad5f99dce0b91bbb91ebd3005e043e931ff6aaa01a10650a4aeff534f5387c44c3dad59daae23f23f81fcee53a3c836c7313040209c42e0dda3df88c3c SHA512 afaa728239572554cc0d077e94fc2b715a9e008e40163b7bdb165a70526d6d3a382cf9a59351e297753017cea610ff9248a848b3c6c4be3a1e46c9a76783cef6 +DIST firefox-155.0.1-it.xpi 513126 BLAKE2B ee992f720afb20dc909a188a8f2914bf86acef6bba6cc6eb90f13ea854d063ef1c935569fa6b7b9e4fbfa6796ddd5a3755482bb2924f72ad23be8fca21cf13ca SHA512 19a566bff7d7b270ee1070a3735544d076e5d4f4936855cb33a3d717e0de235cceac3e5174b0dfb54cdd9371e64c407db0a5c0216db06bffda2ec65628509a76 +DIST firefox-155.0.1-ja.xpi 559453 BLAKE2B 3474d36205e287aa95ca9a38dcd5c06d56b23f5c724a004c5ce64f533a7c0322a337fb3efaab2bd4d467b763fad9a8d6971990b452436a13bde85ca623f5cb11 SHA512 1bb907c3385a6ab9c7061aedea1ec68aed1044c03a06b22f359eebdb44a2d856aed30ab8472226d74ba67d8d65ff4434bb1e8374837446359ddfe2a0fc1c71b2 +DIST firefox-155.0.1-ka.xpi 573866 BLAKE2B 13858db3103c19feecde4d1d40a74760aeebf111ef50a7820ca38c4e679700e2a22fee696958cb89be32daf72c5cc8e56f237013f562623a62237f2c3fb700b8 SHA512 c623c7c54137fea8ede8a8ab231b070fc37d8efc3939ea8236b7d5271c0707bf309945042435ce6113f6560bdc0a8c216e3a8f2253083dc2bff292b27c3a7c40 +DIST firefox-155.0.1-kab.xpi 460733 BLAKE2B e969682562ca905725b663bfac6c5d97bc068c9efeb5a0dffaf429f8ad874657d1fccc660702ffd45d949786847520264e981d0e2b1a18f15d46bcb5de2af754 SHA512 81abea1120b228ef492582e0408fb654a94cf2518e856a30c1d0d877da142eb404811f356b47506cf3af43a2d7dc8aa03d75e2d461fab826738e23880e356901 +DIST firefox-155.0.1-kk.xpi 600380 BLAKE2B 1a0f1fbfdbc7ec286f3fd3ccaae531d183c1f2847c244fcbdbc59c5eca83089b3d17962ae8cb15d8391ed15975d00e2beb67e409b7b492aaadf765c820ff0913 SHA512 c7c5740178649f4bfba5d1f04d4c1f82b9029e6b1f0a29607beb376cf0c60d6a5e92b131587a2caff609b945370e7a7a0c59e6c1327915bb547dcfd343dbc0d6 +DIST firefox-155.0.1-km.xpi 446357 BLAKE2B 1f993836742a425dd0ff300e6210ff66efafdc8bfcfb87bb208993ebb52442a490567c8ae908876b9eba45de422f7fab28d0295a0d969297e7f4b2f8a37e0869 SHA512 e0f3cd974bba71ee03797d6b3dc3aeabe5e46812d3a837d0dea89154571e6c95dffc147695d78569e07ee727286414418f9472d37e8eeffec79ad0aa237b3bf7 +DIST firefox-155.0.1-kn.xpi 410485 BLAKE2B 6c9446ac588adb04882a4a28484b6bb94327c27dc34eefdbdabb77f75fb43dc763093c8330c0e3ef11d6a2f3158912b6df0b62b67c3b30e909948a9f2650dba8 SHA512 5618d9831158c315563f4fbe026f5fb8f9ba4c6f084f57516fa6dbb6602437b61401932a3ad88ae0f4f5b8cc5ce4f7d373a6c1265fe63b15c55bf628db2a7f3c +DIST firefox-155.0.1-ko.xpi 542876 BLAKE2B e2a4ac3fdc3ccd044a4cca407787e9ca7f546340a6caf651b1a63b713e2142c1bb0e72af808ca8ff04b75161b0270c29e64556126cce43aa646d925f3315466a SHA512 8a0150d363417fabd279b4b9025d53e32eecd531dcef35128c590fb8b4163bb6e64bbcb9857246b97ca7f64cf88950350c9c3ee785d26a63005a842e71fcf1cb +DIST firefox-155.0.1-lij.xpi 389012 BLAKE2B b68399a780d47f85e9b73b3ceee5ab22b72af6150d2a8c6b0de1eb242d2dcf651b710b683f8ec1219a00cefe8dd94c3670a8d8f7b21a6e7b5512199d1e87e07c SHA512 8d4a3b68b9c9de5a98b0abe9ab3a297a5c85f1ff3cf55b281d2616b15aa48e983a3b10714608e494e023f3c4a8b2dac392686f82f06574453eaf96d3aba32cd6 +DIST firefox-155.0.1-lt.xpi 429519 BLAKE2B 170e5db796a76a8fb93955cfa8a3bd2360c0ba647bcbfac88b83edb8edbec06693d666b04029ef95ee9ac9a57ae4d2d62b362581d90928632dbb8af5fbec238b SHA512 693d532146ee6eb6a06bf229751f8838951de8853d7d69469a2cb64aaa5fed6f2967d171cb35247006b5be283d8deaa57178d9cca87ff2d609ab082dab4eaddb +DIST firefox-155.0.1-lv.xpi 456221 BLAKE2B b682d295928a6e0d3a24884192233ec40df0cea8f0284a192dc0ddec8b49561d3a9463f3429717bae3f12940fd80b8712060a88692aa97c6d44da6ce03852e22 SHA512 5eccb2a798991b3a7cc65e76bb5ce3a0d357e67efa453c561e32b3da312373cb3225f5e3c5f24a35d7ce8817241c8681420b578793ab19bc0127fab094405f95 +DIST firefox-155.0.1-mk.xpi 441643 BLAKE2B 5e2b5dbb2684f1d585e53b6f1c65ccf97eaa1243739ef1ef36345b5a7244fa594b04232d4446c2fbb008ec52fcf4695b91c9b24c6a1ab0b5722e03be7399892c SHA512 5589b98a22b70ae29d1b8ebbac8c7f80cecf0bc9bf64dd399556de44945bc38c64dc0ea38b442ab0e63d0f60891e3327ee6d345c425ecc46948d01aaa2e5d87b +DIST firefox-155.0.1-mr.xpi 425228 BLAKE2B c98d2c6561668b695c0ccc4325cbf16648807ee68ba1660698ffcb5cf65460c6f9eeea42bc4c1591bb2e3c02a847d5d9aac27c0e4ec3f61b337acc91100c2b7f SHA512 41e6cfb161efd03ee5e4430d5a74277eace61e88afef1c0fd3de4d887c79d71ac24cea3adc4c8285c1843ee0d9d66e1baa686f8176eb1bfd4ad615226f58d214 +DIST firefox-155.0.1-ms.xpi 387487 BLAKE2B efa12c07146031ab063d5de49a714d09a030e00afe13ed63de98dfdacaa52cf8786b71d128c3bbcbc21348efd8cf33a4fb6ae2ed525a9791bdf4b472cc77d3c9 SHA512 d3b2c3660c11579758e734d8af5c2bbf2564cbd923e63ef9e8955bfc03a7e324baf642fc0023265bdda7c24bc485d33c484d5c213d2e33d75f2de97290a16bd5 +DIST firefox-155.0.1-my.xpi 421862 BLAKE2B ac2f973f25ffc804fb98155edcf1149df89a842a43c66d91d424d1ac603fc0827dad94afc849052c2411f4691f2bce721c3fdf77e8b0f1867f3abf4a2e6bf7db SHA512 748b054cbb449faeeb48e2e352ee579cab213b01cfc2de5d9e35879ff5452ed89f42574778f8dd55e38915c3fea12038feec19a323e1cf77228d99cac14cf1c8 +DIST firefox-155.0.1-nb-NO.xpi 498906 BLAKE2B c09b5c5fb387b6152bf0f8d7006dac9f3e310af7b6b2e161f776f01c46fe5aa6ea44cbdd7bf8c66a7369e291be0f12fe5ca47b97e8d79b06a0f81ffef8f7e844 SHA512 2f8bc8544ec3e3c86f1030241d6823e89717560a612183f0a472d4d98e30c5c8d8e35cba1a7c8e675b965921c36af5948c4a015855bef2ae7a418535a1db3620 +DIST firefox-155.0.1-ne-NP.xpi 422989 BLAKE2B 012c9dce2b5b09cb7ee8b400d91ac6929e32a188a18fe88c572260d5fc362afec67b1c226feea980d8a3f3db34f255881ba3b27f5a44c55aa06b30131e8d4d75 SHA512 c2899a8c905e4b389aeb5ed639e7c3dc2aef5d8a8c6cd280c67d4f59c699cdb6c99cec442c31f3a27ca633cc5e696f14376ec35037af310cb130c57270db3267 +DIST firefox-155.0.1-nl.xpi 507250 BLAKE2B 0232c42862ec10cc114d8b114b75342af26fd65e078c96721fb3068a7a993b424a4499fc3c1b1dedd64e04d0323af836e0ba4d3348370da1802d92344caddc73 SHA512 d6b9ce244eef3bcb172ef6404fdf981f504ce17c15bedb52cb0ee4f86b298cc77aa8ec3ea37e19c825382710603de2a2f7d09ebf76ea144778d4bdbbe69ce0d9 +DIST firefox-155.0.1-nn-NO.xpi 502658 BLAKE2B 0ccf78104abe2a7c745de33c3625706a7fbc8e0a11adbd26e67f8b021a58d7b0e8d6635e451218be5df0602850df119e0aac4cdf799314aac9513e7e3e6f4dd7 SHA512 02c8374e80c0152222766c1f460dd1a38b7080b8ad81d8f125adcb81ff8ce8b14d231fbba776593a2c1bd65092a52612db784ba0c404e298da450c006e0b2e61 +DIST firefox-155.0.1-oc.xpi 452752 BLAKE2B cd0b69166a20e0a53b0ada9bb5ed18fa8af883a4c53610b7f42458012ec5388e742a977347ee2cf5dbc43bc241a270443e7608f6a38b1dd0cd666250671f9c5e SHA512 7dc22c97e346a7a0132e32a43901882c0a5fabccc5e6256d990e8212a24985c1ce2005dc1dbb1a664e9858c0d430ec742d033b4e936a58c38839197395c05e72 +DIST firefox-155.0.1-pa-IN.xpi 593123 BLAKE2B 060e451620c43798086184cb889f8b0dc832d2594b511838ceb7a61c375b6825ed73caae40d783950e7b14cdc65c1c02d8f873d2e8e4ca02a0e1faed77a5abee SHA512 435dc7c22fd31f92d57e20c8103830c9d69460ea55ca0a9a5f314cb00df3904744150c8e793077a8eaa38de61d9f866db83a9d3e6c3cdf5150fdfafeec61cc5d +DIST firefox-155.0.1-pl.xpi 540962 BLAKE2B 73540794c97b089e85b7882af0bbce42d8c0862ca1cf65e91102af9dd15e964109ff7b157636bdce0474898ff99838bb843529acbe5082ff682df6841001b805 SHA512 bb0b80be2720aa1d8f79ef3337a85db072173a8648c25a19373b06da8839e8de4970eb8284534d88654595b376e362149de7da71993b43e79454ab732332523e +DIST firefox-155.0.1-pt-BR.xpi 512195 BLAKE2B 3c524729bfd67e4de06f06d23e18eb72ff4559cac1658acbe9f889d751a200013498e6792430fba69013d99a25f34fca96fcf230172fca87df0390de9bc7ac42 SHA512 aad9983a1140585b9cd2c8a37cb7b057b8147aacf64b4cb2aa6e5b18c30dab430582506cab8a8cd5af602ae3da2ccc68093de1b8478e942bf6ff86f2e15fe043 +DIST firefox-155.0.1-pt-PT.xpi 504000 BLAKE2B 46b631784d336bdbc0bda1ff7867b7ad863fa8639abcec1f711f8e8336fb51775d333015dc62ff04a722c4b296d9b14b62691f0d4983a235c4bf5cc71ee47f4d SHA512 d33eefe5b78e6936274a58c01e650c937fc7bea6dbcb8a5c35092f3492e693a6ee672be29d5074773ba1a2dab7a8613872b465a64c9c0172daf6944df46dbc87 +DIST firefox-155.0.1-rm.xpi 479764 BLAKE2B 40a878fe680d09d2e3c8e5c3eee56a8b09ea9bc07a5a9ca4f8335f0122283454b7c16a84cce8ef89362c351dbee19465fc062cef9189504fec3a835ae1a6f8d1 SHA512 0250b0ee05f9df28913450edd0004f40082cc175bb9d27e2d58a9605bc078ef24050e214a8bf22cf0eb776f7cfdf87d59e4f60e0ec147508ecfc2795b5c3e094 +DIST firefox-155.0.1-ro.xpi 527235 BLAKE2B fe8f9dc2e4048ce4e5cb6133900db194d830b3ccf6a52ba97ce79d0c356c836c6f755bdeca72268bd66fdf3b79f6291c33756f83767ff618b602c30922bcc910 SHA512 c8cf2bdaacfed1f742b0cd64dd3f3e3f40b31e6c78fe58d5fcc88651a2e3ab4bc078de6372b8f53b22b9ba940c4472b5750611091899db6714c3f98146e48b5d +DIST firefox-155.0.1-ru.xpi 613696 BLAKE2B c08d32ec38543e09fd5e950c6b1b7589d0a5893f454348d1613a33cc3f1e25f607617570228143c65f10b7eea5a437fe1922fdded2d1600ffda2115f5585a581 SHA512 a70d584ef64c59420af6ac91a30ef87dcf54ce86d2b3da938743390c6e0366d5706699f332db5eb983691fc821ac949f7e114f4177c62c20c43f75aedcd22577 +DIST firefox-155.0.1-sc.xpi 485399 BLAKE2B d815f0e409fdbaf7c945bb5ffa03b3f8bd0b8f05d1af702888e0cccb8b44667e69f8b80b520c513afd99e8258182379bde1a33ca297b549b536eec2bfd3a9c46 SHA512 f835f30dfd8fd41004241e6879a280eac29dfaaec9ff1d21219b8b8b4acbc5f4a8c1dd61623eef4abb4f1a5256191b3fa8d6323197f28fc317ac595f244cb3ba +DIST firefox-155.0.1-sco.xpi 392433 BLAKE2B 10650ed59fb1da63b687f9028e88e6e50695a081c513268f8301577a50857036e1008de0c924ece83bb5886829c0143b704997861fea54d102fcf1af4fc5f384 SHA512 5daf6f8cb1d6485bcd192b5ac1e6c0954542e7d073664113608e8b8786d5fbf0d23b4a02590955885aa4e4e367b0fc42876de5ddb55d13fcfd7a965f00746b31 +DIST firefox-155.0.1-si.xpi 470275 BLAKE2B 1980ed680f065a787d0b778256ef9165be80ac981511ceefb7a00e4fdb89998e9e8b1c8fc97e348dcae80db6dc1a9c860ad92556c79e10aff715b1873f1e348b SHA512 898bb24167f40d1797a40d5ff04709e0ad4a21dea313c9a005511246bb6b8ed53eafb4d7055461324b58de19911c895cd4f1f8f3d9272f4d6a0ee2e527784882 +DIST firefox-155.0.1-sk.xpi 547665 BLAKE2B 530a84c233a8fb583929157342eed0341fae6f90952d0c3ef2202c0dd9474d53223c5040371ad7f3b6230e8abeb3644c44bd431b1aa3cb02da5f31341dc20b84 SHA512 bfbc389ae5b600a5241433ed08215bd606b5ce9bb301ed7772f93444b4c504cd5fd442f0c68becea807d31093b52357259802fa52218057bd5777b27ba903a65 +DIST firefox-155.0.1-skr.xpi 517449 BLAKE2B 86b175f46144c92587956cbe10e05e51f618a5212e4b416cb59fa176cd659748d164e90e776ba6fe3f31a93755facfa3cfc69b8a1458173f4c401783dc39f290 SHA512 af73bcfafb93626b3a59a8ff0f93595946e12a4245add4fcecbb8ad803725562cab6b28de54ede840c0d924256d0a3712b86d5c35157ded04330e8a8fa940ae6 +DIST firefox-155.0.1-sl.xpi 512632 BLAKE2B 8268f32b8d86b217d72ef40056f4fc2855988a48395e9601acd99459595f877e87b5c2883f408364ab4745e7f01cdd79d39b1dfeb2a6c01af183f6f17b81a552 SHA512 ca35d36ca6833adc43ee4f22b5f121baf3e0a1ea72959af2adee6a1a82450b8beec307590dbd4d9f1684932f7ea374568c54c93c171099e6faec0e3c4f9c35c6 +DIST firefox-155.0.1-son.xpi 354587 BLAKE2B 3debaa0643fa96a36bfaaf6cbd11f5872c00b355cdb9fb7a7f158247759bbf78dce4c80b00d140243d3bc39b0c4a99d55df255846b7363ae27bc051ff8a53bde SHA512 15e93d0ae0bd6edd18ba0b28cc58095503c42a82aee45f3bfb31ed27df2d2e5b838c443bccb7a95f86443d9e3a5c8bed235ac3c3b92055a8be84477e50315436 +DIST firefox-155.0.1-sq.xpi 508109 BLAKE2B d4cfdbb34e263953c77a4a299b75ab7ec32d08756d675b3f420aa8765a23b4e2ca1de90be0d8bd4b1ce5bb2859391caf4dfd08096b15f29ea10fdec2aca19fde SHA512 1d666a636cd97dbdef7dd57d8321602750882bec79980bb1640f40335e746692a72867953af9c3cdd25acf7c5ffaff59edaf5d01e7f1332144219a3f566eefe9 +DIST firefox-155.0.1-sr.xpi 584199 BLAKE2B e495a89a49c38f1cb2749908b7529d12c44ca377f653c26a4b9fa5f28fe2afd5ac518b2fd976cb4f010ce629c7cf96c80a85111315fb798123486f738b295f81 SHA512 901839fe7d351c494f1d5beafb1c0dbd9c5fb84bdd1f453fad44cb67a3507dfa59143276179940f25bb4b5f6fe7fa593b9094bc9d3cc46d724404388487c6b99 +DIST firefox-155.0.1-sv-SE.xpi 506454 BLAKE2B 96055f72833366942a3c85be73f392b755600eec532c958627569ab9e7394c76072349d606a147555228760bcf8db184e67f33906b8b2af3eb73e9f3a8c52ba7 SHA512 b526146b130dc594120d987c1257cf119a9d200b98304d8b008c079ba460cff850843f07876fb6bdb6aa5de733b65f9f00770e3b8cb99c80e631a9113fb129a4 +DIST firefox-155.0.1-szl.xpi 411711 BLAKE2B e8eb0573bae51ffc7bbf085140514c8c463fc916471becb6fda9d8d5c41260942f7d7948c7ba2df989609c1f0973dbb1ed60774652a4c162f519847e88b4b07e SHA512 560783efab49bb7637dc87f26e824d1eaf0e6cb2ca92ed12118490ba9077f701e66ab753ac1696238e407752040908741b7a02eddc869338cc3a9dd555baa768 +DIST firefox-155.0.1-ta.xpi 413660 BLAKE2B f98adbc6b2db68927c9485dcdfa276e68992fbf5e336b02776b2f11388295b6726e2a9d977265141558ebb4ba608b5ae1091f7036a28b637a87082340c96caa3 SHA512 8bc4a08affc007e9e5f26cf7743b68e89624d3a9c95b7ca6f257ad01c7f6189f8b1beecd12c7bbd2544c2d797d5ef71c011b8c89a017479cdf2e783b46b26193 +DIST firefox-155.0.1-te.xpi 452584 BLAKE2B e90096ac01c1ae76c7f14c41ea3e233a72f28513c15781a72f7b6a8a02616ca708c07706f776e87b0c8c40285b907e895543fc23e7f18eaa1145dff7b0c0f63b SHA512 2d6029928801cf63ee080672e4973917c7d5546e3752306e66de1fd1cefcb0515d820f56cc0bd041479fa4305c3142b9ec2499a1b3566d33c61c539e959f32d0 +DIST firefox-155.0.1-th.xpi 572486 BLAKE2B 31d932224aa0336a901be0b7a453c907c8f03e8390a7dd395e16f3e9480acc355c623f735344210e1684a8f05369aea591d905fd0da868b5acb48a00514b106c SHA512 ad329bc1fceb61e3eb4af9508a703b4b7370bc736a60351daa665203183cd68ec6021ac621c9becb58c23bea2c2772e9e6aeb1741d277230371f5646d13fc616 +DIST firefox-155.0.1-tl.xpi 409224 BLAKE2B 18de9bd82398a4c3f0a23b91f9446930dde80ea2e839cf83bc21c17bb2fbdaadd1f6c0403be7be5ae48290e05b292ddee3baaaf6f8e87127ee8a3666545e83ad SHA512 c56ea25f7786fe66b2fc90b744f92f15e63daa496b3431619873cda0fde78fa8f753244455f91b36c3d7f53786a74cde5fc1ca8316447751c30ee2b4e48419eb +DIST firefox-155.0.1-tr.xpi 521325 BLAKE2B 359c0b3a60cef5d3b1b22ca99ae5547e415a45e73ebb527931858d784869642a2a631ec79efeb1551154aa8e4bae7fd0eacae2b94ccd25ffdf02889afe2b992d SHA512 82c3d4d822e6c16c9b6370dbce925f1a6dc0cd2a79771140d83b318468784c55f955fb6eae0c5592ad73de3c8d738846e1049744d8cd5188ee984de320bafa72 +DIST firefox-155.0.1-trs.xpi 399800 BLAKE2B 2b8ad03d145cfad84027668f014e384aa2caf37d845f2970c061aeeab5269c852cf6856bd45f10248f9d5f1350e827df548c8d64d3cc289e88a350a889c8d63f SHA512 5f241fa267486d413eaba88cf3532c4511b8eb42ffbdbed36907d8587b19eef34657d64b6660651bf87e1303352bd7a92976f8501ef3a73f871b363ac94347be +DIST firefox-155.0.1-uk.xpi 591351 BLAKE2B af2e2abf7dfea0ec1de9e24e44ece1aa594a444cdf5a614f5a18986469031eda535159736eb2f606ebe09feab328effcb1a7a20568f2aea732210d2019f18a90 SHA512 91a0963f682a3ee11f4cd9f40962f8278794ccb845252d775b18021487a8015cce67935a5d56b277d8b88a8e3aacc3bb511ddc99bdb64be4bfca19f480715a40 +DIST firefox-155.0.1-ur.xpi 434749 BLAKE2B 41693557d62d42df25a919772fc9af0e605631b1ffc8e3e2ab1525502fe880e725fdd6a233a9548813b55c6275f5790ea2851818ee64c870a27438a9fe686ba2 SHA512 c157e725c8c96e9b36803c99942ac3f59fbc78800ecea680144b79baa022acffbfd0a8648785262f1a13969fc0b3ca287ace5bd3d173e8f6ad84a4808175c8f2 +DIST firefox-155.0.1-uz.xpi 381691 BLAKE2B e0cf23445f2ebcb68bce01666b01fffd0c108b1f3954d766d4d4385374700d9f935674145ff19ef23960b4152260feb6423a952a2f8ef035e182949a52537db4 SHA512 5744774e46921632449831b37885589b193eede087e4e20ccbf227a173440025745c1cd6e443d9de896655b988d713ec0a24d0b221e6d5854c8f611f2cd09800 +DIST firefox-155.0.1-vi.xpi 547935 BLAKE2B 61bb455a62fe6f47e74cd44632498d3ceaf41cd582120e403bda9b11b5670736ee7fea6914799191f08251107b0c9faf42580caa835cf0398474e2313b6c6aa5 SHA512 5841c26d289d0e27f905d61913b2eaace02fd7668b78797886c059a7c58fe38f5403efc6965ff086ac4f5d71541e770a17c94c6335bb1c59bf513875c6827e0f +DIST firefox-155.0.1-xh.xpi 360264 BLAKE2B 7e9946dcaafc599ed1e810db8036651aa4aed98425fe5a615a5669eaa99b0f884df7659b8b7e4c1fe62ef12049be1142efe9b6197fb3cc6a8402d72d880c29f3 SHA512 f1501f619d9f2b962b1b7f189d52c5259d31f8476cd80a83bc982f54ad45075f60d28bd7979fad6f90fe8d95eaec23de578de9ba031b7ce9e9f595842eaff9aa +DIST firefox-155.0.1-zh-CN.xpi 533213 BLAKE2B 4f509855878f406d891a52435cd82d3a4692b93cafd1aee76188382fc68e7bc96b4e7e396e82697b6e73eed2727cc4a22d3adc8c1144504788cc3be9b6b315e1 SHA512 0254ea3dcb87bd51fdc6446e15985101984985de26a16b3ad60b69becc885660d1f8a8cde783d0f4eec49d9b75197c7eb135405c2c9a88d9b329ea25868cb0a2 +DIST firefox-155.0.1-zh-TW.xpi 539312 BLAKE2B 070182136cac1bc6e7d27524eb6ae439682c87d149a17727a48f56ef7d7362d47f5b9cb9b1c0dc6cdfa0a87c298686e3a72fbb89fd91bc605eb941aa1d8db473 SHA512 5ca9738a71c97cf5d7538ecd4052d5ec3488bf410a1e36abc6843d1098961744967ceb413cc26a0b8ba12fadba694679c1b0a1b3c303383ee20a8f96e651726c diff --git a/www-client/firefox-l10n/firefox-l10n-155.0.1.ebuild b/www-client/firefox-l10n/firefox-l10n-155.0.1.ebuild new file mode 100644 index 0000000000000..d0506fb86ca3d --- /dev/null +++ b/www-client/firefox-l10n/firefox-l10n-155.0.1.ebuild @@ -0,0 +1,186 @@ +# 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" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/rapid" +fi + +# 149.0 is when the firefox-l10n was introduced. +RDEPEND="!]\([^\"<>]*\)[\"<].*/\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 ee460021b9f1e..77d252ae007bc 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -211,6 +211,8 @@ DIST firefox-154-patches-02.tar.xz 14064 BLAKE2B 43fe3a4d309eed7fad5514d54a2a261 DIST firefox-154.0.1.source.tar.xz 811414168 BLAKE2B c3c67fbda172085c966521b8710286b91ea53fa5607f38d19a46d52e76ced44681d5bc979d9b1b0e8d6e4be54ffc0424000cc5408e55622fd716941188a69d03 SHA512 9141e34978c2ecbe1b267b3cc63136142625734618e67cbbbf6536e1427af66d01f19851200eba0db7c715991f39e7d5d0200abb9e2cd7c15d58a8a411b1b412 DIST firefox-154.0.source.tar.xz 811370872 BLAKE2B 7806cb56f721bd8fb0bcb1782765631f772b58600ea0f7389d7389d8635a3616d71162b090cb9d8cc8822b118b50b5b0f6d83c0831c34054b513da6193bcad38 SHA512 a77cd664982add628681167ef5939bd6bf0c894aa380cca66f9b5fb265947874d1e819d42264f1dd07c843f8a6dc020da268cca9ff1e064fca019de91af9b996 DIST firefox-155-patches-04.tar.xz 12860 BLAKE2B f16f2ce03d625f12c1512ab8271c6bd368b5774482b4173723fbfed7be4f37444f084d6b18c047310dc76ed4be42b18f5580934cc5e9afbb6058173c869a63df SHA512 8f341eaf640d3b75e95b152e36e59836ef7cacfa4182c8dd759e2303fadc3261c28a1f81440f1456aa5477ccbb53542f79599be021d208cf4b1a025eebce07ba +DIST firefox-155-patches-05.tar.xz 19468 BLAKE2B 463a5fe05041a97fe6479c362e3898d58d2dbd487bc2b860791a145c625e4a8a57b1646579947aeae28ab2d61dfedc0e003852a3447b9516b2001b8de78e74ee SHA512 a7a55b4eb27301536ab874044aca2b487091f8b63c7f9e1d7220507edeff738e06e043f1de2b8d7938c96a32d112bdeea39a43e38b4787b96894a5d211b16a83 +DIST firefox-155.0.1.source.tar.xz 811591200 BLAKE2B 961ba27f944df8814b4c8937fc1d73e11cc67882d607a52f6bee81aeb29fe6250941ff92b4fd16f9aa9c53827299d1b859577b11d1c5ed14ad2080c27671401e SHA512 6d137a7a315cb1d0aac1a3fe314af80fe290c49b7c2e47f8687b25d4720927b2a0dc71a3da9d75f6cab479067db114caa6732d17e888b0abfce99238a8af0f39 DIST firefox-155.0.source.tar.xz 810837272 BLAKE2B 2e043edb24f540c6e967c786c6ac5bfbd0942e9fb4b04fe0072b00efa8b104248a04aa7db297bb371e626f75d5b247c3648b188672ded646c1a716d64fdd6056 SHA512 24292681924edb9f0494eb77a7b19994039abbc3a8c0ba304f0e472b49a943838565723de983bc8ef08e019971e02a3014c8d241bb88c645a06a625c8ace0d6a 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-155.0.1.ebuild b/www-client/firefox/firefox-155.0.1.ebuild new file mode 100644 index 0000000000000..5452a23ef2d72 --- /dev/null +++ b/www-client/firefox/firefox-155.0.1.ebuild @@ -0,0 +1,1302 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-155-patches-05.tar.xz" + +LLVM_COMPAT=( 22 ) + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 +RUST_MIN_VER=1.90.0 + +PYTHON_COMPAT=( python3_{12..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=34.0 +WASI_SDK_LLVM_VER=23 + +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 wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry valgrind 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.127 + >=dev-libs/nspr-4.39 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + virtual/zlib:= + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libdrm + x11-libs/pango + x11-libs/pixman + dbus? ( + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-3.10.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 ) + ) + system-icu? ( >=dev-libs/icu-78.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-pipewire? ( >=media-video/pipewire-1.4.7-r2:= ) + system-png? ( >=media-libs/libpng-1.6.45:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + valgrind? ( dev-debug/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox:rapid + ~www-client/firefox-l10n-${PV}:0/esr" +else + RDEPEND+=" !www-client/firefox:esr + ~www-client/firefox-l10n-${PV}:0/rapid" +fi + +# 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" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10900M" + else + CHECKREQS_DISK_BUILD="9700M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="18700M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10900M" + else + CHECKREQS_DISK_BUILD="9700M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + export use_lto + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if [[ ${use_lto} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#915651 and bmo#1988166 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + rm -v "${WORKDIR}"/firefox-patches/*bgo-967694-musl-prctrl-exception-on-musl.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use loong; then + # Only the LP64D ABI of LoongArch64 is actively supported among + # the wider Linux ecosystem, so the assumption is safe. + export RUST_TARGET="loongarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Pre-built wasm-sandbox path manipulation. + if use wasm-sandbox ; then + if use amd64 ; then + export wasi_arch="x86_64" + elif use arm64 ; then + export wasi_arch="arm64" + else + die "wasm-sandbox enabled on unknown/unsupported arch!" + fi + + sed -i \ + -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \ + -e "s:%%WASI_ARCH%%:${wasi_arch}:" \ + -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \ + -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \ + toolkit/moz.configure || die "Failed to update wasi-related paths." + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \ + python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \ + js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + 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 + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # riscv-related options, bgo#947337, bgo#947338, bgo#977845 + if use riscv ; then + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + mozconfig_add_options_ac 'Disable JIT for RISC-V' --disable-jit + fi + + mozconfig_use_enable valgrind + + if use valgrind ; then + mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox + mozconfig_add_options_ac 'valgrind requirement' --disable-jemalloc + + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-pipewire + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + mozconfig_use_enable jumbo-build unified-build + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + mozconfig_add_options_ac "+hardened stl" --enable-stl-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + # wasm-sandbox + # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm-sandbox. + if use wasm-sandbox ; then + mozconfig_add_options_ac '+wasm-sandbox' --with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/" + else + mozconfig_add_options_ac 'no wasm-sandbox' --without-wasm-sandboxed-libraries + mozconfig_use_with system-harfbuzz system-graphite2 + fi + + ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + # PGO was moved outside lto block to allow building pgo without lto. + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + # Avoid compressing just-built instrumented Firefox with + # high levels of compression. Just use tar as a container + # to save >=10 minutes. + export MOZ_PKG_FORMAT=TAR + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + else + # Attempt to fix pgo hanging with gcc, bgo#966309. + export MOZ_REMOTE_SETTINGS_DEVTOOLS=1 + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use loong || use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on loong/ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + fi + + mozconfig_use_enable test tests + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_test() { + # https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html + local -a failures=() + + # Some tests respect this + local -x MOZ_HEADLESS=1 + + # Check testing/mach_commands.py + einfo "Testing with cppunittest ..." + ./mach cppunittest + local ret=$? + if [[ ${ret} -ne 0 ]]; then + eerror "Test suite cppunittest failed with error code ${ret}" + failures+=( cppunittest ) + fi + + if [[ ${#failures} -eq 0 ]]; then + einfo "Test suites succeeded" + else + die "Test suites failed: ${failures[@]}" + fi +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # 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-r4 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + + # Install the gfxtest binary on supported arches + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/gfxtest + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" || die "failed to set telemetry prefs" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/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 + + 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 +}