diff options
| author | Crucible <crucible@localhost> | 2026-10-15 03:05:03 -0500 |
|---|---|---|
| committer | Crucible <crucible@localhost> | 2026-10-15 03:05:03 -0500 |
| commit | 12d66102ecbcb4a4eef51d1b7f06abe9080be243 (patch) | |
| tree | 3fbf63175ea094d55f2853b4b70bcef5e48a6f57 | |
| parent | f2908082da3eb11b2ab459032e0b91aaf4433ff2 (diff) | |
| download | srcux-12d66102ecbcb4a4eef51d1b7f06abe9080be243.tar.gz srcux-12d66102ecbcb4a4eef51d1b7f06abe9080be243.tar.xz srcux-12d66102ecbcb4a4eef51d1b7f06abe9080be243.zip | |
141 files changed, 9805 insertions, 1516 deletions
diff --git a/app-admin/awscli/Manifest b/app-admin/awscli/Manifest index 328ba249578e..b0e14350a1a9 100644 --- a/app-admin/awscli/Manifest +++ b/app-admin/awscli/Manifest @@ -4,3 +4,4 @@ DIST aws-cli-2.37.13.gh.tar.gz 19748121 BLAKE2B 1101457801c8fde3674428a7063b0672 DIST aws-cli-2.37.4.gh.tar.gz 19473894 BLAKE2B ad6cc6bccb8521e6951feece0418dc4976fe088b35f6bb2be41cb82cb8ec85b3dafdedb5545187fa3a045cb29ff9c114d3f39ba7fdfbf22085c8cb8e00f4fc98 SHA512 e9af6b7f12da9f31182487d9e89bd234f817bcdc379cb5ef37467d5e23a07e84b0021fedfcc717c6c031508dad915553e074e2fa1dfd00198d1459d84de75bac DIST aws-cli-2.37.9.gh.tar.gz 19700332 BLAKE2B f24deee1bcfc03146536e3f87ec2a687be7a1888df5e0eb8fca91f0f13ab40875add8ba98c2b44b90bb8000efc05c063bb32e6e824caacde216c01e94d71245c SHA512 892591dfda26b89c5e75f9e313c2b0e2979b61c8ecc248e2d88d021ff1d08b8bcf417ff9bbda5a09e47a4fe20dd682a8656ad21524f2a1f5f062044f6e5c8c76 DIST aws-cli-2.38.0.gh.tar.gz 19762428 BLAKE2B ce13807a930b8dc76ee0b1f02fc4e9117d7960380476589886f9c4bbe4a56fd8cda9055065d09f7ddbc2563ba660472b94bee2d8af0c6ceadbc649b583683f97 SHA512 df85b8a46a579dfec0f7c0add69c23fe3507bd9550365b92547ec8d4b910ea1ea579a40c5ebcff3545b9f89234d262188ea436413258bdaf2aad10d77ce2a648 +DIST aws-cli-2.38.1.gh.tar.gz 19765680 BLAKE2B a80879a0f9979870710c68bb02256cfd2933b10fad606e44d0ee97ddf04c573c9a1052c5b795eca283458922ddf4ad70a60a223e90ed8ffd44847223b1039dff SHA512 c2e1cb7f74766144d73b6663435d3359c8a61e056ae38d179dc3f63aae8e28afaea81dfabfb18620ecdac35f9db7df2218f8a5b6e9db63543bdf113286715b26 diff --git a/app-admin/awscli/awscli-2.38.1.ebuild b/app-admin/awscli/awscli-2.38.1.ebuild new file mode 100644 index 000000000000..0271e6e9ae34 --- /dev/null +++ b/app-admin/awscli/awscli-2.38.1.ebuild @@ -0,0 +1,113 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 shell-completion + +MY_P=aws-cli-${PV} +DESCRIPTION="Universal Command Line Environment for AWS" +HOMEPAGE=" + https://github.com/aws/aws-cli/ + https://pypi.org/project/awscli/ +" +SRC_URI=" + https://github.com/aws/aws-cli/archive/${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +RDEPEND=" + >=dev-python/colorama-0.2.5[${PYTHON_USEDEP}] + >=dev-python/docutils-0.10[${PYTHON_USEDEP}] + >=dev-python/ruamel-yaml-0.15.0[${PYTHON_USEDEP}] + >=dev-python/prompt-toolkit-3.0.24[${PYTHON_USEDEP}] + >=dev-python/distro-1.5.0[${PYTHON_USEDEP}] + >=dev-python/awscrt-0.36.2[${PYTHON_USEDEP}] + >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +# bundled dependencies +RDEPEND+=" + >=dev-python/s3transfer-0.18.0[${PYTHON_USEDEP}] +" +TODO=" + dev-python/rsa[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + !app-admin/awscli-bin +" +BDEPEND=" + dev-python/flit-core[${PYTHON_USEDEP}] + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_RERUNS=5 +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # this package bundles botocore & s3transfer, but they are custom + # v2 branches that were never released and are incompatible with + # our release versions + + # strip overzealous upper bounds on requirements + sed -i -e 's:,<[=0-9.]*::' -e 's:==:>=:' pyproject.toml || die + # wcwidth isn't used + sed -i -e '/wcwidth/d' pyproject.toml || die +} + +python_test() { + local -x TZ=UTC + + local EPYTEST_DESELECT=( + # TODO + tests/functional/autocomplete/test_main.py::test_smoke_test_completer + tests/unit/customizations/ec2instanceconnect/test_websocket.py::TestWebsocket::test_connect_with_proxy + tests/unit/customizations/ec2instanceconnect/test_websocket.py::TestWebsocket::test_connect_with_proxy_but_no_proxy_env_empty + tests/unit/customizations/emr/test_emr_utils.py::TestEMRutils::test_which_with_existing_command + tests/unit/customizations/emr/test_emr_utils.py::TestEMRutils::test_which_with_non_existing_command + tests/unit/customizations/wizard/test_app.py + tests/unit/test_compat.py::TestGetPreferredEncoding::test_getpreferredencoding_with_env_var + ) + + # Some tests take a lot of memory, so run parallel-safe tests first. + local awscli_parallel_tests=( + tests/functional/[ac-z]*/ + tests/unit/ + ) + local botocore_parallel_tests=( + tests/functional/botocore/*/ + tests/functional/botocore/test_[cds-z]*.py + ) + #epytest "${botocore_parallel_tests[@]}" + epytest "${awscli_parallel_tests[@]}" + + local EPYTEST_IGNORE=( + "${botocore_parallel_tests[@]}" + "${awscli_parallel_tests[@]}" + ) + EPYTEST_XDIST= epytest tests/functional +} + +python_install_all() { + newbashcomp bin/aws_bash_completer aws + newzshcomp bin/aws_zsh_completer.sh _aws + + distutils-r1_python_install_all + + rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die +} diff --git a/app-containers/podman/Manifest b/app-containers/podman/Manifest index 4f5f3fd68b8d..0d38ec222fb2 100644 --- a/app-containers/podman/Manifest +++ b/app-containers/podman/Manifest @@ -7,3 +7,4 @@ DIST podman-6.0.1.tar.gz 20513090 BLAKE2B 7ad62803a09bfd6839c78cf958bda81f027f17 DIST podman-6.0.2.tar.gz 20516396 BLAKE2B cc0a0032a7f8f490a874bdc3d05b618f52e8d7c7597c70852feacff2cd145bb0ad127e686221237c31f4cccabeaa89465cd2f3234d8ab92eaecb71074796ece8 SHA512 1227f486d1c84c0d877fadf2627c2f491bd1634c2de036631b589a727a1dc3212297cf2d2d313c75b3556de1b0204205e664e70ccf8ebc0b0064d1136db9351e DIST podman-6.1.0.tar.gz 20956524 BLAKE2B 01ed3f93ce6ddf52911b16061fa339069061faf30c24bc40eacd8ba5a6daeb9e59b08bcc849806a933bdcac58c6f79001742df9a86dbb689e6b042a47ad23edf SHA512 3822eb564111f6cdcdce0f34d06e962cb40b1b34be158c2162334fe966bc314a66e8d164326ceed7ab1f1f87607bd13be1258ca9cfb274ea2a69f7409be40149 DIST podman-6.1.2.tar.gz 20980766 BLAKE2B 0314732573df6491b8e364d937eda14143a021b959ec43fe88839e0cd414446d30c95b661972069b5da77a374948dc8e8cf6c5c166bf932f9777d4a2939c1a40 SHA512 c17d05d4b5683a266290f91afa78945666f39f2dea3de8074bd3457083120f787532b6c88f4c00996ad309ce05b2c3cd50d91742aa315a10ace868d49adafb48 +DIST podman-6.1.4.tar.gz 21017012 BLAKE2B c3cfeeb199c0a1fc7d4a21349816decf7ab57dd9542f60e286b9b752d617ff1405beb831f1b644868092414fee4566694b0dfb1b4bed7b176820661dabff033c SHA512 46bd3a4ef7341a30a43582224a3c0a4c89cf0ea8fceac3c1ee03c0613981a6160afec1fede7a15f558f4174c9b0bf231f7447e461e9c2c87bbfaed8978ce41fc diff --git a/app-containers/podman/podman-6.1.4.ebuild b/app-containers/podman/podman-6.1.4.ebuild new file mode 100644 index 000000000000..9d9f1b34f9ed --- /dev/null +++ b/app-containers/podman/podman-6.1.4.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit go-module python-any-r1 tmpfiles toolchain-funcs linux-info + +DESCRIPTION="A tool for managing OCI containers and pods with Docker-compatible CLI" +HOMEPAGE="https://github.com/podman-container-tools/podman/ https://podman.io/" + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/podman-container-tools/podman.git" +else + SRC_URI="https://github.com/podman-container-tools/podman/archive/v${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${P/_rc/-rc}" + [[ ${PV} != *rc* ]] && \ + KEYWORDS="~amd64 ~arm64 ~loong ~riscv" +fi + +# main pkg +LICENSE="Apache-2.0" +# deps +LICENSE+=" BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" +SLOT="0" +IUSE="apparmor btrfs cron +seccomp selinux systemd wrapper" +RESTRICT="test" + +RDEPEND=" + app-containers/catatonit + >=app-containers/conmon-2.1.10 + >=app-containers/container-libs-0.68.0[extra(-)] + app-crypt/gpgme:= + dev-db/sqlite:3 + dev-libs/libassuan:= + dev-libs/libgpg-error:= + sys-apps/shadow:= + + apparmor? ( sys-libs/libapparmor ) + btrfs? ( sys-fs/btrfs-progs ) + wrapper? ( !app-containers/docker-cli ) + seccomp? ( sys-libs/libseccomp:= ) + selinux? ( sec-policy/selinux-podman ) + systemd? ( sys-apps/systemd:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + dev-go/go-md2man + >=dev-lang/go-1.26.0 +" + +PATCHES=( + "${FILESDIR}"/${PN}-5.5.2-togglable-seccomp.patch +) + +CONFIG_CHECK=" + ~USER_NS +" + +pkg_setup() { + use btrfs && CONFIG_CHECK+=" ~BTRFS_FS" + linux-info_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + default + + # assure necessary files are present + local file + for file in apparmor_tag btrfs_installed_tag systemd_tag; do + [[ -f hack/"${file}".sh ]] || die + done + + local feature + for feature in apparmor systemd; do + cat <<-EOF > hack/"${feature}"_tag.sh || die + #!/usr/bin/env bash + $(usex ${feature} "echo ${feature}" echo) + EOF + done + + cat <<-EOF > hack/btrfs_installed_tag.sh || die + #!/usr/bin/env bash + $(usex btrfs echo 'echo exclude_graphdriver_btrfs') + EOF + + # hardcode using system sqlite instead of bundled one + [[ -f hack/sqlite_tag.sh ]] && echo -e '#!/usr/bin/env bash\necho libsqlite3' > hack/sqlite_tag.sh || die +} + +src_compile() { + export ETCDIR="${EPREFIX}/etc" PREFIX="${EPREFIX}/usr" BUILD_ORIGIN="Gentoo Portage" + + # For non-live versions, prevent git operations which causes sandbox violations + # https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493 + [[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT="" EPOCH_TEST_COMMIT="" + + # Use proper pkg-config to get gpgme cflags and ldflags when + # cross-compiling, bug 930982. + if tc-is-cross-compiler; then + tc-export PKG_CONFIG + fi + + emake BUILDFLAGS="-v -work -x" GOMD2MAN="go-md2man" EXTRA_BUILDTAGS="$(usev seccomp)" SELINUXOPT= \ + all $(usev wrapper docker-docs) +} + +src_install() { + emake DESTDIR="${D}" SELINUXOPT= install install.completions $(usev wrapper install.docker-full) + + newconfd "${FILESDIR}"/podman-5.0.0_rc4.confd podman + newinitd "${FILESDIR}"/podman-5.0.0_rc4.initd podman + + newinitd "${FILESDIR}"/podman-restart-5.0.0_rc4.initd podman-restart + newconfd "${FILESDIR}"/podman-restart-5.0.0_rc4.confd podman-restart + + newinitd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.initd podman-clean-transient + newconfd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.confd podman-clean-transient + + if use cron; then + exeinto /etc/cron.daily + newexe "${FILESDIR}"/podman-auto-update-5.0.0.cron podman-auto-update + fi + + insinto /etc/logrotate.d + newins "${FILESDIR}/podman.logrotated" podman + + exeinto /etc/user/init.d + newexe "${FILESDIR}/podman-5.0.0_rc4.user.initd" podman + + insinto /etc/user/conf.d + newins "${FILESDIR}/podman-5.0.0_rc4.user.confd" podman +} + +pkg_postinst() { + tmpfiles_process podman.conf $(usev wrapper podman-docker.conf) +} diff --git a/app-editors/vscode/Manifest b/app-editors/vscode/Manifest index abdcfe54ca21..fb2c7c2b1835 100644 --- a/app-editors/vscode/Manifest +++ b/app-editors/vscode/Manifest @@ -1,6 +1,6 @@ -DIST vscode-1.140.0-amd64.tar.gz 348920118 BLAKE2B 05413555dd8f78fbbd5803d9a2f29dace870494fc9eb6671b3c992d409acfa2d3f1a545e2780fe270cddca05a2e44e5a8dc6b5818507d2870c3861a9572b4192 SHA512 65f28c1dc30bb7a95ae9bcc4c8edb06f89e7a17abde2a6c9a2ed2274ccbf4631bac1bde73057b7ec9a498bb313520f045a035baf9d1672621444ad6813dfabac -DIST vscode-1.140.0-arm.tar.gz 226247626 BLAKE2B 98c7a19efc142ef2939d8ce36b6027240f9634d814d0583fa7c304db95229797ccb2760b6ceba3fb7fc95e1c16284ca05428141a9b9823482de40ff1931e5719 SHA512 356472101388c92125b42e57021c5537d0b00efcf0032fe8223d390cf9bf91c95a146d2460817f4e666513bec062fb4b8c55bb858ca578b3c734e8095b8fac22 -DIST vscode-1.140.0-arm64.tar.gz 338341237 BLAKE2B 4287fa88632554a1e56a83f31f69e4c3e4832e5a4b4e39a0c4b910debe7ff90a35a1fa71d9dd7ab540a94468afe8dee80453ae1d86dea0a255c75d50abebc8d1 SHA512 9ef13a3bb68d2fb53bbf606231bc26ce6e7ee4e1cee907bde6c2bd1ad75ab296bcf778e7916fc144b5fd28b99dee29e57fe178a324d72132935d36964eca22be DIST vscode-1.141.0-amd64.tar.gz 360484982 BLAKE2B afc23400831e5c7b1f54066c410a9891ba4d606b670f0cd41b941a09469137c268c7fa8454b0372f8fe137201c19bb189685215d637b508aa507ded9f92a59be SHA512 ce40fd54897be38bc127ea3534c9f8b00b796e695c674927da1cc007afaebd7dab8939ff24ab913d0abd04823a99e1980cf682ae5abfa1d40f15634f014b3eca DIST vscode-1.141.0-arm.tar.gz 226897902 BLAKE2B 7b384ddddefd92f02a2b1409f14520395190674063b67bd94d98c93f4794cceea3e8e58ed591766de09676be509c453eaabfd3f995b031e0f0d01eee647540a6 SHA512 3835b88b81038dfb0117893997d2b408e2a09eeca8d7b43a42550419a9a955758c5c34fd4b195554575f403bd774646919571b48d9c4bf8fa91bd7b8158a3996 DIST vscode-1.141.0-arm64.tar.gz 349562023 BLAKE2B eec9f0b35a525f898a24943098ff0bc58060a04d4a88764d22cb1a32d33add086ce3c01d9f2172fc2c76995439f1f3d10cbe7b8e1f7dfe19db4de458b8e01402 SHA512 c62c6fff86c84d689e6229694dbf8b4c6734e3ca368f170d90479faab392ddd4dfa4760e4a7fc0c1a8a800777327f5c98643e53e7b9013f6a621c7f7d6b6e6e9 +DIST vscode-1.142.0-amd64.tar.gz 345700834 BLAKE2B a0d03d94c999f9860deb5fc489fab76b0e8e04c358a257780fb3fd7ac8fae65e0bece063ae0c87c48757a87171e5ce64255dc66a4d953e2132226117c8c4a329 SHA512 930a22d22d7f811230a6d63842d0f33be1460eae2bd485ea39dd893026e808c2312a097187ec5bf1ca86b446d852c62ea85cde1a3933106f32e0f22ae99d8221 +DIST vscode-1.142.0-arm.tar.gz 228124779 BLAKE2B fb27d617a7d22939283e72581c2b41aec4d6374632e3d46a880e1e0aef2f7764bf3d3795a72f135533c229ee4304c7fee50afbf447e4211d010cb0ea269a5eb2 SHA512 f3bf2f03e5bcdb848c1865ebcab3785861e5d2b693ee98be3e6d5ce28e0d76e25539d6db1f777824ce85f95008bf206715d1bf2a15fad63d0ec179fb2caa2094 +DIST vscode-1.142.0-arm64.tar.gz 337738865 BLAKE2B b80228b1d9a76d95a04dcebeacef7f0d59d62bc5c12c873b98232741ada728172572a3acafda3ddcf897977813834847142abd511347073a4a6146145a848867 SHA512 3c912962bc5d558c01f5d0e16a42ae2e089cd178d9661ab042245b11e11f86e3427895a780bc9ea5359cf34e63c7dba3c7ef695e9d272c9e587dde642fd06991 diff --git a/app-editors/vscode/vscode-1.140.0.ebuild b/app-editors/vscode/vscode-1.142.0.ebuild index 9cf66870460a..9cf66870460a 100644 --- a/app-editors/vscode/vscode-1.140.0.ebuild +++ b/app-editors/vscode/vscode-1.142.0.ebuild diff --git a/dev-cpp/tlfloat/files/tlfloat-1.17.1_p20250711-libcxx.patch b/dev-cpp/tlfloat/files/tlfloat-1.17.1_p20250711-libcxx.patch new file mode 100644 index 000000000000..dff96ff8d004 --- /dev/null +++ b/dev-cpp/tlfloat/files/tlfloat-1.17.1_p20250711-libcxx.patch @@ -0,0 +1,12 @@ +Fix build with libc++ +Upstream PR: https://github.com/shibatch/tlfloat/pull/6 +--- a/src/include/tlfloat/tlfloat.hpp ++++ b/src/include/tlfloat/tlfloat.hpp +@@ -8,6 +8,7 @@ + #define __TLFLOAT_HPP_INCLUDED__ + + #include <cstdio> ++#include <type_traits> + + #include <tlfloat/bigint.hpp> + diff --git a/dev-cpp/tlfloat/tlfloat-1.17.1_p20250711.ebuild b/dev-cpp/tlfloat/tlfloat-1.17.1_p20250711.ebuild index f954b85a2097..2e016dda4015 100644 --- a/dev-cpp/tlfloat/tlfloat-1.17.1_p20250711.ebuild +++ b/dev-cpp/tlfloat/tlfloat-1.17.1_p20250711.ebuild @@ -22,7 +22,10 @@ KEYWORDS="~amd64 ~arm64 ~riscv" IUSE="test" RESTRICT="!test? ( test )" -PATCHES=( "${FILESDIR}"/${P}-fPIC.patch ) +PATCHES=( + "${FILESDIR}"/${P}-fPIC.patch + "${FILESDIR}"/${P}-libcxx.patch +) src_configure() { local mycmakeargs=( diff --git a/dev-java/ant/Manifest b/dev-java/ant/Manifest index 8202ae31468b..ea868e411f84 100644 --- a/dev-java/ant/Manifest +++ b/dev-java/ant/Manifest @@ -1,2 +1,4 @@ DIST apache-ant-1.10.15-src.tar.xz 3780456 BLAKE2B c157b488ac5f207daf5afcec3368395cacd44d82e0b8e19cbdf637e8ea43bafd340fcb13aede1292f7a0b31ae82a968831c51dabebfccf2fafb6479aa79f7dc4 SHA512 7513c0909abcc2ebcbb552ec97eaa35f476e57fec54022755d2e83d9d6df5295e0d75274e687208a4689a30592c19a0df041dff511dd3690627b1734ee2171c5 DIST apache-ant-1.10.15-src.tar.xz.asc 833 BLAKE2B e8741004b141955c729778cb987034f133af174dfc07c75976c8eda13272703b9b6158c68594f54dfef47c0f546c43cc97176b2a9193263076251a75b2f12129 SHA512 3585f32ef230e502db6a376d6343c74eae390931ae6a5c842b668eda6fbce1557e5d400001bbb244544c186e9e51cae4c2c05ccd6ff38cdbb16899aff5d48659 +DIST apache-ant-1.10.18-src.tar.xz 3842048 BLAKE2B e26567ec836f6c9c964d980cb084b7fba506e5ac757ce87fe9ee8f1e6913a027b41c693f4c253a9bad89b445b7f4c769e5e0bc7c3176aa3132a68ab92cf382d8 SHA512 6749e9926996462f4c8934188f4d93a8f7accc38b6401567aef04d77ff6c253d501817c359b6e00bd89335ece0d1c992e92ba68937f2f2b4293049c0253fa57a +DIST apache-ant-1.10.18-src.tar.xz.asc 256 BLAKE2B 8495f1ce42aeef5dddcd71c218175603c4aa14fc1eae73c8ec48cd86a36cc582c832c989072729b91ec8fa03855f8c238e156960c6c8f4767d9a276c391cbb37 SHA512 60ba3e9b39e987160d2e2f1da99f962d6f0a19cf26c9ac172bac3fe9d5da4cbe2d78fa28d946e8dc4ef17abc072f73d065b690a093e30ad20c3c089cb591289e diff --git a/dev-java/ant/ant-1.10.15-r1.ebuild b/dev-java/ant/ant-1.10.15-r2.ebuild index d1dce6837d65..93e1eeff4140 100644 --- a/dev-java/ant/ant-1.10.15-r1.ebuild +++ b/dev-java/ant/ant-1.10.15-r2.ebuild @@ -61,7 +61,7 @@ DEPEND=" test? ( dev-java/antunit:0 dev-java/bsf:2.3[javascript] - dev-java/bsh:0 + <=dev-java/bsh-2.1.1-r9999:0 dev-java/hamcrest-library:1.3 dev-java/xerces:2 ) diff --git a/dev-java/ant/ant-1.10.18.ebuild b/dev-java/ant/ant-1.10.18.ebuild new file mode 100644 index 000000000000..d61611a484ff --- /dev/null +++ b/dev-java/ant/ant-1.10.18.ebuild @@ -0,0 +1,386 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +JAVA_PKG_IUSE="doc source test" +JAVA_TESTING_FRAMEWORKS="junit-4" + +inherit java-pkg-2 java-pkg-simple verify-sig prefix + +DESCRIPTION="Java-based build tool similar to 'make' that uses XML configuration files" +HOMEPAGE="https://ant.apache.org/" +SRC_URI="mirror://apache/ant/source/apache-${P}-src.tar.xz + verify-sig? ( https://downloads.apache.org/ant/source/apache-${P}-src.tar.xz.asc )" +S="${WORKDIR}/apache-${P}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x64-macos ~x64-solaris" +IUSE="antlr bcel bsf commonslogging commonsnet imageio jai jakartamail javamail jdepend + jmf jsch junit junit4 junitlauncher log4j oro regexp resolver swing testutil xalan xz" + +REQUIRED_USE=" + junit4? ( junit ) + test? ( bsf ) + testutil? ( junit ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ant.apache.org.asc" +BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-apache-ant-20260402 )" +# jdk-11:* because it needs java/util/spi/ToolProvider, available since Java 9. +DEPEND=" + >=virtual/jdk-11:* + bcel? ( dev-java/bcel:0 ) + bsf? ( dev-java/bsf:2.3 ) + commonslogging? ( >=dev-java/commons-logging-1.3.5-r1:0 ) + commonsnet? ( dev-java/commons-net:0 ) + jai? ( dev-java/sun-jai-bin:0 ) + jakartamail? ( dev-java/jakarta-mail:0 ) + javamail? ( + dev-java/jakarta-activation-api:1 + dev-java/javax-mail:0 + ) + jdepend? ( >=dev-java/jdepend-2.10-r1:0 ) + jsch? ( dev-java/jsch:0 ) + junit4? ( dev-java/junit:4 ) + junit? ( dev-java/junit:4 ) + junitlauncher? ( dev-java/junit:5[vintage] ) + log4j? ( >=dev-java/log4j-12-api-2.25.2:0 ) + oro? ( dev-java/jakarta-oro:2.0 ) + regexp? ( dev-java/jakarta-regexp:1.4 ) + resolver? ( dev-java/xml-commons-resolver:0 ) + test? ( + dev-java/antunit:0 + dev-java/bsf:2.3[javascript] + >=dev-java/bsh-bsf-engine-3.0.0_beta1:0 + dev-java/hamcrest-library:1.3 + dev-java/xerces:2 + ) + xalan? ( + dev-java/xalan:0 + dev-java/xalan-serializer:0 + ) + xz? ( dev-java/xz-java:0 ) +" +RDEPEND=" + !dev-java/ant-apache-regexp + !dev-java/ant-apache-log4j + !dev-java/ant-apache-xalan2 + !dev-java/ant-commons-logging + !<dev-java/ant-core-1.10.14 + !dev-java/ant-swing + !dev-java/ant-junit4 + !dev-java/ant-testutil + !dev-java/ant-junitlauncher + !dev-java/ant-jai + !dev-java/ant-commons-net + !dev-java/ant-apache-bsf + !dev-java/ant-jmf + !dev-java/ant-apache-oro + !dev-java/ant-javamail + !dev-java/ant-junit + !dev-java/ant-jdepend + !dev-java/ant-antlr + !dev-java/ant-apache-bcel + !dev-java/ant-apache-resolver + !dev-java/ant-jsch + !dev-java/ant-xz + >=virtual/jre-1.8:* +" + +DOCS=( CONTRIBUTORS INSTALL NOTICE README WHATSNEW ) +PATCHES=( + "${FILESDIR}/1.10.9-launch.patch" # reusing this patch since the script has not changed + "${FILESDIR}/ant-1.10.14-AntlibTest.patch" # skips 1 of 6 tests + "${FILESDIR}/ant-1.10.14-AntTest.patch" # skips 1 of 32 tests + "${FILESDIR}/ant-1.10.14-JavaTest.patch" # skips 12 of 38 tests + "${FILESDIR}/ant-1.10.14-LinkTest.patch" # skips 4 of 67 tests + "${FILESDIR}/ant-1.10.14-PathTest.patch" # skips 1 of 33 tests +) + +JAVADOC_SRC_DIRS=( + ant + ant-launcher/src/main +) +JAVA_TEST_GENTOO_CLASSPATH=" + bsh-bsf-engine + hamcrest-library-1.3 + junit-4 + xerces-2 +" +JAVA_TEST_RESOURCE_DIRS=( + "src/etc/testcases" + "src/main" +) +JAVA_TEST_SRC_DIR="src/tests/junit" + +# $1 ant-apache-bsf (source directory) +# $2 bsf-2.3 (classpath of external dependency) +taskdeps() { + if [[ ${task} == $1 ]]; then + JAVA_CLASSPATH_EXTRA="${2}" + JAVADOC_CLASSPATH+=" ${2}" + JAVADOC_SRC_DIRS+=( "${task}/src/main" ) + JAVA_RESOURCE_DIRS="${3}" + fi +} + +src_prepare() { + java-pkg-2_src_prepare + java-pkg_clean ! -path "./src/etc/*" # keep test resources + + eprefixify "src/script/ant" + + ANT_TASKS=( + $(use antlr && echo ant-antlr) # no dependencies + $(use bcel && echo ant-apache-bcel) + $(use bsf && echo ant-apache-bsf) # REQUIRED_USE for tests + $(use log4j && echo ant-apache-log4j) + $(use oro && echo ant-apache-oro) # ORO is retired - replace with java.util.regex? + $(use regexp && echo ant-apache-regexp) + $(use resolver && echo ant-apache-resolver) + $(use xalan && echo ant-apache-xalan2) + $(use commonslogging && echo ant-commons-logging) + $(use commonsnet && echo ant-commons-net) + $(use imageio && echo ant-imageio) # no dependencies + $(use jai && echo ant-jai) + $(use jakartamail && echo ant-jakartamail) + $(use javamail && echo ant-javamail) + $(use jdepend && echo ant-jdepend) + $(use jmf && echo ant-jmf) # no dependencies + $(use jsch && echo ant-jsch) + $(use junit && echo ant-junit) # REQUIRED_USE for junit4 and for testutil + $(use junit4 && echo ant-junit4) + $(use junitlauncher && echo ant-junitlauncher) + # depends on "com.ibm.netrexx:netrexx:2.0.5" which is + # available on https://www.netrexx.org/downloads.nsp and states: + # "IBM's last NetRexx release, suitable for JVM versions 1.5 and below [...]" + # $(use netrexx && echo ant-netrexx) # src/etc/poms/ant-netrexx/pom.xml + $(use swing && echo ant-swing) # no dependencies + $(use testutil && echo ant-testutil) + $(use xz && echo ant-xz) + ) + + # defaultManifest.mf + sed -e "s:\${project.version}:${PV}:" \ + -i src/main/org/apache/tools/ant/defaultManifest.mf || die + + # version.txt + local mydate="$(date '+%B %d %Y')" + echo "VERSION=${PV}" > src/main/org/apache/tools/ant/version.txt || die + echo "DATE=${mydate}" >> src/main/org/apache/tools/ant/version.txt || die + + # src directory for ant.jar + mkdir ant || die "cannot create src directory for ant" + cp -r {src/main/,ant}/org || die "cannot copy ant sources" + + # resources directory for ant.jar according to lines 317-325 src/etc/poms/ant/pom.xml + local INCLUDES=( $( + sed -n '/<resources>/,/<\/resources>/p' \ + src/etc/poms/ant/pom.xml \ + | grep org \ + | sed -e 's:.*<include>\(.*\)</include>:\1:' || die + )) + cp -r {src/,ant}/resources || die "cannot copy ant resources" + pushd src/main > /dev/null || die "pushd src/main" + cp --parents -v "${INCLUDES[@]}" ../../ant/resources || die "CANNOT" + popd > /dev/null || die "popd" + + # Remove sources according to lines 158-187 src/etc/poms/ant/pom.xml + # We don't remove anything from src/main/org + local EXCLUDES=$( + sed -n '/<excludes>/,/<\/excludes/p' \ + src/etc/poms/ant/pom.xml \ + | grep org \ + | sed -e 's:<exclude>\(.*\)</exclude>:ant/\1:' || die + ) + rm -r ${EXCLUDES} || die + # Remove one more file directly, could not get it with sed. + rm ant/org/apache/tools/ant/taskdefs/optional/ANTLR.java || die + + # Same handling for everything between <testExcludes> </testExcludes> + # Removing non-existing files is not possible: We ignore them ( grep -v ). + local TEST_EXCLUDES=$( + sed -n '/<testExcludes>/,/<\/testExcludes/p' \ + src/etc/poms/ant/pom.xml \ + | grep org \ + | grep -v CommonsLoggingListener \ + | grep -v Log4jListener \ + | sed -e 's:<exclude>\(.*\)</exclude>:src/tests/junit/\1:' || die + ) + rm -r ${TEST_EXCLUDES} || die + + # Prepare a separate JAVA_SRC_DIR directory for each jar file to be created. + einfo "Copy source files of ant-tasks" + local task + for task in ant-launcher "${ANT_TASKS[@]}"; do + # "${task}/src/main" will be JAVA_SRC_DIR + mkdir -p "${task}/src/main" || die "mkdir ${task}" + # Read from pom.xml the file names which can still contain wildcards + local INCLUDES=( $( + sed -n '/<includes>/,/<\/includes>/p' "src/etc/poms/${task}/pom.xml" \ + | grep org \ + | sed -e 's:.*<include>\(.*\)</include>:\1:' || die + )) + local sourcefile + # Resolve wildcards in file names using find and copy the files to the corresponding + # "${task}"/src/main directory + # echo "${INCLUDES[@]}" + for sourcefile in "${INCLUDES[@]}"; do + # einfo "${task}: ${sourcefile}" + # Parameter substitution % to remove trailing slash from ${sourcefile}. + # Applies to ant-jdepend and ant-junitlauncher where find would otherwise fail. + find \ + -path "./src/*/${sourcefile%/}" \ + -exec cp -r --parents "{}" \ + "${task}/src/main" \; + done + # tree "${task}" + done + + # JAVA_RESOURCE_DIRS for ant-junit + mkdir -p ant-junit/src/resources/org/apache/tools/ant/taskdefs/optional/junit/xsl \ + || die "junit resource dir" + cp src/etc/{junit-frames,junit-noframes,junit-frames-saxon,junit-noframes-saxon}.xsl \ + ant-junit/src/resources/org/apache/tools/ant/taskdefs/optional/junit/xsl \ + || die "junit resources" +} + +src_compile() { + einfo "Compiling ant-launcher.jar" + JAVA_JAR_FILENAME="ant-launcher.jar" + JAVA_MAIN_CLASS="org.apache.tools.ant.launch.Launcher" + JAVA_SRC_DIR="ant-launcher/src/main" + java-pkg-simple_src_compile + JAVA_GENTOO_CLASSPATH_EXTRA+=":ant-launcher.jar" + rm -r target || die + + einfo "Compiling ant.jar" + JAVA_JAR_FILENAME="ant.jar" + JAVA_LAUNCHER_FILENAME="ant" + JAVA_MAIN_CLASS="org.apache.tools.ant.Main" + JAVA_RESOURCE_DIRS="ant/resources" + JAVA_SRC_DIR="ant" + java-pkg-simple_src_compile + JAVA_GENTOO_CLASSPATH_EXTRA+=":ant.jar" + rm -r target || die + + local task + for task in "${ANT_TASKS[@]}"; do + einfo "Compiling ${task}" + JAVA_JAR_FILENAME="${task}.jar" + JAVA_MAIN_CLASS="" + JAVA_RESOURCE_DIRS="" + JAVA_SRC_DIR="" + + JAVA_SRC_DIR="${task}/src/main" + taskdeps ant-apache-bcel bcel + taskdeps ant-apache-bsf bsf-2.3 + taskdeps ant-apache-log4j log4j-12-api + taskdeps ant-apache-oro jakarta-oro-2.0 + taskdeps ant-apache-regexp jakarta-regexp-1.4 + taskdeps ant-apache-resolver xml-commons-resolver + taskdeps ant-apache-xalan2 xalan + taskdeps ant-commons-logging commons-logging + taskdeps ant-commons-net commons-net + taskdeps ant-jai sun-jai-bin + taskdeps ant-jakartamail jakarta-mail + taskdeps ant-javamail 'javax-mail jakarta-activation-api-1' + taskdeps ant-jdepend jdepend + taskdeps ant-jsch jsch + taskdeps ant-junit junit-4 ant-junit/src/resources + taskdeps ant-junit4 junit-4 + taskdeps ant-junitlauncher junit-5 + # $(use netrexx && echo ant-netrexx) + taskdeps ant-xz xz-java + + java-pkg-simple_src_compile + JAVA_GENTOO_CLASSPATH_EXTRA+=":${task}.jar" + rm -fr target || die + done + use doc && ejavadoc +} + +src_test() { + # Avoid "--with-dependencies" as used by JAVA_TEST_GENTOO_CLASSPATH. + # dev-java/antunit has a circular dependency with dev-java/ant[test] + JAVA_GENTOO_CLASSPATH_EXTRA+=":$(java-pkg_getjars --build-only antunit)" + # according to line 115 src/etc/poms/ant/pom.xml + jar -cvf src/etc/testcases/org/apache/tools/ant/taskdefs/test2-antlib.jar \ + -C src/etc/testcases taskdefs/test.antlib.xml || die "cannot test2-antlib.jar" + + JAVA_TEST_EXCLUDES=( + # according to lines 1956-1964 build.xml (abstract classes, not testcases) + org.apache.tools.ant.taskdefs.TaskdefsTest + org.apache.tools.ant.BuildFileTest + org.apache.tools.ant.util.regexp.RegexpMatcherTest + org.apache.tools.ant.util.regexp.RegexpTest + org.apache.tools.ant.types.selectors.BaseSelectorTest + # according to line 1970 build.xml (helper classes, not testcases) + org.apache.tools.ant.TestHelper + # lines 2097-2102 build.xml (interactive tests) + org.apache.tools.ant.taskdefs.TestProcess # 1. No runnable methods + # 1) testAll(org.apache.tools.ant.taskdefs.InitializeClassTest) + # /var/tmp/portage/dev-java/ant-1.10.14/work/apache-ant-1.10.14/ + # src/etc/testcases/taskdefs/initializeclass.xml:24: Java returned: 1 + # <pathelement path="${build.tests.value}"/> + # <pathelement location="${java.home}/lib/classes.zip"/> + org.apache.tools.ant.taskdefs.InitializeClassTest # Tests run: 1, Failures: 1 + org.apache.tools.mail.MailMessageTest # all tests in this test-class fail + org.apache.tools.ant.taskdefs.condition.HttpTest # needs network access + org.apache.tools.ant.taskdefs.GetTest # needs network access + ) + +# tests with patches to be revisited +# JAVA_TEST_RUN_ONLY=( +# org.apache.tools.ant.taskdefs.AntlibTest # Tests run: 6, Failures: 1 test2-antlib.jar? +# org.apache.tools.ant.taskdefs.AntTest # Tests run: 32, Failures: 1 +# org.apache.tools.ant.taskdefs.JavaTest # Tests run: 38, Failures: 12 +# org.apache.tools.ant.taskdefs.modules.LinkTest # Tests run: 67, Failures: 4 +# org.apache.tools.ant.types.PathTest # Tests run: 33, Failures: 1 +# ) + + # according to lines 276-297 src/etc/poms/ant/pom.xml + JAVA_TEST_EXTRA_ARGS=( + -Dant.home="${ANT_HOME}" + -Dbuild.classes.value=../../../target/test-classes # needed for org.apache.tools.ant.taskdefs.SignJarTest + -Dbuild.tests.value=target/test-classes + -Doffline=true + -Dant.test.basedir.ignore=true + ) + java-pkg-simple_src_test +} + +src_install() { + java-pkg_dojar ant.jar ant-launcher.jar + + for task in "${ANT_TASKS[@]}"; do + java-pkg_dojar "${task}.jar" + java-pkg_register-ant-task --version "${PV}" "${task}" + done + + dobin src/script/ant + + dodir /usr/share/ant/bin + for each in antRun antRun.pl runant.pl runant.py ; do + dobin "${S}/src/script/${each}" + done + + insinto /usr/share/ant/etc + doins -r src/etc/*.xsl + insinto /usr/share/ant/etc/checkstyle + doins -r src/etc/checkstyle/*.xsl + + echo "ANT_HOME=\"${EPREFIX}/usr/share/ant\"" > "${T}/20ant" + doenvd "${T}/20ant" + + einstalldocs + if use doc; then + java-pkg_dojavadoc target/api + docinto html + dodoc -r manual + fi + + use source && java-pkg_dosrc src/main/* +} diff --git a/dev-java/bsh-bsf-engine/Manifest b/dev-java/bsh-bsf-engine/Manifest new file mode 100644 index 000000000000..f3e4e2170f32 --- /dev/null +++ b/dev-java/bsh-bsf-engine/Manifest @@ -0,0 +1 @@ +DIST bsh-3.0.0_rc1.tar.gz 798599 BLAKE2B 7c397697419a5032a18ec93ca192289dae413930cb9f708b38fb223de2e7ce1309e800b17b3c8fdaab88b41a098d3945d454fb12010cd7385f9c95f7d0de6fb4 SHA512 905b093cdeb2226202cc9bfcb8ad87129f415531d6532db4f5d9e111dc3b22474ce8704a2129e0d41448f8f147a45a409b457d78bc3e480e1555e74c75b7135d diff --git a/dev-java/bsh-bsf-engine/bsh-bsf-engine-3.0.0_rc1.ebuild b/dev-java/bsh-bsf-engine/bsh-bsf-engine-3.0.0_rc1.ebuild new file mode 100644 index 000000000000..bbd9d88275fd --- /dev/null +++ b/dev-java/bsh-bsf-engine/bsh-bsf-engine-3.0.0_rc1.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +JAVA_PKG_IUSE="doc source test" +JAVA_TESTING_FRAMEWORKS="junit-4" + +inherit java-pkg-2 java-pkg-simple + +DESCRIPTION="Beanshell BSF engine" +HOMEPAGE="https://github.com/beanshell/beanshell" +SRC_URI="https://github.com/beanshell/beanshell/archive/${PV/_rc/RC}.tar.gz -> bsh-${PV}.tar.gz" +S="${WORKDIR}/beanshell-${PV/_rc/RC}" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64" + +CP_DEPEND=" + ~dev-java/bsh-${PV}:0 + dev-java/bsf:2.3 +" + +DEPEND=" + ${CP_DEPEND} + >=virtual/jdk-1.8:* +" + +RDEPEND=" + ${CP_DEPEND} + >=virtual/jre-1.8:* +" + +DOCS=( {CHANGES,HISTORY,MIGRATION,README}.md NOTICE ) + +# JAVA_LAUNCHER_FILENAME="bsh-console" +# JAVA_MAIN_CLASS="bsh.Console" +# JAVA_RESOURCE_DIRS="src/main/resources" +JAVA_SRC_DIR="bsh-bsf-engine/src/main/java" +JAVA_TEST_GENTOO_CLASSPATH="junit-4" +JAVA_TEST_SRC_DIR="bsh-bsf-engine/src/test/java" diff --git a/dev-java/bsh-bsf-engine/metadata.xml b/dev-java/bsh-bsf-engine/metadata.xml new file mode 100644 index 000000000000..5e0507412430 --- /dev/null +++ b/dev-java/bsh-bsf-engine/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>java@gentoo.org</email> + <name>Java</name> + </maintainer> + <upstream> + <doc>https://beanshell.org/manual/bsf.html</doc> + </upstream> + <origin>srcux</origin> +</pkgmetadata> diff --git a/dev-java/bsh/Manifest b/dev-java/bsh/Manifest index f4efff50c5dc..6c830a929dc9 100644 --- a/dev-java/bsh/Manifest +++ b/dev-java/bsh/Manifest @@ -1 +1,2 @@ DIST bsh-2.1.1.tar.gz 1922883 BLAKE2B d60ebfab96f81a17120733887468571dd991dce663d725d9bee2dc44146e320d36600be70a3b7f76516645030d40fcda17db70989d54e98ffdc69c91738bcaf1 SHA512 585fcb9fdc8c36063a7d4dfe9a909e68b61d611f023731c955b7ced3f894cb6c48b0d463735e6825cb6f0181ba97902279212d285e325267aa533490e0bbfe00 +DIST bsh-3.0.0_rc1.tar.gz 798599 BLAKE2B 7c397697419a5032a18ec93ca192289dae413930cb9f708b38fb223de2e7ce1309e800b17b3c8fdaab88b41a098d3945d454fb12010cd7385f9c95f7d0de6fb4 SHA512 905b093cdeb2226202cc9bfcb8ad87129f415531d6532db4f5d9e111dc3b22474ce8704a2129e0d41448f8f147a45a409b457d78bc3e480e1555e74c75b7135d diff --git a/dev-java/bsh/bsh-3.0.0_rc1.ebuild b/dev-java/bsh/bsh-3.0.0_rc1.ebuild new file mode 100644 index 000000000000..e1a20049d9c7 --- /dev/null +++ b/dev-java/bsh/bsh-3.0.0_rc1.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +JAVA_PKG_IUSE="doc source test" +JAVA_TESTING_FRAMEWORKS="junit-4" + +inherit java-pkg-2 java-pkg-simple + +JAVACC_SLOT="8" + +DESCRIPTION="A small embeddable Java source interpreter" +HOMEPAGE="https://github.com/beanshell/beanshell" +SRC_URI="https://github.com/beanshell/beanshell/archive/${PV/_rc/RC}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/beanshell-${PV/_rc/RC}" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +DEPEND=" + dev-java/javacc:${JAVACC_SLOT} + dev-java/javacc-java:${JAVACC_SLOT} + >=virtual/jdk-1.8:* + test? ( + dev-java/hamcrest-core:1.3 + dev-java/hamcrest-library:1.3 + >=dev-java/jmh-core-1.37:0 + ) +" + +RDEPEND=">=virtual/jre-1.8:*" + +DOCS=( {CHANGES,HISTORY,MIGRATION,README}.md NOTICE ) + +# src/main/java/bsh/Interpreter.java:1100: error: invalid use of a restricted identifier 'yield' +JAVADOC_ARGS="-source 8" +# JAVA_GENTOO_CLASSPATH="asm" +JAVA_LAUNCHER_FILENAME="bsh-console" +JAVA_MAIN_CLASS="bsh.Console" +JAVA_RESOURCE_DIRS="src/main/resources" + +# Attempts to unbundle asm would cause some test failures. +# JAVA_SRC_DIR=( src/main/java -type f ! -path '*/objectweb/*' ) # unbundle asm +JAVA_SRC_DIR="src/main/java" +JAVA_TEST_EXCLUDES=( + mypackage.ReflectTest # Invalid + bsh.TestFilter # Invalid + bsh.TestUtil # Invalid + # All 3 tests of of following test-class fail + bsh.SharedInterpreterEvalConcurrencyTest +) +JAVA_TEST_GENTOO_CLASSPATH="hamcrest-core-1.3 hamcrest-library-1.3 jmh-core junit-4" +JAVA_TEST_RESOURCE_DIRS="src/test/resources" +JAVA_TEST_SRC_DIR="src/test/java" + +src_prepare() { + java-pkg-2_src_prepare + cat <<- VERSION > src/main/resources/bsh/version.properties || die "version.properties" + build=1234 + release=${PV/_rc/RC} + VERSION + +# sed \ +# -i -e 's:bsh.org.objectweb.asm:org.objectweb.asm:' \ +# src/main/java/bsh/BshLambda.java \ +# src/main/java/bsh/ClassGeneratorUtil.java \ +# src/test/java/bsh/BshLambdaClassLoadingTest.java \ +# src/test/java/bsh/ClassLifecycleConcurrencyTest.java \ +# src/test/java/bsh/ReflectTest.java + + local CP="$(java-pkg_getjars --build-only javacc-${JAVACC_SLOT},javacc-java-${JAVACC_SLOT})" + "$(java-config -J)" -cp "${CP}" org.javacc.jjtree.Main \ + -JJTREE_OUTPUT_DIRECTORY="jjtree-out" \ + "src/main/jjtree/bsh.jjt" || die "jjtree" + + "$(java-config -J)" -cp "${CP}" org.javacc.parser.Main \ + -OUTPUT_DIRECTORY="javacc-out" \ + jjtree-out/bsh.jj || die "javacc" + + cp --update=none -v jjtree-out/*.java src/main/java/bsh || die + cp --update=none -v javacc-out/*.java src/main/java/bsh || die + + # This test ramdomly fails or passes. + # Settings accoding to pom.xml, line 292, don't help. + # JAVA_TEST_EXTRA_ARGS="-Xmx1000M -Xms500M" # pom.xml, line 292 + rm -v src/test/resources/test-scripts/trycatch_ome.bsh || die +} + +src_install() { +# use source && JAVA_SRC_DIR=( src/main/java ) + java-pkg-simple_src_install + # The eclass installs only the main launcher. + java-pkg_dolauncher "${PN}-interpreter" --main bsh.Interpreter +} diff --git a/dev-lang/moarvm/Manifest b/dev-lang/moarvm/Manifest index b788ccecadf9..71c2c830aaba 100644 --- a/dev-lang/moarvm/Manifest +++ b/dev-lang/moarvm/Manifest @@ -1,2 +1,3 @@ DIST MoarVM-2026.02.tar.gz 15405708 BLAKE2B 9a465c92dadc3fb82e6c758e66b5ca2b58ab4f5e3ad2e3973ba87d512530aedd7abac30b0be9569033a5f75c79dd2e36782bc9be70ab8fd3d39a84d2046a4982 SHA512 d41720fe1c86a09902af3d0259f976a43f1bde6173be84631e891d500299b54b3a6da106ebd0af8d7a2dab5dcf996e15d484d5bc22decf91d98ee84b8c1e98dd DIST MoarVM-2026.08.tar.gz 8651008 BLAKE2B 705df547d7207799d28e797f0581545b8696135aac0b50dce4af1010672fffc7b736a27c54cb6fd776db6163d9440bac7f0a93086db31414b6840f32d2bb2591 SHA512 b7f07291949e42441565878df18ae0f4a500b80b89be1ed9677c5df8ee31ae687e6327f0a89aa0de1b80acbe70af95f7257edef614884a77bef922ef66a89371 +DIST MoarVM-2026.09.tar.gz 8669275 BLAKE2B 7c118a331131a0bfc83b93d72d13b177f6d09690364925f9b48a81f0d7a80b70a4030fd3b0c324bf167dea306ceddba61acdd8f8eedbd7c603c435091fb169bb SHA512 83909c7adeabfeea22ed01a2f5e56fd4c56f7176b89bc80e5ff4dd5a8560a2a7a203847dfa84c551945ba95ef9101b1c1442f1d87466b2f3d5e40f546922691f diff --git a/dev-lang/moarvm/moarvm-2026.09.ebuild b/dev-lang/moarvm/moarvm-2026.09.ebuild new file mode 100644 index 000000000000..542be0151e32 --- /dev/null +++ b/dev-lang/moarvm/moarvm-2026.09.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN="MoarVM" +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git" + inherit git-r3 + S="${WORKDIR}/${P}" +else + SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz" + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${MY_PN}-${PV}" +fi + +DESCRIPTION="A 6model-based VM for NQP and Raku" +HOMEPAGE="http://moarvm.org" +LICENSE="Artistic-2" +SLOT="0" + +IUSE="asan clang debug doc +jit optimize static-libs ubsan" + +RDEPEND="dev-libs/libatomic_ops + >=dev-libs/libuv-1.26:= + dev-libs/libffi:= + dev-libs/mimalloc" +DEPEND="${RDEPEND} + clang? ( llvm-core/clang ) + dev-lang/perl" + +DOCS=( CREDITS README.md ) + +# Tests are conducted via nqp +RESTRICT=test + +src_configure() { + MAKEOPTS+=" NOISY=1" + use doc && DOCS+=( docs/* ) + local prefix="${EPREFIX}/usr" + local libdir="${EPREFIX}/usr/$(get_libdir)" + einfo "--prefix '${prefix}'" + einfo "--libdir '${libdir}'" + local myconfigargs=( + "--prefix" "${prefix}" + "--has-libuv" + "--has-libatomic_ops" + "--has-libffi" + "--has-mimalloc" + "--libdir" "${libdir}" + "--compiler" "$(usex clang clang gcc)" + "$(usex asan --asan)" + "$(usex debug --debug --no-debug)" + "$(usex optimize --optimize= --no-optimize)" + "$(usex static-libs --static)" + "$(usex ubsan --ubsan)" + ) + + perl Configure.pl "${myconfigargs[@]}" moarshared || die +} diff --git a/dev-lang/nqp/Manifest b/dev-lang/nqp/Manifest index 012baaf9b55a..769677fa1812 100644 --- a/dev-lang/nqp/Manifest +++ b/dev-lang/nqp/Manifest @@ -1,2 +1,3 @@ DIST nqp-2026.02.tar.gz 9727779 BLAKE2B 2f37b258ba75e3cce446417c2409e8bc13d556c6e45233bd17cb8a57294c3d84d452be377a83d3b0ef71c65c653188dd4fb32130eab2ce0c6aa77d0ec91a81cc SHA512 4cc299bfbb2e9e834986e6868481cfd017329431ae1de6b091b31b0914774c3611cb49946fcdcaa2b95197883c3b8fdc63040d99c23fb028eacf061fa3c847c6 DIST nqp-2026.08.tar.gz 9728340 BLAKE2B 8422a4950373f2594246c877bd952c6a35e450110af7942a052f1d96953adfc226e199bf05a3521608699297fe05e694c986b650744bf8543ca2b81990d1c2ed SHA512 247c7e722420ed0ce69a30464678fc91853083b1f091f8f995299bef5cae776e48b56eaa3f223d36748cae7d281847b80d06ba29ce9787568e9bc1627bbeb111 +DIST nqp-2026.09.tar.gz 9740081 BLAKE2B 7905e31d1ea833e94dfa392450f96af1edbcb44aa1c89c6660ada00e178397e6c520659ff45fb276e3c55fee0c141c7bcbb4bbc792371fabd12f4ec04be21673 SHA512 5eabc3f4ba9bd62988ace5c4c3b1eb57538d61f8f7e37296b3602a227730bc1eaa325025daa96410b34a411c599a1421e52e46ac81eef9ac51baad67cf85e72c diff --git a/dev-lang/nqp/nqp-2026.09.ebuild b/dev-lang/nqp/nqp-2026.09.ebuild new file mode 100644 index 000000000000..316f045a99e8 --- /dev/null +++ b/dev-lang/nqp/nqp-2026.09.ebuild @@ -0,0 +1,147 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit java-pkg-opt-2 multibuild + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/Raku/${PN}.git" + inherit git-r3 +else + SRC_URI="https://github.com/Raku/${PN}/releases/download/${PV}/${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Not Quite Perl, a Raku bootstrapping compiler" +HOMEPAGE="https://rakudo.org" + +LICENSE="Artistic-2" +SLOT="0" +IUSE="doc clang java +moar test" +RESTRICT="!test? ( test )" +REQUIRED_USE="|| ( java moar )" + +CDEPEND="java? ( + >=dev-java/asm-9.8:0 + >=dev-java/jna-5.17.0:0 + ) + moar? ( ~dev-lang/moarvm-${PV}[clang=] )" +RDEPEND="${CDEPEND} + java? ( >=virtual/jre-11 )" +DEPEND="${CDEPEND}" +BDEPEND="${CDEPEND} + clang? ( llvm-core/clang ) + java? ( >=virtual/jdk-11 ) + dev-lang/perl" + +pkg_pretend() { + if has_version dev-lang/rakudo || has_version dev-lang/nqp; then + ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP" + ewarn "already being installed. So if it fails, try uninstalling both" + ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation." + ewarn "(see Bug #584394)" + fi +} + +src_prepare() { + MULTIBUILD_VARIANTS=() + use moar && MULTIBUILD_VARIANTS+=( moar ) + use java && MULTIBUILD_VARIANTS+=( jvm ) + + multibuild_copy_sources + + # This will pull in conditional java_prepare + default +} + +nqp_configure() { + pushd "${BUILD_DIR}" > /dev/null || die + local myconfargs=( + "--backend=${MULTIBUILD_VARIANT}" + "--prefix=${EPREFIX}/usr" ) + + perl Configure.pl "${myconfargs[@]}" || die + popd || die +} + +nqp_compile() { + if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then + emake -j1 \ + -C "${BUILD_DIR}" \ + JAVAC="$(java-pkg_get-javac)" + elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then + emake -j1 \ + -C "${BUILD_DIR}" + fi +} + +nqp_test() { + emake -j1 \ + -C "${BUILD_DIR}" \ + test +} + +nqp_install() { + # This is the actual reason we need multibuild.eclass. + # We need to distinguish the install procedure for MoarVM and JVM backends. + case "${MULTIBUILD_VARIANT}" in + moar) + emake \ + DESTDIR="${ED}" \ + -C "${BUILD_DIR}" \ + install + ;; + jvm) + pushd "${BUILD_DIR}" > /dev/null || die + # Set JAVA_PKG_JARDEST early. + java-pkg_init_paths_ + + # Upstream sets the classpath to this location. Perhaps it's + # used to locate the additional libraries? + java-pkg_addcp "${JAVA_PKG_JARDEST}" + + insinto "${JAVA_PKG_JARDEST}" + local jar + + for jar in *.jar; do + if has ${jar} ${PN}.jar ${PN}-runtime.jar; then + # jars for NQP itself. + java-pkg_dojar ${jar} + else + # jars used by NQP. + doins ${jar} + fi + done + + # Upstream uses -Xbootclasspath/a, which is faster due to lack + # of verification, but gjl isn't flexible enough yet. :( + java-pkg_dolauncher ${PN}-j --main ${PN} + dosym ${PN}-j /usr/bin/${PN} + dobin tools/jvm/eval-client.pl + popd > /dev/null || die + ;; + *) + die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}." + ;; + esac +} + +src_configure() { + multibuild_foreach_variant nqp_configure +} + +src_compile() { + multibuild_foreach_variant nqp_compile +} + +src_test() { + multibuild_foreach_variant nqp_test +} + +src_install() { + multibuild_foreach_variant nqp_install + + dodoc CREDITS README.pod + use doc && dodoc -r docs/* +} diff --git a/dev-lang/rakudo/Manifest b/dev-lang/rakudo/Manifest index 8e1b7dcf2d65..bc47f7570189 100644 --- a/dev-lang/rakudo/Manifest +++ b/dev-lang/rakudo/Manifest @@ -1,2 +1,3 @@ DIST rakudo-2026.02.tar.gz 8252410 BLAKE2B bec3773bba3b8787bbd12b7278b7e834a7f3294027c6de6a58f946a0cd6db1949894b4b6922679863b1fac0494cf6b2075f8c400c6cae30a48893ad65e30e14b SHA512 da172c95cc5dfd3e993146a9bc9c8328965ef8d40a9e22ac34598090f899574d75d6cd7f11255cce5ba762f4148f2e2ce32bec39e410ac1e81a9e3cef5c2ed2f DIST rakudo-2026.08.tar.gz 8642637 BLAKE2B 3965827af8df08e7b47ff81bb7c53b239b9190ad7e0caa1b646b84be616401fe533f07d5ed5a5364a638a79e9fa3bfe9f3e5cbc9f1332ecd0e3776ecc4ac8b07 SHA512 ceb50dd049bba93bfb68408fecd2f78af688c187e62599ccab7f5f82ed5a6244f46c2c7f996840ae67cfbe2de6efcc7d06b5aff140d8333f782a5831a1d57caa +DIST rakudo-2026.09.tar.gz 8938212 BLAKE2B 797b2fc5f4f57092b324578b41003be7a7139c2d0917a564d12751489d273743853bd31d45c3f0402563881afc3f92fc4a823ccfc5c7ec78d5e31ab0d4d8d944 SHA512 56b55afd6f3daac8614ef0825d53bf3a117c3001f3f5237c6a2b6a1f5aea7cb6298d8f82f21a0cb469a46033d43117c7c41736eff85006580d6c645fa3b5f0f1 diff --git a/dev-lang/rakudo/rakudo-2026.09.ebuild b/dev-lang/rakudo/rakudo-2026.09.ebuild new file mode 100644 index 000000000000..5e7a60802819 --- /dev/null +++ b/dev-lang/rakudo/rakudo-2026.09.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit java-pkg-opt-2 + +DESCRIPTION="A compiler for the Raku programming language" +HOMEPAGE="https://rakudo.org" + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/rakudo/${PN}.git" + inherit git-r3 +else + SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="Artistic-2" +SLOT="0" +# TODO: add USE="javascript" once that's usable in nqp +IUSE="clang java +moar test" +RESTRICT="!test? ( test )" +REQUIRED_USE="|| ( java moar )" + +CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java?,moar?,clang=]" +RDEPEND="${CDEPEND} + java? ( >=virtual/jre-1.9 )" +DEPEND="${CDEPEND} + clang? ( llvm-core/clang ) + java? ( >=virtual/jdk-1.9 ) + >=dev-lang/perl-5.10" + +pkg_pretend() { + if has_version dev-lang/rakudo; then + ewarn "Rakudo is known to fail compilation/installation with Rakudo" + ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo," + ewarn "then do a new installation." + ewarn "(see Bug #584394)" + fi +} + +src_configure() { + local backends + use moar && backends+="moar," + use java && backends+="jvm" + + local myargs=( + "--prefix=/usr" + "--sysroot=/" + "--sdkroot=/" + "--backends=${backends}" + ) + + perl Configure.pl "${myargs[@]}" || die + + if use java; then + NQP=$(java-pkg_getjars --with-dependencies nqp) + fi +} + +src_compile() { + emake NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" +} + +src_install() { + emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install +} + +src_test() { + RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default +} diff --git a/dev-libs/simdjson/Manifest b/dev-libs/simdjson/Manifest index 510f82c4b54c..821afa246d0d 100644 --- a/dev-libs/simdjson/Manifest +++ b/dev-libs/simdjson/Manifest @@ -7,5 +7,6 @@ DIST simdjson-4.6.7.gh.tar.gz 6690017 BLAKE2B 1fda88f8794ca56f70f97111f6c707c58c DIST simdjson-4.6.9.gh.tar.gz 6693715 BLAKE2B fc5f435e57f7afab0ff5993a50a4da6c88db34a442481922705e8db5144d74767ca70614a264d009b455cbfd3624455c42f572272ef0c2caa4bf27dd3430fc6e SHA512 b5c70b29fff7728ec5883ebff39829b9fe1c6dac4e2775b01be0bfcc99f7dab596f97f8e3b58852b2556b81639ad5e08b43b036407814defd6487edfbc7f3abe DIST simdjson-5.0.3.gh.tar.gz 8787132 BLAKE2B a3f18dc59af62ae61b18d2224a391738d7cb7815edc5dc2e52b5fd1f64b1f8e81e0eac16ea1bb0f2fb75e662a5e2abf7285bbfa48c0c7937d83fc488e951a55b SHA512 9935d9bfa2a178e9bf46da03f39b6d06f1e76c0ad2e094fc755bc2c8542cb58c218c53e55333305208a4cf681cd4520099cac94beff0d229baf9010f834597d0 DIST simdjson-5.0.4.gh.tar.gz 8814780 BLAKE2B 83f69fe402ba00fd1cc1948e49d49f15a4fff90af0b3103ed23e29b57326a6e3f2dcc0e8af9d3b18fa4d8f4a2ee199e2fdb4cd946ced79dc7f1207ba9cba1e5b SHA512 e4431b21240a532e0a91330578e03e048ab8742c0426895c533a694d641430dbe9936cb8b3844186fa5ba47b67c5468546f25ebe087da8762964584a537f17c5 +DIST simdjson-5.0.5.gh.tar.gz 8818667 BLAKE2B 5778396cae4894863a38f19f59478a4b1cdd14643dbb76abc705f039dddb736e73abbd2d95f287176fe1481698531eb564593f600b1ba6df48498f75cae6fe5f SHA512 d6ab1369ec53411973f95c756945fe54533c321c2341ff7b7a089ac93a32e8d841b1189b1a5f11512a1f063601507d0429cfe59b552470f2fd9cc911059f3cac DIST simdjson-counters-3.1.0.tar.gz 17752 BLAKE2B 37288ede5edd55f822fa1b49823d606a1ea7e49bf1f2afec02b1872439524bca8be450e62b8efdfdbca222d6c55f4cf326d9e71063a78e04843c38e8cc6ae8b2 SHA512 943c3eb98d35e4af095f5cb9c5f20613e7a061f6552f65137f8d9c1c9ee2df8acec4112410aa18c6b7428ab9315b7f3d21adc5cb6ab1522b8be6c5dde23e52a7 DIST simdjson-data-351949906abde446f0314bf79606fb5d884f5be7.tar.gz 6635608 BLAKE2B 07f96c6b1bfea55a247eb7361bd4c068cb49e06f2cb1f3853c107173025c4cd543b20a5b7a3dcfa1e4462aaca8278a1cff9656f54319da08e221bc38f98e5a9e SHA512 7db557d374b9ce98077b7a9e1265ae66f9a607f0f283f662a9f184147f081727df68c0eb4889ebc8aca609ec62b348753445e553087e6520879a23e268caafba diff --git a/dev-libs/simdjson/simdjson-5.0.5.ebuild b/dev-libs/simdjson/simdjson-5.0.5.ebuild new file mode 100644 index 000000000000..a498600da3f5 --- /dev/null +++ b/dev-libs/simdjson/simdjson-5.0.5.ebuild @@ -0,0 +1,112 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs cmake + +SIMDJSON_DATA_HASH="351949906abde446f0314bf79606fb5d884f5be7" +CPM_SIMDJSON_DATA_HASH="3a55454e9d9a7133903378c28fb053f478f24537" +CPM_VERSION="0.40.2" +COUNTERS_HASH="2c9f1c5695230724ac9b2b7a88f43ec81761f3a0" +COUNTERS_VER="3.1.0" +DESCRIPTION="SIMD accelerated C++ JSON library" +HOMEPAGE=" + https://simdjson.org/ + https://github.com/simdjson/simdjson +" +SRC_URI=" + https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz + https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_VERSION}/CPM.cmake -> CPM_${CPM_VERSION}.cmake + https://github.com/${PN}/${PN}-data/archive/${SIMDJSON_DATA_HASH}.tar.gz -> ${PN}-data-${SIMDJSON_DATA_HASH}.tar.gz + https://github.com/lemire/counters/archive/refs/tags/v${COUNTERS_VER}.tar.gz -> ${PN}-counters-${COUNTERS_VER}.tar.gz +" + +LICENSE="Apache-2.0 Boost-1.0 BSD MIT" +SLOT="0/34" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +IUSE="+all-impls nan test tools" + +BDEPEND=" + sys-apps/file + sys-apps/grep + virtual/pkgconfig +" +DEPEND=" + tools? ( >=dev-libs/cxxopts-3.2:= ) +" + +REQUIRED_USE="test? ( tools )" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/simdjson-1.0.0-install-tools.patch" + "${FILESDIR}/simdjson-3.10.1-tests.patch" +) + +DOCS=( + AUTHORS + CONTRIBUTING.md + CONTRIBUTORS + HACKING.md + README.md +) + +src_prepare() { + # Need to make sure that CPM finds the data package + mkdir "${WORKDIR}/cpm" "${WORKDIR}/${PN}-data" "${WORKDIR}/counters" || die + cp "${DISTDIR}/CPM_${CPM_VERSION}.cmake" "${WORKDIR}/cpm/CPM_${CPM_VERSION}.cmake" || die + ln -s "../${PN}-data-${SIMDJSON_DATA_HASH}" "${WORKDIR}/${PN}-data/${CPM_SIMDJSON_DATA_HASH}" || die + ln -s "../counters-${COUNTERS_VER}" "${WORKDIR}/counters/${COUNTERS_HASH}" || die + + sed -e 's:-Werror ::' -i cmake/developer-options.cmake || die + sed -e '/Werror/ d ; /Werror/ d ' -i tests/ondemand/compilation_failure_tests/CMakeLists.txt || die + sed -e "s:^c++ :$(tc-getCXX) :" -i singleheader/README.md || die + mv tools/{,simd}jsonpointer.cpp || die + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DSIMDJSON_INSTALL:BOOL=ON + -DSIMDJSON_ENABLE_THREADS:BOOL=ON + $(usex test '-DSIMDJSON_ENABLE_FUZZING:BOOL=OFF' '') + -DSIMDJSON_ENABLE_NAN_INF:BOOL=$(usex nan 'ON' 'OFF') + -DCPM_SOURCE_CACHE:STRING="${WORKDIR}" + -Wno-dev + ) + use test && mycmakeargs+=( + -DSIMDJSON_TESTS:BOOL=ON + ) + + if use tools; then + mycmakeargs+=( + -DSIMDJSON_DEVELOPER_MODE:BOOL=ON + -DSIMDJSON_ALLOW_DOWNLOADS:BOOL=OFF + -DSIMDJSON_GOOGLE_BENCHMARKS:BOOL=OFF + -DSIMDJSON_COMPETITION:BOOL=OFF + -DSIMDJSON_TOOLS:BOOL=ON + ) + elif ! use test; then + mycmakeargs+=( + -DSIMDJSON_DEVELOPER_MODE:BOOL=OFF + ) + fi + + if use all-impls; then + local -a impls=("fallback") + if use amd64; then + impls+=("westmere" "haswell" "icelake") + elif use arm64; then + impls+=("arm64") + elif use ppc64; then + impls+=("ppc64") + fi + + mycmakeargs+=( + -DSIMDJSON_IMPLEMENTATION:STRING=$(printf '%s;' "${impls[@]}") + ) + fi + + cmake_src_configure +} diff --git a/dev-libs/zmij/Manifest b/dev-libs/zmij/Manifest new file mode 100644 index 000000000000..3efc73568351 --- /dev/null +++ b/dev-libs/zmij/Manifest @@ -0,0 +1 @@ +DIST zmij-1.2.tar.gz 1298780 BLAKE2B 3d551c1f13c9ada8fde79773b9fb1e29b548a30ced40c04bff5f1333944d798b45e71048fe14d6bc884d3a2d7414a9bb4cb6274eaddba6fd1082cf441b4fc91b SHA512 f7c73c6cadb5588e717feac96ea6c4b0eb0bd1317b16008e3fe761af265808832ea03b2bc97b188200a5e14726d229fc589afaafee87f59fc290a6266a2b2a92 diff --git a/dev-libs/zmij/files/zmij-1.2-soname.patch b/dev-libs/zmij/files/zmij-1.2-soname.patch new file mode 100644 index 000000000000..60bbb5b174a7 --- /dev/null +++ b/dev-libs/zmij/files/zmij-1.2-soname.patch @@ -0,0 +1,12 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 19b0f65..e1568ee 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -11,6 +11,7 @@ option(ZMIJ_EXAMPLE "Generate the example targets" ON) + + add_library(zmij zmij.cc zmij-int.cc zmij.h) + add_library(zmij::zmij ALIAS zmij) ++set_target_properties(zmij PROPERTIES SOVERSION 1) + target_include_directories( + zmij PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) diff --git a/dev-libs/zmij/metadata.xml b/dev-libs/zmij/metadata.xml new file mode 100644 index 000000000000..7f01e79bc8e5 --- /dev/null +++ b/dev-libs/zmij/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>chutzpah@gentoo.org</email> + <name>Patrick McLean</name> + </maintainer> + <origin>srcux</origin> +</pkgmetadata> diff --git a/dev-libs/zmij/zmij-1.2.ebuild b/dev-libs/zmij/zmij-1.2.ebuild new file mode 100644 index 000000000000..c767ef7d6e64 --- /dev/null +++ b/dev-libs/zmij/zmij-1.2.ebuild @@ -0,0 +1,18 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="A fast floating-point-to-string conversion library for C and C++" +HOMEPAGE="https://github.com/vitaut/zmij" +SRC_URI="https://github.com/vitaut/zmij/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +SLOT="0/1" +KEYWORDS="~amd64" + +PATCHES=( + "${FILESDIR}/zmij-1.2-soname.patch" +) diff --git a/dev-python/authlib/Manifest b/dev-python/authlib/Manifest index 6338faa49ee0..3aeb1b892a9b 100644 --- a/dev-python/authlib/Manifest +++ b/dev-python/authlib/Manifest @@ -1,2 +1,2 @@ -DIST authlib-1.7.2.gh.tar.gz 356607 BLAKE2B 60d232c26a672bdbd2cb57073ed05bcde2d5ed1caa143cb1d64760758c0a93adf0cde3db579c787d219fd741c50eb182d932c91e3a23251837784e963dc2b37c SHA512 814d5160baec83de80ba4a9bed86a611ae4b2605c3674dc6fe24844bd5da1bb9dc2d73e8c42bb44e378991f2479ed478477e42535cf2888c29506ee25e629aa7 DIST authlib-1.8.0.gh.tar.gz 361890 BLAKE2B 3aaaea7334859b19f1bc4c0acfd0e17d40f79f9ee183a9d4a6bfec68d761e6b740cac4fe092a5b0b4c4a60f30873ed58dd55088f708139c4564a74877458969e SHA512 c75e5e97461c23b26511fefa442e24b1d0467d45d7521e702d9d399680235cb4dd15645085a702bd158e1523f41b07308995e9586f2d5bc46ec6396bf8babbe0 +DIST authlib-1.9.1.gh.tar.gz 388395 BLAKE2B 20579375edb0965c5ff6755eefcc43c69c35352f43db71be86087ef1c8a6b462dd477add868d55d332c7f3367f6ad330f916e1b495d87180ab89ec227657d006 SHA512 3f106f800a668c0f2f11fab6cbe56185975c5ad9a9509637055ca6d5528006c88c17dc6980bfc78cdda8e719c7823aee86c64dd3e939829f93ef250e0939809f diff --git a/dev-python/authlib/authlib-1.7.2.ebuild b/dev-python/authlib/authlib-1.9.1.ebuild index ef399ad123b4..a5be86c9252e 100644 --- a/dev-python/authlib/authlib-1.7.2.ebuild +++ b/dev-python/authlib/authlib-1.9.1.ebuild @@ -23,16 +23,14 @@ SRC_URI=" LICENSE="BSD" SLOT="0" KEYWORDS="~amd64" -IUSE="django jose test" +IUSE="django test" RESTRICT="!test? ( test )" RDEPEND=" - dev-python/cryptography[${PYTHON_USEDEP}] + >=dev-python/cryptography-45.0.1[${PYTHON_USEDEP}] + >=dev-python/joserfc-1.6.8[${PYTHON_USEDEP}] django? ( - dev-python/django[${PYTHON_USEDEP}] - ) - jose? ( - dev-python/joserfc[${PYTHON_USEDEP}] + >=dev-python/django-3.2.9[${PYTHON_USEDEP}] ) " BDEPEND=" @@ -42,6 +40,7 @@ BDEPEND=" dev-python/django[${PYTHON_USEDEP}] dev-python/flask[${PYTHON_USEDEP}] dev-python/httpx[${PYTHON_USEDEP}] + dev-python/httpx2[${PYTHON_USEDEP}] dev-python/joserfc[${PYTHON_USEDEP}] >=dev-python/pycryptodome-3.10[${PYTHON_USEDEP}] dev-python/requests[${PYTHON_USEDEP}] @@ -49,7 +48,7 @@ BDEPEND=" ) " -EPYTEST_PLUGINS=( pytest-asyncio ) +EPYTEST_PLUGINS=( pytest-{asyncio,env} ) # EPYTEST_XDIST makes tests flaky distutils_enable_tests pytest @@ -62,7 +61,6 @@ src_prepare() { } python_test() { - local -x DJANGO_SETTINGS_MODULE=tests.django_settings epytest tests/{core,jose,clients} # TODO: django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. diff --git a/dev-python/bitarray/Manifest b/dev-python/bitarray/Manifest index 51a2e68a6fdc..474b48966dac 100644 --- a/dev-python/bitarray/Manifest +++ b/dev-python/bitarray/Manifest @@ -2,3 +2,4 @@ DIST bitarray-3.10.1.tar.gz 168648 BLAKE2B 12b22225a86c93db32dc70854c17a5046fd0e DIST bitarray-3.11.0.tar.gz 174911 BLAKE2B e9a2444607225488576e565046039ae5fa8787543ca6a3c75cd72fc28a49944168cc5cbdf0f573c32ba1387007dc665bbde7c11d260af3cc1fc85c1e3d7f77af SHA512 de61eff60c8534af4505046e99b1343d49e6a29f39bcd02693ad28a6ff03643c04103c2ab21c19d1515a9720721765a41a3acfb5c1452df44fb4561e8b79c691 DIST bitarray-3.12.0.tar.gz 186999 BLAKE2B 258cb651eb603b391f7713e6590122375cee85448f2d009c817602b4bdf2a56af2df3631d7f27cb51429008a2059e5349e9a7b4e8b103a8ab109db9f6f551d78 SHA512 36852e5dce353a640aff490064b0604effac3481c9ed9f32ba510f4bb2ed98b7fc9a06e3ea19a78fe838ea7a2177835d0376dfde7c5366452f73830d97194528 DIST bitarray-3.12.1.tar.gz 187103 BLAKE2B f8d9d2c3959f2bfadfea5addbc176bf78feac812644d3508979784b841f6fb8af9bfac1b4781887421813dd45b895956c7a8e2917e089d0fe48fe953868e16b5 SHA512 83ac90d9d2b6422862b978847c8511e5c254e13e30909a4da199aab9c826ea0f3c17a7f6b816288b1880b48638d1ee597046d77b3cad624cd0e8b7765d28b1ce +DIST bitarray-3.12.2.tar.gz 187672 BLAKE2B de8063e169a25a0c55964481f28b53d635e56c55e13862eac55154aaa0cf5a76eecc3170e785c960a3d90d5f9927c0f86dbd781de760bf89a6f565fe1f714f75 SHA512 ae387e63d3d30dabb1bbe58484cda665ad87a31ad2598233583116ebc7da7390f9170f43ffb60dbf48703141141e885becabfa2026595e09c88b4b9465546889 diff --git a/dev-python/bitarray/bitarray-3.12.2.ebuild b/dev-python/bitarray/bitarray-3.12.2.ebuild new file mode 100644 index 000000000000..c70a37e0f30b --- /dev/null +++ b/dev-python/bitarray/bitarray-3.12.2.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Efficient arrays of booleans -- C extension" +HOMEPAGE=" + https://github.com/ilanschnell/bitarray/ + https://pypi.org/project/bitarray/ +" + +LICENSE="PSF-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" + +python_test() { + "${EPYTHON}" bitarray/test_bitarray.py -v || die "Tests fail with ${EPYTHON}" +} diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest index 6e2b56bab617..c288af25ee5d 100644 --- a/dev-python/boto3/Manifest +++ b/dev-python/boto3/Manifest @@ -3,6 +3,7 @@ DIST boto3-1.43.108.gh.tar.gz 1250263 BLAKE2B 73f98863859b8c1ff06655d84d6b155811 DIST boto3-1.43.111.gh.tar.gz 1253888 BLAKE2B 972d4fbed26dc6ef267f1ee9433d13a9030a405a7dca1da23f2b3b39a6c32e13bbb8a15d202e3c86d067040326934c57161901262c409262c3bd2e41ea003bef SHA512 bd26006eb35ad806c071e185bf86d92c8eeb2345871575cb26812c1bffcdca602a54244074bcd2edce1487b17240caf9975f98037eee02a01dd4d07f1f964190 DIST boto3-1.43.112.gh.tar.gz 1255810 BLAKE2B 7d46c0c0d0815d9cd278d60cc0b78b8a137509c8224be0e899895f897c9ceb415ce1224feaf888e56a1e368451d760765bd101b4c14e870406248c7e64221d77 SHA512 63609af1366d12eed03f1b64b2d20cd6721a632d7d583e547f44f5a7519d3ef33360338611679f0b4964e541e8d4b61f9dc330fad5f909ff2e0c852764921a56 DIST boto3-1.43.113.gh.tar.gz 1257679 BLAKE2B 130963c74bfc5ce7c059178f5e971bbdf65f6b88f7f9c7f1cca0fb7d2f49b5bf7378a5e37245d20100f1933af7371315ab01292025d166f8ea526a0b52995a39 SHA512 293f0d29ef97f24eab7529c3bc66f03d72dafdd59bafadf463c9087f8154c6eebe9f6f59ff8cbba6685617acba19fc7e05e10b7db6ab8b4b1d2491a0818ea255 +DIST boto3-1.43.114.gh.tar.gz 1259584 BLAKE2B 07307d6e1005fc031d4f0cb888b885c68429000cba799e33bfd4ee53031731eb48194f0c93c2d6586bbe016e46be371edb9837c1a6ae06b427dd1e927ff673a3 SHA512 f95a3e57a4283e1ba736ef9101fe486c599afdd38cb2f6d4b202eca124b839ff0886a8d258e1594e1e0a722314a76b041c04fb48b5a68847f655cae5e08e5489 DIST boto3-1.43.89.gh.tar.gz 1225424 BLAKE2B 625bb37a542644c8fe37aab42a115bf8be2e36373d7f6149dcc7e150e327c75b334ef480897be1d4954809b233a47e02854d7b28b4a3904f0e5cdcea3f0440d7 SHA512 1c04fd6df819abbe60d551c6d706f7254fe6d6758e95fd53ec70d4dd892b6f7bf69981cb001fc6ca5bc5885f083718b80a4fd045b146e7f4add16a50ac3a9d38 DIST boto3-1.43.93.gh.tar.gz 1230597 BLAKE2B 183d94cea0d706147a75674cb85a600ad21c2683618ba18a14e8630f23b19c94c11d0bc03ddc517194dad42dfb9445d1b34076b1f1b3ecbcec51ceccf30e5db0 SHA512 01612175497aada3b3fdf62ffcdb0626dc0fd5090d7d156d2a1f5fad4ec19b904ffecfd4b59880cf71ec07658bf00c2245bdd3c989a7513689ab59a2511e06ea DIST boto3-1.43.98.gh.tar.gz 1235430 BLAKE2B 6a08b191374c1c31b69c975cb4281685bee4914b8f2ab32dd2eb13c7742ff7e228a151f0e78b7f323d43ffe9b4dd7e4574104bc4a63cd573726715eceeb13137 SHA512 550c5daf6b3110562ba08e0694cdc19b7cd02e9d00aba22acc3a8272a63124d3e9eea870d7fced18685ee89459f375ace66aca49fcaece88a1d7dbfa1d54022e diff --git a/dev-python/boto3/boto3-1.43.114.ebuild b/dev-python/boto3/boto3-1.43.114.ebuild new file mode 100644 index 000000000000..fcfc7c9a743e --- /dev/null +++ b/dev-python/boto3/boto3-1.43.114.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 + +DESCRIPTION="The AWS SDK for Python" +HOMEPAGE=" + https://github.com/boto/boto3/ + https://pypi.org/project/boto3/ +" +SRC_URI=" + https://github.com/boto/boto3/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" + +RDEPEND=" + >=dev-python/botocore-${PV}[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + # don't lock versions to narrow ranges + sed -e '/botocore/ d' \ + -e '/jmespath/ d' \ + -e '/s3transfer/ d' \ + -i setup.py || die + + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_python_prepare_all +} + +python_test() { + epytest tests/{functional,unit} +} diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest index 169ed55b7a63..d1bfe7332582 100644 --- a/dev-python/botocore/Manifest +++ b/dev-python/botocore/Manifest @@ -3,6 +3,7 @@ DIST botocore-1.43.108.gh.tar.gz 17372621 BLAKE2B c4a053b10a7a95d78a84254aabe941 DIST botocore-1.43.111.gh.tar.gz 17387410 BLAKE2B 36f5cde64e3be6b364ed4b0338531e8dca38e5b817e6e2607a16ef48ae1ad4cd21bcfc48a7c982358ad45b7fab3073f995817da8689ef7a8c0d8a376d079d88e SHA512 fb63e7844d5d74bbae67fe601b18629f4f366128972bd35498263b3f7fc5d3af7fa1a3e39f3cc9673d87954aff6990bcbff350ea8ed28ab6d887fb8e33e6652a DIST botocore-1.43.112.gh.tar.gz 17421218 BLAKE2B a32c8c09753310247810be3939df3cf2885140bad9a9b13fdba3eb6ee862b1ecf08cd8f841c84c9b9e10037f9d5f68ec47ead537536cf66673efd17a2a0d3b8d SHA512 264de478efb971616b44d47191ce6294e1981565aa75fe3db978e8e4491fbc7728dbbe4a223097a464c5b71decd1f1e9019e719fb94b436701c5de775faac4a6 DIST botocore-1.43.113.gh.tar.gz 17434227 BLAKE2B a76cb5a7acfd27fefd63528af078e973618a8d101091728f49ff83cd1ce82c1e0a19cc4cf44212786c49affd3987631e3f61b142166b56f6c0f7edd3d6e162b2 SHA512 39f47829e8012abb4311e745deb5065ba385dae4386d2555188754b37d1870af5967dea522ea9fd678d024d0506abffbbf29af4c16c757201ca3aec17f0a2363 +DIST botocore-1.43.114.gh.tar.gz 17441489 BLAKE2B 587bd7b0e7afbbcb85fd7a1d4c499577d15a7c69cfd3a9cf37d951700ad4a0e25e0f456a5b7542673bc2182567fe238ecf016c63d49232284b8f16936d3af29d SHA512 c4dd34ef3fe0fc407ff60478aec7c4327e3773cc2a7858cb7911571d02cdb71f9409c84523ca47e7c3f7b7e0f2bb2d1e0c12de3a30342dc4ce0e823d84c6b693 DIST botocore-1.43.89.gh.tar.gz 17111395 BLAKE2B 25837125b5d9477b011c065594ffa1b49a2f5d0cf76e1c664aa5401d50dfe8dd9573d0ab3a60f739c796c32965a7dd7608e302a284bfcc97d9f7f4a8a2b698e3 SHA512 c9c0b7636fb7595d4ff3ee2ec7e1ef8ad3000e9e453ce6edb827a1152109fc2fb6b226bd08f27653fc1436444c39be6f160fa4f7c34eb50a7384988686933590 DIST botocore-1.43.93.gh.tar.gz 17142451 BLAKE2B eec2955aa252ff8bc49c24095006f0c75669f7946dcdaece4c7f640e724910b14c1b1b0b07fb8e6661d96e95fe148201381d70b4685a7282c2c64f2656fde57a SHA512 e021322d630deb94f738aa5096a7b72ffdeffbeaf5d3f6fbc9e835b7f41afa25a738d353e37b4fbd73b5b8889334ccdf4caec64d4c63e4e966e0e245c6117cf0 DIST botocore-1.43.98.gh.tar.gz 17171860 BLAKE2B 8bb682accc106b35b89f19fc6512314f3251a896d5e3e74b02112d9dc6218c56388685113d1889dbbde18ca9ea2b18acd2386d54603567d334644bebc55a678a SHA512 42700b9fbbf6df97f410cff159aae5dd57f5c114567e80fe4930b42166608609fcd9822f011c0acb8a4fc46c92aedd9a7ea5afa1608a24e47b0e30d78274d0ac diff --git a/dev-python/botocore/botocore-1.43.114.ebuild b/dev-python/botocore/botocore-1.43.114.ebuild new file mode 100644 index 000000000000..c5a99a77214e --- /dev/null +++ b/dev-python/botocore/botocore-1.43.114.ebuild @@ -0,0 +1,80 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 + +DESCRIPTION="Low-level, data-driven core of boto 3" +HOMEPAGE=" + https://github.com/boto/botocore/ + https://pypi.org/project/botocore/ +" +SRC_URI=" + https://github.com/boto/botocore/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" + +RDEPEND=" + <dev-python/jmespath-2[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +# unbundled packages +RDEPEND+=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # unpin deps + sed -i -e "s:>=.*':':" setup.py || die + + # unbundle deps + rm -r botocore/vendored || die + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # rely on bundled six + tests/functional/test_six_imports.py::test_no_bare_six_imports + tests/functional/test_six_threading.py::test_six_thread_safety + ) + + # The test suite can eat up a lot of memory when running via xdist, + # and slow down some tiny tests. Let's just run a safe subset + # of tests known to be slow-ish in parallel, and the rest in series. + local parallel_tests=( + tests/functional/*/ + tests/functional/test_event_alias.py + tests/functional/test_[cds-z]*.py + tests/unit/ + ) + + epytest "${parallel_tests[@]}" + + local EPYTEST_IGNORE=( "${parallel_tests[@]}" ) + EPYTEST_XDIST= epytest tests/functional +} diff --git a/dev-python/cftime/Manifest b/dev-python/cftime/Manifest index 3d4d3718360f..6d44779dc2a7 100644 --- a/dev-python/cftime/Manifest +++ b/dev-python/cftime/Manifest @@ -1,3 +1,5 @@ DIST cftime-1.6.5.tar.gz 326605 BLAKE2B 41971028ce294e69a9b67d9adc0d8346d9656faa05abd9b156d13441c459ee63f1b74f085081e8b7066fa8fc4e64f8d319a545bdda85d0dac29c2bc2e3da28ad SHA512 ccb19d9216536094a3fff4f9f396d284971647f55e3239fba358342e4afc8a4c5449bda2b6c3d930ed43b9cf9f2756c62d2f66b8356a341189f590625b721621 +DIST cftime-1.6.6.1.tar.gz 381552 BLAKE2B 37a31e57784193216bc6a5de2f736a6ecb6e2d855c2b2001c7538b192c2e2a1d06cd86baeed487f82125c1b6189839b0cfe79c3df3f094fe3d05a1b75d4409bb SHA512 9ccc6d29ce46b5e4f11612805b77f6363e33e36c3b06c13c4a1dc6cbbd3fa55cfa9f915bf6dc6c5724661ededa05c342b465368b4dc6cd43c419c6d1284c6447 +DIST cftime-1.6.6.1.tar.gz.provenance 9968 BLAKE2B 32aef82b13ad2d0880261652ff8bfd3ff66cadd542e6c17d39e951e01c2018275aca5ff07c5a3aa9d697470bcc012327691dee4c03a0667fba2ad39ba24dddc8 SHA512 a8334a5f40e8fc92ef02be2f41da4120c68e7898819319620c156b385af818acdcf0fcef2f51f294fa9bbdea931a45247990923418357d9510abb8103dcc6ce2 DIST cftime-1.6.6.tar.gz 380802 BLAKE2B 2513dde7d96698509aa655d62473fca0d588cee346f933f283966c9a291fdafc41a50dcbba713f682511a6f8971225c2bd37a3b2ee1f2a02c82348cdda89c7df SHA512 f24924bcdd930079f8af6e3bdcfeb7e8768177a38fb07625ba02b7eac23eefb5c7eeff153fb0ac69b382b00558cc65c7930ef0ea7025dfa09061005fba1828a6 DIST cftime-1.6.6.tar.gz.provenance 9762 BLAKE2B a4deebc020594b0abf1f1b0f70f2f884f61bad6c22509af49cc56fd9a773b66a627916d29ad16e1436bdc83236fc3920a22cac042ec6358a8bcfb2f6418e0fb0 SHA512 92f43350ae1c824959acd08b1ef3436ce8d02063d4c3fc373a3774e9c099f9580c5eff101e69bf40b198b874e2e83999abde19cc819234fe699be5a892edfee7 diff --git a/dev-python/cftime/cftime-1.6.6.1.ebuild b/dev-python/cftime/cftime-1.6.6.1.ebuild new file mode 100644 index 000000000000..849614a695f4 --- /dev/null +++ b/dev-python/cftime/cftime-1.6.6.1.ebuild @@ -0,0 +1,34 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/Unidata/cftime +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Time-handling functionality from netcdf4-python" +HOMEPAGE=" + https://github.com/Unidata/cftime/ + https://pypi.org/project/cftime/ +" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~s390 ~x86" + +DEPEND=" + >=dev-python/numpy-1.26.0[${PYTHON_USEDEP}] +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + >=dev-python/cython-0.29.20[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/dev-python/cramjam/cramjam-2.14.0.ebuild b/dev-python/cramjam/cramjam-2.14.0.ebuild index ec4fc063cd0c..26608d4b31e9 100644 --- a/dev-python/cramjam/cramjam-2.14.0.ebuild +++ b/dev-python/cramjam/cramjam-2.14.0.ebuild @@ -8,7 +8,7 @@ DISTUTILS_USE_PEP517=maturin PYPI_VERIFY_REPO=https://github.com/milesgranger/cramjam PYTHON_COMPAT=( python3_{13..14} ) -RUST_MIN_VER="1.83.0" +RUST_MIN_VER="1.85.0" # Note: you need to use top-level Cargo.lock to generate the crate list. CRATES=" adler2@2.0.1 diff --git a/dev-python/fakeredis/Manifest b/dev-python/fakeredis/Manifest index a73f6bf1eae2..c4c86a65c1b6 100644 --- a/dev-python/fakeredis/Manifest +++ b/dev-python/fakeredis/Manifest @@ -6,3 +6,5 @@ DIST fakeredis-2.38.0.tar.gz 271116 BLAKE2B c16d21d194a2589363a753737fbbe0729ead DIST fakeredis-2.38.0.tar.gz.provenance 9942 BLAKE2B e29e23b6ec2a64fcbbe8c078ea0b01aa728d81a63e6c4898971187184aa59bfb219c072d8933bc4ae64040db6d89b7ad334b4489b6da8e2d640c639200e33fa2 SHA512 18400e533c3471d087e8429a41d5cb664a023a5bc12276f0021aeb9616dd7c18523284716f9a89c93ac3f30019f6540bb3935c6a7073f43fd59d4644afb499ba DIST fakeredis-2.39.0.tar.gz 301722 BLAKE2B 4f0550eb73f0b67061cc96e6b44bca7920aaa423563ab0c588ed264259e340de20a417c4535f82dc09714d6902d9bc298e07145b27ac72c3642bb3b387c74d2e SHA512 b0b15942440a0926ebb40db4ffe49e80d35bddf59de6919d3c68b651ddab6ebce17f7310406bc2c9ee5fe912f875a6bf58430392652ec95c18cbc5c7f839b7ca DIST fakeredis-2.39.0.tar.gz.provenance 9797 BLAKE2B 07d67ab697bee1676aa436aaeb30e10628cc407823d1ce3f4a4c9187f1a9862050d720c6d2c70bacc082d4244c48968dae848ff615115f50ec8084f757ff0547 SHA512 b50b217469ca5fc2629e297823abfd2f83c398cbb4c4dda962c59286eb3af0c811d8cbadaf1d0291edf1f95916db96587a559a1279dda9bba6e95fabca7375d7 +DIST fakeredis-2.40.0.tar.gz 332674 BLAKE2B 1dc0b7797d59a895ec93c171f0797daace9c9d11dc17182f714488030a31b3b28cc53c20723454e2430923f2dc7d8d3ed305bca08592e3045ab43eca3ca96c98 SHA512 215a23b61976b7418172a9c28a7646469127a1caa8dcb388fede54d6d64d83fd9691d41b58d7bb3fc4e46c1828ca0b5d7c97371b33b542a839b84c38f75dbf3b +DIST fakeredis-2.40.0.tar.gz.provenance 9869 BLAKE2B 5fa1cfb9ffe0713dbf21a3685f90b2e80b4009b39401cdf7f1ced6d6b4a5c3d392d33e9fa5f6df5d966e3c83f03261c86e66c94df47f649561ea0ec7d5ab6e12 SHA512 6f2db02bfa3f52c4739fc5c58c8b4d14c7d238ed0540c31ea86ab0adef8c34ef1c10352f0452b28e2d513efc56ceb8661426e681a9bce4ab650ae48cd04231bb diff --git a/dev-python/fakeredis/fakeredis-2.40.0.ebuild b/dev-python/fakeredis/fakeredis-2.40.0.ebuild new file mode 100644 index 000000000000..31767ad12918 --- /dev/null +++ b/dev-python/fakeredis/fakeredis-2.40.0.ebuild @@ -0,0 +1,139 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/cunla/fakeredis-py +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Fake implementation of redis API for testing purposes" +HOMEPAGE=" + https://github.com/cunla/fakeredis-py/ + https://pypi.org/project/fakeredis/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + >=dev-python/redis-4.3[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-db/redis + dev-db/valkey + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/valkey[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-{asyncio,mock} ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # do not install duplicate license + sed -i -e '\@fakeredis/LICENSE@d' pyproject.toml || die +} + +wait_for_status() { + local expected=${1} + + local i + for i in {1..50}; do + "${server}-cli" -p "${redis_port}" ping + [[ ${?} -eq ${expected} ]] && return + sleep 0.2 + done + + die "Timeout while waiting for ${1}-server to start/stop" +} + +src_test() { + local server + for server in redis valkey; do + local redis_pid="${T}/${server}.pid" + local redis_port=6390 + local redis_log="${T}/${server}.log" + local redis_db="${T}/${server}.db" + + einfo "Running ${server} server tests" + "${EPREFIX}/usr/sbin/${server}-server" - <<- EOF || die "Unable to start ${server} server" + daemonize yes + pidfile ${redis_pid} + port ${redis_port} + logfile ${redis_log} + dir ${redis_db%/*} + dbfilename ${redis_db##*/} + bind 127.0.0.1 + EOF + + # wait for the server to start + wait_for_status 0 + + distutils-r1_src_test + + "${server}-cli" -p "${redis_port}" shutdown || die "Unable to stop ${server} server" + + # wait for the server to stop + wait_for_status 1 + done +} + +python_test() { + local EPYTEST_DESELECT=( + # json ext + test/test_stack/test_json.py + test/test_stack/test_json_arr_commands.py + test/test_stack/test_json_fpha.py + # eval command + test/test_internals/test_reply_shaping.py::test_nested_replies_reach_the_client_intact + # TODO + "test/test_mixins/test_pubsub_commands.py::test_published_message_to_shard_channel[Strict3]" + "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict2]" + "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict3]" + ) + + local EPYTEST_IGNORE=( + # these tests fail a lot... + test/test_hypothesis + test/test_hypothesis_joint.py + ) + + case ${server} in + redis) + EPYTEST_DESELECT+=( + "test/test_mixins/test_acl_commands.py::test_acl_cat[Strict2]" + "test/test_mixins/test_acl_commands.py::test_acl_cat[Strict3]" + "test/test_async/test_redis_only.py::test_async_lock[fake_resp2]" + "test/test_async/test_redis_only.py::test_async_lock[fake_resp3]" + "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict2]" + "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict3]" + "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict2]" + "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict3]" + ) + + # run fake tests only once + # TODO: figure out how to run tcp_server tests + # they fail if a server is running, + # and conftest fails if one isn't running + epytest -m "not real and not tcp_server" + ;; + valkey) + EPYTEST_DESELECT+=( + test/test_stack/test_vectorset.py + ) + ;; + esac + + # we can run "fake" tests in parallel, but "real" seem to share + # the same connection + EPYTEST_XDIST= epytest -m "real" +} diff --git a/dev-python/fastapi/Manifest b/dev-python/fastapi/Manifest index 515f4379e5c9..58a957f5b510 100644 --- a/dev-python/fastapi/Manifest +++ b/dev-python/fastapi/Manifest @@ -1,2 +1 @@ -DIST fastapi-0.142.4.tar.gz 467841 BLAKE2B 544d79530c15dae26718c42446ead3f5f2a443baf44bc4030f91ac66ddd38f4a5ed088ada78efce2e148182ee87c0ecf330ff0764d8cb23a9f014ceefe2f3171 SHA512 e82761d7f9a1674c0d44b18fdd23170b95571e195ab4a6ca3d67ae992b99d848304acb7eb6bd6302738caa3236aa328037979a46cf9ac36f86f55ef045222449 DIST fastapi-0.143.0.tar.gz 468391 BLAKE2B 24b1ebaac972c183166ebe37c76ec6fe29ec68b1cbdb78201e1ff11c54e158b56b9ba6f45e2318815202d97c0e94ea7b58fe53c620b501098fdcdeec564a2a43 SHA512 1fc0322645736bbdcb07892cd0f622feeb82b8e751b3e0040bd7cb32f8d749b38a5c33787ee1f1d2d67625b885481e3b2c17e8db9e13ac239833bfa544ff5f11 diff --git a/dev-python/fastapi/fastapi-0.142.4.ebuild b/dev-python/fastapi/fastapi-0.142.4.ebuild deleted file mode 100644 index 001c647ada47..000000000000 --- a/dev-python/fastapi/fastapi-0.142.4.ebuild +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright 2025-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=pdm-backend -PYTHON_COMPAT=( python3_{13..14} ) -#may be not stricly required -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 optfeature pypi - -DESCRIPTION="High performance framework, easy to learn, fast to code, ready for production" -HOMEPAGE=" - https://fastapi.tiangolo.com/ - https://github.com/fastapi/fastapi/ - https://pypi.org/project/fastapi/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64" - -RDEPEND=" - >=dev-python/annotated-doc-0.0.4[${PYTHON_USEDEP}] - >=dev-python/opentelemetry-api-1.44.0[${PYTHON_USEDEP}] - >=dev-python/pydantic-2.9.0[${PYTHON_USEDEP}] - >=dev-python/starlette-0.46.0[${PYTHON_USEDEP}] - >=dev-python/typing-extensions-4.8.0[${PYTHON_USEDEP}] - >=dev-python/typing-inspection-0.4.2[${PYTHON_USEDEP}] -" - -#FIXME: add missing deps -BDEPEND=" - test? ( - dev-python/a2wsgi[${PYTHON_USEDEP}] - dev-python/dirty-equals[${PYTHON_USEDEP}] - dev-python/flask[${PYTHON_USEDEP}] - dev-python/httpx[${PYTHON_USEDEP}] - dev-python/httpx2[${PYTHON_USEDEP}] - dev-python/pydantic-settings[${PYTHON_USEDEP}] - dev-python/python-multipart[${PYTHON_USEDEP}] - dev-python/sqlalchemy[${PYTHON_USEDEP}] - dev-python/typer[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( anyio inline-snapshot pytest-timeout ) -# workaround broken toml config -: ${EPYTEST_TIMEOUT:=30} -# 3k tests+, so use xdist to speed them up -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -# There are some JSON response tests that will exercise orjson or ujson if they are available. -# These are properly skipped if the optional dependencies are not installed at the cost of a little spam. -python_test() { - local EPYTEST_IGNORE=( - # python/strawberry-graphql (in guru, test dep only) - tests/test_tutorial/test_graphql/test_tutorial001.py - # dev-python/sqlmodel (in guru, test dep only) - tests/test_tutorial/test_sql_databases/test_tutorial001.py - tests/test_tutorial/test_sql_databases/test_tutorial002.py - # dev-python/fastapi-cli (missing, test and optfeature) - tests/test_fastapi_cli.py - # dev-python/pwdlib (in guru, test dep only) - tests/test_tutorial/test_security/test_tutorial004.py - tests/test_tutorial/test_security/test_tutorial005.py - # Wants dev-python/multipart _just_ to complain that it's not the right multipart lib. - tests/test_multipart_installation.py - # scripts/tests use CliRunner.isolated_filesystem() removed in recent typer - scripts/tests - ) - local EPYTEST_DESELECT=( - # Requires investigation - missing ./image.png test file (?) - tests/test_tutorial/test_additional_responses/test_tutorial004.py::test_path_operation_img - - # Broken by brotli being available, also fragile to random ordering - tests/test_tutorial/test_header_param_models/test_tutorial001.py::test_header_param_model_invalid - tests/test_tutorial/test_header_param_models/test_tutorial003.py::test_header_param_model_invalid - tests/test_tutorial/test_header_param_models/test_tutorial003.py::test_header_param_model_no_underscore - # opentelemetry-* - tests/test_telemetry/test_background.py::test_background_task_integrations - tests/test_telemetry/test_data.py::test_request_objects_are_not_exported - tests/test_telemetry/test_environment_integrations.py - tests/test_telemetry/test_integrations.py::test_current_contrib - tests/test_telemetry/test_integrations.py::test_current_logfire - tests/test_telemetry/test_integrations.py::test_current_sentry - tests/test_telemetry/test_integrations.py::test_inactive_sentry_does_not_disable_native - tests/test_telemetry/test_integrations.py::test_logfire_global_provider_without_fastapi_instrumentor - tests/test_telemetry/test_native_integrations.py - tests/test_telemetry/test_runtime.py::test_concurrent_provider_owner_wins - tests/test_telemetry/test_runtime.py::test_environment_export_initializes_after_fork - tests/test_telemetry/test_runtime.py::test_failed_registration_closes_new_exporter - tests/test_telemetry/test_runtime.py::test_real_otlp_exception_export_without_traces_or_metrics - tests/test_telemetry/test_runtime.py::test_real_otlp_export_and_repeated_lifespans - tests/test_telemetry/test_runtime.py::test_registration_provider_prefers_public_metric_reader - tests/test_telemetry/test_runtime.py::test_unsupported_provider_warns_without_preventing_startup - ) - epytest -} - -pkg_postinst() { - # not part of any upstream extra - optfeature "alternative JSON library" "dev-python/ujson" # orjson, too but it's deprecated - - # pyproject.toml:project.optional-dependencies.standard - # Following optfeatures should be exposed, but missing deps - # optfeature "fastAPI CLI" "dev-python/fastapi-cli" - missing - depends on this package! - # optfeature "compressed file support" "dev-python/fastar" - missing - # optfeature "pydantic extra types support" "dev-python/pydantic-extra-types" - in guru - optfeature_header "standard extras" - optfeature "ASGI server support" "dev-python/uvicorn" - optfeature "email validation support" "dev-python/email-validator" - optfeature "TestClient for testing FastAPI applications" "dev-python/httpx" - optfeature "templating support" "dev-python/jinja2" - optfeature "multipart form data support" "dev-python/python-multipart" - optfeature "settings management support" "dev-python/pydantic-settings" - - # pyproject.toml:project.optional-dependencies.all - includes all the above plus: - optfeature_header "all extras" - optfeature "session middleware support" "dev-python/itsdangerous" - optfeature "YAML support" "dev-python/pyyaml" -} diff --git a/dev-python/fastsimdjson/Manifest b/dev-python/fastsimdjson/Manifest new file mode 100644 index 000000000000..1743c3b34bb3 --- /dev/null +++ b/dev-python/fastsimdjson/Manifest @@ -0,0 +1,2 @@ +DIST fastsimdjson-0.8.0.tar.gz 3171735 BLAKE2B 8e7ec750b854797c766c46c5c76e50f828bba31cd9eae53d6ba1e4bb82d588c46cd78b5f7aaf05a60d8e77818bef6a6eb526419df526cfa6b60ef6a2515e5cd7 SHA512 cf5a5c92cb8d1be049a261225632c4f01f9bd5198b4c1eb4faebb2dbf368100614e0348d1435cd4d51b0ab1bd2140bdf71f06bcb45068485c0f7c1fac8fef433 +DIST simdjson-data-351949906abde446f0314bf79606fb5d884f5be7.tar.gz 6635608 BLAKE2B 07f96c6b1bfea55a247eb7361bd4c068cb49e06f2cb1f3853c107173025c4cd543b20a5b7a3dcfa1e4462aaca8278a1cff9656f54319da08e221bc38f98e5a9e SHA512 7db557d374b9ce98077b7a9e1265ae66f9a607f0f283f662a9f184147f081727df68c0eb4889ebc8aca609ec62b348753445e553087e6520879a23e268caafba diff --git a/dev-python/fastsimdjson/fastsimdjson-0.8.0.ebuild b/dev-python/fastsimdjson/fastsimdjson-0.8.0.ebuild new file mode 100644 index 000000000000..fc60e3555519 --- /dev/null +++ b/dev-python/fastsimdjson/fastsimdjson-0.8.0.ebuild @@ -0,0 +1,59 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +DISTUTILS_EXT=1 + +inherit distutils-r1 pypi + +DESCRIPTION="fast JSON in Python" +HOMEPAGE=" + https://pypi.org/project/fastsimdjson/ + https://github.com/simdjson/fastpysimdjson +" + +SIMDJSON_DATA_HASH="351949906abde446f0314bf79606fb5d884f5be7" +SRC_URI+=" + test? ( + https://github.com/simdjson/simdjson-data/archive/${SIMDJSON_DATA_HASH}.tar.gz + -> simdjson-data-${SIMDJSON_DATA_HASH}.tar.gz + ) +" + +LICENSE="Apache-2.0 MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + >=dev-libs/simdjson-5.0.2:=[nan] + >=dev-cpp/simdutf-9.2:= + dev-libs/zmij:= +" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-python/wheel[${PYTHON_USEDEP}] +" +# there is an optional test dep on dev-python/orjson, left that out since it's marked as deprecated + +PATCHES=( + "${FILESDIR}/fastsimdjson-0.8.0-unbundle.patch" +) + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_prepare_all() { + # remove bundled deps + rm -rf vendor || die + + distutils-r1_python_prepare_all +} + +python_test() { + ln -sfn "${WORKDIR}/simdjson-data-${SIMDJSON_DATA_HASH}" "simdjson-data" || die + + distutils-r1_python_test +} diff --git a/dev-python/fastsimdjson/files/fastsimdjson-0.8.0-unbundle.patch b/dev-python/fastsimdjson/files/fastsimdjson-0.8.0-unbundle.patch new file mode 100644 index 000000000000..cd1ad24cdf80 --- /dev/null +++ b/dev-python/fastsimdjson/files/fastsimdjson-0.8.0-unbundle.patch @@ -0,0 +1,54 @@ +diff --git a/setup.py b/setup.py +index 5b96127..1accfc0 100644 +--- a/setup.py ++++ b/setup.py +@@ -10,11 +10,11 @@ DEFINES = [("NDEBUG", None), ("SIMDJSON_ENABLE_NAN_INF", "1")] + ext = Extension( + "fastsimdjson", + # src/fastsimdjson.cpp includes vendor/simdjson.cpp (a unity build). +- sources=["src/fastsimdjson.cpp", "vendor/simdutf.cpp"], +- depends=["vendor/simdjson.cpp", "vendor/simdjson.h", "vendor/simdutf.h", +- "vendor/zmij.h", "vendor/zmij.cc"], +- include_dirs=["vendor"], ++ sources=["src/fastsimdjson.cpp"], ++ depends=[], ++ include_dirs=[], + language="c++", ++ libraries=["simdjson", "simdutf", "zmij"], + define_macros=DEFINES, + ) + +@@ -23,15 +23,8 @@ class BuildExt(build_ext): + def build_extensions(self): + msvc = self.compiler.compiler_type == "msvc" + args = ["/std:c++17", "/O2", "/EHsc", "/utf-8"] if msvc else ["-std=c++17", "-O3"] +- # zmij (float formatting) is compiled as C++14: some compilers reject +- # its constant tables in C++17 mode. +- zmij_args = ["/std:c++14", "/O2", "/EHsc"] if msvc else ["-std=c++14", "-O3"] +- zmij = self.compiler.compile([os.path.join("vendor", "zmij.cc")], +- output_dir=self.build_temp, include_dirs=["vendor"], +- macros=[("NDEBUG", None)], extra_postargs=zmij_args) + for e in self.extensions: + e.extra_compile_args = args +- e.extra_objects = list(zmij) + super().build_extensions() + + +diff --git a/src/fastsimdjson.cpp b/src/fastsimdjson.cpp +index f7fcf2b..c273e26 100644 +--- a/src/fastsimdjson.cpp ++++ b/src/fastsimdjson.cpp +@@ -30,10 +30,9 @@ + + // simdjson.cpp is compiled here (a unity build) so that dumps can call its + // float-to-decimal routine, dtoa_impl::dragonbox, directly. +-#include "simdjson.h" +-#include "simdjson.cpp" +-#include "simdutf.h" +-#include "zmij.h" // shortest float digits for dumps and dumpb (vendor/zmij.cc) ++#include <simdjson.h> ++#include <simdutf.h> ++#include <zmij.h> // shortest float digits for dumps and dumpb (vendor/zmij.cc) + + #ifdef _MSC_VER + #include <intrin.h> diff --git a/dev-python/fastsimdjson/metadata.xml b/dev-python/fastsimdjson/metadata.xml new file mode 100644 index 000000000000..0ba9a7d3033b --- /dev/null +++ b/dev-python/fastsimdjson/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + </maintainer> + <maintainer type="person"> + <email>chutzpah@gentoo.org</email> + <name>Patrick McLean</name> + </maintainer> + <origin>srcux</origin> +</pkgmetadata> diff --git a/dev-python/filelock/Manifest b/dev-python/filelock/Manifest index cb6a9b1b910a..688079c36645 100644 --- a/dev-python/filelock/Manifest +++ b/dev-python/filelock/Manifest @@ -22,3 +22,5 @@ DIST filelock-4.1.0.tar.gz 561277 BLAKE2B 4e8a7cc38da18ca61323a0c6fe6a733ed56843 DIST filelock-4.1.0.tar.gz.provenance 9815 BLAKE2B edeae542d4fe299d180e674402fa07da3432893b1ec757267fea6a0b0589a18a03ed4de3180e2be71ae726c46d1163b49d51a7a437401bbc5269247a585fb4f0 SHA512 b96c082948fba515e3d14d0d14e90954b26da26da1235d5d09c858dac10e174f38c3959c8c2c843a9050b21fb1582fdaecd2faab8c9c88af4ef60839c670b4de DIST filelock-4.1.1.tar.gz 563430 BLAKE2B 6fc4121e54e9ace488526aae23fff5640a5999fa61d33805f7ce0c051426fa9bd5033ecfa376d7ab58cbe44b709d2f16c1a5953af7881394e7077cb799bb0ac9 SHA512 09744b4b68a124f358bfacd938034aab7ff8c7ff66c12a1a0aba3966c5534b473d83945ef85c6cd74811a702bf84e0336cc41e7e4d831bf767e9a50ed9ab3fa1 DIST filelock-4.1.1.tar.gz.provenance 9627 BLAKE2B ccd2e9cf36f325dcc1e321dde825f9290e9d007bb7a1db9d872ab6ae40ff351a557f1debdcf655a4baef8be1aebe7912c34e2f78320490a636da7ba49d104f0b SHA512 e4bc59fbf1426c90868607ed7d4ab5b000438a6185ac5eec332cf07a45950d8ae4665b977486ffc0e3ee3530559183e652cf6227285fdb30fee4f10725691cc8 +DIST filelock-4.2.0.tar.gz 569667 BLAKE2B 5c5d8f41206453a9a2089ee86f7f4503e1b3b83a8ef76b174d769c3f736bc561c247595ffe41b31f1edd0cf074c5e8155efa14b79657f1721c5cd82d757a9af5 SHA512 96e9dc73d938c8ee9f357dd92d7999ebbb06c4f07aed08833ec9eec686fc37d961f121d4f4369c0b6e80e16ab31a44cd3ca235934ddaeefdac4ac07fb792fcd2 +DIST filelock-4.2.0.tar.gz.provenance 9768 BLAKE2B 9a17c307d1bce1df7e12340e11bbd93d3e67aba29fce3e920378ef816298b7fe18466743635ab1c5839beebf308766b10b87603a4856b7d87cc8fb27f4c0762c SHA512 e6847b3e7b2021f06c500113033b8419d9c0d3d5405003a93ed80ae9c1088c7fdf8d38df504b5d63bdac398daee1be56c8c5ee21d79f5a41f4a3d37ce4dbee8a diff --git a/dev-python/filelock/filelock-4.2.0.ebuild b/dev-python/filelock/filelock-4.2.0.ebuild new file mode 100644 index 000000000000..51d73c002e05 --- /dev/null +++ b/dev-python/filelock/filelock-4.2.0.ebuild @@ -0,0 +1,38 @@ +# Copyright 2018-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/tox-dev/filelock +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="A platform independent file lock for Python" +HOMEPAGE=" + https://github.com/tox-dev/filelock/ + https://pypi.org/project/filelock/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + +BDEPEND=" + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + dev-python/virtualenv[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-{asyncio,mock,timeout} ) +EPYTEST_RERUNS=5 +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # TODO + tests/soft_rw/test_soft_rw_async.py::test_async_leaked_singleton_is_closed_on_teardown + tests/soft_rw/test_soft_rw_sync.py::test_leaked_acquired_singleton_is_closed_on_teardown +) diff --git a/dev-python/fonttools/Manifest b/dev-python/fonttools/Manifest index 05d1026d9b14..987c754daceb 100644 --- a/dev-python/fonttools/Manifest +++ b/dev-python/fonttools/Manifest @@ -1,4 +1,3 @@ -DIST fonttools-4.63.0.gh.tar.gz 4031830 BLAKE2B 8cdb1d9018a44898fd792ee538c88443ecda34d7c896d280578d96b80c2f80064ad057b1e4bcb4a865dd706eb3605e86768eb141317fdcf5947a99fc873a7421 SHA512 a2d8df4fd11f36c45e838953d6c8bf1e25999382422d5fc3fe3418c985c06f30b52073f738278cb2a7b19da6e227e5ae709f016661a17e7ae96023b7a762365e DIST fonttools-4.64.0.gh.tar.gz 4106541 BLAKE2B 5bdddac2b811e47567948a48bef0de7c74510b3334bf0710d08986c41f2c9b4d41a16fbc2266ed55923197602b2ecc8525ed0ebfd4636518eb64ee13db4fee9b SHA512 1cf3d8ab10931e6eca3f54e2d365a946413d90e2a8fe0405252db14a51e2908c109c6a65f7b0fb5fabaeb0e30eb27b5b737bf2d1b75a3137806bc88f140a0faa DIST fonttools-4.65.0.gh.tar.gz 4113728 BLAKE2B a8315b819ae12417b6757956d237fa9fffb4a2e75dc893c00be0dafe529880e161070f9496594b3414a0ef0932fe84092d1910ca2f292acc6cf9f1ba07506347 SHA512 b6066e438e5237ff18e9b44343d3533ccd4468ac4e685b066a1f5da035161c082468c025ff79832eec534e29a8bbac7cc558301b13abdb763c61f91d0ceecafa DIST fonttools-4.66.0.gh.tar.gz 4129212 BLAKE2B d35d913e0dda168b623cff44a7fa430b5d5922e5ffdca3c0b14f7882780c26412b0e001dd2d277e806f5202fac1deb05bda12291343de45a5ac92482beb8e1db SHA512 01db954f6f895d941dbae3cbf900683e737ec8b4f46fc2b7158cdf9fab2fb350b9121724088521b5d790d2e5ec0e70939ae1757d1612c87616ecbfec2b9ae0b9 diff --git a/dev-python/fonttools/files/fonttools-4.63.0-py315.patch b/dev-python/fonttools/files/fonttools-4.63.0-py315.patch deleted file mode 100644 index 24db71a60f96..000000000000 --- a/dev-python/fonttools/files/fonttools-4.63.0-py315.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 731282b6a7335b425c37a02ce865b9189ad6ca63 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> -Date: Sat, 11 Jul 2026 19:52:51 +0200 -Subject: [PATCH] Replace private `glob.glob1()` with `glob.glob(..., - root_dir=...)` -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Replace the use of undocumented `glob.glob1()` function that was removed -in Python 3.15 with its equivalent `glob.glob(..., root_dir=...)`. This -fixes compatibility with Python 3.15 (where the function is removed), -and works all the way down to Python 3.10. - -See: https://docs.python.org/3.13/whatsnew/3.13.html#new-deprecations - -Signed-off-by: Michał Górny <mgorny@gentoo.org> ---- - MetaTools/buildTableList.py | 2 +- - MetaTools/check_table_coverage.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/MetaTools/buildTableList.py b/MetaTools/buildTableList.py -index b344f330f..9bdd95642 100755 ---- a/MetaTools/buildTableList.py -+++ b/MetaTools/buildTableList.py -@@ -12,7 +12,7 @@ fontToolsDir = os.path.normpath(fontToolsDir) - tablesDir = os.path.join(fontToolsDir, "Lib", "fontTools", "ttLib", "tables") - docFile = os.path.join(fontToolsDir, "Doc/source/ttx.rst") - --names = glob.glob1(tablesDir, "*.py") -+names = glob.glob("*.py", root_dir=tablesDir) - - modules = [] - tables = [] -diff --git a/MetaTools/check_table_coverage.py b/MetaTools/check_table_coverage.py -index 5764daddb..19ec986eb 100644 ---- a/MetaTools/check_table_coverage.py -+++ b/MetaTools/check_table_coverage.py -@@ -141,7 +141,7 @@ KNOWN_GAPS: dict[str, set[str]] = { - def get_table_modules() -> list[tuple[str, str]]: - """Return sorted list of (module_name, tag_raw) for all table .py files.""" - modules = [] -- for filename in glob.glob1(TABLES_DIR, "*.py"): -+ for filename in glob.glob("*.py", root_dir=TABLES_DIR): - name = filename[:-3] - try: - tag = identifierToTag(name) # may contain trailing spaces, e.g. "cvt " diff --git a/dev-python/fonttools/fonttools-4.63.0-r1.ebuild b/dev-python/fonttools/fonttools-4.63.0-r1.ebuild deleted file mode 100644 index 091fbebb659e..000000000000 --- a/dev-python/fonttools/fonttools-4.63.0-r1.ebuild +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{13..14} ) -PYTHON_REQ_USE="xml(+)" - -inherit distutils-r1 virtualx - -DESCRIPTION="Library for manipulating TrueType, OpenType, AFM and Type1 fonts" -HOMEPAGE=" - https://github.com/fonttools/fonttools/ - https://pypi.org/project/fonttools/ -" -SRC_URI=" - https://github.com/fonttools/fonttools/archive/${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+native-extensions" - -BDEPEND=" - native-extensions? ( - $(python_gen_cond_dep ' - dev-python/cython[${PYTHON_USEDEP}] - ' 'python*') - ) - test? ( - dev-python/brotlicffi[${PYTHON_USEDEP}] - dev-python/munkres[${PYTHON_USEDEP}] - app-arch/zopfli - ) -" - -EPYTEST_PLUGINS=( pytest-rerunfailures ) -# woff2 tests are extremely flaky -EPYTEST_RERUNS=20 -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -PATCHES=( - # https://github.com/fonttools/fonttools/pull/4125 - "${FILESDIR}/${P}-py315.patch" -) - -python_compile() { - local -x FONTTOOLS_WITH_CYTHON=$(usex native-extensions) - [[ ${EPYTHON} == pypy3 ]] && FONTTOOLS_WITH_CYTHON=0 - distutils-r1_python_compile -} - -src_test() { - # virtualx used when matplotlib is installed causing plot module tests to run - virtx distutils-r1_src_test -} - -python_test() { - # nonfatal for virtx - nonfatal epytest Tests fontTools || - die -n "Tests failed with ${EPYTHON}" -} diff --git a/dev-python/gitpython/Manifest b/dev-python/gitpython/Manifest index 74949600efa1..2715e2e2fa94 100644 --- a/dev-python/gitpython/Manifest +++ b/dev-python/gitpython/Manifest @@ -4,9 +4,11 @@ DIST GitPython-3.1.60.gitbundle 13114387 BLAKE2B 6515764c855a8c3207c98fbf7bf1007 DIST GitPython-3.1.61.gitbundle 13122659 BLAKE2B f520b694d6f796523d20c5fcf80d1b4a8e8ba544f371aeb71edec51302500b1203876bf6faf5fdb1ff24abb3f8b9cd720f9e0d240df79b6d518f53d89dd413c9 SHA512 7b83e5dd1dff9475e7017eb2d82694f7a2f6039780e97e7cc8fbc3682ff7971ab6a03967571b2840ad37ebad988f8ab1db958871adf4fab6610dffe25890a280 DIST GitPython-3.1.62.gitbundle 13146787 BLAKE2B 005cf46eefb07a2d98500cc8566ded068446eb391b80cbc884d60ddd12916c8ae3c5917fbdfd6c05315f0b06f4b078a3c5100e45245d624469b4b98d8cc30c81 SHA512 09a57ac6df48396161df439338b95b86b0d8e36ba04139d9f18624537951e6ecbea466bcd8a4f3549a758f0687044b08ecff202a3da8175c98786c6e39397ca3 DIST GitPython-3.2.0.gitbundle 13785675 BLAKE2B 170fc7429f6ff18009b9a79edd8bbffff89af9cd996fd989344ef2f40eaa1f2f8f3779755503e46d80e5afaa67f7ddcba4be51557438341b27d1a435d9f9fc26 SHA512 5c8c1d8c87b0e68aa18119a981565504c10b7fa774e26c4665e59a63701b28b06bd1ba2312640ed0ca42e367d356a0e5b63c480ba5b78d8ea1e90673eb7f9d39 +DIST GitPython-3.2.1.gitbundle 14158222 BLAKE2B 35429b478d5dc51d0920bbb160b5ea5d3f2976dde4d90163eef0aa61d946645ddf1835c9341104a410bb2fe0be05d1037a82b61ae6253415883bc306a7f154a3 SHA512 365387eb1613364967819255d3a912a06dd5afc319bd4430df6e4ea1e9a98c999a2f6cff3db17ff3ff4f452d206f6aac70986d00f9e326f26e7de03664597b39 DIST gitpython-3.1.58.tar.gz 228498 BLAKE2B fcd5b832587b82e2fb51d1a6087c02f294b84418de0c413d5eaa828aff4d2b87e8ead4486b274352d5c9ca09633e63a1c41a232ebf164c671d45df1bd9dd2bd3 SHA512 779e55e5a977b37f6bf46c5b8358e61e07f590d089b27bb402e37fb0b78d35f4a1fae1199274ecb5f7b057f2707057003d946cdc7557e7d0e574d1adb046cb70 DIST gitpython-3.1.59.tar.gz 230445 BLAKE2B ea1a8488cde9d1136f71f34c23224b5f02a3a5581a89dc1fa3a8355e3147d5ae01d533c1b032404471a691b3b9dba26fc55d7517bbf775b30374398b3a57a87b SHA512 ef810ace84c76200b6820818de0b8b3f3e8070ee48f2444bf60f6b24c7eba7710527e616ee3cc306ccb132db893b704033b238a5e2de9d9d186559ebfffcbfd3 DIST gitpython-3.1.60.tar.gz 230793 BLAKE2B d92475ddcd93bac6625a7c8d57d2cf9a1ecf6dd5285c2907d31fe9b4c7d8a4ed2429828f484f2bff5995aa18a9983fd8469df75583d7ad3c17f396e63adc40c1 SHA512 12350f87bed859bc06d40c8d400e40b814f00a9858a97a9a33d719b414292a55976cf9248ea86bd322bbb9f47a49af76a60c17756aaa932e0f713225363ae16a DIST gitpython-3.1.61.tar.gz 231680 BLAKE2B ca6fcd928af08eac9ffecca3a718205d43d982950eccf5cf98fdd47a5344b0fb40e3c08a9205b86e330a5b052228c6126e4a0678c6da357e8ea4125ceed27b2b SHA512 0ba61c823382c384a3da0549f0a2a2e06335d91a1204bbe3364508d864dcb6f4ad0194dfe56c9b263ce83c58f8284884558910175b1a8bdc8416c1fda2f01711 DIST gitpython-3.1.62.tar.gz 231728 BLAKE2B 6b7474b32eb6668f068a4c626cb8652d51225eb4780db3346ca01c1bed438428b902feced1fce22d2d5e31f635e39777dcec7b3c9296438cb213b2e50da0f74b SHA512 47545ecf764f16cfc136852f58426c0ee9388fdd831e64b7677a8fdbb1ed2a5fc561f02c0bb6af587d8825b57fc784db6576fc8d26ca2b196d68bf7babb8837b DIST gitpython-3.2.0.tar.gz 238091 BLAKE2B 9497f8e2b87992a549ee58647c6238d941803afb05a2651fd3f2179e3d599b4639404dde2ff5264b36b54c39eea1174a0128143e0149d6b0807e3e4df77f57b3 SHA512 83d463de8f22f25d8591e72bc3700a417580fd3016a074d84d2c4e21dd0de91977d9201ff27a6a5eb8bf602388a4eea52e07f4108a01f35f2c60bef4706bda87 +DIST gitpython-3.2.1.tar.gz 241688 BLAKE2B d196d3a0480f98c841588a638316ab6a00e71b16ca07665e121a4d07f8c532288db47ab5ec537a16d2b1a20351a944df351918cbd578f1d8a8ead359d09c217a SHA512 dba4203e7d6a91c4e0b5d2c7b3e2ad988214954c0a75f827adb7b2100f3f5a81ec4cf72ac8ad2cc81c45f040f3447e6e7a47ef893cd4348e75d91837adb044ab diff --git a/dev-python/gitpython/gitpython-3.2.1.ebuild b/dev-python/gitpython/gitpython-3.2.1.ebuild new file mode 100644 index 000000000000..ebe35bd5a941 --- /dev/null +++ b/dev-python/gitpython/gitpython-3.2.1.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_PN=GitPython +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 pypi + +TEST_P=GitPython-${PV} +GITDB_P=gitdb-4.0.12 +SMMAP_P=smmap-5.0.1 + +DESCRIPTION="Library used to interact with Git repositories" +HOMEPAGE=" + https://github.com/gitpython-developers/GitPython/ + https://pypi.org/project/GitPython/ +" +SRC_URI+=" + test? ( + https://distfiles.gentoo.org/pub/proj/python/GitPython/${TEST_P}.gitbundle + ) +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + dev-vcs/git + >=dev-python/gitdb-4.0.1[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + >=dev-python/ddt-1.1.1[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-mock ) +distutils_enable_tests pytest + +src_test() { + git config --global user.email "travis@ci.com" || die + git config --global user.name "Travis Runner" || die + + git clone "${DISTDIR}/${TEST_P}.gitbundle" "${T}"/test || die + + cd "${T}"/test || die + git rev-parse HEAD > .git/refs/remotes/origin/master || die + TRAVIS=1 ./init-tests-after-clone.sh || die + cat test/fixtures/.gitconfig >> ~/.gitconfig || die + + distutils-r1_src_test +} + +python_test() { + local EPYTEST_DESELECT=( + # performance tests are unreliable by design + test/performance + # unimportant and problematic + test/test_installation.py + # Internet + test/test_quick_doc.py::QuickDoc::test_cloned_repo_object + # TODO + test/test_submodule.py::TestSubmodule::test_base_rw + test/test_submodule.py::TestSubmodule::test_root_module + test/test_remote.py::TestTimeouts::test_timeout_funcs + ) + + epytest -o addopts= test +} diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest index 6e97c14189b2..8cdf716cbbdf 100644 --- a/dev-python/hypothesis/Manifest +++ b/dev-python/hypothesis/Manifest @@ -10,6 +10,7 @@ DIST hypothesis-6.168.4.gh.tar.gz 9712927 BLAKE2B 7eb0492041769b05668cbdc847c27d DIST hypothesis-6.168.5.gh.tar.gz 9713032 BLAKE2B a6c90a5f65a551f6378e5d98b604f401fb795ff7f9c6a6c94d2789e69b4fc8435dce1338d807f1a85392335c8219956aa7af56bbf735e3499aba3587ae461c25 SHA512 2ccf3bcb0a2cbfb3073003e6c6df56c02a4745f1b4b94627732d1977c50642abf2ca41ad7808c218aa75d4dceff965b6c5de4d0dab836ddb55e82f0b32fe11fd DIST hypothesis-6.169.0.gh.tar.gz 9710358 BLAKE2B fb65497c921687a5e1a3b551528b38c2c96d1c1e2280770bf279d46005ae2baae8e9adb1d84f5cf7e17ea57972c96d57699f64140e94261b12fb6b473ac2260a SHA512 c42efd6d1c5345281babccca909d18cebb65c74a0c3aa7c03e7d6944f9004e752fd2e6f4f29cb581ea38577f40479387835627fbeeac3bf972014891665009f0 DIST hypothesis-6.169.1.gh.tar.gz 9710711 BLAKE2B 8abedcdcba8a1d32e424a951047450be5ee33d8fa4fd8cd66e152c89abf60d7fb39fc0573e5778bf09442af2e30a648e4621208c7fe285a8fed670b9c37e15c2 SHA512 f1da6e1709e8e5eccf337cfeece87a197b402d62175a869b1ba4d1e1b06429d438cdf8b9ef8dc99c4928a0f24f8a7991d52272dc748bd2ccfe8655aae62556b0 +DIST hypothesis-6.169.3.gh.tar.gz 9711107 BLAKE2B 973dc2650033c5b31dd2b6e792353609ba51c362e0cd69e312a1731400ba83fdc2babe2be2c82c2fedc998036d15ee245c2f96a8cc4280c646da3b1268b5e46d SHA512 bee8c5489645835eb8371dd6e242ce51c07d937fe06138235637ebc57fc29b9b40272b45e92ce16b0fc43a1992510490189bd55bd635fe1270b3cb34d65069ba DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690 DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155 DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3 diff --git a/dev-python/hypothesis/hypothesis-6.169.3.ebuild b/dev-python/hypothesis/hypothesis-6.169.3.ebuild new file mode 100644 index 000000000000..d6e8b8e38d1c --- /dev/null +++ b/dev-python/hypothesis/hypothesis-6.169.3.ebuild @@ -0,0 +1,143 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=maturin +CLI_COMPAT=( python3_{12..15} ) +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+),sqlite" + +RUST_MIN_VER="1.91.0" +CRATES=" + cfg-if@1.0.4 + crunchy@0.2.4 + getrandom@0.3.4 + half@2.7.1 + heck@0.5.0 + libc@0.2.186 + once_cell@1.21.4 + portable-atomic@1.13.1 + ppv-lite86@0.2.21 + proc-macro2@1.0.106 + pyo3-build-config@0.29.3 + pyo3-ffi@0.29.3 + pyo3-macros-backend@0.29.3 + pyo3-macros@0.29.3 + pyo3@0.29.3 + quote@1.0.46 + r-efi@5.3.0 + rand@0.9.4 + rand_chacha@0.9.0 + rand_core@0.9.5 + syn@2.0.118 + target-lexicon@0.13.5 + unicode-ident@1.0.24 + wasip2@1.0.4+wasi-0.2.12 + wit-bindgen@0.57.1 + zerocopy-derive@0.8.53 + zerocopy@0.8.53 +" + +inherit cargo distutils-r1 optfeature + +DESCRIPTION="A library for property based testing" +HOMEPAGE=" + https://github.com/HypothesisWorks/hypothesis/ + https://pypi.org/project/hypothesis/ +" +SRC_URI=" + https://github.com/HypothesisWorks/hypothesis/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz + ${CARGO_CRATE_URIS} +" +S="${WORKDIR}/${P}/hypothesis" + +LICENSE="MPL-2.0" +# Dependent crate licenses +LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="cli" + +RDEPEND=" + >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}] + cli? ( + $(python_gen_cond_dep ' + dev-python/black[${PYTHON_USEDEP}] + dev-python/click[${PYTHON_USEDEP}] + ' "${CLI_COMPAT[@]}") + ) +" +BDEPEND=" + test? ( + >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}] + dev-python/pexpect[${PYTHON_USEDEP}] + >=dev-python/pytest-8[${PYTHON_USEDEP}] + ) +" +PDEPEND=" + dev-python/hypothesis-gentoo[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGIN_LOAD_VIA_ENV=1 +EPYTEST_PLUGINS=( "${PN}" pytest-xdist ) +EPYTEST_RERUNS=5 +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +QA_PREBUILT="usr/lib/python.*/site-packages/hypothesis/_native.*" + +python_test() { + # NB: paths need to be relative to pytest.ini, i.e. start with hypothesis/ + local EPYTEST_DESELECT=( + # broken somehow (xdist?) + 'hypothesis/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]' + ) + local EPYTEST_IGNORE=( + # require syrupy + tests/cover/test_custom_reprs.py + ) + + case ${EPYTHON} in + python3.15*) + EPYTEST_DESELECT+=( + 'hypothesis/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]' + 'hypothesis/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]' + 'hypothesis/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]' + ) + ;; + esac + + local -x HYPOTHESIS_NO_PLUGINS=1 + epytest tests/{cover,pytest,quality} +} + +src_install() { + local HAD_CLI= + + distutils-r1_src_install + + if [[ ! ${HAD_CLI} ]]; then + rm -r "${ED}/usr/bin" || die + fi +} + +python_install() { + distutils-r1_python_install + if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then + HAD_CLI=1 + else + rm -r "${D}$(python_get_scriptdir)" || die + fi +} + +pkg_postinst() { + optfeature "datetime support" dev-python/pytz + optfeature "dateutil support" dev-python/python-dateutil + optfeature "numpy support" dev-python/numpy + optfeature "django support" dev-python/django dev-python/pytz + optfeature "pandas support" dev-python/pandas + optfeature "pytest support" dev-python/pytest +} diff --git a/dev-python/more-itertools/Manifest b/dev-python/more-itertools/Manifest index d35a5a2a6880..820295059a1e 100644 --- a/dev-python/more-itertools/Manifest +++ b/dev-python/more-itertools/Manifest @@ -1 +1,2 @@ DIST more_itertools-11.1.0.tar.gz 145772 BLAKE2B 365972289c4cef7587a2bbf388862d330d44e874c7e3119feab492e67bea1539342cc1a8a6b1d34b6a56289a71cf7e1ac390268f138e855805ca1edb91dd6f3b SHA512 462085d7b103e64af94017c5886be4198eaee9abdf60ac3cb1c7a733571e1d2f6841c93d3263f74324c929c99f42420dea695269a6c066fe60815344009755e3 +DIST more_itertools-11.2.1.tar.gz 154133 BLAKE2B d1fec66483a5754b90d60ce623f3baee33995ae7102639c75f2f34c57c1a640757a8fd7241c593d904102cd4b6b57df7ce88cc446d28cd54b8bf7382331ec4ca SHA512 765f8efebc11e985d261f55d9ecd45c8b318a2de0e6e584b291d15f36e1e423119d90cde27d45c0c0f0330b3904afc7f2453f66f5c8d605fd44e234406027db3 diff --git a/dev-python/more-itertools/more-itertools-11.2.1.ebuild b/dev-python/more-itertools/more-itertools-11.2.1.ebuild new file mode 100644 index 000000000000..121e46a65f09 --- /dev/null +++ b/dev-python/more-itertools/more-itertools-11.2.1.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit-core +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="More routines for operating on iterables, beyond itertools" +HOMEPAGE=" + https://github.com/more-itertools/more-itertools/ + https://pypi.org/project/more-itertools/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +distutils_enable_sphinx docs \ + dev-python/furo +distutils_enable_tests unittest diff --git a/dev-python/pbs-installer/Manifest b/dev-python/pbs-installer/Manifest index 721a919413fd..6165021d6a82 100644 --- a/dev-python/pbs-installer/Manifest +++ b/dev-python/pbs-installer/Manifest @@ -1,5 +1,7 @@ DIST pbs_installer-2026.10.1.tar.gz 81120 BLAKE2B f439ff09203b8b628184b587fdcb6e59c296406a22d6dc0d2b49eaab8d55f9621acef6e1d9b533a1be6fb417cf2d8a64d940fc57e4f681f256d4a907df41741c SHA512 2ee04905365d3cc627dd606a64ea4b9be96dc63508f9a86b2f7b944ab4cbb07a09f8336366a0780aecfd2cab90b66416ee01a6b9d7e72581ec7ec3ad0cd594cd DIST pbs_installer-2026.10.1.tar.gz.provenance 9959 BLAKE2B dbd0e4d6682ea9f692f7c372e1136cfffeaa5dca96c15d56f297359b24bc7fbc12ae54b97750febe8130cc92bb09d2b46054bd942c05ba4d7978d8114769c84f SHA512 f9a8af41b085d413989577c992be521c6237135811b6a2a83af04d1526188b9c4293087a246ef99d61548ec33b169bf5a9dca97b708a7284af8e9ea7e1b12272 +DIST pbs_installer-2026.10.13.tar.gz 82375 BLAKE2B a84a7e86b809cc2600b6ac5fd87f214519d3d866c01c421976b3496f6ec05139aeac4707c1b550d20146720211556a62168a7c7a21b8d38e9e95e770e913cceb SHA512 9fd739f02ee1617915670b88527333fdf0ad727640c1475cce60c1855b9065566b7d7fdebc141773f6c037c870950034e710a58e4a909d90a545611581ac1dca +DIST pbs_installer-2026.10.13.tar.gz.provenance 9835 BLAKE2B d7990b681753b6bb50fd3e06190d064636021b511e3c013d61a8a7d908d476a1329cdd188f91b9647bf2dd9db15bcb7e397d3364a52d9e18db0daa05ace28b16 SHA512 2b6355efcc9022e5a2275b3cb6fcc6d50d8a0d1db0bd4ad4d7696f577267fd71bb64cef4007acf6003227e7c5a487d8f028c69d7727b1269d672ef550a900c02 DIST pbs_installer-2026.10.3.tar.gz 81131 BLAKE2B cc8e52bc72ea442ba1854d9a1f9aeada361def24b145f5cc68885740f8472abf34e48619f780bc11bceb0131a6c1da0dae593df91d1777380554a3059547d23a SHA512 d05194ac0b36f0c510cbe90263bf7b5d4a8cfa7f55a170c128905cd291d026a64a757217a41b1a9c36aed51c353a32ed8c27cfda210f51686d603eee4c18a2fa DIST pbs_installer-2026.10.3.tar.gz.provenance 9994 BLAKE2B eb89d404d27042c7428187a46ddd036d6c4df7730e85519bc0e8fc8aeea2d30e3e34d396e0f5d37ad59a6c7899f9c244ede7da68e32f36a016af9e0f385f9c6e SHA512 4912cdd2730b36c2f015df898c2d230b3e0db2253e27177edf09f4f628146aef721e770b8d5da49a288f554d37e1633956bdfeb97b54d5cc76c47de63ac0cb28 DIST pbs_installer-2026.9.29.tar.gz 77902 BLAKE2B cf42ecc98a55c39a0a90cc82f8fa082b856cf15e74bca224627defa2113ad6b662d57bcf0dc1dcfb86a9cf8ae87555c2585c029e3260b8b55c4dba163c45bf07 SHA512 108c2d89e94ffaefd297ce372b8d3805f46f7555b53f95863e086b853f23832a342ae5271ecc712612e376687808b6ab8957731b8f317613ad34df8b46ed8998 diff --git a/dev-python/pbs-installer/pbs-installer-2026.10.13.ebuild b/dev-python/pbs-installer/pbs-installer-2026.10.13.ebuild new file mode 100644 index 000000000000..ad138f3a6f5d --- /dev/null +++ b/dev-python/pbs-installer/pbs-installer-2026.10.13.ebuild @@ -0,0 +1,33 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=pdm-backend +PYPI_VERIFY_REPO=https://github.com/frostming/pbs-installer +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Installer for Python Build Standalone" +HOMEPAGE=" + https://pypi.org/project/pbs-installer/ + https://github.com/frostming/pbs-installer/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +# httpx is needed to download builds +# zstandard is needed to install them +RDEPEND=" + $(python_gen_cond_dep ' + >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}] + ' 3.12 3.13) + <dev-python/httpx-1[${PYTHON_USEDEP}] + >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests import-check diff --git a/dev-python/pycryptodome/Manifest b/dev-python/pycryptodome/Manifest index 2847e9cd7434..cf2d4ffa0e46 100644 --- a/dev-python/pycryptodome/Manifest +++ b/dev-python/pycryptodome/Manifest @@ -1 +1,2 @@ DIST pycryptodome-3.24.1.gh.tar.gz 19739898 BLAKE2B 7db01c5bd78f14d61620272d6a15105e3c640b933263a4720d5d047c55a0bd57e984fc150f96469aa29b7947b0fb62dbbe3e199587d146b08f30af28d781600b SHA512 90df69c1f003d9a06391709e09d1cb3124053c4eb4a062cba01e6048c1fc07ba29db36b94dbafc6e5f7f6f173321b8e687358d8a3cca88921234e74f46c17c37 +DIST pycryptodome-4.0.0.gh.tar.gz 16296945 BLAKE2B e6380f4638013d528aeb45d9db1e5c6509de0301bb7bdde07dfb363d0bc833dea72edcb43cc0a1c4ce2b39ef6edf67287494c90d7f68fb0d6697ce1f77f7c3fa SHA512 536522d15b29646cdfbeae1d3d4d23261fe112392858809df117b71f3293af4b7705f9a8421a4ddd7dbf5a5df117852ce4bc506dbe30b241de0ded36c7ce6033 diff --git a/dev-python/pycryptodome/pycryptodome-4.0.0.ebuild b/dev-python/pycryptodome/pycryptodome-4.0.0.ebuild new file mode 100644 index 000000000000..23dee27e3bc1 --- /dev/null +++ b/dev-python/pycryptodome/pycryptodome-4.0.0.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 + +DESCRIPTION="A self-contained cryptographic library for Python" +HOMEPAGE=" + https://www.pycryptodome.org/ + https://github.com/Legrandin/pycryptodome/ + https://pypi.org/project/pycryptodome/ +" +SRC_URI=" + https://github.com/Legrandin/pycryptodome/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="BSD-2 Unlicense" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +DEPEND=" + dev-libs/gmp:= +" +BDEPEND=" + $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') +" +RDEPEND=" + ${DEPEND} + ${BDEPEND} +" + +python_test() { + local -x PYTHONPATH=${S}/test_vectors:${PYTHONPATH} + "${EPYTHON}" - <<-EOF || die + import sys + from Crypto import SelfTest + SelfTest.run(verbosity=2) + EOF + + # TODO: run cmake tests from src/test? +} diff --git a/dev-python/pydantic-settings/Manifest b/dev-python/pydantic-settings/Manifest index 1e0da2b8e275..dede56afe0f8 100644 --- a/dev-python/pydantic-settings/Manifest +++ b/dev-python/pydantic-settings/Manifest @@ -1,4 +1,4 @@ -DIST pydantic_settings-2.14.2.tar.gz 237700 BLAKE2B c38ade96748b87204ac147907261f121ee5a64236077095658b246f288c71d898ed917f03bf781a0571454b2b904cbe2ee325b86c20f0bc0c6c121c45bd7da08 SHA512 50ec63a4e70bf41f5cd4923c7d4802a9b94de2f50c364f0dec2f9fb2833ef7b22c13f5c5e39004b2b38231f56151b2c1d5f50d547737ec99578840d5e6932c5e -DIST pydantic_settings-2.14.2.tar.gz.provenance 9781 BLAKE2B 012ca046a4ddc054cc19429dae96f995875db49a89e6d6e49870e518d3dafba192d522c27e286aaaa963de366f66728ed8e545e5dc20df456e23cbb225061cac SHA512 5129115c17ea936dd82fd3a0f4cc5203af0739a5361087d8944c868aa3b2080e355954aeaa1025337a3e93245054c38a6671640a4f9409e20ac4a8cdc61ef0b6 DIST pydantic_settings-2.15.0.tar.gz 261253 BLAKE2B aa1157d8ec21ecde15039d47f42bb64da6af910f6693558c9e9ea9bca5ac13b43a38349c688c1ef43441734036d1d8b211646f6db9950ecb275ac212c51b7eac SHA512 0b8ee285df6d1b89429e2156ed5d462d43ea0aed9fe684cf4adb1d240c2174ea315f8937465f682351da18f93d2454cace52ccb4bce30f6fe4e6cf75069296db DIST pydantic_settings-2.15.0.tar.gz.provenance 10063 BLAKE2B c3641f3e2a7c3228432642986199e848da9fdea371e32de40c8ebd9dd0b3ba8ae27694c116fa04dedf8a37fb5a780d8a84777d848a4838d724a180ac66e94473 SHA512 a403278deca993c39e789b02ecc9e2493e1220f5e75c4324abddbcd4a0c9e9f2f7f8ed1aed36c3f5687a031789fe17fd2f5a6b0fbc8ec6f3641db3fe64f98255 +DIST pydantic_settings-2.16.0.tar.gz 301031 BLAKE2B d29990234fb6dbdd314cad75eb27df29fbbf01efeb068bd1b31c58daefbb2e2a7789304b1decf2e6a3ec48fc068189663fef633775b6efbf1f0d19d60c4f68a4 SHA512 ab66b0d217d8b4a95ba1471da8d4732632394fb23e128f774b46bf53155af824a16a7bbbaff047a992aa4db36cce9a4026cde467b5bb25c610fd316837c77100 +DIST pydantic_settings-2.16.0.tar.gz.provenance 9906 BLAKE2B 186a7fd34d1f5c2e1aedb0fe84abed1148742318f09c5e1ce3f0b6fa9d3d371766f9ceb5e1c9c34c80fb7212c483c4beafd17f3884a2c248e0d875a19e098d60 SHA512 36fe224d730e77b3dbf521b94149bfdb6fe74a94566f230b45bac3303da26163b2eef4dd21a90316df142067650df31df04bc9f85fc7a39033953fcec4a553e3 diff --git a/dev-python/pydantic-settings/pydantic-settings-2.14.2.ebuild b/dev-python/pydantic-settings/pydantic-settings-2.16.0.ebuild index 04d77d519415..1971884da040 100644 --- a/dev-python/pydantic-settings/pydantic-settings-2.14.2.ebuild +++ b/dev-python/pydantic-settings/pydantic-settings-2.16.0.ebuild @@ -17,11 +17,12 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" RDEPEND=" >=dev-python/pydantic-2.7.0[${PYTHON_USEDEP}] - >=dev-python/python-dotenv-0.21.0[${PYTHON_USEDEP}] + >=dev-python/python-dotenv-1.2.2[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.0.0[${PYTHON_USEDEP}] >=dev-python/typing-inspection-0.4.0[${PYTHON_USEDEP}] " diff --git a/dev-python/pydyf/Manifest b/dev-python/pydyf/Manifest index 825a96aaae6d..2c7a3bb4c8e1 100644 --- a/dev-python/pydyf/Manifest +++ b/dev-python/pydyf/Manifest @@ -1,2 +1,4 @@ DIST pydyf-0.12.1.tar.gz 17716 BLAKE2B fb87f69be503f2bcc92a98315212a6ebd238e541cee0cc47bca68faefb9e417a8574498f94e0dc514c0d2ced12e318af9a40e2d4876d534bc6f32ed63f751f6d SHA512 c241096c8e1674d80c62be40b02d7c28dfb59cb8e82e6029c6b246a65d2863be236fb1a45f3369adc6e055143a891e9aa170b9ea0dd06ac3483c92a2b86bb984 DIST pydyf-0.12.1.tar.gz.provenance 9574 BLAKE2B ec9ba4e745079c2db636ecadd99b03ef8799aec79bec946d1ab5f14dcc69910752f5cb46f39117343d7c909ba7ac06710a2d00ea65be945e744db13bbf090f86 SHA512 11b700c1447ac3b92ac7a61738c789543c338459d82a6beef4b8c0043e8ece57b6fd77f7796ff55fde8cc3b296dc9c692b304afd9d1fe45f51325b1ef321bb12 +DIST pydyf-0.13.0.tar.gz 19566 BLAKE2B 8f563fed31d5fa40fe0ed60446b35ca6367b085506310257277103e5acfa0a4318b4c8dd4d28a3d82afb3375c291359309cc3839805ffb90e3063d4fd6946ea1 SHA512 678029eac3e44eb725695ad98747116ea2b11777708225ed8d92a800757830c0e29f5ab260f3193c12046014445a36b69ace9369c54848a9aa149759e02e1bb1 +DIST pydyf-0.13.0.tar.gz.provenance 9852 BLAKE2B 16fde14a1219cabf9bfee2ef8495e806617741e1739b627be9b807aca92a58f84734e7573f48bf19cf63923b3c5365bbac21b328d2965ec7db843f7db8b72c6c SHA512 297ff2cdc80a30de8db1f66505801dd06900408b312039ecd5ef39317e4bee3d29c09c51bb560083fa89405b8338beb9ab2e7f621d9509836856167876a78893 diff --git a/dev-python/pydyf/pydyf-0.13.0.ebuild b/dev-python/pydyf/pydyf-0.13.0.ebuild new file mode 100644 index 000000000000..44cf2169842a --- /dev/null +++ b/dev-python/pydyf/pydyf-0.13.0.ebuild @@ -0,0 +1,34 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit-core +PYPI_VERIFY_REPO=https://github.com/CourtBouillon/pydyf +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="A low-level PDF generator" +HOMEPAGE=" + https://pypi.org/project/pydyf/ + https://github.com/CourtBouillon/pydyf/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +BDEPEND=" + test? ( + app-text/ghostscript-gpl + dev-python/pillow[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_test() { + epytest -o addopts= +} diff --git a/dev-python/pymdown-extensions/Manifest b/dev-python/pymdown-extensions/Manifest index 48ca12a11017..3c7ec609bd5c 100644 --- a/dev-python/pymdown-extensions/Manifest +++ b/dev-python/pymdown-extensions/Manifest @@ -1,5 +1,3 @@ -DIST pymdown_extensions-11.0.1.tar.gz 857113 BLAKE2B a585fd5c325fb4b146ecdddf9204626218fbdd9d4691a06bbe14a564fc2f93c4b8f22ba267929ce23229abbd2b08a2eadb09f3d01185ce88177a9a49e5a865ca SHA512 c95ef9cdb073b1a11f0a78ca82c49e0b0a9c57a301e599bce29a99995ce5a8415530979271ca76b1b0bf7ab3d7f348b9ef0ba7b36c1e19e6121da379c6163484 -DIST pymdown_extensions-11.0.1.tar.gz.provenance 10025 BLAKE2B 11c409e59669f3219fdf115b6593a7f1e40ac7725ffea84e0c3b25d468774a1bd5513df54e7885443631e64d1dcf7c2ef0a521547dca9ca8cf092a4333fc4161 SHA512 5a0515a30b1e65d73fc01e405a5fd0b470259273f1d8c3c152f2f8d2a5ab86bc72830d5c8b08b40fba564cfd0b69fd556524042412ea022cee3528b117aa7083 DIST pymdown_extensions-11.0.2.tar.gz 855419 BLAKE2B e7a73d571f8334a829953c7df6796f930558393c7c3ae272a779ea5271f6112f2163384046c95feddc2365333b6134df41b71e078d213e7ebab0be4d0c1aeb8b SHA512 cd84ba04447bee2f2953453f1045e79c8495b5db0442227a8cc0ef348a9bb64e99e4ac0232032574967683e88b0db21b7eabeb8aa4e6edafde843e07438c5b5a DIST pymdown_extensions-11.0.2.tar.gz.provenance 9980 BLAKE2B 52445950a371bf69ab7ebbe1f8df0e9e689fead80f6aa1b8e356c2a851578c149ffe7ef205c78683b73131a4b463c5867e449383e166475e1bbd5f8249fbb71e SHA512 7940ae93bca9f3ff8027db324e43101871fd5768ea7c59aa25856e10f333c6bce30ada9da383fb46c7f28dd95b6862e296b998d78d3f84eabba06d9ff30ac3c7 DIST pymdown_extensions-12.0.1.tar.gz 866904 BLAKE2B 99dc77c0cf21fc3ae37f9ffca62cfc59f295772ea76cebc4374d07b87f898ac9f4bd1a753ed6706b222a39a1af00238c6d1bc86bb584855ed8d76fdbaf014730 SHA512 bdf73e2fded2e6533fb5c06c20d9aad0a9091d458567de532e2d0a526d6199fbf6e7dca67e74b2b16f7e949a95156653861191b7aae4d683d2d5dce4af8d788d @@ -10,3 +8,5 @@ DIST pymdown_extensions-12.1.tar.gz 868245 BLAKE2B f3503d27b7c819cb88c2b3325c80c DIST pymdown_extensions-12.1.tar.gz.provenance 9948 BLAKE2B 30fc0aec28f48da59c4a236f7b5f5802970975781fb446f01e0040f4ba77f246fde8b3c22a3a149b9d15f01db5d3724029d08f8edce20d0211c6cdcc6fdbf8fe SHA512 cbac49f1d07b4f99f01a649d22ff4ed31bb8e08ac322706265a9e9f2509de841e515015f1378bd55ec117e15a972116823f2f67c04d5e0be1b2532d48d11feef DIST pymdown_extensions-12.2.tar.gz 870226 BLAKE2B 863911fdcce9dd869374c39bf619262c506232f90bfdd30af9507a88fa22e65c5c464527476d62048f0599ace1a17e4badf50995ddb60cde8c9b77662ba55f3f SHA512 3313070cb2333ad79a1e8473d42b58c916e038550513a3fef3b757e0233b4ca49b736343a12e71caab49f17b0431ebf7c4bcd427c85bc12853993590abdcbb58 DIST pymdown_extensions-12.2.tar.gz.provenance 10067 BLAKE2B f9813283c6dedcdc6734941cafa437665f1ba831a1814bdba4953e4e1191065cf2e67c803312d2bd1ba9914a23ea88dc16883e6a05692ceba1896364780f4b43 SHA512 60233f1016da17697737158a3c06fb3ebf988125556ea4d0fe884cfbe106cea922bc17e4c0ca3b0f2499958e28c0de69f505ed01d51cd0bf81421e2f47042285 +DIST pymdown_extensions-12.3.tar.gz 870532 BLAKE2B e8fff15828d98845b7b2149cc3ba1f4fd491bb7846978d3202c29f1a7e858a374be37c09af4a446339fe23b68e97a4b943ecaabdc97056744468448053d07f9d SHA512 ce7e6354e0da496e7fedc900dae61b148dccb3d72fafefac56242dda912650de7d18e2fa06b52d483b6e1f80358bc5d16926677e7c7e35698fcfcaab1a47254e +DIST pymdown_extensions-12.3.tar.gz.provenance 10259 BLAKE2B fe286fa52611a09413880b041be299e82cccca735f8dcda6fed3ca0715e624da53c4f7b84f0beb2a0769ebb68374bdd2797da19c38ad151bddda38149543b4a8 SHA512 531bc16a33edf63258cc1ee0236b2b0ee7b715d38e54c5d5bf68779fc4ad44efd339ea095f567b0364aac4841f18d320587deef6d6238b4700ce1f86651b9a51 diff --git a/dev-python/pymdown-extensions/pymdown-extensions-11.0.1.ebuild b/dev-python/pymdown-extensions/pymdown-extensions-11.0.1.ebuild deleted file mode 100644 index 29ef1f17706c..000000000000 --- a/dev-python/pymdown-extensions/pymdown-extensions-11.0.1.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=hatchling -PYPI_VERIFY_REPO=https://github.com/facelessuser/pymdown-extensions -PYTHON_COMPAT=( python3_{13..14} ) - -inherit distutils-r1 pypi - -DESCRIPTION="Extensions for Python Markdown" -HOMEPAGE=" - https://github.com/facelessuser/pymdown-extensions/ - https://pypi.org/project/pymdown-extensions/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv x86" - -RDEPEND=" - >=dev-python/markdown-3.6[${PYTHON_USEDEP}] - dev-python/pyyaml[${PYTHON_USEDEP}] -" - -BDEPEND=" - test? ( - >=dev-python/pygments-2.19.1[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest index e6703178ab91..2ac7502b4112 100644 --- a/dev-python/pymongo/Manifest +++ b/dev-python/pymongo/Manifest @@ -4,3 +4,4 @@ DIST mongo-python-driver-4.18.0.gh.tar.gz 2821886 BLAKE2B a7905ba2c5ef44ffc0d3d9 DIST mongo-python-driver-4.18.1.gh.tar.gz 2824031 BLAKE2B 16147601da6004c0c87adefe9bf74ce21bcda1a3cf25c0c0ab9d5dc1542b92c1581fa1bb1c6f7024615990e8142ab87bc3fe665ec8cac6df9f48b0accaf9acc7 SHA512 2dd0b300cbfdbc8de197fd5ee21f5bca210b5df1efb1223dd3aa50cddae34b87fd16799450d8126769e50c97ce203d69e9bb1aa4b67a16f63e53a933db88a707 DIST mongo-python-driver-4.18.2.gh.tar.gz 2825405 BLAKE2B 7e1f59ae6473232a1fad4d00b722d85d72584faf3c2fc320669474242e62ed8bf12e07a96c360be86d62e446b4cc33b62c57b6ad319ba7989071404eacf52a65 SHA512 93456d698fd867410d6a00550b7d9739b13a8907b1e451501402a878c907de1525db7648d7c24bf90144982a3f525e2ae5352c2ee677776303bda495b5982c71 DIST mongo-python-driver-4.18.3.gh.tar.gz 2826394 BLAKE2B 830bd301aa011d1e21e61e29df699b4d64bccfc3fd49a6617ebdbe169ad7799b8a4a04dbeddbc570f8a92b22b7f078f062382ada27e8fdf116c86965876aa70f SHA512 a4f0f1ee3474a73244916b1352ad4fbbc372dfe0a486438fb4a843eecb03e4daec6d4902bcbd890ad585dac80bb2a2c7d3c13710b96f0330f5fc28e14ec3a9d4 +DIST mongo-python-driver-4.19.0.gh.tar.gz 2765196 BLAKE2B cf19053f5baa9d74d9e3716fa3c8feb48b75660842598c657d0c0c1b3a0d55fc0e8f6354d9f58582066ace9a6c4cd193df9a952797a83e161d67550cd17e7e93 SHA512 b62fc4daeff113f83049af704f1aedacf8a29eec1657b1f967e3c8dc3a2e65cf578dba096a3d3a8f5fcb8e7e233fb9b3b9a0e8a0df668d1cd2cd77ab40e42961 diff --git a/dev-python/pymongo/pymongo-4.19.0.ebuild b/dev-python/pymongo/pymongo-4.19.0.ebuild new file mode 100644 index 000000000000..a1e9a9e053e1 --- /dev/null +++ b/dev-python/pymongo/pymongo-4.19.0.ebuild @@ -0,0 +1,205 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{13..14} ) + +inherit check-reqs distutils-r1 + +MY_P=mongo-python-driver-${PV} +DESCRIPTION="Python driver for MongoDB" +HOMEPAGE=" + https://github.com/mongodb/mongo-python-driver/ + https://pypi.org/project/pymongo/ +" +SRC_URI=" + https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="doc kerberos +native-extensions +test-full" + +RDEPEND=" + <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}] + kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] ) +" +BDEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + test? ( + test-full? ( + >=dev-db/mongodb-2.6.0 + ) + ) +" + +distutils_enable_sphinx doc + +EPYTEST_PLUGINS=( pytest-asyncio ) +EPYTEST_RERUNS=5 +distutils_enable_tests pytest + +reqcheck() { + if use test && use test-full; then + # During the tests, database size reaches 1.5G. + local CHECKREQS_DISK_BUILD=1536M + + check-reqs_${1} + fi +} + +pkg_pretend() { + reqcheck pkg_pretend +} + +pkg_setup() { + reqcheck pkg_setup +} + +src_prepare() { + distutils-r1_src_prepare + # we do not want hatch-requirements-txt and its ton of NIH deps + sed -i -e '/requirements/d' pyproject.toml || die +} + +python_compile() { + # causes build errors to be fatal + local -x TOX_ENV_NAME=whatever + local DISTUTILS_ARGS=() + # unconditionally implicitly disabled on pypy3 + if ! use native-extensions; then + export NO_EXT=1 + else + export PYMONGO_C_EXT_MUST_BUILD=1 + unset NO_EXT + fi + + distutils-r1_python_compile + + # upstream forces setup.py build_ext -i in their setuptools hack + find -name '*.so' -delete || die +} + +python_test() { + rm -rf bson pymongo || die + + local EPYTEST_DESELECT=( + # network-sandbox + test/asynchronous/test_async_loop_unblocked.py::TestClientLoopUnblocked::test_client_does_not_block_loop + test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver + test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging + test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning + test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs + test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg + test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver + test/test_client.py::ClientUnitTest::test_detected_environment_logging + test/test_client.py::ClientUnitTest::test_detected_environment_warning + test/test_client.py::TestClient::test_service_name_from_kwargs + test/test_client.py::TestClient::test_srv_max_hosts_kwarg + test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive + test/asynchronous/test_dns.py::IsolatedAsyncioTestCaseInsensitive::test_connect_case_insensitive + test/test_srv_polling.py + test/asynchronous/test_srv_polling.py + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet + + # broken regularly by changes in mypy + test/test_typing.py::TestMypyFails::test_mypy_failures + + # fragile to timing? fails because we're getting too many logs + test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified + + # hangs? + test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks + + # broken async tests? + test/asynchronous/test_encryption.py + + # -Werror + test/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated + test/asynchronous/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated + + # fragile to timing? Internet? + test/test_client.py::TestClient::test_repr_srv_host + test/asynchronous/test_client.py::TestClient::test_repr_srv_host + test/asynchronous/test_ssl.py::TestSSL::test_pyopenssl_ignored_in_async + + # requires pymongocrypt + test/asynchronous/test_kms_connect_prose.py + test/test_kms_connect.py + ) + + if ! use test-full; then + # .invalid is guaranteed to return NXDOMAIN per RFC 6761 + local -x DB_IP=mongodb.invalid + epytest -p asyncio + return + fi + + # Yes, we need TCP/IP for that... + local -x DB_IP=127.0.0.1 + local -x DB_PORT=27000 + + local dbpath=${TMPDIR}/mongo.db + local logpath=${TMPDIR}/mongod.log + + local failed= + mkdir -p "${dbpath}" || die + while true; do + ebegin "Trying to start mongod on port ${DB_PORT}" + + # mongodb is extremely inefficient + # https://www.mongodb.com/docs/manual/reference/ulimit/#review-and-set-resource-limits + ulimit -n 64000 || die + + local mongod_options=( + --dbpath "${dbpath}" + --bind_ip "${DB_IP}" + --port "${DB_PORT}" + --unixSocketPrefix "${TMPDIR}" + --logpath "${logpath}" + --fork + + # try to reduce resource use + --wiredTigerCacheSizeGB 0.25 + ) + + LC_ALL=C mongod "${mongod_options[@]}" && sleep 2 + + # Now we need to check if the server actually started... + if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then + # yay! + eend 0 + break + elif grep -q 'Address already in use' "${logpath}"; then + # ay, someone took our port! + eend 1 + : $(( DB_PORT += 1 )) + continue + else + eend 1 + eerror "Unable to start mongod for tests. See the server log:" + eerror " ${logpath}" + die "Unable to start mongod for tests." + fi + done + + nonfatal epytest -m "default or default_async or encryption" || failed=1 + + mongod --dbpath "${dbpath}" --shutdown || die + + [[ ${failed} ]] && die "Tests fail with ${EPYTHON}" + + rm -rf "${dbpath}" || die +} diff --git a/dev-python/pytest-check/Manifest b/dev-python/pytest-check/Manifest index d8ce27399f42..332ef43831e1 100644 --- a/dev-python/pytest-check/Manifest +++ b/dev-python/pytest-check/Manifest @@ -1,3 +1,4 @@ DIST pytest_check-2.9.1.tar.gz 41394 BLAKE2B ac4a9b88bbf0da7162b7948d7305335189893a0ad9a5591db206d7e332cfec82763a7a6f07124a1e405555f291abbc35aba5dcc4502223165d4fbc3047d45dd3 SHA512 39d8d8d2b9377b79fa18106bb91c0a662ef1823cd58a8ef681fa07a9f97ce435ebad9063397ed72bbca53f0235199ba242b0708ea65a07345d515cfa22b1885c DIST pytest_check-3.0.0.tar.gz 48136 BLAKE2B 6cc899d9ef3c7211b25be33fcd3bad264f589ad9a8f478305b81141eef72996897ae15f1cdbf21b646de55082cf3575aba23b47d83e12a51839068b1345254ee SHA512 95a3e6e7ae3033c13b29c94375be0f2c65fa3cbd1ba7ce0dbaaab7a1cc0d742673abfbbb156b08c69ccbae0904ec075ef88e49a8cad917f88832a2df6a2534ee DIST pytest_check-3.0.1.tar.gz 48520 BLAKE2B 82b2793ef35601ebd50914846ee364cd8255f81ffbeca0a09444de07de29a04d5d1d7da5adc55a85d347d5692c2b93341b1b3bb7ffc0b6353d6aefa8c55d1ea3 SHA512 cac4c060de85e2ef632833c1fb9255ddc8f61871c321b7ab3c9df191b9818ec83203a466f1f9bdd07571fd30e7924c2311a50bb3ae211856a41313cd2485917e +DIST pytest_check-3.0.3.tar.gz 49020 BLAKE2B 511fb0888f9586cba4e6a5e6c4cdcf846338cfebeae8ac49f9236082eacce3ff0039cd92c20f1fc29dbe96576ec7259f076b2ae56200b98ecbe1b31fbdb65ec1 SHA512 b737a8f8e8ce7e1c5965e7862e53e92f4f2065a28b2cea3a241bdb15b28754d8e24b2c68ff5182205a26f665e68d03277097a96da761c85ce8380d2dca162110 diff --git a/dev-python/pytest-check/pytest-check-3.0.3.ebuild b/dev-python/pytest-check/pytest-check-3.0.3.ebuild new file mode 100644 index 000000000000..4b61f86b9463 --- /dev/null +++ b/dev-python/pytest-check/pytest-check-3.0.3.ebuild @@ -0,0 +1,28 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="pytest plugin that allows multiple failures per test" +HOMEPAGE=" + https://github.com/okken/pytest-check/ + https://pypi.org/project/pytest-check/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + dev-python/packaging[${PYTHON_USEDEP}] + >=dev-python/pytest-7.0.0[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGIN_LOAD_VIA_ENV=1 +EPYTEST_PLUGINS=( "${PN}" ) +distutils_enable_tests pytest diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest index 28bc0bd47881..955208ef979c 100644 --- a/dev-python/sqlglot/Manifest +++ b/dev-python/sqlglot/Manifest @@ -1,2 +1,2 @@ -DIST sqlglot-30.21.0.tar.gz 6064227 BLAKE2B f68dfa2c03ed44f3cf12d5654ab9ba95ccc7ca188018ded9e1e2edbc1e73c4eb3a37041dd2bf35269e8f4127093ad26e31936423c75eb147de5e03fde60137af SHA512 3ec6790fed025087b14c885a29a5e84c998a33fcbe4676592ec920cac69d07e72ae3e0edf2c54405eb097a1569dbb70bf8ea068e9e680054d70622e782b97356 DIST sqlglot-30.22.0.tar.gz 6088770 BLAKE2B bca7d80d5fde475419a4bae31dca2f1be4a4e5b90d2312d9c9b283bbb2927c013a0f849be17142860124b3f830e3adb4b7854c4a4a2ecb2ea1d961ed80145bd8 SHA512 40186858888fe174ec9371b78bd8f72fb04c371341f5ce746b10026feb59530c0477f7f9022edff37ef447e5cb9ef60cc9d20804aa69ddd8a88de9a68b8d0a0f +DIST sqlglot-30.23.0.tar.gz 6108071 BLAKE2B aa470c23542deb3793b208746e480cf642bc1aaea00c5f2a0049f0ad1401e6b50b492826a406a8d7f21607618db57edd9923ab11ad66ee457cc812903292e678 SHA512 dc4c43c751a1cfa2fd703e5d047d8b1ba5eb143996de6c235c165ad8c77180572946bb1ff59c4c4bdf8f441a3e3a08f81a07f147788e2134476214437867a6a2 diff --git a/dev-python/sqlglot/sqlglot-30.21.0.ebuild b/dev-python/sqlglot/sqlglot-30.23.0.ebuild index 063fa5096326..063fa5096326 100644 --- a/dev-python/sqlglot/sqlglot-30.21.0.ebuild +++ b/dev-python/sqlglot/sqlglot-30.23.0.ebuild diff --git a/dev-util/pixi/Manifest b/dev-util/pixi/Manifest index d92e055fa525..36d54a489852 100644 --- a/dev-util/pixi/Manifest +++ b/dev-util/pixi/Manifest @@ -1,6 +1,6 @@ -DIST pixi-0.80.0-crates.tar.xz 78344160 BLAKE2B 4965008f0b0185ef729fa728215d7ae72c2b8357f62f75a1416b58be90e9ac0b2f21315d803d62e84b13cde063ea4ec7e7853e6dc3f4023f5bbf86d6c2335f18 SHA512 3a8dbbdc75148add5a5ad8b3f3211ef48976c612a0b4a77560b93766bcf15f6a0e0ea5bd4d9b0d3ad09bfb92b7f5e27093ece3bf469472d3ebd4db836507b76c -DIST pixi-0.80.0.tar.gz 19925474 BLAKE2B b50d9698b957df6048e2ef510c1cd55a6275d7de5b3d85f94fd9acfff388ab634523642f62e847ff2bbacfcff12c765411f2acb49c554605ab737873bce19b14 SHA512 b33f4260b6487af1ad2cf69dad9b67f829fc10dd2f32e89819e7c7bbd4c94e3c7eda70ddb30e269a63817d0745bc75194750a3219d3feb5c3c8d86f3fa7a9c10 DIST pixi-0.81.0-crates.tar.xz 78356060 BLAKE2B 5eb3734abba07c894ed9ce529b2e55e088f45c9a988c7858cc4c1447a68f33be25c6b65eff54a259fb408aa20d314d0630b36b4ec6a68cc1eb29fc6d63bdf5fa SHA512 7567bf88a5e4faf9d255c6f65cf8a59b53fc68466799159ed7a89527d79300b5d91775dfc92b3a5aea7e2d5acd9105499c00d9960cd3be1cf3726fd2ba4ad7b7 DIST pixi-0.81.0.tar.gz 19936301 BLAKE2B 583dcc8e6d8cf8c6e18756df758caeb192c9a41471ec134d79c689470020dbbeb06fee3f45704d372ae68ba7baba45a2f1f47c7936f67711d5fb37ecd8c822bf SHA512 2c087c5b9acef2be70f5f0594df548dbf6328eaf18a512e2c48a6649b1b4173e35e28514763dbbabdecbb12875a4cc48465a61313705e44d5750fe02f86e401b +DIST pixi-0.82.0-crates.tar.xz 80794952 BLAKE2B d5231bcb0619b3f8ede401c331394a4cd6c4eb69d5cb4edb631b36885df56556908cd77dcaf5a6a6c9a93b3fe0ae4633a43439c5afefee502b317398f3891072 SHA512 ae355cc78678563e274b801dd3c7697e72e5471b2354d3e601bf5486422c17ec825f379c3c926442b98771ffe0b98149830319a34836d1b9be13bc9a2fc74d0a +DIST pixi-0.82.0.tar.gz 20009719 BLAKE2B 207fc1ce4c201921edfb2b9f34c0335099eeec0f37e31617029949d95ef4c42a4b8055016aab2b9e17bb57f5e1fef758382551138e0084ed951eafe1335e3adf SHA512 d7a6723b1cf75063f658d92c0617777b3d146d5417aaa660a31f219a6b0a677d25370ceb0471e816538f9ac7c03113e9f10df6f8e6fecbc10017a1e6eb74ed89 DIST pubgrub-d8efd77673c9a90792da9da31b6c0da7ea8a324b.gh.tar.gz 100042 BLAKE2B cacdd77783aae1a94c3aaea56c2bd47b22f13ca34eddcef53b5d205244a213eff2934db03965532085c1aa6892b27bbbabfc19513f62936f8ac1faa466570dd4 SHA512 3a2a146fd9d9b458dced6563a1f5674e81e8ba36de11be5c189b0c76b6ede6f32957f48fb0978b97b0892768822c6c4c32c6870141e8fc1ea5d8b8f7d8b5b464 DIST uv-3cffe97c2e48c9e49422c738da3af95919dd0bf5.gh.tar.gz 5303746 BLAKE2B b45e64d4c036c2fb54ca3e82a1ce953363f10786e76bb1128e20a6204c03dff3e0d18e3ca652320f81d78b94cebdaefd463b45da639260659e00fa0e2cd3d1f6 SHA512 444defce55de8bca79d9d572dc5231198c23df07a43048c7b621496d35ea46fc274b3aa3eb97fcfc4a045ac81ab540dcf9657ef1d74d5a9535e1a86a68e7d9e6 diff --git a/dev-util/pixi/pixi-0.80.0.ebuild b/dev-util/pixi/pixi-0.80.0.ebuild deleted file mode 100644 index 8913b7bf42cc..000000000000 --- a/dev-util/pixi/pixi-0.80.0.ebuild +++ /dev/null @@ -1,163 +0,0 @@ -# Copyright 2025-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -RUST_MIN_VER="1.95.0" -CRATES=" -" - -declare -A GIT_CRATES=( - [uv-auth]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-auth' - [uv-build-backend]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-build-backend' - [uv-build-frontend]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-build-frontend' - [uv-cache-info]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-cache-info' - [uv-cache-key]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-cache-key' - [uv-cache]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-cache' - [uv-client]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-client' - [uv-configuration]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-configuration' - [uv-console]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-console' - [uv-dirs]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-dirs' - [uv-dispatch]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-dispatch' - [uv-distribution-filename]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-distribution-filename' - [uv-distribution-types]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-distribution-types' - [uv-distribution]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-distribution' - [uv-extract]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-extract' - [uv-fastid]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-fastid' - [uv-flags]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-flags' - [uv-fs]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-fs' - [uv-git-types]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-git-types' - [uv-git]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-git' - [uv-globfilter]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-globfilter' - [uv-install-wheel]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-install-wheel' - [uv-installer]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-installer' - [uv-keyring]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-keyring' - [uv-macros]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-macros' - [uv-metadata]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-metadata' - [uv-netrc]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-netrc' - [uv-normalize]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-normalize' - [uv-once-map]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-once-map' - [uv-options-metadata]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-options-metadata' - [uv-pep440]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-pep440' - [uv-pep508]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-pep508' - [uv-platform-tags]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-platform-tags' - [uv-platform]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-platform' - [uv-preview]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-preview' - [uv-pypi-types]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-pypi-types' - [uv-python]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-python' - [uv-redacted]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-redacted' - [uv-requirements-txt]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-requirements-txt' - [uv-requirements]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-requirements' - [uv-resolver]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-resolver' - [uv-scripts]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-scripts' - [uv-settings]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-settings' - [uv-shell]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-shell' - [uv-small-str]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-small-str' - [uv-state]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-state' - [uv-static]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-static' - [uv-toml]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-toml' - [uv-torch]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-torch' - [uv-trampoline-builder]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-trampoline-builder' - [uv-types]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-types' - [uv-version]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-version' - [uv-virtualenv]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-virtualenv' - [uv-warnings]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-warnings' - [uv-windows]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-windows' - [uv-workspace]='https://github.com/astral-sh/uv;3cffe97c2e48c9e49422c738da3af95919dd0bf5;uv-%commit%/crates/uv-workspace' - [version-ranges]='https://github.com/astral-sh/pubgrub;d8efd77673c9a90792da9da31b6c0da7ea8a324b;pubgrub-%commit%/version-ranges' -) - -inherit cargo multiprocessing - -CRATE_P=${P} -DESCRIPTION="A package management and workflow tool" -HOMEPAGE=" - https://pixi.prefix.dev/ - https://github.com/prefix-dev/pixi/ -" -SRC_URI=" - https://github.com/prefix-dev/pixi/releases/download/v${PV}/source.tar.gz - -> ${P}.tar.gz - ${CARGO_CRATE_URIS} - https://github.com/gentoo-crate-dist/pixi/releases/download/v${PV}/${P}-crates.tar.xz -" - -LICENSE="BSD" -# Dependent crate licenses -LICENSE+=" - 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0 - CC0-1.0 CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0 ZLIB - BZIP2 -" -SLOT="0" -KEYWORDS="~amd64" -IUSE="+rustls test" -RESTRICT="test" -PROPERTIES="test? ( test_network )" - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-arch/zstd:= - sys-apps/dbus - !rustls? ( dev-libs/openssl:= ) -" -BDEPEND=" - test? ( dev-util/cargo-nextest ) -" - -QA_PREBUILT="usr/bin/pixi" - -src_prepare() { - default - - # replace upstream crate substitution with our crate substitution, sigh - local pkg - for pkg in version-ranges; do - local dep=$(grep "^${pkg}" "${ECARGO_HOME}"/config.toml || die) - sed -i -e "/\[patch\.crates-io\]/,\$s;^${pkg}.*$;${dep};" Cargo.toml || die - done - -} - -src_configure() { - local myfeatures=( - $(usex rustls rustls native-tls) - ) - cargo_src_configure --no-default-features - - export ZSTD_SYS_USE_PKG_CONFIG=1 - - # bzip2-sys requires a pkg-config file - # https://github.com/alexcrichton/bzip2-rs/issues/104 - mkdir "${T}/pkg-config" || die - export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}} - cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die - Name: bzip2 - Version: 9999 - Description: - Libs: -lbz2 - EOF - - # uv is forcing bundled liblzma, sigh - sed -i -e '/xz/s:"static"::' "${WORKDIR}"/uv-*/Cargo.toml || die - - # rattler-build is forcing bundled libdbus - sed -i -e '/"vendored"/d' -e 's:"crypto-rust":"crypto-openssl":' \ - "${ECARGO_VENDOR}"/rattler_networking-*/Cargo.toml || die -} - -src_test() { - # tests use it to test preserving envvars, apparently assuming - # it will be always set - local -x USER=${USER} - local -x NEXTEST_TEST_THREADS="$(makeopts_jobs)" - set -- cargo nextest run --verbose --no-fail-fast \ - "${ECARGO_ARGS[@]}" $(usev !debug '--release') - echo "${@@Q}" >&2 - "${@}" || die "cargo nextest failed" -} - -src_install() { - dobin "$(cargo_target_dir)/pixi" -} diff --git a/dev-util/pixi/pixi-0.82.0.ebuild b/dev-util/pixi/pixi-0.82.0.ebuild new file mode 100644 index 000000000000..ed1ed59a6e1f --- /dev/null +++ b/dev-util/pixi/pixi-0.82.0.ebuild @@ -0,0 +1,106 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +RUST_MIN_VER="1.97.0" +CRATES=" +" + +declare -A GIT_CRATES=( + [version-ranges]='https://github.com/astral-sh/pubgrub;d8efd77673c9a90792da9da31b6c0da7ea8a324b;pubgrub-%commit%/version-ranges' +) + +inherit cargo multiprocessing + +CRATE_P=${P} +DESCRIPTION="A package management and workflow tool" +HOMEPAGE=" + https://pixi.prefix.dev/ + https://github.com/prefix-dev/pixi/ +" +SRC_URI=" + https://github.com/prefix-dev/pixi/releases/download/v${PV}/source.tar.gz + -> ${P}.tar.gz + ${CARGO_CRATE_URIS} + https://github.com/gentoo-crate-dist/pixi/releases/download/v${PV}/${P}-crates.tar.xz +" + +LICENSE="BSD" +# Dependent crate licenses +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0 + CC0-1.0 CDLA-Permissive-2.0 ISC MIT MPL-2.0 Unicode-3.0 ZLIB BZIP2 +" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+rustls test" +RESTRICT="test" +PROPERTIES="test? ( test_network )" + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-arch/zstd:= + sys-apps/dbus + !rustls? ( dev-libs/openssl:= ) +" +BDEPEND=" + test? ( dev-util/cargo-nextest ) +" + +QA_PREBUILT="usr/bin/pixi" + +src_prepare() { + default + + # replace upstream crate substitution with our crate substitution, sigh + local pkg + for pkg in version-ranges; do + local dep=$(grep "^${pkg}" "${ECARGO_HOME}"/config.toml || die) + sed -i -e "/\[patch\.crates-io\]/,\$s;^${pkg}.*$;${dep};" Cargo.toml || die + done + +} + +src_configure() { + local myfeatures=( + $(usex rustls rustls native-tls) + ) + cargo_src_configure --no-default-features + + export ZSTD_SYS_USE_PKG_CONFIG=1 + + # bzip2-sys requires a pkg-config file + # https://github.com/alexcrichton/bzip2-rs/issues/104 + mkdir "${T}/pkg-config" || die + export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}} + cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die + Name: bzip2 + Version: 9999 + Description: + Libs: -lbz2 + EOF + + # uv is forcing bundled liblzma, sigh + sed -i -e '/xz/s:"static"::' "${ECARGO_VENDOR}"/uv-*/Cargo.toml || die + + # rattler-build is forcing bundled libdbus + sed -i -e '/"vendored"/d' -e 's:"crypto-rust":"crypto-openssl":' \ + "${ECARGO_VENDOR}"/rattler_networking-*/Cargo.toml || die +} + +src_test() { + # tests use it to test preserving envvars, apparently assuming + # it will be always set + local -x USER=${USER} + local -x NEXTEST_TEST_THREADS="$(makeopts_jobs)" + set -- cargo nextest run --verbose --no-fail-fast \ + "${ECARGO_ARGS[@]}" $(usev !debug '--release') + echo "${@@Q}" >&2 + "${@}" || die "cargo nextest failed" +} + +src_install() { + dobin "$(cargo_target_dir)/pixi" +} diff --git a/mail-client/thunderbird-bin/Manifest b/mail-client/thunderbird-bin/Manifest index 921a36c01171..bf129568e15a 100644 --- a/mail-client/thunderbird-bin/Manifest +++ b/mail-client/thunderbird-bin/Manifest @@ -190,6 +190,70 @@ DIST thunderbird-153.4.0esr-uz.xpi 419572 BLAKE2B acd56f18a2142d9d8737f22532be76 DIST thunderbird-153.4.0esr-vi.xpi 541833 BLAKE2B bf19221f0452c1ace3232158a41c59405d550907e159f11302160b4d87fa59f0b5b32d3ef46df1ec40873bc45caca3fbede0550a232c41b355272fe4aa054c8a SHA512 a92fbacaf1a2f35fa12d2fe3efbe8f9e3c618acc909775fdeadf24cdb4872c8beabc47a460c0de0ae3f21df3b5e8d588e4a6ea8dd0a75b40f2969d9d7ca68a50 DIST thunderbird-153.4.0esr-zh-CN.xpi 526376 BLAKE2B d2f2e91c4caf2adf1bceabc562eacbd6dc29e6c7609f799fee4d2a6ba9cd253f06bb4d9a00d1e5dda54e99afeaec0d6a769b1d3921f1704152e4ba1b278975c8 SHA512 c73aa1d3b74f1f8ed3c12cb6e0f99165e7d56780147d1c088ff37d9c870b47ba33b44ca041928293f78f8f7d492cc46272386c5ec85afeb3650ec7c1ec67542e DIST thunderbird-153.4.0esr-zh-TW.xpi 530606 BLAKE2B 56f4aff2665e792c5f5c155ec6f1d758ebd1a3c110059a21cbbe3266e937804671d339bf5866544eef349b773fb09ac8f3d9b456346c719dbf67cdd833281f81 SHA512 b409399495ec681f0127e7063ff8e8715f35bfff912f9e3baa3b8f3b12911dcc5fcb65a208f6ad908b91a59f764c54c38ee628b2d4f075bff54859ecc8006f64 +DIST thunderbird-153.5.0esr-af.xpi 397512 BLAKE2B a95aa60d408d6f8b12c48052b84cc76c218a10d4373316775ea8698dc3ec1a1f116515965870d0621be09952eda4ec5c9de5ad033ec851ac74d5a2b88022854d SHA512 c541b6a24213ade9379ec5f0be9989edecd6cceb621fbdfc35d76d5cf7cc530fc69ef04c81d3777ac993cba469d0908c38e1e2fa0d8fb53e4f582b6d9b853b81 +DIST thunderbird-153.5.0esr-ar.xpi 489253 BLAKE2B 9a5d72ff0b14c1ba0e427fb9d6c0043915e532f2cdfbfeb35ff689ec1b49450d510267bc5218dd0c7a308a2cac69e5050379cc42b30403de5c5f6bcebc5055b7 SHA512 fb32d7e8385bd95eb5d4da56ff1c2ba37204e191108e2a5a8eb1742156c35f89514a990846cec17c28041bcd0147018b207fcce14266f0d950bff772b7982466 +DIST thunderbird-153.5.0esr-ast.xpi 414104 BLAKE2B 3beee67cf55f9ebe16711b0d5e784c25384dfb3d87ca720c32534ee907da691c90a3958777bd7834dadb7af00b9aad11b1f11a101e31ef86c2996a7fa7c0d986 SHA512 11239416faaab998070281931773387aa4aee9f2d3e77d8ae386bbb8b562debdbb77e02f247f3ab7845231e690e76294a038d5f4a26353a1ed3761fed50da4a6 +DIST thunderbird-153.5.0esr-be.xpi 556037 BLAKE2B 5833fe006fa4640b14b9425b4da6fd31be88660d2859e37ddca9c21a2bf1b73ef0e9c243e0bfb39bfc7fb4fac58ba0999327fd93fdfd1728409bd74e8e3bd960 SHA512 26feea90a7ad0901d87879430e16912f67e8debb7b648aecf7ac8352bb063b529628e3194fecfc5897591139d41f50dec83eaf1364d85422d7d60eac827a7eb0 +DIST thunderbird-153.5.0esr-bg.xpi 567693 BLAKE2B 7f11c4121de56b7a1410daff041bbdad0afc75d6ec94917cacaae5f7f88f32fcc0428a491475d653a59b60f64fcfdcf352289c6b39e254263ab2e802694efe82 SHA512 77b4b89206e917038a595e2c2223e10947c5ab21cb299a3b5a74485d0227210284a2b6c315c6c0ca777b1bf35e507cc98cfb0f6b1fb18099a1676aff1c6fb777 +DIST thunderbird-153.5.0esr-br.xpi 440405 BLAKE2B 24a06762d762b4a35f0d51a0fbb844396404d10d18bb7a32c3335cb250098dd53951c54a90855bb928323a05168f249a891003c860bfae1cde16b06c3dd68626 SHA512 9dca7573f5662175dc6113f459f538942a74000d4450233ce4017171b95872e61e223cc869d5f00371e369f09c00b062861c6cfe07afba2b7646b922e58a9190 +DIST thunderbird-153.5.0esr-ca.xpi 478535 BLAKE2B 24ac5140e9b1d697b4c2e1a5f9d02a80f4200c94730e3f53b588c48b31e51c6691e8c8edee17d90deb52bcb2822d483dba6a04e7f4cb805891db87b4e2851c3a SHA512 f5b511bbbc55d053b2eabc75618452029c514f9f388c77e833eff5a4ba59c913b2858710caead42a7085e236a4164c1bf5d3c4dc8c13f25ab05b9455ba83fbfe +DIST thunderbird-153.5.0esr-cak.xpi 457311 BLAKE2B 4fceb1e77999649dcf1748abf9ccbf641fc6a0cefca61ed5a9e894de45c4c7ea08281fd25216b0769531c663a5ba3a2dc75e9bdb87746cbe7674cedce8161886 SHA512 ae97d5e4be89748a7cc41c9c6cfa950ee528bb21be89ae77ab2536dae92d9c9f4f7018b9532ecd8cdfef8dbcce237d0dfb3203c2e413e5590ea255d8321ba39f +DIST thunderbird-153.5.0esr-cs.xpi 541340 BLAKE2B 0c96e4eb3fb8fe0e5545f6bd8ee607bdc0425b23b7fc71da3c0aac4da283eece7b1eb3d373faa4225c997dba27f72e9c6de1376019ac5cd0f254b3570a83a7b2 SHA512 3f27727a202268ca5c4a490bb8c78fcaaf47ed93ceac336b2f59b08f8c61229aeabb845a3f3f66d3792cd2c3ec8371292f0fac78efc8140206001bc5dc808410 +DIST thunderbird-153.5.0esr-cy.xpi 508881 BLAKE2B 6966e0e44a88ba6fe05e829e4cbd35c0092820c47c9e67b564ac1808d7ec83a6a764ad1272ebf81bedbe9b5cea653a4e21d64c9e7b9b3d2e8348be1fffd73e46 SHA512 df2648520c1251019b98cde4f8a1f0d7ebced35b72021ba57b4f16216155028c243c697fdceea24f1969e6ba1e5c828d8176533fb720f34327e7d76c13abbea0 +DIST thunderbird-153.5.0esr-da.xpi 494769 BLAKE2B e393d24959bbf6d7ced31389843025732a89dd5ed19062f0f89d458003a9cc634145ae91bd86c666775910cdfafe6c9e94a6d6b0391d6642e973e01e9ac4f774 SHA512 32f132af490a8433f8156d47b44541c86217c1181941b45e3a1a09a59f0a2345db31dc4d45aeb1768eca5b7e5a2c5a8dedcef5cf19eea197a82f1ef135bc2d6b +DIST thunderbird-153.5.0esr-de.xpi 524901 BLAKE2B 9782f8d4da08f32246e7f809bf4b895bab57dec339c424c2bfd59b0e58719417cc37a8828fbf348897f50f0b4d8df60da7ce20cc168f15bb4ef282b7ae683328 SHA512 9921ec55300de084203ea113031a13aa433a4997d30d54b9416f80dd43eccceee8887605a7917b0215092ed5ae5f4f5a61688eb5abefcf4a2963fa0a5752b4a3 +DIST thunderbird-153.5.0esr-dsb.xpi 538728 BLAKE2B b037bff31547e71d9581b1ad7d4b5c9386d121f57875564dec3bf7eb1ecc8a3e8c93cc50c509e78423161eadb4c811b9c9be1744ee3922270b2493bf0fabf565 SHA512 c535810399fa4ca2b193fbef4f59847c5d8131dbdb743e71418f48150687cdcf64df1e1725cbcc3da10d2b694680bd9b12a66c85c92f7997c8ae4c97f43ba809 +DIST thunderbird-153.5.0esr-el.xpi 631502 BLAKE2B d1d2fb627a214040ab56530fe1e17142e9f1c97390401364e280008065b3cd539b555ab9d7a2d0454fb18694f2c990aa811bdbc056303963cef94a255a7f305a SHA512 711b0391adb65a0366f781c41f954b28795de5fcbc8a7597caa8165ca8056c5843beb1edbd2d2c67cb179d5dd0e0bc0ff27364a993314d11e0337f05115681c8 +DIST thunderbird-153.5.0esr-en-CA.xpi 470431 BLAKE2B caf76de6d25f5f0311b5804c9afe99efd91a49bde5d422c5e36fad92b842f9900670f8d16d4c87587c89f83fa23cffbe92479618f142dd810640456057b32ffb SHA512 e6ae3f53be85622485d288c13a44c396ed5118d53060dc53df791976e32ffcaf560d859ca1a278a85c9f146ffb248a9472442e8c426e40be5d1c5a1172a6137b +DIST thunderbird-153.5.0esr-en-GB.xpi 470302 BLAKE2B ed5b651b504ccde0755b512854329610a8406c81fead5c8153000a3b5fb442a01e8185fc1a27f38129292622f7b0ceb6ee0bb6f0daad4977966e262acfd240c1 SHA512 f8685bc661bcb447536de28a2450892225a92715682a0e5f88610dd885124015c3a521fae979a5ada6d35f2afc213a521780b49bf60906c13b49c0d993f2674a +DIST thunderbird-153.5.0esr-es-AR.xpi 514512 BLAKE2B 2330d7b888555052255e213e909a8dd76bb6fabe6f0d8c330dff615dde302d337b63e7b65c326f8a57c9fabc3fe369975b02d4ebbfaee0f9876cbd2dac908fab SHA512 31e7b0b64ed83a0f2b63c29e3396c32054c3abd48f1e6cdea15988e9b5b45cdd909e51801042467fb24722a81bda36874f5d9b179f77ce1ff61ad1f09ffb71d5 +DIST thunderbird-153.5.0esr-es-ES.xpi 516847 BLAKE2B b55a3b78c82c8adbc04775890ffb37752cbd61bef1efddb0dfddb9f1b92bf69096de71ed9f5e527fcd4573310efc151b19454c9687084cb7ab01ba0c113bd7f7 SHA512 befec4b889fa8754b7ad3b3c0f1fc5e4b61799ce7b5da221d190aa46063b5c65f4b5e904fdda0ead71fd5ee76856cf4a6909b1ee833ef80f4a7f214a0b892e9b +DIST thunderbird-153.5.0esr-es-MX.xpi 509366 BLAKE2B 25f3b2449d75ae3c4cd5d9034039e61a6b1598b7615333cefccbb97193bc6b13c4a12fcf91bbe275b32347ffa8ac55612c0e5a82f3b67a2efb182bf638a96962 SHA512 ab9bac7ac2bcd60d7d1dc09e1b08ec8b77677b50ef4e2e77b3f1bc0c338906547b350cd586b9d3233ccfc0ac371627d7ad425095eb40039f9885c0cd40849f2a +DIST thunderbird-153.5.0esr-et.xpi 464347 BLAKE2B 32f4d74618932be624570ed3fa6146f0204c1e82cffb9e72ecf847ae637075fee87c7c314f77a8a0b7f74353f16f97bdc40da12ca38b51086d8f93510cde35ba SHA512 e34cbc343aad707f89b648de3bf7d4dbc4f066f8e7ef8fc250baabb13db43d25655cbf3be8c7bf61a60fb9c59b60231a2453d01cd27da97447fa46cefc059dad +DIST thunderbird-153.5.0esr-eu.xpi 497077 BLAKE2B 4e737e3d043ea3fb549068ba9d799c23a67b122119adb599124112d12cc8ee741991c7581cd2089c961e48cb4ed17f8ed7d738c02dbbf1d29f54b4e6815f04d2 SHA512 76221040886e5b777276c7d74c796c925143cd0b0ee2bcd775199b242a1604d91fd03e4275165da62155680cdc37a8717e0a8080e41d3ce0c870a736f21171d0 +DIST thunderbird-153.5.0esr-fi.xpi 498105 BLAKE2B 7ee881e536030b8d1d48e5f391b17e9e813a74852bdcdc90fc90040096bc5cdaa49bae718e301b1fdfa232dcc4790d821917fa445f91dac77e879cd7b13dd787 SHA512 0fc7869fc561af537cec36c7e218a6fdc9ea8b248d2c0b726e9f5de1b79a7992fed97d134b7b89e132a2c12b5fd68f815a4ed1a83dbcfef34d7bad4e93800655 +DIST thunderbird-153.5.0esr-fr.xpi 528628 BLAKE2B ef98435e6f7d9b63df9519222c0801fcc2fd54d201d0dd759d2a2acaf8b1dc590e75d427d3d85290229d58ca7f539e9db5849d3a03b0f2360616718f49e4674d SHA512 ff90a43dfbb4b16afc6e5d7038723222c414f51d1c824c74a180e5b7dbfbb9e35bd3920eda6acec71b1eb46a7c601cf8b7ca65738428a080a055a4e95f93bc44 +DIST thunderbird-153.5.0esr-fy-NL.xpi 510257 BLAKE2B c7f16080d4a153cad43802012a01eef7b7381c70c4516909f131de5b0748ff0a5e9b9b560116a57a1e3a5b6d538319945c9e37b8df526229fce78d08d2510f3a SHA512 291e4c5153d907b4447742e2deaabed4526269b2983f70503280f7fb8d923e827657a98b91996384801cd42fb88c46c116c436988c3b92447465eedf8e6c25b9 +DIST thunderbird-153.5.0esr-ga-IE.xpi 432780 BLAKE2B 68c6e29165225929507493df7ab88ad7debadf9fec43acbdc95b9ecdb8071fce6b044e6097f97bff166af69b3c59b70195f8536cb7c9b06f6da8ab6f1130417d SHA512 b49851cad70ae88d414ffae77e85bda095334331e0241e5ffb43f19ddb4fb600194b047940dc0c1b6208e20ed632e0611855340ef4a367c0b135c96584ac210d +DIST thunderbird-153.5.0esr-gd.xpi 486235 BLAKE2B 439e6424951e6525e44c60de796b8bedc803fd1cbc423885ff7e7f511c4cc52b65de4d648acec1286cb77e0332a0631aec172ca36be9627b4f7dcc4596c1a5e8 SHA512 bc969b1b9290f9201608bd8791a46e72ce56127388399c21dfdb777ba060b4d956de4b3d894f9ec630d50c9ccd3eec4fbbeaccfd84fe1a150825e21ba782a2dc +DIST thunderbird-153.5.0esr-gl.xpi 500119 BLAKE2B 62250a5d66d0fdbd49542df37da50d88adf6b95207ca76da411a6e77adb4417c831a865b0f573639416dcb6cdd5edf1eb4043ad4e30f8ebf27af636836ca6390 SHA512 b03ed2841306b0ab2c1ed4f350723f8f6cf70a3b36ac7fb5487b8b4aea814c6f8d5dbb6be88e29e585834a4788ce7607c6d684942afe0f046c0eb401f64ae9c4 +DIST thunderbird-153.5.0esr-he.xpi 484641 BLAKE2B 068d0843edbc8d9379c931343839db8e80ec7475938120c13fab5b8e11a60b2d183a685cb82209b111b613d6cc1632dab3ab018b8f522a9f360543b5ed86de74 SHA512 699f431719fdb7e02cb799f71cd990ac47469a264437786e4c2ec9a12591ad2a236d99c1dd4016d8b3c78e81fc5766da8ef07a58b2313e0156ef689afb144791 +DIST thunderbird-153.5.0esr-hr.xpi 498553 BLAKE2B 2a465d87b87ea807c002ae6a6d987eda73b209bc9743f072d402f3d666a4352afe4eb293b5e9e7d197d969a3a0082d5582fc8ea9e975dcb5ee451fe3478285ae SHA512 5c46cc0bfaca3d337bd691324e78761aa08c1d3350cc9490faa9ca2c27275ba0f115ae919673080aabc70f49d03724936036702d6a4aa8f3c9f37b6b09e5718f +DIST thunderbird-153.5.0esr-hsb.xpi 536054 BLAKE2B d7da323039a54a8c81f0a8bb5c41b1898f20a7f6a9508054c3096655e3c939c1acb456ad0a6fc6c74eae79d3d5fdb1e6094d95f48d80c79a17e9384141eadf7c SHA512 aa68b99403f367ce506c72508b9f6bda486cb28a98cba9f6e434e15f7eef5dbaccb0ccbff8d4f0de49b680313cc25edb519a986f7a58a1210d8d854384d2d12d +DIST thunderbird-153.5.0esr-hu.xpi 538223 BLAKE2B 274228ce1f6590fd1005ab296f40955e64fa0a21babd532746f458d1fa620c160c4e668599ce7dd090d15819cde57933ca75bc7a5f2cde3b9fca43b4a6306154 SHA512 a5fd1c1ad5daa39db147b451f4ee704d651768f9215d9fa6991fc9b907b116548887b5006e4feacdaf716d5b8a108efd3a6ac0cd9329f3dc078d996c62b8973b +DIST thunderbird-153.5.0esr-id.xpi 482849 BLAKE2B 8f11abbd0febf718842363b8cef567ce06c207d8c8ae917690afda65cd9e7c3d609148a246e69bc489e41d727ea9af382c3969796fb89351268adc7080b01b6a SHA512 502d0a280499c3596f05cacffa3d5292d7b953799e79f469c48af2526ffff9ec762bbfb0029fb9a8b2a31bc810ec2a78a37d322ee9ed1647b0bba905fdcb981c +DIST thunderbird-153.5.0esr-is.xpi 508452 BLAKE2B a143dfdb6e347c30d4bd20f33e4dfd299556d4dfd84cde10ab1fbe3d43570477bc2cd349cd0d1993b784d5709c50f5244eec33e1495fffa5064b46012575ee35 SHA512 d609d230d73e8d3c32aad8cca91b6303872ccda003bd3c7fcb107558493f25f5117034c79674b08f6f55c6dee34f7dd691ca185b6969bb2757e10c9dfe43a51b +DIST thunderbird-153.5.0esr-it.xpi 507902 BLAKE2B 913232f95fc8428ef39d4da62e15ba003a314207ac78bf07e4a730f4f1da241c855eae8631a123b48bcbe1ab610739d176d25eb0ee414a9c570a94970319f562 SHA512 7ce5f8ee12169eaa6cc39ee5305b44dd5ae1f2fcbd32a322fd110fae89cf639d990f7b1dfa8dfcef28d52e944eea7d358946e10a90438e44a74b3b9eda2bd85e +DIST thunderbird-153.5.0esr-ja.xpi 559669 BLAKE2B 90f7291b80661f7d325164acea75f624dfa67921eda4305b879c85bcaedf00efee42dd93c087b599d429b0cc4b0461125aa0ef1f9a156f62be1042330895187f SHA512 5a48c7eead7e0e6975284d8882e331993e1f6e592fa0fd9cd8cad2475e99c260864865efc4d9bd1934eae006ecd73e8aadde50c26e33cfd4bca75d4e071ff958 +DIST thunderbird-153.5.0esr-ka.xpi 577083 BLAKE2B 89f0ecdf07f9b77a592b454de0103712e2a8919c1960955439654500b219c6c0f4a40ee59a5c06cda13a750b88042ee2897e5f10d068eb55fb3a3d13e705c517 SHA512 931752ec758a33e4207001dd8f98923d22adee462ba78ad9663a329d91a8a38430f3626a8a34a1ff30e04f55c145481f808f81b42de2e25d9c0c2533c9997684 +DIST thunderbird-153.5.0esr-kab.xpi 488118 BLAKE2B e3e861c31d2cb07bc4266fb025cd0f92256c5b4028b18371c9a787e56efa08d97805711c4ee399147a8062771c1dca6b24b10fc2177e28175d84950f09cb866d SHA512 375620f6fa8f44311c9f9b811eb38d0ee9674d3eb5306a8879344d71d56a3072361d91ff9a696e6369c895a65c198d647e05607045d1b13d092b6ba4eeb99b44 +DIST thunderbird-153.5.0esr-kk.xpi 601234 BLAKE2B 7d288ed59fe997cdb622332f3395a7144c71a3c33b77980880c7348c5f551a18cf41362eea59b4c6eb3a60d3d052d721dbc4df9931386b2af8524cfeb80fea1f SHA512 f546b4531b254730cdec1e2afc2e81c665eb2abd13d41a8745dd402065742f678855c60b7cd536f8334d542ab2dbeecd67b6c226f1487bd8c4bd1d65f005d3bf +DIST thunderbird-153.5.0esr-ko.xpi 535407 BLAKE2B 190d63e2960ae1fa54112debd6418f11fe334aa225f4f3b2fdca69b4a3069dd87a3e9321c8a92890ea4eba4315d4558412efd7607be16b89002950eac8d1173b SHA512 970858400c2b23b2f107dd35c071373f1be7000a7bf172b5b7615f5d7908059b1a912008f69df53e979b926ccd8c51630a6eaed838d1d79c2efd357b05e52813 +DIST thunderbird-153.5.0esr-lt.xpi 481625 BLAKE2B f28762bfc06d5ca5cbfa9bff216455d5d945fad11e18ff93cb07e8d7da57992a3208b3383d4b49b1b962a9035647928df3b8c04027b2b389b0e7d986829ae063 SHA512 74285fcff2ce57ac756476622665462a0f6215365591cf7c910c06ed1640c109630c4b6c9351531ba5fc2bd1e78d14160214dbe2ce9dbe876f0f268dd11090f7 +DIST thunderbird-153.5.0esr-lv.xpi 457830 BLAKE2B 994cc9d01cb6f6c0cb9762cf7b6cd740cb3317220c69549284cc53e66c90ba1582b3675b7e2d0b708fdc17a5921c969565661ef4209c1c8266d063653ec6a9e0 SHA512 4a1a3456999cefa4eb57aba3a6fb28e3432b2dddd3103eca964dfe81eea74719bdf2d924565c43689dff69c60d38c778663facdcd25526670a5fdf49cdc537bd +DIST thunderbird-153.5.0esr-ms.xpi 403353 BLAKE2B c4008330ffacc632c955377d2ef551bc8a6f6ac0a8d68ecfa6d484cb78c312390231ed8035f1668b9e7f4dead7343da30858e3e72cba3d1b6af4235f805a1699 SHA512 c0b40cb5827e37f1ae3e58c2d725306ed4a9f4b73ff26c1845c9bb7aa6f3f81adca7df5ad7a71457d16cbe5210c42b22d15e7f83bcf37dc6534dbcf8782835b0 +DIST thunderbird-153.5.0esr-nb-NO.xpi 495086 BLAKE2B a489e7c948f57de79e00b94ea8b358a7341ecf9fef55c96327295ac791e8e372f7f7010cf162d45ea10d55972cc87a3f81f6379e669d6dec409333693ad62451 SHA512 4459adf4ae38e38c62ec545266c7f374392665d8421770462bd14815696d898ee36a798a94a6eb5fd3a57202957bf0ab97420f445c3e923d031099cd0e975094 +DIST thunderbird-153.5.0esr-nl.xpi 501744 BLAKE2B ba31f793896f14b2f24526cd5533cd03a4123306bf6dd39c22663e1d8ece999f149535f347c863b467a0cce26da676050d073ac40369fa182d4d6d777a4994c2 SHA512 05ac28eb7b81737664712a36e9de40140366c5df2bebccf8d9ac6213961a2dd3ff2cac446422ea4266e3263d9479d4c7a37159a08ee2e009e2bca73ee2d8f9cd +DIST thunderbird-153.5.0esr-nn-NO.xpi 499075 BLAKE2B 17049a4f94d981621814673d56656efba49b075f949c3f064db332568371ff0a2a8c7a911d6741e3976c42de9c6f58ce18092696ff981d16253e7d16881bc854 SHA512 1fd3695ecc48507e5b04720b2e49de0ab9b25845ed843a8618050712984f26c65dac29d9ac3c1411f4770a85177cfeee25ec185bb8f9b5f8c1dded70b28ec23f +DIST thunderbird-153.5.0esr-pa-IN.xpi 491270 BLAKE2B 33b16a4c3b6184e7a2e78e8c648206b28d8083f7260957443401d0727cb230a572e7d310e441a391ddf340e9d725b2066af6aaf7a6677e2e6fb343e8086b9728 SHA512 c5a459417f9f810b12ae916cab5d8560f484f81de3f1d622a43baa0348082376b52a417e3b340004ca965106d15106f159e720e772c921075d066f2c2ebc45f1 +DIST thunderbird-153.5.0esr-pl.xpi 536462 BLAKE2B 0f923c94cb81a04303be37902a36e45cd529f26439cea2cf8b36c0cbddbb42b3aa3663ea47f738b01bb0e5b5e7e2ff569a5b458051895e6efa9a659f4707f19f SHA512 a1618c5f018176e4e07e731d26322365215064e647f255b2bd54b693938652b0fede5da1f9769f4720d9766ff1434d1ca4224277474e9f2879e05cc6e2744551 +DIST thunderbird-153.5.0esr-pt-BR.xpi 508306 BLAKE2B 2399dbfab3410983c8265a554595e97922d08510ec4666de0599c7bdbe82decb604afc021d54e03b18c32515b612426fd924a1619834d4a74c9b64bce9e52156 SHA512 2f4e648c6c394379cd69b6fde87b24cbc2b24e8f4ffa87a514d4c3b6727b4b6d9408725a124284bddd8e76374ef08851522ae49d60ae454ceca04ea5a13f3a14 +DIST thunderbird-153.5.0esr-pt-PT.xpi 514326 BLAKE2B 431195eff13be3f771b79028f4af4f69f12c2a1de946e2735e66158ab28c915d91297d901b91264201fdcfbc76be867568069e7e1ffd89aa13942d0ed8097d55 SHA512 7e8d5c46f380185ab55846f9a5e5f6d52227c7c623ffc41e5c967ef623c29a850dae4d37ef92e630f5901580b2c6e5da03aef6827d4396859bf0fb4c4a45bb2a +DIST thunderbird-153.5.0esr-rm.xpi 498923 BLAKE2B 6afa25d37f4f89a113e24a660299bbe37ba6569cb59950ebfc48d1641734c02f68540375cf48c894a7d09cac7f9abb7a94571176c1737f6c82b1d53dfff8b83f SHA512 315eacf61496d5d7d503f2b5b0371d922699e60c9802e0d14c0118ef5e03370acf7be795face976b91a7449548b6e8c0b2f48de9f9c6bf2ee935cbd395be4866 +DIST thunderbird-153.5.0esr-ro.xpi 521166 BLAKE2B 380c49cd83bbc62d29c5d30ed96591a2a727c8fe8cbc69905ba3393a78050ec891b457d40ecad4701e0b361fb6bfdb179135c52014248bb93b2dd5e11d87ba01 SHA512 16e6c54d79e040931dfd548eb5f0d28d224e85d7221c00d593cb24bfa54d0110e37efc0663d99def16e7e62b4cb5413b0d4ddeffe1c53a0347c771db57aeba45 +DIST thunderbird-153.5.0esr-ru.xpi 616070 BLAKE2B 69dc95bb947219225961f8d2bc0e309058f8054e9c18990d3da10d47d5c3d801d2c3922d6730f7d3efaf9ed5af43e2e8a6a36807a82e223c59348ac869db1c4e SHA512 6515fd1ba46d3bf351ad5291631a0119eec782e0d2ba24f1121635fe9f35601ce7ed23c12ac29e3cf7072c3b0686416a8d14296ee2ba11edf212b222d5697f87 +DIST thunderbird-153.5.0esr-sk.xpi 541169 BLAKE2B fdf8f51f758a8d17ad02f28af9240783fb7b0187d9f82c91f29f6ce45ec3dff708253db9cc7ff564a68ddbc464f1760eebbef4c833d06ff76604aeb68c621045 SHA512 31e6c92e7ea1a96c180609dffa2f32167c2244e81515430e5e3c23416b9f2efa91441b088c57c661e5fec50a2ac0bcebeef5685507e5103f7394859a26429e32 +DIST thunderbird-153.5.0esr-sl.xpi 508949 BLAKE2B bebe326421e401807029d040c81502395b51396eb1140b92291ade7fad753c3dcba4f7b6ee5ad6c93ab42cc0ccee62cd1b2218c3a565bc04352de96ffa2d15f5 SHA512 85d07cc5f3f238e8bd4736db0cbdc99952562124cad28facc6a0f2f444a915fa64aa5819495c6fe3e20ae22b6eeaa0f1ffe19b95535a8f9730c1b7ea2be4540f +DIST thunderbird-153.5.0esr-sq.xpi 525006 BLAKE2B af8d8507ea289202b6c5205a19d6ba4a08859b07d481c8d63fad390b517df44649c106fa7459d43b1022b19243acae85f4cd92087426a5fa2cc32af3bd7c983d SHA512 61cb6e3f0d241ed8439a8f1fcedec56db8f6dc1d337b165b7e79dbecc0a15fd55179c398cdb6753e3b328f76fa586656d325c6d6c9789435e178a470be11617d +DIST thunderbird-153.5.0esr-sr.xpi 581229 BLAKE2B bb9976ce15e00f3fa7ad624bd6217170413382cbf1a3ca274d601b910efcb4583cdac1cf2f9feebe3d9772404851871711a0100edf59c5c3f32d630b12cec635 SHA512 32ced36081d37512938e7413c04cd382460629b826e00db093952aeacf48a1b2f81b9f36415687dad9f0002ab86cca0f6a88e8979639649edf568672b2d3d97d +DIST thunderbird-153.5.0esr-sv-SE.xpi 503765 BLAKE2B 4fe609c7dbe42b7d9fc7cdb60612a028cb468a3d41e3aa8ef7a2ccde2e6da472ae10905c469ddee7ef0502f238b0c8077776078d7bee6b8aed4e359f49f1796d SHA512 b87c6d1d42b88d3ba4cc7d63973210be5fc941bb80ca127564af3790f44056931f70b82de28024206310e08aabf72fdd340e7694590407f0de84ef1d0f1fd3dd +DIST thunderbird-153.5.0esr-th.xpi 585142 BLAKE2B c8277ac771d0e5fec14fc73c99962c09f52ab0d35d85cff61fabb78d3f522358d0738c9d65f1b1636c6d1b64fb4b49c4cc433166963be390d1887b23dd068791 SHA512 5e8761b680ee0aa2b5df2b4a40b13384611ec6793d198a4dc89d5d0a1685bd6ccba6ce3dda27ceff6501cd5d0b7493842ec0fd0155f965c1baf94e4f1ca01515 +DIST thunderbird-153.5.0esr-tr.xpi 515623 BLAKE2B 23a02d82fabdb2e4e7039cf5c77f56aa8a948f9e650d4224724a8a140ab0f04fae82c137ee9e07ae5c299f56ff4e4304796ec6cb831f6e154390d263795a47c2 SHA512 c1885d02d928dc62a31a06dd4fca6d1c5d79fba3c1bcdfa558434e557905ca6ea0ad573b0a92206503ceee07a5b440b40bda797f8c2b27951a37b13b03ef5fde +DIST thunderbird-153.5.0esr-uk.xpi 596158 BLAKE2B 0be376810514a664dc70183a57d5c1d06dde2ebb3c39e6bfdb4df3f79bbecacf511a74b63abd8f66c7da86232146b348437eea7a7272f03df875c1174230cec0 SHA512 1ef816ca09a7dee947ea2e37b93fd06dd1b5c8d66e0282a9e18e102ed0a9793b0ed60a6dcbb5dcc08258a411821ddbc049c2afdfedd7d3dfa2e811713c74270d +DIST thunderbird-153.5.0esr-uz.xpi 419569 BLAKE2B 4869b5b90164a9ceae381bbe58ef39b9acbae77be59fd3c656cc8bd577e1934d8ebb27b57dc8b6c31bb573f805f1c320f19e6eaab612a7ef8757f5f7bd95b5bd SHA512 a32f133a6c8219d5d06395fd1c6c2f00cc2a4717281fd6a6825898a8df8a2efe39195cfd5e2ea9994cd5bb0c81f6fa2ae18b8dccc09c0d4a19c5b51e5d121901 +DIST thunderbird-153.5.0esr-vi.xpi 541879 BLAKE2B f8ce4f8d04c617ff5bb3cbb486cca45189bf58e64f5498c5f191e32535cf0bf02595c90534d7b5169e1341140858b11c9e37ebf391291a057638671505c3773c SHA512 25f1fceca56c81824a50649da4a8961a63b449682ed1f293807bc36e16535f09d489cc24bbeb3570fec950add6f898834e768e01c7166676901c6d0733c32446 +DIST thunderbird-153.5.0esr-zh-CN.xpi 526373 BLAKE2B fc8bb74ea9e442b00954a487d1c0f9744fde6d2499755f1788ef387c203e4595784bd03c09e58d474b7c78504d44344ed74b79a9ba64e38511189a74d21ebaf0 SHA512 a0de4338cc1664db3103126e5e5f7ba2cb2948d62a8ae419dcb07ce46ecf198070e3e1f45c935a2478e6c152023e7ee114373e7f79383f11029a806188000395 +DIST thunderbird-153.5.0esr-zh-TW.xpi 530602 BLAKE2B 085f0a995d318dd8baaba82d4e6f76df703151faf41ef550ec099daaeb5558b44f7bc534d14592a6729e4402c8e6067dc3755aa5fd9b6cf4b267bee2f34be2ac SHA512 8d60edf3e8c8a316ba078648ba4266ece1f6f28063a3d9f947fc8016217a5073ed65501907c027ebc25d2e055b412683d7ceb2bf4a864d2149699897e7889c48 DIST thunderbird-156.0-af.xpi 395008 BLAKE2B a840d16a01b572da3542032aec160184478209b873138deca4849890bb5b9c78dc767fd7fe0bc36f9aaee3c246e49321ccf1a13dece61ac8c5da86c7774e3443 SHA512 418d4e70b7e2eff9d0de78603300d73836dc9e0fb9a4f594c352cdf1250a30049135f3415c909f833a963d34c1502e497039c2d29979ef38b0182bd201504bb0 DIST thunderbird-156.0-ar.xpi 492142 BLAKE2B 50e8fe48920482ada5a67e0f0749fb4db40b7946ba96af9f1de96b811f80d95f53f44dbd2f689dbfbb07fd89b1751a895808feeb459898c31b009b9c8fcc0179 SHA512 667b48b88e18507ba31939b027d97b0a6ffa0803ab22ec13e919b070bf1d934542a6dc0d516c41fdd4792d7bfe95f972db25e02661b8a2886b07a9c9845be9db DIST thunderbird-156.0-ast.xpi 412398 BLAKE2B fc6794c4ff773246bd170773a9b383dbee617103fb9ea386e23e7bae0f2285696c786e83909a77a973a4d7713f9aa4759b0c36fcbd788c66e420c9abbd0d6c77 SHA512 8ac394ca5688a5776f95f78418d3fca54d13f475a37e7a3b85f62fcd6ff5ba2da0dd637d3ea4ef98916557e2381746f21722256d0877ccd10ffc2768f5e4be0e @@ -446,11 +510,77 @@ DIST thunderbird-157.0.1-uz.xpi 419455 BLAKE2B f3434464fac95b7ec09fde337b8e53ab8 DIST thunderbird-157.0.1-vi.xpi 549592 BLAKE2B 85df563a450569513458ea2a808ca80feaa0d9b9019cb1ec15f1c2a9efc41495e2731d296038a3a6f78df8f501b15028f33540372b7efa876fd9c55d01a01c94 SHA512 73e9bd9c57599ab303dec04e298f52a204bb1c20ea1db0b9fbd5026b813695f12bb95022b0ed0dbecd988d98cd1520b4bb46610ce67f3a72e7d15d544e542f76 DIST thunderbird-157.0.1-zh-CN.xpi 531203 BLAKE2B df649f22aa9c72efa0ad0b7452b8f5a3c9e9c491cfdae2259cd0af1272fbcb0629b65b0f3d66f2009949e49ef344e01f79e9ea487c3c001f1443c120c3dd44a0 SHA512 8e278fbaba2a9894463be774d43bedd8f21559454853c80f1c91c508842ee4d9c71401f4a6a4ff55e7c3b687327a42cabd5d80036016259fe2e71d34e4ce836b DIST thunderbird-157.0.1-zh-TW.xpi 538091 BLAKE2B 52afe0d78c618359f7681a60eef42f9d4318d56d058a7d5a02bb2238cb6ae4ba57fd4e2c9954d236f6f30b794a3a6eb92aa7ab644f5e0fecc02a11b74087df19 SHA512 97bd748cb2b1a3fa59bde1b2028e438db534096a52e3bdc7919c844f82207cd04a36d0c1fa4a31f4de4005e501596a16c4e661c6cbf0830bfd9f912588500b02 +DIST thunderbird-158.0-af.xpi 390744 BLAKE2B b6027d011454c2d403694cb45751ddf37e9f10d65b877dffb66ea2c80a5c41ed8c318674b794e9f69870c93bc5b7eb05c1a0d249a71099ab9d227f190b60fb2d SHA512 26ac94e6efd2110c544449af9e7189e231f7d32f523d6a9327bd1e72bf9b8d6d631b6678551a975321284750e64c4c674a6fe4d325fc0d3c63645b26c476b0da +DIST thunderbird-158.0-ar.xpi 489314 BLAKE2B 769527a286a9c3e2ecd6e3ea56adcd24757effd642e89d5f5d0ddb42a52f938889ac7dd5929b479a06bdadc0db6aae7ac7f373d25a9deab9aba6c295d96c2943 SHA512 0965bfa46dc3a931ba15619a81cecffbba9cba88fbda418c23b92b3aae1d4dc607895db668c912c05e81bbb282710da1b0fa86d1b4c7f8cd9da674224bbee507 +DIST thunderbird-158.0-ast.xpi 408421 BLAKE2B 3a09e8dbfb56cecde5adfb370e35c9ab16de202188fe72236995de7d2fcb896715911647076070750698003074880aa14b96af1b7bc8685d28307e9793c732d3 SHA512 a4b64eee5e50a31e2ece7f62d5c66379c6dfb6c93c6a9744e1cd0d02a8d04d9122c4151b2223f64e40c5ebbafa1b24abc1e5ba527a8b338633054867cf787916 +DIST thunderbird-158.0-be.xpi 555913 BLAKE2B 056eb770fcb52b72021ab2fdb8ffd9e06b0ab5eebf84762aaecfef82ac162c3ecdbfa1980e4f8a6c439b05cc31be354e54bd5d418d27619279323fd4d8ab771f SHA512 4eb49daf195cefb41306620a912baaa02c9b1ff2adc37323a4e05e85d9ed71b3aca5736cb9a6087db4f7fa8c750a9fae72e229f2907f5abe54ca6b39232b010e +DIST thunderbird-158.0-bg.xpi 563794 BLAKE2B a2742b51d927c7e952504e1696a0c3af96dd9bcc8b5e9015d5e97507c52578b8b840f737d348a4befc9fcb1d894ae2a28fc114d6ede9bafacc954d2838ec4ee1 SHA512 269d4a690c37b63f024d34cc42c7ecf7ec9bde503d255afc8252635280e2ad58a4407f51f65a697386495b813caf6c04599068999ea1cde6bfe47551cc770ef5 +DIST thunderbird-158.0-br.xpi 438727 BLAKE2B a41bc43ee257da9a615478890c916b6ca156f262f734ef4a18882efa24d904a22b4da3782c81e0a4b560ac27d086a82380ab9f8da6f0126c5bd12b89309907e6 SHA512 549af183bb6817596dd95f3499fa1f0651412df8ad2346210bc2809818eae8c7872c0b606f29e3a8583c5a057faa8ceef97955de281a91bfe1a3aa7347802d9c +DIST thunderbird-158.0-ca.xpi 477651 BLAKE2B 55efb70dc7c94821e23b2675e2a2d7494dbba89c819529c4f5c0f47390b81bc84c1f3df59d20a1d19ef7b4fbd905b33eebf86931483dc748e15077a2a0f7ba65 SHA512 195cd3b9fb4f4845c2df4101e02c5adb1831305695492e7d78c8d6b4e141af7d3071cf565ff4892a3e7bed765fb5ece171201983aac1a28cd52a7281fbc1b056 +DIST thunderbird-158.0-cak.xpi 455075 BLAKE2B a59ccc616d0e2e030cd4d7bf165ee7e39df430a0285652b1783f2b7a14fe0eab06adf13c14a8ab722f0163babcd8128662cfb6fbf1d09e908cf0c2cb301397c0 SHA512 2f9a91b0e90cb1bf07acdfdc95a968334933c5f1f062630a31174ebbb94c8f8885ce3026fbc84898c7010abb4876732a5093aea539aa140d91512c95dc29fd50 +DIST thunderbird-158.0-cs.xpi 549494 BLAKE2B 649f3b8aff58da10e419da6d661292ca1e23e53d3236a50614065198d816c50914d1f112681ee7bf2a391e1eefe7772ba9238e953c9c4b46dfab08c6ca516318 SHA512 c7665f951089911ca803abaee295b8908d36e392cad8c5e2cb8aacc7531d75440c4508b63422438f10763f59eec3c26aa4e3293e39b841eab06e7cc7ce6736fa +DIST thunderbird-158.0-cy.xpi 516804 BLAKE2B ebd8f2fb40c73c46965273a1eb4918117da014f1a9f58f1608673ddb38945790a2a71b36eef9131deed9ef461a80cebf8df7d517dc231d1af6667c40bf4fb1be SHA512 74630a68fd5ed0a74c21ecbe27aefefd890bc449efc6d63490df71615c98086a9992f270938330827e0a8168033aac906bc6328c09e52ff87e93ce8bde717eba +DIST thunderbird-158.0-da.xpi 495119 BLAKE2B 93d4fcf5aa1ff45ab90016e3042dd0d22e1e3e4fbddeac17f418c967ae4ae50cc6f1eb72edcd6d16c481200eb531283ca2fbaffe4ae0b8905265314706d9a800 SHA512 f8e6495ae2b4645f9f38946ecb16b9e8c0e062a97fec7834c1c579ca3350390361fdd7742f4e5d9e82841dfc817f18c9c737ef495c9ebe89787a229de083cf3d +DIST thunderbird-158.0-de.xpi 532509 BLAKE2B 30df51655f8605a15c32cf38ad19e36be154952f8b1a2747f44f627dce7008694a502cc58dddce443c544f32b3654d3a2b023c58412387185652b3d7788b9a51 SHA512 cab7320d1c5e45fdb2f09efce0239946a0ed1d3b996bf2b4c9508b945069a739ccb3c3e25dbf19035e3357f3267c86bbca1a5945632ba9e3974ae25423f54e62 +DIST thunderbird-158.0-dsb.xpi 544672 BLAKE2B 4ade719c44d68b426519e5e6089f69c5f50a3a212181a0cb6349fbdb8361a0d29c536cf5748dcd77275c21282c89aeea94a54bec9ab8ba6433fae5ec9fe6bdd9 SHA512 0791564cb73b7e390aebd888ac995a10edfbd66a958a67dab135f71526c3b104dae6c58c8721f3b8947beaef5b201c1c09804eac8278266821aa98da1de91351 +DIST thunderbird-158.0-el.xpi 639329 BLAKE2B 86c6da3a42f194fdad2cabc298d8f2b677c8765948be225af0f1e27e44ebb2f9836eb110e3ae671533def1247df26a1533181b9fbfc75a20ef638857582253f3 SHA512 b6b652a532a4e66b3ac636d2a45fff507d7a3fa9b30d10069f23f757dc4061aa4efed78511f8adaa82c1ad3ce8debdb4253c70d73700a7fdfb61e43249bb8b72 +DIST thunderbird-158.0-en-CA.xpi 471980 BLAKE2B 69832a3a4e4c53c821d8e5a118435f075528c451b9f82324ce0b3187b530a14e3d342fb655dc5c7b59ec5ccc48cdb50bdb43462e5ae83fd7da1756c68ae4cb08 SHA512 25502debd0e253a24339b572ec734ae55a32ff657b59386439cd26d7940e431217873bdd56076dd7694f1b322de5efacb6615186f0cb7a97c73bd02440cb582b +DIST thunderbird-158.0-en-GB.xpi 476497 BLAKE2B 0ea0a16b6dc0daae01ab468cea37c5e020bd11c6cd51f3fe75da82596a275084e36814725b5b17660d55c9c4dc4e37556098dfc5acd27575103ee5d22077a452 SHA512 251dbf513d7d8ec29e364d2df8573f2be4fd6205b961172165a485b17011f6471bcde61492b29fc6f2c96d5e51d96c7e7570e0de1a6bfc13563206f50c6157f4 +DIST thunderbird-158.0-es-AR.xpi 521678 BLAKE2B 8b7bcd89bf2dca17bdde09bcdec860e5e11e5514df7ab56b929c1bb2bec0070ed49ae2310828de27d7bb325ed85600eec40a0935e6a6344d0387f65bdacb6952 SHA512 ff8c6941a16347823eee5386d055e020df603b493a31ea7d5b6e84d4db41db4e98c359a4d753d3e797d64ef5e431029c842ef1350fc9958db21739c50ee02083 +DIST thunderbird-158.0-es-ES.xpi 515524 BLAKE2B 06dc8bf0692085b28521bec68f43f1655b419a5f97113fad012482663b3589befcec65c30ce915f6d63f11eb155dc23fd53db01e1a19e0782979dfbb87ff3582 SHA512 8d2ac836f8254c0761eaf805e366d9d10c669beb764f059ba390488ec04fb79206a4c8ff758264cfccbc421038402fd35e0efb71651aa09811d2974dd4eefed2 +DIST thunderbird-158.0-es-MX.xpi 509312 BLAKE2B 9ab39b2dcfebc6608d92f8c78df72c33325835400169adcc1033d5cb5ef69bef211e323c461559209e4af2e441c0986b269180504ea321972ece1ae86a6afe58 SHA512 33d319976ab66ca1a2072dda91724f6686aeca6bb34b725763350391a4d48cc9630a38f1fcba7c5b0ce0709a3671298350db88f6a85ccfabc84425885ed45e75 +DIST thunderbird-158.0-et.xpi 463018 BLAKE2B 270bc4193dc092f051197751b1b352d019bd3dcee4f38dba27f1a1e755489385fe2a285ae4893ef5a89bf9baab29acef467769525331340e9c8036e2131380c0 SHA512 df167bc5601b552b12d88dc72ef365b13e7387cdde2d6727fcb16bdf16f311d5f784165dbd09f0f582035dd779e7f69285a8449e0283c103c17aceb28cffb98b +DIST thunderbird-158.0-eu.xpi 499714 BLAKE2B 86af387e381cd52f5e537083f09f705a94145bedc1aa103a245932ecf4972147f6fc84bc45fc743bf8bcb2ba607cee68ed0b3ca9eeb475b7effd5a8ca31e4a9b SHA512 1afdb8e66355ee113aa31986d539610e7e487cc84519cb50c5eb7faeefac329e5080020aebf0baea9d0982e45f1c0c8202f54bf4160608cc5f23ef94dbb1b60b +DIST thunderbird-158.0-fi.xpi 497694 BLAKE2B ee816236ec9deeec249bcda836388469e295a992360d42db938ea50df922e4f269a03ddda7361a82d897998ca1f5bbed7782b346df5102a660286f7fc71617d6 SHA512 1b14e0fcc30ebc982f1ed28fd1d5b3678b4614c1d466b0f639fe0ddf89191eed10231658b5de7daf03dd1bc4985d97418bb3df104d3587ffdf7df90730e2fb51 +DIST thunderbird-158.0-fr.xpi 536183 BLAKE2B 83f63334f96ef6c415813ce93f2ba99299e3a1fcb0759d33da7dec75a2301bbf5a50a0f38e48643029cf708f2bef85a9e953197506e2cf72c953e6aca5fc6e22 SHA512 537620a14c24ffdbd202d4181bde978dc19d72d1f87bbd5648bcb0e5705af6ab6309a6de576c750823cfd90267d8a93963ba44f6ac7de11db50e03dff5754f33 +DIST thunderbird-158.0-fy-NL.xpi 515823 BLAKE2B 1c4005cd9b56971d7822458368854e0780540f24ac307730a46c737ec9796a1ae52b4c97479e17244a7523733315afae3c08df7718e746e410f6bf8046bcbe5e SHA512 2ae1fcbc28bc9cd80e3855ea4bd25ed35ae27cc06464fa62156d1e006b20d802d48dc9af7d02039de92fdcce5867f78897c135b78bc775ba413ac5fd084c84c7 +DIST thunderbird-158.0-ga-IE.xpi 430592 BLAKE2B eeff5b440eab59625c4db20bae3340fb5f65181d5f1780dba1df743f429d420d7c16592a2d31376ce55c85da78d3df7e590b76b4e78e85cede449e34cc87672e SHA512 3619fe628e67ebe4a9c549e76cbf064b683b1f05d4bd3ece491e59e6c3a7309fd9c712312a8d49a89942cced8e9ee5d511d88c8a565e103c1e8ac8804c9ef331 +DIST thunderbird-158.0-gd.xpi 484685 BLAKE2B a429143e100bb4316bd35a32027005500c1c1552a455fb395bc97ebd0cb030d9e88764b04f7b56c936eaebecddd869872eb48639ec4fa295c856b97293293511 SHA512 898375879545537e74df126c0e91718f7ac3664da4adafa8ba32445bacb61c275738da7aa5608f99611879a129354b467348491acbed5c9047a6cc1179c12aa8 +DIST thunderbird-158.0-gl.xpi 497646 BLAKE2B d2ed4a1fcaed56af4d85b67b5c5d8b2c3fd9d7d3bde9a4a11f7fd3d8670083d33b0a4586dc967045b693280cfcfe23dea128a589254456f985018dcf66947dee SHA512 95d6fd6694e61a26fd2a71014570c03ed40ec21308e7dff29aa29bcd18f50849efbfa380a6c9502a89ad21458b755d54e29fdaa576ea66161e85993fb0d546c1 +DIST thunderbird-158.0-he.xpi 486610 BLAKE2B 40af7bd38dcce35286637e85859d0feae729ca235caf7d4d0452b538c588091f3a42bfb582fe075a525941df2ef9c684682ce2aa4f9580ed856369728189c36e SHA512 5a604bbae8a83e1593cca6570747125210429ed9c2ee6b580f598f1a6e57e64abef197c47b12d7ba808e3c38ab4be58476848f1684b2ce61336d5f6614ee5eb3 +DIST thunderbird-158.0-hr.xpi 496459 BLAKE2B cac5995d1d0f1d476b3a496d8239577fe46b830fe5d01b0932eea789da0df7254b7567fcb39b511c94fa6690ac1c37853e8441308ecd9d67d5491061810b7e8a SHA512 a8b851b57f3bf65dfbd5b23415e2d2143235b0a6f39d7bc4a4a5f9d61fc479d7122d4965dcc1c9ae4512b862385cfd7a78e38f307208adba7febc6871791433e +DIST thunderbird-158.0-hsb.xpi 542642 BLAKE2B 1081140ffbfaae6b3ef25d7888600f85f7214bbf8dfcd8cab63e40866e1a06ab250007af7b919d7447849aac92a5ec01ac454ddb7cc1a7461168b0f1950eb056 SHA512 85091049e1a84f378926580a7358aafddce54adb6fa46254947629343283f89510e9db68be46ceafd2ce982fe0b61b046d90a728eab44cd64a594bdf12c796e8 +DIST thunderbird-158.0-hu.xpi 545417 BLAKE2B bba455f019e6fadf68d7dbe04fbd3cb3cb139ea256ec970ac98f508dd5187fe349b6d7d7ef9ec279d87207d4c590d59e6793a4d0b74f272ef342da697fc5e124 SHA512 c05d403396da64ca1f51bddc9410970da99643bef74bd996d485c1b28918a2e64551c5a1cf8225cb0bd42e97942181609ff1135045c4655c39ce514f01848497 +DIST thunderbird-158.0-id.xpi 482956 BLAKE2B 9f0bc82e316f45338b5f345387fa385e113c36aeb5144aaf9db4722334dc478fbe95895377b151645bc397ad5952fc281c69af54136cdd127952af1a91b1081d SHA512 548b15e6481e69c7ff2a39912a464830446bd903bbe8b17626f82f5d6404b6d440dc4914602aeb3963e57b95c40b379e1de4dd3f9cf350c1c14f0b538d2589b7 +DIST thunderbird-158.0-is.xpi 510430 BLAKE2B 0ed96410d7debc8ce598fca385eb794947b13ec108106feff4d3cd17a19301dc89d50f16e8ce8187fff44fefb9c21afc634c4a430842d94090bef0eef55fa09c SHA512 8e3f88a11c08a20c91b35081877e7cd6c8853809a346ac0ff9b38cb31f2598a842019359f1d60b213015f716921e50799d56d1835464c5a57348cf83a6f01a3c +DIST thunderbird-158.0-it.xpi 515224 BLAKE2B 507072228ed542b6a4f714a446ceef5db6e55ce2af67a577f4e4f3b44b1783648d9eb86e75dea599b37a1294c92541ad16b649aa50b39a7019d015b1b1fc1bd3 SHA512 1558537712eb6d005a4a0e167fbc19bc093196ce25c82006f2ce167a30aae8d2b15b0617d7b84f5b992fbaed6276ae7b992070743cf60dbdd44e52b6abd95df5 +DIST thunderbird-158.0-ja.xpi 567776 BLAKE2B ea8aa217f20d71b271c3a3feaed608a9589a201e6a7ba18a341bb2102a7cf38e47a0cd6939652ca1af63a1179393b828a2705f9480c5b82ab66c8351602ef581 SHA512 ea3a23834a082f2ddc4c98c87985b25541213a82e4d5ef1cd9a76786cc38bab7e0cf1ec5e609b41edc02a71d548e3084dd167573de288d696d05ff49dd00e133 +DIST thunderbird-158.0-ka.xpi 584471 BLAKE2B d9f769c68ba018fd72d7d1a85d6748a57ac0205ca6d2349eaf904ff23b9210c36deeb143cc4a7ee5510a716005549bf2b635b0f8ecd6dd07f087ff8fe9bee195 SHA512 b08fb96c26bbc8925824e50468bd8c8dc77284af4e3c26f98e6d3d791386f710c2d1b7e99f7afd5b4d3058a9ab21b656ea84d9d21728f0332cb9adc7d62e3804 +DIST thunderbird-158.0-kab.xpi 486969 BLAKE2B 97d0bfb7ebfed2ca810257f377acab26a8f241beb33404fd4c155a23c59e8e9fd7bc0a8fa13c8d009946fb2e00d1e4cf38d41da656587ec355ee906c284aac97 SHA512 f14995a609a6b0a7b498c90c3319ec25c305b5813c75010fb426acfb2779e849356f2627374510e880847340cf783a1043b8a142f6169d28103ee0a81098610b +DIST thunderbird-158.0-kk.xpi 610744 BLAKE2B a15a7c4056a21ec6d356fa778e404031b86142c8d70c9bdd8390b189b5161bf614bc819c26a90e7ce4fbb59a32a13112ccd8ede0d1f9bd62bc8d97c4e7abfde9 SHA512 8f14172a8bc7b0b45d5baa9f33724f8c6f942a0f870b8e832661caf62eea8ee4481b095364a3607d3dedc5fe757638c054bd5ae0a289f6c2fff0e74fdff33387 +DIST thunderbird-158.0-ko.xpi 540985 BLAKE2B 52790cd0da8b4903692615fc38c2376f403c84aecb74c1e4bd4a10c81a771f7daa722462734d1088d4b949281c549d000d825b8f0a303cf5bc9a75ad40a0af7c SHA512 69929179e5e6df276962dd208f263ae17d1c57b7101908e25c544177e2487b490eb921d567ae6a64df96e81e4de3e4709ff17a30289c036d0bc5616ea00ec42b +DIST thunderbird-158.0-lt.xpi 480522 BLAKE2B 4a34e76833f96624e649e596bada57e29422120e7a81fe7a532ab80b48e1907fc8775f68d6ba0ade7c75b4fe40e55c8321d3fa7b2fa7f46c0eec1382f35b8122 SHA512 b0fadae5ce0624784252f8ed8ae2fee1c062738da80db69c5952f3345c3c0e5b63f369e62337733ef6c154b24c9c6329175a41da21291a5f3f924f8b331f0c53 +DIST thunderbird-158.0-lv.xpi 461100 BLAKE2B 2d4847e42a728b2b5711b9aef17ad172255c8d441648e968a50ea42fa1b309855f2af454fd13669d8a5c39b16bd3a6c4e6bfb1da52348bb5df14cd5376378dca SHA512 74783a77012824686ccfff53d963c9469d71f370b1d1c8eb0c872d8b89a37d7a43c3e491a95797a9c379fa934449c8fc5513384f43a62823f1571d93d1f4a8cb +DIST thunderbird-158.0-ms.xpi 402933 BLAKE2B 4d37ffee33886b96eda3c2e40ddfaac6468069f4175dbe7d3bc604a55b611d5da53ad491e3540ae4c34e35d4d1d08a9c1e4c558663847828c783cf935a8b4b9a SHA512 db3c422b5e5f0be03c67b9653bfaf608a0db80495df71c1996f015e6f08efc6153fb133a51dfac611161f383f6f37f44e0ca5316cc58d40c1759fb99ed61bbd3 +DIST thunderbird-158.0-nb-NO.xpi 499125 BLAKE2B a3748879fad03437838abc4d90c6b45f6f86d00ec84e977ead81788522e5dff747351e4619e5660895e80d13093c73cd6c2c496221601f0125b3b27561d7a293 SHA512 76644d3f6ea22da7eaadc3de42f6b8a5988865c6b4d60828e3fe9cb666632e3315620c7685f8d1d59087c3d42b8464c3e1b198d459482ff0a48a67a47964fa96 +DIST thunderbird-158.0-nl.xpi 508857 BLAKE2B ca4be9a0111ffe334bed5f51934c973c5c0cb4f4042e05e4c34c0d679fea9d16d39644b2999913d77c4dc519d7fbaec9967945263d6fe6089fa22e5abe9c28c1 SHA512 1745dbdcbb02eeadd797dfc148ecf175222aaa29277cd7cc8c9d57a3b378c72dfc8966e53ab1ed65f69412425974a8b360ff4a252991541723a4f0dcc67beb7d +DIST thunderbird-158.0-nn-NO.xpi 502049 BLAKE2B f4965c4e5dd58f7e424a815a8436f7eb21a46a270ac9d37b7a9c6958205f24726ebea3795da033ff337e89d59535db4c028faaedc75dd0398948d38544f93fc7 SHA512 3bded4946c8ae756fd3d5b0a3d977f682deec764179225575e97852b13a4189cc4ebbb1a7ed66a65327ae5b87f7d1a1877de257aa5ec869de5b350fa017f6d7f +DIST thunderbird-158.0-pa-IN.xpi 490976 BLAKE2B 3b476d6732e89737438d91ccb9f497a6c03ae4cf2f23c6846af44217677ecb07172a708f2d10c7d46ecd34fade493a9b99005dd2c4d79bc70282093848a8ebbe SHA512 ad0a820ad73507378017fe7aa44276a488c9f763876b8505c31b8730eb2cb4e3f9c5e298c660f409a3a9539522196d76fd9a7b9ca9777c4f233f431cbcdce1f0 +DIST thunderbird-158.0-pl.xpi 544410 BLAKE2B 12f1a861bb40cb1c8133d8f462eb392d2e80a9a35cd62a783fa6d8c6174d0ea93a129dbab8af7e146afaf5340c1351388b51c6877bb5996e52afbd6ea419871f SHA512 75f83ddc8014500199ef048254af6f546292bd8afde8c32875115826069647609da1eb42c487fd9af3ce8abfb7eb1e77823127cfed09f73520bedeba8e41197c +DIST thunderbird-158.0-pt-BR.xpi 509876 BLAKE2B 9499a8b398cb9479adfc976870f073e8b82b81d05e7eff810ed0bebdf5598145ca28841e82f9fc63531a111a7fab1291b37702abd5656b47dd2de9b78fcb131d SHA512 40dc0f5a52f9f6283290937915fafef3b6d85f2b3845ab7213bbe112d7c841d82dbee2eebc9f8fa1d579dca9b83f1548492c0d950a250785335c0131132fea05 +DIST thunderbird-158.0-pt-PT.xpi 521722 BLAKE2B 2594d0a03f575a1910f772177f30c95f188633df8efdb433e9a8a1c132e1a1048ea6d56ccbd38ef2a9302a2c27860da3e8a5a3d1a7d509c6be096c8b2fee0dcc SHA512 31a1ef8510a6a67588cd463a0511493b0329f6b35e0e687179d516f383488b2ca0510e2030eb77778905de8f00c365d57fc09650d3911a9ce88b3b312bb1a771 +DIST thunderbird-158.0-rm.xpi 496617 BLAKE2B 489134577ad93763f96608cb479aaaa9ec5ad5191e9d3800b0f20a15480c5c2dc228bfab8bd527796f41183ec3b0be37f6960ef106bba62ce8a42265345656ee SHA512 fde4b666651bad98d06f145e611569f16afb98e9b5035769cb942c6b591735822316de9fec8a8aad9a825cc7f7f79c83a7e786d9800427f181563f285492eedc +DIST thunderbird-158.0-ro.xpi 528844 BLAKE2B 3492aeb244e622aa8ddebcc01394f00bbae066a60bfdc48df18ed7fd3723e5c132dab71fd69a63e69d405d5d1700c55266af09cf693986cf84310809bfd51dcb SHA512 2184579883f816e731677ccba0353a3f3fa62cbf9e08631ee46358a3dbda71b31cbf176543856a52af938166e14902b073bf6d01c6bcae8d98a377c537c782bc +DIST thunderbird-158.0-ru.xpi 625370 BLAKE2B ac84fd30c517966a7669834abfe0c0de8a39b2cccd2b9ac2fd46ff4385a800d4bf8ff87d1aa37963c8c364e6945c629e972c9b45ebfb3f5c7987da99e23c3842 SHA512 afd629e47d98af3ae0c5725b94fe7ff3ce9314506d4b649c2a857fbb19b2bbb60be7323fac4ed2e8323e460bca2d2ea24f396c90c66c9c0bad778440bb1891a9 +DIST thunderbird-158.0-sk.xpi 549277 BLAKE2B 7c7c68a1573daf128f7378653852c3de4368e46d4d0fba72af6042261e8425399f0eac01fcf396c7e11244e94ff5d719a95004c9d5ce206515072e6e3f7be2fc SHA512 f53f58713c8f5623a912f12c70b7f3b12089f14710dfb2f79b863d865a2de018c00bf31e71a82e27a59a73125fe340d8ff7f83f62258d3f4541a216321da362c +DIST thunderbird-158.0-sl.xpi 512601 BLAKE2B 842f1573c8ff429b5c8cecc2691c649f6b13fb2d6a4097af5fb14a9ebcfd25033731c92c7017be511e90577d38802222c77d1321284bc8258ecad18a8665c8c5 SHA512 061509ba8d63ade30a02865a8e75a7d02de65cb2e137303163b3244d4a7b7de13d065ff8e9809dfa9bc3a8f74e7a6babc55c42b495f2b86707a249bd50478a20 +DIST thunderbird-158.0-sq.xpi 521659 BLAKE2B 3154909a816eb3430300641fdfa90de9519509a25355cf06cf4891208b26479a4ed5cadf99ddd19019007dab3107a7b88797ecba2529c495fc3e2de1d0b96e2a SHA512 a1047fd27dca0f35a84184584442961475513435f6ebd93c483918ae73ac850672ed0a73af5b594150369978f3018d6851ffcdcb99c757a4bb06cfdea0037920 +DIST thunderbird-158.0-sr.xpi 586555 BLAKE2B beccde54d9747f61665281a556be1f118b4ac408acd0ef572ccdc68c78f0db2ca9a7ab4aa500c16c76ccac0d321709b5480539c9a93f67ae5ca878e270b81adf SHA512 1dbf1e9dcef3b33acc588f633aec812de2f369e1e9012d2db8561ef5673299fd0a0788f80fada938ea91d72a13f472294abc71808cd59f9ce5008b7bcd7e88ae +DIST thunderbird-158.0-sv-SE.xpi 511034 BLAKE2B 05870185f0b953cade34edf5521023973f510727b4d8deae7e37bc3eb91b09793ff21060a9cf7f78c89014f2afee35e334fbf153e5daa7bf22594aa822cb66d5 SHA512 f450116009b250a2003abbe24711210559a9497fe61543091875a0fcfc6dca6ebdecbae1aa12184e91712c195aee53fe7028f81b94a31b1c1ee57fed5dae2f57 +DIST thunderbird-158.0-th.xpi 582073 BLAKE2B 9ededa0d48938bf3e0385f503ae568981c3fa9105f653c0a5191ee6f7dfc9a74d280c6923eaa0aebf19aa3a04286b286e2f9cb52c78c1060847f69b4d51d22f4 SHA512 bbf0855f66ad80c09adf6685521d18c62fbfe2b1d222e5af13e47cd2fb40c8e6fb67cabe790bb4d17d6e228fe64dcc8e2b5692a1137822d05ad28532e9afec3a +DIST thunderbird-158.0-tr.xpi 520635 BLAKE2B 665b2d43de5754b7d92d7d982060935612eae0ac268c88e18a2971ce8bde059f92c4a8a1bb498490115f65d906c73b69a5265de9aa296de823e9ed35939526d2 SHA512 a8304089493640f472f57bf105194bda3299439293a974cb98f62814347a21614792e04d7de894eee0c0af3eb70c5ffb97a70b15bafbffaf3be9c1d7ca04f1ad +DIST thunderbird-158.0-uk.xpi 593475 BLAKE2B 05b0d661d933c06912dc0d9c84d608928875805eac6d9992f92ba46d22482659332834f92f81f2a88787f89a4aaad1e97ddb61f96d8d17df4590c8cd5c659552 SHA512 26ab6e9423e47ae952145cfd2b7965fb109e209cc4cdd879f81bf2a5daca01ac28dc0ccc7d635622e9e1ebe4d696fddef631dd96c44a1297656c8fcd64527d13 +DIST thunderbird-158.0-uz.xpi 416416 BLAKE2B 17074bc49d80a2b704947e558a3ad1b2dbfc8e98bd8432fa4035e27ed14eab701c9587a737bcc719d81584c73e17970b37645f30b86b26c5852cc7824676b561 SHA512 0eb4538a93561784b18617ebf0502da1a27123c57ba1aebf53b67f7f462c734f1f8d5efbf4e2b2492e6d1d61e6dd2fb9cdfa065a227aded667f26f2f35d2a712 +DIST thunderbird-158.0-vi.xpi 549920 BLAKE2B 4ea9f4cf551c3c85fc8bfa3c47e8e159e4c8cdb68601a06ad37f9e36300dc86d82a677a65280fdb7220c3fccd2a8ca04015e8b1c0c94a911672ebaa8dd112f13 SHA512 72c2081ba455cd6fb371845e6cd3ca4aa5eeac511c04400e2b53fae7ae49acf867a5895f427cf6576e2d4f96908b45bab86bcfa5cfb462ae1527ddd413d9944d +DIST thunderbird-158.0-zh-CN.xpi 526326 BLAKE2B 9b6a10d52ee369d57042e0842ca18f4045e96710b8a2518cecae466a3fa29ea85a26142d607f34796e53e5656ad70073a40f3b318db125b125e55cd14738450e SHA512 6df85be0a545fc7bc142fd79a96faa33b7af3155db1f2e1d5e29a9b82136c822475e91c430a3c527708d1640242488d5d2f9957b05e304f153eab26d1b799e41 +DIST thunderbird-158.0-zh-TW.xpi 538334 BLAKE2B 16fb322434c41c95bc833dca263f15eb923478bd4a73f17a4e9cbacb4d3bdbf47ba723cfaec22f27a71b32b7c517d2e066bd844f3c5276dc277a14919815a04e SHA512 0ec863e32d01912775938ca2de3e6021f7fe9a2c44b06bd23c7e2a26b640231ac5b98b4ab4e2ebd7d849a3aaad4f12c20fd749dbeff71eab2917c1ea0c6331f1 DIST thunderbird-bin_i686-140.16.0.tar.xz 78074112 BLAKE2B 23ffb15b6d2832c63e2a8c668e03c123e0fa374a5952c2ee60d72b96559d7096203841169287e8ed8a9cc301f275d00730cf12f4de5810751a04f299b73998f6 SHA512 f06bb91d231e6918d66270bc3abb01e8df740ad6f4074fd6695797a1454cf8d0005b55f2890fd0830f12b2116d338b4d099c710d1b328b8503de53d2b9883a53 DIST thunderbird-bin_x86_64-140.16.0.tar.xz 74722748 BLAKE2B ea1bd2f611fb1c4a37a41d098a61c21f34bfafe6bf91c7a8009aa6897750f55c0b64b863434cc957d11d699184c6566e473a732843dd0df8372a3404d789363b SHA512 b9b9348ae37c71c8bacb74f233782ed2b869da2b0d40e6aeeb1d9d1b31aee1e2649334eea67f30f9296aaab5b8a432bd96a36384226096d0774aea31456cab72 DIST thunderbird-bin_x86_64-153.3.0.tar.xz 85631476 BLAKE2B 6a4a0157d9d4549491d977b675b91b939665f845350b9ffe793786cc873cef753135e0768797a966f8ea806df1301e5226e1b1b51d457ea15fd6af0f7f654a8d SHA512 7328b96cafc09cb4ab2b08cff70cb4b60b7afaedc135a28cbf4356e3352518710c01f1dca55dd0aaafb1033f92e4bb948a09fc1098bfda91a1091d298ca1714b DIST thunderbird-bin_x86_64-153.4.0.tar.xz 85254760 BLAKE2B e514205369c20dd1c082d701512709336318d4e7f0afc7e7ac7759598765f6b8b4dbe33b4dc873cd409da3b8f31b28d8e8bf610b44f99cdf6badbda0c0184a1a SHA512 16063c8f71eda1de18dd5a1e350777250f802b51e7f2023dbdcb1bd0deba7fc343a4bdc4d32b1ca37cb99a0e9e1540a3c75a3b661b201a5d36ffc7f75a65e93f +DIST thunderbird-bin_x86_64-153.5.0.tar.xz 85240508 BLAKE2B 20dc91cd7713c290664fad3b777a7e477bf6b8de5b7d4f30b5ba502884d5d49b0f6166cfd64ffd2c1bc98111994385f7cc7e542d056cd0a9a9d3ad7f89e557e7 SHA512 4b5c4a988307876f861b3e40ece13a8fac4707347d573332b35319bf1d4d9f45534076decc34e23fee6de8e75f65eead4620ca435a8ab0f20dfcc6e2a6ec5850 DIST thunderbird-bin_x86_64-156.0.1.tar.xz 86459552 BLAKE2B c9b04fa83470a2faa9e28c992ea112a577c2a698d5f6a9cd8dc9306c0e8b5cd88f42f1139c29679c7551f101854ef6079aa32c8947bfc7587e9b1839af1831a0 SHA512 9890357ca24c604e1dddd8ab6ff4b6bd565a3da5f726a8389de8061146c329e31f7f3265e81bae4f7bdaad593f0e67371a87153d7999e63c12c16d2fdafb47b4 DIST thunderbird-bin_x86_64-156.0.tar.xz 86287500 BLAKE2B e1028bebcbf69bbefb3e6dbeb67bd8854e91fc239ff335bb1016f086a4a0c300bbc90751d0864c27bd7c37d33447db754668f5ead2dcfc91e2dd4878041489d1 SHA512 e50e2982ba8a01e2fffbf10add3d05d0dac3a7db9b27d527b97d7d63a01aa5b886b90cbc3e4356b9375d44f635becd8baf677ed7a13fa600f1a992ebca3b917b DIST thunderbird-bin_x86_64-157.0.1.tar.xz 86709212 BLAKE2B 760f7817dada1207927721caa5b3e47136cfd7de383aae618076e51ec04ef0c6abb943dec2c2b827a7bba11f07d4a967114688f174187a9f0502eee8afc91780 SHA512 8918c554924886f21ecb394cd877cf69cd3f343fb3dfab829a9793fbf558b1e90a32249a2f76afa781fdbb09e4f498b12f146f6078cf4be9339c09897c3fee27 DIST thunderbird-bin_x86_64-157.0.tar.xz 86576560 BLAKE2B 57153a58eaf07593ecd309a72ba05f523d5408463ce56d3d968f6e4a034adedb3c9e425a510eb42b793b4ac2fb253267e13d0b509257011fa410e48183f07301 SHA512 23c3411d4ba404d884616014c1e1a22030928f3cf6922693fa8bbb86d2f8eec42c1f2f608e7b53a10e0f28f4309fb6f9f79ca376e4ae58805cd7a7f4f9b02b02 +DIST thunderbird-bin_x86_64-158.0.tar.xz 87784532 BLAKE2B 0d098e7d19f1846100fdfa32255017f9d422117f0417612950fae3a622b5920522543b8946a945209a35d51ad64ef25843b9d11a04adc7d5a0587feb212f583e SHA512 9712b1be3aa6a2a612e234611cc74b7234214e6785126cd1a0ee4a25f29005fd7626ccde5ebd9803bcfbe4aefb01db69f922ed171d950879e8c796e3c2a886ff diff --git a/mail-client/thunderbird-bin/thunderbird-bin-153.5.0.ebuild b/mail-client/thunderbird-bin/thunderbird-bin-153.5.0.ebuild new file mode 100644 index 000000000000..eff5e903d014 --- /dev/null +++ b/mail-client/thunderbird-bin/thunderbird-bin-153.5.0.ebuild @@ -0,0 +1,283 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MOZ_ESR=yes + +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" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit desktop optfeature pax-utils xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +SRC_URI="amd64? ( ${MOZ_SRC_BASE_URI}/linux-x86_64/en-US/${MOZ_P}.tar.xz -> ${PN}_x86_64-${PV}.tar.xz )" + +DESCRIPTION="Thunderbird Mail Client" +HOMEPAGE="https://www.thunderbird.net/" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +KEYWORDS="-* ~amd64" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="selinux wayland" + +RESTRICT="strip" + +BDEPEND="app-arch/unzip" +RDEPEND="${DEPEND} + || ( + media-libs/libpulse + media-sound/apulse + ) + >=app-accessibility/at-spi2-core-2.46.0:2 + >=dev-libs/glib-2.26:2 + media-libs/alsa-lib + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + sys-apps/dbus + virtual/freedesktop-icon-theme + >=x11-libs/cairo-1.10[X] + x11-libs/gdk-pixbuf:2 + >=x11-libs/gtk+-3.11:3[X,wayland?] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libxcb + >=x11-libs/pango-1.22.0 + selinux? ( sec-policy/selinux-thunderbird ) +" + +QA_PREBUILT="opt/${MOZ_PN}/*" + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES es-MX et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + mkdir "${S}" || die + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + MY_SRC_FILE=${_src_file} + fi + done +} + +src_install() { + # Set MOZILLA_FIVE_HOME + local MOZILLA_FIVE_HOME="/opt/${MOZ_PN}" + + dodir /opt + pushd "${ED}"/opt &>/dev/null || die + unpack "${MY_SRC_FILE}" + popd &>/dev/null || die + + pax-mark m \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN} \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN}-bin + + # Prevent auto-updater from popping up. + echo "This installation is managed by Gentoo's package manager." > "${ED}${MOZILLA_FIVE_HOME}"/is-packaged-app + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/defaults/pref" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs-r1.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${ED}/${MOZILLA_FIVE_HOME}/chrome/icons/default" + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^} (bin)" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + if [[ -n ${MOZ_ESR} ]] ; then + local wmclass="thunderbird-esr" + else + local wmclass="thunderbird" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + # Add apulse support through our wrapper shell launcher, patchelf-method broken since 119.0. + # See bgo#916230, bgo#941873 + local apulselib= + if has_version -r media-sound/apulse[-sdk] ; then + apulselib="${EPREFIX}/usr/$(get_libdir)/apulse" + ewarn "media-sound/apulse with -sdk use flag detected!" + ewarn "Thunderbird-bin will be installed with a wrapper, that attempts to load" + ewarn "apulse instead of pipewire/pulseadio. This may lead to sound issues." + ewarn "Please either enable sdk use flag for apulse, or remove apulse" + ewarn "completely and re-install thunderbird-bin to utilize pipewire/pulseaudio instead." + fi + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + -e "s:@CLASS@:${wmclass}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${EPREFIX}${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature_header "Optional programs for extra features:" + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "ffmpeg-based audio/video codec support, required for HTML5 video rendering" media-video/ffmpeg + optfeature "encrypted chat support" net-libs/libotr + optfeature "desktop notifications" x11-libs/libnotify +} diff --git a/mail-client/thunderbird-bin/thunderbird-bin-158.0.ebuild b/mail-client/thunderbird-bin/thunderbird-bin-158.0.ebuild new file mode 100644 index 000000000000..92f023dbd842 --- /dev/null +++ b/mail-client/thunderbird-bin/thunderbird-bin-158.0.ebuild @@ -0,0 +1,283 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit desktop optfeature pax-utils xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +SRC_URI="amd64? ( ${MOZ_SRC_BASE_URI}/linux-x86_64/en-US/${MOZ_P}.tar.xz -> ${PN}_x86_64-${PV}.tar.xz )" + +DESCRIPTION="Thunderbird Mail Client" +HOMEPAGE="https://www.thunderbird.net/" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +KEYWORDS="-* amd64" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="selinux wayland" + +RESTRICT="strip" + +BDEPEND="app-arch/unzip" +RDEPEND="${DEPEND} + || ( + media-libs/libpulse + media-sound/apulse + ) + >=app-accessibility/at-spi2-core-2.46.0:2 + >=dev-libs/glib-2.26:2 + media-libs/alsa-lib + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + sys-apps/dbus + virtual/freedesktop-icon-theme + >=x11-libs/cairo-1.10[X] + x11-libs/gdk-pixbuf:2 + >=x11-libs/gtk+-3.11:3[X,wayland?] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libxcb + >=x11-libs/pango-1.22.0 + selinux? ( sec-policy/selinux-thunderbird ) +" + +QA_PREBUILT="opt/${MOZ_PN}/*" + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES es-MX et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + mkdir "${S}" || die + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + MY_SRC_FILE=${_src_file} + fi + done +} + +src_install() { + # Set MOZILLA_FIVE_HOME + local MOZILLA_FIVE_HOME="/opt/${MOZ_PN}" + + dodir /opt + pushd "${ED}"/opt &>/dev/null || die + unpack "${MY_SRC_FILE}" + popd &>/dev/null || die + + pax-mark m \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN} \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN}-bin + + # Prevent auto-updater from popping up. + echo "This installation is managed by Gentoo's package manager." > "${ED}${MOZILLA_FIVE_HOME}"/is-packaged-app + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/defaults/pref" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs-r1.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${ED}/${MOZILLA_FIVE_HOME}/chrome/icons/default" + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^} (bin)" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + if [[ -n ${MOZ_ESR} ]] ; then + local wmclass="thunderbird-esr" + else + local wmclass="thunderbird" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + # Add apulse support through our wrapper shell launcher, patchelf-method broken since 119.0. + # See bgo#916230, bgo#941873 + local apulselib= + if has_version -r media-sound/apulse[-sdk] ; then + apulselib="${EPREFIX}/usr/$(get_libdir)/apulse" + ewarn "media-sound/apulse with -sdk use flag detected!" + ewarn "Thunderbird-bin will be installed with a wrapper, that attempts to load" + ewarn "apulse instead of pipewire/pulseadio. This may lead to sound issues." + ewarn "Please either enable sdk use flag for apulse, or remove apulse" + ewarn "completely and re-install thunderbird-bin to utilize pipewire/pulseaudio instead." + fi + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + -e "s:@CLASS@:${wmclass}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${EPREFIX}${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature_header "Optional programs for extra features:" + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "ffmpeg-based audio/video codec support, required for HTML5 video rendering" media-video/ffmpeg + optfeature "encrypted chat support" net-libs/libotr + optfeature "desktop notifications" x11-libs/libnotify +} diff --git a/mail-client/thunderbird-l10n/Manifest b/mail-client/thunderbird-l10n/Manifest index 64729eea291d..c59d3b030008 100644 --- a/mail-client/thunderbird-l10n/Manifest +++ b/mail-client/thunderbird-l10n/Manifest @@ -124,6 +124,69 @@ DIST thunderbird-153.4.0esr-uz.xpi 419572 BLAKE2B acd56f18a2142d9d8737f22532be76 DIST thunderbird-153.4.0esr-vi.xpi 541833 BLAKE2B bf19221f0452c1ace3232158a41c59405d550907e159f11302160b4d87fa59f0b5b32d3ef46df1ec40873bc45caca3fbede0550a232c41b355272fe4aa054c8a SHA512 a92fbacaf1a2f35fa12d2fe3efbe8f9e3c618acc909775fdeadf24cdb4872c8beabc47a460c0de0ae3f21df3b5e8d588e4a6ea8dd0a75b40f2969d9d7ca68a50 DIST thunderbird-153.4.0esr-zh-CN.xpi 526376 BLAKE2B d2f2e91c4caf2adf1bceabc562eacbd6dc29e6c7609f799fee4d2a6ba9cd253f06bb4d9a00d1e5dda54e99afeaec0d6a769b1d3921f1704152e4ba1b278975c8 SHA512 c73aa1d3b74f1f8ed3c12cb6e0f99165e7d56780147d1c088ff37d9c870b47ba33b44ca041928293f78f8f7d492cc46272386c5ec85afeb3650ec7c1ec67542e DIST thunderbird-153.4.0esr-zh-TW.xpi 530606 BLAKE2B 56f4aff2665e792c5f5c155ec6f1d758ebd1a3c110059a21cbbe3266e937804671d339bf5866544eef349b773fb09ac8f3d9b456346c719dbf67cdd833281f81 SHA512 b409399495ec681f0127e7063ff8e8715f35bfff912f9e3baa3b8f3b12911dcc5fcb65a208f6ad908b91a59f764c54c38ee628b2d4f075bff54859ecc8006f64 +DIST thunderbird-153.5.0esr-af.xpi 397512 BLAKE2B a95aa60d408d6f8b12c48052b84cc76c218a10d4373316775ea8698dc3ec1a1f116515965870d0621be09952eda4ec5c9de5ad033ec851ac74d5a2b88022854d SHA512 c541b6a24213ade9379ec5f0be9989edecd6cceb621fbdfc35d76d5cf7cc530fc69ef04c81d3777ac993cba469d0908c38e1e2fa0d8fb53e4f582b6d9b853b81 +DIST thunderbird-153.5.0esr-ar.xpi 489253 BLAKE2B 9a5d72ff0b14c1ba0e427fb9d6c0043915e532f2cdfbfeb35ff689ec1b49450d510267bc5218dd0c7a308a2cac69e5050379cc42b30403de5c5f6bcebc5055b7 SHA512 fb32d7e8385bd95eb5d4da56ff1c2ba37204e191108e2a5a8eb1742156c35f89514a990846cec17c28041bcd0147018b207fcce14266f0d950bff772b7982466 +DIST thunderbird-153.5.0esr-ast.xpi 414104 BLAKE2B 3beee67cf55f9ebe16711b0d5e784c25384dfb3d87ca720c32534ee907da691c90a3958777bd7834dadb7af00b9aad11b1f11a101e31ef86c2996a7fa7c0d986 SHA512 11239416faaab998070281931773387aa4aee9f2d3e77d8ae386bbb8b562debdbb77e02f247f3ab7845231e690e76294a038d5f4a26353a1ed3761fed50da4a6 +DIST thunderbird-153.5.0esr-be.xpi 556037 BLAKE2B 5833fe006fa4640b14b9425b4da6fd31be88660d2859e37ddca9c21a2bf1b73ef0e9c243e0bfb39bfc7fb4fac58ba0999327fd93fdfd1728409bd74e8e3bd960 SHA512 26feea90a7ad0901d87879430e16912f67e8debb7b648aecf7ac8352bb063b529628e3194fecfc5897591139d41f50dec83eaf1364d85422d7d60eac827a7eb0 +DIST thunderbird-153.5.0esr-bg.xpi 567693 BLAKE2B 7f11c4121de56b7a1410daff041bbdad0afc75d6ec94917cacaae5f7f88f32fcc0428a491475d653a59b60f64fcfdcf352289c6b39e254263ab2e802694efe82 SHA512 77b4b89206e917038a595e2c2223e10947c5ab21cb299a3b5a74485d0227210284a2b6c315c6c0ca777b1bf35e507cc98cfb0f6b1fb18099a1676aff1c6fb777 +DIST thunderbird-153.5.0esr-br.xpi 440405 BLAKE2B 24a06762d762b4a35f0d51a0fbb844396404d10d18bb7a32c3335cb250098dd53951c54a90855bb928323a05168f249a891003c860bfae1cde16b06c3dd68626 SHA512 9dca7573f5662175dc6113f459f538942a74000d4450233ce4017171b95872e61e223cc869d5f00371e369f09c00b062861c6cfe07afba2b7646b922e58a9190 +DIST thunderbird-153.5.0esr-ca.xpi 478535 BLAKE2B 24ac5140e9b1d697b4c2e1a5f9d02a80f4200c94730e3f53b588c48b31e51c6691e8c8edee17d90deb52bcb2822d483dba6a04e7f4cb805891db87b4e2851c3a SHA512 f5b511bbbc55d053b2eabc75618452029c514f9f388c77e833eff5a4ba59c913b2858710caead42a7085e236a4164c1bf5d3c4dc8c13f25ab05b9455ba83fbfe +DIST thunderbird-153.5.0esr-cak.xpi 457311 BLAKE2B 4fceb1e77999649dcf1748abf9ccbf641fc6a0cefca61ed5a9e894de45c4c7ea08281fd25216b0769531c663a5ba3a2dc75e9bdb87746cbe7674cedce8161886 SHA512 ae97d5e4be89748a7cc41c9c6cfa950ee528bb21be89ae77ab2536dae92d9c9f4f7018b9532ecd8cdfef8dbcce237d0dfb3203c2e413e5590ea255d8321ba39f +DIST thunderbird-153.5.0esr-cs.xpi 541340 BLAKE2B 0c96e4eb3fb8fe0e5545f6bd8ee607bdc0425b23b7fc71da3c0aac4da283eece7b1eb3d373faa4225c997dba27f72e9c6de1376019ac5cd0f254b3570a83a7b2 SHA512 3f27727a202268ca5c4a490bb8c78fcaaf47ed93ceac336b2f59b08f8c61229aeabb845a3f3f66d3792cd2c3ec8371292f0fac78efc8140206001bc5dc808410 +DIST thunderbird-153.5.0esr-cy.xpi 508881 BLAKE2B 6966e0e44a88ba6fe05e829e4cbd35c0092820c47c9e67b564ac1808d7ec83a6a764ad1272ebf81bedbe9b5cea653a4e21d64c9e7b9b3d2e8348be1fffd73e46 SHA512 df2648520c1251019b98cde4f8a1f0d7ebced35b72021ba57b4f16216155028c243c697fdceea24f1969e6ba1e5c828d8176533fb720f34327e7d76c13abbea0 +DIST thunderbird-153.5.0esr-da.xpi 494769 BLAKE2B e393d24959bbf6d7ced31389843025732a89dd5ed19062f0f89d458003a9cc634145ae91bd86c666775910cdfafe6c9e94a6d6b0391d6642e973e01e9ac4f774 SHA512 32f132af490a8433f8156d47b44541c86217c1181941b45e3a1a09a59f0a2345db31dc4d45aeb1768eca5b7e5a2c5a8dedcef5cf19eea197a82f1ef135bc2d6b +DIST thunderbird-153.5.0esr-de.xpi 524901 BLAKE2B 9782f8d4da08f32246e7f809bf4b895bab57dec339c424c2bfd59b0e58719417cc37a8828fbf348897f50f0b4d8df60da7ce20cc168f15bb4ef282b7ae683328 SHA512 9921ec55300de084203ea113031a13aa433a4997d30d54b9416f80dd43eccceee8887605a7917b0215092ed5ae5f4f5a61688eb5abefcf4a2963fa0a5752b4a3 +DIST thunderbird-153.5.0esr-dsb.xpi 538728 BLAKE2B b037bff31547e71d9581b1ad7d4b5c9386d121f57875564dec3bf7eb1ecc8a3e8c93cc50c509e78423161eadb4c811b9c9be1744ee3922270b2493bf0fabf565 SHA512 c535810399fa4ca2b193fbef4f59847c5d8131dbdb743e71418f48150687cdcf64df1e1725cbcc3da10d2b694680bd9b12a66c85c92f7997c8ae4c97f43ba809 +DIST thunderbird-153.5.0esr-el.xpi 631502 BLAKE2B d1d2fb627a214040ab56530fe1e17142e9f1c97390401364e280008065b3cd539b555ab9d7a2d0454fb18694f2c990aa811bdbc056303963cef94a255a7f305a SHA512 711b0391adb65a0366f781c41f954b28795de5fcbc8a7597caa8165ca8056c5843beb1edbd2d2c67cb179d5dd0e0bc0ff27364a993314d11e0337f05115681c8 +DIST thunderbird-153.5.0esr-en-CA.xpi 470431 BLAKE2B caf76de6d25f5f0311b5804c9afe99efd91a49bde5d422c5e36fad92b842f9900670f8d16d4c87587c89f83fa23cffbe92479618f142dd810640456057b32ffb SHA512 e6ae3f53be85622485d288c13a44c396ed5118d53060dc53df791976e32ffcaf560d859ca1a278a85c9f146ffb248a9472442e8c426e40be5d1c5a1172a6137b +DIST thunderbird-153.5.0esr-en-GB.xpi 470302 BLAKE2B ed5b651b504ccde0755b512854329610a8406c81fead5c8153000a3b5fb442a01e8185fc1a27f38129292622f7b0ceb6ee0bb6f0daad4977966e262acfd240c1 SHA512 f8685bc661bcb447536de28a2450892225a92715682a0e5f88610dd885124015c3a521fae979a5ada6d35f2afc213a521780b49bf60906c13b49c0d993f2674a +DIST thunderbird-153.5.0esr-es-AR.xpi 514512 BLAKE2B 2330d7b888555052255e213e909a8dd76bb6fabe6f0d8c330dff615dde302d337b63e7b65c326f8a57c9fabc3fe369975b02d4ebbfaee0f9876cbd2dac908fab SHA512 31e7b0b64ed83a0f2b63c29e3396c32054c3abd48f1e6cdea15988e9b5b45cdd909e51801042467fb24722a81bda36874f5d9b179f77ce1ff61ad1f09ffb71d5 +DIST thunderbird-153.5.0esr-es-ES.xpi 516847 BLAKE2B b55a3b78c82c8adbc04775890ffb37752cbd61bef1efddb0dfddb9f1b92bf69096de71ed9f5e527fcd4573310efc151b19454c9687084cb7ab01ba0c113bd7f7 SHA512 befec4b889fa8754b7ad3b3c0f1fc5e4b61799ce7b5da221d190aa46063b5c65f4b5e904fdda0ead71fd5ee76856cf4a6909b1ee833ef80f4a7f214a0b892e9b +DIST thunderbird-153.5.0esr-et.xpi 464347 BLAKE2B 32f4d74618932be624570ed3fa6146f0204c1e82cffb9e72ecf847ae637075fee87c7c314f77a8a0b7f74353f16f97bdc40da12ca38b51086d8f93510cde35ba SHA512 e34cbc343aad707f89b648de3bf7d4dbc4f066f8e7ef8fc250baabb13db43d25655cbf3be8c7bf61a60fb9c59b60231a2453d01cd27da97447fa46cefc059dad +DIST thunderbird-153.5.0esr-eu.xpi 497077 BLAKE2B 4e737e3d043ea3fb549068ba9d799c23a67b122119adb599124112d12cc8ee741991c7581cd2089c961e48cb4ed17f8ed7d738c02dbbf1d29f54b4e6815f04d2 SHA512 76221040886e5b777276c7d74c796c925143cd0b0ee2bcd775199b242a1604d91fd03e4275165da62155680cdc37a8717e0a8080e41d3ce0c870a736f21171d0 +DIST thunderbird-153.5.0esr-fi.xpi 498105 BLAKE2B 7ee881e536030b8d1d48e5f391b17e9e813a74852bdcdc90fc90040096bc5cdaa49bae718e301b1fdfa232dcc4790d821917fa445f91dac77e879cd7b13dd787 SHA512 0fc7869fc561af537cec36c7e218a6fdc9ea8b248d2c0b726e9f5de1b79a7992fed97d134b7b89e132a2c12b5fd68f815a4ed1a83dbcfef34d7bad4e93800655 +DIST thunderbird-153.5.0esr-fr.xpi 528628 BLAKE2B ef98435e6f7d9b63df9519222c0801fcc2fd54d201d0dd759d2a2acaf8b1dc590e75d427d3d85290229d58ca7f539e9db5849d3a03b0f2360616718f49e4674d SHA512 ff90a43dfbb4b16afc6e5d7038723222c414f51d1c824c74a180e5b7dbfbb9e35bd3920eda6acec71b1eb46a7c601cf8b7ca65738428a080a055a4e95f93bc44 +DIST thunderbird-153.5.0esr-fy-NL.xpi 510257 BLAKE2B c7f16080d4a153cad43802012a01eef7b7381c70c4516909f131de5b0748ff0a5e9b9b560116a57a1e3a5b6d538319945c9e37b8df526229fce78d08d2510f3a SHA512 291e4c5153d907b4447742e2deaabed4526269b2983f70503280f7fb8d923e827657a98b91996384801cd42fb88c46c116c436988c3b92447465eedf8e6c25b9 +DIST thunderbird-153.5.0esr-ga-IE.xpi 432780 BLAKE2B 68c6e29165225929507493df7ab88ad7debadf9fec43acbdc95b9ecdb8071fce6b044e6097f97bff166af69b3c59b70195f8536cb7c9b06f6da8ab6f1130417d SHA512 b49851cad70ae88d414ffae77e85bda095334331e0241e5ffb43f19ddb4fb600194b047940dc0c1b6208e20ed632e0611855340ef4a367c0b135c96584ac210d +DIST thunderbird-153.5.0esr-gd.xpi 486235 BLAKE2B 439e6424951e6525e44c60de796b8bedc803fd1cbc423885ff7e7f511c4cc52b65de4d648acec1286cb77e0332a0631aec172ca36be9627b4f7dcc4596c1a5e8 SHA512 bc969b1b9290f9201608bd8791a46e72ce56127388399c21dfdb777ba060b4d956de4b3d894f9ec630d50c9ccd3eec4fbbeaccfd84fe1a150825e21ba782a2dc +DIST thunderbird-153.5.0esr-gl.xpi 500119 BLAKE2B 62250a5d66d0fdbd49542df37da50d88adf6b95207ca76da411a6e77adb4417c831a865b0f573639416dcb6cdd5edf1eb4043ad4e30f8ebf27af636836ca6390 SHA512 b03ed2841306b0ab2c1ed4f350723f8f6cf70a3b36ac7fb5487b8b4aea814c6f8d5dbb6be88e29e585834a4788ce7607c6d684942afe0f046c0eb401f64ae9c4 +DIST thunderbird-153.5.0esr-he.xpi 484641 BLAKE2B 068d0843edbc8d9379c931343839db8e80ec7475938120c13fab5b8e11a60b2d183a685cb82209b111b613d6cc1632dab3ab018b8f522a9f360543b5ed86de74 SHA512 699f431719fdb7e02cb799f71cd990ac47469a264437786e4c2ec9a12591ad2a236d99c1dd4016d8b3c78e81fc5766da8ef07a58b2313e0156ef689afb144791 +DIST thunderbird-153.5.0esr-hr.xpi 498553 BLAKE2B 2a465d87b87ea807c002ae6a6d987eda73b209bc9743f072d402f3d666a4352afe4eb293b5e9e7d197d969a3a0082d5582fc8ea9e975dcb5ee451fe3478285ae SHA512 5c46cc0bfaca3d337bd691324e78761aa08c1d3350cc9490faa9ca2c27275ba0f115ae919673080aabc70f49d03724936036702d6a4aa8f3c9f37b6b09e5718f +DIST thunderbird-153.5.0esr-hsb.xpi 536054 BLAKE2B d7da323039a54a8c81f0a8bb5c41b1898f20a7f6a9508054c3096655e3c939c1acb456ad0a6fc6c74eae79d3d5fdb1e6094d95f48d80c79a17e9384141eadf7c SHA512 aa68b99403f367ce506c72508b9f6bda486cb28a98cba9f6e434e15f7eef5dbaccb0ccbff8d4f0de49b680313cc25edb519a986f7a58a1210d8d854384d2d12d +DIST thunderbird-153.5.0esr-hu.xpi 538223 BLAKE2B 274228ce1f6590fd1005ab296f40955e64fa0a21babd532746f458d1fa620c160c4e668599ce7dd090d15819cde57933ca75bc7a5f2cde3b9fca43b4a6306154 SHA512 a5fd1c1ad5daa39db147b451f4ee704d651768f9215d9fa6991fc9b907b116548887b5006e4feacdaf716d5b8a108efd3a6ac0cd9329f3dc078d996c62b8973b +DIST thunderbird-153.5.0esr-id.xpi 482849 BLAKE2B 8f11abbd0febf718842363b8cef567ce06c207d8c8ae917690afda65cd9e7c3d609148a246e69bc489e41d727ea9af382c3969796fb89351268adc7080b01b6a SHA512 502d0a280499c3596f05cacffa3d5292d7b953799e79f469c48af2526ffff9ec762bbfb0029fb9a8b2a31bc810ec2a78a37d322ee9ed1647b0bba905fdcb981c +DIST thunderbird-153.5.0esr-is.xpi 508452 BLAKE2B a143dfdb6e347c30d4bd20f33e4dfd299556d4dfd84cde10ab1fbe3d43570477bc2cd349cd0d1993b784d5709c50f5244eec33e1495fffa5064b46012575ee35 SHA512 d609d230d73e8d3c32aad8cca91b6303872ccda003bd3c7fcb107558493f25f5117034c79674b08f6f55c6dee34f7dd691ca185b6969bb2757e10c9dfe43a51b +DIST thunderbird-153.5.0esr-it.xpi 507902 BLAKE2B 913232f95fc8428ef39d4da62e15ba003a314207ac78bf07e4a730f4f1da241c855eae8631a123b48bcbe1ab610739d176d25eb0ee414a9c570a94970319f562 SHA512 7ce5f8ee12169eaa6cc39ee5305b44dd5ae1f2fcbd32a322fd110fae89cf639d990f7b1dfa8dfcef28d52e944eea7d358946e10a90438e44a74b3b9eda2bd85e +DIST thunderbird-153.5.0esr-ja.xpi 559669 BLAKE2B 90f7291b80661f7d325164acea75f624dfa67921eda4305b879c85bcaedf00efee42dd93c087b599d429b0cc4b0461125aa0ef1f9a156f62be1042330895187f SHA512 5a48c7eead7e0e6975284d8882e331993e1f6e592fa0fd9cd8cad2475e99c260864865efc4d9bd1934eae006ecd73e8aadde50c26e33cfd4bca75d4e071ff958 +DIST thunderbird-153.5.0esr-ka.xpi 577083 BLAKE2B 89f0ecdf07f9b77a592b454de0103712e2a8919c1960955439654500b219c6c0f4a40ee59a5c06cda13a750b88042ee2897e5f10d068eb55fb3a3d13e705c517 SHA512 931752ec758a33e4207001dd8f98923d22adee462ba78ad9663a329d91a8a38430f3626a8a34a1ff30e04f55c145481f808f81b42de2e25d9c0c2533c9997684 +DIST thunderbird-153.5.0esr-kab.xpi 488118 BLAKE2B e3e861c31d2cb07bc4266fb025cd0f92256c5b4028b18371c9a787e56efa08d97805711c4ee399147a8062771c1dca6b24b10fc2177e28175d84950f09cb866d SHA512 375620f6fa8f44311c9f9b811eb38d0ee9674d3eb5306a8879344d71d56a3072361d91ff9a696e6369c895a65c198d647e05607045d1b13d092b6ba4eeb99b44 +DIST thunderbird-153.5.0esr-kk.xpi 601234 BLAKE2B 7d288ed59fe997cdb622332f3395a7144c71a3c33b77980880c7348c5f551a18cf41362eea59b4c6eb3a60d3d052d721dbc4df9931386b2af8524cfeb80fea1f SHA512 f546b4531b254730cdec1e2afc2e81c665eb2abd13d41a8745dd402065742f678855c60b7cd536f8334d542ab2dbeecd67b6c226f1487bd8c4bd1d65f005d3bf +DIST thunderbird-153.5.0esr-ko.xpi 535407 BLAKE2B 190d63e2960ae1fa54112debd6418f11fe334aa225f4f3b2fdca69b4a3069dd87a3e9321c8a92890ea4eba4315d4558412efd7607be16b89002950eac8d1173b SHA512 970858400c2b23b2f107dd35c071373f1be7000a7bf172b5b7615f5d7908059b1a912008f69df53e979b926ccd8c51630a6eaed838d1d79c2efd357b05e52813 +DIST thunderbird-153.5.0esr-lt.xpi 481625 BLAKE2B f28762bfc06d5ca5cbfa9bff216455d5d945fad11e18ff93cb07e8d7da57992a3208b3383d4b49b1b962a9035647928df3b8c04027b2b389b0e7d986829ae063 SHA512 74285fcff2ce57ac756476622665462a0f6215365591cf7c910c06ed1640c109630c4b6c9351531ba5fc2bd1e78d14160214dbe2ce9dbe876f0f268dd11090f7 +DIST thunderbird-153.5.0esr-lv.xpi 457830 BLAKE2B 994cc9d01cb6f6c0cb9762cf7b6cd740cb3317220c69549284cc53e66c90ba1582b3675b7e2d0b708fdc17a5921c969565661ef4209c1c8266d063653ec6a9e0 SHA512 4a1a3456999cefa4eb57aba3a6fb28e3432b2dddd3103eca964dfe81eea74719bdf2d924565c43689dff69c60d38c778663facdcd25526670a5fdf49cdc537bd +DIST thunderbird-153.5.0esr-ms.xpi 403353 BLAKE2B c4008330ffacc632c955377d2ef551bc8a6f6ac0a8d68ecfa6d484cb78c312390231ed8035f1668b9e7f4dead7343da30858e3e72cba3d1b6af4235f805a1699 SHA512 c0b40cb5827e37f1ae3e58c2d725306ed4a9f4b73ff26c1845c9bb7aa6f3f81adca7df5ad7a71457d16cbe5210c42b22d15e7f83bcf37dc6534dbcf8782835b0 +DIST thunderbird-153.5.0esr-nb-NO.xpi 495086 BLAKE2B a489e7c948f57de79e00b94ea8b358a7341ecf9fef55c96327295ac791e8e372f7f7010cf162d45ea10d55972cc87a3f81f6379e669d6dec409333693ad62451 SHA512 4459adf4ae38e38c62ec545266c7f374392665d8421770462bd14815696d898ee36a798a94a6eb5fd3a57202957bf0ab97420f445c3e923d031099cd0e975094 +DIST thunderbird-153.5.0esr-nl.xpi 501744 BLAKE2B ba31f793896f14b2f24526cd5533cd03a4123306bf6dd39c22663e1d8ece999f149535f347c863b467a0cce26da676050d073ac40369fa182d4d6d777a4994c2 SHA512 05ac28eb7b81737664712a36e9de40140366c5df2bebccf8d9ac6213961a2dd3ff2cac446422ea4266e3263d9479d4c7a37159a08ee2e009e2bca73ee2d8f9cd +DIST thunderbird-153.5.0esr-nn-NO.xpi 499075 BLAKE2B 17049a4f94d981621814673d56656efba49b075f949c3f064db332568371ff0a2a8c7a911d6741e3976c42de9c6f58ce18092696ff981d16253e7d16881bc854 SHA512 1fd3695ecc48507e5b04720b2e49de0ab9b25845ed843a8618050712984f26c65dac29d9ac3c1411f4770a85177cfeee25ec185bb8f9b5f8c1dded70b28ec23f +DIST thunderbird-153.5.0esr-pa-IN.xpi 491270 BLAKE2B 33b16a4c3b6184e7a2e78e8c648206b28d8083f7260957443401d0727cb230a572e7d310e441a391ddf340e9d725b2066af6aaf7a6677e2e6fb343e8086b9728 SHA512 c5a459417f9f810b12ae916cab5d8560f484f81de3f1d622a43baa0348082376b52a417e3b340004ca965106d15106f159e720e772c921075d066f2c2ebc45f1 +DIST thunderbird-153.5.0esr-pl.xpi 536462 BLAKE2B 0f923c94cb81a04303be37902a36e45cd529f26439cea2cf8b36c0cbddbb42b3aa3663ea47f738b01bb0e5b5e7e2ff569a5b458051895e6efa9a659f4707f19f SHA512 a1618c5f018176e4e07e731d26322365215064e647f255b2bd54b693938652b0fede5da1f9769f4720d9766ff1434d1ca4224277474e9f2879e05cc6e2744551 +DIST thunderbird-153.5.0esr-pt-BR.xpi 508306 BLAKE2B 2399dbfab3410983c8265a554595e97922d08510ec4666de0599c7bdbe82decb604afc021d54e03b18c32515b612426fd924a1619834d4a74c9b64bce9e52156 SHA512 2f4e648c6c394379cd69b6fde87b24cbc2b24e8f4ffa87a514d4c3b6727b4b6d9408725a124284bddd8e76374ef08851522ae49d60ae454ceca04ea5a13f3a14 +DIST thunderbird-153.5.0esr-pt-PT.xpi 514326 BLAKE2B 431195eff13be3f771b79028f4af4f69f12c2a1de946e2735e66158ab28c915d91297d901b91264201fdcfbc76be867568069e7e1ffd89aa13942d0ed8097d55 SHA512 7e8d5c46f380185ab55846f9a5e5f6d52227c7c623ffc41e5c967ef623c29a850dae4d37ef92e630f5901580b2c6e5da03aef6827d4396859bf0fb4c4a45bb2a +DIST thunderbird-153.5.0esr-rm.xpi 498923 BLAKE2B 6afa25d37f4f89a113e24a660299bbe37ba6569cb59950ebfc48d1641734c02f68540375cf48c894a7d09cac7f9abb7a94571176c1737f6c82b1d53dfff8b83f SHA512 315eacf61496d5d7d503f2b5b0371d922699e60c9802e0d14c0118ef5e03370acf7be795face976b91a7449548b6e8c0b2f48de9f9c6bf2ee935cbd395be4866 +DIST thunderbird-153.5.0esr-ro.xpi 521166 BLAKE2B 380c49cd83bbc62d29c5d30ed96591a2a727c8fe8cbc69905ba3393a78050ec891b457d40ecad4701e0b361fb6bfdb179135c52014248bb93b2dd5e11d87ba01 SHA512 16e6c54d79e040931dfd548eb5f0d28d224e85d7221c00d593cb24bfa54d0110e37efc0663d99def16e7e62b4cb5413b0d4ddeffe1c53a0347c771db57aeba45 +DIST thunderbird-153.5.0esr-ru.xpi 616070 BLAKE2B 69dc95bb947219225961f8d2bc0e309058f8054e9c18990d3da10d47d5c3d801d2c3922d6730f7d3efaf9ed5af43e2e8a6a36807a82e223c59348ac869db1c4e SHA512 6515fd1ba46d3bf351ad5291631a0119eec782e0d2ba24f1121635fe9f35601ce7ed23c12ac29e3cf7072c3b0686416a8d14296ee2ba11edf212b222d5697f87 +DIST thunderbird-153.5.0esr-sk.xpi 541169 BLAKE2B fdf8f51f758a8d17ad02f28af9240783fb7b0187d9f82c91f29f6ce45ec3dff708253db9cc7ff564a68ddbc464f1760eebbef4c833d06ff76604aeb68c621045 SHA512 31e6c92e7ea1a96c180609dffa2f32167c2244e81515430e5e3c23416b9f2efa91441b088c57c661e5fec50a2ac0bcebeef5685507e5103f7394859a26429e32 +DIST thunderbird-153.5.0esr-sl.xpi 508949 BLAKE2B bebe326421e401807029d040c81502395b51396eb1140b92291ade7fad753c3dcba4f7b6ee5ad6c93ab42cc0ccee62cd1b2218c3a565bc04352de96ffa2d15f5 SHA512 85d07cc5f3f238e8bd4736db0cbdc99952562124cad28facc6a0f2f444a915fa64aa5819495c6fe3e20ae22b6eeaa0f1ffe19b95535a8f9730c1b7ea2be4540f +DIST thunderbird-153.5.0esr-sq.xpi 525006 BLAKE2B af8d8507ea289202b6c5205a19d6ba4a08859b07d481c8d63fad390b517df44649c106fa7459d43b1022b19243acae85f4cd92087426a5fa2cc32af3bd7c983d SHA512 61cb6e3f0d241ed8439a8f1fcedec56db8f6dc1d337b165b7e79dbecc0a15fd55179c398cdb6753e3b328f76fa586656d325c6d6c9789435e178a470be11617d +DIST thunderbird-153.5.0esr-sr.xpi 581229 BLAKE2B bb9976ce15e00f3fa7ad624bd6217170413382cbf1a3ca274d601b910efcb4583cdac1cf2f9feebe3d9772404851871711a0100edf59c5c3f32d630b12cec635 SHA512 32ced36081d37512938e7413c04cd382460629b826e00db093952aeacf48a1b2f81b9f36415687dad9f0002ab86cca0f6a88e8979639649edf568672b2d3d97d +DIST thunderbird-153.5.0esr-sv-SE.xpi 503765 BLAKE2B 4fe609c7dbe42b7d9fc7cdb60612a028cb468a3d41e3aa8ef7a2ccde2e6da472ae10905c469ddee7ef0502f238b0c8077776078d7bee6b8aed4e359f49f1796d SHA512 b87c6d1d42b88d3ba4cc7d63973210be5fc941bb80ca127564af3790f44056931f70b82de28024206310e08aabf72fdd340e7694590407f0de84ef1d0f1fd3dd +DIST thunderbird-153.5.0esr-th.xpi 585142 BLAKE2B c8277ac771d0e5fec14fc73c99962c09f52ab0d35d85cff61fabb78d3f522358d0738c9d65f1b1636c6d1b64fb4b49c4cc433166963be390d1887b23dd068791 SHA512 5e8761b680ee0aa2b5df2b4a40b13384611ec6793d198a4dc89d5d0a1685bd6ccba6ce3dda27ceff6501cd5d0b7493842ec0fd0155f965c1baf94e4f1ca01515 +DIST thunderbird-153.5.0esr-tr.xpi 515623 BLAKE2B 23a02d82fabdb2e4e7039cf5c77f56aa8a948f9e650d4224724a8a140ab0f04fae82c137ee9e07ae5c299f56ff4e4304796ec6cb831f6e154390d263795a47c2 SHA512 c1885d02d928dc62a31a06dd4fca6d1c5d79fba3c1bcdfa558434e557905ca6ea0ad573b0a92206503ceee07a5b440b40bda797f8c2b27951a37b13b03ef5fde +DIST thunderbird-153.5.0esr-uk.xpi 596158 BLAKE2B 0be376810514a664dc70183a57d5c1d06dde2ebb3c39e6bfdb4df3f79bbecacf511a74b63abd8f66c7da86232146b348437eea7a7272f03df875c1174230cec0 SHA512 1ef816ca09a7dee947ea2e37b93fd06dd1b5c8d66e0282a9e18e102ed0a9793b0ed60a6dcbb5dcc08258a411821ddbc049c2afdfedd7d3dfa2e811713c74270d +DIST thunderbird-153.5.0esr-uz.xpi 419569 BLAKE2B 4869b5b90164a9ceae381bbe58ef39b9acbae77be59fd3c656cc8bd577e1934d8ebb27b57dc8b6c31bb573f805f1c320f19e6eaab612a7ef8757f5f7bd95b5bd SHA512 a32f133a6c8219d5d06395fd1c6c2f00cc2a4717281fd6a6825898a8df8a2efe39195cfd5e2ea9994cd5bb0c81f6fa2ae18b8dccc09c0d4a19c5b51e5d121901 +DIST thunderbird-153.5.0esr-vi.xpi 541879 BLAKE2B f8ce4f8d04c617ff5bb3cbb486cca45189bf58e64f5498c5f191e32535cf0bf02595c90534d7b5169e1341140858b11c9e37ebf391291a057638671505c3773c SHA512 25f1fceca56c81824a50649da4a8961a63b449682ed1f293807bc36e16535f09d489cc24bbeb3570fec950add6f898834e768e01c7166676901c6d0733c32446 +DIST thunderbird-153.5.0esr-zh-CN.xpi 526373 BLAKE2B fc8bb74ea9e442b00954a487d1c0f9744fde6d2499755f1788ef387c203e4595784bd03c09e58d474b7c78504d44344ed74b79a9ba64e38511189a74d21ebaf0 SHA512 a0de4338cc1664db3103126e5e5f7ba2cb2948d62a8ae419dcb07ce46ecf198070e3e1f45c935a2478e6c152023e7ee114373e7f79383f11029a806188000395 +DIST thunderbird-153.5.0esr-zh-TW.xpi 530602 BLAKE2B 085f0a995d318dd8baaba82d4e6f76df703151faf41ef550ec099daaeb5558b44f7bc534d14592a6729e4402c8e6067dc3755aa5fd9b6cf4b267bee2f34be2ac SHA512 8d60edf3e8c8a316ba078648ba4266ece1f6f28063a3d9f947fc8016217a5073ed65501907c027ebc25d2e055b412683d7ceb2bf4a864d2149699897e7889c48 DIST thunderbird-156.0-af.xpi 395008 BLAKE2B a840d16a01b572da3542032aec160184478209b873138deca4849890bb5b9c78dc767fd7fe0bc36f9aaee3c246e49321ccf1a13dece61ac8c5da86c7774e3443 SHA512 418d4e70b7e2eff9d0de78603300d73836dc9e0fb9a4f594c352cdf1250a30049135f3415c909f833a963d34c1502e497039c2d29979ef38b0182bd201504bb0 DIST thunderbird-156.0-ar.xpi 492142 BLAKE2B 50e8fe48920482ada5a67e0f0749fb4db40b7946ba96af9f1de96b811f80d95f53f44dbd2f689dbfbb07fd89b1751a895808feeb459898c31b009b9c8fcc0179 SHA512 667b48b88e18507ba31939b027d97b0a6ffa0803ab22ec13e919b070bf1d934542a6dc0d516c41fdd4792d7bfe95f972db25e02661b8a2886b07a9c9845be9db DIST thunderbird-156.0-ast.xpi 412398 BLAKE2B fc6794c4ff773246bd170773a9b383dbee617103fb9ea386e23e7bae0f2285696c786e83909a77a973a4d7713f9aa4759b0c36fcbd788c66e420c9abbd0d6c77 SHA512 8ac394ca5688a5776f95f78418d3fca54d13f475a37e7a3b85f62fcd6ff5ba2da0dd637d3ea4ef98916557e2381746f21722256d0877ccd10ffc2768f5e4be0e @@ -376,3 +439,66 @@ DIST thunderbird-157.0.1-uz.xpi 419455 BLAKE2B f3434464fac95b7ec09fde337b8e53ab8 DIST thunderbird-157.0.1-vi.xpi 549592 BLAKE2B 85df563a450569513458ea2a808ca80feaa0d9b9019cb1ec15f1c2a9efc41495e2731d296038a3a6f78df8f501b15028f33540372b7efa876fd9c55d01a01c94 SHA512 73e9bd9c57599ab303dec04e298f52a204bb1c20ea1db0b9fbd5026b813695f12bb95022b0ed0dbecd988d98cd1520b4bb46610ce67f3a72e7d15d544e542f76 DIST thunderbird-157.0.1-zh-CN.xpi 531203 BLAKE2B df649f22aa9c72efa0ad0b7452b8f5a3c9e9c491cfdae2259cd0af1272fbcb0629b65b0f3d66f2009949e49ef344e01f79e9ea487c3c001f1443c120c3dd44a0 SHA512 8e278fbaba2a9894463be774d43bedd8f21559454853c80f1c91c508842ee4d9c71401f4a6a4ff55e7c3b687327a42cabd5d80036016259fe2e71d34e4ce836b DIST thunderbird-157.0.1-zh-TW.xpi 538091 BLAKE2B 52afe0d78c618359f7681a60eef42f9d4318d56d058a7d5a02bb2238cb6ae4ba57fd4e2c9954d236f6f30b794a3a6eb92aa7ab644f5e0fecc02a11b74087df19 SHA512 97bd748cb2b1a3fa59bde1b2028e438db534096a52e3bdc7919c844f82207cd04a36d0c1fa4a31f4de4005e501596a16c4e661c6cbf0830bfd9f912588500b02 +DIST thunderbird-158.0-af.xpi 390744 BLAKE2B b6027d011454c2d403694cb45751ddf37e9f10d65b877dffb66ea2c80a5c41ed8c318674b794e9f69870c93bc5b7eb05c1a0d249a71099ab9d227f190b60fb2d SHA512 26ac94e6efd2110c544449af9e7189e231f7d32f523d6a9327bd1e72bf9b8d6d631b6678551a975321284750e64c4c674a6fe4d325fc0d3c63645b26c476b0da +DIST thunderbird-158.0-ar.xpi 489314 BLAKE2B 769527a286a9c3e2ecd6e3ea56adcd24757effd642e89d5f5d0ddb42a52f938889ac7dd5929b479a06bdadc0db6aae7ac7f373d25a9deab9aba6c295d96c2943 SHA512 0965bfa46dc3a931ba15619a81cecffbba9cba88fbda418c23b92b3aae1d4dc607895db668c912c05e81bbb282710da1b0fa86d1b4c7f8cd9da674224bbee507 +DIST thunderbird-158.0-ast.xpi 408421 BLAKE2B 3a09e8dbfb56cecde5adfb370e35c9ab16de202188fe72236995de7d2fcb896715911647076070750698003074880aa14b96af1b7bc8685d28307e9793c732d3 SHA512 a4b64eee5e50a31e2ece7f62d5c66379c6dfb6c93c6a9744e1cd0d02a8d04d9122c4151b2223f64e40c5ebbafa1b24abc1e5ba527a8b338633054867cf787916 +DIST thunderbird-158.0-be.xpi 555913 BLAKE2B 056eb770fcb52b72021ab2fdb8ffd9e06b0ab5eebf84762aaecfef82ac162c3ecdbfa1980e4f8a6c439b05cc31be354e54bd5d418d27619279323fd4d8ab771f SHA512 4eb49daf195cefb41306620a912baaa02c9b1ff2adc37323a4e05e85d9ed71b3aca5736cb9a6087db4f7fa8c750a9fae72e229f2907f5abe54ca6b39232b010e +DIST thunderbird-158.0-bg.xpi 563794 BLAKE2B a2742b51d927c7e952504e1696a0c3af96dd9bcc8b5e9015d5e97507c52578b8b840f737d348a4befc9fcb1d894ae2a28fc114d6ede9bafacc954d2838ec4ee1 SHA512 269d4a690c37b63f024d34cc42c7ecf7ec9bde503d255afc8252635280e2ad58a4407f51f65a697386495b813caf6c04599068999ea1cde6bfe47551cc770ef5 +DIST thunderbird-158.0-br.xpi 438727 BLAKE2B a41bc43ee257da9a615478890c916b6ca156f262f734ef4a18882efa24d904a22b4da3782c81e0a4b560ac27d086a82380ab9f8da6f0126c5bd12b89309907e6 SHA512 549af183bb6817596dd95f3499fa1f0651412df8ad2346210bc2809818eae8c7872c0b606f29e3a8583c5a057faa8ceef97955de281a91bfe1a3aa7347802d9c +DIST thunderbird-158.0-ca.xpi 477651 BLAKE2B 55efb70dc7c94821e23b2675e2a2d7494dbba89c819529c4f5c0f47390b81bc84c1f3df59d20a1d19ef7b4fbd905b33eebf86931483dc748e15077a2a0f7ba65 SHA512 195cd3b9fb4f4845c2df4101e02c5adb1831305695492e7d78c8d6b4e141af7d3071cf565ff4892a3e7bed765fb5ece171201983aac1a28cd52a7281fbc1b056 +DIST thunderbird-158.0-cak.xpi 455075 BLAKE2B a59ccc616d0e2e030cd4d7bf165ee7e39df430a0285652b1783f2b7a14fe0eab06adf13c14a8ab722f0163babcd8128662cfb6fbf1d09e908cf0c2cb301397c0 SHA512 2f9a91b0e90cb1bf07acdfdc95a968334933c5f1f062630a31174ebbb94c8f8885ce3026fbc84898c7010abb4876732a5093aea539aa140d91512c95dc29fd50 +DIST thunderbird-158.0-cs.xpi 549494 BLAKE2B 649f3b8aff58da10e419da6d661292ca1e23e53d3236a50614065198d816c50914d1f112681ee7bf2a391e1eefe7772ba9238e953c9c4b46dfab08c6ca516318 SHA512 c7665f951089911ca803abaee295b8908d36e392cad8c5e2cb8aacc7531d75440c4508b63422438f10763f59eec3c26aa4e3293e39b841eab06e7cc7ce6736fa +DIST thunderbird-158.0-cy.xpi 516804 BLAKE2B ebd8f2fb40c73c46965273a1eb4918117da014f1a9f58f1608673ddb38945790a2a71b36eef9131deed9ef461a80cebf8df7d517dc231d1af6667c40bf4fb1be SHA512 74630a68fd5ed0a74c21ecbe27aefefd890bc449efc6d63490df71615c98086a9992f270938330827e0a8168033aac906bc6328c09e52ff87e93ce8bde717eba +DIST thunderbird-158.0-da.xpi 495119 BLAKE2B 93d4fcf5aa1ff45ab90016e3042dd0d22e1e3e4fbddeac17f418c967ae4ae50cc6f1eb72edcd6d16c481200eb531283ca2fbaffe4ae0b8905265314706d9a800 SHA512 f8e6495ae2b4645f9f38946ecb16b9e8c0e062a97fec7834c1c579ca3350390361fdd7742f4e5d9e82841dfc817f18c9c737ef495c9ebe89787a229de083cf3d +DIST thunderbird-158.0-de.xpi 532509 BLAKE2B 30df51655f8605a15c32cf38ad19e36be154952f8b1a2747f44f627dce7008694a502cc58dddce443c544f32b3654d3a2b023c58412387185652b3d7788b9a51 SHA512 cab7320d1c5e45fdb2f09efce0239946a0ed1d3b996bf2b4c9508b945069a739ccb3c3e25dbf19035e3357f3267c86bbca1a5945632ba9e3974ae25423f54e62 +DIST thunderbird-158.0-dsb.xpi 544672 BLAKE2B 4ade719c44d68b426519e5e6089f69c5f50a3a212181a0cb6349fbdb8361a0d29c536cf5748dcd77275c21282c89aeea94a54bec9ab8ba6433fae5ec9fe6bdd9 SHA512 0791564cb73b7e390aebd888ac995a10edfbd66a958a67dab135f71526c3b104dae6c58c8721f3b8947beaef5b201c1c09804eac8278266821aa98da1de91351 +DIST thunderbird-158.0-el.xpi 639329 BLAKE2B 86c6da3a42f194fdad2cabc298d8f2b677c8765948be225af0f1e27e44ebb2f9836eb110e3ae671533def1247df26a1533181b9fbfc75a20ef638857582253f3 SHA512 b6b652a532a4e66b3ac636d2a45fff507d7a3fa9b30d10069f23f757dc4061aa4efed78511f8adaa82c1ad3ce8debdb4253c70d73700a7fdfb61e43249bb8b72 +DIST thunderbird-158.0-en-CA.xpi 471980 BLAKE2B 69832a3a4e4c53c821d8e5a118435f075528c451b9f82324ce0b3187b530a14e3d342fb655dc5c7b59ec5ccc48cdb50bdb43462e5ae83fd7da1756c68ae4cb08 SHA512 25502debd0e253a24339b572ec734ae55a32ff657b59386439cd26d7940e431217873bdd56076dd7694f1b322de5efacb6615186f0cb7a97c73bd02440cb582b +DIST thunderbird-158.0-en-GB.xpi 476497 BLAKE2B 0ea0a16b6dc0daae01ab468cea37c5e020bd11c6cd51f3fe75da82596a275084e36814725b5b17660d55c9c4dc4e37556098dfc5acd27575103ee5d22077a452 SHA512 251dbf513d7d8ec29e364d2df8573f2be4fd6205b961172165a485b17011f6471bcde61492b29fc6f2c96d5e51d96c7e7570e0de1a6bfc13563206f50c6157f4 +DIST thunderbird-158.0-es-AR.xpi 521678 BLAKE2B 8b7bcd89bf2dca17bdde09bcdec860e5e11e5514df7ab56b929c1bb2bec0070ed49ae2310828de27d7bb325ed85600eec40a0935e6a6344d0387f65bdacb6952 SHA512 ff8c6941a16347823eee5386d055e020df603b493a31ea7d5b6e84d4db41db4e98c359a4d753d3e797d64ef5e431029c842ef1350fc9958db21739c50ee02083 +DIST thunderbird-158.0-es-ES.xpi 515524 BLAKE2B 06dc8bf0692085b28521bec68f43f1655b419a5f97113fad012482663b3589befcec65c30ce915f6d63f11eb155dc23fd53db01e1a19e0782979dfbb87ff3582 SHA512 8d2ac836f8254c0761eaf805e366d9d10c669beb764f059ba390488ec04fb79206a4c8ff758264cfccbc421038402fd35e0efb71651aa09811d2974dd4eefed2 +DIST thunderbird-158.0-et.xpi 463018 BLAKE2B 270bc4193dc092f051197751b1b352d019bd3dcee4f38dba27f1a1e755489385fe2a285ae4893ef5a89bf9baab29acef467769525331340e9c8036e2131380c0 SHA512 df167bc5601b552b12d88dc72ef365b13e7387cdde2d6727fcb16bdf16f311d5f784165dbd09f0f582035dd779e7f69285a8449e0283c103c17aceb28cffb98b +DIST thunderbird-158.0-eu.xpi 499714 BLAKE2B 86af387e381cd52f5e537083f09f705a94145bedc1aa103a245932ecf4972147f6fc84bc45fc743bf8bcb2ba607cee68ed0b3ca9eeb475b7effd5a8ca31e4a9b SHA512 1afdb8e66355ee113aa31986d539610e7e487cc84519cb50c5eb7faeefac329e5080020aebf0baea9d0982e45f1c0c8202f54bf4160608cc5f23ef94dbb1b60b +DIST thunderbird-158.0-fi.xpi 497694 BLAKE2B ee816236ec9deeec249bcda836388469e295a992360d42db938ea50df922e4f269a03ddda7361a82d897998ca1f5bbed7782b346df5102a660286f7fc71617d6 SHA512 1b14e0fcc30ebc982f1ed28fd1d5b3678b4614c1d466b0f639fe0ddf89191eed10231658b5de7daf03dd1bc4985d97418bb3df104d3587ffdf7df90730e2fb51 +DIST thunderbird-158.0-fr.xpi 536183 BLAKE2B 83f63334f96ef6c415813ce93f2ba99299e3a1fcb0759d33da7dec75a2301bbf5a50a0f38e48643029cf708f2bef85a9e953197506e2cf72c953e6aca5fc6e22 SHA512 537620a14c24ffdbd202d4181bde978dc19d72d1f87bbd5648bcb0e5705af6ab6309a6de576c750823cfd90267d8a93963ba44f6ac7de11db50e03dff5754f33 +DIST thunderbird-158.0-fy-NL.xpi 515823 BLAKE2B 1c4005cd9b56971d7822458368854e0780540f24ac307730a46c737ec9796a1ae52b4c97479e17244a7523733315afae3c08df7718e746e410f6bf8046bcbe5e SHA512 2ae1fcbc28bc9cd80e3855ea4bd25ed35ae27cc06464fa62156d1e006b20d802d48dc9af7d02039de92fdcce5867f78897c135b78bc775ba413ac5fd084c84c7 +DIST thunderbird-158.0-ga-IE.xpi 430592 BLAKE2B eeff5b440eab59625c4db20bae3340fb5f65181d5f1780dba1df743f429d420d7c16592a2d31376ce55c85da78d3df7e590b76b4e78e85cede449e34cc87672e SHA512 3619fe628e67ebe4a9c549e76cbf064b683b1f05d4bd3ece491e59e6c3a7309fd9c712312a8d49a89942cced8e9ee5d511d88c8a565e103c1e8ac8804c9ef331 +DIST thunderbird-158.0-gd.xpi 484685 BLAKE2B a429143e100bb4316bd35a32027005500c1c1552a455fb395bc97ebd0cb030d9e88764b04f7b56c936eaebecddd869872eb48639ec4fa295c856b97293293511 SHA512 898375879545537e74df126c0e91718f7ac3664da4adafa8ba32445bacb61c275738da7aa5608f99611879a129354b467348491acbed5c9047a6cc1179c12aa8 +DIST thunderbird-158.0-gl.xpi 497646 BLAKE2B d2ed4a1fcaed56af4d85b67b5c5d8b2c3fd9d7d3bde9a4a11f7fd3d8670083d33b0a4586dc967045b693280cfcfe23dea128a589254456f985018dcf66947dee SHA512 95d6fd6694e61a26fd2a71014570c03ed40ec21308e7dff29aa29bcd18f50849efbfa380a6c9502a89ad21458b755d54e29fdaa576ea66161e85993fb0d546c1 +DIST thunderbird-158.0-he.xpi 486610 BLAKE2B 40af7bd38dcce35286637e85859d0feae729ca235caf7d4d0452b538c588091f3a42bfb582fe075a525941df2ef9c684682ce2aa4f9580ed856369728189c36e SHA512 5a604bbae8a83e1593cca6570747125210429ed9c2ee6b580f598f1a6e57e64abef197c47b12d7ba808e3c38ab4be58476848f1684b2ce61336d5f6614ee5eb3 +DIST thunderbird-158.0-hr.xpi 496459 BLAKE2B cac5995d1d0f1d476b3a496d8239577fe46b830fe5d01b0932eea789da0df7254b7567fcb39b511c94fa6690ac1c37853e8441308ecd9d67d5491061810b7e8a SHA512 a8b851b57f3bf65dfbd5b23415e2d2143235b0a6f39d7bc4a4a5f9d61fc479d7122d4965dcc1c9ae4512b862385cfd7a78e38f307208adba7febc6871791433e +DIST thunderbird-158.0-hsb.xpi 542642 BLAKE2B 1081140ffbfaae6b3ef25d7888600f85f7214bbf8dfcd8cab63e40866e1a06ab250007af7b919d7447849aac92a5ec01ac454ddb7cc1a7461168b0f1950eb056 SHA512 85091049e1a84f378926580a7358aafddce54adb6fa46254947629343283f89510e9db68be46ceafd2ce982fe0b61b046d90a728eab44cd64a594bdf12c796e8 +DIST thunderbird-158.0-hu.xpi 545417 BLAKE2B bba455f019e6fadf68d7dbe04fbd3cb3cb139ea256ec970ac98f508dd5187fe349b6d7d7ef9ec279d87207d4c590d59e6793a4d0b74f272ef342da697fc5e124 SHA512 c05d403396da64ca1f51bddc9410970da99643bef74bd996d485c1b28918a2e64551c5a1cf8225cb0bd42e97942181609ff1135045c4655c39ce514f01848497 +DIST thunderbird-158.0-id.xpi 482956 BLAKE2B 9f0bc82e316f45338b5f345387fa385e113c36aeb5144aaf9db4722334dc478fbe95895377b151645bc397ad5952fc281c69af54136cdd127952af1a91b1081d SHA512 548b15e6481e69c7ff2a39912a464830446bd903bbe8b17626f82f5d6404b6d440dc4914602aeb3963e57b95c40b379e1de4dd3f9cf350c1c14f0b538d2589b7 +DIST thunderbird-158.0-is.xpi 510430 BLAKE2B 0ed96410d7debc8ce598fca385eb794947b13ec108106feff4d3cd17a19301dc89d50f16e8ce8187fff44fefb9c21afc634c4a430842d94090bef0eef55fa09c SHA512 8e3f88a11c08a20c91b35081877e7cd6c8853809a346ac0ff9b38cb31f2598a842019359f1d60b213015f716921e50799d56d1835464c5a57348cf83a6f01a3c +DIST thunderbird-158.0-it.xpi 515224 BLAKE2B 507072228ed542b6a4f714a446ceef5db6e55ce2af67a577f4e4f3b44b1783648d9eb86e75dea599b37a1294c92541ad16b649aa50b39a7019d015b1b1fc1bd3 SHA512 1558537712eb6d005a4a0e167fbc19bc093196ce25c82006f2ce167a30aae8d2b15b0617d7b84f5b992fbaed6276ae7b992070743cf60dbdd44e52b6abd95df5 +DIST thunderbird-158.0-ja.xpi 567776 BLAKE2B ea8aa217f20d71b271c3a3feaed608a9589a201e6a7ba18a341bb2102a7cf38e47a0cd6939652ca1af63a1179393b828a2705f9480c5b82ab66c8351602ef581 SHA512 ea3a23834a082f2ddc4c98c87985b25541213a82e4d5ef1cd9a76786cc38bab7e0cf1ec5e609b41edc02a71d548e3084dd167573de288d696d05ff49dd00e133 +DIST thunderbird-158.0-ka.xpi 584471 BLAKE2B d9f769c68ba018fd72d7d1a85d6748a57ac0205ca6d2349eaf904ff23b9210c36deeb143cc4a7ee5510a716005549bf2b635b0f8ecd6dd07f087ff8fe9bee195 SHA512 b08fb96c26bbc8925824e50468bd8c8dc77284af4e3c26f98e6d3d791386f710c2d1b7e99f7afd5b4d3058a9ab21b656ea84d9d21728f0332cb9adc7d62e3804 +DIST thunderbird-158.0-kab.xpi 486969 BLAKE2B 97d0bfb7ebfed2ca810257f377acab26a8f241beb33404fd4c155a23c59e8e9fd7bc0a8fa13c8d009946fb2e00d1e4cf38d41da656587ec355ee906c284aac97 SHA512 f14995a609a6b0a7b498c90c3319ec25c305b5813c75010fb426acfb2779e849356f2627374510e880847340cf783a1043b8a142f6169d28103ee0a81098610b +DIST thunderbird-158.0-kk.xpi 610744 BLAKE2B a15a7c4056a21ec6d356fa778e404031b86142c8d70c9bdd8390b189b5161bf614bc819c26a90e7ce4fbb59a32a13112ccd8ede0d1f9bd62bc8d97c4e7abfde9 SHA512 8f14172a8bc7b0b45d5baa9f33724f8c6f942a0f870b8e832661caf62eea8ee4481b095364a3607d3dedc5fe757638c054bd5ae0a289f6c2fff0e74fdff33387 +DIST thunderbird-158.0-ko.xpi 540985 BLAKE2B 52790cd0da8b4903692615fc38c2376f403c84aecb74c1e4bd4a10c81a771f7daa722462734d1088d4b949281c549d000d825b8f0a303cf5bc9a75ad40a0af7c SHA512 69929179e5e6df276962dd208f263ae17d1c57b7101908e25c544177e2487b490eb921d567ae6a64df96e81e4de3e4709ff17a30289c036d0bc5616ea00ec42b +DIST thunderbird-158.0-lt.xpi 480522 BLAKE2B 4a34e76833f96624e649e596bada57e29422120e7a81fe7a532ab80b48e1907fc8775f68d6ba0ade7c75b4fe40e55c8321d3fa7b2fa7f46c0eec1382f35b8122 SHA512 b0fadae5ce0624784252f8ed8ae2fee1c062738da80db69c5952f3345c3c0e5b63f369e62337733ef6c154b24c9c6329175a41da21291a5f3f924f8b331f0c53 +DIST thunderbird-158.0-lv.xpi 461100 BLAKE2B 2d4847e42a728b2b5711b9aef17ad172255c8d441648e968a50ea42fa1b309855f2af454fd13669d8a5c39b16bd3a6c4e6bfb1da52348bb5df14cd5376378dca SHA512 74783a77012824686ccfff53d963c9469d71f370b1d1c8eb0c872d8b89a37d7a43c3e491a95797a9c379fa934449c8fc5513384f43a62823f1571d93d1f4a8cb +DIST thunderbird-158.0-ms.xpi 402933 BLAKE2B 4d37ffee33886b96eda3c2e40ddfaac6468069f4175dbe7d3bc604a55b611d5da53ad491e3540ae4c34e35d4d1d08a9c1e4c558663847828c783cf935a8b4b9a SHA512 db3c422b5e5f0be03c67b9653bfaf608a0db80495df71c1996f015e6f08efc6153fb133a51dfac611161f383f6f37f44e0ca5316cc58d40c1759fb99ed61bbd3 +DIST thunderbird-158.0-nb-NO.xpi 499125 BLAKE2B a3748879fad03437838abc4d90c6b45f6f86d00ec84e977ead81788522e5dff747351e4619e5660895e80d13093c73cd6c2c496221601f0125b3b27561d7a293 SHA512 76644d3f6ea22da7eaadc3de42f6b8a5988865c6b4d60828e3fe9cb666632e3315620c7685f8d1d59087c3d42b8464c3e1b198d459482ff0a48a67a47964fa96 +DIST thunderbird-158.0-nl.xpi 508857 BLAKE2B ca4be9a0111ffe334bed5f51934c973c5c0cb4f4042e05e4c34c0d679fea9d16d39644b2999913d77c4dc519d7fbaec9967945263d6fe6089fa22e5abe9c28c1 SHA512 1745dbdcbb02eeadd797dfc148ecf175222aaa29277cd7cc8c9d57a3b378c72dfc8966e53ab1ed65f69412425974a8b360ff4a252991541723a4f0dcc67beb7d +DIST thunderbird-158.0-nn-NO.xpi 502049 BLAKE2B f4965c4e5dd58f7e424a815a8436f7eb21a46a270ac9d37b7a9c6958205f24726ebea3795da033ff337e89d59535db4c028faaedc75dd0398948d38544f93fc7 SHA512 3bded4946c8ae756fd3d5b0a3d977f682deec764179225575e97852b13a4189cc4ebbb1a7ed66a65327ae5b87f7d1a1877de257aa5ec869de5b350fa017f6d7f +DIST thunderbird-158.0-pa-IN.xpi 490976 BLAKE2B 3b476d6732e89737438d91ccb9f497a6c03ae4cf2f23c6846af44217677ecb07172a708f2d10c7d46ecd34fade493a9b99005dd2c4d79bc70282093848a8ebbe SHA512 ad0a820ad73507378017fe7aa44276a488c9f763876b8505c31b8730eb2cb4e3f9c5e298c660f409a3a9539522196d76fd9a7b9ca9777c4f233f431cbcdce1f0 +DIST thunderbird-158.0-pl.xpi 544410 BLAKE2B 12f1a861bb40cb1c8133d8f462eb392d2e80a9a35cd62a783fa6d8c6174d0ea93a129dbab8af7e146afaf5340c1351388b51c6877bb5996e52afbd6ea419871f SHA512 75f83ddc8014500199ef048254af6f546292bd8afde8c32875115826069647609da1eb42c487fd9af3ce8abfb7eb1e77823127cfed09f73520bedeba8e41197c +DIST thunderbird-158.0-pt-BR.xpi 509876 BLAKE2B 9499a8b398cb9479adfc976870f073e8b82b81d05e7eff810ed0bebdf5598145ca28841e82f9fc63531a111a7fab1291b37702abd5656b47dd2de9b78fcb131d SHA512 40dc0f5a52f9f6283290937915fafef3b6d85f2b3845ab7213bbe112d7c841d82dbee2eebc9f8fa1d579dca9b83f1548492c0d950a250785335c0131132fea05 +DIST thunderbird-158.0-pt-PT.xpi 521722 BLAKE2B 2594d0a03f575a1910f772177f30c95f188633df8efdb433e9a8a1c132e1a1048ea6d56ccbd38ef2a9302a2c27860da3e8a5a3d1a7d509c6be096c8b2fee0dcc SHA512 31a1ef8510a6a67588cd463a0511493b0329f6b35e0e687179d516f383488b2ca0510e2030eb77778905de8f00c365d57fc09650d3911a9ce88b3b312bb1a771 +DIST thunderbird-158.0-rm.xpi 496617 BLAKE2B 489134577ad93763f96608cb479aaaa9ec5ad5191e9d3800b0f20a15480c5c2dc228bfab8bd527796f41183ec3b0be37f6960ef106bba62ce8a42265345656ee SHA512 fde4b666651bad98d06f145e611569f16afb98e9b5035769cb942c6b591735822316de9fec8a8aad9a825cc7f7f79c83a7e786d9800427f181563f285492eedc +DIST thunderbird-158.0-ro.xpi 528844 BLAKE2B 3492aeb244e622aa8ddebcc01394f00bbae066a60bfdc48df18ed7fd3723e5c132dab71fd69a63e69d405d5d1700c55266af09cf693986cf84310809bfd51dcb SHA512 2184579883f816e731677ccba0353a3f3fa62cbf9e08631ee46358a3dbda71b31cbf176543856a52af938166e14902b073bf6d01c6bcae8d98a377c537c782bc +DIST thunderbird-158.0-ru.xpi 625370 BLAKE2B ac84fd30c517966a7669834abfe0c0de8a39b2cccd2b9ac2fd46ff4385a800d4bf8ff87d1aa37963c8c364e6945c629e972c9b45ebfb3f5c7987da99e23c3842 SHA512 afd629e47d98af3ae0c5725b94fe7ff3ce9314506d4b649c2a857fbb19b2bbb60be7323fac4ed2e8323e460bca2d2ea24f396c90c66c9c0bad778440bb1891a9 +DIST thunderbird-158.0-sk.xpi 549277 BLAKE2B 7c7c68a1573daf128f7378653852c3de4368e46d4d0fba72af6042261e8425399f0eac01fcf396c7e11244e94ff5d719a95004c9d5ce206515072e6e3f7be2fc SHA512 f53f58713c8f5623a912f12c70b7f3b12089f14710dfb2f79b863d865a2de018c00bf31e71a82e27a59a73125fe340d8ff7f83f62258d3f4541a216321da362c +DIST thunderbird-158.0-sl.xpi 512601 BLAKE2B 842f1573c8ff429b5c8cecc2691c649f6b13fb2d6a4097af5fb14a9ebcfd25033731c92c7017be511e90577d38802222c77d1321284bc8258ecad18a8665c8c5 SHA512 061509ba8d63ade30a02865a8e75a7d02de65cb2e137303163b3244d4a7b7de13d065ff8e9809dfa9bc3a8f74e7a6babc55c42b495f2b86707a249bd50478a20 +DIST thunderbird-158.0-sq.xpi 521659 BLAKE2B 3154909a816eb3430300641fdfa90de9519509a25355cf06cf4891208b26479a4ed5cadf99ddd19019007dab3107a7b88797ecba2529c495fc3e2de1d0b96e2a SHA512 a1047fd27dca0f35a84184584442961475513435f6ebd93c483918ae73ac850672ed0a73af5b594150369978f3018d6851ffcdcb99c757a4bb06cfdea0037920 +DIST thunderbird-158.0-sr.xpi 586555 BLAKE2B beccde54d9747f61665281a556be1f118b4ac408acd0ef572ccdc68c78f0db2ca9a7ab4aa500c16c76ccac0d321709b5480539c9a93f67ae5ca878e270b81adf SHA512 1dbf1e9dcef3b33acc588f633aec812de2f369e1e9012d2db8561ef5673299fd0a0788f80fada938ea91d72a13f472294abc71808cd59f9ce5008b7bcd7e88ae +DIST thunderbird-158.0-sv-SE.xpi 511034 BLAKE2B 05870185f0b953cade34edf5521023973f510727b4d8deae7e37bc3eb91b09793ff21060a9cf7f78c89014f2afee35e334fbf153e5daa7bf22594aa822cb66d5 SHA512 f450116009b250a2003abbe24711210559a9497fe61543091875a0fcfc6dca6ebdecbae1aa12184e91712c195aee53fe7028f81b94a31b1c1ee57fed5dae2f57 +DIST thunderbird-158.0-th.xpi 582073 BLAKE2B 9ededa0d48938bf3e0385f503ae568981c3fa9105f653c0a5191ee6f7dfc9a74d280c6923eaa0aebf19aa3a04286b286e2f9cb52c78c1060847f69b4d51d22f4 SHA512 bbf0855f66ad80c09adf6685521d18c62fbfe2b1d222e5af13e47cd2fb40c8e6fb67cabe790bb4d17d6e228fe64dcc8e2b5692a1137822d05ad28532e9afec3a +DIST thunderbird-158.0-tr.xpi 520635 BLAKE2B 665b2d43de5754b7d92d7d982060935612eae0ac268c88e18a2971ce8bde059f92c4a8a1bb498490115f65d906c73b69a5265de9aa296de823e9ed35939526d2 SHA512 a8304089493640f472f57bf105194bda3299439293a974cb98f62814347a21614792e04d7de894eee0c0af3eb70c5ffb97a70b15bafbffaf3be9c1d7ca04f1ad +DIST thunderbird-158.0-uk.xpi 593475 BLAKE2B 05b0d661d933c06912dc0d9c84d608928875805eac6d9992f92ba46d22482659332834f92f81f2a88787f89a4aaad1e97ddb61f96d8d17df4590c8cd5c659552 SHA512 26ab6e9423e47ae952145cfd2b7965fb109e209cc4cdd879f81bf2a5daca01ac28dc0ccc7d635622e9e1ebe4d696fddef631dd96c44a1297656c8fcd64527d13 +DIST thunderbird-158.0-uz.xpi 416416 BLAKE2B 17074bc49d80a2b704947e558a3ad1b2dbfc8e98bd8432fa4035e27ed14eab701c9587a737bcc719d81584c73e17970b37645f30b86b26c5852cc7824676b561 SHA512 0eb4538a93561784b18617ebf0502da1a27123c57ba1aebf53b67f7f462c734f1f8d5efbf4e2b2492e6d1d61e6dd2fb9cdfa065a227aded667f26f2f35d2a712 +DIST thunderbird-158.0-vi.xpi 549920 BLAKE2B 4ea9f4cf551c3c85fc8bfa3c47e8e159e4c8cdb68601a06ad37f9e36300dc86d82a677a65280fdb7220c3fccd2a8ca04015e8b1c0c94a911672ebaa8dd112f13 SHA512 72c2081ba455cd6fb371845e6cd3ca4aa5eeac511c04400e2b53fae7ae49acf867a5895f427cf6576e2d4f96908b45bab86bcfa5cfb462ae1527ddd413d9944d +DIST thunderbird-158.0-zh-CN.xpi 526326 BLAKE2B 9b6a10d52ee369d57042e0842ca18f4045e96710b8a2518cecae466a3fa29ea85a26142d607f34796e53e5656ad70073a40f3b318db125b125e55cd14738450e SHA512 6df85be0a545fc7bc142fd79a96faa33b7af3155db1f2e1d5e29a9b82136c822475e91c430a3c527708d1640242488d5d2f9957b05e304f153eab26d1b799e41 +DIST thunderbird-158.0-zh-TW.xpi 538334 BLAKE2B 16fb322434c41c95bc833dca263f15eb923478bd4a73f17a4e9cbacb4d3bdbf47ba723cfaec22f27a71b32b7c517d2e066bd844f3c5276dc277a14919815a04e SHA512 0ec863e32d01912775938ca2de3e6021f7fe9a2c44b06bd23c7e2a26b640231ac5b98b4ab4e2ebd7d849a3aaad4f12c20fd749dbeff71eab2917c1ea0c6331f1 diff --git a/mail-client/thunderbird-l10n/thunderbird-l10n-153.5.0.ebuild b/mail-client/thunderbird-l10n/thunderbird-l10n-153.5.0.ebuild new file mode 100644 index 000000000000..5b0e8cf496be --- /dev/null +++ b/mail-client/thunderbird-l10n/thunderbird-l10n-153.5.0.ebuild @@ -0,0 +1,145 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MOZ_ESR=yes + +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" +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="Thunderbird mail client's translation files" +HOMEPAGE="https://www.thunderbird.net/" + +LICENSE="MPL-2.0" +KEYWORDS="amd64 arm64 ~loong ~ppc64 ~x86" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +# 150.0 is when thunderbird-l10n was introduced. +RDEPEND="!<mail-client/thunderbird-150.0" +BDEPEND="app-arch/unzip" + +S="${WORKDIR}" + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb el en-CA en-GB + en-US es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hsb hu id + is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO pa-IN pl pt-BR + pt-PT rm ro ru sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_install() { + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${MOZ_PN}" + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi +} diff --git a/mail-client/thunderbird-l10n/thunderbird-l10n-158.0.ebuild b/mail-client/thunderbird-l10n/thunderbird-l10n-158.0.ebuild new file mode 100644 index 000000000000..454d5b9c0ea6 --- /dev/null +++ b/mail-client/thunderbird-l10n/thunderbird-l10n-158.0.ebuild @@ -0,0 +1,145 @@ +# 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" +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="Thunderbird mail client's translation files" +HOMEPAGE="https://www.thunderbird.net/" + +LICENSE="MPL-2.0" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +# 150.0 is when thunderbird-l10n was introduced. +RDEPEND="!<mail-client/thunderbird-150.0" +BDEPEND="app-arch/unzip" + +S="${WORKDIR}" + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb el en-CA en-GB + en-US es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hsb hu id + is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO pa-IN pl pt-BR + pt-PT rm ro ru sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_install() { + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${MOZ_PN}" + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi +} diff --git a/mail-client/thunderbird/Manifest b/mail-client/thunderbird/Manifest index 419ce980a01c..9826f57069d9 100644 --- a/mail-client/thunderbird/Manifest +++ b/mail-client/thunderbird/Manifest @@ -5,6 +5,7 @@ DIST firefox-153esr-patches-04.tar.xz 12232 BLAKE2B 3f792b89ec324437dbd8e6116eef DIST firefox-156-patches-01t.tar.xz 19100 BLAKE2B d35bfda20213d665fabfa4948391771a4bac2af8c8cbe897bcaea544962020f52a0cc8be691020542bebbb880219b3abe22b2735e0af774b906b9f73bd46082e SHA512 4191e78d50bf0f7adc8353bd44ccc2f31a7615a568f9cc375dcdd6bb83105bfce36d4cd01dadf4b56a4728d3e17397792a34d8988481dc6a76db30aa00762902 DIST firefox-156-patches-03t.tar.xz 19644 BLAKE2B 3a26791a3e3cb46643f6005ad92c0b140ddd59541d3549a435b3a891a08ac252f326a8d8aa2480bd906a8931a809d527d9f0658cd029982cf624a3b8a3048d14 SHA512 f20a03a5d904a6ddc131a7bd66e84eab3cb3ed1e21e12fc275bd9237a7ca1ce225efda96bab727ca69797a7ff775dce2c978d5fcea31511c9ffb1ce7aefd6aa7 DIST firefox-157-patches-01t.tar.xz 16964 BLAKE2B 60efed33417baccb0e7f4f59f6f36ce07effdba5dd547bf1897316a5cadf4be0f113f20b794219ed47ce82071bb0d749f9e6fc4a6a6f611b8edf7226e8ea256e SHA512 215669e8d8d94b5d817a6f6a9fa98b199b8a3182b198a78a43d8e2bdd589470d03c39f9e7cdffecaa6a7e94bb1b23aa6906e83bc3ae3b8d27f4c114e095d3027 +DIST firefox-158-patches-01t.tar.xz 17252 BLAKE2B 4da8ad36786f4748147675cf08b46cb7e989518ccab753a8010f8ce6fdb67ab26706db315e80207ef852e9705c74b89b982e50e14e2bc62216caf67466b6e0df SHA512 890ec2e2b620ca19b208ec85aac3448fbfabfc597e9deecc02eee7cfec361a867fc3d90526a474cbd5973f1858067bc7463be20aac6f9e7bd137e570475a2ebf DIST thunderbird-140.16.0esr-af.xpi 316220 BLAKE2B cd64111cc906134e4441cb9128d20f281391665ad66c4fdcd4876b2cd092dae57c850379175539ebf1f49e65d3feacb0a60e6c5c8d923392c2c507a1a03db877 SHA512 cdef8f39f795e768d88de80b923e5aff71b9dcce8ae93d8fbdccef0127bbe78438ea2e004799ef1385e799af77b5955f713c53a385ed83f75fa277901e65a110 DIST thunderbird-140.16.0esr-ar.xpi 436198 BLAKE2B 9be3d3e088bed02837e326add8392cc6153ee7eec06c184122e5c129ad585a60df7cefb273baaecaf3cf78433befb4ee92b18d9cadcf2c9f9ee3340f95a310b0 SHA512 8bcc62ac679fed8558d0c41f24587492d25ed0d7da353de89ac140b417949a7bc118dafad315dd7a7f3af644887869473807c991871e789716ea301122a1b0f4 DIST thunderbird-140.16.0esr-ast.xpi 340600 BLAKE2B 4efde7530acf62366cd5912c16cc8079ff4b046f0bdc526e9de0a00d604a94910ae9e49b528016fd2aa5afd9ad70b6209cb2f9ed327635fb8d8170baea2e7867 SHA512 7e59b9c252212d2a9134e5cea0df7ec369a1a967daa417eed4bc164cd747b52c828632d009f71b1e7b5bd6af705de1fd812f3d6f345a8aa680c3591391a9b0b2 @@ -72,7 +73,9 @@ DIST thunderbird-140.16.0esr-zh-TW.xpi 511431 BLAKE2B fb97fc1aa94973ca62899e4ef5 DIST thunderbird-140.16.0esr.source.tar.xz 762960800 BLAKE2B d071734786c159495a70a3934f644d32a232aea14e6fb5c1fe46a754e191580c92240c9b0c9ca8f7bf32e59167ef3bfcaadc5de036facf1fe7625a6a9ae04972 SHA512 9844641f9c8b4e7c96445d6d6fc554fc80afd8652899de3458d183f9381a18f08233e5d2e2beedd6adf2a0a6e1331e7abb55e698765b27110ca2dafdf12ecbb7 DIST thunderbird-153.3.0esr.source.tar.xz 938162732 BLAKE2B 3ab1a6e10b376fa6ef7b7c26304a0b504532ac7def4655fdf1e4638d3cc66c2d5f3c95af5c7e77a3e62bbb3d887c8259f49992259a0576771fab67f379e7e215 SHA512 9cbf9f7a9891c475721abe04e32f455f2f8df4a1b755d9da876b436a68724383f091b44e5412dbc747e33406021dc9d351cb7c6882237300eb608eb45e191529 DIST thunderbird-153.4.0esr.source.tar.xz 938351268 BLAKE2B 88477af2931e89461b26c7c3a3dd07ae51466a1076867be9fad50eae076192a36c865e9bfe33be1c21548a20de5707c626c80e458fa78cb542347b29b0cf9c42 SHA512 93c43a75010b2edd36c58d054cd2e15a879b9e62e21f419bd8c7f97b8f7f6f29e8aed9d445ab9ccebdc1825dbf0f5e82e6e316c5f817f877d64266a2f2dbf9ec +DIST thunderbird-153.5.0esr.source.tar.xz 934350404 BLAKE2B a8b5e9b1d46ca693733a84768cd431546b0a1c94011339537b23a1ea0f69fec9a734ce77990d653818fbb4898b19b76a6d4a28a1b3c149467d3f6c584d0064c5 SHA512 8f700c15d4c4387e0e205839cb377914fcc9cf00974245c0c3225807d7b6117a8ace6f38bf024e710061d47c10c99f8f0a93df870f85b53b556143dbd2fafa0f DIST thunderbird-156.0.1.source.tar.xz 943111452 BLAKE2B 1f05dd489a6204040399d710c8a8736673e1c2857d7cb199f4f189352040336113b46058840bb54c50bd8510c43ee29b58c8288e824a91eb847e42507a74b578 SHA512 e9262a4666e0107c7bc45fc2ad4bac4d6e5db4bfd3325d1d1c418f00adee777db969f8c12d8f310f45fdfda61b26e31bd0eea8b7d64ed1ee0050b5ee9235cfb0 DIST thunderbird-156.0.source.tar.xz 941437984 BLAKE2B ba3bcc3970299154c8c683d73355a7f0ac0e2eb7937378d4bb6903f2f33739101b935e7d40403a1e1522cc4deea44d1a2564ef3a7e1f195bc92a3443718ce201 SHA512 8fd524f9d622f007e9bd5e8bcc440f185427a928a04d3aae14fc476e011ff1c15b68607292624ea4c4e4d596722193dda88e233cdfb6bbf5d05bd180870532ba DIST thunderbird-157.0.1.source.tar.xz 948443048 BLAKE2B b7a89af2db37cd441b2de91c198cffb41520e7fd81ce67ddf8b9ce7327343dd32c720118137e7bfa3774b97ec7de7d644def1d671d53a426576423015eb34880 SHA512 12c6151150cadce68b113720788ff6d4cdcd39ae57131152f92a272a76c2590fd929edd45faed4e81e1f32eb58d0b22ca003a37294b9daf6648d39194f09fd95 DIST thunderbird-157.0.source.tar.xz 952835956 BLAKE2B 1af90da84acb5618b2b0a0ed421e29ef013094ccebe1ce0778301e50c480a9a5a4201d8c317c7a6e3d97d1015698142dd461956a44ce1a2c185ad0c63808cada SHA512 4213e8584f42cc6e518f1cde4bbb919a1431950340fea51c5dc1e6423c04d68ff57747937ba125f3d7ef704d3bf0516d03760a14d3246aae9b69cbeccbf09598 +DIST thunderbird-158.0.source.tar.xz 961411644 BLAKE2B d6abb0aa73a9d3b95212cd9e4044ce3b9fec3778b27ab3639bef1b300abf48494992d0d1dcb0a7157e2b75b4b571387545b6817b1a2247ddcc8e19dd88a8f9ab SHA512 fe19e0e7540ef27af0bdb730963a9b4ad91472a9ab8b0c5eddd291c2d234ab7ac68ddf71c8595090b87cfd0deeaebc66dbce15c65c90fd09183b05db4bdce263 diff --git a/mail-client/thunderbird/thunderbird-153.5.0.ebuild b/mail-client/thunderbird/thunderbird-153.5.0.ebuild new file mode 100644 index 000000000000..4c3a1de9ed71 --- /dev/null +++ b/mail-client/thunderbird/thunderbird-153.5.0.ebuild @@ -0,0 +1,1112 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-153esr-patches-04.tar.xz" + +LLVM_COMPAT=( 22 ) + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +RUST_MIN_VER="1.90.0" +RUST_NEEDS_LLVM=1 + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +# Thunderbird will have separate release and esr channels, matching Firefox's rapid and esr. +MOZ_ESR=yes + +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" +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 eapi9-ver flag-o-matic gnome2-utils linux-info llvm-r1 \ + multiprocessing optfeature pax-utils python-any-r1 rust toolchain-funcs virtualx xdg + +DESCRIPTION="Thunderbird Mail Client" +HOMEPAGE="https://www.thunderbird.net/" + +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} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="amd64 arm64 ~loong ~ppc64 ~x86" + +IUSE="+clang debug eme-free hardened hwaccel jack libproxy pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-pipewire system-png +system-webp wayland wifi +X" + +# Thunderbird-only USE flags. +IUSE+=" +system-librnp" + +# "-system-librnp" requires clang, bmo#2006910 +REQUIRED_USE="|| ( X wayland ) + !system-librnp? ( clang ) + debug? ( !system-av1 )" + +TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird ) + !system-librnp? ( dev-libs/jsoncpp ) + system-librnp? ( >=dev-util/librnp-0.17.1 )" +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] ) + ) + ') + 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="${TB_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.125 + >=dev-libs/nspr-4.39 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-apps/dbus + virtual/zlib:= + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libdrm + x11-libs/pango + x11-libs/pixman + 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.5.3:= + >=media-libs/libaom-3.12.1:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + 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.6.8:= ) + system-png? ( >=media-libs/libpng-1.6.45:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + ) + ) + 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} + jack? ( virtual/jack )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# Thunderbird-only RDEPEND, ESR and Stable. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" ~mail-client/thunderbird-l10n-${PV}:0/esr" +else + RDEPEND+=" ~mail-client/thunderbird-l10n-${PV}:0/stable" +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="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + 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 + + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + 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 +} + +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 + 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 + + # 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 + + # 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=comm/mail + mozconfig_add_options_ac '' --enable-project=comm/mail + + # Set Gentoo defaults + 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-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-dbus \ + --enable-js-shell \ + --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 \ + --without-wasm-sandboxed-libraries \ + --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 loong ; 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 + if use riscv ; then + mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + 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-harfbuzz system-graphite2 + 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 + + if use system-librnp; then + mozconfig_add_options_ac "+system-librnp" --enable-compile-environment + mozconfig_use_with system-librnp + else + # This controls the backend of the bundled librnp. Choices are "botan" and "openssl". + # RNP Upstream recommends to use botan. In Gentoo it's preferred to use system-librnp. + mozconfig_add_options_ac "+bundled librnp backend = botan" --with-librnp-backend="botan" + fi + + mozconfig_use_enable libproxy + + 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 # not available in TB + 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 + + 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 + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + 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" + + # 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_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}/defaults/pref" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs-r1.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \ + >>"${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 + fi + + # 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 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 + + # Install icons + local icon_srcdir="${S}/comm/mail/branding/thunderbird" + local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r2.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 + + # 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 +} + +pkg_postinst() { + xdg_pkg_postinst + + if ver_replacing -lt 136.0 ; then + elog "In this version of Thunderbird, upstream introduced an in-app notification" + elog "system. Setting pref 'mail.inappnotifications.enabled' to false and nullifying" + elog "'mail.inappnotifications.url' may help you avoid these messages, if you don't" + elog "wish to receive them." + fi + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "encrypted chat support" net-libs/libotr + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas +} diff --git a/mail-client/thunderbird/thunderbird-158.0.ebuild b/mail-client/thunderbird/thunderbird-158.0.ebuild new file mode 100644 index 000000000000..7486c467a478 --- /dev/null +++ b/mail-client/thunderbird/thunderbird-158.0.ebuild @@ -0,0 +1,1123 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-158-patches-01t.tar.xz" + +LLVM_COMPAT=( 22 23 ) + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +RUST_MIN_VER="1.90.0" +RUST_NEEDS_LLVM=1 + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +# Thunderbird will have separate release and esr channels, matching Firefox's rapid and esr. +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" +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 eapi9-ver flag-o-matic gnome2-utils linux-info llvm-r1 \ + multiprocessing optfeature pax-utils python-any-r1 rust toolchain-funcs virtualx xdg + +DESCRIPTION="Thunderbird Mail Client" +HOMEPAGE="https://www.thunderbird.net/" + +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} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" + +if [[ -n ${MOZ_ESR} ]] ; then + SLOT="0/esr" +else + SLOT="0/stable" +fi + +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86" + +IUSE="+clang debug eme-free hardened hwaccel jack +jumbo-build libproxy pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-pipewire system-png +system-webp wayland wifi +X" + +# Thunderbird-only USE flags. +IUSE+=" +system-librnp" + +# "-system-librnp" requires clang, bmo#2006910 +REQUIRED_USE="|| ( X wayland ) + !system-librnp? ( clang ) + debug? ( !system-av1 )" + +TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird ) + !system-librnp? ( dev-libs/jsoncpp ) + system-librnp? ( >=dev-util/librnp-0.17.1 )" +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] ) + ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.29.4 + net-libs/nodejs[ssl] + 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="${TB_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.130 + >=dev-libs/nspr-4.39 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-apps/dbus + virtual/zlib:= + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libdrm + x11-libs/pango + x11-libs/pixman + 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.5.4:= + >=media-libs/libaom-3.12.1:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + 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.6.8:= ) + system-png? ( >=media-libs/libpng-1.6.45:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + ) + ) + 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} + jack? ( virtual/jack )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# Thunderbird-only RDEPEND, ESR and Stable. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" ~mail-client/thunderbird-l10n-${PV}:0/esr" +else + RDEPEND+=" ~mail-client/thunderbird-l10n-${PV}:0/stable" +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="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + 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 + + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + 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 +} + +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() { + # 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 + 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 + + # 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 + moz_clear_vendor_checksums bindgen + moz_clear_vendor_checksums audio_thread_priority + # TB-specific: + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/comm/third_party/rust/audio_thread_priority/.cargo-checksum.json || die + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/comm/third_party/rust/bindgen/.cargo-checksum.json || die + + # 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=comm/mail + mozconfig_add_options_ac '' --enable-project=comm/mail + + # Set Gentoo defaults + 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-tests \ + --disable-updater \ + --disable-valgrind \ + --enable-dbus \ + --enable-js-shell \ + --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 \ + --without-wasm-sandboxed-libraries \ + --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 loong ; 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 + if use riscv ; then + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + 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-harfbuzz system-graphite2 + 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 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 # not available in TB + 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 system-librnp; then + mozconfig_add_options_ac "+system-librnp" --enable-compile-environment + mozconfig_use_with system-librnp + else + # This controls the backend of the bundled librnp. Choices are "botan" and "openssl". + # RNP Upstream recommends to use botan. In Gentoo it's preferred to use system-librnp. + mozconfig_add_options_ac "+bundled librnp backend = botan" --with-librnp-backend="botan" + fi + + 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 + + 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 + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + 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" + + # 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_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}/defaults/pref" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs-r1.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \ + >>"${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 + + # 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 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 + + # Install icons + local icon_srcdir="${S}/comm/mail/branding/thunderbird" + local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r2.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 + + # 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 +} + +pkg_postinst() { + xdg_pkg_postinst + + if ver_replacing -lt 136.0 ; then + elog "In this version of Thunderbird, upstream introduced an in-app notification" + elog "system. Setting pref 'mail.inappnotifications.enabled' to false and nullifying" + elog "'mail.inappnotifications.url' may help you avoid these messages, if you don't" + elog "wish to receive them." + fi + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "encrypted chat support" net-libs/libotr + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas +} diff --git a/media-libs/freetype/Manifest b/media-libs/freetype/Manifest index 9a4450795569..c6c493367d4d 100644 --- a/media-libs/freetype/Manifest +++ b/media-libs/freetype/Manifest @@ -1,6 +1,12 @@ DIST freetype-2.14.3.tar.xz 2670220 BLAKE2B 26db1946b099abc73d9d249dc48303e70886e0b1cb7180d5b9538b3934dc677a1572a32573af6adabeeb1c1a2eef81f24399038d3d8e640c29bba77f6c8a3596 SHA512 43de86ea70b4b47f6efaae67f3440f65a24ffac29dc6d11203a9764e4f1a749ce1ba7645acd23525220b3ba12ddad8687b962b9f1254e2c0a86070854e85d5a0 DIST freetype-2.14.3.tar.xz.sig 833 BLAKE2B 14d1118374fd0baf02031766d25dabb1a751a8abe4c518caa8ed6252c81dac40adfc9af6ed6588a93f5d5f38e50c45ffb5040d77d9768664939d928fa8baca5c SHA512 99ef273a707364dce4abba6ba49de119587616020aca3b590f47ec9ab5467a156feb18a20054de26f49390c67d52dff3a7015e117279b21e878e404e9bf165e5 +DIST freetype-2.15.0.tar.xz 2716928 BLAKE2B b49bbcf6eae90159b8c3f315a8175d23a0c6a8f8574361aaff1b05d19984b31c000c1d637ba128e6f2f09d984d583f36cc7dd84e196152214f6fc8bed20e810d SHA512 5c29e8ee1e5c83b10c51251fa171899ee6e65ff7638e58d774eae05e348c42df8363a7bb9de1894f96a66975bde361310edf418a33423aabba377d0a37a48b8e +DIST freetype-2.15.0.tar.xz.sig 833 BLAKE2B ef43cc8ccf2757b48aac4b5fbb516a5113911f7d80fda1db4e4b099926676ad37ae2c32042329593bdcbf736d2d871ab04aaefdc0b357471d8d0e7b6b2cce428 SHA512 dbdf3bd389ae3f7ad324906ef5085bc4bcd9c2b486b4edca8314b639f0a7a749cfbae5d7f8f4698105cd606956562e1cae6c769336aa05c3a0efce5e61e906b8 DIST freetype-doc-2.14.3.tar.xz 2176200 BLAKE2B 8d8833b36cf81498d007137eaef549309956cb5714f88cbfc7fb1d4b508add1744b86eb543c377db6b32ac872eb80bd72f95d2371013adc4ef4b42abf49fbaf0 SHA512 f5d9bdd5119d353533a17366bfbe6d847d079f908137b1353cb9b6ce2e9ae5998dcaf7c888eeceec22b162cdb14256c6e7fefd75057250321fbcd9fcafc068f4 DIST freetype-doc-2.14.3.tar.xz.sig 833 BLAKE2B 70c55486ea95bab9f4430452bb7b9f67c7182ff6cb7461c84e94b12c16113332f3b27d8f3deab0984de678794da2299c2e6472925e5fc56a546dc4d6642bd7dc SHA512 df8bcb57839dcab5734f21eebc3b3db4b3656415695e87d86e44996e03d79e6507933a433633005fc004605432bd96d43d69efb140ab84b9c1136ca9c069fdba +DIST freetype-doc-2.15.0.tar.xz 2173764 BLAKE2B 1c807276219171ca09aa7adc454ad7f2e9d1994c2c4d06e7eb2d88164552e0d6f9d81c3a361a68193b3fbb9d176d16b52f2b4ea4650ccfe456cf8da152f0c273 SHA512 117c880e9b6e142ce626e00619b3e2944fffb4c9c9e3e32b81d236486ae7fd33cc7f2141cd7c8ea5ac980ddffe568da595bc045a42709d38636f7ace0ad76414 +DIST freetype-doc-2.15.0.tar.xz.sig 833 BLAKE2B 6a57ffeb5e59de43be26c76076a3b1a20214ca36e8e8020dd71fce68be2e7d585504b39dd898f5be1825029f61c920ae24b6b30fc721e73461d3d5a2ac9bbf49 SHA512 6d96996c8999f42761745fdc3767047804a3147d5908da7dbdc36b6c1ba694338565f9dfb7425cabbb85d81f2fd57fcdfd8fd19eb1b74499b436582aa15ceee3 DIST ft2demos-2.14.3.tar.xz 347960 BLAKE2B 15a4f3a84ad4dee6a5aff3e33d2b972d39dbd7c595f407fa7d1ba7426ac529628111424b6c567ffe95eb222f7a239ff5627e8c8eda5109798a6e7f97cdb05166 SHA512 e59c1266010330a8cbfd25dec096a72ce7539b64f9c057de062a281261b3ad658240f58e75b53d7a880d7ad5e020206316a6e9e82b03dec2e4d999f3f56cb39a DIST ft2demos-2.14.3.tar.xz.sig 833 BLAKE2B a3ae910aa643faef284797a2488db42699854787661da5fdbadbf5e9ed8c0c497454b106c7c65beeba8d1aad32b983194b69e359cdf49c3af22f6ba00fab15e7 SHA512 c6bf87617bedec1430dd75e9d48e00b9994f9caf13d8721eb7059597e617ec7b51aac260aa644f82e4c54f12494cdd57ba21cec657f548b29b57e16576bc7865 +DIST ft2demos-2.15.0.tar.xz 347800 BLAKE2B 8b48ad3565c61632bacafb0006d621ae646bbf592c71127c066a99b2b824203b27516178e867302cd0c7a0a2d47217d8a95dc1eff109cdc122b353bcfc5c62f7 SHA512 fefc7b05f3cee6bf02cbd7e2d20fdcaea04e1effde5803a0c5f34884b1f11b4e0664e0dcdc85cf09f8e4c4d721ce8d02ff445b76648dede1eb3cf18b55b39567 +DIST ft2demos-2.15.0.tar.xz.sig 833 BLAKE2B dd0a327447d756653486758f229bc532ab220baace22e0f1804dfe38b208e4c8c7b9fbb3c84ff3a0616200a1212e9d7049112a576067f53fa182959d2a8168e6 SHA512 402273dc8cbe333ff7ebb3811856b6af07ec15b1cfe5f4de891964c6d2d57abe947a7b5b0da7d90148b6f667a2acc642a3da70576fa18e14c003bd3db9af81ae diff --git a/media-libs/freetype/freetype-2.15.0.ebuild b/media-libs/freetype/freetype-2.15.0.ebuild new file mode 100644 index 000000000000..3cdb07eb176c --- /dev/null +++ b/media-libs/freetype/freetype-2.15.0.ebuild @@ -0,0 +1,277 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools libtool multilib-minimal toolchain-funcs + +DESCRIPTION="High-quality and portable font engine" +HOMEPAGE="https://www.freetype.org/" + +if [[ ${PV} == 9999 ]] ; then + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/wernerlemberg.asc + inherit verify-sig + SRC_URI=" + https://downloads.sourceforge.net/freetype/${P/_/}.tar.xz + mirror://nongnu/freetype/${P/_/}.tar.xz + utils? ( + https://downloads.sourceforge.net/freetype/ft2demos-${PV}.tar.xz + mirror://nongnu/freetype/ft2demos-${PV}.tar.xz + verify-sig? ( + https://downloads.sourceforge.net/freetype/ft2demos-${PV}.tar.xz.sig + mirror://nongnu/freetype/ft2demos-${PV}.tar.xz.sig + ) + ) + doc? ( + https://downloads.sourceforge.net/freetype/${PN}-doc-${PV}.tar.xz + mirror://nongnu/freetype/${PN}-doc-${PV}.tar.xz + verify-sig? ( + https://downloads.sourceforge.net/freetype/${PN}-doc-${PV}.tar.xz.sig + mirror://nongnu/freetype/${PN}-doc-${PV}.tar.xz.sig + ) + ) + verify-sig? ( + https://downloads.sourceforge.net/freetype/${P/_/}.tar.xz.sig + mirror://nongnu/freetype/${P/_/}.tar.xz.sig + ) + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-wernerlemberg )" +fi + +LICENSE="|| ( FTL GPL-2+ )" +SLOT="2" +IUSE="X +adobe-cff brotli bzip2 +cleartype-hinting debug doc fontforge harfbuzz +png static-libs svg utils" + +RDEPEND=" + >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] + brotli? ( app-arch/brotli:=[${MULTILIB_USEDEP}] ) + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) + png? ( >=media-libs/libpng-1.2.51:=[${MULTILIB_USEDEP}] ) + utils? ( + svg? ( >=gnome-base/librsvg-2.46.0[${MULTILIB_USEDEP}] ) + X? ( >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" + virtual/pkgconfig +" +PDEPEND="harfbuzz? ( >=media-libs/harfbuzz-1.3.0[truetype,${MULTILIB_USEDEP}] )" + +_egit_repo_handler() { + if [[ ${PV} == 9999 ]] ; then + local phase="${1}" + case ${phase} in + fetch|unpack) + :; + ;; + *) + die "Please use this function with either \"fetch\" or \"unpack\"" + ;; + esac + + local EGIT_REPO_URI + EGIT_REPO_URI="https://gitlab.freedesktop.org/freetype/freetype.git" + git-r3_src_${phase} + if use utils ; then + EGIT_REPO_URI="https://gitlab.freedesktop.org/freetype/freetype-demos.git" + local EGIT_CHECKOUT_DIR="${WORKDIR}/ft2demos-${PV}" + git-r3_src_${phase} + fi + else + default + + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.sig} + + use doc && verify-sig_verify_detached "${DISTDIR}"/${PN}-doc-${PV}.tar.xz{,.sig} + use utils && verify-sig_verify_detached "${DISTDIR}"/ft2demos-${PV}.tar.xz{,.sig} + fi + fi +} + +pkg_pretend() { + if use svg && ! use utils ; then + einfo "The \"svg\" USE flag only has effect when the \"utils\" USE flag is also enabled." + fi +} + +src_unpack() { + _egit_repo_handler ${EBUILD_PHASE} + + if [[ ${PV} == 9999 ]] ; then + # Need to copy stuff from dlg subproject (bug #758902) + local dlg_inc_dir="${S}/subprojects/dlg/include/dlg" + local dlg_src_dir="${S}/subprojects/dlg/src/dlg" + local dlg_dest_dir="${S}/include" + mkdir -p "${dlg_dest_dir}/dlg" || die + cp "${dlg_inc_dir}"/{dlg,output}.h "${dlg_dest_dir}/dlg" || die + cp "${dlg_src_dir}"/* "${dlg_dest_dir}" || die + fi +} + +src_prepare() { + if [[ ${PV} == 9999 ]] ; then + # Do NOT automagically mess with submodules! + sed '/setup: copy_submodule/d' -i builds/toplevel.mk || die + + # Inspired by shipped autogen.sh script + eval $(sed -n \ + -e 's/^#define *\(FREETYPE_MAJOR\) *\([0-9][0-9]*\).*/\1=\2/p' \ + -e 's/^#define *\(FREETYPE_MINOR\) *\([0-9][0-9]*\).*/\1=\2/p' \ + -e 's/^#define *\(FREETYPE_PATCH\) *\([0-9][0-9]*\).*/\1=\2/p' \ + include/freetype/freetype.h || die) + FREETYPE="${FREETYPE_MAJOR}.${FREETYPE_MINOR}" + [[ "${FREETYPE_PATCH}" != 0 ]] && FREETYPE+=".${FREETYPE_PATCH}" + + pushd builds/unix &>/dev/null || die + sed -e "s;@VERSION@;${FREETYPE};" \ + < configure.raw > configure.ac || die + unset FREETYPE_MAJOR FREETYPE_MINOR FREETYPE_PATCH FREETYPE + popd &>/dev/null || die + fi + + default + + pushd builds/unix &>/dev/null || die + # eautoheader produces broken ftconfig.in + AT_NOEAUTOHEADER="yes" AT_M4DIR="." eautoreconf + popd &>/dev/null || die + + # This is the same as the 01 patch from infinality + sed '/AUX_MODULES += \(gx\|ot\)valid/s@^# @@' -i modules.cfg || die + + enable_option() { + sed -i -e "/#define $1/ { s:/\* ::; s: \*/:: }" \ + include/${PN}/config/ftoption.h \ + || die "unable to enable option $1" + } + + disable_option() { + sed -i -e "/#define $1/ { s:^:/* :; s:$: */: }" \ + include/${PN}/config/ftoption.h \ + || die "unable to disable option $1" + } + + if ! use cleartype-hinting ; then + disable_option TT_CONFIG_OPTION_SUBPIXEL_HINTING + fi + + # Can be disabled with FREETYPE_PROPERTIES="pcf:no-long-family-names=1" + # via environment (new since v2.8) + enable_option PCF_CONFIG_OPTION_LONG_FAMILY_NAMES + + # See https://freetype.org/patents.html (expired!) + enable_option FT_CONFIG_OPTION_SUBPIXEL_RENDERING + + if ! use adobe-cff ; then + enable_option CFF_CONFIG_OPTION_OLD_ENGINE + fi + + if use debug ; then + enable_option FT_DEBUG_LEVEL_TRACE + enable_option FT_DEBUG_MEMORY + fi + + if use utils ; then + cd "${WORKDIR}/ft2demos-${PV}" || die + # Disable tests needing X11 when USE="-X". (bug #177597) + if ! use X ; then + sed -i -e "/EXES\ +=\ ftdiff/ s:^:#:" Makefile || die + fi + cd "${S}" || die + fi + + # bug #869803 + if [[ ${PV} != 9999 ]] ; then + rm docs/reference/sitemap.xml.gz || die + fi + + # We need non-/bin/sh to run configure + if [[ -n ${CONFIG_SHELL} ]] ; then + sed -i -e "1s:^#![[:space:]]*/bin/sh:#!${CONFIG_SHELL}:" \ + "${S}"/builds/unix/configure || die + fi + + elibtoolize --patch-only +} + +multilib_src_configure() { + export GNUMAKE=gmake + + local myeconfargs=( + --disable-freetype-config + --enable-shared + --with-zlib + $(use_with brotli) + $(use_with bzip2) + # As of 2.14.0, FT bundles its own copies of the needed headers and dlopen()s + # harfbuzz instead, which breaks an insidious circular dependency. + $(use_with harfbuzz harfbuzz dynamic) + $(use_with png) + $(use_enable static-libs static) + $(usex utils $(use_with svg librsvg) --without-librsvg) + + # Avoid using libpng-config + LIBPNG_CFLAGS="$($(tc-getPKG_CONFIG) --cflags libpng)" + LIBPNG_LDFLAGS="$($(tc-getPKG_CONFIG) --libs libpng)" + ) + + case ${CHOST} in + mingw*|*-mingw*) ;; + # Workaround windows misdetection: bug #654712 + # Have to do it for both ${CHOST}-windres and windres + *) myeconfargs+=( ac_cv_prog_RC= ac_cv_prog_ac_ct_RC= ) ;; + esac + + export CC_BUILD="$(tc-getBUILD_CC)" + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_compile() { + default + + if multilib_is_native_abi && use utils ; then + einfo "Building utils" + # Fix for Prefix, bug #339334 + emake \ + X11_PATH="${EPREFIX}/usr/$(get_libdir)" \ + FT2DEMOS=1 TOP_DIR_2="${WORKDIR}/ft2demos-${PV}" + fi +} + +multilib_src_install() { + default + + if multilib_is_native_abi && use utils ; then + einfo "Installing utils" + emake DESTDIR="${D}" FT2DEMOS=1 \ + TOP_DIR_2="${WORKDIR}/ft2demos-${PV}" install + fi +} + +multilib_src_install_all() { + if use fontforge ; then + # fontforge can probably cope with fewer of these, but this is simpler + einfo "Installing internal headers required for fontforge" + local header + find src/truetype include/freetype/internal -name '*.h' | \ + while read header ; do + mkdir -p "${ED}/usr/include/freetype2/internal4fontforge/$(dirname ${header})" || die + cp ${header} "${ED}/usr/include/freetype2/internal4fontforge/$(dirname ${header})" || die + done + fi + + dodoc docs/{CHANGES,CUSTOMIZE,DEBUG,INSTALL.UNIX,*.txt,PROBLEMS,TODO} + if [[ ${PV} != 9999 ]] && use doc ; then + docinto html + dodoc -r docs/* + fi + + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/media-libs/freetype/freetype-9999.ebuild b/media-libs/freetype/freetype-9999.ebuild index 56affe2a8bdc..3cdb07eb176c 100644 --- a/media-libs/freetype/freetype-9999.ebuild +++ b/media-libs/freetype/freetype-9999.ebuild @@ -48,7 +48,7 @@ IUSE="X +adobe-cff brotli bzip2 +cleartype-hinting debug doc fontforge harfbuzz RDEPEND=" >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] - brotli? ( app-arch/brotli[${MULTILIB_USEDEP}] ) + brotli? ( app-arch/brotli:=[${MULTILIB_USEDEP}] ) bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) png? ( >=media-libs/libpng-1.2.51:=[${MULTILIB_USEDEP}] ) utils? ( diff --git a/media-sound/mpg123/mpg123-1.33.7.ebuild b/media-sound/mpg123/mpg123-1.33.7.ebuild new file mode 100644 index 000000000000..c827c2231a16 --- /dev/null +++ b/media-sound/mpg123/mpg123-1.33.7.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-minimal + +DESCRIPTION="A meta package for realtime MPEG 1.0/2.0/2.5 audio player for layers 1, 2 and 3" +HOMEPAGE="https://www.mpg123.org/" + +S="${WORKDIR}" + +LICENSE="metapackage" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" +IUSE="alsa coreaudio jack nas oss portaudio pulseaudio sdl" + +RDEPEND=" + media-sound/mpg123-base[${MULTILIB_USEDEP},alsa?,coreaudio?,jack?,nas?,oss?,portaudio?,pulseaudio?,sdl?] + media-plugins/mpg123-output-plugins[alsa?,coreaudio?,jack?,nas?,oss?,portaudio?,pulseaudio?,sdl?] +" +DEPEND="${RDEPEND}" diff --git a/net-dns/nsd/Manifest b/net-dns/nsd/Manifest index 63f76eb04310..7aa4250b32ce 100644 --- a/net-dns/nsd/Manifest +++ b/net-dns/nsd/Manifest @@ -6,3 +6,5 @@ DIST nsd-4.15.1.tar.gz 1625741 BLAKE2B 4eae4345b96555d8e38feef061053a8e7bbd94804 DIST nsd-4.15.1.tar.gz.asc 659 BLAKE2B c4aaf2078660d497ac34ea96a96fe1d254c7d01389c60ce9c43ce8a154c0654fcafbbde0b8641cca6a3f4df37e7ea9193a66cd12da58263e3d8e8950d3c2f84c SHA512 1961df37d4c1a8b731c9dd0d568767e971f4944cf6ecd9d168b19d3c7ca0b933958964ec83f71f8e80957db0b6ba0968f786164a81fce96a7d861a034910d50b DIST nsd-4.15.2.tar.gz 1634936 BLAKE2B 73bac9c495abdcbe4cdb3f47008df760fb2077d241d6cda17a1dab83c9c1447c1581d56d5b290ecbcb20196c198d409047d4d6bbbf187b8f82aeefb7d0d77819 SHA512 e543425438402ca1f4c61ea9f54bcb6ea3ca802b1d645aa76d56bbc82aefedaa6080a757b0e7bd4051c4cd0177a09fd55473eaf9cd641d1021eec94f143df6ea DIST nsd-4.15.2.tar.gz.asc 659 BLAKE2B 28bf78a9663bd8d389d39250341fa5ac902dd21b8f049b9673d1e0cfd8514f716df192835e45ea12346a8b5ef97f0a2c886117d2fae31e5fd058e74311284f5f SHA512 8b821b83af6294e86abc12acd14604be16b3bad3db051cb4b5a044d209af9a3b5f8f0081037b232904ff2dc09f21f2c856c58422362e5ee17a8fea533a940917 +DIST nsd-4.15.3.tar.gz 1620092 BLAKE2B 57b76908cf059625fafa86ea01a34d19c0573228c4fab51ebed3227f0d8755cca428424acabda3af719ba05804ff03f678b6dbe36763689b15e26e089369bc98 SHA512 009b35390a643439a054a73a9743cb00b07632b21af9aa856d1763e268bb9a8ce8c67c94dc4b179d681a1df8bc5b26a85f324c03ee3e3a627a394d371fcaf5b9 +DIST nsd-4.15.3.tar.gz.asc 659 BLAKE2B d9d987b9605944459e1ea19215fd7ded454827f9833c552ad1f58c3fdd3740d9f3f7f1fe81b71bf25c253b44297142ddfb230d6720971e7dd91bbde2ccec35c7 SHA512 03b46dc2616d4629473f52a52fbb5e70bb6990b14f0ade777d4bb85c55d1eae0d8a45637b3376ce44128b5a8c4c47235981c727eb62de8d47d5cdb22bbceed07 diff --git a/net-dns/nsd/nsd-4.15.3.ebuild b/net-dns/nsd/nsd-4.15.3.ebuild new file mode 100644 index 000000000000..c41a61629aa3 --- /dev/null +++ b/net-dns/nsd/nsd-4.15.3.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nlnetlabs.asc +inherit autotools systemd tmpfiles toolchain-funcs verify-sig + +DESCRIPTION="An authoritative only, high performance, open source name server" +HOMEPAGE="https://www.nlnetlabs.nl/projects/nsd/about/" + +if [[ ${PV} == *9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/NLnetLabs/nsd.git" +else + # Version voodoo needed only for non-release tarballs: 4.0.0_rc1 => 4.0.0rc1 + MY_PV="${PV/_beta/b}" + MY_PV="${MY_PV/_rc/rc}" + MY_P="${PN}-${MY_PV}" + + if [[ ${PV} != *_beta* && ${PV} != *_rc* ]] ; then + SRC_URI=" + https://www.nlnetlabs.nl/downloads/${PN}/${MY_P}.tar.gz + verify-sig? ( https://www.nlnetlabs.nl/downloads/nsd/${MY_P}.tar.gz.asc ) + " + S="${WORKDIR}"/${MY_P} + + KEYWORDS="~amd64 ~arm64 ~x86" + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-nlnetlabs-20260101 ) " + fi +fi + +LICENSE="BSD" +SLOT="0" +IUSE="+bind8-stats debug +dnstap +ipv6 libevent memclean minimal-responses mmap munin" +IUSE+=" +nsec3 +radix-tree +ratelimit recvmmsg selinux +simdzone ssl systemd +tfo xdp verify-sig" + +RDEPEND=" + acct-group/nsd + acct-user/nsd + dnstap? ( + >=dev-libs/fstrm-0.4 + dev-libs/protobuf-c:= + ) + libevent? ( dev-libs/libevent ) + munin? ( net-analyzer/munin ) + ssl? ( dev-libs/openssl:= ) + systemd? ( sys-apps/systemd ) + xdp? ( + dev-libs/libbpf:= + net-libs/xdp-tools + sys-libs/libcap + ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" + app-alternatives/lex + app-alternatives/yacc + systemd? ( virtual/pkgconfig ) + xdp? ( llvm-core/clang:*[llvm_targets_BPF] ) +" +RDEPEND+=" selinux? ( sec-policy/selinux-nsd )" + +PATCHES=( + "${FILESDIR}/${PN}-munin-gentoo-paths.patch" +) + +NSD_DBDIR="/var/db/nsd" # Default dir for NSD's databases. +NSD_ZNDIR="/var/lib/nsd" # Default dir for NSD's zone files. + +QA_EXECSTACK=" + usr/lib/nsd/xdp-*.o +" + +src_prepare() { + default + + if [[ ${PV} == *9999 ]] ; then + # When building from git, the configure script and simdzone sources are missing + # See README.md + git submodule update --init || die "Could't update submodules" + autoreconf -fi || die "autoreconf -fi failed" + else + # Required to get correct pkg-config macros with USE="systemd". + # See bugs #663618 & #758050. + eautoreconf + fi +} + +src_configure() { + local myconf=( + --cache-file="${S}"/config.cache + + $(use_enable bind8-stats) + $(use_enable bind8-stats zone-stats) + $(use_enable debug checking) + $(use_enable dnstap) + $(use_enable ipv6) + $(use_enable memclean) + $(use_enable minimal-responses) + $(use_enable mmap) + $(use_enable nsec3) + --disable-packed + $(use_enable radix-tree) + $(use_enable ratelimit) + $(use_enable recvmmsg) + $(use_enable systemd) + $(use_enable tfo tcp-fastopen) + $(use_enable xdp) + $(use_with libevent) + $(use_with ssl) + + --with-cookiesecretsfile="${EPREFIX}${NSD_DBDIR}/cookiesecrets.txt" + --with-dbfile="${EPREFIX}${NSD_DBDIR}/nsd.db" + --with-dbdir="${EPREFIX}${NSD_DBDIR}" + --with-logfile="${EPREFIX}/var/log/nsd.log" + --with-pidfile="${EPREFIX}/run/nsd.pid" + # sharedfilesdir is used for xdp (bpf) objects + --with-sharedfilesdir="${EPREFIX}/usr/lib/nsd" + --with-xfrdfile="${EPREFIX}${NSD_DBDIR}/xfrd.state" + --with-xfrdir="${EPREFIX}${NSD_DBDIR}" + --with-zonelistfile="${EPREFIX}${NSD_DBDIR}/zone.list" + --with-zonesdir="${EPREFIX}${NSD_ZNDIR}" + ) + + # NSD 4.10.x introduced a new zone parser, "simdzone", which + # replaces the older parser that used flex & bison: + # https://github.com/NLnetLabs/simdzone + # It leverages SSE4.2 and/or AVX2 instruction sets for faster + # zone parsing on x86_64 architectures. Other CPU archs will + # use a fallback implementation. + if use amd64; then + myconf+=( + $(use_enable simdzone haswell) + $(use_enable simdzone westmere) + ) + fi + + # If the compiler indicates that time_t is at least 64-bits wide, + # then enable it in the package to support timestamps greater than + # the year 2038 (D_TIME_BITS=64). This configure switch only + # appears on glibc-based userlands. + if use elibc_glibc && tc-has-64bit-time_t; then + myconf+=( --enable-year2038 ) + fi + + econf "${myconf[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + + dodoc doc/{ChangeLog,CREDITS,NSD-4-features,NSD-FOR-BIND-USERS,README,RELNOTES,REQUIREMENTS} + newinitd contrib/nsd.openrc nsd + newconfd contrib/nsd.openrc.conf nsd + newtmpfiles contrib/nsd-tmpfiles.conf nsd.conf + + # Install munin plugin and config, if requested. + if use munin ; then + exeinto /usr/libexec/munin/plugins + doexe contrib/nsd_munin_ + insinto /etc/munin/plugin-conf.d + newins "${FILESDIR}"/nsd.munin-conf nsd_munin + fi + + # Use the upstream-provided systemd service file. + systemd_dounit contrib/nsd.service + + # Remove the /run directory that usually resides on tmpfs and is + # being taken care of by the nsd init script anyway (checkpath). + rm -r "${ED}"/run || die "Failed to remove /run" + + # BPF + dostrip -x /usr/lib/nsd + + keepdir "${NSD_DBDIR}" +} + +pkg_postinst() { + # See eclass/tmpfiles.eclass for info. + tmpfiles_process nsd.conf + + # Database directory + # Writable by nsd:nsd for database updates and zone transfers. + install -d -m 750 -o nsd -g nsd "${EROOT}/${NSD_DBDIR}" + + # Zones directory + # Writable by nsd:nsd for zone file updates (via 'nsd-control write'). + install -d -m 750 -o nsd -g nsd "${EROOT}/${NSD_ZNDIR}" +} diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest index 4a4870af83a6..5d360fd47343 100644 --- a/net-libs/nodejs/Manifest +++ b/net-libs/nodejs/Manifest @@ -3,8 +3,9 @@ DIST node-v20.20.2.tar.xz 42662736 BLAKE2B 3f7c6d7c0acf40f8df9c3326a54d76e70aa25 DIST node-v22.13.1.tar.xz 48041964 BLAKE2B 9695cc6a9b9606a615cdcff42e9b8d5f15c2d12fd0f6c894596a7c6526b3267ab9ea4f7362f8c03039c728cb5f7a3a334cce7fda9293cba06922000542a2800c SHA512 711fbeacceec16b8808e5a41ead496347fee2304fc6ce095ad26c4413f52253c9f3a6cd78080e808c03c3dbe958d64359d2d6bb97a51e1b41e1cff903ce2aeb5 DIST node-v22.23.2.tar.xz 51362684 BLAKE2B ddf19407ada0f94f4cc08814f633099f38044eb9709143d06509eff76b481736a26712c55fe3abc67e2ee18cfd524841b976ba40074699fe13c05d55a265d771 SHA512 92b959098fb7fcfe80776a983d2ae52479692a63c49087c97a0ee2423147a5222b1e1994e98ff650483322cf3a1f1cca8a51f3389993c0ff5fc13b6d1f4ef4ef DIST node-v24.14.0.tar.xz 53987528 BLAKE2B 3d181bdb01c82ea10add1251b97614ea8bb2cc1de52044a639a1955339c4861e84600bd89c0e951f20f4dc61352838142a4d87bd07380936661d89a7f68bc0e5 SHA512 44f8a4758f34373f44daf1498ecb83261788251a43c9063bc3572ebf9bd647adafbc44474127771f5f9e36aa01feee1ad991e01ab3ec5a892607194441f76aaa -DIST node-v24.19.0.tar.xz 55505276 BLAKE2B 7a7caa4fc46e598010c8a27e1463018b2cb65d430888aa7181c5e8db5e213379723b2d29f2f446d542900c0850b0dc3f4dfe98d942d2caae244f6a2a93b58c47 SHA512 82057740cace16e02fa973d5fef5fc265150e3c278cc232d32ad7d5a9163b8cbfdf437de8675b8a174c9883a94a680de2ac1c2184957767efd5add3fa8380751 DIST node-v24.21.0.tar.xz 57357488 BLAKE2B a907f5f23668d4a2839aebb9520417c0c4ee155881546ad8bbd8df7249decd070e4826a2d2465467c4295d8b9e9c5032df5ce337275df562cf02593419030401 SHA512 bb25a4fb9e5d9bc7ce05d2dfe48d9cb3524ce2e61f61105e0a769c56ac18f051825251a72fa5abe8ab5c596b0f2706bafec4d55d0a8a1bfef019f77e46520f03 +DIST node-v24.22.0.tar.xz 57606320 BLAKE2B dcf9469d3ea9c6afc56a70b055d4a9a05a2323e6b7b1efd706e3fd85d67061bcaea8ffa0e0bef5a370eda0ec68d4774c522d858da0ac5f338eb1733c5218d07e SHA512 407c6fa7790fa589f3871343aec97c1413cf4fda8006a28d09f4a4c3172c86796ca2bef7efe05010a03e581a5edbf90bdbb6425ef6f8b3a5f3ad4e0190c6bdd0 DIST node-v26.10.0.tar.xz 62055788 BLAKE2B 8018d789113d5d9594532a607f6e3daa292799a9dfb8b0c659bbb6163d0b9198ddb9e40197b30f7e1b62c073aca80ee3411d1701670384155b3330c7e6077fd0 SHA512 03b8d85bc2ec964db3e738be4682782935221b9c0fdd9a48f39a0241acc7b92bc3c6ef4f89707e451406e9f0a350b821d905b777bcbd5ed9a2d46ecb0d7328e2 DIST node-v26.11.1.tar.xz 63107044 BLAKE2B 3c15e4cbc08c1223a2617154a429c1e478d52f40e41a2429ac4e1f05de2ce0f8236cd50c6a10207e2e556f5fce686f534d5cc525bed806d230af29fedefba485 SHA512 a98c245732fef21dc6c0bafaa032ab1331a5efaed8d7758310dd65bf9d2bd16d5305ab06e1149b7fffe0ad0f0d945b874e30e1b9a72069a0ab064f357a225294 +DIST node-v26.12.0.tar.xz 62434260 BLAKE2B 07cdf5c515fee3e6c312a4b4bcb3b7b2aca66df66a709eed4c48695e04e5413970cee04ce1f8ad43fd2053baf7d1fad4f7cbbeb0920fed2fcecc76333b978f56 SHA512 c3c41462198c6bedc1f2136a7f421a7cc757996ae49486c4c82b7ee75b2294b298c14f7e838b83da04a789f50722247ab448dd3bac8a07ac0d49047ee33c1c05 DIST node-v26.3.0.tar.xz 59811728 BLAKE2B a69f067e63883239a38397484b3f92ff4ca8a1ae651cb4f3328e6f994f16260751f3f64ff6c914aeef837d1f6deade8649979f091a044c86c8467058bb0065d2 SHA512 464a24d2536f3ead35325cfb268355fcc66a95260519174cba847efa4037ae2529c24781595b11aae45810570f41c0d2f2d7db2ed365baccda1017a7131a7efe diff --git a/net-libs/nodejs/files/nodejs-24.21.0-rm-64bit-only-intrinsic-for-32bit.patch b/net-libs/nodejs/files/nodejs-24.21.0-rm-64bit-only-intrinsic-for-32bit.patch new file mode 100644 index 000000000000..0dcc5372a7e0 --- /dev/null +++ b/net-libs/nodejs/files/nodejs-24.21.0-rm-64bit-only-intrinsic-for-32bit.patch @@ -0,0 +1,11 @@ +--- a/deps/histogram/src/hdr_histogram.c 2026-10-14 07:39:45.803977242 -0400 ++++ b/deps/histogram/src/hdr_histogram.c 2026-10-14 07:40:16.922081020 -0400 +@@ -36,7 +36,7 @@ + + /* Runtime-dispatched AVX2 path: keep the rest of this TU at the project's + baseline ISA so the shipped binary does not silently require AVX2. */ +-#if (defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86)) \ ++#if (defined(__x86_64__) || defined(_M_X64) || defined(_M_IX86)) \ + && (defined(__GNUC__) || defined(__clang__)) && !defined(__INTEL_COMPILER) && !defined(_MSC_VER) + # define HDR_HAS_AVX2_DISPATCH 1 + # include <immintrin.h> diff --git a/net-libs/nodejs/files/nodejs-26.12.0-v8-climits.patch b/net-libs/nodejs/files/nodejs-26.12.0-v8-climits.patch new file mode 100644 index 000000000000..d7f77942e7cb --- /dev/null +++ b/net-libs/nodejs/files/nodejs-26.12.0-v8-climits.patch @@ -0,0 +1,12 @@ +https://bugs.gentoo.org/977377 + +--- a/deps/v8/src/base/memcopy.h 2026-10-14 12:47:49.624772990 -0400 ++++ b/deps/v8/src/base/memcopy.h 2026-10-14 12:48:10.919573949 -0400 +@@ -5,6 +5,7 @@ + #ifndef V8_BASE_MEMCOPY_H_ + #define V8_BASE_MEMCOPY_H_ + ++#include <climits> + #include <limits.h> + #include <stdlib.h> + diff --git a/net-libs/nodejs/nodejs-24.19.0.ebuild b/net-libs/nodejs/nodejs-24.21.0-r1.ebuild index 4ff62fecacf0..c6048fd9e3a5 100644 --- a/net-libs/nodejs/nodejs-24.19.0.ebuild +++ b/net-libs/nodejs/nodejs-24.21.0-r1.ebuild @@ -38,19 +38,19 @@ RESTRICT="!test? ( test )" COMMON_DEPEND=">=app-arch/brotli-1.1.0:= dev-db/sqlite:3 - >=dev-cpp/ada-3.3.0:= + >=dev-cpp/ada-4.0.0:= >=dev-cpp/simdutf-7.3.4:= >=dev-libs/libuv-1.52.1:= - >=dev-libs/simdjson-4.6.1:= - >=net-dns/c-ares-1.34.5:= - >=net-libs/nghttp2-1.69.0:= - >=net-libs/nghttp3-1.14.0:= + >=dev-libs/simdjson-4.6.7:= + >=net-dns/c-ares-1.34.8:= + >=net-libs/nghttp2-1.70.0:= + >=net-libs/nghttp3-1.18.0:= virtual/zlib:= corepack? ( !sys-apps/yarn ) - system-icu? ( >=dev-libs/icu-73:= ) + system-icu? ( >=dev-libs/icu-78:= ) system-ssl? ( - >=net-libs/ngtcp2-1.14.0:= - >=dev-libs/openssl-3.5.6:0= + >=net-libs/ngtcp2-1.25.0:= + >=dev-libs/openssl-3.5.8:0= ) !system-ssl? ( >=net-libs/ngtcp2-1.14.0:=[-gnutls] ) || ( @@ -126,6 +126,11 @@ src_prepare() { use ppc64 && PATCHES+=( "${FILESDIR}/${PN}-24.11.1-restore-ppc64be.patch" ) + # Apply 32-bit only fix + # Remove AVX2 code path that uses a 64-bit-only intrinsic. + if [[ ${ARCH} == x86 ]] || { use amd64 && [[ ${ABI} == x86 ]]; }; then + PATCHES+=( "${FILESDIR}"/${P}-rm-64bit-only-intrinsic-for-32bit.patch ) + fi default } diff --git a/net-libs/nodejs/nodejs-26.10.0.ebuild b/net-libs/nodejs/nodejs-24.22.0.ebuild index 67c40e62da4a..ac3ea0349ed8 100644 --- a/net-libs/nodejs/nodejs-26.10.0.ebuild +++ b/net-libs/nodejs/nodejs-24.22.0.ebuild @@ -7,8 +7,8 @@ CONFIG_CHECK="~ADVISE_SYSCALLS" PYTHON_COMPAT=( python3_{13..14} ) PYTHON_REQ_USE="threads(+)" -inherit check-reqs flag-o-matic linux-info ninja-utils pax-utils -inherit python-any-r1 shell-completion toolchain-funcs xdg-utils +inherit check-reqs flag-o-matic linux-info ninja-utils +inherit pax-utils python-any-r1 shell-completion toolchain-funcs xdg-utils DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine" HOMEPAGE="https://nodejs.org/" @@ -19,13 +19,15 @@ if [[ ${PV} == *9999 ]]; then EGIT_REPO_URI="https://github.com/nodejs/node" SLOT="0" else - SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz" + SRC_URI=" + https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz + " SLOT="0/$(ver_cut 1)" KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86 ~x64-macos" S="${WORKDIR}/node-v${PV}" fi -IUSE="cpu_flags_x86_sse2 debug doc +icu +inspector lto +npm pax-kernel +snapshot +ssl system-icu +system-ssl test" +IUSE="corepack cpu_flags_x86_sse2 debug doc +icu +inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl test" REQUIRED_USE="inspector? ( icu ssl ) npm? ( ssl ) system-icu? ( icu ) @@ -36,20 +38,21 @@ RESTRICT="!test? ( test )" COMMON_DEPEND=">=app-arch/brotli-1.1.0:= dev-db/sqlite:3 - >=dev-cpp/ada-4.0.0:= - >=dev-cpp/simdutf-9.0.0:= + >=dev-cpp/ada-3.3.0:= + >=dev-cpp/simdutf-7.3.4:= >=dev-libs/libuv-1.52.1:= - >=dev-libs/simdjson-4.6.11:= - >=net-dns/c-ares-1.34.8:= - >=net-libs/nghttp2-1.70.0:= - >=net-libs/nghttp3-1.18.0:= + >=dev-libs/simdjson-4.6.1:= + >=net-dns/c-ares-1.34.5:= + >=net-libs/nghttp2-1.69.0:= + >=net-libs/nghttp3-1.14.0:= virtual/zlib:= - system-icu? ( >=dev-libs/icu-78:= ) + corepack? ( !sys-apps/yarn ) + system-icu? ( >=dev-libs/icu-73:= ) system-ssl? ( - >=net-libs/ngtcp2-1.25.0:= - >=dev-libs/openssl-3.5.8:0= + >=net-libs/ngtcp2-1.14.0:= + >=dev-libs/openssl-3.5.6:0= ) - !system-ssl? ( >=net-libs/ngtcp2-1.25.0:=[-gnutls] ) + !system-ssl? ( >=net-libs/ngtcp2-1.14.0:=[-gnutls] ) || ( sys-devel/gcc:* llvm-runtimes/libatomic-stub @@ -74,10 +77,7 @@ CHECKREQS_MEMORY="8G" CHECKREQS_DISK_BUILD="22G" PATCHES=( - "${FILESDIR}"/${PN}-26.6.0-gcc17.patch - "${FILESDIR}"/${PN}-26.6.0-format-cstdlib.patch - "${FILESDIR}"/${PN}-26.6.0-v8-climits.patch - "${FILESDIR}"/${PN}-26.8.2-add-missing-funcational-inc.patch + "${FILESDIR}"/${PN}-24.21.0-32-bit.patch ) pkg_pretend() { @@ -92,12 +92,6 @@ pkg_pretend() { pkg_setup() { python-any-r1_pkg_setup linux-info_pkg_setup - # https://github.com/nodejs/node/issues/62676 - Can't build Temporal with system ICU. - if use system-icu; then - ewarn "The ES2026 'Temporal' datetime feature/object is not available when using system-icu." - ewarn "Please consider whether this is desirable for your use case." - ewarn "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal" - fi } src_prepare() { @@ -107,7 +101,7 @@ src_prepare() { # fix compilation on Darwin # https://code.google.com/p/gyp/issues/detail?id=260 - sed -i -e '/append("-arch")/{N;d;}' tools/gyp/pylib/gyp/xcode_emulation.py || die + sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504 local LIBDIR=$(get_libdir) @@ -132,6 +126,12 @@ src_prepare() { use ppc64 && PATCHES+=( "${FILESDIR}/${PN}-24.11.1-restore-ppc64be.patch" ) + # Apply 32-bit only fix + # Remove AVX2 code path that uses a 64-bit-only intrinsic. + if [[ ${ARCH} == x86 ]] || { use amd64 && [[ ${ABI} == x86 ]]; }; then + PATCHES+=( "${FILESDIR}"/${PN}-24.21.0-rm-64bit-only-intrinsic-for-32bit.patch ) + fi + default } @@ -155,21 +155,20 @@ src_configure() { --shared-nghttp3 --shared-ngtcp2 --shared-simdjson + --shared-simdutf --shared-sqlite --shared-zlib ) use debug && myconf+=( --debug ) use lto && myconf+=( --enable-lto ) if use system-icu; then - # No Temporal support: https://github.com/nodejs/node/issues/62676 myconf+=( --with-intl=system-icu ) elif use icu; then - # Full embedded ICU (Temporal works) myconf+=( --with-intl=full-icu ) else - # Default embedded subset (Temporal works, saves space over full-icu) - myconf+=( --with-intl=small-icu ) + myconf+=( --with-intl=none ) fi + use corepack || myconf+=( --without-corepack ) use inspector || myconf+=( --without-inspector ) use npm || myconf+=( --without-npm ) use snapshot || myconf+=( --without-node-snapshot ) @@ -203,8 +202,6 @@ src_configure() { src_compile() { eninja -C out/Release - # There's just a plain make target for the FFI tests, and it doesn't support ninja. - use test && emake build-ffi-tests } src_install() { @@ -244,15 +241,16 @@ src_install() { # Remove various development and/or inappropriate files and # useless docs of dependend packages. - # Strict match for LICENSE files to avoid purging actual logic (e.g. license.js) - # which breaks npm. find "${LIBDIR}"/node_modules \ \( -type d -name examples \) -or \( -type f \( \ - \( -iname "LICEN?E*" -not -name "*.js" -not -name "*.json" \) \ + -iname "LICEN?E*" \ "${find_name[@]}" \ \) \) -exec rm -rf "{}" \; fi + use corepack && + "${D}"/usr/bin/corepack enable --install-directory "${D}"/usr/bin + mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die } @@ -274,16 +272,19 @@ src_test() { test/parallel/test-process-setgroups.js test/parallel/test-process-uid-gid.js test/parallel/test-release-npm.js - # Unreliable when using system libraries and ASLR. - # The variations between snapshot generation passes appear limited to memory - # allocation pointers leaking into the serialised V8 blob array; the actual - # bytecode and engine structures remain consistently... consistent. - test/parallel/test-snapshot-reproducible.js test/parallel/test-socket-write-after-fin-error.js test/parallel/test-strace-openat-openssl.js test/sequential/test-tls-session-timeout.js test/sequential/test-util-debug.js ) + + if has_version "sys-libs/zlib-ng" ; then + elog "Some tests will be skipped due to being known to fail with sys-libs/zlib-ng" + elog + drop_tests+=( test/parallel/test-process-versions.js ) + elog + fi + use inspector || drop_tests+=( test/parallel/test-inspector-emit-protocol-event.js @@ -304,12 +305,4 @@ pkg_postinst() { ewarn "remember to run: source /etc/profile if you plan to use nodejs" ewarn " in your current shell" fi - - if use system-icu; then - ewarn "" - ewarn "Node.js was built with USE='system-icu'." - ewarn "The JavaScript 'Temporal' API has been disabled." - ewarn "If you need full ES2026+ compliance, rebuild with USE='-system-icu'." - ewarn "" - fi } diff --git a/net-libs/nodejs/nodejs-26.10.0-r1.ebuild b/net-libs/nodejs/nodejs-26.12.0.ebuild index 1aa172178186..ad92b0cc4a75 100644 --- a/net-libs/nodejs/nodejs-26.10.0-r1.ebuild +++ b/net-libs/nodejs/nodejs-26.12.0.ebuild @@ -40,9 +40,9 @@ RESTRICT="!test? ( test )" COMMON_DEPEND=">=app-arch/brotli-1.1.0:= dev-db/sqlite:3 >=dev-cpp/ada-4.0.0:= - >=dev-cpp/simdutf-9.0.0:= + >=dev-cpp/simdutf-9.2.1:=[atomic-base64] >=dev-libs/libuv-1.52.1:= - >=dev-libs/simdjson-4.6.11:= + >=dev-libs/simdjson-5.0.3:= >=net-dns/c-ares-1.34.8:= >=net-libs/nghttp2-1.70.0:= >=net-libs/nghttp3-1.18.0:= @@ -50,7 +50,7 @@ COMMON_DEPEND=">=app-arch/brotli-1.1.0:= system-icu? ( >=dev-libs/icu-78:= ) system-ssl? ( >=net-libs/ngtcp2-1.25.0:= - >=dev-libs/openssl-3.5.8:0= + >=dev-libs/openssl-3.5.9:0= ) !system-ssl? ( >=net-libs/ngtcp2-1.25.0:=[-gnutls] ) || ( @@ -78,10 +78,11 @@ CHECKREQS_MEMORY="8G" CHECKREQS_DISK_BUILD="22G" PATCHES=( - "${FILESDIR}"/${PN}-26.6.0-gcc17.patch - "${FILESDIR}"/${PN}-26.6.0-format-cstdlib.patch - "${FILESDIR}"/${PN}-26.6.0-v8-climits.patch - "${FILESDIR}"/${PN}-26.8.2-add-missing-funcational-inc.patch + "${FILESDIR}"/${PN}-26.12.0-v8-climits.patch + "${FILESDIR}"/${PN}-26.11.1-add-missing-funcational-inc.patch + "${FILESDIR}"/${PN}-26.10.0-x86-SSE2-fix.patch + "${FILESDIR}"/${PN}-26.10.0-simdutf-use-system-header.patch + "${FILESDIR}"/${PN}-26.11.1-include-EACCES-in-mkdir-test.patch ) pkg_pretend() { @@ -151,6 +152,20 @@ src_configure() { # https://bugs.gentoo.org/931514 use arm64 && append-flags $(test-flags-CXX -mbranch-protection=none) + # Highway compilation error on riscv + # See: https://bugs.gentoo.org/983938 + # + # Upstream Highway fixed the issue, but V8 has not picked up a Highway + # version that includes it, so Node still hits the old headers. + # this workaround will stop Highway from compiling RVV, and stop the host + # compiler from emitting RVV in non-V8 code. V8 can still emit RVV at runtime + # on machines that have it. + # + # Additionally, force the EMU128 (128-bit scalar emulation) for boards + # without RVV (VisionFive V2 / JH7110). + # This will ensure V8's FixedTag<..., 16> in the JSON stringifier is legal. + use riscv && append-cxxflags -DHWY_DISABLED_TARGETS=HWY_RVV -DHWY_BROKEN_EMU128=0 + local myconf=( --ninja --shared-ada @@ -161,6 +176,7 @@ src_configure() { --shared-nghttp3 --shared-ngtcp2 --shared-simdjson + --shared-simdutf --shared-sqlite --shared-zlib ) @@ -291,6 +307,15 @@ src_test() { test/sequential/test-tls-session-timeout.js test/sequential/test-util-debug.js ) + + if has_version "sys-libs/zlib-ng" ; then + elog "Some tests will be skipped due to being known to fail with sys-libs/zlib-ng" + elog + drop_tests+=( test/parallel/test-process-versions.js ) + drop_tests+=( test/parallel/test-zlib-zip-interop.js ) + elog + fi + use inspector || drop_tests+=( test/parallel/test-inspector-emit-protocol-event.js diff --git a/net-misc/mrouted/mrouted-4.7.ebuild b/net-misc/mrouted/mrouted-4.7.ebuild index 97ffd4a7fd26..c012226549ed 100644 --- a/net-misc/mrouted/mrouted-4.7.ebuild +++ b/net-misc/mrouted/mrouted-4.7.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/troglobit/${PN}/releases/download/${PV}/${P}.tar.gz" LICENSE="Stanford GPL-2" SLOT="0" -KEYWORDS="~amd64 ~ppc ~x86" +KEYWORDS="amd64 ppc x86" IUSE="test" # Needs unshare RESTRICT="!test? ( test ) test" diff --git a/net-misc/sb-hosts/Manifest b/net-misc/sb-hosts/Manifest index 55720c040c59..7f7f26b540d4 100644 --- a/net-misc/sb-hosts/Manifest +++ b/net-misc/sb-hosts/Manifest @@ -1,2 +1,2 @@ -DIST sb-hosts-3.16.119.tar.gz 20727926 BLAKE2B 99273668c880258b6c9c617b1171484edf418e1e901c51d13b7ad740379e66d556109cb218624b2cbd73aef90c938152c7112ffb8c8b4e63b32dd7aff8072244 SHA512 4ca0f1c4324ea32cb609db940ac1faa38b2507eee9f0181738aaa47b8292f3bab4016b3251ec0b52a13586a3e4dbbd71ef04c3d6f8214b940a344f409fb66d74 DIST sb-hosts-3.16.120.tar.gz 20827227 BLAKE2B d32c70df796a21c6c0bfe3cf3c805eff044f9dbbd918ccee400643956cc0593f8d5bad93d98164028788459f59b80172b1f741ba65665dc44e00a0141a3eba70 SHA512 4d7ec1e413c2a395bb7c255daf09be089f4557549de929bd60ca0e7bcbce9b96575bc7de5bd60c3cd698f5331ee49badab6474e884f4e5457a1221b3317d9342 +DIST sb-hosts-3.16.121.tar.gz 21017557 BLAKE2B 40ebd514a3e28999dbf305402a09e1674e26f821b403bc91fd7f4aee10b4f086e9894929f30abae2555e500bf97dead5e15ded5184c04b1ac50acc287e1d7c74 SHA512 d09ddaf5eb89d78ce032d47ac4ae8aba972805e4c7325f309f26511d67b6f2cefc2a79f9aefdec6ce3d6973cc612b68247842bda3f756340cf2013e7195ba98c diff --git a/net-misc/sb-hosts/sb-hosts-3.16.119.ebuild b/net-misc/sb-hosts/sb-hosts-3.16.121.ebuild index 941876ea977f..941876ea977f 100644 --- a/net-misc/sb-hosts/sb-hosts-3.16.119.ebuild +++ b/net-misc/sb-hosts/sb-hosts-3.16.121.ebuild diff --git a/net-proxy/haproxy/Manifest b/net-proxy/haproxy/Manifest index 96393a7dad26..182c9d89d278 100644 --- a/net-proxy/haproxy/Manifest +++ b/net-proxy/haproxy/Manifest @@ -1,14 +1,12 @@ DIST VTest-af198470d7ce482d3d26eb9ca3f246a438739366.tar.gz 196700 BLAKE2B d740e19104a91b4cf978596ccda861974e96c9ed85a49c91e996c5bc6dde40f1cdcf49e6a75243aba7bf59abfd8d2c051a7ee574bab22f9e512d74376c9e1738 SHA512 cdc62271bb75ef7032745a457e1a54a84bcaadce73324272462b647383177338c5c2c8a17993d6344840e8ce0308a7e6f0df9bb766ebe0e8d4ee6dd4914e188c DIST VTest2-3bba149.tar.gz 246954 BLAKE2B 5cb7f059f173c268456ce6b048f0b14304aaa983a72e621af936fea4447e3b8cab09f4d8d33d131884de5d88905f22697e1f2e7696d0cbcf8680f5294a830b98 SHA512 da18cd0a090fac819b0bf1e4829db77de2f8fd6d53fa7e7dbed8a409f0d1538b4b11399785b35daf1a26aa526e87f5a40bfb0469831a04f79ed060d6626e243a -DIST haproxy-3.0.14.tar.gz 4755441 BLAKE2B c58f1ad55ba5765fa79045be0fbdaa20dc3893a6827a49f3e43ad59042afaa6957d4d7335803ac0a12ec5cb512c19f07ab3475fdcb25f8ef4e78fef3605c5eda SHA512 96b033b7ad80f59a6c744217f81a14e738beedb9b723216711294cef5770df8ef29cc1cb4dca82769ca479dbc91c6307e2c88e29efeede56fb5775ca29b650f6 -DIST haproxy-3.0.26.tar.gz 4785855 BLAKE2B c5ee4e8066524f00a1c3a8ab78d6471109bb11800edbe19e237560f2a91ceeaeec9d39d00dd1f2202d8c98a2521029261a1fbedfc6b6f7b1ad9f9a869c528d2f SHA512 d44bfcef5a6987eb11082a27237f7c96218d13a17c818625488f95e1f7261096e75d4f9f1792545ef27b6c025362f30237918ff6ee3ff4e8863bf58597c1d953 DIST haproxy-3.0.27.tar.gz 4794162 BLAKE2B cf2d8d63bae7557e0fe312741b0a12f93e07f8036da5735406ae3655f83efcae1ca31db6804d94f3049490975cb27500f3805cc33e09ef6b2fe695f7cb1f2558 SHA512 ec191aadc42494122f7401a33a4f09e2204b04eeffc6c25512d629a218af111a7c3bb9a75cda2e7ac368ab101aac4d520f1847c115d848a96d1c1ba2da1735bf DIST haproxy-3.0.29.tar.gz 4812323 BLAKE2B 92ac2ebcca960b139c489a18a52de9922ad5d76fe5fa8c239fa4f06066b56407dcb88c010bbb1da91628b6185642067ce7cd5111ac2b22ed85df7108fc05fe40 SHA512 687d7f0009c1d5f2d1d60ef467e86e130a01df8306bc875bcc3370f7d7eb37031a3537149092dccca7cb8d91b310c88e01e3a3e46a0a4cd40e7fcf20f6d9a5d0 +DIST haproxy-3.0.30.tar.gz 4818278 BLAKE2B 5eaecd0e04e379b77331103066abb53d529b32713cbada9311eb1f7984a74dd05870e2c72ef84825f1850916d75f0e7116a6d4622ad3e582f682d9adee3ae0d6 SHA512 9765ae5931ddc8e8ed8b406e275bd47e449f76b566070ace7dfd305e3b0931330f6e883ca43a36b55e1f256567b60788b034d371301c88af30181c1513294045 DIST haproxy-3.0.5.tar.gz 4698022 BLAKE2B c64d8799755fddaf5b45a9e2b67c5f03b25af98fbddde68ab1206c288d9a65f91938810b150c4398ee138d9154c90f1af9fb05c3d0bbc80394e71430e1cc4396 SHA512 8c16b026d5e26fc030178ecd354c68e8ea32c2b971f143cb2aa2f1b2d16fbfc0a27e3975f78873a0cefe3f904b5f1999f8d75622a04234b9cf88f90161d9ea91 -DIST haproxy-3.2.22.tar.gz 5166368 BLAKE2B 6eaf00248ce2ae56f06a6edd7a9240b97dba0d3e24d50fdde20f93c9172bb73bed1b5dc0261a908cdfd986520d3ed7bdf72f39c78291bfd40ba59f8ced1a27e0 SHA512 4802511f8270c4052961828cedf63320229c943c084f15c2863d3246c36e658027083d5785d4d0d4909f04eed0452caece494dfa6321187f6021b1175d4db17f DIST haproxy-3.2.23.tar.gz 5178167 BLAKE2B d2babdb8a857185ffbe7fbeb5c4f251c008fa32fdb8bfe1061e3223e46f15f99ceb2ff8c4b1cf51b51c17530274a9b2f1ffcd5405854ac55a13219dd269a49ec SHA512 228493eb74fa59972fa1bf52bfcd07ba0d0c9f446877dc8492999b55c59dd02834646e810093ae3700ca695498f0c32c5ce64dbf67da10e2d06cb72700ae8c57 DIST haproxy-3.2.25.tar.gz 5195226 BLAKE2B 387cf5158c4d6e4fa592111b3882adc739cbc5609e51b30f1412358d7e36aefa37a8a40412cbf2c4c441bd9b9bbddfd3b9789156b00a5a9b1052c449c6fae122 SHA512 1989fdbc8e4d8f8ac8e6c9bec139282a4f793809d1217a9a75b4264fd7494c0749aded3023dca0ad708ddd0976926081aa6abff461a739492829dda029773a1a -DIST haproxy-3.2.9.tar.gz 5123457 BLAKE2B 37b50abe8f8260453c4b40f6f52186cee276a3a4577d7b6da6a14ea94f43cea6e5a3ab3cb8ec9d6642a5d4d9dc90e94c4757a2306e2a363e0b710db735bc0972 SHA512 fd694adcdccbba54121e686f32cfb2281abfc97c6716835aa35013f05b85033c4967a056f02ecbc6ed613dda44d55373d2577e452079ba4e2bfa7b2fe0fff172 -DIST haproxy-3.4.3.tar.gz 5485483 BLAKE2B 75e8edf463e1e9a53a17aee51ef5995c800fe8e1bc043bb08aee55eb528b937f382f2488a8c7e155bbe5fad979c268cbc427d9317ef2bc9ac117940e7ac5bdd0 SHA512 05fa67d437814618ab8474cc36b9e81aa3c24c4eb644a36870495ccf48e70ff667ef6a752f0bc8ec508cc12b886cef5b9c1a235f78dcc3578c930a1b88ce065c +DIST haproxy-3.2.26.tar.gz 5203667 BLAKE2B e6bd1240cd110aa5ee7e636b8d0e635c715d4742af05a2428f2685aab73bec56a729d3067749462b9deb91e885ef0fe8c3c08e3fbacf7c64e6bb5335b487b18b SHA512 cf91ed1bcaa8870a29cce5b11df3bf42840f48a3d47d7ea9b02c16dab1244743a9c38d62f3d7ae74aabbbb83913115a1605c172c8440173fcf10b5527e5651aa DIST haproxy-3.4.4.tar.gz 5502948 BLAKE2B 92dae6d9fe363bacede99983891ce9c07e93daf2038ce6bcb7a5e7e4437861e6b934ca37694eecb4d3ec3d74bf7e9840e176172ed94b4328e0c13161404f7016 SHA512 1134371d59dd0b494e8737801c545e5c9f14b2275ebea0750d001ee70991e33418c45c2eba43ea8aee39c3f534917bee826d11564e58919a0332beddd4666571 DIST haproxy-3.4.6.tar.gz 5525386 BLAKE2B a784e582cc9d52d88b798a1c30ddbcf8115da7cbbea5d854437e11595a9a400dafffcd7f89ad5b35d6ecb12aa6eebd2d0e73e5bc62154e65390d734dd8a12a38 SHA512 04d20bca04dc6d5b18181c002997fc68e87dfdf2ff309753c7cf3383355ebcfce2d2b62a20f4d0e49bd75d25aa12da8d33f4b39a23b618199787cd1468fc0fe9 +DIST haproxy-3.4.7.tar.gz 5531506 BLAKE2B 3a8fb398ab802a16f57c8a06dfa5e0413336f28d40cb9386b9d5a670aea59fa551cdc08efa15ee0ff8efb238eb11a6c796b34a0cfb331aa6d226ed6bf0ec91e9 SHA512 6e61b05e122764f7a6eaa683ba843815785d2fb6c8d3bed80ec5be15c674777ac1829e09767962ede0c47a8b9bca837f81f9ef80f9e6147e292e26815c52402f diff --git a/net-proxy/haproxy/haproxy-3.0.14.ebuild b/net-proxy/haproxy/haproxy-3.0.14.ebuild deleted file mode 100644 index f3ca6940acd2..000000000000 --- a/net-proxy/haproxy/haproxy-3.0.14.ebuild +++ /dev/null @@ -1,217 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -LUA_COMPAT=( lua5-{1,3,4} luajit ) - -[[ ${PV} == *9999 ]] && SCM="git-r3" -inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing - -MY_P="${PN}-${PV/_beta/-dev}" - -DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments" -HOMEPAGE="http://www.haproxy.org" -if [[ ${PV} != *9999 ]]; then - # This is arbitrary; upstream uses master. Try to update when possible - VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366" - VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}" - SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 1-2)/src/${MY_P}.tar.gz - test? ( https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> VTest-${VTEST_COMMIT}.tar.gz )" - KEYWORDS="amd64 arm64 ~ppc x86" -elif [[ ${PV} == 9999 ]]; then - VTEST_DIR="${WORKDIR}/VTest" - EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/" - EGIT_BRANCH=master -else - VTEST_DIR="${WORKDIR}/VTest" - EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/" - EGIT_BRANCH=master -fi - -S="${WORKDIR}/${MY_P}" - -LICENSE="GPL-2 LGPL-2.1" -SLOT="0/$(ver_cut 1-2)" -IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter -ssl systemd test +threads tools zlib lua 51degrees wurfl" -REQUIRED_USE="pcre-jit? ( pcre ) - lua? ( ${LUA_REQUIRED_USE} ) - ?? ( slz zlib )" -RESTRICT="!test? ( test )" - -BDEPEND="virtual/pkgconfig" -DEPEND=" - crypt? ( virtual/libcrypt:= ) - pcre? ( - dev-libs/libpcre2:= - pcre-jit? ( dev-libs/libpcre2:=[jit] ) - ) - ssl? ( - dev-libs/openssl:0= - ) - systemd? ( sys-apps/systemd ) - zlib? ( virtual/zlib:= ) - lua? ( ${LUA_DEPS} ) - test? ( - dev-libs/libpcre2 - virtual/zlib:= - )" -RDEPEND="${DEPEND} - acct-group/haproxy - acct-user/haproxy" - -DOCS=( CHANGELOG CONTRIBUTING MAINTAINERS README ) -EXTRAS=( admin/halog admin/iprange dev/tcploop dev/hpack ) - -haproxy_use() { - (( $# != 2 )) && die "${FUNCNAME} <USE flag> <make option>" - - usex "${1}" "USE_${2}=1" "USE_${2}=" -} - -pkg_setup() { - use lua && lua-single_pkg_setup - if use net_ns; then - CONFIG_CHECK="~NET_NS" - linux-info_pkg_setup - fi -} - -src_unpack() { - if [[ ${PV} != *9999 ]]; then - default - else - git-r3_src_unpack - EGIT_REPO_URI="https://github.com/vtest/VTest" EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack - fi -} - -src_compile() { - local -a args=( - V=1 - # Switching to PCRE2 by default, bug 838013 - PCRE= - PCRE_JIT= - ) - - if use elibc_musl; then - args+=( TARGET=linux-musl ) - else - args+=( TARGET=linux-glibc ) - fi - - # TODO: PCRE2_WIDTH? - args+=( $(haproxy_use threads THREAD) ) - args+=( $(haproxy_use crypt LIBCRYPT) ) - args+=( $(haproxy_use net_ns NS) ) - args+=( $(haproxy_use pcre PCRE2) ) - args+=( $(haproxy_use pcre-jit PCRE2_JIT) ) - args+=( $(haproxy_use ssl OPENSSL) ) - args+=( $(haproxy_use slz SLZ) ) - args+=( $(haproxy_use zlib ZLIB) ) - args+=( $(haproxy_use lua LUA) ) - args+=( $(haproxy_use 51degrees 51DEGREES) ) - args+=( $(haproxy_use wurfl WURFL) ) - args+=( $(haproxy_use systemd SYSTEMD) ) - args+=( $(haproxy_use prometheus-exporter PROMEX) ) - - # Bug #668002 - if use ppc || use arm || use hppa; then - TARGET_LDFLAGS=-latomic - fi - - emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" EXTRA_OBJS="${EXTRA_OBJS}" \ - TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB="${ESYSROOT}"/usr/$(get_libdir) ${args[@]} - emake -C admin/systemd CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" \ - EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB="${ESYSROOT}"/usr/$(get_libdir) \ - SBINDIR=/usr/sbin - - if use tools ; then - for extra in ${EXTRAS[@]} ; do - if [ "${extra}" = "admin/halog" ]; then - emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" \ - EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" \ - PCRE_LIB="${ESYSROOT}"/usr/$(get_libdir) ${args[@]} admin/halog/halog - elif [ "${extra}" = "dev/hpack" ]; then - emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" \ - EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" \ - PCRE_LIB="${ESYSROOT}"/usr/$(get_libdir) ${args[@]} dev/hpack/{decode,gen-enc,gen-rht} - else - # Those two includes are a workaround for hpack Makefile missing those - emake -C ${extra} \ - CFLAGS="${CFLAGS} -I../../include/ -I../../ebtree/" OPTIMIZE="${CFLAGS}" LDFLAGS="${LDFLAGS}" \ - CC="$(tc-getCC)" ${args[@]} - fi - done - fi -} - -src_test() { - # https://github.com/vtest/VTest/issues/12 - emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} -Wno-error=unused-result" - ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 for tests" - env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j "$(makeopts_jobs)" \ - HAPROXY_PROGRAM="${S}/haproxy" VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel" -} - -src_install() { - dosbin haproxy - - newconfd "${FILESDIR}/${PN}.confd-r1" ${PN} - newinitd "${FILESDIR}/${PN}.initd-r9" ${PN} - - doman doc/haproxy.1 - - systemd_dounit admin/systemd/haproxy.service - - einstalldocs - - # The errorfiles are used by upstream defaults. - insinto /etc/haproxy/errors/ - doins examples/errorfiles/* - - if use doc; then - dodoc doc/*.txt - #if use lua; then - # TODO: doc/lua-api/ - #fi - fi - - if use tools ; then - has admin/halog "${EXTRAS[@]}" && dobin admin/halog/halog - has admin/iprange "${EXTRAS[@]}" && { - newbin admin/iprange/iprange haproxy_iprange - newbin admin/iprange/ip6range haproxy_ip6range - } - has dev/tcploop "${EXTRAS[@]}" && newbin dev/tcploop/tcploop haproxy_tcploop - has dev/hpack "${EXTRAS[@]}" && { - newbin dev/hpack/gen-rht haproxy_gen-rht - newbin dev/hpack/gen-enc haproxy_gen-enc - newbin dev/hpack/decode haproxy_decode - } - fi - - if use examples ; then - docinto examples - dodoc examples/*.cfg - dodoc doc/seamless_reload.txt - fi - - insinto /usr/share/vim/vimfiles/syntax - doins admin/syntax-highlight/haproxy.vim -} - -pkg_postinst() { - if [[ ! -f "${EROOT}/etc/haproxy/haproxy.cfg" ]] ; then - ewarn "You need to create /etc/haproxy/haproxy.cfg before you start the haproxy service." - ewarn "It's best practice to not run haproxy as root, user and group haproxy was therefore created." - ewarn "Make use of them with the \"user\" and \"group\" directives." - - if [[ -d "${EROOT}/usr/share/doc/${PF}" ]]; then - einfo "Please consult the installed documentation for learning the configuration file's syntax." - einfo "The documentation and sample configuration files are installed here:" - einfo " ${EROOT}/usr/share/doc/${PF}" - fi - fi -} diff --git a/net-proxy/haproxy/haproxy-3.0.26.ebuild b/net-proxy/haproxy/haproxy-3.0.30.ebuild index 24adbc376441..24adbc376441 100644 --- a/net-proxy/haproxy/haproxy-3.0.26.ebuild +++ b/net-proxy/haproxy/haproxy-3.0.30.ebuild diff --git a/net-proxy/haproxy/haproxy-3.2.22.ebuild b/net-proxy/haproxy/haproxy-3.2.26.ebuild index 4ec2db1144bf..79ce4007721c 100644 --- a/net-proxy/haproxy/haproxy-3.2.22.ebuild +++ b/net-proxy/haproxy/haproxy-3.2.26.ebuild @@ -13,18 +13,23 @@ MY_P="${PN}-${PV/_beta/-dev}" DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments" HOMEPAGE="http://www.haproxy.org" if [[ ${PV} != *9999 ]]; then - # This is arbitrary; upstream uses master. Try to update when possible - VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366" - VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}" + # This is arbitrary; upstream uses master. Try to update when possible. Only git clones are allowed by VTest upstream. + # git clone https://code.vinyl-cache.org/vtest/VTest2 + # cd VTest2 + # VTEST2_NAME="VTest2-$(git rev-parse --short HEAD)" + # git archive --format=tar.gz --prefix="${VTEST2_NAME}/" -o "${VTEST2_NAME}.tar.gz" HEAD + # scp ${VTEST2_NAME}.tar.gz dev.gentoo.org:~/public_html/distfiles/ + VTEST2_COMMIT="3bba149e0c322585c09db2827a2a6cf0d3b15d54" + VTEST2_DIR="${WORKDIR}/VTest2-${VTEST2_COMMIT:0:7}" SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 1-2)/src/${MY_P}.tar.gz - test? ( https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> VTest-${VTEST_COMMIT}.tar.gz )" + test? ( https://dev.gentoo.org/~idl0r/distfiles/VTest2-${VTEST2_COMMIT:0:7}.tar.gz )" KEYWORDS="~amd64 ~arm64 ~ppc ~x86" elif [[ ${PV} == 9999 ]]; then - VTEST_DIR="${WORKDIR}/VTest" + VTEST2_DIR="${WORKDIR}/VTest2" EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/" EGIT_BRANCH=master else - VTEST_DIR="${WORKDIR}/VTest" + VTEST2_DIR="${WORKDIR}/VTest2" EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/" EGIT_BRANCH=master fi @@ -87,7 +92,8 @@ src_unpack() { default else git-r3_src_unpack - EGIT_REPO_URI="https://github.com/vtest/VTest" EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack + EGIT_REPO_URI="https://code.vinyl-cache.org/vtest/VTest2" EGIT_BRANCH="main" EGIT_CHECKOUT_DIR="${VTEST2_DIR}" \ + git-r3_src_unpack fi } @@ -153,10 +159,10 @@ src_compile() { src_test() { # https://github.com/vtest/VTest/issues/12 - emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} -Wno-error=unused-result" + emake -C "${VTEST2_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} -Wno-error=unused-result" ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 for tests" env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j "$(makeopts_jobs)" \ - HAPROXY_PROGRAM="${S}/haproxy" VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel" + HAPROXY_PROGRAM="${S}/haproxy" VTEST_PROGRAM="${VTEST2_DIR}/vtest" REGTESTS_TYPE="default,bug,devel" } src_install() { @@ -194,6 +200,7 @@ src_install() { newbin dev/hpack/gen-enc haproxy_gen-enc newbin dev/hpack/decode haproxy_decode } + fi if use examples ; then diff --git a/net-proxy/haproxy/haproxy-3.2.9.ebuild b/net-proxy/haproxy/haproxy-3.2.9.ebuild deleted file mode 100644 index 2539e04a9ac0..000000000000 --- a/net-proxy/haproxy/haproxy-3.2.9.ebuild +++ /dev/null @@ -1,220 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -LUA_COMPAT=( lua5-{1,3,4} luajit ) - -[[ ${PV} == *9999 ]] && SCM="git-r3" -inherit toolchain-funcs lua-single systemd linux-info ${SCM} multiprocessing - -MY_P="${PN}-${PV/_beta/-dev}" - -DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments" -HOMEPAGE="http://www.haproxy.org" -if [[ ${PV} != *9999 ]]; then - # This is arbitrary; upstream uses master. Try to update when possible - VTEST_COMMIT="af198470d7ce482d3d26eb9ca3f246a438739366" - VTEST_DIR="${WORKDIR}/VTest-${VTEST_COMMIT}" - SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 1-2)/src/${MY_P}.tar.gz - test? ( https://github.com/vtest/VTest/archive/${VTEST_COMMIT}.tar.gz -> VTest-${VTEST_COMMIT}.tar.gz )" - KEYWORDS="amd64 ~arm64 ~ppc x86" -elif [[ ${PV} == 9999 ]]; then - VTEST_DIR="${WORKDIR}/VTest" - EGIT_REPO_URI="https://git.haproxy.org/git/haproxy.git/" - EGIT_BRANCH=master -else - VTEST_DIR="${WORKDIR}/VTest" - EGIT_REPO_URI="https://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/" - EGIT_BRANCH=master -fi - -S="${WORKDIR}/${MY_P}" - -LICENSE="GPL-2 LGPL-2.1" -SLOT="0/$(ver_cut 1-2)" -IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit prometheus-exporter quic -ssl systemd test +threads tools zlib lua 51degrees wurfl" -REQUIRED_USE="pcre-jit? ( pcre ) - lua? ( ${LUA_REQUIRED_USE} ) - ?? ( slz zlib )" -RESTRICT="!test? ( test )" - -BDEPEND="virtual/pkgconfig" -DEPEND=" - crypt? ( virtual/libcrypt:= ) - pcre? ( - dev-libs/libpcre2:= - pcre-jit? ( dev-libs/libpcre2:=[jit] ) - ) - ssl? ( - dev-libs/openssl:0= - ) - quic? ( - >=dev-libs/openssl-3.5.0:0= - ) - systemd? ( sys-apps/systemd ) - zlib? ( virtual/zlib:= ) - lua? ( ${LUA_DEPS} ) - test? ( - dev-libs/libpcre2 - virtual/zlib:= - )" -RDEPEND="${DEPEND} - acct-group/haproxy - acct-user/haproxy" - -DOCS=( CHANGELOG CONTRIBUTING MAINTAINERS ) -EXTRAS=( admin/halog admin/iprange dev/tcploop dev/hpack ) - -haproxy_use() { - (( $# != 2 )) && die "${FUNCNAME} <USE flag> <make option>" - - usex "${1}" "USE_${2}=1" "USE_${2}=" -} - -pkg_setup() { - use lua && lua-single_pkg_setup - if use net_ns; then - CONFIG_CHECK="~NET_NS" - linux-info_pkg_setup - fi -} - -src_unpack() { - if [[ ${PV} != *9999 ]]; then - default - else - git-r3_src_unpack - EGIT_REPO_URI="https://github.com/vtest/VTest" EGIT_CHECKOUT_DIR="${VTEST_DIR}" git-r3_src_unpack - fi -} - -src_compile() { - local -a args=( - V=1 - # Switching to PCRE2 by default, bug 838013 - PCRE= - PCRE_JIT= - ) - - if use elibc_musl; then - args+=( TARGET=linux-musl ) - else - args+=( TARGET=linux-glibc ) - fi - - # TODO: PCRE2_WIDTH? - args+=( $(haproxy_use threads THREAD) ) - args+=( $(haproxy_use crypt LIBCRYPT) ) - args+=( $(haproxy_use net_ns NS) ) - args+=( $(haproxy_use pcre PCRE2) ) - args+=( $(haproxy_use pcre-jit PCRE2_JIT) ) - args+=( $(haproxy_use ssl OPENSSL) ) - args+=( $(haproxy_use slz SLZ) ) - args+=( $(haproxy_use zlib ZLIB) ) - args+=( $(haproxy_use lua LUA) ) - args+=( $(haproxy_use 51degrees 51DEGREES) ) - args+=( $(haproxy_use wurfl WURFL) ) - args+=( $(haproxy_use prometheus-exporter PROMEX) ) - args+=( $(haproxy_use quic QUIC) ) - - # Bug #668002 - if use ppc || use arm || use hppa; then - TARGET_LDFLAGS=-latomic - fi - - emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" EXTRA_OBJS="${EXTRA_OBJS}" \ - TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB="${ESYSROOT}"/usr/$(get_libdir) ${args[@]} - emake -C admin/systemd CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" \ - EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB="${ESYSROOT}"/usr/$(get_libdir) \ - SBINDIR=/usr/sbin - - if use tools ; then - for extra in ${EXTRAS[@]} ; do - if [ "${extra}" = "admin/halog" ]; then - emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" \ - EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" \ - PCRE_LIB="${ESYSROOT}"/usr/$(get_libdir) ${args[@]} admin/halog/halog - elif [ "${extra}" = "dev/hpack" ]; then - emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" \ - EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" \ - PCRE_LIB="${ESYSROOT}"/usr/$(get_libdir) ${args[@]} dev/hpack/{decode,gen-enc,gen-rht} - else - # Those two includes are a workaround for hpack Makefile missing those - emake -C ${extra} \ - CFLAGS="${CFLAGS} -I../../include/ -I../../ebtree/" OPTIMIZE="${CFLAGS}" LDFLAGS="${LDFLAGS}" \ - CC="$(tc-getCC)" ${args[@]} - fi - done - fi -} - -src_test() { - # https://github.com/vtest/VTest/issues/12 - emake -C "${VTEST_DIR}" CC="$(tc-getCC)" FLAGS="${CFLAGS} -Wno-error=unused-result" - ulimit -n 65536 || die "${PN} requires ulimit -n set to at least 65536 for tests" - env -u A -u D TMPDIR="/tmp" emake reg-tests -- --v --j "$(makeopts_jobs)" \ - HAPROXY_PROGRAM="${S}/haproxy" VTEST_PROGRAM="${VTEST_DIR}/vtest" REGTESTS_TYPE="default,bug,devel" -} - -src_install() { - dosbin haproxy - - newconfd "${FILESDIR}/${PN}.confd-r1" ${PN} - newinitd "${FILESDIR}/${PN}.initd-r9" ${PN} - - doman doc/haproxy.1 - - systemd_dounit admin/systemd/haproxy.service - - einstalldocs - - # The errorfiles are used by upstream defaults. - insinto /etc/haproxy/errors/ - doins examples/errorfiles/* - - if use doc; then - dodoc doc/*.txt - #if use lua; then - # TODO: doc/lua-api/ - #fi - fi - - if use tools ; then - has admin/halog "${EXTRAS[@]}" && dobin admin/halog/halog - has admin/iprange "${EXTRAS[@]}" && { - newbin admin/iprange/iprange haproxy_iprange - newbin admin/iprange/ip6range haproxy_ip6range - } - has dev/tcploop "${EXTRAS[@]}" && newbin dev/tcploop/tcploop haproxy_tcploop - has dev/hpack "${EXTRAS[@]}" && { - newbin dev/hpack/gen-rht haproxy_gen-rht - newbin dev/hpack/gen-enc haproxy_gen-enc - newbin dev/hpack/decode haproxy_decode - } - fi - - if use examples ; then - docinto examples - dodoc examples/*.cfg - dodoc doc/seamless_reload.txt - fi - - insinto /usr/share/vim/vimfiles/syntax - doins admin/syntax-highlight/haproxy.vim -} - -pkg_postinst() { - if [[ ! -f "${EROOT}/etc/haproxy/haproxy.cfg" ]] ; then - ewarn "You need to create /etc/haproxy/haproxy.cfg before you start the haproxy service." - ewarn "It's best practice to not run haproxy as root, user and group haproxy was therefore created." - ewarn "Make use of them with the \"user\" and \"group\" directives." - - if [[ -d "${EROOT}/usr/share/doc/${PF}" ]]; then - einfo "Please consult the installed documentation for learning the configuration file's syntax." - einfo "The documentation and sample configuration files are installed here:" - einfo " ${EROOT}/usr/share/doc/${PF}" - fi - fi -} diff --git a/net-proxy/haproxy/haproxy-3.4.3.ebuild b/net-proxy/haproxy/haproxy-3.4.7.ebuild index f48a71ed0a2e..f48a71ed0a2e 100644 --- a/net-proxy/haproxy/haproxy-3.4.3.ebuild +++ b/net-proxy/haproxy/haproxy-3.4.7.ebuild diff --git a/net-vpn/i2p/i2p-2.13.0.ebuild b/net-vpn/i2p/i2p-2.13.0.ebuild index 503e5047b685..6b6b13b5483e 100644 --- a/net-vpn/i2p/i2p-2.13.0.ebuild +++ b/net-vpn/i2p/i2p-2.13.0.ebuild @@ -17,7 +17,7 @@ SRC_URI=" LICENSE="Apache-2.0 Artistic BSD CC-BY-2.5 CC-BY-3.0 CC-BY-SA-3.0 EPL-1.0 GPL-2 GPL-3 LGPL-2.1 LGPL-3 MIT public-domain WTFPL-2" SLOT="0" -KEYWORDS="~amd64 ~arm64" +KEYWORDS="amd64 ~arm64" LANGS=( ar az bg ca cs da de el en es es-AR et fa fi fr gl he hi hr hu id it ja ko ku mg nb nl nn pl pt pt-BR ro ru sk sl sq sr sv tk tr uk vi zh zh-TW diff --git a/sci-libs/mumps/mumps-5.6.2-r1.ebuild b/sci-libs/mumps/mumps-5.6.2-r1.ebuild index 20f5d9103f20..f3938a435506 100644 --- a/sci-libs/mumps/mumps-5.6.2-r1.ebuild +++ b/sci-libs/mumps/mumps-5.6.2-r1.ebuild @@ -201,14 +201,20 @@ src_test() { } src_install() { - dolib.so lib/lib*$(get_libname)* - use static-libs && dolib.a lib/lib*.a + find lib -maxdepth 1 -name "lib*$(get_libname)*" ! -name "libmpiseq*" \ + -exec dolib.so {} + || die + if use static-libs; then + find lib -maxdepth 1 -name "*.a" ! -name "libmpiseq*" \ + -exec dolib.a {} + || die + fi insinto /usr doins -r include if ! use mpi; then + dolib.so libseq/lib*$(get_libname)* insinto /usr/include/mpiseq doins libseq/*.h + use static-libs && dolib.a libseq/libmpiseq.a fi dodoc README ChangeLog VERSION diff --git a/sci-mathematics/z3/Manifest b/sci-mathematics/z3/Manifest index 35a41de82371..a9106a28ad80 100644 --- a/sci-mathematics/z3/Manifest +++ b/sci-mathematics/z3/Manifest @@ -1,3 +1 @@ -DIST z3-4.16.0.tar.gz 6136396 BLAKE2B bd67a71d762f420eb1f146070b32e90cd8539c58bc0bac8e6eee6baf03327b19806c0444bc52ef15f77c8f247464ac5a97e4a51635a6b3eb0540609c0d382b9d SHA512 7dbcdd04a72f46bc3b6cbac2453b2a43f5ae126287b878ffe37f0573f910a1130c474c5edfa622dab09957f106cf425ab0f7cdfd34d41658599ad50a81ae39dd -DIST z3-5.0.0.tar.gz 6777317 BLAKE2B 1a35863beb2fc194d5641c4073017e2e9c5730faec10e3fcb1b394898c345008caeac248b5b283f4eaf3d9e5d8901a8b4cf672f528b9301fcc22df979a12a0a3 SHA512 c6bed41313a643f2bcad6d6cfda241af948d81326bb41a5a18575170f51c1f4f75afc9e01022df9a6122e71fc54ef813ad2ac9745e40da68c892be68b4777baf DIST z3-5.1.0.tar.gz 6689265 BLAKE2B ff5c8bc0546fb79a66fd336480910103ce41aeb40d5846587a9a1f5247af506c50d3b8e178b224b329895f98f7299ea3de7fc306e6247a422ef6636580f6246e SHA512 03a854f720a56484ab99b8a5517150f1c9106400f54ad758cfa58e3ee2f95e349396a64d4f527a5bb9ee37f10ad9ecfa1916d1f5c921f04089deda409374491b diff --git a/sci-mathematics/z3/z3-4.16.0.ebuild b/sci-mathematics/z3/z3-4.16.0.ebuild deleted file mode 100644 index 45ba6ec7ac45..000000000000 --- a/sci-mathematics/z3/z3-4.16.0.ebuild +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{13..14} ) - -inherit cmake-multilib java-pkg-opt-2 python-single-r1 - -DESCRIPTION="An efficient theorem prover" -HOMEPAGE="https://github.com/Z3Prover/z3/" -SRC_URI="https://github.com/Z3Prover/z3/archive/${P}.tar.gz" -S=${WORKDIR}/z3-${P} - -LICENSE="MIT" -SLOT="0/$(ver_cut 1-2)" -KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86" -IUSE="doc examples gmp isabelle java python" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -RDEPEND=" - ${PYTHON_DEPS} - gmp? ( dev-libs/gmp:0=[cxx(+),${MULTILIB_USEDEP}] ) -" -DEPEND=" - ${RDEPEND} - java? ( >=virtual/jdk-1.8 ) -" -BDEPEND=" - doc? ( app-text/doxygen[dot] ) -" - -CMAKE_BUILD_TYPE=RelWithDebInfo - -src_prepare() { - cmake_src_prepare - java-pkg-opt-2_src_prepare -} - -multilib_src_configure() { - local mycmakeargs=( - -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - -DZ3_USE_LIB_GMP=$(usex gmp) - -DZ3_ENABLE_EXAMPLE_TARGETS=OFF - -DZ3_BUILD_DOCUMENTATION=$(multilib_native_usex doc) - -DZ3_BUILD_PYTHON_BINDINGS=$(multilib_native_usex python) - -DZ3_BUILD_JAVA_BINDINGS=$(multilib_native_usex java) - -DZ3_INCLUDE_GIT_DESCRIBE=OFF - -DZ3_INCLUDE_GIT_HASH=OFF - ) - - multilib_is_native_abi && use java && mycmakeargs+=( -DJAVA_HOME="$(java-config -g JAVA_HOME )" ) - - cmake_src_configure -} - -multilib_src_test() { - cmake_build test-z3 - set -- "${BUILD_DIR}"/test-z3 /a - echo "${@}" >&2 - "${@}" || die -} - -multilib_src_install_all() { - dodoc README.md - use examples && dodoc -r examples - use python && python_optimize - - if use isabelle; then - insinto /usr/share/Isabelle/contrib/${P}/etc - newins - settings <<-EOF - Z3_COMPONENT="\$COMPONENT" - Z3_HOME="${EPREFIX}/usr/bin" - Z3_SOLVER="${EPREFIX}/usr/bin/z3" - Z3_REMOTE_SOLVER="z3" - Z3_VERSION="${PV}" - Z3_INSTALLED="yes" - Z3_NON_COMMERCIAL="yes" - EOF - fi -} - -pkg_postinst() { - if use isabelle; then - if [[ -f ${ROOT}/etc/isabelle/components ]]; then - sed -e "/contrib\/${PN}-[0-9.]*/d" \ - -i "${ROOT}/etc/isabelle/components" || die - cat <<-EOF >> "${ROOT}/etc/isabelle/components" || die - contrib/${P} - EOF - fi - fi -} - -pkg_postrm() { - if use isabelle; then - if [[ ! ${REPLACING_VERSIONS} ]]; then - if [[ -f "${ROOT}/etc/isabelle/components" ]]; then - # Note: this sed should only match the version of this ebuild - # Which is what we want as we do not want to remove the line - # of a new Isabelle component being installed during an upgrade. - sed -e "/contrib\/${P}/d" \ - -i "${ROOT}/etc/isabelle/components" || die - fi - fi - fi -} diff --git a/sci-mathematics/z3/z3-5.0.0.ebuild b/sci-mathematics/z3/z3-5.0.0.ebuild deleted file mode 100644 index 45ba6ec7ac45..000000000000 --- a/sci-mathematics/z3/z3-5.0.0.ebuild +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{13..14} ) - -inherit cmake-multilib java-pkg-opt-2 python-single-r1 - -DESCRIPTION="An efficient theorem prover" -HOMEPAGE="https://github.com/Z3Prover/z3/" -SRC_URI="https://github.com/Z3Prover/z3/archive/${P}.tar.gz" -S=${WORKDIR}/z3-${P} - -LICENSE="MIT" -SLOT="0/$(ver_cut 1-2)" -KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86" -IUSE="doc examples gmp isabelle java python" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -RDEPEND=" - ${PYTHON_DEPS} - gmp? ( dev-libs/gmp:0=[cxx(+),${MULTILIB_USEDEP}] ) -" -DEPEND=" - ${RDEPEND} - java? ( >=virtual/jdk-1.8 ) -" -BDEPEND=" - doc? ( app-text/doxygen[dot] ) -" - -CMAKE_BUILD_TYPE=RelWithDebInfo - -src_prepare() { - cmake_src_prepare - java-pkg-opt-2_src_prepare -} - -multilib_src_configure() { - local mycmakeargs=( - -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - -DZ3_USE_LIB_GMP=$(usex gmp) - -DZ3_ENABLE_EXAMPLE_TARGETS=OFF - -DZ3_BUILD_DOCUMENTATION=$(multilib_native_usex doc) - -DZ3_BUILD_PYTHON_BINDINGS=$(multilib_native_usex python) - -DZ3_BUILD_JAVA_BINDINGS=$(multilib_native_usex java) - -DZ3_INCLUDE_GIT_DESCRIBE=OFF - -DZ3_INCLUDE_GIT_HASH=OFF - ) - - multilib_is_native_abi && use java && mycmakeargs+=( -DJAVA_HOME="$(java-config -g JAVA_HOME )" ) - - cmake_src_configure -} - -multilib_src_test() { - cmake_build test-z3 - set -- "${BUILD_DIR}"/test-z3 /a - echo "${@}" >&2 - "${@}" || die -} - -multilib_src_install_all() { - dodoc README.md - use examples && dodoc -r examples - use python && python_optimize - - if use isabelle; then - insinto /usr/share/Isabelle/contrib/${P}/etc - newins - settings <<-EOF - Z3_COMPONENT="\$COMPONENT" - Z3_HOME="${EPREFIX}/usr/bin" - Z3_SOLVER="${EPREFIX}/usr/bin/z3" - Z3_REMOTE_SOLVER="z3" - Z3_VERSION="${PV}" - Z3_INSTALLED="yes" - Z3_NON_COMMERCIAL="yes" - EOF - fi -} - -pkg_postinst() { - if use isabelle; then - if [[ -f ${ROOT}/etc/isabelle/components ]]; then - sed -e "/contrib\/${PN}-[0-9.]*/d" \ - -i "${ROOT}/etc/isabelle/components" || die - cat <<-EOF >> "${ROOT}/etc/isabelle/components" || die - contrib/${P} - EOF - fi - fi -} - -pkg_postrm() { - if use isabelle; then - if [[ ! ${REPLACING_VERSIONS} ]]; then - if [[ -f "${ROOT}/etc/isabelle/components" ]]; then - # Note: this sed should only match the version of this ebuild - # Which is what we want as we do not want to remove the line - # of a new Isabelle component being installed during an upgrade. - sed -e "/contrib\/${P}/d" \ - -i "${ROOT}/etc/isabelle/components" || die - fi - fi - fi -} diff --git a/sci-ml/datasets/Manifest b/sci-ml/datasets/Manifest index b837c86ec470..fc8d6b458488 100644 --- a/sci-ml/datasets/Manifest +++ b/sci-ml/datasets/Manifest @@ -1,2 +1,3 @@ DIST datasets-4.8.5.gh.tar.gz 2195039 BLAKE2B 3ab237f44f852d5b6ec6b482b6f21332583ab3136991fb361ef4f64f5f23be39c38c0f6af4c1f4db43104adb1f7636a3f6fcb14f637bd73460067e3a19ebd7e4 SHA512 ceb75c23a3b695ab7bcad948b374eac7857d4e21b770b6638c47620d30cb3adc1ae4a7bafbd4076f4770ccb8782a4ff5eb1c2004cb7f6b9b54d42f7e3c169ace DIST datasets-5.0.1.gh.tar.gz 28560928 BLAKE2B 2cab1279486876120f0cd03a17c471d8c7d0d752add5084d3f932b5a9e4aa9d42320419867b6b9f0e567df9237569aa07fc226ec006293cf56864ec70bb1d06c SHA512 07bd6bfd0ada506aec0e334b00795a6fd9e281a010052c5e488e08956a95bc159a7ba4b2e4b005bf01b338dedc845e25dad3dc958d4c7fceacba25732e3b23be +DIST datasets-5.1.0.gh.tar.gz 28641592 BLAKE2B dcd135c96c2938c663412d438fa3b6afade6c37d2f2f4b2bb2905a7a9541cf8b252968522ea65e1b93bf8bd041d5bd6aa769e472e1d977e87b164bafabb905b1 SHA512 e8bb91ea949bad799a432af26a4f60e238cd7bcef1de466aaf61a52c542f0428da222c7355a6af279e7c560595a2f7af1cb7df96c6fd80465bdb0a6037c44849 diff --git a/sci-ml/datasets/datasets-5.1.0.ebuild b/sci-ml/datasets/datasets-5.1.0.ebuild new file mode 100644 index 000000000000..69744eacb517 --- /dev/null +++ b/sci-ml/datasets/datasets-5.1.0.ebuild @@ -0,0 +1,107 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +DISTUTILS_SINGLE_IMPL=1 +inherit distutils-r1 + +DESCRIPTION="Access and share datasets for Audio, Computer Vision, and NLP tasks" +HOMEPAGE="https://pypi.org/project/datasets/" +SRC_URI="https://github.com/huggingface/${PN}/archive/refs/tags/${PV}.tar.gz + -> ${P}.gh.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="torch vision" +REQUIRES_USE="test? ( torch vision )" + +RDEPEND=" + >=sci-ml/huggingface_hub-1.31[${PYTHON_SINGLE_USEDEP}] + <sci-ml/huggingface_hub-2 + $(python_gen_cond_dep ' + dev-python/dill[${PYTHON_USEDEP}] + dev-python/filelock[${PYTHON_USEDEP}] + dev-python/fsspec[${PYTHON_USEDEP}] + dev-python/multiprocess[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/pandas[${PYTHON_USEDEP}] + dev-python/pyarrow[${PYTHON_USEDEP},parquet,snappy] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/tqdm[${PYTHON_USEDEP}] + dev-python/xxhash[${PYTHON_USEDEP}] + vision? ( + dev-python/pillow[${PYTHON_USEDEP}] + ) + ') + torch? ( + >=sci-ml/pytorch-2.13.0[${PYTHON_SINGLE_USEDEP},numpy] + ) +" +DEPEND="${RDEPEND}" +# Missing x test: +# joblib +# joblibspark +# faiss-cpu +# jax +# jaxlib +# polars +# pyav +# pyspark +# py7zr +# s3fs +# tensorflow +# tiktoken +# torchdata +# transformers +BDEPEND="test? ( + sci-ml/torchvision[${PYTHON_SINGLE_USEDEP}] + sci-ml/transformers[${PYTHON_SINGLE_USEDEP}] + $(python_gen_cond_dep ' + sci-ml/tokenizers[${PYTHON_USEDEP}] + dev-python/absl-py[${PYTHON_USEDEP}] + dev-python/decorator[${PYTHON_USEDEP}] + dev-python/elasticsearch[${PYTHON_USEDEP}] + dev-python/h5py[${PYTHON_USEDEP}] + dev-python/lz4[${PYTHON_USEDEP}] + dev-python/moto[${PYTHON_USEDEP}] + dev-python/protobuf:=[${PYTHON_USEDEP}] + dev-python/pytest-datadir[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/soundfile[${PYTHON_USEDEP}] + dev-python/sqlalchemy[${PYTHON_USEDEP}] + dev-python/trimesh[${PYTHON_USEDEP}] + dev-python/zstandard[${PYTHON_USEDEP}] + ') +)" + +EPYTEST_PLUGINS=( pytest-datadir ) + +distutils_enable_tests pytest + +python_test() { + local EPYTEST_IGNORE=( + tests/packaged_modules/test_lance.py + tests/packaged_modules/test_spark.py + tests/packaged_modules/test_iceberg.py + ) + + local EPYTEST_DESELECT=( + tests/io/test_parquet.py::test_parquet_read_geoparquet + tests/packaged_modules/test_folder_based_builder.py::test_data_files_with_different_levels_no_metadata + tests/packaged_modules/test_folder_based_builder.py::test_data_files_with_one_label_no_metadata + tests/test_data_files.py::test_DataFilesList_from_patterns_locally_with_extra_files + tests/test_data_files.py::test_DataFilesDict_from_patterns_locally_or_remote_hashing + tests/test_hub.py::test_delete_from_hub + tests/test_load.py::test_load_dataset_builder + tests/test_arrow_dataset.py::BaseDatasetTest::test_to_parquet_in_memory + tests/test_arrow_dataset.py::BaseDatasetTest::test_to_parquet_on_disk + ) + + epytest -m 'unit' +} diff --git a/sci-ml/huggingface_hub/Manifest b/sci-ml/huggingface_hub/Manifest index 1911d0e863d9..61bd9e8d03e1 100644 --- a/sci-ml/huggingface_hub/Manifest +++ b/sci-ml/huggingface_hub/Manifest @@ -1,3 +1,4 @@ -DIST huggingface_hub-1.26.0.gh.tar.gz 1476348 BLAKE2B 120ff2b4a59fb390dbf7e7e7d4523246273857cb775062a0f39659065211f42784c456f4519110ff823cbb24a47cf7ec15ead38cafa6deffc559b634a6dc8c14 SHA512 d94a5aa75d069008fd362e34eb347450ad3e82481de9be327671a6711fe167cf6f80adb30b2f5c08d1c2cc17b1b3d61ccd5589500d3357791b5856c672770fcf +DIST huggingface_hub-1.26.1.gh.tar.gz 1476488 BLAKE2B 094081f7865203343fce55e9ab02e37e8d2c1a2d85679324b54ad884f6348ccbac78d2727e39afa2f5792b89e62d4cdef541304b95d48422f63d6c2069383159 SHA512 80d9f6b20a1175e14220c06bf764318858e397e80b10aaab56b345297504568a794f231ca3f8fe037ae3d0d3e8df15bc14c280896cfcd1f9d98e237e0565156e DIST huggingface_hub-1.3.7.gh.tar.gz 1024162 BLAKE2B e38d5742b96e1bd72bd91f6a3af16277f4d2ea9182faf126635d3794964622cd52ccddf96e354d0925742b2275d820b3b2f56a715baa62f4e2671335cdcffa18 SHA512 7edc139db6fdfb8add97356e3fe1bce05ed6251d447ab8c770b1696eafeee6594705be7649340fd8970838c51bef23cc9b06e8ef118261a3c5c448b2b242b63d +DIST huggingface_hub-1.31.0.gh.tar.gz 1514455 BLAKE2B ec109276bd1c8f4c1493f9a2cd0324f8bf2a85ddf67f18ddd8608ef9de46bba9f316bd5aad6916725a4c5f5108175535446fb9136e09c764689257f01cc89966 SHA512 52191082da959fef08a0b42cc04549688f67c3edd9eb49872fd95afd922c9fb966a481b7e6988bd48e43879c801c841d9673ada0c7859eb7d54f2ac10df458c7 DIST huggingface_hub-2.1.1.gh.tar.gz 1599894 BLAKE2B e5bd087ff2eef97109ef78da000f12cb2d83a7edcf2fb3cdedd025f6138510b4e9d8097350d14e1240cd1de20882a07a93adfc7fd5680c41c1f0dab2c23cad1c SHA512 b7ac03a3bade8c1c79d4992cef73a79b5d899309698865c3c0c7fb6ff6e879f911ea1908399249a9d1bed74d8e65d0fe186b914515f19c67af6bb4b2cdf69be8 diff --git a/sci-ml/huggingface_hub/huggingface_hub-1.26.0-r1.ebuild b/sci-ml/huggingface_hub/huggingface_hub-1.26.1.ebuild index 56cbeaf54a5c..52bbe5330fed 100644 --- a/sci-ml/huggingface_hub/huggingface_hub-1.26.0-r1.ebuild +++ b/sci-ml/huggingface_hub/huggingface_hub-1.26.1.ebuild @@ -29,11 +29,10 @@ RDEPEND=" dev-python/httpx[${PYTHON_USEDEP}] dev-python/packaging[${PYTHON_USEDEP}] dev-python/pyyaml[${PYTHON_USEDEP}] - dev-python/shellingham[${PYTHON_USEDEP}] dev-python/tqdm[${PYTHON_USEDEP}] dev-python/typer[${PYTHON_USEDEP}] dev-python/typing-extensions[${PYTHON_USEDEP}] - sci-ml/hf_xet[${PYTHON_USEDEP}] + >=sci-ml/hf_xet-1.5.2[${PYTHON_USEDEP}] torch? ( sci-ml/safetensors[${PYTHON_USEDEP}] ) @@ -76,6 +75,8 @@ src_test() { tests/test_cache_no_symlinks.py::TestCacheLayoutIfSymlinksNotSupported::test_scan_and_delete_cache_no_symlinks tests/test_cli.py tests/test_cli_discussions.py + tests/test_cli_framework.py::TestHelpRecords::test_argument_renders_help_and_required + tests/test_cli_framework.py::TestTyperMarkerShim::test_annotated_argument tests/test_commit_scheduler.py::TestCommitScheduler::test_context_manager tests/test_commit_scheduler.py::TestCommitScheduler::test_missing_folder_is_created tests/test_commit_scheduler.py::TestCommitScheduler::test_mocked_push_to_hub diff --git a/sci-ml/huggingface_hub/huggingface_hub-1.31.0.ebuild b/sci-ml/huggingface_hub/huggingface_hub-1.31.0.ebuild new file mode 100644 index 000000000000..52bbe5330fed --- /dev/null +++ b/sci-ml/huggingface_hub/huggingface_hub-1.31.0.ebuild @@ -0,0 +1,116 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +DISTUTILS_SINGLE_IMPL=1 +inherit distutils-r1 + +DESCRIPTION="a client library to interact with the Hugging Face Hub" +HOMEPAGE=" + https://pypi.org/project/huggingface_hub/ +" +SRC_URI="https://github.com/huggingface/${PN}/archive/refs/tags/v${PV}.tar.gz + -> ${P}.gh.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="torch" +REQUIRED_USE="test? ( torch )" + +RDEPEND=" + $(python_gen_cond_dep ' + dev-python/click[${PYTHON_USEDEP}] + dev-python/filelock[${PYTHON_USEDEP}] + dev-python/fsspec[${PYTHON_USEDEP}] + dev-python/httpx[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/tqdm[${PYTHON_USEDEP}] + dev-python/typer[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] + >=sci-ml/hf_xet-1.5.2[${PYTHON_USEDEP}] + torch? ( + sci-ml/safetensors[${PYTHON_USEDEP}] + ) + ') + torch? ( + >=sci-ml/pytorch-2.13.0[${PYTHON_SINGLE_USEDEP},gloo] + ) +" + +BDEPEND=" + test? ( + dev-vcs/git-lfs + $(python_gen_cond_dep ' + dev-python/jedi[${PYTHON_USEDEP}] + ') + ) +" + +EPYTEST_PLUGINS=( pytest-asyncio pytest-mock ) + +distutils_enable_tests pytest + +src_test() { + local EPYTEST_IGNORE=( + tests/test_file_download.py + tests/test_hf_api.py + tests/test_oauth.py + tests/test_snapshot_download.py + tests/test_webhooks_server.py + ) + + local EPYTEST_DESELECT=( + tests/test_buckets + tests/test_inference_client.py::TestOpenAsMimeBytes + tests/test_inference_client.py::TestHeadersAndCookies + tests/test_inference_client.py::test_as_url_with_pil_image + tests/test_cache_layout.py + tests/test_cache_no_symlinks.py::TestCacheLayoutIfSymlinksNotSupported::test_download_no_symlink_existing_file + tests/test_cache_no_symlinks.py::TestCacheLayoutIfSymlinksNotSupported::test_download_no_symlink_new_file + tests/test_cache_no_symlinks.py::TestCacheLayoutIfSymlinksNotSupported::test_scan_and_delete_cache_no_symlinks + tests/test_cli.py + tests/test_cli_discussions.py + tests/test_cli_framework.py::TestHelpRecords::test_argument_renders_help_and_required + tests/test_cli_framework.py::TestTyperMarkerShim::test_annotated_argument + tests/test_commit_scheduler.py::TestCommitScheduler::test_context_manager + tests/test_commit_scheduler.py::TestCommitScheduler::test_missing_folder_is_created + tests/test_commit_scheduler.py::TestCommitScheduler::test_mocked_push_to_hub + tests/test_commit_scheduler.py::TestCommitScheduler::test_sync_and_squash_history + tests/test_commit_scheduler.py::TestCommitScheduler::test_sync_local_folder + tests/test_copy_files.py + tests/test_hf_file_system.py + tests/test_hub_mixin.py + tests/test_hub_mixin_pytorch.py + tests/test_inference_async_client.py::test_async_generate_timeout_error + tests/test_inference_providers.py::TestHFInferenceProvider::test_prepare_mapping_info_unknown_task + tests/test_kernels.py + tests/test_offline_utils.py::test_offline_with_timeout + tests/test_repocard.py + tests/test_utils_cache.py::TestValidCacheUtils::test_scan_cache_on_valid_cache_unix + tests/test_utils_cache.py::TestCorruptedCacheUtils + tests/test_utils_http.py::TestUniqueRequestId + tests/test_utils_http.py::test_client_get_request + tests/test_utils_http.py::test_async_client_get_request + tests/test_utils_pagination.py::TestPagination::test_paginate_hf_api + tests/test_utils_telemetry.py::TestSendTelemetry::test_topic_multiple + tests/test_utils_telemetry.py::TestSendTelemetry::test_topic_normal + tests/test_utils_telemetry.py::TestSendTelemetry::test_topic_quoted + tests/test_utils_telemetry.py::TestSendTelemetry::test_topic_with_subtopic + tests/test_xet_download.py::TestXetFileDownload::test_get_xet_file_metadata_basic + tests/test_xet_download.py::TestXetFileDownload::test_basic_download + tests/test_xet_download.py::TestXetFileDownload::test_try_to_load_from_cache + tests/test_xet_download.py::TestXetFileDownload::test_cache_reuse + tests/test_xet_download.py::TestXetFileDownload::test_download_to_local_dir + tests/test_xet_download.py::TestXetFileDownload::test_force_download + tests/test_xet_download.py::TestXetSnapshotDownload + tests/test_xet_upload.py + tests/test_xet_utils.py::test_xet_token_reset_after_repo_deletion + ) + + distutils-r1_src_test +} diff --git a/sci-ml/tokenizers/tokenizers-0.23.3.ebuild b/sci-ml/tokenizers/tokenizers-0.23.3-r1.ebuild index 109bf7a99092..9450c63883a4 100644 --- a/sci-ml/tokenizers/tokenizers-0.23.3.ebuild +++ b/sci-ml/tokenizers/tokenizers-0.23.3-r1.ebuild @@ -41,6 +41,10 @@ KEYWORDS="~amd64" RDEPEND="dev-libs/oniguruma" BDEPEND=" dev-python/setuptools-rust[${PYTHON_USEDEP}] + test? ( + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/tqdm[${PYTHON_USEDEP}] + ) " EPYTEST_PLUGINS=( ) diff --git a/sys-apps/portage/files/0001-bintree-provide-an-empty-default-for-USER_PATCHES.patch b/sys-apps/portage/files/0001-bintree-provide-an-empty-default-for-USER_PATCHES.patch new file mode 100644 index 000000000000..1cc460bfc61a --- /dev/null +++ b/sys-apps/portage/files/0001-bintree-provide-an-empty-default-for-USER_PATCHES.patch @@ -0,0 +1,44 @@ +From 27abd048bffaac86d6d55478e39afbc9004ac826 Mon Sep 17 00:00:00 2001 +Message-ID: <27abd048bffaac86d6d55478e39afbc9004ac826.1792023243.git.sam@gentoo.org> +From: Kerin Millar <kfm@plushkava.net> +Date: Thu, 15 Oct 2026 01:18:46 +0200 +Subject: [PATCH] bintree: provide an empty default for USER_PATCHES + +As of the referenced commit, the USER_PATCHES key is required for a +package index entry to be trusted. However, the index writer omits empty +values, and no default is defined for the reader to restore the key. + +Consequently, portage extracts metadata from every binary package built +without user patches, even if its mtime and size be unchanged. This +manifested as a severe regression in eclean-pkg performance, though the +impact is not confined to that utility. + +Define an empty default for USER_PATCHES so that otherwise valid index +entries can be trusted. + +[sam: Drop NEWS hunk for backport.] + +Closes: https://bugs.gentoo.org/984255 +Fixes: 2b9c9b6886b86f732d9b5b3b41cd1211c9f28713 +Reported-by: Greg Kubaryk <greg.kubaryk@gmail.com> +Signed-off-by: Kerin Millar <kfm@plushkava.net> +Signed-off-by: Sam James <sam@gentoo.org> +--- + lib/portage/dbapi/bintree.py | 1 + + 1 files changed, 1 insertions(+) + +diff --git a/lib/portage/dbapi/bintree.py b/lib/portage/dbapi/bintree.py +index 9f52e8828..183ac9754 100644 +--- a/lib/portage/dbapi/bintree.py ++++ b/lib/portage/dbapi/bintree.py +@@ -610,6 +610,7 @@ class binarytree: + "RESTRICT": "", + "SLOT": "0", + "USE": "", ++ "USER_PATCHES": "", + } + self._pkgindex_inherited_keys = ["CHOST", "repository"] + +-- +2.56.0 + diff --git a/sys-apps/portage/portage-3.0.83-r1.ebuild b/sys-apps/portage/portage-3.0.83-r1.ebuild new file mode 100644 index 000000000000..d07dbe2dd54c --- /dev/null +++ b/sys-apps/portage/portage-3.0.83-r1.ebuild @@ -0,0 +1,239 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE='bzip2(+),threads(+)' +TMPFILES_OPTIONAL=1 + +inherit meson linux-info python-r1 tmpfiles + +DESCRIPTION="The package management and distribution system for Gentoo" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/portage.git + https://github.com/gentoo/portage.git + " + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.27 + >=dev-build/meson-1.3.0-r1 + >=sys-apps/sed-4.0.5 + sys-devel/patch + !build? ( $(python_gen_impl_dep 'ssl(+)') ) + apidoc? ( + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-epytext[${PYTHON_USEDEP}] + ) + doc? ( + ~app-text/docbook-xml-dtd-4.4 + app-text/xmlto + ) + test? ( + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-vcs/git + ) +" +# Require sandbox-2.2 for bug #288863. +# For whirlpool hash, require python[ssl] (bug #425046). +RDEPEND=" + ${PYTHON_DEPS} + app-admin/scout + >=acct-user/portage-0-r4 + >=app-arch/tar-1.27 + app-arch/zstd + >=app-misc/pax-utils-0.1.17 + dev-lang/python-exec:2 + >=sys-apps/baselayout-2.9 + >=sys-apps/findutils-4.9 + !build? ( + >=app-admin/eselect-1.2 + app-portage/getuto + >=app-shells/bash-5.3:0 + dev-util/debugedit + >=sec-keys/openpgp-keys-gentoo-release-20240703 + >=sys-apps/sed-4.0.5 + rsync-verify? ( + app-alternatives/gpg[ssl(-)] + >=app-portage/gemato-14.5[${PYTHON_USEDEP}] + ) + ) + kernel_linux? ( + sys-apps/util-linux + elibc_glibc? ( >=sys-apps/sandbox-2.2 ) + elibc_musl? ( >=sys-apps/sandbox-2.2 ) + ) + selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) + xattr? ( kernel_linux? ( + >=sys-apps/install-xattr-0.3 + ) ) +" +# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 +# NOTE: FEATURES=installsources requires debugedit and rsync +PDEPEND=" + !build? ( + >=net-misc/rsync-2.6.4 + >=sys-apps/coreutils-6.4 + >=sys-apps/file-5.44-r3 + ) +" + +PATCHES=( + "${FILESDIR}"/0001-bintree-provide-an-empty-default-for-USER_PATCHES.patch +) + +pkg_pretend() { + local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" + + check_extra_config +} + +src_prepare() { + default + + if use prefix-guest; then + sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ + -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ + -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ + -i cnf/repos.conf || die "sed failed" + fi +} + +src_configure() { + local code_only=false + python_foreach_impl my_src_configure +} + +my_src_configure() { + local emesonargs=( + -Dcode-only=${code_only} + -Deprefix="${EPREFIX}" + -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + $(meson_use doc) + $(meson_use apidoc) + $(meson_use gentoo-dev) + $(meson_use ipc) + $(meson_use xattr) + ) + + if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then + emesonargs+=( -Dnative-extensions=true ) + else + emesonargs+=( -Dnative-extensions=false ) + fi + + if use build; then + emesonargs+=( -Drsync-verify=false ) + else + emesonargs+=( $(meson_use rsync-verify) ) + fi + + meson_src_configure + code_only=true +} + +src_compile() { + python_foreach_impl meson_src_compile +} + +src_test() { + local EPYTEST_XDIST=1 + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + python_foreach_impl epytest +} + +src_install() { + python_foreach_impl my_src_install + dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf + + local scripts + mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) + python_replicate_script "${scripts[@]}" +} + +my_src_install() { + local pydirs=( + "${D}$(python_get_sitedir)" + "${ED}/usr/lib/portage/${EPYTHON}" + ) + + meson_src_install + python_fix_shebang "${pydirs[@]}" + python_optimize "${pydirs[@]}" +} + +pkg_preinst() { + if ! use build && [[ -z ${ROOT} ]]; then + python_setup + local sitedir=$(python_get_sitedir) + [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" + env -u DISTDIR \ + -u PORTAGE_OVERRIDE_EPREFIX \ + -u PORTAGE_REPOSITORIES \ + -u PORTDIR \ + -u PORTDIR_OVERLAY \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.default_locations || die + + env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die + + env -u FEATURES -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die + + env -u BINPKG_FORMAT \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die + fi + + # elog dir must exist to avoid logrotate error for bug #415911. + # This code runs in preinst in order to bypass the mapping of + # portage:portage to root:root which happens after src_install. + keepdir /var/log/portage/elog + # This is allowed to fail if the user/group are invalid for prefix users. + if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then + chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} + fi + + if has_version "<${CATEGORY}/${PN}-2.3.77"; then + elog "The emerge --autounmask option is now disabled by default, except for" + elog "portions of behavior which are controlled by the --autounmask-use and" + elog "--autounmask-license options. For backward compatibility, previous" + elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." + elog "Users can get the old behavior simply by adding --autounmask to the" + elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" + elog "change, see https://bugs.gentoo.org/658648." + fi +} + +pkg_postinst() { + # Warn about obsolete "enotice" script, bug #867010 + local bashrc=${EROOT}/etc/portage/profile/profile.bashrc + if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then + eerror "Obsolete 'enotice' script detected!" + eerror "Please remove this from ${bashrc} to avoid problems." + eerror "See bug 867010 for more details." + fi +} diff --git a/sys-kernel/gentoo-sources/Manifest b/sys-kernel/gentoo-sources/Manifest index 23660d5a89bc..08f564173e86 100644 --- a/sys-kernel/gentoo-sources/Manifest +++ b/sys-kernel/gentoo-sources/Manifest @@ -4,18 +4,12 @@ DIST genpatches-6.1-204.extras.tar.xz 4032 BLAKE2B 4daa1f7560285a659f8cff0f0807d DIST genpatches-6.1-205.base.tar.xz 10670964 BLAKE2B 459c9bea4522d0ed5122870193eec75a5e55f45cbb49d49328d70d6f0c99f2fc12ca06838584a4c121e77a80b6717d2ef7b09bb6e6f977e7606e486db924f285 SHA512 5b05408df5905e53a0bfb4a12dde57ce4e57322170a731470d08727fde237963088adece992890c5a8eabae1ecc8884115c8860c388ba5f1936fec407f6f34b4 DIST genpatches-6.1-205.experimental.tar.xz 17712 BLAKE2B e913a01f3ecf569a43c1a1b8e5f9404a6e6da358ee2ca43e522293f883943b6fa5ad4a4daacc14dec8494aea9d89b6ff2815c182aa69c8da16efdfc678c8c628 SHA512 bd6ed5f7d829843956fa01c7051f9ee29a5d8b43ff94fd1bbb33340fc1af696d947be42161490d0abe540bdf260a8ec2c65064709b44c9800b8a5d1ec3975b66 DIST genpatches-6.1-205.extras.tar.xz 2184 BLAKE2B 3eab036fae2bf1167fb5203766dfa8a14193c85a7f7953abe5da2a0969e82eab8541764fe2f159ae12fb38ceda907bc5dc70fdddede2f4612ca008d551126435 SHA512 ff038d8f3417fd083d711ea2e4a0188afb15756c3fe8b99737005dcf7029f4e1ec6ad9fb5d9ab93e80331d1f8d264ab8d0987f68281aa62606b13c6abce21094 -DIST genpatches-6.12-122.base.tar.xz 7158960 BLAKE2B a82b4c8c3051d3e74e018d235070a33c6ad9683c53f9eaf5e363477238e81ea03f20854e0f645a4d0529e18276bd7359ece73a03b563f9d760bf14811608b86d SHA512 a6bfc6a57eef45b3c9becc3e8a277607bec7ff578b38c97653d85e986ec4e622eff2d4f7bc64a4cfb3837b1c18e088639ac8017ecfc8e9e04a33647adc3f3051 -DIST genpatches-6.12-122.experimental.tar.xz 6052 BLAKE2B ae6ba83764b30a4faff1f755bd18161018bfd353fe56fecb1f4ec8562cfb4924a775fb2e3d8646c478c62b92754cfa1b9028b03ead7ea7474cb19ea54999af3e SHA512 3d042c04c7ba0ec4bde65a4fb2704844b9d0a241ba9bfe884d04bd134ce409bf9846d5eac7434e5885ba2f5480005880efe27c0c46e9eb4b2ee4ae7baead7f91 -DIST genpatches-6.12-122.extras.tar.xz 4300 BLAKE2B a2d4485ba7102841d740bb8e4707e05c032d26a12bd9e8976345a549160d29e67eb905777b94155f6e8cf7f8c7cf00ef8ec9f270b39e526235a42e240c532493 SHA512 17bdcdc914bdaae544f68f889888bf31ea23febf5a5708f53bfe00c20bc3197caea33f98f88022ff79c7eb8f931a3bce0330e3030f80a7914ec3a8eb086b50a9 DIST genpatches-6.12-123.base.tar.xz 7506992 BLAKE2B 897d0ffc62d62df3f64ace26168687f184ff9a48e393abee75e2af30d66c209f124d5d5059cfdb85a717054066bdef4c3faa0917e31f148b1e1717b0ec0e5da8 SHA512 37b6356453aff0d64f7f1142bb352740375252ca414170e20a9127dbc53608cb9b0df333bd9de714d3e169e82e4e06673e65e4f6fa6aafe8e941686cac2b8d50 DIST genpatches-6.12-123.experimental.tar.xz 6048 BLAKE2B 32c52e539b3747d4e85ec3ec9c513677303f7bc741e2b02938ee0e09fc1af1d8a6d6d2aee0dbde157c908aebc2d89fae0dccaf258890eaac00d153286e2bf758 SHA512 576f3a92f40059758a8c7fc1604937d183feabf918444026f300ecb4b61aa7031c19aa9e13a00fa202e335a08a38c64bc60ee3e9f79d566874a670bd06f47868 DIST genpatches-6.12-123.extras.tar.xz 4300 BLAKE2B 5646fb0ae62515ed7451acfeac13efb24c74e2c6e0ec823a47ef4632582d1d5529d33cb6ebc855bd8a5349b28b8d511f4774142ba4616cfe3d3a8b71fcccbb67 SHA512 112a67267a62cc354667cacea9656a32d06e09e3499d88bf6d3afb3710bf311a769e63913f5feaef2c99d091e36223c8c80da2c858cc41ea35dce0ddc7d99671 DIST genpatches-6.12-124.base.tar.xz 7806892 BLAKE2B 013ed10cc1d221e4e21787ae9a65813a1927bf33e8a5afa51b2143b1bc700ff566d859831eb7c1d0e16850c22d89912a519f12b25a3da1731fb990dfa24c8fb8 SHA512 33b4e35e70cca1385353ec5533ae827c14775c4d5dd0724f3f7a1e4b1548d63c09397a5232131e50bf495c4e518a001331d2174eb45909a98b94d2a82cfdcfb3 DIST genpatches-6.12-124.experimental.tar.xz 6052 BLAKE2B 9bed830ed879ecb78537cc7a0d29ba81e7207acc41610593708ac79de071bea8ada030b611faea17da502d7e938a124aee8a39537cccc15594dd34fbd40e62b5 SHA512 431486b50c46aeee7d6d4b55877869ab53c205e092486f024af135d58d0f20f467fae1a8fec06b0113549beb08718e8e55cd4aa14239713b2c2626c1630890fb DIST genpatches-6.12-124.extras.tar.xz 2184 BLAKE2B 6094867a70eeddaf69d7b51b59e93e1117da671c10edfa9bc7cfbf59b94a7a4cbb36cb91d0fd1a99d034ffff132f02d973c8dbde3838b5d8c4a18f3baa1d9d06 SHA512 f0030ab28ec5036665ec290561090a0b709f2b16a8f902cf70349cd524405f5f01a0135ee65650d9c5661c165cfc4c16a8befbd3d401df26f5baa74f96b91aef -DIST genpatches-6.18-59.base.tar.xz 4383624 BLAKE2B 120efefe8e08019cc3226bbb3c5e5f6942d2dcc384acbd2eed51d681c3f141908775dae003fac3b00e458c2608cd2ee819c88e3f59b37c8ec9fa9f597cc9ed20 SHA512 871e8beef6b1c9a4fe0445c34a3d240f20aa45ce8a3c53498a7fcd0dee6c9c769770ee34af60acb7bcb2450422acfbaa209f5441e7fff53031cbcea3f07511a2 -DIST genpatches-6.18-59.experimental.tar.xz 6000 BLAKE2B 071d1437e61ec500c5ce1047a561c3798388b1111cc57a1e1a350a7a2c906017452609a1c3b540ca74ef9338b94780b7312a1fadb1b6c7bd7b4e1178af0bc872 SHA512 a5c3c20d1e3df67279ee80a798de165f2af5ca371a32de80f8520a928bc9c55d8eb909bdcd64025fc956cb2237f66ebb2529e2a33d85378487abd1881567e968 -DIST genpatches-6.18-59.extras.tar.xz 2176 BLAKE2B 939ed95fa63011e966cc3b35872e0af458ded656d0591288f00cd91d827fcf8747e990c024027e87e71accc223a2ae35a837b16f64265f37afe86532ea8bc4c8 SHA512 46db5cdbde3c5ea212c2ebd19c9afa1c697054b48d402b3fa1237f3a05575fb6bc716096b8f024ceccd92208d24a5e5d308f117a11dd6604b1b8a8f19b61c21c DIST genpatches-6.18-62.base.tar.xz 4941476 BLAKE2B 691b62f02c811eaf67ce4620fd808e0a0ce7690b0ad9b28cc5364e08c1eb1668fdf05b28646a129e9d92907727aebc9b43a0080e7b3f297b5f3ffc00224c5231 SHA512 0842b61f28934f012ce23c4d6b537739a66e4f7a45f517359ce6f52cdc214b08404a1f32921a182af5bb02e0140c6e946ceaf416d2e3dc7f6cadb32cb13f9868 DIST genpatches-6.18-62.extras.tar.xz 2176 BLAKE2B 8996f041ee709eee05059aa16f9f5189519b0ebb585926a9be3491a9cc08a3850d1fa4b989f6628cba0eb631818f0ff33155db2c32329b5d44d53ec076725bc9 SHA512 d00bf3118b90731eb592e37300bdb18889d3f01f7601f17cbfdfce705c23797fe4638521400c29a8bf7feee3f0af6314d8f80afe3a9c90ec44670655c9a647fc DIST genpatches-6.18-63.base.tar.xz 5063784 BLAKE2B 3645bf1223eb1fb0ca5f594eeeebc3082e9f0454debf698c2484a13356157360fde7a8746ca4854e664648e7f47d5ab863ea36f42d266edce6e9f87505bd7ca3 SHA512 d0b4fe730a5457599ff6e08090659facd87c549d4b42183ef11043124df4afef622843fe3e379596aa900cb6c3bacb5767dcada279bf3fafb61c2c5833996d13 diff --git a/sys-kernel/gentoo-sources/gentoo-sources-6.12.110.ebuild b/sys-kernel/gentoo-sources/gentoo-sources-6.12.110.ebuild deleted file mode 100644 index 43554e80ac29..000000000000 --- a/sys-kernel/gentoo-sources/gentoo-sources-6.12.110.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -ETYPE="sources" -K_WANT_GENPATCHES="base extras experimental" -K_GENPATCHES_VER="122" - -inherit check-reqs kernel-2 -detect_version -detect_arch - -DESCRIPTION="Full sources including the Gentoo patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree" -HOMEPAGE="https://dev.gentoo.org/~mpagano/genpatches" -SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="experimental" - -pkg_pretend() { - CHECKREQS_DISK_BUILD="4G" - check-reqs_pkg_pretend -} - -src_prepare() { - kernel-2_src_prepare - rm "${S}/tools/testing/selftests/tc-testing/action-ebpf" -} - -pkg_postinst() { - kernel-2_pkg_postinst - einfo "For more info on this patchset, and how to report problems, see:" - einfo "${HOMEPAGE}" -} - -pkg_postrm() { - kernel-2_pkg_postrm -} diff --git a/sys-kernel/gentoo-sources/gentoo-sources-6.18.52.ebuild b/sys-kernel/gentoo-sources/gentoo-sources-6.18.52.ebuild deleted file mode 100644 index 90ea10e15ade..000000000000 --- a/sys-kernel/gentoo-sources/gentoo-sources-6.18.52.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -ETYPE="sources" -K_WANT_GENPATCHES="base extras experimental" -K_GENPATCHES_VER="59" - -inherit kernel-2 -detect_version -detect_arch - -DESCRIPTION="Full sources including the Gentoo patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree" -HOMEPAGE="https://dev.gentoo.org/~mpagano/genpatches" -SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="experimental" - -pkg_postinst() { - kernel-2_pkg_postinst - einfo "For more info on this patchset, and how to report problems, see:" - einfo "${HOMEPAGE}" -} - -pkg_postrm() { - kernel-2_pkg_postrm -} diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest index 06c829b28172..033e45ffe16c 100644 --- a/sys-libs/glibc/Manifest +++ b/sys-libs/glibc/Manifest @@ -30,13 +30,13 @@ DIST glibc-2.41.tar.xz 19344868 BLAKE2B 4da62f489ba7a95bb069c2cfea8cf78e4d37e3a5 DIST glibc-2.42-patches-9.tar.xz 86380 BLAKE2B ecc9869d2e3c5e33170c05dc02c47e033450e19f590e4eeb63a5735773fc81b907038a22a990412596505b0040b4378ecffef0eec1db43602d335408b15fcc4b SHA512 92a207e8de80914437e05d59ae070331afc5fe8f48459c0608961277150208f7e4eb73838b1cfdcb737ce9d7fb2b7b96711c33f134d213288316e10430a89fc9 DIST glibc-2.42.tar.xz 19930508 BLAKE2B 6ffabfe7942034a5a4fb5097679cb47bc3431eb2a3864af07cea0cb6aa5db63fbaf6f026b3c9299e00268058a6762eb21e92499f012d552ed87d65c7ffbd0bbe SHA512 73a617db8e0f0958c0575f7a1c5a35b72b7e070b6cbdd02a9bb134995ca7ca0909f1e50d7362c53d2572d72f1879bb201a61d5275bac16136895d9a34ef0c068 DIST glibc-2.42.tar.xz.sig 981 BLAKE2B 890e637c444982b2b07fac4607ce3e9f416c9c7688267ebd135e53878d93db95c609facfa1f347c59f23776cafb4b5df8ffb60235c89be451276202dd676dab2 SHA512 d868220778e98d24aead10a585e6a903892e4d043cd96a404634c8aa03d001d624a46a5c0fe13c86f83f66396a1f360a10990966fe377e98a722914b5087575d -DIST glibc-2.43-patches-3.tar.xz 99856 BLAKE2B 4bc4b2fc9b23e7e2d295b8f87919ed676147d3520b27e773db48200768c3f6647a4383fcf8962881611d622ddbc71fe1bc3732fbb7df5c1968ea78ab047226a6 SHA512 0070d0b8552f8385e3133f522dfb563b9fa5f5663e1cce3c4b99a4e1d9da57a4c0305e3908f1c739f4e17113f4775b253af83fc8ee3885a0305aebc970314edf DIST glibc-2.43-patches-5.tar.xz 134200 BLAKE2B 0f44f17216b4bcd7909465b0534173092a75f2012afc8b2131f4cb45c56be398258a5e0f8e8c010954fc010e42768f92ed484e4cf379452e8f9781bf5c9dd10a SHA512 74f99962e8f8af5543c522248d96c5c6c69ccd3c589fff7b642df14a07217926229dda20b51bd34e9685459884b60960bc5215c0a55bfff3c346e18490556b0a DIST glibc-2.43-patches-6.tar.xz 148584 BLAKE2B afaf74961bd89901ab66722f31adde4eb05e068f8862358e6a14fd58db239fc3d6529c78654d593e5fe92506b3e511dcc1fff83b43da071afac33a9945bcc763 SHA512 de8ea5005afbb85cacf65f3f9516990b7ed2c6abf4c8d81c3910d896050f07bb44a814ec97c734cd2e838f8a4bbba75730d5b74cced26c36bbfcce9bf3a987ba +DIST glibc-2.43-patches-7.tar.xz 157164 BLAKE2B a0073ae0ce9b3cab23e7c5f4382691cd2bf07db497d4514c6a6d54fc2db366a42156da3763250e31bd94331f1b9afd5a8beaf268181818164f47500a7ca4f4a5 SHA512 2e8fa0931368a57a59c0ee7e8f3071518145d1cbf2ca70085da4264b6007822520fc72b020e5132b5926983316a53dc20593886e70a99b71cf5f4cc310fc96c1 DIST glibc-2.43.tar.xz 20297012 BLAKE2B a764edf3d0d52809aa94cf1a8f73341159d226ecc2a595aa3c9e1d1fd4b2d4eb9a599d70bda8812b73d8ef58b39746efdd34026772e38c0f091fe071d461ea98 SHA512 25765f86bf54a22fc69dd13023ec9be59bd7e1f9d6ea1630cf21851898df2043bb8a01538c4b5fdd06495d0163289362b0768b391b0617f709b89a777168291c DIST glibc-2.43.tar.xz.sig 1018 BLAKE2B 99fb3f296795498f6de8090d537e32d8af0bfa75c7d8145ba4c35ca1b54c281fd2b9cb121886aef1800c0a6e508244914a2de67339d113561a9fc2c515110924 SHA512 6e26f0edee146710bcb73c3890c455e8b479009f99d284c43ea695b73bfe45e4ba47d1460300ce8c7496689b0c21a1c77e6359e005957973648b86755160c8f5 -DIST glibc-2.44-patches-3.tar.xz 58912 BLAKE2B 6e7461d19641c49c7335507420854aaaccbf49e87eaa0ee25b3fb63c23c00ed4000c7c87b6c2888e3e209d5a68d37e4662cd8294c49baa3f5d289f933c4ab5ee SHA512 c43b5687c21b7b9b50c10b89d4fdc9fc54a0fba01c0ec32aee9eb3553b76f3e2a09de90661cd1e422df4815202bd73791f0919bb98842d77435167eff3398d29 DIST glibc-2.44-patches-4.tar.xz 85580 BLAKE2B 7ac061192022a41556a26cddb7113a04be57b862ad0a91b92e6b515bfc809669c2821a57e4effc2fa6f8fe7efc25d5b38939efaf39f57ccfbdeb3829ccb4e174 SHA512 c15829b51dc7e63828ea513ee58ea764a45618b1f91e0597e137b725953a64365bed1c5cfa56a28fd19c58df163e526737ca391acde801ff7a148270bec05ff5 +DIST glibc-2.44-patches-5.tar.xz 90032 BLAKE2B 98d236a2bce4269f6b0056756a1e6ca9c30c84634e05c7d733ffd00052e98a33299d8e3653ced12fff40dfceff23f827410fcc194b2a7ccfc5f366e6fd44a5d6 SHA512 37dfba24199ce9b7bd685b9178d2110576585218df701bca122e2785eaee97127781674d1dc2b3387af4610e79ca0c018f0ae31b4769a95f17008d163d72975d DIST glibc-2.44.tar.xz 20620544 BLAKE2B f943e302ad4e44a204e4c5d85460653bec030717c2a502f16764d74bd6d87c280e126f37820b96ec726aff611a8c4e0dba95a7b4d72907adcb0aa88d304e4823 SHA512 963dc0275f7738653379909b64ee32e28f13cca77440f2cf9bd0ab82cb183f6cd1f7376d25cc5442de69b972713bd81bf0e38dbcca9b2a4d6649843e76fd50a5 DIST glibc-2.44.tar.xz.sig 870 BLAKE2B 0ecb4965c61714a49f871b3ac24cafe8d6b79ce039c5364082fd8e61f6ac4102f0fab8b26f130707daf9ec6dad5a9b29198e56533ea3d7d3351538ada3f52f02 SHA512 e2034e369d2c233c9f9e155d6bc4b5e7472cace8a000253514a08b4dac3be6ed59cafe9aa6ceea2bdd07678291528c7937b358f43ab02a6f09422e7498837494 DIST glibc-systemd-20210729.tar.gz 1480 BLAKE2B 37722c7579df782d890e44dbab99c3de52ab466eb9de80d82405e9bb5620bf39ffc8c5f466a435bdb86ef6d36dd7019c0736573916bda6c67d02a2581e0ec979 SHA512 efd75af58b50522c28cdac7abd1fc56555bc1bb042512c90d8340c1ec09c5791b3872a305bf83723252bbde5855b75d958c041083457765c4cfd170732d09238 diff --git a/sys-libs/glibc/glibc-2.43-r2.ebuild b/sys-libs/glibc/glibc-2.43-r6.ebuild index 2cf6a9738d04..fbbba319ee86 100644 --- a/sys-libs/glibc/glibc-2.43-r2.ebuild +++ b/sys-libs/glibc/glibc-2.43-r6.ebuild @@ -12,8 +12,7 @@ TMPFILES_OPTIONAL=1 EMULTILIB_PKG="true" # Gentoo patchset (ignored for live ebuilds) -PATCH_VER=3 -PATCH_DEV=dilfridge +PATCH_VER=7 # gcc mulitilib bootstrap files version GCC_BOOTSTRAP_VER=20201208 @@ -43,7 +42,7 @@ HOMEPAGE="https://www.gnu.org/software/libc/" if [[ ${PV} == *9999 ]]; then inherit git-r3 else - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" SRC_URI="mirror://gnu/glibc/${P}.tar.xz" SRC_URI+=" https://distfiles.gentoo.org/pub/proj/toolchain/glibc/patches/${P}-patches-${PATCH_VER}.tar.xz" SRC_URI+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" @@ -927,7 +926,7 @@ sanity_prechecks() { die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" fi - if [[ ${CTARGET} == *-linux* ]] ; then + if is_linux ; then local run_kv build_kv want_kv run_kv=$(g_get_running_KV) @@ -1620,7 +1619,7 @@ glibc_do_src_install() { if is_hurd && has amd64 $(get_install_abis) ; then # First, let's check for sanity - if [[ -f "${D}$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then + if [[ -f "${D}/$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen." fi @@ -1630,7 +1629,7 @@ glibc_do_src_install() { if is_hurd && has x86 $(get_install_abis) ; then # First, let's check for sanity - if [[ -f "${D}$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then + if [[ -f "${D}/$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then die "Somehow your x86 hurd glibc installed ld.so ... this should not happen." fi @@ -1756,7 +1755,19 @@ src_install() { # # If coreutils is built with USE=multicall, some of these files # will just be wrapper scripts, not actual ELFs we can test. +# +# We allow to skip this sanity check, as insane as that may seem. +# The one use-case I know of is changing the main ABI in-place; +# the test runs existing binaries against the default ld.so, which +# fails then, while the binaries should be executable just fine +# using one of the other multilib variants that we install. +# glibc_sanity_check() { + if [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] ; then + ewarn "Skipping glibc sanity tests. You have been warned. Last 5s to abort." + sleep 5 + else + cd / #228809 # We enter ${ED} so to avoid trouble if the path contains @@ -1791,6 +1802,8 @@ glibc_sanity_check() { done popd >/dev/null + + fi } pkg_preinst() { diff --git a/sys-libs/glibc/glibc-2.43.9999.ebuild b/sys-libs/glibc/glibc-2.43.9999.ebuild index b277ddb1e933..739dd78a06e0 100644 --- a/sys-libs/glibc/glibc-2.43.9999.ebuild +++ b/sys-libs/glibc/glibc-2.43.9999.ebuild @@ -1755,7 +1755,19 @@ src_install() { # # If coreutils is built with USE=multicall, some of these files # will just be wrapper scripts, not actual ELFs we can test. +# +# We allow to skip this sanity check, as insane as that may seem. +# The one use-case I know of is changing the main ABI in-place; +# the test runs existing binaries against the default ld.so, which +# fails then, while the binaries should be executable just fine +# using one of the other multilib variants that we install. +# glibc_sanity_check() { + if [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] ; then + ewarn "Skipping glibc sanity tests. You have been warned. Last 5s to abort." + sleep 5 + else + cd / #228809 # We enter ${ED} so to avoid trouble if the path contains @@ -1790,6 +1802,8 @@ glibc_sanity_check() { done popd >/dev/null + + fi } pkg_preinst() { diff --git a/sys-libs/glibc/glibc-2.44-r2.ebuild b/sys-libs/glibc/glibc-2.44-r4.ebuild index 06849e379a06..b45ea45688a6 100644 --- a/sys-libs/glibc/glibc-2.44-r2.ebuild +++ b/sys-libs/glibc/glibc-2.44-r4.ebuild @@ -12,7 +12,7 @@ TMPFILES_OPTIONAL=1 EMULTILIB_PKG="true" # Gentoo patchset (ignored for live ebuilds) -PATCH_VER=3 +PATCH_VER=5 # gcc mulitilib bootstrap files version GCC_BOOTSTRAP_VER=20201208 @@ -45,7 +45,7 @@ HOMEPAGE="https://www.gnu.org/software/libc/" if [[ ${PV} == *9999 ]]; then inherit git-r3 else - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" SRC_URI="mirror://gnu/glibc/${P}.tar.xz" SRC_URI+=" https://distfiles.gentoo.org/pub/proj/toolchain/glibc/patches/${P}-patches-${PATCH_VER}.tar.xz" SRC_URI+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" @@ -1772,7 +1772,19 @@ src_install() { # # If coreutils is built with USE=multicall, some of these files # will just be wrapper scripts, not actual ELFs we can test. +# +# We allow to skip this sanity check, as insane as that may seem. +# The one use-case I know of is changing the main ABI in-place; +# the test runs existing binaries against the default ld.so, which +# fails then, while the binaries should be executable just fine +# using one of the other multilib variants that we install. +# glibc_sanity_check() { + if [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] ; then + ewarn "Skipping glibc sanity tests. You have been warned. Last 5s to abort." + sleep 5 + else + cd / #228809 # We enter ${ED} so to avoid trouble if the path contains @@ -1807,6 +1819,8 @@ glibc_sanity_check() { done popd >/dev/null + + fi } pkg_preinst() { diff --git a/sys-libs/glibc/glibc-2.44.9999.ebuild b/sys-libs/glibc/glibc-2.44.9999.ebuild index 34cade793207..4e26f162f8fa 100644 --- a/sys-libs/glibc/glibc-2.44.9999.ebuild +++ b/sys-libs/glibc/glibc-2.44.9999.ebuild @@ -1769,7 +1769,19 @@ src_install() { # # If coreutils is built with USE=multicall, some of these files # will just be wrapper scripts, not actual ELFs we can test. +# +# We allow to skip this sanity check, as insane as that may seem. +# The one use-case I know of is changing the main ABI in-place; +# the test runs existing binaries against the default ld.so, which +# fails then, while the binaries should be executable just fine +# using one of the other multilib variants that we install. +# glibc_sanity_check() { + if [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] ; then + ewarn "Skipping glibc sanity tests. You have been warned. Last 5s to abort." + sleep 5 + else + cd / #228809 # We enter ${ED} so to avoid trouble if the path contains @@ -1804,6 +1816,8 @@ glibc_sanity_check() { done popd >/dev/null + + fi } pkg_preinst() { diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild index b100e9e2c259..41200aa5cedf 100644 --- a/sys-libs/glibc/glibc-9999.ebuild +++ b/sys-libs/glibc/glibc-9999.ebuild @@ -1766,7 +1766,19 @@ src_install() { # # If coreutils is built with USE=multicall, some of these files # will just be wrapper scripts, not actual ELFs we can test. +# +# We allow to skip this sanity check, as insane as that may seem. +# The one use-case I know of is changing the main ABI in-place; +# the test runs existing binaries against the default ld.so, which +# fails then, while the binaries should be executable just fine +# using one of the other multilib variants that we install. +# glibc_sanity_check() { + if [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] ; then + ewarn "Skipping glibc sanity tests. You have been warned. Last 5s to abort." + sleep 5 + else + cd / #228809 # We enter ${ED} so to avoid trouble if the path contains @@ -1801,6 +1813,8 @@ glibc_sanity_check() { done popd >/dev/null + + fi } pkg_preinst() { diff --git a/sys-process/procps/procps-4.0.5-r5.ebuild b/sys-process/procps/procps-4.0.5-r6.ebuild index 4bb9c0e847a1..390705fee5b3 100644 --- a/sys-process/procps/procps-4.0.5-r5.ebuild +++ b/sys-process/procps/procps-4.0.5-r6.ebuild @@ -99,6 +99,20 @@ multilib_src_configure() { myeconfargs+=( $(multilib_native_use_enable unicode watch8bit) ) fi + # Needs epoll + if ! use kernel_linux ; then + myeconfargs+=( + --disable-pidwait + ) + fi + + if use kernel_Hurd ; then + # Provided by sys-kernel/hurd + myeconfargs+=( + --disable-w + ) + fi + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" } @@ -126,6 +140,12 @@ multilib_src_install() { mv "${ED}"/usr/bin/kill "${ED}"/bin/ || die fi fi + + if use kernel_Hurd ; then + # Provided by sys-kernel/hurd + rm "${ED}"/usr/bin/{uptime,vmstat} || die + rm "${ED}"/bin/ps || die + fi } multilib_src_install_all() { diff --git a/www-apps/grafana-bin/Manifest b/www-apps/grafana-bin/Manifest index 9ab570876e3f..aa07c55e1524 100644 --- a/www-apps/grafana-bin/Manifest +++ b/www-apps/grafana-bin/Manifest @@ -1,16 +1,10 @@ -DIST grafana-bin-12.1.10.amd64.tar.gz 197856726 BLAKE2B 30b58e7bc5a5f2417f7eacc73afd3d2137a9cec57789a9624aa6b3c7d784e3cf71ea8e6c84b0f4c68a682ec7198f6070679a3dc67a33d28035b061c5041a405e SHA512 b720b4d616b1c0c5cca99fc36565c9b838703e442839f8671aa67e9b659550875aff0a38310e2d1a0c2f7f416e94888a581877d205bad0cb94e7427bb72cc34d -DIST grafana-bin-12.1.10.arm64.tar.gz 188770279 BLAKE2B 09c71994ab2a0c27bca631a09c19c3b144b9bf8a3ad1888156defb03681fefcf62b9e420f78f92994b26009b78a743b96e0dc67af232bf91e17f8ee5d1c70a81 SHA512 88845992e0d1e780df2878199aae0c08ff2d2dae6443e7c7a5ef248708cba159042f933632c34ab63219b9bab848e6874f1a0a537e00a57e2822cf2c79a69284 -DIST grafana-bin-12.2.10.amd64.tar.gz 189823840 BLAKE2B 3473e64d098d9958f8f65c985e8680f42d378688e6edcb6be793276efd2e24c756d2f8e1960db92b67d0fb0edae37e2c0f603cd22f83980ae12a828b309e0e53 SHA512 745774eab24e3b44aa491058dbdaa4bf66e0eefce62294b799f7caefb68fc707286b5d4f6ce9248f7102c7b41f547b302c8dd075cc9267a38c74835b4fb79321 -DIST grafana-bin-12.2.10.arm64.tar.gz 179983791 BLAKE2B ceab99a260bf7b45ffeb559adc9485d37db978b5bb0c93f2b6c4865662f741148467a0ab3c57dcd21f45a79463cf210a7c3f1e6373a056091e88d584d6c562d0 SHA512 609c74afd85c7be8d6336bd830edc126c3cfa094a96aef79a8da0895acf21b80cabd577292eb01900d7264223c1009ff11b14e7d8f3efb6d1f6d6ebe8dc1a3a5 DIST grafana-bin-12.3.11.amd64.tar.gz 271367322 BLAKE2B 582562b6db05f4a3c877916fde24513cda329efd2a0baf7cf8b1bcdde316dcbdc5428e5de655a3014b797e4d813e86edf3db4863bf790ea344fa76bb6efb0e22 SHA512 7750d3729ed22f4d34c5ac1cb594b18ae867b69230a33ebc6796b841de6efb7c9d921aea6657a938a0613c3c1ec2065dc65df9b347261ac6af657342ba68f134 DIST grafana-bin-12.3.11.arm64.tar.gz 256219666 BLAKE2B 16c69a19e31d8cb3b7c6752e8dcc4a17b46c6945abc4e8e0c26eb0f842d0a3e5a5d20972eebda7a375ba3a82b87f05cd4c9193e0be61c4d4c7bbd2d0ab36f5c0 SHA512 c2db1baff009b13728e29afb77ca746b2cf0533826bcb79aca25369e3576c893e31bae1f63cc0444865c48d95b4afb7e2ffe4e5e3c07310588d2b2a1de19f3d5 -DIST grafana-bin-12.4.0.amd64.tar.gz 198219983 BLAKE2B aaa608b477a307d41a28bba5e477bd66a7c954f6d16629ba1960ac26b5a69e129b3e76cf9839f19eda3c06a8c178e1e78b7a17b1f368e77df405aee9d88ec0f9 SHA512 0d0f573b22d8839943c6a346f429dd1db43d676e62460e53f041335500f671371f9cebd015b2197ecc87e4d8b1381fadc7a0d4ee49a7e5259f6b83ce6b46a33f -DIST grafana-bin-12.4.0.arm64.tar.gz 188539753 BLAKE2B adcc241566a2b1b75823a18247b3c5b44d1f33de5744f60e86a407d5205e786f6c2c9f84635f7555e283d80f76df7c6eb7f9233777d449cc7f19e4f5029411a4 SHA512 3888c531bbce11ddd5293219f72a880d7bcf9b0eedc0e1ea8502782fc3971723e83ed2317be4bc9771a9aa807e22255e0778dc97993bdc9a75840bb0219ab263 -DIST grafana-bin-12.4.11.amd64.tar.gz 278432937 BLAKE2B 942ba92666f8759ebd4ab14b92cf8c3db6c2a01913341c2eb9952f2a4f32505fc7dc2ba9069f5712d6e937ac6934fcce1b1b2f0c9658bbe3a994eee126fda6c7 SHA512 30e9bf73cde8a7a69e0612b6ff646fb7eaf357595affabac32f1ae28d4cdfc843ebd68feb0852d87ccd0a77527692083807c5466f94247184b812ceb810fb146 -DIST grafana-bin-12.4.11.arm64.tar.gz 263008442 BLAKE2B 98ac04442d1d1113b2d4e20117e66889d4709fc69a7207408388e1eef339557d180c85d52a386f795b91aa29fdb0b3118fd51621daf50bb85ede449d586c8933 SHA512 8b8120c07835dee50856ce276c9f2fccce927998f84a3c67df4691abc560776bf18ca40f02e738afa8ed0a94a17256b2d55c55adcb5cb1d6257c2a2d75623e51 -DIST grafana-bin-13.1.6.amd64.tar.gz 363471255 BLAKE2B 25dbefa82469294e2637d4faa68f499312e1257d0375990b9b053fdf5c2680a028ac675e51fa85bf7f0bc34470126fd02a1686f919f1df4b2de3674511d24528 SHA512 e2e9f00ec6570c5610b80942da0a8ba4559af6a4433cbc0442c7362189dc0d4406d8d808438b100a87ea571fe9e1ec02ebe11aedf01e331fd3bc053de0d6a495 -DIST grafana-bin-13.1.6.arm64.tar.gz 345423792 BLAKE2B e135c92fcaf32709c1e62dd30d821b565fe8c01fdfbd0756a011739e3060d73a48fae4c8665b1d15ed314c5b5913354081b8b6ca89ea7d0ec350f4a850f4e0b0 SHA512 652ea87690f7f10efc5656e7459bf131d152f3567043edc40097a369ce502bc665a29798a4691f0db24fbf2e666e804a42b9515b76ee585802984cc5345a4629 -DIST grafana-bin-13.2.2.amd64.tar.gz 457508545 BLAKE2B cca133113773ca99da2e1abe91aefc688bb2d49baf38891e3fb2a260efd50417deb4d9b5ddf0e49d94da798d727184e58428f42ed99af7a5b0a30bff82948a25 SHA512 b10c597076a2ed1c8a7e1404860204f00841dc5ff800b2ce89309150a82143fe7e2795409bb4c58a65c4af751c4817e3bb771fefa6a839a202cf2a529191f6d6 -DIST grafana-bin-13.2.2.arm64.tar.gz 427194660 BLAKE2B fd3fc111085c85cc7d957e32d0294c32e932cc4ac569b8d9ae83a132383f2535008eb0c66037157eb54946443c984740cbad39ed402606537387bb929f540cff SHA512 b221d7214cceb962d6c25259d81af73fa92b4161d730c3ae1f70bfd405ced00c28d8502380b5616bdb3700350ba2f5e2b447e964ef310a46fe4bb7df8d1a266c +DIST grafana-bin-12.4.13.amd64.tar.gz 279355634 BLAKE2B 6169b7cab53ff51d243c12ab43e1b30105290188cd607c7199481a131e7f0e9b4d8b8f0fa58cb6326511e16370468c969b25a171c45d0c75bde339e67de3ea08 SHA512 a2bc1278f7af14f7e5440a594c8b078067a37f39134b2b62da8a3cf6e386c47edd8b3cabc7d4a2c40ed740d8823add3b71b30fd6fafd8d24e30e5836516206d3 +DIST grafana-bin-12.4.13.arm64.tar.gz 263926814 BLAKE2B e09cb6783a6decc3fe051b004ef51f5e793d5d433383039eff66d4d796104629d35e6103af7c4acb2eb3bd5ab3e2f228e1fa56df7d37e6c8cae1ab229b6a9b2e SHA512 ab134670a75eccadc6c00a1d300b4f80a50649852ed985614278070ac37647bc417ea750f8498e9d080be8cca23151ed6278bfebfda542d86524ea58019ff94d +DIST grafana-bin-13.1.8.amd64.tar.gz 365079934 BLAKE2B 8eb47fb08cfe7882475aa78b456da8a5ef79edca1c30f0ffc8be8791de1a1abac0bcb82cc8f34c725e7d2a0f9d826578c4199a805bfc6cf331fc26ded827dc26 SHA512 b354a8df7a6f9d4ffc0f8344be8211c93c8a607e17862f92da34d8a5a25b563443161816e475ca141659791aecb40b422e40ab09d30d3723820031f8514a5f9d +DIST grafana-bin-13.1.8.arm64.tar.gz 346985801 BLAKE2B 546d3bff60267ae1a2752173c319bfa5881f721fbafb0c90b549a77d3501d17ce1d8853211693d2448316164cef109fca4567efe1825259bd5a1e306ba03717e SHA512 ff08ae7e980e1d23e44520a75dc606195423d2bab36a3b8c2de40439eb30e468fa89d5a21de6ca781a9f6b5dc8574888fe2ca345cef1ee04ca6aa6b52561af8f +DIST grafana-bin-13.2.4.amd64.tar.gz 461295109 BLAKE2B 0085e63e1813edf77570d0faf69f953dc6f237fe3e91a3a81b679c7a656368ebdee2cd162e61d5f651cfbe23b7e8c423b29ba2634eb1816501da1a925ae256c1 SHA512 25a84f8f11b9f2e65ce7e815e6487d635d23a7bded7039fea77d7e011ed6ddd816fcc0fb22694f7fedda45a7112d1b0b75d4743dbd7df43cde4c3995c8197692 +DIST grafana-bin-13.2.4.arm64.tar.gz 430634089 BLAKE2B a3194f2b954aa57634782f23818b33c3ade2b6403e0ce46e43cdc248c02a28d96df509012cf2a57d97fcd90c6d5b2aeac4d860dd5909bc5440ef101e03023014 SHA512 cb1de6ecf990a1c13b8387a447c69e21a34a2d5ca5c6fedb73ed59b6e2fc6458ae6dc8372bb3b49af17575e1f97b9ef26926eedc74601b180b55c17a4c31a0e5 DIST grafana_12.4.3+security-02_25720634919_linux_amd64.tar.gz 271616696 BLAKE2B 58a7cb2a7c480f538a172b5b562dd43cba4dac52043749264c3adee7852b9d848a1ba309dc5a16ce513e8e3c073e308f7c43b0432715e3784e1a2494397c9549 SHA512 e185a116d902b4ea54474614078ece0d002a1ff3b8629359b8c12929c2ed285b32a9143d60dea5a243bef54c34b74a757c9630f9700e3107a3d7bd3bd9053d7d DIST grafana_12.4.3+security-02_25720634919_linux_arm64.tar.gz 256899119 BLAKE2B b2b367a1e83376bd2470b691a25572858ceba2ad95ea741aabbfeeb8bcf9ab0b20570179c4399cf9bd7e3c815bd2134f0a5fd28a61bf8349be3a4ebfdddee341 SHA512 91a457d187010866bb332705a9505fef580a83c3be1745093ceadc155d7c9b93c9024e4d048df5a815281f8d86debc643b9a50069cd7c992d5e334121d0ba816 diff --git a/www-apps/grafana-bin/grafana-bin-12.1.10.ebuild b/www-apps/grafana-bin/grafana-bin-12.1.10.ebuild deleted file mode 100644 index aec5fcec180c..000000000000 --- a/www-apps/grafana-bin/grafana-bin-12.1.10.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit systemd - -MY_PN=${PN/-bin/} -MY_PV=${PV/_beta/-beta} - -DESCRIPTION="Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB" -HOMEPAGE="https://grafana.org" -SRC_URI=" -amd64? ( - https://dl.grafana.com/oss/release/grafana-${PV}.linux-amd64.tar.gz -> ${P}.amd64.tar.gz -) -arm64? ( - https://dl.grafana.com/oss/release/grafana-${PV}.linux-arm64.tar.gz -> ${P}.arm64.tar.gz -) -" -S=${WORKDIR}/${MY_PN}-${MY_PV} - -LICENSE="AGPL-3" -SLOT="0" -KEYWORDS="-* ~amd64 ~arm64" -RESTRICT="mirror" - -DEPEND="acct-group/grafana - acct-user/grafana" -RDEPEND="${DEPEND} - media-libs/fontconfig" - -QA_PREBUILT="usr/bin/grafana*" -QA_PRESTRIPPED=${QA_PREBUILT} - -src_install() { - keepdir /etc/grafana - insinto /etc/grafana - newins "${S}"/conf/sample.ini grafana.ini - rm "${S}"/conf/sample.ini || die - - # Frontend assets - insinto /usr/share/${MY_PN} - doins -r public conf - - dobin bin/grafana-cli - dobin bin/grafana - dobin bin/grafana-server - - newconfd "${FILESDIR}"/grafana-r1.confd grafana - newinitd "${FILESDIR}"/grafana.initd2 grafana - systemd_newunit "${FILESDIR}"/grafana.service grafana.service - - keepdir /var/{lib,log}/grafana - keepdir /var/lib/grafana/{dashboards,plugins} - fowners grafana:grafana /var/{lib,log}/grafana - fowners grafana:grafana /var/lib/grafana/{dashboards,plugins} - fperms 0750 /var/{lib,log}/grafana - fperms 0750 /var/lib/grafana/{dashboards,plugins} -} - -pkg_postinst() { - if [[ -z "${REPLACING_VERSIONS}" ]]; then - # This is a new installation - - elog "${PN} has built-in log rotation. Please see [log.file] section of" - elog "/etc/grafana/grafana.ini for related settings." - elog - elog "You may add your own custom configuration for app-admin/logrotate if you" - elog "wish to use external rotation of logs. In this case, you also need to make" - elog "sure the built-in rotation is turned off." - fi -} diff --git a/www-apps/grafana-bin/grafana-bin-12.2.10.ebuild b/www-apps/grafana-bin/grafana-bin-12.2.10.ebuild deleted file mode 100644 index aec5fcec180c..000000000000 --- a/www-apps/grafana-bin/grafana-bin-12.2.10.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit systemd - -MY_PN=${PN/-bin/} -MY_PV=${PV/_beta/-beta} - -DESCRIPTION="Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB" -HOMEPAGE="https://grafana.org" -SRC_URI=" -amd64? ( - https://dl.grafana.com/oss/release/grafana-${PV}.linux-amd64.tar.gz -> ${P}.amd64.tar.gz -) -arm64? ( - https://dl.grafana.com/oss/release/grafana-${PV}.linux-arm64.tar.gz -> ${P}.arm64.tar.gz -) -" -S=${WORKDIR}/${MY_PN}-${MY_PV} - -LICENSE="AGPL-3" -SLOT="0" -KEYWORDS="-* ~amd64 ~arm64" -RESTRICT="mirror" - -DEPEND="acct-group/grafana - acct-user/grafana" -RDEPEND="${DEPEND} - media-libs/fontconfig" - -QA_PREBUILT="usr/bin/grafana*" -QA_PRESTRIPPED=${QA_PREBUILT} - -src_install() { - keepdir /etc/grafana - insinto /etc/grafana - newins "${S}"/conf/sample.ini grafana.ini - rm "${S}"/conf/sample.ini || die - - # Frontend assets - insinto /usr/share/${MY_PN} - doins -r public conf - - dobin bin/grafana-cli - dobin bin/grafana - dobin bin/grafana-server - - newconfd "${FILESDIR}"/grafana-r1.confd grafana - newinitd "${FILESDIR}"/grafana.initd2 grafana - systemd_newunit "${FILESDIR}"/grafana.service grafana.service - - keepdir /var/{lib,log}/grafana - keepdir /var/lib/grafana/{dashboards,plugins} - fowners grafana:grafana /var/{lib,log}/grafana - fowners grafana:grafana /var/lib/grafana/{dashboards,plugins} - fperms 0750 /var/{lib,log}/grafana - fperms 0750 /var/lib/grafana/{dashboards,plugins} -} - -pkg_postinst() { - if [[ -z "${REPLACING_VERSIONS}" ]]; then - # This is a new installation - - elog "${PN} has built-in log rotation. Please see [log.file] section of" - elog "/etc/grafana/grafana.ini for related settings." - elog - elog "You may add your own custom configuration for app-admin/logrotate if you" - elog "wish to use external rotation of logs. In this case, you also need to make" - elog "sure the built-in rotation is turned off." - fi -} diff --git a/www-apps/grafana-bin/grafana-bin-12.4.0.ebuild b/www-apps/grafana-bin/grafana-bin-12.4.0.ebuild deleted file mode 100644 index aec5fcec180c..000000000000 --- a/www-apps/grafana-bin/grafana-bin-12.4.0.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit systemd - -MY_PN=${PN/-bin/} -MY_PV=${PV/_beta/-beta} - -DESCRIPTION="Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB" -HOMEPAGE="https://grafana.org" -SRC_URI=" -amd64? ( - https://dl.grafana.com/oss/release/grafana-${PV}.linux-amd64.tar.gz -> ${P}.amd64.tar.gz -) -arm64? ( - https://dl.grafana.com/oss/release/grafana-${PV}.linux-arm64.tar.gz -> ${P}.arm64.tar.gz -) -" -S=${WORKDIR}/${MY_PN}-${MY_PV} - -LICENSE="AGPL-3" -SLOT="0" -KEYWORDS="-* ~amd64 ~arm64" -RESTRICT="mirror" - -DEPEND="acct-group/grafana - acct-user/grafana" -RDEPEND="${DEPEND} - media-libs/fontconfig" - -QA_PREBUILT="usr/bin/grafana*" -QA_PRESTRIPPED=${QA_PREBUILT} - -src_install() { - keepdir /etc/grafana - insinto /etc/grafana - newins "${S}"/conf/sample.ini grafana.ini - rm "${S}"/conf/sample.ini || die - - # Frontend assets - insinto /usr/share/${MY_PN} - doins -r public conf - - dobin bin/grafana-cli - dobin bin/grafana - dobin bin/grafana-server - - newconfd "${FILESDIR}"/grafana-r1.confd grafana - newinitd "${FILESDIR}"/grafana.initd2 grafana - systemd_newunit "${FILESDIR}"/grafana.service grafana.service - - keepdir /var/{lib,log}/grafana - keepdir /var/lib/grafana/{dashboards,plugins} - fowners grafana:grafana /var/{lib,log}/grafana - fowners grafana:grafana /var/lib/grafana/{dashboards,plugins} - fperms 0750 /var/{lib,log}/grafana - fperms 0750 /var/lib/grafana/{dashboards,plugins} -} - -pkg_postinst() { - if [[ -z "${REPLACING_VERSIONS}" ]]; then - # This is a new installation - - elog "${PN} has built-in log rotation. Please see [log.file] section of" - elog "/etc/grafana/grafana.ini for related settings." - elog - elog "You may add your own custom configuration for app-admin/logrotate if you" - elog "wish to use external rotation of logs. In this case, you also need to make" - elog "sure the built-in rotation is turned off." - fi -} diff --git a/www-apps/grafana-bin/grafana-bin-12.4.11.ebuild b/www-apps/grafana-bin/grafana-bin-12.4.13.ebuild index 041649aafa2a..041649aafa2a 100644 --- a/www-apps/grafana-bin/grafana-bin-12.4.11.ebuild +++ b/www-apps/grafana-bin/grafana-bin-12.4.13.ebuild diff --git a/www-apps/grafana-bin/grafana-bin-13.1.6.ebuild b/www-apps/grafana-bin/grafana-bin-13.1.8.ebuild index 67b97cf6f568..67b97cf6f568 100644 --- a/www-apps/grafana-bin/grafana-bin-13.1.6.ebuild +++ b/www-apps/grafana-bin/grafana-bin-13.1.8.ebuild diff --git a/www-apps/grafana-bin/grafana-bin-13.2.2.ebuild b/www-apps/grafana-bin/grafana-bin-13.2.4.ebuild index ccf099e3ffec..ccf099e3ffec 100644 --- a/www-apps/grafana-bin/grafana-bin-13.2.2.ebuild +++ b/www-apps/grafana-bin/grafana-bin-13.2.4.ebuild diff --git a/www-client/firefox/firefox-158.0.ebuild b/www-client/firefox/firefox-158.0.ebuild index d29fa54d681a..8ddc5b227aeb 100644 --- a/www-client/firefox/firefox-158.0.ebuild +++ b/www-client/firefox/firefox-158.0.ebuild @@ -106,7 +106,7 @@ BDEPEND="${PYTHON_DEPS} app-arch/unzip app-arch/zip >=dev-util/cbindgen-0.29.4 - net-libs/nodejs + net-libs/nodejs[ssl] virtual/pkgconfig amd64? ( >=dev-lang/nasm-2.14 ) x86? ( >=dev-lang/nasm-2.14 ) diff --git a/www-client/librewolf/librewolf-158.0_p1.ebuild b/www-client/librewolf/librewolf-158.0_p1.ebuild index 57bc5489a6e0..59f73cc326fe 100644 --- a/www-client/librewolf/librewolf-158.0_p1.ebuild +++ b/www-client/librewolf/librewolf-158.0_p1.ebuild @@ -57,7 +57,7 @@ RESTRICT=" " 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-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 diff --git a/www-client/ungoogled-chromium/Manifest b/www-client/ungoogled-chromium/Manifest index aad06995a217..5e08f79a6b43 100644 --- a/www-client/ungoogled-chromium/Manifest +++ b/www-client/ungoogled-chromium/Manifest @@ -1,6 +1,7 @@ DIST chromium-154.0.8037.57-linux.tar.xz 1929858224 BLAKE2B 76c0a1f7f5ce5b5dbb9d35426791186c74fc0a38e0b33d50e433e87cc1f845a49bc32252d9336a161b38b9b3c8056cdef4c5c240305433a68e9442bb542251cc SHA512 7c9e7bb2cf5072bf2dada3c42a2b6aabfec8360bfff546dd13fb3223e2d58d55b688d7bdda8603521615a4f3ed0c3cb973996bbbd4e9c6a59f2488d05c1e3aa5 DIST chromium-154.0.8037.92-linux.tar.xz 1929777968 BLAKE2B 1058fc666f44f3d14fff32ab0ad4e57a933636d661c6aa53c620216e5ba6672b31d4d27af956f0183dad09068d07ef991ffc6b6f67ea4eb8d81a075f6d68fbf4 SHA512 bcd1557421e1d81df77530f53031bc3cc55fe318e6a35f187fc9b3e78583dd4af8316d880be688271bf326b531a20810601095798deff0f11d5d7654e57e657e DIST chromium-154.0.8037.97-linux.tar.xz 1929902700 BLAKE2B a72ba0c8eee9816513ce64d5b569313f73bbcd9b2e55e4be3f4d4a10507cfac1ac3dccb6c61272235b146bc3a895324345efe6b83881b98b947bda50a3c36881 SHA512 a2d441e02e31629b70d8cb2c6e4cb6bae9fbcaf19483469c7e320d6fdfb5e3da57e7dbee396cf0bf5b36db78d422b0ac019d4570cd39050d4d68d7c584786f83 +DIST chromium-155.0.8059.79-linux.tar.xz 2021153524 BLAKE2B abdfd55d48d15f7a2401cff42f99d204f96ac7f7e53514fbcfc06fd97472c9015e482903b04ba8741a923fb6e7893189b367fcfb1e85d8277395cd50b21242a7 SHA512 53beb585dec4e5549d546f8344a645f0503d40e6e4e96356249c68308de0481dff50d198afc28c48a87735b476802db0d5cfd10815db22b72fc65d648aa31b20 DIST chromium-cf94ed446320d35c8613ed9b3ffb6e6a61bfcb5f.patch 9972 BLAKE2B 72d3b755214a8cc0299129c645b938746a2e4dff31cc9aa154019ebaf5c29d5ce9a8378dbecbf0455f253c5e10b83dbfd03a10573d8fa93992f2d6ac965a2b1f SHA512 62ffd3162a0c1aa4be51d3ead238b3a84463f8c6d55b9aad5806bcb23dfb2b832ad6aec7f348690c4b3aaf430260352ca558e791ca611d5e791e6b3eadcffcf1 DIST chromium-clang-llvmorg-23-init-19482-g53d18800-1.tar.xz 59093892 BLAKE2B faf8c5011b0271903a9a09a4539002088030eac34ac01c4b84581a556f761f89eac035feda5b97be350679325968db99face036c201972b01dd081ced3468edc SHA512 5d88f1ed4901c80963b6740c9b15a28c33db397f8bf31503502b00caff172e17d37f7b946da31162e04794fee763e0b7456a9fc476827c8a19cdd1e737b9b68a DIST chromium-openpower-7aae8a84e3.tar.bz2 441026 BLAKE2B efceb75ba53899388398a4564ef29c9fe66427e160a3e7f3375fd3eec8d1ffef335ca14865c11510e9c3719daab11dfb0954ed4a7b847dee602773d51f5e1e0f SHA512 cbe75ae78226b784904a263f7eb01e44faab71efb4a35ca46ff551ff17c0c5f1cdd8f839313ad3bb678b6ca56e4d95899f7802a548ffe7bb90582d9df5614c21 @@ -13,3 +14,4 @@ DIST rollup-wasm-node-4.57.1.tgz 792515 BLAKE2B 52fa9c4b65f3e20149c66fdd44b3c2a8 DIST ungoogled-chromium-154.0.8037.57-1.tar.gz 678563 BLAKE2B 954fef8c4d82f850c9b7f6fa1b1fdce8b5989d94eee1a9702ee5fc57e4675d8c835d0b4b4cc32a7fb3feddb717f95b473db61587c8bf3dfacff7ffeedf863404 SHA512 74b64e3586966730259d468874c9368d7d309007bfd2861076eef1cc5a858e790166c78472e42c32ed6adef1aa1deec7012af53289fc1c78c56aa43cd08e71e6 DIST ungoogled-chromium-154.0.8037.92-1.tar.gz 678526 BLAKE2B cd14264bb37e277a06c54176ff7a82711e67de04ee6dc8350856c07b8c73465169809cb4e48932d7ff1cbf77d27aae97bf1caf093e713eae37f5ca3931a4c92f SHA512 3e13c0b4c64be5c96ea2ab9d78af5108f84c4de4d3911ee0b6d919f4b88b11e02cc1c1980c43d1f742ab443a235da35d473b77ecf51c2bac3e7f54605601116c DIST ungoogled-chromium-154.0.8037.97-1.tar.gz 678518 BLAKE2B 075e345ada027aed58ac3c5ac6bdc9928bbc3989f6741d4f30615459ca75f2e6c4ae6379911a2bb52392f4446b3b90f2eeb1d40527e128579f3b25141a9c47bb SHA512 dfdc053b0fc47261c37755d6b25d08bfd979e1b8eb42f2c3f8ffbccfd614dddd85187f2fc3d896722a2b61ec449278f43c9ed89abf98416303de4abb0191cd62 +DIST ungoogled-chromium-9f145d8815e6e50cc4a2537fcac40966d911e027.tar.gz 677677 BLAKE2B c85b97e545b430adcf904a5aa00f88a61f2c13b575a9411745e3473676c19c0ebe7c53978a608961b35cdf66ad40c6dc35748fedd1a28e2ca476c92a416d80c0 SHA512 3cb0eea5eda99919e26e0a12ca8de5afba687be7b6abed3dbdfeb943928b7178a0f04d4e6aa57e29cee98e14cc54353e6192cd7212cfc691ed0403b289b1057a diff --git a/www-client/ungoogled-chromium/ungoogled-chromium-155.0.8059.79_p1.ebuild b/www-client/ungoogled-chromium/ungoogled-chromium-155.0.8059.79_p1.ebuild new file mode 100644 index 000000000000..355ab6cc3580 --- /dev/null +++ b/www-client/ungoogled-chromium/ungoogled-chromium-155.0.8059.79_p1.ebuild @@ -0,0 +1,2714 @@ +# Copyright 2009-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Use following environment variables to customise the build +# EXTRA_GN — pass extra options to gn +# NINJAOPTS="-k0 -j8" useful to populate ccache even if ebuild is still failing +# UGC_SKIP_PATCHES — space-separated list of patches to skip +# UGC_KEEP_BINARIES — space-separated list of binaries to keep +# UGC_SKIP_SUBSTITUTION — space-separated list of files to skip domain substitution + +# USE=bundled-toolchain is intended for users who want to use the same toolchain +# as the upstream releases. It's also a good fallback in case we fall behind +# and need to get a release out quickly (less likely with `dev` in-tree). +# We can't rely on it as a default since the toolchain is only shipped for x86-64; +# other architectures will need to use system toolchain. + +# Since m133 we are using CI-generated tarballs from +# https://github.com/chromium-linux-tarballs/chromium-tarballs/ + +# These are bit-for-bit identical to the official releases, but are built +# using an external CI system that we have some control over, in case +# issues pop up again with official tarball generation. + +GN_MIN_VER=0.2374 +# chromium-tools/get-chromium-toolchain-strings.py (or just use Chromicler) +# Node for M145+ should be 24.12.0 but that's not packaged in Gentoo yet. See #969145 +TEST_FONT="9c07d19d9c5ee1ff94f717e6fb17e0c8c354e6f9" +BUNDLED_CLANG_VER="llvmorg-23-init-19482-g53d18800-1" +BUNDLED_RUST_VER="b998449636a48e2c4a362809085b600a0174e1f2-2" +RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-} +NODE_VER="24.12.0" +GO_MIN_VER="1.25.0" +ESBUILD_VER="0.25.1" +ROLLUP_VER="4.57.1" # currently manual. + +CHROMIUM_LANGS="af am ar as az be bg bn bs ca cs cy da de el en-GB es es-419 et eu fa fi fil + fr fr-CA gl gu he hi hr hu hy id is it ja ka kk km kn ko ky lo lt lv mk ml mn mr ms my + nb ne nl or pa pl pt-BR pt-PT ro ru si sk sl sq sr sr-Latn sv sw ta te th tr uk ur uz + vi zh-CN zh-HK zh-TW zu" + +UGC_COMMIT_ID="9f145d8815e6e50cc4a2537fcac40966d911e027" +# UGC_PR_COMMITS=( +# c917e096342e5b90eeea91ab1f8516447c8756cf +# 5794e9d12bf82620d5f24505798fecb45ca5a22d +# ) + +CROMITE_COMMIT_ID="a44e28b8992c99aae7e67478bcdb81b13a724812" + +declare -A CHROMIUM_COMMITS=( + # ["27f8690db999f6e56f0af7a9ea3d28a019ed72ca"]="." #152+ + ["-cf94ed446320d35c8613ed9b3ffb6e6a61bfcb5f"]="." # ffmpeg 9 + # ["-bf6be9310a07b981edf81e0ac9b89dead09be35c"]="." # ffmpeg 9 + # ["-c72c7b0971e3e31974b0adea0dac42278e22e3b0"]="third_party/devtools-frontend/src" # need gn >= 2459 +# # ["-37c28a19804e47a68eabf3cf882a310689fc325b"]="." #disable style check for cromite +# # ["cd5a0df905a28faa89ff2a4ab44f893f84dc4487"]="net/third_party/quiche/src" +) + +LLVM_COMPAT=( 21 22 23 ) +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="xml(+)" +RUST_MIN_VER=1.91.0 +RUST_NEEDS_LLVM="yes please" +RUST_OPTIONAL="yes" # Not actually optional, but we don't need system Rust (or LLVM) with USE=bundled-toolchain +RUST_REQ_USE="rustfmt" # Upstream run rustfmt on bindgen output, so we need it to be available. + +GC_SOLUTION_URI="https://chromium.googlesource.com/chromium/src" +GC_CHECKOUT_DIR="${WORKDIR}" + +inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils +inherit python-any-r1 readme.gentoo-r1 rust systemd toolchain-funcs xdg-utils gclient-r1 + +DESCRIPTION="Modifications to Chromium for removing Google integration and enhancing privacy" +HOMEPAGE="https://github.com/ungoogled-software/ungoogled-chromium" +PPC64_HASH="7aae8a84e327fc2078ce1625c9c70bfda77d626f" +PATCH_V="152" +# PATCH_V="${PV%%\.*}" +COPIUM_COMMIT="3c7e56fb4523b43b47595bb3a22f77178fc76293" +SRC_URI="!gclient? ( https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV/_*}/chromium-${PV/_*}-linux.tar.xz ) + https://deps.gentoo.zip/www-client/chromium/rollup-wasm-node-${ROLLUP_VER}.tgz + https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 + !bundled-toolchain? ( + https://codeberg.org/selfisekai/copium/archive/${COPIUM_COMMIT}.tar.gz + -> chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz + ) + bundled-toolchain? ( + https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz + -> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz + https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz + -> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz + ) + test? ( + https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz + ) + ppc64? ( + https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 + ) +" + +# Gentoo tarball: +# https://chromium-tarballs.distfiles.gentoo.org/chromium-${PV/_*}.tar.xz -> chromium-${PV/_*}-gentoo.tar.xz + +# chromium-linux-tarballs +# https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV/_*}/chromium-${PV/_*}-linux.tar.xz + +# Official tarball: +# https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${PV/_*}-lite.tar.xz + +# https://gitweb.gentoo.org/proj/chromium-tools.git/tree/get-chromium-licences.py @ 145.0.7632.76 +LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL" +LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0" +LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl" +LICENSE+=" cromite? ( GPL-3 )" + +SLOT="beta" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +IUSE_SYSTEM_LIBS="abseil-cpp av1 brotli crc32c double-conversion ffmpeg +harfbuzz icu jsoncpp +libusb libvpx +openh264 openjpeg re2 snappy woff2 +zstd" +IUSE="+X bindist bluetooth bundled-toolchain cfi convert-dict cups custom-cflags debug ffmpeg-chromium enable-driver gtk4 hangouts headless kerberos +libcxx nvidia +official optimize-thinlto optimize-webui override-data-dir pax-kernel pgo" +IUSE+=" +proprietary-codecs pulseaudio qt6 screencast selinux test thinlto cromite gclient vaapi wayland widevine cpu_flags_ppc_vsx3" +RESTRICT=" + !bindist? ( bindist ) + !test? ( test ) + arm64? ( test ) + !system-ffmpeg? ( proprietary-codecs? ( bindist ) ) + !system-openh264? ( bindist ) + cromite? ( bindist )" + +REQUIRED_USE=" + !headless? ( || ( X wayland ) ) + screencast? ( wayland ) + ffmpeg-chromium? ( bindist proprietary-codecs ) + optimize-thinlto? ( thinlto ) + cfi? ( thinlto ) + x86? ( !thinlto !widevine ) + debug? ( !official ) + vaapi? ( !system-av1 !system-libvpx ) +" + +GC_REVISION="${PV/_*}" +GC_DEPS_ACTIONS=1 +GC_EXTRA_FLAGS="--ignore-dep-type cipd" +GC_CUSTOM_VARS="checkout_configuration=\"small\" checkout_x64=False checkout_x86=False rust_force_head_revision=True llvm_force_head_revision=True" +GC_SKIP_DEPS_ACTIONS="rust_tot clang_tot" +GC_CUSTOM_DEPS=" + src/third_party/crossbench-web-tests=None + src/third_party/angle/third_party/VK-GL-CTS/src=None +" +PROPERTIES+=" gclient? ( live )" + +UGC_PV="${PV/_p/-}" +UGC_PF="${PN}-${UGC_PV}" +UGC_URL="https://github.com/ungoogled-software/${PN}/archive/" + +if [ -z "$UGC_COMMIT_ID" ]; then + UGC_URL="${UGC_URL}${UGC_PV}.tar.gz -> ${UGC_PF}.tar.gz" + UGC_WD="${WORKDIR}/${UGC_PF}" +else + UGC_URL="${UGC_URL}${UGC_COMMIT_ID}.tar.gz -> ${PN}-${UGC_COMMIT_ID}.tar.gz" + UGC_WD="${WORKDIR}/ungoogled-chromium-${UGC_COMMIT_ID}" +fi + +SRC_URI+="${UGC_URL} +" + +if [ ! -z "${UGC_PR_COMMITS[*]}" ]; then + for i in "${UGC_PR_COMMITS[@]}"; do + SRC_URI+="https://github.com/ungoogled-software/${PN}/commit/$i.patch?full_index=true -> ${PN}-$i.patch + " + done +fi + +if [ ! -z "${CHROMIUM_COMMITS[*]}" ]; then + # for i in "${CHROMIUM_COMMITS[@]}"; do + for i in "${!CHROMIUM_COMMITS[@]}"; do + if [[ ${CHROMIUM_COMMITS[$i]} =~ webrtc ]]; then + #TODO: is it safe to use this mirror? + SRC_URI+="https://github.com/webrtc-mirror/webrtc/commit/${i/-}.patch?full_index=true -> webrtc-${i/-}.patch + " + elif [[ ${CHROMIUM_COMMITS[$i]} =~ angle ]]; then + SRC_URI+="https://github.com/google/angle/commit/${i/-}.patch?full_index=true -> angle-${i/-}.patch + " + elif [[ ${CHROMIUM_COMMITS[$i]} =~ quiche ]]; then + SRC_URI+="https://github.com/google/quiche/commit/${i/-}.patch?full_index=true -> quiche-${i/-}.patch + " + elif [[ ${CHROMIUM_COMMITS[$i]} =~ dawn ]]; then + SRC_URI+="https://github.com/google/dawn/commit/${i/-}.patch?full_index=true -> dawn-${i/-}.patch + " + elif [[ ${CHROMIUM_COMMITS[$i]} =~ perfetto ]]; then + SRC_URI+="https://github.com/google/perfetto/commit/${i/-}.patch?full_index=true -> perfetto-${i/-}.patch + " + elif [[ ${CHROMIUM_COMMITS[$i]} =~ ink ]]; then + SRC_URI+="https://github.com/google/ink/commit/${i/-}.patch?full_index=true -> ink-${i/-}.patch + " + elif [[ ${CHROMIUM_COMMITS[$i]} =~ vulkan-utility-libraries ]]; then + SRC_URI+="https://github.com/KhronosGroup/Vulkan-Utility-Libraries/commit/${i/-}.patch?full_index=true -> vulkan-utility-libraries-${i/-}.patch + " + elif [[ ${CHROMIUM_COMMITS[$i]} =~ ruy ]]; then + SRC_URI+="https://github.com/google/ruy/commit/${i/-}.patch?full_index=true -> ruy-${i/-}.patch + " + elif [[ ${CHROMIUM_COMMITS[$i]} =~ devtools-frontend ]]; then + SRC_URI+="https://github.com/ChromeDevTools/devtools-frontend/commit/${i/-}.patch?full_index=true -> devtools-frontend-${i/-}.patch + " + else + SRC_URI+="https://github.com/chromium/chromium/commit/${i/-}.patch?full_index=true -> chromium-${i/-}.patch + " + fi + done +fi + +SRC_URI+="cromite? ( https://github.com/uazo/cromite/archive/${CROMITE_COMMIT_ID}.tar.gz -> cromite-${CROMITE_COMMIT_ID}.tar.gz ) +" + +for i in ${IUSE_SYSTEM_LIBS}; do + [[ $i =~ ^(\+)?(.*)$ ]] + IUSE+=" ${BASH_REMATCH[1]}system-${BASH_REMATCH[2]}" +done + +COMMON_X_DEPEND=" + x11-libs/libXcomposite:= + x11-libs/libXcursor:= + x11-libs/libXdamage:= + x11-libs/libXfixes:= + >=x11-libs/libXi-1.6.0:= + x11-libs/libXrandr:= + x11-libs/libXrender:= + x11-libs/libXtst:= + x11-libs/libxshmfence:= +" + +# sys-libs/zlib: https://bugs.gentoo.org/930365; -ng is not compatible. +# We _could_ use the bundled minizip, but that's against policy. +COMMON_SNAPSHOT_DEPEND=" + system-icu? ( >=dev-libs/icu-78:= ) + system-abseil-cpp? ( >=dev-cpp/abseil-cpp-20260107.0 ) + system-brotli? ( >=app-arch/brotli-9999 ) + system-crc32c? ( dev-libs/crc32c ) + system-double-conversion? ( dev-libs/double-conversion ) + system-woff2? ( media-libs/woff2 ) + system-snappy? ( app-arch/snappy ) + system-jsoncpp? ( dev-libs/jsoncpp ) + system-openjpeg? ( media-libs/openjpeg:2= ) + system-re2? ( >=dev-libs/re2-0.2019.08.01:= ) + system-libvpx? ( >=media-libs/libvpx-1.13.0:=[postproc] ) + system-libusb? ( virtual/libusb:1 ) + cromite? ( dev-util/patchutils ) + >=dev-libs/libxml2-2.12.4:=[icu] + dev-libs/nspr:= + >=dev-libs/nss-3.26:= + dev-libs/libxslt:= + media-libs/fontconfig:= + >=media-libs/freetype-2.11.0-r1:= + system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] ) + media-libs/libjpeg-turbo:= + media-libs/libpng:= + system-zstd? ( >=app-arch/zstd-1.5.5:= ) + >=media-libs/libwebp-0.4.0:= + media-libs/mesa:=[gbm(+)] + >=media-libs/openh264-2.6.0:= + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-3.7.0:= + ) + sys-libs/zlib:= + !headless? ( + dev-libs/glib:2 + >=media-libs/alsa-lib-1.0.19:= + media-video/pipewire:= + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.9 + ) + ) + sys-apps/pciutils:= + kerberos? ( virtual/krb5 ) + vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] ) + X? ( + x11-base/xorg-proto:= + x11-libs/libX11:= + x11-libs/libxcb:= + x11-libs/libXext:= + ) + x11-libs/libxkbcommon:= + wayland? ( + screencast? ( media-video/pipewire:= ) + dev-libs/libffi:= + dev-libs/wayland:= + screencast? ( + media-video/pipewire:= + || ( + sys-apps/xdg-desktop-portal-gnome + sys-apps/xdg-desktop-portal-gtk + kde-plasma/xdg-desktop-portal-kde + gui-libs/xdg-desktop-portal-lxqt + gui-libs/xdg-desktop-portal-wlr + ) + ) + ) + ) +" + +COMMON_DEPEND=" + ${COMMON_SNAPSHOT_DEPEND} + app-arch/bzip2:= + dev-libs/expat:= + system-ffmpeg? ( + >=media-video/ffmpeg-6.1:= + >=media-libs/opus-1.3.1:= + ) + net-misc/curl[ssl] + sys-apps/dbus:= + media-libs/flac:= + sys-libs/zlib:=[minizip] + !headless? ( + >=app-accessibility/at-spi2-core-2.46.0:2 + media-libs/mesa:=[X?,wayland?] + virtual/udev + x11-libs/cairo:= + x11-libs/gdk-pixbuf:2 + x11-libs/pango:= + cups? ( >=net-print/cups-1.3.11:= ) + qt6? ( dev-qt/qtbase:6[gui,widgets] ) + X? ( ${COMMON_X_DEPEND} ) + ) +" +RDEPEND="${COMMON_DEPEND} + !www-client/ungoogled-chromium:0 + >=www-client/chromium-common-2 + !headless? ( + || ( + x11-libs/gtk+:3[X?,wayland?] + gui-libs/gtk:4[X?,wayland?] + ) + qt6? ( dev-qt/qtbase:6[X?,wayland?] ) + ) + virtual/ttf-fonts + selinux? ( sec-policy/selinux-chromium ) + bindist? ( + ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} ) + ) + !override-data-dir? ( + !www-client/chromium:${SLOT} + !www-client/cromite-bin + !www-client/cromite:${SLOT}[-override-data-dir] + ) +" +# For M149+ pipewire is a mandatory build-time dependency, but it's optional at runtime for most configurations. +DEPEND="${COMMON_DEPEND} + !headless? ( + media-video/pipewire + gtk4? ( gui-libs/gtk:4[X?,wayland?] ) + !gtk4? ( x11-libs/gtk+:3[X?,wayland?] ) + ) +" + + # pgo? ( >=llvm-core/clang-22.0.0_pre20260106 >=llvm-core/lld-22.0.0_pre20260106 ) +BDEPEND=" + ${COMMON_SNAPSHOT_DEPEND} + ${PYTHON_DEPS} + $(python_gen_any_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + >=app-arch/gzip-1.7 + !headless? ( + qt6? ( dev-qt/qtbase:6 ) + ) + !bundled-toolchain? ( $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + llvm-core/lld:${LLVM_SLOT} + cfi? ( llvm-runtimes/clang-runtime:${LLVM_SLOT}[sanitize] ) + official? ( + !ppc64? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[cfi] ) + ) ') + ${RUST_DEPEND} + ) + >=dev-util/bindgen-0.72.1 + >=dev-build/gn-${GN_MIN_VER} + >=dev-lang/go-${GO_MIN_VER} + dev-lang/typescript + app-alternatives/ninja + dev-lang/perl + >=dev-util/gperf-3.2 + dev-util/esbuild:${ESBUILD_VER} + dev-vcs/git + >=net-libs/nodejs-${NODE_VER}[inspector] + sys-apps/hwdata + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig + x11-misc/xdg-utils + gclient? ( $(gclient_gen_dep) ) +" + +if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then + EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; +fi + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS=" +Some web pages may require additional fonts to display properly. +Try installing some of the following packages if some characters +are not displayed properly: +- media-fonts/arphicfonts +- media-fonts/droid +- media-fonts/ipamonafont +- media-fonts/noto +- media-fonts/ja-ipafonts +- media-fonts/takao-fonts +- media-fonts/wqy-microhei +- media-fonts/wqy-zenhei + +To fix broken icons on the Downloads page, you should install an icon +theme that covers the appropriate MIME types, and configure this as your +GTK+ icon theme. + +For native file dialogs in KDE, install kde-apps/kdialog. + +To make password storage work with your desktop environment you may +have install one of the supported credentials management applications: +- app-crypt/libsecret (GNOME) +- kde-frameworks/kwallet (KDE) +If you have one of above packages installed, but don't want to use +them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS +in /etc/chromium/default. +" + +# the gclient solution is checked out to ${WORKDIR}/src, while the +# source tarball extracts to ${WORKDIR}/chromium-${PV/_*} +if [[ " ${USE-} " == *" gclient "* ]]; then + S="${GC_SOLUTION_DIR}" +else + S="${WORKDIR}/chromium-${PV/_*}" +fi + +python_check_deps() { + python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" +} + +pre_build_checks() { + # Check build requirements: bugs #471810, #541816, #914220 + # We're going to start doing maths here on the size of an unpacked source tarball, + # this should make updates easier as chromium continues to balloon in size. + # xz -l /var/cache/distfiles/chromium-${PV}*.tar.xz + local base_disk=9 # Round up + use test && base_disk=$((base_disk + 5)) + local extra_disk=1 # Always include a little extra space + local memory=4 + tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) + if tc-is-lto || use pgo; then + memory=$((memory * 2 + 1)) + tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) # Double the requirements + use pgo && extra_disk=$((extra_disk + 4)) + fi + if is-flagq '-g?(gdb)?([1-9])'; then + if use custom-cflags; then + extra_disk=$((extra_disk + 5)) + fi + memory=$((memory * 2)) + fi + local CHECKREQS_MEMORY="${memory}G" + local CHECKREQS_DISK_BUILD="$((base_disk + extra_disk))G" + check-reqs_${EBUILD_PHASE_FUNC} +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]]; then + # The pre_build_checks are all about compilation resources, no need to run it for a binpkg + pre_build_checks + fi + + if use headless; then + local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt6" "vaapi" "wayland") + for myiuse in ${headless_unused_flags[@]}; do + use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set." + done + fi + + if ! use bindist && use ffmpeg-chromium; then + ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set." + fi + if use libcxx; then + ewarn + ewarn "Building with libcxx, please be aware that system-*" + ewarn "and some other c++ dependencies need to be compiled" + ewarn "with the same c++ library as ungoogled-chromium itself" + ewarn "dev-libs/jsoncpp is most problematic, see #58 #49 #119 for details" + ewarn "Simplest solution would be to disable corresponding system-* flags" + ewarn + fi + if use cfi; then + ewarn + ewarn "Building with cfi is only possible if building with -stdlib=libc++" + ewarn "Make sure all dependencies are also built this way, see #40" + ewarn + fi + if use cromite; then + ewarn + ewarn "Cromite patches are very experimental and unstable" + ewarn "Please consider testing them and giving feedback upstream:" + ewarn "https://github.com/uazo/cromite/issues" + ewarn "Not all patches are applied, let me know if others should be considered too" + ewarn + fi + if use pgo; then + eerror + eerror "pgo requires llvm slot 23, but there is no corresponding rust slot yet" + eerror + if [ -z "${NODIE}" ]; then + die "Build will fail with pgo" + fi + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + # The pre_build_checks are all about compilation resources, no need to run it for a binpkg + pre_build_checks + + # We haven't massaged any CFLAGS yet, so we want to do this before we force CC/CXX to prevent warnings. + local want_lto="false" + tc-is-lto && want_lto="true" + + # The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment + # We'll set these to clang here then use llvm-utils functions to very explicitly set these + # to a sane value. + # This is effectively the 'force-clang' path if GCC support is re-added. + if use !bundled-toolchain; then + llvm-r1_pkg_setup + rust_pkg_setup + + if tc-ld-is-mold; then + ewarn "Mold is currently not supported, it will not be used" + fi + + # Forcing clang; respect llvm_slot_x to enable selection of impl via LLVM_COMPAT + AR=llvm-ar + CPP="${CHOST}-clang++-${LLVM_SLOT} -E" + NM=llvm-nm + CC="${CHOST}-clang-${LLVM_SLOT}" + CXX="${CHOST}-clang++-${LLVM_SLOT}" + fi + + # LTO in Chromium means LLVM ThinLTO, if GCC support is re-added + # We'll need to handle that here too. + use_lto="false" + local lto_usable="true" + if [[ "$want_lto" == "true" ]]; then + if use arm64 && [[ "${LLVM_SLOT}" -lt 22 ]]; then + einfo "LTO is broken with LLVM 21 on arm64, ignoring CFLAGS." + lto_usable="false" + else + use_lto="true" + fi + # We can rely on GN to do this for us; without this builds + # take significantly longer with LTO enabled. + filter-lto + fi + + if [[ "$use_lto" == "false" ]] && use official && [[ "$lto_usable" == "true" ]]; then + einfo "USE=official selected and LTO not detected." + einfo "It is _highly_ recommended that LTO be enabled for performance reasons" + einfo "and to be consistent with the upstream \"official\" build optimisations." + fi + + if [[ "$use_lto" == "false" ]] && use test; then + die "Tests require CFI which requires LTO" + fi + + export use_lto + + if tc-is-cross-compiler; then + use pgo && die "The pgo USE flag cannot be used when cross-compiling" + CPP="${CBUILD}-clang++-${LLVM_SLOT} -E" + fi + + # Sanity checks for development convenience + if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then + die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium" + fi + + # Sometimes, when adding a new LLVM slot, devs (me) forget to install an appropriate lld. + if tc-ld-is-lld; then + local lld_ver=$(ld.lld --version | awk '{split($2,a,"."); print a[1]}' || die "Failed to check lld version") + if [[ ${lld_ver} -lt ${LLVM_SLOT} ]]; then + die "Your lld version (${lld_ver}) is too old for the selected LLVM slot (${LLVM_SLOT}). Please install a newer lld or select an older LLVM slot." + fi + fi + fi + + chromium_suid_sandbox_check_kernel_config +} + +src_unpack() { + # # Here be dragons! + # local XCLD="--exclude=chromium-${PV/_*}/third_party/instrumented_libs \ + # --exclude=chromium-${PV/_*}/third_party/llvm \ + # --exclude=chromium-${PV/_*}/third_party/llvm-build \ + # --exclude=chromium-${PV/_*}/third_party/node/linux \ + # --exclude=chromium-${PV/_*}/third_party/rust-src \ + # --exclude=chromium-${PV/_*}/third_party/rust-toolchain \ + # --exclude=chromium-${PV/_*}/build/linux/debian_bullseye_i386-sysroot \ + # --exclude=chromium-${PV/_*}/build/linux/debian_bullseye_amd64-sysroot \ + # --exclude=chromium-${PV/_*}/third_party/angle/third_party/VK-GL-CTS \ + # " + + # if ! use libcxx ; then + # XCLD+=" --exclude=chromium-${PV/_*}/third_party/libc++" + # fi + + # if ! use pgo ; then + # XCLD+=" --exclude=chromium-${PV/_*}/chrome/build/pgo_profiles" + # fi + + # einfo "Unpacking chromium-${PV/_*}.tar.xz to ${WORKDIR}" + # # Gentoo tarball: + # # tar ${XCLD} -xf "${DISTDIR}/chromium-${PV/_*}-gentoo.tar.xz" -C "${WORKDIR}" || die + # tar ${XCLD} -xf "${DISTDIR}/chromium-${PV/_*}${LITE_TARBALL:+-lite}.tar.xz" -C "${WORKDIR}" || die + + # unpack ${UGC_URL#*->} + # # unpack chromium-patches-${PATCH_V}.tar.bz2 + # # Warned you! + + if use gclient; then + # populates the git mirror cache in GCLIENT_STORE_DIR and checks + # out the sources to ${GC_SOLUTION_DIR} (= ${S}) + gclient-r1_src_unpack + else + unpack chromium-${PV/_*}-linux.tar.xz + # unpack chromium-${PV/_*}-lite.tar.xz + fi + unpack chromium-patches-${PATCH_V}.tar.bz2 + # These should only be required when we're not using the official toolchain + if use !bundled-toolchain; then + unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz + fi + + if use test; then + # This just contains a bunch of font files that need to be unpacked (or moved) to the correct location. + local testfonts_dir="${WORKDIR}/chromium-${PV/_*}/third_party/test_fonts/test_fonts" + local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz" + einfo "Unpacking test fonts ..." + tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts" + fi + + # We need to manually unpack this since M126 else we'd unpack one toolchain over the other. + # Since we're doing that anyway let's unpack to sensible locations to make symlink creation easier. + if use bundled-toolchain; then + einfo "Unpacking bundled Clang ..." + mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory" + tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang" + einfo "Unpacking bundled Rust ..." + local rust_dir="${WORKDIR}/rust-toolchain" + mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory" + tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" || + die "Failed to unpack Rust" + fi + + if use ppc64; then + unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 + fi + + # This is a dirty hack, but we need rollup to build successfully and it's proving to be challenging + # to build locally due to deps + unpack rollup-wasm-node-${ROLLUP_VER}.tgz + + if use cromite; then + unpack cromite-${CROMITE_COMMIT_ID}.tar.gz + fi + + unpack ${UGC_URL#*->} +} + +remove_compiler_builtins() { + # We can't use the bundled compiler builtins with the system toolchain + # We used to `grep` then `sed`, but it was indirect. Combining the two into a single + # `awk` command is more efficient and lets us document the logic more clearly. + + local pattern=' configs += [ "//build/config/clang:compiler_builtins" ]' + local target='build/config/compiler/BUILD.gn' + + local tmpfile + tmpfile=$(mktemp) || die "Failed to create temporary file." + + if awk -v pat="${pattern}" ' + BEGIN { + match_found = 0 + } + + # If the delete countdown is active, decrement it and skip to the next line. + d > 0 { d--; next } + + # If the current line matches the pattern... + $0 == pat { + match_found = 1 # ...set our flag to true. + d = 2 # Set delete counter for this line and the next two. + prev = "" # Clear the buffered previous line so it is not printed. + next + } + + # For any other line, print the buffered previous line. + NR > 1 { print prev } + + # Buffer the current line to be printed on the next cycle. + { prev = $0 } + + END { + # Print the last line if it was not part of a deleted block. + if (d == 0) { print prev } + + # If the pattern was never found, exit with a failure code. + if (match_found == 0) { + exit 1 + } + } + ' "${target}" > "${tmpfile}"; then + # AWK SUCCEEDED (exit code 0): The pattern was found and edited. + # This is to avoid gawk's `-i inplace` option which users complain about. + mv "${tmpfile}" "${target}" + else + # AWK FAILED (exit code 1): The pattern was not found. + rm -f "${tmpfile}" + die "Awk patch failed: Pattern not found in ${target}." + fi +} + +src_prepare() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # We'll fill this in as we go. Patches go in chromium-patches. + local PATCHES=() + + FAILED_PATCHES=() + + rm "${WORKDIR}/chromium-patches-${PATCH_V}/common/cr131-unbundle-icu-target.patch" + rm "${WORKDIR}/chromium-patches-${PATCH_V}/toolchain/cr152-fix-rust-2-oxidize-harder.patch" + rm "${WORKDIR}/chromium-patches-${PATCH_V}/common/cr152-revert-to-rollup-wasm.patch" + + if ver_test "${RUST_SLOT}" -ge "1.95.0"; then + sed -i '/SupportedLaneCount/d' third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/zeroable.rs || die + sed -i '/SupportedLaneCount/d' third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/pod.rs || die + fi + + # sed -i '/no-lifetime-safety-inference/d' third_party/dawn/src/utils/BUILD.gn || die + # sed -i '/no-experimental-lifetime-safety-tu-analysis/d' third_party/dawn/src/utils/BUILD.gn || die + + PATCHES+=( + "${WORKDIR}/chromium-patches-${PATCH_V}/common/" + "${FILESDIR}/restore-x86-r4.patch" + "${FILESDIR}/chromium-152-ffmpeg-fix.patch" + "${FILESDIR}/chromium-152-unbundle-minizip-undo-unicode.patch" + "${FILESDIR}/chromium-153-revert-to-rollup-wasm.patch" + "${FILESDIR}/chromium-154-cbor-fix.patch" + "${FILESDIR}/chromium-154-system-typescript.patch" + "${FILESDIR}/chromium-154-gn-fixes.patch" + "${FILESDIR}/chromium-154-private_verification_tokens.patch" + ) + + # So many fontconfig magic numbers to cover + # TODO: once upstream roll to 2.18.2+ set that as our minimum and remove this logic. + # <=2.17.1 -> 9 + # >2.17.1 && <2.18.2 -> 11 + # >=2.18.2 -> 12 + local fontconfig_cache_magic=9 + if has_version ">=media-libs/fontconfig-2.18.2"; then + fontconfig_cache_magic=12 + elif has_version ">media-libs/fontconfig-2.17.1"; then + fontconfig_cache_magic=11 + fi + + sed -E -i \ + -e "s#(fb5c91b2895aa445d23aebf7f9e2189c-le64\.cache-)(9|10|11|12)#\1${fontconfig_cache_magic}#g" \ + third_party/test_fonts/fontconfig/BUILD.gn || die "Failed to set fontconfig cache magic in BUILD.gn" + + #cp -f ${WORKDIR}/chromium-patches-${PATCH_V}/*-compiler.patch "${T}/compiler.patch" + ##cp -f ${FILESDIR}/chromium-147-compiler.patch "${T}/compiler.patch" + #if ! use custom-cflags; then #See #25 #92 + # sed -i '/default_stack_frames/Q' "${T}/compiler.patch" || die + #fi + + sed -E -i \ + -e "s#(kCacheKey \+ \"/-le64\.cache-)(9|10|11|12)(\")#\1${fontconfig_cache_magic}\3#g" \ + -e "s#(kCacheKey \+ \"-le64\.cache-)(9|10|11|12)(\")#\1${fontconfig_cache_magic}\3#g" \ + third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc || \ + die "Failed to set fontconfig cache magic in generate_fontconfig_caches.cc" + + if use bundled-toolchain; then + # We need to symlink the toolchain into the expected location + einfo "Symlinking Clang toolchain to expected location ..." + mkdir -p third_party/llvm-build/ || die "Failed to create llvm-build directory" + # the 'Chromium Linux Tarballs' seem to already have 'Release+Asserts/{lib,bin}'; not sure if this is an + # upstream change - we're using the same scripts to build, theoretically. We'll still attempt to create + # llvm-build, but we'll rm Release+Asserts and symlink directly. + if [[ -d third_party/llvm-build/Release+Asserts ]]; then + rm -r third_party/llvm-build/Release+Asserts || die "Failed to remove third_party/llvm-build/Release+Asserts" + fi + ln -s "${WORKDIR}"/clang third_party/llvm-build/Release+Asserts || die "Failed to bundle Clang" + einfo "Symlinking Rust toolchain to expected location ..." + # As above, so below + if [[ -d third_party/rust-toolchain ]]; then + rm -r third_party/rust-toolchain || die "Failed to remove third_party/rust-toolchain" + fi + ln -s "${WORKDIR}"/rust-toolchain third_party/rust-toolchain || die "Failed to bundle rust" + cp "${WORKDIR}"/rust-toolchain/VERSION \ + "${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version" + else + # We don't need our toolchain patches if we're using the official toolchain + + # Copium patches go here. + PATCHES+=( + "${WORKDIR}/copium/cr143-libsync-__BEGIN_DECLS.patch" + ) + + # Automate conditional application of chromium-patches + # The directory structure is expected to be something like: + # chromium-patches-145/ + # ├── toolchain/ + # │ ├── cr123-foo.patch + # │ └── cr135-bar.patch + # ├── llvm/ + # │ ├── cr144-baz.patch + # │ └── lt-23/ + # │ └── cr145-bleeding-edge-llvm-feature.patch + # Where `lt-23` means "apply this patch if the LLVM version is less than 23". + # Only categories in `slot_map` will be checked for version constraints. + shopt -s nullglob + local -A slot_map=( [llvm]="${LLVM_SLOT}" [rust]="${RUST_SLOT}" ) + + for category in "${WORKDIR}/chromium-patches-${PATCH_V}"/*/; do + local category_name="${category%/}" + category_name="${category_name##*/}" + + # Skip arch-specific categories + if [[ "${category_name}" == "ppc64le" ]]; then + use ppc64 || continue + fi + + # We applied common patches above, no need to apply them again here + [[ "${category_name}" == "common" ]] && continue + + # Unconditional patches for this category + local category_patches=( "${category}"*.patch ) + [[ ${#category_patches[@]} -gt 0 ]] && PATCHES+=( "${category}" ) + + # Version-constrained subdirectories (e.g., llvm/lt-23/) + for constraint_dir in "${category}"*/; do + local dir_name="${constraint_dir%/}" + dir_name="${dir_name##*/}" + if [[ "${dir_name}" =~ ^lt-(.*)$ && -v slot_map[${category_name}] ]]; then + ver_test "${slot_map[${category_name}]}" -lt "${BASH_REMATCH[1]}" && + PATCHES+=( "${constraint_dir}" ) + fi + done + done + + shopt -u nullglob + + # Strictly speaking this doesn't need to be gated (no bundled toolchain for ppc64); it keeps the logic together + if use ppc64; then + local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches" + # patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304) + local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch" + local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch" + # Apply the OpenPOWER patches (check for page size and isa 3.0) + openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" | + grep -v "${isa_3_patch}" || die) ) + for patch in "${openpower_patches[@]}"; do + PATCHES+=( "${patchset_dir}/${patch}" ) + done + if [[ $(getconf PAGESIZE) == 65536 ]]; then + PATCHES+=( "${patchset_dir}/${page_size_patch}" ) + fi + # We use vsx3 as a proxy for 'want isa3.0' (POWER9) + if use cpu_flags_ppc_vsx3 ; then + PATCHES+=( "${patchset_dir}/${isa_3_patch}" ) + fi + fi + + remove_compiler_builtins + + # We can't rely on the eselect'd Rust to actually include rustfmt, so we'll point to the selected slot specifically. + local suffix="" + if [[ "${RUST_TYPE}" == "binary" ]]; then + suffix="-bin-${RUST_SLOT}" + else + suffix="-${RUST_SLOT}" + fi + sed -i "s|/bin/rustfmt|/bin/rustfmt${suffix}|g" build/rust/rust_bindgen_generator.gni || + die "Failed to update rustfmt path" + + fi + + # Do this before we apply patches since (e.g.) ppc64 needs to patch rollup and it's easier in ${S} + einfo "Moving rollup wasm-node package into place ..." + mkdir -p third_party/devtools-frontend/src/node_modules/@rollup/wasm-node || + die "Failed to create node_modules/@rollup/wasm-node" + mv "${WORKDIR}"/package/* third_party/devtools-frontend/src/node_modules/@rollup/wasm-node || + die "Failed to move rollup package" + + if [ ! -z "${CHROMIUM_COMMITS[*]}" ]; then + # for i in "${CHROMIUM_COMMITS[@]}"; do + for i in "${!CHROMIUM_COMMITS[@]}"; do + if [[ ${CHROMIUM_COMMITS[$i]} =~ webrtc ]]; then + patch_prefix="webrtc" + elif [[ ${CHROMIUM_COMMITS[$i]} =~ angle ]]; then + patch_prefix="angle" + elif [[ ${CHROMIUM_COMMITS[$i]} =~ quiche ]]; then + patch_prefix="quiche" + elif [[ ${CHROMIUM_COMMITS[$i]} =~ dawn ]]; then + patch_prefix="dawn" + elif [[ ${CHROMIUM_COMMITS[$i]} =~ perfetto ]]; then + patch_prefix="perfetto" + elif [[ ${CHROMIUM_COMMITS[$i]} =~ ink ]]; then + patch_prefix="ink" + elif [[ ${CHROMIUM_COMMITS[$i]} =~ vulkan-utility-libraries ]]; then + patch_prefix="vulkan-utility-libraries" + elif [[ ${CHROMIUM_COMMITS[$i]} =~ ruy ]]; then + patch_prefix="ruy" + elif [[ ${CHROMIUM_COMMITS[$i]} =~ devtools-frontend ]]; then + patch_prefix="devtools-frontend" + else + patch_prefix="chromium" + fi + pushd "${CHROMIUM_COMMITS[$i]}" > /dev/null || die + if [[ $i = -* ]]; then + einfo "Reverting ${patch_prefix}-${i/-}.patch" + git_wrapper apply -R --exclude="*unittest.cc" --exclude="DEPS" \ + -p1 "${DISTDIR}/${patch_prefix}-${i/-}.patch" + else + einfo "Applying ${patch_prefix}-${i/-}.patch" + git_wrapper apply --exclude="*unittest.cc" --exclude="DEPS" \ + -p1 "${DISTDIR}/${patch_prefix}-${i/-}.patch" + fi + popd > /dev/null || die + done + fi + + if ! use bluetooth ; then + PATCHES+=( + "${FILESDIR}/disable-bluez-r7.patch" + ) + fi + + if use convert-dict ; then + PATCHES+=( + "${FILESDIR}/chromium-ucf-dict-utility-r3.patch" + ) + fi + + if ! use libcxx ; then + PATCHES+=( + "${FILESDIR}/fix-wayland-oncecallback-copy.patch" + ) + fi + + if use system-ffmpeg; then + PATCHES+=( + "${FILESDIR}/chromium-141-opus-mp3.patch" + "${FILESDIR}/chromium-135-hevc.patch" + "${FILESDIR}/chromium-153-fix-iamf.patch" + ) + sed -i "\!AVFMT_FLAG_NOH264PARSE!d" media/filters/ffmpeg_glue.cc || die + ewarn "You need to expose \"av_stream_get_first_dts\" in ffmpeg via user patch" + fi + + if use system-av1; then + PATCHES+=( + "${FILESDIR}/chromium-system-av1.patch" + ) + fi + + if use system-libvpx; then + PATCHES+=( + "${FILESDIR}/chromium-system-libvpx.patch" + ) + fi + + if use system-openjpeg ; then + PATCHES+=( + "${FILESDIR}/chromium-system-openjpeg-r4.patch" + ) + fi + + # if use x86 ; then + # #* Fixes a segfault in transport_security_state_generator + # PATCHES+=( + # "${FILESDIR}/fix-segfault-x86.patch" + # ) + # fi + + # Testing all patches when NODIE is defined + if [ ! -z "${NODIE}" ]; then + for i in "${PATCHES[@]}"; do + eapply_wrapper "$i" + done + nonfatal eapply_user + else + default + fi + + if use cromite ; then + BR_PA_PATH="${WORKDIR}/cromite-${CROMITE_COMMIT_ID}/build/patches" + + sed -i '/b\/components\/components_strings\.grd/,+10d' "${BR_PA_PATH}/Add-cromite-flags-support.patch" || die + sed -i '/b\/chrome\/android\/java\/res\/xml\/privacy_preferences\.xml/,+13d' "${BR_PA_PATH}/Add-cromite-flags-support.patch" || die + sed -i '/b\/android_webview\/support_library\/java\/src\/org\/chromium\/support_lib_glue/,+11d' "${BR_PA_PATH}/Client-hints-overrides.patch" || die + sed -i '/webapps_strings.grdp" \/>/{s++webapps_strings.grdp" /><part file="cromite_components_strings_grd/placeholder.txt"/>+;h};${x;/./{x;q0};x;q1}' \ + components/components_strings.grd || die + + sed -i 's/absl::/std::/' "${BR_PA_PATH}/Add-a-proxy-configuration-page.patch" || die + + filterdiff -p1 "${BR_PA_PATH}/JIT-site-settings.patch" --exclude="content/browser/renderer_host/render_process_host_impl.cc" \ + > "${BR_PA_PATH}/JIT-site-settings.patch1" + mv -f "${BR_PA_PATH}/JIT-site-settings.patch1" "${BR_PA_PATH}/JIT-site-settings.patch" + + BROMITE_PATCHES=( + "${BR_PA_PATH}/bromite-build-utils.patch" + "${BR_PA_PATH}/Battery-API-return-nothing.patch" + "${BR_PA_PATH}/Multiple-fingerprinting-mitigations.patch" + "${BR_PA_PATH}/Add-flag-to-configure-maximum-connections-per-host.patch" + "${BR_PA_PATH}/Add-a-proxy-configuration-page.patch" + "${BR_PA_PATH}/Enable-StrictOriginIsolation-and-SitePerProcess.patch" + "${BR_PA_PATH}/Disable-requests-for-single-word-Omnibar-searches.patch" + "${BR_PA_PATH}/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch" + "${BR_PA_PATH}/Client-hints-overrides.patch" + "${BR_PA_PATH}/Disable-idle-detection.patch" + "${BR_PA_PATH}/Disable-TLS-resumption.patch" + "${BR_PA_PATH}/Remove-navigator.connection-info.patch" + + "${BR_PA_PATH}/AudioBuffer-AnalyserNode-fp-mitigations.patch" + "${BR_PA_PATH}/Fonts-fingerprinting-mitigation.patch" + "${BR_PA_PATH}/Content-settings-infrastructure.patch" + "${BR_PA_PATH}/Add-autoplay-site-setting.patch" + "${BR_PA_PATH}/Site-setting-for-images.patch" + "${BR_PA_PATH}/JIT-site-settings.patch" + "${BR_PA_PATH}/Add-webGL-site-setting.patch" + "${BR_PA_PATH}/Add-webRTC-site-settings.patch" + "${BR_PA_PATH}/Show-site-settings-for-cookies-javascript-and-ads.patch" + "${BR_PA_PATH}/Viewport-Protection-flag.patch" + "${BR_PA_PATH}/Protect-keyboard-geometry-on-Android.patch" + "${BR_PA_PATH}/Revert-remove-allowscript-content-setting-secondary-url.patch" + "${BR_PA_PATH}/Timezone-customization.patch" + "${BR_PA_PATH}/Disable-speechSynthesis-getVoices-API.patch" + "${BR_PA_PATH}/Remove-support-for-device-memory-and-cpu-recovery.patch" + "${BR_PA_PATH}/Disable-Feeback-Collector.patch" + "${BR_PA_PATH}/Disable-remote-altsvc-for-h3-connections.patch" + "${BR_PA_PATH}/Add-cromite-flags-support.patch" + "${BR_PA_PATH}/Enables-deactivation-of-the-js-debugger-statement.patch" + ) + for i in "${BROMITE_PATCHES[@]}"; do + if [[ "$i" =~ "Add-autoplay-site-setting.patch" ]] || + [[ "$i" =~ "JIT-site-settings.patch" ]] || + [[ "$i" =~ "Site-setting-for-images.patch" ]]; then + einfo "Git binary patch: ${i##*/}" + git_wrapper apply -p1 "$i" + else + filter_wrapper "$i" --exclude="chrome/android/*" + fi + done + + #* Viewport Protection's screen emulation misplaces page-anchored native + #* popups (select/date/color pickers); round the screen de-emulation so + #* the emulated->screen->emulated round-trip is a fixed point and the + #* popup stops drifting toward the top-left corner + eapply_wrapper "${FILESDIR}/chromite-viewport-protection-popup-rounding.patch" + + #! conflicting patches + sed -i '/browser_features.cc/,+17d' \ + "${UGC_WD}/patches/extra/ungoogled-chromium/add-flag-to-clear-data-on-exit.patch" || die + sed -i 's$} // namespace features$BASE_FEATURE(kClearDataOnExit, "ClearDataOnExit", base::FEATURE_DISABLED_BY_DEFAULT);}$' \ + chrome/browser/browser_features.cc || die + sed -i 's$} // namespace features$BASE_DECLARE_FEATURE(kClearDataOnExit);}$' \ + chrome/browser/browser_features.h || die + sed -i 's$kChromeUIAboutHost,$kChromeUIAboutHost,"ungoogled-first-run",$' \ + chrome/common/webui_url_constants.cc || die + sed -i '/chrome\/common\/webui_url_constants.cc/Q' \ + "${UGC_WD}/patches/extra/ungoogled-chromium/first-run-page.patch" || die + + #! normalise paths in py + sed -i 's$os.path.dirname(include_file)$os.path.abspath(os.path.dirname(include_file))$' \ + build/bromite/gyp/cpp_bromite_include.py || die + fi + + # if [[ ${LLVM_SLOT} == "19" ]]; then + # # Upstream now hard depend on a feature that was added in LLVM 20.1, but we don't want to stabilise that yet. + # # Do the temp file shuffle in case someone is using something other than `gawk` + # { + # awk '/config\("clang_warning_suppression"\) \{/ { print $0 " }"; sub(/clang/, "xclang"); print; next } + # { print }' build/config/compiler/BUILD.gn > "${T}/build.gn" && \ + # mv "${T}/build.gn" build/config/compiler/BUILD.gn + # } || die "Unable to disable warning suppression" + # fi + + ## Not included in -lite tarballs, but we should check for it anyway. + #if [[ -f third_party/node/linux/node-linux-x64/bin/node ]]; then + # rm third_party/node/linux/node-linux-x64/bin/node || die + #else + # mkdir -p third_party/node/linux/node-linux-x64/bin || die + #fi + #ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die + + cp "${FILESDIR}/libusb.gn" build/linux/unbundle || die + sed -i '/^REPLACEMENTS.*$/{s++REPLACEMENTS = {"libusb":"third_party/libusb/BUILD.gn",+;h};${x;/./{x;q0};x;q1}' \ + build/linux/unbundle/replace_gn_files.py || die + sed -i '/^.*deps.*third_party\/jsoncpp.*$/{s++public_deps \+= [ "//third_party/jsoncpp" ]+;h};${x;/./{x;q0};x;q1}' \ + third_party/webrtc/rtc_base/BUILD.gn || die + + if use override-data-dir; then + sed -i '/"chromium";/{s++"ungoogled-chromium";+;h};${x;/./{x;q0};x;q1}' \ + chrome/common/chrome_paths_linux.cc || die + fi + + if use system-abseil-cpp; then + eapply_wrapper "${FILESDIR}/chromium-147-system-abseil.patch" + + #! SFINAE mangling incompatibility between clang and gcc: + #! https://github.com/llvm/llvm-project/issues/85656 + #! gcc: _ZN4absl12lts_202601074CordC1INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELi0EEEOT_ + #! clang: _ZN4absl12lts_202601074CordC1INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr3std7is_sameIT_S8_EE5valueEiE4typeELi0EEEOSA_ + #! So, either this: + eapply_wrapper "${FILESDIR}/chromium-141-system-abseil-cord.patch" + #! or build with -fclang-abi-compat=17 + + # cp -f /usr/include/absl/base/options.h third_party/abseil-cpp/absl/base/options.h + # sed -i '/^#define ABSL_OPTION_USE_STD_ORDERING.*$/{s++#define ABSL_OPTION_USE_STD_ORDERING 1+;h};${x;/./{x;q0};x;q1}' \ + # third_party/abseil-cpp/absl/base/options.h || die + fi + + #* Applying UGC PRs here + if [ ! -z "${UGC_PR_COMMITS[*]}" ]; then + pushd "${UGC_WD}" >/dev/null + for i in "${UGC_PR_COMMITS[@]}"; do + eapply_wrapper "${DISTDIR}/${PN}-$i.patch" + done + popd >/dev/null + fi + + if [ ! -z "${NODIE}" ] && [[ ${#FAILED_PATCHES[@]} -gt 0 ]]; then + eerror "${#FAILED_PATCHES[@]} patch(es) failed to apply:" + for p in "${FAILED_PATCHES[@]}"; do + eerror " ${p}" + done + die "Failed to apply ${#FAILED_PATCHES[@]} patch(es)" + fi + + # From here we adapt ungoogled-chromium's patches to our needs + local ugc_pruning_list="${UGC_WD}/pruning.list" + local ugc_patch_series="${UGC_WD}/patches/series" + local ugc_substitution_list="${UGC_WD}/domain_substitution.list" + + local ugc_unneeded=( + # GN bootstrap + extra/debian/gn/parallel + # following Gentoo's Chromium + core/ungoogled-chromium/build-with-wasm-rollup + ) + + if use cromite ; then + einfo "Using fingerprinting patches from Cromite instead" + ugc_unneeded+=( + extra/bromite/fingerprinting-flags-client-rects-and-measuretext + extra/bromite/flag-max-connections-per-host + extra/bromite/flag-fingerprinting-canvas-image-data-noise + extra/ungoogled-chromium/add-components-ungoogled + extra/ungoogled-chromium/remove-pac-size-limit + ) + fi + + # #* Temporary fix + # sed -i "\!ios/!d" "${ugc_pruning_list}" || die + # sed -i "\!third_party/icu/!d" "${ugc_pruning_list}" || die + # sed -i "\!third_party/libjpeg_turbo/!d" "${ugc_pruning_list}" || die + # sed -i "\!third_party/snappy/!d" "${ugc_pruning_list}" || die + # sed -i "\!third_party/closure_compiler/!d" "${ugc_pruning_list}" || die + + # #* Didn't unpack them at the first place + # sed -i "\!build/linux/debian_bullseye_i386-sysroot!d" "${ugc_pruning_list}" || die + # sed -i "\!build/linux/debian_bullseye_amd64-sysroot!d" "${ugc_pruning_list}" || die + # sed -i "\!third_party/llvm-build!d" "${ugc_pruning_list}" || die + # sed -i "\!third_party/node/linux!d" "${ugc_pruning_list}" || die + # sed -i "\!third_party/rust-src!d" "${ugc_pruning_list}" || die + # sed -i "\!third_party/rust-toolchain!d" "${ugc_pruning_list}" || die + # if ! use libcxx ; then + # sed -i "\!third_party/libc!d" "${ugc_pruning_list}" || die + # fi + sed -i "s|debug('files|error('files|" \ + "${UGC_WD}/utils/prune_binaries.py" || die + sed -i "\!third_party/node/linux!d" \ + "${UGC_WD}/utils/prune_binaries.py" || die + + local ugc_p ugc_dir + for p in "${ugc_unneeded[@]}"; do + einfo "Removing ${p}.patch" + sed -i "\!${p}.patch!d" "${ugc_patch_series}" || die + done + + if [ ! -z "${UGC_SKIP_PATCHES}" ]; then + for p in ${UGC_SKIP_PATCHES}; do + ewarn "Removing ${p}" + sed -i "\!${p}!d" "${ugc_patch_series}" || die + done + fi + + if [ ! -z "${UGC_KEEP_BINARIES}" ]; then + for p in ${UGC_KEEP_BINARIES}; do + ewarn "Keeping binary ${p}" + sed -i "\!${p}!d" "${ugc_pruning_list}" || die + done + fi + + if [ ! -z "${UGC_SKIP_SUBSTITUTION}" ]; then + for p in ${UGC_SKIP_SUBSTITUTION}; do + ewarn "No substitutions in ${p}" + sed -i "\!${p}!d" "${ugc_substitution_list}" || die + done + fi + + ebegin "Pruning binaries" + "${UGC_WD}/utils/prune_binaries.py" -q . "${UGC_WD}/pruning.list" + eend $? || die + + ebegin "Applying ungoogled-chromium patches" + "${UGC_WD}/utils/patches.py" -q apply . "${UGC_WD}/patches" + eend $? || die + + ebegin "Applying domain substitution" + "${UGC_WD}/utils/domain_substitution.py" -q apply -r "${UGC_WD}/domain_regex.list" -f "${UGC_WD}/domain_substitution.list" . + eend $? || die + + # Sanity check esbuild version before we start removing files. + # We _could_ patch the version check out - in theory esbuild upstream are being super conservative after + # arch(AUR) packaged an `esbuild` binary and set ESBUILD_BINARY_PATH=/usr/bin/esbuild, causing much breakage, + # but this is fine too and exactly matches what upstream are expecting. + # https://github.com/evanw/esbuild/issues/2894 + local esbuild_js="${S}/third_party/devtools-frontend/src/node_modules/esbuild/lib/main.js" + local found + found=$(awk -F'"' '/if \(binaryVersion !==/ {print $2}' "${esbuild_js}") + if [[ "${found}" != "${ESBUILD_VER}" ]]; then + die "esbuild version mismatch: expected ${ESBUILD_VER}, found ${found}" + fi + + elog "Removing bundled binaries from source tree ..." + # Purge bundled ELF files: These are non-portable and will cause issues if used instead of system versions. + # Use `--wasm` to also remove WebAssembly binaries, if desired - they're portable so shouldn't break builds. + ${EPYTHON} "${FILESDIR}/bin-finder.py" --elf "${S}" | awk '{print $1}' | xargs rm -f || + die "Failed to remove bundled binaries" + + # And now we restore any that we actually need, from the host system + local esbuild_path="${S}/third_party/devtools-frontend/src/third_party/esbuild" + local -A restore_list=( + ["/usr/bin/esbuild-${ESBUILD_VER}"]="${esbuild_path}/esbuild" + ["/usr/bin/gperf"]="${S}/third_party/gperf/cipd/bin/gperf" + ["/usr/bin/node"]="${S}/third_party/node/linux/node-linux-x64/bin/node" + ) + + for src in "${!restore_list[@]}"; do + dst="${restore_list[${src}]}" + if [[ -f "${src}" ]]; then + einfo "Symlinking ${src} ..." + # Make sure the parent dir exists; some tarballs don't include (e.g.) node's bindir + mkdir -p "$(dirname "${dst}")" || die "Failed to create directory for ${dst}" + ln -s "${src}" "${dst}" || die "Failed to symlink ${dst} from ${src}" + if [[ ! -L "${dst}" || "$(readlink -f "${dst}")" != "${src}" ]]; then + die "Symlink verification failed for ${dst} -> ${src}" + fi + else + die "Expected to find ${src} to restore ${dst}, but it does not exist." + fi + done + + # adjust python interpreter version + sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die + + # Use the system copy of hwdata's usb.ids + sed 's|//third_party/usb_ids/src/usb.ids|/usr/share/hwdata/usb.ids|g' \ + -i services/device/public/cpp/usb/BUILD.gn || die "Failed to set system usb.ids path" + + # remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party' + # whitelist matches use the right-most matching path component, so we need to whitelist from that point down. + local keeplibs=( + base/third_party/cityhash + ) + use system-double-conversion || keeplibs+=( + base/third_party/double_conversion + ) + keeplibs+=( + base/third_party/icu + base/third_party/nspr + base/third_party/superfasthash + base/third_party/symbolize + base/third_party/xdg_user_dirs + buildtools/third_party/libc++ + buildtools/third_party/libc++abi + ) + use cromite && keeplibs+=( + cromite_flags/third_party + ) + keeplibs+=( + net/third_party/mozilla_security_manager + net/third_party/quic + net/third_party/uri_template + ) + use system-abseil-cpp || keeplibs+=( + third_party/abseil-cpp + ) + keeplibs+=( + third_party/angle + third_party/angle/src/common/third_party/xxhash + third_party/angle/src/third_party/ceval + ) + use nvidia || keeplibs+=( + third_party/angle/src/third_party/libXNVCtrl + ) + keeplibs+=( + third_party/angle/src/third_party/volk + third_party/anonymous_tokens + third_party/apple_apsl + third_party/axe-core + third_party/bidimapper + third_party/blink + third_party/boringssl + third_party/boringssl/src/third_party/fiat + third_party/breakpad + third_party/breakpad/breakpad/src/third_party/curl + ) + use system-brotli || keeplibs+=( + third_party/brotli + ) + keeplibs+=( + third_party/catapult + third_party/catapult/common/py_vulcanize/third_party/rcssmin + third_party/catapult/common/py_vulcanize/third_party/rjsmin + third_party/catapult/third_party/beautifulsoup4-4.9.3 + third_party/catapult/third_party/html5lib-1.1 + third_party/catapult/third_party/polymer + third_party/catapult/third_party/six + third_party/catapult/third_party/typ + third_party/catapult/tracing/third_party/d3 + third_party/catapult/tracing/third_party/gl-matrix + third_party/catapult/tracing/third_party/jpeg-js + third_party/catapult/tracing/third_party/jszip + third_party/catapult/tracing/third_party/mannwhitneyu + third_party/catapult/tracing/third_party/oboe + third_party/catapult/tracing/third_party/pako + third_party/ced + third_party/cld_3 + third_party/closure_compiler + ) + use libcxx && keeplibs+=( + third_party/compiler-rt + ) + keeplibs+=( + third_party/content_analysis_sdk + third_party/cpuinfo + third_party/crabbyavif + third_party/crashpad + third_party/crashpad/crashpad/third_party/lss + third_party/crashpad/crashpad/third_party/zlib + ) + use system-crc32c || keeplibs+=( + third_party/crc32c + ) + keeplibs+=( + third_party/cros_system_api + third_party/d3 + third_party/dawn + third_party/dawn/third_party/gn/webgpu-cts + third_party/dawn/third_party/OpenGL-Registry + third_party/dawn/third_party/renderdoc + third_party/dawn/third_party/webgpu-headers + third_party/depot_tools + third_party/devscripts + third_party/devtools-frontend + third_party/devtools-frontend/src/front_end/third_party/acorn + third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json + third_party/devtools-frontend/src/front_end/third_party/axe-core + third_party/devtools-frontend/src/front_end/third_party/chromium + third_party/devtools-frontend/src/front_end/third_party/codemirror + third_party/devtools-frontend/src/front_end/third_party/csp_evaluator + third_party/devtools-frontend/src/front_end/third_party/diff + third_party/devtools-frontend/src/front_end/third_party/i18n + third_party/devtools-frontend/src/front_end/third_party/intl-messageformat + third_party/devtools-frontend/src/front_end/third_party/json5 + third_party/devtools-frontend/src/front_end/third_party/legacy-javascript + third_party/devtools-frontend/src/front_end/third_party/lighthouse + third_party/devtools-frontend/src/front_end/third_party/lit + third_party/devtools-frontend/src/front_end/third_party/marked + third_party/devtools-frontend/src/front_end/third_party/puppeteer + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/mitt + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/parsel-js + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/rxjs + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/urlpattern-polyfill + third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec + third_party/devtools-frontend/src/front_end/third_party/third-party-web + third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data + third_party/devtools-frontend/src/front_end/third_party/wasmparser + third_party/devtools-frontend/src/front_end/third_party/web-vitals + third_party/devtools-frontend/src/third_party + third_party/dom_distiller_js + third_party/dragonbox + third_party/eigen3 + third_party/emoji-segmenter + third_party/farmhash + third_party/fast_float + third_party/fdlibm + third_party/federated_compute/chromium/fcp/confidentialcompute + third_party/federated_compute/chromium/fcp/protos + third_party/federated_compute/chromium/fcp/secagg + third_party/federated_compute/chromium/fcp/client + third_party/federated_compute/src/fcp/base + third_party/federated_compute/src/fcp/confidentialcompute + third_party/federated_compute/src/fcp/protos + third_party/federated_compute/src/fcp/client + third_party/federated_compute/src/fcp/secagg + third_party/federated_compute/third_party/googleapis/src/google + third_party/federated_compute/third_party/tensorflow-federated + third_party/federated_compute/third_party/protodatastore-cpp + third_party/fft2d + third_party/flatbuffers + third_party/fp16 + third_party/freetype + third_party/fusejs + third_party/fxdiv + third_party/gemmlowp + third_party/google_input_tools + third_party/google_input_tools/third_party/closure_library + third_party/google_input_tools/third_party/closure_library/third_party/closure + third_party/googletest + third_party/gperf # We symlink system gperf, but this will purge the symlink since we tidy up afterwards. + third_party/highway + third_party/hunspell + third_party/hyphenation-patterns + third_party/iamf_tools + third_party/ink/src/ink/brush + third_party/ink/src/ink/color + third_party/ink/src/ink/geometry + third_party/ink/src/ink/rendering + third_party/ink/src/ink/rendering/skia/common_internal + third_party/ink/src/ink/rendering/skia/native + third_party/ink/src/ink/rendering/skia/native/internal + third_party/ink/src/ink/strokes + third_party/ink/src/ink/types + third_party/inspector_protocol + third_party/ipcz + third_party/jinja2 + ) + use system-jsoncpp || keeplibs+=( + third_party/jsoncpp + ) + keeplibs+=( + third_party/khronos + third_party/lens_server_proto + third_party/leveldatabase + third_party/libaddressinput + third_party/libdrm + third_party/libgav1 + third_party/libjingle + third_party/libpfm4 + third_party/libphonenumber + third_party/libpng + third_party/libsecret + third_party/libsrtp + third_party/libsync + third_party/libtess2/libtess2 + third_party/libtess2/src/Include + third_party/libtess2/src/Source + third_party/liburlpattern + ) + use system-libusb || keeplibs+=( + third_party/libusb + ) + keeplibs+=( + third_party/libva_protected_content + ) + use system-libvpx || keeplibs+=( + third_party/libvpx + third_party/libvpx/source/libvpx/third_party/x86inc + ) + keeplibs+=( + third_party/libwebm + third_party/libx11 + third_party/libxcb-keysyms + third_party/libxml/chromium + third_party/libyuv + third_party/libzip + third_party/lit + ) + use libcxx && keeplibs+=( + third_party/llvm-libc + third_party/llvm-libc/src/shared/ + ) + keeplibs+=( + third_party/lottie + third_party/lss + third_party/lzma_sdk + third_party/mako + third_party/markupsafe + third_party/material_color_utilities + third_party/metrics_proto + third_party/minigbm + third_party/ml_dtypes + third_party/modp_b64 + third_party/nasm + third_party/nearby + third_party/neon_2_sse + third_party/node + third_party/oak/chromium/proto + third_party/oak/chromium/proto/attestation + third_party/omnibox_proto + third_party/one_euro_filter + third_party/openscreen + third_party/openscreen/src/third_party/ + third_party/openscreen/src/third_party/tinycbor/src/src + third_party/openxr + third_party/ots + third_party/pdfium + third_party/pdfium/third_party/agg23 + third_party/pdfium/third_party/bigint + third_party/pdfium/third_party/freetype + third_party/pdfium/third_party/lcms + ) + use system-openjpeg || keeplibs+=( + third_party/pdfium/third_party/libopenjpeg + ) + keeplibs+=( + third_party/pdfium/third_party/libtiff + third_party/perfetto + third_party/perfetto/protos/third_party/android + third_party/perfetto/protos/third_party/chromium + third_party/perfetto/protos/third_party/pprof + third_party/perfetto/protos/third_party/primes + third_party/perfetto/protos/third_party/simpleperf + third_party/pffft + third_party/ply + third_party/polymer + third_party/private_membership + third_party/private-join-and-compute + third_party/protobuf + third_party/protobuf/third_party/utf8_range + third_party/pthreadpool + third_party/puffin + third_party/pyjson5 + third_party/pyyaml + third_party/rapidhash + third_party/readability + third_party/rnnoise + third_party/rust + third_party/ruy + third_party/s2cellid + third_party/search_engines_data + third_party/securemessage + third_party/selenium-atoms + third_party/sentencepiece + third_party/sentencepiece/src/third_party/darts_clone + third_party/shell-encryption + third_party/simdutf + third_party/simplejson + third_party/six + third_party/skia + third_party/skia/include/third_party/vulkan + third_party/smhasher + ) + use system-snappy || keeplibs+=( + third_party/snappy + ) + keeplibs+=( + third_party/spirv-headers + third_party/spirv-tools + third_party/sqlite + third_party/swiftshader + third_party/swiftshader/third_party/astc-encoder + third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/marl + third_party/swiftshader/third_party/SPIRV-Headers/include/spirv + third_party/swiftshader/third_party/SPIRV-Tools + third_party/swiftshader/third_party/subzero + third_party/tensorflow_models + third_party/tensorflow-text + third_party/tflite + third_party/tflite/src/third_party/fft2d + third_party/tflite/src/third_party/xla/third_party/tsl + third_party/tflite/src/third_party/xla/xla/tsl/framework + third_party/tflite/src/third_party/xla/xla/tsl/lib/random + third_party/tflite/src/third_party/xla/xla/tsl/platform + third_party/tflite/src/third_party/xla/xla/tsl/protobuf + third_party/tflite/src/third_party/xla/xla/tsl/util + third_party/ukey2 + third_party/utf + third_party/vulkan + third_party/wayland + third_party/webdriver + third_party/webgpu-cts + third_party/webrtc + third_party/webrtc/common_audio/third_party/ooura + third_party/webrtc/common_audio/third_party/spl_sqrt_floor + third_party/webrtc/modules/third_party/fft + third_party/webrtc/modules/third_party/g711 + third_party/webrtc/modules/third_party/g722 + third_party/widevine + ) + use system-woff2 || keeplibs+=( + third_party/woff2 + ) + keeplibs+=( + third_party/wuffs + third_party/x11proto + third_party/xcbproto + third_party/xnnpack + third_party/zlib/google + third_party/zxcvbn-cpp + url/third_party/mozilla + v8/third_party/inspector_protocol + v8/third_party/rapidhash-v8 + v8/third_party/siphash + v8/third_party/utf8-decoder + v8/third_party/v8 + v8/third_party/valgrind + + # gyp -> gn leftovers + third_party/speech-dispatcher + third_party/usb_ids + ) + + if use test; then + keeplibs+=( + third_party/breakpad/breakpad/src/processor + third_party/fuzztest + third_party/google_benchmark/src/include/benchmark + third_party/google_benchmark/src/src + third_party/test_fonts + third_party/test_fonts/fontconfig + third_party/test_fonts/test_fonts + ) + fi + + # USE=system-* + if ! use system-harfbuzz; then + keeplibs+=( third_party/harfbuzz ) + fi + + if ! use system-ffmpeg; then + keeplibs+=( third_party/ffmpeg third_party/opus ) + fi + + if ! use system-icu; then + keeplibs+=( third_party/icu ) + fi + + if ! use system-zstd; then + keeplibs+=( third_party/zstd ) + fi + + if ! use system-av1; then + keeplibs+=( + third_party/dav1d + third_party/libaom + third_party/libaom/source/libaom/third_party/fastfeat + third_party/libaom/source/libaom/third_party/vector + third_party/libaom/source/libaom/third_party/x86inc + ) + fi + + if use libcxx; then + keeplibs+=( + third_party/libc++ + third_party/llvm-libc + ) + fi + + if ! use system-openh264; then + keeplibs+=( third_party/openh264 ) + fi + + if ! use system-re2; then + keeplibs+=( third_party/re2 ) + fi + + # Arch-specific + if use arm64 || use ppc64 ; then + keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) + fi + # we need to generate ppc64 stuff because upstream does not ship it yet + # it has to be done before unbundling. + if use ppc64; then + pushd third_party/libvpx >/dev/null || die + mkdir -p source/config/linux/ppc64 || die + # requires git and clang, bug #832803 + # Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh + # and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh + # since we're not in a git repo + sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \ + generate_gni.sh || die + ./generate_gni.sh || die + popd >/dev/null || die + + pushd third_party/ffmpeg >/dev/null || die + cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die + cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die + popd >/dev/null || die + fi + + # Sanity check keeplibs, on major version bumps it is often necessary to update this list + # and this enables us to hit them all at once. + # There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd) + whitelist_libs=( + net/third_party/quic + third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json + third_party/libjingle + third_party/mesa + third_party/skia/third_party/vulkan + third_party/vulkan + ) + local not_found_libs=() + for lib in "${keeplibs[@]}"; do + if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then + not_found_libs+=( "${lib}" ) + fi + done + + if [[ ${#not_found_libs[@]} -gt 0 ]]; then + ewarn "The following \`keeplibs\` directories were not found in the source tree:" + for lib in "${not_found_libs[@]}"; do + ewarn " ${lib}" + done + fi + + keeplibs+=( third_party/ungoogled ) + + # Remove most bundled libraries. Some are still needed. + einfo "Unbundling third-party libraries ..." + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die + + # Interferes with our bundled clang path; we don't want stripped binaries anyway. + sed -i -e 's|${clang_base_path}/bin/llvm-strip|/bin/true|g' \ + -e 's|${clang_base_path}/bin/llvm-objcopy|/bin/true|g' \ + build/linux/strip_binary.gni || die + + #! Fix for a phony target + mkdir -p third_party/rust-toolchain/bin + touch third_party/rust-toolchain/bin/rustc +} + +src_configure() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # 974899: sometimes people try to build with a non-Unicode locale and python gets very upset + python_export_utf8_locale || die "Chromium builds require a UTF-8 locale." + + # Bug 491582. + export TMPDIR="${WORKDIR}/temp" + mkdir -p -m 755 "${TMPDIR}" || die + + # https://bugs.gentoo.org/654216 + addpredict /dev/dri/ #nowarn + + # Use system-provided libraries. + # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_protobuf (bug #525560). + # TODO: use_system_sqlite (http://crbug.com/22208). + + # libevent: https://bugs.gentoo.org/593458 + local gn_system_libraries=( + flac + fontconfig + freetype + libjpeg + libwebp + libxml + libxslt + zlib + ) + if use system-abseil-cpp; then + gn_system_libraries+=( + absl_algorithm + absl_base + absl_cleanup + absl_container + absl_crc + absl_debugging + absl_flags + absl_functional + absl_hash + absl_log + absl_log_internal + absl_memory + absl_meta + absl_numeric + absl_random + absl_status + absl_strings + absl_synchronization + absl_time + absl_types + absl_utility + ) + fi + if use system-brotli; then + gn_system_libraries+=( brotli ) + fi + if use system-crc32c; then + gn_system_libraries+=( crc32c ) + fi + if use system-double-conversion; then + gn_system_libraries+=( double-conversion ) + fi + if use system-woff2; then + gn_system_libraries+=( woff2 ) + fi + if use nvidia; then + gn_system_libraries+=( libXNVCtrl ) + fi + if use system-ffmpeg; then + gn_system_libraries+=( ffmpeg opus ) + fi + if use system-jsoncpp; then + gn_system_libraries+=( jsoncpp ) + fi + if use system-icu; then + gn_system_libraries+=( icu ) + fi + if use system-zstd; then + gn_system_libraries+=( zstd ) + fi + if use system-av1; then + gn_system_libraries+=( dav1d libaom ) + fi + if use system-libusb; then + gn_system_libraries+=( libusb ) + fi + if use system-libvpx; then + gn_system_libraries+=( libvpx ) + fi + use system-openh264 && gn_system_libraries+=( + openh264 + ) + use system-re2 && gn_system_libraries+=( + re2 + ) + use system-snappy && gn_system_libraries+=( + snappy + ) + + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || + die "Failed to replace GN files for system libraries" + + # TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file + # drop the last line, then append the freetype line and a new curly brace to end the block + local freetype_gni="build/config/freetype/freetype.gni" + sed -i -e '$d' ${freetype_gni} || die + echo " enable_freetype = true" >> ${freetype_gni} || die + echo "}" >> ${freetype_gni} || die + + if use !custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + # Debug info section overflows without component build + # Prevent linker from running out of address space, bug #471810 . + filter-flags "-g*" + # 949123: Several multimedia components explicitly build with specific CFLAGS and + # use runtime detection to enable optimisations; unfortunately any of our CFLAGS are suffixed + # to the end of the command line, which causes build failures. + fi + # Since M150 `skia` will begin breaking for x86_64 due to compilation of `avx512` code paths; + # we need to filter these for all arches. + filter-flags "-march*" "-mtune*" "-mcpu*" + + # We don't use the same clang version as upstream, and with -Werror + # we need to make sure that we don't get superfluous warnings. + append-flags -Wno-unknown-warning-option + if tc-is-cross-compiler; then # can you cross-compile with the bundled toolchain? + export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" + export BUILD_CFLAGS+=" -Wno-unknown-warning-option" + fi + + # Start building our GN options + local myconf_gn=() # Tip: strings must be quoted, bools or numbers are fine + + if use !bundled-toolchain; then + # We already forced the "correct" clang via pkg_setup + + if tc-is-cross-compiler; then + CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}" + CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}" + BUILD_AR=${AR} + BUILD_CC=${CC} + BUILD_CXX=${CXX} + BUILD_NM=${NM} + fi + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM + + strip-unsupported-flags + append-ldflags -Wl,--undefined-version # https://bugs.gentoo.org/918897#c32 + + myconf_gn+=( + "is_clang=true" + "clang_use_chrome_plugins=false" + "use_clang_modules=false" # M141 enables this for the linux platform by default. + 'custom_toolchain="//build/toolchain/linux/unbundle:default"' + # From M127 we need to provide a location for libclang and the clang resource dir so that bindgen can find them + "bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" + "bindgen_clang_resource_dir=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\"" + "bindgen_extra_clang_args=[\"-I${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\"]" + "clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" + "rust_bindgen_root=\"${EPREFIX}/usr/\"" + "rust_sysroot_absolute=\"$(get_rust_prefix)\"" + "rustc_version=\"${RUST_SLOT}\"" + ) + + # Currently disabled, runtime issues with mold + #if tc-ld-is-mold; then + # myconf_gn+=( + # "use_mold=true" + # "use_lld=false" + # "linker_path=\"${EPREFIX}/usr/bin/mold\"" + # ) + #else + myconf_gn+=( "use_lld=true" ) + #fi + + if [[ ${LLVM_SLOT} -lt 23 ]]; then + # Workaround for -fsanitize-ignore-for-ubsan-feature (added in LLVM 23) + myconf_gn+=( 'clang_has_ubsan_feature_ignore=false' ) + fi + + if ! tc-is-cross-compiler; then + myconf_gn+=( 'host_toolchain="//build/toolchain/linux/unbundle:default"' ) + else + tc-export BUILD_{AR,CC,CXX,NM} + myconf_gn+=( + 'host_toolchain="//build/toolchain/linux/unbundle:host"' + 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"' + "host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\"" + "pkg_config=\"$(tc-getPKG_CONFIG)\"" + ) + + # setup cups-config, build system only uses --libs option + if use cups; then + mkdir "${T}/cups-config" || die + cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die + export PATH="${PATH}:${T}/cups-config" + fi + + # Don't inherit PKG_CONFIG_PATH from environment + local -x PKG_CONFIG_PATH= + fi + + fi # !bundled-toolchain + + local myarch + myarch="$(tc-arch)" + case ${myarch} in + amd64) + # Bug 530248, 544702, 546984, 853646. + use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \ + -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a + myconf_gn+=( 'target_cpu="x64"' ) + ;; + x86) + # Bug 530248, 544702, 546984, 853646. + use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \ + -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a + myconf_gn+=( 'target_cpu="x86"' ) + ;; + arm64) + myconf_gn+=( 'target_cpu="arm64"' ) + ;; + ppc64) + myconf_gn+=( 'target_cpu="ppc64"' ) + ;; + *) + die "Failed to determine target arch, got '${myarch}'." + ;; + esac + + # Common options + + myconf_gn+=( + # Disable code formating of generated files + "blink_enable_generated_code_formatting=false" + # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. + # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. + "dcheck_always_on=$(usex debug true false)" + "dcheck_is_configurable=$(usex debug true false)" + # Chromium builds provided by Linux distros should disable the testing config + "disable_fieldtrial_testing_config=true" + # Custom patch: Enable building Chromium as individual channels (e.g. stable, beta, dev) that + # use different profile directories, desktop entries, etc. This enables slotting the ebuild. + "enable_channel_branding=true" + # 131 began laying the groundwork for replacing freetype with + # "Rust-based Fontations set of libraries plus Skia path rendering" + # We now need to opt-in + "enable_freetype=true" + "enable_hangout_services_extension=$(usex hangouts true false)" + # Don't need nocompile checks and GN crashes with our config (verify with modern GN) + "enable_nocompile_tests=false" + # pseudolocales are only used for testing + "enable_pseudolocales=false" + "enable_widevine=$(usex widevine true false)" + # Disable fatal linker warnings, bug 506268. + "fatal_linker_warnings=false" + # Component build isn't generally intended for use by end users. It's mostly useful + # for development and debugging. + "is_component_build=false" + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. + "is_debug=false" + "is_official_build=$(usex official true false)" + # Enable ozone wayland and/or headless support + "ozone_auto_platforms=false" + "ozone_platform_headless=true" + # Enables building without non-free unRAR licence + "safe_browsing_use_unrar=false" + # "thin_lto_enable_optimizations=${use_lto}" + "treat_warnings_as_errors=false" + # Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi) + # instead of the system C++ library for C++ standard library support. + # default: true, but let's be explicit (forced since 120 ; USE removed 127). + "use_custom_libcxx=true" + # Enable ozone wayland and/or headless support + "use_ozone=true" + # The sysroot is the oldest debian image that chromium supports, we don't need it + "use_sysroot=false" + # See dependency logic in third_party/BUILD.gn + "use_system_harfbuzz=$(usex system-harfbuzz true false)" + # "use_thin_lto=${use_lto}" + # Only enabled for clang, but gcc has endian macros too + "v8_use_libm_trig_functions=true" + # use system go + "tint_use_system_go=true" + ) + + myconf_gn+=( "enable_iterator_debugging=$(usex debug true false)" ) + + if use debug; then + myconf_gn+=( + "symbol_level=2" + "blink_symbol_level=2" + "v8_symbol_level=2" + ) + else + myconf_gn+=( + "symbol_level=0" + "blink_symbol_level=0" + "v8_symbol_level=0" + ) + fi + + if use bindist ; then + myconf_gn+=( + # If this is set to false Chromium won't be able to load any proprietary codecs + # even if provided with an ffmpeg capable of h264/aac decoding + "proprietary_codecs=true" + 'ffmpeg_branding="Chrome"' + # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute + "is_component_ffmpeg=true" + ) + else + myconf_gn+=( + "proprietary_codecs=$(usex proprietary-codecs true false)" + "ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\"" + ) + fi + + if use headless; then + myconf_gn+=( + "enable_print_preview=false" + "enable_remoting=false" + 'ozone_platform="headless"' + "rtc_use_pipewire=false" + "use_alsa=false" + "use_cups=false" + "use_gio=false" + "use_glib=false" + "use_gtk=false" + "use_kerberos=false" + "use_libpci=false" + "use_pangocairo=false" + "use_pulseaudio=false" + "use_qt5=false" + "use_qt6=false" + "use_udev=false" + "use_vaapi=false" + "use_xkbcommon=false" + ) + else + myconf_gn+=( + "gtk_version=$(usex gtk4 4 3)" + # link pulseaudio directly (DT_NEEDED) instead of using dlopen. + # helps with automated detection of ABI mismatches and prevents silent errors. + "link_pulseaudio=$(usex pulseaudio true false)" + "ozone_platform_wayland=$(usex wayland true false)" + "ozone_platform_x11=$(usex X true false)" + "ozone_platform=\"$(usex wayland wayland x11)\"" + "rtc_use_pipewire=$(usex screencast true false)" + # As above - link directly instead of dlopening + "rtc_link_pipewire=$(usex screencast true false)" + "use_cups=$(usex cups true false)" + "use_kerberos=$(usex kerberos true false)" + "use_pulseaudio=$(usex pulseaudio true false)" + "use_qt5=false" + "use_system_libffi=$(usex wayland true false)" + "use_system_minigbm=true" + "use_vaapi=$(usex vaapi true false)" + "use_xkbcommon=true" + ) + if use qt6; then + local cbuild_libdir + cbuild_libdir="$(get_libdir)" + if tc-is-cross-compiler; then + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + cbuild_libdir="$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)" + cbuild_libdir="${cbuild_libdir:2}" + cbuild_libdir="${cbuild_libdir/% }" + fi + myconf_gn+=( + "use_qt6=true" + "moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" + ) + else + myconf_gn+=( "use_qt6=false" ) + fi + fi + + # Explicitly disable ICU data file support for system-icu/headless builds. + if use system-icu || use headless; then + myconf_gn+=( "icu_use_data_file=false" ) + fi + + if use official; then + # Allow building against system libraries in official builds + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ + tools/generate_shim_headers/generate_shim_headers.py || die + # Don't add symbols to build + myconf_gn+=( "symbol_level=0" ) + fi + + if use pgo; then + myconf_gn+=( + "chrome_pgo_phase=2" + "v8_enable_builtins_optimization=true" + ) + else + myconf_gn+=( "chrome_pgo_phase=0" ) + fi + + # Odds and ends + + # skipping typecheck is only supported on amd64, bug #876157 + if ! use amd64; then + myconf_gn+=( "devtools_skip_typecheck=false" ) + fi + + # Disable external code space for V8 for ppc64. It is disabled for ppc64 + # by default, but cross-compiling on amd64 enables it again. + if tc-is-cross-compiler && use ppc64; then + myconf_gn+=( "v8_enable_external_code_space=false" ) + fi + + # This determines whether or not GN uses the bundled libcxx + if use libcxx; then + myconf_gn+=( "use_custom_libcxx=true" ) + else + myconf_gn+=( + "use_custom_libcxx=false" + "use_llvm_libatomic=false" + ) + append-cppflags -U_GLIBCXX_ASSERTIONS #See #318 + fi + + myconf_gn+=( "use_bluez=$(usex bluetooth true false)" ) + + myconf_gn+=( "is_cfi=$(usex cfi true false)" ) + + if use cfi; then + myconf_gn+=( + "use_cfi_icall=true" + "use_cfi_cast=true" + ) + fi + + myconf_gn+=( + "optimize_webui=$(usex optimize-webui true false)" + "use_system_freetype=$(usex system-harfbuzz true false)" + "use_system_libopenjpeg2=$(usex system-openjpeg true false)" + "enable_pdf=true" + "use_system_lcms2=true" + "enable_print_preview=true" + "use_thin_lto=$(usex thinlto true false)" + "thin_lto_enable_optimizations=$(usex optimize-thinlto true false)" + + # Ungoogled flags + "enable_mdns=false" + "enable_mse_mpeg2ts_stream_parser=$(usex proprietary-codecs true false)" + "enable_remoting=false" + "enable_reporting=false" + "enable_service_discovery=false" + "exclude_unwind_tables=true" + "google_api_key=\"\"" + "google_default_client_id=\"\"" + "google_default_client_secret=\"\"" + "safe_browsing_mode=0" + "use_official_google_api_keys=false" + "use_unofficial_version_number=false" + + # "enable_swiftshader=false" + + # Additional flags + # "perfetto_use_system_zlib=true" + # "use_system_zlib=true" + # "use_system_libjpeg=true" + # "rtc_build_examples=false" + # "enable_chromium_prelude=false" + # "enable_updater=false" + # "enable_update_notifications=false" + # "enable_constraints=false" + # "rtc_rusty_base64=false" + # "v8_enable_temporal_support=false" + # "media_use_symphonia=false" + # "pdf_enable_rust_png=false" + # "skia_use_libpng_encode=true" + # "skia_use_libpng_decode=true" + # "skia_use_rust_png_decode=false" + # "skia_use_rust_png_encode=false" + # "enable_jxl_decoder=false" + ) + + if use amd64 || use arm64; then + myconf_gn+=( + "v8_drumbrake_bounds_checks=true" + # "v8_enable_drumbrake=true" + ) + fi + + if use thinlto; then + # We need to change the default value of import-instr-limit in + # LLVM to limit the text size increase. The default value is + # 100, and we change it to 30 to reduce the text size increase + # from 25% to 10%. The performance number of page_cycler is the + # same on two of the thinLTO configurations, we got 1% slowdown + # on speedometer when changing import-instr-limit from 100 to 30. + # append-ldflags "-Wl,-plugin-opt,-import-instr-limit=30" + sed -i '/import_instr_limit = 5/{s++import_instr_limit = 30+;h};${x;/./{x;q0};x;q1}' \ + build/config/compiler/BUILD.gn || die + + append-ldflags "-Wl,--thinlto-jobs=$(makeopts_jobs)" + fi + + # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn) + append-cflags -Wno-builtin-macro-redefined + append-cxxflags -Wno-builtin-macro-redefined + append-cppflags "-D__DATE__= -D__TIME__= -D__TIMESTAMP__=" + + local flags + einfo "Building with the following compiler settings:" + for flags in C{C,XX} AR NM RANLIB {C,CXX,CPP,LD}FLAGS \ + EXTRA_GN UGC_{SKIP_{PATCHES,SUBSTITUTION},KEEP_BINARIES} ; do + einfo " ${flags} = \"${!flags}\"" + done + + # Since we build from tarballs, we need to set the channel here so that it can be used in the build. + export CHROME_VERSION_EXTRA="${SLOT}" + + einfo "Configuring Chromium ..." + # add a `-v` here if gn `hangs` to see which file it's getting stuck on. + set -- gn gen --args="${myconf_gn[*]}${EXTRA_GN:+ ${EXTRA_GN}}" out/Release + echo "$@" + "$@" || die "Failed to configure Chromium" + + # The "if" below should not be executed unless testing + if [ ! -z "${NODIE}" ]; then + # List all args + # gn args --list out/Release + + # Quick compiler check + eninja -C out/Release protoc torque + fi +} + +src_compile() { + # Final link uses lots of file descriptors. + ulimit -n 2048 + + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # I hate doing this but upstream Rust have yet to come up with a better solution for + # us poor packagers. Required for Split LTO units, which are required for CFI. + export RUSTC_BOOTSTRAP=1 + + # Don't inherit PYTHONPATH from environment, bug #789021, #812689 + local -x PYTHONPATH= + + # Build mksnapshot and pax-mark it. + if use pax-kernel; then + local x + for x in mksnapshot v8_context_snapshot_generator code_cache_generator; do + if tc-is-cross-compiler; then + eninja -C out/Release "host/${x}" + pax-mark m "out/Release/host/${x}" + else + eninja -C out/Release "${x}" + pax-mark m "out/Release/${x}" + fi + done + fi + + # Even though ninja autodetects number of CPUs, we respect + # user's options, for debugging with -j 1 or any other reason. + eninja -C out/Release chrome chrome_sandbox $(use test && echo "base_unittests") + + pax-mark m out/Release/chrome + + # This codepath does minimal patching, so we're at the mercy of upstream + # CFLAGS. This is fine - we're not intending to force this on users + # and we do a lot of flag 'management' anyway. + if use bundled-toolchain; then + QA_FLAGS_IGNORED=" + usr/lib64/chromium-browser/chrome + usr/lib64/chromium-browser/chrome-sandbox + usr/lib64/chromium-browser/chromedriver + usr/lib64/chromium-browser/chrome_crashpad_handler + usr/lib64/chromium-browser/libEGL.so + usr/lib64/chromium-browser/libGLESv2.so + usr/lib64/chromium-browser/libVkICD_mock_icd.so + usr/lib64/chromium-browser/libVkLayer_khronos_validation.so + usr/lib64/chromium-browser/libqt6_shim.so + usr/lib64/chromium-browser/libvk_swiftshader.so + usr/lib64/chromium-browser/libvulkan.so.1 + " + fi + + use convert-dict && eninja -C out/Release convert_dict + + use enable-driver && eninja -C out/Release chromedriver + #use suid && eninja -C out/Release chrome_sandbox + + # use enable-driver && mv out/Release/chromedriver{.unstripped,} + + rm -f out/Release/locales/*.pak.info || die + + # Generate support files (desktop file, manpage, etc.) See: #684550 #706786 #968958 + ${EPYTHON} "${FILESDIR}/generate-support-files-r1.py" \ + --installdir "/usr/$(get_libdir)/ungoogled-chromium-browser" \ + --channel "${SLOT}" || + die "Failed to generate support files" +} + +src_test() { + # Tests may be flaky with usersandbox, and the test runner executes significantly faster without. + # If you seem to be excluding too many tests for a particular milestone: comment them out, reboot, and + # run the tests again. If that doesn't help, try FEATURES="-usersandbox" and send it because obviously the + # chromium gods are not smiling upon you today. Do some runtime testing, obvs. + local skip_tests=( + # Wildcard exclusions (if all tests in a test suite are broken) + 'AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/*' + 'AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/*' + 'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 crashes entire test runner with usersandbox. + 'CheckExitCodeAfterSignalHandlerDeathTest.*' + 'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*' + 'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142 + 'ToolsSanityTest.BadVirtualCall*' + # Since 151.0.7922.137 + 'CheckDeathTest.*' + 'EnumSetDeathTest.*' + 'OptionalRefDeathTest.*' + 'RawRefDeathTest.*' + 'AlternateTestParams/PartitionAllocDeathTest.CheckTriggered*' + 'CallbackHelpersTest.*' + 'SafeRefTest.*' + 'SpanTest.*' + 'WeakValueTableTest.*' + 'PlatformSharedMemoryRegionTest.*' + 'RefCountedOverflowTest.*' + 'SingleThreadTaskRunnerCurrentDefaultHandleTest.*' + 'TestFutureDeathTest.*' + 'WeakPtrDeathTest.*' + 'SafeRefDeathTest.*' + 'LinkedListDeathTest.*' + 'BindDeathTest.*' + 'ReallocProtectedIteratorDeathTest.*' + 'PASpanTest.*' + 'BackupRefPtrTest.*' + 'All/Base64Test.Overflow*' + 'ValuesTest.*' + 'TaskEnvironmentTest.*' + 'CheckedObserverListTest.*' + 'MemoryConsumerRegistryTest.*' + ProtectedMemoryDeathTest.FailsIfDefinedOutsideOfProtectMemoryRegion + StructuredSharedMemoryDeathTest.DuplicateRegion + CheckedContiguousIteratorDeathTest.OutOfBounds + HeapArrayDeathTest.TakeFirstWithOverSize + CallbackDeathTest.RunNullCallbackChecks + ObserverListThreadSafeDeathTest.CrossThreadRemovalRestricted + SequencedTaskRunnerCurrentDefaultHandleDeathTest.OverrideWithNull + TestFutureWithoutTaskEnvironmentDeathTest.WaitShouldDcheckWithoutTaskEnvironment + ScopedThreadPriorityDeathTest.NoRealTime + ReallocProtectedIteratorDeathTest.StringReallocCrashes + BarrierCallbackTest.ErrorToCallCallbackWithZeroCallbacks + BarrierClosureTest.ChecksIfCalledForZeroClosures + SupportsUserDataTest.ReentrantSetUserDataDuringRemoval + TimeBase.AddSubInfinities + LibcppHardeningTest.Assertions + IDMapTest.RemovedValueHandling + MultiMemoryConsumerTest.DuplicateInterventionsCheck + PersistentMemoryAllocatorTest.DelayedAllocationTest + SequenceCheckerTest.MoveOffSequenceBanned + ThreadCheckerTest.MoveOffThreadBanned + TokenType.TokenFromNullUnguessableToken + ZipTest.CheckForIterationPastTheEnd + MemoryConsumerTraitsTest.ActiveConsumerWithPassiveTraitsFails + SingleThreadTaskRunnerMainThreadDefaultHandleTest.Basic + + # requires en-us locale + SysStrings.SysNativeMBAndWide + SysStrings.SysNativeMBToWide + SysStrings.SysWideToNativeMB + # Specific test cases + CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention + FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe + HistogramTesterTest.PumaTestUniqueSample + ImmediateCrashTest.ExpectedOpcodeSequence # M150 + PathServiceTest.CheckedGetFailure + PlatformThreadTest.CanChangeThreadType + RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144. + RustLogIntegrationTest.CheckAllSeverity + StackCanary.ChangingStackCanaryCrashesOnReturn + StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree + TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest + ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker + DriveInfoTest.GetFileDriveInfo + + ) + local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")" + # test-launcher-bot-mode enables parallelism and plain output + # Check individual tests with --gtest_filter=<test you want> --single-process-tests + ./out/Release/base_unittests --test-launcher-bot-mode \ + --test-launcher-jobs="$(get_makeopts_jobs)" \ + --gtest_filter="${test_filter}" || die "Tests failed!" +} + +src_install() { + local browser_suffix + if [[ "${SLOT}" != "stable" ]]; then + browser_suffix="-${SLOT}" + else + browser_suffix="" + fi + local CHROMIUM_HOME="/usr/$(get_libdir)/ungoogled-chromium-browser${browser_suffix}" + exeinto "${CHROMIUM_HOME}" + doexe out/Release/chrome + + #newexe out/Release/chrome_sandbox chrome-sandbox + #fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" + + use enable-driver && doexe out/Release/chromedriver + + #* https://github.com/ungoogled-software/ungoogled-chromium/pull/3563 + doexe out/Release/chrome_crashpad_handler + + if use convert-dict; then + newexe "${FILESDIR}/update-dicts.sh" update-dicts.sh + doexe out/Release/convert_dict + fi + + ozone_auto_session () { + use X && use wayland && ! use headless && echo true || echo false + } + + cat <<- EOF > "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die + #!/bin/bash + # Wrapper to launch slotted Chromium via the chromium-common launcher script. + export CHROME_DESKTOP="ungoogled-chromium-browser${browser_suffix}.desktop" + export CHROME_EXEC_NAME="ungoogled-chromium-browser${browser_suffix}" + export CHROME_VERSION_EXTRA="${SLOT}" + export CHROME_WRAPPER="\$(readlink -f "\$0")" + export OZONE_AUTO_SESSION=$(ozone_auto_session) + + exec /usr/libexec/chromium/chromium-launcher.sh "\$@" + EOF + + chmod 755 "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die + + # It is important that we name the target "chromium-browser", + # xdg-utils expect it; bug #355517. + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/ungoogled-chromium-browser${browser_suffix} + # keep the old symlink around for consistency + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/ungoogled-chromium${browser_suffix} + + use enable-driver && dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/ungoogled-chromedriver${browser_suffix} + + pushd out/Release/locales > /dev/null || die + chromium_remove_language_paks + popd > /dev/null || die + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.bin + doins out/Release/*.pak + doins -r out/Release/hyphen-data + + if use bindist; then + # We built libffmpeg as a component library, but we can't distribute it + # with proprietary codec support. Remove it and make a symlink to the requested + # system library. + rm -f out/Release/libffmpeg.so \ + || die "Failed to remove bundled libffmpeg.so (with proprietary codecs)" + # symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium]. + einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..." + dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \ + /usr/$(get_libdir)/ungoogled-chromium-browser/libffmpeg.so + fi + + ( + shopt -s nullglob + local files=(out/Release/*.so out/Release/*.so.[0-9]) + [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" + ) + + if ! use system-icu && ! use headless; then + doins out/Release/icudtl.dat + fi + + doins -r out/Release/locales + #doins -r out/Release/MEIPreload + + # Install vk_swiftshader_icd.json; bug #827861 + doins out/Release/vk_swiftshader_icd.json + + if [[ -d out/Release/swiftshader ]]; then + insinto "${CHROMIUM_HOME}/swiftshader" + doins out/Release/swiftshader/*.so + fi + + use widevine && dosym WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so "${CHROMIUM_HOME}/libwidevinecdm.so" + + # Install icons + local branding size + for size in 16 24 32 48 64 128 256 ; do + case ${size} in + 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; + *) branding="chrome/app/theme/chromium" ;; + esac + newicon -s ${size} "${branding}/product_logo_${size}.png" \ + ungoogled-chromium-browser${browser_suffix}.png + done + + # Install desktop entry + domenu out/Release/ungoogled-chromium-browser${browser_suffix}.desktop + + # Install GNOME default application entry (bug #303100). + insinto /usr/share/gnome-control-center/default-apps + doins out/Release/ungoogled-chromium-browser${browser_suffix}.xml + + # Install AppStream metadata + insinto /usr/share/appdata + doins out/Release/ungoogled-chromium-browser${browser_suffix}.appdata.xml + + # Install manpage; bug #684550 + doman out/Release/ungoogled-chromium-browser${browser_suffix}.1 + dosym ungoogled-chromium-browser${browser_suffix}.1 /usr/share/man/man1/ungoogled-chromium${browser_suffix}.1 + + readme.gentoo_create_doc +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_desktop_database_update +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_desktop_database_update + readme.gentoo_print_elog + + if use !headless && [[ -z "${REPLACING_VERSIONS}" ]]; then + if use vaapi; then + elog "Hardware-accelerated video decoding configuration:" + elog + elog "Chromium supports multiple backends for hardware acceleration. To enable one," + elog " Add to CHROMIUM_FLAGS in /etc/chromium/default:" + elog + elog "1. VA-API with OpenGL (recommended for most users):" + elog " --enable-features=AcceleratedVideoDecodeLinuxGL" + elog " VaapiVideoDecoder may need to be added as well, but try without first." + elog + if use wayland; then + elog "2. Enhanced Wayland/EGL performance:" + elog " --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL" + elog + fi + if use X; then + elog "$(usex wayland "3" "2"). VA-API with Vulkan:" + elog " --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE" + elog + if use wayland; then + elog " NOTE: Vulkan acceleration requires X11 and will not work under Wayland sessions." + elog " Use OpenGL-based acceleration instead when running under Wayland." + elog + fi + fi + elog "Additional options:" + elog " To enable hardware-accelerated encoding (if supported)" + elog " add 'AcceleratedVideoEncoder' to your feature list" + elog " VaapiIgnoreDriverChecks bypasses driver compatibility checks" + elog " (may be needed for newer/unsupported hardware)" + elog + else + elog "This Chromium build was compiled without VA-API support, which provides" + elog "hardware-accelerated video decoding." + fi + if use screencast; then + elog "Screencast is disabled by default at runtime. Either enable it" + elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" + elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer" + elog "to CHROMIUM_FLAGS in /etc/chromium/default." + elog + elog "Additional setup may be required for screencasting to work." + elog "See issue: https://github.com/PF4Public/gentoo-overlay/issues/314" + fi + if use gtk4; then + elog "Chromium prefers GTK3 over GTK4 at runtime. To override this" + elog "behaviour you need to pass --gtk-version=4, e.g. by adding it" + elog "to CHROMIUM_FLAGS in /etc/chromium/default." + fi + if use widevine; then + elog "widevine requires binary plugins, which are distributed separately" + elog "Make sure you have www-plugins/chrome-binary-plugins installed" + fi + fi + + if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then + ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd" + ewarn "indicates that the Gentoo handbook was not followed to completion." + ewarn "" + ewarn "Chromium is known to behave unpredictably with this system configuration;" + ewarn "please complete the configuration of this system before logging any bugs." + fi + + # Stable slot doesn't change profile directory, and it's vanishingly unlikely that users will downgrade from dev. + if [[ -n "${REPLACING_VERSIONS}" ]]; then + local replacing_non_slotted=false + # there could be more than one PVR + for version in ${REPLACING_VERSIONS}; do + if ver_test "${version}" -le "145.0.7632.116"; then + replacing_non_slotted=true + break + fi + done + if ${replacing_non_slotted}; then + ewarn "This version of Chromium has replaced a non-slotted ebuild." + if [[ ${SLOT} != "stable" ]]; then + ewarn "This channel has its own profile directory, so your existing profile will not be used." + ewarn "To use your existing profile, either copy or move it to the new location." + ewarn "See https://wiki.gentoo.org/wiki/Chromium#Profile_Directories for more information." + ewarn "" + fi + ewarn "Any existing Progressive Web Apps (PWAs) will need to be reinstalled," + ewarn "or have the path in the desktop files updated to point to the new wrapper script." + fi + fi +} + +record_failed_patch() { + FAILED_PATCHES+=( "$1" ) +} + +eapply_wrapper () { + if [ ! -z "${NODIE}" ]; then + local operand f + for operand in "$@"; do + if [[ -d "${operand}" ]]; then + # eapply bails on the first failing patch in a directory, + # so apply each patch individually to test them all and + # record every failure + for f in "${operand%/}"/*; do + case "${f##*/}" in + *.patch|*.diff) + nonfatal eapply "${f}" || record_failed_patch "${f}" + ;; + esac + done + else + nonfatal eapply "${operand}" || record_failed_patch "${operand}" + fi + done + else + eapply "$@" + fi +} + +git_wrapper () { + # The last argument is expected to be the patch file, so failed + # patches can be recorded by name in NODIE mode + if [ ! -z "${NODIE}" ]; then + git "$@" || record_failed_patch "${@: -1}" + else + git "$@" || die + fi +} + +filter_wrapper () { + einfo "Applying ${1##*/}" + #? fuzz factor of 3 is OK? + if [ ! -z "${NODIE}" ]; then + filterdiff -p1 "${@:2}" < "$1" | patch -F 3 -p1 || record_failed_patch "$1" + else + filterdiff -p1 "${@:2}" < "$1" | patch -F 3 -p1 || die + fi +} |
