diff options
| author | Sergio <sergiotarxz@posteo.net> | 2026-09-16 22:56:19 +0200 |
|---|---|---|
| committer | Sergio <sergiotarxz@posteo.net> | 2026-09-16 22:56:19 +0200 |
| commit | 594333594f63d7cf7ecd45c20e132b9b353336c3 (patch) | |
| tree | e659c862a8fea54313d8a403910911718d8a6ff6 | |
| parent | 4d894409d644528b516034801a47dd0e07c205fe (diff) | |
| parent | d59077d41d78e5c537fbbceb79f3f7535e1a14c2 (diff) | |
Merge branch 'master' of https://gitweb.gentoo.org/repo/gentoov1.0.0-rc18
703 files changed, 21938 insertions, 24300 deletions
diff --git a/app-admin/ansible-lint/Manifest b/app-admin/ansible-lint/Manifest index c50ceee9531d..c723f197275b 100644 --- a/app-admin/ansible-lint/Manifest +++ b/app-admin/ansible-lint/Manifest @@ -3,3 +3,5 @@ DIST ansible_lint-25.11.0.tar.gz.provenance 9435 BLAKE2B d69ce09b2660cd6a7cb6f57 DIST ansible_lint-25.9.0.tar.gz 699967 BLAKE2B 7dbda793d3d4d9ff4b21ffb5bd208b343d595ed0ac160ca992e93b08314fdba716120dfa9969fad864a43f268dc8c1ea5342851000feeda598a4bfa664b4d2c4 SHA512 332df15e60b38f2356411fb265d854f16e13a1f38d364d46c090ab6139fa13d69e3768d37c4554a9446a3a05f9e918841dd577150423cf0ae683b766149fb727 DIST ansible_lint-26.3.0.tar.gz 747216 BLAKE2B 792692d93e437927c6bebcf8bfd2a9f12bbf3335547ce468cad24883e7f0be4813438b16f02dd96711f860705ec90f6bdf3b5b0fce3e66d7c1f2ff0d4f43c125 SHA512 1100c420273fcf9cb23f012af22bf0a2adeb5cfd40f5d0a6a6a01bbe88eeb0858be5c7231e9df4009c40b3c0eabcc7d3eeac0aeacd0932788b5d65cd9d09e297 DIST ansible_lint-26.3.0.tar.gz.provenance 9739 BLAKE2B 9dc145cc87c6746c7537da117345fa2468d2bd309065e83e6f820ac6b571a0126bbddbb3854f7d3bc89d17c46605759b6d8d81b5882d574e4c284f65c037bca9 SHA512 b9aed112eb976e072eee40b1b4dc9df6865af89d4520f7b79c6935479fa84c07993acb2360b57698a2f3b470da2004be31756f9b7bcfe620c82ed80c6d27a823 +DIST ansible_lint-26.8.0.tar.gz 776383 BLAKE2B baa90d324bb5e7f960df0503dd5e80d9204568f33f942380f49f0cbcd836e25a066e7b97810150da7dcb4409bffa9874ec9eb8d6692a6160bc877c9e307609e1 SHA512 67046df1c2746e293ecae3f6c8475642f081b5d8a92fcf3df4614d83bad22bee149dbba931e52a67e18878073731e868e49875f6e0e3811cb614cc22782cce09 +DIST ansible_lint-26.8.0.tar.gz.provenance 9745 BLAKE2B 044664eca01b7f40382e7a0c79704b0e0558c095384962a814adbb49d30907cfd325a7b3a839bfe6d99d795e66a0c93a6858633bbada031463999be85f30eaba SHA512 da6bff97066ffba41e9ec47ecff50bc986be36c2acf5723dba5a83790111a69bafe00ac38436a68e10067c8f0e7f18b2ac35d66c323319930a31aa55e2d70df3 diff --git a/app-admin/ansible-lint/ansible-lint-26.8.0.ebuild b/app-admin/ansible-lint/ansible-lint-26.8.0.ebuild new file mode 100644 index 000000000000..7de269094598 --- /dev/null +++ b/app-admin/ansible-lint/ansible-lint-26.8.0.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517="setuptools" +PYPI_VERIFY_REPO=https://github.com/ansible/ansible-lint +PYTHON_COMPAT=( python3_{12..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Checks ansible playbooks for practices and behaviour that can be improved" +HOMEPAGE="https://github.com/ansible/ansible-lint" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv" + +# Upstream has stated explicitly that all tests require Internet access +PROPERTIES="test_network" +RESTRICT="test" + +# List of test dependencies is non-exhaustive, probably out-of-date. +BDEPEND=" + >=dev-python/setuptools-scm-7.0.5[${PYTHON_USEDEP}] + test? ( + dev-python/mypy[${PYTHON_USEDEP}] + dev-python/jmespath[${PYTHON_USEDEP}] + dev-python/license-expression[${PYTHON_USEDEP}] + dev-python/pylint[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + >=dev-python/pytest-plus-0.6[${PYTHON_USEDEP}] + >=dev-python/pytest-xdist-2.5.0[${PYTHON_USEDEP}] + ) +" + +RDEPEND=" + >=app-admin/ansible-core-2.18.1[${PYTHON_USEDEP}] + >=dev-python/ansible-compat-25.8.2[${PYTHON_USEDEP}] + dev-python/black[${PYTHON_USEDEP}] + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/distro[${PYTHON_USEDEP}] + >=dev-python/filelock-3.14.0[${PYTHON_USEDEP}] + dev-python/importlib-metadata[${PYTHON_USEDEP}] + >=dev-python/jsonschema-4.17.0[${PYTHON_USEDEP}] + >=dev-python/packaging-24.0[${PYTHON_USEDEP}] + >=dev-python/pathspec-0.10.3[${PYTHON_USEDEP}] + <dev-python/pathspec-1.1.0[${PYTHON_USEDEP}] + >=dev-python/pyyaml-6.0.2[${PYTHON_USEDEP}] + >=dev-python/ruamel-yaml-0.18.11[${PYTHON_USEDEP}] + dev-python/ruamel-yaml-clib[${PYTHON_USEDEP}] + dev-python/subprocess-tee[${PYTHON_USEDEP}] + >=dev-python/wcmatch-8.5.2[${PYTHON_USEDEP}] + >=dev-util/yamllint-1.38.0[${PYTHON_USEDEP}] + dev-vcs/git +" + +PATCHES=( + "${FILESDIR}"/${PN}-24.7.0-warnings.patch +) + +# test_call_from_outside_venv doesn't play nicely with the sandbox +# irrespective of whether Internet access is allowed or not +EPYTEST_DESELECT=( + test/test_main.py::test_call_from_outside_venv +) + +distutils_enable_tests pytest + +# Test suite fails to start without this +python_test() { + epytest test +} diff --git a/app-admin/awscli/Manifest b/app-admin/awscli/Manifest index be6f2c4a2220..94322280e565 100644 --- a/app-admin/awscli/Manifest +++ b/app-admin/awscli/Manifest @@ -1,2 +1,4 @@ DIST aws-cli-1.46.0.gh.tar.gz 19210830 BLAKE2B 8cab4c9027561c5c9711296a5da3aad749ee30f14d8fec13da8f880bcc4f8a1fd97c2ed255fe74eb8ee12e9a59dfb2319db113efd047cbf5f89205ecdd6ab933 SHA512 0381958389f580ab6536468343da16582342af38faf3439ac5a29865a6652c3434826df587793fdf07736a6e0c37ae9f8598475be77abe8e93f73e35baff76dc DIST aws-cli-1.46.1.gh.tar.gz 19215038 BLAKE2B 3120c6768b749a85eea847040758f64120d5fba33be786566e178c36ed53d5d81676b8f9d632be7c09e65cc469d71366f897a4cafeb237b8fd2128361e3b4b1d SHA512 d332682464b9cb2cb3f1c0229f2161f8480c01416e637cf243c84388690f6029884eecfaa156fa57f6f9a224127902ec9cb11d5a1a4d313842ee5dd99f52d3be +DIST aws-cli-2.36.45.gh.tar.gz 19279291 BLAKE2B dfd22ee621601d8cc5aa7883c08f962d7056d25e33e0bbf8184470ec53585fa9b0034dd85dce58d1ca580e95109d299e20b4a45456143ab2feac05a25b34d3f2 SHA512 db99a475f322cc1cf4bd792e67d5430c82c118c36862fa6a822b4e34ab62d92b6ed686717d80b476f36ac3414e1cf8710b18f400be73f49c7b59b0231c6ed7c0 +DIST aws-cli-2.36.46.gh.tar.gz 19284758 BLAKE2B 5cd2b985e327f84c64dd1901bf282069f2d92fe03dbcac243e5e80d36f24858fd179b60aa740396377e5dff36d73c2ad56680d808faf8803d0b76eba2bcde169 SHA512 4b7816702295e8faa4ed0c0ab564df8aca288051fe24fd8e6b68f3c27a2b89274d52b251cf2771952dd17d7f42d1339dfd6c2ee7adad06f9ed9b2c6556adca44 diff --git a/app-admin/awscli/awscli-2.36.45.ebuild b/app-admin/awscli/awscli-2.36.45.ebuild new file mode 100644 index 000000000000..78172674a931 --- /dev/null +++ b/app-admin/awscli/awscli-2.36.45.ebuild @@ -0,0 +1,112 @@ +# 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_{12..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 ~riscv" + +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/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-admin/awscli/awscli-2.36.46.ebuild b/app-admin/awscli/awscli-2.36.46.ebuild new file mode 100644 index 000000000000..e90e9121459f --- /dev/null +++ b/app-admin/awscli/awscli-2.36.46.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_{12..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 ~riscv" + +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-backup/burp/burp-3.3.0-r1.ebuild b/app-backup/burp/burp-3.3.0-r1.ebuild index ac0abb4f06c0..f7db9c05c125 100644 --- a/app-backup/burp/burp-3.3.0-r1.ebuild +++ b/app-backup/burp/burp-3.3.0-r1.ebuild @@ -15,7 +15,7 @@ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/grke.asc LICENSE="AGPL-3" SLOT="0" -KEYWORDS="~amd64 ~arm ~x86" +KEYWORDS="amd64 ~arm x86" IUSE="acl test verify-sig xattr" RESTRICT="!test? ( test )" diff --git a/app-containers/docker-buildx/Manifest b/app-containers/docker-buildx/Manifest index fc5222dd8a4e..81a8e0cc6bc3 100644 --- a/app-containers/docker-buildx/Manifest +++ b/app-containers/docker-buildx/Manifest @@ -7,3 +7,4 @@ DIST docker-buildx-0.34.1.tar.gz 15417849 BLAKE2B b302d1f2331ba7f76c79358be19743 DIST docker-buildx-0.35.0.tar.gz 15243338 BLAKE2B d5529d81cd2745366e46da1f805da6b4b47a4002260c5f351cddafbba4cc55fbad3be182e94d89453de62fdda3adc7bde2713010122439ce72a7cc53e49b3f6f SHA512 208251fe59d016bbb1d34abacab4813169577c474ad62f47afdcce4f2484e8535a452bfa0b8dbadc465590cae935896bfeec2263934262cdb769a27b59b4c5de DIST docker-buildx-0.36.1.tar.gz 15022684 BLAKE2B c927c4e310cd72a9cbffb00d637e0c596828ea1ad1aee8725cdaa9163dc100a35c0898b25f7123ed1c926006f7b3e632c4b579eeeeb296cd25b331f9e7d64699 SHA512 669a1fa58570f56dfc6d5a0cf79f09e5a326b997a26a79e9bdbc263b1b847200d6bcc8fa1a37be43a77573d32c04d093959ec793cfd503cef524cbfdb9332339 DIST docker-buildx-0.37.0.tar.gz 15139877 BLAKE2B 2f0048fc2878054104168eb9e1117c987c6fb44be3f929e5a52bc1554c2c97f91898f35049a74b8320c3ae77ee0a1ffe661fcdd2c28b969ebce33d16659b16c4 SHA512 9b82b4b6e6f27a364dda89c3dcc936db78a49750c7cdc527641f04c736d8987a4efbde9614a91ea151772c9b9d01959ce51de5c6d144820b18b7e3244695bece +DIST docker-buildx-0.37.1.tar.gz 15141432 BLAKE2B aa3459115826a0fb07a8858052fa8f4e0f7150f23bd5043bd33b90dad9e6c8b8db104d2f75e4d7bc869ae55ca4124d74bd6367371ca9140fe7fefa0aa20cbd73 SHA512 f53f849dd4b71353dccc70864aa9a969397c598ea91f7610046b3ed322360ed6793dd321f05043c36417bf7327c4101f330400a53b466fb205c7493f433af814 diff --git a/app-containers/docker-buildx/docker-buildx-0.37.1.ebuild b/app-containers/docker-buildx/docker-buildx-0.37.1.ebuild new file mode 100644 index 000000000000..a339148875b0 --- /dev/null +++ b/app-containers/docker-buildx/docker-buildx-0.37.1.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit go-module + +DESCRIPTION="Docker CLI plugin for extended build capabilities with BuildKit" +HOMEPAGE="https://github.com/docker/buildx" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/docker/buildx.git" +else + SRC_URI="https://github.com/docker/buildx/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + S=${WORKDIR}/${P#docker-} +fi + +LICENSE="Apache-2.0" +# Dependent licenses +LICENSE+=" Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0 Unicode-DFS-2016" +SLOT="0" + +RDEPEND="app-containers/docker-cli" +BDEPEND=">=dev-lang/go-1.26.3" + +src_compile() { + local _buildx_r='github.com/docker/buildx' + local version=${PV} + if [[ ${PV} == 9999 ]]; then + version="$(git rev-parse --short HEAD)" + fi + local go_ldflags=( + "-linkmode=external" + -X "${_buildx_r}/version.Version=${version}" + -X "${_buildx_r}/version.Revision=$(date -u +%FT%T%z)" + -X "${_buildx_r}/version.Package=${_buildx_r}" + ) + ego build -o docker-buildx -ldflags "${go_ldflags[*]}" ./cmd/buildx +} + +src_test() { + # TestGit can't work in a source tarball; TestReadTargets fails seemingly due to parallelism. + if [[ ${PV} == 9999 ]]; then + ego test ./... -skip "TestReadTargets|TestIntegration" + else + ego test ./... -skip "TestGit|TestReadTargets|TestIntegration" + fi +} + +src_install() { + exeinto /usr/libexec/docker/cli-plugins + doexe docker-buildx + + einstalldocs +} diff --git a/app-containers/lxd/Manifest b/app-containers/lxd/Manifest index e39f1e300970..1e997142121b 100644 --- a/app-containers/lxd/Manifest +++ b/app-containers/lxd/Manifest @@ -2,7 +2,10 @@ DIST lxd-5.21.1.tar.gz 23753867 BLAKE2B 102f3c83faa956f6a5f052912417f595a7374c13 DIST lxd-5.21.1.tar.gz.asc 833 BLAKE2B 1c43b7750e505ef66d4f9fcf3723abf28a7b4e2785866604b88f6dfa80f7e3d0ed33734bc49606ecff16659de9dabfbeb08ba71c36eafc8d05a28397e3e73a89 SHA512 8ec81d1df6d3b9aec58cbde08306a865f9c27e86be04da11a2b5566c78865b51f91edb6fa26e8b5d25202bf33657bd0f867ec986e4e8b39f379b25e03cd6a5d3 DIST lxd-5.21.4.tar.gz 37255971 BLAKE2B 57df5d9fcb521d651eb09dbf806a6ee3c8235075c2306e99bd76d97d30c7691a0884b258eed815027d8e35bc96966f826c72a6f99b886f7f4b43c6a9aa38f624 SHA512 3b92abe156d5d7c6257cb6a5f6e18c2756476ed5d7828789bbe7f33d3d03557757e1dd94008dc48ca737af447f79bcc26ed4f36e325d95b6a179a42c9f512eb0 DIST lxd-5.21.4.tar.gz.asc 833 BLAKE2B acc30156852163ded902fd2a9245a06d2052bcdbb67ae12f238344aff7149d204db7354621216bf0fa63a4ce3e220aaa1ca5f462f5bc1aefba282391c90e51b9 SHA512 c02354165e87089e327791d20a0dc5f1ffc538938158928b62261f97b7699796286aef8fac5f4d00e7bfc1afa4206065b60015f561d00a74a934df70054e40f1 +DIST lxd-5.21.7.tar.gz 10436763 BLAKE2B 73c91e88b3e2a2f6bf580af51cfc1f89a52f88db7b7d86f095a3396cd2c6c2ea96d527577889a6ae0d36671fed3d1c416d39bbf9b84f93dd52e070add1d6b186 SHA512 dfe908b72b11e5dd97a6d53f2db2987d1d1c8cb2754f2d3f89949bc30e85c805c6c0fbec7265577749428ed6542636d336434aaaf03018e69c202b9d65a3cf03 DIST lxd-6.3.tar.gz 33286388 BLAKE2B 2f66ebfea94a262fc162b958ea031b6d82d35ea75e20445e8f5a5308689f5a37730aa18d8cf2fe6507cdc88c39a063a2ed295a3a7f8b0537e76835bc92116739 SHA512 0ec8bc8a55529258848045c2ff2e946de78989d8fd8ec2110c3fda15f9da9f56b8343460270d8d1661956bbf8c79dca4422212a4b23e4fe50398a47619834b62 DIST lxd-6.3.tar.gz.asc 833 BLAKE2B 0778cdda82dacb3de31723b956a99e1c3c3d8317a87b2bfe35d2ff1516ebd65c0e5d42820bac8e15d6e03f15028556c37ea23234becd296963371be238e56e02 SHA512 8dca8e128b4c19e311a3b1084dbed79e9eea7e9c17306c2618fbcba358c1b540600610c7be8218eb3f8d8f5f4e2ce240c06470a2aa8baf9c3431edd807430720 DIST lxd-6.5.tar.gz 36814768 BLAKE2B b176c2ec0784bac97d901e457676d3563552271e67936a1b87404f0ff46d8d38ffbadf2599c8718fb3b47a87235e530e6f8a9b6d27ede539add8c8601f0b44df SHA512 f2282da0acaf0adcc5b9438257aeb4cc456b4a3683f21e241338df4fff2fda30fa05b4cfe7d68d20ace84c08fbb06b0a8e6cd677d0db2112dfb29935c53c77af DIST lxd-6.5.tar.gz.asc 833 BLAKE2B 04a8d5c8c990821640e2ab2bfa3a53eb2a2f7a022365194ce78fd9fd7d2070e9dd6baaa5a682d7568b940722503b74638a255061ee782717d64ca0e51e58b6e5 SHA512 be402e69417c3cee5e5db724bc7680ec48f432b51f79bf7ec3baa5402e5cb68f7299edcf3d1604d4ac10d7eee7361bcdf70f737b6db12f8b80dd75c626b1f2d8 +DIST lxd-6.9.tar.gz 34937801 BLAKE2B c77d46ab68135425282978df338456caa6ba910aa89ae6344dab450f1ee852a39e841158efbec3ceb22f7b01f0f2b5473323de2480ed2af1c1470d68038b6fbc SHA512 c662b9752ea94e990d76efdbad88705344799c55a4a394d70f208beeb3d9fcb14ddc47ad702a51abb71f639a18c542988f06b4e069ba5553c6d1b22089439eff +DIST lxd-6.9.tar.gz.asc 833 BLAKE2B 3ae04d7091ad38f5c10d266be27f9e53c56a4eb7f60e5fee1244de47232547fa0c82bf7bc7a7dd751728088d75419bfe4a043af34974072ef12f1b3b2880ceaf SHA512 717c9243843343e22115368fe29ca8356e9f9a5eb974a734fe0b32677929e058abf00c886217a53e69a613719fe66b0b5dbf0ddc6c5a0810f26af364aecf8c68 diff --git a/app-containers/lxd/lxd-5.21.1-r2.ebuild b/app-containers/lxd/lxd-5.21.1-r2.ebuild new file mode 100644 index 000000000000..1b63490eb639 --- /dev/null +++ b/app-containers/lxd/lxd-5.21.1-r2.ebuild @@ -0,0 +1,191 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit shell-completion go-module linux-info optfeature systemd verify-sig flag-o-matic + +DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" +HOMEPAGE="https://ubuntu.com/lxd https://github.com/canonical/lxd" +SRC_URI="https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz + verify-sig? ( https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz.asc +)" + +LICENSE="Apache-2.0 AGPL-3+ BSD LGPL-3 MIT" +SLOT="0/lts" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="apparmor nls" + +DEPEND="acct-group/lxd + app-arch/xz-utils + >=app-containers/lxc-5.0.0:=[apparmor?,seccomp(+)] + dev-db/sqlite:3 + >=dev-libs/dqlite-1.16.4:=[lz4] + <dev-libs/dqlite-1.18.3 + dev-libs/lzo + >=dev-util/xdelta-3.0[lzma(+)] + net-dns/dnsmasq[dhcp] + sys-libs/libcap + virtual/udev" +RDEPEND="${DEPEND} + || ( + net-firewall/nftables[json] + ( + net-firewall/ebtables + net-firewall/iptables + ) + ) + sys-apps/iproute2 + sys-fs/fuse:3 + >=sys-fs/lxcfs-5.0.0 + sys-fs/squashfs-tools[lzma] + virtual/acl" +BDEPEND=">=dev-lang/go-1.22 + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-canonical )" + +CONFIG_CHECK=" + ~CGROUPS + ~IPC_NS + ~NET_NS + ~PID_NS + + ~SECCOMP + ~USER_NS + ~UTS_NS + + ~KVM + ~MACVTAP + ~VHOST_VSOCK +" + +ERROR_IPC_NS="CONFIG_IPC_NS is required." +ERROR_NET_NS="CONFIG_NET_NS is required." +ERROR_PID_NS="CONFIG_PID_NS is required." +ERROR_SECCOMP="CONFIG_SECCOMP is required." +ERROR_UTS_NS="CONFIG_UTS_NS is required." + +WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines." +WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines." +WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines." + +# Go magic. +QA_PREBUILT="/usr/bin/fuidshift + /usr/bin/lxc + /usr/bin/lxc-to-lxd + /usr/bin/lxd-agent + /usr/bin/lxd-benchmark + /usr/bin/lxd-migrate + /usr/sbin/lxd" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/canonical.asc + +# The testsuite must be run as root. +# make: *** [Makefile:156: check] Error 1 +RESTRICT="test" + +GOPATH="${S}/_dist" + +src_prepare() { + export GOPATH="${S}/_dist" + + default + + sed -i \ + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \ + -e "s:make:make ${MAKEOPTS}:g" \ + Makefile || die + + # Fix hardcoded ovmf file path, see bug 763180 + sed -i \ + -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \ + -e "s:OVMF_VARS.ms.fd:OVMF_VARS.fd:g" \ + doc/environment.md \ + lxd/apparmor/instance.go \ + lxd/apparmor/instance_qemu.go \ + lxd/instance/drivers/driver_qemu.go || die "Failed to fix hardcoded ovmf paths." + + # Fix hardcoded virtfs-proxy-helper file path, see bug 798924 + sed -i \ + -e "s:/usr/lib/qemu/virtfs-proxy-helper:/usr/libexec/virtfs-proxy-helper:g" \ + lxd/device/device_utils_disk.go || die "Failed to fix virtfs-proxy-helper path." + + cp "${FILESDIR}"/lxd-4.0.9-r1.service "${T}"/lxd.service || die + if use apparmor; then + sed -i \ + '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ + "${T}"/lxd.service || die + fi + + # Disable -Werror's from go modules. + find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die +} + +src_configure() { :; } + +src_compile() { + export GOPATH="${S}/_dist" + # bug 963961 + append-ldflags -Wl,-z,lazy + export CGO_LDFLAGS_ALLOW="-Wl,-z,lazy" + export CGO_LDFLAGS="${CGO_LDFLAGS} ${LDFLAGS}" + + for k in fuidshift lxd-benchmark lxc lxc-to-lxd; do + go install -v -x "${S}/${k}" || die "failed compiling ${k}" + done + + go install -v -x -tags libsqlite3 "${S}"/lxd || die "Failed to build the daemon" + + # Needs to be built statically + CGO_ENABLED=0 go install -v -tags netgo "${S}"/lxd-migrate + CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/lxd-agent + + use nls && emake build-mo +} + +src_test() { + emake check +} + +src_install() { + export GOPATH="${S}/_dist" + local bindir="_dist/bin" + + dosbin ${bindir}/lxd + + for l in fuidshift lxd-agent lxd-benchmark lxd-migrate lxc lxc-to-lxd; do + dobin ${bindir}/${l} + done + + newbashcomp scripts/bash/lxd-client lxc + + newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd + newinitd "${FILESDIR}"/lxd-5.0.2-r1.initd lxd + + systemd_dounit "${T}"/lxd.service + systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service + systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket + + dodoc AUTHORS + dodoc -r doc/* + use nls && domo po/*.mo +} + +pkg_postinst() { + elog + elog "Consult https://wiki.gentoo.org/wiki/LXD for more information," + elog "including a Quick Start." + elog "For virtual machine support, see:" + elog "https://wiki.gentoo.org/wiki/LXD#Virtual_machines" + elog + elog "Please run 'lxc-checkconfig' to see all optional kernel features." + elog + optfeature "virtual machine support" app-emulation/qemu[spice,usbredir,virtfs] + optfeature "btrfs storage backend" sys-fs/btrfs-progs + optfeature "ipv6 support" net-dns/dnsmasq[ipv6] + optfeature "full lxd-migrate support" net-misc/rsync + optfeature "lvm2 storage backend" sys-fs/lvm2 + optfeature "zfs storage backend" sys-fs/zfs + elog + elog "Be sure to add your local user to the lxd group." +} diff --git a/app-containers/lxd/lxd-5.21.4-r1.ebuild b/app-containers/lxd/lxd-5.21.4-r1.ebuild new file mode 100644 index 000000000000..3a172dfe3ec4 --- /dev/null +++ b/app-containers/lxd/lxd-5.21.4-r1.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info optfeature systemd verify-sig flag-o-matic + +DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" +HOMEPAGE="https://ubuntu.com/lxd https://github.com/canonical/lxd" +SRC_URI="https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz + verify-sig? ( https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz.asc +)" + +LICENSE="Apache-2.0 AGPL-3+ BSD LGPL-3 MIT" +SLOT="0/lts" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="apparmor nls" + +DEPEND="acct-group/lxd + app-arch/xz-utils + >=app-containers/lxc-5.0.0:=[apparmor?,seccomp(+)] + dev-db/sqlite:3 + >=dev-libs/dqlite-1.16.4:=[lz4] + <dev-libs/dqlite-1.18.3 + dev-libs/lzo + >=dev-util/xdelta-3.0[lzma(+)] + net-dns/dnsmasq[dhcp] + sys-libs/libcap + virtual/udev" +RDEPEND="${DEPEND} + || ( + net-firewall/nftables[json] + ( + net-firewall/ebtables + net-firewall/iptables + ) + ) + sys-apps/iproute2 + sys-fs/fuse:3 + >=sys-fs/lxcfs-5.0.0 + sys-fs/squashfs-tools[lzma] + virtual/acl" +BDEPEND=">=dev-lang/go-1.22 + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-canonical )" + +CONFIG_CHECK=" + ~CGROUPS + ~IPC_NS + ~NET_NS + ~PID_NS + + ~SECCOMP + ~USER_NS + ~UTS_NS + + ~KVM + ~MACVTAP + ~VHOST_VSOCK +" + +ERROR_IPC_NS="CONFIG_IPC_NS is required." +ERROR_NET_NS="CONFIG_NET_NS is required." +ERROR_PID_NS="CONFIG_PID_NS is required." +ERROR_SECCOMP="CONFIG_SECCOMP is required." +ERROR_UTS_NS="CONFIG_UTS_NS is required." + +WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines." +WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines." +WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines." + +# Go magic. +QA_PREBUILT="/usr/bin/fuidshift + /usr/bin/lxc + /usr/bin/lxd-agent + /usr/bin/lxd-benchmark + /usr/bin/lxd-migrate + /usr/sbin/lxd" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/canonical.asc + +# The testsuite must be run as root. +# make: *** [Makefile:156: check] Error 1 +RESTRICT="test" + +GOPATH="${S}/_dist" + +src_prepare() { + export GOPATH="${S}/_dist" + + default + + sed -i \ + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \ + -e "s:make:make ${MAKEOPTS}:g" \ + Makefile || die + + # Fix hardcoded ovmf file path, see bug 763180 + sed -i \ + -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \ + lxd/instance/drivers/edk2/edk2.go || die "Failed to fix hardcoded ovmf paths." + + # Fix hardcoded virtfs-proxy-helper file path, see bug 798924 + sed -i \ + -e "s:/usr/lib/qemu/virtfs-proxy-helper:/usr/libexec/virtfs-proxy-helper:g" \ + lxd/device/device_utils_disk.go || die "Failed to fix virtfs-proxy-helper path." + + cp "${FILESDIR}"/lxd-4.0.9-r1.service "${T}"/lxd.service || die + if use apparmor; then + sed -i \ + '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ + "${T}"/lxd.service || die + fi + + # Disable -Werror's from go modules. + find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die +} + +src_configure() { :; } + +src_compile() { + export GOPATH="${S}/_dist" + # bug 963961 + append-ldflags -Wl,-z,lazy + export CGO_LDFLAGS_ALLOW="-Wl,-z,lazy" + export CGO_LDFLAGS="${CGO_LDFLAGS} ${LDFLAGS}" + + for k in fuidshift lxd-benchmark lxc; do + go install -v -x "${S}/${k}" || die "failed compiling ${k}" + done + + go install -v -x -tags libsqlite3 "${S}"/lxd || die "Failed to build the daemon" + + # Needs to be built statically + CGO_ENABLED=0 go install -v -tags netgo "${S}"/lxd-migrate + CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/lxd-agent + + use nls && emake build-mo +} + +src_test() { + emake check +} + +src_install() { + export GOPATH="${S}/_dist" + local bindir="_dist/bin" + + dosbin ${bindir}/lxd + + for l in fuidshift lxd-agent lxd-benchmark lxd-migrate lxc; do + dobin ${bindir}/${l} + done + + newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd + newinitd "${FILESDIR}"/lxd-5.0.2-r1.initd lxd + + systemd_dounit "${T}"/lxd.service + systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service + systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket + + dodoc AUTHORS + dodoc -r doc/* + use nls && domo po/*.mo +} + +pkg_postinst() { + elog + elog "Consult https://wiki.gentoo.org/wiki/LXD for more information," + elog "including a Quick Start." + elog "For virtual machine support, see:" + elog "https://wiki.gentoo.org/wiki/LXD#Virtual_machines" + elog + elog "Please run 'lxc-checkconfig' to see all optional kernel features." + elog + optfeature "virtual machine support" app-emulation/qemu[spice,usbredir,virtfs] + optfeature "btrfs storage backend" sys-fs/btrfs-progs + optfeature "ipv6 support" net-dns/dnsmasq[ipv6] + optfeature "full lxd-migrate support" net-misc/rsync + optfeature "lvm2 storage backend" sys-fs/lvm2 + optfeature "zfs storage backend" sys-fs/zfs + elog + elog "Be sure to add your local user to the lxd group." +} diff --git a/app-containers/lxd/lxd-5.21.7.ebuild b/app-containers/lxd/lxd-5.21.7.ebuild new file mode 100644 index 000000000000..eb0d4a1e76ad --- /dev/null +++ b/app-containers/lxd/lxd-5.21.7.ebuild @@ -0,0 +1,183 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info optfeature systemd flag-o-matic + +DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" +HOMEPAGE="https://ubuntu.com/lxd https://github.com/canonical/lxd" + +# As of July 2026, Canonical decided to no longer produce tarballs+signatures +# See disussion https://github.com/canonical/lxd/issues/18991 +SRC_URI="https://github.com/canonical/lxd/archive/refs/tags/${P}.tar.gz" + +LICENSE="Apache-2.0 AGPL-3+ BSD LGPL-3 MIT" +SLOT="0/lts" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="apparmor nls" + +DEPEND="acct-group/lxd + app-arch/xz-utils + >=app-containers/lxc-5.0.0:=[apparmor?,seccomp(+)] + dev-db/sqlite:3 + >=dev-libs/dqlite-1.16.4:=[lz4] + dev-libs/lzo + >=dev-util/xdelta-3.0[lzma(+)] + net-dns/dnsmasq[dhcp] + sys-libs/libcap + virtual/udev" +RDEPEND="${DEPEND} + || ( + net-firewall/nftables[json] + ( + net-firewall/ebtables + net-firewall/iptables + ) + ) + sys-apps/iproute2 + sys-fs/fuse:3 + >=sys-fs/lxcfs-5.0.0 + sys-fs/squashfs-tools[lzma] + virtual/acl" +BDEPEND=">=dev-lang/go-1.26.5 + nls? ( sys-devel/gettext )" + +CONFIG_CHECK=" + ~CGROUPS + ~IPC_NS + ~NET_NS + ~PID_NS + + ~SECCOMP + ~USER_NS + ~UTS_NS + + ~KVM + ~MACVTAP + ~VHOST_VSOCK +" + +ERROR_IPC_NS="CONFIG_IPC_NS is required." +ERROR_NET_NS="CONFIG_NET_NS is required." +ERROR_PID_NS="CONFIG_PID_NS is required." +ERROR_SECCOMP="CONFIG_SECCOMP is required." +ERROR_UTS_NS="CONFIG_UTS_NS is required." + +WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines." +WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines." +WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines." + +# Go magic. +QA_PREBUILT="/usr/bin/fuidshift + /usr/bin/lxc + /usr/bin/lxd-agent + /usr/bin/lxd-benchmark + /usr/bin/lxd-migrate + /usr/sbin/lxd" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/canonical.asc + +# The testsuite must be run as root. +# make: *** [Makefile:156: check] Error 1 +RESTRICT="test" + +GOPATH="${S}/_dist" + +src_prepare() { + export GOPATH="${S}/_dist" + + default + + sed -i \ + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \ + -e "s:make:make ${MAKEOPTS}:g" \ + Makefile || die + + # Fix hardcoded ovmf file path, see bug 763180 + sed -i \ + -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \ + lxd/instance/drivers/edk2/edk2.go || die "Failed to fix hardcoded ovmf paths." + + # Fix hardcoded virtfs-proxy-helper file path, see bug 798924 + sed -i \ + -e "s:/usr/lib/qemu/virtfs-proxy-helper:/usr/libexec/virtfs-proxy-helper:g" \ + lxd/device/device_utils_disk.go || die "Failed to fix virtfs-proxy-helper path." + + cp "${FILESDIR}"/lxd-4.0.9-r1.service "${T}"/lxd.service || die + if use apparmor; then + sed -i \ + '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ + "${T}"/lxd.service || die + fi + + # Disable -Werror's from go modules. + find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die +} + +src_configure() { :; } + +src_compile() { + export GOPATH="${S}/_dist" + # bug 963961 + append-ldflags -Wl,-z,lazy + export CGO_LDFLAGS_ALLOW="-Wl,-z,lazy" + export CGO_LDFLAGS="${CGO_LDFLAGS} ${LDFLAGS}" + + for k in fuidshift lxd-benchmark lxc; do + go install -v -x "${S}/${k}" || die "failed compiling ${k}" + done + + go install -v -x -tags libsqlite3 "${S}"/lxd || die "Failed to build the daemon" + + # Needs to be built statically + CGO_ENABLED=0 go install -v -tags netgo "${S}"/lxd-migrate + CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/lxd-agent + + use nls && emake build-mo +} + +src_test() { + emake check +} + +src_install() { + export GOPATH="${S}/_dist" + local bindir="_dist/bin" + + dosbin ${bindir}/lxd + + for l in fuidshift lxd-agent lxd-benchmark lxd-migrate lxc; do + dobin ${bindir}/${l} + done + + newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd + newinitd "${FILESDIR}"/lxd-5.0.2-r1.initd lxd + + systemd_dounit "${T}"/lxd.service + systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service + systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket + + dodoc AUTHORS + dodoc -r doc/* + use nls && domo po/*.mo +} + +pkg_postinst() { + elog + elog "Consult https://wiki.gentoo.org/wiki/LXD for more information," + elog "including a Quick Start." + elog "For virtual machine support, see:" + elog "https://wiki.gentoo.org/wiki/LXD#Virtual_machines" + elog + elog "Please run 'lxc-checkconfig' to see all optional kernel features." + elog + optfeature "virtual machine support" app-emulation/qemu[spice,usbredir,virtfs] + optfeature "btrfs storage backend" sys-fs/btrfs-progs + optfeature "ipv6 support" net-dns/dnsmasq[ipv6] + optfeature "full lxd-migrate support" net-misc/rsync + optfeature "lvm2 storage backend" sys-fs/lvm2 + optfeature "zfs storage backend" sys-fs/zfs + elog + elog "Be sure to add your local user to the lxd group." +} diff --git a/app-containers/lxd/lxd-6.3-r1.ebuild b/app-containers/lxd/lxd-6.3-r1.ebuild new file mode 100644 index 000000000000..10af3665bb03 --- /dev/null +++ b/app-containers/lxd/lxd-6.3-r1.ebuild @@ -0,0 +1,193 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info optfeature systemd verify-sig flag-o-matic + +DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" +HOMEPAGE="https://ubuntu.com/lxd https://github.com/canonical/lxd" +SRC_URI="https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz + verify-sig? ( https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz.asc +)" + +LICENSE="Apache-2.0 AGPL-3+ BSD LGPL-3 MIT" +SLOT="0/stable" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="apparmor nls" + +DEPEND="acct-group/lxd + app-arch/xz-utils + >=app-containers/lxc-5.0.0:=[apparmor?,seccomp(+)] + dev-db/sqlite:3 + >=dev-libs/dqlite-1.18.0:=[lz4] + dev-libs/lzo + >=dev-util/xdelta-3.0[lzma(+)] + net-dns/dnsmasq[dhcp] + sys-libs/libcap + virtual/udev" +RDEPEND="${DEPEND} + || ( + net-firewall/nftables[json] + ( + net-firewall/ebtables + net-firewall/iptables + ) + ) + sys-apps/iproute2 + sys-fs/fuse:3 + >=sys-fs/lxcfs-5.0.0 + sys-fs/squashfs-tools[lzma] + virtual/acl" +BDEPEND=">=dev-lang/go-1.22.4 + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-canonical )" + +CONFIG_CHECK=" + ~CGROUPS + ~IPC_NS + ~NET_NS + ~PID_NS + + ~SECCOMP + ~USER_NS + ~UTS_NS + + ~KVM + ~MACVTAP + ~VHOST_VSOCK +" + +ERROR_IPC_NS="CONFIG_IPC_NS is required." +ERROR_NET_NS="CONFIG_NET_NS is required." +ERROR_PID_NS="CONFIG_PID_NS is required." +ERROR_SECCOMP="CONFIG_SECCOMP is required." +ERROR_UTS_NS="CONFIG_UTS_NS is required." + +WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines." +WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines." +WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines." + +# Go magic. +QA_PREBUILT="/usr/bin/fuidshift + /usr/bin/lxc + /usr/bin/lxc-to-lxd + /usr/bin/lxd-agent + /usr/bin/lxd-benchmark + /usr/bin/lxd-migrate + /usr/sbin/lxd" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/canonical.asc + +# The testsuite must be run as root. +# make: *** [Makefile:156: check] Error 1 +RESTRICT="test" + +GOPATH="${S}/_dist" + +src_prepare() { + export GOPATH="${S}/_dist" + + default + + sed -i \ + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \ + -e "s:make:make ${MAKEOPTS}:g" \ + Makefile || die + + # Fix hardcoded ovmf file path, see bug 763180 + sed -i \ + -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \ + -e "s:OVMF_VARS.ms.fd:OVMF_VARS.fd:g" \ + doc/environment.md \ + lxd/apparmor/instance.go \ + lxd/apparmor/instance_qemu.go \ + lxd/instance/drivers/driver_qemu.go || die "Failed to fix hardcoded ovmf paths." + + # Fix hardcoded virtfs-proxy-helper file path, see bug 798924 + sed -i \ + -e "s:/usr/lib/qemu/virtfs-proxy-helper:/usr/libexec/virtfs-proxy-helper:g" \ + lxd/device/device_utils_disk.go || die "Failed to fix virtfs-proxy-helper path." + + cp "${FILESDIR}"/lxd-4.0.9-r1.service "${T}"/lxd.service || die + if use apparmor; then + sed -i \ + '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ + "${T}"/lxd.service || die + fi + + # Disable -Werror's from go modules. + find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die +} + +src_configure() { :; } + +src_compile() { + export GOPATH="${S}/_dist" + # bug 963961 + append-ldflags -Wl,-z,lazy + export CGO_LDFLAGS_ALLOW="-Wl,-z,lazy" + export CGO_LDFLAGS="${CGO_LDFLAGS} ${LDFLAGS}" + + for k in fuidshift lxd-benchmark lxc lxc-to-lxd; do + go install -v -x "${S}/${k}" || die "failed compiling ${k}" + done + + go install -v -x -tags libsqlite3 "${S}"/lxd || die "Failed to build the daemon" + + # Needs to be built statically + CGO_ENABLED=0 go install -v -tags netgo "${S}"/lxd-migrate + CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/lxd-agent + + use nls && emake build-mo +} + +src_test() { + emake check +} + +src_install() { + export GOPATH="${S}/_dist" + local bindir="_dist/bin" + + dosbin ${bindir}/lxd + + for l in fuidshift lxd-agent lxd-benchmark lxd-migrate lxc lxc-to-lxd; do + dobin ${bindir}/${l} + done + + newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd + newinitd "${FILESDIR}"/lxd-5.0.2-r1.initd lxd + + systemd_dounit "${T}"/lxd.service + systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service + systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket + + dodoc AUTHORS + dodoc -r doc/* + use nls && domo po/*.mo + + # LXD needs LXD_QEMU_FW_PATH in env to find OVMF files for virtual machines + newenvd - 90lxd <<- _EOF_ + LXD_QEMU_FW_PATH=${EPREFIX}/usr/share/edk2-ovmf + _EOF_ +} + +pkg_postinst() { + elog + elog "Consult https://wiki.gentoo.org/wiki/LXD for more information," + elog "including a Quick Start." + elog "For virtual machine support, see:" + elog "https://wiki.gentoo.org/wiki/LXD#Virtual_machines" + elog + elog "Please run 'lxc-checkconfig' to see all optional kernel features." + elog + optfeature "virtual machine support" app-emulation/qemu[spice,usbredir,virtfs] + optfeature "btrfs storage backend" sys-fs/btrfs-progs + optfeature "ipv6 support" net-dns/dnsmasq[ipv6] + optfeature "full lxd-migrate support" net-misc/rsync + optfeature "lvm2 storage backend" sys-fs/lvm2 + optfeature "zfs storage backend" sys-fs/zfs + elog + elog "Be sure to add your local user to the lxd group." +} diff --git a/app-containers/lxd/lxd-6.5-r1.ebuild b/app-containers/lxd/lxd-6.5-r1.ebuild new file mode 100644 index 000000000000..3e970098ab30 --- /dev/null +++ b/app-containers/lxd/lxd-6.5-r1.ebuild @@ -0,0 +1,189 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info optfeature systemd verify-sig flag-o-matic + +DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" +HOMEPAGE="https://ubuntu.com/lxd https://github.com/canonical/lxd" +SRC_URI="https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz + verify-sig? ( https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz.asc +)" + +LICENSE="Apache-2.0 AGPL-3+ BSD LGPL-3 MIT" +SLOT="0/stable" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="apparmor nls" + +DEPEND="acct-group/lxd + app-arch/xz-utils + >=app-containers/lxc-6.0.4:=[apparmor?,seccomp(+)] + dev-db/sqlite:3 + >=dev-libs/dqlite-1.18.2:=[lz4] + <dev-libs/dqlite-1.18.3 + dev-libs/lzo + >=dev-util/xdelta-3.0[lzma(+)] + net-dns/dnsmasq[dhcp] + sys-libs/libcap + virtual/udev" +RDEPEND="${DEPEND} + || ( + net-firewall/nftables[json] + ( + net-firewall/ebtables + net-firewall/iptables + ) + ) + sys-apps/iproute2 + sys-fs/fuse:3 + >=sys-fs/lxcfs-6.0.4 + sys-fs/squashfs-tools[lzma] + virtual/acl" +BDEPEND=">=dev-lang/go-1.24.4 + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-canonical )" + +CONFIG_CHECK=" + ~CGROUPS + ~IPC_NS + ~NET_NS + ~PID_NS + + ~SECCOMP + ~USER_NS + ~UTS_NS + + ~KVM + ~MACVTAP + ~VHOST_VSOCK +" + +ERROR_IPC_NS="CONFIG_IPC_NS is required." +ERROR_NET_NS="CONFIG_NET_NS is required." +ERROR_PID_NS="CONFIG_PID_NS is required." +ERROR_SECCOMP="CONFIG_SECCOMP is required." +ERROR_UTS_NS="CONFIG_UTS_NS is required." + +WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines." +WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines." +WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines." + +# Go magic. +QA_PREBUILT="/usr/bin/fuidshift + /usr/bin/lxc + /usr/bin/lxd-agent + /usr/bin/lxd-benchmark + /usr/bin/lxd-migrate + /usr/sbin/lxd" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/canonical.asc + +# The testsuite must be run as root. +# make: *** [Makefile:156: check] Error 1 +RESTRICT="test" + +GOPATH="${S}/_dist" + +src_prepare() { + export GOPATH="${S}/_dist" + + default + + sed -i \ + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \ + -e "s:make:make ${MAKEOPTS}:g" \ + Makefile || die + + # Fix hardcoded ovmf file path, see bug 763180 + sed -i \ + -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \ + lxd/instance/drivers/edk2/edk2.go || die "Failed to fix hardcoded ovmf paths." + + # Fix hardcoded virtfs-proxy-helper file path, see bug 798924 + sed -i \ + -e "s:/usr/lib/qemu/virtfs-proxy-helper:/usr/libexec/virtfs-proxy-helper:g" \ + lxd/device/device_utils_disk.go || die "Failed to fix virtfs-proxy-helper path." + + cp "${FILESDIR}"/lxd-4.0.9-r1.service "${T}"/lxd.service || die + if use apparmor; then + sed -i \ + '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ + "${T}"/lxd.service || die + fi + + # Disable -Werror's from go modules. + find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die +} + +src_configure() { :; } + +src_compile() { + export GOPATH="${S}/_dist" + # bug 963961 + append-ldflags -Wl,-z,lazy + export CGO_LDFLAGS_ALLOW="-Wl,-z,lazy" + export CGO_LDFLAGS="${CGO_LDFLAGS} ${LDFLAGS}" + + for k in fuidshift lxd-benchmark lxc; do + go install -v -x "${S}/${k}" || die "failed compiling ${k}" + done + + go install -v -x -tags libsqlite3 "${S}"/lxd || die "Failed to build the daemon" + + # Needs to be built statically + CGO_ENABLED=0 go install -v -tags netgo "${S}"/lxd-migrate + CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/lxd-agent + + use nls && emake build-mo +} + +src_test() { + emake check +} + +src_install() { + export GOPATH="${S}/_dist" + local bindir="_dist/bin" + + dosbin ${bindir}/lxd + + for l in fuidshift lxd-agent lxd-benchmark lxd-migrate lxc; do + dobin ${bindir}/${l} + done + + newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd + newinitd "${FILESDIR}"/lxd-5.0.2-r1.initd lxd + + systemd_dounit "${T}"/lxd.service + systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service + systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket + + dodoc AUTHORS + dodoc -r doc/* + use nls && domo po/*.mo + + # LXD needs LXD_QEMU_FW_PATH in env to find OVMF files for virtual machines + newenvd - 90lxd <<- _EOF_ + LXD_QEMU_FW_PATH=${EPREFIX}/usr/share/edk2-ovmf + _EOF_ +} + +pkg_postinst() { + elog + elog "Consult https://wiki.gentoo.org/wiki/LXD for more information," + elog "including a Quick Start." + elog "For virtual machine support, see:" + elog "https://wiki.gentoo.org/wiki/LXD#Virtual_machines" + elog + elog "Please run 'lxc-checkconfig' to see all optional kernel features." + elog + optfeature "virtual machine support" app-emulation/qemu[spice,usbredir,virtfs] + optfeature "btrfs storage backend" sys-fs/btrfs-progs + optfeature "ipv6 support" net-dns/dnsmasq[ipv6] + optfeature "full lxd-migrate support" net-misc/rsync + optfeature "lvm2 storage backend" sys-fs/lvm2 + optfeature "zfs storage backend" sys-fs/zfs + elog + elog "Be sure to add your local user to the lxd group." +} diff --git a/app-containers/lxd/lxd-6.9.ebuild b/app-containers/lxd/lxd-6.9.ebuild new file mode 100644 index 000000000000..0cf75a04491b --- /dev/null +++ b/app-containers/lxd/lxd-6.9.ebuild @@ -0,0 +1,193 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info optfeature systemd verify-sig flag-o-matic eapi9-ver + +DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" +HOMEPAGE="https://ubuntu.com/lxd https://github.com/canonical/lxd" +SRC_URI="https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz + verify-sig? ( https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz.asc +)" + +LICENSE="Apache-2.0 AGPL-3+ BSD LGPL-3 MIT" +SLOT="0/stable" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="apparmor" + +DEPEND="acct-group/lxd + app-arch/xz-utils + >=app-containers/lxc-6.0.4:=[apparmor?,seccomp(+)] + dev-db/sqlite:3 + >=dev-libs/dqlite-1.18.2:=[lz4] + dev-libs/lzo + >=dev-util/xdelta-3.0[lzma(+)] + net-dns/dnsmasq[dhcp] + sys-libs/libcap + virtual/udev" +RDEPEND="${DEPEND} + || ( + net-firewall/nftables[json] + ( + net-firewall/ebtables + net-firewall/iptables + ) + ) + sys-apps/iproute2 + sys-fs/fuse:3 + >=sys-fs/lxcfs-6.0.4 + sys-fs/squashfs-tools[lzma] + virtual/acl" +BDEPEND=">=dev-lang/go-1.26.4 + verify-sig? ( sec-keys/openpgp-keys-canonical )" + +CONFIG_CHECK=" + ~CGROUPS + ~IPC_NS + ~NET_NS + ~PID_NS + + ~SECCOMP + ~USER_NS + ~UTS_NS + + ~KVM + ~MACVTAP + ~VHOST_VSOCK +" + +ERROR_IPC_NS="CONFIG_IPC_NS is required." +ERROR_NET_NS="CONFIG_NET_NS is required." +ERROR_PID_NS="CONFIG_PID_NS is required." +ERROR_SECCOMP="CONFIG_SECCOMP is required." +ERROR_UTS_NS="CONFIG_UTS_NS is required." + +WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines." +WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines." +WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines." + +# Go magic. +QA_PREBUILT="/usr/bin/fuidshift + /usr/bin/lxc + /usr/bin/lxd-agent + /usr/bin/lxd-benchmark + /usr/bin/lxd-convert + /usr/sbin/lxd" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/canonical.asc + +# The testsuite must be run as root. +# make: *** [Makefile:156: check] Error 1 +RESTRICT="test" + +GOPATH="${S}/_dist" + +src_prepare() { + export GOPATH="${S}/_dist" + + default + + sed -i \ + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \ + -e "s:make:make ${MAKEOPTS}:g" \ + Makefile || die + + # Fix hardcoded ovmf file path, see bug 763180 + sed -i \ + -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \ + lxd/instance/drivers/edk2/edk2.go || die "Failed to fix hardcoded ovmf paths." + + # Fix hardcoded virtfs-proxy-helper file path, see bug 798924 + sed -i \ + -e "s:/usr/lib/qemu/virtfs-proxy-helper:/usr/libexec/virtfs-proxy-helper:g" \ + lxd/device/device_utils_disk.go || die "Failed to fix virtfs-proxy-helper path." + + cp "${FILESDIR}"/lxd-4.0.9-r1.service "${T}"/lxd.service || die + if use apparmor; then + sed -i \ + '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ + "${T}"/lxd.service || die + fi + + # Disable -Werror's from go modules. + find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die +} + +src_configure() { :; } + +src_compile() { + export GOPATH="${S}/_dist" + # bug 963961 + append-ldflags -Wl,-z,lazy + export CGO_LDFLAGS_ALLOW="-Wl,-z,lazy" + export CGO_LDFLAGS="${CGO_LDFLAGS} ${LDFLAGS}" + + for k in fuidshift lxd-benchmark lxc; do + go install -v -x "${S}/${k}" || die "failed compiling ${k}" + done + + go install -v -x -tags libsqlite3 "${S}"/lxd || die "Failed to build the daemon" + + # Needs to be built statically + CGO_ENABLED=0 go install -v -tags netgo "${S}"/lxd-convert + CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/lxd-agent +} + +src_test() { + emake check +} + +src_install() { + export GOPATH="${S}/_dist" + local bindir="_dist/bin" + + dosbin ${bindir}/lxd + + for l in fuidshift lxd-agent lxd-benchmark lxd-convert lxc; do + dobin ${bindir}/${l} + done + + newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd + newinitd "${FILESDIR}"/lxd-5.0.2-r1.initd lxd + + systemd_dounit "${T}"/lxd.service + systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service + systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket + + dodoc AUTHORS + dodoc -r doc/* + + # LXD needs LXD_QEMU_FW_PATH in env to find OVMF files for virtual machines + newenvd - 90lxd <<- _EOF_ + LXD_QEMU_FW_PATH=${EPREFIX}/usr/share/edk2-ovmf + _EOF_ +} + +pkg_postinst() { + if ver_replacing -lt 6.7 + then + ewarn + ewarn "Starting with lxd-6.7, 'lxd-migrate' has been renamed to 'lxd-convert'." + ewarn + fi + + elog + elog "Consult https://wiki.gentoo.org/wiki/LXD for more information," + elog "including a Quick Start." + elog "For virtual machine support, see:" + elog "https://wiki.gentoo.org/wiki/LXD#Virtual_machines" + elog + elog "Please run 'lxc-checkconfig' to see all optional kernel features." + elog + elog "LXD 6.9 documents a minimum kernel version of 6.8 (up from 5.15 for 6.5)." + elog + optfeature "virtual machine support" ">=app-emulation/qemu-8.2.2[spice,usbredir,virtfs]" + optfeature "btrfs storage backend" sys-fs/btrfs-progs + optfeature "ipv6 support" net-dns/dnsmasq[ipv6] + optfeature "full lxd-convert support" net-misc/rsync + optfeature "lvm2 storage backend" sys-fs/lvm2 + optfeature "zfs storage backend" ">=sys-fs/zfs-2.2" + elog + elog "Be sure to add your local user to the lxd group." +} diff --git a/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-1.20.0.ebuild b/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-1.20.0-r1.ebuild index 7db81ff0582a..7ce080f7b965 100644 --- a/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-1.20.0.ebuild +++ b/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-1.20.0-r1.ebuild @@ -1,11 +1,11 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=9 +EAPI=8 EGO_PN="github.com/NVIDIA/${PN}" -inherit go-module +inherit go-module systemd DESCRIPTION="NVIDIA container runtime toolkit" HOMEPAGE="https://github.com/NVIDIA/nvidia-container-toolkit" @@ -39,6 +39,12 @@ PATCHES=( "${FILESDIR}/${PN}-1.19.0-no-prestrip.patch" ) +src_prepare() { + default + # grep lives in /bin on split-usr + sed -i 's|/usr/bin/grep|grep|g' deployments/systemd/nvidia-cdi-refresh.service || die +} + src_compile() { emake binaries } @@ -52,6 +58,10 @@ src_install() { nvidia-ctk insinto "/etc/nvidia-container-runtime" doins "${FILESDIR}/config.toml" + + systemd_dounit deployments/systemd/nvidia-cdi-refresh.{path,service} + insinto "/etc/nvidia-container-toolkit" + doins deployments/systemd/nvidia-cdi-refresh.env } pkg_postinst() { @@ -62,4 +72,8 @@ pkg_postinst() { elog "You may need to edit your /etc/nvidia-container-runtime/config.toml" elog "file before running ${PN} for the first time." elog "For details, please see the NVIDIA docker manual page." + elog + elog "To regenerate the CDI specification on boot and on driver or toolkit" + elog "upgrades, enable both systemd units:" + elog "systemctl enable nvidia-cdi-refresh.path nvidia-cdi-refresh.service" } diff --git a/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-9999.ebuild b/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-9999.ebuild index be7b8e3dfa18..3b061ccfb2d9 100644 --- a/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-9999.ebuild +++ b/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-9999.ebuild @@ -1,11 +1,11 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=9 +EAPI=8 EGO_PN="github.com/NVIDIA/${PN}" -inherit go-module +inherit go-module systemd DESCRIPTION="NVIDIA container runtime toolkit" HOMEPAGE="https://github.com/NVIDIA/nvidia-container-toolkit" @@ -31,6 +31,12 @@ RDEPEND=" sys-libs/libnvidia-container " +src_prepare() { + default + # grep lives in /bin on split-usr + sed -i 's|/usr/bin/grep|grep|g' deployments/systemd/nvidia-cdi-refresh.service || die +} + src_compile() { emake binaries } @@ -44,6 +50,12 @@ src_install() { nvidia-ctk insinto "/etc/nvidia-container-runtime" doins "${FILESDIR}/config.toml" + + systemd_dounit deployments/systemd/nvidia-cdi-refresh.{path,service} + insinto /usr/lib/systemd/system/nvidia-cdi-refresh.service.d + doins deployments/systemd/10-container-engines.conf + insinto "/etc/nvidia-container-toolkit" + doins deployments/systemd/nvidia-cdi-refresh.env } pkg_postinst() { @@ -54,4 +66,8 @@ pkg_postinst() { elog "You may need to edit your /etc/nvidia-container-runtime/config.toml" elog "file before running ${PN} for the first time." elog "For details, please see the NVIDIA docker manual page." + elog + elog "To regenerate the CDI specification on boot and on driver or toolkit" + elog "upgrades, enable both systemd units:" + elog "systemctl enable nvidia-cdi-refresh.path nvidia-cdi-refresh.service" } diff --git a/app-containers/podman/Manifest b/app-containers/podman/Manifest index 8a2c36c4e09e..4f5f3fd68b8d 100644 --- a/app-containers/podman/Manifest +++ b/app-containers/podman/Manifest @@ -6,3 +6,4 @@ DIST podman-6.0.0.tar.gz 20510790 BLAKE2B fd522279dedb6fefbb9da9bd8b8000e696ff97 DIST podman-6.0.1.tar.gz 20513090 BLAKE2B 7ad62803a09bfd6839c78cf958bda81f027f17d520c1469c58e01b31ff05656c1d29282c98e085b27ed8abdce295993794c75497a5b184f4994896af738752ff SHA512 d8aee45d0e49442512041e3d9b3c2dc153f3bda19a8388da9edcf81731b38978a534a90176dc4e9d2533bb051473a6cc226aec041cd7846603ca13283ea01692 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 diff --git a/app-containers/podman/podman-6.1.2.ebuild b/app-containers/podman/podman-6.1.2.ebuild new file mode 100644 index 000000000000..9f4533d60f9b --- /dev/null +++ b/app-containers/podman/podman-6.1.2.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_{12..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-containers/skopeo/Manifest b/app-containers/skopeo/Manifest index f093df1cba49..1e5131f25e13 100644 --- a/app-containers/skopeo/Manifest +++ b/app-containers/skopeo/Manifest @@ -1,3 +1,4 @@ DIST skopeo-1.22.2.tar.gz 10327855 BLAKE2B f3c6d5eafe98c54b0e8f4b69d75472cfe4367152a915ed4daf16dc8d0604547863d62acaf3ef3c50d82a7ab4996d9ee9c25b87300aefccbebc74c664de4ee515 SHA512 d65134f568bf49cabc1ec7564bc98a5debb9e6b16a6e5351cebc583534a56b6a16c0eb69356f8466681e68df5445172c34c9d34bcb362bc2a89bfe9288002066 DIST skopeo-1.23.0.tar.gz 9433389 BLAKE2B 17f51bc19c45f8250830a111cae973947f76d204d5e92517466312f716692080b900163dec3969a0492b799eb462f5e07f652cdd6e8be51186735cd5d4cee7a0 SHA512 0985ac478b27bace31f5f2710bae44d214b90f160e61400d6d345e728779389103a3b9c4bcfd048f0d7d12d4dc7dcd8e0b2e20b1a8c18bdef652faa153fe0726 DIST skopeo-1.24.0.tar.gz 9837239 BLAKE2B 6f0ad8a5664ad818e88d5816fb844ca1264025f75ec187c29a2fd804a2a29fc6d4c66f9bb5db5ba7d42d68683f73455385bf05803714ff29095eccbccc0f2da6 SHA512 5c4ba7d1f4a86546fedd8aab0b69139e9376a158b62b1876aff695c65cd2d16bf7380bdf2d3d3ae691582bb2a8acb837d0f6f517161d3c95945995a57bc112d2 +DIST skopeo-1.24.1.tar.gz 9849689 BLAKE2B 9dd6e1c860512f3fb606c7b1d9d41f44bb4f2490a8f2c202d09b3c470fee49ad4fc84db41c5164068662e1307d9d65268bd3e4450ddc2c71cce159d17b7da6d8 SHA512 707091114258c3a7a01494ba6f78097a21d9c92d51bf664ace839995f5a6b245a4c98df9bf18347f670362ebc777de48f472c33ed3a013622e88d900864a536e diff --git a/app-containers/skopeo/skopeo-1.24.1.ebuild b/app-containers/skopeo/skopeo-1.24.1.ebuild new file mode 100644 index 000000000000..91246ffa2e31 --- /dev/null +++ b/app-containers/skopeo/skopeo-1.24.1.ebuild @@ -0,0 +1,62 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info + +DESCRIPTION="Work with remote container images registries" +HOMEPAGE="https://github.com/podman-container-tools/skopeo" + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/podman-container-tools/skopeo.git" +else + SRC_URI="https://github.com/podman-container-tools/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64" +fi + +# main +LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT" +SLOT="0" +IUSE="btrfs rootless selinux" +RESTRICT="test" + +DEPEND=" + >=app-crypt/gpgme-1.5.5:= + dev-db/sqlite:3 + btrfs? ( >=sys-fs/btrfs-progs-4.0.1 ) + rootless? ( sys-apps/shadow:= ) + selinux? ( sec-policy/selinux-podman sys-libs/libselinux:= ) +" +RDEPEND="${DEPEND} + >=app-containers/container-libs-0.68.0 +" +BDEPEND=" + dev-go/go-md2man + >=dev-lang/go-1.25.7 +" +PATCHES=( "${FILESDIR}"/handle-conflicts-with-c-libs-pr2173.patch ) + +pkg_setup() { + use btrfs && CONFIG_CHECK+=" ~BTRFS_FS" + linux-info_pkg_setup +} + +run_make() { + local emakeflags=( + BTRFS_BUILD_TAG="$(usex btrfs '' 'exclude_graphdriver_btrfs')" + LIBSUBID_BUILD_TAG="$(usex rootless 'libsubid' '')" + SQLITE_BUILD_TAG="libsqlite3" + PREFIX="${EPREFIX}/usr" + ) + emake "${emakeflags[@]}" "$@" +} + +src_compile() { + run_make +} + +src_install() { + run_make "DESTDIR=${D}" install +} diff --git a/app-doc/cantera-docs/Manifest b/app-doc/cantera-docs/Manifest index 6847998a823c..3859e628b0f2 100644 --- a/app-doc/cantera-docs/Manifest +++ b/app-doc/cantera-docs/Manifest @@ -1,2 +1 @@ -DIST cantera-docs-3.0.0.tar.xz 6397512 BLAKE2B 086c81acf7a26c6ef429c37873b176cfb73168e03bb445120184008b9a92eeaf1eeb7bfbea7acce8c9741e5eababf7e10ed7cb0d2f239f4a73a77f52a8488b7a SHA512 57870ff1adf433c83f713541321b9742bb9881d5dbb3429c161ed7cf84bad9ccf9ec8ed725c6672dc449e4041144a82dc3ae443f757bcdbd14b297801e9fe5b9 DIST cantera-docs-3.2.0.tar.xz 27282780 BLAKE2B 09a0ce7b101073ab7c6487f009f602a3d01f501a139af31fe3898152ce4c1ef284689fa5381bc22512f47b5fcce91dc2f34ea3cf09dbfc4a7b065a3ac057aaa1 SHA512 ba095922884f14198e00ec4ef8cf3b6cce2e93a64956634fa73118a5d4de23a6083cf47064cee6663628ef5b58cad9a34c212f7ed72b9619e7a2d0d1b1d49fdd diff --git a/app-doc/cantera-docs/cantera-docs-3.0.0.ebuild b/app-doc/cantera-docs/cantera-docs-3.0.0.ebuild deleted file mode 100644 index 8047e7f1f9cf..000000000000 --- a/app-doc/cantera-docs/cantera-docs-3.0.0.ebuild +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit desktop xdg - -DESCRIPTION="Documentation API reference for Cantera package libraries" -HOMEPAGE="https://cantera.org" -SRC_URI="https://github.com/band-a-prend/gentoo-overlay/releases/download/ct-docs-${PV}/${P}_modified_menu.tar.xz -> ${P}.tar.xz" -S="${WORKDIR}/" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="amd64 ~riscv ~x86" - -src_install() { - insinto /usr/share/cantera/doc/ - doins -r "${S}/." - - make_desktop_entry "/usr/bin/xdg-open /usr/share/cantera/doc/doxygen/html/index.html" "Cantera Doxygen Documentation" "text-html" "Development" - make_desktop_entry "/usr/bin/xdg-open /usr/share/cantera/doc/sphinx/html/index.html" "Cantera Sphinx Documentation" "text-html" "Development" -} diff --git a/app-editors/emacs/Manifest b/app-editors/emacs/Manifest index 10b749e5b9a2..979bdb2d65a7 100644 --- a/app-editors/emacs/Manifest +++ b/app-editors/emacs/Manifest @@ -1,17 +1,17 @@ DIST emacs-18.59-patches-17.tar.xz 34812 BLAKE2B c517c177ec14a238d5c816951dc88ce42e7b0235f856e9a5b7454555c80493c2f76b21a458b5694f833d5dbb292cb49b4d8120b36385e020d541c01b79f2ecca SHA512 a8fff9de5046037e219f98f17c792fa67e545b239e577644c02337183b6929d16a3fb7d7a415ebeb9be684b3643cb332fe833e22b5a5ccfc2a278b8b8406615f DIST emacs-18.59.tar.gz 2962652 BLAKE2B d617636daff41e672af2dcda26ec24b2495cf0a3e6373561ee26a2a922b7252c074dd6b79289d771853a4720c60f084f5726b904bf65989718173232ac874b0b SHA512 03ce565e346e89b7aacb1852f4783e8907f394de7da0c543b475cb038eb89b87f980d0f7ca1841b1d2108b20f211e95113c7214e4a33e5767a1827ff43173f33 DIST emacs-27.2-patches-13.tar.xz 21480 BLAKE2B 02bc580fbb50fe7c8f6e50d9f98e454349e95b09fa686836b0c1969acd412f2726eca3dbeee72731c56d0ec786f640c370abf7bb711eb4663a52fd443a0d6e06 SHA512 0325e4d5229ee405863f6ac0cabe2f121266e3e2ace9d95b4891dc43450c198e3a895a8c78070d835aeb8fc527d0f269137719fe44133e991776fc110fd8d723 -DIST emacs-27.2-patches-14.tar.xz 21760 BLAKE2B ed77ec3b9226762eb50ea6a253ac446b82321cd0d1ea8cfce8dc94bad60404d98fc40881f9244ddf9f8ec6efe587dfb31c80c7e0bd7ef434449a7e778e0bf70b SHA512 ab08cec2fd4dbb8b5091119d573e7c0430d0ce15850466ef384f595f79c768fd53cbbd5bd326009d01286a83af7469ff3efe7f6c970f417b9da8d6be5b710900 +DIST emacs-27.2-patches-15.tar.xz 22044 BLAKE2B b9eca7c4eebf45416c96701ae97f6185a44fb5d8c98ca7f748c66736fbc95a7cf0b919b11232ddc456147c608db2dac0ebe49276c466b9fc1eeb1191f75fa831 SHA512 9b5039eed87ca8937a33370bd3794c81fe9d59459b42b4ba275a8dddaace954a5a9624ab4d52cc283baf74bb201bbf5c916614559b31d87a3f7d84ebdd96b930 DIST emacs-27.2.tar.xz 44624480 BLAKE2B 245ea96004b90f81ac74de74521cbbe086caf1176937e08157eae12cdde5a0f35fc77f7119272ed812974358e5e95abb05e1c2e4f3b501cf5401ea9274f62156 SHA512 0f63a5a8709b113ef790c1a64845dad05ead096f93f62164ff221c517a35b91ea7bced75a992d794981a85382cda03cca7338da2f5ef8f6ef1459b88018a4ce9 DIST emacs-28.2-patches-13.tar.xz 17568 BLAKE2B a2843188e2f9a5da5d4cf40ea771016b36bfa888974897a6f03abb3f5d4f3a477474ad3b35ce7ae9af610f8bba59b5f21f39c12d429612665bc2c8f333d23ef2 SHA512 3618979ce1bb0a4d4ad27a50000b4dba3bf90ff9df38ff77157dee0490cf25c359bcdf94f89ba6c6e09572cbe566c2fdcec4e39f958863a4f45d802482c094a5 -DIST emacs-28.2-patches-14.tar.xz 17840 BLAKE2B 7d483a4b64e1deb40366bdb4eaecb263b1a0958ac9f45f7f6632c9d3cdf7bfb45e152d72379037161674133a07ccb9145ba4ed87dbf3312332d01cdc72523289 SHA512 f8c7ab898ebb9f20ffd1dd2e80a0b88aba66e4a4d57e2990337dd38e7d97f00bc4594225124240ce53d4031e6cadbb8f6177bbae990d5ccfc21c051474340261 +DIST emacs-28.2-patches-15.tar.xz 18124 BLAKE2B 30f0a4016d47db902f6afe4d84bf5bc8b90f9bd5df91a4c98ec0445dedf3e03a80eb53d9db34c2e3596b766e2bee60c606d260037d53d76183d4c8d8c974204a SHA512 59cb0e3eade8a286a3f7a19655823542e877e656b4abfe15daa156adfbadee122242af57c842b66239cba6ea0ed879e8d305b44242a4e1bf6e56deba2120c2a0 DIST emacs-28.2.tar.xz 47722600 BLAKE2B a7e4990658b5e7306510f8dded93aaf0b82cdd9306df8b786526d038c3249ef9579287075f2235eb01a71ae1699db555254f137b86ab2d2305b45895053df552 SHA512 a7cec7e3e82367815a1442f69af54102dbfc434069810a9dec5938a6660cb8b076e6f1fb0bfff9695b15603dbbe05eb9c7dfd92e90cf40fc4d1e5746bce83bd8 DIST emacs-29.4-patches-7.tar.xz 11112 BLAKE2B 37e76abc7046044b04aee6713366b837fdd9c9b2872ee247ddc859f1463c4a7149aea011aaef192dedc1f950d46ce7af24947ed69d9aa2d748af1906ea53100b SHA512 622bdcb1c59aca0ff7b694c80175ffdfeda4ad94553857b2cabeaaa27110b9b74e9d635cf1de7575a55dcb4c2c56575edeeb516aee909cd82c22f8963f76f90e -DIST emacs-29.4-patches-8.tar.xz 11396 BLAKE2B 45b1f432e2d7505b350e536e2694ae4b51f8185ec22346eafe03ace02f9393efc7ec655c9835e81197fbd79465d9f7aa98c814b349790f1e86947b8498f0e20a SHA512 99d89b6432f7810669dbe373d905a79efb333b70e5804dbaa169bfed269ce2b84b8a3e36496609f3d9dc65642a37d2c4e1697afdb3a6dbecffb123f09e467c56 +DIST emacs-29.4-patches-9.tar.xz 11680 BLAKE2B 3e145ca6a2d4d5c4c3a24a212015a42aa78f5fd7f49ee71837b4ec4f385ed4a797a71a6fb86853e956424c6b09730b4a97d3ade9e9eb7b70eb61b45ab9a8e074 SHA512 caf2aadfdd7ada92ffe76415c50a41f81679f7062ccd66d26b294fe04eafc3a126c8aebfff9900e5c65e24cd19a845ee8888f5496a863bbe18410b3e4a816801 DIST emacs-29.4.tar.xz 52210344 BLAKE2B 825fd2665b6427dbc3cb618b40df2f71fa6b08883bdd07be6d8acf0039df2aeebd294e679e98f4c64a9dd9bdad93589fc7c176cf3860d4fb823fce23f7f2b3cd SHA512 66b38081cb01d2c46ff7beefb45986cc225b4c922c30712ad0d456c6cae5507176ed99418c8f26948c5375c8afde4e4b2507d23ed997dbb5392d12150a121d80 DIST emacs-30.2-patches-5.tar.xz 8564 BLAKE2B d47d2ac461c352058950c1cb98602c550797f7e9864f05d20f728aa62dd36bf6b6089f34a9bda6c490df149ad526f11e7d0edf586c16e20754df1412edb560fc SHA512 bccc94d31da384b86887a4d153be0946720ef7c66369b591ca567159d0ed83fc0613d7ecb27c7de9a31a98b5886be4fc3498c36a12d878dff36e03cfd55aa7f1 -DIST emacs-30.2-patches-6.tar.xz 8928 BLAKE2B fa00120d7b2d8c712513c87655f1d6388dc39ed98d0e0602f5f489f8959fc6079a08e99888e56b61862bb8ce97c31386fa4cc23df5daff64569604724c6c70b5 SHA512 c16eb103de51175966299055375157e47dbe86ec4741284163f6ad92e6dcfdf53cfd85d1758b443b11e23b285325b4b6adc62bcbd18af14b1a06d5ef89bdbc8e +DIST emacs-30.2-patches-7.tar.xz 9280 BLAKE2B 711b74ca5092e4a7397707d580d6482ba162181ec2a121815fc28b8c2f52557c884214c829ba3fe2d1a04039cc78910095e97bb4a3889d987fadebfc487d6e35 SHA512 910763d9a05a8475c27e19aa0ac98d3d45884d4ef3bf96ec4d9bb5f4674004f2a55d019598603181eea645bfe897f3d86f18ba9bf8ab53e92c2b6b33c9d8a312 DIST emacs-30.2.tar.xz 55320324 BLAKE2B 9163ba6bfab1010a156c669ac085ad363545d73e3ffac21c710b14b618df61a4c6a80a50fd3fa81d852c2ccace5080e614b679606fa584e28509f99ad6196784 SHA512 313432d11e95c74f8cd35c5b1da442e6223f5d40f9173c55883c0339ecbfb97a0bedf79177ef8902afd3e33c078a233777bed01f5caffa1e7524f17d58bfc9a2 -DIST emacs-31.1-patches-1.tar.xz 1184 BLAKE2B 24ff497cf3dd7e0d3150db4e3bc845e8c923388c1ba0c9b888a1d69f28a58c6a33137aaf7cc558f74c918436d68b1f16aae185625d13ced52decff8dcaf2c4d8 SHA512 5607d9a894a461b271c06b61c12247368902222d9258a2513959a44a309d05334549575ac7d16647556093ff31e2916f1f60f65727c077ffd377dc51a47692ff +DIST emacs-31.1-patches-2.tar.xz 1600 BLAKE2B 7cc7666772db541294a1148d994fa0fc7ece967333247f57e2f0578b4c180d783373f8ba468ae65019973fe5e2ed6129b35a0f292254f5fd9d820e0c4fe008b3 SHA512 0f39d04f94dc24d5a3cef4fff087cea5f89617f0249735cccd24a17860511e9be5d6c12d455c6a511928ef0f7737efa4e49989b17dfbab26bfa708b6eab93578 DIST emacs-31.1.tar.xz 57977476 BLAKE2B c9f8cf37553c0e2913eb12d7e069735c23baca3b725332f17b4b4784d1e4987c9ae098dae669e65e49fa01d8b9a63e518b210640892216e0a9ae02e51f3d0581 SHA512 25cb810d09eaaa58306f4c10f406466c424517657dd1c9db056dadb624f0bc33db58f3bcdf527d81e5059e492b81c237f164eb3997bf4357bd84c696537f6836 DIST emacs-32.0.50_pre20260831.tar.xz 36653692 BLAKE2B 76b8696ee19f5bcc231cbe95168a6d4ca16a1da6556ea92f1b811f4bc374704326998c0edff6dfde1be7921fc11dcdfd634148f1c17329af291f675bad5c4297 SHA512 ffaecaac32629045d85076d5ec59607cba4c3671d161814fdb4e641e498a16170d1370f3fa2ad88079901946ad132d74863b13f1f92b0649610ab7fe9244bc3c diff --git a/app-editors/emacs/emacs-27.2-r25.ebuild b/app-editors/emacs/emacs-27.2-r25.ebuild index 511b1364273b..85a9db59d233 100644 --- a/app-editors/emacs/emacs-27.2-r25.ebuild +++ b/app-editors/emacs/emacs-27.2-r25.ebuild @@ -32,7 +32,7 @@ else SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz" fi # Patchset from proj/emacs-patches.git - SRC_URI+=" https://distfiles.gentoo.org/pub/proj/emacs/${P}-patches-14.tar.xz" + SRC_URI+=" https://distfiles.gentoo.org/pub/proj/emacs/${P}-patches-15.tar.xz" PATCHES=("${WORKDIR}/patch") SLOT="${PV%%.*}" [[ ${PV} == *.*.* ]] && SLOT+="-vcs" diff --git a/app-editors/emacs/emacs-28.2-r23.ebuild b/app-editors/emacs/emacs-28.2-r23.ebuild index 489c58fcb7cc..870db259570d 100644 --- a/app-editors/emacs/emacs-28.2-r23.ebuild +++ b/app-editors/emacs/emacs-28.2-r23.ebuild @@ -32,7 +32,7 @@ else SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz" fi # Patchset from proj/emacs-patches.git - SRC_URI+=" https://distfiles.gentoo.org/pub/proj/emacs/${P}-patches-14.tar.xz" + SRC_URI+=" https://distfiles.gentoo.org/pub/proj/emacs/${P}-patches-15.tar.xz" PATCHES=("${WORKDIR}/patch") SLOT="${PV%%.*}" [[ ${PV} == *.*.* ]] && SLOT+="-vcs" @@ -415,9 +415,6 @@ src_test() { # url-tramp-test-convert-tramp-to-url %lisp/net/tramp-tests.el %lisp/url/url-tramp-tests.el - - # Reason: tests not backported #982533 - %lisp/progmodes/flymake-tests.el ) use elibc_musl && exclude_tests+=( # Reason: newlocale(3) lenient locale validation #906012 diff --git a/app-editors/emacs/emacs-29.4-r11.ebuild b/app-editors/emacs/emacs-29.4-r11.ebuild index 859648ffba1c..1e010ef664be 100644 --- a/app-editors/emacs/emacs-29.4-r11.ebuild +++ b/app-editors/emacs/emacs-29.4-r11.ebuild @@ -32,7 +32,7 @@ else SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz" fi # Patchset from proj/emacs-patches.git - SRC_URI+=" https://distfiles.gentoo.org/pub/proj/emacs/${P}-patches-8.tar.xz" + SRC_URI+=" https://distfiles.gentoo.org/pub/proj/emacs/${P}-patches-9.tar.xz" PATCHES=("${WORKDIR}/patch") SLOT="${PV%%.*}" [[ ${PV} == *.*.* ]] && SLOT+="-vcs" @@ -477,9 +477,6 @@ src_test() { # emacsclient-test-alternate-editor-allows-arguments # emacsclient-test-alternate-editor-allows-quotes %lib-src/emacsclient-tests.el - - # Reason: tests not backported #982533 - %lisp/progmodes/flymake-tests.el ) use elibc_musl && exclude_tests+=( # Reason: newlocale(3) lenient locale validation #906012 diff --git a/app-editors/emacs/emacs-30.2-r7.ebuild b/app-editors/emacs/emacs-30.2-r7.ebuild index 9f252d5b136f..9d80bb9769f6 100644 --- a/app-editors/emacs/emacs-30.2-r7.ebuild +++ b/app-editors/emacs/emacs-30.2-r7.ebuild @@ -32,7 +32,7 @@ else SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz" fi # Patchset from proj/emacs-patches.git - SRC_URI+=" https://distfiles.gentoo.org/pub/proj/emacs/${P}-patches-6.tar.xz" + SRC_URI+=" https://distfiles.gentoo.org/pub/proj/emacs/${P}-patches-7.tar.xz" PATCHES=("${WORKDIR}/patch") SLOT="${PV%%.*}" [[ ${PV} == *.*.* ]] && SLOT+="-vcs" @@ -478,9 +478,6 @@ src_test() { # emacsclient-test-alternate-editor-allows-arguments # emacsclient-test-alternate-editor-allows-quotes %lib-src/emacsclient-tests.el - - # Reason: tests not backported #982533 - %lisp/progmodes/flymake-tests.el ) use elibc_musl && exclude_tests+=( # Reason: newlocale(3) lenient locale validation #906012 diff --git a/app-editors/emacs/emacs-31.1-r1.ebuild b/app-editors/emacs/emacs-31.1-r1.ebuild index 4c411433beb5..6926490f8c79 100644 --- a/app-editors/emacs/emacs-31.1-r1.ebuild +++ b/app-editors/emacs/emacs-31.1-r1.ebuild @@ -32,7 +32,7 @@ else SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz" fi # Patchset from proj/emacs-patches.git - SRC_URI+=" https://distfiles.gentoo.org/pub/proj/emacs/${P}-patches-1.tar.xz" + SRC_URI+=" https://distfiles.gentoo.org/pub/proj/emacs/${P}-patches-2.tar.xz" PATCHES=("${WORKDIR}/patch") SLOT="${PV%%.*}" [[ ${PV} == *.*.* ]] && SLOT+="-vcs" @@ -472,9 +472,6 @@ src_test() { # Reason: fails with app-crypt/freepg %lisp/epg-tests.el - - # Reason: tests not backported #982533 - %lisp/progmodes/flymake-tests.el ) use threads || exclude_tests+=( %src/emacs-module-tests.el diff --git a/app-editors/emacs/emacs-31.1.9999.ebuild b/app-editors/emacs/emacs-31.1.9999.ebuild index d33edfcc9f16..033cbf0f6501 100644 --- a/app-editors/emacs/emacs-31.1.9999.ebuild +++ b/app-editors/emacs/emacs-31.1.9999.ebuild @@ -469,9 +469,6 @@ src_test() { # Reason: fails with app-crypt/freepg %lisp/epg-tests.el - - # Reason: tests not backported #982533 - %lisp/progmodes/flymake-tests.el ) use threads || exclude_tests+=( %src/emacs-module-tests.el diff --git a/app-editors/vscode/Manifest b/app-editors/vscode/Manifest index 8da9c37c6962..73afcac44759 100644 --- a/app-editors/vscode/Manifest +++ b/app-editors/vscode/Manifest @@ -1,6 +1,6 @@ -DIST vscode-1.136.1-amd64.tar.gz 354666608 BLAKE2B 6f3e133beaf531c45521446edf986af439464ac3ae0fbfaa0312a3264c0558e246c3c3059e0d179aa446b2dd335a0dfc00bbaae65f2a5771a6aac7d8ab232111 SHA512 fe7f8ed928debe38ac0a82750baf12189c475fe8a2694f365ba0fddc5f1815d99bfd0a43fcb7e65286c2688df1851b56f7376501b4ec2f06f75706fd1019f03b -DIST vscode-1.136.1-arm.tar.gz 224172150 BLAKE2B 16ba28865d222ccb0932ef231e3a6a98762a0159daabb8cfb6bf79722e1b3e3ef876bc0f5c608b438058c0811c918c88df4ab983e6a2d65f38918723630a5f43 SHA512 ee44e6a3920cf1efda33b616b3047d955b505f62d725f40ee170ace60e150d3e1c92907dcb444b73c9fba3dc27d0444826208e9f7507ac3ba031ec598e625ce3 -DIST vscode-1.136.1-arm64.tar.gz 342644352 BLAKE2B 07d8cd732ae9b7ad1ce2ce4c69a4f427e0e1be64930270b6c814799b8939b819a64f676150d7426460619b42307b5d21302160125beb3b7b53a9af809b0de20a SHA512 e7f73186b0d864094c4d9a6ead070329a4b8d91368a202808e6037d21131a7c5cf2d46f1ae3b10e91e23f54f13ed62a2854014a8dd9f7e7a4e8788ffdbb8691e DIST vscode-1.137.0-amd64.tar.gz 342993887 BLAKE2B 40f341853b149e82cb948ab125184f0c0e0028a943d14193d73b143c268d147f47c3b6325dfc8dde75fed36775cc6a255cea998936eb3dd4ad53fbcb825b67d4 SHA512 eea81a313cef570239f892a1597e7e1a049b62d72b81f0b7ff026e886864c8776e713c7395857ebd78db6fa5c48f1a963f2132834124668127cc7f66f50ff951 DIST vscode-1.137.0-arm.tar.gz 224639776 BLAKE2B 1280a5e84fbdef4ce1886d569e8dfa9101cef94fa3de2ea274dd13c2f615c5dd81829a8171e2cfb5466fd363a0c8c0a2191b89778835fc2de5a5b99957003b60 SHA512 c7a79adab49812401573c71d280755cace36d2359d46e0015a506c889feffe32583e8b8303ec1b975230cd2e2909967723749344466af7828533175d6258658e DIST vscode-1.137.0-arm64.tar.gz 332457029 BLAKE2B 7949bcb49c156064a690913bd9467824014f5438b04a9b5cc4eaf6ce0ce04b5a30cf05be74b40f8ebe2d68fdc7bf296dd700986adeb6149ec142d811275c2af0 SHA512 311c5009f3b95ae7f6c64b987fe0f39f36f3b065499493e363e9203cdcff9f047cff183faec6cac41bbf3b4b12b4d10d0c97c3e8804a8c43a4ba6a318c9a0313 +DIST vscode-1.138.0-amd64.tar.gz 344482658 BLAKE2B a5639c19a96b572e4e44b561ff3a20b958809bc3f628b0ffa607cbd46295d1a0f6d50374848aa54b03b8367f43919bbfa16f1fb17d43c063fa5f3d7a9557cecf SHA512 a39d314eda8b12e1926ef03fb2938ac13b79aeeb06c41faae850abdbfb06d7c7b1b7b7fbdd08c71a2b7e9b1e2d6ef68720dc2fd2e9e525e034a6f89099e3956f +DIST vscode-1.138.0-arm.tar.gz 224720805 BLAKE2B a670b6775b67a58669954c1f87a8a691bb5168101af75e64059c5d2845027d90a6b2361e323df889beb5a13b91c8b12ed43981304780d3ab60039662fa52e108 SHA512 3638e898a007aeb63d2c3abdc7fefcc21957138ac15463eae3befad348b74eff604b25e1deb095200f9848ed7b3f60bbbe93b7366075ac719c909fdfb51f836b +DIST vscode-1.138.0-arm64.tar.gz 333995466 BLAKE2B f232f418e19fe695d6e2b793b9bbfc36851307828ab77279b32d82f559d9ea42aa6959213a5432c07140f44e3bbdaa1ff50e21d8aac8608b157f110a83908cc8 SHA512 1f8370d7c5954dcea06a86eccc5415b998dbd6dea805a2e74a76ac5ba24001ed8e2aedca77389365de4b7522e9ea838c984efdba2909b1a0ad558713c6d1f824 diff --git a/app-editors/vscode/vscode-1.136.1.ebuild b/app-editors/vscode/vscode-1.138.0.ebuild index 9cf66870460a..9cf66870460a 100644 --- a/app-editors/vscode/vscode-1.136.1.ebuild +++ b/app-editors/vscode/vscode-1.138.0.ebuild diff --git a/app-emacs/cond-let/Manifest b/app-emacs/cond-let/Manifest index 98bba6fb4b37..94b5e5c13dac 100644 --- a/app-emacs/cond-let/Manifest +++ b/app-emacs/cond-let/Manifest @@ -1 +1,2 @@ DIST cond-let-1.1.3.gh.tar.gz 20552 BLAKE2B 2fcede25d38db59ae521d0742d094c927b0005507caf0ac98b8ab0443430c303eab3fd175d7d51ea962a67fbb9987dfd7b40a5566c0a778e30f783e8b1bf95cd SHA512 54c5285667084890e36a0aeab4649dc262c3809e90a616795050cae2be4ec6b988988cc1ffea912813581e511b0a30175f7bfde57ab252ebcc7c958c7481d12e +DIST cond-let-1.1.4.gh.tar.gz 20675 BLAKE2B 969936963972123a19a72d075ae8fd19f56301cb71d31f5838e132f32bb0c54d46c9fc1d04741977c96f7836002d380687ff1ab908700b05fffdefb46a30ab74 SHA512 45d4ad964297c9d202e0bed0d993ecb8ca58e312d9f6aa7f8cb93cbdd3c5fd2e519ae35fef12a65ee9041783678839ce92fbfe0e1b8b15458655098910ec9027 diff --git a/app-emacs/cond-let/cond-let-1.1.4.ebuild b/app-emacs/cond-let/cond-let-1.1.4.ebuild new file mode 100644 index 000000000000..1e6a5879b895 --- /dev/null +++ b/app-emacs/cond-let/cond-let-1.1.4.ebuild @@ -0,0 +1,35 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +NEED_EMACS="28.1" + +inherit elisp + +DESCRIPTION="Additional and improved binding conditionals for GNU Emacs" +HOMEPAGE="https://github.com/tarsius/cond-let/ + https://github.com/tarsius/cond-let/wiki/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/tarsius/${PN}" +else + SRC_URI="https://github.com/tarsius/${PN}/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz" + + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" +fi + +LICENSE="GPL-3+" +SLOT="0" + +DOCS=( README.org ) +SITEFILE="50${PN}-gentoo.el" + +elisp-enable-tests ert . -l "${PN}-tests.el" + +src_install() { + rm -f "${PN}-tests.el"* || die + elisp_src_install +} diff --git a/app-emacs/consult/Manifest b/app-emacs/consult/Manifest index eae2fa1972b6..815eeba684a8 100644 --- a/app-emacs/consult/Manifest +++ b/app-emacs/consult/Manifest @@ -1,2 +1,2 @@ -DIST consult-3.6.gh.tar.gz 115603 BLAKE2B 7aea22be49d9fe53178240de9071a0662931492542409d7b0679ef341c58a8612767943ddabc5bb3b9c5b8dc9a63e0e7a71836c402c02a78abc6ef0958d1fe74 SHA512 5f52c2fb3a13f4acaf7f47c8663c859dcc7f4775f4970f1744b45252381cb799799016cf4edb2ee5e445ceeacd98a8fa1d66227ab7260f66961f5351e68cdc2d DIST consult-3.7.gh.tar.gz 115502 BLAKE2B abf1f20ade0ac4b0a33ad829c58f2212b999d194dfc8a5831c8070279e7d45aa1f12978fa44b36ec44ae08ea40b6373dee18a6b8496ca373942a763ab8ba7185 SHA512 c5be08644a816421a5076d67c34e975727d8272375305913487c2c8e99573472a5a823efbea1b74f75f3e300eb39271c1605e1db3a104c1e90140beadd346d17 +DIST consult-3.8.gh.tar.gz 115208 BLAKE2B a07a29e2f2c742cb3fe1503b51cc7b3750df6b3843917eec26b24a17b890bf5358b67332895752a91c9127cad790a549591c500ed9d2f16742b0efd1c356de07 SHA512 e695ff3283abdf4e4b4111a00c6c64575b5a5ed7a1b6be70ccdda6984d3da07c99d81c355573a8310673e94374e050be4ae75c47f9ed883c6d6d54825481a135 diff --git a/app-emacs/consult/consult-3.6.ebuild b/app-emacs/consult/consult-3.8.ebuild index 977fe158f4d3..0f3d60044e61 100644 --- a/app-emacs/consult/consult-3.6.ebuild +++ b/app-emacs/consult/consult-3.8.ebuild @@ -12,20 +12,18 @@ HOMEPAGE="https://github.com/minad/consult/" if [[ "${PV}" == *9999* ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/minad/${PN}" else SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz" - - KEYWORDS="amd64 ~x86" + KEYWORDS="~amd64 ~x86" fi LICENSE="GPL-3+" SLOT="0" RDEPEND=" - >=app-emacs/compat-31.0.0.1 + >=app-emacs/compat-31.0 " BDEPEND=" ${RDEPEND} diff --git a/app-emacs/corfu/Manifest b/app-emacs/corfu/Manifest index 99ec796813c7..40bb53a02f13 100644 --- a/app-emacs/corfu/Manifest +++ b/app-emacs/corfu/Manifest @@ -1,3 +1,3 @@ -DIST corfu-2.12.gh.tar.gz 54724 BLAKE2B b4c70ae0350ecdea3e4d2d651942e7964ee3c13c7559e072dba838a06824453514d7627c02e9e2728ac91b9db7f730b3c05088064da39dfee1209056a943ee8f SHA512 6e78f0fcc80309628b423b7024d3251329a4a05dc8dc47739ccd83549df50a06ff76e96186e71447cc8b1559f6e75957b4b59edc69489206e1e00bc5e1a9599a DIST corfu-2.13.gh.tar.gz 54431 BLAKE2B c6c93d5045acb69e6d9f92ed12744c8e959e737235d799d3370dcb929f86f12de20d007cef7d205c750b28b5bbfb2cf14919d68a77811f3525e6895a09f385c9 SHA512 8d376fa090253e42119a0fd0343ad48d330525b24f1d686ed6d12026b4d447a7db0f9c95d3d70b045cdbe6a4ba20bdf9052dd913efe6fb4fce5415116a7a3999 DIST corfu-2.14.gh.tar.gz 54437 BLAKE2B 2c890c7541ac75370018cd77c3c0ea118f3bccd0330d6f86221e4a14628ca505131c2a35f3b2caa4c4bf1dd7655cd5732441e4ce6b23050c709f85d4c8a8d6dc SHA512 9ed02a16c127f26e1ec2588fc05ae68eb3a3d3589154251bf245d014bcedf53bdd3e682172ccb16bf6636d95e5ec42dde16d8a991bc195583e2e3c20cf395e05 +DIST corfu-2.15.gh.tar.gz 54106 BLAKE2B f0e70453f67dcd0dbedf4ae1a6b74ece148aba2cd7d74886f26a83b18824418b158f31749c1f910233ff0c387074033b5056cb15dbac4888e20b618c0144237b SHA512 d81d8a510af41c3b570710a3e87f93ce1ef7d34a5de3f2a874bc6c57a35b27dc484e2063aa0c5ef685533849e864d38d4a90fc3c87b6993898667952ac9062e6 diff --git a/app-emacs/corfu/corfu-2.12.ebuild b/app-emacs/corfu/corfu-2.15.ebuild index cf4350147f0d..928f2adbf2ff 100644 --- a/app-emacs/corfu/corfu-2.12.ebuild +++ b/app-emacs/corfu/corfu-2.15.ebuild @@ -16,7 +16,7 @@ if [[ "${PV}" == *9999* ]] ; then else SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="amd64 ~arm64 ~x86" + KEYWORDS="~amd64 ~arm64 ~x86" fi LICENSE="GPL-3+" @@ -29,7 +29,7 @@ BDEPEND=" ${RDEPEND} " -DOCS=( CHANGELOG.org README.org ) +DOCS=( NEWS.org README.org ) SITEFILE="50${PN}-gentoo.el" src_prepare() { diff --git a/app-emacs/ebuild-mode/Manifest b/app-emacs/ebuild-mode/Manifest index 4140cca096a2..10fc9a6b2809 100644 --- a/app-emacs/ebuild-mode/Manifest +++ b/app-emacs/ebuild-mode/Manifest @@ -1,2 +1,3 @@ DIST ebuild-mode-1.79.tar.xz 51536 BLAKE2B fd53b083ca72854e33ecc81c86a5d972cd3efa3768fa5250b4c9771ad7989f751a12563a37048af5161f0634b6b92512566159b338cd7303fdd586a50334f193 SHA512 c659851eea7e5c6c5796cb9d6c5a6daf062cdc6aa64406125aa8f48d59433191e7b34894545e8c70e4b9deaa40b4df5a1de7560974c78e45e8ab8d9da99c78f8 DIST ebuild-mode-1.84.tar.xz 52864 BLAKE2B 915374ea20e9ba9d8a15a009a55ac081f33e0ac56395362a5b326464c25478a4cf3d16ff1144963aa13ca091cb2603d144fbe1c4f61c653a4456cf20c03c61f4 SHA512 d3218b4811e0b1f68f3f8e409e9fee825783923e6a4ad8cdcaa7f39d96580b2e7a5678814fc219992f0fe4c1dd1505c0abc725c2cec8ff251d6fbc2d9af9ef55 +DIST ebuild-mode-1.85.tar.xz 53428 BLAKE2B afc036a88cd82d8c1a6a5cb307b72938a906c62a4cb8ac4dd15d3cbd812751d8bc21a527574a862e7a0211bf349546cb26623894f6e1fb26171f6167582275f7 SHA512 eb09e11e7ad24a51e0fe478079e479ef1fd6760e992e09743b99942fe698a757be854dc10f6f6bd3ffe81040ff67ce19bca271e1aca37989ba4f7368f4d79f35 diff --git a/app-emacs/ebuild-mode/ebuild-mode-1.85.ebuild b/app-emacs/ebuild-mode/ebuild-mode-1.85.ebuild new file mode 100644 index 000000000000..b89850a25b60 --- /dev/null +++ b/app-emacs/ebuild-mode/ebuild-mode-1.85.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit elisp optfeature + +if [[ ${PV} = 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/ebuild-mode.git" + EGIT_BRANCH="master" + EGIT_CHECKOUT_DIR="${WORKDIR}/${PN}" + S="${WORKDIR}/${PN}" +else + SRC_URI="https://distfiles.gentoo.org/pub/proj/emacs/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" +fi + +DESCRIPTION="Emacs modes for editing ebuilds and other Gentoo specific files" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Emacs" + +LICENSE="GPL-2+" +SLOT="0" + +RDEPEND="app-emacs/tty-format" +BDEPEND="${RDEPEND} + sys-apps/texinfo" + +DOCS="ChangeLog" +ELISP_TEXINFO="${PN}.texi" +SITEFILE="50${PN}-gentoo-1.81.el" + +pkg_postinst() { + elisp_pkg_postinst + optfeature "ebuild commands support" sys-apps/portage + optfeature "additional development tools" dev-util/pkgdev + optfeature "ebuild QA utilities" dev-util/pkgcheck + optfeature "XML syntax validation" app-emacs/nxml-gentoo-schemas + optfeature "generating HTML from GLEPs" dev-python/docutils-glep +} diff --git a/app-emacs/eldev/Manifest b/app-emacs/eldev/Manifest index 39fa5ae4c86c..6fec91af3dc0 100644 --- a/app-emacs/eldev/Manifest +++ b/app-emacs/eldev/Manifest @@ -1 +1,2 @@ DIST eldev-1.11.2.gh.tar.gz 320924 BLAKE2B 4f97fc64fa02e90a371249c6252936172b4ee2a891df9a8a1cc44e4c8f8e11cf3f84e34e98b598803b5bc522713b6223319506fc9ad585833e1e90cc348d181f SHA512 0f921d8a516017521cd47e0ca54fc3905d1ee49e403ebb103af380dd2fb216241c1e8b6e71e8587603fda6df7aad0a3de8630e8800f4809a1d7fa995f30a10d3 +DIST eldev-1.11.3.gh.tar.gz 321092 BLAKE2B e2a86ca641fe52958048821a9008d9ee97b3065ec8b82387e8b7fe5518bae4a67bd52e3a1eb8b9bf26c27dc2d93c2f7cbafd2fe443bb06013539d20c11010307 SHA512 6ea0098208af7462093e1090d2173078873b1a022b7d83a02e68019e0194847196dc58d35cce6cfbdb59ee13c1316e46e0cdcf2300917a3fd7460b2f38e17b60 diff --git a/app-emacs/eldev/eldev-1.11.3.ebuild b/app-emacs/eldev/eldev-1.11.3.ebuild new file mode 100644 index 000000000000..b2ce92983436 --- /dev/null +++ b/app-emacs/eldev/eldev-1.11.3.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit elisp + +DESCRIPTION="Emacs Lisp Development Tool" +HOMEPAGE="https://emacs-eldev.github.io/eldev/ + https://github.com/emacs-eldev/eldev/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/doublep/${PN}" +else + SRC_URI="https://github.com/emacs-eldev/${PN}/archive/refs/tags/${PV}.tar.gz + -> ${P}.gh.tar.gz" + KEYWORDS="~amd64 ~arm ~ppc64 ~riscv ~x86" +fi + +LICENSE="GPL-3+" +SLOT="0" + +ELISP_REMOVE=" + test/backtrace.el + test/doctor.el +" +DOCS=( README.adoc ) +SITEFILE="50${PN}-gentoo.el" + +src_test() { + local -x ELDEV_LOCAL="${S}" + edo "./bin/${PN}" test +} + +src_install() { + elisp_src_install + exeinto /usr/bin + doexe "./bin/${PN}" + + # NOTICE: If ELDEV_LOCAL is defined Eldev will use it + # to load up it's components, + # if it is not it will bootstrap itself from network + # always check if it uses installed Emacs Lisp files. + # Also, do not forget to run `env-update` & reopen your shell. + # https://github.com/doublep/eldev#influential-environment-variables + echo "ELDEV_LOCAL=${SITELISP}/${PN}" >> "${T}/99${PN}" || die + doenvd "${T}/99${PN}" +} + +pkg_postinst() { + elisp_pkg_postinst + ewarn "Remember to run \`env-update && source /etc/profile\` if you plan" + ewarn "to use Eldev in a shell before logging out (or restarting" + ewarn "your login manager)." +} diff --git a/app-emacs/eldev/eldev-9999.ebuild b/app-emacs/eldev/eldev-9999.ebuild index 7251e88d76f6..b2ce92983436 100644 --- a/app-emacs/eldev/eldev-9999.ebuild +++ b/app-emacs/eldev/eldev-9999.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=8 +EAPI=9 -inherit edo elisp +inherit elisp DESCRIPTION="Emacs Lisp Development Tool" HOMEPAGE="https://emacs-eldev.github.io/eldev/ @@ -11,12 +11,10 @@ HOMEPAGE="https://emacs-eldev.github.io/eldev/ if [[ "${PV}" == *9999* ]] ; then inherit git-r3 - - EGIT_REPO_URI="https://github.com/doublep/${PN}.git" + EGIT_REPO_URI="https://github.com/doublep/${PN}" else SRC_URI="https://github.com/emacs-eldev/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="~amd64 ~arm ~ppc64 ~riscv ~x86" fi @@ -24,21 +22,19 @@ LICENSE="GPL-3+" SLOT="0" ELISP_REMOVE=" + test/backtrace.el test/doctor.el " - DOCS=( README.adoc ) SITEFILE="50${PN}-gentoo.el" src_test() { local -x ELDEV_LOCAL="${S}" - edo "./bin/${PN}" test } src_install() { elisp_src_install - exeinto /usr/bin doexe "./bin/${PN}" @@ -54,7 +50,6 @@ src_install() { pkg_postinst() { elisp_pkg_postinst - ewarn "Remember to run \`env-update && source /etc/profile\` if you plan" ewarn "to use Eldev in a shell before logging out (or restarting" ewarn "your login manager)." diff --git a/app-emacs/forge/Manifest b/app-emacs/forge/Manifest index e2cf7505557d..63f25f113c43 100644 --- a/app-emacs/forge/Manifest +++ b/app-emacs/forge/Manifest @@ -1,4 +1,3 @@ -DIST forge-0.6.5.gh.tar.gz 152089 BLAKE2B 84f8a3c2cfc093b2a4024b42404b31bf651f26c05efdb507f4cef9aa613e8d0b180faabfa8f6a1e172e478e37c8c9dfdfb4a40b111036ea27e4916a1b98077ed SHA512 a0d5fcdba8137797895e837e432ab81982cdf37c50c421d011fc699bb729bc24a74d8ef067be69f67d940ebbb9898c2117fbb54e20951e24e8521f026d32bfa5 -DIST forge-0.6.6.gh.tar.gz 152486 BLAKE2B db013fc01406f793a15df8a05c2716839ffe48d6fd12244c1e7a4aae945a081339aed909979747f7ae6752de38c7a69558afe0342e3bd07deb687eb31d02b1bc SHA512 9042bcb89fb12da24b5f52f607de2889fba8b556f6adccb1fd5b875b2e91383ef46166f5cb2bc82154f85365261966ea098b1c0033845952cfff395aa55761ec DIST forge-0.6.7.gh.tar.gz 152626 BLAKE2B 0e9e68bee7f5877f06a403c83c9f0b1cf9fe25c3980fb0127579d2fe73fa8a62c23ed1cf11799ee9976ec853d43e284e09b47f6ee1a6db82d4f74c806001343c SHA512 6d49afb145c709393d4be256462a67c675c3678c71ee2d5995e81c458b0ded981fcb643a61db1bec9a00f56312dc10f990346b32740e1b4b075eb3673912509c DIST forge-0.6.8.gh.tar.gz 152564 BLAKE2B 1ba8c9987b29176a1fc1720a7ad69d34751f7d052c8374eb2223492f3addf6681e893f5ba871ffa3317a6b0d754c6a6e99dd85d41b61f7e6440a41bffd215a3e SHA512 e718efaa6747a631203ef3c0f203cd75c2513e85ff975f8a8bea325a75ec1e65f448bc41dac5b11257a3047de2561228d16d24d338a1321eede07638866484e9 +DIST forge-0.6.9.gh.tar.gz 154772 BLAKE2B 47507404ca8ed430d7106676262837b96ba1269eab340bd0d6d66e7174edd4029b849975e77d10fe5f546073e55ed46118cefb70b7d0917209b0a08648615fed SHA512 83ce7a5fc7b316a57cfd8750cdd47435b0ff2d0c1694c109d8b9a5943ae95d18287348d56580352329be8eeba11d1bc8e02285d6029f655a376055c7d256c795 diff --git a/app-emacs/forge/forge-0.6.5.ebuild b/app-emacs/forge/forge-0.6.5.ebuild deleted file mode 100644 index 39c6be5efec2..000000000000 --- a/app-emacs/forge/forge-0.6.5.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=9 - -NEED_EMACS="29.1" - -inherit elisp - -DESCRIPTION="Work with Git forges from the comfort of Magit" -HOMEPAGE="https://magit.vc/ - https://github.com/magit/forge/" - -if [[ "${PV}" == *9999* ]] ; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/magit/${PN}" -else - SRC_URI="https://github.com/magit/${PN}/archive/refs/tags/v${PV}.tar.gz - -> ${P}.gh.tar.gz" - - KEYWORDS="amd64" -fi - -S="${WORKDIR}/${P}/lisp" - -LICENSE="GPL-3+" -SLOT="0" - -RDEPEND=" - >=app-emacs/closql-2.4 - >=app-emacs/compat-30.1.0.1 - >=app-emacs/cond-let-1.0.0 - >=app-emacs/emacsql-4.3.6 - >=app-emacs/ghub-5.2.0 - >=app-emacs/llama-1.0.4 - >=app-emacs/magit-4.5.0 - >=app-emacs/markdown-mode-2.8 - >=app-emacs/transient-0.13 - >=app-emacs/yaml-1.2.3 -" -BDEPEND=" - ${RDEPEND} - sys-apps/texinfo -" - -DOCS=( ../README.org ) -ELISP_TEXINFO="../docs/*.texi" -SITEFILE="50${PN}-gentoo.el" diff --git a/app-emacs/forge/forge-0.6.6.ebuild b/app-emacs/forge/forge-0.6.9.ebuild index ed1ccd482d76..1c5a8e63582e 100644 --- a/app-emacs/forge/forge-0.6.6.ebuild +++ b/app-emacs/forge/forge-0.6.9.ebuild @@ -8,17 +8,15 @@ NEED_EMACS="29.1" inherit elisp DESCRIPTION="Work with Git forges from the comfort of Magit" -HOMEPAGE="https://magit.vc/ +HOMEPAGE="https://docs.magit.vc/forge/ https://github.com/magit/forge/" if [[ "${PV}" == *9999* ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/magit/${PN}" else SRC_URI="https://github.com/magit/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="~amd64" fi @@ -32,9 +30,9 @@ RDEPEND=" >=app-emacs/compat-31.0 >=app-emacs/cond-let-1.1 >=app-emacs/emacsql-4.4 - >=app-emacs/ghub-5.2.1 + >=app-emacs/ghub-5.3 >=app-emacs/llama-1.0 - >=app-emacs/magit-4.5 + >=app-emacs/magit-4.7 >=app-emacs/markdown-mode-2.8 >=app-emacs/transient-0.13 >=app-emacs/yaml-1.2 @@ -44,6 +42,6 @@ BDEPEND=" sys-apps/texinfo " -DOCS=( ../README.org ) +DOCS=( ../CHANGELOG ../README.org ) ELISP_TEXINFO="../docs/*.texi" SITEFILE="50${PN}-gentoo.el" diff --git a/app-emacs/ghub/Manifest b/app-emacs/ghub/Manifest index 146be68c1286..1e2427ba0c66 100644 --- a/app-emacs/ghub/Manifest +++ b/app-emacs/ghub/Manifest @@ -1,3 +1,2 @@ -DIST ghub-5.2.1.gh.tar.gz 59147 BLAKE2B b5dddf97fff6ba7838e04ddf2bddb2bb2ead5e1f6074d39956b2928ef1f4b4cc55dacb8c452c07d6118d410cfe5ba534c77c26e728401d56a08eaa85d466eb61 SHA512 bd0ca3e64225e1044877e6c15351815a3a3f083aad96decd4ce972692034c8aa499f02b4f0fdc1d0208acea93cd782ff4ee94d4e7a188513f5e67cb4615f1f9c -DIST ghub-5.2.2.gh.tar.gz 59179 BLAKE2B f0dd460c8a31e3c83b554ebfa210318edd8d82c89c206d767b73c3f7f676472723796627215b11cc270d183cef005ae31ba3eec8f4304b799b81bbb2f22e90b9 SHA512 7dff1745bce3d9e6e0082ff0df72ae09bf880748838f178baba911bc26aaf9d7459dd2d0e62d5caa2851c2aeaae56af5e48534d3b521b3363c070f05b015a19e DIST ghub-5.3.0.gh.tar.gz 60161 BLAKE2B cafc584dc4a524195024f7ad69621c80737d0a663840e0657b3420db4b423565a54a3b14ef7f5ac0a4b96f3f46fc4098748a86989fc0fe083435fbe0d6c0f8e3 SHA512 18724a7423fa76e72ae096124e0340a2bf23f920ba3db64e635f52d937cd0bbf033b3bc2c9d515c0f39b0f373ee878a79eb735f4630cbb35bbf32274c3b9a3b1 +DIST ghub-5.3.2.gh.tar.gz 60219 BLAKE2B 29da78795517f7ac43fa65f9616dad6602a45ac1db53dab6163cac7320d7399aecac81b20eed8293967bc7f9387bf0bd78adf34d4c119659d6ace694478b499a SHA512 64491e0f3180e7330b732e171e93dfd17abe4763cb1a68c93c1ba8b0b0f7ae308e3079533ac7711231c226f2a7b333b4927410768dee2ac151fdd38451b7579d diff --git a/app-emacs/ghub/ghub-5.2.2.ebuild b/app-emacs/ghub/ghub-5.3.2.ebuild index 17ef0877825d..29888737fc16 100644 --- a/app-emacs/ghub/ghub-5.2.2.ebuild +++ b/app-emacs/ghub/ghub-5.3.2.ebuild @@ -17,7 +17,6 @@ if [[ "${PV}" == *9999* ]] ; then else SRC_URI="https://github.com/magit/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="~amd64 ~x86" fi diff --git a/app-emacs/magit/Manifest b/app-emacs/magit/Manifest index ef28c641d6cf..194560dc8b66 100644 --- a/app-emacs/magit/Manifest +++ b/app-emacs/magit/Manifest @@ -1,3 +1 @@ -DIST magit-4.5.0.gh.tar.gz 702733 BLAKE2B 90413027a5f3b12dd80083e7bee506a0212b06df2ff79ca5792d8cc3e88bf59b2d8e56deee03a4df32ed8790d9c08103a3b2f1bfb1140e566f6cd4677c575647 SHA512 929edfc31f4e2a8c60510227cf9b448534173ecd22c010b71df5a4a2204906345d49b12ef254deace53c2b2a400d6067c325bab838efe1766be024e353f05486 -DIST magit-4.6.0.gh.tar.gz 709029 BLAKE2B 50bfdd3f88453b42f0fe0c1c330b52487b038c7e547d0584b80f8a9d1000f59c1e9a7a747f3edad884eb412e0981c4619d02b6b81455e8bcf91c3b55302d2cba SHA512 e9843af14cf74e6e4d3b7f215ddbf5be592fa5f55747c9353f74ffead929d312bab1244f60bf692c378129f368a0583ec07705b5a08bae4986374118d098329d DIST magit-4.7.0.gh.tar.gz 717998 BLAKE2B c5a51df3282a6bb0010ad9556aa990e79ef9e258a0c7170404c211f4dec038a9e036c0ae0838bdefe92bf1a84e34a94c8e23e123c5cd2ab4b609c8834fce138c SHA512 a62cabfa195bdf5a6a254fe7ae34bfa2c907a39fc6b2aa33224410af982e81a0351c2dc5e838b8bbe21ab3df632015f9e24d67db279b0d9ab90d346b37d48044 diff --git a/app-emacs/magit/magit-4.5.0-r1.ebuild b/app-emacs/magit/magit-4.5.0-r1.ebuild deleted file mode 100644 index e1d0033f6b35..000000000000 --- a/app-emacs/magit/magit-4.5.0-r1.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=9 - -NEED_EMACS="29.2" - -inherit elisp - -DESCRIPTION="A Git porcelain inside Emacs" -HOMEPAGE="https://magit.vc/ - https://github.com/magit/magit/" - -if [[ ${PV} == *9999* ]] ; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/${PN}/${PN}.git" -else - SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz - -> ${P}.gh.tar.gz" - - KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86" -fi - -S="${WORKDIR}/${P}/lisp" - -LICENSE="GPL-3+" -SLOT="0" - -RDEPEND=" - app-emacs/compat - app-emacs/cond-let - app-emacs/dash - app-emacs/llama - app-emacs/transient - app-emacs/with-editor -" -BDEPEND=" - ${RDEPEND} - sys-apps/texinfo -" -RDEPEND+=" - >=dev-vcs/git-2.44.2 -" - -DOCS=( ../README.md ../docs/AUTHORS.md ../docs/RelNotes ) -ELISP_TEXINFO="../docs/*.texi" -SITEFILE="50${PN}-gentoo.el" - -src_prepare() { - default - > ../default.mk || die - emake magit-version.el PKG="${PN}" VERSION="${PV}" -} diff --git a/app-emacs/magit/magit-4.6.0.ebuild b/app-emacs/magit/magit-4.6.0.ebuild deleted file mode 100644 index 7736445eedaa..000000000000 --- a/app-emacs/magit/magit-4.6.0.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=9 - -NEED_EMACS="28.1" - -inherit elisp - -DESCRIPTION="A Git porcelain inside Emacs" -HOMEPAGE="https://magit.vc/ - https://github.com/magit/magit/" - -if [[ "${PV}" == *9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/${PN}/${PN}.git" -else - SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz - -> ${P}.gh.tar.gz" - - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" -fi - -S="${WORKDIR}/${P}/lisp" - -LICENSE="GPL-3+" -SLOT="0" - -RDEPEND=" - >=app-emacs/compat-31.0 - >=app-emacs/cond-let-1.1 - >=app-emacs/llama-1.0 - >=app-emacs/transient-0.13 - >=app-emacs/with-editor-3.5 -" -BDEPEND=" - ${RDEPEND} - sys-apps/texinfo -" -RDEPEND+=" - >=dev-vcs/git-2.44.2 -" - -DOCS=( ../README.md ../docs/{AUTHORS.md,magit{,-section}.org} ) -ELISP_TEXINFO="../docs/*.texi" -SITEFILE="50${PN}-gentoo.el" - -src_prepare() { - elisp_src_prepare - echo "" > ../default.mk || die - emake magit-version.el PKG="${PN}" VERSION="${PV}" -} diff --git a/app-emacs/no-littering/Manifest b/app-emacs/no-littering/Manifest index 6652f326dcfe..e74980dbe653 100644 --- a/app-emacs/no-littering/Manifest +++ b/app-emacs/no-littering/Manifest @@ -1,3 +1,2 @@ -DIST no-littering-1.8.8.gh.tar.gz 26468 BLAKE2B 17cf7c9f5ec04d5b13c10cac89185ce2ba6aa8ece5710368b3ac19ebbffd5a368f7c4fd659041c44440415247be801a90c55ab2d1a839e9e3fd76f663d9941a4 SHA512 193ebe75cb263369821befba969c8fb01b660b9b6bbfbd6271b57451391269c5a3bb8570bc2ce11dc7bda8e2b537f31f03707fa9e6642bbdbc4832d698069a70 -DIST no-littering-1.8.9.gh.tar.gz 26487 BLAKE2B af81d73675113005c0801298ee5ca3d03ef621e2e364edf46d2d6bfbe659d8aab0f3de162112da2f418d061a5093f29cdd111deba57cff05dde8305a989d90a8 SHA512 90df0af414d0ab8d75359a3b4da30c665d091b1811429a7d86b925cb7bb8067046de6f250ea3fc0470885d73ac18a81a34a11c3e67ddca1703259aa7ad457588 DIST no-littering-1.9.0.gh.tar.gz 26517 BLAKE2B e2436d2bc1253790c37a77182d9f55c2cce65c4d7aeefd41bb5f411aa29b0d7b4b6cf9dec387740b2f180eb87fe4749c6c4bed967c2238258bd7e9d1d36645fe SHA512 0eddda3267f212d0103af31dddad75fc9eb14053477640cd5699f616be8c1fe90bfa4de83f416cbc8f96ccb38efe7d074a0dfe505783acbafcabc9dd2cd9f5ab +DIST no-littering-1.9.1.gh.tar.gz 26684 BLAKE2B aa5aa07f0ca360d1e8c21fbb61859e4342582d990d49dbdf9c53e57b570d148243fd6f05af2b1e6e3e5b525ac2bcaab7e1403ba12e8f7e5ce7c059a4aab7fc4c SHA512 a68279225000a23369fdf3184b951f575dcaf4d702e48c5436839e6e861820f55801481a6b9ea908d82c32339232359851d5af2bb8e56f73c04795e6134e5c75 diff --git a/app-emacs/no-littering/no-littering-1.8.9.ebuild b/app-emacs/no-littering/no-littering-1.8.9.ebuild deleted file mode 100644 index 6a83fc119519..000000000000 --- a/app-emacs/no-littering/no-littering-1.8.9.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=9 - -inherit elisp - -DESCRIPTION="ELisp library that helps keeping Emacs configuration directory clean" -HOMEPAGE="https://github.com/emacscollective/no-littering/" - -if [[ "${PV}" == *9999* ]] ; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/emacscollective/${PN}" -else - SRC_URI="https://github.com/emacscollective/${PN}/archive/v${PV}.tar.gz - -> ${P}.gh.tar.gz" - - KEYWORDS="~amd64 ~x86" -fi - -LICENSE="GPL-3+" -SLOT="0" - -RDEPEND=" - >=app-emacs/compat-30.1.0.1 -" -BDEPEND=" - ${RDEPEND} -" - -DOCS=( README.org migrate.org ) -SITEFILE="50${PN}-gentoo.el" diff --git a/app-emacs/no-littering/no-littering-1.8.8.ebuild b/app-emacs/no-littering/no-littering-1.9.1.ebuild index 6a83fc119519..d82c7bdb7ce8 100644 --- a/app-emacs/no-littering/no-littering-1.8.8.ebuild +++ b/app-emacs/no-littering/no-littering-1.9.1.ebuild @@ -3,6 +3,8 @@ EAPI=9 +NEED_EMACS="28.1" + inherit elisp DESCRIPTION="ELisp library that helps keeping Emacs configuration directory clean" @@ -10,12 +12,10 @@ HOMEPAGE="https://github.com/emacscollective/no-littering/" if [[ "${PV}" == *9999* ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/emacscollective/${PN}" else SRC_URI="https://github.com/emacscollective/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="~amd64 ~x86" fi @@ -23,7 +23,7 @@ LICENSE="GPL-3+" SLOT="0" RDEPEND=" - >=app-emacs/compat-30.1.0.1 + >=app-emacs/compat-31.0 " BDEPEND=" ${RDEPEND} diff --git a/app-emacs/rainbow-mode/Manifest b/app-emacs/rainbow-mode/Manifest index 5d727eda46e0..168483b2e56f 100644 --- a/app-emacs/rainbow-mode/Manifest +++ b/app-emacs/rainbow-mode/Manifest @@ -1 +1,2 @@ DIST rainbow-mode-1.0.6.tar 51200 BLAKE2B 950da4039eb392d42281d301de05cb669255b95a4382e582258676082516208980540eeb8b69293e2cd73fda3b0438256def408a2804a58bdb745cd72eeef604 SHA512 a7a3f18239dac7e63d022f513e028718552efc13da9589901a0e64377a00d9f3f56a0b708c55eacaf7b438fd29f7bbdb69fafcc4ba65dd6f9e72a82e3ce7efa7 +DIST rainbow-mode-1.0.7.tar.xz 8180 BLAKE2B 8264381c5f838921decdb01c3f874f641c8ad1931c2267bf46028d15667851f88b31fc1e6fffb054811dac2d7669b3a25c69fb9bde85d96ecbe84b734a606a6c SHA512 4f8213fef468405e51eec3c15f9baba0069c1693dca86459dca11ff0df6f9313cc5627d492bab5a97fb97ef5662f9da4dccda57df7498f56c96496ce15d3b99c diff --git a/app-emacs/rainbow-mode/rainbow-mode-1.0.7.ebuild b/app-emacs/rainbow-mode/rainbow-mode-1.0.7.ebuild new file mode 100644 index 000000000000..6829cb650d77 --- /dev/null +++ b/app-emacs/rainbow-mode/rainbow-mode-1.0.7.ebuild @@ -0,0 +1,16 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit elisp + +DESCRIPTION="Colorize strings that represent colors inside Emacs buffers" +HOMEPAGE="https://elpa.gnu.org/packages/rainbow-mode.html" +SRC_URI="https://dev.gentoo.org/~xgqt/distfiles/repackaged/${P}.tar.xz" + +LICENSE="GPL-3+" +KEYWORDS="~amd64 ~x86" +SLOT="0" + +SITEFILE="50${PN}-gentoo.el" diff --git a/app-emacs/transient/Manifest b/app-emacs/transient/Manifest index 6a2eb2fd135c..0e357150d9d2 100644 --- a/app-emacs/transient/Manifest +++ b/app-emacs/transient/Manifest @@ -1,2 +1,2 @@ -DIST transient-0.13.6.gh.tar.gz 183053 BLAKE2B 1be497a3d09e6dae80cc1977e9946ddc0eca52da3779bafeb406b2a81f9e6a6c2627e49dba1cf19e718b114f2782bc63396725a6013cc640b33d4c70f001cb51 SHA512 5766d1808a0e7c153be25f089468597048378ca7fa63f8b09e2cf255f18a0c68aa51e9c41781276b8e4a2e89669235cb7e977363b4546671d6fca57314bc221c DIST transient-0.13.7.gh.tar.gz 183105 BLAKE2B f7df31edd42084f4f2991b986c039efa0d949affccd5c21661dcae75849216377b06970429d578233888720cca59f7704be9177adf6e6aaa1040a589db0ad887 SHA512 d69ec2abf994e9ee43331cd4df2fccaaa970e47f97e12f5eef17c49fd67a54206e6733d68f4e5d9153a1baedb7d925152043b59c1c34d5b517b266b8fabdad7a +DIST transient-0.13.8.gh.tar.gz 183285 BLAKE2B 1aff33329891539d8aa80c2400cc3cfae78357a359f184de82051f30829ee667725bf6554a7a730b7dbf14d9c9caac66cf9008b82761eede5d569eb3a101f8e4 SHA512 966554fb6e585362b86510798b0e48063d42e5b80a3bb7323d07737105112b0cf8b7450d9a166c3ac413245640b9b90cab3ff2cf4b3798819f3fbb0b79afe64a diff --git a/app-emacs/transient/transient-0.13.6.ebuild b/app-emacs/transient/transient-0.13.8.ebuild index 00709b3b2978..98c1cd1e282e 100644 --- a/app-emacs/transient/transient-0.13.6.ebuild +++ b/app-emacs/transient/transient-0.13.8.ebuild @@ -17,7 +17,7 @@ if [[ "${PV}" == *9999* ]] ; then else SRC_URI="https://github.com/magit/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" fi LICENSE="GPL-3+" diff --git a/app-emacs/vertico/Manifest b/app-emacs/vertico/Manifest index 9efb45b04f53..446c50c4d6b2 100644 --- a/app-emacs/vertico/Manifest +++ b/app-emacs/vertico/Manifest @@ -1,3 +1,3 @@ -DIST vertico-2.11.gh.tar.gz 51472 BLAKE2B 1cf1c9897a9b2f7f22f7db94f7cf1a4e7d466bfb764f30e0c08bbf5fe5a9e465e136ef6896cc0c267ec36a30e1f34174dc9e775f11e55516330372c414b1af9c SHA512 b81d2c2e9cfff62e5cf57d544fa4232845cc83adefc37043b0a62d30a471a001b267a207d2c85dfb1567ae3da45b40a0177df7b6777bab3c6e73f6dd92a8a92e DIST vertico-2.12.gh.tar.gz 51361 BLAKE2B 7a18d5cc73dc6f652d85e47dc0f5bf9f5a13147f05864d93207a879e40137ca1d40d14d9672ff31da7b9d265646c707886bead0dc509edb1f1358b8318b592b3 SHA512 0f197e012b96f5d8e8ad2152f8faa2cd4280dafd66b4623a01bf30292f59e24c98b3521cef0e366bc7de522f6be71aa72b8b2fd249f39b9f517480ddf7eae520 DIST vertico-2.13.gh.tar.gz 51128 BLAKE2B 7883ec7ea97154c8f9a447009ba41adf0e05faeaaca780d14b3f0e2dd2c51493188584d32c479455ae7b2736a6666243f68ee5d506e501f196af28f2908cd095 SHA512 2b4edda197d40e0cc3f65665ab766bd51b3e69be73f95fbdce3d6049e47d7503ecded4b6dab1aafe2afb5fae949936d42cdccd115872c720de2ae2cf0cf97e33 +DIST vertico-2.14.gh.tar.gz 51062 BLAKE2B e4da1df5ce0e8481e8246d180c93aa4a9a21566707494ac6bb7ee3729fdda58a7e9a1dc15ef5b8cc5f43560f0ae5fe870dac1b5e6506fced940205a2b97fd436 SHA512 8fb66a682efdd29268a49c2b40aef19cb79ebc9d0d71b1cb04a388956e59d53f4105e47cdbbd0f124b2f09ac29637ddd12393c079155388dc939d49c4064db3e diff --git a/app-emacs/vertico/vertico-2.11.ebuild b/app-emacs/vertico/vertico-2.14.ebuild index a3841f4ef6c8..6db36d8dca97 100644 --- a/app-emacs/vertico/vertico-2.11.ebuild +++ b/app-emacs/vertico/vertico-2.14.ebuild @@ -12,26 +12,24 @@ HOMEPAGE="https://github.com/minad/vertico/" if [[ "${PV}" == *9999* ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/minad/${PN}" else SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz" - - KEYWORDS="amd64 ~x86" + KEYWORDS="~amd64 ~x86" fi LICENSE="GPL-3+" SLOT="0" RDEPEND=" - >=app-emacs/compat-31.0.0.1 + >=app-emacs/compat-31.0 " BDEPEND=" ${RDEPEND} " -DOCS=( CHANGELOG.org README.org ) +DOCS=( NEWS.org README.org ) SITEFILE="50${PN}-gentoo.el" src_prepare() { diff --git a/app-emacs/with-editor/Manifest b/app-emacs/with-editor/Manifest index a00e1e300476..874399f7491a 100644 --- a/app-emacs/with-editor/Manifest +++ b/app-emacs/with-editor/Manifest @@ -1 +1,2 @@ DIST with-editor-3.5.3.gh.tar.gz 35768 BLAKE2B d05d77257ebad6d62638564408f3fe92c80df09e82d77bd6b919fdbd25c63375332198242b7002bada3cd15da7fc50471f4730060043d24f714bc89ead7f667e SHA512 177c51ba0ea256927b08118372299462f16241fd6da351e8f97448639c0405efdd720e06a3eab87188acc1cc1eef37486c58f951267ba844f16d017830b11d91 +DIST with-editor-3.5.4.gh.tar.gz 35792 BLAKE2B 4f4493f0c895584372b75d9d3aabe1d28c894451cbe0e67e72204c12348ba4c0ff238bcc7a01ea39b2b75390ab62e14af4b97dc136a616e55eec7141fd746a1e SHA512 a7dfa9d2be9f7421bf528f39d13a83fc28f92e297d4702a88a831950308d31c2505f5d3563390e87d1b0de7832043594af702cc714012c73a70dc75121aecb1b diff --git a/app-emacs/ghub/ghub-5.2.1.ebuild b/app-emacs/with-editor/with-editor-3.5.4.ebuild index b37081a8946b..b4c5862d67f4 100644 --- a/app-emacs/ghub/ghub-5.2.1.ebuild +++ b/app-emacs/with-editor/with-editor-3.5.4.ebuild @@ -3,25 +3,25 @@ EAPI=9 -NEED_EMACS="29.1" +NEED_EMACS="28.1" inherit elisp -DESCRIPTION="Minuscule client library for the Git forge APIs" -HOMEPAGE="https://magit.vc/manual/ghub/ - https://github.com/magit/ghub/" +DESCRIPTION="Use the Emacsclient as the \$EDITOR of child processes" +HOMEPAGE="https://magit.vc/manual/with-editor/ + https://github.com/magit/with-editor/" if [[ "${PV}" == *9999* ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/magit/${PN}" else SRC_URI="https://github.com/magit/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz" - - KEYWORDS="amd64 x86" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" fi +S="${WORKDIR}/${P}/lisp" + LICENSE="GPL-3+" SLOT="0" @@ -29,18 +29,12 @@ RDEPEND=" >=app-emacs/compat-31.0 >=app-emacs/cond-let-1.1 >=app-emacs/llama-1.0 - >=app-emacs/treepy-0.1.3 " BDEPEND=" ${RDEPEND} sys-apps/texinfo " -DOCS=( CHANGELOG README.org ) -ELISP_TEXINFO="docs/ghub.texi" +DOCS=( ../CHANGELOG ../README.org "../docs/${PN}.org" ) +ELISP_TEXINFO="../docs/*.texi" SITEFILE="50${PN}-gentoo.el" - -src_prepare() { - mv ./lisp/*.el . || die - elisp_src_prepare -} diff --git a/app-emulation/dxvk/Manifest b/app-emulation/dxvk/Manifest index 6160bd82d691..af74da26dc0a 100644 --- a/app-emulation/dxvk/Manifest +++ b/app-emulation/dxvk/Manifest @@ -1,5 +1,6 @@ DIST dxvk-2.7.1.tar.gz 1245578 BLAKE2B 66fc7d114890791eec750e8b6e059a14ae03c34cd039ee9470e79b33c7954237fcc023d2dd186077e662262fdbbbfc02c8161c17721122948ee727418b5a1480 SHA512 4d8c580d6e7a4e1a3438ec60fa323c5af002a3ea2f6dc4f049832ee6cbae34177623c373ab3d3f720be3149ce3cffb5b91da5892c1bdfe22c1e86bb9dde071ca DIST dxvk-3.0.2.tar.xz 3346236 BLAKE2B dd0e07039beeae27778b162e867e1342a107bf32677d5895cc3ded62196b70d2a7c4f896f628336b4d7172239a83f4884bf6914d4f52b020bf6c6a13fb2f0e14 SHA512 4ab4180f244b7a168f68dffa6063edb2a81eb377c5d6d8ddb7eeebeeb5fb4a285be5d546737e1f2bd2f759a0e3a168b00f60ba1929eaff27e9ecceef423cf487 +DIST dxvk-3.1.1.tar.xz 3353476 BLAKE2B eda6a934decc29c914e401c23d273cf96359bab4dc91e65fbea11fec56a5ce763cb49620f11911f4dff8fcbb60f11549bbbebcc1ad7b86ac67a859d6824f2953 SHA512 dd3a264eae9d78ce1212e70e44b2ff323263ba96ff4ddc37e95d98e55a91b1efeecf7fcd20d586fc3b0dc508963c59cf1e4b882727b396aae395360f2714a25f DIST dxvk-3.1.tar.xz 3352724 BLAKE2B 5c96da3dc01f03959dbfafa5f1411dafce120d1d3aab3e75f4b843a5d04f5cdaf2ce1bd1ef668805a8e2bd34e01ca820df35e045f39110ba8da6d9201794b1d0 SHA512 3472243098bb415cc8dc4b93b64fe0f5296e6921bfc8eb5ad96b813d251ef96e441e1daeb3f41b97cfa92d53405cccc55b7e88004071732f9e71526c1544354a DIST libdisplay-info-275e6459c7ab1ddd4b125f28d0440716e4888078.tar.bz2 81172 BLAKE2B 7a1e9e2feeb95e06e9d3f49ad9d14a8a152cca525085e819cda0b69c238fb79dddd6d547cd0f0a4b51dfc1ec74ac4c006345b9fc48563807bc8ab3bab58ea5ff SHA512 794e94e8c16d65901a7b705d1ba3361817b4e9e19e520b1004bcab232d0347f5713594d67f3c2b79d4f86b3012e710c648975547d27a63de043fcbe9e6b7e66d DIST setup_dxvk.sh 4631 BLAKE2B 25270e1f6dfd446b1d124eac3bd19da8bc770527d02d987949fc3ae0bead07866dafa25f77a90b9a408413a724354a29a4a156ff5c9dc75e26b66e079824ec86 SHA512 257fd84e29a7037f04a1a2a506502c71d527af58f8c84d8c3dfb64597ebdc41c3dca362eaf20ab4bc1982b76428c1f843815d56a6e1369d072e0009e270cb121 diff --git a/app-emulation/dxvk/dxvk-3.1.1.ebuild b/app-emulation/dxvk/dxvk-3.1.1.ebuild new file mode 100644 index 000000000000..11e162b6dbcf --- /dev/null +++ b/app-emulation/dxvk/dxvk-3.1.1.ebuild @@ -0,0 +1,156 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit eapi9-ver flag-o-matic meson-multilib python-any-r1 + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git" +else + # tarball is same as upstream except for including git submodules + SRC_URI="https://distfiles.gentoo.org/pub/dev/ionen@gentoo.org/${P}.tar.xz" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine" +HOMEPAGE="https://github.com/doitsujin/dxvk/" + +# setup_dxvk.sh is no longer provided, fetch old until a better solution +SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh" + +LICENSE="ZLIB Apache-2.0 MIT" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw +d3d8 +d3d9 +d3d10 +d3d11 +dxgi +strip" +REQUIRED_USE=" + || ( d3d8 d3d9 d3d10 d3d11 dxgi ) + d3d8? ( d3d9 ) + d3d10? ( d3d11 ) + d3d11? ( dxgi ) +" + +BDEPEND=" + ${PYTHON_DEPS} + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch + "${FILESDIR}"/${PN}-2.4-d3d8-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is set but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads" + fi + done + fi +} + +src_prepare() { + cp -- "${DISTDIR}"/setup_dxvk.sh . || die + + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx and mingw-gcc do not mix safely here + # https://github.com/doitsujin/dxvk/issues/4746#issuecomment-2708869202 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2} + --force-fallback-for=libdisplay-info # system's is ELF (unusable) + $(meson_use {,enable_}d3d8) + $(meson_use {,enable_}d3d9) + $(meson_use {,enable_}d3d10) + $(meson_use {,enable_}d3d11) + $(meson_use {,enable_}dxgi) + $(usev strip --strip) # portage won't strip .dll, so allow it here + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_dxvk.sh + dodoc README.md dxvk.conf + + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was" + elog "removed upstream, handling may change in the future." + fi + + if use d3d8 && ver_replacing -lt 2.4; then + elog + elog ">=${PN}-2.4 now provides d3d8.dll, to make use of it will need to" + elog "update old wine prefixes which is typically done by re-running:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + fi +} diff --git a/app-emulation/firecracker-bin/Manifest b/app-emulation/firecracker-bin/Manifest index 62822f5ab37c..cada3cf15fa4 100644 --- a/app-emulation/firecracker-bin/Manifest +++ b/app-emulation/firecracker-bin/Manifest @@ -1,6 +1,4 @@ -DIST firecracker-v1.15.1-aarch64.tgz 7422699 BLAKE2B 253ec53eb13f825db7ee1c5cff4ea57c27bb1549e55eace7cc2147d3d9b32244ddc023eebeba565d27a611a72aaab8695d0e3752414e53c85a9a20a5ba986ecf SHA512 685e2d87e37ffab3b2d6df99a429f8a22c9381c45788d3b8f98b6f6e94dd8af01a89e3a04e48e5bc98986f4a880b0e8867785b2409760fd934710e86de016b1a -DIST firecracker-v1.15.1-x86_64.tgz 7622285 BLAKE2B fa14cadb53998ac95997ddc5951464842de0b59f96bf2e71ab7777becc5248a27ad2722a348b3733d09b5ecf5afbbcaa08c099c5071c4a05d3bb985619784bb7 SHA512 2dea44f530af116b442daf339a6da9af7ba4ee924313aaa8c781051b8141fb9a5d6606da0f1c2cf5498da36b8cfd3ee86b9cac573e66afacbd4bb7a66b2dd559 -DIST firecracker-v1.16.0-aarch64.tgz 7307463 BLAKE2B fa21e6ba039fb0550edeaf2212ccffb64a11e1a034df5fba5db7a20bdc9eaef154b5bf879775100e986e0cb31ad5a77b1a16adcf24f4fba0768615d0e212ab47 SHA512 584b4bf7e68872bd15ff009fb545b5f0af56004f1c9dcf571b177aad60897d9c39fe9b6829f8d172732743e9a58ae94bbdc880bb7e38a0dd51a37e6331810136 -DIST firecracker-v1.16.0-x86_64.tgz 7483651 BLAKE2B 9e83852b5c6a036ddc9bd1a693d2015544e752a69ac30a3510fe2006be82fc166ce9c4a76f7771ff8863ad9570d40596e99dd9f3ee85a9fbb24b35c04593f070 SHA512 b150ab84d3c61d8df30929b3027055a897ab92e614ddc97c885644a199e704751b4d3bc80827162508e64699ce1d59854b0ce0e95a0b0ba6eae572ba67ee3627 DIST firecracker-v1.16.1-aarch64.tgz 7310680 BLAKE2B f8f8a7cee96bad8725cfeedf5486f11c1e6a6d8de7e320a27d75b971f9b6d771ac89b317d90c01a50d395598ee5f5c02c2cee89c18d2471afcb57a8b66c9b457 SHA512 0dd280dde663aaa7a78d3c4e97ff8d82f2c6151d750eb28fe43f543f67761ba06623ae20228d694a4b29c9bd0c6d39d0add9a7267a860bc92ce4dfdac160bcd0 DIST firecracker-v1.16.1-x86_64.tgz 7486686 BLAKE2B 315c1e27d7026ced51cbb7bfdca588f70024922b20d0ce49eef856954355eb4fc8044ae2c4e8cfa274c6c5baa945d70a7050f4bca6988996c9e5624fce7a944c SHA512 f53d26ea01a68d6eeaeaed5d01ae8c86eecc388d2114f3cc839043a879501e7a4829c029d1dbffd6fdf801af9653116abcc58f70bacf5c9fe7f3fee2701a47c9 +DIST firecracker-v1.17.0-aarch64.tgz 7294031 BLAKE2B d7c2e2b33279f79c73063dcb792e2bb71865e5ac69ee4f3ea52bec799feb5cbf9b5ce2f4bb9f7f211c3783446d3c13016f4f98bf9f584513b96f0ef0c4d57712 SHA512 31db2bb971b5c7c8239afa1b5c94f7da12dda15254de3b0480457bf48d7e6a0fd804fe82cc80240698d6934e18363a39014356e55836320b3b36a2d0365a6ccf +DIST firecracker-v1.17.0-x86_64.tgz 7464385 BLAKE2B 904b0e1d1b2664ff99bcddfa0dff015c19c2b259e493e4288e58cae7ec6ea4275a095d85b387881f4fa16fbca9d12ce285b8e3908f3ededb39315a36b9f68739 SHA512 099c20b2a7ad79ab4dbd2e0e3a14b746cc33123f4b0615585ea5749f6243a89a2cd348aef600d88a9ec00788b45d49ef6fe184daf85586453ec28656ed45e5f8 diff --git a/app-emulation/firecracker-bin/firecracker-bin-1.16.0.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.16.0.ebuild deleted file mode 100644 index 20eb7212cfa8..000000000000 --- a/app-emulation/firecracker-bin/firecracker-bin-1.16.0.ebuild +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright 2021-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit linux-info - -DESCRIPTION="Secure and fast microVMs for serverless computing (static build)" -HOMEPAGE="https://firecracker-microvm.github.io https://github.com/firecracker-microvm/firecracker" -SRC_URI=" - amd64? ( - https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64.tgz - ) - arm64? ( - https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64.tgz - )" - -S="${WORKDIR}" - -LICENSE="|| ( Apache-2.0 MIT Apache-2.0-with-LLVM-exceptions ) MPL-2.0" -SLOT="0" -KEYWORDS="~amd64 ~arm64" - -RESTRICT="test strip" - -RDEPEND="acct-group/kvm" - -QA_PREBUILT="usr/bin/cpu-template-helper - usr/bin/firecracker - usr/bin/jailer - usr/bin/rebase-snap - usr/bin/seccompiler-bin - usr/bin/snapshot-editor" - -pkg_pretend() { - if use kernel_linux && kernel_is lt 4 14; then - eerror "Firecracker requires a host kernel of 4.14 or higher." - elif use kernel_linux; then - if ! linux_config_exists; then - eerror "Unable to check your kernel for KVM support" - else - CONFIG_CHECK="~KVM ~TUN ~BRIDGE" - ERROR_KVM="You must enable KVM in your kernel to continue" - ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in" - ERROR_KVM_AMD+=" your kernel configuration." - ERROR_KVM_INTEL="If you have an Intel CPU, you must enable" - ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration." - ERROR_TUN="You will need the Universal TUN/TAP driver compiled" - ERROR_TUN+=" into your kernel or loaded as a module to use" - ERROR_TUN+=" virtual network devices." - ERROR_BRIDGE="You will also need support for 802.1d" - ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." - - if use amd64; then - if grep -q AuthenticAMD /proc/cpuinfo; then - CONFIG_CHECK+=" ~KVM_AMD" - elif grep -q GenuineIntel /proc/cpuinfo; then - CONFIG_CHECK+=" ~KVM_INTEL" - fi - fi - - # Now do the actual checks setup above - check_extra_config - fi - fi -} - -src_compile() { :; } - -src_install() { - local my_arch - if use amd64; then - my_arch=x86_64 - elif use arm64; then - my_arch=aarch64 - fi - - dodoc "release-v${PV}-${my_arch}/firecracker_spec-v${PV}.yaml" - dodoc "release-v${PV}-${my_arch}/seccomp-filter-v${PV}-${my_arch}.json" - - newbin "release-v${PV}-${my_arch}/cpu-template-helper-v${PV}-${my_arch}" cpu-template-helper - newbin "release-v${PV}-${my_arch}/firecracker-v${PV}-${my_arch}" firecracker - newbin "release-v${PV}-${my_arch}/jailer-v${PV}-${my_arch}" jailer - newbin "release-v${PV}-${my_arch}/rebase-snap-v${PV}-${my_arch}" rebase-snap - newbin "release-v${PV}-${my_arch}/seccompiler-bin-v${PV}-${my_arch}" seccompiler-bin - newbin "release-v${PV}-${my_arch}/snapshot-editor-v${PV}-${my_arch}" snapshot-editor -} diff --git a/app-emulation/firecracker-bin/firecracker-bin-1.15.1.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.17.0.ebuild index 20eb7212cfa8..20eb7212cfa8 100644 --- a/app-emulation/firecracker-bin/firecracker-bin-1.15.1.ebuild +++ b/app-emulation/firecracker-bin/firecracker-bin-1.17.0.ebuild diff --git a/app-emulation/libvirt/libvirt-12.2.0.ebuild b/app-emulation/libvirt/libvirt-12.2.0.ebuild index a2fa2a9515fe..3b7d50cdc9a4 100644 --- a/app-emulation/libvirt/libvirt-12.2.0.ebuild +++ b/app-emulation/libvirt/libvirt-12.2.0.ebuild @@ -22,7 +22,7 @@ if [[ ${PV} = *9999* ]]; then else SRC_URI="https://download.libvirt.org/${P}.tar.xz verify-sig? ( https://download.libvirt.org/${P}.tar.xz.asc )" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" + KEYWORDS="amd64 ~arm arm64 ppc64 x86" fi DESCRIPTION="C toolkit to manipulate virtual machines" diff --git a/app-eselect/eselect-ctags/Manifest b/app-eselect/eselect-ctags/Manifest index 8ffa155f48c4..3170aedbb2b3 100644 --- a/app-eselect/eselect-ctags/Manifest +++ b/app-eselect/eselect-ctags/Manifest @@ -1 +1,2 @@ DIST eselect-emacs-1.19.tar.xz 9072 BLAKE2B 6921200085df464bac84510bea414a3c68ef978999d9f49cef9d059e0391d237506bdb35c3379a810307dbc188bba1062ff08c9136d2b331c4aa299cca91befd SHA512 269c7ab5402f2507255c36c62f036a9daddaaf9ee399e2566ecd819c8bec234177a274ebcf397414050f9adfd2c61fde64e22bab0f6dc7e03f7b8a54e38564b0 +DIST eselect-emacs-1.20.tar.xz 9180 BLAKE2B 0975db9314fddcaba157af00cdda5ff55c28f884b2576edcd4a0afaa99bf1cfefd0256c4f540df311147210a4eb1532098667024998cef210d46489191cbf69b SHA512 43c743157490774199b40265b1fb3b2b59d91d3b20a181215d19260b5c7df74d3d02e494ae72f519e0d23acf18825600182c3d737364d37f338eb557fa9f0796 diff --git a/app-eselect/eselect-ctags/eselect-ctags-1.20.ebuild b/app-eselect/eselect-ctags/eselect-ctags-1.20.ebuild new file mode 100644 index 000000000000..d4d90e759580 --- /dev/null +++ b/app-eselect/eselect-ctags/eselect-ctags-1.20.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +MY_P="eselect-emacs-${PV}" +DESCRIPTION="Manages ctags implementations" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Emacs" +SRC_URI="https://distfiles.gentoo.org/pub/proj/emacs/${MY_P}.tar.xz" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" + +RDEPEND=">=app-admin/eselect-1.2.3" + +src_install() { + insinto /usr/share/eselect/modules + doins {ctags,etags}.eselect + doman {ctags,etags}.eselect.5 +} diff --git a/app-eselect/eselect-emacs/Manifest b/app-eselect/eselect-emacs/Manifest index 8ffa155f48c4..3170aedbb2b3 100644 --- a/app-eselect/eselect-emacs/Manifest +++ b/app-eselect/eselect-emacs/Manifest @@ -1 +1,2 @@ DIST eselect-emacs-1.19.tar.xz 9072 BLAKE2B 6921200085df464bac84510bea414a3c68ef978999d9f49cef9d059e0391d237506bdb35c3379a810307dbc188bba1062ff08c9136d2b331c4aa299cca91befd SHA512 269c7ab5402f2507255c36c62f036a9daddaaf9ee399e2566ecd819c8bec234177a274ebcf397414050f9adfd2c61fde64e22bab0f6dc7e03f7b8a54e38564b0 +DIST eselect-emacs-1.20.tar.xz 9180 BLAKE2B 0975db9314fddcaba157af00cdda5ff55c28f884b2576edcd4a0afaa99bf1cfefd0256c4f540df311147210a4eb1532098667024998cef210d46489191cbf69b SHA512 43c743157490774199b40265b1fb3b2b59d91d3b20a181215d19260b5c7df74d3d02e494ae72f519e0d23acf18825600182c3d737364d37f338eb557fa9f0796 diff --git a/app-eselect/eselect-emacs/eselect-emacs-1.20.ebuild b/app-eselect/eselect-emacs/eselect-emacs-1.20.ebuild new file mode 100644 index 000000000000..b54eab07f607 --- /dev/null +++ b/app-eselect/eselect-emacs/eselect-emacs-1.20.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +DESCRIPTION="Manage multiple Emacs versions on one system" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Emacs" +SRC_URI="https://distfiles.gentoo.org/pub/proj/emacs/${P}.tar.xz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + +RDEPEND=">=app-admin/eselect-1.2.6 + ~app-eselect/eselect-ctags-${PV}" + +src_compile() { :; } + +src_install() { + insinto /usr/share/eselect/modules + doins {emacs,gnuclient}.eselect + doman {emacs,gnuclient}.eselect.5 + dodoc ChangeLog +} + +pkg_postinst() { + if ver_replacing -lt 1.19; then + # Refresh, 1.19 introduced a symlink in /usr/include + local target=$(eselect --brief emacs show) + [[ ${target// } == emacs* ]] && eselect emacs set "${target// }" + fi +} diff --git a/app-misc/qlcplus/Manifest b/app-misc/qlcplus/Manifest index 032311b64da7..423100d2477c 100644 --- a/app-misc/qlcplus/Manifest +++ b/app-misc/qlcplus/Manifest @@ -1 +1 @@ -DIST QLC+_4.14.3.tar.gz 12417429 BLAKE2B a7146c2d63edd051beaf6afa6f8cda77f04985b868b508de173057e87d9ff7714e278e2ad08ab3f09046f5821add24e36be42d651c5d038fc32c3f1e430a33f9 SHA512 c379596197f6e7b7e7955dd718bb62af3511c7c856bd5967c44417785de2345f78f1bf0a65ed70ee0c8a084fa80471721e2ac6ebb00631ba6fedaa6ab4e140de +DIST QLC+_4.14.4.tar.gz 12703615 BLAKE2B 16012cc44a1b9e1e03bea2eb0c2648710eb8b268e863f92df0ad550c7c94d18232009ce9a28ef8f5601967f8b6d999cbb963a3fb18179ebc28ccca666d400c4f SHA512 aa6159adf803154dec2834fedeb2b1633d5c5f411d6b0f2f5798596f73a837346c9981ec329cfc9a2de899dc572988a5b8560a4906be5e4a12ceea64fce4e330 diff --git a/app-misc/qlcplus/qlcplus-4.14.3.ebuild b/app-misc/qlcplus/qlcplus-4.14.4.ebuild index 87c3bbc368f4..d0162e0fc424 100644 --- a/app-misc/qlcplus/qlcplus-4.14.3.ebuild +++ b/app-misc/qlcplus/qlcplus-4.14.4.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit cmake udev xdg +inherit cmake qmake-utils udev xdg DESCRIPTION="A software to control DMX or analog lighting systems" HOMEPAGE="https://www.qlcplus.org/" @@ -56,6 +56,16 @@ src_prepare() { ## the CMakeLists file sed -e "s| Qt5 | |g" -e "s|\${QT_VERSION_MAJOR}|6|g" \ -i CMakeLists.txt || die + + ## QLC+ uses "-Werror" by default. Might be nice for + ## development but doesn't make sense when building locally + sed -e '\|-Werror|s|^|#|g' -i variables.cmake || die + + ## translate.sh searches lrelease and lupdate in $PATH. This worked for + ## Qt5 but will fail for Qt6. Let us tell them where they are + sed -e "s|^\(LRELEASE=\).*|\1\"$(qt6_get_bindir)/lrelease\"|" \ + -e "s|^\(LUPDATE=\).*|\1\"$(qt6_get_bindir)/lupdate\"|" \ + -i translate.sh || die } pkg_postinst() { diff --git a/app-misc/siegfried/Manifest b/app-misc/siegfried/Manifest index 7e1616ca6916..1940654e5dfc 100644 --- a/app-misc/siegfried/Manifest +++ b/app-misc/siegfried/Manifest @@ -4,3 +4,6 @@ DIST siegfried-1.11.6.gh.tar.gz 12521626 BLAKE2B 3ff14b6d3707628fde7877f20b9d406 DIST siegfried-1.11.7-data.zip 13080907 BLAKE2B a912cd0b8d04c08c9a3dc4e88ecf7f16c0d5ce6f002d0298bed0fa87fd2484b0c7f6b7bd8be35ae53629af3f394c0f8dd593a689276971e09b9fad00e8a491cb SHA512 c13ed15361e3ad6e772050132cc4df7bee383f0982a842a158b5bdd8d11cc1f0ef62464825cdd86f0c30fe47a8fbbd7e0b6b77f9d8811cffc7160b413ee2cf39 DIST siegfried-1.11.7-deps.tar.xz 12398180 BLAKE2B 14735a4e9e2904c561c35484702f899274ca31e4c80b651524e78abc0ccc2c3c984e09ce1fc0f9515e20bf539b88a32859f768d5c9b29c61feac0ca3c424aefd SHA512 170d6936da3524307af54b6dcfaa9cdb5c5a6cb99f25af8186a8a43e9b92e7d0664034b1bcec232c1784905c7316fa4014ff86d28e93d1f194bea1cd43267f3f DIST siegfried-1.11.7.gh.tar.gz 12447650 BLAKE2B 29ef432689fff9b1f71d1cfd2f8a6e14dd3770e2609c22f4a565bf4900e564fe6a0526a9f89c77f5912306c5b1670b99ee12d6fe76c9c4d5d4410f607ec8032c SHA512 221229bbeb0fbf31d0b3e5f8f6fccfb0fd3c3882076377328d840d9490b3006dfbcbe061b1c64fc0da8fe4476bd0d0f6338d5e7abf1fe7400cd91362c8d2f7c1 +DIST siegfried-1.11.8-data.zip 13077492 BLAKE2B d0b857035ea2f94554375cde408df04d040712ce1fc257e9474fe2d1d025839f4bb2261f859d74e200e2f036e635216abfde630d0bc915e2936333bdd4ecf28a SHA512 4a1ac20ba20348ad4f46f9303ee04878cf48641efcb504b63107ba5be7a25370af74c630be0484480cb206f1fdffa9c4aa863996675edf48feb1a2f6819e8cb1 +DIST siegfried-1.11.8-deps.tar.xz 12400620 BLAKE2B d22335ef1381df0ba19dc080df24241b6e2f55d1cb0a3bfb6cbc50430db1973964aa280273320c4a3b18b10abadfe9e9a29e1185e742b668cb6aeb36fba4fff6 SHA512 53a9fa97884878712344e8005462300c5f2d726138ae22fef5ce4093abf6f9f467e2a6608c36780d1dfb96eb28b48981b0054628ca17e6d2a55b34d71b57c1e2 +DIST siegfried-1.11.8.gh.tar.gz 12444005 BLAKE2B 63f2a394d0eb39ddaebfddc0266a8ddf5066f147206739b1304f52e753286b0bf87a2b7e34699e06d8faf5889a0a631d111cad64835b43e7be2b39265cae9b75 SHA512 a5b56f0c93ccc6eb27bbe6fcec8b74a81edff5c7cc91ccbbfd8ec244789ece6cfc31b9184a088f6d44b7a18fb5e1e69b5b23314e1258b144b6a26c1ee7538e63 diff --git a/app-misc/siegfried/siegfried-1.11.8.ebuild b/app-misc/siegfried/siegfried-1.11.8.ebuild new file mode 100644 index 000000000000..a6e6c063b843 --- /dev/null +++ b/app-misc/siegfried/siegfried-1.11.8.ebuild @@ -0,0 +1,51 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit go-module + +MY_P=${P/_/-} +DESCRIPTION="Signature-based file format identification" +HOMEPAGE=" + https://www.itforarchivists.com/siegfried/ + https://github.com/richardlehane/siegfried/ +" +SRC_URI=" + https://github.com/richardlehane/siegfried/archive/v${PV/_/-}.tar.gz + -> ${MY_P}.gh.tar.gz + https://github.com/richardlehane/siegfried/releases/download/v${PV/_/-}/data_${PV//[._]/-}.zip + -> ${MY_P}-data.zip + https://github.com/gentoo-golang-dist/siegfried/releases/download/v${PV}/${P}-deps.tar.xz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +# vendored deps +LICENSE+=" BSD" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + !app-misc/dfshow +" +BDEPEND=" + >=dev-lang/go-1.26.0:= +" + +src_compile() { + go build -v -work -x "${S}"/cmd/roy || die + go build -v -work -x "${S}"/cmd/sf || die +} + +src_test() { + cp "${WORKDIR}/siegfried/fddXML.zip" cmd/roy/data || die + go test -v "${S}"/cmd/roy || die + go test -v "${S}"/cmd/sf || die +} + +src_install() { + dobin roy sf + insinto /usr/share/siegfried + doins "${WORKDIR}/siegfried/default.sig" +} diff --git a/app-misc/yq/yq-4.1.2-r1.ebuild b/app-misc/yq/yq-4.1.2-r1.ebuild index 68db9670658d..50a47c0a1518 100644 --- a/app-misc/yq/yq-4.1.2-r1.ebuild +++ b/app-misc/yq/yq-4.1.2-r1.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~loong ~x86" +KEYWORDS="amd64 arm64 ~loong x86" IUSE="test +yq-symlink" RESTRICT="!test? ( test )" diff --git a/app-shells/bash/Manifest b/app-shells/bash/Manifest index b9a7f261952a..61f78a95cb44 100644 --- a/app-shells/bash/Manifest +++ b/app-shells/bash/Manifest @@ -479,3 +479,13 @@ DIST bash53-014 2229 BLAKE2B cb525fe154e792c467e06f0d930a09466f6f3cf5a688bf13abd DIST bash53-014.sig 123 BLAKE2B 844560e7c4e1cc3335c1abe93391488cafa3338c69f67e51f49ce49cecdabf03be5c9e2d6c8b31b0dab2a52558f8ba5cde33841bba4b7a8c5688b0ca6d812e57 SHA512 bbf798db784109068d8fdc9e4e0bef4f6d12449b92efece20b157442bc959d39a595fb567784ef77b9cae9f1cd93204c49a4e163ca1b84408dbcf1b3eb25c24a DIST bash53-015 2151 BLAKE2B 5d333c73b891910df4bf13c28fa0cc493dcadadb5c51a240501c5ab450b83673d75baece5c8112b937520cacfc726248ede1d30dba6b60075b88408b585b9f3f SHA512 812fbffd1b755cc9bbf730a4632f68a573351c4eeb5a4f495fa8f2f4dd7dbe1587dd22aed0f9c4d5c941130489ecc3def96068c77cc142680326ba8785862432 DIST bash53-015.sig 123 BLAKE2B 5e6c7ca967594097aef625a9146654867715dd850ca2116d46a0d3f5f31c8fbd0028c02d6b0dc9be9014710762f9a28506d8bbd6597c113b8bcd341d98e9a2c0 SHA512 33802e00732d4846c83da5fe178d5efb1f140adab510ff2d8135c70ee106e1204bffe7176ed0c244c870084c527ae76921793ace6ad80c7900662ccbd5d2ed07 +DIST bash53-016 4185 BLAKE2B 42c5f37c53609fe672956d55be1e26720e4b96715982b221350f60d01faeac61322839cc34b419915aa838945c7b5fba5bfbf1e5635d1fd65ae7b24fba99d574 SHA512 e18aed683aca1af8a92f955a0ad32a23ee22f982e1bec9ea4c078a8523b30e4848fd9dc4d863cb14d1fce25bf9fdbde2473d9c0686e8be25be113cb5a36cb462 +DIST bash53-016.sig 123 BLAKE2B 72cea3ea0dab5709bcd29bb601ea1cd00d861fc698da2bdf8d826a79e081fc913f6a8ec3ada0f4b280ddd891ab2d5ffcf17c4a111226e0b4d8163583e598fddf SHA512 67c7527014441138ab9edd1926bb1e45264c725ec336aef096f0df89b95c0d8ceb30b9f6583812860537f9901842ae27f2d6cd487ddecde0d6f5b1655cf26448 +DIST bash53-017 2229 BLAKE2B 1420ec8d92896a57e4aabf7f2bff32d2e13363d4e6031f0cfb2812f6baa5e4ed67d02110d431849c6d9003bb460ad458557278783786d9c7ec9fda7ea858572e SHA512 608245b580267e33ffa3ed02de7173a07594a9831e3b6a505bc6fa68570e3839663bad39552744ec61421179b000dc2584f48cbadb232fc2c1427871c899a1ad +DIST bash53-017.sig 123 BLAKE2B 610c2e2ebf8341624c9a51bdaa9f34cd4d1a24811e068399ebf0fe472be2ee493c5e428d02379338a2f658f6ca41cd1038c6a7d49008908d81c333ff61965bef SHA512 84dbec0aeca5e3613b9c02e8ccad56eb385480d3a5cc748e8b8d3dd33ac0fa1f3c92c6f342ddbede8f544092e6c88748dd77eef70895b16d15023855e8386fb5 +DIST bash53-018 2660 BLAKE2B 6171f26a58db132d0705b27e0195f58b9fb71df8a46bfba309201ea9f2a2dfa0489ee9279ce7ba6f74733e6e8adad063435a6141d660f5287132bc4f4dd4333d SHA512 5a15dfb3dafddea9a62ef5d552660d425d0658a8254adabeed5c993264b6ac59f670e6a47e6847ef6598d60e553e834a08e09dfca3734ae119dcd7d36dca97d1 +DIST bash53-018.sig 123 BLAKE2B 7d11877a0c33718bc5c43d016a9972ba70b90f21b9b582b0b58493f5fbf5f15dd2167dfc731cae1567c91895cdaef704191a53a1642b47740ae86dcb0d27046e SHA512 08f58263ac3c9d6fe51e01f9af87268b3b73c3fe15ebd4a34b0deb946a6e93f0191e9d7f2b0419700d0b4a26f5c891db1685c9361694528c8d0e06d47444f698 +DIST bash53-019 5061 BLAKE2B e22297d57a7822fbe7faecd5fd44b221855a281c79b97feb7633677c9ab7cd10b63f7670ac534bee606e9f4272da9bdf1cda0588d737ad8c6fea179672e54060 SHA512 fecb787bf5b0c6589d5c891c8df205e39a83330e36dcb685a01ff1e117074db5288b22e7dfd3d4e9096267cc80decefd16d6837e4dd99bae26fdf3b6f9814c7c +DIST bash53-019.sig 123 BLAKE2B 4c06ea904325e415cbfdf88254ffd1dfaa16c2085a0b95ef3ca89da630d44bbee04a0e0d8e1ab447768d7c60a3694adf110c58d20bb430ac196dd5f344d712f6 SHA512 1fa1a5111a5ba45cea901c4359b7edf02c9634e19501b04c7c8d7b90b8d5d7ddc46a005c3f7b7ec0cd3393c678938b820801d01b9811fd907929fc709217dc8c +DIST bash53-020 1591 BLAKE2B dc01513a3d4b6bf30f1b1d6d549dd21bc05231848d325b53336970f3ed7984b6344f51c7af803fb8f99a430548137cae9672c939f928c916a83368b79e9af516 SHA512 64e34979fb20cab2e6b38bcd9ec470cb917de3ef2d53db7c96c71fb5245083e37d9c65a6c2935164da2b6dc97116e4210366b8253bdd7a201f618770a44135ab +DIST bash53-020.sig 123 BLAKE2B 1b3801ab8a8af7fd5ed4514329497e5663d3a14d9c35aa91c2726ad3e25f4707b5502dd9697b86985ec050f57ea3d0fd4ae1206d9f05da4f88887e4233fe441e SHA512 6087449d8ad6f96f40fc166b9c5e838385f5538f5598545bfb5e3fa718161c0f41eb139e6ee1b9fa5fb5085007daa59b3afc7e065edda474777292517d4fe7b1 diff --git a/app-shells/bash/bash-5.3_p20.ebuild b/app-shells/bash/bash-5.3_p20.ebuild new file mode 100644 index 000000000000..214a8bf8bc04 --- /dev/null +++ b/app-shells/bash/bash-5.3_p20.ebuild @@ -0,0 +1,486 @@ +# 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/chetramey.asc +inherit flag-o-matic toolchain-funcs prefix verify-sig + +# Uncomment if we have a patchset. +#GENTOO_PATCH_DEV="sam" +#GENTOO_PATCH_VER="${PV}" + +MY_PV=${PV/_p*} +MY_PV=${MY_PV/_/-} +MY_P=${PN}-${MY_PV} +MY_PATCHES=() + +# Determine the patchlevel. See https://ftp.gnu.org/gnu/bash/bash-5.3-patches/. +case ${PV} in + 9999|*_alpha*|*_beta*|*_rc*) + # Set a negative patchlevel to indicate that it's a pre-release. + PLEVEL=-1 + if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then + BASH_COMMIT= + fi + ;; + *_p*) + PLEVEL=${PV##*_p} + ;; + *) + PLEVEL=0 +esac + +# The version of readline this bash normally ships with. Note that we only use +# the bundled copy of readline for pre-releases. +READLINE_VER="8.3" + +DESCRIPTION="The standard GNU Bourne again shell" +HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" + EGIT_BRANCH=devel + inherit git-r3 +elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then + # It can be useful to have snapshots in the pre-release period once + # the first alpha is out, as various bugs get reported and fixed from + # the alpha, and the next pre-release is usually quite far away. + # + # i.e. if it's worth packaging the alpha, it's worth packaging a followup. + SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" + S=${WORKDIR}/${PN}-${BASH_COMMIT} +else + my_urls=( "mirror://gnu/bash/${MY_P}.tar.gz" ) + + # bash-5.1 -> bash51 + my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.} + + for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do + printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}" + my_urls+=( "mirror://gnu/bash/${MY_P}-patches/${my_patch_ver}" ) + MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" ) + done + + SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )" + S=${WORKDIR}/${MY_P} + + unset -v my_urls my_p my_patch_idx my_patch_ver +fi + +if [[ ${GENTOO_PATCH_VER} ]]; then + SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz" +fi + +LICENSE="GPL-3+" +SLOT="0" +if (( PLEVEL >= 0 )); then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi +IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" + +DEPEND=" + >=sys-libs/ncurses-5.2-r2:= + nls? ( virtual/libintl ) +" +if (( PLEVEL >= 0 )); then + DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )" +fi +RDEPEND=" + ${DEPEND} +" +# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011). +BDEPEND=" + pgo? ( dev-util/gperf ) + verify-sig? ( sec-keys/openpgp-keys-chetramey ) +" + +# EAPI 8 tries to append it but it doesn't exist here. +QA_CONFIGURE_OPTIONS="--disable-static" + +PATCHES=( + #"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/ + + # bug #971782 + "${FILESDIR}"/${PN}-5.3_p9-general-workaround-aliasing-violation-in-REVERSE_LIS.patch + + # bug #965423, bug #970713 + "${FILESDIR}"/${PN}-5.3_p9-pid-reuse.patch + + # Patches to or from Chet, posted to the bug-bash mailing list. + "${FILESDIR}"/${PN}-5.0-syslog-history-extern.patch +) + +pkg_setup() { + # bug #7332 + if is-flag -malign-double; then + eerror "Detected bad CFLAGS '-malign-double'. Do not use this" + eerror "as it breaks LFS (struct stat64) on x86." + die "remove -malign-double from your CFLAGS mr ricer" + fi + + if use bashlogger; then + ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs." + ewarn "This will log ALL output you enter into the shell, you have been warned." + fi +} + +src_unpack() { + local patch + + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then + default + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} + + for patch in "${MY_PATCHES[@]}"; do + verify-sig_verify_detached "${patch}"{,.sig} + done + fi + + unpack "${MY_P}.tar.gz" + + if [[ ${GENTOO_PATCH_VER} ]]; then + unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz" + fi + fi +} + +src_prepare() { + # Include official patches. + (( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}" + + # Prefixify hardcoded path names. No-op for non-prefix. + hprefixify pathnames.h.in + + # Avoid regenerating docs after patches, bug #407985. + sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \ + && touch -r . doc/* \ + || die + + # Sometimes hangs (more noticeable w/ pgo), bug #907403. + rm tests/run-jobs || die + + eapply -p0 "${PATCHES[@]}" + eapply_user +} + +src_configure() { + local -a myconf + + # Upstream only test with Bison and require GNUisms like YYEOF and + # YYERRCODE. The former at least may be in POSIX soon: + # https://www.austingroupbugs.net/view.php?id=1269. + # + # configure warns on use of non-Bison but doesn't abort. The result + # may misbehave at runtime. Chet also advises against use of byacc: + # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html + unset -v YACC + + if tc-is-cross-compiler; then + export CC_FOR_BUILD="$(tc-getBUILD_CC)" + # https://lists.gnu.org/archive/html/bug-bash/2025-05/msg00029.html + export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" + + if use kernel_Hurd ; then + # Necessary for cross-built bash for Hurd, otherwise + # config.status generation at end of configure will hang + # natively. + # + # https://lists.debian.org/debian-cross/2023/11/msg00000.html + # https://lists.gnu.org/archive/html/bug-bash/2024-11/msg00202.html + # https://lists.gnu.org/archive/html/bug-bash/2005-04/msg00074.html + cat <<-EOF > builtins/psize.sh || die + #!/bin/sh + echo "#define PIPESIZE 16384" + EOF + chmod +x builtins/psize.sh || die + fi + fi + + myconf=( + --disable-profiling + + # Force linking with system curses ... the bundled termcap lib + # sucks bad compared to ncurses. For the most part, ncurses + # is here because readline needs it. But bash itself calls + # ncurses in one or two small places :(. + --with-curses + + $(use_enable mem-scramble) + $(use_enable net net-redirections) + $(use_enable readline) + $(use_enable readline bang-history) + $(use_enable readline history) + $(use_with afs) + $(use_with mem-scramble bash-malloc) + ) + + # For descriptions of these, see config-top.h. + # bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426 + append-cppflags \ + -DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \ + -DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \ + -DDEFAULT_LOADABLE_BUILTINS_PATH=\'\""${EPREFIX}"/usr/local/$(get_libdir)/bash:"${EPREFIX}"/usr/$(get_libdir)/bash\"\' \ + -DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \ + -DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \ + -DNON_INTERACTIVE_LOGIN_SHELLS \ + -DSSH_SOURCE_BASHRC \ + $(use bashlogger && echo -DSYSLOG_HISTORY) + + use nls || myconf+=( --disable-nls ) + + if (( PLEVEL >= 0 )); then + # Historically, we always used the builtin readline, but since + # our handling of SONAME upgrades has gotten much more stable + # in the PM (and the readline ebuild itself preserves the old + # libs during upgrades), linking against the system copy should + # be safe. + # Exact cached version here doesn't really matter as long as it + # is at least what's in the DEPEND up above. + export ac_cv_rl_version=${READLINE_VER%%_*} + + # Use system readline only with released versions. + myconf+=( --with-installed-readline=. ) + fi + + if use plugins; then + append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash" + else + # Disable the plugins logic by hand since bash doesn't provide + # a way of doing it. + export ac_cv_func_dl{close,open,sym}=no \ + ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no + + sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die + fi + + # bug #444070 + tc-export AR + + econf "${myconf[@]}" +} + +src_compile() { + local -a pgo_generate_flags pgo_use_flags + local flag + + # -fprofile-partial-training because upstream notes the test suite isn't + # super comprehensive. + # https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo + if use pgo; then + pgo_generate_flags=( + -fprofile-update=atomic + -fprofile-dir="${T}"/pgo + -fprofile-generate="${T}"/pgo + ) + pgo_use_flags=( + -fprofile-use="${T}"/pgo + -fprofile-dir="${T}"/pgo + ) + if flag=$(test-flags-CC -fprofile-partial-training); then + pgo_generate_flags+=( "${flag}" ) + pgo_use_flags+=( "${flag}" ) + fi + fi + + emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" + use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others + + # Build Bash and run its tests to generate profiles. + if (( ${#pgo_generate_flags[@]} )); then + # Used in test suite. + unset -v A + + emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check + + if tc-is-clang; then + llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die + fi + + # Rebuild Bash using the profiling data we just generated. + emake clean + emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" + use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others + fi +} + +src_test() { + # Used in test suite. + unset -v A + + default +} + +src_install() { + local d f + + default + + my_prefixify() { + while read -r; do + if [[ $REPLY == *$1* ]]; then + REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"} + fi + printf '%s\n' "${REPLY}" || ! break + done < "$2" || die + } + + dodir /bin + mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die + dosym bash /bin/rbash + + insinto /etc/bash + doins "${FILESDIR}"/bash_logout + my_prefixify bashrc.d "${FILESDIR}"/bashrc-r2 | newins - bashrc + + insinto /etc/bash/bashrc.d + my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash + newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash + + insinto /etc/profile.d + doins "${FILESDIR}/profile.d/00-prompt-command.sh" + + insinto /etc/skel + for f in bash{_logout,_profile,rc}; do + newins "${FILESDIR}/skel/dot-${f}" ".${f}" + done + + if use plugins; then + exeinto "/usr/$(get_libdir)/bash" + set -- examples/loadables/*.o + doexe "${@%.o}" + + insinto /usr/include/bash-plugins + doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h} + fi + + if use examples; then + for d in examples/{functions,misc,scripts,startup-files}; do + exeinto "/usr/share/doc/${PF}/${d}" + docinto "${d}" + for f in "${d}"/*; do + if [[ ${f##*/} != @(PERMISSION|*README) ]]; then + doexe "${f}" + else + dodoc "${f}" + fi + done + done + fi + + # Install bash_builtins.1 and rbash.1. + emake -C doc DESTDIR="${D}" install_builtins + sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die + doman "${T}"/rbash.1 + + newdoc CWRU/changelog ChangeLog + dosym bash.info /usr/share/info/bashref.info +} + +pkg_preinst() { + if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then + mkdir -p -- "${EROOT}"/etc/bash \ + && mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \ + || die + fi +} + +pkg_postinst() { + local IFS old_ver ver + local -a versions + + # If /bin/sh does not exist, provide it. + if [[ ! -e ${EROOT}/bin/sh ]]; then + ln -sf -- bash "${EROOT}"/bin/sh || die + fi + + if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then + ewarn "The following file is no longer packaged and can safely be deleted:" + ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" + fi + + read -rd '' -a versions <<<"${REPLACING_VERSIONS}" + for ver in "${versions[@]}"; do + if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then + old_ver=${ver} + fi + done + + if [[ ! ${old_ver} ]]; then + return + fi + + { + if ver_test "${old_ver}" -ge "5.2" \ + && ver_test "${old_ver}" -ge "5.2_p26-r8" + then + : + elif ver_test "${old_ver}" -lt "5.2" \ + && ver_test "${old_ver}" -ge "5.1_p16-r8" + then + : + else + cat <<'EOF' +Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. + +Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the +characteristics of the operating environment, it may contain a command to set +the terminal's window title. Those who were already choosing to customise the +PROMPT_COMMAND variable are now advised to append their commands like so: + +PROMPT_COMMAND+=('custom command goes here') + +Gentoo no longer defaults to having bash set the window title in the case +that the terminal is controlled by sshd(8), unless screen is launched on the +remote side or the terminal reliably supports saving and restoring the title +(as alacritty, foot and tmux do). Those wanting for the title to be set +regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d +drop-in - to set PROMPT_COMMMAND like so: + +PROMPT_COMMAND=(genfun_set_win_title) + +Those who would prefer for bash never to interfere with the window title may +now opt out of the default title setting behaviour, either with the "unset -v +PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. +EOF + fi + + if ver_test "${old_ver}" -ge "5.3" \ + && ver_test "${old_ver}" -ge "5.3_p3-r3" + then + : + elif ver_test "${old_ver}" -lt "5.3" \ + && ver_test "${old_ver}" -ge "5.2_p37-r5" + then + : + else + cat <<'EOF' +The window title setting behaviour has been improved. It is now formatted as +"\u@\h \W", in accordance with the prompting mechanism of bash. For example, +after switching to the home directory, the current working directory will be +shown as the <tilde> character. + +The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the +use of the \W prompt string escape will prevail, with the current working +directory typically being shown as its basename. If set to 0 or greater, \w +will be used instead, which may be trimmed. This also means that the title +can be made to show the full path by setting PROMPT_DIRTRIM=0. + +For further information, run info '(bash)Bash Variables' or visit +https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. +EOF + fi + } \ + | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then + fmt -w "$(( COLUMNS - 3 ))" + else + cat + fi \ + | while read -r; do + ewarn "${REPLY}" + done +} diff --git a/app-shells/pwsh/Manifest b/app-shells/pwsh/Manifest index 17713e24b1ac..67f14487a9c5 100644 --- a/app-shells/pwsh/Manifest +++ b/app-shells/pwsh/Manifest @@ -40,6 +40,7 @@ DIST powershellget.2.2.5.nupkg 270249 BLAKE2B 15f040cbbca89db9a455791d14bf30959c DIST psreadline.2.4.5.nupkg 234360 BLAKE2B 660472d53b20afbcc4058588b56ae562a0b09adead904cbcbc439ab6e82a06b0525faf6933c41d00b41af2681f22b82630721714cf700a5f9000f68598addcdd SHA512 240d7487d21f9cef419fd4e04b613ade1c5c86ade37b357d5acbab8ec63d0c0b6bad1676aac11fd168abd0cfd0f4de4d1fdc1de3c1c48289b57b5a3f05d7222c DIST pwsh-7.6.3.repackaged.tar.xz 8922340 BLAKE2B a5492c39f2117a0fa97ab64fc6dae02b870a62b2f5a3dde26fbd206c53d5307fc1f98e898e15c7490105707ffbeb06a86b9c508e0d32de5a1a1bbb29865578b1 SHA512 3f43f3f4adc2f6d2622e0d156efbf3ff816c9c049cf23485d6764fd16e6158bb20e7699183abe9d47442adbf2b6959067e1cd358fbdf7c3e15ce519085473dbd DIST pwsh-7.6.5.repackaged.tar.xz 8924244 BLAKE2B 9e2ed14126a3ace0f4f411cc967ac0844cad64ca0352b372f5d008959d367957e763e39aa299ca19d76e1be8da0ad107167904f202d69b76918197e03ed126c1 SHA512 48c099200805d2d4dd1c4b2b9c7da1c48ce0215020dedb4a4d6eddf3ab4ca81e5271214ff41d1ec2de844beb2a3151f546c52142a0b7ac61d9d701d66a71d077 +DIST pwsh-7.6.6.repackaged.tar.xz 10109788 BLAKE2B d7c9ed0778d6b952da38525c59b0ce0dff58d2a79ae989271998a680cd006aa3332d19d7b44378aa270d3b4e9a5e0bce027f831d2f89eb6b7ae56fb835fb92bf SHA512 6a9b80cdf6418871bd99eefe392ede7cdeed4c12a399998a83de59de8073dd0bc68a1ec9296195353259597b65db61943ee553ebbc83d0de962fa1af02f5b188 DIST runtime.android-arm.runtime.native.system.io.ports.10.0.5.nupkg 51511 BLAKE2B 19f6bd3cd5b91987563e8fbaa12833cf981695e336efc104ed1cb327ed3e249f1cefa4579cb51908013f3df1c99d3ac94732cf26e9e327a1f3e46d5d7a28924c SHA512 200a765734a674784add2d3f92c44085736128d98e4ba39152a219200dc382e7a091d23329146f0177d927d4beb0c05427eee479bfaf9812d916958e6d16bceb DIST runtime.android-arm64.runtime.native.system.io.ports.10.0.5.nupkg 52574 BLAKE2B 754896848b2460694bda7d6e3c9e4878152c5a0545c92025be74e50fae48c500a3fa94efa773546e72d91c1a4a9938db484745a286ccf3beeb7543d5aef1e242 SHA512 d448f6d942a97497c700b157f44c941b72d1525f3048d99b43a4528ecd8703fe836175ed09e46e0766f25a725898289ee871ddd96229a17be1c634996bb6cd84 DIST runtime.android-x64.runtime.native.system.io.ports.10.0.5.nupkg 52829 BLAKE2B ccbfbfb65c0730f9ffb2d60e6c2b2acd2e4dd49210a59ab095269aaacad002a06527d43787c8bc0400248cf932896f4f78900a067386906b862f3d8e6ede2efe SHA512 34b7907109f5633697788681e1e88d05f186322aa316cc8d22ac736203a4198c7a3c669669d319b93b878e9668a7698799843730d407a04c009f87edd595fe39 diff --git a/app-shells/pwsh/pwsh-7.6.6.ebuild b/app-shells/pwsh/pwsh-7.6.6.ebuild new file mode 100644 index 000000000000..d9e4b335ba6b --- /dev/null +++ b/app-shells/pwsh/pwsh-7.6.6.ebuild @@ -0,0 +1,336 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# NOTICE: Before packaging we have to run "ResGen" and "GetDependencies". +# See: https://git.alpinelinux.org/aports/tree/community/powershell/APKBUILD +# The repackaged tarball contains some C# code generated by that subproject. + +EAPI=8 + +DOTNET_PKG_COMPAT="10.0" +NUGET_APIS=( + "https://api.nuget.org/v3-flatcontainer" + "https://www.powershellgallery.com/api/v2" +) +NUGETS=" +dotnetanalyzers.documentationanalyzers.unstable@1.0.0.59 +dotnetanalyzers.documentationanalyzers@1.0.0-beta.59 +humanizer.core@2.14.1 +json.more.net@2.1.1 +jsonpointer.net@5.3.1 +jsonschema.net@7.4.0 +markdig.signed@0.31.0 +markdig.signed@0.44.0 +microsoft.applicationinsights@2.23.0 +microsoft.bcl.asyncinterfaces@10.0.5 +microsoft.codeanalysis.analyzers@3.11.0 +microsoft.codeanalysis.analyzers@5.3.0 +microsoft.codeanalysis.common@5.0.0 +microsoft.codeanalysis.csharp@5.0.0 +microsoft.codecoverage@18.0.1 +microsoft.extensions.objectpool@10.0.0 +microsoft.extensions.objectpool@10.0.5 +microsoft.management.infrastructure.runtime.unix@3.0.0 +microsoft.management.infrastructure.runtime.win@3.0.0 +microsoft.management.infrastructure@3.0.0 +microsoft.net.test.sdk@18.0.1 +microsoft.netcore.platforms@1.1.2 +microsoft.powershell.markdownrender@7.2.1 +microsoft.powershell.native@700.0.0 +microsoft.security.extensions@1.4.0 +microsoft.testplatform.objectmodel@18.0.1 +microsoft.testplatform.testhost@18.0.1 +microsoft.win32.registry.accesscontrol@10.0.5 +microsoft.win32.systemevents@10.0.5 +microsoft.windows.compatibility@10.0.5 +netstandard.library@2.0.3 +newtonsoft.json@13.0.3 +newtonsoft.json@13.0.4 +runtime.android-arm.runtime.native.system.io.ports@10.0.5 +runtime.android-arm64.runtime.native.system.io.ports@10.0.5 +runtime.android-x64.runtime.native.system.io.ports@10.0.5 +runtime.android-x86.runtime.native.system.io.ports@10.0.5 +runtime.linux-arm.runtime.native.system.io.ports@10.0.5 +runtime.linux-arm64.runtime.native.system.io.ports@10.0.5 +runtime.linux-bionic-arm64.runtime.native.system.io.ports@10.0.5 +runtime.linux-bionic-x64.runtime.native.system.io.ports@10.0.5 +runtime.linux-musl-arm.runtime.native.system.io.ports@10.0.5 +runtime.linux-musl-arm64.runtime.native.system.io.ports@10.0.5 +runtime.linux-musl-x64.runtime.native.system.io.ports@10.0.5 +runtime.linux-x64.runtime.native.system.io.ports@10.0.5 +runtime.maccatalyst-arm64.runtime.native.system.io.ports@10.0.5 +runtime.maccatalyst-x64.runtime.native.system.io.ports@10.0.5 +runtime.native.system.data.sqlclient.sni@4.4.0 +runtime.native.system.io.ports@10.0.5 +runtime.osx-arm64.runtime.native.system.io.ports@10.0.5 +runtime.osx-x64.runtime.native.system.io.ports@10.0.5 +runtime.win-arm64.runtime.native.system.data.sqlclient.sni@4.4.0 +runtime.win-x64.runtime.native.system.data.sqlclient.sni@4.4.0 +runtime.win-x86.runtime.native.system.data.sqlclient.sni@4.4.0 +stylecop.analyzers.unstable@1.2.0.556 +stylecop.analyzers@1.2.0-beta.556 +system.buffers@4.6.1 +system.codedom@10.0.5 +system.collections.immutable@9.0.14 +system.componentmodel.composition.registration@10.0.5 +system.componentmodel.composition@10.0.5 +system.configuration.configurationmanager@10.0.5 +system.data.odbc@10.0.5 +system.data.oledb@10.0.5 +system.data.sqlclient@4.9.0 +system.data.sqlclient@4.9.1 +system.diagnostics.eventlog@10.0.5 +system.diagnostics.performancecounter@10.0.5 +system.directoryservices.accountmanagement@10.0.5 +system.directoryservices.protocols@10.0.5 +system.directoryservices@10.0.5 +system.drawing.common@10.0.5 +system.io.packaging@10.0.5 +system.io.ports@10.0.5 +system.management@10.0.5 +system.memory@4.6.3 +system.net.http.winhttphandler@10.0.5 +system.numerics.vectors@4.6.1 +system.reflection.context@10.0.5 +system.reflection.metadata@9.0.14 +system.runtime.caching@10.0.5 +system.runtime.compilerservices.unsafe@6.1.2 +system.security.cryptography.pkcs@10.0.10 +system.security.cryptography.pkcs@10.0.5 +system.security.cryptography.protecteddata@10.0.5 +system.security.cryptography.xml@10.0.0 +system.security.cryptography.xml@10.0.10 +system.security.cryptography.xml@10.0.5 +system.security.permissions@10.0.5 +system.servicemodel.http@10.0.652802 +system.servicemodel.http@8.1.2 +system.servicemodel.netframingbase@10.0.652802 +system.servicemodel.nettcp@10.0.652802 +system.servicemodel.nettcp@8.1.2 +system.servicemodel.primitives@10.0.652802 +system.servicemodel.primitives@8.1.2 +system.servicemodel.syndication@10.0.5 +system.serviceprocess.servicecontroller@10.0.5 +system.speech@10.0.5 +system.text.encoding.codepages@8.0.0 +system.threading.tasks.extensions@4.6.3 +system.web.services.description@8.1.2 +system.windows.extensions@10.0.5 +validation@2.6.68 +xunit.abstractions@2.0.3 +xunit.analyzers@1.18.0 +xunit.assert@2.9.3 +xunit.core@2.9.3 +xunit.extensibility.core@2.4.0 +xunit.extensibility.core@2.9.3 +xunit.extensibility.execution@2.4.0 +xunit.extensibility.execution@2.9.3 +xunit.runner.visualstudio@3.1.5 +xunit.skippablefact@1.5.61 +xunit@2.9.3 +xunitxml.testlogger@8.0.0 +" + +# Additional PowerShell Gallery modules. +NUGETV_MICROSOFT_POWERSHELL_ARCHIVE="1.2.6" +NUGETV_MICROSOFT_POWERSHELL_PSRESOURCEGET="1.2.0" +NUGETV_MICROSOFT_POWERSHELL_THREADJOB="2.2.0" +NUGETV_PACKAGEMANAGEMENT="1.4.8.1" +NUGETV_POWERSHELLGET="2.2.5" +NUGETV_PSREADLINE="2.4.5" +NUGETS+=" +microsoft.powershell.archive@${NUGETV_MICROSOFT_POWERSHELL_ARCHIVE} +microsoft.powershell.psresourceget@${NUGETV_MICROSOFT_POWERSHELL_PSRESOURCEGET} +microsoft.powershell.threadjob@${NUGETV_MICROSOFT_POWERSHELL_THREADJOB} +packagemanagement@${NUGETV_PACKAGEMANAGEMENT} +powershellget@${NUGETV_POWERSHELLGET} +psreadline@${NUGETV_PSREADLINE} +" + +inherit check-reqs desktop dotnet-pkg xdg-utils + +DESCRIPTION="Cross-platform automation and configuration tool" +HOMEPAGE="https://microsoft.com/powershell/ + https://github.com/PowerShell/PowerShell/" + +SRC_URI=" + https://dev.gentoo.org/~xgqt/distfiles/repackaged/${P}.repackaged.tar.xz + ${NUGET_URIS} +" + +LICENSE="MIT" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~amd64 ~arm ~arm64" +IUSE="gui vanilla" + +RDEPEND=" + >=dev-libs/libpsl-native-7.4.0:= + sys-libs/pam:0/0 + gui? ( + dev-util/desktop-file-utils + x11-misc/shared-mime-info + ) +" +DEPEND=" + ${RDEPEND} +" +IDEPEND=" + app-eselect/eselect-pwsh +" + +CHECKREQS_DISK_BUILD="2G" +PATCHES=( + "${FILESDIR}/pwsh-7.3.3-disable-update-check.patch" +) +DOTNET_PKG_PROJECTS=( + src/powershell-unix/powershell-unix.csproj + src/Modules/PSGalleryModules.csproj +) +DOTNET_PKG_RESTORE_EXTRA_ARGS=( + -p:"RollForward=Major" + -p:"RuntimeIdentifiers=" + -p:"TreatWarningsAsErrors=false" +) +DOTNET_PKG_BUILD_EXTRA_ARGS=( + "${DOTNET_PKG_RESTORE_EXTRA_ARGS[@]}" +) +DOCS=( + CHANGELOG CHANGELOG.md CODE_OF_CONDUCT.md README.md + docs +) + +check_requirements_locale() { + if [[ "${MERGE_TYPE}" != binary ]] ; then + if use elibc_glibc ; then + local locales="$(locale -a)" + + if has en_US.utf8 ${locales} ; then + LC_ALL="en_US.utf8" + elif has en_US.UTF-8 ${locales} ; then + LC_ALL="en_US.UTF-8" + else + eerror "The locale en_US.utf8 or en_US.UTF-8 is not available." + eerror "Please generate en_US.UTF-8 before building ${CATEGORY}/${P}." + + die "Could not switch to the en_US.UTF-8 locale." + fi + else + LC_ALL="en_US.UTF-8" + fi + + export LC_ALL + einfo "Successfully switched to the ${LC_ALL} locale." + fi +} + +pkg_pretend() { + check-reqs_pkg_pretend + check_requirements_locale +} + +pkg_setup() { + check-reqs_pkg_setup + dotnet-pkg_pkg_setup + check_requirements_locale +} + +src_prepare() { + if ! use vanilla ; then + PATCHES+=( + "${FILESDIR}/pwsh-7.5.0-disable-telemetry.patch" + ) + fi + + # This is guarded by "RegexGitVersion" in "PowerShell.Common.props". + local fake_describe="v${PV}-0-g0" + sed -e "s|git describe --abbrev=60 --long|echo ${fake_describe}|g" \ + -i ./PowerShell.Common.props || die + + echo "v${PV}" > ./powershell.version || die + dotnet-pkg_src_prepare +} + +src_compile() { + einfo 'Copying DLL files for the missing "ref" directory' + efsi "${FILESDIR}/pwsh-7.3.3-copy-ref.fsx" "${WORKDIR}/${P}_ref" + dotnet-pkg_src_compile +} + +src_test() { + local -a test_args=( + "${DOTNET_PKG_RESTORE_EXTRA_ARGS[@]}" + -p:"RuntimeIdentifier=${DOTNET_PKG_RUNTIME}" + "${S}/test/xUnit/xUnit.tests.csproj" + ) + dotnet-pkg-base_restore "${test_args[@]}" + dotnet-pkg-base_test "${test_args[@]}" +} + +src_install() { + local dest_root="/usr/share/${PN}-${SLOT}" + + # Install additional PowerShell Gallery modules. + local -a psg_modules=( + Microsoft.PowerShell.Archive + Microsoft.PowerShell.PSResourceGet + Microsoft.PowerShell.ThreadJob + PSReadLine + PackageManagement + PowerShellGet + ) + local psg_module="" + for psg_module in "${psg_modules[@]}" ; do + insinto "${dest_root}/Modules/${psg_module}" + doins -r "${NUGET_PACKAGES}/${psg_module,,}"/* + done + + dotnet-pkg-base_append_launchervar 'DOTNET_ROLL_FORWARD="Major"' + dotnet-pkg-base_append_launchervar 'PSModulePath="${PSModulePath}:${EPREFIX}/usr/share/GentooPowerShell/Modules:"' + dotnet-pkg-base_install "${dest_root}" + dotnet-pkg-base_dolauncher-portable "${dest_root}/pwsh.dll" "pwsh-${SLOT}" + + insinto "${dest_root}/ref" + doins "${WORKDIR}/${P}_ref"/* + + # Fix runtime config because we roll forward from .NET 9.0 into .NET >-10.0. + sed -i "${ED}/${dest_root}/pwsh.runtimeconfig.json" \ + -e "s|.*rollForwardOnNoCandidateFx.*||g" \ + || die "sed failed" + + # Replace "libpsl-native.so" provided by "microsoft.powershell.native". + rm "${ED}/${dest_root}/libpsl-native.so" || die + dosym -r "/usr/$(get_libdir)/libpsl-native.so" "${dest_root}/libpsl-native.so" + + # On musl remove "libSystem.IO.Ports.Native.so" linked against glibc. + if ! use elibc_glibc ; then + ewarn "libSystem.IO.Ports.Native.so is available only for glibc, removing it" + + rm -f "${ED}/${dest_root}/libSystem.IO.Ports.Native.so" || die + fi + + if use gui ; then + newicon ./assets/ps_black_128.svg "powershell-${SLOT}.svg" + make_desktop_entry "pwsh-${SLOT} -l" "PowerShell ${SLOT}" \ + "powershell-${SLOT}" "ConsoleOnly;System;" "Terminal=true" + fi + + einstalldocs +} + +pkg_postinst() { + if use gui ; then + xdg_icon_cache_update + xdg_desktop_database_update + fi + + eselect pwsh update ifunset +} + +pkg_postrm() { + if use gui ; then + xdg_icon_cache_update + xdg_desktop_database_update + fi + + eselect pwsh update ifunset +} diff --git a/app-text/lowdown/lowdown-3.1.1.ebuild b/app-text/lowdown/lowdown-3.1.1.ebuild index 588d2ae2d536..6bf86f357475 100644 --- a/app-text/lowdown/lowdown-3.1.1.ebuild +++ b/app-text/lowdown/lowdown-3.1.1.ebuild @@ -13,7 +13,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="ISC" SLOT="0/4" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="amd64 ~arm arm64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~sparc x86" DEPEND=" virtual/libcrypt:= diff --git a/app-text/poppler/poppler-26.03.0.ebuild b/app-text/poppler/poppler-26.03.0.ebuild index a5d5240900ea..248e6027e11f 100644 --- a/app-text/poppler/poppler-26.03.0.ebuild +++ b/app-text/poppler/poppler-26.03.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{11..15} ) inherit cmake flag-o-matic python-any-r1 toolchain-funcs xdg-utils if [[ ${PV} == *9999* ]] ; then @@ -59,6 +59,7 @@ BDEPEND=" ${PYTHON_DEPS} >=dev-util/glib-utils-2.64 virtual/pkgconfig + qt6? ( dev-qt/qtbase:6 ) " if [[ ${PV} != *9999* ]] ; then @@ -128,6 +129,7 @@ src_configure() { -DENABLE_UTILS=$(usex utils) ) use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) ) + use qt6 && tc-is-cross-compiler && mycmakeargs+=( -DQT_HOST_PATH="${BROOT}" ) cmake_src_configure } diff --git a/app-text/poppler/poppler-26.05.0-r1.ebuild b/app-text/poppler/poppler-26.05.0-r1.ebuild index b1de35af280f..da5f719ef10c 100644 --- a/app-text/poppler/poppler-26.05.0-r1.ebuild +++ b/app-text/poppler/poppler-26.05.0-r1.ebuild @@ -58,6 +58,7 @@ DEPEND="${COMMON_DEPEND} BDEPEND="${PYTHON_DEPS} >=dev-util/glib-utils-2.80 virtual/pkgconfig + qt6? ( dev-qt/qtbase:6 ) " if [[ ${PV} != *9999* ]] ; then @@ -128,6 +129,7 @@ src_configure() { -DENABLE_UTILS=$(usex utils) ) use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) ) + use qt6 && tc-is-cross-compiler && mycmakeargs+=( -DQT_HOST_PATH="${BROOT}" ) cmake_src_configure } diff --git a/app-text/poppler/poppler-9999.ebuild b/app-text/poppler/poppler-9999.ebuild index 7c2ffb08b62b..8d31a536ee3f 100644 --- a/app-text/poppler/poppler-9999.ebuild +++ b/app-text/poppler/poppler-9999.ebuild @@ -58,6 +58,7 @@ DEPEND="${COMMON_DEPEND} BDEPEND="${PYTHON_DEPS} >=dev-util/glib-utils-2.80 virtual/pkgconfig + qt6? ( dev-qt/qtbase:6 ) " if [[ ${PV} != *9999* ]] ; then @@ -127,6 +128,7 @@ src_configure() { -DENABLE_UTILS=$(usex utils) ) use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) ) + use qt6 && tc-is-cross-compiler && mycmakeargs+=( -DQT_HOST_PATH="${BROOT}" ) cmake_src_configure } diff --git a/app-text/qpdf/qpdf-12.4.1.ebuild b/app-text/qpdf/qpdf-12.4.1-r1.ebuild index 5d109d5d5e78..53711bba0a80 100644 --- a/app-text/qpdf/qpdf-12.4.1.ebuild +++ b/app-text/qpdf/qpdf-12.4.1-r1.ebuild @@ -22,8 +22,9 @@ SRC_URI=" LICENSE="|| ( Apache-2.0 Artistic-2 )" # Subslot for libqpdf soname version (just represent via major version) -SLOT="0/$(ver_cut 1)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +# XXX: .1 is a fudge for bug #981565, drop w/ >=qpdf-13 +SLOT="0/$(ver_cut 1).1" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="doc examples gnutls test zopfli" RESTRICT="!test? ( test )" diff --git a/app-xemacs/ebuild-mode/Manifest b/app-xemacs/ebuild-mode/Manifest index ea89db77e650..a4f58fc9e8da 100644 --- a/app-xemacs/ebuild-mode/Manifest +++ b/app-xemacs/ebuild-mode/Manifest @@ -1 +1,2 @@ DIST ebuild-mode-1.84.tar.xz 52864 BLAKE2B 915374ea20e9ba9d8a15a009a55ac081f33e0ac56395362a5b326464c25478a4cf3d16ff1144963aa13ca091cb2603d144fbe1c4f61c653a4456cf20c03c61f4 SHA512 d3218b4811e0b1f68f3f8e409e9fee825783923e6a4ad8cdcaa7f39d96580b2e7a5678814fc219992f0fe4c1dd1505c0abc725c2cec8ff251d6fbc2d9af9ef55 +DIST ebuild-mode-1.85.tar.xz 53428 BLAKE2B afc036a88cd82d8c1a6a5cb307b72938a906c62a4cb8ac4dd15d3cbd812751d8bc21a527574a862e7a0211bf349546cb26623894f6e1fb26171f6167582275f7 SHA512 eb09e11e7ad24a51e0fe478079e479ef1fd6760e992e09743b99942fe698a757be854dc10f6f6bd3ffe81040ff67ce19bca271e1aca37989ba4f7368f4d79f35 diff --git a/app-xemacs/ebuild-mode/ebuild-mode-1.85.ebuild b/app-xemacs/ebuild-mode/ebuild-mode-1.85.ebuild new file mode 100644 index 000000000000..041c6a40283b --- /dev/null +++ b/app-xemacs/ebuild-mode/ebuild-mode-1.85.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit optfeature + +if [[ ${PV} = 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/ebuild-mode.git" + EGIT_BRANCH="master" + EGIT_CHECKOUT_DIR="${WORKDIR}/${PN}" + S="${WORKDIR}/${PN}" +else + SRC_URI="https://distfiles.gentoo.org/pub/proj/emacs/${P}.tar.xz" + KEYWORDS="~amd64 ~hppa ~x86" +fi + +DESCRIPTION="Emacs modes for editing ebuilds and other Gentoo specific files" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Emacs" + +LICENSE="GPL-2+" +SLOT="0" + +RDEPEND=">=app-editors/xemacs-21.5.35 + app-xemacs/sh-script + app-xemacs/tty-format" +BDEPEND="${RDEPEND}" + +EMACS="${EPREFIX}/usr/bin/xemacs" +EMACSFLAGS="-batch -q -no-site-file" + +src_compile() { + ${EMACS} ${EMACSFLAGS} \ + -eval "(add-to-list 'load-path nil)" \ + -f batch-byte-compile \ + ebuild-mode.el gentoo-newsitem-mode.el || die + + ${EMACS} ${EMACSFLAGS} \ + -eval "(setq autoload-package-name \"${PN}\")" \ + -eval "(setq generated-autoload-file \"${S}/auto-autoloads.el\")" \ + -l autoload -f batch-update-autoloads \ + ebuild-mode.el gentoo-newsitem-mode.el || die +} + +src_test() { + emake check EMACS="${EMACS}" EMACSFLAGS="${EMACSFLAGS}" +} + +src_install() { + insinto /usr/lib/xemacs/site-packages/lisp/${PN} + doins ebuild-mode.{el,elc} ebuild-mode-keywords.el \ + gentoo-newsitem-mode.{el,elc} ebuild-mode-kw-gen.el \ + auto-autoloads.el +} + +pkg_postinst() { + optfeature "directory support" app-xemacs/dired + optfeature "ebuild commands support" sys-apps/portage + optfeature "additional development tools" dev-util/pkgdev + optfeature "ebuild QA utilities" dev-util/pkgcheck +} diff --git a/dev-build/cmake/cmake-4.3.4.ebuild b/dev-build/cmake/cmake-4.3.4.ebuild index 76ceffde857b..96ab566985ba 100644 --- a/dev-build/cmake/cmake-4.3.4.ebuild +++ b/dev-build/cmake/cmake-4.3.4.ebuild @@ -53,7 +53,7 @@ else )" if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" fi BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" diff --git a/dev-build/ninja/ninja-1.13.2-r1.ebuild b/dev-build/ninja/ninja-1.13.2-r1.ebuild index 51e1da3be480..1c87ac302ccd 100644 --- a/dev-build/ninja/ninja-1.13.2-r1.ebuild +++ b/dev-build/ninja/ninja-1.13.2-r1.ebuild @@ -15,7 +15,7 @@ if [[ ${PV} == 9999 ]]; then inherit git-r3 else SRC_URI="https://github.com/ninja-build/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi GTEST_VER=1.16.0 diff --git a/dev-cpp/benchmark/benchmark-1.9.2.ebuild b/dev-cpp/benchmark/benchmark-1.9.2.ebuild index d361eadc3b6b..1b60ff9c8ecd 100644 --- a/dev-cpp/benchmark/benchmark-1.9.2.ebuild +++ b/dev-cpp/benchmark/benchmark-1.9.2.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://github.com/google/benchmark/" SRC_URI="https://github.com/google/benchmark/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="Apache-2.0" SLOT="0/$(ver_cut 1)" -KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86" +KEYWORDS="~alpha amd64 ~arm arm64 ~loong ppc ppc64 ~riscv x86" IUSE="doc debug libpfm test +tools" RESTRICT="!test? ( test )" REQUIRED_USE="tools? ( ${PYTHON_REQUIRED_USE} )" diff --git a/dev-cpp/cpp-httplib/Manifest b/dev-cpp/cpp-httplib/Manifest index 7a291b880ea5..0886028e1e62 100644 --- a/dev-cpp/cpp-httplib/Manifest +++ b/dev-cpp/cpp-httplib/Manifest @@ -1,3 +1,2 @@ -DIST cpp-httplib-0.38.0.tar.gz 1458103 BLAKE2B d94aad7aeef09770473e93c7ef88951a9911f98a2d0d77bc3a0ae9bd0e7868eb92ad57b49d381c1e6b5ea8229e1f3c5a9f28823277c20daa994d17e212176bbd SHA512 d8dfd5a447db4d6eb2a92c498af18cb3bf999ed43ef9a9552a8781f9c23597a3d178d2a15f5fa0afb68f2ec278080e6d4808cef5cfa68a8ed5f0c57b42bdbee7 -DIST cpp-httplib-0.50.1.tar.gz 1896535 BLAKE2B 00b0942cc296c24b342cfec62126801766dbd8f1d6f983fef81fb75b6bc57a0cbf5eb457c9d9a30488ec4ae58803962b84f52c87d3f05e84fcda97ead8fbed84 SHA512 7f670f1ecf31590b8dba671b4cc18982d5c4e1c31d2edda635397872a3c58b69e067dddb7ac9fe8a5be48b850b40ff5b57eae93bd29c3fded1c6b0f27824b980 DIST cpp-httplib-0.51.0.tar.gz 1905553 BLAKE2B 4fa8f5678d370d95f5be8e3f13437a443a03d46d6fc234cf221f8a90993685375f0c2090b632705881133dbf9ea9e2b7a6eeaec144937da8030db51da3c62b3f SHA512 da2e205dcd1127685b7f2ff1e2d5b213f08489942e1f8d97be7f4d4bf0019be2bf48b260bc463c5861d5d537e0eaf648d28953f7a9fdae880005c7bf5319cfbc +DIST cpp-httplib-0.56.0.tar.gz 1991569 BLAKE2B 593816d7b49a9c81c69e3e1505e98504a5062b00e81723fc14a1549b79fb35c5a6b6f32e0d8bd53980b33009c42840da6a48212262635840c74eb8a14cb1b724 SHA512 3db42b77a96ae2f0e41c54c3897142f6c18fa237d85e6d173ea2e1ab238e77f6ac77134dcb80f6870697ef40bb68027b131b9d45823a41cedb86c677a01482b4 diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.38.0.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.38.0.ebuild deleted file mode 100644 index 4f8f2ca802b7..000000000000 --- a/dev-cpp/cpp-httplib/cpp-httplib-0.38.0.ebuild +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright 2022-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) - -inherit cmake-multilib python-any-r1 toolchain-funcs - -DESCRIPTION="C++ HTTP/HTTPS server and client library" -HOMEPAGE="https://github.com/yhirose/cpp-httplib/" - -if [[ "${PV}" == *9999* ]] ; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/yhirose/${PN}.git" -else - SRC_URI="https://github.com/yhirose/${PN}/archive/v${PV}.tar.gz - -> ${P}.tar.gz" - - KEYWORDS="~alpha amd64 arm64 ~hppa ~loong ~mips ppc64 ~riscv ~s390 ~sparc" -fi - -LICENSE="MIT" -SLOT="0/$(ver_cut 0-2)" # soversion - -IUSE="brotli mbedtls ssl test zlib zstd" -REQUIRED_USE="test? ( brotli zlib zstd )" -RESTRICT="!test? ( test )" - -RDEPEND=" - brotli? ( - app-arch/brotli:=[${MULTILIB_USEDEP}] - ) - ssl? ( - mbedtls? ( net-libs/mbedtls:3=[${MULTILIB_USEDEP}] ) - !mbedtls? ( >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}] ) - ) - zlib? ( - virtual/zlib:=[${MULTILIB_USEDEP}] - ) - zstd? ( - app-arch/zstd[${MULTILIB_USEDEP}] - ) -" -DEPEND=" - ${RDEPEND} - test? ( - dev-cpp/gtest - dev-libs/openssl - net-misc/curl - ) -" -BDEPEND=" - ${PYTHON_DEPS} - virtual/pkgconfig -" - -src_configure() { - local -a mycmakeargs=( - -DHTTPLIB_COMPILE=yes - -DHTTPLIB_SHARED=yes - -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=no - -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=no - -DHTTPLIB_USE_MBEDTLS_IF_AVAILABLE=no - -DHTTPLIB_USE_WOLFSSL_IF_AVAILABLE=no - -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=no - -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=no - -DHTTPLIB_REQUIRE_BROTLI=$(usex brotli) - -DHTTPLIB_REQUIRE_OPENSSL=$(usex ssl $(usex mbedtls no yes)) - -DHTTPLIB_REQUIRE_MBEDTLS=$(usex ssl $(usex mbedtls)) - -DHTTPLIB_REQUIRE_ZLIB=$(usex zlib) - -DHTTPLIB_REQUIRE_ZSTD=$(usex zstd) - -DPython3_EXECUTABLE="${PYTHON}" - ) - cmake-multilib_src_configure -} - -multilib_src_test() { - if [[ $(tc-get-ptr-size) == 4 ]] ; then - ewarn "Upstream no longer supports 32 bits:" - ewarn "https://github.com/yhirose/cpp-httplib/issues/2148" - return - fi - - cp -p -R --reflink=auto "${S}/test" ./test || die - - local -a failing_tests=( - # Disable all online tests. - "*.*_Online" - ) - - # Little dance to please the GTEST filter (join array using ":"). - failing_tests_str="${failing_tests[@]}" - failing_tests_filter="${failing_tests_str// /:}" - - # PREFIX is . to avoid calling "brew" and relying on stuff in /opt - GTEST_FILTER="-${failing_tests_filter}" emake -C test \ - CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} -I." PREFIX=. -} diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.50.1.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.56.0.ebuild index 46e968f2a8c0..46e968f2a8c0 100644 --- a/dev-cpp/cpp-httplib/cpp-httplib-0.50.1.ebuild +++ b/dev-cpp/cpp-httplib/cpp-httplib-0.56.0.ebuild diff --git a/dev-cpp/glaze/Manifest b/dev-cpp/glaze/Manifest index 3a6d05329ffd..8da6c123579a 100644 --- a/dev-cpp/glaze/Manifest +++ b/dev-cpp/glaze/Manifest @@ -1,3 +1,4 @@ DIST glaze-5.2.1.tar.gz 581284 BLAKE2B 87b81b073955c0e97199e3de3083fb2c913438b25a469ac80184fc2c9af04119d015e523ebf53fea36bf91b6a055351362fe8670ac2e881aafd11bd2acc92851 SHA512 b68d3953feab1cb958242eba0457e4cf310cd0de80b7c5c2513722eedea0442199b7df40b414213047958d8aa1a1d0d8705bea77795b80a73c9ee6fb462abc88 DIST glaze-5.5.4.tar.gz 738708 BLAKE2B 0f56b022532fc76b327f78e5bbcadb841d3ac77fde2df7ae8a6d0e74777db2c3090c6959845f54113933a083c787956876ac3166d0a2ba654eab926ef276df8a SHA512 1bc0503552eea4befd80b989f5eacf4b8ebd853e87c82d2730a23504806583a8153c80e786b118451ae2edc37023802e24cf4b0395ed86f2b34fdb5a2b7b6625 DIST glaze-6.5.1.tar.gz 1180772 BLAKE2B 12eba3267d45ac8d84df1130e7f070c857d9a3ae3de7701d77c4cd4cc87236f0aa7f3bcecd643f31a8d1d78d304ec3e35e800346f2bd882847731de71f3a0c45 SHA512 fb45220afde0b6374f6d864baa7fb649583e304a31914036aa7673adf2a72aa3944926f9a8f3e71fea4ec5f6655afa0a8fdcd42c698d98451b0ac1db7c15aa39 +DIST glaze-8.1.0.tar.gz 2088152 BLAKE2B c3abe0dbe19f512b75ebad2f192ec87488c200b0a743a95d409ef350368abe1de9f01f023aa72d8ad026ffa53b6dd526da8c9a640c995a71d5d0a9e9a7390fdf SHA512 750f1b0cec2cf1242f4627215bf156d56cce659e15a7e9ba1c407ff9bf56bb9cd028b92337bb98710ceb106ba687db0c4557764171cabc5feb53c74eb363af29 diff --git a/dev-cpp/glaze/glaze-8.1.0.ebuild b/dev-cpp/glaze/glaze-8.1.0.ebuild new file mode 100644 index 000000000000..c87b505c179c --- /dev/null +++ b/dev-cpp/glaze/glaze-8.1.0.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Extremely fast, in memory, JSON and interface library for modern C++" +HOMEPAGE="https://github.com/stephenberry/glaze" +SRC_URI=" + https://github.com/stephenberry/glaze/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz +" + +S="${WORKDIR}/glaze-${PV}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="examples fuzzing test" +RESTRICT="!test? ( test )" + +DEPEND=" + test? ( + dev-cpp/asio + >=dev-cpp/eigen-3.4:= + >=dev-cpp/ut2-glaze-1.2.1 + ) +" +RDEPEND="${DEPEND}" + +src_configure() { + local mycmakeargs=( + -DCMAKE_SKIP_INSTALL_RULES=OFF + -Dglaze_DEVELOPER_MODE=ON + -Dglaze_ENABLE_FUZZING=$(usex fuzzing) + -Dglaze_BUILD_EXAMPLES=$(usex examples) + -DBUILD_TESTING=$(usex test) + ) + + cmake_src_configure +} diff --git a/dev-cpp/tbb/Manifest b/dev-cpp/tbb/Manifest index 0114a8393263..0b58685b590a 100644 --- a/dev-cpp/tbb/Manifest +++ b/dev-cpp/tbb/Manifest @@ -1,8 +1,4 @@ DIST tbb-2020.3.tar.gz 2639788 BLAKE2B 3e92bccdc8179fc049379ccbb8ad7f615623177abc61d813b1a601020c345137bfd7d4c4600cf5b0d587e5ebef677635c3c8124d06b05fdd3325128ed8c9f84a SHA512 04c4b5501418792827190691d03d20d4dc1fd3cbbcf459a4d40c5c2281d964e658f31f133ad3907b78e17ed04f4ff16728ed89487ed0ce2cb239f23feb34bd87 -DIST tbb-2021.12.0.tar.gz 2617255 BLAKE2B 3e1db8b1972a7225c5355def66ae40006e6e0f0f97e2efff45dd361f724e348a2f0476bc14b59f89f5361cac6fa36a4973602467bc7fbb2b8b139a4ff4dd58de SHA512 64022bcb61cf7b2030a1bcc11168445ef9f0d69b70290233a7febb71cc7a12cc2282dddc045f84e30893efe276342f02fd78d176706268eeaefe9aac7446d4e9 -DIST tbb-2021.13.0.tar.gz 2613916 BLAKE2B 0edd2d8a966dba673e50827629491924140a302430f4380e7cd9914f3592eaf6515204c7267649237970a5482cc030f0c29cbddd1476f16caf46989f70041058 SHA512 1f536b98c4eb331c3ba21e4b36362c932d7852b974ea7237b5f7bffb0e996d76f688c7ac534cb56f5866cfdffd5d3f015521b4c2ca21e584503070782ca82a2f -DIST tbb-2021.7.0.tar.gz 2571727 BLAKE2B 2977ef1a33d9bc7baa40e0e57c02e62798a09c6c66cdbe369f2702d87fd9877c3d97f8d83f71384028995ea0956f5c5630d4aaf4edbe68538e7c514d3b87085c SHA512 d314e3d88b85c96607a9eda15e3d808bf361eb562a534c59101929236e90c187883e7718e5435b5e7f01f4ee652c9765af95f5f173368b83997e4666b7403a49 -DIST tbb-2021.9.0.tar.gz 2579150 BLAKE2B f6f701df1605913770222689063ff422416f86f132fb3fbc80f383b7c52762d3804e75200ca4826906b16c66f674918bcfd78b16a1dafb499ca53a9d2b6652ec SHA512 2ece7f678ad7c8968c0ad5cda9f987e4b318c6d9735169e1039beb0ff8dfca18815835875211acc6c7068913d9b0bdd4c9ded22962b0bb48f4a0ce0f7b78f31c -DIST tbb-2022.0.0.tar.gz 2654343 BLAKE2B eac1a8065e401f1329527ccb1db0a8d30eb54ca2d9180560cd3be2263a779d250a0bda4fc3fb11fede3c63e964490420f09d664a7e39071d9b6a6cf743349f8f SHA512 c87b84964b2c323f61895a532968dfa6413a774c177cffbf6e798a07e74e8da5d449144875771df0a1b02657eeb2a7ae4d41c6c432dbf7ea50e3d5a9ea9f8cd3 DIST tbb-2022.1.0.tar.gz 3434602 BLAKE2B a6441be4830ac79d648eee37a534bb74e2298612237059e2d22778c3aebda7e9a73c58948c8f9e89603cb05270d63d412b28bdc13a7cc6b3f6683ed21f1c221a SHA512 7582748f7d0e0ab46ea6ee7771dfaf7fc08ca7ab7f274fb3373eae0e3411aaafbac192ece15008d9a3d9e8566f8737f96f3f4b5ccf11449ac089d5cd9ebb9eab DIST tbb-2022.3.0.tar.gz 6836514 BLAKE2B 466e599dca7a64608eaa4df2fe16e62261230446a961bfadc65b9cded9489ed0b5a1e2d9d2a9dd3d202b62ac32e10c2cfa9b1a3cf1e292347985ec7b0400a72f SHA512 fdc50589785b1949ca1dd4429bbcedb180be4b8966da5243ddd1f8e9f97310dd603681e0bb83c1d6c2d3e27932f577ef6739e4e82f3c54af147f4d6d906b39f1 +DIST tbb-2023.1.0.tar.gz 7722887 BLAKE2B 78d91cc0eb6bd6d1d06cde1902a1d6c335a30f0ddc0a4976bc4878a31d037c645238774f68ee40be86b55b6d2f17621cd79786e0e0acc58c0ac78c451a44b211 SHA512 c8e9b9100873d6f8514da18ca700165466a9c042d24a6ce9e8901c8996c348f2e58f0251b1eca47d33cc5f382783bfc7693bc6c451716540d4caa57339b3b535 diff --git a/dev-cpp/tbb/files/tbb-2021.13.0-test-atomics.patch b/dev-cpp/tbb/files/tbb-2021.13.0-test-atomics.patch index 7cc8216153d0..088b2681184a 100644 --- a/dev-cpp/tbb/files/tbb-2021.13.0-test-atomics.patch +++ b/dev-cpp/tbb/files/tbb-2021.13.0-test-atomics.patch @@ -1,3 +1,6 @@ +https://github.com/uxlfoundation/oneTBB/issues/980 +https://github.com/uxlfoundation/oneTBB/pull/987 + From c828ae47b8f4bea7736d2f9d05460e2b529c9d7d Mon Sep 17 00:00:00 2001 From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> Date: Fri, 9 Dec 2022 12:36:11 +0100 diff --git a/dev-cpp/tbb/files/tbb-2021.7.0-abort.patch b/dev-cpp/tbb/files/tbb-2021.7.0-abort.patch deleted file mode 100644 index 0a7deec96a5d..000000000000 --- a/dev-cpp/tbb/files/tbb-2021.7.0-abort.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/test/common/utils_assert.h 2026-03-27 11:39:14.886058730 +0100 -+++ b/test/common/utils_assert.h 2026-03-27 11:40:24.429306039 +0100 -@@ -20,6 +20,8 @@ - #include "config.h" - #include "utils_report.h" - -+#include <cstdlib> -+ - #define REPORT_FATAL_ERROR REPORT - - namespace utils { diff --git a/dev-cpp/tbb/files/tbb-2021.7.0-dynamicLink.patch b/dev-cpp/tbb/files/tbb-2021.7.0-dynamicLink.patch deleted file mode 100644 index ca44d7985a30..000000000000 --- a/dev-cpp/tbb/files/tbb-2021.7.0-dynamicLink.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/test/CMakeLists.txt 2026-03-27 13:13:21.627057086 +0100 -+++ b/test/CMakeLists.txt 2026-03-27 13:17:16.113296894 +0100 -@@ -367,6 +367,7 @@ - tbb_add_test(SUBDIR tbb NAME test_allocators DEPENDENCIES TBB::tbb) - tbb_add_test(SUBDIR tbb NAME test_arena_priorities DEPENDENCIES TBB::tbb) - tbb_add_test(SUBDIR tbb NAME test_dynamic_link DEPENDENCIES TBB::tbb) -+ set_target_properties(test_dynamic_link PROPERTIES ENABLE_EXPORTS TRUE) - if (WIN32) - tbb_add_test(SUBDIR tbb NAME test_numa_dist DEPENDENCIES TBB::tbb) - endif() diff --git a/dev-cpp/tbb/files/tbb-2021.7.0-pthread-eagain.patch b/dev-cpp/tbb/files/tbb-2021.7.0-pthread-eagain.patch deleted file mode 100644 index 6c0912ec96b7..000000000000 --- a/dev-cpp/tbb/files/tbb-2021.7.0-pthread-eagain.patch +++ /dev/null @@ -1,135 +0,0 @@ -https://bugs.gentoo.org/881161 -https://github.com/rui314/mold/issues/410 -https://github.com/oneapi-src/oneTBB/commit/ceacd2207edfb72a8fc235213265afe68ce74ad0 -https://github.com/oneapi-src/oneTBB/commit/137c1a88b690acf3525e0f279720ac489ce66481 - -From ceacd2207edfb72a8fc235213265afe68ce74ad0 Mon Sep 17 00:00:00 2001 -From: Ilya Isaev <ilya.isaev@intel.com> -Date: Wed, 26 Oct 2022 13:13:51 +0200 -Subject: [PATCH] Rework test_eh_thread to avoid sporadic failures (#946) - -Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com> ---- a/test/tbb/test_eh_thread.cpp -+++ b/test/tbb/test_eh_thread.cpp -@@ -54,15 +54,16 @@ void limitThreads(size_t limit) - CHECK_MESSAGE(0 == ret, "setrlimit has returned an error"); - } - --static bool g_exception_caught = false; --static std::mutex m; --static std::condition_variable cv; --static std::atomic<bool> stop{ false }; -+size_t getThreadLimit() { -+ rlimit rlim; -+ -+ int ret = getrlimit(RLIMIT_NPROC, &rlim); -+ CHECK_MESSAGE(0 == ret, "getrlimit has returned an error"); -+ return rlim.rlim_cur; -+} - - static void* thread_routine(void*) - { -- std::unique_lock<std::mutex> lock(m); -- cv.wait(lock, [] { return stop == true; }); - return nullptr; - } - -@@ -94,32 +95,17 @@ TEST_CASE("Too many threads") { - } - - // Some systems set really big limit (e.g. >45К) for the number of processes/threads -- limitThreads(1024); -- -- std::thread /* isolate test */ ([] { -- std::vector<Thread> threads; -- stop = false; -- auto finalize = [&] { -- stop = true; -- cv.notify_all(); -- for (auto& t : threads) { -- t.join(); -- } -- }; -- -- for (int i = 0;; ++i) { -+ limitThreads(1); -+ if (getThreadLimit() == 1) { -+ for (int attempt = 0; attempt < 5; ++attempt) { - Thread thread; -- if (!thread.isValid()) { -- break; -- } -- threads.push_back(thread); -- if (i == 1024) { -- WARN_MESSAGE(false, "setrlimit seems having no effect"); -- finalize(); -+ if (thread.isValid()) { -+ WARN_MESSAGE(false, "We were able to create a thread. setrlimit seems having no effect"); -+ thread.join(); - return; - } - } -- g_exception_caught = false; -+ bool g_exception_caught = false; - try { - // Initialize the library to create worker threads - tbb::parallel_for(0, 2, [](int) {}); -@@ -132,9 +118,10 @@ TEST_CASE("Too many threads") { - } - // Do not CHECK to avoid memory allocation (we can be out of memory) - if (!g_exception_caught) { -- FAIL("No exception was caught"); -+ FAIL("No exception was thrown on library initialization"); - } -- finalize(); -- }).join(); -+ } else { -+ WARN_MESSAGE(false, "setrlimit seems having no effect"); -+ } - } - #endif - -From 137c1a88b690acf3525e0f279720ac489ce66481 Mon Sep 17 00:00:00 2001 -From: Rui Ueyama <ruiu@cs.stanford.edu> -Date: Wed, 26 Oct 2022 04:54:20 -0700 -Subject: [PATCH] Retry if pthread_create fails with EAGAIN (#824) - -Signed-off-by: Rui Ueyama <ruiu@cs.stanford.edu> ---- a/src/tbb/rml_thread_monitor.h -+++ b/src/tbb/rml_thread_monitor.h -@@ -31,6 +31,7 @@ - #include <pthread.h> - #include <cstring> - #include <cstdlib> -+#include <time.h> - #else - #error Unsupported platform - #endif -@@ -191,8 +192,25 @@ inline thread_monitor::handle_type thread_monitor::launch( void* (*thread_routin - check(pthread_attr_init( &s ), "pthread_attr_init has failed"); - if( stack_size>0 ) - check(pthread_attr_setstacksize( &s, stack_size ), "pthread_attr_setstack_size has failed" ); -+ -+ // pthread_create(2) can spuriously fail with EAGAIN. We retry -+ // max_num_tries times with progressively longer wait times. - pthread_t handle; -- check( pthread_create( &handle, &s, thread_routine, arg ), "pthread_create has failed" ); -+ const int max_num_tries = 20; -+ int error = EAGAIN; -+ -+ for (int i = 0; i < max_num_tries && error == EAGAIN; i++) { -+ if (i != 0) { -+ // Wait i milliseconds -+ struct timespec ts = {0, i * 1000 * 1000}; -+ nanosleep(&ts, NULL); -+ } -+ error = pthread_create(&handle, &s, thread_routine, arg); -+ } -+ -+ if (error) -+ handle_perror(error, "pthread_create has failed"); -+ - check( pthread_attr_destroy( &s ), "pthread_attr_destroy has failed" ); - return handle; - } - diff --git a/dev-cpp/tbb/files/tbb-2021.8.0-gcc-13.patch b/dev-cpp/tbb/files/tbb-2021.8.0-gcc-13.patch deleted file mode 100644 index 84a0ba3dc7a1..000000000000 --- a/dev-cpp/tbb/files/tbb-2021.8.0-gcc-13.patch +++ /dev/null @@ -1,26 +0,0 @@ -https://github.com/oneapi-src/oneTBB/pull/1031 - -From 363bf59bef2649b4d427788522da27c12f984a9a Mon Sep 17 00:00:00 2001 -From: Sam James <sam@gentoo.org> -Date: Tue, 21 Feb 2023 09:36:33 +0000 -Subject: [PATCH] test: common: include <cstdlib> for abort() (fix build with - GCC 13) - -GCC 13 (as usual for new compiler releases) shuffles around some -internal includes and so <cstdint> etc is no longer transitively included. - -See https://www.gnu.org/software/gcc/gcc-13/porting_to.html. - -Signed-off-by: Sam James <sam@gentoo.org> ---- a/test/common/utils_assert.h -+++ b/test/common/utils_assert.h -@@ -20,6 +20,8 @@ - #include "config.h" - #include "utils_report.h" - -+#include <cstdlib> -+ - #define REPORT_FATAL_ERROR REPORT - - namespace utils { - diff --git a/dev-cpp/tbb/files/tbb-2021.9.0-dynamicLink.patch b/dev-cpp/tbb/files/tbb-2021.9.0-dynamicLink.patch deleted file mode 100644 index 77c9ca68ba0b..000000000000 --- a/dev-cpp/tbb/files/tbb-2021.9.0-dynamicLink.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/test/CMakeLists.txt 2026-03-27 14:52:17.592128499 +0100 -+++ b/test/CMakeLists.txt 2026-03-27 14:53:30.563265543 +0100 -@@ -375,6 +375,7 @@ - tbb_add_test(SUBDIR tbb NAME test_allocators DEPENDENCIES TBB::tbb) - tbb_add_test(SUBDIR tbb NAME test_arena_priorities DEPENDENCIES TBB::tbb) - tbb_add_test(SUBDIR tbb NAME test_dynamic_link DEPENDENCIES TBB::tbb) -+ set_target_properties(test_dynamic_link PROPERTIES ENABLE_EXPORTS TRUE) - if (LINKER_HAS_NO_AS_NEEDED) - # The linker may not detect a dependency on pthread in static variable constructors. - target_link_libraries(test_dynamic_link PRIVATE "-Wl,--no-as-needed") diff --git a/dev-cpp/tbb/files/tbb-2023.1.0-no-clobber-toolchain.patch b/dev-cpp/tbb/files/tbb-2023.1.0-no-clobber-toolchain.patch new file mode 100644 index 000000000000..a19b7e365f39 --- /dev/null +++ b/dev-cpp/tbb/files/tbb-2023.1.0-no-clobber-toolchain.patch @@ -0,0 +1,79 @@ +Strip flags that are set by the Gentoo toolchain. + +For -fcf-protection +https://bugs.gentoo.org/965340 + +For -D_FORTIFY_SOURCE +https://bugs.gentoo.org/922605 + +--- a/cmake/compilers/Clang.cmake ++++ b/cmake/compilers/Clang.cmake +@@ -74,40 +74,15 @@ endif() + set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} + -Wformat -Wformat-security -Werror=format-security + $<$<PLATFORM_ID:Windows>:-D_CRT_SECURE_NO_WARNINGS> +- $<$<NOT:$<PLATFORM_ID:Windows>>:-fPIC> +- $<$<NOT:$<PLATFORM_ID:Emscripten>>:-fstack-protector-strong>) +- +-if (NOT APPLE AND NOT ANDROID_PLATFORM AND CMAKE_SYSTEM_PROCESSOR MATCHES "(AMD64|amd64|i.86|x86)" AND NOT WIN32) +- set(TBB_LIB_COMPILE_FLAGS ${TBB_LIB_COMPILE_FLAGS} -fstack-clash-protection) +- if (NOT EMSCRIPTEN) +- # Some versions of Clang implicitly set -march=i686 when compiling for x86 and some don't. +- # -fcf-protection requires i686, so check -fcf-protection explicitly. +- include(CheckCXXSourceCompiles) +- set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") +- set(CMAKE_REQUIRED_FLAGS "-fcf-protection=full") +- check_cxx_source_compiles("int main(int, char*[]) { return 0; }" CF_PROTECTION_FULL_SUPPORTED) +- unset(CMAKE_TRY_COMPILE_TARGET_TYPE) +- unset(CMAKE_REQUIRED_FLAGS) +- +- if (CF_PROTECTION_FULL_SUPPORTED) +- set(TBB_LIB_COMPILE_FLAGS ${TBB_LIB_COMPILE_FLAGS} -fcf-protection=full) +- else() +- message(WARNING "Compiler does not support -fcf-protection=full.") +- endif() +- endif() +-endif() ++ $<$<NOT:$<PLATFORM_ID:Windows>>:-fPIC>) + + # -z switch is not supported on MacOS and Windows + if (NOT APPLE AND NOT WIN32) +- set(TBB_LIB_LINK_FLAGS ${TBB_LIB_LINK_FLAGS} -Wl,-z,relro,-z,now,-z,noexecstack) ++ set(TBB_LIB_LINK_FLAGS ${TBB_LIB_LINK_FLAGS} -Wl,-z,noexecstack) + endif() + + set(TBB_COMMON_LINK_LIBS ${CMAKE_DL_LIBS}) + +-if (NOT CMAKE_CXX_FLAGS MATCHES "_FORTIFY_SOURCE") +- set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} $<$<NOT:$<CONFIG:Debug>>:-D_FORTIFY_SOURCE=2>) +-endif () +- + if (MINGW) + list(APPEND TBB_COMMON_COMPILE_FLAGS -U__STRICT_ANSI__) + endif() +--- a/cmake/compilers/GNU.cmake ++++ b/cmake/compilers/GNU.cmake +@@ -106,20 +106,12 @@ endif () + + # Gnu flags to prevent compiler from optimizing out security checks + set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -fno-strict-overflow -fno-delete-null-pointer-checks -fwrapv) +-set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -Wformat -Wformat-security -Werror=format-security +- -fstack-protector-strong ) +-if (CMAKE_SYSTEM_PROCESSOR MATCHES "(AMD64|amd64|i.86|x86)" AND NOT EMSCRIPTEN) +- set(TBB_LIB_COMPILE_FLAGS ${TBB_LIB_COMPILE_FLAGS} $<$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},8.0>>:-fcf-protection=full>) +-endif () +-set(TBB_LIB_COMPILE_FLAGS ${TBB_LIB_COMPILE_FLAGS} $<$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},8.0>>:-fstack-clash-protection>) ++set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -Wformat -Wformat-security -Werror=format-security) + + # -z switch is not supported on MacOS and MinGW + if (NOT APPLE AND NOT MINGW) +- set(TBB_LIB_LINK_FLAGS ${TBB_LIB_LINK_FLAGS} -Wl,-z,relro,-z,now,-z,noexecstack) ++ set(TBB_LIB_LINK_FLAGS ${TBB_LIB_LINK_FLAGS} -Wl,-z,noexecstack) + endif() +-if (NOT CMAKE_CXX_FLAGS MATCHES "_FORTIFY_SOURCE") +- set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} $<$<NOT:$<CONFIG:Debug>>:-D_FORTIFY_SOURCE=2> ) +-endif () + + if (TBB_FILE_TRIM AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8 AND NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel") + set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -ffile-prefix-map=${NATIVE_TBB_PROJECT_ROOT_DIR}/= -ffile-prefix-map=${NATIVE_TBB_RELATIVE_BIN_PATH}/=) + diff --git a/dev-cpp/tbb/tbb-2021.12.0.ebuild b/dev-cpp/tbb/tbb-2021.12.0.ebuild deleted file mode 100644 index 1bd9cb9fa412..000000000000 --- a/dev-cpp/tbb/tbb-2021.12.0.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib flag-o-matic - -DESCRIPTION="High level abstract threading library" -HOMEPAGE="https://github.com/oneapi-src/oneTBB" -SRC_URI="https://github.com/oneapi-src/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/oneTBB-${PV}" - -LICENSE="Apache-2.0" -# https://github.com/oneapi-src/oneTBB/blob/master/CMakeLists.txt#L53 -# libtbb<SONAME>-libtbbmalloc<SONAME>-libtbbbind<SONAME> -SLOT="0/12.5-2.5-3.5" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )" -DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-2021.8.0-gcc-13.patch - "${FILESDIR}"/${PN}-2021.9.0-ppc.patch - "${FILESDIR}"/${PN}-2021.13.0-test-atomics.patch -) - -src_prepare() { - # Has an #error to force compilation as C but links with C++ library, dies - # with GLIBCXX_ASSERTIONS as a result. - sed -i -e '/tbb_add_c_test(SUBDIR tbbmalloc NAME test_malloc_pure_c DEPENDENCIES TBB::tbbmalloc)/d' test/CMakeLists.txt || die - - cmake_src_prepare -} - -src_configure() { - # Workaround for bug #912210 - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - - local mycmakeargs=( - -DTBB_TEST=$(usex test) - -DTBB_ENABLE_IPO=OFF - -DTBB_STRICT=OFF - ) - - cmake-multilib_src_configure -} - -src_test() { - local CMAKE_SKIP_TESTS=() - if use elibc_musl; then - CMAKE_SKIP_TESTS=( conformance_resumable_tasks ) # Bug #864175 - fi - cmake-multilib_src_test -} diff --git a/dev-cpp/tbb/tbb-2021.13.0.ebuild b/dev-cpp/tbb/tbb-2021.13.0.ebuild deleted file mode 100644 index 4cc18d3ee0cd..000000000000 --- a/dev-cpp/tbb/tbb-2021.13.0.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib flag-o-matic - -DESCRIPTION="High level abstract threading library" -HOMEPAGE="https://github.com/oneapi-src/oneTBB" -SRC_URI="https://github.com/oneapi-src/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/oneTBB-${PV}" - -LICENSE="Apache-2.0" -# https://github.com/oneapi-src/oneTBB/blob/master/CMakeLists.txt#L53 -# libtbb<SONAME>-libtbbmalloc<SONAME>-libtbbbind<SONAME> -SLOT="0/12.5-2.5-3.5" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )" -DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-2021.8.0-gcc-13.patch - "${FILESDIR}"/${PN}-2021.9.0-ppc.patch - "${FILESDIR}"/${PN}-2021.13.0-test-atomics.patch - "${FILESDIR}"/${PN}-2022.0.0_do-not-fortify-source.patch -) - -src_prepare() { - # Has an #error to force compilation as C but links with C++ library, dies - # with GLIBCXX_ASSERTIONS as a result. - sed -i -e '/tbb_add_c_test(SUBDIR tbbmalloc NAME test_malloc_pure_c DEPENDENCIES TBB::tbbmalloc)/d' test/CMakeLists.txt || die - - cmake_src_prepare -} - -src_configure() { - # Workaround for bug #912210 - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - - local mycmakeargs=( - -DTBB_TEST=$(usex test) - -DTBB_ENABLE_IPO=OFF - -DTBB_STRICT=OFF - ) - - cmake-multilib_src_configure -} - -src_test() { - local CMAKE_SKIP_TESTS=() - if use elibc_musl; then - CMAKE_SKIP_TESTS=( conformance_resumable_tasks ) # Bug #864175 - fi - cmake-multilib_src_test -} diff --git a/dev-cpp/tbb/tbb-2021.7.0-r1.ebuild b/dev-cpp/tbb/tbb-2021.7.0-r1.ebuild deleted file mode 100644 index 14697638a200..000000000000 --- a/dev-cpp/tbb/tbb-2021.7.0-r1.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib flag-o-matic - -DESCRIPTION="High level abstract threading library" -HOMEPAGE="https://github.com/oneapi-src/oneTBB" -SRC_URI="https://github.com/oneapi-src/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/oneTBB-${PV}" - -LICENSE="Apache-2.0" -# https://github.com/oneapi-src/oneTBB/blob/master/CMakeLists.txt#L53 -# libtbb<SONAME>-libtbbmalloc<SONAME>-libtbbbind<SONAME> -SLOT="0/12.5-2.5-3.5" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )" -DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-2021.7.0-pthread-eagain.patch - "${FILESDIR}"/${PN}-2021.7.0-abort.patch - "${FILESDIR}"/${P}-dynamicLink.patch -) - -src_configure() { - # Workaround for bug #912210 - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - - local mycmakeargs=( - -DTBB_TEST=$(usex test) - -DTBB_ENABLE_IPO=OFF - -DTBB_STRICT=OFF - ) - - cmake-multilib_src_configure -} - -src_test() { - local CMAKE_SKIP_TESTS=() - if use elibc_musl; then - CMAKE_SKIP_TESTS=( conformance_resumable_tasks ) # Bug #864175 - fi - cmake-multilib_src_test -} diff --git a/dev-cpp/tbb/tbb-2021.9.0.ebuild b/dev-cpp/tbb/tbb-2021.9.0.ebuild deleted file mode 100644 index 210049d0641c..000000000000 --- a/dev-cpp/tbb/tbb-2021.9.0.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib flag-o-matic - -DESCRIPTION="High level abstract threading library" -HOMEPAGE="https://github.com/oneapi-src/oneTBB" -SRC_URI="https://github.com/oneapi-src/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/oneTBB-${PV}" - -LICENSE="Apache-2.0" -# https://github.com/oneapi-src/oneTBB/blob/master/CMakeLists.txt#L53 -# libtbb<SONAME>-libtbbmalloc<SONAME>-libtbbbind<SONAME> -SLOT="0/12.5-2.5-3.5" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~arm64-macos ~x64-macos" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )" -DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-2021.8.0-gcc-13.patch - "${FILESDIR}"/${PN}-2021.9.0-ppc.patch - "${FILESDIR}"/${PN}-2021.13.0-test-atomics.patch - "${FILESDIR}"/${P}-dynamicLink.patch -) - -src_prepare() { - # Has an #error to force compilation as C but links with C++ library, dies - # with GLIBCXX_ASSERTIONS as a result. - sed -i -e '/tbb_add_c_test(SUBDIR tbbmalloc NAME test_malloc_pure_c DEPENDENCIES TBB::tbbmalloc)/d' test/CMakeLists.txt || die - - cmake_src_prepare -} - -src_configure() { - # Workaround for bug #912210 - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - - local mycmakeargs=( - -DTBB_TEST=$(usex test) - -DTBB_ENABLE_IPO=OFF - -DTBB_STRICT=OFF - ) - - cmake-multilib_src_configure -} - -src_test() { - local CMAKE_SKIP_TESTS=() - if use elibc_musl; then - CMAKE_SKIP_TESTS=( conformance_resumable_tasks ) # Bug #864175 - fi - cmake-multilib_src_test -} diff --git a/dev-cpp/tbb/tbb-2022.0.0-r1.ebuild b/dev-cpp/tbb/tbb-2022.0.0-r1.ebuild deleted file mode 100644 index 158dc20d4dc7..000000000000 --- a/dev-cpp/tbb/tbb-2022.0.0-r1.ebuild +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib flag-o-matic - -DESCRIPTION="High level abstract threading library" -HOMEPAGE="https://github.com/uxlfoundation/oneTBB" -SRC_URI="https://github.com/uxlfoundation/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/oneTBB-${PV}" - -LICENSE="Apache-2.0" -# https://github.com/oneapi-src/oneTBB/blob/master/CMakeLists.txt#L53 -# libtbb<SONAME>-libtbbmalloc<SONAME>-libtbbbind<SONAME> -SLOT="0/12.14-2.14-3.14" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )" -DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-2021.9.0-ppc.patch - "${FILESDIR}"/${PN}-2021.13.0-test-atomics.patch - "${FILESDIR}"/${PN}-2022.0.0_do-not-fortify-source.patch -) - -src_prepare() { - # Has an #error to force compilation as C but links with C++ library, dies - # with GLIBCXX_ASSERTIONS as a result. - sed -i -e '/tbb_add_c_test(SUBDIR tbbmalloc NAME test_malloc_pure_c DEPENDENCIES TBB::tbbmalloc)/d' \ - test/CMakeLists.txt || die - - cmake_src_prepare -} - -src_configure() { - # Workaround for bug #912210 - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - - local mycmakeargs=( - -DTBB_TEST=$(usex test) - -DTBB_EXAMPLES=OFF # TODO: add this - -DTBB_ENABLE_IPO=OFF - -DTBB_STRICT=OFF - ) - - cmake-multilib_src_configure -} - -src_test() { - local CMAKE_SKIP_TESTS=() - if use elibc_musl; then - CMAKE_SKIP_TESTS=( conformance_resumable_tasks ) # Bug #864175 - fi - cmake-multilib_src_test -} diff --git a/dev-cpp/tbb/tbb-2022.3.0.ebuild b/dev-cpp/tbb/tbb-2022.3.0.ebuild deleted file mode 100644 index 3e70e56bd082..000000000000 --- a/dev-cpp/tbb/tbb-2022.3.0.ebuild +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib flag-o-matic - -DESCRIPTION="High level abstract threading library" -HOMEPAGE="https://github.com/uxlfoundation/oneTBB" -SRC_URI="https://github.com/uxlfoundation/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/oneTBB-${PV}" - -LICENSE="Apache-2.0" -# https://github.com/oneapi-src/oneTBB/blob/master/CMakeLists.txt#L53 -# libtbb<SONAME>-libtbbmalloc<SONAME>-libtbbbind<SONAME> -SLOT="0/12.15-2.15-3.15" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )" -DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-2021.9.0-ppc.patch - "${FILESDIR}"/${PN}-2021.13.0-test-atomics.patch - "${FILESDIR}"/${PN}-2022.0.0_do-not-fortify-source.patch - "${FILESDIR}"/${PN}-2022.3.0-no-clobber-hardened.patch - "${FILESDIR}"/${PN}-2022.3.0-cmake.patch -) - -src_prepare() { - # Has an #error to force compilation as C but links with C++ library, dies - # with GLIBCXX_ASSERTIONS as a result. - sed -i -e '/tbb_add_c_test(SUBDIR tbbmalloc NAME test_malloc_pure_c DEPENDENCIES TBB::tbbmalloc)/d' \ - test/CMakeLists.txt || die - - cmake_src_prepare -} - -src_configure() { - # Workaround for bug #912210 - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - - local mycmakeargs=( - -DTBB_TEST=$(usex test) - -DTBB_EXAMPLES=OFF # TODO: add this - -DTBB_ENABLE_IPO=OFF - -DTBB_STRICT=OFF - ) - - cmake-multilib_src_configure -} - -src_test() { - local CMAKE_SKIP_TESTS=() - if use elibc_musl; then - CMAKE_SKIP_TESTS=( conformance_resumable_tasks ) # Bug #864175 - fi - cmake-multilib_src_test -} diff --git a/dev-cpp/tbb/tbb-2023.1.0.ebuild b/dev-cpp/tbb/tbb-2023.1.0.ebuild new file mode 100644 index 000000000000..45016d9536a6 --- /dev/null +++ b/dev-cpp/tbb/tbb-2023.1.0.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake-multilib flag-o-matic + +DESCRIPTION="High level abstract threading library" +HOMEPAGE="https://github.com/uxlfoundation/oneTBB" +SRC_URI="https://github.com/uxlfoundation/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/oneTBB-${PV}" + +LICENSE="Apache-2.0" +# See VERSIONING.md +# __TBB_BINARY_VERSION in include/oneapi/tbb/version.h -> libtbb.so.<SONAME> +# TBBMALLOC_BINARY_VERSION in CMakeLists.txt -> libtbbmalloc.so.<SONAME> +# TBBBIND_BINARY_VERSION in CMakeListst.txt -> libtbbbind.so.<SONAME> +SLOT="0/12.2.3" # TBB_BINARY_VERSION.TBBMALLOC_VERSION.TBBBIND_VERSION +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-2021.9.0-ppc.patch + "${FILESDIR}"/${PN}-2021.13.0-test-atomics.patch + "${FILESDIR}"/${PN}-2023.1.0-no-clobber-toolchain.patch +) + +src_prepare() { + # sanity check subslot + local detected_abi tbb_version tbbmalloc_version tbbbind_version + tbb_version="$(sed -n -e 's/^#define __TBB_BINARY_VERSION \(.*\)$/\1/p' include/oneapi/tbb/version.h)" + tbbmalloc_version="$(sed -n -e 's/^set(TBBMALLOC_BINARY_VERSION \(.*\))$/\1/p' CMakeLists.txt)" + tbbbind_version="$(sed -n -e 's/^set(TBBBIND_BINARY_VERSION \(.*\))$/\1/p' CMakeLists.txt)" + detected_abi="${tbb_version}.${tbbmalloc_version}.${tbbbind_version}" + if [[ "${SLOT}" != "0/${detected_abi}" ]]; then + die "SLOT ${SLOT} doesn't match upstream specified ABI ${detected_abi}." + fi + + # Silence cmake warnings + rm -r examples || die + + cmake_src_prepare +} + +src_configure() { + # Workaround for bug #912210 + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + local mycmakeargs=( + -DTBB_TEST=$(usex test) + -DTBB_EXAMPLES=OFF # TODO: add this + + -DTBB_ENABLE_IPO=OFF # Use user cflags instead + -DTBB_STRICT=OFF # Don't turn warnings into errors + ) + + cmake-multilib_src_configure +} + +src_test() { + local CMAKE_SKIP_TESTS=() + if use elibc_musl; then + CMAKE_SKIP_TESTS+=( conformance_resumable_tasks ) # Bug #864175 + fi + cmake-multilib_src_test +} diff --git a/dev-cpp/ut2-glaze/Manifest b/dev-cpp/ut2-glaze/Manifest index 29bfb2d99e85..cf1fd23b8427 100644 --- a/dev-cpp/ut2-glaze/Manifest +++ b/dev-cpp/ut2-glaze/Manifest @@ -1 +1,2 @@ DIST ut2-openalgz-0.0.4.tar.gz 9026 BLAKE2B 8ff4d313b8e5bb7d7c2a3153a47e360d83d4fe506d2a3a6739383b1dbd45a0c66a74a4a072d80bf4216fa9c0c2b8fde180b4e2bccdd84e716e6e8ec878a9f8ef SHA512 e4abd16ec3f0b1a4b9b1ece95ed8c08ebe5e16803554f8e77e7d579af00a4d9caaf80c7abb0e889c3333cccfaac995d7b049dde76601741277196f3ac5422516 +DIST ut2-openalgz-1.2.1.tar.gz 14702 BLAKE2B 8cfe8a47232526fb3cfd322a17739514a5dd8153d542a6b3b45419f18fe14d61035502f659b60d47cc75df07c59e8afc9b919833384364b21a3e206654db2a01 SHA512 9e6c266a36afa0579ede8645b9c8c96a741e9581847eda67ed13c4c26e5237a2758c97733965f04c7fa0b86708207446b96c32b4b40b9e70d64cd9ec81332599 diff --git a/dev-cpp/ut2-glaze/ut2-glaze-1.2.1.ebuild b/dev-cpp/ut2-glaze/ut2-glaze-1.2.1.ebuild new file mode 100644 index 000000000000..7243dfffee47 --- /dev/null +++ b/dev-cpp/ut2-glaze/ut2-glaze-1.2.1.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# it's a header-only lib, thus not cmake-multilib. However, examples and tests... +inherit cmake + +DESCRIPTION="Stripped down fork of boost-ext ut2" +HOMEPAGE="https://github.com/openalgz/ut" +SRC_URI="https://github.com/openalgz/ut/archive/refs/tags/v${PV}.tar.gz -> ut2-openalgz-${PV}.tar.gz" + +S="${WORKDIR}/ut-${PV}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +src_configure() { + local mycmakeargs=( + -DCMAKE_SKIP_INSTALL_RULES=OFF + -DBUILD_TESTING=$(usex test) + ) + cmake_src_configure +} diff --git a/dev-db/mariadb-connector-c/Manifest b/dev-db/mariadb-connector-c/Manifest index dcc1cb787d7a..1a8368dbc489 100644 --- a/dev-db/mariadb-connector-c/Manifest +++ b/dev-db/mariadb-connector-c/Manifest @@ -3,3 +3,4 @@ DIST mariadb-connector-c-3.3.17-src.tar.gz 1349385 BLAKE2B 874c375b5c6282bf88587 DIST mariadb-connector-c-3.3.8-src.tar.gz 1393368 BLAKE2B 09a8a310f97809f0b0396770a77d4512fe1124de263e2077e5a14a2fa1fbc59d7e35a09d97b0471b687943fc9ce06925507e4b950fdacfdc7ca04ea5ee56bf9e SHA512 d2630bda8deb28696842a6b5dd308060a8b9a83a04dfb3ed908387f53af4108510c6f536aaecc4a3c9a035c7be91b98229d6c480366a3579b6be2c5a8d85ff56 DIST mariadb-connector-c-3.4.5-src.tar.gz 1433040 BLAKE2B 93fed149532fe4606b47bd9827405d0c948fc5f6971ad06cf7169142f23226b3bf1d16366ccdbfc9b3d914ec8c9a109f4b97d966d78059ac620e3ccb3d49256a SHA512 ef0077bc24cea575cf14a4e49ad67ea59a7e5132b74f72284f599be60d0bf8103cd76a7d0eb2ec512b7b7e54ec6a84c11e96f0f23748cdbc50f640ac40b902ee DIST mariadb-connector-c-3.4.7-src.tar.gz 1378870 BLAKE2B 003789822cb3eca355479cf7b7118e2445f264ed334fe24aef2acfb265fd1e1416bc4626cb7f2e7e5a3f9cbdceb7d5ffd42e2e0e616ff7229296b3422d3b42b2 SHA512 56d5e5207f611d06d146eaa86ab5760c25b039d0d9a3f3b6a91449aa7acd7fc884da8139d143ca13d1440a0bfddeb7480b33d9972e4f39660eaa6df30e08518e +DIST mariadb-connector-c-3.4.9-src.tar.gz 1383464 BLAKE2B 8e5e5710f204dcd2218fe21cab8c3b474d68bb9a099caf1448d977f5c2fb494c8c39372efd5de43f16bb73942090a255dcb4cedc11357eb5ae0dc3786ab6c8f9 SHA512 92377a63e98db723b7160525e0c4f4af72c781cae7306e0ff91a915c8e7fd92a161f4fce87476fb1af4fda29997c666d0867650ce18fe5273a25b7f1872166e4 diff --git a/dev-db/mariadb-connector-c/mariadb-connector-c-3.4.9.ebuild b/dev-db/mariadb-connector-c/mariadb-connector-c-3.4.9.ebuild new file mode 100644 index 000000000000..1303832dd7e0 --- /dev/null +++ b/dev-db/mariadb-connector-c/mariadb-connector-c-3.4.9.ebuild @@ -0,0 +1,137 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} == 9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/MariaDB/mariadb-connector-c.git" +else + MY_PN=${PN#mariadb-} + MY_PV=${PV/_b/-b} + SRC_URI="https://archive.mariadb.org/connector-c-${PV}/${P}-src.tar.gz" + S="${WORKDIR%/}/${PN}-${MY_PV}-src" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86" +fi + +inherit cmake-multilib flag-o-matic toolchain-funcs + +DESCRIPTION="C client library for MariaDB/MySQL" +HOMEPAGE="https://mariadb.org/" + +LICENSE="LGPL-2.1" +SLOT="0/3" +IUSE="+curl gnutls kerberos static-libs test" +RESTRICT="!test? ( test )" + +DEPEND=" + app-arch/zstd:=[${MULTILIB_USEDEP}] + virtual/zlib:=[${MULTILIB_USEDEP}] + virtual/libiconv:=[${MULTILIB_USEDEP}] + curl? ( net-misc/curl[${MULTILIB_USEDEP}] ) + gnutls? ( >=net-libs/gnutls-3.3.24:=[${MULTILIB_USEDEP}] ) + !gnutls? ( dev-libs/openssl:=[${MULTILIB_USEDEP}] ) + kerberos? ( + || ( + app-crypt/mit-krb5[${MULTILIB_USEDEP}] + app-crypt/heimdal[${MULTILIB_USEDEP}] + ) + ) +" +BDEPEND="test? ( dev-db/mariadb[server] )" +RDEPEND="${DEPEND} + !<dev-db/mariadb-11.4.7-r1 +" + +MULTILIB_CHOST_TOOLS=( /usr/bin/mariadb_config ) +MULTILIB_WRAPPED_HEADERS+=( /usr/include/mariadb/mariadb_version.h ) + +PATCHES=( + "${FILESDIR}"/${PN}-3.1.3-fix-pkconfig-file.patch +) + +src_prepare() { + local sedargs=( + # These tests the remote_io plugin which requires network access + -e '/{"test_remote1/s:{://&:' + + # These tests don't work with --skip-grant-tables + -e '/{"test_conc366/s:{://&:' + -e '/{"test_conc544/s:{://&:' + -e '/{"test_conc627/s:{://&:' + -e '/{"test_conc66/s:{://&:' + -e '/{"test_parsec/s:{://&:' + + # [Warning] Aborted connection 2078 to db: 'test' user: 'root' host: '' (Got an error reading communication packets) + # Not sure about this one - might also require network access + -e '/{"test_default_auth/s:{://&:' + + # Not sure about this one eighter. It should fail on connection but it + # does not. Maybe because we use domain socket? + -e '/{"test_conc26/s:{://&:' + ) + + sed -i "${sedargs[@]}" unittest/libmariadb/{connection,misc,ps_bugs}.c || die + + cmake_src_prepare +} + +src_configure() { + # mariadb cannot use ld.gold, bug #508724 + tc-ld-is-gold && tc-ld-force-bfd + + # bug #943757 + append-cflags -std=gnu17 + + cmake-multilib_src_configure +} + +multilib_src_configure() { + local mycmakeargs=( + -DWITH_EXTERNAL_ZLIB=ON + -DWITH_SSL:STRING=$(usex gnutls GNUTLS OPENSSL) + -DWITH_CURL=$(usex curl) + -DWITH_ICONV=ON + + # This variable is available only if dependency requirements are met, + # thus the related QA notice is falsely positive in this case. + -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT:STRING=$(usex kerberos DYNAMIC OFF) + + -DMARIADB_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" + -DINSTALL_LIBDIR="$(get_libdir)" + -DINSTALL_MANDIR=share/man + -DINSTALL_PCDIR="$(get_libdir)/pkgconfig" + -DINSTALL_PLUGINDIR="$(get_libdir)/mariadb/plugin" + -DINSTALL_BINDIR=bin + -DWITH_UNIT_TESTS=$(usex test) + ) + + cmake_src_configure +} + +multilib_src_test() { + mkdir -vp "${T}/mysql/data" || die + + mysql_install_db --no-defaults --datadir="${T}/mysql/data" || die + mysqld --no-defaults --datadir="${T}/mysql/data" --socket="${T}/mysql/mysql.sock" --skip-grant-tables --skip-networking & + + local attempts=0 + while ! mysqladmin ping --socket="${T}/mysql/mysql.sock" --silent ; do + # 5 minutes should be more than enough + if [[ ${attempts} -gt 300 ]] ; then + die "mysqld not found after 300 seconds, aborting" + fi + + sleep 1 + attempts=$((attempts + 1)) + done + + cd unittest/libmariadb || die + MYSQL_TEST_SOCKET="${T}/mysql/mysql.sock" MARIADB_CC_TEST=1 ctest --verbose || die +} + +multilib_src_install_all() { + if ! use static-libs ; then + find "${ED}" -name "*.a" -delete || die + fi +} diff --git a/dev-db/mariadb-connector-odbc/Manifest b/dev-db/mariadb-connector-odbc/Manifest index 2d54f952ec3d..a10d82762894 100644 --- a/dev-db/mariadb-connector-odbc/Manifest +++ b/dev-db/mariadb-connector-odbc/Manifest @@ -1,5 +1,4 @@ DIST mariadb-connector-odbc-3.1.18-src.tar.gz 556590 BLAKE2B 9644521f91136b3bc30846d8c9df7cfa21c8fff0e9219bf0c758a0294f34783a57f1200834b84833284624160652315adb4f6eb465a90378e676e5767c7bd40a SHA512 1d240988d03dbb0ef2f4eb0667ff973a35d700f319caaea78db6d5c0ca569ed5adcee978fb10cd9f067c0c5aecbfe697e5adb3d736e564bae82cf6c11cd0dba2 DIST mariadb-connector-odbc-3.1.23-src.tar.gz 574433 BLAKE2B fe44e5d2a03937c7ac5d0e89344fb35d85775526cfe5dce854080deeb0f01f9826ac39a00fc7564b98e7b53f8bcd4665a30db93b65840b15bb7088972855e65e SHA512 873dca00054ad08d836c703a6a0e54ac2fbca17587ebb16c6138afc68f51ee8b8ef92722f10a82548f5d0dc12a8d6442e3fd620b3e2d0a65dfd291c87f6d0561 -DIST mariadb-connector-odbc-3.2.7-src.tar.gz 667911 BLAKE2B 4ffaecb0239ede28fccfd00bd3fbf9cdef6139cbb898ec930c583aa5d690911952355b6998451273838f756f12a46f5335bdd12c97a39d53a9eeb534362e532c SHA512 b9cba5a067e044b312e116dba9faada63ddae379a67aec3abfd29b2d7bf004dedf0241f550f17c296e87765a47cd10793de8a65f4e90c9eff94e0dc5250d5d9f DIST mariadb-connector-odbc-3.2.8-src.tar.gz 686685 BLAKE2B 37844d9d417a35cb955a433cfd9041f868b18f7248271f2a778afd87c625a9c4fff827a61858b6ddab12935383e066a1c81ba6b84546c2a2c7174d4d3c1c0390 SHA512 f92c636f245637b8ae4d745cc5b4042135c42500410d967a6ee319c3872f1e54c6ea99633e6937a8022bba46ac5a3ff3f8bdd30f67c5098230448be5b8fb07ae DIST mariadb-connector-odbc-3.2.9-src.tar.gz 689181 BLAKE2B 605260b36f5ae85797bfac39c581e899fc4321bc053fa21892a0f89b7d0023cf8c0f5931866880ba825d13dc35131cc8cafd1b2a73ebecf26428f85e0a3fcaa7 SHA512 4933f2509fb8179d48a8df90b1a300fad4c05809e04c9af0cfef5e214c9924b951efd90ab555a415147af28223b5b6f4e633e34e85afe98dc4b39559e25aaadc diff --git a/dev-db/mariadb-connector-odbc/mariadb-connector-odbc-3.2.7-r1.ebuild b/dev-db/mariadb-connector-odbc/mariadb-connector-odbc-3.2.7-r1.ebuild deleted file mode 100644 index 5bfb0c4ac5f0..000000000000 --- a/dev-db/mariadb-connector-odbc/mariadb-connector-odbc-3.2.7-r1.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 2018-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib flag-o-matic - -DESCRIPTION="MariaDB Connector/ODBC" -HOMEPAGE="https://mariadb.org/connector-odbc/all-releases/ https://github.com/mariadb-corporation/mariadb-connector-odbc/" -SRC_URI="mirror://mariadb/connector-odbc-${PV}/${P}-src.tar.gz" -S="${S}-src" - -LICENSE="LGPL-2.1" -SLOT="0/$(ver_cut 1-2)" -KEYWORDS="~amd64 ~x86" -IUSE="ssl" - -# USE=ssl merely enables the configuration options (seemingly for interactive -# sessions) and does not cause direct linking to any SSL libraries. However, -# it doesn't make sense enable these configuration options unless the -# underlying mariadb-connector-c has ssl enabled, thus if we have USE=ssl, -# require mariadb-connector-c to have it too. -DEPEND="dev-db/mariadb-connector-c:=[ssl(+)?] - dev-db/unixODBC" -RDEPEND="${DEPEND}" - -src_prepare() { - cmake_src_prepare - - sed -e "s,/lib/,/$(get_libdir)/,g" "${FILESDIR}/odbcinst2.ini" > odbcinst.ini || die -} - -multilib_src_configure() { - append-cppflags $(mariadb_config --cflags || die) - local mycmakeargs=( - -DWITH_SSL=$(usex ssl OPENSSL OFF) - -DMARIADB_LINK_DYNAMIC=YES - -DUSE_SYSTEM_INSTALLED_LIB=YES - -DINSTALL_DOCDIR="/usr/share/doc/${PF}" - -DINSTALL_LICENSEDIR="/usr/share/doc/${PF}" - -DINSTALL_LIBDIR="$(get_libdir)/mariadb" - -DINSTALL_PCDIR="$(get_libdir)/pkgconfig" - #-DCMAKE_C_FLAGS="$(mariadb_config --cflags)" - ) - cmake_src_configure -} - -multilib_src_install_all() { - insinto /usr/share/${PN} - doins odbcinst.ini - - rm "${ED}/usr/share/doc/${PF}/COPYING" || die "Error removing COPYING file from installation" -} - -pkg_postinst() { - elog "Please remember to use emerge --config =${P} to install the ODBC ini files." - elog "Alternatively run: /usr/bin/odbcinst -i -d -f /usr/share/${PN}/odbcinst.ini" -} - -pkg_config() { - [[ -n "${ROOT}" ]] && die "Sorry, non-standard ROOT setting is not supported." - - if /usr/bin/odbcinst -q -d -n maodbc &>/dev/null; then - einfo "maodbc (MariaDB ODBC driver) has already been installed." - else - ebegin "Installing maodbc (MariaDB ODBC driver)" - /usr/bin/odbcinst -i -d -f /usr/share/${PN}/odbcinst.ini - eend ${?} || die - fi -} diff --git a/dev-db/mariadb/Manifest b/dev-db/mariadb/Manifest index f950950c26ec..3fba3497c56f 100644 --- a/dev-db/mariadb/Manifest +++ b/dev-db/mariadb/Manifest @@ -1,14 +1,14 @@ -DIST mariadb-10.11.14.tar.gz 112475645 BLAKE2B f9b83783e1df6366448985ec8a70a3c0757390dcb8a3e603680ae7d8622cb783de3815a784c2514d0da06664a83d8d6121ad770a6cdefe382045331de06bbe86 SHA512 24276e8b0f7ad555bf8faab8e5e065cbaeeb5d92b66964e470f41ac00db29a148e36b0f9f8078392a5fdae4cc3e77df28d0a570ef3735a73f4837ded3a50e476 -DIST mariadb-10.11.15.tar.gz 112564914 BLAKE2B 0de5dc0392f35504490a481a033967d1082b835349294e5012889bd086c3981e2f2922a741d3f986780cb403a5990eb648eb62f0769e3414f602d37d79df07c0 SHA512 98d1e54954b69cf87a96be7d76f80333f27832a29279e6b0a9615b830e171713222abcb9ec9b9a545c0fc4a0f9f8e3d4774babcabf534a6fa3cb3dfdaed0dedc DIST mariadb-10.11.18.tar.gz 114604451 BLAKE2B 1e6ae7a318fb11c8650b06c4974b6e0a964e589f58b0517edbaf2921e5e7a882ce469d5d2311c5cc41ba3ab7b6726091acba723a78027c5759c79f8eb9f46a94 SHA512 45fa3c746138aa51b55d61efe11d44b0476fdcb104d5a40929ca2910145668ae749664e2afed7f9d59825d5b2b14e920c012513a4efa4eb0f8af1607d44ae31b +DIST mariadb-10.11.19.tar.gz 114812324 BLAKE2B 177f7c70b77d19d267aba3cc53e4531c74ba906889129bc8b83b2398844c836a4c2172489fd38c749ae6353fb92d55696bb4ba3da2aff0575243f90538bbfd30 SHA512 99eacc01cd65f93ba9136d75d9b751a6bf35b4a44843f74e9064b26255f3e1683db7556b08df1a74bee04a492945b216d85bb19eeb5eecf0cafd0ce237365af3 DIST mariadb-10.6.23-patches-01.tar.xz 6428 BLAKE2B 74d6bfd6f4fe445b529af8d434c960f5949df33d4bbe6b08cb0af82acda87326914a144b57cdde8c52aab2e993a9d04ea95cd2dc6593f8def0eb8064ed95265a SHA512 6635557451030678e679f2c0f749c25ee0a1dbdb962173c873f2be448c21e9f57bd7685d5c167d61b0631a22ec6bc9170241d6d396ae6d68891d947f80700f0c -DIST mariadb-10.6.23.tar.gz 107141939 BLAKE2B 5a815c7bb212c5a1f20ae860685beeaa3222fac8e07bcdb2de5c56fc532a0aa2b3514df6e47a0bd1833008b07889bcdfc9ce96a2b44f863315f01ed104276648 SHA512 1654c828fef3dc8732dd2285034d0d7c17a828cd6a02561f75f48a6ee134e18f299d18e0be033ca752f963d84290088999bb5373c9971420c7b312cc986c2d72 -DIST mariadb-10.6.24.tar.gz 107184510 BLAKE2B b0059cbf88de3f57b68003ceb6b8040cb523c72de816b2d7c6cad383d96ef8a6edd93e4b0a0a70312eadf4229a209763ceda7d4056e52d555cc1389509286e4d SHA512 f40baaea0a029de05b4665f340eb2e8ad2f4fa79c04f8b60ba947f8c73e5b8516242d781a6eeef6696f2957c0d00eb643dd779d58fc7fb9eba2a10afde9ffc4d -DIST mariadb-10.6.27.tar.gz 109060020 BLAKE2B 0e551e6c46ff4bdcd4ece2852ec6d4d3cfd5ed42ce90098a7f8480030860e7ed373487586a9d95413d2ea308fa6093c85dbf9744feedcdef05f49429863ac4eb SHA512 0a3d9f545af7ddafe1bbcdec19ffdeddd0fb0d3b08d5f90d584eeb7201d6eedf7a3abbbd3090e7249dbaa904b3bd63772d2fbccd2a7929ff2d857e07739ecb18 +DIST mariadb-11.4.13.tar.gz 221118336 BLAKE2B 3d099478db5aa157523e4a70a60490845cae3259a9f436b11bd6e4678ab7fff707c9e54138a36cc2ead751788d170540c89d544a199fc80eb5ab00bc3768def6 SHA512 3b10a8c42472f97720a8adf085475b2ab0677564aade9e8a7f4334ee1888a7779a97f3a68805c9b1e1de595eb164da0d88a8808761436b69411aa7d7237cc281 DIST mariadb-11.4.8-patches-01.tar.xz 6072 BLAKE2B 70882a81f4be5a65e91acda20dd8d2d7eaadfbe1f8f93bb6e41e5d50f88f6c40a6da78e07c80e2d5ab0618502c11448a1d85f0575689c0b4b01f1adc6650fa73 SHA512 0820075e7585c9db92792946dc8940b09fc176bfecfa57177b3ad737e5dafef59dfeab5d1d8ab57b8d3022ea432995da84ab058c015445475074c20df8d3a00f -DIST mariadb-11.4.8.tar.gz 119152572 BLAKE2B 7f61d8fc4fcc70c7a1fdc94781cc3d5275d98c35563831720ae7bb3361ccf920ce249cd7b5639172409253d9fd9c43e076c4a58830bb0bef1580400dea0d5a11 SHA512 4adbe58e1ee478460c1a463032823a3dfe27e3c3a6c2b5002f757744e05efd4392a36e4bb7a473a72b9ba7cb043a15a8a3e309742dcca66f4adf316cbc2e01a3 DIST mariadb-11.4.9.tar.gz 119446773 BLAKE2B 868a9de0ee37f4298afb0a8b77af2b7f9a709bbd5ccbe6825a0f84c1be9df75269e6d1f1a32f69098be73a51d1069070624bc29d2ccfb13b928e3eedd7cc0b5f SHA512 53241230b5d56cd0df72792dbb761f6efd45bea432de78c541ae934785187a9eaf55f2ad12d1cdd34058b21d0ef7c7f7a80b9b719119a1b22359f0a1ac970600 -DIST mariadb-11.8.3.tar.gz 119640174 BLAKE2B e9f4b3c9016faec95292ecbf6842e64362ec8b9ca58e1cd9605f39bc85cc29e36035cf8836130b151b0ef17544431fddff1103a8c465f9c8fed00fda1a44e25a SHA512 c027df64ee8b6f779bbd140b40639757adbfdd239058389b146f6e34f2d6e50441d8084b89088ae243bd7bf261ecbdd4b2d82c43a355d9546d1e51d08c10a8a9 DIST mariadb-11.8.5.tar.gz 119948843 BLAKE2B b091fec1636953f2c35a5cdbe07b9f0920d4d99355e09621fa6634fb6e9d08f68beae95a775e530c8d9afed772e9aa508881c2ed35c2f701bdac00e437193f70 SHA512 0604bf83f23fda7d992e0ad3dfa72b10eef59bdbcdcca486b45dc8a6ea6de66c19e7f21e30a3109a45bf3e3a4210081e4b5544b2ad72c25e91142186cdd9467a DIST mariadb-11.8.6.tar.gz 120887651 BLAKE2B eb80af86d7de29a3b8d20d4f8da2b433c623508d8d541270f415c6da664c23bb7a4ef919251c2f00dcdf5a4f1cb36d7355672c8db61414bd1466033e4cf892a9 SHA512 c623aeb8d2779db22b241e86c80ba7a6104a8019715dc26531ff7a8bd6cadcd029ca5229d0c57c4c472f059ee80b987013bdbf4ad1e2f7b67507d276c972f9e1 -DIST mariadb-12.0.2.tar.gz 119897806 BLAKE2B 1f884d5d9312ffd2556aa96cdacc381e5c9a82d1013182242da265995e3fc56bd6b667e843dfab6640c8e55eb76031d6918c97be0c240ab3f4f9b092033f753b SHA512 fe6846ad83d595cf8d0e015a227b033cb89f5d22b3aec616a44f621ff73d2296f1a45a4daaf8ff79e86f24012e9185a01f34fa6feef997db03bdac48d139db90 +DIST mariadb-11.8.9.tar.gz 221699796 BLAKE2B 57ecb7dc8245e1106e5f846e9eaeccd213faf74ae34c01074438fb46490906a099d6b90d8930507d68828afa4494cdaac7ae28819ff1187ce1266bed49be1cb9 SHA512 8b49a3a7e9435f5732512d0fa3b06bba72422f646398ed48da142a9c00a7adbeb6c505fa18216667c00b681ef51cf694475407adf2cbcae0e8a83b76bc81265a +DIST mariadb-12.3.3.tar.gz 222927580 BLAKE2B ca92a9dc85eee870a955696cad5c35501ca0c33ba676c82704fbdb9bbdfa21ec28354fce58558747aa99995021ca36f97e6211e391560eb6650f2ea9541149cf SHA512 b9f4d063bbed1aaad52992228e6ac9572fa224509d807da8569a89e87803665148ac74204de72a8256791d844c81e5c6d43e7b16fea15c5c1aceed678f4fd634 +DIST mariadb-patches-10.11.19-0.tar.bz2 6970 BLAKE2B de5e3d9414d73b206bf186478c0f8e793a8b007c461d36ad74c74b4c312227a0d5f150266634524e085e7004983dcd710a0ccffe2a379a3f910209c455a51595 SHA512 78153378061e70a14cae449b6437c614f535ba2cd3735b34211a63d1b758a81a3fb1417b2cab900cd67d55b43fbd3cf40aff815e5113ea4a4683b04e30785518 +DIST mariadb-patches-11.4.13-0.tar.bz2 6357 BLAKE2B ead41be3deecb97154a0e6edb9a0655fe09caf9e4b2125fcf821c5373b66a058cfb95cdf02e3534a1d10bbf5976725b6f247b1b98cfe0f54fc437e18f7fb9c39 SHA512 9a04ed96be34bc1321c398b06fbb05ca1757f2d3c2d44ff96a33fb38f3e1d895de5f97bdace8ea4e043fce24ed2379fbb24234569923aca7c9b9745c650259d7 +DIST mariadb-patches-11.8.9-1.tar.bz2 6420 BLAKE2B a2517b40c1fcddfcf664da458e33ac0059a4a2340edb25657492a6459d58631ed367aaeda6c801d08e156ef54180cd08893fbb99f4303baf0cf617378e942b21 SHA512 5906ee6403f01c8db781bcdeec9409261427eb0d04c6639a44f65526fad8539ac0dbae4057a1eeb5124dc654f84615af2505b0f3b2e13fb6272ec5181717c278 +DIST mariadb-patches-12.3.3-0.tar.bz2 6223 BLAKE2B ff82a3f077f16c2969874288a216380a55aaf94a587f2ac8d37a0ba0f435b6fbb76cd7e6fed02bf20194b799a0717754269d413a3309acf4bd18320ebbb9bb6c SHA512 ddb26423339181a2340ee1c6566b88abcaea7671b8fef709083ea7aa87118aab2c829e58a6c377bfa68a2ef4f66d2478df28ed30b2b117a9a7bd24ef4a4e4f57 diff --git a/dev-db/mariadb/mariadb-10.11.14-r1.ebuild b/dev-db/mariadb/mariadb-10.11.14-r1.ebuild deleted file mode 100644 index a8fc03fb8078..000000000000 --- a/dev-db/mariadb/mariadb-10.11.14-r1.ebuild +++ /dev/null @@ -1,1336 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -SUBSLOT="18" -JAVA_PKG_OPT_USE="jdbc" - -inherit systemd flag-o-matic prefix toolchain-funcs \ - multiprocessing java-pkg-opt-2 cmake - -DESCRIPTION="An enhanced, drop-in replacement for MySQL" -HOMEPAGE="https://mariadb.org/" -SRC_URI=" - mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6.23-patches-01.tar.xz -" -# Shorten the path because the socket path length must be shorter than 107 chars -# and we will run a mysql server during test phase -S="${WORKDIR}/mysql" - -LICENSE="GPL-2 LGPL-2.1+" -SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 x86" -IUSE="+backup bindist columnstore cracklib debug extraengine galera innodb-lz4 - innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga - numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx - sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc - test xml yassl" - -RESTRICT="!bindist? ( bindist ) !test? ( test )" - -REQUIRED_USE="jdbc? ( extraengine server !static ) - ?? ( tcmalloc jemalloc ) - static? ( yassl !pam ) - test? ( extraengine )" - -# Be warned, *DEPEND are version-dependant -# These are used for both runtime and compiletime -COMMON_DEPEND=" - dev-libs/libfmt:= - >=dev-libs/libpcre2-10.34:= - >=sys-apps/texinfo-4.7-r1 - sys-libs/ncurses:0= - >=virtual/zlib-1.2.3:= - virtual/libcrypt:= - !bindist? ( - sys-libs/binutils-libs:0= - >=sys-libs/readline-4.1:0= - ) - jemalloc? ( dev-libs/jemalloc:0= ) - kerberos? ( virtual/krb5 ) - kernel_linux? ( - dev-libs/libaio:0= - sys-libs/liburing:= - sys-process/procps:0= - ) - server? ( - app-arch/bzip2 - app-arch/xz-utils - backup? ( app-arch/libarchive:0= ) - columnstore? ( - app-arch/snappy:= - dev-libs/boost:= - dev-libs/libxml2:2= - ) - cracklib? ( sys-libs/cracklib:0= ) - extraengine? ( - odbc? ( dev-db/unixODBC:0= ) - xml? ( dev-libs/libxml2:2= ) - ) - innodb-lz4? ( app-arch/lz4 ) - innodb-lzo? ( dev-libs/lzo ) - innodb-snappy? ( app-arch/snappy:= ) - mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 ) - numa? ( sys-process/numactl ) - oqgraph? ( - dev-libs/boost:= - dev-libs/judy:0= - ) - pam? ( sys-libs/pam:0= ) - s3? ( net-misc/curl ) - systemd? ( sys-apps/systemd:= ) - ) - systemtap? ( >=dev-debug/systemtap-1.3:0= ) - tcmalloc? ( dev-util/google-perftools:0= ) - yassl? ( net-libs/gnutls:0= ) - !yassl? ( - >=dev-libs/openssl-1.0.0:0= - ) -" -BDEPEND=" - app-alternatives/yacc - test? ( - acct-group/mysql - acct-user/mysql - ) -" -DEPEND="${COMMON_DEPEND} - server? ( - extraengine? ( jdbc? ( >=virtual/jdk-1.8 ) ) - ) - static? ( sys-libs/ncurses[static-libs] ) -" -RDEPEND="${COMMON_DEPEND} - !dev-db/mysql !dev-db/percona-server - !dev-db/mariadb:10.3 - !dev-db/mariadb:10.4 - !dev-db/mariadb:10.5 - !dev-db/mariadb:10.6 - !dev-db/mariadb:10.7 - !dev-db/mariadb:10.8 - !dev-db/mariadb:10.9 - !dev-db/mariadb:10.10 - !dev-db/mariadb:11.0 - !dev-db/mariadb:11.1 - !dev-db/mariadb:11.2 - !dev-db/mariadb:11.3 - !dev-db/mariadb:11.4 - selinux? ( sec-policy/selinux-mysql ) - server? ( - columnstore? ( - dev-db/mariadb-connector-c - !dev-libs/thrift - ) - extraengine? ( jdbc? ( >=virtual/jre-1.8 ) ) - galera? ( - sys-apps/iproute2 - =sys-cluster/galera-26* - sst-rsync? ( sys-process/lsof ) - sst-mariabackup? ( net-misc/socat[ssl] ) - ) - !prefix? ( - acct-group/mysql - acct-user/mysql - dev-db/mysql-init-scripts - ) - ) -" -# For other stuff to bring us in -# dev-perl/DBD-MariaDB is needed by some scripts installed by MySQL -PDEPEND="perl? ( dev-perl/DBD-MariaDB )" - -mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"} - - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="" - if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then - MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR=$(grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ - | sed -e 's/.*=\s*//' \ - | tail -n1) - fi - fi - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="${MY_LOCALSTATEDIR}" - einfo "Using default MY_DATADIR" - fi - elog "MySQL MY_DATADIR is ${MY_DATADIR}" - - if [[ -z "${PREVIOUS_DATADIR}" ]] ; then - if [[ -e "${MY_DATADIR}" ]] ; then - # If you get this and you're wondering about it, see bug #207636 - elog "MySQL datadir found in ${MY_DATADIR}" - elog "A new one will not be created." - PREVIOUS_DATADIR="yes" - else - PREVIOUS_DATADIR="no" - fi - export PREVIOUS_DATADIR - fi - else - if [[ ${EBUILD_PHASE} == "config" ]]; then - local new_MY_DATADIR - new_MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - - if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then - ewarn "MySQL MY_DATADIR has changed" - ewarn "from ${MY_DATADIR}" - ewarn "to ${new_MY_DATADIR}" - MY_DATADIR="${new_MY_DATADIR}" - fi - fi - fi - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LOCALSTATEDIR MY_LOGDIR - export MY_DATADIR -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if has test ${FEATURES} ; then - # Bug #213475 - MySQL _will_ object strenuously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if ! has userpriv ${FEATURES} ; then - die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." - fi - fi - fi - - java-pkg-opt-2_pkg_setup -} - -src_unpack() { - unpack ${A} - - mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die -} - -src_prepare() { - eapply "${WORKDIR}"/mariadb-patches - eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch - eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch - - eapply_user - - _disable_plugin() { - echo > "${S}/plugin/${1}/CMakeLists.txt" || die - } - _disable_engine() { - echo > "${S}/storage/${1}/CMakeLists.txt" || die - } - - if use jemalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC jemalloc)" >> "${S}/sql/CMakeLists.txt" - elif use tcmalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC tcmalloc)" >> "${S}/sql/CMakeLists.txt" - fi - - local plugin - local server_plugins=( handler_socket auth_socket feedback metadata_lock_info - locale_info qc_info server_audit sql_errlog auth_ed25519 ) - local test_plugins=( audit_null auth_examples daemon_example fulltext - debug_key_management example_key_management versioning ) - if ! use server; then # These plugins are for the server - for plugin in "${server_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - fi - - if ! use test; then # These plugins are only used during testing - for plugin in "${test_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - _disable_engine test_sql_discovery - echo > "${S}/plugin/auth_pam/testing/CMakeLists.txt" || die - fi - - _disable_engine example - - if ! use oqgraph ; then # avoids extra library checks - _disable_engine oqgraph - fi - - if use mroonga ; then - # Remove the bundled groonga - # There is no CMake flag, it simply checks for existance - rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga" - else - _disable_engine mroonga - fi - - # Fix static bindings in galera replication - sed -i -e 's~add_library(wsrep_api_v26$~add_library(wsrep_api_v26 STATIC~' \ - "${S}"/wsrep-lib/wsrep-API/CMakeLists.txt || die - sed -i -e 's~add_library(wsrep-lib$~add_library(wsrep-lib STATIC~' \ - "${S}"/wsrep-lib/src/CMakeLists.txt || die - - # Fix galera_recovery.sh script - sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \ - scripts/galera_recovery.sh || die - - sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \ - "${S}"/scripts/mysql_install_db.sh || die - - cmake_src_prepare - java-pkg-opt-2_src_prepare -} - -src_configure() { - # bug #855233 (MDEV-11914, MDEV-25633) at least - filter-lto - # bug 508724 mariadb cannot use ld.gold - tc-ld-is-gold && tc-ld-force-bfd - # Bug #114895, bug #110149 - filter-flags "-O" "-O[01]" - - use elibc_musl && append-flags -D_LARGEFILE64_SOURCE - - # It fails on alpha without this - use alpha && append-ldflags "-Wl,--no-relax" - - # bug #945352 - append-cflags -std=gnu17 - - append-cxxflags -felide-constructors - - # bug #283926, with GCC4.4, this is required to get correct behavior. - append-flags -fno-strict-aliasing - - # Workaround for bug #959423 (https://jira.mariadb.org/browse/MDEV-37148) - append-flags -fno-tree-vectorize - - # debug hack wrt #497532 - local mycmakeargs=( - -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql" - -DSYSCONFDIR="${EPREFIX}/etc/mysql" - -DINSTALL_BINDIR=bin - -DINSTALL_DOCDIR=share/doc/${PF} - -DINSTALL_DOCREADMEDIR=share/doc/${PF} - -DINSTALL_INCLUDEDIR=include/mysql - -DINSTALL_INFODIR=share/info - -DINSTALL_LIBDIR=$(get_libdir) - -DINSTALL_MANDIR=share/man - -DINSTALL_MYSQLSHAREDIR=share/mariadb - -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin - -DINSTALL_SCRIPTDIR=bin - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" - -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" - -DWITH_COMMENT="Gentoo Linux ${PF}" - -DWITH_UNIT_TESTS=$(usex test ON OFF) - -DWITH_LIBEDIT=0 - -DWITH_LIBFMT=system - -DWITH_ZLIB=system - -DWITHOUT_LIBWRAP=1 - -DENABLED_LOCAL_INFILE=1 - -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DWITH_DEFAULT_COMPILER_OPTIONS=0 - -DWITH_DEFAULT_FEATURE_SET=0 - -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" - # The build forces this to be defined when cross-compiling. We pass it - # all the time for simplicity and to make sure it is actually correct. - -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) - -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) - -DCONC_WITH_EXTERNAL_ZLIB=YES - -DWITH_EXTERNAL_ZLIB=YES - -DSUFFIX_INSTALL_DIR="" - -DWITH_UNITTEST=OFF - -DWITHOUT_CLIENTLIBS=YES - -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF - -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF - -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC - -DCLIENT_PLUGIN_ZSTD=OFF - ) - if use test ; then - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test ) - else - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' ) - fi - - if ! use yassl ; then - mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC ) - else - mycmakeargs+=( -DWITH_SSL=bundled ) - fi - - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - mycmakeargs+=( - -DDTRACE="${BROOT}"/usr/bin/stap-dtrace - ) - fi - - # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION - mycmakeargs+=( - -DWITH_READLINE=$(usex bindist 1 0) - -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) - -DENABLE_DTRACE=$(usex systemtap) - ) - - if use server ; then - # Connect and Federated{,X} must be treated special - # otherwise they will not be built as plugins - if ! use extraengine ; then - mycmakeargs+=( - -DPLUGIN_CONNECT=NO - -DPLUGIN_FEDERATED=NO - -DPLUGIN_FEDERATEDX=NO - ) - fi - - mycmakeargs+=( - -DWITH_PCRE=system - -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) - -DPLUGIN_SPHINX=$(usex sphinx YES NO) - -DPLUGIN_AUTH_PAM=$(usex pam YES NO) - -DPLUGIN_AWS_KEY_MANAGEMENT=NO - -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) - -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) - -DPLUGIN_SPIDER=$(usex extraengine YES NO) - -DPLUGIN_S3=$(usex s3 YES NO) - -DPLUGIN_COLUMNSTORE=$(usex columnstore YES NO) - -DCONNECT_WITH_MYSQL=1 - -DCONNECT_WITH_LIBXML2=$(usex xml) - -DCONNECT_WITH_ODBC=$(usex odbc) - -DCONNECT_WITH_JDBC=$(usex jdbc) - # Build failure and autodep wrt bug 639144 - -DCONNECT_WITH_MONGO=OFF - -DWITH_WSREP=$(usex galera) - -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) - -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) - -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) - -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DWITH_MARIABACKUP=$(usex backup ON OFF) - -DWITH_LIBARCHIVE=$(usex backup ON OFF) - -DINSTALL_SQLBENCHDIR="" - -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) - # systemd is only linked to for server notification - -DWITH_SYSTEMD=$(usex systemd yes no) - -DWITH_NUMA=$(usex numa ON OFF) - ) - - if use test ; then - # This is needed for the new client lib which tests a real, open server - mycmakeargs+=( -DSKIP_TESTS=ON ) - fi - - if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then - ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" - ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." - ewarn "You MUST file bugs without these variables set." - - mycmakeargs+=( - -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} - -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} - ) - - elif ! use latin1 ; then - mycmakeargs+=( - -DDEFAULT_CHARSET=utf8mb4 - -DDEFAULT_COLLATION=utf8mb4_unicode_520_ci - ) - else - mycmakeargs+=( - -DDEFAULT_CHARSET=latin1 - -DDEFAULT_COLLATION=latin1_swedish_ci - ) - fi - mycmakeargs+=( - -DEXTRA_CHARSETS=all - -DMYSQL_USER=mysql - -DDISABLE_SHARED=$(usex static YES NO) - -DWITH_DEBUG=$(usex debug) - -DWITH_EMBEDDED_SERVER=OFF - -DWITH_PROFILING=$(usex profiling) - ) - - if use static; then - mycmakeargs+=( -DWITH_PIC=1 ) - fi - - if use jemalloc || use tcmalloc ; then - mycmakeargs+=( -DWITH_SAFEMALLOC=OFF ) - fi - - # Storage engines - mycmakeargs+=( - -DWITH_ARCHIVE_STORAGE_ENGINE=1 - -DWITH_BLACKHOLE_STORAGE_ENGINE=1 - -DWITH_CSV_STORAGE_ENGINE=1 - -DWITH_HEAP_STORAGE_ENGINE=1 - -DWITH_INNOBASE_STORAGE_ENGINE=1 - -DWITH_MYISAMMRG_STORAGE_ENGINE=1 - -DWITH_MYISAM_STORAGE_ENGINE=1 - -DWITH_PARTITION_STORAGE_ENGINE=1 - ) - else - mycmakeargs+=( - -DWITHOUT_SERVER=1 - -DWITH_EMBEDDED_SERVER=OFF - -DEXTRA_CHARSETS=none - -DINSTALL_SQLBENCHDIR= - -DWITH_SYSTEMD=no - ) - fi - - cmake_src_configure -} - -src_compile() { - cmake_src_compile -} - -# Official test instructions: -# USE='extraengine perl server' \ -# FEATURES='test userpriv' \ -# ebuild mariadb-X.X.XX.ebuild \ -# digest clean package -src_test() { - _disable_test() { - local rawtestname bug reason - rawtestname="${1}" ; shift - bug="${1}" ; shift - reason="${@}" - ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})" - echo "${rawtestname} : BUG#${bug} ${reason}" >> "${T}/disabled.def" - } - - local TESTDIR="${BUILD_DIR}/mysql-test" - local retstatus_tests - - if ! use server ; then - einfo "Skipping server tests due to minimal build." - return 0 - fi - - # Ensure that parallel runs don't die - export MTR_BUILD_THREAD="$((${RANDOM} % 100))" - - if [[ -z "${MTR_PARALLEL}" ]] ; then - local -x MTR_PARALLEL=$(makeopts_jobs) - - if [[ ${MTR_PARALLEL} -gt 4 ]] ; then - # Running multiple tests in parallel usually require higher ulimit - # and fs.aio-max-nr setting. In addition, tests like main.multi_update - # are known to hit timeout when system is busy. - # To avoid test failure we will limit MTR_PARALLEL to 4 instead of - # using "auto". - local info_msg="Parallel MySQL test suite jobs limited to 4 (MAKEOPTS=${MTR_PARALLEL})" - info_msg+=" to avoid test failures. Set MTR_PARALLEL if you know what you are doing!" - einfo "${info_msg}" - unset info_msg - MTR_PARALLEL=4 - fi - else - einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'" - fi - - # Try to increase file limits to increase test coverage - if ! ulimit -n 16500 1>/dev/null 2>&1 ; then - # Upper limit comes from parts.partition_* tests - ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager." - - if ! ulimit -n 4162 1>/dev/null 2>&1 ; then - # Medium limit comes from '[Warning] Buffered warning: Could not - # increase number of max_open_files to more than 3000 (request: 4162)' - ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager." - - if ! ulimit -n 3000 1>/dev/null 2>&1 ; then - ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager." - else - einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 4162 (medium test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 16500 (best test coverage)." - fi - - # create directories because mysqladmin might run out of order - mkdir -p "${T}"/var-tests{,/log} || die - - if [[ ! -f "${S}/mysql-test/unstable-tests" ]] ; then - touch "${S}"/mysql-test/unstable-tests || die - fi - - cp "${S}"/mysql-test/unstable-tests "${T}/disabled.def" || die - - local disabled_tests=( - "innodb_gis.1;MDEV-25095;Known rounding error with latest AMD processors" - "innodb_gis.gis;MDEV-25095;Known rounding error with latest AMD processors" - "main.gis;MDEV-25095;Known rounding error with latest AMD processors" - - # Test which fail in network-sandbox because hostname is set to "localhost" - "main.explain_non_select;0;Fails in network-sandbox" - "main.mysql_upgrade;MDEV-27044;Fails in network-sandbox" - "main.selectivity_no_engine;MDEV-26320;Fails in network-sandbox" - "main.stat_tables;0;Fails in network-sandbox" - "main.stat_tables_innodb;0;Fails in network-sandbox" - "main.upgrade_MDEV-19650;MDEV-25096;Fails in network-sandbox" - "perfschema.privilege_table_io;MDEV-27045;Fails in network-sandbox" - "roles.acl_statistics;0;Fails in network-sandbox" - - # Some tests are unable to retrieve HW address - "spider.*;MDEV-37098;Fails with network sandbox" - ) - - use latin1 || disabled_tests+=( - "funcs_1.is_columns_mysql;0;Requires USE=latin1" - "main.information_schema;0;Requires USE=latin1" - "main.sp2;24177;Requires USE=latin1" - "main.system_mysql_db;0;Requires USE=latin1" - "main.upgrade_MDEV-19650;24178;Requires USE=latin1" - ) - - local test_infos_str test_infos_arr - for test_infos_str in "${disabled_tests[@]}" ; do - IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}" - - if [[ ${#test_infos_arr[@]} != 3 ]] ; then - die "Invalid test data set, not matching format: ${test_infos_str}" - fi - - _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}" - done - unset test_infos_str test_infos_arr - - # run mysql-test tests - pushd "${TESTDIR}" &>/dev/null || die - perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test-list="${T}/disabled.def" - retstatus_tests=$? - - popd &>/dev/null || die - - # Cleanup is important for these testcases. - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - - local failures="" - [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests" - - [[ -z "${failures}" ]] || die "Test failures: ${failures}" - einfo "Tests successfully completed" -} - -src_install() { - cmake_src_install - - # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used - if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then - rm "${ED}/usr/include/mysql/server/private/config.h" || die - fi - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Convenience links - einfo "Making Convenience links for mysqlcheck multi-call binary" - dosym "mysqlcheck" "/usr/bin/mysqlanalyze" - dosym "mysqlcheck" "/usr/bin/mysqlrepair" - dosym "mysqlcheck" "/usr/bin/mysqloptimize" - - # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir - if [[ -d "${ED}/usr/data" ]] ; then - rm -Rf "${ED}/usr/data" || die - fi - - # Unless they explicitly specific USE=test, then do not install the - # testsuite. It DOES have a use to be installed, esp. when you want to do a - # validation of your database configuration after tuning it. - if ! use test ; then - rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test" - fi - - # Configuration stuff - einfo "Building default configuration ..." - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}" - [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf - cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die - eprefixify "${TMPDIR}/my.cnf" - doins "${TMPDIR}/my.cnf" - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}/mariadb.d" - cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die - eprefixify "${TMPDIR}/50-distro-client.cnf" - doins "${TMPDIR}/50-distro-client.cnf" - - if use server ; then - mycnf_src="my.cnf.distro-server" - sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ - "${FILESDIR}/${mycnf_src}" \ - > "${TMPDIR}/my.cnf.ok" || die - if use prefix ; then - sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \ - "${TMPDIR}/my.cnf.ok" || die - fi - if use latin1 ; then - sed -i \ - -e "/character-set/s|utf8|latin1|g" \ - "${TMPDIR}/my.cnf.ok" || die - fi - eprefixify "${TMPDIR}/my.cnf.ok" - newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf - - einfo "Including support files and sample configurations" - docinto "support-files" - local script - for script in \ - "${S}"/support-files/magic - do - [[ -f "$script" ]] && dodoc "${script}" - done - - docinto "scripts" - for script in "${S}"/scripts/mysql* ; do - [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" - done - # Manually install supporting files that conflict with other packages - # but are needed for galera and initial installation - exeinto /usr/libexec/mariadb - doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror" - - if use pam ; then - keepdir /usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir - fi - fi - - # Conflicting files - conflicting_files=() - - # We prefer my_print_defaults from dev-db/mysql-connector-c - conflicting_files=( "${ED}/usr/share/man/man1/my_print_defaults.1" ) - - # Remove bundled mytop in favor of dev-db/mytop - conflicting_files+=( "${ED}/usr/bin/mytop" ) - conflicting_files+=( "${ED}/usr/share/man/man1/mytop.1" ) - - local conflicting_file - for conflicting_file in "${conflicting_files[@]}" ; do - if [[ -e "${conflicting_file}" ]] ; then - rm -v "${conflicting_file}" || die - fi - done - - # Fix a dangling symlink when galera is not built - if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then - rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die - fi - - # Remove dangling symlink - rm "${ED}/usr/$(get_libdir)/libmariadb.a" || die - - # Remove broken SST scripts that are incompatible - local scriptremove - for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do - if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then - rm "${ED}/usr/bin/${scriptremove}" || die - fi - done -} - -pkg_preinst() { - java-pkg-opt-2_pkg_preinst -} - -pkg_postinst() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Create log directory securely if it does not exist - [[ -d "${ROOT}/${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}/${MY_LOGDIR}" - - if use server ; then - if use pam; then - einfo - elog "This install includes the PAM authentication plugin." - elog "To activate and configure the PAM plugin, please read:" - elog "https://mariadb.com/docs/server/reference/plugins/authentication-plugins/authentication-with-pluggable-authentication-modules-pam/authentication-plugin-pam" - einfo - chown mysql:mysql "${EROOT}/usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir" || die - fi - - if [[ -z "${REPLACING_VERSIONS}" ]] ; then - einfo - elog "You might want to run:" - elog "\"emerge --config =${CATEGORY}/${PF}\"" - elog "if this is a new install." - elog - elog "If you are switching server implentations, you should run the" - elog "mysql_upgrade tool." - einfo - else - einfo - elog "If you are upgrading major versions, you should run the" - elog "mysql_upgrade tool." - einfo - fi - - if use galera ; then - einfo - elog "Be sure to edit the my.cnf file to activate your cluster settings." - elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\"" - elog "The first time the cluster is activated, you should add" - elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node." - elog "This option should then be removed for subsequent starts." - einfo - fi - fi - - # Note about configuration change - einfo - elog "This version of mariadb reorganizes the configuration from a single my.cnf" - elog "to several files in /etc/mysql/${PN}.d." - elog "Please backup any changes you made to /etc/mysql/my.cnf" - elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension." - elog "You may have as many files as needed and they are read alphabetically." - elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." - einfo -} - -pkg_config() { - _getoptval() { - local section="${1}" - local option="--${2}" - local extra_options="${3}" - local cmd=( - "${my_print_defaults_binary}" - "${extra_options}" - "${section}" - ) - - local values=() - local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) - for parameter in "${parameters[@]}" - do - # my_print_defaults guarantees output of options, one per line, - # in the form that they would be specified on the command line. - # So checking for --option=* should be safe. - case ${parameter} in - ${option}=*) - values+=( "${parameter#*=}" ) - ;; - esac - done - - if [[ ${#values[@]} -gt 0 ]] ; then - # Option could have been set multiple times - # in which case only the last occurrence - # contains the current value - echo "${values[-1]}" - fi - } - - _mktemp_dry() { - # emktemp has no --dry-run option - local template="${1}" - - if [[ -z "${template}" ]] ; then - if [[ -z "${T}" ]] ; then - template="/tmp/XXXXXXX" - else - template="${T}/XXXXXXX" - fi - fi - - local template_wo_X=${template//X/} - local n_X - let n_X=${#template}-${#template_wo_X} - if [[ ${n_X} -lt 3 ]] ; then - echo "${FUNCNAME[0]}: too few X's in template '${template}'" >&2 - return - fi - - local attempts=0 - local character tmpfile - while [[ true ]] ; do - let attempts=attempts+1 - - new_file= - while read -n1 character ; do - if [[ "${character}" == "X" ]] ; then - tmpfile+="${RANDOM:0:1}" - else - tmpfile+="${character}" - fi - done < <(echo -n "${template}") - - if [[ ! -f "${tmpfile}" ]] - then - echo "${tmpfile}" - return - fi - - if [[ ${attempts} -ge 100 ]] ; then - echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2 - return - fi - done - } - - local mysql_binary="${EROOT}/usr/bin/mysql" - if [[ ! -x "${mysql_binary}" ]] ; then - die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysqld_binary="${EROOT}/usr/sbin/mysqld" - if [[ ! -x "${mysqld_binary}" ]] ; then - die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysql_install_db_binary="${EROOT}/usr/bin/mysql_install_db" - if [[ ! -x "${mysql_install_db_binary}" ]] ; then - die "'${mysql_install_db_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" - if [[ ! -x "${my_print_defaults_binary}" ]] ; then - die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" - fi - - if [[ -z "${MYSQL_USER}" ]] ; then - MYSQL_USER=mysql - if use prefix ; then - MYSQL_USER=$(id -u -n 2>/dev/null) - if [[ -z "${MYSQL_USER}" ]] ; then - die "Failed to determine current username!" - fi - fi - fi - - if [[ -z "${MYSQL_GROUP}" ]] ; then - MYSQL_GROUP=mysql - if use prefix ; then - MYSQL_GROUP=$(id -g -n 2>/dev/null) - if [[ -z "${MYSQL_GROUP}" ]] ; then - die "Failed to determine current user groupname!" - fi - fi - fi - - # my_print_defaults needs to read stuff in $HOME/.my.cnf - local -x HOME="${EROOT}/root" - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Read currently set data directory - MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - - # Bug #213475 - MySQL _will_ object strenously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if [[ -z "${MY_DATADIR}" ]] ; then - die "Sorry, unable to find MY_DATADIR!" - elif [[ -d "${MY_DATADIR}/mysql" ]] ; then - ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!" - ewarn "Please rename or delete its content if you wish to initialize a new data directory." - die "${PN} data directory at '${MY_DATADIR}' looks already initialized!" - fi - - MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_TMPDIR=${MYSQL_TMPDIR%/} - # These are dir+prefix - MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*} - MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*} - - # Create missing directories. - # Always check if mysql user can write to directory even if we just - # created directory because a parent directory might be not - # accessible for that user. - PID_DIR="${EROOT}/run/mysqld" - if [[ ! -d "${PID_DIR}" ]] ; then - einfo "Creating ${PN} PID directory '${PID_DIR}' ..." - install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \ - || die "Failed to create PID directory '${PID_DIR}'!" - fi - - local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_pid_dir_testfile}" ]] \ - && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_pid_dir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!" - else - rm "${_pid_dir_testfile}" || die - unset _pid_dir_testfile - fi - - if [[ ! -d "${MY_DATADIR}" ]] ; then - einfo "Creating ${PN} data directory '${MY_DATADIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \ - || die "Failed to create ${PN} data directory '${MY_DATADIR}'!" - fi - - local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_datadir_testfile}" ]] \ - && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_datadir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!" - else - rm "${_my_datadir_testfile}" || die - unset _my_datadir_testfile - fi - - if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then - einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \ - || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!" - fi - - if [[ -z "${MYSQL_TMPDIR}" ]] ; then - MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")" - [[ -z "${MYSQL_TMPDIR}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!" - - mkdir "${MYSQL_TMPDIR}" || die - chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die - fi - - # Now we need to test MYSQL_TMPDIR... - local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_tmpdir_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_tmpdir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!" - else - rm "${_my_tmpdir_testfile}" || die - unset _my_tmpdir_testfile - fi - - if [[ "${MYSQL_LOG_BIN}" == /* && ! -d "${MYSQL_LOG_BIN}" ]] ; then - # Only create directory when MYSQL_LOG_BIN is an absolute path - einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \ - || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'" - fi - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Only test when MYSQL_LOG_BIN is an absolute path - local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_logbin_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_logbin_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!" - else - rm "${_my_logbin_testfile}" || die - unset _my_logbin_testfile - fi - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* && ! -d "${MYSQL_RELAY_LOG}" ]] ; then - # Only create directory when MYSQL_RELAY_LOG is an absolute path - einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \ - || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Only test when MYSQL_RELAY_LOG is an absolute path - local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_relaylog_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_relaylog_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!" - else - rm "${_my_relaylog_testfile}" || die - unset _my_relaylog_testfile - fi - fi - - local SETUP_TMPDIR=$(mktemp -d "/tmp/${PN}-config.XXXXXXXXX" 2>/dev/null) - [[ -z "${SETUP_TMPDIR}" ]] && die "Failed to create setup tmpdir" - - # Limit access - chmod 0770 "${SETUP_TMPDIR}" || die - chown ${MYSQL_USER} "${SETUP_TMPDIR}" || die - - local mysql_install_log="${SETUP_TMPDIR}/install_db.log" - local mysqld_logfile="${SETUP_TMPDIR}/mysqld.log" - - echo "" - einfo "Detected settings:" - einfo "==================" - einfo "MySQL User:\t\t\t\t${MYSQL_USER}" - einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}" - einfo "MySQL DATA directory:\t\t${MY_DATADIR}" - einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}" - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Absolute path for binary log files specified - einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Absolute path for relay log files specified - einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}" - fi - - einfo "PID DIR:\t\t\t\t${PID_DIR}" - einfo "Install db log:\t\t\t${mysql_install_log}" - einfo "Install server log:\t\t\t${mysqld_logfile}" - - echo - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local tmp_mysqld_password_source= - - for tmp_mysqld_password_source in mysql client ; do - einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" - if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then - if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then - ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!" - MYSQL_ROOT_PASSWORD= - continue - fi - - einfo "Found password in '${tmp_mysqld_password_source}' section!" - break - fi - done - - # Sometimes --show is required to display passwords in some implementations of my_print_defaults - if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" - fi - - unset tmp_mysqld_password_source - fi - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local pwd1="a" - local pwd2="b" - - echo - einfo "No password for mysql 'root' user was specified via environment" - einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config" - einfo "file like '${HOME}/.my.cnf'." - einfo "To continue please provide a password for the mysql 'root' user" - einfo "now on console:" - ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!" - read -rsp " >" pwd1 ; echo - - einfo "Retype the password" - read -rsp " >" pwd2 ; echo - - if [[ "x${pwd1}" != "x${pwd2}" ]] ; then - die "Passwords are not the same!" - fi - - MYSQL_ROOT_PASSWORD="${pwd1}" - unset pwd1 pwd2 - - echo - fi - - local -a mysqld_options - - # Fix bug 446200. Don't reference host my.cnf, needs to come first, - # see http://bugs.mysql.com/bug.php?id=31312 - use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" ) - - # Figure out which options we need to disable to do the setup - local helpfile="${TMPDIR}/mysqld-help" - "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null - - local opt optexp optfull - for opt in host-cache name-resolve networking slave-start \ - federated ssl log-bin relay-log slow-query-log external-locking \ - log-slave-updates \ - ; do - optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}" - grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" ) - done - - # Prepare timezones, see - # https://dev.mysql.com/doc/mysql/en/time-zone-support.html - local tz_sql="${SETUP_TMPDIR}/tz.sql" - - echo "USE mysql;" >"${tz_sql}" - "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null - if [[ $? -ne 0 ]] ; then - die "mysql_tzinfo_to_sql failed!" - fi - - local cmd=( - "${mysql_install_db_binary}" - "${mysqld_options[@]}" - "--init-file='${tz_sql}'" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - "--log-error='${mysql_install_log}'" - "--rpm" - "--cross-bootstrap" - "--skip-test-db" - "--user=${MYSQL_USER}" - ) - - einfo "Initializing ${PN} data directory: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1 - - if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql/user.frm" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2 - die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!" - fi - - local x=${RANDOM} - local socket="${PID_DIR}/mysqld.${x}.sock" - [[ -f "${socket}" ]] && die "Randomness failed; Socket ${socket} already exists!" - local pidfile="${PID_DIR}/mysqld.${x}.pid" - [[ -f "${pidfile}" ]] && die "Randomness failed; Pidfile ${pidfile} already exists!" - unset x - - cmd=( - "${mysqld_binary}" - "${mysqld_options[@]}" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - --max_allowed_packet=8M - --net_buffer_length=16K - "--socket='${socket}'" - "--pid-file='${pidfile}'" - "--log-error='${mysqld_logfile}'" - "--user=${MYSQL_USER}" - ) - - einfo "Starting mysqld to finalize initialization: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 & - - echo -n "Waiting for mysqld to accept connections " - local maxtry=15 - while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - if [[ -S "${socket}" ]] ; then - # Even with a socket we don't know if mysqld will abort - # start due to an error so just wait a little bit more... - maxtry=5 - while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - fi - - echo - - if [[ ! -S "${socket}" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2 - die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!" - fi - - local mysql_logfile="${SETUP_TMPDIR}/set_root_pw.log" - touch "${mysql_logfile}" || die - - ebegin "Setting root password" - # Do this from memory, as we don't want clear text passwords in temp files - local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'" - cmd=( - "${mysql_binary}" - --no-defaults - "--socket='${socket}'" - -hlocalhost - "-e \"${sql}\"" - ) - eval "${cmd[@]}" >"${mysql_logfile}" 2>&1 - local rc=$? - eend ${rc} - - if [[ ${rc} -ne 0 ]] ; then - # Poor man's solution which tries to avoid having password - # in log. NOTE: sed can fail if user didn't follow advice - # and included character which will require escaping... - sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null - - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}" - die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!" - fi - - # Stop the server - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - echo -n "Stopping the server " - pkill -F "${pidfile}" &>/dev/null - - maxtry=10 - while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - echo - - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - # We somehow failed to stop server. - # However, not a fatal error. Just warn the user. - ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!" - fi - fi - - rm -r "${SETUP_TMPDIR}" || die - - einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!" -} diff --git a/dev-db/mariadb/mariadb-10.11.15-r1.ebuild b/dev-db/mariadb/mariadb-10.11.19.ebuild index 77058f998591..5db43f3bae80 100644 --- a/dev-db/mariadb/mariadb-10.11.15-r1.ebuild +++ b/dev-db/mariadb/mariadb-10.11.19.ebuild @@ -5,6 +5,7 @@ EAPI=8 SUBSLOT="18" JAVA_PKG_OPT_USE="jdbc" +MARIADB_GENTOO_PATCH_VERSION="10.11.19-0" inherit systemd flag-o-matic prefix toolchain-funcs \ multiprocessing java-pkg-opt-2 cmake pam @@ -13,7 +14,7 @@ DESCRIPTION="An enhanced, drop-in replacement for MySQL" HOMEPAGE="https://mariadb.org/" SRC_URI=" mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6.23-patches-01.tar.xz + https://gitweb.gentoo.org/proj/mariadb-patches.git/snapshot/${PN}-patches-${MARIADB_GENTOO_PATCH_VERSION}.tar.bz2 " # Shorten the path because the socket path length must be shorter than 107 chars # and we will run a mysql server during test phase @@ -21,7 +22,7 @@ S="${WORKDIR}/mysql" LICENSE="GPL-2 LGPL-2.1+" SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" IUSE="+backup bindist columnstore cracklib debug extraengine galera innodb-lz4 innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx @@ -103,20 +104,8 @@ DEPEND="${COMMON_DEPEND} static? ( sys-libs/ncurses[static-libs] ) " RDEPEND="${COMMON_DEPEND} - !dev-db/mysql !dev-db/percona-server - !dev-db/mariadb:10.3 - !dev-db/mariadb:10.4 - !dev-db/mariadb:10.5 - !dev-db/mariadb:10.6 - !dev-db/mariadb:10.7 - !dev-db/mariadb:10.8 - !dev-db/mariadb:10.9 - !dev-db/mariadb:10.10 - !dev-db/mariadb:11.0 - !dev-db/mariadb:11.1 - !dev-db/mariadb:11.2 - !dev-db/mariadb:11.3 - !dev-db/mariadb:11.4 + !<dev-db/mariadb-$(ver_cut 1-2) + !dev-db/mysql selinux? ( sec-policy/selinux-mysql ) server? ( columnstore? ( @@ -220,10 +209,9 @@ src_unpack() { } src_prepare() { - eapply "${WORKDIR}"/mariadb-patches + eapply "${WORKDIR}"/${PN}-patches-${MARIADB_GENTOO_PATCH_VERSION} eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch - eapply "${FILESDIR}"/${PN}-10.6.24-fix_boost_system.patch eapply_user @@ -587,6 +575,8 @@ src_test() { # Test which fail in network-sandbox because hostname is set to "localhost" "main.explain_non_select;0;Fails in network-sandbox" + "main.mysql_client_test;0;Fails in network-sandbox" + "main.mysql_client_test_comp;0;Fails in network-sandbox" "main.mysql_upgrade;MDEV-27044;Fails in network-sandbox" "main.selectivity_no_engine;MDEV-26320;Fails in network-sandbox" "main.stat_tables;0;Fails in network-sandbox" @@ -601,6 +591,8 @@ src_test() { # This issue will be fixed in next release # see also https://github.com/MariaDB/server/pull/4429 "main.func_regexp_pcre;MDEV-38046;Fails with PCRE2 10.47" + + "sys_vars.session_track_system_variables_basic;0;Requires example engine" ) use latin1 || disabled_tests+=( diff --git a/dev-db/mariadb/mariadb-10.6.23-r1.ebuild b/dev-db/mariadb/mariadb-10.6.23-r1.ebuild deleted file mode 100644 index 0c8b628cd07b..000000000000 --- a/dev-db/mariadb/mariadb-10.6.23-r1.ebuild +++ /dev/null @@ -1,1347 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -SUBSLOT="18" -JAVA_PKG_OPT_USE="jdbc" - -inherit systemd flag-o-matic prefix toolchain-funcs \ - multiprocessing java-pkg-opt-2 cmake - -DESCRIPTION="An enhanced, drop-in replacement for MySQL" -HOMEPAGE="https://mariadb.org/" -SRC_URI=" - mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6.23-patches-01.tar.xz -" -# Shorten the path because the socket path length must be shorter than 107 chars -# and we will run a mysql server during test phase -S="${WORKDIR}/mysql" - -LICENSE="GPL-2 LGPL-2.1+" -SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 x86" -IUSE="+backup bindist columnstore cracklib debug extraengine galera innodb-lz4 - innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga - numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx - sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc - test xml yassl" - -RESTRICT="!bindist? ( bindist ) !test? ( test )" - -REQUIRED_USE="jdbc? ( extraengine server !static ) - ?? ( tcmalloc jemalloc ) - static? ( yassl !pam ) - test? ( extraengine )" - -# Be warned, *DEPEND are version-dependant -# These are used for both runtime and compiletime -COMMON_DEPEND=" - >=dev-libs/libpcre2-10.34:= - >=sys-apps/texinfo-4.7-r1 - sys-libs/ncurses:0= - >=virtual/zlib-1.2.3:= - virtual/libcrypt:= - !bindist? ( - sys-libs/binutils-libs:0= - >=sys-libs/readline-4.1:0= - ) - jemalloc? ( dev-libs/jemalloc:0= ) - kerberos? ( virtual/krb5 ) - kernel_linux? ( - dev-libs/libaio:0= - sys-libs/liburing:= - sys-process/procps:0= - ) - server? ( - app-arch/bzip2 - app-arch/xz-utils - backup? ( app-arch/libarchive:0= ) - columnstore? ( - app-arch/snappy:= - dev-libs/boost:= - dev-libs/libxml2:2= - ) - cracklib? ( sys-libs/cracklib:0= ) - extraengine? ( - odbc? ( dev-db/unixODBC:0= ) - xml? ( dev-libs/libxml2:2= ) - ) - innodb-lz4? ( app-arch/lz4 ) - innodb-lzo? ( dev-libs/lzo ) - innodb-snappy? ( app-arch/snappy:= ) - mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 ) - numa? ( sys-process/numactl ) - oqgraph? ( - dev-libs/boost:= - dev-libs/judy:0= - ) - pam? ( sys-libs/pam:0= ) - s3? ( net-misc/curl ) - systemd? ( sys-apps/systemd:= ) - ) - systemtap? ( >=dev-debug/systemtap-1.3:0= ) - tcmalloc? ( dev-util/google-perftools:0= ) - yassl? ( net-libs/gnutls:0= ) - !yassl? ( - >=dev-libs/openssl-1.0.0:0= - ) -" -BDEPEND=" - app-alternatives/yacc - test? ( - acct-group/mysql - acct-user/mysql - ) -" -DEPEND="${COMMON_DEPEND} - server? ( - extraengine? ( jdbc? ( >=virtual/jdk-1.8 ) ) - ) - static? ( sys-libs/ncurses[static-libs] ) -" -RDEPEND="${COMMON_DEPEND} - !dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster - !dev-db/mariadb:0 - !dev-db/mariadb:5.5 - !dev-db/mariadb:10.1 - !dev-db/mariadb:10.2 - !dev-db/mariadb:10.3 - !dev-db/mariadb:10.4 - !dev-db/mariadb:10.5 - !dev-db/mariadb:10.7 - !dev-db/mariadb:10.8 - !dev-db/mariadb:10.9 - !dev-db/mariadb:10.10 - !dev-db/mariadb:10.11 - !dev-db/mariadb:11.0 - !dev-db/mariadb:11.1 - !dev-db/mariadb:11.2 - !dev-db/mariadb:11.3 - !dev-db/mariadb:11.4 - !<virtual/mysql-5.6-r11 - !<virtual/libmysqlclient-18-r1 - selinux? ( sec-policy/selinux-mysql ) - server? ( - columnstore? ( - dev-db/mariadb-connector-c - !dev-libs/thrift - ) - extraengine? ( jdbc? ( >=virtual/jre-1.8 ) ) - galera? ( - sys-apps/iproute2 - =sys-cluster/galera-26* - sst-rsync? ( sys-process/lsof ) - sst-mariabackup? ( net-misc/socat[ssl] ) - ) - !prefix? ( - acct-group/mysql - acct-user/mysql - dev-db/mysql-init-scripts - ) - ) -" -# For other stuff to bring us in -# dev-perl/DBD-MariaDB is needed by some scripts installed by MySQL -PDEPEND="perl? ( dev-perl/DBD-MariaDB )" - -QA_CONFIG_IMPL_DECL_SKIP=( - # These don't exist on Linux - pthread_threadid_np - getthrid -) - -mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"} - - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="" - if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then - MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR=$(grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ - | sed -e 's/.*=\s*//' \ - | tail -n1) - fi - fi - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="${MY_LOCALSTATEDIR}" - einfo "Using default MY_DATADIR" - fi - elog "MySQL MY_DATADIR is ${MY_DATADIR}" - - if [[ -z "${PREVIOUS_DATADIR}" ]] ; then - if [[ -e "${MY_DATADIR}" ]] ; then - # If you get this and you're wondering about it, see bug #207636 - elog "MySQL datadir found in ${MY_DATADIR}" - elog "A new one will not be created." - PREVIOUS_DATADIR="yes" - else - PREVIOUS_DATADIR="no" - fi - export PREVIOUS_DATADIR - fi - else - if [[ ${EBUILD_PHASE} == "config" ]]; then - local new_MY_DATADIR - new_MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - - if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then - ewarn "MySQL MY_DATADIR has changed" - ewarn "from ${MY_DATADIR}" - ewarn "to ${new_MY_DATADIR}" - MY_DATADIR="${new_MY_DATADIR}" - fi - fi - fi - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LOCALSTATEDIR MY_LOGDIR - export MY_DATADIR -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if has test ${FEATURES} ; then - # Bug #213475 - MySQL _will_ object strenuously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if ! has userpriv ${FEATURES} ; then - die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." - fi - fi - fi - - java-pkg-opt-2_pkg_setup -} - -src_unpack() { - unpack ${A} - - mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die -} - -src_prepare() { - eapply "${WORKDIR}"/mariadb-patches - eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch - eapply "${FILESDIR}"/${PN}-10.6.21-debug.patch - eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch - - eapply_user - - _disable_plugin() { - echo > "${S}/plugin/${1}/CMakeLists.txt" || die - } - _disable_engine() { - echo > "${S}/storage/${1}/CMakeLists.txt" || die - } - - if use jemalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC jemalloc)" >> "${S}/sql/CMakeLists.txt" - elif use tcmalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC tcmalloc)" >> "${S}/sql/CMakeLists.txt" - fi - - local plugin - local server_plugins=( handler_socket auth_socket feedback metadata_lock_info - locale_info qc_info server_audit sql_errlog auth_ed25519 ) - local test_plugins=( audit_null auth_examples daemon_example fulltext - debug_key_management example_key_management versioning ) - if ! use server; then # These plugins are for the server - for plugin in "${server_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - fi - - if ! use test; then # These plugins are only used during testing - for plugin in "${test_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - _disable_engine test_sql_discovery - echo > "${S}/plugin/auth_pam/testing/CMakeLists.txt" || die - fi - - _disable_engine example - - if ! use oqgraph ; then # avoids extra library checks - _disable_engine oqgraph - fi - - if use mroonga ; then - # Remove the bundled groonga - # There is no CMake flag, it simply checks for existance - rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga" - else - _disable_engine mroonga - fi - - # Fix static bindings in galera replication - sed -i -e 's~add_library(wsrep_api_v26$~add_library(wsrep_api_v26 STATIC~' \ - "${S}"/wsrep-lib/wsrep-API/CMakeLists.txt || die - sed -i -e 's~add_library(wsrep-lib$~add_library(wsrep-lib STATIC~' \ - "${S}"/wsrep-lib/src/CMakeLists.txt || die - - # Fix galera_recovery.sh script - sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \ - scripts/galera_recovery.sh || die - - sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \ - "${S}"/scripts/mysql_install_db.sh || die - - cmake_src_prepare - java-pkg-opt-2_src_prepare -} - -src_configure() { - # bug #855233 (MDEV-11914, MDEV-25633) at least - filter-lto - # bug 508724 mariadb cannot use ld.gold - tc-ld-is-gold && tc-ld-force-bfd - # Bug #114895, bug #110149 - filter-flags "-O" "-O[01]" - - use elibc_musl && append-flags -D_LARGEFILE64_SOURCE - - # It fails on alpha without this - use alpha && append-ldflags "-Wl,--no-relax" - - # bug #945352 - append-cflags -std=gnu17 - - append-cxxflags -felide-constructors - - # bug #283926, with GCC4.4, this is required to get correct behavior. - append-flags -fno-strict-aliasing - - # Workaround for bug #959423 (https://jira.mariadb.org/browse/MDEV-37148) - append-flags -fno-tree-vectorize - - # debug hack wrt #497532 - local mycmakeargs=( - -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql" - -DSYSCONFDIR="${EPREFIX}/etc/mysql" - -DINSTALL_BINDIR=bin - -DINSTALL_DOCDIR=share/doc/${PF} - -DINSTALL_DOCREADMEDIR=share/doc/${PF} - -DINSTALL_INCLUDEDIR=include/mysql - -DINSTALL_INFODIR=share/info - -DINSTALL_LIBDIR=$(get_libdir) - -DINSTALL_MANDIR=share/man - -DINSTALL_MYSQLSHAREDIR=share/mariadb - -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin - -DINSTALL_SCRIPTDIR=bin - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" - -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" - -DWITH_COMMENT="Gentoo Linux ${PF}" - -DWITH_UNIT_TESTS=$(usex test ON OFF) - -DWITH_LIBEDIT=0 - -DWITH_ZLIB=system - -DWITHOUT_LIBWRAP=1 - -DENABLED_LOCAL_INFILE=1 - -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DWITH_DEFAULT_COMPILER_OPTIONS=0 - -DWITH_DEFAULT_FEATURE_SET=0 - -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" - # The build forces this to be defined when cross-compiling. We pass it - # all the time for simplicity and to make sure it is actually correct. - -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) - -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) - -DCONC_WITH_EXTERNAL_ZLIB=YES - -DWITH_EXTERNAL_ZLIB=YES - -DSUFFIX_INSTALL_DIR="" - -DWITH_UNITTEST=OFF - -DWITHOUT_CLIENTLIBS=YES - -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF - -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF - -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC - -DCLIENT_PLUGIN_ZSTD=OFF - ) - if use test ; then - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test ) - else - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' ) - fi - - if ! use yassl ; then - mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC ) - else - mycmakeargs+=( -DWITH_SSL=bundled ) - fi - - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - mycmakeargs+=( - -DDTRACE="${BROOT}"/usr/bin/stap-dtrace - ) - fi - - # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION - mycmakeargs+=( - -DWITH_READLINE=$(usex bindist 1 0) - -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) - -DENABLE_DTRACE=$(usex systemtap) - ) - - if use server ; then - # Connect and Federated{,X} must be treated special - # otherwise they will not be built as plugins - if ! use extraengine ; then - mycmakeargs+=( - -DPLUGIN_CONNECT=NO - -DPLUGIN_FEDERATED=NO - -DPLUGIN_FEDERATEDX=NO - ) - fi - - mycmakeargs+=( - -DWITH_PCRE=system - -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) - -DPLUGIN_SPHINX=$(usex sphinx YES NO) - -DPLUGIN_AUTH_PAM=$(usex pam YES NO) - -DPLUGIN_AWS_KEY_MANAGEMENT=NO - -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) - -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) - -DPLUGIN_SPIDER=$(usex extraengine YES NO) - -DPLUGIN_S3=$(usex s3 YES NO) - -DPLUGIN_COLUMNSTORE=$(usex columnstore YES NO) - -DCONNECT_WITH_MYSQL=1 - -DCONNECT_WITH_LIBXML2=$(usex xml) - -DCONNECT_WITH_ODBC=$(usex odbc) - -DCONNECT_WITH_JDBC=$(usex jdbc) - # Build failure and autodep wrt bug 639144 - -DCONNECT_WITH_MONGO=OFF - -DWITH_WSREP=$(usex galera) - -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) - -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) - -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) - -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DWITH_MARIABACKUP=$(usex backup ON OFF) - -DWITH_LIBARCHIVE=$(usex backup ON OFF) - -DINSTALL_SQLBENCHDIR="" - -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) - # systemd is only linked to for server notification - -DWITH_SYSTEMD=$(usex systemd yes no) - -DWITH_NUMA=$(usex numa ON OFF) - ) - - if use test ; then - # This is needed for the new client lib which tests a real, open server - mycmakeargs+=( -DSKIP_TESTS=ON ) - fi - - if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then - ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" - ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." - ewarn "You MUST file bugs without these variables set." - - mycmakeargs+=( - -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} - -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} - ) - - elif ! use latin1 ; then - mycmakeargs+=( - -DDEFAULT_CHARSET=utf8mb4 - -DDEFAULT_COLLATION=utf8mb4_unicode_520_ci - ) - else - mycmakeargs+=( - -DDEFAULT_CHARSET=latin1 - -DDEFAULT_COLLATION=latin1_swedish_ci - ) - fi - mycmakeargs+=( - -DEXTRA_CHARSETS=all - -DMYSQL_USER=mysql - -DDISABLE_SHARED=$(usex static YES NO) - -DWITH_DEBUG=$(usex debug) - -DWITH_EMBEDDED_SERVER=OFF - -DWITH_PROFILING=$(usex profiling) - ) - - if use static; then - mycmakeargs+=( -DWITH_PIC=1 ) - fi - - if use jemalloc || use tcmalloc ; then - mycmakeargs+=( -DWITH_SAFEMALLOC=OFF ) - fi - - # Storage engines - mycmakeargs+=( - -DWITH_ARCHIVE_STORAGE_ENGINE=1 - -DWITH_BLACKHOLE_STORAGE_ENGINE=1 - -DWITH_CSV_STORAGE_ENGINE=1 - -DWITH_HEAP_STORAGE_ENGINE=1 - -DWITH_INNOBASE_STORAGE_ENGINE=1 - -DWITH_MYISAMMRG_STORAGE_ENGINE=1 - -DWITH_MYISAM_STORAGE_ENGINE=1 - -DWITH_PARTITION_STORAGE_ENGINE=1 - ) - else - mycmakeargs+=( - -DWITHOUT_SERVER=1 - -DWITH_EMBEDDED_SERVER=OFF - -DEXTRA_CHARSETS=none - -DINSTALL_SQLBENCHDIR= - -DWITH_SYSTEMD=no - ) - fi - - cmake_src_configure -} - -src_compile() { - cmake_src_compile -} - -# Official test instructions: -# USE='extraengine perl server' \ -# FEATURES='test userpriv' \ -# ebuild mariadb-X.X.XX.ebuild \ -# digest clean package -src_test() { - _disable_test() { - local rawtestname bug reason - rawtestname="${1}" ; shift - bug="${1}" ; shift - reason="${@}" - ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})" - echo "${rawtestname} : BUG#${bug} ${reason}" >> "${T}/disabled.def" - } - - local TESTDIR="${BUILD_DIR}/mysql-test" - local retstatus_tests - - if ! use server ; then - einfo "Skipping server tests due to minimal build." - return 0 - fi - - # Ensure that parallel runs don't die - export MTR_BUILD_THREAD="$((${RANDOM} % 100))" - - if [[ -z "${MTR_PARALLEL}" ]] ; then - local -x MTR_PARALLEL=$(makeopts_jobs) - - if [[ ${MTR_PARALLEL} -gt 4 ]] ; then - # Running multiple tests in parallel usually require higher ulimit - # and fs.aio-max-nr setting. In addition, tests like main.multi_update - # are known to hit timeout when system is busy. - # To avoid test failure we will limit MTR_PARALLEL to 4 instead of - # using "auto". - local info_msg="Parallel MySQL test suite jobs limited to 4 (MAKEOPTS=${MTR_PARALLEL})" - info_msg+=" to avoid test failures. Set MTR_PARALLEL if you know what you are doing!" - einfo "${info_msg}" - unset info_msg - MTR_PARALLEL=4 - fi - else - einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'" - fi - - # Try to increase file limits to increase test coverage - if ! ulimit -n 16500 1>/dev/null 2>&1 ; then - # Upper limit comes from parts.partition_* tests - ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager." - - if ! ulimit -n 4162 1>/dev/null 2>&1 ; then - # Medium limit comes from '[Warning] Buffered warning: Could not - # increase number of max_open_files to more than 3000 (request: 4162)' - ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager." - - if ! ulimit -n 3000 1>/dev/null 2>&1 ; then - ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager." - else - einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 4162 (medium test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 16500 (best test coverage)." - fi - - # create directories because mysqladmin might run out of order - mkdir -p "${T}"/var-tests{,/log} || die - - if [[ ! -f "${S}/mysql-test/unstable-tests" ]] ; then - touch "${S}"/mysql-test/unstable-tests || die - fi - - cp "${S}"/mysql-test/unstable-tests "${T}/disabled.def" || die - - local disabled_tests=( - "innodb_gis.1;MDEV-25095;Known rounding error with latest AMD processors" - "innodb_gis.gis;MDEV-25095;Known rounding error with latest AMD processors" - "main.gis;MDEV-25095;Known rounding error with latest AMD processors" - - # Test which fail in network-sandbox because hostname is set to "localhost" - "main.explain_non_select;0;Fails in network-sandbox" - "main.mysql_upgrade;MDEV-27044;Fails in network-sandbox" - "main.selectivity_no_engine;MDEV-26320;Fails in network-sandbox" - "main.stat_tables;0;Fails in network-sandbox" - "main.stat_tables_innodb;0;Fails in network-sandbox" - "main.upgrade_MDEV-19650;MDEV-25096;Fails in network-sandbox" - "perfschema.privilege_table_io;MDEV-27045;Fails in network-sandbox" - "roles.acl_statistics;0;Fails in network-sandbox" - - # Some tests are unable to retrieve HW address - "spider.*;MDEV-37098;Fails with network sandbox" - ) - - use latin1 || disabled_tests+=( - "funcs_1.is_columns_mysql;0;Requires USE=latin1" - "main.information_schema;0;Requires USE=latin1" - "main.sp2;24177;Requires USE=latin1" - "main.system_mysql_db;0;Requires USE=latin1" - "main.upgrade_MDEV-19650;24178;Requires USE=latin1" - ) - - local test_infos_str test_infos_arr - for test_infos_str in "${disabled_tests[@]}" ; do - IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}" - - if [[ ${#test_infos_arr[@]} != 3 ]] ; then - die "Invalid test data set, not matching format: ${test_infos_str}" - fi - - _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}" - done - unset test_infos_str test_infos_arr - - # run mysql-test tests - pushd "${TESTDIR}" &>/dev/null || die - perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test-list="${T}/disabled.def" - retstatus_tests=$? - - popd &>/dev/null || die - - # Cleanup is important for these testcases. - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - - local failures="" - [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests" - - [[ -z "${failures}" ]] || die "Test failures: ${failures}" - einfo "Tests successfully completed" -} - -src_install() { - cmake_src_install - - # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used - if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then - rm "${ED}/usr/include/mysql/server/private/config.h" || die - fi - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Convenience links - einfo "Making Convenience links for mysqlcheck multi-call binary" - dosym "mysqlcheck" "/usr/bin/mysqlanalyze" - dosym "mysqlcheck" "/usr/bin/mysqlrepair" - dosym "mysqlcheck" "/usr/bin/mysqloptimize" - - # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir - if [[ -d "${ED}/usr/data" ]] ; then - rm -Rf "${ED}/usr/data" || die - fi - - # Unless they explicitly specific USE=test, then do not install the - # testsuite. It DOES have a use to be installed, esp. when you want to do a - # validation of your database configuration after tuning it. - if ! use test ; then - rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test" - fi - - # Configuration stuff - einfo "Building default configuration ..." - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}" - [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf - cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die - eprefixify "${TMPDIR}/my.cnf" - doins "${TMPDIR}/my.cnf" - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}/mariadb.d" - cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die - eprefixify "${TMPDIR}/50-distro-client.cnf" - doins "${TMPDIR}/50-distro-client.cnf" - - if use server ; then - mycnf_src="my.cnf.distro-server" - sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ - "${FILESDIR}/${mycnf_src}" \ - > "${TMPDIR}/my.cnf.ok" || die - if use prefix ; then - sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \ - "${TMPDIR}/my.cnf.ok" || die - fi - if use latin1 ; then - sed -i \ - -e "/character-set/s|utf8|latin1|g" \ - "${TMPDIR}/my.cnf.ok" || die - fi - eprefixify "${TMPDIR}/my.cnf.ok" - newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf - - einfo "Including support files and sample configurations" - docinto "support-files" - local script - for script in \ - "${S}"/support-files/magic - do - [[ -f "$script" ]] && dodoc "${script}" - done - - docinto "scripts" - for script in "${S}"/scripts/mysql* ; do - [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" - done - # Manually install supporting files that conflict with other packages - # but are needed for galera and initial installation - exeinto /usr/libexec/mariadb - doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror" - - if use pam ; then - keepdir /usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir - fi - fi - - # Conflicting files - conflicting_files=() - - # We prefer my_print_defaults from dev-db/mysql-connector-c - conflicting_files=( "${ED}/usr/share/man/man1/my_print_defaults.1" ) - - # Remove bundled mytop in favor of dev-db/mytop - conflicting_files+=( "${ED}/usr/bin/mytop" ) - conflicting_files+=( "${ED}/usr/share/man/man1/mytop.1" ) - - local conflicting_file - for conflicting_file in "${conflicting_files[@]}" ; do - if [[ -e "${conflicting_file}" ]] ; then - rm -v "${conflicting_file}" || die - fi - done - - # Fix a dangling symlink when galera is not built - if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then - rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die - fi - - # Remove dangling symlink - rm "${ED}/usr/$(get_libdir)/libmariadb.a" || die - - # Remove broken SST scripts that are incompatible - local scriptremove - for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do - if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then - rm "${ED}/usr/bin/${scriptremove}" || die - fi - done -} - -pkg_preinst() { - java-pkg-opt-2_pkg_preinst -} - -pkg_postinst() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Create log directory securely if it does not exist - [[ -d "${ROOT}/${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}/${MY_LOGDIR}" - - if use server ; then - if use pam; then - einfo - elog "This install includes the PAM authentication plugin." - elog "To activate and configure the PAM plugin, please read:" - elog "https://mariadb.com/docs/server/reference/plugins/authentication-plugins/authentication-with-pluggable-authentication-modules-pam/authentication-plugin-pam" - einfo - chown mysql:mysql "${EROOT}/usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir" || die - fi - - if [[ -z "${REPLACING_VERSIONS}" ]] ; then - einfo - elog "You might want to run:" - elog "\"emerge --config =${CATEGORY}/${PF}\"" - elog "if this is a new install." - elog - elog "If you are switching server implentations, you should run the" - elog "mysql_upgrade tool." - einfo - else - einfo - elog "If you are upgrading major versions, you should run the" - elog "mysql_upgrade tool." - einfo - fi - - if use galera ; then - einfo - elog "Be sure to edit the my.cnf file to activate your cluster settings." - elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\"" - elog "The first time the cluster is activated, you should add" - elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node." - elog "This option should then be removed for subsequent starts." - einfo - fi - fi - - # Note about configuration change - einfo - elog "This version of mariadb reorganizes the configuration from a single my.cnf" - elog "to several files in /etc/mysql/${PN}.d." - elog "Please backup any changes you made to /etc/mysql/my.cnf" - elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension." - elog "You may have as many files as needed and they are read alphabetically." - elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." - einfo -} - -pkg_config() { - _getoptval() { - local section="${1}" - local option="--${2}" - local extra_options="${3}" - local cmd=( - "${my_print_defaults_binary}" - "${extra_options}" - "${section}" - ) - - local values=() - local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) - for parameter in "${parameters[@]}" - do - # my_print_defaults guarantees output of options, one per line, - # in the form that they would be specified on the command line. - # So checking for --option=* should be safe. - case ${parameter} in - ${option}=*) - values+=( "${parameter#*=}" ) - ;; - esac - done - - if [[ ${#values[@]} -gt 0 ]] ; then - # Option could have been set multiple times - # in which case only the last occurrence - # contains the current value - echo "${values[-1]}" - fi - } - - _mktemp_dry() { - # emktemp has no --dry-run option - local template="${1}" - - if [[ -z "${template}" ]] ; then - if [[ -z "${T}" ]] ; then - template="/tmp/XXXXXXX" - else - template="${T}/XXXXXXX" - fi - fi - - local template_wo_X=${template//X/} - local n_X - let n_X=${#template}-${#template_wo_X} - if [[ ${n_X} -lt 3 ]] ; then - echo "${FUNCNAME[0]}: too few X's in template '${template}'" >&2 - return - fi - - local attempts=0 - local character tmpfile - while [[ true ]] ; do - let attempts=attempts+1 - - new_file= - while read -n1 character ; do - if [[ "${character}" == "X" ]] ; then - tmpfile+="${RANDOM:0:1}" - else - tmpfile+="${character}" - fi - done < <(echo -n "${template}") - - if [[ ! -f "${tmpfile}" ]] - then - echo "${tmpfile}" - return - fi - - if [[ ${attempts} -ge 100 ]] ; then - echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2 - return - fi - done - } - - local mysql_binary="${EROOT}/usr/bin/mysql" - if [[ ! -x "${mysql_binary}" ]] ; then - die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysqld_binary="${EROOT}/usr/sbin/mysqld" - if [[ ! -x "${mysqld_binary}" ]] ; then - die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysql_install_db_binary="${EROOT}/usr/bin/mysql_install_db" - if [[ ! -x "${mysql_install_db_binary}" ]] ; then - die "'${mysql_install_db_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" - if [[ ! -x "${my_print_defaults_binary}" ]] ; then - die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" - fi - - if [[ -z "${MYSQL_USER}" ]] ; then - MYSQL_USER=mysql - if use prefix ; then - MYSQL_USER=$(id -u -n 2>/dev/null) - if [[ -z "${MYSQL_USER}" ]] ; then - die "Failed to determine current username!" - fi - fi - fi - - if [[ -z "${MYSQL_GROUP}" ]] ; then - MYSQL_GROUP=mysql - if use prefix ; then - MYSQL_GROUP=$(id -g -n 2>/dev/null) - if [[ -z "${MYSQL_GROUP}" ]] ; then - die "Failed to determine current user groupname!" - fi - fi - fi - - # my_print_defaults needs to read stuff in $HOME/.my.cnf - local -x HOME="${EROOT}/root" - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Read currently set data directory - MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - - # Bug #213475 - MySQL _will_ object strenously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if [[ -z "${MY_DATADIR}" ]] ; then - die "Sorry, unable to find MY_DATADIR!" - elif [[ -d "${MY_DATADIR}/mysql" ]] ; then - ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!" - ewarn "Please rename or delete its content if you wish to initialize a new data directory." - die "${PN} data directory at '${MY_DATADIR}' looks already initialized!" - fi - - MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_TMPDIR=${MYSQL_TMPDIR%/} - # These are dir+prefix - MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*} - MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*} - - # Create missing directories. - # Always check if mysql user can write to directory even if we just - # created directory because a parent directory might be not - # accessible for that user. - PID_DIR="${EROOT}/run/mysqld" - if [[ ! -d "${PID_DIR}" ]] ; then - einfo "Creating ${PN} PID directory '${PID_DIR}' ..." - install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \ - || die "Failed to create PID directory '${PID_DIR}'!" - fi - - local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_pid_dir_testfile}" ]] \ - && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_pid_dir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!" - else - rm "${_pid_dir_testfile}" || die - unset _pid_dir_testfile - fi - - if [[ ! -d "${MY_DATADIR}" ]] ; then - einfo "Creating ${PN} data directory '${MY_DATADIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \ - || die "Failed to create ${PN} data directory '${MY_DATADIR}'!" - fi - - local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_datadir_testfile}" ]] \ - && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_datadir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!" - else - rm "${_my_datadir_testfile}" || die - unset _my_datadir_testfile - fi - - if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then - einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \ - || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!" - fi - - if [[ -z "${MYSQL_TMPDIR}" ]] ; then - MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")" - [[ -z "${MYSQL_TMPDIR}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!" - - mkdir "${MYSQL_TMPDIR}" || die - chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die - fi - - # Now we need to test MYSQL_TMPDIR... - local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_tmpdir_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_tmpdir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!" - else - rm "${_my_tmpdir_testfile}" || die - unset _my_tmpdir_testfile - fi - - if [[ "${MYSQL_LOG_BIN}" == /* && ! -d "${MYSQL_LOG_BIN}" ]] ; then - # Only create directory when MYSQL_LOG_BIN is an absolute path - einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \ - || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'" - fi - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Only test when MYSQL_LOG_BIN is an absolute path - local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_logbin_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_logbin_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!" - else - rm "${_my_logbin_testfile}" || die - unset _my_logbin_testfile - fi - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* && ! -d "${MYSQL_RELAY_LOG}" ]] ; then - # Only create directory when MYSQL_RELAY_LOG is an absolute path - einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \ - || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Only test when MYSQL_RELAY_LOG is an absolute path - local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_relaylog_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_relaylog_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!" - else - rm "${_my_relaylog_testfile}" || die - unset _my_relaylog_testfile - fi - fi - - local SETUP_TMPDIR=$(mktemp -d "/tmp/${PN}-config.XXXXXXXXX" 2>/dev/null) - [[ -z "${SETUP_TMPDIR}" ]] && die "Failed to create setup tmpdir" - - # Limit access - chmod 0770 "${SETUP_TMPDIR}" || die - chown ${MYSQL_USER} "${SETUP_TMPDIR}" || die - - local mysql_install_log="${SETUP_TMPDIR}/install_db.log" - local mysqld_logfile="${SETUP_TMPDIR}/mysqld.log" - - echo "" - einfo "Detected settings:" - einfo "==================" - einfo "MySQL User:\t\t\t\t${MYSQL_USER}" - einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}" - einfo "MySQL DATA directory:\t\t${MY_DATADIR}" - einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}" - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Absolute path for binary log files specified - einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Absolute path for relay log files specified - einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}" - fi - - einfo "PID DIR:\t\t\t\t${PID_DIR}" - einfo "Install db log:\t\t\t${mysql_install_log}" - einfo "Install server log:\t\t\t${mysqld_logfile}" - - echo - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local tmp_mysqld_password_source= - - for tmp_mysqld_password_source in mysql client ; do - einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" - if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then - if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then - ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!" - MYSQL_ROOT_PASSWORD= - continue - fi - - einfo "Found password in '${tmp_mysqld_password_source}' section!" - break - fi - done - - # Sometimes --show is required to display passwords in some implementations of my_print_defaults - if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" - fi - - unset tmp_mysqld_password_source - fi - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local pwd1="a" - local pwd2="b" - - echo - einfo "No password for mysql 'root' user was specified via environment" - einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config" - einfo "file like '${HOME}/.my.cnf'." - einfo "To continue please provide a password for the mysql 'root' user" - einfo "now on console:" - ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!" - read -rsp " >" pwd1 ; echo - - einfo "Retype the password" - read -rsp " >" pwd2 ; echo - - if [[ "x${pwd1}" != "x${pwd2}" ]] ; then - die "Passwords are not the same!" - fi - - MYSQL_ROOT_PASSWORD="${pwd1}" - unset pwd1 pwd2 - - echo - fi - - local -a mysqld_options - - # Fix bug 446200. Don't reference host my.cnf, needs to come first, - # see http://bugs.mysql.com/bug.php?id=31312 - use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" ) - - # Figure out which options we need to disable to do the setup - local helpfile="${TMPDIR}/mysqld-help" - "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null - - local opt optexp optfull - for opt in host-cache name-resolve networking slave-start \ - federated ssl log-bin relay-log slow-query-log external-locking \ - log-slave-updates \ - ; do - optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}" - grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" ) - done - - # Prepare timezones, see - # https://dev.mysql.com/doc/mysql/en/time-zone-support.html - local tz_sql="${SETUP_TMPDIR}/tz.sql" - - echo "USE mysql;" >"${tz_sql}" - "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null - if [[ $? -ne 0 ]] ; then - die "mysql_tzinfo_to_sql failed!" - fi - - local cmd=( - "${mysql_install_db_binary}" - "${mysqld_options[@]}" - "--init-file='${tz_sql}'" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - "--log-error='${mysql_install_log}'" - "--rpm" - "--cross-bootstrap" - "--skip-test-db" - "--user=${MYSQL_USER}" - ) - - einfo "Initializing ${PN} data directory: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1 - - if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql/user.frm" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2 - die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!" - fi - - local x=${RANDOM} - local socket="${PID_DIR}/mysqld.${x}.sock" - [[ -f "${socket}" ]] && die "Randomness failed; Socket ${socket} already exists!" - local pidfile="${PID_DIR}/mysqld.${x}.pid" - [[ -f "${pidfile}" ]] && die "Randomness failed; Pidfile ${pidfile} already exists!" - unset x - - cmd=( - "${mysqld_binary}" - "${mysqld_options[@]}" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - --max_allowed_packet=8M - --net_buffer_length=16K - "--socket='${socket}'" - "--pid-file='${pidfile}'" - "--log-error='${mysqld_logfile}'" - "--user=${MYSQL_USER}" - ) - - einfo "Starting mysqld to finalize initialization: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 & - - echo -n "Waiting for mysqld to accept connections " - local maxtry=15 - while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - if [[ -S "${socket}" ]] ; then - # Even with a socket we don't know if mysqld will abort - # start due to an error so just wait a little bit more... - maxtry=5 - while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - fi - - echo - - if [[ ! -S "${socket}" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2 - die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!" - fi - - local mysql_logfile="${SETUP_TMPDIR}/set_root_pw.log" - touch "${mysql_logfile}" || die - - ebegin "Setting root password" - # Do this from memory, as we don't want clear text passwords in temp files - local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'" - cmd=( - "${mysql_binary}" - --no-defaults - "--socket='${socket}'" - -hlocalhost - "-e \"${sql}\"" - ) - eval "${cmd[@]}" >"${mysql_logfile}" 2>&1 - local rc=$? - eend ${rc} - - if [[ ${rc} -ne 0 ]] ; then - # Poor man's solution which tries to avoid having password - # in log. NOTE: sed can fail if user didn't follow advice - # and included character which will require escaping... - sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null - - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}" - die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!" - fi - - # Stop the server - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - echo -n "Stopping the server " - pkill -F "${pidfile}" &>/dev/null - - maxtry=10 - while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - echo - - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - # We somehow failed to stop server. - # However, not a fatal error. Just warn the user. - ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!" - fi - fi - - rm -r "${SETUP_TMPDIR}" || die - - einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!" -} diff --git a/dev-db/mariadb/mariadb-10.6.24-r1.ebuild b/dev-db/mariadb/mariadb-10.6.24-r1.ebuild deleted file mode 100644 index dc9ec166e53c..000000000000 --- a/dev-db/mariadb/mariadb-10.6.24-r1.ebuild +++ /dev/null @@ -1,1354 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -SUBSLOT="18" -JAVA_PKG_OPT_USE="jdbc" - -inherit systemd flag-o-matic prefix toolchain-funcs \ - multiprocessing java-pkg-opt-2 cmake pam - -DESCRIPTION="An enhanced, drop-in replacement for MySQL" -HOMEPAGE="https://mariadb.org/" -SRC_URI=" - mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6.23-patches-01.tar.xz -" -# Shorten the path because the socket path length must be shorter than 107 chars -# and we will run a mysql server during test phase -S="${WORKDIR}/mysql" - -LICENSE="GPL-2 LGPL-2.1+" -SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 x86" -IUSE="+backup bindist columnstore cracklib debug extraengine galera innodb-lz4 - innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga - numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx - sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc - test xml yassl" - -RESTRICT="!bindist? ( bindist ) !test? ( test )" - -REQUIRED_USE="jdbc? ( extraengine server !static ) - ?? ( tcmalloc jemalloc ) - static? ( yassl !pam ) - test? ( extraengine )" - -# Be warned, *DEPEND are version-dependant -# These are used for both runtime and compiletime -COMMON_DEPEND=" - >=dev-libs/libpcre2-10.34:= - >=sys-apps/texinfo-4.7-r1 - sys-libs/ncurses:0= - >=virtual/zlib-1.2.3:= - virtual/libcrypt:= - !bindist? ( - sys-libs/binutils-libs:0= - >=sys-libs/readline-4.1:0= - ) - jemalloc? ( dev-libs/jemalloc:0= ) - kerberos? ( virtual/krb5 ) - kernel_linux? ( - dev-libs/libaio:0= - sys-libs/liburing:= - sys-process/procps:0= - ) - server? ( - app-arch/bzip2 - app-arch/xz-utils - backup? ( app-arch/libarchive:0= ) - columnstore? ( - app-arch/snappy:= - dev-libs/boost:= - dev-libs/libxml2:2= - ) - cracklib? ( sys-libs/cracklib:0= ) - extraengine? ( - odbc? ( dev-db/unixODBC:0= ) - xml? ( dev-libs/libxml2:2= ) - ) - innodb-lz4? ( app-arch/lz4 ) - innodb-lzo? ( dev-libs/lzo ) - innodb-snappy? ( app-arch/snappy:= ) - mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 ) - numa? ( sys-process/numactl ) - oqgraph? ( - dev-libs/boost:= - dev-libs/judy:0= - ) - pam? ( sys-libs/pam:0= ) - s3? ( net-misc/curl ) - systemd? ( sys-apps/systemd:= ) - ) - systemtap? ( >=dev-debug/systemtap-1.3:0= ) - tcmalloc? ( dev-util/google-perftools:0= ) - yassl? ( net-libs/gnutls:0= ) - !yassl? ( - >=dev-libs/openssl-1.0.0:0= - ) -" -BDEPEND=" - app-alternatives/yacc - test? ( - acct-group/mysql - acct-user/mysql - ) -" -DEPEND="${COMMON_DEPEND} - server? ( - extraengine? ( jdbc? ( >=virtual/jdk-1.8 ) ) - ) - static? ( sys-libs/ncurses[static-libs] ) -" -RDEPEND="${COMMON_DEPEND} - !dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster - !dev-db/mariadb:0 - !dev-db/mariadb:5.5 - !dev-db/mariadb:10.1 - !dev-db/mariadb:10.2 - !dev-db/mariadb:10.3 - !dev-db/mariadb:10.4 - !dev-db/mariadb:10.5 - !dev-db/mariadb:10.7 - !dev-db/mariadb:10.8 - !dev-db/mariadb:10.9 - !dev-db/mariadb:10.10 - !dev-db/mariadb:10.11 - !dev-db/mariadb:11.0 - !dev-db/mariadb:11.1 - !dev-db/mariadb:11.2 - !dev-db/mariadb:11.3 - !dev-db/mariadb:11.4 - !<virtual/mysql-5.6-r11 - !<virtual/libmysqlclient-18-r1 - selinux? ( sec-policy/selinux-mysql ) - server? ( - columnstore? ( - dev-db/mariadb-connector-c - !dev-libs/thrift - ) - extraengine? ( jdbc? ( >=virtual/jre-1.8 ) ) - galera? ( - sys-apps/iproute2 - =sys-cluster/galera-26* - sst-rsync? ( sys-process/lsof ) - sst-mariabackup? ( net-misc/socat[ssl] ) - ) - !prefix? ( - acct-group/mysql - acct-user/mysql - dev-db/mysql-init-scripts - ) - ) -" -# For other stuff to bring us in -# dev-perl/DBD-MariaDB is needed by some scripts installed by MySQL -PDEPEND="perl? ( dev-perl/DBD-MariaDB )" - -QA_CONFIG_IMPL_DECL_SKIP=( - # These don't exist on Linux - pthread_threadid_np - getthrid -) - -mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"} - - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="" - if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then - MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR=$(grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ - | sed -e 's/.*=\s*//' \ - | tail -n1) - fi - fi - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="${MY_LOCALSTATEDIR}" - einfo "Using default MY_DATADIR" - fi - elog "MySQL MY_DATADIR is ${MY_DATADIR}" - - if [[ -z "${PREVIOUS_DATADIR}" ]] ; then - if [[ -e "${MY_DATADIR}" ]] ; then - # If you get this and you're wondering about it, see bug #207636 - elog "MySQL datadir found in ${MY_DATADIR}" - elog "A new one will not be created." - PREVIOUS_DATADIR="yes" - else - PREVIOUS_DATADIR="no" - fi - export PREVIOUS_DATADIR - fi - else - if [[ ${EBUILD_PHASE} == "config" ]]; then - local new_MY_DATADIR - new_MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - - if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then - ewarn "MySQL MY_DATADIR has changed" - ewarn "from ${MY_DATADIR}" - ewarn "to ${new_MY_DATADIR}" - MY_DATADIR="${new_MY_DATADIR}" - fi - fi - fi - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LOCALSTATEDIR MY_LOGDIR - export MY_DATADIR -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if has test ${FEATURES} ; then - # Bug #213475 - MySQL _will_ object strenuously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if ! has userpriv ${FEATURES} ; then - die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." - fi - fi - fi - - java-pkg-opt-2_pkg_setup -} - -src_unpack() { - unpack ${A} - - mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die -} - -src_prepare() { - eapply "${WORKDIR}"/mariadb-patches - eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch - eapply "${FILESDIR}"/${PN}-10.6.21-debug.patch - eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch - eapply "${FILESDIR}"/${PN}-10.6.24-fix_boost_system.patch - - eapply_user - - _disable_plugin() { - echo > "${S}/plugin/${1}/CMakeLists.txt" || die - } - _disable_engine() { - echo > "${S}/storage/${1}/CMakeLists.txt" || die - } - - if use jemalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC jemalloc)" >> "${S}/sql/CMakeLists.txt" - elif use tcmalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC tcmalloc)" >> "${S}/sql/CMakeLists.txt" - fi - - local plugin - local server_plugins=( handler_socket auth_socket feedback metadata_lock_info - locale_info qc_info server_audit sql_errlog auth_ed25519 ) - local test_plugins=( audit_null auth_examples daemon_example fulltext - debug_key_management example_key_management versioning ) - if ! use server; then # These plugins are for the server - for plugin in "${server_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - fi - - if ! use test; then # These plugins are only used during testing - for plugin in "${test_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - _disable_engine test_sql_discovery - echo > "${S}/plugin/auth_pam/testing/CMakeLists.txt" || die - fi - - _disable_engine example - - if ! use oqgraph ; then # avoids extra library checks - _disable_engine oqgraph - fi - - if use mroonga ; then - # Remove the bundled groonga - # There is no CMake flag, it simply checks for existance - rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga" - else - _disable_engine mroonga - fi - - # Fix static bindings in galera replication - sed -i -e 's~add_library(wsrep_api_v26$~add_library(wsrep_api_v26 STATIC~' \ - "${S}"/wsrep-lib/wsrep-API/CMakeLists.txt || die - sed -i -e 's~add_library(wsrep-lib$~add_library(wsrep-lib STATIC~' \ - "${S}"/wsrep-lib/src/CMakeLists.txt || die - - # Fix galera_recovery.sh script - sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \ - scripts/galera_recovery.sh || die - - sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \ - "${S}"/scripts/mysql_install_db.sh || die - - cmake_src_prepare - java-pkg-opt-2_src_prepare -} - -src_configure() { - # bug #855233 (MDEV-11914, MDEV-25633) at least - filter-lto - # bug 508724 mariadb cannot use ld.gold - tc-ld-is-gold && tc-ld-force-bfd - # Bug #114895, bug #110149 - filter-flags "-O" "-O[01]" - - use elibc_musl && append-flags -D_LARGEFILE64_SOURCE - - # It fails on alpha without this - use alpha && append-ldflags "-Wl,--no-relax" - - # bug #945352 - append-cflags -std=gnu17 - - append-cxxflags -felide-constructors - - # bug #283926, with GCC4.4, this is required to get correct behavior. - append-flags -fno-strict-aliasing - - # Workaround for bug #959423 (https://jira.mariadb.org/browse/MDEV-37148) - append-flags -fno-tree-vectorize - - # debug hack wrt #497532 - local mycmakeargs=( - -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql" - -DSYSCONFDIR="${EPREFIX}/etc/mysql" - -DINSTALL_BINDIR=bin - -DINSTALL_DOCDIR=share/doc/${PF} - -DINSTALL_DOCREADMEDIR=share/doc/${PF} - -DINSTALL_INCLUDEDIR=include/mysql - -DINSTALL_INFODIR=share/info - -DINSTALL_LIBDIR=$(get_libdir) - -DINSTALL_PAMDIR="$(getpam_mod_dir)" - -DINSTALL_PAMDATADIR="${EPREFIX}/etc/security" - -DINSTALL_MANDIR=share/man - -DINSTALL_MYSQLSHAREDIR=share/mariadb - -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin - -DINSTALL_SCRIPTDIR=bin - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" - -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" - -DWITH_COMMENT="Gentoo Linux ${PF}" - -DWITH_UNIT_TESTS=$(usex test ON OFF) - -DWITH_LIBEDIT=0 - -DWITH_ZLIB=system - -DWITHOUT_LIBWRAP=1 - -DENABLED_LOCAL_INFILE=1 - -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DWITH_DEFAULT_COMPILER_OPTIONS=0 - -DWITH_DEFAULT_FEATURE_SET=0 - -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" - # The build forces this to be defined when cross-compiling. We pass it - # all the time for simplicity and to make sure it is actually correct. - -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) - -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) - -DCONC_WITH_EXTERNAL_ZLIB=YES - -DWITH_EXTERNAL_ZLIB=YES - -DSUFFIX_INSTALL_DIR="" - -DWITH_UNITTEST=OFF - -DWITHOUT_CLIENTLIBS=YES - -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF - -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF - -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC - -DCLIENT_PLUGIN_ZSTD=OFF - ) - if use test ; then - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test ) - else - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' ) - fi - - if ! use yassl ; then - mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC ) - else - mycmakeargs+=( -DWITH_SSL=bundled ) - fi - - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - mycmakeargs+=( - -DDTRACE="${BROOT}"/usr/bin/stap-dtrace - ) - fi - - # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION - mycmakeargs+=( - -DWITH_READLINE=$(usex bindist 1 0) - -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) - -DENABLE_DTRACE=$(usex systemtap) - ) - - if use server ; then - # Connect and Federated{,X} must be treated special - # otherwise they will not be built as plugins - if ! use extraengine ; then - mycmakeargs+=( - -DPLUGIN_CONNECT=NO - -DPLUGIN_FEDERATED=NO - -DPLUGIN_FEDERATEDX=NO - ) - fi - - mycmakeargs+=( - -DWITH_PCRE=system - -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) - -DPLUGIN_SPHINX=$(usex sphinx YES NO) - -DPLUGIN_AUTH_PAM=$(usex pam YES NO) - -DPLUGIN_AWS_KEY_MANAGEMENT=NO - -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) - -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) - -DPLUGIN_SPIDER=$(usex extraengine YES NO) - -DPLUGIN_S3=$(usex s3 YES NO) - -DPLUGIN_COLUMNSTORE=$(usex columnstore YES NO) - -DCONNECT_WITH_MYSQL=1 - -DCONNECT_WITH_LIBXML2=$(usex xml) - -DCONNECT_WITH_ODBC=$(usex odbc) - -DCONNECT_WITH_JDBC=$(usex jdbc) - # Build failure and autodep wrt bug 639144 - -DCONNECT_WITH_MONGO=OFF - -DWITH_WSREP=$(usex galera) - -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) - -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) - -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) - -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DWITH_MARIABACKUP=$(usex backup ON OFF) - -DWITH_LIBARCHIVE=$(usex backup ON OFF) - -DINSTALL_SQLBENCHDIR="" - -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) - # systemd is only linked to for server notification - -DWITH_SYSTEMD=$(usex systemd yes no) - -DWITH_NUMA=$(usex numa ON OFF) - ) - - if use test ; then - # This is needed for the new client lib which tests a real, open server - mycmakeargs+=( -DSKIP_TESTS=ON ) - fi - - if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then - ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" - ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." - ewarn "You MUST file bugs without these variables set." - - mycmakeargs+=( - -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} - -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} - ) - - elif ! use latin1 ; then - mycmakeargs+=( - -DDEFAULT_CHARSET=utf8mb4 - -DDEFAULT_COLLATION=utf8mb4_unicode_520_ci - ) - else - mycmakeargs+=( - -DDEFAULT_CHARSET=latin1 - -DDEFAULT_COLLATION=latin1_swedish_ci - ) - fi - mycmakeargs+=( - -DEXTRA_CHARSETS=all - -DMYSQL_USER=mysql - -DDISABLE_SHARED=$(usex static YES NO) - -DWITH_DEBUG=$(usex debug) - -DWITH_EMBEDDED_SERVER=OFF - -DWITH_PROFILING=$(usex profiling) - ) - - if use static; then - mycmakeargs+=( -DWITH_PIC=1 ) - fi - - if use jemalloc || use tcmalloc ; then - mycmakeargs+=( -DWITH_SAFEMALLOC=OFF ) - fi - - # Storage engines - mycmakeargs+=( - -DWITH_ARCHIVE_STORAGE_ENGINE=1 - -DWITH_BLACKHOLE_STORAGE_ENGINE=1 - -DWITH_CSV_STORAGE_ENGINE=1 - -DWITH_HEAP_STORAGE_ENGINE=1 - -DWITH_INNOBASE_STORAGE_ENGINE=1 - -DWITH_MYISAMMRG_STORAGE_ENGINE=1 - -DWITH_MYISAM_STORAGE_ENGINE=1 - -DWITH_PARTITION_STORAGE_ENGINE=1 - ) - else - mycmakeargs+=( - -DWITHOUT_SERVER=1 - -DWITH_EMBEDDED_SERVER=OFF - -DEXTRA_CHARSETS=none - -DINSTALL_SQLBENCHDIR= - -DWITH_SYSTEMD=no - ) - fi - - cmake_src_configure -} - -src_compile() { - cmake_src_compile -} - -# Official test instructions: -# USE='extraengine perl server' \ -# FEATURES='test userpriv' \ -# ebuild mariadb-X.X.XX.ebuild \ -# digest clean package -src_test() { - _disable_test() { - local rawtestname bug reason - rawtestname="${1}" ; shift - bug="${1}" ; shift - reason="${@}" - ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})" - echo "${rawtestname} : BUG#${bug} ${reason}" >> "${T}/disabled.def" - } - - local TESTDIR="${BUILD_DIR}/mysql-test" - local retstatus_tests - - if ! use server ; then - einfo "Skipping server tests due to minimal build." - return 0 - fi - - # Ensure that parallel runs don't die - export MTR_BUILD_THREAD="$((${RANDOM} % 100))" - - if [[ -z "${MTR_PARALLEL}" ]] ; then - local -x MTR_PARALLEL=$(makeopts_jobs) - - if [[ ${MTR_PARALLEL} -gt 4 ]] ; then - # Running multiple tests in parallel usually require higher ulimit - # and fs.aio-max-nr setting. In addition, tests like main.multi_update - # are known to hit timeout when system is busy. - # To avoid test failure we will limit MTR_PARALLEL to 4 instead of - # using "auto". - local info_msg="Parallel MySQL test suite jobs limited to 4 (MAKEOPTS=${MTR_PARALLEL})" - info_msg+=" to avoid test failures. Set MTR_PARALLEL if you know what you are doing!" - einfo "${info_msg}" - unset info_msg - MTR_PARALLEL=4 - fi - else - einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'" - fi - - # Try to increase file limits to increase test coverage - if ! ulimit -n 16500 1>/dev/null 2>&1 ; then - # Upper limit comes from parts.partition_* tests - ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager." - - if ! ulimit -n 4162 1>/dev/null 2>&1 ; then - # Medium limit comes from '[Warning] Buffered warning: Could not - # increase number of max_open_files to more than 3000 (request: 4162)' - ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager." - - if ! ulimit -n 3000 1>/dev/null 2>&1 ; then - ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager." - else - einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 4162 (medium test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 16500 (best test coverage)." - fi - - # create directories because mysqladmin might run out of order - mkdir -p "${T}"/var-tests{,/log} || die - - if [[ ! -f "${S}/mysql-test/unstable-tests" ]] ; then - touch "${S}"/mysql-test/unstable-tests || die - fi - - cp "${S}"/mysql-test/unstable-tests "${T}/disabled.def" || die - - local disabled_tests=( - "innodb_gis.1;MDEV-25095;Known rounding error with latest AMD processors" - "innodb_gis.gis;MDEV-25095;Known rounding error with latest AMD processors" - "main.gis;MDEV-25095;Known rounding error with latest AMD processors" - - # Test which fail in network-sandbox because hostname is set to "localhost" - "main.explain_non_select;0;Fails in network-sandbox" - "main.mysql_upgrade;MDEV-27044;Fails in network-sandbox" - "main.selectivity_no_engine;MDEV-26320;Fails in network-sandbox" - "main.stat_tables;0;Fails in network-sandbox" - "main.stat_tables_innodb;0;Fails in network-sandbox" - "main.upgrade_MDEV-19650;MDEV-25096;Fails in network-sandbox" - "perfschema.privilege_table_io;MDEV-27045;Fails in network-sandbox" - "roles.acl_statistics;0;Fails in network-sandbox" - - # Some tests are unable to retrieve HW address - "spider.*;MDEV-37098;Fails with network sandbox" - - # This issue will be fixed in next release - # see also https://github.com/MariaDB/server/pull/4429 - "main.func_regexp_pcre;MDEV-38046;Fails with PCRE2 10.47" - ) - - use latin1 || disabled_tests+=( - "funcs_1.is_columns_mysql;0;Requires USE=latin1" - "main.information_schema;0;Requires USE=latin1" - "main.sp2;24177;Requires USE=latin1" - "main.system_mysql_db;0;Requires USE=latin1" - "main.upgrade_MDEV-19650;24178;Requires USE=latin1" - ) - - local test_infos_str test_infos_arr - for test_infos_str in "${disabled_tests[@]}" ; do - IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}" - - if [[ ${#test_infos_arr[@]} != 3 ]] ; then - die "Invalid test data set, not matching format: ${test_infos_str}" - fi - - _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}" - done - unset test_infos_str test_infos_arr - - # run mysql-test tests - pushd "${TESTDIR}" &>/dev/null || die - perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test-list="${T}/disabled.def" - retstatus_tests=$? - - popd &>/dev/null || die - - # Cleanup is important for these testcases. - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - - local failures="" - [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests" - - [[ -z "${failures}" ]] || die "Test failures: ${failures}" - einfo "Tests successfully completed" -} - -src_install() { - cmake_src_install - - # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used - if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then - rm "${ED}/usr/include/mysql/server/private/config.h" || die - fi - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Convenience links - einfo "Making Convenience links for mysqlcheck multi-call binary" - dosym "mysqlcheck" "/usr/bin/mysqlanalyze" - dosym "mysqlcheck" "/usr/bin/mysqlrepair" - dosym "mysqlcheck" "/usr/bin/mysqloptimize" - - # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir - if [[ -d "${ED}/usr/data" ]] ; then - rm -Rf "${ED}/usr/data" || die - fi - - # Unless they explicitly specific USE=test, then do not install the - # testsuite. It DOES have a use to be installed, esp. when you want to do a - # validation of your database configuration after tuning it. - if ! use test ; then - rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test" - fi - - # Configuration stuff - einfo "Building default configuration ..." - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}" - [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf - cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die - eprefixify "${TMPDIR}/my.cnf" - doins "${TMPDIR}/my.cnf" - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}/mariadb.d" - cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die - eprefixify "${TMPDIR}/50-distro-client.cnf" - doins "${TMPDIR}/50-distro-client.cnf" - - if use server ; then - mycnf_src="my.cnf.distro-server" - sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ - "${FILESDIR}/${mycnf_src}" \ - > "${TMPDIR}/my.cnf.ok" || die - if use prefix ; then - sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \ - "${TMPDIR}/my.cnf.ok" || die - fi - if use latin1 ; then - sed -i \ - -e "/character-set/s|utf8|latin1|g" \ - "${TMPDIR}/my.cnf.ok" || die - fi - eprefixify "${TMPDIR}/my.cnf.ok" - newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf - - einfo "Including support files and sample configurations" - docinto "support-files" - local script - for script in \ - "${S}"/support-files/magic - do - [[ -f "$script" ]] && dodoc "${script}" - done - - docinto "scripts" - for script in "${S}"/scripts/mysql* ; do - [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" - done - # Manually install supporting files that conflict with other packages - # but are needed for galera and initial installation - exeinto /usr/libexec/mariadb - doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror" - - if use pam ; then - keepdir /usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir - fi - fi - - # Conflicting files - conflicting_files=() - - # We prefer my_print_defaults from dev-db/mysql-connector-c - conflicting_files=( "${ED}/usr/share/man/man1/my_print_defaults.1" ) - - # Remove bundled mytop in favor of dev-db/mytop - conflicting_files+=( "${ED}/usr/bin/mytop" ) - conflicting_files+=( "${ED}/usr/share/man/man1/mytop.1" ) - - local conflicting_file - for conflicting_file in "${conflicting_files[@]}" ; do - if [[ -e "${conflicting_file}" ]] ; then - rm -v "${conflicting_file}" || die - fi - done - - # Fix a dangling symlink when galera is not built - if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then - rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die - fi - - # Remove dangling symlink - rm "${ED}/usr/$(get_libdir)/libmariadb.a" || die - - # Remove broken SST scripts that are incompatible - local scriptremove - for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do - if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then - rm "${ED}/usr/bin/${scriptremove}" || die - fi - done -} - -pkg_preinst() { - java-pkg-opt-2_pkg_preinst -} - -pkg_postinst() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Create log directory securely if it does not exist - [[ -d "${ROOT}/${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}/${MY_LOGDIR}" - - if use server ; then - if use pam; then - einfo - elog "This install includes the PAM authentication plugin." - elog "To activate and configure the PAM plugin, please read:" - elog "https://mariadb.com/docs/server/reference/plugins/authentication-plugins/authentication-with-pluggable-authentication-modules-pam/authentication-plugin-pam" - einfo - chown mysql:mysql "${EROOT}/usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir" || die - fi - - if [[ -z "${REPLACING_VERSIONS}" ]] ; then - einfo - elog "You might want to run:" - elog "\"emerge --config =${CATEGORY}/${PF}\"" - elog "if this is a new install." - elog - elog "If you are switching server implentations, you should run the" - elog "mysql_upgrade tool." - einfo - else - einfo - elog "If you are upgrading major versions, you should run the" - elog "mysql_upgrade tool." - einfo - fi - - if use galera ; then - einfo - elog "Be sure to edit the my.cnf file to activate your cluster settings." - elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\"" - elog "The first time the cluster is activated, you should add" - elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node." - elog "This option should then be removed for subsequent starts." - einfo - fi - fi - - # Note about configuration change - einfo - elog "This version of mariadb reorganizes the configuration from a single my.cnf" - elog "to several files in /etc/mysql/${PN}.d." - elog "Please backup any changes you made to /etc/mysql/my.cnf" - elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension." - elog "You may have as many files as needed and they are read alphabetically." - elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." - einfo -} - -pkg_config() { - _getoptval() { - local section="${1}" - local option="--${2}" - local extra_options="${3}" - local cmd=( - "${my_print_defaults_binary}" - "${extra_options}" - "${section}" - ) - - local values=() - local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) - for parameter in "${parameters[@]}" - do - # my_print_defaults guarantees output of options, one per line, - # in the form that they would be specified on the command line. - # So checking for --option=* should be safe. - case ${parameter} in - ${option}=*) - values+=( "${parameter#*=}" ) - ;; - esac - done - - if [[ ${#values[@]} -gt 0 ]] ; then - # Option could have been set multiple times - # in which case only the last occurrence - # contains the current value - echo "${values[-1]}" - fi - } - - _mktemp_dry() { - # emktemp has no --dry-run option - local template="${1}" - - if [[ -z "${template}" ]] ; then - if [[ -z "${T}" ]] ; then - template="/tmp/XXXXXXX" - else - template="${T}/XXXXXXX" - fi - fi - - local template_wo_X=${template//X/} - local n_X - let n_X=${#template}-${#template_wo_X} - if [[ ${n_X} -lt 3 ]] ; then - echo "${FUNCNAME[0]}: too few X's in template '${template}'" >&2 - return - fi - - local attempts=0 - local character tmpfile - while [[ true ]] ; do - let attempts=attempts+1 - - new_file= - while read -n1 character ; do - if [[ "${character}" == "X" ]] ; then - tmpfile+="${RANDOM:0:1}" - else - tmpfile+="${character}" - fi - done < <(echo -n "${template}") - - if [[ ! -f "${tmpfile}" ]] - then - echo "${tmpfile}" - return - fi - - if [[ ${attempts} -ge 100 ]] ; then - echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2 - return - fi - done - } - - local mysql_binary="${EROOT}/usr/bin/mysql" - if [[ ! -x "${mysql_binary}" ]] ; then - die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysqld_binary="${EROOT}/usr/sbin/mysqld" - if [[ ! -x "${mysqld_binary}" ]] ; then - die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysql_install_db_binary="${EROOT}/usr/bin/mysql_install_db" - if [[ ! -x "${mysql_install_db_binary}" ]] ; then - die "'${mysql_install_db_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" - if [[ ! -x "${my_print_defaults_binary}" ]] ; then - die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" - fi - - if [[ -z "${MYSQL_USER}" ]] ; then - MYSQL_USER=mysql - if use prefix ; then - MYSQL_USER=$(id -u -n 2>/dev/null) - if [[ -z "${MYSQL_USER}" ]] ; then - die "Failed to determine current username!" - fi - fi - fi - - if [[ -z "${MYSQL_GROUP}" ]] ; then - MYSQL_GROUP=mysql - if use prefix ; then - MYSQL_GROUP=$(id -g -n 2>/dev/null) - if [[ -z "${MYSQL_GROUP}" ]] ; then - die "Failed to determine current user groupname!" - fi - fi - fi - - # my_print_defaults needs to read stuff in $HOME/.my.cnf - local -x HOME="${EROOT}/root" - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Read currently set data directory - MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - - # Bug #213475 - MySQL _will_ object strenously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if [[ -z "${MY_DATADIR}" ]] ; then - die "Sorry, unable to find MY_DATADIR!" - elif [[ -d "${MY_DATADIR}/mysql" ]] ; then - ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!" - ewarn "Please rename or delete its content if you wish to initialize a new data directory." - die "${PN} data directory at '${MY_DATADIR}' looks already initialized!" - fi - - MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_TMPDIR=${MYSQL_TMPDIR%/} - # These are dir+prefix - MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*} - MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*} - - # Create missing directories. - # Always check if mysql user can write to directory even if we just - # created directory because a parent directory might be not - # accessible for that user. - PID_DIR="${EROOT}/run/mysqld" - if [[ ! -d "${PID_DIR}" ]] ; then - einfo "Creating ${PN} PID directory '${PID_DIR}' ..." - install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \ - || die "Failed to create PID directory '${PID_DIR}'!" - fi - - local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_pid_dir_testfile}" ]] \ - && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_pid_dir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!" - else - rm "${_pid_dir_testfile}" || die - unset _pid_dir_testfile - fi - - if [[ ! -d "${MY_DATADIR}" ]] ; then - einfo "Creating ${PN} data directory '${MY_DATADIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \ - || die "Failed to create ${PN} data directory '${MY_DATADIR}'!" - fi - - local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_datadir_testfile}" ]] \ - && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_datadir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!" - else - rm "${_my_datadir_testfile}" || die - unset _my_datadir_testfile - fi - - if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then - einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \ - || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!" - fi - - if [[ -z "${MYSQL_TMPDIR}" ]] ; then - MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")" - [[ -z "${MYSQL_TMPDIR}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!" - - mkdir "${MYSQL_TMPDIR}" || die - chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die - fi - - # Now we need to test MYSQL_TMPDIR... - local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_tmpdir_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_tmpdir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!" - else - rm "${_my_tmpdir_testfile}" || die - unset _my_tmpdir_testfile - fi - - if [[ "${MYSQL_LOG_BIN}" == /* && ! -d "${MYSQL_LOG_BIN}" ]] ; then - # Only create directory when MYSQL_LOG_BIN is an absolute path - einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \ - || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'" - fi - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Only test when MYSQL_LOG_BIN is an absolute path - local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_logbin_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_logbin_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!" - else - rm "${_my_logbin_testfile}" || die - unset _my_logbin_testfile - fi - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* && ! -d "${MYSQL_RELAY_LOG}" ]] ; then - # Only create directory when MYSQL_RELAY_LOG is an absolute path - einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \ - || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Only test when MYSQL_RELAY_LOG is an absolute path - local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_relaylog_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_relaylog_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!" - else - rm "${_my_relaylog_testfile}" || die - unset _my_relaylog_testfile - fi - fi - - local SETUP_TMPDIR=$(mktemp -d "/tmp/${PN}-config.XXXXXXXXX" 2>/dev/null) - [[ -z "${SETUP_TMPDIR}" ]] && die "Failed to create setup tmpdir" - - # Limit access - chmod 0770 "${SETUP_TMPDIR}" || die - chown ${MYSQL_USER} "${SETUP_TMPDIR}" || die - - local mysql_install_log="${SETUP_TMPDIR}/install_db.log" - local mysqld_logfile="${SETUP_TMPDIR}/mysqld.log" - - echo "" - einfo "Detected settings:" - einfo "==================" - einfo "MySQL User:\t\t\t\t${MYSQL_USER}" - einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}" - einfo "MySQL DATA directory:\t\t${MY_DATADIR}" - einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}" - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Absolute path for binary log files specified - einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Absolute path for relay log files specified - einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}" - fi - - einfo "PID DIR:\t\t\t\t${PID_DIR}" - einfo "Install db log:\t\t\t${mysql_install_log}" - einfo "Install server log:\t\t\t${mysqld_logfile}" - - echo - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local tmp_mysqld_password_source= - - for tmp_mysqld_password_source in mysql client ; do - einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" - if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then - if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then - ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!" - MYSQL_ROOT_PASSWORD= - continue - fi - - einfo "Found password in '${tmp_mysqld_password_source}' section!" - break - fi - done - - # Sometimes --show is required to display passwords in some implementations of my_print_defaults - if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" - fi - - unset tmp_mysqld_password_source - fi - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local pwd1="a" - local pwd2="b" - - echo - einfo "No password for mysql 'root' user was specified via environment" - einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config" - einfo "file like '${HOME}/.my.cnf'." - einfo "To continue please provide a password for the mysql 'root' user" - einfo "now on console:" - ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!" - read -rsp " >" pwd1 ; echo - - einfo "Retype the password" - read -rsp " >" pwd2 ; echo - - if [[ "x${pwd1}" != "x${pwd2}" ]] ; then - die "Passwords are not the same!" - fi - - MYSQL_ROOT_PASSWORD="${pwd1}" - unset pwd1 pwd2 - - echo - fi - - local -a mysqld_options - - # Fix bug 446200. Don't reference host my.cnf, needs to come first, - # see http://bugs.mysql.com/bug.php?id=31312 - use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" ) - - # Figure out which options we need to disable to do the setup - local helpfile="${TMPDIR}/mysqld-help" - "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null - - local opt optexp optfull - for opt in host-cache name-resolve networking slave-start \ - federated ssl log-bin relay-log slow-query-log external-locking \ - log-slave-updates \ - ; do - optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}" - grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" ) - done - - # Prepare timezones, see - # https://dev.mysql.com/doc/mysql/en/time-zone-support.html - local tz_sql="${SETUP_TMPDIR}/tz.sql" - - echo "USE mysql;" >"${tz_sql}" - "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null - if [[ $? -ne 0 ]] ; then - die "mysql_tzinfo_to_sql failed!" - fi - - local cmd=( - "${mysql_install_db_binary}" - "${mysqld_options[@]}" - "--init-file='${tz_sql}'" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - "--log-error='${mysql_install_log}'" - "--rpm" - "--cross-bootstrap" - "--skip-test-db" - "--user=${MYSQL_USER}" - ) - - einfo "Initializing ${PN} data directory: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1 - - if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql/user.frm" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2 - die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!" - fi - - local x=${RANDOM} - local socket="${PID_DIR}/mysqld.${x}.sock" - [[ -f "${socket}" ]] && die "Randomness failed; Socket ${socket} already exists!" - local pidfile="${PID_DIR}/mysqld.${x}.pid" - [[ -f "${pidfile}" ]] && die "Randomness failed; Pidfile ${pidfile} already exists!" - unset x - - cmd=( - "${mysqld_binary}" - "${mysqld_options[@]}" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - --max_allowed_packet=8M - --net_buffer_length=16K - "--socket='${socket}'" - "--pid-file='${pidfile}'" - "--log-error='${mysqld_logfile}'" - "--user=${MYSQL_USER}" - ) - - einfo "Starting mysqld to finalize initialization: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 & - - echo -n "Waiting for mysqld to accept connections " - local maxtry=15 - while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - if [[ -S "${socket}" ]] ; then - # Even with a socket we don't know if mysqld will abort - # start due to an error so just wait a little bit more... - maxtry=5 - while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - fi - - echo - - if [[ ! -S "${socket}" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2 - die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!" - fi - - local mysql_logfile="${SETUP_TMPDIR}/set_root_pw.log" - touch "${mysql_logfile}" || die - - ebegin "Setting root password" - # Do this from memory, as we don't want clear text passwords in temp files - local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'" - cmd=( - "${mysql_binary}" - --no-defaults - "--socket='${socket}'" - -hlocalhost - "-e \"${sql}\"" - ) - eval "${cmd[@]}" >"${mysql_logfile}" 2>&1 - local rc=$? - eend ${rc} - - if [[ ${rc} -ne 0 ]] ; then - # Poor man's solution which tries to avoid having password - # in log. NOTE: sed can fail if user didn't follow advice - # and included character which will require escaping... - sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null - - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}" - die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!" - fi - - # Stop the server - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - echo -n "Stopping the server " - pkill -F "${pidfile}" &>/dev/null - - maxtry=10 - while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - echo - - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - # We somehow failed to stop server. - # However, not a fatal error. Just warn the user. - ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!" - fi - fi - - rm -r "${SETUP_TMPDIR}" || die - - einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!" -} diff --git a/dev-db/mariadb/mariadb-10.6.27.ebuild b/dev-db/mariadb/mariadb-10.6.27.ebuild deleted file mode 100644 index 0b744a4872e7..000000000000 --- a/dev-db/mariadb/mariadb-10.6.27.ebuild +++ /dev/null @@ -1,1353 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -SUBSLOT="18" -JAVA_PKG_OPT_USE="jdbc" - -inherit systemd flag-o-matic prefix toolchain-funcs \ - multiprocessing java-pkg-opt-2 cmake pam - -DESCRIPTION="An enhanced, drop-in replacement for MySQL" -HOMEPAGE="https://mariadb.org/" -SRC_URI=" - mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6.23-patches-01.tar.xz -" -# Shorten the path because the socket path length must be shorter than 107 chars -# and we will run a mysql server during test phase -S="${WORKDIR}/mysql" - -LICENSE="GPL-2 LGPL-2.1+" -SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 x86" -IUSE="+backup bindist columnstore cracklib debug extraengine galera innodb-lz4 - innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga - numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx - sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc - test xml yassl" - -RESTRICT="!bindist? ( bindist ) !test? ( test )" - -REQUIRED_USE="jdbc? ( extraengine server !static ) - ?? ( tcmalloc jemalloc ) - static? ( yassl !pam ) - test? ( extraengine )" - -# Be warned, *DEPEND are version-dependant -# These are used for both runtime and compiletime -COMMON_DEPEND=" - >=dev-libs/libpcre2-10.34:= - >=sys-apps/texinfo-4.7-r1 - sys-libs/ncurses:0= - >=virtual/zlib-1.2.3:= - virtual/libcrypt:= - !bindist? ( - sys-libs/binutils-libs:0= - >=sys-libs/readline-4.1:0= - ) - jemalloc? ( dev-libs/jemalloc:0= ) - kerberos? ( virtual/krb5 ) - kernel_linux? ( - dev-libs/libaio:0= - sys-libs/liburing:= - sys-process/procps:0= - ) - server? ( - app-arch/bzip2 - app-arch/xz-utils - backup? ( app-arch/libarchive:0= ) - columnstore? ( - app-arch/snappy:= - dev-libs/boost:= - dev-libs/libxml2:2= - ) - cracklib? ( sys-libs/cracklib:0= ) - extraengine? ( - odbc? ( dev-db/unixODBC:0= ) - xml? ( dev-libs/libxml2:2= ) - ) - innodb-lz4? ( app-arch/lz4 ) - innodb-lzo? ( dev-libs/lzo ) - innodb-snappy? ( app-arch/snappy:= ) - mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 ) - numa? ( sys-process/numactl ) - oqgraph? ( - dev-libs/boost:= - dev-libs/judy:0= - ) - pam? ( sys-libs/pam:0= ) - s3? ( net-misc/curl ) - systemd? ( sys-apps/systemd:= ) - ) - systemtap? ( >=dev-debug/systemtap-1.3:0= ) - tcmalloc? ( dev-util/google-perftools:0= ) - yassl? ( net-libs/gnutls:0= ) - !yassl? ( - >=dev-libs/openssl-1.0.0:0= - ) -" -BDEPEND=" - app-alternatives/yacc - test? ( - acct-group/mysql - acct-user/mysql - ) -" -DEPEND="${COMMON_DEPEND} - server? ( - extraengine? ( jdbc? ( >=virtual/jdk-1.8 ) ) - ) - static? ( sys-libs/ncurses[static-libs] ) -" -RDEPEND="${COMMON_DEPEND} - !dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster - !dev-db/mariadb:0 - !dev-db/mariadb:5.5 - !dev-db/mariadb:10.1 - !dev-db/mariadb:10.2 - !dev-db/mariadb:10.3 - !dev-db/mariadb:10.4 - !dev-db/mariadb:10.5 - !dev-db/mariadb:10.7 - !dev-db/mariadb:10.8 - !dev-db/mariadb:10.9 - !dev-db/mariadb:10.10 - !dev-db/mariadb:10.11 - !dev-db/mariadb:11.0 - !dev-db/mariadb:11.1 - !dev-db/mariadb:11.2 - !dev-db/mariadb:11.3 - !dev-db/mariadb:11.4 - !<virtual/mysql-5.6-r11 - !<virtual/libmysqlclient-18-r1 - selinux? ( sec-policy/selinux-mysql ) - server? ( - columnstore? ( - dev-db/mariadb-connector-c - !dev-libs/thrift - ) - extraengine? ( jdbc? ( >=virtual/jre-1.8 ) ) - galera? ( - sys-apps/iproute2 - =sys-cluster/galera-26* - sst-rsync? ( sys-process/lsof ) - sst-mariabackup? ( net-misc/socat[ssl] ) - ) - !prefix? ( - acct-group/mysql - acct-user/mysql - dev-db/mysql-init-scripts - ) - ) -" -# For other stuff to bring us in -# dev-perl/DBD-MariaDB is needed by some scripts installed by MySQL -PDEPEND="perl? ( dev-perl/DBD-MariaDB )" - -QA_CONFIG_IMPL_DECL_SKIP=( - # These don't exist on Linux - pthread_threadid_np - getthrid -) - -mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"} - - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="" - if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then - MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR=$(grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ - | sed -e 's/.*=\s*//' \ - | tail -n1) - fi - fi - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="${MY_LOCALSTATEDIR}" - einfo "Using default MY_DATADIR" - fi - elog "MySQL MY_DATADIR is ${MY_DATADIR}" - - if [[ -z "${PREVIOUS_DATADIR}" ]] ; then - if [[ -e "${MY_DATADIR}" ]] ; then - # If you get this and you're wondering about it, see bug #207636 - elog "MySQL datadir found in ${MY_DATADIR}" - elog "A new one will not be created." - PREVIOUS_DATADIR="yes" - else - PREVIOUS_DATADIR="no" - fi - export PREVIOUS_DATADIR - fi - else - if [[ ${EBUILD_PHASE} == "config" ]]; then - local new_MY_DATADIR - new_MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - - if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then - ewarn "MySQL MY_DATADIR has changed" - ewarn "from ${MY_DATADIR}" - ewarn "to ${new_MY_DATADIR}" - MY_DATADIR="${new_MY_DATADIR}" - fi - fi - fi - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LOCALSTATEDIR MY_LOGDIR - export MY_DATADIR -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if has test ${FEATURES} ; then - # Bug #213475 - MySQL _will_ object strenuously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if ! has userpriv ${FEATURES} ; then - die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." - fi - fi - fi - - java-pkg-opt-2_pkg_setup -} - -src_unpack() { - unpack ${A} - - mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die -} - -src_prepare() { - eapply "${WORKDIR}"/mariadb-patches - eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch - eapply "${FILESDIR}"/${PN}-10.6.21-debug.patch - eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch - - eapply_user - - _disable_plugin() { - echo > "${S}/plugin/${1}/CMakeLists.txt" || die - } - _disable_engine() { - echo > "${S}/storage/${1}/CMakeLists.txt" || die - } - - if use jemalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC jemalloc)" >> "${S}/sql/CMakeLists.txt" - elif use tcmalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC tcmalloc)" >> "${S}/sql/CMakeLists.txt" - fi - - local plugin - local server_plugins=( handler_socket auth_socket feedback metadata_lock_info - locale_info qc_info server_audit sql_errlog auth_ed25519 ) - local test_plugins=( audit_null auth_examples daemon_example fulltext - debug_key_management example_key_management versioning ) - if ! use server; then # These plugins are for the server - for plugin in "${server_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - fi - - if ! use test; then # These plugins are only used during testing - for plugin in "${test_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - _disable_engine test_sql_discovery - echo > "${S}/plugin/auth_pam/testing/CMakeLists.txt" || die - fi - - _disable_engine example - - if ! use oqgraph ; then # avoids extra library checks - _disable_engine oqgraph - fi - - if use mroonga ; then - # Remove the bundled groonga - # There is no CMake flag, it simply checks for existance - rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga" - else - _disable_engine mroonga - fi - - # Fix static bindings in galera replication - sed -i -e 's~add_library(wsrep_api_v26$~add_library(wsrep_api_v26 STATIC~' \ - "${S}"/wsrep-lib/wsrep-API/CMakeLists.txt || die - sed -i -e 's~add_library(wsrep-lib$~add_library(wsrep-lib STATIC~' \ - "${S}"/wsrep-lib/src/CMakeLists.txt || die - - # Fix galera_recovery.sh script - sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \ - scripts/galera_recovery.sh || die - - sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \ - "${S}"/scripts/mysql_install_db.sh || die - - cmake_src_prepare - java-pkg-opt-2_src_prepare -} - -src_configure() { - # bug #855233 (MDEV-11914, MDEV-25633) at least - filter-lto - # bug 508724 mariadb cannot use ld.gold - tc-ld-is-gold && tc-ld-force-bfd - # Bug #114895, bug #110149 - filter-flags "-O" "-O[01]" - - use elibc_musl && append-flags -D_LARGEFILE64_SOURCE - - # It fails on alpha without this - use alpha && append-ldflags "-Wl,--no-relax" - - # bug #945352 - append-cflags -std=gnu17 - - append-cxxflags -felide-constructors - - # bug #283926, with GCC4.4, this is required to get correct behavior. - append-flags -fno-strict-aliasing - - # Workaround for bug #959423 (https://jira.mariadb.org/browse/MDEV-37148) - append-flags -fno-tree-vectorize - - # debug hack wrt #497532 - local mycmakeargs=( - -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql" - -DSYSCONFDIR="${EPREFIX}/etc/mysql" - -DINSTALL_BINDIR=bin - -DINSTALL_DOCDIR=share/doc/${PF} - -DINSTALL_DOCREADMEDIR=share/doc/${PF} - -DINSTALL_INCLUDEDIR=include/mysql - -DINSTALL_INFODIR=share/info - -DINSTALL_LIBDIR=$(get_libdir) - -DINSTALL_PAMDIR="$(getpam_mod_dir)" - -DINSTALL_PAMDATADIR="${EPREFIX}/etc/security" - -DINSTALL_MANDIR=share/man - -DINSTALL_MYSQLSHAREDIR=share/mariadb - -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin - -DINSTALL_SCRIPTDIR=bin - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" - -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" - -DWITH_COMMENT="Gentoo Linux ${PF}" - -DWITH_UNIT_TESTS=$(usex test ON OFF) - -DWITH_LIBEDIT=0 - -DWITH_ZLIB=system - -DWITHOUT_LIBWRAP=1 - -DENABLED_LOCAL_INFILE=1 - -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DWITH_DEFAULT_COMPILER_OPTIONS=0 - -DWITH_DEFAULT_FEATURE_SET=0 - -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" - # The build forces this to be defined when cross-compiling. We pass it - # all the time for simplicity and to make sure it is actually correct. - -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) - -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) - -DCONC_WITH_EXTERNAL_ZLIB=YES - -DWITH_EXTERNAL_ZLIB=YES - -DSUFFIX_INSTALL_DIR="" - -DWITH_UNITTEST=OFF - -DWITHOUT_CLIENTLIBS=YES - -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF - -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF - -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC - -DCLIENT_PLUGIN_ZSTD=OFF - ) - if use test ; then - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test ) - else - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' ) - fi - - if ! use yassl ; then - mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC ) - else - mycmakeargs+=( -DWITH_SSL=bundled ) - fi - - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - mycmakeargs+=( - -DDTRACE="${BROOT}"/usr/bin/stap-dtrace - ) - fi - - # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION - mycmakeargs+=( - -DWITH_READLINE=$(usex bindist 1 0) - -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) - -DENABLE_DTRACE=$(usex systemtap) - ) - - if use server ; then - # Connect and Federated{,X} must be treated special - # otherwise they will not be built as plugins - if ! use extraengine ; then - mycmakeargs+=( - -DPLUGIN_CONNECT=NO - -DPLUGIN_FEDERATED=NO - -DPLUGIN_FEDERATEDX=NO - ) - fi - - mycmakeargs+=( - -DWITH_PCRE=system - -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) - -DPLUGIN_SPHINX=$(usex sphinx YES NO) - -DPLUGIN_AUTH_PAM=$(usex pam YES NO) - -DPLUGIN_AWS_KEY_MANAGEMENT=NO - -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) - -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) - -DPLUGIN_SPIDER=$(usex extraengine YES NO) - -DPLUGIN_S3=$(usex s3 YES NO) - -DPLUGIN_COLUMNSTORE=$(usex columnstore YES NO) - -DCONNECT_WITH_MYSQL=1 - -DCONNECT_WITH_LIBXML2=$(usex xml) - -DCONNECT_WITH_ODBC=$(usex odbc) - -DCONNECT_WITH_JDBC=$(usex jdbc) - # Build failure and autodep wrt bug 639144 - -DCONNECT_WITH_MONGO=OFF - -DWITH_WSREP=$(usex galera) - -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) - -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) - -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) - -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DWITH_MARIABACKUP=$(usex backup ON OFF) - -DWITH_LIBARCHIVE=$(usex backup ON OFF) - -DINSTALL_SQLBENCHDIR="" - -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) - # systemd is only linked to for server notification - -DWITH_SYSTEMD=$(usex systemd yes no) - -DWITH_NUMA=$(usex numa ON OFF) - ) - - if use test ; then - # This is needed for the new client lib which tests a real, open server - mycmakeargs+=( -DSKIP_TESTS=ON ) - fi - - if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then - ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" - ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." - ewarn "You MUST file bugs without these variables set." - - mycmakeargs+=( - -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} - -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} - ) - - elif ! use latin1 ; then - mycmakeargs+=( - -DDEFAULT_CHARSET=utf8mb4 - -DDEFAULT_COLLATION=utf8mb4_unicode_520_ci - ) - else - mycmakeargs+=( - -DDEFAULT_CHARSET=latin1 - -DDEFAULT_COLLATION=latin1_swedish_ci - ) - fi - mycmakeargs+=( - -DEXTRA_CHARSETS=all - -DMYSQL_USER=mysql - -DDISABLE_SHARED=$(usex static YES NO) - -DWITH_DEBUG=$(usex debug) - -DWITH_EMBEDDED_SERVER=OFF - -DWITH_PROFILING=$(usex profiling) - ) - - if use static; then - mycmakeargs+=( -DWITH_PIC=1 ) - fi - - if use jemalloc || use tcmalloc ; then - mycmakeargs+=( -DWITH_SAFEMALLOC=OFF ) - fi - - # Storage engines - mycmakeargs+=( - -DWITH_ARCHIVE_STORAGE_ENGINE=1 - -DWITH_BLACKHOLE_STORAGE_ENGINE=1 - -DWITH_CSV_STORAGE_ENGINE=1 - -DWITH_HEAP_STORAGE_ENGINE=1 - -DWITH_INNOBASE_STORAGE_ENGINE=1 - -DWITH_MYISAMMRG_STORAGE_ENGINE=1 - -DWITH_MYISAM_STORAGE_ENGINE=1 - -DWITH_PARTITION_STORAGE_ENGINE=1 - ) - else - mycmakeargs+=( - -DWITHOUT_SERVER=1 - -DWITH_EMBEDDED_SERVER=OFF - -DEXTRA_CHARSETS=none - -DINSTALL_SQLBENCHDIR= - -DWITH_SYSTEMD=no - ) - fi - - cmake_src_configure -} - -src_compile() { - cmake_src_compile -} - -# Official test instructions: -# USE='extraengine perl server' \ -# FEATURES='test userpriv' \ -# ebuild mariadb-X.X.XX.ebuild \ -# digest clean package -src_test() { - _disable_test() { - local rawtestname bug reason - rawtestname="${1}" ; shift - bug="${1}" ; shift - reason="${@}" - ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})" - echo "${rawtestname} : BUG#${bug} ${reason}" >> "${T}/disabled.def" - } - - local TESTDIR="${BUILD_DIR}/mysql-test" - local retstatus_tests - - if ! use server ; then - einfo "Skipping server tests due to minimal build." - return 0 - fi - - # Ensure that parallel runs don't die - export MTR_BUILD_THREAD="$((${RANDOM} % 100))" - - if [[ -z "${MTR_PARALLEL}" ]] ; then - local -x MTR_PARALLEL=$(makeopts_jobs) - - if [[ ${MTR_PARALLEL} -gt 4 ]] ; then - # Running multiple tests in parallel usually require higher ulimit - # and fs.aio-max-nr setting. In addition, tests like main.multi_update - # are known to hit timeout when system is busy. - # To avoid test failure we will limit MTR_PARALLEL to 4 instead of - # using "auto". - local info_msg="Parallel MySQL test suite jobs limited to 4 (MAKEOPTS=${MTR_PARALLEL})" - info_msg+=" to avoid test failures. Set MTR_PARALLEL if you know what you are doing!" - einfo "${info_msg}" - unset info_msg - MTR_PARALLEL=4 - fi - else - einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'" - fi - - # Try to increase file limits to increase test coverage - if ! ulimit -n 16500 1>/dev/null 2>&1 ; then - # Upper limit comes from parts.partition_* tests - ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager." - - if ! ulimit -n 4162 1>/dev/null 2>&1 ; then - # Medium limit comes from '[Warning] Buffered warning: Could not - # increase number of max_open_files to more than 3000 (request: 4162)' - ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager." - - if ! ulimit -n 3000 1>/dev/null 2>&1 ; then - ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager." - else - einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 4162 (medium test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 16500 (best test coverage)." - fi - - # create directories because mysqladmin might run out of order - mkdir -p "${T}"/var-tests{,/log} || die - - if [[ ! -f "${S}/mysql-test/unstable-tests" ]] ; then - touch "${S}"/mysql-test/unstable-tests || die - fi - - cp "${S}"/mysql-test/unstable-tests "${T}/disabled.def" || die - - local disabled_tests=( - "innodb_gis.1;MDEV-25095;Known rounding error with latest AMD processors" - "innodb_gis.gis;MDEV-25095;Known rounding error with latest AMD processors" - "main.gis;MDEV-25095;Known rounding error with latest AMD processors" - - # Test which fail in network-sandbox because hostname is set to "localhost" - "main.explain_non_select;0;Fails in network-sandbox" - "main.mysql_upgrade;MDEV-27044;Fails in network-sandbox" - "main.selectivity_no_engine;MDEV-26320;Fails in network-sandbox" - "main.stat_tables;0;Fails in network-sandbox" - "main.stat_tables_innodb;0;Fails in network-sandbox" - "main.upgrade_MDEV-19650;MDEV-25096;Fails in network-sandbox" - "perfschema.privilege_table_io;MDEV-27045;Fails in network-sandbox" - "roles.acl_statistics;0;Fails in network-sandbox" - - # Some tests are unable to retrieve HW address - "spider.*;MDEV-37098;Fails with network sandbox" - - # This issue will be fixed in next release - # see also https://github.com/MariaDB/server/pull/4429 - "main.func_regexp_pcre;MDEV-38046;Fails with PCRE2 10.47" - ) - - use latin1 || disabled_tests+=( - "funcs_1.is_columns_mysql;0;Requires USE=latin1" - "main.information_schema;0;Requires USE=latin1" - "main.sp2;24177;Requires USE=latin1" - "main.system_mysql_db;0;Requires USE=latin1" - "main.upgrade_MDEV-19650;24178;Requires USE=latin1" - ) - - local test_infos_str test_infos_arr - for test_infos_str in "${disabled_tests[@]}" ; do - IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}" - - if [[ ${#test_infos_arr[@]} != 3 ]] ; then - die "Invalid test data set, not matching format: ${test_infos_str}" - fi - - _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}" - done - unset test_infos_str test_infos_arr - - # run mysql-test tests - pushd "${TESTDIR}" &>/dev/null || die - perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test-list="${T}/disabled.def" - retstatus_tests=$? - - popd &>/dev/null || die - - # Cleanup is important for these testcases. - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - - local failures="" - [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests" - - [[ -z "${failures}" ]] || die "Test failures: ${failures}" - einfo "Tests successfully completed" -} - -src_install() { - cmake_src_install - - # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used - if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then - rm "${ED}/usr/include/mysql/server/private/config.h" || die - fi - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Convenience links - einfo "Making Convenience links for mysqlcheck multi-call binary" - dosym "mysqlcheck" "/usr/bin/mysqlanalyze" - dosym "mysqlcheck" "/usr/bin/mysqlrepair" - dosym "mysqlcheck" "/usr/bin/mysqloptimize" - - # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir - if [[ -d "${ED}/usr/data" ]] ; then - rm -Rf "${ED}/usr/data" || die - fi - - # Unless they explicitly specific USE=test, then do not install the - # testsuite. It DOES have a use to be installed, esp. when you want to do a - # validation of your database configuration after tuning it. - if ! use test ; then - rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test" - fi - - # Configuration stuff - einfo "Building default configuration ..." - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}" - [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf - cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die - eprefixify "${TMPDIR}/my.cnf" - doins "${TMPDIR}/my.cnf" - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}/mariadb.d" - cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die - eprefixify "${TMPDIR}/50-distro-client.cnf" - doins "${TMPDIR}/50-distro-client.cnf" - - if use server ; then - mycnf_src="my.cnf.distro-server" - sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ - "${FILESDIR}/${mycnf_src}" \ - > "${TMPDIR}/my.cnf.ok" || die - if use prefix ; then - sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \ - "${TMPDIR}/my.cnf.ok" || die - fi - if use latin1 ; then - sed -i \ - -e "/character-set/s|utf8|latin1|g" \ - "${TMPDIR}/my.cnf.ok" || die - fi - eprefixify "${TMPDIR}/my.cnf.ok" - newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf - - einfo "Including support files and sample configurations" - docinto "support-files" - local script - for script in \ - "${S}"/support-files/magic - do - [[ -f "$script" ]] && dodoc "${script}" - done - - docinto "scripts" - for script in "${S}"/scripts/mysql* ; do - [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" - done - # Manually install supporting files that conflict with other packages - # but are needed for galera and initial installation - exeinto /usr/libexec/mariadb - doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror" - - if use pam ; then - keepdir /usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir - fi - fi - - # Conflicting files - conflicting_files=() - - # We prefer my_print_defaults from dev-db/mysql-connector-c - conflicting_files=( "${ED}/usr/share/man/man1/my_print_defaults.1" ) - - # Remove bundled mytop in favor of dev-db/mytop - conflicting_files+=( "${ED}/usr/bin/mytop" ) - conflicting_files+=( "${ED}/usr/share/man/man1/mytop.1" ) - - local conflicting_file - for conflicting_file in "${conflicting_files[@]}" ; do - if [[ -e "${conflicting_file}" ]] ; then - rm -v "${conflicting_file}" || die - fi - done - - # Fix a dangling symlink when galera is not built - if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then - rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die - fi - - # Remove dangling symlink - rm "${ED}/usr/$(get_libdir)/libmariadb.a" || die - - # Remove broken SST scripts that are incompatible - local scriptremove - for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do - if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then - rm "${ED}/usr/bin/${scriptremove}" || die - fi - done -} - -pkg_preinst() { - java-pkg-opt-2_pkg_preinst -} - -pkg_postinst() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Create log directory securely if it does not exist - [[ -d "${ROOT}/${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}/${MY_LOGDIR}" - - if use server ; then - if use pam; then - einfo - elog "This install includes the PAM authentication plugin." - elog "To activate and configure the PAM plugin, please read:" - elog "https://mariadb.com/docs/server/reference/plugins/authentication-plugins/authentication-with-pluggable-authentication-modules-pam/authentication-plugin-pam" - einfo - chown mysql:mysql "${EROOT}/usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir" || die - fi - - if [[ -z "${REPLACING_VERSIONS}" ]] ; then - einfo - elog "You might want to run:" - elog "\"emerge --config =${CATEGORY}/${PF}\"" - elog "if this is a new install." - elog - elog "If you are switching server implentations, you should run the" - elog "mysql_upgrade tool." - einfo - else - einfo - elog "If you are upgrading major versions, you should run the" - elog "mysql_upgrade tool." - einfo - fi - - if use galera ; then - einfo - elog "Be sure to edit the my.cnf file to activate your cluster settings." - elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\"" - elog "The first time the cluster is activated, you should add" - elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node." - elog "This option should then be removed for subsequent starts." - einfo - fi - fi - - # Note about configuration change - einfo - elog "This version of mariadb reorganizes the configuration from a single my.cnf" - elog "to several files in /etc/mysql/${PN}.d." - elog "Please backup any changes you made to /etc/mysql/my.cnf" - elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension." - elog "You may have as many files as needed and they are read alphabetically." - elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." - einfo -} - -pkg_config() { - _getoptval() { - local section="${1}" - local option="--${2}" - local extra_options="${3}" - local cmd=( - "${my_print_defaults_binary}" - "${extra_options}" - "${section}" - ) - - local values=() - local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) - for parameter in "${parameters[@]}" - do - # my_print_defaults guarantees output of options, one per line, - # in the form that they would be specified on the command line. - # So checking for --option=* should be safe. - case ${parameter} in - ${option}=*) - values+=( "${parameter#*=}" ) - ;; - esac - done - - if [[ ${#values[@]} -gt 0 ]] ; then - # Option could have been set multiple times - # in which case only the last occurrence - # contains the current value - echo "${values[-1]}" - fi - } - - _mktemp_dry() { - # emktemp has no --dry-run option - local template="${1}" - - if [[ -z "${template}" ]] ; then - if [[ -z "${T}" ]] ; then - template="/tmp/XXXXXXX" - else - template="${T}/XXXXXXX" - fi - fi - - local template_wo_X=${template//X/} - local n_X - let n_X=${#template}-${#template_wo_X} - if [[ ${n_X} -lt 3 ]] ; then - echo "${FUNCNAME[0]}: too few X's in template '${template}'" >&2 - return - fi - - local attempts=0 - local character tmpfile - while [[ true ]] ; do - let attempts=attempts+1 - - new_file= - while read -n1 character ; do - if [[ "${character}" == "X" ]] ; then - tmpfile+="${RANDOM:0:1}" - else - tmpfile+="${character}" - fi - done < <(echo -n "${template}") - - if [[ ! -f "${tmpfile}" ]] - then - echo "${tmpfile}" - return - fi - - if [[ ${attempts} -ge 100 ]] ; then - echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2 - return - fi - done - } - - local mysql_binary="${EROOT}/usr/bin/mysql" - if [[ ! -x "${mysql_binary}" ]] ; then - die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysqld_binary="${EROOT}/usr/sbin/mysqld" - if [[ ! -x "${mysqld_binary}" ]] ; then - die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysql_install_db_binary="${EROOT}/usr/bin/mysql_install_db" - if [[ ! -x "${mysql_install_db_binary}" ]] ; then - die "'${mysql_install_db_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" - if [[ ! -x "${my_print_defaults_binary}" ]] ; then - die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" - fi - - if [[ -z "${MYSQL_USER}" ]] ; then - MYSQL_USER=mysql - if use prefix ; then - MYSQL_USER=$(id -u -n 2>/dev/null) - if [[ -z "${MYSQL_USER}" ]] ; then - die "Failed to determine current username!" - fi - fi - fi - - if [[ -z "${MYSQL_GROUP}" ]] ; then - MYSQL_GROUP=mysql - if use prefix ; then - MYSQL_GROUP=$(id -g -n 2>/dev/null) - if [[ -z "${MYSQL_GROUP}" ]] ; then - die "Failed to determine current user groupname!" - fi - fi - fi - - # my_print_defaults needs to read stuff in $HOME/.my.cnf - local -x HOME="${EROOT}/root" - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Read currently set data directory - MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - - # Bug #213475 - MySQL _will_ object strenously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if [[ -z "${MY_DATADIR}" ]] ; then - die "Sorry, unable to find MY_DATADIR!" - elif [[ -d "${MY_DATADIR}/mysql" ]] ; then - ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!" - ewarn "Please rename or delete its content if you wish to initialize a new data directory." - die "${PN} data directory at '${MY_DATADIR}' looks already initialized!" - fi - - MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_TMPDIR=${MYSQL_TMPDIR%/} - # These are dir+prefix - MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*} - MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*} - - # Create missing directories. - # Always check if mysql user can write to directory even if we just - # created directory because a parent directory might be not - # accessible for that user. - PID_DIR="${EROOT}/run/mysqld" - if [[ ! -d "${PID_DIR}" ]] ; then - einfo "Creating ${PN} PID directory '${PID_DIR}' ..." - install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \ - || die "Failed to create PID directory '${PID_DIR}'!" - fi - - local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_pid_dir_testfile}" ]] \ - && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_pid_dir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!" - else - rm "${_pid_dir_testfile}" || die - unset _pid_dir_testfile - fi - - if [[ ! -d "${MY_DATADIR}" ]] ; then - einfo "Creating ${PN} data directory '${MY_DATADIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \ - || die "Failed to create ${PN} data directory '${MY_DATADIR}'!" - fi - - local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_datadir_testfile}" ]] \ - && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_datadir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!" - else - rm "${_my_datadir_testfile}" || die - unset _my_datadir_testfile - fi - - if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then - einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \ - || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!" - fi - - if [[ -z "${MYSQL_TMPDIR}" ]] ; then - MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")" - [[ -z "${MYSQL_TMPDIR}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!" - - mkdir "${MYSQL_TMPDIR}" || die - chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die - fi - - # Now we need to test MYSQL_TMPDIR... - local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_tmpdir_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_tmpdir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!" - else - rm "${_my_tmpdir_testfile}" || die - unset _my_tmpdir_testfile - fi - - if [[ "${MYSQL_LOG_BIN}" == /* && ! -d "${MYSQL_LOG_BIN}" ]] ; then - # Only create directory when MYSQL_LOG_BIN is an absolute path - einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \ - || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'" - fi - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Only test when MYSQL_LOG_BIN is an absolute path - local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_logbin_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_logbin_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!" - else - rm "${_my_logbin_testfile}" || die - unset _my_logbin_testfile - fi - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* && ! -d "${MYSQL_RELAY_LOG}" ]] ; then - # Only create directory when MYSQL_RELAY_LOG is an absolute path - einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \ - || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Only test when MYSQL_RELAY_LOG is an absolute path - local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_relaylog_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_relaylog_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!" - else - rm "${_my_relaylog_testfile}" || die - unset _my_relaylog_testfile - fi - fi - - local SETUP_TMPDIR=$(mktemp -d "/tmp/${PN}-config.XXXXXXXXX" 2>/dev/null) - [[ -z "${SETUP_TMPDIR}" ]] && die "Failed to create setup tmpdir" - - # Limit access - chmod 0770 "${SETUP_TMPDIR}" || die - chown ${MYSQL_USER} "${SETUP_TMPDIR}" || die - - local mysql_install_log="${SETUP_TMPDIR}/install_db.log" - local mysqld_logfile="${SETUP_TMPDIR}/mysqld.log" - - echo "" - einfo "Detected settings:" - einfo "==================" - einfo "MySQL User:\t\t\t\t${MYSQL_USER}" - einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}" - einfo "MySQL DATA directory:\t\t${MY_DATADIR}" - einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}" - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Absolute path for binary log files specified - einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Absolute path for relay log files specified - einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}" - fi - - einfo "PID DIR:\t\t\t\t${PID_DIR}" - einfo "Install db log:\t\t\t${mysql_install_log}" - einfo "Install server log:\t\t\t${mysqld_logfile}" - - echo - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local tmp_mysqld_password_source= - - for tmp_mysqld_password_source in mysql client ; do - einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" - if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then - if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then - ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!" - MYSQL_ROOT_PASSWORD= - continue - fi - - einfo "Found password in '${tmp_mysqld_password_source}' section!" - break - fi - done - - # Sometimes --show is required to display passwords in some implementations of my_print_defaults - if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" - fi - - unset tmp_mysqld_password_source - fi - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local pwd1="a" - local pwd2="b" - - echo - einfo "No password for mysql 'root' user was specified via environment" - einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config" - einfo "file like '${HOME}/.my.cnf'." - einfo "To continue please provide a password for the mysql 'root' user" - einfo "now on console:" - ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!" - read -rsp " >" pwd1 ; echo - - einfo "Retype the password" - read -rsp " >" pwd2 ; echo - - if [[ "x${pwd1}" != "x${pwd2}" ]] ; then - die "Passwords are not the same!" - fi - - MYSQL_ROOT_PASSWORD="${pwd1}" - unset pwd1 pwd2 - - echo - fi - - local -a mysqld_options - - # Fix bug 446200. Don't reference host my.cnf, needs to come first, - # see http://bugs.mysql.com/bug.php?id=31312 - use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" ) - - # Figure out which options we need to disable to do the setup - local helpfile="${TMPDIR}/mysqld-help" - "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null - - local opt optexp optfull - for opt in host-cache name-resolve networking slave-start \ - federated ssl log-bin relay-log slow-query-log external-locking \ - log-slave-updates \ - ; do - optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}" - grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" ) - done - - # Prepare timezones, see - # https://dev.mysql.com/doc/mysql/en/time-zone-support.html - local tz_sql="${SETUP_TMPDIR}/tz.sql" - - echo "USE mysql;" >"${tz_sql}" - "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null - if [[ $? -ne 0 ]] ; then - die "mysql_tzinfo_to_sql failed!" - fi - - local cmd=( - "${mysql_install_db_binary}" - "${mysqld_options[@]}" - "--init-file='${tz_sql}'" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - "--log-error='${mysql_install_log}'" - "--rpm" - "--cross-bootstrap" - "--skip-test-db" - "--user=${MYSQL_USER}" - ) - - einfo "Initializing ${PN} data directory: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1 - - if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql/user.frm" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2 - die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!" - fi - - local x=${RANDOM} - local socket="${PID_DIR}/mysqld.${x}.sock" - [[ -f "${socket}" ]] && die "Randomness failed; Socket ${socket} already exists!" - local pidfile="${PID_DIR}/mysqld.${x}.pid" - [[ -f "${pidfile}" ]] && die "Randomness failed; Pidfile ${pidfile} already exists!" - unset x - - cmd=( - "${mysqld_binary}" - "${mysqld_options[@]}" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - --max_allowed_packet=8M - --net_buffer_length=16K - "--socket='${socket}'" - "--pid-file='${pidfile}'" - "--log-error='${mysqld_logfile}'" - "--user=${MYSQL_USER}" - ) - - einfo "Starting mysqld to finalize initialization: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 & - - echo -n "Waiting for mysqld to accept connections " - local maxtry=15 - while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - if [[ -S "${socket}" ]] ; then - # Even with a socket we don't know if mysqld will abort - # start due to an error so just wait a little bit more... - maxtry=5 - while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - fi - - echo - - if [[ ! -S "${socket}" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2 - die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!" - fi - - local mysql_logfile="${SETUP_TMPDIR}/set_root_pw.log" - touch "${mysql_logfile}" || die - - ebegin "Setting root password" - # Do this from memory, as we don't want clear text passwords in temp files - local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'" - cmd=( - "${mysql_binary}" - --no-defaults - "--socket='${socket}'" - -hlocalhost - "-e \"${sql}\"" - ) - eval "${cmd[@]}" >"${mysql_logfile}" 2>&1 - local rc=$? - eend ${rc} - - if [[ ${rc} -ne 0 ]] ; then - # Poor man's solution which tries to avoid having password - # in log. NOTE: sed can fail if user didn't follow advice - # and included character which will require escaping... - sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null - - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}" - die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!" - fi - - # Stop the server - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - echo -n "Stopping the server " - pkill -F "${pidfile}" &>/dev/null - - maxtry=10 - while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - echo - - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - # We somehow failed to stop server. - # However, not a fatal error. Just warn the user. - ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!" - fi - fi - - rm -r "${SETUP_TMPDIR}" || die - - einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!" -} diff --git a/dev-db/mariadb/mariadb-11.4.8-r1.ebuild b/dev-db/mariadb/mariadb-11.4.13-r1.ebuild index 7babf0e72620..adc4ed011673 100644 --- a/dev-db/mariadb/mariadb-11.4.8-r1.ebuild +++ b/dev-db/mariadb/mariadb-11.4.13-r1.ebuild @@ -5,15 +5,16 @@ EAPI=8 SUBSLOT="18" JAVA_PKG_OPT_USE="jdbc" +MARIADB_GENTOO_PATCH_VERSION="11.4.13-0" inherit systemd flag-o-matic prefix toolchain-funcs \ - multiprocessing java-pkg-opt-2 cmake + multiprocessing java-pkg-opt-2 cmake pam DESCRIPTION="An enhanced, drop-in replacement for MySQL" HOMEPAGE="https://mariadb.org/" SRC_URI=" mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-11.4.8-patches-01.tar.xz + https://gitweb.gentoo.org/proj/mariadb-patches.git/snapshot/${PN}-patches-${MARIADB_GENTOO_PATCH_VERSION}.tar.bz2 " # Shorten the path because the socket path length must be shorter than 107 chars # and we will run a mysql server during test phase @@ -21,8 +22,8 @@ S="${WORKDIR}/mysql" LICENSE="GPL-2 LGPL-2.1+" SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 x86" -IUSE="+backup bindist columnstore cracklib debug extraengine galera innodb-lz4 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="aws-km +backup bindist columnstore cracklib debug extraengine galera innodb-lz4 innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc @@ -45,6 +46,7 @@ COMMON_DEPEND=" sys-libs/ncurses:0= >=virtual/zlib-1.2.3:= virtual/libcrypt:= + aws-km? ( dev-cpp/aws-sdk-cpp:= ) !bindist? ( sys-libs/binutils-libs:0= >=sys-libs/readline-4.1:0= @@ -105,21 +107,10 @@ DEPEND="${COMMON_DEPEND} ) static? ( sys-libs/ncurses[static-libs] ) " + RDEPEND="${COMMON_DEPEND} - !dev-db/mysql !dev-db/percona-server - !dev-db/mariadb:10.3 - !dev-db/mariadb:10.4 - !dev-db/mariadb:10.5 - !dev-db/mariadb:10.6 - !dev-db/mariadb:10.7 - !dev-db/mariadb:10.8 - !dev-db/mariadb:10.9 - !dev-db/mariadb:10.10 - !dev-db/mariadb:10.11 - !dev-db/mariadb:11.0 - !dev-db/mariadb:11.1 - !dev-db/mariadb:11.2 - !dev-db/mariadb:11.3 + !<dev-db/mariadb-$(ver_cut 1-2) + !dev-db/mysql selinux? ( sec-policy/selinux-mysql ) server? ( columnstore? ( dev-db/mariadb-connector-c ) @@ -220,7 +211,7 @@ src_unpack() { } src_prepare() { - eapply "${WORKDIR}"/mariadb-patches + eapply "${WORKDIR}"/${PN}-patches-${MARIADB_GENTOO_PATCH_VERSION} eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch @@ -285,6 +276,11 @@ src_prepare() { sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \ "${S}"/scripts/mysql_install_db.sh || die + # Apply duckdb patch and remove git apply call + eapply -d storage/duckdb/third_parties/duckdb -- storage/duckdb/patches/*.diff + sed -i -e 's/PATCH_COMMAND.*/PATCH_COMMAND echo/g' \ + storage/duckdb/cmake/duckdb.cmake || die + cmake_src_prepare java-pkg-opt-2_src_prepare } @@ -323,6 +319,8 @@ src_configure() { -DINSTALL_INCLUDEDIR=include/mysql -DINSTALL_INFODIR=share/info -DINSTALL_LIBDIR=$(get_libdir) + -DINSTALL_PAMDIR="$(getpam_mod_dir)" + -DINSTALL_PAMDATADIR="${EPREFIX}/etc/security" -DINSTALL_MANDIR=share/man -DINSTALL_MYSQLSHAREDIR=share/mariadb -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin @@ -355,7 +353,7 @@ src_configure() { -DWITH_UNITTEST=OFF -DWITHOUT_CLIENTLIBS=YES -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF - -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF + -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=$(usex test DYNAMIC OFF) -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF) -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF) -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC @@ -402,7 +400,7 @@ src_configure() { -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) -DPLUGIN_SPHINX=$(usex sphinx YES NO) -DPLUGIN_AUTH_PAM=$(usex pam YES NO) - -DPLUGIN_AWS_KEY_MANAGEMENT=NO + -DPLUGIN_AWS_KEY_MANAGEMENT=$(usex aws-km DYNAMIC NO) -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) -DPLUGIN_SPIDER=$(usex extraengine YES NO) @@ -583,8 +581,11 @@ src_test() { # Test which fail in network-sandbox because hostname is set to "localhost" "main.explain_non_select;0;Fails in network-sandbox" + "main.mysql_client_test;0;Fails in network-sandbox" + "main.mysql_client_test_comp;0;Fails in network-sandbox" "main.mysql_upgrade;MDEV-27044;Fails in network-sandbox" "main.selectivity_no_engine;MDEV-26320;Fails in network-sandbox" + "main.ssl_autoverify;0;Fails in network-sandbox" "main.stat_tables;0;Fails in network-sandbox" "main.stat_tables_innodb;0;Fails in network-sandbox" "main.upgrade_MDEV-19650;MDEV-25096;Fails in network-sandbox" @@ -592,8 +593,15 @@ src_test() { "roles.acl_statistics;0;Fails in network-sandbox" "sysschema.v_privileges_by_table_by_level;MDEV-36030;Fails with network sandbox" + # Fails in network-sandbox which contains only "lo" interface + "main.func_json;MDEV-38057;Fails in network-sandbox" + # Some tests are unable to retrieve HW address "spider.*;MDEV-37098;Fails with network sandbox" + + # This issue will be fixed in next release + # see also https://github.com/MariaDB/server/pull/4429 + "main.func_regexp_pcre;MDEV-38046;Fails with PCRE2 10.47" ) use latin1 || disabled_tests+=( diff --git a/dev-db/mariadb/mariadb-11.8.3-r2.ebuild b/dev-db/mariadb/mariadb-11.8.3-r2.ebuild deleted file mode 100644 index 134bca9cfc3e..000000000000 --- a/dev-db/mariadb/mariadb-11.8.3-r2.ebuild +++ /dev/null @@ -1,1320 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -SUBSLOT="18" -JAVA_PKG_OPT_USE="jdbc" - -inherit systemd flag-o-matic prefix toolchain-funcs \ - multiprocessing java-pkg-opt-2 cmake - -DESCRIPTION="An enhanced, drop-in replacement for MySQL" -HOMEPAGE="https://mariadb.org/" -SRC_URI=" - mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-11.4.8-patches-01.tar.xz -" -# Shorten the path because the socket path length must be shorter than 107 chars -# and we will run a mysql server during test phase -S="${WORKDIR}/mysql" - -LICENSE="GPL-2 LGPL-2.1+" -SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 x86" -IUSE="+backup bindist columnstore cracklib debug extraengine galera innodb-lz4 - innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga - numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx - sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc - test xml yassl" - -RESTRICT="!bindist? ( bindist ) !test? ( test )" - -REQUIRED_USE="jdbc? ( extraengine server !static ) - ?? ( tcmalloc jemalloc ) - static? ( yassl !pam ) - test? ( extraengine )" - -# Be warned, *DEPEND are version-dependant -# These are used for both runtime and compiletime -COMMON_DEPEND=" - dev-libs/libfmt:= - dev-libs/lzo:2 - >=dev-libs/libpcre2-10.34:= - >=sys-apps/texinfo-4.7-r1 - sys-libs/ncurses:0= - >=virtual/zlib-1.2.3:= - virtual/libcrypt:= - !bindist? ( - sys-libs/binutils-libs:0= - >=sys-libs/readline-4.1:0= - ) - jemalloc? ( dev-libs/jemalloc:0= ) - kerberos? ( virtual/krb5 ) - kernel_linux? ( - dev-libs/libaio:0= - sys-libs/liburing:= - sys-process/procps:0= - ) - server? ( - app-arch/bzip2 - app-arch/xz-utils - backup? ( app-arch/libarchive:0= ) - columnstore? ( - app-arch/snappy:= - dev-libs/boost:= - dev-libs/libxml2:2= - dev-libs/thrift:= - ) - cracklib? ( sys-libs/cracklib:0= ) - extraengine? ( - odbc? ( dev-db/unixODBC:0= ) - xml? ( dev-libs/libxml2:2= ) - ) - innodb-lz4? ( app-arch/lz4 ) - innodb-lzo? ( dev-libs/lzo ) - innodb-snappy? ( app-arch/snappy:= ) - mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 ) - numa? ( sys-process/numactl ) - oqgraph? ( - dev-libs/boost:= - dev-libs/judy:0= - ) - pam? ( sys-libs/pam:0= ) - s3? ( net-misc/curl ) - systemd? ( sys-apps/systemd:= ) - ) - systemtap? ( >=dev-debug/systemtap-1.3:0= ) - tcmalloc? ( dev-util/google-perftools:0= ) - yassl? ( net-libs/gnutls:0= ) - !yassl? ( - >=dev-libs/openssl-1.0.0:0= - ) -" -BDEPEND=" - app-alternatives/yacc - test? ( - acct-group/mysql - acct-user/mysql - dev-perl/Net-SSLeay - ) -" -DEPEND="${COMMON_DEPEND} - server? ( - extraengine? ( jdbc? ( >=virtual/jdk-1.8 ) ) - ) - static? ( sys-libs/ncurses[static-libs] ) -" -RDEPEND=" - ${COMMON_DEPEND} - !<dev-db/mariadb-$(ver_cut 1-2) - !dev-db/mysql - !dev-db/percona-server - selinux? ( sec-policy/selinux-mysql ) - server? ( - columnstore? ( dev-db/mariadb-connector-c ) - extraengine? ( jdbc? ( >=virtual/jre-1.8 ) ) - galera? ( - sys-apps/iproute2 - =sys-cluster/galera-26* - sst-rsync? ( sys-process/lsof ) - sst-mariabackup? ( net-misc/socat[ssl] ) - ) - !prefix? ( - acct-group/mysql - acct-user/mysql - dev-db/mysql-init-scripts - ) - ) -" -# For other stuff to bring us in -# dev-perl/DBD-MariaDB is needed by some scripts installed by MySQL -PDEPEND="perl? ( dev-perl/DBD-MariaDB )" - -mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"} - - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="" - if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then - MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR=$(grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ - | sed -e 's/.*=\s*//' \ - | tail -n1) - fi - fi - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="${MY_LOCALSTATEDIR}" - einfo "Using default MY_DATADIR" - fi - elog "MySQL MY_DATADIR is ${MY_DATADIR}" - - if [[ -z "${PREVIOUS_DATADIR}" ]] ; then - if [[ -e "${MY_DATADIR}" ]] ; then - # If you get this and you're wondering about it, see bug #207636 - elog "MySQL datadir found in ${MY_DATADIR}" - elog "A new one will not be created." - PREVIOUS_DATADIR="yes" - else - PREVIOUS_DATADIR="no" - fi - export PREVIOUS_DATADIR - fi - else - if [[ ${EBUILD_PHASE} == "config" ]]; then - local new_MY_DATADIR - new_MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - - if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then - ewarn "MySQL MY_DATADIR has changed" - ewarn "from ${MY_DATADIR}" - ewarn "to ${new_MY_DATADIR}" - MY_DATADIR="${new_MY_DATADIR}" - fi - fi - fi - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LOCALSTATEDIR MY_LOGDIR - export MY_DATADIR -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if has test ${FEATURES} ; then - # Bug #213475 - MySQL _will_ object strenuously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if ! has userpriv ${FEATURES} ; then - die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." - fi - fi - fi - - java-pkg-opt-2_pkg_setup -} - -src_unpack() { - unpack ${A} - - mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die -} - -src_prepare() { - eapply "${WORKDIR}"/mariadb-patches - eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch - eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch - - eapply_user - - _disable_plugin() { - echo > "${S}/plugin/${1}/CMakeLists.txt" || die - } - _disable_engine() { - echo > "${S}/storage/${1}/CMakeLists.txt" || die - } - - if use jemalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC jemalloc)" >> "${S}/sql/CMakeLists.txt" - elif use tcmalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC tcmalloc)" >> "${S}/sql/CMakeLists.txt" - fi - - local plugin - local server_plugins=( handler_socket auth_socket feedback metadata_lock_info - locale_info qc_info server_audit sql_errlog auth_ed25519 ) - local test_plugins=( audit_null auth_examples daemon_example fulltext - debug_key_management example_key_management versioning ) - if ! use server; then # These plugins are for the server - for plugin in "${server_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - fi - - if ! use test; then # These plugins are only used during testing - for plugin in "${test_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - _disable_engine test_sql_discovery - echo > "${S}/plugin/auth_pam/testing/CMakeLists.txt" || die - fi - - _disable_engine example - - if ! use oqgraph ; then # avoids extra library checks - _disable_engine oqgraph - fi - - if use mroonga ; then - # Remove the bundled groonga - # There is no CMake flag, it simply checks for existance - rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga" - else - _disable_engine mroonga - fi - - # Fix static bindings in galera replication - sed -i -e 's~add_library(wsrep_api_v26$~add_library(wsrep_api_v26 STATIC~' \ - "${S}"/wsrep-lib/wsrep-API/CMakeLists.txt || die - sed -i -e 's~add_library(wsrep-lib$~add_library(wsrep-lib STATIC~' \ - "${S}"/wsrep-lib/src/CMakeLists.txt || die - - # Fix galera_recovery.sh script - sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \ - scripts/galera_recovery.sh || die - - sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \ - "${S}"/scripts/mysql_install_db.sh || die - - cmake_src_prepare - java-pkg-opt-2_src_prepare -} - -src_configure() { - # bug #855233 (MDEV-11914, MDEV-25633) at least - filter-lto - # bug 508724 mariadb cannot use ld.gold - tc-ld-is-gold && tc-ld-force-bfd - - use elibc_musl && append-flags -D_LARGEFILE64_SOURCE - - # It fails on alpha without this - use alpha && append-ldflags "-Wl,--no-relax" - - # bug #945352 - append-cflags -std=gnu17 - - append-cxxflags -felide-constructors - - # bug #283926, with GCC4.4, this is required to get correct behavior. - append-flags -fno-strict-aliasing - - # Workaround for bug #959423 (https://jira.mariadb.org/browse/MDEV-37148) - append-flags -fno-tree-vectorize - - # debug hack wrt #497532 - local mycmakeargs=( - -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql" - -DSYSCONFDIR="${EPREFIX}/etc/mysql" - -DINSTALL_BINDIR=bin - -DINSTALL_DOCDIR=share/doc/${PF} - -DINSTALL_DOCREADMEDIR=share/doc/${PF} - -DINSTALL_INCLUDEDIR=include/mysql - -DINSTALL_INFODIR=share/info - -DINSTALL_LIBDIR=$(get_libdir) - -DINSTALL_MANDIR=share/man - -DINSTALL_MYSQLSHAREDIR=share/mariadb - -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin - -DINSTALL_SCRIPTDIR=bin - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" - -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" - -DWITH_COMMENT="Gentoo Linux ${PF}" - -DWITH_UNIT_TESTS=$(usex test ON OFF) - -DWITH_LIBEDIT=0 - -DWITH_LIBFMT=system - -DWITH_THRIFT=system # for columnstore - -DWITH_ZLIB=system - -DWITHOUT_LIBWRAP=1 - -DENABLED_LOCAL_INFILE=1 - -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DWITH_DEFAULT_COMPILER_OPTIONS=0 - -DWITH_DEFAULT_FEATURE_SET=0 - -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" - # The build forces this to be defined when cross-compiling. We pass it - # all the time for simplicity and to make sure it is actually correct. - -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) - -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) - -DCONC_WITH_EXTERNAL_ZLIB=YES - -DWITH_EXTERNAL_ZLIB=YES - -DSUFFIX_INSTALL_DIR="" - -DWITH_UNITTEST=OFF - -DWITHOUT_CLIENTLIBS=YES - -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF - -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF - -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC - -DCLIENT_PLUGIN_ZSTD=OFF - ) - if use test ; then - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test ) - else - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' ) - fi - - if ! use yassl ; then - mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC ) - else - mycmakeargs+=( -DWITH_SSL=bundled ) - fi - - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - mycmakeargs+=( - -DDTRACE="${BROOT}"/usr/bin/stap-dtrace - ) - fi - - # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION - mycmakeargs+=( - -DWITH_READLINE=$(usex bindist 1 0) - -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) - -DENABLE_DTRACE=$(usex systemtap) - ) - - if use server ; then - # Connect and Federated{,X} must be treated special - # otherwise they will not be built as plugins - if ! use extraengine ; then - mycmakeargs+=( - -DPLUGIN_CONNECT=NO - -DPLUGIN_FEDERATED=NO - -DPLUGIN_FEDERATEDX=NO - ) - fi - - mycmakeargs+=( - -DWITH_PCRE=system - -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) - -DPLUGIN_SPHINX=$(usex sphinx YES NO) - -DPLUGIN_AUTH_PAM=$(usex pam YES NO) - -DPLUGIN_AWS_KEY_MANAGEMENT=NO - -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) - -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) - -DPLUGIN_SPIDER=$(usex extraengine YES NO) - -DPLUGIN_S3=$(usex s3 YES NO) - -DPLUGIN_COLUMNSTORE=$(usex columnstore YES NO) - -DCONNECT_WITH_MYSQL=1 - -DCONNECT_WITH_LIBXML2=$(usex xml) - -DCONNECT_WITH_ODBC=$(usex odbc) - -DCONNECT_WITH_JDBC=$(usex jdbc) - # Build failure and autodep wrt bug 639144 - -DCONNECT_WITH_MONGO=OFF - -DWITH_WSREP=$(usex galera) - -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) - -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) - -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) - -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DWITH_MARIABACKUP=$(usex backup ON OFF) - -DWITH_LIBARCHIVE=$(usex backup ON OFF) - -DINSTALL_SQLBENCHDIR="" - -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) - # systemd is only linked to for server notification - -DWITH_SYSTEMD=$(usex systemd yes no) - -DWITH_NUMA=$(usex numa ON OFF) - ) - - if use test ; then - # This is needed for the new client lib which tests a real, open server - mycmakeargs+=( -DSKIP_TESTS=ON ) - fi - - if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then - ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" - ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." - ewarn "You MUST file bugs without these variables set." - - mycmakeargs+=( - -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} - -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} - ) - - elif ! use latin1 ; then - mycmakeargs+=( - -DDEFAULT_CHARSET=utf8mb4 - -DDEFAULT_COLLATION=utf8mb4_unicode_520_ci - ) - else - mycmakeargs+=( - -DDEFAULT_CHARSET=latin1 - -DDEFAULT_COLLATION=latin1_swedish_ci - ) - fi - mycmakeargs+=( - -DEXTRA_CHARSETS=all - -DMYSQL_USER=mysql - -DDISABLE_SHARED=$(usex static YES NO) - -DWITH_DEBUG=$(usex debug) - -DWITH_EMBEDDED_SERVER=OFF - -DWITH_PROFILING=$(usex profiling) - ) - - if use static; then - mycmakeargs+=( -DWITH_PIC=1 ) - fi - - if use jemalloc || use tcmalloc ; then - mycmakeargs+=( -DWITH_SAFEMALLOC=OFF ) - fi - - # Storage engines - mycmakeargs+=( - -DWITH_ARCHIVE_STORAGE_ENGINE=1 - -DWITH_BLACKHOLE_STORAGE_ENGINE=1 - -DWITH_CSV_STORAGE_ENGINE=1 - -DWITH_HEAP_STORAGE_ENGINE=1 - -DWITH_INNOBASE_STORAGE_ENGINE=1 - -DWITH_MYISAMMRG_STORAGE_ENGINE=1 - -DWITH_MYISAM_STORAGE_ENGINE=1 - -DWITH_PARTITION_STORAGE_ENGINE=1 - ) - else - mycmakeargs+=( - -DWITHOUT_SERVER=1 - -DWITH_EMBEDDED_SERVER=OFF - -DEXTRA_CHARSETS=none - -DINSTALL_SQLBENCHDIR= - -DWITH_SYSTEMD=no - ) - fi - - cmake_src_configure -} - -src_compile() { - cmake_src_compile -} - -# Official test instructions: -# USE='extraengine perl server' \ -# FEATURES='test userpriv' \ -# ebuild mariadb-X.X.XX.ebuild \ -# digest clean package -src_test() { - _disable_test() { - local rawtestname bug reason - rawtestname="${1}" ; shift - bug="${1}" ; shift - reason="${@}" - ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})" - echo "${rawtestname} : BUG#${bug} ${reason}" >> "${T}/disabled.def" - } - - local TESTDIR="${BUILD_DIR}/mysql-test" - local retstatus_tests - - if ! use server ; then - einfo "Skipping server tests due to minimal build." - return 0 - fi - - # Ensure that parallel runs don't die - export MTR_BUILD_THREAD="$((${RANDOM} % 100))" - - if [[ -z "${MTR_PARALLEL}" ]] ; then - local -x MTR_PARALLEL=$(makeopts_jobs) - - if [[ ${MTR_PARALLEL} -gt 4 ]] ; then - # Running multiple tests in parallel usually require higher ulimit - # and fs.aio-max-nr setting. In addition, tests like main.multi_update - # are known to hit timeout when system is busy. - # To avoid test failure we will limit MTR_PARALLEL to 4 instead of - # using "auto". - local info_msg="Parallel MySQL test suite jobs limited to 4 (MAKEOPTS=${MTR_PARALLEL})" - info_msg+=" to avoid test failures. Set MTR_PARALLEL if you know what you are doing!" - einfo "${info_msg}" - unset info_msg - MTR_PARALLEL=4 - fi - else - einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'" - fi - - # Try to increase file limits to increase test coverage - if ! ulimit -n 16500 1>/dev/null 2>&1 ; then - # Upper limit comes from parts.partition_* tests - ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager." - - if ! ulimit -n 4162 1>/dev/null 2>&1 ; then - # Medium limit comes from '[Warning] Buffered warning: Could not - # increase number of max_open_files to more than 3000 (request: 4162)' - ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager." - - if ! ulimit -n 3000 1>/dev/null 2>&1 ; then - ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager." - else - einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 4162 (medium test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 16500 (best test coverage)." - fi - - # create directories because mysqladmin might run out of order - mkdir -p "${T}"/var-tests{,/log} || die - - if [[ ! -f "${S}/mysql-test/unstable-tests" ]] ; then - touch "${S}"/mysql-test/unstable-tests || die - fi - - cp "${S}"/mysql-test/unstable-tests "${T}/disabled.def" || die - - local disabled_tests=( - "innodb_gis.1;MDEV-25095;Known rounding error with latest AMD processors" - "innodb_gis.gis;MDEV-25095;Known rounding error with latest AMD processors" - "main.gis;MDEV-25095;Known rounding error with latest AMD processors" - - # Some tests are unable to retrieve HW address - "spider.*;MDEV-37098;Fails with network sandbox" - - # issue introduced in 11.8.2 - "main.mysqld--help-aria;MDEV-36668;broken test regex" - ) - - use latin1 || disabled_tests+=( - "funcs_1.is_columns_mysql;0;Requires USE=latin1" - "main.information_schema;0;Requires USE=latin1" - "main.sp2;24177;Requires USE=latin1" - "main.system_mysql_db;0;Requires USE=latin1" - "main.upgrade_MDEV-19650;24178;Requires USE=latin1" - ) - - local test_infos_str test_infos_arr - for test_infos_str in "${disabled_tests[@]}" ; do - IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}" - - if [[ ${#test_infos_arr[@]} != 3 ]] ; then - die "Invalid test data set, not matching format: ${test_infos_str}" - fi - - _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}" - done - unset test_infos_str test_infos_arr - - # run mysql-test tests - pushd "${TESTDIR}" &>/dev/null || die - perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test-list="${T}/disabled.def" - retstatus_tests=$? - - popd &>/dev/null || die - - # Cleanup is important for these testcases. - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - - local failures="" - [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests" - - [[ -z "${failures}" ]] || die "Test failures: ${failures}" - einfo "Tests successfully completed" -} - -src_install() { - cmake_src_install - - # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used - if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then - rm "${ED}/usr/include/mysql/server/private/config.h" || die - fi - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Convenience links - einfo "Making Convenience links for mysqlcheck multi-call binary" - dosym "mysqlcheck" "/usr/bin/mysqlanalyze" - dosym "mysqlcheck" "/usr/bin/mysqlrepair" - dosym "mysqlcheck" "/usr/bin/mysqloptimize" - - # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir - if [[ -d "${ED}/usr/data" ]] ; then - rm -Rf "${ED}/usr/data" || die - fi - - # Unless they explicitly specific USE=test, then do not install the - # testsuite. It DOES have a use to be installed, esp. when you want to do a - # validation of your database configuration after tuning it. - if ! use test ; then - rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test" - fi - - # Configuration stuff - einfo "Building default configuration ..." - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}" - [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf - cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die - eprefixify "${TMPDIR}/my.cnf" - doins "${TMPDIR}/my.cnf" - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}/mariadb.d" - cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die - eprefixify "${TMPDIR}/50-distro-client.cnf" - doins "${TMPDIR}/50-distro-client.cnf" - - if use server ; then - mycnf_src="my.cnf.distro-server" - sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ - "${FILESDIR}/${mycnf_src}" \ - > "${TMPDIR}/my.cnf.ok" || die - if use prefix ; then - sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \ - "${TMPDIR}/my.cnf.ok" || die - fi - if use latin1 ; then - sed -i \ - -e "/character-set/s|utf8|latin1|g" \ - "${TMPDIR}/my.cnf.ok" || die - fi - eprefixify "${TMPDIR}/my.cnf.ok" - newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf - - einfo "Including support files and sample configurations" - docinto "support-files" - local script - for script in \ - "${S}"/support-files/magic - do - [[ -f "$script" ]] && dodoc "${script}" - done - - docinto "scripts" - for script in "${S}"/scripts/mysql* ; do - [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" - done - # Manually install supporting files that conflict with other packages - # but are needed for galera and initial installation - exeinto /usr/libexec/mariadb - doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror" - - if use pam ; then - keepdir /usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir - fi - fi - - # Conflicting files - conflicting_files=() - - # We prefer my_print_defaults from dev-db/mysql-connector-c - conflicting_files=( "${ED}/usr/share/man/man1/my_print_defaults.1" ) - - # Remove bundled mytop in favor of dev-db/mytop - conflicting_files+=( "${ED}/usr/bin/mytop" ) - conflicting_files+=( "${ED}/usr/share/man/man1/mytop.1" ) - - local conflicting_file - for conflicting_file in "${conflicting_files[@]}" ; do - if [[ -e "${conflicting_file}" ]] ; then - rm -v "${conflicting_file}" || die - fi - done - - # Fix a dangling symlink when galera is not built - if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then - rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die - fi - - # Remove dangling symlink - rm "${ED}/usr/$(get_libdir)/libmariadb.a" || die - - # Remove broken SST scripts that are incompatible - local scriptremove - for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do - if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then - rm "${ED}/usr/bin/${scriptremove}" || die - fi - done -} - -pkg_preinst() { - java-pkg-opt-2_pkg_preinst -} - -pkg_postinst() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Create log directory securely if it does not exist - [[ -d "${ROOT}/${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}/${MY_LOGDIR}" - - if use server ; then - if use pam; then - einfo - elog "This install includes the PAM authentication plugin." - elog "To activate and configure the PAM plugin, please read:" - elog "https://mariadb.com/docs/server/reference/plugins/authentication-plugins/authentication-with-pluggable-authentication-modules-pam/authentication-plugin-pam" - einfo - chown mysql:mysql "${EROOT}/usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir" || die - fi - - if [[ -z "${REPLACING_VERSIONS}" ]] ; then - einfo - elog "You might want to run:" - elog "\"emerge --config =${CATEGORY}/${PF}\"" - elog "if this is a new install." - elog - elog "If you are switching server implentations, you should run the" - elog "mysql_upgrade tool." - einfo - else - einfo - elog "If you are upgrading major versions, you should run the" - elog "mysql_upgrade tool." - einfo - fi - - if use galera ; then - einfo - elog "Be sure to edit the my.cnf file to activate your cluster settings." - elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\"" - elog "The first time the cluster is activated, you should add" - elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node." - elog "This option should then be removed for subsequent starts." - einfo - fi - fi - - # Note about configuration change - einfo - elog "This version of mariadb reorganizes the configuration from a single my.cnf" - elog "to several files in /etc/mysql/${PN}.d." - elog "Please backup any changes you made to /etc/mysql/my.cnf" - elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension." - elog "You may have as many files as needed and they are read alphabetically." - elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." - einfo -} - -pkg_config() { - _getoptval() { - local section="${1}" - local option="--${2}" - local extra_options="${3}" - local cmd=( - "${my_print_defaults_binary}" - "${extra_options}" - "${section}" - ) - - local values=() - local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) - for parameter in "${parameters[@]}" - do - # my_print_defaults guarantees output of options, one per line, - # in the form that they would be specified on the command line. - # So checking for --option=* should be safe. - case ${parameter} in - ${option}=*) - values+=( "${parameter#*=}" ) - ;; - esac - done - - if [[ ${#values[@]} -gt 0 ]] ; then - # Option could have been set multiple times - # in which case only the last occurrence - # contains the current value - echo "${values[-1]}" - fi - } - - _mktemp_dry() { - # emktemp has no --dry-run option - local template="${1}" - - if [[ -z "${template}" ]] ; then - if [[ -z "${T}" ]] ; then - template="/tmp/XXXXXXX" - else - template="${T}/XXXXXXX" - fi - fi - - local template_wo_X=${template//X/} - local n_X - let n_X=${#template}-${#template_wo_X} - if [[ ${n_X} -lt 3 ]] ; then - echo "${FUNCNAME[0]}: too few X's in template '${template}'" >&2 - return - fi - - local attempts=0 - local character tmpfile - while [[ true ]] ; do - let attempts=attempts+1 - - new_file= - while read -n1 character ; do - if [[ "${character}" == "X" ]] ; then - tmpfile+="${RANDOM:0:1}" - else - tmpfile+="${character}" - fi - done < <(echo -n "${template}") - - if [[ ! -f "${tmpfile}" ]] - then - echo "${tmpfile}" - return - fi - - if [[ ${attempts} -ge 100 ]] ; then - echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2 - return - fi - done - } - - local mysql_binary="${EROOT}/usr/bin/mysql" - if [[ ! -x "${mysql_binary}" ]] ; then - die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysqld_binary="${EROOT}/usr/sbin/mysqld" - if [[ ! -x "${mysqld_binary}" ]] ; then - die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysql_install_db_binary="${EROOT}/usr/bin/mysql_install_db" - if [[ ! -x "${mysql_install_db_binary}" ]] ; then - die "'${mysql_install_db_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" - if [[ ! -x "${my_print_defaults_binary}" ]] ; then - die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" - fi - - if [[ -z "${MYSQL_USER}" ]] ; then - MYSQL_USER=mysql - if use prefix ; then - MYSQL_USER=$(id -u -n 2>/dev/null) - if [[ -z "${MYSQL_USER}" ]] ; then - die "Failed to determine current username!" - fi - fi - fi - - if [[ -z "${MYSQL_GROUP}" ]] ; then - MYSQL_GROUP=mysql - if use prefix ; then - MYSQL_GROUP=$(id -g -n 2>/dev/null) - if [[ -z "${MYSQL_GROUP}" ]] ; then - die "Failed to determine current user groupname!" - fi - fi - fi - - # my_print_defaults needs to read stuff in $HOME/.my.cnf - local -x HOME="${EROOT}/root" - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Read currently set data directory - MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - - # Bug #213475 - MySQL _will_ object strenously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if [[ -z "${MY_DATADIR}" ]] ; then - die "Sorry, unable to find MY_DATADIR!" - elif [[ -d "${MY_DATADIR}/mysql" ]] ; then - ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!" - ewarn "Please rename or delete its content if you wish to initialize a new data directory." - die "${PN} data directory at '${MY_DATADIR}' looks already initialized!" - fi - - MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_TMPDIR=${MYSQL_TMPDIR%/} - # These are dir+prefix - MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*} - MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*} - - # Create missing directories. - # Always check if mysql user can write to directory even if we just - # created directory because a parent directory might be not - # accessible for that user. - PID_DIR="${EROOT}/run/mysqld" - if [[ ! -d "${PID_DIR}" ]] ; then - einfo "Creating ${PN} PID directory '${PID_DIR}' ..." - install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \ - || die "Failed to create PID directory '${PID_DIR}'!" - fi - - local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_pid_dir_testfile}" ]] \ - && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_pid_dir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!" - else - rm "${_pid_dir_testfile}" || die - unset _pid_dir_testfile - fi - - if [[ ! -d "${MY_DATADIR}" ]] ; then - einfo "Creating ${PN} data directory '${MY_DATADIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \ - || die "Failed to create ${PN} data directory '${MY_DATADIR}'!" - fi - - local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_datadir_testfile}" ]] \ - && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_datadir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!" - else - rm "${_my_datadir_testfile}" || die - unset _my_datadir_testfile - fi - - if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then - einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \ - || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!" - fi - - if [[ -z "${MYSQL_TMPDIR}" ]] ; then - MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")" - [[ -z "${MYSQL_TMPDIR}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!" - - mkdir "${MYSQL_TMPDIR}" || die - chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die - fi - - # Now we need to test MYSQL_TMPDIR... - local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_tmpdir_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_tmpdir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!" - else - rm "${_my_tmpdir_testfile}" || die - unset _my_tmpdir_testfile - fi - - if [[ "${MYSQL_LOG_BIN}" == /* && ! -d "${MYSQL_LOG_BIN}" ]] ; then - # Only create directory when MYSQL_LOG_BIN is an absolute path - einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \ - || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'" - fi - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Only test when MYSQL_LOG_BIN is an absolute path - local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_logbin_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_logbin_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!" - else - rm "${_my_logbin_testfile}" || die - unset _my_logbin_testfile - fi - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* && ! -d "${MYSQL_RELAY_LOG}" ]] ; then - # Only create directory when MYSQL_RELAY_LOG is an absolute path - einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \ - || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Only test when MYSQL_RELAY_LOG is an absolute path - local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_relaylog_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_relaylog_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!" - else - rm "${_my_relaylog_testfile}" || die - unset _my_relaylog_testfile - fi - fi - - local SETUP_TMPDIR=$(mktemp -d "/tmp/${PN}-config.XXXXXXXXX" 2>/dev/null) - [[ -z "${SETUP_TMPDIR}" ]] && die "Failed to create setup tmpdir" - - # Limit access - chmod 0770 "${SETUP_TMPDIR}" || die - chown ${MYSQL_USER} "${SETUP_TMPDIR}" || die - - local mysql_install_log="${SETUP_TMPDIR}/install_db.log" - local mysqld_logfile="${SETUP_TMPDIR}/mysqld.log" - - echo "" - einfo "Detected settings:" - einfo "==================" - einfo "MySQL User:\t\t\t\t${MYSQL_USER}" - einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}" - einfo "MySQL DATA directory:\t\t${MY_DATADIR}" - einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}" - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Absolute path for binary log files specified - einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Absolute path for relay log files specified - einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}" - fi - - einfo "PID DIR:\t\t\t\t${PID_DIR}" - einfo "Install db log:\t\t\t${mysql_install_log}" - einfo "Install server log:\t\t\t${mysqld_logfile}" - - echo - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local tmp_mysqld_password_source= - - for tmp_mysqld_password_source in mysql client ; do - einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" - if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then - if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then - ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!" - MYSQL_ROOT_PASSWORD= - continue - fi - - einfo "Found password in '${tmp_mysqld_password_source}' section!" - break - fi - done - - # Sometimes --show is required to display passwords in some implementations of my_print_defaults - if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" - fi - - unset tmp_mysqld_password_source - fi - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local pwd1="a" - local pwd2="b" - - echo - einfo "No password for mysql 'root' user was specified via environment" - einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config" - einfo "file like '${HOME}/.my.cnf'." - einfo "To continue please provide a password for the mysql 'root' user" - einfo "now on console:" - ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!" - read -rsp " >" pwd1 ; echo - - einfo "Retype the password" - read -rsp " >" pwd2 ; echo - - if [[ "x${pwd1}" != "x${pwd2}" ]] ; then - die "Passwords are not the same!" - fi - - MYSQL_ROOT_PASSWORD="${pwd1}" - unset pwd1 pwd2 - - echo - fi - - local -a mysqld_options - - # Fix bug 446200. Don't reference host my.cnf, needs to come first, - # see http://bugs.mysql.com/bug.php?id=31312 - use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" ) - - # Figure out which options we need to disable to do the setup - local helpfile="${TMPDIR}/mysqld-help" - "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null - - local opt optexp optfull - for opt in host-cache name-resolve networking slave-start \ - federated ssl log-bin relay-log slow-query-log external-locking \ - log-slave-updates \ - ; do - optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}" - grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" ) - done - - # Prepare timezones, see - # https://dev.mysql.com/doc/mysql/en/time-zone-support.html - local tz_sql="${SETUP_TMPDIR}/tz.sql" - - echo "USE mysql;" >"${tz_sql}" - "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null - if [[ $? -ne 0 ]] ; then - die "mysql_tzinfo_to_sql failed!" - fi - - local cmd=( - "${mysql_install_db_binary}" - "${mysqld_options[@]}" - "--init-file='${tz_sql}'" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - "--log-error='${mysql_install_log}'" - "--rpm" - "--cross-bootstrap" - "--skip-test-db" - "--user=${MYSQL_USER}" - ) - - einfo "Initializing ${PN} data directory: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1 - - if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql/user.frm" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2 - die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!" - fi - - local x=${RANDOM} - local socket="${PID_DIR}/mysqld.${x}.sock" - [[ -f "${socket}" ]] && die "Randomness failed; Socket ${socket} already exists!" - local pidfile="${PID_DIR}/mysqld.${x}.pid" - [[ -f "${pidfile}" ]] && die "Randomness failed; Pidfile ${pidfile} already exists!" - unset x - - cmd=( - "${mysqld_binary}" - "${mysqld_options[@]}" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - --max_allowed_packet=8M - --net_buffer_length=16K - "--socket='${socket}'" - "--pid-file='${pidfile}'" - "--log-error='${mysqld_logfile}'" - "--user=${MYSQL_USER}" - ) - - einfo "Starting mysqld to finalize initialization: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 & - - echo -n "Waiting for mysqld to accept connections " - local maxtry=15 - while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - if [[ -S "${socket}" ]] ; then - # Even with a socket we don't know if mysqld will abort - # start due to an error so just wait a little bit more... - maxtry=5 - while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - fi - - echo - - if [[ ! -S "${socket}" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2 - die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!" - fi - - local mysql_logfile="${SETUP_TMPDIR}/set_root_pw.log" - touch "${mysql_logfile}" || die - - ebegin "Setting root password" - # Do this from memory, as we don't want clear text passwords in temp files - local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'" - cmd=( - "${mysql_binary}" - --no-defaults - # Skip SSL for client connections, see bug #951865 - --skip-ssl - "--socket='${socket}'" - -hlocalhost - "-e \"${sql}\"" - ) - eval "${cmd[@]}" >"${mysql_logfile}" 2>&1 - local rc=$? - eend ${rc} - - if [[ ${rc} -ne 0 ]] ; then - # Poor man's solution which tries to avoid having password - # in log. NOTE: sed can fail if user didn't follow advice - # and included character which will require escaping... - sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null - - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}" - die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!" - fi - - # Stop the server - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - echo -n "Stopping the server " - pkill -F "${pidfile}" &>/dev/null - - maxtry=10 - while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - echo - - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - # We somehow failed to stop server. - # However, not a fatal error. Just warn the user. - ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!" - fi - fi - - rm -r "${SETUP_TMPDIR}" || die - - einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!" -} diff --git a/dev-db/mariadb/mariadb-11.8.5-r2.ebuild b/dev-db/mariadb/mariadb-11.8.9-r1.ebuild index adffd7a97005..421ee656ece1 100644 --- a/dev-db/mariadb/mariadb-11.8.5-r2.ebuild +++ b/dev-db/mariadb/mariadb-11.8.9-r1.ebuild @@ -5,6 +5,7 @@ EAPI=8 SUBSLOT="18" JAVA_PKG_OPT_USE="jdbc" +MARIADB_GENTOO_PATCH_VERSION="11.8.9-1" inherit systemd flag-o-matic prefix toolchain-funcs \ multiprocessing java-pkg-opt-2 cmake pam @@ -13,7 +14,7 @@ DESCRIPTION="An enhanced, drop-in replacement for MySQL" HOMEPAGE="https://mariadb.org/" SRC_URI=" mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-11.4.8-patches-01.tar.xz + https://gitweb.gentoo.org/proj/mariadb-patches.git/snapshot/${PN}-patches-${MARIADB_GENTOO_PATCH_VERSION}.tar.bz2 " # Shorten the path because the socket path length must be shorter than 107 chars # and we will run a mysql server during test phase @@ -110,7 +111,6 @@ RDEPEND=" ${COMMON_DEPEND} !<dev-db/mariadb-$(ver_cut 1-2) !dev-db/mysql - !dev-db/percona-server selinux? ( sec-policy/selinux-mysql ) server? ( columnstore? ( dev-db/mariadb-connector-c ) @@ -211,7 +211,8 @@ src_unpack() { } src_prepare() { - eapply "${WORKDIR}"/mariadb-patches + eapply "${WORKDIR}"/${PN}-patches-${MARIADB_GENTOO_PATCH_VERSION} + eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch @@ -276,6 +277,11 @@ src_prepare() { sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \ "${S}"/scripts/mysql_install_db.sh || die + # Apply duckdb patch and remove git apply call + eapply -d storage/duckdb/third_parties/duckdb -- storage/duckdb/patches/*.diff + sed -i -e 's/PATCH_COMMAND.*/PATCH_COMMAND echo/g' \ + storage/duckdb/cmake/duckdb.cmake || die + cmake_src_prepare java-pkg-opt-2_src_prepare } @@ -352,6 +358,7 @@ src_configure() { -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF) -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF) -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC + -DCLIENT_PLUGIN_PARSEC=OFF -DCLIENT_PLUGIN_ZSTD=OFF ) if use test ; then @@ -576,6 +583,8 @@ src_test() { # Fails in network-sandbox which contains only "lo" interface "main.func_json;MDEV-38057;Fails in network-sandbox" + "main.mysql_client_test;0;Fails in network-sandbox" + "main.mysql_client_test_comp;0;Fails in network-sandbox" # Some tests are unable to retrieve HW address "spider.*;MDEV-37098;Fails with network sandbox" @@ -583,9 +592,7 @@ src_test() { # issue introduced in 11.8.2 "main.mysqld--help-aria;MDEV-36668;broken test regex" - # This issue will be fixed in next release - # see also https://github.com/MariaDB/server/pull/4429 - "main.func_regexp_pcre;MDEV-38046;Fails with PCRE2 10.47" + "sys_vars.session_track_system_variables_basic;0;Requires example engine" ) use latin1 || disabled_tests+=( diff --git a/dev-db/mariadb/mariadb-12.0.2-r2.ebuild b/dev-db/mariadb/mariadb-12.0.2-r2.ebuild deleted file mode 100644 index 73a4a6b34eb4..000000000000 --- a/dev-db/mariadb/mariadb-12.0.2-r2.ebuild +++ /dev/null @@ -1,1323 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -SUBSLOT="18" -JAVA_PKG_OPT_USE="jdbc" - -inherit systemd flag-o-matic prefix toolchain-funcs \ - multiprocessing java-pkg-opt-2 cmake pam - -DESCRIPTION="An enhanced, drop-in replacement for MySQL" -HOMEPAGE="https://mariadb.org/" -SRC_URI=" - mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-11.4.8-patches-01.tar.xz -" -# Shorten the path because the socket path length must be shorter than 107 chars -# and we will run a mysql server during test phase -S="${WORKDIR}/mysql" - -LICENSE="GPL-2 LGPL-2.1+" -SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" -IUSE="aws-km +backup bindist columnstore cracklib debug extraengine galera innodb-lz4 - innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga - numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx - sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc - test xml yassl" - -RESTRICT="!bindist? ( bindist ) !test? ( test )" - -REQUIRED_USE="jdbc? ( extraengine server !static ) - ?? ( tcmalloc jemalloc ) - static? ( yassl !pam ) - test? ( extraengine )" - -# Be warned, *DEPEND are version-dependant -# These are used for both runtime and compiletime -COMMON_DEPEND=" - dev-libs/libfmt:= - dev-libs/lzo:2 - >=dev-libs/libpcre2-10.34:= - >=sys-apps/texinfo-4.7-r1 - sys-libs/ncurses:0= - >=virtual/zlib-1.2.3:= - virtual/libcrypt:= - aws-km? ( dev-cpp/aws-sdk-cpp:= ) - !bindist? ( - sys-libs/binutils-libs:0= - >=sys-libs/readline-4.1:0= - ) - jemalloc? ( dev-libs/jemalloc:0= ) - kerberos? ( virtual/krb5 ) - kernel_linux? ( - dev-libs/libaio:0= - sys-libs/liburing:= - sys-process/procps:0= - ) - server? ( - app-arch/bzip2 - app-arch/xz-utils - backup? ( app-arch/libarchive:0= ) - columnstore? ( - app-arch/snappy:= - dev-libs/boost:= - dev-libs/libxml2:2= - dev-libs/thrift:= - ) - cracklib? ( sys-libs/cracklib:0= ) - extraengine? ( - odbc? ( dev-db/unixODBC:0= ) - xml? ( dev-libs/libxml2:2= ) - ) - innodb-lz4? ( app-arch/lz4 ) - innodb-lzo? ( dev-libs/lzo ) - innodb-snappy? ( app-arch/snappy:= ) - mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 ) - numa? ( sys-process/numactl ) - oqgraph? ( - dev-libs/boost:= - dev-libs/judy:0= - ) - pam? ( sys-libs/pam:0= ) - s3? ( net-misc/curl ) - systemd? ( sys-apps/systemd:= ) - ) - systemtap? ( >=dev-debug/systemtap-1.3:0= ) - tcmalloc? ( dev-util/google-perftools:0= ) - yassl? ( net-libs/gnutls:0= ) - !yassl? ( - >=dev-libs/openssl-1.0.0:0= - ) -" -BDEPEND=" - app-alternatives/yacc - test? ( - acct-group/mysql - acct-user/mysql - dev-perl/Net-SSLeay - ) -" -DEPEND="${COMMON_DEPEND} - server? ( - extraengine? ( jdbc? ( >=virtual/jdk-1.8 ) ) - ) - static? ( sys-libs/ncurses[static-libs] ) -" -RDEPEND=" - ${COMMON_DEPEND} - !<dev-db/mariadb-$(ver_cut 1-2) - !dev-db/mysql - !dev-db/percona-server - selinux? ( sec-policy/selinux-mysql ) - server? ( - columnstore? ( dev-db/mariadb-connector-c ) - extraengine? ( jdbc? ( >=virtual/jre-1.8 ) ) - galera? ( - sys-apps/iproute2 - =sys-cluster/galera-26* - sst-rsync? ( sys-process/lsof ) - sst-mariabackup? ( net-misc/socat[ssl] ) - ) - !prefix? ( - acct-group/mysql - acct-user/mysql - dev-db/mysql-init-scripts - ) - ) -" -# For other stuff to bring us in -# dev-perl/DBD-MariaDB is needed by some scripts installed by MySQL -PDEPEND="perl? ( dev-perl/DBD-MariaDB )" - -mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"} - - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="" - if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then - MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR=$(grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ - | sed -e 's/.*=\s*//' \ - | tail -n1) - fi - fi - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="${MY_LOCALSTATEDIR}" - einfo "Using default MY_DATADIR" - fi - elog "MySQL MY_DATADIR is ${MY_DATADIR}" - - if [[ -z "${PREVIOUS_DATADIR}" ]] ; then - if [[ -e "${MY_DATADIR}" ]] ; then - # If you get this and you're wondering about it, see bug #207636 - elog "MySQL datadir found in ${MY_DATADIR}" - elog "A new one will not be created." - PREVIOUS_DATADIR="yes" - else - PREVIOUS_DATADIR="no" - fi - export PREVIOUS_DATADIR - fi - else - if [[ ${EBUILD_PHASE} == "config" ]]; then - local new_MY_DATADIR - new_MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - - if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then - ewarn "MySQL MY_DATADIR has changed" - ewarn "from ${MY_DATADIR}" - ewarn "to ${new_MY_DATADIR}" - MY_DATADIR="${new_MY_DATADIR}" - fi - fi - fi - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LOCALSTATEDIR MY_LOGDIR - export MY_DATADIR -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if has test ${FEATURES} ; then - # Bug #213475 - MySQL _will_ object strenuously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if ! has userpriv ${FEATURES} ; then - die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." - fi - fi - fi - - java-pkg-opt-2_pkg_setup -} - -src_unpack() { - unpack ${A} - - mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die -} - -src_prepare() { - eapply "${WORKDIR}"/mariadb-patches - eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch - eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch - - eapply_user - - _disable_plugin() { - echo > "${S}/plugin/${1}/CMakeLists.txt" || die - } - _disable_engine() { - echo > "${S}/storage/${1}/CMakeLists.txt" || die - } - - if use jemalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC jemalloc)" >> "${S}/sql/CMakeLists.txt" - elif use tcmalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC tcmalloc)" >> "${S}/sql/CMakeLists.txt" - fi - - local plugin - local server_plugins=( handler_socket auth_socket feedback metadata_lock_info - locale_info qc_info server_audit sql_errlog auth_ed25519 ) - local test_plugins=( audit_null auth_examples daemon_example fulltext - debug_key_management example_key_management versioning ) - if ! use server; then # These plugins are for the server - for plugin in "${server_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - fi - - if ! use test; then # These plugins are only used during testing - for plugin in "${test_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - _disable_engine test_sql_discovery - echo > "${S}/plugin/auth_pam/testing/CMakeLists.txt" || die - fi - - _disable_engine example - - if ! use oqgraph ; then # avoids extra library checks - _disable_engine oqgraph - fi - - if use mroonga ; then - # Remove the bundled groonga - # There is no CMake flag, it simply checks for existance - rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga" - else - _disable_engine mroonga - fi - - # Fix static bindings in galera replication - sed -i -e 's~add_library(wsrep_api_v26$~add_library(wsrep_api_v26 STATIC~' \ - "${S}"/wsrep-lib/wsrep-API/CMakeLists.txt || die - sed -i -e 's~add_library(wsrep-lib$~add_library(wsrep-lib STATIC~' \ - "${S}"/wsrep-lib/src/CMakeLists.txt || die - - # Fix galera_recovery.sh script - sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \ - scripts/galera_recovery.sh || die - - sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \ - "${S}"/scripts/mysql_install_db.sh || die - - cmake_src_prepare - java-pkg-opt-2_src_prepare -} - -src_configure() { - # bug #855233 (MDEV-11914, MDEV-25633) at least - filter-lto - # bug 508724 mariadb cannot use ld.gold - tc-ld-is-gold && tc-ld-force-bfd - - use elibc_musl && append-flags -D_LARGEFILE64_SOURCE - - # It fails on alpha without this - use alpha && append-ldflags "-Wl,--no-relax" - - # bug #945352 - append-cflags -std=gnu17 - - append-cxxflags -felide-constructors - - # bug #283926, with GCC4.4, this is required to get correct behavior. - append-flags -fno-strict-aliasing - - # Workaround for bug #959423 (https://jira.mariadb.org/browse/MDEV-37148) - append-flags -fno-tree-vectorize - - # debug hack wrt #497532 - local mycmakeargs=( - -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql" - -DSYSCONFDIR="${EPREFIX}/etc/mysql" - -DINSTALL_BINDIR=bin - -DINSTALL_DOCDIR=share/doc/${PF} - -DINSTALL_DOCREADMEDIR=share/doc/${PF} - -DINSTALL_INCLUDEDIR=include/mysql - -DINSTALL_INFODIR=share/info - -DINSTALL_LIBDIR=$(get_libdir) - -DINSTALL_PAMDIR="$(getpam_mod_dir)" - -DINSTALL_PAMDATADIR="${EPREFIX}/etc/security" - -DINSTALL_MANDIR=share/man - -DINSTALL_MYSQLSHAREDIR=share/mariadb - -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin - -DINSTALL_SCRIPTDIR=bin - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" - -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" - -DWITH_COMMENT="Gentoo Linux ${PF}" - -DWITH_UNIT_TESTS=$(usex test ON OFF) - -DWITH_LIBEDIT=0 - -DWITH_LIBFMT=system - -DWITH_THRIFT=system # for columnstore - -DWITH_ZLIB=system - -DWITHOUT_LIBWRAP=1 - -DENABLED_LOCAL_INFILE=1 - -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DWITH_DEFAULT_COMPILER_OPTIONS=0 - -DWITH_DEFAULT_FEATURE_SET=0 - -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" - # The build forces this to be defined when cross-compiling. We pass it - # all the time for simplicity and to make sure it is actually correct. - -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) - -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) - -DCONC_WITH_EXTERNAL_ZLIB=YES - -DWITH_EXTERNAL_ZLIB=YES - -DSUFFIX_INSTALL_DIR="" - -DWITH_UNITTEST=OFF - -DWITHOUT_CLIENTLIBS=YES - -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF - -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF - -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC - -DCLIENT_PLUGIN_ZSTD=OFF - ) - if use test ; then - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test ) - else - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' ) - fi - - if ! use yassl ; then - mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC ) - else - mycmakeargs+=( -DWITH_SSL=bundled ) - fi - - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - mycmakeargs+=( - -DDTRACE="${BROOT}"/usr/bin/stap-dtrace - ) - fi - - # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION - mycmakeargs+=( - -DWITH_READLINE=$(usex bindist 1 0) - -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) - -DENABLE_DTRACE=$(usex systemtap) - ) - - if use server ; then - # Connect and Federated{,X} must be treated special - # otherwise they will not be built as plugins - if ! use extraengine ; then - mycmakeargs+=( - -DPLUGIN_CONNECT=NO - -DPLUGIN_FEDERATED=NO - -DPLUGIN_FEDERATEDX=NO - ) - fi - - mycmakeargs+=( - -DWITH_PCRE=system - -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) - -DPLUGIN_SPHINX=$(usex sphinx YES NO) - -DPLUGIN_AUTH_PAM=$(usex pam YES NO) - -DPLUGIN_AWS_KEY_MANAGEMENT=$(usex aws-km DYNAMIC NO) - -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) - -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) - -DPLUGIN_SPIDER=$(usex extraengine YES NO) - -DPLUGIN_S3=$(usex s3 YES NO) - -DPLUGIN_COLUMNSTORE=$(usex columnstore YES NO) - -DCONNECT_WITH_MYSQL=1 - -DCONNECT_WITH_LIBXML2=$(usex xml) - -DCONNECT_WITH_ODBC=$(usex odbc) - -DCONNECT_WITH_JDBC=$(usex jdbc) - # Build failure and autodep wrt bug 639144 - -DCONNECT_WITH_MONGO=OFF - -DWITH_WSREP=$(usex galera) - -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) - -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) - -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) - -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DWITH_MARIABACKUP=$(usex backup ON OFF) - -DWITH_LIBARCHIVE=$(usex backup ON OFF) - -DINSTALL_SQLBENCHDIR="" - -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) - # systemd is only linked to for server notification - -DWITH_SYSTEMD=$(usex systemd yes no) - -DWITH_NUMA=$(usex numa ON OFF) - ) - - if use test ; then - # This is needed for the new client lib which tests a real, open server - mycmakeargs+=( -DSKIP_TESTS=ON ) - fi - - if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then - ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" - ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." - ewarn "You MUST file bugs without these variables set." - - mycmakeargs+=( - -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} - -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} - ) - - elif ! use latin1 ; then - mycmakeargs+=( - -DDEFAULT_CHARSET=utf8mb4 - -DDEFAULT_COLLATION=utf8mb4_unicode_520_ci - ) - else - mycmakeargs+=( - -DDEFAULT_CHARSET=latin1 - -DDEFAULT_COLLATION=latin1_swedish_ci - ) - fi - mycmakeargs+=( - -DEXTRA_CHARSETS=all - -DMYSQL_USER=mysql - -DDISABLE_SHARED=$(usex static YES NO) - -DWITH_DEBUG=$(usex debug) - -DWITH_EMBEDDED_SERVER=OFF - -DWITH_PROFILING=$(usex profiling) - ) - - if use static; then - mycmakeargs+=( -DWITH_PIC=1 ) - fi - - if use jemalloc || use tcmalloc ; then - mycmakeargs+=( -DWITH_SAFEMALLOC=OFF ) - fi - - # Storage engines - mycmakeargs+=( - -DWITH_ARCHIVE_STORAGE_ENGINE=1 - -DWITH_BLACKHOLE_STORAGE_ENGINE=1 - -DWITH_CSV_STORAGE_ENGINE=1 - -DWITH_HEAP_STORAGE_ENGINE=1 - -DWITH_INNOBASE_STORAGE_ENGINE=1 - -DWITH_MYISAMMRG_STORAGE_ENGINE=1 - -DWITH_MYISAM_STORAGE_ENGINE=1 - -DWITH_PARTITION_STORAGE_ENGINE=1 - ) - else - mycmakeargs+=( - -DWITHOUT_SERVER=1 - -DWITH_EMBEDDED_SERVER=OFF - -DEXTRA_CHARSETS=none - -DINSTALL_SQLBENCHDIR= - -DWITH_SYSTEMD=no - ) - fi - - cmake_src_configure -} - -src_compile() { - cmake_src_compile -} - -# Official test instructions: -# USE='extraengine perl server' \ -# FEATURES='test userpriv' \ -# ebuild mariadb-X.X.XX.ebuild \ -# digest clean package -src_test() { - _disable_test() { - local rawtestname bug reason - rawtestname="${1}" ; shift - bug="${1}" ; shift - reason="${@}" - ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})" - echo "${rawtestname} : BUG#${bug} ${reason}" >> "${T}/disabled.def" - } - - local TESTDIR="${BUILD_DIR}/mysql-test" - local retstatus_tests - - if ! use server ; then - einfo "Skipping server tests due to minimal build." - return 0 - fi - - # Ensure that parallel runs don't die - export MTR_BUILD_THREAD="$((${RANDOM} % 100))" - - if [[ -z "${MTR_PARALLEL}" ]] ; then - local -x MTR_PARALLEL=$(makeopts_jobs) - - if [[ ${MTR_PARALLEL} -gt 4 ]] ; then - # Running multiple tests in parallel usually require higher ulimit - # and fs.aio-max-nr setting. In addition, tests like main.multi_update - # are known to hit timeout when system is busy. - # To avoid test failure we will limit MTR_PARALLEL to 4 instead of - # using "auto". - local info_msg="Parallel MySQL test suite jobs limited to 4 (MAKEOPTS=${MTR_PARALLEL})" - info_msg+=" to avoid test failures. Set MTR_PARALLEL if you know what you are doing!" - einfo "${info_msg}" - unset info_msg - MTR_PARALLEL=4 - fi - else - einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'" - fi - - # Try to increase file limits to increase test coverage - if ! ulimit -n 16500 1>/dev/null 2>&1 ; then - # Upper limit comes from parts.partition_* tests - ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager." - - if ! ulimit -n 4162 1>/dev/null 2>&1 ; then - # Medium limit comes from '[Warning] Buffered warning: Could not - # increase number of max_open_files to more than 3000 (request: 4162)' - ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager." - - if ! ulimit -n 3000 1>/dev/null 2>&1 ; then - ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager." - else - einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 4162 (medium test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 16500 (best test coverage)." - fi - - # create directories because mysqladmin might run out of order - mkdir -p "${T}"/var-tests{,/log} || die - - if [[ ! -f "${S}/mysql-test/unstable-tests" ]] ; then - touch "${S}"/mysql-test/unstable-tests || die - fi - - cp "${S}"/mysql-test/unstable-tests "${T}/disabled.def" || die - - local disabled_tests=( - "innodb_gis.1;MDEV-25095;Known rounding error with latest AMD processors" - "innodb_gis.gis;MDEV-25095;Known rounding error with latest AMD processors" - "main.gis;MDEV-25095;Known rounding error with latest AMD processors" - - # Some tests are unable to retrieve HW address - "spider.*;MDEV-37098;Fails with network sandbox" - - # issue introduced in 11.8.2 - "main.mysqld--help-aria;MDEV-36668;broken test regex" - ) - - use latin1 || disabled_tests+=( - "funcs_1.is_columns_mysql;0;Requires USE=latin1" - "main.information_schema;0;Requires USE=latin1" - "main.sp2;24177;Requires USE=latin1" - "main.system_mysql_db;0;Requires USE=latin1" - "main.upgrade_MDEV-19650;24178;Requires USE=latin1" - ) - - local test_infos_str test_infos_arr - for test_infos_str in "${disabled_tests[@]}" ; do - IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}" - - if [[ ${#test_infos_arr[@]} != 3 ]] ; then - die "Invalid test data set, not matching format: ${test_infos_str}" - fi - - _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}" - done - unset test_infos_str test_infos_arr - - # run mysql-test tests - pushd "${TESTDIR}" &>/dev/null || die - perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test-list="${T}/disabled.def" - retstatus_tests=$? - - popd &>/dev/null || die - - # Cleanup is important for these testcases. - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - - local failures="" - [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests" - - [[ -z "${failures}" ]] || die "Test failures: ${failures}" - einfo "Tests successfully completed" -} - -src_install() { - cmake_src_install - - # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used - if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then - rm "${ED}/usr/include/mysql/server/private/config.h" || die - fi - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Convenience links - einfo "Making Convenience links for mysqlcheck multi-call binary" - dosym "mysqlcheck" "/usr/bin/mysqlanalyze" - dosym "mysqlcheck" "/usr/bin/mysqlrepair" - dosym "mysqlcheck" "/usr/bin/mysqloptimize" - - # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir - if [[ -d "${ED}/usr/data" ]] ; then - rm -Rf "${ED}/usr/data" || die - fi - - # Unless they explicitly specific USE=test, then do not install the - # testsuite. It DOES have a use to be installed, esp. when you want to do a - # validation of your database configuration after tuning it. - if ! use test ; then - rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test" - fi - - # Configuration stuff - einfo "Building default configuration ..." - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}" - [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf - cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die - eprefixify "${TMPDIR}/my.cnf" - doins "${TMPDIR}/my.cnf" - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}/mariadb.d" - cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die - eprefixify "${TMPDIR}/50-distro-client.cnf" - doins "${TMPDIR}/50-distro-client.cnf" - - if use server ; then - mycnf_src="my.cnf.distro-server" - sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ - "${FILESDIR}/${mycnf_src}" \ - > "${TMPDIR}/my.cnf.ok" || die - if use prefix ; then - sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \ - "${TMPDIR}/my.cnf.ok" || die - fi - if use latin1 ; then - sed -i \ - -e "/character-set/s|utf8|latin1|g" \ - "${TMPDIR}/my.cnf.ok" || die - fi - eprefixify "${TMPDIR}/my.cnf.ok" - newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf - - einfo "Including support files and sample configurations" - docinto "support-files" - local script - for script in \ - "${S}"/support-files/magic - do - [[ -f "$script" ]] && dodoc "${script}" - done - - docinto "scripts" - for script in "${S}"/scripts/mysql* ; do - [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" - done - # Manually install supporting files that conflict with other packages - # but are needed for galera and initial installation - exeinto /usr/libexec/mariadb - doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror" - - if use pam ; then - keepdir /usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir - fi - fi - - # Conflicting files - conflicting_files=() - - # We prefer my_print_defaults from dev-db/mysql-connector-c - conflicting_files=( "${ED}/usr/share/man/man1/my_print_defaults.1" ) - - # Remove bundled mytop in favor of dev-db/mytop - conflicting_files+=( "${ED}/usr/bin/mytop" ) - conflicting_files+=( "${ED}/usr/share/man/man1/mytop.1" ) - - local conflicting_file - for conflicting_file in "${conflicting_files[@]}" ; do - if [[ -e "${conflicting_file}" ]] ; then - rm -v "${conflicting_file}" || die - fi - done - - # Fix a dangling symlink when galera is not built - if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then - rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die - fi - - # Remove dangling symlink - rm "${ED}/usr/$(get_libdir)/libmariadb.a" || die - - # Remove broken SST scripts that are incompatible - local scriptremove - for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do - if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then - rm "${ED}/usr/bin/${scriptremove}" || die - fi - done -} - -pkg_preinst() { - java-pkg-opt-2_pkg_preinst -} - -pkg_postinst() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Create log directory securely if it does not exist - [[ -d "${ROOT}/${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}/${MY_LOGDIR}" - - if use server ; then - if use pam; then - einfo - elog "This install includes the PAM authentication plugin." - elog "To activate and configure the PAM plugin, please read:" - elog "https://mariadb.com/docs/server/reference/plugins/authentication-plugins/authentication-with-pluggable-authentication-modules-pam/authentication-plugin-pam" - einfo - chown mysql:mysql "${EROOT}/usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir" || die - fi - - if [[ -z "${REPLACING_VERSIONS}" ]] ; then - einfo - elog "You might want to run:" - elog "\"emerge --config =${CATEGORY}/${PF}\"" - elog "if this is a new install." - elog - elog "If you are switching server implentations, you should run the" - elog "mysql_upgrade tool." - einfo - else - einfo - elog "If you are upgrading major versions, you should run the" - elog "mysql_upgrade tool." - einfo - fi - - if use galera ; then - einfo - elog "Be sure to edit the my.cnf file to activate your cluster settings." - elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\"" - elog "The first time the cluster is activated, you should add" - elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node." - elog "This option should then be removed for subsequent starts." - einfo - fi - fi - - # Note about configuration change - einfo - elog "This version of mariadb reorganizes the configuration from a single my.cnf" - elog "to several files in /etc/mysql/${PN}.d." - elog "Please backup any changes you made to /etc/mysql/my.cnf" - elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension." - elog "You may have as many files as needed and they are read alphabetically." - elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." - einfo -} - -pkg_config() { - _getoptval() { - local section="${1}" - local option="--${2}" - local extra_options="${3}" - local cmd=( - "${my_print_defaults_binary}" - "${extra_options}" - "${section}" - ) - - local values=() - local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) - for parameter in "${parameters[@]}" - do - # my_print_defaults guarantees output of options, one per line, - # in the form that they would be specified on the command line. - # So checking for --option=* should be safe. - case ${parameter} in - ${option}=*) - values+=( "${parameter#*=}" ) - ;; - esac - done - - if [[ ${#values[@]} -gt 0 ]] ; then - # Option could have been set multiple times - # in which case only the last occurrence - # contains the current value - echo "${values[-1]}" - fi - } - - _mktemp_dry() { - # emktemp has no --dry-run option - local template="${1}" - - if [[ -z "${template}" ]] ; then - if [[ -z "${T}" ]] ; then - template="/tmp/XXXXXXX" - else - template="${T}/XXXXXXX" - fi - fi - - local template_wo_X=${template//X/} - local n_X - let n_X=${#template}-${#template_wo_X} - if [[ ${n_X} -lt 3 ]] ; then - echo "${FUNCNAME[0]}: too few X's in template '${template}'" >&2 - return - fi - - local attempts=0 - local character tmpfile - while [[ true ]] ; do - let attempts=attempts+1 - - new_file= - while read -n1 character ; do - if [[ "${character}" == "X" ]] ; then - tmpfile+="${RANDOM:0:1}" - else - tmpfile+="${character}" - fi - done < <(echo -n "${template}") - - if [[ ! -f "${tmpfile}" ]] - then - echo "${tmpfile}" - return - fi - - if [[ ${attempts} -ge 100 ]] ; then - echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2 - return - fi - done - } - - local mysql_binary="${EROOT}/usr/bin/mysql" - if [[ ! -x "${mysql_binary}" ]] ; then - die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysqld_binary="${EROOT}/usr/sbin/mysqld" - if [[ ! -x "${mysqld_binary}" ]] ; then - die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysql_install_db_binary="${EROOT}/usr/bin/mysql_install_db" - if [[ ! -x "${mysql_install_db_binary}" ]] ; then - die "'${mysql_install_db_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" - if [[ ! -x "${my_print_defaults_binary}" ]] ; then - die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" - fi - - if [[ -z "${MYSQL_USER}" ]] ; then - MYSQL_USER=mysql - if use prefix ; then - MYSQL_USER=$(id -u -n 2>/dev/null) - if [[ -z "${MYSQL_USER}" ]] ; then - die "Failed to determine current username!" - fi - fi - fi - - if [[ -z "${MYSQL_GROUP}" ]] ; then - MYSQL_GROUP=mysql - if use prefix ; then - MYSQL_GROUP=$(id -g -n 2>/dev/null) - if [[ -z "${MYSQL_GROUP}" ]] ; then - die "Failed to determine current user groupname!" - fi - fi - fi - - # my_print_defaults needs to read stuff in $HOME/.my.cnf - local -x HOME="${EROOT}/root" - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Read currently set data directory - MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - - # Bug #213475 - MySQL _will_ object strenously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if [[ -z "${MY_DATADIR}" ]] ; then - die "Sorry, unable to find MY_DATADIR!" - elif [[ -d "${MY_DATADIR}/mysql" ]] ; then - ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!" - ewarn "Please rename or delete its content if you wish to initialize a new data directory." - die "${PN} data directory at '${MY_DATADIR}' looks already initialized!" - fi - - MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_TMPDIR=${MYSQL_TMPDIR%/} - # These are dir+prefix - MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*} - MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*} - - # Create missing directories. - # Always check if mysql user can write to directory even if we just - # created directory because a parent directory might be not - # accessible for that user. - PID_DIR="${EROOT}/run/mysqld" - if [[ ! -d "${PID_DIR}" ]] ; then - einfo "Creating ${PN} PID directory '${PID_DIR}' ..." - install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \ - || die "Failed to create PID directory '${PID_DIR}'!" - fi - - local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_pid_dir_testfile}" ]] \ - && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_pid_dir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!" - else - rm "${_pid_dir_testfile}" || die - unset _pid_dir_testfile - fi - - if [[ ! -d "${MY_DATADIR}" ]] ; then - einfo "Creating ${PN} data directory '${MY_DATADIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \ - || die "Failed to create ${PN} data directory '${MY_DATADIR}'!" - fi - - local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_datadir_testfile}" ]] \ - && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_datadir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!" - else - rm "${_my_datadir_testfile}" || die - unset _my_datadir_testfile - fi - - if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then - einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \ - || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!" - fi - - if [[ -z "${MYSQL_TMPDIR}" ]] ; then - MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")" - [[ -z "${MYSQL_TMPDIR}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!" - - mkdir "${MYSQL_TMPDIR}" || die - chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die - fi - - # Now we need to test MYSQL_TMPDIR... - local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_tmpdir_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_tmpdir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!" - else - rm "${_my_tmpdir_testfile}" || die - unset _my_tmpdir_testfile - fi - - if [[ "${MYSQL_LOG_BIN}" == /* && ! -d "${MYSQL_LOG_BIN}" ]] ; then - # Only create directory when MYSQL_LOG_BIN is an absolute path - einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \ - || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'" - fi - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Only test when MYSQL_LOG_BIN is an absolute path - local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_logbin_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_logbin_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!" - else - rm "${_my_logbin_testfile}" || die - unset _my_logbin_testfile - fi - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* && ! -d "${MYSQL_RELAY_LOG}" ]] ; then - # Only create directory when MYSQL_RELAY_LOG is an absolute path - einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \ - || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Only test when MYSQL_RELAY_LOG is an absolute path - local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_relaylog_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_relaylog_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!" - else - rm "${_my_relaylog_testfile}" || die - unset _my_relaylog_testfile - fi - fi - - local SETUP_TMPDIR=$(mktemp -d "/tmp/${PN}-config.XXXXXXXXX" 2>/dev/null) - [[ -z "${SETUP_TMPDIR}" ]] && die "Failed to create setup tmpdir" - - # Limit access - chmod 0770 "${SETUP_TMPDIR}" || die - chown ${MYSQL_USER} "${SETUP_TMPDIR}" || die - - local mysql_install_log="${SETUP_TMPDIR}/install_db.log" - local mysqld_logfile="${SETUP_TMPDIR}/mysqld.log" - - echo "" - einfo "Detected settings:" - einfo "==================" - einfo "MySQL User:\t\t\t\t${MYSQL_USER}" - einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}" - einfo "MySQL DATA directory:\t\t${MY_DATADIR}" - einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}" - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Absolute path for binary log files specified - einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Absolute path for relay log files specified - einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}" - fi - - einfo "PID DIR:\t\t\t\t${PID_DIR}" - einfo "Install db log:\t\t\t${mysql_install_log}" - einfo "Install server log:\t\t\t${mysqld_logfile}" - - echo - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local tmp_mysqld_password_source= - - for tmp_mysqld_password_source in mysql client ; do - einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" - if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then - if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then - ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!" - MYSQL_ROOT_PASSWORD= - continue - fi - - einfo "Found password in '${tmp_mysqld_password_source}' section!" - break - fi - done - - # Sometimes --show is required to display passwords in some implementations of my_print_defaults - if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" - fi - - unset tmp_mysqld_password_source - fi - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local pwd1="a" - local pwd2="b" - - echo - einfo "No password for mysql 'root' user was specified via environment" - einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config" - einfo "file like '${HOME}/.my.cnf'." - einfo "To continue please provide a password for the mysql 'root' user" - einfo "now on console:" - ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!" - read -rsp " >" pwd1 ; echo - - einfo "Retype the password" - read -rsp " >" pwd2 ; echo - - if [[ "x${pwd1}" != "x${pwd2}" ]] ; then - die "Passwords are not the same!" - fi - - MYSQL_ROOT_PASSWORD="${pwd1}" - unset pwd1 pwd2 - - echo - fi - - local -a mysqld_options - - # Fix bug 446200. Don't reference host my.cnf, needs to come first, - # see http://bugs.mysql.com/bug.php?id=31312 - use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" ) - - # Figure out which options we need to disable to do the setup - local helpfile="${TMPDIR}/mysqld-help" - "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null - - local opt optexp optfull - for opt in host-cache name-resolve networking slave-start \ - federated ssl log-bin relay-log slow-query-log external-locking \ - log-slave-updates \ - ; do - optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}" - grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" ) - done - - # Prepare timezones, see - # https://dev.mysql.com/doc/mysql/en/time-zone-support.html - local tz_sql="${SETUP_TMPDIR}/tz.sql" - - echo "USE mysql;" >"${tz_sql}" - "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null - if [[ $? -ne 0 ]] ; then - die "mysql_tzinfo_to_sql failed!" - fi - - local cmd=( - "${mysql_install_db_binary}" - "${mysqld_options[@]}" - "--init-file='${tz_sql}'" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - "--log-error='${mysql_install_log}'" - "--rpm" - "--cross-bootstrap" - "--skip-test-db" - "--user=${MYSQL_USER}" - ) - - einfo "Initializing ${PN} data directory: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1 - - if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql/user.frm" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2 - die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!" - fi - - local x=${RANDOM} - local socket="${PID_DIR}/mysqld.${x}.sock" - [[ -f "${socket}" ]] && die "Randomness failed; Socket ${socket} already exists!" - local pidfile="${PID_DIR}/mysqld.${x}.pid" - [[ -f "${pidfile}" ]] && die "Randomness failed; Pidfile ${pidfile} already exists!" - unset x - - cmd=( - "${mysqld_binary}" - "${mysqld_options[@]}" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - --max_allowed_packet=8M - --net_buffer_length=16K - "--socket='${socket}'" - "--pid-file='${pidfile}'" - "--log-error='${mysqld_logfile}'" - "--user=${MYSQL_USER}" - ) - - einfo "Starting mysqld to finalize initialization: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 & - - echo -n "Waiting for mysqld to accept connections " - local maxtry=15 - while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - if [[ -S "${socket}" ]] ; then - # Even with a socket we don't know if mysqld will abort - # start due to an error so just wait a little bit more... - maxtry=5 - while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - fi - - echo - - if [[ ! -S "${socket}" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2 - die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!" - fi - - local mysql_logfile="${SETUP_TMPDIR}/set_root_pw.log" - touch "${mysql_logfile}" || die - - ebegin "Setting root password" - # Do this from memory, as we don't want clear text passwords in temp files - local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'" - cmd=( - "${mysql_binary}" - --no-defaults - # Skip SSL for client connections, see bug #951865 - --skip-ssl - "--socket='${socket}'" - -hlocalhost - "-e \"${sql}\"" - ) - eval "${cmd[@]}" >"${mysql_logfile}" 2>&1 - local rc=$? - eend ${rc} - - if [[ ${rc} -ne 0 ]] ; then - # Poor man's solution which tries to avoid having password - # in log. NOTE: sed can fail if user didn't follow advice - # and included character which will require escaping... - sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null - - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}" - die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!" - fi - - # Stop the server - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - echo -n "Stopping the server " - pkill -F "${pidfile}" &>/dev/null - - maxtry=10 - while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - echo - - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - # We somehow failed to stop server. - # However, not a fatal error. Just warn the user. - ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!" - fi - fi - - rm -r "${SETUP_TMPDIR}" || die - - einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!" -} diff --git a/dev-db/mariadb/mariadb-12.0.2-r3.ebuild b/dev-db/mariadb/mariadb-12.0.2-r3.ebuild deleted file mode 100644 index d5ab25bd16de..000000000000 --- a/dev-db/mariadb/mariadb-12.0.2-r3.ebuild +++ /dev/null @@ -1,1324 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -SUBSLOT="18" -JAVA_PKG_OPT_USE="jdbc" - -inherit systemd flag-o-matic prefix toolchain-funcs \ - multiprocessing java-pkg-opt-2 cmake pam - -DESCRIPTION="An enhanced, drop-in replacement for MySQL" -HOMEPAGE="https://mariadb.org/" -SRC_URI=" - mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-11.4.8-patches-01.tar.xz -" -# Shorten the path because the socket path length must be shorter than 107 chars -# and we will run a mysql server during test phase -S="${WORKDIR}/mysql" - -LICENSE="GPL-2 LGPL-2.1+" -SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" -IUSE="aws-km +backup bindist columnstore cracklib debug extraengine galera innodb-lz4 - innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga - numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx - sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc - test xml yassl" - -RESTRICT="!bindist? ( bindist ) !test? ( test )" - -REQUIRED_USE="jdbc? ( extraengine server !static ) - ?? ( tcmalloc jemalloc ) - static? ( yassl !pam ) - test? ( extraengine )" - -# Be warned, *DEPEND are version-dependant -# These are used for both runtime and compiletime -COMMON_DEPEND=" - dev-libs/libfmt:= - dev-libs/lzo:2 - >=dev-libs/libpcre2-10.34:= - >=sys-apps/texinfo-4.7-r1 - sys-libs/ncurses:0= - >=virtual/zlib-1.2.3:= - virtual/libcrypt:= - aws-km? ( dev-cpp/aws-sdk-cpp:= ) - !bindist? ( - sys-libs/binutils-libs:0= - >=sys-libs/readline-4.1:0= - ) - jemalloc? ( dev-libs/jemalloc:0= ) - kerberos? ( virtual/krb5 ) - kernel_linux? ( - dev-libs/libaio:0= - sys-libs/liburing:= - sys-process/procps:0= - ) - server? ( - app-arch/bzip2 - app-arch/xz-utils - backup? ( app-arch/libarchive:0= ) - columnstore? ( - app-arch/snappy:= - dev-libs/boost:= - dev-libs/libxml2:2= - dev-libs/thrift:= - ) - cracklib? ( sys-libs/cracklib:0= ) - extraengine? ( - odbc? ( dev-db/unixODBC:0= ) - xml? ( dev-libs/libxml2:2= ) - ) - innodb-lz4? ( app-arch/lz4 ) - innodb-lzo? ( dev-libs/lzo ) - innodb-snappy? ( app-arch/snappy:= ) - mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 ) - numa? ( sys-process/numactl ) - oqgraph? ( - dev-libs/boost:= - dev-libs/judy:0= - ) - pam? ( sys-libs/pam:0= ) - s3? ( net-misc/curl ) - systemd? ( sys-apps/systemd:= ) - ) - systemtap? ( >=dev-debug/systemtap-1.3:0= ) - tcmalloc? ( dev-util/google-perftools:0= ) - yassl? ( net-libs/gnutls:0= ) - !yassl? ( - >=dev-libs/openssl-1.0.0:0= - ) -" -BDEPEND=" - app-alternatives/yacc - test? ( - acct-group/mysql - acct-user/mysql - dev-perl/Net-SSLeay - ) -" -DEPEND="${COMMON_DEPEND} - server? ( - extraengine? ( jdbc? ( >=virtual/jdk-1.8 ) ) - ) - static? ( sys-libs/ncurses[static-libs] ) -" -RDEPEND=" - ${COMMON_DEPEND} - !<dev-db/mariadb-$(ver_cut 1-2) - !dev-db/mysql - !dev-db/percona-server - selinux? ( sec-policy/selinux-mysql ) - server? ( - columnstore? ( dev-db/mariadb-connector-c ) - extraengine? ( jdbc? ( >=virtual/jre-1.8 ) ) - galera? ( - sys-apps/iproute2 - =sys-cluster/galera-26* - sst-rsync? ( sys-process/lsof ) - sst-mariabackup? ( net-misc/socat[ssl] ) - ) - !prefix? ( - acct-group/mysql - acct-user/mysql - dev-db/mysql-init-scripts - ) - ) -" -# For other stuff to bring us in -# dev-perl/DBD-MariaDB is needed by some scripts installed by MySQL -PDEPEND="perl? ( dev-perl/DBD-MariaDB )" - -mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"} - - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="" - if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then - MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR=$(grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ - | sed -e 's/.*=\s*//' \ - | tail -n1) - fi - fi - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="${MY_LOCALSTATEDIR}" - einfo "Using default MY_DATADIR" - fi - elog "MySQL MY_DATADIR is ${MY_DATADIR}" - - if [[ -z "${PREVIOUS_DATADIR}" ]] ; then - if [[ -e "${MY_DATADIR}" ]] ; then - # If you get this and you're wondering about it, see bug #207636 - elog "MySQL datadir found in ${MY_DATADIR}" - elog "A new one will not be created." - PREVIOUS_DATADIR="yes" - else - PREVIOUS_DATADIR="no" - fi - export PREVIOUS_DATADIR - fi - else - if [[ ${EBUILD_PHASE} == "config" ]]; then - local new_MY_DATADIR - new_MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1) - - if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then - ewarn "MySQL MY_DATADIR has changed" - ewarn "from ${MY_DATADIR}" - ewarn "to ${new_MY_DATADIR}" - MY_DATADIR="${new_MY_DATADIR}" - fi - fi - fi - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LOCALSTATEDIR MY_LOGDIR - export MY_DATADIR -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if has test ${FEATURES} ; then - # Bug #213475 - MySQL _will_ object strenuously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if ! has userpriv ${FEATURES} ; then - die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." - fi - fi - fi - - java-pkg-opt-2_pkg_setup -} - -src_unpack() { - unpack ${A} - - mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die -} - -src_prepare() { - eapply "${WORKDIR}"/mariadb-patches - eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch - eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch - eapply "${FILESDIR}"/${PN}-12.0.2-fix_boost_system.patch - - eapply_user - - _disable_plugin() { - echo > "${S}/plugin/${1}/CMakeLists.txt" || die - } - _disable_engine() { - echo > "${S}/storage/${1}/CMakeLists.txt" || die - } - - if use jemalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC jemalloc)" >> "${S}/sql/CMakeLists.txt" - elif use tcmalloc; then - echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC tcmalloc)" >> "${S}/sql/CMakeLists.txt" - fi - - local plugin - local server_plugins=( handler_socket auth_socket feedback metadata_lock_info - locale_info qc_info server_audit sql_errlog auth_ed25519 ) - local test_plugins=( audit_null auth_examples daemon_example fulltext - debug_key_management example_key_management versioning ) - if ! use server; then # These plugins are for the server - for plugin in "${server_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - fi - - if ! use test; then # These plugins are only used during testing - for plugin in "${test_plugins[@]}" ; do - _disable_plugin "${plugin}" - done - _disable_engine test_sql_discovery - echo > "${S}/plugin/auth_pam/testing/CMakeLists.txt" || die - fi - - _disable_engine example - - if ! use oqgraph ; then # avoids extra library checks - _disable_engine oqgraph - fi - - if use mroonga ; then - # Remove the bundled groonga - # There is no CMake flag, it simply checks for existance - rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga" - else - _disable_engine mroonga - fi - - # Fix static bindings in galera replication - sed -i -e 's~add_library(wsrep_api_v26$~add_library(wsrep_api_v26 STATIC~' \ - "${S}"/wsrep-lib/wsrep-API/CMakeLists.txt || die - sed -i -e 's~add_library(wsrep-lib$~add_library(wsrep-lib STATIC~' \ - "${S}"/wsrep-lib/src/CMakeLists.txt || die - - # Fix galera_recovery.sh script - sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \ - scripts/galera_recovery.sh || die - - sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \ - "${S}"/scripts/mysql_install_db.sh || die - - cmake_src_prepare - java-pkg-opt-2_src_prepare -} - -src_configure() { - # bug #855233 (MDEV-11914, MDEV-25633) at least - filter-lto - # bug 508724 mariadb cannot use ld.gold - tc-ld-is-gold && tc-ld-force-bfd - - use elibc_musl && append-flags -D_LARGEFILE64_SOURCE - - # It fails on alpha without this - use alpha && append-ldflags "-Wl,--no-relax" - - # bug #945352 - append-cflags -std=gnu17 - - append-cxxflags -felide-constructors - - # bug #283926, with GCC4.4, this is required to get correct behavior. - append-flags -fno-strict-aliasing - - # Workaround for bug #959423 (https://jira.mariadb.org/browse/MDEV-37148) - append-flags -fno-tree-vectorize - - # debug hack wrt #497532 - local mycmakeargs=( - -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql" - -DSYSCONFDIR="${EPREFIX}/etc/mysql" - -DINSTALL_BINDIR=bin - -DINSTALL_DOCDIR=share/doc/${PF} - -DINSTALL_DOCREADMEDIR=share/doc/${PF} - -DINSTALL_INCLUDEDIR=include/mysql - -DINSTALL_INFODIR=share/info - -DINSTALL_LIBDIR=$(get_libdir) - -DINSTALL_PAMDIR="$(getpam_mod_dir)" - -DINSTALL_PAMDATADIR="${EPREFIX}/etc/security" - -DINSTALL_MANDIR=share/man - -DINSTALL_MYSQLSHAREDIR=share/mariadb - -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin - -DINSTALL_SCRIPTDIR=bin - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" - -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" - -DWITH_COMMENT="Gentoo Linux ${PF}" - -DWITH_UNIT_TESTS=$(usex test ON OFF) - -DWITH_LIBEDIT=0 - -DWITH_LIBFMT=system - -DWITH_THRIFT=system # for columnstore - -DWITH_ZLIB=system - -DWITHOUT_LIBWRAP=1 - -DENABLED_LOCAL_INFILE=1 - -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DWITH_DEFAULT_COMPILER_OPTIONS=0 - -DWITH_DEFAULT_FEATURE_SET=0 - -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" - # The build forces this to be defined when cross-compiling. We pass it - # all the time for simplicity and to make sure it is actually correct. - -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) - -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) - -DCONC_WITH_EXTERNAL_ZLIB=YES - -DWITH_EXTERNAL_ZLIB=YES - -DSUFFIX_INSTALL_DIR="" - -DWITH_UNITTEST=OFF - -DWITHOUT_CLIENTLIBS=YES - -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF - -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF - -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF) - -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC - -DCLIENT_PLUGIN_ZSTD=OFF - ) - if use test ; then - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test ) - else - mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' ) - fi - - if ! use yassl ; then - mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC ) - else - mycmakeargs+=( -DWITH_SSL=bundled ) - fi - - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - mycmakeargs+=( - -DDTRACE="${BROOT}"/usr/bin/stap-dtrace - ) - fi - - # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION - mycmakeargs+=( - -DWITH_READLINE=$(usex bindist 1 0) - -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) - -DENABLE_DTRACE=$(usex systemtap) - ) - - if use server ; then - # Connect and Federated{,X} must be treated special - # otherwise they will not be built as plugins - if ! use extraengine ; then - mycmakeargs+=( - -DPLUGIN_CONNECT=NO - -DPLUGIN_FEDERATED=NO - -DPLUGIN_FEDERATEDX=NO - ) - fi - - mycmakeargs+=( - -DWITH_PCRE=system - -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) - -DPLUGIN_SPHINX=$(usex sphinx YES NO) - -DPLUGIN_AUTH_PAM=$(usex pam YES NO) - -DPLUGIN_AWS_KEY_MANAGEMENT=$(usex aws-km DYNAMIC NO) - -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) - -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) - -DPLUGIN_SPIDER=$(usex extraengine YES NO) - -DPLUGIN_S3=$(usex s3 YES NO) - -DPLUGIN_COLUMNSTORE=$(usex columnstore YES NO) - -DCONNECT_WITH_MYSQL=1 - -DCONNECT_WITH_LIBXML2=$(usex xml) - -DCONNECT_WITH_ODBC=$(usex odbc) - -DCONNECT_WITH_JDBC=$(usex jdbc) - # Build failure and autodep wrt bug 639144 - -DCONNECT_WITH_MONGO=OFF - -DWITH_WSREP=$(usex galera) - -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) - -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) - -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) - -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DWITH_MARIABACKUP=$(usex backup ON OFF) - -DWITH_LIBARCHIVE=$(usex backup ON OFF) - -DINSTALL_SQLBENCHDIR="" - -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) - # systemd is only linked to for server notification - -DWITH_SYSTEMD=$(usex systemd yes no) - -DWITH_NUMA=$(usex numa ON OFF) - ) - - if use test ; then - # This is needed for the new client lib which tests a real, open server - mycmakeargs+=( -DSKIP_TESTS=ON ) - fi - - if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then - ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" - ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." - ewarn "You MUST file bugs without these variables set." - - mycmakeargs+=( - -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} - -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} - ) - - elif ! use latin1 ; then - mycmakeargs+=( - -DDEFAULT_CHARSET=utf8mb4 - -DDEFAULT_COLLATION=utf8mb4_uca1400_ai_ci - ) - else - mycmakeargs+=( - -DDEFAULT_CHARSET=latin1 - -DDEFAULT_COLLATION=latin1_swedish_ci - ) - fi - mycmakeargs+=( - -DEXTRA_CHARSETS=all - -DMYSQL_USER=mysql - -DDISABLE_SHARED=$(usex static YES NO) - -DWITH_DEBUG=$(usex debug) - -DWITH_EMBEDDED_SERVER=OFF - -DWITH_PROFILING=$(usex profiling) - ) - - if use static; then - mycmakeargs+=( -DWITH_PIC=1 ) - fi - - if use jemalloc || use tcmalloc ; then - mycmakeargs+=( -DWITH_SAFEMALLOC=OFF ) - fi - - # Storage engines - mycmakeargs+=( - -DWITH_ARCHIVE_STORAGE_ENGINE=1 - -DWITH_BLACKHOLE_STORAGE_ENGINE=1 - -DWITH_CSV_STORAGE_ENGINE=1 - -DWITH_HEAP_STORAGE_ENGINE=1 - -DWITH_INNOBASE_STORAGE_ENGINE=1 - -DWITH_MYISAMMRG_STORAGE_ENGINE=1 - -DWITH_MYISAM_STORAGE_ENGINE=1 - -DWITH_PARTITION_STORAGE_ENGINE=1 - ) - else - mycmakeargs+=( - -DWITHOUT_SERVER=1 - -DWITH_EMBEDDED_SERVER=OFF - -DEXTRA_CHARSETS=none - -DINSTALL_SQLBENCHDIR= - -DWITH_SYSTEMD=no - ) - fi - - cmake_src_configure -} - -src_compile() { - cmake_src_compile -} - -# Official test instructions: -# USE='extraengine perl server' \ -# FEATURES='test userpriv' \ -# ebuild mariadb-X.X.XX.ebuild \ -# digest clean package -src_test() { - _disable_test() { - local rawtestname bug reason - rawtestname="${1}" ; shift - bug="${1}" ; shift - reason="${@}" - ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})" - echo "${rawtestname} : BUG#${bug} ${reason}" >> "${T}/disabled.def" - } - - local TESTDIR="${BUILD_DIR}/mysql-test" - local retstatus_tests - - if ! use server ; then - einfo "Skipping server tests due to minimal build." - return 0 - fi - - # Ensure that parallel runs don't die - export MTR_BUILD_THREAD="$((${RANDOM} % 100))" - - if [[ -z "${MTR_PARALLEL}" ]] ; then - local -x MTR_PARALLEL=$(makeopts_jobs) - - if [[ ${MTR_PARALLEL} -gt 4 ]] ; then - # Running multiple tests in parallel usually require higher ulimit - # and fs.aio-max-nr setting. In addition, tests like main.multi_update - # are known to hit timeout when system is busy. - # To avoid test failure we will limit MTR_PARALLEL to 4 instead of - # using "auto". - local info_msg="Parallel MySQL test suite jobs limited to 4 (MAKEOPTS=${MTR_PARALLEL})" - info_msg+=" to avoid test failures. Set MTR_PARALLEL if you know what you are doing!" - einfo "${info_msg}" - unset info_msg - MTR_PARALLEL=4 - fi - else - einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'" - fi - - # Try to increase file limits to increase test coverage - if ! ulimit -n 16500 1>/dev/null 2>&1 ; then - # Upper limit comes from parts.partition_* tests - ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager." - - if ! ulimit -n 4162 1>/dev/null 2>&1 ; then - # Medium limit comes from '[Warning] Buffered warning: Could not - # increase number of max_open_files to more than 3000 (request: 4162)' - ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager." - - if ! ulimit -n 3000 1>/dev/null 2>&1 ; then - ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager." - else - einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 4162 (medium test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 16500 (best test coverage)." - fi - - # create directories because mysqladmin might run out of order - mkdir -p "${T}"/var-tests{,/log} || die - - if [[ ! -f "${S}/mysql-test/unstable-tests" ]] ; then - touch "${S}"/mysql-test/unstable-tests || die - fi - - cp "${S}"/mysql-test/unstable-tests "${T}/disabled.def" || die - - local disabled_tests=( - "innodb_gis.1;MDEV-25095;Known rounding error with latest AMD processors" - "innodb_gis.gis;MDEV-25095;Known rounding error with latest AMD processors" - "main.gis;MDEV-25095;Known rounding error with latest AMD processors" - - # Some tests are unable to retrieve HW address - "spider.*;MDEV-37098;Fails with network sandbox" - - # issue introduced in 11.8.2 - "main.mysqld--help-aria;MDEV-36668;broken test regex" - ) - - use latin1 || disabled_tests+=( - "funcs_1.is_columns_mysql;0;Requires USE=latin1" - "main.information_schema;0;Requires USE=latin1" - "main.sp2;24177;Requires USE=latin1" - "main.system_mysql_db;0;Requires USE=latin1" - "main.upgrade_MDEV-19650;24178;Requires USE=latin1" - ) - - local test_infos_str test_infos_arr - for test_infos_str in "${disabled_tests[@]}" ; do - IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}" - - if [[ ${#test_infos_arr[@]} != 3 ]] ; then - die "Invalid test data set, not matching format: ${test_infos_str}" - fi - - _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}" - done - unset test_infos_str test_infos_arr - - # run mysql-test tests - pushd "${TESTDIR}" &>/dev/null || die - perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test-list="${T}/disabled.def" - retstatus_tests=$? - - popd &>/dev/null || die - - # Cleanup is important for these testcases. - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - - local failures="" - [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests" - - [[ -z "${failures}" ]] || die "Test failures: ${failures}" - einfo "Tests successfully completed" -} - -src_install() { - cmake_src_install - - # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used - if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then - rm "${ED}/usr/include/mysql/server/private/config.h" || die - fi - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Convenience links - einfo "Making Convenience links for mysqlcheck multi-call binary" - dosym "mysqlcheck" "/usr/bin/mysqlanalyze" - dosym "mysqlcheck" "/usr/bin/mysqlrepair" - dosym "mysqlcheck" "/usr/bin/mysqloptimize" - - # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir - if [[ -d "${ED}/usr/data" ]] ; then - rm -Rf "${ED}/usr/data" || die - fi - - # Unless they explicitly specific USE=test, then do not install the - # testsuite. It DOES have a use to be installed, esp. when you want to do a - # validation of your database configuration after tuning it. - if ! use test ; then - rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test" - fi - - # Configuration stuff - einfo "Building default configuration ..." - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}" - [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf - cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die - eprefixify "${TMPDIR}/my.cnf" - doins "${TMPDIR}/my.cnf" - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}/mariadb.d" - cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die - eprefixify "${TMPDIR}/50-distro-client.cnf" - doins "${TMPDIR}/50-distro-client.cnf" - - if use server ; then - mycnf_src="my.cnf.distro-server" - sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ - "${FILESDIR}/${mycnf_src}" \ - > "${TMPDIR}/my.cnf.ok" || die - if use prefix ; then - sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \ - "${TMPDIR}/my.cnf.ok" || die - fi - if use latin1 ; then - sed -i \ - -e "/character-set/s|utf8|latin1|g" \ - "${TMPDIR}/my.cnf.ok" || die - fi - eprefixify "${TMPDIR}/my.cnf.ok" - newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf - - einfo "Including support files and sample configurations" - docinto "support-files" - local script - for script in \ - "${S}"/support-files/magic - do - [[ -f "$script" ]] && dodoc "${script}" - done - - docinto "scripts" - for script in "${S}"/scripts/mysql* ; do - [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" - done - # Manually install supporting files that conflict with other packages - # but are needed for galera and initial installation - exeinto /usr/libexec/mariadb - doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror" - - if use pam ; then - keepdir /usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir - fi - fi - - # Conflicting files - conflicting_files=() - - # We prefer my_print_defaults from dev-db/mysql-connector-c - conflicting_files=( "${ED}/usr/share/man/man1/my_print_defaults.1" ) - - # Remove bundled mytop in favor of dev-db/mytop - conflicting_files+=( "${ED}/usr/bin/mytop" ) - conflicting_files+=( "${ED}/usr/share/man/man1/mytop.1" ) - - local conflicting_file - for conflicting_file in "${conflicting_files[@]}" ; do - if [[ -e "${conflicting_file}" ]] ; then - rm -v "${conflicting_file}" || die - fi - done - - # Fix a dangling symlink when galera is not built - if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then - rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die - fi - - # Remove dangling symlink - rm "${ED}/usr/$(get_libdir)/libmariadb.a" || die - - # Remove broken SST scripts that are incompatible - local scriptremove - for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do - if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then - rm "${ED}/usr/bin/${scriptremove}" || die - fi - done -} - -pkg_preinst() { - java-pkg-opt-2_pkg_preinst -} - -pkg_postinst() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Create log directory securely if it does not exist - [[ -d "${ROOT}/${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}/${MY_LOGDIR}" - - if use server ; then - if use pam; then - einfo - elog "This install includes the PAM authentication plugin." - elog "To activate and configure the PAM plugin, please read:" - elog "https://mariadb.com/docs/server/reference/plugins/authentication-plugins/authentication-with-pluggable-authentication-modules-pam/authentication-plugin-pam" - einfo - chown mysql:mysql "${EROOT}/usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir" || die - fi - - if [[ -z "${REPLACING_VERSIONS}" ]] ; then - einfo - elog "You might want to run:" - elog "\"emerge --config =${CATEGORY}/${PF}\"" - elog "if this is a new install." - elog - elog "If you are switching server implentations, you should run the" - elog "mysql_upgrade tool." - einfo - else - einfo - elog "If you are upgrading major versions, you should run the" - elog "mysql_upgrade tool." - einfo - fi - - if use galera ; then - einfo - elog "Be sure to edit the my.cnf file to activate your cluster settings." - elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\"" - elog "The first time the cluster is activated, you should add" - elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node." - elog "This option should then be removed for subsequent starts." - einfo - fi - fi - - # Note about configuration change - einfo - elog "This version of mariadb reorganizes the configuration from a single my.cnf" - elog "to several files in /etc/mysql/${PN}.d." - elog "Please backup any changes you made to /etc/mysql/my.cnf" - elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension." - elog "You may have as many files as needed and they are read alphabetically." - elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." - einfo -} - -pkg_config() { - _getoptval() { - local section="${1}" - local option="--${2}" - local extra_options="${3}" - local cmd=( - "${my_print_defaults_binary}" - "${extra_options}" - "${section}" - ) - - local values=() - local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) - for parameter in "${parameters[@]}" - do - # my_print_defaults guarantees output of options, one per line, - # in the form that they would be specified on the command line. - # So checking for --option=* should be safe. - case ${parameter} in - ${option}=*) - values+=( "${parameter#*=}" ) - ;; - esac - done - - if [[ ${#values[@]} -gt 0 ]] ; then - # Option could have been set multiple times - # in which case only the last occurrence - # contains the current value - echo "${values[-1]}" - fi - } - - _mktemp_dry() { - # emktemp has no --dry-run option - local template="${1}" - - if [[ -z "${template}" ]] ; then - if [[ -z "${T}" ]] ; then - template="/tmp/XXXXXXX" - else - template="${T}/XXXXXXX" - fi - fi - - local template_wo_X=${template//X/} - local n_X - let n_X=${#template}-${#template_wo_X} - if [[ ${n_X} -lt 3 ]] ; then - echo "${FUNCNAME[0]}: too few X's in template '${template}'" >&2 - return - fi - - local attempts=0 - local character tmpfile - while [[ true ]] ; do - let attempts=attempts+1 - - new_file= - while read -n1 character ; do - if [[ "${character}" == "X" ]] ; then - tmpfile+="${RANDOM:0:1}" - else - tmpfile+="${character}" - fi - done < <(echo -n "${template}") - - if [[ ! -f "${tmpfile}" ]] - then - echo "${tmpfile}" - return - fi - - if [[ ${attempts} -ge 100 ]] ; then - echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2 - return - fi - done - } - - local mysql_binary="${EROOT}/usr/bin/mysql" - if [[ ! -x "${mysql_binary}" ]] ; then - die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysqld_binary="${EROOT}/usr/sbin/mysqld" - if [[ ! -x "${mysqld_binary}" ]] ; then - die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysql_install_db_binary="${EROOT}/usr/bin/mysql_install_db" - if [[ ! -x "${mysql_install_db_binary}" ]] ; then - die "'${mysql_install_db_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" - if [[ ! -x "${my_print_defaults_binary}" ]] ; then - die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" - fi - - if [[ -z "${MYSQL_USER}" ]] ; then - MYSQL_USER=mysql - if use prefix ; then - MYSQL_USER=$(id -u -n 2>/dev/null) - if [[ -z "${MYSQL_USER}" ]] ; then - die "Failed to determine current username!" - fi - fi - fi - - if [[ -z "${MYSQL_GROUP}" ]] ; then - MYSQL_GROUP=mysql - if use prefix ; then - MYSQL_GROUP=$(id -g -n 2>/dev/null) - if [[ -z "${MYSQL_GROUP}" ]] ; then - die "Failed to determine current user groupname!" - fi - fi - fi - - # my_print_defaults needs to read stuff in $HOME/.my.cnf - local -x HOME="${EROOT}/root" - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Read currently set data directory - MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - - # Bug #213475 - MySQL _will_ object strenously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if [[ -z "${MY_DATADIR}" ]] ; then - die "Sorry, unable to find MY_DATADIR!" - elif [[ -d "${MY_DATADIR}/mysql" ]] ; then - ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!" - ewarn "Please rename or delete its content if you wish to initialize a new data directory." - die "${PN} data directory at '${MY_DATADIR}' looks already initialized!" - fi - - MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_TMPDIR=${MYSQL_TMPDIR%/} - # These are dir+prefix - MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*} - MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*} - - # Create missing directories. - # Always check if mysql user can write to directory even if we just - # created directory because a parent directory might be not - # accessible for that user. - PID_DIR="${EROOT}/run/mysqld" - if [[ ! -d "${PID_DIR}" ]] ; then - einfo "Creating ${PN} PID directory '${PID_DIR}' ..." - install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \ - || die "Failed to create PID directory '${PID_DIR}'!" - fi - - local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_pid_dir_testfile}" ]] \ - && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_pid_dir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!" - else - rm "${_pid_dir_testfile}" || die - unset _pid_dir_testfile - fi - - if [[ ! -d "${MY_DATADIR}" ]] ; then - einfo "Creating ${PN} data directory '${MY_DATADIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \ - || die "Failed to create ${PN} data directory '${MY_DATADIR}'!" - fi - - local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_datadir_testfile}" ]] \ - && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_datadir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!" - else - rm "${_my_datadir_testfile}" || die - unset _my_datadir_testfile - fi - - if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then - einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \ - || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!" - fi - - if [[ -z "${MYSQL_TMPDIR}" ]] ; then - MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")" - [[ -z "${MYSQL_TMPDIR}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!" - - mkdir "${MYSQL_TMPDIR}" || die - chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die - fi - - # Now we need to test MYSQL_TMPDIR... - local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_tmpdir_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_tmpdir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!" - else - rm "${_my_tmpdir_testfile}" || die - unset _my_tmpdir_testfile - fi - - if [[ "${MYSQL_LOG_BIN}" == /* && ! -d "${MYSQL_LOG_BIN}" ]] ; then - # Only create directory when MYSQL_LOG_BIN is an absolute path - einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \ - || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'" - fi - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Only test when MYSQL_LOG_BIN is an absolute path - local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_logbin_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_logbin_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!" - else - rm "${_my_logbin_testfile}" || die - unset _my_logbin_testfile - fi - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* && ! -d "${MYSQL_RELAY_LOG}" ]] ; then - # Only create directory when MYSQL_RELAY_LOG is an absolute path - einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \ - || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Only test when MYSQL_RELAY_LOG is an absolute path - local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_relaylog_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_relaylog_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!" - else - rm "${_my_relaylog_testfile}" || die - unset _my_relaylog_testfile - fi - fi - - local SETUP_TMPDIR=$(mktemp -d "/tmp/${PN}-config.XXXXXXXXX" 2>/dev/null) - [[ -z "${SETUP_TMPDIR}" ]] && die "Failed to create setup tmpdir" - - # Limit access - chmod 0770 "${SETUP_TMPDIR}" || die - chown ${MYSQL_USER} "${SETUP_TMPDIR}" || die - - local mysql_install_log="${SETUP_TMPDIR}/install_db.log" - local mysqld_logfile="${SETUP_TMPDIR}/mysqld.log" - - echo "" - einfo "Detected settings:" - einfo "==================" - einfo "MySQL User:\t\t\t\t${MYSQL_USER}" - einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}" - einfo "MySQL DATA directory:\t\t${MY_DATADIR}" - einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}" - - if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then - # Absolute path for binary log files specified - einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}" - fi - - if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then - # Absolute path for relay log files specified - einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}" - fi - - einfo "PID DIR:\t\t\t\t${PID_DIR}" - einfo "Install db log:\t\t\t${mysql_install_log}" - einfo "Install server log:\t\t\t${mysqld_logfile}" - - echo - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local tmp_mysqld_password_source= - - for tmp_mysqld_password_source in mysql client ; do - einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" - if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then - if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then - ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!" - MYSQL_ROOT_PASSWORD= - continue - fi - - einfo "Found password in '${tmp_mysqld_password_source}' section!" - break - fi - done - - # Sometimes --show is required to display passwords in some implementations of my_print_defaults - if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" - fi - - unset tmp_mysqld_password_source - fi - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local pwd1="a" - local pwd2="b" - - echo - einfo "No password for mysql 'root' user was specified via environment" - einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config" - einfo "file like '${HOME}/.my.cnf'." - einfo "To continue please provide a password for the mysql 'root' user" - einfo "now on console:" - ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!" - read -rsp " >" pwd1 ; echo - - einfo "Retype the password" - read -rsp " >" pwd2 ; echo - - if [[ "x${pwd1}" != "x${pwd2}" ]] ; then - die "Passwords are not the same!" - fi - - MYSQL_ROOT_PASSWORD="${pwd1}" - unset pwd1 pwd2 - - echo - fi - - local -a mysqld_options - - # Fix bug 446200. Don't reference host my.cnf, needs to come first, - # see http://bugs.mysql.com/bug.php?id=31312 - use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" ) - - # Figure out which options we need to disable to do the setup - local helpfile="${TMPDIR}/mysqld-help" - "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null - - local opt optexp optfull - for opt in host-cache name-resolve networking slave-start \ - federated ssl log-bin relay-log slow-query-log external-locking \ - log-slave-updates \ - ; do - optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}" - grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" ) - done - - # Prepare timezones, see - # https://dev.mysql.com/doc/mysql/en/time-zone-support.html - local tz_sql="${SETUP_TMPDIR}/tz.sql" - - echo "USE mysql;" >"${tz_sql}" - "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null - if [[ $? -ne 0 ]] ; then - die "mysql_tzinfo_to_sql failed!" - fi - - local cmd=( - "${mysql_install_db_binary}" - "${mysqld_options[@]}" - "--init-file='${tz_sql}'" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - "--log-error='${mysql_install_log}'" - "--rpm" - "--cross-bootstrap" - "--skip-test-db" - "--user=${MYSQL_USER}" - ) - - einfo "Initializing ${PN} data directory: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1 - - if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql/user.frm" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2 - die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!" - fi - - local x=${RANDOM} - local socket="${PID_DIR}/mysqld.${x}.sock" - [[ -f "${socket}" ]] && die "Randomness failed; Socket ${socket} already exists!" - local pidfile="${PID_DIR}/mysqld.${x}.pid" - [[ -f "${pidfile}" ]] && die "Randomness failed; Pidfile ${pidfile} already exists!" - unset x - - cmd=( - "${mysqld_binary}" - "${mysqld_options[@]}" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - --max_allowed_packet=8M - --net_buffer_length=16K - "--socket='${socket}'" - "--pid-file='${pidfile}'" - "--log-error='${mysqld_logfile}'" - "--user=${MYSQL_USER}" - ) - - einfo "Starting mysqld to finalize initialization: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 & - - echo -n "Waiting for mysqld to accept connections " - local maxtry=15 - while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - if [[ -S "${socket}" ]] ; then - # Even with a socket we don't know if mysqld will abort - # start due to an error so just wait a little bit more... - maxtry=5 - while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - fi - - echo - - if [[ ! -S "${socket}" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2 - die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!" - fi - - local mysql_logfile="${SETUP_TMPDIR}/set_root_pw.log" - touch "${mysql_logfile}" || die - - ebegin "Setting root password" - # Do this from memory, as we don't want clear text passwords in temp files - local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'" - cmd=( - "${mysql_binary}" - --no-defaults - # Skip SSL for client connections, see bug #951865 - --skip-ssl - "--socket='${socket}'" - -hlocalhost - "-e \"${sql}\"" - ) - eval "${cmd[@]}" >"${mysql_logfile}" 2>&1 - local rc=$? - eend ${rc} - - if [[ ${rc} -ne 0 ]] ; then - # Poor man's solution which tries to avoid having password - # in log. NOTE: sed can fail if user didn't follow advice - # and included character which will require escaping... - sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null - - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}" - die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!" - fi - - # Stop the server - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - echo -n "Stopping the server " - pkill -F "${pidfile}" &>/dev/null - - maxtry=10 - while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - echo - - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - # We somehow failed to stop server. - # However, not a fatal error. Just warn the user. - ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!" - fi - fi - - rm -r "${SETUP_TMPDIR}" || die - - einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!" -} diff --git a/dev-db/mariadb/mariadb-11.8.3-r5.ebuild b/dev-db/mariadb/mariadb-12.3.3-r1.ebuild index 49dc1232b1f9..c968e557ef8e 100644 --- a/dev-db/mariadb/mariadb-11.8.3-r5.ebuild +++ b/dev-db/mariadb/mariadb-12.3.3-r1.ebuild @@ -5,6 +5,7 @@ EAPI=8 SUBSLOT="18" JAVA_PKG_OPT_USE="jdbc" +MARIADB_GENTOO_PATCH_VERSION="12.3.3-0" inherit systemd flag-o-matic prefix toolchain-funcs \ multiprocessing java-pkg-opt-2 cmake pam @@ -13,7 +14,7 @@ DESCRIPTION="An enhanced, drop-in replacement for MySQL" HOMEPAGE="https://mariadb.org/" SRC_URI=" mirror://mariadb/${P}/source/${P}.tar.gz - https://dev.gentoo.org/~arkamar/distfiles/${PN}-11.4.8-patches-01.tar.xz + https://gitweb.gentoo.org/proj/mariadb-patches.git/snapshot/${PN}-patches-${MARIADB_GENTOO_PATCH_VERSION}.tar.bz2 " # Shorten the path because the socket path length must be shorter than 107 chars # and we will run a mysql server during test phase @@ -110,7 +111,6 @@ RDEPEND=" ${COMMON_DEPEND} !<dev-db/mariadb-$(ver_cut 1-2) !dev-db/mysql - !dev-db/percona-server selinux? ( sec-policy/selinux-mysql ) server? ( columnstore? ( dev-db/mariadb-connector-c ) @@ -211,7 +211,8 @@ src_unpack() { } src_prepare() { - eapply "${WORKDIR}"/mariadb-patches + eapply "${WORKDIR}"/${PN}-patches-${MARIADB_GENTOO_PATCH_VERSION} + eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch eapply "${FILESDIR}"/${PN}-wsrep-gcc-15.patch @@ -276,6 +277,11 @@ src_prepare() { sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \ "${S}"/scripts/mysql_install_db.sh || die + # Apply duckdb patch and remove git apply call + eapply -d storage/duckdb/third_parties/duckdb -- storage/duckdb/patches/*.diff + sed -i -e 's/PATCH_COMMAND.*/PATCH_COMMAND echo/g' \ + storage/duckdb/cmake/duckdb.cmake || die + cmake_src_prepare java-pkg-opt-2_src_prepare } @@ -348,10 +354,11 @@ src_configure() { -DWITH_UNITTEST=OFF -DWITHOUT_CLIENTLIBS=YES -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF - -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF + -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=$(usex test DYNAMIC OFF) -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF) -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF) -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC + -DCLIENT_PLUGIN_PARSEC=OFF -DCLIENT_PLUGIN_ZSTD=OFF ) if use test ; then @@ -574,11 +581,17 @@ src_test() { "innodb_gis.gis;MDEV-25095;Known rounding error with latest AMD processors" "main.gis;MDEV-25095;Known rounding error with latest AMD processors" + # Fails in network-sandbox which contains only "lo" interface + "main.mysql_client_test;0;Fails in network-sandbox" + "main.mysql_client_test_comp;0;Fails in network-sandbox" + # Some tests are unable to retrieve HW address "spider.*;MDEV-37098;Fails with network sandbox" # issue introduced in 11.8.2 "main.mysqld--help-aria;MDEV-36668;broken test regex" + + "sys_vars.session_track_system_variables_basic;0;Requires example engine" ) use latin1 || disabled_tests+=( diff --git a/dev-db/mongodb/mongodb-8.0.29.ebuild b/dev-db/mongodb/mongodb-8.0.29.ebuild index e751b75b3383..af4a6fa99919 100644 --- a/dev-db/mongodb/mongodb-8.0.29.ebuild +++ b/dev-db/mongodb/mongodb-8.0.29.ebuild @@ -63,7 +63,7 @@ S="${WORKDIR}/mongo-${MY_PV}" LICENSE="Apache-2.0 SSPL-1" SLOT="0" KEYWORDS="~amd64 ~arm64" -IUSE="debug ssl" +IUSE="debug ssl cpu_flags_x86_sse4_2 cpu_flags_x86_ssse3" # https://github.com/mongodb/mongo/wiki/Test-The-Mongodb-Server # resmoke needs python packages not yet present in Gentoo @@ -160,6 +160,17 @@ src_prepare() { find "${S}" -name '*.b*z*l' -exec perl -0 -p -i \ -e 's#load\("\@poetry//.+?"\)\s*##gm;' \ -e 's#dependency\(.*?\),?##gs;' {} \; || die + + # bug 982138 + # fix snappy configuration for cpu features + if ! use cpu_flags_x86_sse4_2; then + sed -i 's/SNAPPY_HAVE_X86_CRC32 1/SNAPPY_HAVE_X86_CRC32 0/' \ + src/third_party/snappy/platform/build_linux_x86_64/config.h || die + fi + if ! use cpu_flags_x86_ssse3; then + sed -i 's/SNAPPY_HAVE_SSSE3 1/SNAPPY_HAVE_SSSE3 0/' \ + src/third_party/snappy/platform/build_linux_x86_64/config.h || die + fi } src_configure() { diff --git a/dev-db/mongodb/mongodb-8.3.8.ebuild b/dev-db/mongodb/mongodb-8.3.8.ebuild index fa777baf948a..8aa0ebcb1051 100644 --- a/dev-db/mongodb/mongodb-8.3.8.ebuild +++ b/dev-db/mongodb/mongodb-8.3.8.ebuild @@ -83,7 +83,7 @@ S="${WORKDIR}/mongo-${MY_PV}" LICENSE="Apache-2.0 SSPL-1" SLOT="0" KEYWORDS="~amd64 ~arm64" -IUSE="debug ssl" +IUSE="debug ssl cpu_flags_x86_sse4_2 cpu_flags_x86_ssse3" # https://github.com/mongodb/mongo/wiki/Test-The-Mongodb-Server # resmoke needs python packages not yet present in Gentoo @@ -194,6 +194,17 @@ src_prepare() { # run auto_header.py edob ${PYTHON} "${FILESDIR}"/auto_header.py "${S}" + + # bug 982138 + # fix snappy configuration for cpu features + if ! use cpu_flags_x86_sse4_2; then + sed -i 's/SNAPPY_HAVE_X86_CRC32 1/SNAPPY_HAVE_X86_CRC32 0/' \ + src/third_party/snappy/platform/build_linux_x86_64/config.h || die + fi + if ! use cpu_flags_x86_ssse3; then + sed -i 's/SNAPPY_HAVE_SSSE3 1/SNAPPY_HAVE_SSSE3 0/' \ + src/third_party/snappy/platform/build_linux_x86_64/config.h || die + fi } src_configure() { diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest index 74b48140574e..2e8c3d8ee416 100644 --- a/dev-db/mysql/Manifest +++ b/dev-db/mysql/Manifest @@ -1,8 +1,8 @@ DIST mysql-8.0.43-patches-01.tar.xz 8396 BLAKE2B 83c1992ae6f3b58f5c0e07926abb36fd1581f6db5a4e440b62e16f87d99133797c74e889f1a0e99d407ab7882f825b516885599cdb41e4429b405c968c995dbf SHA512 8e1480817f924c6a3db1ac412fe551337cfa134bf2729344fdb811d44ced96c78300ffca0eabc4ddd5e24827ebc1ddeea6c5973fd00ecd4c7fe67fe96d4c0081 DIST mysql-8.4.10.tar.gz 479076067 BLAKE2B 584ce12cf33e1bd16ce5702a410edaf8dcbfef88d6433cd1c391cf8fddcaf86ed432f6abc2d556cbfc6ff081a1a11de1575fd2d222ac3d7219666844e28e8b35 SHA512 0e85b84bee32414959755a1f59c997bc4a7c81fe3a12267a7963cd2c6607ebccfd49ab23c872a429a80e319c65ba92c104f0b4445494e90c4aacab32b6cc6d9e DIST mysql-8.4.10.tar.gz.asc 833 BLAKE2B fefc45788b71b6a730666223011786777cd529bd900c28b50834700c3eb18387a51f864ff2e00e4430d4cf0d6acfa3625ae493794db364dd48976b6ed237e690 SHA512 ac206858786943bbe32b9f07bd893ae8d5d4a7528039aa0f0f2b17a1cc01a791c9fcadc1ad0626f26951e59b57a87431c6cce91a0496b629b9b10e1a0261b2ee +DIST mysql-8.4.11.tar.gz 479170675 BLAKE2B 375d48ff6b2911be8e98399cdb202168928adc385fd101819df1bd1f1b704e1127aa7d875c8706e14cb27e8970e796b01ecc5810dda5f0759015857a97a01576 SHA512 56245b74e2ef45dcaaea76ff1db2c62e7ef24f3b05098ebb9785c93a04cdfdca36cc6fa69e0dd35f7be778ebeb46a831afa85647c9e9a9258bfeea7311013669 +DIST mysql-8.4.11.tar.gz.asc 833 BLAKE2B 64e345830da17bffd1c1d4637674f9ebd261adde1b84e6f84f49788c0c3273603d3860581e692f911bf21e175272da21c423387e0131e126873cd7e3d76ce949 SHA512 68d5452a8c83f2051df02516e7c1b0cdcb5c34e228b569b9712e89fbf26518ba0ea4f1e177cf7675fe5f05eeecdc535bff56b57fbe765226f2eb969032b12a84 DIST mysql-8.4.7-patches-01.tar.xz 8268 BLAKE2B 5a580c4295c246ffaad0d2819ab2860d0f762b633611b5c4a9c1cfb4f0a959d20595148108ea04fc9f0a699f46c39939e3c093fa0845d717133807ce8f1c74a6 SHA512 d451c6766b41cc95356e7c7cd45238d18236d9d71225e00b129d30c59463bc5c05f077a9c9d77b605fecb07189dd8502e8a6568cc5b75264e2255ffcd61715e9 -DIST mysql-8.4.9.tar.gz 479076177 BLAKE2B bbb9a65d3ba52b734ed4a7654dcda24584d9da87ba817bd025ec63c76f6728a67d26cb9a3effe362ab94eb2651192c7b698c0f6ca2826c15d1faeabd9e37714b SHA512 bae8aba6ba921f96799063f6c10f9f02030276f802e74a8b80f2df34e56b0d4501a1c9a9f818529cb70ec700a8f11aedf7fa645fa5db8550f51291759e6a25ad -DIST mysql-8.4.9.tar.gz.asc 833 BLAKE2B 11d9693dc95b7897492022a64a0205c72cd8978b1e62c28019a9f7223d1070442c869028b2075ed5c37a90a87e07cf77b66c7a41b6c37c8b5c6ebb956c60bde9 SHA512 71944c031d4e7b73ec8c1eace4bd51220b42e1528291c3cdf0ceab25fc0b56f198c756af60f340596ef7d9ebb86e7de341eaef49b1124bb520a54221f028943f DIST mysql-boost-8.0.45.tar.gz 492472802 BLAKE2B cb253e2c69534c54ea6e79095619ebd4ed0b2187bd5e3b5746c5e6f92a08289df17cbb05305a9c23f3f11f2c78042a7e3edf98f33c9e5f35cc85102bfc97d328 SHA512 9ab52da87e9c1570328080b802f8c9ca1bcbb08e489e1d6cc3282b994cfd07099a0cf5eee420faa684e8372aee66495b34b633224dca98cd5caa8f4a93e500a4 DIST mysql-boost-8.0.46.tar.gz 492495969 BLAKE2B d2f1132b3069e3ac42e884a3c02dfbcf7a23083c9559950b117ca83b6ada7159ff92c83a84c4cf09dfc10df7aa56cbe7ae85751aadcf35e9e694a485edb4c2b2 SHA512 b90ee9ad03ddc4732d2942ae4918010a7c398b2080f0e11750df0e61ec07a17bf26ce6aea8806729250b015607e398a8608363ed0830f4f613fafd09dbab7412 diff --git a/dev-db/mysql/mysql-8.0.46.ebuild b/dev-db/mysql/mysql-8.0.46.ebuild deleted file mode 100644 index f179e12baaa7..000000000000 --- a/dev-db/mysql/mysql-8.0.46.ebuild +++ /dev/null @@ -1,1321 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit check-reqs cmake dot-a edo flag-o-matic linux-info multiprocessing prefix toolchain-funcs - -MY_PV="${PV//_pre*}" -MY_P="${PN}-${MY_PV}" - -# Patch version -PATCH_SET=( https://github.com/parona-source/mysql-server/releases/download/mysql-8.0.43-patches-01/mysql-8.0.43-patches-01.tar.xz ) - -DESCRIPTION="A fast, multi-threaded, multi-user SQL database server" -HOMEPAGE="https://www.mysql.com/" -# https://dev.mysql.com/downloads/mysql/ -SRC_URI="https://dev.mysql.com/get/Downloads/MySQL-$(ver_cut 1-2)/mysql-boost-${MY_PV}.tar.gz" -# https://downloads.mysql.com/archives/community/ -SRC_URI+=" https://cdn.mysql.com/archives/mysql-$(ver_cut 1-2)/mysql-boost-${MY_PV}.tar.gz" -SRC_URI+=" ${PATCH_SET[@]}" -# Shorten the path because the socket path length must be shorter than 107 chars -# and we will run a mysql server during test phase -S="${WORKDIR}/mysql" - -LICENSE="GPL-2" -SLOT="8.0" -# -ppc for bug #761715 -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips -ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" -IUSE="cjk cracklib debug jemalloc latin1 numa +perl profiling router selinux +server tcmalloc test test-install" -RESTRICT="!test? ( test )" - -REQUIRED_USE=" - ?? ( tcmalloc jemalloc ) - cjk? ( server ) - jemalloc? ( server ) - numa? ( server ) - profiling? ( server ) - router? ( server ) - tcmalloc? ( server ) - test? ( server ) - test-install? ( server ) -" - -# Be warned, *DEPEND are version-dependent -# These are used for both runtime and compiletime -COMMON_DEPEND=" - >=app-arch/lz4-1.9.4:= - >=app-arch/zstd-1.2.0:= - >=dev-libs/openssl-1.0.0:= - net-libs/libtirpc:= - sys-libs/ncurses:= - >=virtual/zlib-1.2.13:= - server? ( - dev-libs/icu:= - dev-libs/libevent:=[ssl,threads(+)] - cjk? ( app-text/mecab ) - jemalloc? ( dev-libs/jemalloc:= ) - kernel_linux? ( - dev-libs/libaio - sys-process/procps - ) - numa? ( sys-process/numactl ) - tcmalloc? ( dev-util/google-perftools:= ) - ) -" - -DEPEND=" - ${COMMON_DEPEND} - server? ( net-libs/rpcsvc-proto ) -" -RDEPEND=" - ${COMMON_DEPEND} - !dev-db/mariadb - !dev-db/mariadb-galera - !dev-db/percona-server - !dev-db/mysql-cluster - !dev-db/mysql:0 - !dev-db/mysql:5.7 - selinux? ( sec-policy/selinux-mysql ) - !prefix? ( - acct-group/mysql - acct-user/mysql - dev-db/mysql-init-scripts - ) - test-install? ( - app-arch/zip - dev-lang/perl - dev-perl/Expect - dev-perl/JSON - sys-libs/timezone-data - ) -" -# For other stuff to bring us in -# dev-perl/DBD-mysql is needed by some scripts installed by MySQL -PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" - -# https://bugs.gentoo.org/623962 -# tests set TZ for tests leading to failures on musl if sys-libs/timezone-data isnt installed -BDEPEND=" - app-alternatives/yacc - virtual/pkgconfig - test? ( - acct-group/mysql - acct-user/mysql - app-arch/zip - dev-lang/perl - dev-perl/Expect - dev-perl/JSON - sys-libs/timezone-data - ) - -" - -PATCHES=( - "${WORKDIR}"/mysql-patches - # Needed due to bundled boost-1.77, this fix is included in boost-1.81 - "${FILESDIR}"/mysql-8.0.36-boost-clang-fix.patch - # Needed due to bundled boost-1.77, this fix is included in boost-1.79 - "${FILESDIR}"/mysql-8.0.37-fix-bundled-boost.patch - # Needed due to bundled abseil-cpp-20230802, this fix is included in abseil-cpp-20240722 - "${FILESDIR}"/mysql-8.0.37-fix-bundled-abseil.patch -) - -mysql_init_vars() { - : ${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mysql"} - : ${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} - : ${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} - : ${MY_LOGDIR="${EPREFIX}/var/log/mysql"} - MY_DATADIR="${MY_LOCALSTATEDIR}" - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LOCALSTATEDIR MY_LOGDIR - export MY_DATADIR -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use server ; then - CHECKREQS_DISK_BUILD="3G" - - if has test ${FEATURES} ; then - CHECKREQS_DISK_BUILD="10G" - - if use elibc_musl; then - # <parona@protonmail.com> i've seen it take 17GB on musl with FEATURES="test" USE="perl server" - CHECKREQS_DISK_BUILD="18G" - fi - fi - - check-reqs_pkg_pretend - fi - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - CHECKREQS_DISK_BUILD="3G" - - if has test ${FEATURES} ; then - CHECKREQS_DISK_BUILD="10G" - - if use elibc_musl; then - # <parona@protonmail.com> i've seen it take 17GB on musl with FEATURES="test" USE="perl server" - CHECKREQS_DISK_BUILD="18G" - fi - - # Bug #213475 - MySQL _will_ object strenuously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if ! has userpriv ${FEATURES} ; then - die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." - fi - - local aio_max_nr=$(sysctl -n fs.aio-max-nr 2>/dev/null) - if [[ -z "${aio_max_nr}" || ${aio_max_nr} -lt 250000 ]] ; then - die "FEATURES=test will require fs.aio-max-nr=250000 at minimum!" - fi - - if use latin1 ; then - # Upstream only supports tests with default charset - die "Testing with USE=latin1 is not supported." - fi - fi - - if use kernel_linux && use numa ; then - linux-info_get_any_version - - local CONFIG_CHECK="~NUMA" - - local WARNING_NUMA="\ -This package expects NUMA support in kernel which this system does not have at the moment; \ -Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support" - - check_extra_config - fi - - use server && check-reqs_pkg_setup - fi -} - -src_unpack() { - unpack ${A} - - mv -f "${WORKDIR}/${MY_P}" "${S}" || die -} - -src_prepare() { - # Avoid rpm call which would trigger sandbox, #692368 - sed -i \ - -e 's/MY_RPM rpm/MY_RPM rpmNONEXISTENT/' \ - CMakeLists.txt || die - - # Remove the centos and rhel selinux policies to support mysqld_safe under SELinux - if [[ -d "${S}/support-files/SELinux" ]] ; then - echo > "${S}/support-files/SELinux/CMakeLists.txt" || die - fi - - # Remove man pages for client-lib tools we don't install - rm \ - man/my_print_defaults.1 \ - man/perror.1 \ - man/zlib_decompress.1 \ - || die - - cmake_src_prepare -} - -src_configure() { - # Bug #114895, bug #110149 - filter-flags "-O" "-O[01]" - - # Code requires C++17 due to https://github.com/mysql/mysql-server/commit/236ab55bedd8c9eacd80766d85edde2a8afacd08 - append-cxxflags -std=c++17 - - # Debug build type used extensively to add preprocessor definitions - use debug && CMAKE_BUILD_TYPE="Debug" - - lto-guarantee-fat - - local mycmakeargs=( - -Wno-dev # less noise - - # Building everything as shared breaks upstream assumptions. - # For example bundled abseil is excpected to be static and is therefore not installed. - # Breaking the assumption leading the mysql to being built against bundled abseil, - # but then dynamically linked against system abseil once installed. - -DBUILD_SHARED_LIBS=OFF - - -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql" - -DSYSCONFDIR="${EPREFIX}/etc/mysql" - - -DINSTALL_BINDIR=bin - -DINSTALL_DOCDIR=share/doc/${PF} - -DINSTALL_DOCREADMEDIR=share/doc/${PF} - -DINSTALL_INCLUDEDIR=include/mysql - -DINSTALL_INFODIR=share/info - -DINSTALL_LIBDIR=$(get_libdir) - -DINSTALL_MANDIR=share/man - -DINSTALL_PRIV_LIBDIR=$(get_libdir)/mysql/private - -DINSTALL_MYSQLSHAREDIR=share/mysql - -DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" - -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mysql" - - -DROUTER_INSTALL_PLUGINDIR="$(get_libdir)/mysqlrouter" - -DROUTER_INSTALL_LIBDIR="$(get_libdir)/mysqlrouter/private" - -DROUTER_INSTALL_LOGROTATEDIR="${EPREFIX}/etc/logrotate.d" - -DROUTER_INSTALL_DOCDIR="share/doc/${PF}" - - -DCOMPILATION_COMMENT="Gentoo Linux ${PF}" - -DWITH_UNIT_TESTS=$(usex test ON OFF) - - # Enables -Werror - -DMYSQL_MAINTAINER_MODE=OFF - - # debug hack wrt #497532 - -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usev !debug '-DNDEBUG' )" - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usev !debug '-DNDEBUG' )" - - # Automagically uses LLD when not using LTO (bug #710272, #775845) - -DUSE_LD_LLD=OFF - - # Causes issues on musl bug #922808 - -DWITH_BUILD_ID=OFF - - # These are installed via dev-db/mysql-connector-c - -DWITHOUT_CLIENTLIBS=YES - - # Using bundled editline to get CTRL+C working - -DWITH_EDITLINE=bundled - -DWITH_ZLIB=system - -DWITH_SSL=system - -DWITH_LIBWRAP=0 - -DENABLED_LOCAL_INFILE=1 - -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DWITH_DEFAULT_COMPILER_OPTIONS=0 - -DCMAKE_POSITION_INDEPENDENT_CODE=ON - - -DWITH_CURL=system - -DWITH_BOOST="${S}/boost" - -DWITH_ROUTER=$(usex router ON OFF) - - -DWITH_ICU=system - -DWITH_LZ4=system - # Our dev-libs/rapidjson doesn't carry necessary fixes for std::regex - -DWITH_RAPIDJSON=bundled - -DWITH_ZSTD=system - - # This is the expected location for upstream RPM's and the script will search for location relative to it. - # Other locations will not work. - -DINSTALL_MYSQLTESTDIR=$(usex test-install 'share/mysql-test' 0) - ) - - if tc-is-lto ; then - mycmakeargs+=( -DWITH_LTO=ON ) - else - mycmakeargs+=( -DWITH_LTO=OFF ) - fi - - if [[ -n "${MYSQL_DEFAULT_CHARSET}" && -n "${MYSQL_DEFAULT_COLLATION}" ]] ; then - ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" - ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." - ewarn "You MUST file bugs without these variables set." - ewarn "Tests will probably fail!" - - mycmakeargs+=( - -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} - -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} - ) - elif use latin1 ; then - mycmakeargs+=( - -DDEFAULT_CHARSET=latin1 - -DDEFAULT_COLLATION=latin1_swedish_ci - ) - else - mycmakeargs+=( - -DDEFAULT_CHARSET=utf8mb4 - -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci - ) - fi - - if use server ; then - mycmakeargs+=( - -DWITH_EXTRA_CHARSETS=all - -DWITH_DEBUG=$(usex debug) - -DWITH_MECAB=$(usex cjk system OFF) - -DWITH_LIBEVENT=system - # Cannot handle protobuf >23 bug #912797 - # 05/06/2024: protobuf has been updated, - # but it cannot handle abseil when building against system - # Currently bundles protobuf-25.1 - -DWITH_PROTOBUF=bundled - -DWITH_NUMA=$(usex numa ON OFF) - ) - - if use jemalloc ; then - mycmakeargs+=( -DWITH_JEMALLOC=ON ) - elif use tcmalloc ; then - mycmakeargs+=( -DWITH_TCMALLOC=ON ) - fi - - if use profiling ; then - # Setting to OFF doesn't work: Once set, profiling options will be added - # to `mysqld --help` output via sql/sys_vars.cc causing - # "main.mysqld--help-notwin" test to fail - mycmakeargs+=( -DENABLED_PROFILING=ON ) - fi - - # Storage engines - mycmakeargs+=( - -DWITH_EXAMPLE_STORAGE_ENGINE=0 - -DWITH_ARCHIVE_STORAGE_ENGINE=1 - -DWITH_BLACKHOLE_STORAGE_ENGINE=1 - -DWITH_CSV_STORAGE_ENGINE=1 - -DWITH_FEDERATED_STORAGE_ENGINE=1 - -DWITH_HEAP_STORAGE_ENGINE=1 - -DWITH_INNOBASE_STORAGE_ENGINE=1 - -DWITH_INNODB_MEMCACHED=0 - -DWITH_MYISAMMRG_STORAGE_ENGINE=1 - -DWITH_MYISAM_STORAGE_ENGINE=1 - ) - else - mycmakeargs+=( - -DWITHOUT_SERVER=1 - -DWITH_SYSTEMD=no - ) - fi - - cmake_src_configure -} - -# Official test instructions: -# ulimit -n 16500 && USE='perl server' FEATURES='test userpriv' \ -# ebuild mysql-X.X.XX.ebuild digest clean test install -src_test() { - _disable_test() { - local rawtestname bug reason - rawtestname="${1}" ; shift - bug="${1}" ; shift - reason="${@}" - - ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})" - echo "${rawtestname} : BUG#${bug} ${reason}" >> "${T}/disabled.def" - } - - local TESTDIR="${BUILD_DIR}/mysql-test" - local retstatus_tests - - einfo "Official test instructions:" - einfo "ulimit -n 16500 && USE='perl server' FEATURES='test userpriv' ebuild ..." - - # Ensure that parallel runs don't die - local -x MTR_BUILD_THREAD="$((${RANDOM} % 100))" - - # Use a tmpfs opportunistically, otherwise set MTR_PARALLEL to 1. - # MySQL tests are I/O heavy. They benefit greatly from a tmpfs, parallel tests without a tmpfs are flaky due to timeouts. - if mountpoint -q /dev/shm ; then - local VARDIR="/dev/shm/mysql-var-${MTR_BUILD_THREAD}" - local -x MTR_PARALLEL=${MTR_PARALLEL:-$(makeopts_jobs)} - else - ewarn "/dev/shm not mounted, setting default MTR_PARALLEL to 1. Tests will take a long time" - local VARDIR="${T}/vardir" - # Set it to one while allowing users to override it. - local -x MTR_PARALLEL=${MTR_PARALLEL:-1} - fi - einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'" - - # Disable unit tests, run them separately with eclass defaults - local -x MTR_UNIT_TESTS=0 - - # Increase test timeouts - # bug #923649 - # https://github.com/gentoo/gentoo/pull/35002#issuecomment-1926101030 - local -x MTR_SUITE_TIMEOUT=$(( 60 * 40 )) # minutes - local -x MTR_TESTCASE_TIMEOUT=60 # minutes - - # Include config for tests, this is for scenarios where mysql wasn't installed previously or if the - # configuration was from an older version. - sed \ - -e "s/@GENTOO_PORTAGE_EPREFIX@/${EPREFIX}/" \ - -e "s/@DATADIR@/${MY_DATADIR}/" \ - "${FILESDIR}"/my.cnf-8.0.distro-client \ - "${FILESDIR}"/my.cnf-8.0.distro-server \ - > "${T}"/my.cnf || die - local -x PATH_CONFIG_FILE="${T}/my.cnf" - - # Create directories because mysqladmin might run out of order - mkdir -p "${T}"/var-tests{,/log} || die - - # Run mysql tests - pushd "${TESTDIR}" &>/dev/null || die - - touch "${T}/disabled.def" || die - - local -a disabled_tests=( - "auth_sec.atomic_rename_user;103512;Depends on user running test" - "auth_sec.keyring_file_data_qa;0;Won't work with user privileges" - "auth_sec.openssl_without_fips;94718;Known test failure" - - "gis.geometry_class_attri_prop;5452;Known rounding error with latest AMD processors (PS)" - "gis.geometry_property_function_issimple;5452;Known rounding error with latest AMD processors (PS)" - "gis.gis_bugs_crashes;5452;Known rounding error with latest AMD processors (PS)" - "gis.spatial_analysis_functions_buffer;5452;Known rounding error with latest AMD processors (PS)" - "gis.spatial_analysis_functions_centroid;5452;Known rounding error with latest AMD processors (PS)" - "gis.spatial_analysis_functions_distance;5452;Known rounding error with latest AMD processors (PS)" - "gis.spatial_op_testingfunc_mix;5452;Known rounding error with latest AMD processors (PS)" - "gis.spatial_operators_intersection;5452;Known rounding error with latest AMD processors (PS)" - "gis.spatial_utility_function_distance_sphere;5452;Known rounding error with latest AMD processors (PS)" - "gis.spatial_utility_function_simplify;5452;Known rounding error with latest AMD processors (PS)" - "gis.st_symdifference;5452;Known rounding error with latest AMD processors (PS)" - - "main.derived_limit;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.explain_tree;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.gis-precise;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.mysql_load_data_local_dir;0;Known test failure -- no upstream bug yet" - "main.select_icp_mrr;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.subquery_bugs;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.subquery_sj_dupsweed;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.subquery_sj_dupsweed_bka;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.subquery_sj_dupsweed_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.subquery_sj_firstmatch;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.subquery_sj_firstmatch_bka;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.subquery_sj_firstmatch_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.subquery_sj_mat_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.subquery_sj_all_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.window_std_var;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.window_std_var_optimized;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "main.with_recursive;0;Known rounding error with latest AMD processors -- no upstream bug yet" - "perfschema.statement_digest_query_sample;0;Test will fail on slow hardware" - - "rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch;0;Unstable test" - "rpl_gtid.rpl_multi_source_mtr_includes;97844;Unstable test" - "main.partition_datatype;0;Unstable test" - "innodb_undo.truncate_xa;0;Unstable test" - "rpl.rpl_json;0;Unstable test" - - "sys_vars.myisam_data_pointer_size_func;87935;Test will fail on slow hardware" - - "sys_vars.build_id_basic;0;Requires -DWITH_BUILD_ID=ON" - - "main.keyring_migration_password;0;Known test failure -- no upstream bug yet" - "innodb.upgrade_orphan;0;Known test failure -- no upstream bug yet" - ) - - if ! hash zip 1>/dev/null 2>&1 ; then - # No need to force dep app-arch/zip for one test - disabled_tests+=( - "innodb.discarded_partition_create;0;Requires app-arch/zip" - "innodb.partition_upgrade_create;0;Requires app-arch/zip" - ) - fi - - if has_version ">=dev-libs/openssl-3.2" ; then - # https://bugs.mysql.com/bug.php?id=113258 - # Fails still with 8.0.41 - disabled_tests+=( - "rpl.rpl_tlsv13;0;CCM8 ciphers have a lower security level with OpenSSL 3.2" - "auth_sec.wl15800_ciphers_tlsv13;0;CCM8 ciphers have a lower security level with OpenSSL 3.2" - ) - fi - - if use debug; then - disabled_tests+=( - "innodb.dblwr_unencrypt;0;Unstable test" - ) - fi - - local test_infos_str test_infos_arr - for test_infos_str in "${disabled_tests[@]}" ; do - IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}" - - if [[ ${#test_infos_arr[@]} != 3 ]] ; then - die "Invalid test data set, not matching format: ${test_infos_str}" - fi - - _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}" - done - unset test_infos_str test_infos_arr - - local -a CMAKE_SKIP_TESTS=( - # timing test, can be unreliable - "routertest_harness_net_ts_timer" - - # Could not get local host address: Name or service not known(errno: -2) - "routertest_component_bootstrap" - "routertest_component_bootstrap_account" - "routertest_component_bootstrap_clusterset" - "routertest_component_config_overwrites" - "routertest_component_rest_api_enable" - "routertest_component_routing" - "routertest_component_sd_notify" - "routertest_component_state_file" - "routertest_integration_routing_direct" - "routertest_integration_routing_reuse" - "routertest_integration_routing_sharing" - "routertest_integration_routing_sharing_constrained_pools" - "routertest_integration_routing_sharing_restart" - - # TODO: ??? - "pfs_host-oom" - "pfs_user-oom" - "pfs" - ) - - # Try to increase file limits to increase test coverage - if ! ulimit -n 16500 1>/dev/null 2>&1 ; then - # Upper limit comes from parts.partition_* tests - ewarn "For maximum test coverage, please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager." - - if ! ulimit -n 4162 1>/dev/null 2>&1 ; then - # Medium limit comes from - # '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)' - ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager." - - if ! ulimit -n 3000 1>/dev/null 2>&1 ; then - ewarn "For minimum test coverage, please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager." - else - einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 4162 (medium test coverage)." - fi - else - einfo "Will run test suite with open file limit set to 16500 (best test coverage)." - fi - - local test_failures=() - - # bug #823656 - nonfatal cmake_src_test --test-command "--gtest_death_test_style=threadsafe" - if [[ $? -ne 0 ]]; then - test_failures+=( cmake_src_test ) - fi - - # run mysql-test tests - # Enable force restart to ensure success when tests don't cleanup sufficiently. - # Anything touching gtid_executed is negatively affected if you have unlucky ordering - nonfatal edo perl mysql-test-run.pl \ - --force --force-restart \ - --vardir="${VARDIR}" --tmpdir="${T}/tmp-tests" \ - --skip-test=tokudb --skip-test-list="${T}/disabled.def" \ - --max-test-fail=0 \ - --retry=3 --retry-failure=2 \ - --report-unstable-tests \ - --report-features - if [[ $? -ne 0 ]]; then - test_failures+=( mysql-test-run.pl ) - - eerror "Tests failed. When you file a bug, please attach the following items:" - eerror "The file that is created with this command:" - eerror "\t'find ${T}/var-tests -name '*.log' | tar -caf mysql-test-logs.tar.xz --files-from -'" - fi - - if [[ "${VARDIR}" != "${T}/var-tests" ]]; then - # Move vardir to tempdir. - mv "${VARDIR}" "${T}/var-tests" - # Clean up mysql temporary directory - rm -rf "${VARDIR}" 2>/dev/null - fi - - popd &>/dev/null || die - - # Cleanup is important for these testcases. - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - - if [[ ${#test_failures} -eq 0 ]]; then - einfo "Tests successfully completed" - else - die "Test failures: ${test_failures[@]}" - fi -} - -src_install() { - strip-lto-bytecode - cmake_src_install - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Convenience links - einfo "Making Convenience links for mysqlcheck multi-call binary" - dosym "mysqlcheck" "/usr/bin/mysqlanalyze" - dosym "mysqlcheck" "/usr/bin/mysqlrepair" - dosym "mysqlcheck" "/usr/bin/mysqloptimize" - - # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir - if [[ -d "${ED}/usr/data" ]] ; then - rm -Rf "${ED}/usr/data" || die - fi - - # Configuration stuff - einfo "Building default configuration ..." - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}" - [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf - cp "${FILESDIR}/my.cnf-5.7" "${TMPDIR}/my.cnf" || die - eprefixify "${TMPDIR}/my.cnf" - doins "${TMPDIR}/my.cnf" - insinto "${MY_SYSCONFDIR#"${EPREFIX}"}/mysql.d" - cp "${FILESDIR}/my.cnf-8.0.distro-client" "${TMPDIR}/50-distro-client.cnf" || die - eprefixify "${TMPDIR}/50-distro-client.cnf" - doins "${TMPDIR}/50-distro-client.cnf" - - mycnf_src="my.cnf-8.0.distro-server" - sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ - "${FILESDIR}/${mycnf_src}" \ - > "${TMPDIR}/my.cnf.ok" || die - - if use prefix ; then - sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \ - "${TMPDIR}/my.cnf.ok" || die - fi - - if use latin1 ; then - sed -i \ - -e "/character-set/s|utf8mb4|latin1|g" \ - "${TMPDIR}/my.cnf.ok" || die - fi - - eprefixify "${TMPDIR}/my.cnf.ok" - - newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf - - #Remove mytop if perl is not selected - [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop" - - if use router ; then - rm -rf \ - "${ED}/usr/LICENSE.router" \ - "${ED}/usr/README.router" \ - "${ED}/usr/run" \ - "${ED}/usr/var" \ - || die - fi - - # Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them. - find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die -} - -pkg_postinst() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Create log directory securely if it does not exist - # NOTE: $MY_LOGDIR contains $EPREFIX by default - [[ -d "${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${MY_LOGDIR}" - - # Note about configuration change - einfo - elog "This version of ${PN} reorganizes the configuration from a single my.cnf" - elog "to several files in /etc/mysql/mysql.d." - elog "Please backup any changes you made to /etc/mysql/my.cnf" - elog "and add them as a new file under /etc/mysql/mysql.d with a .cnf extension." - elog "You may have as many files as needed and they are read alphabetically." - elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." - einfo - - if [[ -z "${REPLACING_VERSIONS}" ]] ; then - einfo - elog "You might want to run:" - elog " \"emerge --config =${CATEGORY}/${PF}\"" - elog "if this is a new install." - einfo - else - einfo - elog "Upgrade process for ${PN}-8.x has changed. Please read" - elog "https://dev.mysql.com/doc/refman/8.0/en/upgrade-binary-package.html" - einfo - fi -} - -pkg_config() { - _getoptval() { - local section="$1" - local flag="--${2}=" - local extra_options="${3}" - local cmd=( - "${my_print_defaults_binary}" - "${extra_options}" - "${section}" - ) - local results=( $(eval "${cmd[@]}" 2>/dev/null | sed -n "/^${flag}/s,${flag},,gp") ) - - if [[ ${#results[@]} -gt 0 ]] ; then - # When option is set multiple times only return last value - echo "${results[-1]}" - fi - } - - _mktemp_dry() { - # emktemp has no --dry-run option - local template="${1}" - - if [[ -z "${template}" ]] ; then - if [[ -z "${T}" ]] ; then - template="/tmp/XXXXXXX" - else - template="${T}/XXXXXXX" - fi - fi - - local template_wo_X=${template//X/} - local n_X - let n_X=${#template}-${#template_wo_X} - if [[ ${n_X} -lt 3 ]] ; then - echo "${FUNCNAME[0]}: too few X's in template '${template}'" >&2 - return - fi - - local attempts=0 - local character tmpfile - while [[ true ]] ; do - let attempts=attempts+1 - - new_file= - while read -n1 character ; do - if [[ "${character}" == "X" ]] ; then - tmpfile+="${RANDOM:0:1}" - else - tmpfile+="${character}" - fi - done < <(echo -n "${template}") - - if [[ ! -f "${tmpfile}" ]] - then - echo "${tmpfile}" - return - fi - - if [[ ${attempts} -ge 100 ]] ; then - echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2 - return - fi - done - } - - local mysqld_binary="${EROOT}/usr/sbin/mysqld" - if [[ ! -x "${mysqld_binary}" ]] ; then - die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local mysql_binary="${EROOT}/usr/bin/mysql" - if [[ ! -x "${mysql_binary}" ]] ; then - die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" - fi - - local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" - if [[ ! -x "${my_print_defaults_binary}" ]] ; then - die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" - fi - - if [[ -z "${MYSQL_USER}" ]] ; then - MYSQL_USER=mysql - if use prefix ; then - MYSQL_USER=$(id -u -n 2>/dev/null) - if [[ -z "${MYSQL_USER}" ]] ; then - die "Failed to determine current username!" - fi - fi - fi - - if [[ -z "${MYSQL_GROUP}" ]] ; then - MYSQL_GROUP=mysql - if use prefix ; then - MYSQL_GROUP=$(id -g -n 2>/dev/null) - if [[ -z "${MYSQL_GROUP}" ]] ; then - die "Failed to determine current user groupname!" - fi - fi - fi - - # my_print_defaults needs to read stuff in $HOME/.my.cnf - local -x HOME="${EROOT}/root" - - # Make sure the vars are correctly initialized - mysql_init_vars - - # Read currently set data directory - MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - - # Bug #213475 - MySQL _will_ object strenously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if [[ -z "${MY_DATADIR}" ]] ; then - die "Sorry, unable to find MY_DATADIR!" - elif [[ -d "${MY_DATADIR}/mysql" ]] ; then - ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!" - ewarn "Please rename or delete its content if you wish to initialize a new data directory." - die "${PN} data directory at '${MY_DATADIR}' looks already initialized!" - fi - - MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_TMPDIR=${MYSQL_TMPDIR%/} - # These are dir+prefix - MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*} - MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" - MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*} - - # Create missing directories. - # Always check if mysql user can write to directory even if we just - # created directory because a parent directory might be not - # accessible for that user. - PID_DIR="${EROOT}/run/mysqld" - if [[ ! -d "${PID_DIR}" ]] ; then - einfo "Creating ${PN} PID directory '${PID_DIR}' ..." - install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \ - || die "Failed to create PID directory '${PID_DIR}'!" - fi - - local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_pid_dir_testfile}" ]] \ - && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_pid_dir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!" - else - rm "${_pid_dir_testfile}" || die - unset _pid_dir_testfile - fi - - if [[ ! -d "${MY_DATADIR}" ]] ; then - einfo "Creating ${PN} data directory '${MY_DATADIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \ - || die "Failed to create ${PN} data directory '${MY_DATADIR}'!" - fi - - local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_datadir_testfile}" ]] \ - && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_datadir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!" - else - rm "${_my_datadir_testfile}" || die - unset _my_datadir_testfile - fi - - if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then - einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \ - || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!" - fi - - if [[ -z "${MYSQL_TMPDIR}" ]] ; then - MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")" - [[ -z "${MYSQL_TMPDIR}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!" - - mkdir "${MYSQL_TMPDIR}" || die - chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die - fi - - # Now we need to test MYSQL_TMPDIR... - local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_tmpdir_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_tmpdir_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!" - else - rm "${_my_tmpdir_testfile}" || die - unset _my_tmpdir_testfile - fi - - if [[ -n "${MYSQL_LOG_BIN}" && ! -d "${MYSQL_LOG_BIN}" ]] ; then - einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \ - || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'" - fi - - if [[ -n "${MYSQL_LOG_BIN}" ]] ; then - local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_logbin_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_logbin_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!" - else - rm "${_my_logbin_testfile}" || die - unset _my_logbin_testfile - fi - fi - - if [[ -n "${MYSQL_RELAY_LOG}" && ! -d "${MYSQL_RELAY_LOG}" ]] ; then - einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..." - install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \ - || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!" - fi - - if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then - local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")" - [[ -z "${_my_relaylog_testfile}" ]] \ - && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!" - - if use prefix ; then - touch "${_my_relaylog_testfile}" &>/dev/null - else - su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null - fi - - if [[ $? -ne 0 ]] ; then - die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!" - else - rm "${_my_relaylog_testfile}" || die - unset _my_relaylog_testfile - fi - fi - - local mysql_install_log="$(_mktemp_dry "${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log")" - if [[ -z "${mysql_install_log}" ]] ; then - die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log' failed!" - else - # make sure file is writable for MYSQL_USER... - touch "${mysql_install_log}" || die - chown ${MYSQL_USER} "${mysql_install_log}" || die - fi - - local mysqld_logfile="$(_mktemp_dry "${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log")" - if [[ -z "${mysqld_logfile}" ]] ; then - die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log' failed!" - else - # make sure file is writable for MYSQL_USER... - touch "${mysqld_logfile}" || die - chown ${MYSQL_USER} "${mysqld_logfile}" || die - fi - - echo "" - einfo "Detected settings:" - einfo "==================" - einfo "MySQL User:\t\t\t\t${MYSQL_USER}" - einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}" - einfo "MySQL DATA directory:\t\t${MY_DATADIR}" - einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}" - - if [[ -n "${MYSQL_LOG_BIN}" ]] ; then - einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}" - fi - - if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then - einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}" - fi - - einfo "PID DIR:\t\t\t\t${PID_DIR}" - einfo "Install db log:\t\t\t${mysql_install_log}" - einfo "Install server log:\t\t\t${mysqld_logfile}" - - local -a config_files - - local config_file="${EROOT}/etc/mysql/mysql.d/50-distro-client.cnf" - if [[ -f "${config_file}" ]] ; then - config_files+=( "${config_file}" ) - else - ewarn "Client configuration '${config_file}' not found." - ewarn "Skipping configuration of default authentication plugin for client ..." - fi - - config_file="${EROOT}/etc/mysql/mysql.d/50-distro-server.cnf" - if [[ -f "${config_file}" ]] ; then - config_files+=( "${config_file}" ) - else - ewarn "Server configuration '${config_file}' not found" - ewarn "Skipping configuration of default authentication plugin for mysqld ..." - fi - - if [[ ${#config_files[@]} -gt 0 ]] ; then - if [[ -z "${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" ]] ; then - local user_answer - - echo - einfo "Please select default authentication plugin (enter number or plugin name):" - einfo "1) caching_sha2_password [MySQL 8.0 default]" - einfo "2) mysql_native_password [MySQL 5.7 default]" - einfo - einfo "For details see:" - einfo "https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password" - read -p " >" user_answer - echo - - case "${user_answer}" in - 1|caching_sha2_password) - MYSQL_DEFAULT_AUTHENTICATION_PLUGIN=caching_sha2_password - ;; - 2|mysql_native_password) - MYSQL_DEFAULT_AUTHENTICATION_PLUGIN=mysql_native_password - ;; - '') - die "No authentication plugin selected!" - ;; - *) - die "Authentication plugin '${user_answer}' is unknown/unsupported!" - ;; - esac - - echo "Selected authentication plugin: ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" >> "${mysql_install_log}" - - unset user_answer - fi - - local cfg_option cfg_option_tabs cfg_section - for config_file in "${config_files[@]}" ; do - cfg_option="default-authentication-plugin" - cfg_section="mysqld" - cfg_option_tabs="\t\t" - if [[ "${config_file}" == *client.cnf ]] ; then - cfg_option="default-auth" - cfg_section="client" - cfg_option_tabs="\t\t\t\t" - fi - - if grep -qE "^(loose-)?${cfg_option}\b.*=" "${config_file}" 2>/dev/null ; then - einfo "Ensuring that ${cfg_option} is set to '${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}' in '${config_file}' ..." - sed -i \ - -e "s/^\(loose-\)\?${cfg_option}\b.*=.*/loose-${cfg_option}${cfg_option_tabs}= ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}/" \ - "${config_file}" || die "Failed to change ${cfg_option} in '${config_file}'!" - else - einfo "Setting ${cfg_option} to '${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}' in '${config_file}' ..." - sed -i \ - -e "/^\[${cfg_section}\]$/a loose-${cfg_option}${cfg_option_tabs}= ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" \ - "${config_file}" || die "Failed to add ${cfg_option} to '${config_file}'!" - fi - done - unset cfg_option cfg_option_tabs cfg_section - fi - unset config_files config_file - - echo - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local tmp_mysqld_password_source= - - for tmp_mysqld_password_source in mysql client ; do - einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" - if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then - if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then - ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character!" - ewarn "(Do you have multiple password options set?)" - MYSQL_ROOT_PASSWORD= - continue - fi - - einfo "Found password in '${tmp_mysqld_password_source}' section!" - break - fi - done - - # Sometimes --show is required to display passwords in some implementations of my_print_defaults - if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" - fi - - unset tmp_mysqld_password_source - fi - - if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then - local pwd1="a" - local pwd2="b" - - echo - einfo "No password for mysql 'root' user was specified via environment" - einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config" - einfo "file like '${HOME}/.my.cnf'." - einfo "To continue please provide a password for the mysql 'root' user" - einfo "now on console:" - ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!" - read -rsp " >" pwd1 ; echo - - einfo "Retype the password" - read -rsp " >" pwd2 ; echo - - if [[ "x$pwd1" != "x$pwd2" ]] ; then - die "Passwords are not the same!" - fi - - MYSQL_ROOT_PASSWORD="${pwd1}" - unset pwd1 pwd2 - - echo - fi - - local -a mysqld_options - - # Fix bug 446200. Don't reference host my.cnf, needs to come first, - # see http://bugs.mysql.com/bug.php?id=31312 - use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" ) - - # Figure out which options we need to disable to do the setup - local helpfile="${TMPDIR}/mysqld-help" - "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null - - local opt optexp optfull - for opt in host-cache name-resolve networking slave-start \ - federated ssl log-bin relay-log slow-query-log external-locking \ - log-slave-updates \ - ; do - optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}" - grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" ) - done - - # Prepare timezones, see - # https://dev.mysql.com/doc/mysql/en/time-zone-support.html - local tz_sql="$(_mktemp_dry "${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql")" - [[ -z "${tz_sql}" ]] \ - && die "_mktemp_dry() for '${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql' failed!" - - echo "USE mysql;" >"${tz_sql}" - "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null - if [[ $? -ne 0 ]] ; then - die "mysql_tzinfo_to_sql failed!" - fi - - # --initialize-insecure will not set root password - # --initialize would set a random one in the log which we don't need as we set it ourselves - local cmd=( - "${mysqld_binary}" - "${mysqld_options[@]}" - "--initialize-insecure" - "--init-file='${tz_sql}'" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - "--log-error='${mysql_install_log}'" - "--user=${MYSQL_USER}" - ) - - einfo "Initializing ${PN} data directory: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1 - - if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql.ibd" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2 - die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!" - fi - - rm "${tz_sql}" || die - - local x=${RANDOM} - local socket="${EROOT}${PID_DIR}/mysqld${x}.sock" - local pidfile="${EROOT}${PID_DIR}/mysqld${x}.pid" - unset x - - cmd=( - "${mysqld_binary}" - "${mysqld_options[@]}" - "--basedir='${EROOT}/usr'" - "--datadir='${MY_DATADIR}'" - "--tmpdir='${MYSQL_TMPDIR}'" - --max_allowed_packet=8M - --net_buffer_length=16K - "--socket='${socket}'" - "--pid-file='${pidfile}'" - "--log-error='${mysqld_logfile}'" - "--user=${MYSQL_USER}" - ) - - einfo "Starting mysqld to finalize initialization: ${cmd[@]}" - eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 & - - echo -n "Waiting for mysqld to accept connections " - local maxtry=15 - while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - if [[ -S "${socket}" ]] ; then - # Even with a socket we don't know if mysqld will abort - # start due to an error so just wait a little bit more... - maxtry=5 - while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - fi - - echo - - if [[ ! -S "${socket}" ]] ; then - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2 - die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!" - fi - - local mysql_logfile="${TMPDIR}/set_root_pw.log" - touch "${mysql_logfile}" || die - - ebegin "Setting root password" - # Do this from memory, as we don't want clear text passwords in temp files - local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'" - cmd=( - "${mysql_binary}" - --no-defaults - "--socket='${socket}'" - -hlocalhost - "-e \"${sql}\"" - ) - eval "${cmd[@]}" >"${mysql_logfile}" 2>&1 - local rc=$? - eend ${rc} - - if [[ ${rc} -ne 0 ]] ; then - # Poor man's solution which tries to avoid having password - # in log. NOTE: sed can fail if user didn't follow advice - # and included character which will require escaping... - sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null - - grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}" - die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!" - fi - - # Stop the server - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - echo -n "Stopping the server " - pkill -F "${pidfile}" &>/dev/null - - maxtry=10 - while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do - maxtry=$((${maxtry}-1)) - echo -n "." - sleep 1 - done - - echo - - if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then - # We somehow failed to stop server. - # However, not a fatal error. Just warn the user. - ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!" - fi - fi - - einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!" -} diff --git a/dev-db/mysql/mysql-8.4.9.ebuild b/dev-db/mysql/mysql-8.4.11.ebuild index aa51713f1086..30b1f165a098 100644 --- a/dev-db/mysql/mysql-8.4.9.ebuild +++ b/dev-db/mysql/mysql-8.4.11.ebuild @@ -497,6 +497,8 @@ src_test() { "sys_vars.build_id_basic;0;build_id disabled in build" + "main.keyring_migration_password;0;Known test failure -- no upstream bug yet" + "innodb.alter_kill;0;Known test failure -- no upstream bug yet" "main.all_persisted_variables;0;Known failure - no upstream bug yet" "perfschema.idx_compare_mutex_instances;0;Known failure - no upstream bug yet" diff --git a/dev-db/redis/redis-8.2.6.ebuild b/dev-db/redis/redis-8.2.6.ebuild index 07ce8297931a..099153dc15fa 100644 --- a/dev-db/redis/redis-8.2.6.ebuild +++ b/dev-db/redis/redis-8.2.6.ebuild @@ -20,7 +20,7 @@ SRC_URI=" LICENSE="|| ( AGPL-3 RSAL-2 SSPL-1 ) Boost-1.0 MIT" SLOT="0/$(ver_cut 1-2)" -KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="jemalloc selinux ssl systemd tcmalloc test" RESTRICT="!test? ( test )" diff --git a/dev-debug/gfxreconstruct/Manifest b/dev-debug/gfxreconstruct/Manifest index f77dfb365607..65083be147a8 100644 --- a/dev-debug/gfxreconstruct/Manifest +++ b/dev-debug/gfxreconstruct/Manifest @@ -1,6 +1,4 @@ -DIST SPIRV-Reflect-1.4.341.0.tar.gz 348384 BLAKE2B 1fc461f02a3e35b610cae0b2e41cfc8b0938a13d5c1fe62d2e3a53d3822cf7bc94d3d3a5cda3ba3707ecc9aa34415b351f1ac25f92922e63378a2822e766fb68 SHA512 ee8abc9958af8887300eece7dbcf11ed4bf79d9ee281318e6794f093a988438736e0da642d61b975912475cc3a0b13fe8cd17d3a6b0fcfff653c9831f5d86ba0 DIST SPIRV-Reflect-1.4.350.0.tar.gz 350953 BLAKE2B d99bdea2e976ed6c5818db12528142461eac143045fbf47e9cc6c3baf5250fad000d2cd562258335eb9624e43a171412badfb7fc8916e40976432e254e77f818 SHA512 7c7c281bc89d5d50d10dd47ca4afcaddb649a584743eeb8b16eb530ed8208c8ce6e6279ab47e215249aa82328d61684c3ff5cb59f4f057bd71df84c0576a3216 DIST SPIRV-Reflect-1.4.357.0.tar.gz 378812 BLAKE2B 3a53577b7da8894c60e53b41ba768887c58ba18837c9926e827110178d078543704293dccd1106c8dfaec2fb9400132c47ea11bcb4e981315cce493528fbda0f SHA512 89b8a0363df801aaeac7e01a1af66ef6806c7ef5600a920306ffd3c11f1a089ad01de8bb5a1b186bb9f0c082d5580e8c7fcea185b57e38f18f079f1ccb3940bb -DIST gfxreconstruct-1.4.341.0.tar.gz 50763927 BLAKE2B b532535012088bb043f1098886bd30ce1e3345515e217a77a05229f98b36678703ed9773169cf7cfa0f09f4694635c69532127df86649cd3e19daa2b6768ec4f SHA512 0efb51431b8ae40e723d06ff3ab6a2505094dc88104a0f2da42f4c1e301dbdd929398e7183a996b7b31854f45506ea636cec40f9fa883aafbe8d8b0b493716aa DIST gfxreconstruct-1.4.350.0.tar.gz 61924016 BLAKE2B 37addb3f4ae5581dd642f248b988040e4531b6c2839eee34ead5bfbdc959488781381420d4925528f2b0f8e1c43668ade48e17f963fced29df50882536359674 SHA512 f84979ccbf5dcd5402a6453fd23e36dec43368cd62f4d5e2ca1182e9654cd52906cfd2e38c12d1f23ef11e4b6d349b682de765f5d5df8f27ddd01e2fcd558ca2 DIST gfxreconstruct-1.4.357.0.tar.gz 62090009 BLAKE2B 767d56f2377e9e2b6bf61672f1ad7ceccabbe84c07033e8f81d4840b4de076bd73c29dd9392dfe335e9d0cdf777430cfe50f7b7eb129d76e583402a60e329133 SHA512 7bf26de32234ad6e238783d98ba8043d97502a0c5f50317160ed1e22f6f23841360461e9c16eb084dec7ef37699af41330653f636e131396388327a3e68f1f75 diff --git a/dev-debug/gfxreconstruct/gfxreconstruct-1.4.341.0.ebuild b/dev-debug/gfxreconstruct/gfxreconstruct-1.4.341.0.ebuild deleted file mode 100644 index b7c2088db688..000000000000 --- a/dev-debug/gfxreconstruct/gfxreconstruct-1.4.341.0.ebuild +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="https://github.com/LunarG/gfxreconstruct.git" - EGIT_SUBMODULES=( external/{Vulkan-Headers,SPIRV-Headers,SPIRV-Reflect} ) - inherit git-r3 -else - SRC_URI=" - https://github.com/LunarG/${PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz - https://github.com/KhronosGroup/SPIRV-Reflect/archive/vulkan-sdk-${PV}.tar.gz -> SPIRV-Reflect-${PV}.tar.gz - " - KEYWORDS="~amd64" - S="${WORKDIR}"/${PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Graphics API Capture and Replay Tools" -HOMEPAGE="https://github.com/LunarG/gfxreconstruct" - -LICENSE="MIT" -SLOT="0" -IUSE="wayland X" - -RDEPEND=" - app-arch/lz4:= - app-arch/zstd:= - virtual/zlib:= - - media-libs/vulkan-loader[wayland?,X?] - wayland? ( dev-libs/wayland ) - X? ( - x11-libs/libX11 - x11-libs/libxcb - x11-libs/xcb-util-keysyms - ) -" -DEPEND="${RDEPEND} - X? ( x11-libs/libXrandr ) -" -if [[ ${PV} != 9999* ]]; then - DEPEND+=" - ~dev-util/spirv-headers-${PV} - ~dev-util/vulkan-headers-${PV} - " - PATCHES=( - "${FILESDIR}"/1.3.313.0-use-system-vulkan.patch - ) -fi - -src_unpack() { - if [[ ${PV} == 9999* ]]; then - git-r3_src_unpack - else - default - rmdir "${S}"/external/SPIRV-Reflect || die - mv "${WORKDIR}"/SPIRV-Reflect-vulkan-sdk-${PV} "${S}"/external/SPIRV-Reflect || die - fi -} - -src_configure() { - local mycmakeargs=( - -DCMAKE_SKIP_RPATH=ON - -DBUILD_WERROR=OFF - -DBUILD_WSI_DISPLAY_SUPPORT=ON - -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) - -DBUILD_WSI_XCB_SUPPORT=$(usex X) - -DBUILD_WSI_XLIB_SUPPORT=$(usex X) - -DGFXRECON_ENABLE_OPENXR=OFF - ) - cmake_src_configure -} diff --git a/dev-dotnet/csharp-language-server/Manifest b/dev-dotnet/csharp-language-server/Manifest index ec4011c6ce5d..ec76e6a7db45 100644 --- a/dev-dotnet/csharp-language-server/Manifest +++ b/dev-dotnet/csharp-language-server/Manifest @@ -3,6 +3,7 @@ DIST castle.core.5.2.1.nupkg 813789 BLAKE2B cad569d1d7e6744a72c1c5de92277be018a5 DIST coverlet.collector.6.0.4.nupkg 2243960 BLAKE2B 93e9e1adbcaa34baedb68d37659115af044210ce828a0e112de9075c89d55f22e0d0c8ef8d0bb8991460e763075c6aa63feb3095f25d67024b50948a6b7c45a3 SHA512 a0abce1ef08dc1267cbe07de8d8bc69a32a3559ea9cd55de1ea340bad1397364c305b304e1a8a718e41549e0e64123ee706fb38ca23eab3f959928b94193e939 DIST csharp-language-server-0.25.0.gh.tar.gz 433081 BLAKE2B c555d48f9da72cf0dc1b0d4a169b896b46c06159a9595d2ac7779f57af5e4557ba2b9fbe18129cbb0bf04031e1e191eba835196bf3f12752de9e0fcedd593f8a SHA512 6085a89f8ff41e78de3920eefca4e9b3a041ad3b237c44b9e85c5625c28e811f07c645acce897659fbcd9de4fe331c036b8e2b636062550edbcf655c61c7cf54 DIST csharp-language-server-0.27.0.gh.tar.gz 521377 BLAKE2B 0b306a7092bf8cd315b8b173cae6dd2343bfb1525ee8b4792915893e60595a007b9411463b4a84ed56b1c866f82a053abd3cc93e9eb4c65d25fc4e2d66ec9e2e SHA512 121dc73fbcb2c615a7fb69a44429fa563c0ef7b6ba2136d257bda326b403f207f13795dace4b95f05c985adccc50e90c015c3c443db9f19360ca22b9046954d9 +DIST csharp-language-server-0.28.0.gh.tar.gz 549111 BLAKE2B aa67a46b046e1bdb5faa2d7053e5b8429403c959905127a70a4eb25f2573d1444b8e0824e3c72e05620ec11e88f3086bc082056635a7ad52a478757aaf337404 SHA512 69945c1ae512847ba7cb0708cffedc9d417114da027f965f74c938aa06eb8c490d5a75a19215808fbbff69dc1d6803f8570e95e4e9a6b21bd6dcb246f20ba941 DIST dotnet.reproduciblebuilds.1.2.25.nupkg 33929 BLAKE2B cd2552306f976a4cc933b0ee6d06cf7a29f808acd55367c87d8a18ff2e5fd499e077b73b28940beddf7b7a3f2dc3636ec9112e7c9e0ba205a344e56ac1cb2c0f SHA512 70569b6b64ad93b0a078263ab4b40769e7358814bff3516738518f1ed91effdfc24ab26ad25ad39e69a598092ef069bf7ad71bd585b432b758d0b552521ca680 DIST fsharp.control.asyncseq.3.2.1.nupkg 283335 BLAKE2B 0e776883ca9e1001c02a221a2be0864d2d0021d4300e4b18d2dc43091dd507b43a0b5c5ecf9b244c4abf0d0806f9749c4659219f6596bf269b5bc38de533797f SHA512 a15e17c7530c3aaa67640a27d746e137f252523c2e73f1f8857ab648cec85a299f821939c8af396a5662a951f89a899f1812a9aff46c0557e00aba9b9a46b126 DIST fsharp.core.10.0.101.nupkg 3049965 BLAKE2B 76c66cacac2cafd6ca6cc723f5f55f668a898bc6c22ae20536e119627f30e7b971137f5e8c1ccc68830cfcdfb10ba6ae19f7337b413f19a809e9f59871583862 SHA512 d1f2315b5e2efa904e6dc05d9b80fa3c587ac0d6ac03662752465fb1bf266cad04525f04c2fe914c1d60fa678df3a1cacd060d229099a0da08e5ff734f4e40e0 diff --git a/dev-dotnet/csharp-language-server/csharp-language-server-0.28.0.ebuild b/dev-dotnet/csharp-language-server/csharp-language-server-0.28.0.ebuild new file mode 100644 index 000000000000..3d1d81921b7b --- /dev/null +++ b/dev-dotnet/csharp-language-server/csharp-language-server-0.28.0.ebuild @@ -0,0 +1,139 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DOTNET_PKG_COMPAT="10.0" +NUGETS=" +argu@6.2.5 +castle.core@5.2.1 +coverlet.collector@6.0.4 +dotnet.reproduciblebuilds@1.2.25 +fsharp.control.asyncseq@3.2.1 +fsharp.core@10.0.101 +humanizer.core@2.14.1 +icsharpcode.decompiler@9.1.0.7988 +ionide.keepachangelog.tasks@0.1.8 +microsoft.applicationinsights@2.23.0 +microsoft.bcl.asyncinterfaces@10.0.1 +microsoft.bcl.asyncinterfaces@10.0.8 +microsoft.bcl.asyncinterfaces@5.0.0 +microsoft.build.framework@18.7.1 +microsoft.build.locator@1.10.12 +microsoft.build@18.7.1 +microsoft.codeanalysis.analyzers@5.9.0-1.26328.17 +microsoft.codeanalysis.common@5.9.0 +microsoft.codeanalysis.csharp.features@5.9.0 +microsoft.codeanalysis.csharp.workspaces@5.9.0 +microsoft.codeanalysis.csharp@5.9.0 +microsoft.codeanalysis.elfie@1.0.0 +microsoft.codeanalysis.features@5.9.0 +microsoft.codeanalysis.scripting.common@5.9.0 +microsoft.codeanalysis.visualbasic.workspaces@5.9.0 +microsoft.codeanalysis.visualbasic@5.9.0 +microsoft.codeanalysis.workspaces.common@5.9.0 +microsoft.codeanalysis.workspaces.msbuild@5.9.0 +microsoft.codeanalysis@5.9.0 +microsoft.codecoverage@17.14.1 +microsoft.diasymreader@2.0.0 +microsoft.extensions.caching.abstractions@10.0.9 +microsoft.extensions.caching.memory@10.0.9 +microsoft.extensions.configuration.abstractions@10.0.9 +microsoft.extensions.configuration.binder@10.0.9 +microsoft.extensions.configuration@10.0.9 +microsoft.extensions.dependencyinjection.abstractions@10.0.9 +microsoft.extensions.dependencyinjection@10.0.1 +microsoft.extensions.dependencyinjection@10.0.9 +microsoft.extensions.dependencymodel@8.0.2 +microsoft.extensions.logging.abstractions@10.0.1 +microsoft.extensions.logging.abstractions@10.0.9 +microsoft.extensions.logging.configuration@10.0.9 +microsoft.extensions.logging.console@10.0.9 +microsoft.extensions.logging@10.0.9 +microsoft.extensions.options.configurationextensions@10.0.9 +microsoft.extensions.options@10.0.1 +microsoft.extensions.options@10.0.9 +microsoft.extensions.primitives@10.0.1 +microsoft.extensions.primitives@10.0.9 +microsoft.net.stringtools@18.7.1 +microsoft.net.test.sdk@17.14.1 +microsoft.netcore.platforms@1.1.0 +microsoft.testing.extensions.telemetry@2.1.0 +microsoft.testing.extensions.trxreport.abstractions@2.1.0 +microsoft.testing.extensions.vstestbridge@2.1.0 +microsoft.testing.platform.msbuild@2.1.0 +microsoft.testing.platform@2.1.0 +microsoft.testplatform.objectmodel@17.14.1 +microsoft.testplatform.objectmodel@18.0.1 +microsoft.testplatform.testhost@17.14.1 +microsoft.visualstudio.solutionpersistence@1.0.52 +netstandard.library@2.0.3 +newtonsoft.json@13.0.4 +nuget.frameworks@6.14.0 +nunit3testadapter@6.2.0 +nunit@4.6.1 +system.buffers@4.6.1 +system.composition.attributedmodel@10.0.1 +system.composition.convention@10.0.1 +system.composition.hosting@10.0.1 +system.composition.runtime@10.0.1 +system.composition.typedparts@10.0.1 +system.composition@10.0.1 +system.configuration.configurationmanager@10.0.1 +system.configuration.configurationmanager@10.0.4 +system.configuration.configurationmanager@4.4.0 +system.configuration.configurationmanager@4.5.0 +system.data.datasetextensions@4.5.0 +system.diagnostics.eventlog@10.0.1 +system.diagnostics.eventlog@10.0.4 +system.diagnostics.eventlog@6.0.0 +system.io.pipelines@10.0.8 +system.memory@4.6.3 +system.numerics.vectors@4.6.1 +system.reflection.metadataloadcontext@10.0.4 +system.runtime.compilerservices.unsafe@6.1.2 +system.security.cryptography.protecteddata@10.0.1 +system.security.cryptography.protecteddata@10.0.4 +system.security.cryptography.protecteddata@4.4.0 +system.text.encodings.web@10.0.8 +system.text.json@10.0.8 +system.threading.tasks.extensions@4.6.3 +" + +inherit dotnet-pkg + +DESCRIPTION="Roslyn-based LSP language server for C#" +HOMEPAGE="https://github.com/razzmatazz/csharp-language-server/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/razzmatazz/${PN}" +else + SRC_URI="https://github.com/razzmatazz/${PN}/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz" + KEYWORDS="~amd64" +fi + +SRC_URI+=" ${NUGET_URIS} " +LICENSE="MIT" +SLOT="0" +# Tests hang. Also they spin up a web server so maybe that's part of the problem. +RESTRICT="test" + +DOTNET_PKG_PROJECTS=( src/CSharpLanguageServer ) +DOTNET_PKG_BAD_PROJECTS=( tests/CSharpLanguageServer.Tests ) +DOCS=( CHANGELOG.md README.md ) + +src_unpack() { + dotnet-pkg_src_unpack + + if [[ -n "${EGIT_REPO_URI}" ]] ; then + git-r3_src_unpack + fi +} + +src_install() { + dotnet-pkg-base_install + dotnet-pkg-base_dolauncher "/usr/share/${P}/CSharpLanguageServer" csharp-ls + einstalldocs +} diff --git a/dev-embedded/esptool/Manifest b/dev-embedded/esptool/Manifest index 77a949acd885..d20218607c57 100644 --- a/dev-embedded/esptool/Manifest +++ b/dev-embedded/esptool/Manifest @@ -2,3 +2,4 @@ DIST esptool-4.10.0.tar.gz 5961194 BLAKE2B 153d57ec90dee53a237dcdf694e6add85d380 DIST esptool-4.12.0.tar.gz 6013292 BLAKE2B 49a6abc7fd6fec84ba3ec08087f7fbf6a27f2adf16fc6b1dffef8ece09b04f84bf128ecbece1cc0f2fde819bb5033d856c282fee40dcd5791bc5054302c28954 SHA512 af8ccb2abdbb0671ff475e61070dd2e18ea676391449ea1333aa60377b5267bb11297d71319dba32712006a7dbeccdebbdea3cd178a670a0e90d2ba7b0481322 DIST esptool-5.3.0.tar.gz 6106512 BLAKE2B bf831cc2b91675dc0bf83eb2042ad86bcfbe36d8fbd8c39c4c855413b157283d31c77b6c84ab4cc262d688cbbe77da109977e5213e32d5d9d05eb7c6aeac8be0 SHA512 b7c357c73f0fe7c24636bdf0752ec4fb9352a2e2fe5021e62d716f6fdee09e5e49780901275dcba7c408d7ebcfe03a4fa8c6b8ca0bf2376988788cc2756e8bbb DIST esptool-5.3.1.tar.gz 6108667 BLAKE2B 458fd7b5b750ebdcfcce9e2fee3d7f23ba5b8392b7478475a31b33f3dd2ffa88bcaf50cda3aee5ae323ec29f5b1f8cc979c5559195e76e006ef9b64fbdbdf7d9 SHA512 55ffd439b6a2f938c7459d1c570ce2d97518b49626166909d6f8d628bb5a0c0f9352585404e36cc774778348380afeff7f336f86ced80752a5bef30dfd866165 +DIST esptool-5.4.0.tar.gz 6168116 BLAKE2B 830a9906fec992ec6b16a6396b0c2f796b1430b478100266f0826a038846565b75a7d395d8571213cd6893e4c6c9368af4682b589cfcf7e4e21b020bdb9bb5a1 SHA512 5c19af9c1052596d262436586834f3dbc78909dd50db0afa0307e935b16e6e278f5795d236d480943646b41d677c09f307e7df6d82ddceaa5e49401b287414d2 diff --git a/dev-embedded/esptool/esptool-5.4.0.ebuild b/dev-embedded/esptool/esptool-5.4.0.ebuild new file mode 100644 index 000000000000..b4ae1df03df0 --- /dev/null +++ b/dev-embedded/esptool/esptool-5.4.0.ebuild @@ -0,0 +1,77 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..15} ) +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_SINGLE_IMPL=1 + +inherit distutils-r1 eapi9-ver + +DESCRIPTION="Serial utility for flashing and interacting with Espressif ESP8266 and ESP32" +HOMEPAGE="https://github.com/espressif/esptool" +SRC_URI="https://github.com/espressif/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + $(python_gen_cond_dep ' + dev-python/bitstring[${PYTHON_USEDEP}] + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/esp-pylib[${PYTHON_USEDEP}] + dev-python/intelhex[${PYTHON_USEDEP}] + dev-python/pyserial[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/reedsolo[${PYTHON_USEDEP}] + dev-python/rich-click[${PYTHON_USEDEP}] + ') +" +BDEPEND=" + $(python_gen_cond_dep ' + dev-python/wheel[${PYTHON_USEDEP}] + test? ( + dev-python/pyelftools[${PYTHON_USEDEP}] + ) + ') +" + +EPYTEST_PLUGINS=( ) +EPYTEST_DESELECT=( + # need real hardware connected + test/test_esptool.py + # need network + test/test_uf2_ids.py +) +distutils_enable_tests pytest + +src_prepare() { + default + + # test_espsecure_hsm.py needs setup of a "Soft HSM" or real hardware. remove. + rm test/test_espsecure_hsm.py || die +} + +pkg_postinst() { + if ver_replacing -lt 4; then + ewarn "${P} - new 4.x release with breaking changes:" + ewarn " - Public API has been defined by limiting access to internals that have been refactored into multiple source files" + ewarn " - If active security features are detected, the default behavior changes to prevent unintentional bricking" + ewarn " - Flash parameters in an image header can now be changed only when no SHA256 digest is appended" + ewarn " - The ESP8684 alias has been removed, ESP32-C2 has to be used" + ewarn " - Megabit flash sizes have been deprecated, use megabyte units from now on" + fi + if ver_replacing -lt 5; then + ewarn "${P} - new 5.x release with breaking changes:" + ewarn " - The .py suffix is deprecated for the following scripts:" + ewarn " - esptool" + ewarn " - espefuse" + ewarn " - espsecure" + ewarn " - esp_rfc2217_server" + ewarn " - execute-scripts command is removed" + ewarn "" + ewarn "The official announcement of the changes can be found here: https://developer.espressif.com/blog/2025/04/esptool-v5/" + fi +} diff --git a/dev-java/easymock/Manifest b/dev-java/easymock/Manifest index 411a08b9d5eb..b47066b31687 100644 --- a/dev-java/easymock/Manifest +++ b/dev-java/easymock/Manifest @@ -2,3 +2,4 @@ DIST dexmaker-1.5.jar 703669 BLAKE2B fec6e8b6bf34473479e80af389509f7f69330b9fe2e DIST easymock-2.5.2.tar.gz 100112 BLAKE2B 2952aad1a88b169413152e8fa63eaba85767d93ccd8535e309cb647b90ad86695da59c394d1199abfb6f1c624913b2546f326ae5a68092261968d734d2018c5c SHA512 0343815f74258739ac60e1ef2fe72a0e9ce0e1b6ecd4f14d657d7da2a10523e24df5160533b0d75e87ffa0322a3477ec6823b257fe5968929d55dee9dfa68267 DIST easymock-3.3.1.tar.gz 624460 BLAKE2B bb5a472aef6c162d3afe5b66edef4891cc48fe6698c1f1eccc7f45f1883ff7f940b0479af5c0dd61b3354b41225ca50f191ba54b92479362a0074ddf3dbb5b43 SHA512 93fefd458a42b6c13d85ab1df768bf906620f052eea88116e93578374a5086eb8b27d8731e82b689dc3d73699e45d03b718c7d8bf2a430ac4a6a717365e52a9a DIST easymock-5.6.0.tar.gz 843206 BLAKE2B 62bbd74b89eec118a724665e854429c36cccac84d2e24ad42e09fac9d1028dcfdfa3d1076c19dece969b17ea70396ae762cc2b690a458987033db1bc39d25b0c SHA512 8df6be9fd352207cacdc65de1e804ebc3c6d6ee0d7d3a39ca8ede873fdb13962c7131d98d5e298483030239dc4fc45da6f415433a349b29088b93ba6d3a3f04f +DIST easymock-5.7.0.tar.gz 1213408 BLAKE2B ded55d95a3fb7473b9b0c72fded5b5ec2ca0dc5c3109ae5fd952beca4ab14e7ce87e8fcac806a2ccff6d2ecdf39ca1480db5162c68d03eb18a42d61bafb9ea44 SHA512 d72dc0d8795f537f1112d3d6fc7fbb8bb9eba945b6d101e792bc4b657e38e10db2b9e6ef31b3ec799c01f38fc8886500554769506246a7f387285304fced59c3 diff --git a/dev-java/easymock/easymock-5.7.0.ebuild b/dev-java/easymock/easymock-5.7.0.ebuild new file mode 100644 index 000000000000..56ad49e5ba36 --- /dev/null +++ b/dev-java/easymock/easymock-5.7.0.ebuild @@ -0,0 +1,53 @@ +# 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-jupiter" + +inherit java-pkg-2 java-pkg-simple junit5 + +DESCRIPTION="Mock Objects for interfaces in JUnit tests by generating them on the fly" +HOMEPAGE="https://easymock.org/" +DMV="1.5" # dexmaker isn't yet packaged +SRC_URI="https://github.com/${PN}/${PN}/archive/${P}.tar.gz + https://repo1.maven.org/maven2/org/droidparts/dexmaker/dexmaker/${DMV}/dexmaker-${DMV}.jar" +S="${WORKDIR}/${PN}-${P}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64" + +DEPEND=" + >=dev-java/byte-buddy-1.18.10:0 + dev-java/junit:4 + dev-java/junit:5 + dev-java/objenesis:0 + >=virtual/jdk-1.8:* + test? ( + >=dev-java/asm-9.10.1:0 + ) +" + +RDEPEND=">=virtual/jre-1.8:*" + +JAVA_CLASSPATH_EXTRA="byte-buddy junit-4 junit-5 objenesis" +JAVA_GENTOO_CLASSPATH_EXTRA="${DISTDIR}/dexmaker-${DMV}.jar" + +# EasyMockListener needs testng for compilation and +# seems to be needed only for running with testng +JAVA_SRC_DIR=( core/src/main/java ! -name 'EasyMockListener.java' ) +JAVA_TEST_GENTOO_CLASSPATH="asm byte-buddy junit-5" +JAVA_TEST_SRC_DIR="core/src/test/java" + +src_prepare() { + java-pkg-2_src_prepare + mkdir -p core/src/test/java/org/tests || die + mv core/src/test/java/org/{easymock/,}tests/ReifiedMockSupportTest.java || die +} + +src_install() { + JAVA_SRC_DIR=( core/src/main/java ) + java-pkg-simple_src_install +} diff --git a/dev-java/openjdk-bin/Manifest b/dev-java/openjdk-bin/Manifest index 8313cafa1785..419ffa4ff2dc 100644 --- a/dev-java/openjdk-bin/Manifest +++ b/dev-java/openjdk-bin/Manifest @@ -6,6 +6,14 @@ DIST OpenJDK-jdk_riscv64_linux_hotspot_28_13-ea.tar.gz 158619533 BLAKE2B 1da4807 DIST OpenJDK-jdk_x64_alpine-linux_hotspot_28_13-ea.tar.gz 159307771 BLAKE2B f8ddb6e0ac54138ac462cca691300bcab488f4a043c226fb211449624288397760ab4eacce978036964b5bec7d65309c2d19e318111dbef769935c7e20765942 SHA512 def77977aba36b80a0af4ee24fc586922a5ed1270897faa58ce726aa03a4d41b33e963f848f1a8e66f865cfde4f36b0de9c38575f798707997cc873f07c80616 DIST OpenJDK-jdk_x64_linux_hotspot_28_13-ea.tar.gz 160063418 BLAKE2B 4f0246a1719c4d5d60c78ad7c5ef3db198223abb2a748e1251434e442e44d74074adf73f8c7238e046124e4f7d1ec509cfbe69ad3a56414b6b9996a3b5fc3bd1 SHA512 cf8f0919fde2f7fd0f33f57b94c028351673a679eb5dd89666216a33591237a039bcc8b39df9e34aa0aab6342d142a4b668b0ae4d7ae4eac03dab81403fc573c DIST OpenJDK-jdk_x64_mac_hotspot_28_13-ea.tar.gz 120018128 BLAKE2B a9b801afd43ee47362c578983821cee7eb6a279aa0d1be7428c5ba147ceeebd3c0d5fa13bf6a7d2648cd4eae7626a92184a3eb7bc26b6668b5b5cccc14ce908c SHA512 8e756913f68d840a4c291844f01527bbd23af64a89675680da692c740e0db858944b175ddca93467142cbd0b9e6e2e4099c98c0775d45c4714aed33d87de44f0 +DIST OpenJDK-static-libs-glibc_aarch64_linux_hotspot_28_13-ea.tar.gz 4815373 BLAKE2B 8b10d76fdc96376365dbb689d11875b3f5b1069e53b14f821e069004a1b7b13b30a5ae7523b202c8034af8db210a7b9a7c19987770ca96fe9c99c510ce6a1ea7 SHA512 9d6195c701fb0384b2d58e6f06f2ab5a1b4a5ddbc4d994cf84c60bb49d4ea7d72c0ba05e7731a7b72b2a4d52572845ef933e04f6aab0601c597b672fe0352e97 +DIST OpenJDK-static-libs-glibc_ppc64le_linux_hotspot_28_13-ea.tar.gz 5686493 BLAKE2B b6b6f7d551efa98beba3c80b6f43b5383736d5334f69fb67f91c0cc43e4dedc6b3a7202f0f145d0711b2e3ab2ed5a98d53d40ced31320cc9103bcf7ecc6fe7dd SHA512 d35a9373f2c6b2cf149101cc8d2a1c1536b4f20ad58308681c7b41a34feb869f8a9439754e002386228a260ff64581c1e4e1c749ce2b4ec53407abf9c775608c +DIST OpenJDK-static-libs-glibc_riscv64_linux_hotspot_28_13-ea.tar.gz 6144718 BLAKE2B 493b3c6f5e41d295a5cd3bb942e30285fa63684371edf463465278184d55cf5b005709acbeba246c0d4f7ca04669d25678f303eb9607c0b4941ad6fc7e17978e SHA512 c819611aff13b1489a2384f895883fa4ba6fca8e3e482a419dc77e8e76ba20097ed5d0daee50ce08b1e55a6549e7d4daa2a0c8ba234130d555290bc3f3143b41 +DIST OpenJDK-static-libs-glibc_x64_linux_hotspot_28_13-ea.tar.gz 5233871 BLAKE2B a7210e7680e1cff5c2e85e2d7a9922d37ac7a969855abcca6e2508696ab55133e0be214806054ad13b77a2764a8635e0db4b4e85da4086ddd4c3a6c6732cfbd5 SHA512 2d84b6403333292cdb9dc31600aec2423f6e19009cbcc32cd2654b8e0f8c7bd17e41588dc4a7f9b4192730ca9f0a74779b770a29f1173aa55fdb2ab2312828a5 +DIST OpenJDK-static-libs-musl_aarch64_alpine-linux_hotspot_28_13-ea.tar.gz 3393090 BLAKE2B a5e3aacef81369bd63b6330dbb0c589ddcf533c90ebc7f8eb9d99a54693987bd4a9729873958f46a968c3d6ac5e78747f3b22ffa91777b0289e932c46020a9eb SHA512 46489f8dd0c66e8f85979d074fc0936089768e238fd5827b0bdf240102fafdcf1fdc8ab8b90c2d9bf4d9162d2a5b837fc5ba19ecb4370ea6b4eaf03ed7d59d3e +DIST OpenJDK-static-libs-musl_x64_alpine-linux_hotspot_28_13-ea.tar.gz 3819952 BLAKE2B b7df2b3b742c0a69b2aa2c17f9a700cf2484ddfe6d111892c3e23dbff79131616d20079742f7516141c3d73e4e3bdd6a0b4eb1016da4a6a97afdb8d1b1f50e8d SHA512 96ff760f3d2825ed987b13427a8fc04a5662e530e276a85f1c0ae85c8e355c6a8652cb6f50378802e9fdd2ffe43594144c00c3652b4476dd611938d6778f2b96 +DIST OpenJDK-static-libs_aarch64_mac_hotspot_28_13-ea.tar.gz 3932188 BLAKE2B 4c39d604750916a78cf30d7d7624b1d8511d8ed938a01c54eab249ff92379514640e3ec25448794925197b8d69529e88e27f5933c40616d3b1ba36a272e3a914 SHA512 7052175fea8a5154dde337e9c74a22f94dc0a297b4a76c825b966a438c0b478733749d62436622f0bac6d99e2fdc9fb35af91c95c714af9b2e56bc2149970632 +DIST OpenJDK-static-libs_x64_mac_hotspot_28_13-ea.tar.gz 4018435 BLAKE2B b9cadc678516c29bacf3254a08bc5f61253aabaeb94e882c034b99f0e27a2e56b81271b54fcd9869cabd63ae0ab82b5b663c8c91007d9c8a0ab4bcc571dc0f1e SHA512 f43ce65f3d701f28227ffaa48a2087369df9e6165c73029e66b3b28d1369ab446017e11ccea8bb4f3bbc65352cc2085ea8d12d45f5e1a8ac5102649a4092d9d4 DIST OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.32.1_1.tar.gz 192356586 BLAKE2B f719d79cc8a8e7ff1fe24c88c226baf18fde68bdb6197f4a8bcfe3aa280e3b2789b2d8698ac923675258c8918956a3aadfb51c0a57835ee355f81929b5bbfdef SHA512 35952f5a5389403f7d2a5f2e0f6b608ed6d785cf3479d26df855cbb75d762120cd9f0eecff27f6579883309bb65969e90871907abe8a763b35d2e0bc1443cf16 DIST OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.32_9.tar.gz 192338957 BLAKE2B 155b989d9a8cbe8a6339fd18ebae19a77d3d78814f934aae0321cc6407d6723cac7c09dbe3d745be09dbcbf8864fabcb42036057e25e0e0daf976b3d2b24ba1e SHA512 5b203e994c061d8a5b0f89a40da251579c22007ae0c46614e00423e82556c942d9586b2b7ee15cc4f6e435c4920bd2010b4ff6deb324f14a5b4eee5e452f341d DIST OpenJDK11U-jdk_arm_linux_hotspot_11.0.32.1_1.tar.gz 183207070 BLAKE2B 9ab581f937a4e8b709ec056e89c19b772de4b3112a99ca02a19db2c967aa4d8b030cbfcb87832cc0b9c1696c38d0336221adec921c633b91289b625041f42867 SHA512 efa043f9b5b9a8264b4ccf91a6ea09d3ff9ffb52819577dcfa2f1d46ed55398d857a42b9cdae17f228ef5e682c5ba78d0eba87847130480b8a860f747b461426 @@ -34,6 +42,14 @@ DIST OpenJDK17U-jdk_x64_linux_hotspot_17.0.20.1_1.tar.gz 193252603 BLAKE2B 25d90 DIST OpenJDK17U-jdk_x64_linux_hotspot_17.0.20_8.tar.gz 193273593 BLAKE2B 8d3bba7bdfc8b789bc0bfa740ce6b36ac2bfb7af9cf137a26e0866824a44b89f59145625cb50dd1bcd36b25aaa4d5515029494b762dc55aa01ab11b9c1bdbd8e SHA512 233399c52c36a51ef6f138adea4e6dcf2c1b623962e63e3b5bde8c96155292adadbf99f84970b051de8759135defa737db7e869b073c27f0ea636057782672b0 DIST OpenJDK17U-jdk_x64_mac_hotspot_17.0.20.1_1.tar.gz 180578248 BLAKE2B f0a1bdf8a328724f7eaa81b212be45625ed9f6c42fa9dfdd1636b0a9139a114cc3f478290e7a1801c462bddfe47491cff6139fcdb74c462235a7c03a325b74ab SHA512 58f4ad0eac7445fdbd3c110860dbd04e1682cde849e1ddfb61533ede9cd404405070386bdccadfb613619f289892f6a47c721a1335db082ce5c75a1bf0f5b5e4 DIST OpenJDK17U-jdk_x64_mac_hotspot_17.0.20_8.tar.gz 180581753 BLAKE2B e1f67cb7364068f3de7bd4aeb8f1d6f87c420be7cd8e3d3abad1e4cd5197666866ce8845b087253aad41542b2b77e9b68ac29823dd733447562507b1bb3e9392 SHA512 7e7ec77ed76e67bad9e310212c651a2fc73710bac758e6101cb9446f94f860f7f356652394bf559c7e7992fba7f770d159b2859e2c330138ebc1612c42719363 +DIST OpenJDK17U-static-libs-glibc_aarch64_linux_hotspot_17.0.20.1_1.tar.gz 4269425 BLAKE2B 82f93a5160158983cebc1bfa243990d17151588266926514032663bee36d7694ca4082557a399e66453e4960978a190c1105bdb8c5cb5cf8341a11e752e7dc1b SHA512 244cab7b19b9ed9c233a90095bb7d8a80fd3098b6534f74aaa425d23f59b9269f9302944eb04e993198f56e03538886a0bc8e13902eae4b20a7b5cb9dc789f9c +DIST OpenJDK17U-static-libs-glibc_arm_linux_hotspot_17.0.20.1_1.tar.gz 3837330 BLAKE2B 56b758acbbceeb02b0fd801803db54ecf9b2d46d1ab96be710cb769d8feeae05fa055c9063e928155305fd2ff32568479104aa0c6ea846181394a23f69dd319f SHA512 54b3d83d501b8701aa34182f81d35c16cec704aad388ef4f05903edd4711617b40ce63f9d92d332b5262d0339a360377ab2bfdbf0f1475de88a5d04a4a04197f +DIST OpenJDK17U-static-libs-glibc_ppc64le_linux_hotspot_17.0.20.1_1.tar.gz 4978288 BLAKE2B 2b79bedfbbd91553ca2160f3464c42233472d39d443868ccbc60067ecb7f482bf367727b56fbeffcb635b79004db5604ef0d5e54f41cbed042fc6f798fc1da25 SHA512 b5924bececacd573debbd708a14085923c568bff95edafda4d2fbf539bd632960c41556b65c7c073b1adc1fec4187742718df362540c0eb3ee00473bcb74bad1 +DIST OpenJDK17U-static-libs-glibc_riscv64_linux_hotspot_17.0.20.1_1.tar.gz 6587085 BLAKE2B 5e769594c18147ff1533b02330081a0fde1e6b95b4bd213023b8e81a24fb456fa7c6ed21ddf03a70c26cbb1256815fbd1c9f8a71548bdf4b0535014b89a4ebd0 SHA512 8df685a4fa959af87e43b0f9101141ae37de32d945d39d6bb012eb74ebcbb3e514ddb1ce272a001dd02be02ac2e63a678c6e3bf8b2c22318c15e02510280fcc2 +DIST OpenJDK17U-static-libs-glibc_x64_linux_hotspot_17.0.20.1_1.tar.gz 4593593 BLAKE2B ce935b96d690a7c3b919c4d5b2978b4916576e0b9e131854e45b9526932640e73752e3abb96d6fcffb80de82f8f594381241e57ebd6f04ef5a067b6d49546d27 SHA512 3f7dd624813286dc8e978c04b59caea4d310f384853733f19a9da44557f7964f564e065be3a027c93002dd478887484c0051810ce4e37701ae36b8d28623ea0b +DIST OpenJDK17U-static-libs-musl_x64_alpine-linux_hotspot_17.0.20.1_1.tar.gz 4043060 BLAKE2B 3509e12ec446bcf2ce6a22533e9510f0523c001af57792019e39d762c7fe05d918a9fedbca234a71bb6cfa56d0cead7e9d9ce100f2fc24923a988f87721a6070 SHA512 a4f0c317fd011ffeb4c1350fccaeb6900f7a7ae053d2f851f1c75c5cdbf9f9a28f309c77c3f612e531bf8f68d86bef4f1c136a231975922b472b4c1969754307 +DIST OpenJDK17U-static-libs_aarch64_mac_hotspot_17.0.20.1_1.tar.gz 3976905 BLAKE2B a68e7cf1704093cc6e589304495ebbe9336a252d1bea669ac6e499a0ab07ff78a5be41058119f4b0a58e633769fcc5eb2dce9231cbaec08c06305242f6fdd7fd SHA512 bfa9356a1db8ac3a91712c15e8688778e59788f324f33d1805f0c9bba90cf9a88251b1f75156f04e999cb06a19c9a21808e45485af6adf0e1d3282d30518f009 +DIST OpenJDK17U-static-libs_x64_mac_hotspot_17.0.20.1_1.tar.gz 4098106 BLAKE2B 3ece462c01e20e753da071cc2c079727e1f6da71e07a078900c7d0ae936a10f2299d131980b732d588cbf5879afb16c9e15a156b317c2e694bbaa84b990a8716 SHA512 626968be1127f171939858b6003d6e07c7e5893cabd963c4df26309f4fd4ec43eb1b7bbc43d98749793269e4cf741d8fdeaee317910a15232b9a4cc4e2877ccc DIST OpenJDK21U-jdk_aarch64_alpine-linux_hotspot_21.0.12.1_1.tar.gz 205580047 BLAKE2B 96a25df41421c49b828b7c3a9fb6e1182a672c115f568a75496a0676b6e85a60c0cc3e8e92af8f5066085d5c92a53163b4d3c732ce168a430515dfa587f75366 SHA512 1575f2dc073c339e70ffba0d975a6ba0babcc019cd333f8260c280484dabca4774a7e78d3f31938b6e5fddb2ee06a51b3a5c31842b847cf0bd741566367bf054 DIST OpenJDK21U-jdk_aarch64_alpine-linux_hotspot_21.0.12_8.tar.gz 205565634 BLAKE2B d829dc42bd12b11c6db531b2ec3b49a857b1c0920a8615d22ca874c0ddd4d320da5985a1bcd691f5e5b5bb5d09cd98f81682a073a477ee5c66a46931feec9752 SHA512 b9df112f4fef7033c76375f8ba5d2799195974a975d50b0f395d890c287d8550e750b988a9638479078517bc41987ceff340a1ca963686d635e8e0c465f59128 DIST OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.12.1_1.tar.gz 205641175 BLAKE2B 68dd310d7b73f68dbddab6e90021273684afcb7472f1b091e22a26fa2025c7404505ecbcc923bb8958325efc449a74718b70e2cad0117b61bd0aa6ed6ede9e4d SHA512 efc33f7d017a51ca151428833a8b74833cdf4c3e83da07305c966e468369b6f9e8068a5db9a103582d0f222b102082b6089f448c2607a5807037f355d5c0c25a @@ -48,6 +64,14 @@ DIST OpenJDK21U-jdk_x64_alpine-linux_hotspot_21.0.12_8.tar.gz 207679708 BLAKE2B DIST OpenJDK21U-jdk_x64_linux_hotspot_21.0.12.1_1.tar.gz 207473347 BLAKE2B baa4a6ad7afaca3f941b373b822302d9e48e7cf11866ed1627ac9248e21ae7662744d160df70a3b08fdd794f13d78c069eff68c1fb492a8d9a794a998ca3966e SHA512 e685aac4ccf79d0681bd3946a74c090c19945cc1b2ff6d92c390c3e535dc391d12c74247e222adfed942ac0dbd0acff014fa4079bb1073f10211915b570a005b DIST OpenJDK21U-jdk_x64_linux_hotspot_21.0.12_8.tar.gz 207486543 BLAKE2B aa062e7c15c00ed5143df325388b0bf4b8ba87256395986b59e0d8f1d60cc8111ab4f7d851c69092531bf9e8c67ceeab4fac72709072d0b2ad948cf319efd3d9 SHA512 5b08c4673e102d72383e51d2129164374fcc6b4081e307188683b3390f28c246f91bbc33966b61fad38243121c50c3ebe4895d5f7bf0d5421ad174ce116983a7 DIST OpenJDK21U-jdk_x64_mac_hotspot_21.0.12.1_1.tar.gz 194316575 BLAKE2B b55c740685dd3d2f4c5db8f4ce3ce4243e2c9805b7408114e1f6dd48a49bc444841542ef15ec34d99089f95733c8e0091553a39f1fb660b14cda9d77b412ad91 SHA512 5ca2152c0e5382ee179f6e985e662a3e006caddb98448a819814e4d12221fc07e05f8a5222d000d27742585c13a09a3600545cac23e3463af851d664f39dca1c +DIST OpenJDK21U-static-libs-glibc_aarch64_linux_hotspot_21.0.12.1_1.tar.gz 4202335 BLAKE2B 3a1288fbd10507ade4e5b87925b106580896a3b4b9e2cc373ebfb5ef8eeced9c695ef5708679c8ef50fae61f110206f30456b4d7572d96ed7b1ed57b52afb0bf SHA512 38debebc66cc3b982ac7ece35bb4d2ee1e2817a10b004483e9ecd380938d3238b17cd5d13d0178ebd5d9ce557b7a1c28409ad4f2c61dae2656e9c4eeba00952a +DIST OpenJDK21U-static-libs-glibc_ppc64le_linux_hotspot_21.0.12.1_1.tar.gz 4873567 BLAKE2B f8149ac1e1f6a159710b080dd6937396167b5713ab53d778daa3571e3250eac5ed4413ceb78d0b36cd806744c0ddfc89fbf5aa54bd96a9fe76163e84a15dfbbd SHA512 b03342d0d3cb5ab0521149763d6f78a8fabf4cbd8365365eee8b0928b94be520e929ed928d3df25e4e1bf00229a58cc582d9dc08f165eaab0e731d47c590b61d +DIST OpenJDK21U-static-libs-glibc_riscv64_linux_hotspot_21.0.12.1_1.tar.gz 6534251 BLAKE2B 995ffe90a6802055afda685bf3a1e1e71e1113add4c1433683df418f357c1a5d96f8ece8bdccc391032365dc77de5bb449989d4b2d0ebdbf40dcf9e1d3c9956e SHA512 6ad7d525aed330e38a6b9f8b306f762008f10a1ce44a90206aa24021ac88548fb4eab3480c1811cddf2cd982c4798cd2ab38af7d37f98f9d732d83cd1418296c +DIST OpenJDK21U-static-libs-glibc_x64_linux_hotspot_21.0.12.1_1.tar.gz 4528872 BLAKE2B de9e8e173a9cea1cc8c11fd7e05648c325bc51e0e9cd22d43b97831aafe0a18d0d125592c2a33c6c938a2705f015f0dd459660fb43e0dcba025a2b28211de93d SHA512 7ca6b2abf155f7f735e6370d47c6f242f8536286a79b704d747ff29af74db864b23f8c44799d7ebb350703fff628bbfe96a2e7d0ac798d38e6de482ab0c1cd2f +DIST OpenJDK21U-static-libs-musl_aarch64_alpine-linux_hotspot_21.0.12.1_1.tar.gz 3643997 BLAKE2B 5924dfeb6cae37d6b08e7c746e86aa8537cbc1eabd472230dabd6ee3940fad04b2cddc970c97ac55ffa61f3289ea9d37c62c7b531afb000a8913de38a57b59f7 SHA512 fbc893744edc5a7b4b450b2da1b82fe0a24a3779f26d8337e25b940dba9d44ef59c25813c7040a526363bb62a78ae4c40e275d84846f433a6e76e938f41a19a1 +DIST OpenJDK21U-static-libs-musl_x64_alpine-linux_hotspot_21.0.12.1_1.tar.gz 4008162 BLAKE2B cc6d3eef0afd2589207600d0a47d72ce1f1875c4e460f831c34e95b99559b891f01b6c5e3335d91902837e998d1f4cfba4a737db74ec5dba98de8572a40451ed SHA512 2a97285fe6015eb1e6dc69f155f1a4b7969c9f01b933c07a411e8c641bc06c708ca497bf0bcafffdfd60a75e2cbfe134c73be3300cce70d10fc099676630e2ec +DIST OpenJDK21U-static-libs_aarch64_mac_hotspot_21.0.12.1_1.tar.gz 3926592 BLAKE2B 95596ebe1ead493f42167cddd455ebc761490ebe3e3e7501f37ae6e47a8a952e58ad19c1551f059dbee53874f2302222f1de08a2642636e843254063252ab6af SHA512 7055caf54d25047acb0aa6c2f08e3547f28cd72e05a888c6997285ad0fecb3b3aad2055cc06da9795a8ad5eef163136faef93134991e828195d3ac12d2f1b426 +DIST OpenJDK21U-static-libs_x64_mac_hotspot_21.0.12.1_1.tar.gz 4037928 BLAKE2B 172693574d900ad89315666c51d6855a216c227229c8a6aaad00777e2fe5301a0f94a64f87d2bbc8edf8f505ccbfb17ed42e1f42dc128fa6af0e639594510256 SHA512 63253f3a098d70f07879ed2f49dbc373ebc9c42a0b37f9ff7e88df7cae6f13670dc1e1c4f92eb6b7cd47fbaaacb490080bf98ab5d3998e48aa4aa1e30da24bc4 DIST OpenJDK25U-jdk_aarch64_alpine-linux_hotspot_25.0.4.1_1.tar.gz 139143962 BLAKE2B 57fb96f5f3aa7744c9e3a47e779dd6c32add641d2b4c3902d3c4804af7d4fb80632c541aab0ce89291d650ba22f22d8d17cea5b5958afd524d966bf198d2e97a SHA512 72c66f1e25a07cc961ac759aecda4cb26fe430480872dd79cc2ec6abff677e1084adea181469666ae31e7ba1e5e484db7b9ce8cd22ce35cab3d218939e43a826 DIST OpenJDK25U-jdk_aarch64_alpine-linux_hotspot_25.0.4_7.tar.gz 139141228 BLAKE2B 56486ddd727bd871d8de3afd36bd926a2145e0e9935dcce8c4e25e12e65b5f16a6b29699c6b75b457ac77a44d4d68da43a6ae4bf72d92c5a6e657e75a95b8231 SHA512 18e94913f5eec68a16cdae120de94ffca09af6a5a8d13eecca1e18ec56ae3c183d52d4384e80f5951112659dcbdc6851e793fba0115850eb8a535b77636a30ac DIST OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.4.1_1.tar.gz 140137820 BLAKE2B 012fd39d066f23ded38e5b2734332b823c19506ededadff5085fc8c57cccdaf1c26be3a76d4d77fe181aa1c539ff2112a6c4f2991fb4bb042f9a83b956904c2e SHA512 988bcdecf5cd8398032d83909c388b4d9de1272412f2d4af1d923413b929b2cf490a0631885a94743e4acd985cb6fb15f96b3350e30cca4b53cbd32b74943528 @@ -63,6 +87,14 @@ DIST OpenJDK25U-jdk_x64_alpine-linux_hotspot_25.0.4_7.tar.gz 140331098 BLAKE2B 9 DIST OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz 141329719 BLAKE2B 3621d96afe59375dbf547cf169eff329312c2296d2122bee6b4ab5b3f79acda51c657c52b793dc186acc28a358855f62290ff48f3d3fa8d98beb9beaba22f3ef SHA512 c96f0d7a22068a488c6bc2ef908f946280d26ce384dbd879c6ae9a01a60441cfed8cff97f3dc5f02b939cc9fab5ad9279b5f497a3523195102cfcd151cac0816 DIST OpenJDK25U-jdk_x64_linux_hotspot_25.0.4_7.tar.gz 141328157 BLAKE2B 10a3a1ea8d730d3ef6e7a0438a87450cf390abe1c852d788afe9da6b5a060caa42d0904b443924e36bcd3ade163f76feeb0d56a7db7f0c54474fc717d551b7ab SHA512 64267cad95a017ab32fe66211f8880eeff14fc831a4e10a49b8688ed387c2af7e75bf3fad7fdaa2b662b002fb20620a98ee7abe2b86bd110e21023d62071e168 DIST OpenJDK25U-jdk_x64_mac_hotspot_25.0.4.1_1.tar.gz 120256199 BLAKE2B fda3d5927687f86c800e3211250db8c14bb0a330beb9472723934a650ea0e7ce532180ede88d2068c0f2762310143c5e6c234ee7802c2295c8bf8020d41d9217 SHA512 b9e23fe13a03cff92d5e2fe1bb936ebcf6c27aaa1e0080538a6ce0fe48be8540426c09fd72933f39a80834a40ee245e81af1b31f6ac132141935b3162eb288fb +DIST OpenJDK25U-static-libs-glibc_aarch64_linux_hotspot_25.0.4.1_1.tar.gz 3823643 BLAKE2B bd0227ab28ea11510ed3415caa51d339e1b40e2317ddf1fead6461e2359f154ac75c8e62cb42651529f2fd2d78b32d09e6945a51ca25eb6d750744e53cedd03c SHA512 ffa258ac3c34f3dacc8d30666965e2bd2e3e4506aec4e44aec70c0b217435abaeb4ee417f240449ea98c7e23513fa3ea415f022be65a9515631e1609ff2a12f7 +DIST OpenJDK25U-static-libs-glibc_ppc64le_linux_hotspot_25.0.4.1_1.tar.gz 4770127 BLAKE2B 3e4a5bbad3de6d64d2ac2bbe3a0722203f95230b6fbeefa72792c279f5a70999c6290580d1e884a038c9fee756baf329fbb6714b10cab65fba96f153a9bb5a2e SHA512 5d3459077605156505d75ce2d01a51e88fda29df912c69d1fabf503f8326c4a2447d9418e2251d624c7dc61386e28994998b587cfd33b26e1fdc2acc1a191932 +DIST OpenJDK25U-static-libs-glibc_riscv64_linux_hotspot_25.0.4.1_1.tar.gz 6349725 BLAKE2B c94149f627bf0e0f63e88cae0d20eeae8f4af7a96ff7ee47769825d4aac76c5b3a549d1982c18488cf87f49a3b6bf21ea845c43c69f69b0b6da7e1f8578510de SHA512 40e75509f43468089980c8c609b36277428ac47be553960522f7adce2cbd8c29f5be4421f04c96ece0dfea6d1470a985f6bfe5be60acec7e66b1785fe40e54c1 +DIST OpenJDK25U-static-libs-glibc_x64_linux_hotspot_25.0.4.1_1.tar.gz 4289978 BLAKE2B 61640f8eb5998972f431c7ec1f5149422a1bf0fd8a0feec3502ffa80769fa307bda0b5de6286a85b0b66ba4b2dc16bcc14f432865fd969483dd277e5f140423a SHA512 0e04f626bbbfa4b56caf2a043a4dc643d19c93fb95b20a76d571aaaffbe653b162dcddf6f97829e19bc849b5d4a3f7bdbfc0e01d4292dd8270ac110aec17bb2d +DIST OpenJDK25U-static-libs-musl_aarch64_alpine-linux_hotspot_25.0.4.1_1.tar.gz 3433200 BLAKE2B d12ac5e918cf25a3fd3cf730f2635bfe667e17f26a22941d58a25681993310149baf883b4b2499694b2358bd44e0c5df2928d7f8d9aaafe6d0e39c124b12c2f2 SHA512 0b47e5a881c00b5a3679f6cf052b1c1a06cf33ad39f33a6d28346f93c83a776213ab7ac9598d90923cdb37ff730e33d989acf6457ef1f9bd1f7160c2180a8e02 +DIST OpenJDK25U-static-libs-musl_x64_alpine-linux_hotspot_25.0.4.1_1.tar.gz 3876593 BLAKE2B e68f4c8b0f68d30cfb04d4a155bf8fbf7d31a018dda92729fdee0e1ca0eb4f654454201c2d1ac13b89868b3b36eb7f48b3bffcd62b917da5391b4a8143ac57cb SHA512 b2f32cd26489e28b99eb293ca6ed5e285ad5f59f8e42da74a789de7c616bb743378ad322d63507cc32b3233a83f36dbdc573cdc959dcfa0f62284ad3dc4a2fa6 +DIST OpenJDK25U-static-libs_aarch64_mac_hotspot_25.0.4.1_1.tar.gz 3848872 BLAKE2B 38d1acbb21cd3f60801ee19f27de71129fd61563618c01ebe58bb829c6663ab1cca595f276af55f91f5331924f61ce40f09136c73d718eda919c28253abacd74 SHA512 2025e9a255fce149d9f30548b72ec00079ad7511540f6e5142157928fce8031a4372903ec4478fa51db4d146a28cbaa67843274a9ea186d68c518f5032ca2f67 +DIST OpenJDK25U-static-libs_x64_mac_hotspot_25.0.4.1_1.tar.gz 3920106 BLAKE2B b342065a3cac2d90a7ab36c9e5febb8210bd5869e9820c1a27682c69fa171973a3006b9ed1d6d86ca7c987170603a02d25e512b34bbe7fb5f21da14713ee9b53 SHA512 5391488c89a2ef6712d27e343d7407d7eff5f2dec79f6d86759ae41bf134bd27ccd31c1605903ba5539cf98ca04fe07876fd37001524c9b8854c9a8858c1068a DIST OpenJDK27U-jdk_aarch64_alpine-linux_hotspot_27_35-ea.tar.gz 140735304 BLAKE2B f08abbe497d53fb244ff514a90cf174036ca633e6686424cc3a59bda38851dca1e914c544b2c4c7ed1cb9ef3783097663f9dbfac2bf49ea6617b388b286a670f SHA512 650e2e67ffc176982d599b1041df21794d8bc78f238e0547c0d009f4c34f21acaa5ff108b350702f89df749c26674620def84697be6ae32af5bef0acb048323d DIST OpenJDK27U-jdk_aarch64_linux_hotspot_27_35-ea.tar.gz 141608628 BLAKE2B 27ceab527dd7e75035d6990b7d58b4f1d69aeff5c65c0fc9231499a4d3dfb36149fd4f4cb40fea0be79968f0d0cb224d54e51f35247ba3354cfcaa4fb4b612f5 SHA512 2f558ea63395c452df4d430ca91472dfa87a8e8f1feb0ff49ba800a37a7d0c750521223e8c1f840c8b584dfe73446e2b77f98bfe315b4140a23d7d4b347a322d DIST OpenJDK27U-jdk_aarch64_mac_hotspot_27_35-ea.tar.gz 138122561 BLAKE2B dc01065155090f49edd26d733fd40f7a813a7c1ef6a8a9ecb43ed272ad26892d0ed34f6067774c5013419142c5126acb43a4607f47b3044fa4eb4c2e3d16f668 SHA512 6fff13ae7fe0ae55cdbd9adddb91517651be6e20bb8cd2273d189bc5cce4b086e6ab844c09c4df16dace2cf967c46c9c119c6f50a89893227b0f698f85521fe8 @@ -71,6 +103,14 @@ DIST OpenJDK27U-jdk_riscv64_linux_hotspot_27_35-ea.tar.gz 141220356 BLAKE2B 8154 DIST OpenJDK27U-jdk_x64_alpine-linux_hotspot_27_35-ea.tar.gz 141965728 BLAKE2B 02952fb2e5486d216c1a2007b6a4f5abb8b818fd359e76f5b1c62facf82be00ecc70fb7d38319a19289da798e0815b930b45c3b2a69889433051633b7190f1d0 SHA512 dbdc95dd13a25b33e49c05cdf760029e78bfc23079c3aca693b209cac9746db22098352d988554dafc9cabb0006ee4d7dc850142dc6b7e5a5fc057d0770d7f66 DIST OpenJDK27U-jdk_x64_linux_hotspot_27_35-ea.tar.gz 142698616 BLAKE2B 2e8f8451427259c1f35d6d404208e8e062b33be235e5668e0ad61a6c618f133af3101efb6ef28f558d0eef58919a26bc05bfacf794f12bd94d3b088adf902a88 SHA512 364bbc1ce9b405cbaf44a5914a907ff5b3d9e39aa663eab97d71f72fed879e4cfdd9c328cb87715377d36d862d0183326fa1ac710e5b9921504f27afbeea12d9 DIST OpenJDK27U-jdk_x64_mac_hotspot_27_35-ea.tar.gz 121596869 BLAKE2B e6a1d05d1ec1609d88f75a262ee37b7257163a68ae451fe5340ad1900e3229b7c88d5e5b723e2806e998e4eb70459c0716ed1f493f7bad758eaa82cadaa0996d SHA512 2fd354fd8737ffa2a6ad15f35331436df9a15df94ab000bf7978178cf759002c58235b751f23b1bf4ce7ac91383580c3927171a3c495c5bd1702d9c407b90040 +DIST OpenJDK27U-static-libs-glibc_aarch64_linux_hotspot_27_35-ea.tar.gz 4810715 BLAKE2B 3ebba50dd291e240193de60206258307b20d12cf3e54a122844cf59c3c6a68fb6ba2e4b0be478cfac2e5c8f73efb54377df2d7633b9166924e59fd168a6e9ce4 SHA512 603ec0a9f6b1add9dd5f7e71d7ad16cd5231612c672c2dab969780dd3a825587a8c845f4c6e3ca0e9b101812bab05c3dd29f1758c87bdc4b9726b95a444ccd50 +DIST OpenJDK27U-static-libs-glibc_ppc64le_linux_hotspot_27_35-ea.tar.gz 5688143 BLAKE2B e100fade64f942aeb7c58dbb5e21ff74fd56bde94891b7e64be2e0f73fb97792208f91d97f5944090428be0caaa154ebf7f01ffed69cc92e3f8a5229034e76fd SHA512 1a26285f5e95ef8067d85255ed34fc9c9c9d184729c1fc3b2a3ab021998c106bc83d5ff64a12b167a4c0ef1478e6a7a1dc0861cdd1dbc2b3eccf65c4f2aa9c81 +DIST OpenJDK27U-static-libs-glibc_riscv64_linux_hotspot_27_35-ea.tar.gz 6142055 BLAKE2B 9dfb85845f8a6c5ddab264646fa2e27e649a3bdc89c3956ced55694b5c052fb45634a0abe5eab969e255f0078a3b3d5d14bc24026ecc679662c63755a9d18077 SHA512 1cafb5f060bb25bf766de1e51cf166eed81134cb52dc47bdb0679c540301a41605ac90d4f9a6282f12dd259df2208e24bbf49e64ef1dceabb71601c8b5a7e371 +DIST OpenJDK27U-static-libs-glibc_x64_linux_hotspot_27_35-ea.tar.gz 5234847 BLAKE2B 2ee3c9cf2139c5ce768230d560e00921f07e8c561b1ee1da5181af5c902e7cfdc18f3dcd957b8c5135059b9e8a1e372e3cbd1f45c8d1b8ab15732f1a153d923a SHA512 8de6acd63e2f276481484cf3a92b176cc9d5769237e5a292e6269e585b71d87b8bc747a89ba5084c410bbf81781f93adaa6f028fad1085f2ed7e145145660966 +DIST OpenJDK27U-static-libs-musl_aarch64_alpine-linux_hotspot_27_35-ea.tar.gz 3388055 BLAKE2B 328dfefb0c115bfb5080fd937f227369294696de99b07543a08cbe89d916321e52b8e9a30ef103f2dd224cbddb11fe152fc7a577c422e379e4588403a37a8d71 SHA512 cae63d4438f3fc41da74f2c6641177029b791d96ff58dde853ab300a0f0efeb9acbc2bef098cb841be2358ebd86c25463d6cdf20e58e6146cadb19f5867e7526 +DIST OpenJDK27U-static-libs-musl_x64_alpine-linux_hotspot_27_35-ea.tar.gz 3818889 BLAKE2B 2f90d822709411b0c6418449602a5f55e5b8f9306cef7fe0101f75572528310b273b76f5bd1b39deeea600046bf31d46e4a74e367ac42984586f00dfe0db39a9 SHA512 10fd906325cbb6376cd804a623d9d2752fc681ec92b5f98bb9a907d26e2ff677b333523f1be45130992839d6d63b6a3a5d608b7ffe2af3ef23ca9628d9c30d28 +DIST OpenJDK27U-static-libs_aarch64_mac_hotspot_27_35-ea.tar.gz 3932282 BLAKE2B d6607f3258f5cecd193206809896582026c9a844acba3d1a73a6d116aebe998cf13e773eb91ed8d91eef06cd854c0eb55e0364cf67e0f18204d994b79984e64f SHA512 4942bc95c6ea1fa492210b9f3397d0b19d29dc74a698a263b56b8743eb394385d4f0bcf8a196a4198e96a87c4e242edabf1bd616ca5da66cf011d56e2a38d3c6 +DIST OpenJDK27U-static-libs_x64_mac_hotspot_27_35-ea.tar.gz 4018537 BLAKE2B fbff76df213d7f56d9763536ed3417cd9ad1fbef288c96d62d9de7d69fabe7607a404e7e73e4ae30c168f45015ac027264b0e97131232405b3507765d7794c77 SHA512 e2cd825adedca4eb558fe30142252fdc68a9dde3e5991e3ee8b09d4784d3a0244cd6430a1689e6f0da50ab2afe5c3c83c57e062268cd30282f110ae6243f9fe9 DIST OpenJDK8U-jdk_aarch64_linux_hotspot_8u502b07.tar.gz 102625450 BLAKE2B 890437043d7393b0e1b9b8eefdea347d4d0de8ab1e64dbcaf42b151d9c0ab27c1f8623a06ee8fff175980123788ccb675092c208e0e8f8bd3a381231b6453535 SHA512 d5a81685486c3208e79587bbeded9414dff7c409526849414842695421341eaa7d371f3db540f1e4242cf0895d5d6a1aa656c01c52aec073eb83bb6bae8601cd DIST OpenJDK8U-jdk_aarch64_linux_hotspot_8u504b01.tar.gz 102617391 BLAKE2B e5e33a31e686402f5e1d4c81d83aa46798e6195e414fa3915813c2f6747f26bddeaa0efc76d48bc32664f38820f2fd4a62ab7e90620a956e27708774a6096358 SHA512 13c227a192a43d552e2c5b8a6e1b619bb26027634b360d84ccb129b45722da9a5d96f6ba9666cb674bf0ddbf1a338c62186b67b371d71c1ffad50ae206fb1575 DIST OpenJDK8U-jdk_ppc64le_linux_hotspot_8u502b07.tar.gz 101078684 BLAKE2B fd4f217b2132b6993ce1fc8cc4f6f96ad250f84113ea32118d46cfb8e036a87f74635d110d2b440e3ac454faf66f0e54f5cb6fa4d491d3a1761473c8f60eea63 SHA512 223c41389c9a3c21b518aac6666f3d89fda6d78c120b451d51d24df0cc0fc98fb7dfe6273f1966a1dfc88bcae4c91dfdc2ba8ccc2f18062b50e461ba362704d4 diff --git a/dev-java/openjdk-bin/openjdk-bin-17.0.20.1_p1-r1.ebuild b/dev-java/openjdk-bin/openjdk-bin-17.0.20.1_p1-r1.ebuild new file mode 100644 index 000000000000..92e4dc38092d --- /dev/null +++ b/dev-java/openjdk-bin/openjdk-bin-17.0.20.1_p1-r1.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a java-vm-2 toolchain-funcs + +abi_uri() { + local baseuri="https://github.com/adoptium/temurin$(ver_cut 1)-binaries/releases/download/jdk-${MY_PV}/" + local musl= + local os=linux + local libc=glibc + + case ${2} in + *-macos) os=mac ;; + *-solaris) os=solaris ;; + esac + + if [[ ${3} == musl ]]; then + os=alpine-linux + musl=true + libc=musl + fi + + if [[ ${os} == mac ]]; then + libc= + fi + + echo "${2-$1}? ( + ${musl:+ elibc_musl? ( } + ${baseuri}/OpenJDK$(ver_cut 1)U-jdk_${1}_${os}_hotspot_${MY_PV//+/_}.tar.gz + static-libs? ( + ${baseuri}/OpenJDK$(ver_cut 1)U-static-libs${libc:+-$libc}_${1}_${os}_hotspot_${MY_PV//+/_}.tar.gz + ) + ${musl:+ ) } )" +} + +MY_PV=${PV/_p/+} + +DESCRIPTION="Prebuilt Java JDK binaries provided by Eclipse Temurin" +HOMEPAGE="https://adoptium.net" +SRC_URI=" + $(abi_uri aarch64 arm64) + $(abi_uri aarch64 arm64-macos) + $(abi_uri arm) + $(abi_uri ppc64le ppc64) + $(abi_uri x64 amd64) + $(abi_uri x64 amd64 musl) + $(abi_uri riscv64 riscv) + $(abi_uri x64 x64-macos) +" +S="${WORKDIR}/jdk-${MY_PV}" + +LICENSE="GPL-2-with-classpath-exception" +SLOT=$(ver_cut 1) +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x64-macos" +IUSE="alsa cups headless-awt selinux source static-libs" + +RDEPEND=" + >=sys-apps/baselayout-java-0.1.0-r1 + kernel_linux? ( + media-libs/fontconfig:1.0 + media-libs/freetype:2 + media-libs/harfbuzz + elibc_glibc? ( >=sys-libs/glibc-2.2.5:* ) + elibc_musl? ( sys-libs/musl ) + virtual/zlib:= + alsa? ( media-libs/alsa-lib ) + cups? ( net-print/cups ) + selinux? ( sec-policy/selinux-java ) + !headless-awt? ( + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXtst + ) + )" + +RESTRICT="preserve-libs splitdebug" +QA_PREBUILT="*" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]]; then + die "These binaries require a hardfloat system." + fi +} + +src_unpack() { + default + if [[ ${A} == *_mac_* ]] ; then + mv -v "${S}/Contents/Home/"* "${S}" || die + rm -Rf "${S}/Contents" # drop macOS executable + fi +} + +src_install() { + local dest="/opt/${P}" + local ddest="${ED}/${dest#/}" + + if use static-libs ; then + cd "${S}"-static-libs/lib/static/*/* || die + cp -pPR * "${S}"/lib || die + strip-lto-bytecode "${S}"/lib || die + fi + + cd "${S}" + + # https://bugs.gentoo.org/922741 + docompress "${dest}/man" + + # on macOS if they would exist they would be called .dylib, but most + # importantly, there are no different providers, so everything + # that's shipped works. + if [[ ${A} != *_mac_* ]] ; then + # Not sure why they bundle this as it's commonly available and they + # only do so on x86_64. It's needed by libfontmanager.so. IcedTea + # also has an explicit dependency while Oracle seemingly dlopens it. + rm -vf lib/libfreetype.so || die + + # prefer system copy # https://bugs.gentoo.org/776676 + rm -vf lib/libharfbuzz.so || die + + # Oracle and IcedTea have libjsoundalsa.so depending on + # libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird. + if ! use alsa ; then + rm -v lib/libjsound.* || die + fi + + if use headless-awt ; then + rm -v lib/lib*{[jx]awt,splashscreen}* || die + fi + fi + + if ! use source ; then + rm -v lib/src.zip || die + fi + + rm -v lib/security/cacerts || die + dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts + + dodir "${dest}" + cp -pPR * "${ddest}" || die + + # provide stable symlink + dosym "${P}" "/opt/${PN}-${SLOT}" + + java-vm_install-env "${FILESDIR}"/${PN}.env.sh + java-vm_set-pax-markings "${ddest}" + java-vm_revdep-mask + java-vm_sandbox-predict /dev/random /proc/self/coredump_filter +} + +pkg_postinst() { + java-vm-2_pkg_postinst +} diff --git a/dev-java/openjdk-bin/openjdk-bin-21.0.12.1_p1-r1.ebuild b/dev-java/openjdk-bin/openjdk-bin-21.0.12.1_p1-r1.ebuild new file mode 100644 index 000000000000..66e585032d7a --- /dev/null +++ b/dev-java/openjdk-bin/openjdk-bin-21.0.12.1_p1-r1.ebuild @@ -0,0 +1,157 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a java-vm-2 toolchain-funcs + +abi_uri() { + local baseuri="https://github.com/adoptium/temurin$(ver_cut 1)-binaries/releases/download/jdk-${MY_PV}/" + local musl= + local os=linux + local libc=glibc + + case ${2} in + *-macos) os=mac ;; + *-solaris) os=solaris ;; + esac + + if [[ ${3} == musl ]]; then + os=alpine-linux + musl=true + libc=musl + fi + + if [[ ${os} == mac ]]; then + libc= + fi + + echo "${2-$1}? ( + ${musl:+ elibc_musl? ( } + ${baseuri}/OpenJDK$(ver_cut 1)U-jdk_${1}_${os}_hotspot_${MY_PV//+/_}.tar.gz + static-libs? ( + ${baseuri}/OpenJDK$(ver_cut 1)U-static-libs${libc:+-$libc}_${1}_${os}_hotspot_${MY_PV//+/_}.tar.gz + ) + ${musl:+ ) } )" +} + +MY_PV=${PV/_p/+} + +DESCRIPTION="Prebuilt Java JDK binaries provided by Eclipse Temurin" +HOMEPAGE="https://adoptium.net" +SRC_URI=" + $(abi_uri aarch64 arm64) + $(abi_uri aarch64 arm64-macos) + $(abi_uri aarch64 arm64 musl) + $(abi_uri ppc64le ppc64) + $(abi_uri x64 amd64) + $(abi_uri x64 amd64 musl) + $(abi_uri riscv64 riscv) + $(abi_uri x64 x64-macos) +" +S="${WORKDIR}/jdk-${MY_PV}" + +LICENSE="GPL-2-with-classpath-exception" +SLOT=$(ver_cut 1) +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" +IUSE="alsa cups headless-awt selinux source static-libs" + +RDEPEND=" + >=sys-apps/baselayout-java-0.1.0-r1 + kernel_linux? ( + media-libs/fontconfig:1.0 + media-libs/freetype:2 + media-libs/harfbuzz + elibc_glibc? ( >=sys-libs/glibc-2.2.5:* ) + elibc_musl? ( sys-libs/musl ) + virtual/zlib:= + alsa? ( media-libs/alsa-lib ) + cups? ( net-print/cups ) + selinux? ( sec-policy/selinux-java ) + !headless-awt? ( + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXtst + ) + )" + +RESTRICT="preserve-libs splitdebug" +QA_PREBUILT="*" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]]; then + die "These binaries require a hardfloat system." + fi +} + +src_unpack() { + default + if [[ ${A} == *_mac_* ]] ; then + mv -v "${S}/Contents/Home/"* "${S}" || die + rm -Rf "${S}/Contents" # drop macOS executable + fi +} + +src_install() { + local dest="/opt/${P}" + local ddest="${ED}/${dest#/}" + + if use static-libs ; then + cd "${S}"-static-libs/lib/static/*/* || die + cp -pPR * "${S}"/lib || die + strip-lto-bytecode "${S}"/lib || die + fi + + cd "${S}" + + # https://bugs.gentoo.org/922741 + docompress "${dest}/man" + + # on macOS if they would exist they would be called .dylib, but most + # importantly, there are no different providers, so everything + # that's shipped works. + if [[ ${A} != *_mac_* ]] ; then + # Not sure why they bundle this as it's commonly available and they + # only do so on x86_64. It's needed by libfontmanager.so. IcedTea + # also has an explicit dependency while Oracle seemingly dlopens it. + rm -vf lib/libfreetype.so || die + + # prefer system copy # https://bugs.gentoo.org/776676 + rm -vf lib/libharfbuzz.so || die + + # Oracle and IcedTea have libjsoundalsa.so depending on + # libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird. + if ! use alsa ; then + rm -v lib/libjsound.* || die + fi + + if use headless-awt ; then + # do not die if not available, -f for bug #934974 + rm -fv lib/lib*{[jx]awt,splashscreen}* || die + fi + fi + + if ! use source ; then + rm -v lib/src.zip || die + fi + + rm -v lib/security/cacerts || die + dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts + + dodir "${dest}" + cp -pPR * "${ddest}" || die + + # provide stable symlink + dosym "${P}" "/opt/${PN}-${SLOT}" + + java-vm_install-env "${FILESDIR}"/${PN}.env.sh + java-vm_set-pax-markings "${ddest}" + java-vm_revdep-mask + java-vm_sandbox-predict /dev/random /proc/self/coredump_filter +} + +pkg_postinst() { + java-vm-2_pkg_postinst +} diff --git a/dev-java/openjdk-bin/openjdk-bin-25.0.4.1_p1-r1.ebuild b/dev-java/openjdk-bin/openjdk-bin-25.0.4.1_p1-r1.ebuild new file mode 100644 index 000000000000..488d20728a9c --- /dev/null +++ b/dev-java/openjdk-bin/openjdk-bin-25.0.4.1_p1-r1.ebuild @@ -0,0 +1,169 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a java-vm-2 toolchain-funcs + +abi_uri() { + local baseuri="https://github.com/adoptium/temurin$(ver_cut 1)-binaries/releases/download/jdk-${PVB}/" + local musl= + local os=linux + local libc=glibc + + case ${2} in + *-macos) os=mac ;; + *-solaris) os=solaris ;; + esac + + if [[ ${3} == musl ]]; then + os=alpine-linux + musl=true + libc=musl + fi + + if [[ ${os} == mac ]]; then + libc= + fi + + echo "${2-$1}? ( + ${musl:+ elibc_musl? ( } + ${baseuri}/OpenJDK$(ver_cut 1)U-jdk_${1}_${os}_hotspot_${PVH}.tar.gz + static-libs? ( + ${baseuri}/OpenJDK$(ver_cut 1)U-static-libs${libc:+-$libc}_${1}_${os}_hotspot_${PVH}.tar.gz + ) + ${musl:+ ) } )" +} + +# In "early access" versions, SRC_URI is different from released versions +# and contains strings like 'jdk-25+36-ea-beta' and '_25_36-ea.tar.gz' +# According to file naming rules, the ebuilds are named like +# 'openjdk-bin-25_beta36.ebuild'. +if [[ "${PV%_beta*}" != "${PV}" ]]; then # version string contains "_beta" + MY_PV="${PV/_beta/+}" + PVB="${PV/_beta/+}-ea-beta" + PVH="${PV/_beta/_}-ea" +else + MY_PV="${PV/_p/+}" + PVB="${MY_PV}" + PVH="${MY_PV//+/_}" +fi + +DESCRIPTION="Prebuilt Java JDK binaries provided by Eclipse Temurin" +HOMEPAGE="https://adoptium.net" +SRC_URI=" + $(abi_uri aarch64 arm64) + $(abi_uri aarch64 arm64-macos) + $(abi_uri aarch64 arm64 musl) + $(abi_uri ppc64le ppc64) + $(abi_uri x64 amd64) + $(abi_uri x64 amd64 musl) + $(abi_uri riscv64 riscv) + $(abi_uri x64 x64-macos) +" +S="${WORKDIR}/jdk-${MY_PV}" + +LICENSE="GPL-2-with-classpath-exception" +SLOT=$(ver_cut 1) +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" +IUSE="alsa cups headless-awt selinux source static-libs" + +RDEPEND=" + >=sys-apps/baselayout-java-0.1.0-r1 + kernel_linux? ( + media-libs/fontconfig:1.0 + media-libs/freetype:2 + media-libs/harfbuzz + elibc_glibc? ( >=sys-libs/glibc-2.2.5:* ) + elibc_musl? ( sys-libs/musl ) + virtual/zlib:= + alsa? ( media-libs/alsa-lib ) + cups? ( net-print/cups ) + selinux? ( sec-policy/selinux-java ) + !headless-awt? ( + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXtst + ) + )" + +RESTRICT="preserve-libs splitdebug" +QA_PREBUILT="*" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]]; then + die "These binaries require a hardfloat system." + fi +} + +src_unpack() { + default + if [[ ${A} == *_mac_* ]] ; then + mv -v "${S}/Contents/Home/"* "${S}" || die + rm -Rf "${S}/Contents" # drop macOS executable + fi +} + +src_install() { + local dest="/opt/${P}" + local ddest="${ED}/${dest#/}" + + if use static-libs ; then + cd "${S}"-static-libs/lib/static/*/* || die + cp -pPR * "${S}"/lib || die + strip-lto-bytecode "${S}"/lib || die + fi + + cd "${S}" + + # https://bugs.gentoo.org/922741 + docompress "${dest}/man" + + # on macOS if they would exist they would be called .dylib, but most + # importantly, there are no different providers, so everything + # that's shipped works. + if [[ ${A} != *_mac_* ]] ; then + # Not sure why they bundle this as it's commonly available and they + # only do so on x86_64. It's needed by libfontmanager.so. IcedTea + # also has an explicit dependency while Oracle seemingly dlopens it. + rm -vf lib/libfreetype.so || die + + # prefer system copy # https://bugs.gentoo.org/776676 + rm -vf lib/libharfbuzz.so || die + + # Oracle and IcedTea have libjsoundalsa.so depending on + # libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird. + if ! use alsa ; then + rm -v lib/libjsound.* || die + fi + + if use headless-awt ; then + # do not die if not available, -f for bug #934974 + rm -fv lib/lib*{[jx]awt,splashscreen}* || die + fi + fi + + if ! use source ; then + rm -v lib/src.zip || die + fi + + rm -v lib/security/cacerts || die + dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts + + dodir "${dest}" + cp -pPR * "${ddest}" || die + + # provide stable symlink + dosym "${P}" "/opt/${PN}-${SLOT}" + + java-vm_install-env "${FILESDIR}"/${PN}.env.sh + java-vm_set-pax-markings "${ddest}" + java-vm_revdep-mask + java-vm_sandbox-predict /dev/random /proc/self/coredump_filter +} + +pkg_postinst() { + java-vm-2_pkg_postinst +} diff --git a/dev-java/openjdk-bin/openjdk-bin-27_beta35-r1.ebuild b/dev-java/openjdk-bin/openjdk-bin-27_beta35-r1.ebuild new file mode 100644 index 000000000000..8ae9314e20d3 --- /dev/null +++ b/dev-java/openjdk-bin/openjdk-bin-27_beta35-r1.ebuild @@ -0,0 +1,176 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a java-vm-2 toolchain-funcs + +abi_uri() { + local baseuri="https://github.com/adoptium/temurin$(ver_cut 1)-binaries/releases/download/jdk-${PVB}/" + local musl= + local os=linux + local libc=glibc + + case ${2} in + *-macos) os=mac ;; + *-solaris) os=solaris ;; + esac + + if [[ ${3} == musl ]]; then + os=alpine-linux + musl=true + libc=musl + fi + + if [[ ${os} == mac ]]; then + libc= + fi + + echo "${2-$1}? ( + ${musl:+ elibc_musl? ( } + ${baseuri}/OpenJDK${JDK_REPO}-jdk_${1}_${os}_hotspot_${PVH}.tar.gz + static-libs? ( + ${baseuri}/OpenJDK${JDK_REPO}-static-libs${libc:+-$libc}_${1}_${os}_hotspot_${PVH}.tar.gz + ) + ${musl:+ ) } )" +} + +# In "early access" versions, SRC_URI is different from released versions +# and contains strings like 'jdk-25+36-ea-beta' and '_25_36-ea.tar.gz' +# According to file naming rules, the ebuilds are named like +# 'openjdk-bin-26_alpha20.ebuild' or 'openjdk-bin-25_beta36.ebuild'. +if [[ "${PV%_alpha*}" != "${PV}" ]]; then # version string contains "_alpha" + MY_PV="${PV/_alpha/+}" + JDK_REPO="" + PVB="${PV/_alpha/+}-ea-beta" + PVH="${PV/_alpha/_}-ea" +elif [[ "${PV%_beta*}" != "${PV}" ]]; then # version string contains "_beta" + MY_PV="${PV/_beta/+}" + JDK_REPO="$(ver_cut 1)U" + PVB="${PV/_beta/+}-ea-beta" + PVH="${PV/_beta/_}-ea" +else + MY_PV="${PV/_p/+}" + JDK_REPO="$(ver_cut 1)u" + PVB="${MY_PV}" + PVH="${MY_PV//+/_}" +fi + +DESCRIPTION="Prebuilt Java JDK binaries provided by Eclipse Temurin" +HOMEPAGE="https://adoptium.net" +SRC_URI=" + $(abi_uri aarch64 arm64) + $(abi_uri aarch64 arm64-macos) + $(abi_uri aarch64 arm64 musl) + $(abi_uri ppc64le ppc64) + $(abi_uri x64 amd64) + $(abi_uri x64 amd64 musl) + $(abi_uri riscv64 riscv) + $(abi_uri x64 x64-macos) +" +S="${WORKDIR}/jdk-${MY_PV}" + +LICENSE="GPL-2-with-classpath-exception" +SLOT=$(ver_cut 1) +# KEYWORDS="" # Not an LTS candidate +IUSE="alsa cups headless-awt selinux source static-libs" + +RDEPEND=" + >=sys-apps/baselayout-java-0.1.0-r1 + kernel_linux? ( + media-libs/fontconfig:1.0 + media-libs/freetype:2 + media-libs/harfbuzz + elibc_glibc? ( >=sys-libs/glibc-2.2.5:* ) + elibc_musl? ( sys-libs/musl ) + virtual/zlib:= + alsa? ( media-libs/alsa-lib ) + cups? ( net-print/cups ) + selinux? ( sec-policy/selinux-java ) + !headless-awt? ( + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXtst + ) + )" + +RESTRICT="preserve-libs splitdebug" +QA_PREBUILT="*" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]]; then + die "These binaries require a hardfloat system." + fi +} + +src_unpack() { + default + if [[ ${A} == *_mac_* ]] ; then + mv -v "${S}/Contents/Home/"* "${S}" || die + rm -Rf "${S}/Contents" # drop macOS executable + fi +} + +src_install() { + local dest="/opt/${P}" + local ddest="${ED}/${dest#/}" + + if use static-libs ; then + cd "${S}"-static-libs/lib/static/*/* || die + cp -pPR * "${S}"/lib || die + strip-lto-bytecode "${S}"/lib || die + fi + + cd "${S}" + + # https://bugs.gentoo.org/922741 + docompress "${dest}/man" + + # on macOS if they would exist they would be called .dylib, but most + # importantly, there are no different providers, so everything + # that's shipped works. + if [[ ${A} != *_mac_* ]] ; then + # Not sure why they bundle this as it's commonly available and they + # only do so on x86_64. It's needed by libfontmanager.so. IcedTea + # also has an explicit dependency while Oracle seemingly dlopens it. + rm -vf lib/libfreetype.so || die + + # prefer system copy # https://bugs.gentoo.org/776676 + rm -vf lib/libharfbuzz.so || die + + # Oracle and IcedTea have libjsoundalsa.so depending on + # libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird. + if ! use alsa ; then + rm -v lib/libjsound.* || die + fi + + if use headless-awt ; then + # do not die if not available, -f for bug #934974 + rm -fv lib/lib*{[jx]awt,splashscreen}* || die + fi + fi + + if ! use source ; then + rm -v lib/src.zip || die + fi + + rm -v lib/security/cacerts || die + dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts + + dodir "${dest}" + cp -pPR * "${ddest}" || die + + # provide stable symlink + dosym "${P}" "/opt/${PN}-${SLOT}" + + java-vm_install-env "${FILESDIR}"/${PN}.env.sh + java-vm_set-pax-markings "${ddest}" + java-vm_revdep-mask + java-vm_sandbox-predict /dev/random /proc/self/coredump_filter +} + +pkg_postinst() { + java-vm-2_pkg_postinst +} diff --git a/dev-java/openjdk-bin/openjdk-bin-27_beta35.ebuild b/dev-java/openjdk-bin/openjdk-bin-27_beta35.ebuild index 4307cc25706b..eb7765d66258 100644 --- a/dev-java/openjdk-bin/openjdk-bin-27_beta35.ebuild +++ b/dev-java/openjdk-bin/openjdk-bin-27_beta35.ebuild @@ -63,7 +63,7 @@ S="${WORKDIR}/jdk-${MY_PV}" LICENSE="GPL-2-with-classpath-exception" SLOT=$(ver_cut 1) -# KEYWORDS="" # Not an LTS candidate +KEYWORDS="~amd64" IUSE="alsa cups headless-awt selinux source" RDEPEND=" diff --git a/dev-java/openjdk-bin/openjdk-bin-28_alpha13-r1.ebuild b/dev-java/openjdk-bin/openjdk-bin-28_alpha13-r1.ebuild new file mode 100644 index 000000000000..8ae9314e20d3 --- /dev/null +++ b/dev-java/openjdk-bin/openjdk-bin-28_alpha13-r1.ebuild @@ -0,0 +1,176 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a java-vm-2 toolchain-funcs + +abi_uri() { + local baseuri="https://github.com/adoptium/temurin$(ver_cut 1)-binaries/releases/download/jdk-${PVB}/" + local musl= + local os=linux + local libc=glibc + + case ${2} in + *-macos) os=mac ;; + *-solaris) os=solaris ;; + esac + + if [[ ${3} == musl ]]; then + os=alpine-linux + musl=true + libc=musl + fi + + if [[ ${os} == mac ]]; then + libc= + fi + + echo "${2-$1}? ( + ${musl:+ elibc_musl? ( } + ${baseuri}/OpenJDK${JDK_REPO}-jdk_${1}_${os}_hotspot_${PVH}.tar.gz + static-libs? ( + ${baseuri}/OpenJDK${JDK_REPO}-static-libs${libc:+-$libc}_${1}_${os}_hotspot_${PVH}.tar.gz + ) + ${musl:+ ) } )" +} + +# In "early access" versions, SRC_URI is different from released versions +# and contains strings like 'jdk-25+36-ea-beta' and '_25_36-ea.tar.gz' +# According to file naming rules, the ebuilds are named like +# 'openjdk-bin-26_alpha20.ebuild' or 'openjdk-bin-25_beta36.ebuild'. +if [[ "${PV%_alpha*}" != "${PV}" ]]; then # version string contains "_alpha" + MY_PV="${PV/_alpha/+}" + JDK_REPO="" + PVB="${PV/_alpha/+}-ea-beta" + PVH="${PV/_alpha/_}-ea" +elif [[ "${PV%_beta*}" != "${PV}" ]]; then # version string contains "_beta" + MY_PV="${PV/_beta/+}" + JDK_REPO="$(ver_cut 1)U" + PVB="${PV/_beta/+}-ea-beta" + PVH="${PV/_beta/_}-ea" +else + MY_PV="${PV/_p/+}" + JDK_REPO="$(ver_cut 1)u" + PVB="${MY_PV}" + PVH="${MY_PV//+/_}" +fi + +DESCRIPTION="Prebuilt Java JDK binaries provided by Eclipse Temurin" +HOMEPAGE="https://adoptium.net" +SRC_URI=" + $(abi_uri aarch64 arm64) + $(abi_uri aarch64 arm64-macos) + $(abi_uri aarch64 arm64 musl) + $(abi_uri ppc64le ppc64) + $(abi_uri x64 amd64) + $(abi_uri x64 amd64 musl) + $(abi_uri riscv64 riscv) + $(abi_uri x64 x64-macos) +" +S="${WORKDIR}/jdk-${MY_PV}" + +LICENSE="GPL-2-with-classpath-exception" +SLOT=$(ver_cut 1) +# KEYWORDS="" # Not an LTS candidate +IUSE="alsa cups headless-awt selinux source static-libs" + +RDEPEND=" + >=sys-apps/baselayout-java-0.1.0-r1 + kernel_linux? ( + media-libs/fontconfig:1.0 + media-libs/freetype:2 + media-libs/harfbuzz + elibc_glibc? ( >=sys-libs/glibc-2.2.5:* ) + elibc_musl? ( sys-libs/musl ) + virtual/zlib:= + alsa? ( media-libs/alsa-lib ) + cups? ( net-print/cups ) + selinux? ( sec-policy/selinux-java ) + !headless-awt? ( + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXtst + ) + )" + +RESTRICT="preserve-libs splitdebug" +QA_PREBUILT="*" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]]; then + die "These binaries require a hardfloat system." + fi +} + +src_unpack() { + default + if [[ ${A} == *_mac_* ]] ; then + mv -v "${S}/Contents/Home/"* "${S}" || die + rm -Rf "${S}/Contents" # drop macOS executable + fi +} + +src_install() { + local dest="/opt/${P}" + local ddest="${ED}/${dest#/}" + + if use static-libs ; then + cd "${S}"-static-libs/lib/static/*/* || die + cp -pPR * "${S}"/lib || die + strip-lto-bytecode "${S}"/lib || die + fi + + cd "${S}" + + # https://bugs.gentoo.org/922741 + docompress "${dest}/man" + + # on macOS if they would exist they would be called .dylib, but most + # importantly, there are no different providers, so everything + # that's shipped works. + if [[ ${A} != *_mac_* ]] ; then + # Not sure why they bundle this as it's commonly available and they + # only do so on x86_64. It's needed by libfontmanager.so. IcedTea + # also has an explicit dependency while Oracle seemingly dlopens it. + rm -vf lib/libfreetype.so || die + + # prefer system copy # https://bugs.gentoo.org/776676 + rm -vf lib/libharfbuzz.so || die + + # Oracle and IcedTea have libjsoundalsa.so depending on + # libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird. + if ! use alsa ; then + rm -v lib/libjsound.* || die + fi + + if use headless-awt ; then + # do not die if not available, -f for bug #934974 + rm -fv lib/lib*{[jx]awt,splashscreen}* || die + fi + fi + + if ! use source ; then + rm -v lib/src.zip || die + fi + + rm -v lib/security/cacerts || die + dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts + + dodir "${dest}" + cp -pPR * "${ddest}" || die + + # provide stable symlink + dosym "${P}" "/opt/${PN}-${SLOT}" + + java-vm_install-env "${FILESDIR}"/${PN}.env.sh + java-vm_set-pax-markings "${ddest}" + java-vm_revdep-mask + java-vm_sandbox-predict /dev/random /proc/self/coredump_filter +} + +pkg_postinst() { + java-vm-2_pkg_postinst +} diff --git a/dev-java/openjdk/Manifest b/dev-java/openjdk/Manifest index 781fa6a3d30d..80371e0c30a6 100644 --- a/dev-java/openjdk/Manifest +++ b/dev-java/openjdk/Manifest @@ -7,8 +7,8 @@ DIST openjdk-21.0.12.1_p1.tar.gz 114156415 BLAKE2B 450067022a3cd575ed070cd2dd445 DIST openjdk-21.0.12_p8.tar.gz 114138339 BLAKE2B ec0757e617ff218eb3811e19b415d4ff92f33d5d5a10e09aa27ed658aff50f0d3ac3e953839c7a6a3c8ebf67c124ece10c1a638107cf7a91b2348c4f8bf03949 SHA512 47bd054adc8ca52ba68d212375a0d4f32b822dcbbf54bfde902b1ab09b7117cca03e5f54d07f62ed9b5be5b8b88aac225e0881a7a2b6ea653a89fa64193a937d DIST openjdk-25.0.4.1_p1.tar.gz 119672034 BLAKE2B 1242502393f2666265f20cc316e37c7458b9e100bdf3504a5d78b7fa9c6c10a3eadea8dce26a60ff6393d869110d7e6d2268df72387fd1c6983ae70c72aed266 SHA512 54e2e97893895b7edc881b425328fbefa51e21d90b887b531cf7bf15f7bde58ce79e50247be8619b9b9402d3d5b03a657554a6855b35bdc6567b40552f4b9c09 DIST openjdk-25.0.4_p7.tar.gz 119669964 BLAKE2B f3314ac0197b30609db25a40825f90ce208fc19412a07dfe0bead2db185a04f1fbfb8230fbe44ea6279b39f16fcc8a1d0b132df1acbaa72a41ab12bd734d32fc SHA512 904b1a621fe0031ae4eed9b25ebc4bb977e07822dbd4796e40eefe3d25e8c1c5f86f33037ec1c5364e66dfe1f098415db6c7fc6f488a93c9b298c52461d3683b -DIST openjdk-27_beta35.tar.gz 121508800 BLAKE2B 41194b5a08ddc9bc1214d6caaef0d4728e50a88de1a994560ee4670fd261174a4125aa3e4edd90f1693d29096af2d30c27c544eaffd45b56869d173da7b8a1eb SHA512 73c92ff127014357db4bf12f8c543e47cc6ea26893381eed617827c02edd68d43f99fea0524a183c7bb7135dac2b962a06a37fe2ed9efb75d36847760eee276a -DIST openjdk-28_alpha13.tar.gz 119964487 BLAKE2B 4739d9fe422c8270c6b6d845fdd9ef490a3af45a803c0b5e7dca0804c5a1fd2f9508984420ee0564b323fa641615274f72f6a38cd71ed58b6047e6e283053c4d SHA512 e16fea97f3bce51bf43e10281c16ee6f08a01eb7bc5218db37bfb4459231f0019325c11d74a477fb1f6bdf34171ec2ce56f05ed520ba671c773c35a7f19f8e23 +DIST openjdk-27_p35.tar.gz 121507063 BLAKE2B ea8a73fb1c1b53d4aff85a0bf175c393222c54c026e623b5ae225b3dc2f4ff05c85d74301f3e82bcc039ebf7c46079fc1c3884c62edcc7f79d6357eaa9fcbed4 SHA512 168095c4e6440719259ce7c6af8264e93ba3de5ab1f1e5cc6693cb81cd357be03d54cd6962798e2bed89f40f511e9f32a33d6dc4fe0219719eb3faa74356cdc7 +DIST openjdk-28_alpha15.tar.gz 120151416 BLAKE2B ee98c0caa038422815ef8589ef645855d112cb6f532eaaadd40ca799ed606d36dfb6d31d720875fa816a59a85b4ce2fb509bf23e22ab25606c5a04049d81b11b SHA512 fb95cd28d07119480b49fd2c3577f7a978568953f59d8eb1c0de40dea78f4e7d711acdf75701b879cda60e37787e6a9947666462b168f45134d28f19ad288fe1 DIST openjdk-8.502_p07.tar.gz 93987454 BLAKE2B 4118c050e590f7058ec47e4988eee66708be04c652dfa38b17273e83ff176c893e635202eef1db690f8a6ed322fe63000258e4c69006901a766098c1203990ad SHA512 fdcb0cc19cba5bb8cabfc3c6439ae5d1ce33d5fa500b1fe2a7b8152bedaacdda11e58fd2eb0357a815dfc1a44423023a9149409c0cdaac931fe0958e91bca343 DIST openjdk-8.504_p01.tar.gz 93982677 BLAKE2B 18b0913ee67b4c86485112411a173373daccef26da5429b03bcc62d7821bfdb647acc95c23016034cbd082dccce598eade8f25f56f76fdd149ad504e8efaaaf2 SHA512 65f7bc9603dad6ecb206fa62ba1e9c6b4b11cbbdaf4a9d69e5aa2ec57806f3447fdd0fbf7a11b34ecf5e504579721bb5c0b211e66a96972b0a092ec2b9e840c4 DIST openjdk-bootstrap-11.0.13_p8-ppc64.tar.xz 108215404 BLAKE2B 5e6c0b905b34b437137922b73a9724da96b8832186fea945f8c73d941db822ca1cc5718f3ecb4607ed98d1f8241c9f365b54caaf978863e8b84680a94f067b5d SHA512 732e2220219d42be10589fcaf2420da87ebc8564b4afc6bd02f61f31cdca9c31b339366e34d374fb814499b92f8aa796435a18f28e10c8cb00d9a0f5953bb60e diff --git a/dev-java/openjdk/openjdk-27_beta35.ebuild b/dev-java/openjdk/openjdk-27_p35.ebuild index 034b6b9eae9b..4ff186cad1d8 100644 --- a/dev-java/openjdk/openjdk-27_beta35.ebuild +++ b/dev-java/openjdk/openjdk-27_p35.ebuild @@ -68,7 +68,7 @@ S="${WORKDIR}/${JDK_REPO}-jdk-${MY_PV//+/-}" LICENSE="GPL-2-with-classpath-exception" SLOT="$(ver_cut 1)" - +KEYWORDS="~amd64" IUSE="alsa big-endian cups debug doc examples headless-awt +jbootstrap selinux source static-libs +system-bootstrap systemtap" REQUIRED_USE=" @@ -149,22 +149,6 @@ pkg_setup() { JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT}" JAVA_PKG_WANT_SOURCE="${SLOT}" JAVA_PKG_WANT_TARGET="${SLOT}" - - # The nastiness below is necessary while the gentoo-vm USE flag is - # masked. First we call java-pkg-2_pkg_setup if it looks like the - # flag was unmasked against one of the possible build VMs. If not, - # we try finding one of them in their expected locations. This would - # have been slightly less messy if openjdk-bin had been installed to - # /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env - # file but disable it so that it would not normally be selectable. - - local vm - for vm in ${JAVA_PKG_WANT_BUILD_VM}; do - if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then - java-pkg-2_pkg_setup - return - fi - done } src_prepare() { diff --git a/dev-java/openjdk/openjdk-28_alpha13.ebuild b/dev-java/openjdk/openjdk-28_alpha15.ebuild index 778d34293e8e..05d1ee1ab663 100644 --- a/dev-java/openjdk/openjdk-28_alpha13.ebuild +++ b/dev-java/openjdk/openjdk-28_alpha15.ebuild @@ -151,22 +151,6 @@ pkg_setup() { JAVA_PKG_WANT_BUILD_VM="openjdk-27 openjdk-${SLOT} openjdk-bin-${SLOT}" JAVA_PKG_WANT_SOURCE="${SLOT}" JAVA_PKG_WANT_TARGET="${SLOT}" - - # The nastiness below is necessary while the gentoo-vm USE flag is - # masked. First we call java-pkg-2_pkg_setup if it looks like the - # flag was unmasked against one of the possible build VMs. If not, - # we try finding one of them in their expected locations. This would - # have been slightly less messy if openjdk-bin had been installed to - # /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env - # file but disable it so that it would not normally be selectable. - - local vm - for vm in ${JAVA_PKG_WANT_BUILD_VM}; do - if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then - java-pkg-2_pkg_setup - return - fi - done } src_prepare() { diff --git a/dev-java/openjdk/openjdk-8.504_p01.ebuild b/dev-java/openjdk/openjdk-8.504_p01.ebuild index 2fddd6f251df..ac8b5d860841 100644 --- a/dev-java/openjdk/openjdk-8.504_p01.ebuild +++ b/dev-java/openjdk/openjdk-8.504_p01.ebuild @@ -52,6 +52,7 @@ IUSE="alsa big-endian debug cups doc examples headless-awt +jbootstrap selinux s COMMON_DEPEND=" media-libs/freetype:2= + media-libs/fontconfig:1.0 media-libs/giflib:0/7 virtual/zlib:= " @@ -78,7 +79,6 @@ DEPEND=" app-arch/zip media-libs/alsa-lib net-print/cups - virtual/pkgconfig x11-base/xorg-proto x11-libs/libX11 x11-libs/libXext @@ -194,32 +194,32 @@ src_configure() { tc-export_build_env CC CXX PKG_CONFIG STRIP myconf+=( - --disable-ccache - --disable-precompiled-headers - --enable-unlimited-crypto - --with-boot-jdk="${JDK_HOME}" - --with-extra-cflags="${CFLAGS}" - --with-extra-cxxflags="${CXXFLAGS}" - --with-extra-ldflags="${LDFLAGS}" - --with-freetype=system - --with-freetype-lib="$( $(tc-getPKG_CONFIG) --variable=libdir freetype2 )" - --with-freetype-include="$( $(tc-getPKG_CONFIG) --variable=includedir freetype2)/freetype2" - --with-giflib="${XPAK_BOOTSTRAP:-system}" - --with-jtreg=no - --with-jobs=1 - --with-num-cores=1 - --with-update-version="$(ver_cut 2)" - --with-build-number="b$(ver_cut 4)" - --with-milestone="fcs" # magic variable that means "release version" - --with-vendor-name="Gentoo" - --with-vendor-url="https://gentoo.org" - --with-vendor-bug-url="https://bugs.gentoo.org" - --with-vendor-vm-bug-url="https://bugs.openjdk.java.net" - --with-zlib="${XPAK_BOOTSTRAP:-system}" - --with-native-debug-symbols=$(usex debug internal none) - $(usex headless-awt --disable-headful '') - $(tc-is-clang && echo "--with-toolchain-type=clang") - ) + --disable-ccache + --disable-precompiled-headers + --enable-unlimited-crypto + --with-boot-jdk="${JDK_HOME}" + --with-extra-cflags="${CFLAGS}" + --with-extra-cxxflags="${CXXFLAGS}" + --with-extra-ldflags="${LDFLAGS}" + --with-freetype=system + --with-freetype-lib="$( $(tc-getPKG_CONFIG) --variable=libdir freetype2 )" + --with-freetype-include="$( $(tc-getPKG_CONFIG) --variable=includedir freetype2)/freetype2" + --with-giflib="${XPAK_BOOTSTRAP:-system}" + --with-jtreg=no + --with-jobs=1 + --with-num-cores=1 + --with-update-version="$(ver_cut 2)" + --with-build-number="b$(ver_cut 4)" + --with-milestone="fcs" # magic variable that means "release version" + --with-vendor-name="Gentoo" + --with-vendor-url="https://gentoo.org" + --with-vendor-bug-url="https://bugs.gentoo.org" + --with-vendor-vm-bug-url="https://bugs.openjdk.java.net" + --with-zlib="${XPAK_BOOTSTRAP:-system}" + --with-native-debug-symbols=$(usex debug internal none) + $(usex headless-awt --disable-headful '') + $(tc-is-clang && echo "--with-toolchain-type=clang") + ) ( unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC MAKE XARGS diff --git a/dev-java/tomcat-native/Manifest b/dev-java/tomcat-native/Manifest index 0c6bc85210bd..0172c7d51461 100644 --- a/dev-java/tomcat-native/Manifest +++ b/dev-java/tomcat-native/Manifest @@ -1,4 +1,8 @@ DIST tomcat-native-1.3.8-src.tar.gz 355659 BLAKE2B 75d6600753ebddda3ad46162640910a9aa70aa8bd504c2b2f851d407a0cdc5a1110ba7a0ae9d1cfa4b37c56866dee6f6a7623cd5105e529b4b4cdf5bb336bf76 SHA512 a12b97979037720465300cbc05777ff6ee2ec1dc59ff698864d7068800bf0c2d2606a4e0e29a4d7b16f92c9130604a13e0cc27929a224c9ff77e532ac98a4695 DIST tomcat-native-1.3.8-src.tar.gz.asc 833 BLAKE2B 9e532e7eb97308275cd94b01b88f1dc8f71034df8fe6c2acb1e56a3781e9ac36a1eaff342b1ca004bd189fb381859d8369372a4d9d6d8791150997140d6e8bc0 SHA512 b9c6ec501926f747b7e178a9eadc6f366ba4af58882077b3ebc870c9d7f7039db8565707c18e731bc9fb590dcdf21e6d73c9145df9abb0f34136c15b9a2b4cc1 +DIST tomcat-native-1.3.9-src.tar.gz 357674 BLAKE2B 0df3172d4eea05c0340c4fc820a7995035f9546b51c4630480649b539597434ce95bf7260167003b69871c96817f9e8dcdde9949ac66324cfe912e7b0bdc4b5b SHA512 d9394494ef41e7210bab85b34dd39ece18029587496682fbc5ea334692c1229ee3196b5981bab224f9ca2305e745e569343f43c9e7274fff8ae1950882cc3afb +DIST tomcat-native-1.3.9-src.tar.gz.asc 833 BLAKE2B 40c681b61dcf928c380b29671ce61eb6c24cdb7155bb6b16845d72edae39035e6e80660755d5718fe1e8ddef0d8d76a1ae5863278ad2f69cd1868aaaf67023b5 SHA512 a70e063b4f6fb377f6f9be47821eb4cda0d177bdbbf6caf1398c224e02cdb4639a95a12c4f4014859e59d8f6175c659cd7de53f7efb585cc97c6995e80d97fba DIST tomcat-native-2.0.15-src.tar.gz 476797 BLAKE2B 08136de22b018abf5f531f52a8a9a75c8578ff477b4332b131842e3a47ae566c3e3b7cf92fa172ec8b19abcbe9e2a70b3f0f5517e00e78f1b58308a7095ab7ae SHA512 a0b53890c36c3409e764895cfc521cdbbc49af4d03968f5d3ed72ba686524a05bd15c3f7ab8259fbab091547ecbc2fb7aae8f47d8bc38027db0f6a5dbda65004 DIST tomcat-native-2.0.15-src.tar.gz.asc 833 BLAKE2B d5bf8356f8821a8cadbd0fb61b563777832e0b214016214ab2beb732736be851c125c0d8a3388e93431f8942538743e82b6e11304252b315b2791184e4318137 SHA512 eb3f14786323a01cfcd27174e246f293dab726e7514309a58334ac65a1685c1385eef03eb03dd83091b84ca2145dea79c3fd198600224bf0e6ac369e08f8805c +DIST tomcat-native-2.0.16-src.tar.gz 471965 BLAKE2B 1c9c789a97d4d6530ca80611ef77bbfb82104a82ef831ea31faf03dc17c1eb5c59ea95b407806e49dfbad0c87ef0a60d4adfa2192f39603f84465712e3368ba0 SHA512 a38713bfd18a0e6cab9cfb8cacb694fecb6790c13ff495a56ca804f8c9fe2e521356e4eeeef1e2c9967a5f36618779dc321adf65a069676290cf493d6222fbb9 +DIST tomcat-native-2.0.16-src.tar.gz.asc 833 BLAKE2B 1af9d1aed99576f2fbe125fd1a448e90c17244d28523105bca1397eed3a3d00ee98c3407c577383a023f3070f1f4e2d26a6966f82cec948f746c17153307a9a2 SHA512 97c05e95359cd926586785bbd58dd716b08a3187267c9747cc2ad63b35ad0ad18ef748aa4d6f51d7957abe94d430a3ee3621a051500ef5fa03dc2bf75a6acb3b diff --git a/dev-java/tomcat-native/tomcat-native-1.3.9.ebuild b/dev-java/tomcat-native/tomcat-native-1.3.9.ebuild new file mode 100644 index 000000000000..b122573e109b --- /dev/null +++ b/dev-java/tomcat-native/tomcat-native-1.3.9.ebuild @@ -0,0 +1,85 @@ +# 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 + +DESCRIPTION="Allows Tomcat to use certain native resources for better performance" +HOMEPAGE="https://tomcat.apache.org/native-doc/" +SRC_URI="mirror://apache/tomcat/tomcat-connectors/native/${PV}/source/${P}-src.tar.gz + verify-sig? ( mirror://apache/tomcat/tomcat-connectors/native/${PV}/source/${P}-src.tar.gz.asc )" +S=${WORKDIR}/${P}-src/native + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="static-libs" + +BDEPEND="verify-sig? ( ~sec-keys/openpgp-keys-apache-tomcat-11 )" +DEPEND=" + >=virtual/jdk-1.8:* +" +RDEPEND=" + dev-libs/apr:1= + dev-libs/openssl:0/3 + >=virtual/jre-1.8:* +" + +JAVA_RESOURCE_DIRS="../resources" +JAVA_SRC_DIR="../java" +JAVA_TEST_GENTOO_CLASSPATH="junit-4" +JAVA_TEST_SRC_DIR="../test" +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/tomcat-11.apache.org.asc" + +DOCS=( ../{CHANGELOG.txt,NOTICE,README.txt} ) + +src_prepare() { + java-pkg-2_src_prepare + mkdir -p "${JAVA_RESOURCE_DIRS}/META-INF" || die + sed -ne '/attribute name/s:^.*name="\(.*\)" value="\(.*\)".*$:\1\: \2:p' \ + ../build.xml | + sed "s:\${version}:${PV}:" \ + > "${JAVA_RESOURCE_DIRS}/META-INF/MANIFEST.MF" || die +} + +src_configure() { + local myeconfargs=( + --with-apr="${EPREFIX}"/usr/bin/apr-1-config + --with-ssl="${EPREFIX}"/usr + ) + econf "${myeconfargs[@]}" +} + +src_compile() { + java-pkg-simple_src_compile + default +} + +src_test() { + # Adjusting "String testFile =" path in TestFile.java:29 to match ${S} + sed \ + -e '/String testFile =/s&test/&../test/&' \ + -i ../test/org/apache/tomcat/jni/TestFile.java || die + + JAVA_TEST_EXTRA_ARGS=( + -Djava.library.path=".libs" + --enable-native-access=ALL-UNNAMED + ) + java-pkg-simple_src_test +} + +src_install() { + java-pkg-simple_src_install + java-pkg_doso .libs/*.so* + dodoc -r ../docs + ! use static-libs && find "${D}" -name '*.la' -delete || die +} + +pkg_postinst() { + elog "For more information, please visit" + elog "https://tomcat.apache.org/tomcat-9.0-doc/apr.html" +} diff --git a/dev-java/tomcat-native/tomcat-native-2.0.16.ebuild b/dev-java/tomcat-native/tomcat-native-2.0.16.ebuild new file mode 100644 index 000000000000..a9f85443a758 --- /dev/null +++ b/dev-java/tomcat-native/tomcat-native-2.0.16.ebuild @@ -0,0 +1,81 @@ +# 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 + +DESCRIPTION="Allows Tomcat to use certain native resources for better performance" +HOMEPAGE="https://tomcat.apache.org/native-doc/" +SRC_URI="mirror://apache/tomcat/tomcat-connectors/native/${PV}/source/${P}-src.tar.gz + verify-sig? ( mirror://apache/tomcat/tomcat-connectors/native/${PV}/source/${P}-src.tar.gz.asc )" +S=${WORKDIR}/${P}-src/native + +LICENSE="Apache-2.0" +SLOT="2" +KEYWORDS="~amd64" +IUSE="static-libs" + +BDEPEND="verify-sig? ( ~sec-keys/openpgp-keys-apache-tomcat-11 )" +DEPEND=">=virtual/jdk-17:*" #958655 + +RDEPEND=" + dev-libs/apr:1= + >=dev-libs/openssl-3.5.8:0/3 + >=virtual/jre-1.8:* +" + +JAVA_RESOURCE_DIRS="../resources" +JAVA_SRC_DIR="../java" +JAVA_TEST_GENTOO_CLASSPATH="junit-4" +JAVA_TEST_SRC_DIR="../test" +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/tomcat-11.apache.org.asc" + +DOCS=( ../{CHANGELOG.txt,NOTICE,README.txt} ) + +src_prepare() { + java-pkg-2_src_prepare + mkdir -p "${JAVA_RESOURCE_DIRS}/META-INF" || die + sed -ne '/attribute name/s:^.*name="\(.*\)" value="\(.*\)".*$:\1\: \2:p' \ + ../build.xml | + sed "s:\${version}:${PV}:" \ + > "${JAVA_RESOURCE_DIRS}/META-INF/MANIFEST.MF" || die +} + +src_configure() { + local myeconfargs=( + --with-apr="${EPREFIX}"/usr/bin/apr-1-config + --with-ssl="${EPREFIX}"/usr + ) + econf "${myeconfargs[@]}" +} + +src_compile() { + java-pkg-simple_src_compile + default +} + +src_test() { + # WARNING: A restricted method in java.lang.System has been called + # WARNING: Restricted methods will be blocked in a future release unless native access is enabled + JAVA_TEST_EXTRA_ARGS=( + -Djava.library.path=".libs" + --enable-native-access=ALL-UNNAMED + ) + java-pkg-simple_src_test +} + +src_install() { + java-pkg-simple_src_install + java-pkg_doso .libs/*.so* + dodoc -r ../docs + ! use static-libs && find "${D}" -name '*.la' -delete || die +} + +pkg_postinst() { + elog "For more information, please visit" + elog "https://tomcat.apache.org/tomcat-9.0-doc/apr.html" +} diff --git a/dev-lang/jsonnet/jsonnet-0.22.0.ebuild b/dev-lang/jsonnet/jsonnet-0.22.0.ebuild index db7942f5a365..10d1ce0cde70 100644 --- a/dev-lang/jsonnet/jsonnet-0.22.0.ebuild +++ b/dev-lang/jsonnet/jsonnet-0.22.0.ebuild @@ -16,7 +16,7 @@ SRC_URI="https://github.com/google/jsonnet/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="Apache-2.0" SLOT="0/0" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" IUSE="custom-optimization doc examples python test" RESTRICT="!test? ( test )" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest index 8e686ae6b1b8..5f8c779deb79 100644 --- a/dev-lang/nim/Manifest +++ b/dev-lang/nim/Manifest @@ -1,2 +1,3 @@ DIST nim-2.2.10.tar.xz 8287652 BLAKE2B 84fd309bcb808e16221ddd5076776f3f80c2669c356e658d334077a83d9ecb89c1c5a34deb3280d259b8ea481c5598d907b9c402981649c5d1decd7b58e50973 SHA512 467e9cc5123ccdbbf85279497e1f694ce117ccdbfdebdbf88009d292e42523fcde5d91f27e53ce5f8056056cc4cd6f02596dd6dc19be27fec051a3980670a4ff +DIST nim-2.2.12.tar.xz 10259940 BLAKE2B 5f19132e6500d393eb4b1a02e2bfa6f063f03a0837c7c8ee1ad5db29bf025dc7fb6ecf052599095e8d8852f1cdfd32a1ba4fe57c5bdf6ac7ddba3151a8cc9e03 SHA512 f60ceaf3f8fe538a16e139938264d796def4668e7e84487e17139c0735be0765716f87c54cb139aec3f53167305de5703ad299427720bb21c532e0712c65b7f9 DIST nim-atlas-0.8.0.tar.gz 59097 BLAKE2B 231b238ac3b15cc2c2d9ad927f80ae72d8ae4c649277515f32df6cc04275ccd38db5307d627572af547501e6522c06c86dc279dc3e13b5385f14e24032f6fe69 SHA512 747c13e2c5bd45a1dc6c1426f8c7637f638ada9dd4c9aa3edf4ef8367060e73226dc4bcde6380fac25ed47ebf4097fd223c72fadc3cceba8c71dd0f0571e47eb diff --git a/dev-lang/nim/nim-2.2.12.ebuild b/dev-lang/nim/nim-2.2.12.ebuild new file mode 100644 index 000000000000..ea9bb37c25be --- /dev/null +++ b/dev-lang/nim/nim-2.2.12.ebuild @@ -0,0 +1,188 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ATLAS_V="0.8.0" + +inherit edo multiprocessing shell-completion toolchain-funcs xdg-utils + +DESCRIPTION="Compiled, garbage-collected systems programming language" +HOMEPAGE="https://nim-lang.org/ + https://github.com/nim-lang/Nim/" + +SRC_URI=" + https://nim-lang.org/download/${P}.tar.xz + https://github.com/nim-lang/atlas/archive/refs/tags/${ATLAS_V}.tar.gz + -> nim-atlas-${ATLAS_V}.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~x86" + +IUSE="test-js test" +RESTRICT="!test? ( test )" + +BDEPEND=" + test? ( + dev-db/sqlite:3 + dev-libs/boehm-gc + dev-libs/libffi + dev-libs/libpcre:3 + dev-libs/openssl + media-libs/libsdl + media-libs/libsfml + test-js? ( + net-libs/nodejs + ) + ) +" + +PATCHES=( "${FILESDIR}/nim-2.2.6-makefile.patch" ) + +src_configure() { + xdg_environment_reset # bug #667182 + + unset NIMBLE_DIR + tc-export CC CXX LD + + mkdir -p "${HOME}/.parallel" || die + touch "${HOME}/.parallel/will-cite" || die "parallel setup failed" + + cat > nim.cfg <<- EOF || die "Failed to create Nim config" + cc:"gcc" + gcc.exe:"$(tc-getCC)" + gcc.linkerexe:"$(tc-getCC)" + gcc.cpp.exe:"$(tc-getCXX)" + gcc.cpp.linkerexe:"$(tc-getCXX)" + gcc.options.speed:"${CFLAGS}" + gcc.options.size:"${CFLAGS}" + gcc.options.debug:"${CFLAGS}" + gcc.options.always:"${CPPFLAGS}" + gcc.options.linker:"${LDFLAGS}" + gcc.cpp.options.speed:"${CXXFLAGS}" + gcc.cpp.options.size:"${CXXFLAGS}" + gcc.cpp.options.debug:"${CXXFLAGS}" + gcc.cpp.options.always:"${CPPFLAGS}" + gcc.cpp.options.linker:"${LDFLAGS}" + + $([[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] && echo '--colors:"off"') + -d:"release" + + # some tests don't work with processing hints + --processing:"off" + EOF + + cp -r "${WORKDIR}/atlas-${ATLAS_V}" "${S}/dist/atlas" || die + + mkdir -p "${S}/dist/atlas/dist" || die + cp -r "${S}/dist/nimble/vendor/sat" "${S}/dist/atlas/dist/sat" || die +} + +src_compile() { + emake CC="$(tc-getCC)" + + local -x PATH="${S}/bin:${PATH}" + local -a nimflags=( + -d:release + --listCmd + --parallelBuild:$(makeopts_jobs) + ) + + edo ./bin/nim compile "${nimflags[@]}" koch + edo ./koch boot "${nimflags[@]}" -d:nimUseLinenoise --skipParentCfg:off + edo ./koch tools "${nimflags[@]}" + edo ./bin/nim compile "${nimflags[@]}" ./tools/niminst/niminst.nim +} + +src_test() { + local -x PATH="${S}/bin:${PATH}" + local -a nimflags=( + # Leave only the safe hints enabled. + --hint:all:off + --hint:User:on + --hint:UserRaw:on + ) + local -a testament_args=( + --skipFrom:"${FILESDIR}/nim-2.2.2-testament-skipfile.txt" + --nim:"bin/nim" + --targets:"$(usex test-js 'c js' 'c')" + ) + + if [[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] ; then + testament_args+=( --colors:off ) + fi + + local -a categories=() + readarray -t categories < \ + <(find tests -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort) + + # AdditionalCategories from "testament/categories.nim". + categories+=( debugger examples lib ) + + local test_return=0 + + local tcat="" + local checkpoint="" + for tcat in "${categories[@]}"; do + # Use checkpoints for less painful testing. + checkpoint="${T}/.testament-${tcat}" + + if [[ -f "${checkpoint}" ]] ; then + continue + fi + + case "${tcat}" in + testdata ) + : + ;; + arc | async | coroutines | errmsgs | exception | generics | gc | \ + ic | int | js | lent | msgs | objects | overflow | stdlib | \ + stylecheck | system | testament | untestable | valgrind ) + einfo "Skipped nim test category: ${tcat}" + ;; + * ) + einfo "Running tests in category '${tcat}'..." + nonfatal \ + edo ./bin/testament "${testament_args[@]}" \ + category "${tcat}" "${nimflags[@]}" \ + || test_return=1 + ;; + esac + + touch "${checkpoint}" || die + done + + if [[ "${test_return}" -eq 1 ]] ; then + die "tests failed, please inspect the failed test categories above" + fi +} + +src_install() { + local -x PATH="${S}/bin:${PATH}" + + edo ./koch install "${ED}/usr/lib" + dosym -r /usr/lib/nim/bin/nim /usr/bin/nim + + # "./koch install" installs only "nim" binary but not the rest. + local exe="" + while read -r exe ; do + einfo "Installing nim support tool: ${exe}" + + exeinto /usr/bin + doexe "${exe}" + done < \ + <(find ./bin -type f -not -iname nim) + + newbashcomp dist/nimble/nimble.bash-completion nimble + newbashcomp tools/nim.bash-completion nim + newzshcomp dist/nimble/nimble.zsh-completion _nimble + newzshcomp tools/nim.zsh-completion _nim + + # Install the @nim-rebuild set for Portage. + insinto /usr/share/portage/config/sets + newins "${FILESDIR}/nim-sets.conf" nim.conf + + einstalldocs +} diff --git a/dev-lang/perl/perl-5.44.0.ebuild b/dev-lang/perl/perl-5.44.0.ebuild index d0d7ff00a7cb..01bd95148d3b 100644 --- a/dev-lang/perl/perl-5.44.0.ebuild +++ b/dev-lang/perl/perl-5.44.0.ebuild @@ -54,7 +54,7 @@ LICENSE="|| ( Artistic GPL-1+ )" SLOT="0/${SUBSLOT}" if [[ "${PV##*.}" != "9999" ]] ; then - KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" fi IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath" diff --git a/dev-lang/php/php-8.2.33.ebuild b/dev-lang/php/php-8.2.33.ebuild index c5390108592f..dc5ff96a8588 100644 --- a/dev-lang/php/php-8.2.33.ebuild +++ b/dev-lang/php/php-8.2.33.ebuild @@ -20,7 +20,7 @@ LICENSE="PHP-3.01 unicode? ( BSD-2 LGPL-2.1 )" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" # We can build the following SAPIs in the given order SAPIS="embed cli cgi fpm apache2 phpdbg" diff --git a/dev-lang/php/php-8.3.33.ebuild b/dev-lang/php/php-8.3.33.ebuild index ec582e2d1650..73a0d7dd4cf6 100644 --- a/dev-lang/php/php-8.3.33.ebuild +++ b/dev-lang/php/php-8.3.33.ebuild @@ -19,7 +19,7 @@ LICENSE="PHP-3.01 unicode? ( BSD-2 LGPL-2.1 )" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" # We can build the following SAPIs in the given order SAPIS="embed cli cgi fpm apache2 phpdbg" diff --git a/dev-lang/unison-lang-bin/Manifest b/dev-lang/unison-lang-bin/Manifest index 2c012c61bf43..49d09be7d84d 100644 --- a/dev-lang/unison-lang-bin/Manifest +++ b/dev-lang/unison-lang-bin/Manifest @@ -1,2 +1,4 @@ DIST unison-lang-bin-1.3.0.amd64.linux.bin.tar.gz 38191876 BLAKE2B 3760bd50c896d2141ae5a7412d3a2d6a9050831c356e19e6062f9e08c6101380b3a5d0e0dff96178c75820947d57fc200295770a1f7fa9e3a5828be5ba27637f SHA512 7722903f15cae9e1be04eb395d7ab20d43a9969c0e4f50271743539c889911a6d6e4dd3467369ab2065d50ab09d19bcc85a5db904a02cad5a99ca0efb73483a6 DIST unison-lang-bin-1.3.0.arm64.linux.bin.tar.gz 43644643 BLAKE2B 136f2ac1fc1ea3d649ead31b17541f58f86c1a6efb7489f2ccb674a7bf8fe5b612afac895c21acfbef05aa5e062382acc96e2a076282bb24234c62caf4f557ab SHA512 2250c15dd120bac9b83013120fba2f31eb45ae508c922ad3198b079e85eb81717c076fe649fdfa3369aea73f3809cab0a0b04a4b7b4af5267284446d123f5cdd +DIST unison-lang-bin-1.4.0.amd64.linux.bin.tar.gz 38214159 BLAKE2B dc2257923ec5ff65e5ca1473b1d87dc7747db7a8637e3cf1f5b616702aced2c7fdc6d146a79f575fe41a95e2cb5bb7c06a4ee8f04435434adec7dbbebf60da73 SHA512 70609e55f1240df409e24d04952917016fae85d3a707ee1473f9043132efc49c227e84bf546cd90cc721067794a37395bfd827b11df4f361c880fb6e6b5add3f +DIST unison-lang-bin-1.4.0.arm64.linux.bin.tar.gz 43665767 BLAKE2B 33c275db5f72145aca312903e6a6e757a82c6f0d9d485343e95ff2cede00dbafc8f66ae99c179c51817c718bf8b9d0e05cfe3f4d34ae473457b601abf0bf51b6 SHA512 f702cc6697f95e0beaf41d60c738b9581b2f9b6d7efecacd1ca9ef2ae45477afa1fc5cf6c05ffad4b76d12062ae49d7e515553abc3470e7ab9f7147a9604c8f4 diff --git a/dev-lang/unison-lang-bin/unison-lang-bin-1.4.0.ebuild b/dev-lang/unison-lang-bin/unison-lang-bin-1.4.0.ebuild new file mode 100644 index 000000000000..911ace9deb40 --- /dev/null +++ b/dev-lang/unison-lang-bin/unison-lang-bin-1.4.0.ebuild @@ -0,0 +1,35 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +DESCRIPTION="A friendly programming language from the future" +HOMEPAGE="https://unison-lang.org/ + https://github.com/unisonweb/unison/" + +SRC_BASE="https://github.com/unisonweb/unison/releases/download/release%2F${PV}" +SRC_URI=" + amd64? ( ${SRC_BASE}/ucm-linux-x64.tar.gz -> ${P}.amd64.linux.bin.tar.gz ) + arm64? ( ${SRC_BASE}/ucm-linux-arm64.tar.gz -> ${P}.arm64.linux.bin.tar.gz ) +" +S="${WORKDIR}" + +LICENSE="BSD" +SLOT="0/${PV}" +KEYWORDS="~amd64" + +RDEPEND=" + dev-libs/gmp + virtual/zlib:= +" + +QA_PREBUILT="*" + +src_install() { + local app_home="/usr/share/${P}" + + insinto "/usr/share/${P}" + cp -r "${WORKDIR}"/* "${ED}/${app_home}" + dosym -r "${app_home}/ucm" /usr/bin/ucm + dosym -r "${app_home}/ucm" /usr/bin/unisonlang +} diff --git a/dev-libs/aws-c-auth/aws-c-auth-1.0.0.ebuild b/dev-libs/aws-c-auth/aws-c-auth-1.0.0.ebuild index 959a67838a63..214a9db3f743 100644 --- a/dev-libs/aws-c-auth/aws-c-auth-1.0.0.ebuild +++ b/dev-libs/aws-c-auth/aws-c-auth-1.0.0.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/awslabs/aws-c-auth/archive/refs/tags/v${PV}.tar.gz - LICENSE="Apache-2.0" SLOT="0/$(ver_cut 1-2)" -KEYWORDS="~amd64 ~arm64 ~riscv" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" IUSE="test" RESTRICT="!test? ( test )" diff --git a/dev-libs/aws-c-http/aws-c-http-1.0.0.ebuild b/dev-libs/aws-c-http/aws-c-http-1.0.0.ebuild index 41734b4a6575..112831b7c7e3 100644 --- a/dev-libs/aws-c-http/aws-c-http-1.0.0.ebuild +++ b/dev-libs/aws-c-http/aws-c-http-1.0.0.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/awslabs/aws-c-http/archive/refs/tags/v${PV}.tar.gz - LICENSE="Apache-2.0" SLOT="0/$(ver_cut 1-2)" -KEYWORDS="~amd64 ~arm64 ~riscv" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" IUSE="test" RESTRICT="!test? ( test )" diff --git a/dev-libs/aws-c-s3/Manifest b/dev-libs/aws-c-s3/Manifest index c736a1f9d08e..0d99991a5d7b 100644 --- a/dev-libs/aws-c-s3/Manifest +++ b/dev-libs/aws-c-s3/Manifest @@ -1,3 +1,4 @@ DIST aws-c-s3-0.11.2.tar.gz 430361 BLAKE2B f7b0d331b540066eef7f50b5451e8fefa058f5b4b70877beefabb36a6d5e610e8ea99903505b7edffcf459cffcfabc19cd27a93a3f7ec421a5a7851403d44d2e SHA512 6bb5a925882d2c645ee856665271977b9c332a1cc8b8f6acef8707eb5710101d8922c7fed12f5638f1cd44f1c59abf86704e49e7fdc361ed686cc005d5d152a3 DIST aws-c-s3-0.13.1.tar.gz 460654 BLAKE2B 6a297805c93b855b8228c7e49df46ab5a1801ce0cfb3a0cf9fe41fb0d0cabdbf5187aa03c7b776b94ea260768bbf1e0c9e3bc72cfd1532f9c8a81e3a541dd47f SHA512 08d7df6a9c01cbc6b1d14aa9f22a9b93b1b9d7fd10d4379be82a438f7709a1c4553f0bb0328ea52670897fb87c0c81d7fdf3cfeee9f499745f49597a93a7613b DIST aws-c-s3-1.1.1.tar.gz 500597 BLAKE2B d8a790abcece7b108b56c7567612d2edf6782e2e7262a82ac64ebe4b4fbd982bfc4f922997ce7c66702337ab81d827d110bbe58e698dc7c970155e281c6c8364 SHA512 28f5b18869af318d848a8cab69fdeb8e1991ca87a2b6e6dd3cb2e026f398bae8b832e7dba7960e271fe0295094419c22d47932c43e068a882fbe820e4f432086 +DIST aws-c-s3-1.1.2.tar.gz 502623 BLAKE2B 8e64f8196cafef0a73a3830f3521064c053f59e4418c5c9fc97a91c0f0184ac54207186a1bdfdfed5c904c6fd5488d6392e7a6486da8918eb39d7f05e02f5957 SHA512 6b424e00961e2252f071c2814a35ab20b4281cff0a129cb91c6b2228acaa6c925a7b7bb4aae568375ff80bc60ccd4ba17fcae29e25947cd98d4418a3d41d8913 diff --git a/dev-libs/aws-c-s3/aws-c-s3-1.1.2.ebuild b/dev-libs/aws-c-s3/aws-c-s3-1.1.2.ebuild new file mode 100644 index 000000000000..6f3666219264 --- /dev/null +++ b/dev-libs/aws-c-s3/aws-c-s3-1.1.2.ebuild @@ -0,0 +1,48 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="AWS C S3 async library" +HOMEPAGE="https://github.com/awslabs/aws-c-s3" +SRC_URI="https://github.com/awslabs/aws-c-s3/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND=" + >=dev-libs/aws-c-auth-1.0.0:= + >=dev-libs/aws-c-cal-1.0.0:= + >=dev-libs/aws-c-common-1.0.0:= + >=dev-libs/aws-c-http-1.0.0:= + >=dev-libs/aws-c-io-1.0.0:= + >=dev-libs/aws-checksums-1.0.0:= +" +RDEPEND="${DEPEND}" +BDEPEND="dev-libs/aws-c-common" + +src_configure() { + local mycmakeargs=( + -DAWS_GET_VERSION_MODULE="${ESYSROOT}/usr/$(get_libdir)/cmake/aws-c-common/modules/AwsGetVersion.cmake" + -DBUILD_TESTING=$(usex test) + ) + use test && mycmakeargs+=( + -DENABLE_NET_TESTS=OFF # Network Sandbox cause these to fail. + ) + + cmake_src_configure +} + +src_install() +{ + cmake_src_install + + if use test; then + rm "${ED}/usr/bin/s3" || die + fi +} diff --git a/dev-libs/gweather-locations/gweather-locations-2026.2.ebuild b/dev-libs/gweather-locations/gweather-locations-2026.2.ebuild index e34403a206ce..bd43fdf243b3 100644 --- a/dev-libs/gweather-locations/gweather-locations-2026.2.ebuild +++ b/dev-libs/gweather-locations/gweather-locations-2026.2.ebuild @@ -3,16 +3,27 @@ EAPI=8 -inherit gnome.org meson +PYTHON_COMPAT=( python3_{12..15} ) +inherit gnome.org meson python-any-r1 DESCRIPTION="GWeather Locations Database" HOMEPAGE="https://gitlab.gnome.org/GNOME/gweather-locations" + LICENSE="GPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" BDEPEND=" + $(python_gen_any_dep ' + dev-python/pygobject[${PYTHON_USEDEP}] + ') virtual/pkgconfig - dev-libs/libxml2 - dev-python/pylint " + +python_check_deps() { + python_has_version "dev-python/pygobject[${PYTHON_USEDEP}]" +} + +src_test() { + meson_src_test --no-suite lint +} diff --git a/dev-libs/iniparser/Manifest b/dev-libs/iniparser/Manifest index c05abfff66d5..3760c78ee1b0 100644 --- a/dev-libs/iniparser/Manifest +++ b/dev-libs/iniparser/Manifest @@ -1 +1,2 @@ DIST iniparser-v4.2.6.tar.bz2 34731 BLAKE2B ce63256b8a6640e188184f7d1d7de40690ca612938d6d06cb97d012fe40e05e647510d97221bc61fa25db47a96565b21e7fd346f370afde7d3c461f93c3e2fc0 SHA512 6a37c0bad24093c5852d232e13e1c2182ab97508be3b03a44ea5510a70884cb7ac1fa8a9e8415ece2d2a13c9b38efabc1d37d920d894a198b89cd04731f32392 +DIST iniparser-v4.3.0.tar.bz2 306990 BLAKE2B 32c35ced168511f2a72366dd5a47339d430830602d8aed6b3ca1b408ddcb7f2396ae418ada61d19eade7938e5002d9a70ac077428e7ca4f184aa29451a770f87 SHA512 351f0bbdecb147058cc234f1ab6b49579f93d5754b9c636336eb5fc069c8a141e6c6bb1d6f6a7640d60fc68c2617f4ed193cf534685c6706efa68dac0fb2357c diff --git a/dev-libs/iniparser/iniparser-4.3.0.ebuild b/dev-libs/iniparser/iniparser-4.3.0.ebuild new file mode 100644 index 000000000000..c55f13e2f22f --- /dev/null +++ b/dev-libs/iniparser/iniparser-4.3.0.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Free stand-alone ini file parsing library" +HOMEPAGE="https://gitlab.com/iniparser/iniparser/" +SRC_URI="https://gitlab.com/iniparser/iniparser/-/archive/v${PV}/${PN}-v${PV}.tar.bz2" +S=${WORKDIR}/${PN}-v${PV} + +LICENSE="MIT" +SLOT="0/4" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +IUSE="doc examples" +# tests need work, uses ruby + fetchcontent +RESTRICT="test" + +BDEPEND="doc? ( app-text/doxygen )" + +src_configure() { + local mycmakeargs=( + -DBUILD_DOCS=$(usex doc) + -DBUILD_STATIC_LIBS=no + ) + + cmake_src_configure +} + +src_install() { + local DOCS=( AUTHORS README.md FAQ* ) + cmake_src_install + + if use examples; then + docinto examples + dodoc -r example/. + fi +} diff --git a/dev-libs/libigloo/libigloo-0.9.5.ebuild b/dev-libs/libigloo/libigloo-0.9.5.ebuild index a895ce227977..3e07921fb41b 100644 --- a/dev-libs/libigloo/libigloo-0.9.5.ebuild +++ b/dev-libs/libigloo/libigloo-0.9.5.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://downloads.xiph.org/releases/igloo/${P}.tar.gz" LICENSE="LGPL-2+" SLOT="0" -KEYWORDS="amd64 ~arm64 ~ppc64 x86" +KEYWORDS="amd64 ~arm64 ~ppc ~ppc64 x86" RDEPEND="app-crypt/rhash:=" DEPEND="${RDEPEND}" diff --git a/dev-libs/libpeas/libpeas-2.2.1.ebuild b/dev-libs/libpeas/libpeas-2.2.1.ebuild index f474fb664139..201cd5dcd1a6 100644 --- a/dev-libs/libpeas/libpeas-2.2.1.ebuild +++ b/dev-libs/libpeas/libpeas-2.2.1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://gitlab.gnome.org/GNOME/libpeas" LICENSE="LGPL-2.1+" SLOT="2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86" IUSE="glade gtk-doc javascript lua +python vala" REQUIRED_USE=" diff --git a/dev-libs/libusb/libusb-1.0.30.ebuild b/dev-libs/libusb/libusb-1.0.30.ebuild index 43cdf1808aa7..ad4d1cbe1184 100644 --- a/dev-libs/libusb/libusb-1.0.30.ebuild +++ b/dev-libs/libusb/libusb-1.0.30.ebuild @@ -15,7 +15,7 @@ SRC_URI=" LICENSE="LGPL-2.1" SLOT="1" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" IUSE="debug doc examples static-libs test udev" RESTRICT="!test? ( test )" REQUIRED_USE="static-libs? ( !udev )" diff --git a/dev-ml/llvm/Manifest b/dev-ml/llvm/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/dev-ml/llvm/Manifest +++ b/dev-ml/llvm/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/dev-ml/llvm/llvm-23.1.0.ebuild b/dev-ml/llvm/llvm-24.0.0_pre20260916.ebuild index cce741c80c44..251f616bebcb 100644 --- a/dev-ml/llvm/llvm-23.1.0.ebuild +++ b/dev-ml/llvm/llvm-24.0.0_pre20260916.ebuild @@ -11,8 +11,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="0/${PV}" -KEYWORDS="~amd64 ~arm ~x86" -IUSE="debug test" +IUSE="+debug test" RESTRICT="!test? ( test )" RDEPEND=" diff --git a/dev-perl/Crypt-OpenSSL-RSA/Crypt-OpenSSL-RSA-0.370.0.ebuild b/dev-perl/Crypt-OpenSSL-RSA/Crypt-OpenSSL-RSA-0.370.0.ebuild index 6ab06c4bdc37..76d11bb8e21e 100644 --- a/dev-perl/Crypt-OpenSSL-RSA/Crypt-OpenSSL-RSA-0.370.0.ebuild +++ b/dev-perl/Crypt-OpenSSL-RSA/Crypt-OpenSSL-RSA-0.370.0.ebuild @@ -10,7 +10,7 @@ inherit perl-module DESCRIPTION="RSA encoding and decoding using the OpenSSL libraries" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" RDEPEND=" dev-perl/Crypt-OpenSSL-Bignum diff --git a/dev-perl/ExtUtils-XSpp/ExtUtils-XSpp-0.180.0-r2.ebuild b/dev-perl/ExtUtils-XSpp/ExtUtils-XSpp-0.190.0.ebuild index a81c05e04a17..71812c25dd55 100644 --- a/dev-perl/ExtUtils-XSpp/ExtUtils-XSpp-0.180.0-r2.ebuild +++ b/dev-perl/ExtUtils-XSpp/ExtUtils-XSpp-0.190.0.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -DIST_AUTHOR=SMUELLER -DIST_VERSION=0.18 +DIST_AUTHOR=MBARBON +DIST_VERSION=0.19 inherit perl-module DESCRIPTION="XS for C++" @@ -24,10 +24,6 @@ BDEPEND="${RDEPEND} ) " -PATCHES=( - "${FILESDIR}/${P}-no-dot-inc.patch" -) - PERL_RM_FILES=( "t/zzz_pod.t" ) diff --git a/dev-perl/ExtUtils-XSpp/Manifest b/dev-perl/ExtUtils-XSpp/Manifest index 46797014379b..b85f8865265f 100644 --- a/dev-perl/ExtUtils-XSpp/Manifest +++ b/dev-perl/ExtUtils-XSpp/Manifest @@ -1 +1 @@ -DIST ExtUtils-XSpp-0.18.tar.gz 185431 BLAKE2B 785bc3fc8e648bc7f079df0d6b0ca68cc156d1f661b49258c32ae1d5571c2715a97f3dedd34e54c48cac85c46fcedf95ce78cc69444396502527b29b9f8e7d6e SHA512 0e075876f8a269bd0df71a37bcfe7c164fa18ffabe72deecb57d5ebefa3a78fc0c2438e75319497e0e1f99e6f9af9ae33af8ecb67e1d411356d6f3a50cd9ea1e +DIST ExtUtils-XSpp-0.19.tar.gz 187537 BLAKE2B 6224155e26d66f4529edc2924cc0332b8988e76c004d1ea7c137bde99a76591436f5f2fa410daa04864ef56fae20d119c4220e8d3c3f735f653d7a5045897566 SHA512 2385a22ed116c6e6ea5bed0e7964a21ef7ec511ad92fa98bf2dc97a6b224f50989802d7694bc46af40f0c58e6e31ee50d1c259a214f3328595c3df080b2d1e55 diff --git a/dev-perl/Feature-Compat-Class/Feature-Compat-Class-0.80.0.ebuild b/dev-perl/Feature-Compat-Class/Feature-Compat-Class-0.80.0.ebuild index 782a43d4d2f6..281a55e606b2 100644 --- a/dev-perl/Feature-Compat-Class/Feature-Compat-Class-0.80.0.ebuild +++ b/dev-perl/Feature-Compat-Class/Feature-Compat-Class-0.80.0.ebuild @@ -10,7 +10,7 @@ inherit perl-module DESCRIPTION="Make class syntax available" SLOT="0" -KEYWORDS="~amd64 ~ppc ~x86" +KEYWORDS="amd64 ~ppc x86" RDEPEND=">=dev-perl/Object-Pad-0.823.0" BDEPEND=">=dev-perl/Module-Build-0.400.400" diff --git a/dev-perl/GnuPG-Interface/GnuPG-Interface-1.70.0.ebuild b/dev-perl/GnuPG-Interface/GnuPG-Interface-1.70.0.ebuild index 92bbc112d895..c49a5209a24c 100644 --- a/dev-perl/GnuPG-Interface/GnuPG-Interface-1.70.0.ebuild +++ b/dev-perl/GnuPG-Interface/GnuPG-Interface-1.70.0.ebuild @@ -10,7 +10,7 @@ inherit perl-module DESCRIPTION="Perl interface to GnuPG" SLOT="0" -KEYWORDS="~amd64 ~arm ~hppa ~ppc ~riscv ~x86" +KEYWORDS="amd64 ~arm ~hppa ppc ~riscv x86" RDEPEND=" || ( >=app-crypt/gnupg-1.4 app-crypt/freepg ) diff --git a/dev-perl/Gtk2/Gtk2-1.249.930-r2.ebuild b/dev-perl/Gtk2/Gtk2-1.249.930-r2.ebuild index 7cd4145e2659..cdfcf1cd6033 100644 --- a/dev-perl/Gtk2/Gtk2-1.249.930-r2.ebuild +++ b/dev-perl/Gtk2/Gtk2-1.249.930-r2.ebuild @@ -11,7 +11,7 @@ DESCRIPTION="Perl bindings for GTK2" LICENSE="LGPL-2.1+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm ~hppa ~mips ppc ppc64 ~riscv ~sparc x86" IUSE="test" RESTRICT="!test? ( test )" diff --git a/dev-perl/Linux-DVB/Linux-DVB-1.30.0.ebuild b/dev-perl/Linux-DVB/Linux-DVB-1.30.0.ebuild index 4f6621da334c..4d66360ed9b8 100644 --- a/dev-perl/Linux-DVB/Linux-DVB-1.30.0.ebuild +++ b/dev-perl/Linux-DVB/Linux-DVB-1.30.0.ebuild @@ -13,6 +13,7 @@ SLOT="0" KEYWORDS="~amd64 ~arm ~ppc ~x86" DEPEND="sys-kernel/linux-headers" +BDEPEND=">=dev-perl/Canary-Stability-2001.0.0" PATCHES=( "${FILESDIR}"/${PN}-1.30.0-linux-headers.patch diff --git a/dev-perl/Object-Pad/Object-Pad-0.825.0.ebuild b/dev-perl/Object-Pad/Object-Pad-0.825.0.ebuild index e539d30cefb0..41d337c327e4 100644 --- a/dev-perl/Object-Pad/Object-Pad-0.825.0.ebuild +++ b/dev-perl/Object-Pad/Object-Pad-0.825.0.ebuild @@ -10,7 +10,7 @@ inherit perl-module DESCRIPTION="Simple syntax for lexical field-based objects" SLOT="0" -KEYWORDS="~amd64 ~ppc ~x86" +KEYWORDS="amd64 ~ppc x86" RDEPEND=" dev-perl/File-ShareDir diff --git a/dev-perl/Sys-Virt/Sys-Virt-12.2.0.ebuild b/dev-perl/Sys-Virt/Sys-Virt-12.2.0.ebuild index e823cacf90cd..a7028dbc3bc4 100644 --- a/dev-perl/Sys-Virt/Sys-Virt-12.2.0.ebuild +++ b/dev-perl/Sys-Virt/Sys-Virt-12.2.0.ebuild @@ -18,7 +18,7 @@ inherit perl-module DESCRIPTION="API for using the libvirt library from Perl" SLOT="0" -KEYWORDS="~amd64 ~ppc64 ~x86" +KEYWORDS="amd64 ~ppc64 x86" RDEPEND=" >=app-emulation/libvirt-${PV} diff --git a/dev-perl/Wx-GLCanvas/Wx-GLCanvas-0.90.0-r1.ebuild b/dev-perl/Wx-GLCanvas/Wx-GLCanvas-0.90.0-r2.ebuild index 2d495a904537..ab1779fb2ccf 100644 --- a/dev-perl/Wx-GLCanvas/Wx-GLCanvas-0.90.0-r1.ebuild +++ b/dev-perl/Wx-GLCanvas/Wx-GLCanvas-0.90.0-r2.ebuild @@ -1,11 +1,12 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DIST_AUTHOR=MBARBON DIST_VERSION=0.09 -inherit perl-module virtualx +WX_GTK_VER="3.2-gtk3" +inherit perl-module virtualx toolchain-funcs wxwidgets DESCRIPTION="interface to wxWidgets' OpenGL canvas" @@ -22,6 +23,14 @@ BDEPEND="${RDEPEND} virtual/perl-ExtUtils-MakeMaker " +src_configure() { + # use c++ compiler + export CC="$(tc-getCXX)" + export CXX="$(tc-getCXX)" + setup-wxwidgets + perl-module_src_configure +} + src_test() { perl_rm_files "t/zz_pod.t" virtx perl-module_src_test diff --git a/dev-perl/Wx/Wx-0.993.200-r4.ebuild b/dev-perl/Wx/Wx-0.993.200-r5.ebuild index 05de17710b5f..7308ac4c99b7 100644 --- a/dev-perl/Wx/Wx-0.993.200-r4.ebuild +++ b/dev-perl/Wx/Wx-0.993.200-r5.ebuild @@ -27,7 +27,7 @@ RDEPEND=" DEPEND="${RDEPEND} >=virtual/perl-ExtUtils-MakeMaker-6.480.0 >=virtual/perl-ExtUtils-ParseXS-3.150.0 - >=dev-perl/ExtUtils-XSpp-0.160.200 + >=dev-perl/ExtUtils-XSpp-0.190.0 >=virtual/perl-if-0.30.0 test? ( >=virtual/perl-Test-Harness-2.260.0 diff --git a/dev-perl/XS-Parse-Sublike/XS-Parse-Sublike-0.410.0.ebuild b/dev-perl/XS-Parse-Sublike/XS-Parse-Sublike-0.410.0.ebuild index a4d5141ebd92..7ccc7d3e1dec 100644 --- a/dev-perl/XS-Parse-Sublike/XS-Parse-Sublike-0.410.0.ebuild +++ b/dev-perl/XS-Parse-Sublike/XS-Parse-Sublike-0.410.0.ebuild @@ -10,7 +10,7 @@ inherit perl-module DESCRIPTION="XS functions to assist in parsing sub-like syntax" SLOT="0" -KEYWORDS="~amd64 ~ppc ~x86" +KEYWORDS="amd64 ~ppc x86" RDEPEND=" >=dev-perl/File-ShareDir-1.0.0 diff --git a/dev-perl/libintl-perl/libintl-perl-1.370.0.ebuild b/dev-perl/libintl-perl/libintl-perl-1.370.0.ebuild index 03b9dabc3bf2..ee055b8ef6bd 100644 --- a/dev-perl/libintl-perl/libintl-perl-1.370.0.ebuild +++ b/dev-perl/libintl-perl/libintl-perl-1.370.0.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="http://guido-flohr.net/projects/libintl-perl https://metacpan.org/rele LICENSE="GPL-3" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris" IUSE="minimal" RDEPEND=" diff --git a/dev-php/pecl-parallel/Manifest b/dev-php/pecl-parallel/Manifest index 3bdc9e039160..5d4b64d60c58 100644 --- a/dev-php/pecl-parallel/Manifest +++ b/dev-php/pecl-parallel/Manifest @@ -1,2 +1,3 @@ DIST pecl-parallel-1.2.14.tgz 70887 BLAKE2B 657702180b4dc399c475e79e663053fcc485ff48a9cbc7402112061f6991f2772d69d35c0c7de0a266453959d4b7afd093b334cba1575b1dbab7b1460858d641 SHA512 8c601487641302d050bcf48df6aa62f1510d49c93084eb592bae35ba151414d25436d2a4681a226907392207fd86c8409893b122fb1e6159215a702be7f93802 +DIST pecl-parallel-1.2.15.tgz 71157 BLAKE2B c48621a4e162ca237253563c7e3d2f4948cfd561d8a2b4742849da9f554927cab57bac6be6a40c0c15aebd0d3805bf53cae9905eded88ee803af592a6ebc8894 SHA512 ec7f18c55ac847418994ddee5d86b72e011d553cc1575b4b3e4a6a43f176c408ac8516c1f496e6fe143dc4e9f4f35048763eb9f16289be3369b4bab33f153c83 DIST pecl-parallel-1.2.7.tgz 64972 BLAKE2B 7dd11f1e3968b2dd5d52159b00977aee8650e423285df94ea56ca2b307e2c4a94a2765c99326025ecf172c173321b94a40edc6d1077aa5fae21eb0fda5a65e66 SHA512 032a524871b03e2413d3257a224bc578114f47815d9a7027051225f9908d022854fdcd481c224c41ee1e943f5a97e6b266002ce9e419662932cb16e72052cf06 diff --git a/dev-php/pecl-parallel/pecl-parallel-1.2.14.ebuild b/dev-php/pecl-parallel/pecl-parallel-1.2.14.ebuild index 76bf7f94d90c..d5bb2530f5f8 100644 --- a/dev-php/pecl-parallel/pecl-parallel-1.2.14.ebuild +++ b/dev-php/pecl-parallel/pecl-parallel-1.2.14.ebuild @@ -16,4 +16,4 @@ SRC_URI="${SRC_URI} -> ${P}.tgz" LICENSE="PHP-3.01" SLOT="8" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 x86" diff --git a/dev-php/pecl-parallel/pecl-parallel-1.2.15.ebuild b/dev-php/pecl-parallel/pecl-parallel-1.2.15.ebuild new file mode 100644 index 000000000000..76bf7f94d90c --- /dev/null +++ b/dev-php/pecl-parallel/pecl-parallel-1.2.15.ebuild @@ -0,0 +1,19 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +PHP_EXT_INI="yes" +PHP_EXT_NAME="parallel" +PHP_EXT_NEEDED_USE="threads" +PHP_EXT_ZENDEXT="no" +USE_PHP="php8-2 php8-3 php8-4 php8-5" + +inherit php-ext-pecl-r3 + +DESCRIPTION="A succint parallel concurrency API for PHP" +SRC_URI="${SRC_URI} -> ${P}.tgz" + +LICENSE="PHP-3.01" +SLOT="8" +KEYWORDS="~amd64 ~x86" diff --git a/dev-python/awscrt/Manifest b/dev-python/awscrt/Manifest index 10b7a0fa6dab..7af44b7ae334 100644 --- a/dev-python/awscrt/Manifest +++ b/dev-python/awscrt/Manifest @@ -1,2 +1,2 @@ -DIST awscrt-0.36.2.tar.gz 37121147 BLAKE2B d75e83e023c7be0ed351df02056337bb6541dbbd8364e8e1037adf9644dbb0418f06a78789ed7d3823d9a30348dea77bd870b0af9bf3735f41f8f43b50a37d76 SHA512 e58de9bc41cdf7b70e15517da3025f1494e27a3eddf207fe571975e02a63b7a447900fc81b5fcf5c9876bd9ce514da02c7c7d8a39e90948d5cd03b96d644726a DIST awscrt-0.36.3.tar.gz 37812193 BLAKE2B 350a906fee04981975f5b983f0497fc028b13c4092563205e3364322502c6274ef0d7c10e283fbbc33357624973f501963391656765e7a96da8fa54fc3920b3b SHA512 94b4b4a5823bd373c7d72e52d6b8e734ba0080e5b8f1d045c60ce4ebffb9e9d7598f4246b849bff06cf8915018c87fc4af2be3f85cacc898bff55ea1abe633fe +DIST awscrt-0.36.4.tar.gz 37816271 BLAKE2B af49b608a5b9c691186c43cf7e353174855adbe091dd62a1844632a990c8c2697d9497ed22e0ca61be945d538f8aac22e852263b936bd4f6e6e8079f6b2354e2 SHA512 8d61aa3c0f94c5a96212cb27e54340d6708ee9fb0b25611f07403f7539402618fd6516a870d6913677ba09503e831b2971530c44459d835593a4ccc993642397 diff --git a/dev-python/awscrt/awscrt-0.36.2.ebuild b/dev-python/awscrt/awscrt-0.36.4.ebuild index 5f1d53df77fc..e796d0e2e4ec 100644 --- a/dev-python/awscrt/awscrt-0.36.2.ebuild +++ b/dev-python/awscrt/awscrt-0.36.4.ebuild @@ -20,18 +20,18 @@ SLOT="0" KEYWORDS="~amd64 ~arm64 ~riscv" DEPEND=" - dev-libs/aws-c-common:= - dev-libs/aws-c-auth:= - dev-libs/aws-c-sdkutils:= - dev-libs/aws-c-cal:= - dev-libs/aws-c-io:= - dev-libs/aws-c-compression:= - dev-libs/aws-c-event-stream:= - dev-libs/aws-c-http:= - dev-libs/aws-c-auth:= - dev-libs/aws-c-mqtt:= - dev-libs/aws-c-s3:= - dev-libs/aws-checksums:= + >=dev-libs/aws-c-common-1.0.0:= + >=dev-libs/aws-c-auth-1.0.0:= + >=dev-libs/aws-c-sdkutils-1.0.0:= + >=dev-libs/aws-c-cal-1.0.0:= + >=dev-libs/aws-c-io-1.0.0:= + >=dev-libs/aws-c-compression-1.0.0:= + >=dev-libs/aws-c-event-stream-1.0.0:= + >=dev-libs/aws-c-http-1.0.0:= + >=dev-libs/aws-c-auth-1.0.0:= + >=dev-libs/aws-c-mqtt-1.0.0:= + >=dev-libs/aws-c-s3-1.0.0:= + >=dev-libs/aws-checksums-1.0.0:= dev-libs/openssl:= dev-libs/s2n-tls:= " diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest index 65916717aa07..7739109fafa2 100644 --- a/dev-python/boto3/Manifest +++ b/dev-python/boto3/Manifest @@ -4,3 +4,4 @@ DIST boto3-1.43.83.gh.tar.gz 1218064 BLAKE2B 0758e28dd9b086615b045e107aece2ef46b 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.94.gh.tar.gz 1231556 BLAKE2B 759bb159fb0fc616fab031fdf398482fc559d9a08f8a66bc62d7d4d5284a8a08886eae757f47482cbcc60a45f8bf55df781d963a9b79c2ca7922ee54410b991b SHA512 7c642a77a6d6f218a3eff7f3477cba09b4b4f0f750313adc8f9904639c382566412db2e9aed98353cdd8f180c7fce0a7fd9793479b3dcbe50c08c51c1b13d4c8 +DIST boto3-1.43.95.gh.tar.gz 1232157 BLAKE2B 31fe611aa3023f8328a974e83b2c7599b2d0956989eee20ec4a1542b62e00f1295d67f62c0f2173ae3395d96cd5b9a03925bb2753fa3c42b96f97a9fbe79f785 SHA512 31ea41eed63b0fd6e18f76638d92ac7b22219f443b52087e779956b467bdb77c754418c4e9de462b39032988e243087c5b9d3038ec07a9e9d55772f2a2c0d2b3 diff --git a/dev-python/boto3/boto3-1.43.95.ebuild b/dev-python/boto3/boto3-1.43.95.ebuild new file mode 100644 index 000000000000..9b17e7a5c381 --- /dev/null +++ b/dev-python/boto3/boto3-1.43.95.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_{12..15} ) + +inherit distutils-r1 + +DESCRIPTION="The AWS SDK for Python" +HOMEPAGE=" + https://github.com/boto/boto3/ + https://pypi.org/project/boto3/ +" +SRC_URI=" + https://github.com/boto/boto3/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + >=dev-python/botocore-${PV}[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + # don't lock versions to narrow ranges + sed -e '/botocore/ d' \ + -e '/jmespath/ d' \ + -e '/s3transfer/ d' \ + -i setup.py || die + + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_python_prepare_all +} + +python_test() { + epytest tests/{functional,unit} +} diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest index 603b745bba67..6364e95a1a18 100644 --- a/dev-python/botocore/Manifest +++ b/dev-python/botocore/Manifest @@ -4,3 +4,4 @@ DIST botocore-1.43.83.gh.tar.gz 17038145 BLAKE2B f74b399b04f9b259e1a2f424719c4b8 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.94.gh.tar.gz 17147633 BLAKE2B 2a872b6b2289e8a330ea901b32faaa3a1950782009103b27fdc7d54cd0d6163ce3f5fc3bc8ef722fc63fef76db805fce7c2e40854858b6b8c2bb293b264adbbf SHA512 6f63be5ab5f625c018de0c6e0046eeb2e6adfd1913bebe6b91615968309ba41c9ee1d36baa38abca6e714a43c679e88a1931a5c9fe4dde34fa98a9a562280854 +DIST botocore-1.43.95.gh.tar.gz 17151488 BLAKE2B d895c9a42387b0b5425e54741d9894da2afe5d83977c079a47e4d6cdccc157e6e9395953f033f8739ce7b423f91b1522e303711cb38753af3d3fb238798c3b9c SHA512 73f2a6d6fc3a6b49e8c61a338357282b08d80e567b9c7dd025ac1a7132f7ab48e02c6f08290b1c65e09e745653605775076cc706420fbed25f216a9899e7c56b diff --git a/dev-python/botocore/botocore-1.43.94.ebuild b/dev-python/botocore/botocore-1.43.94.ebuild index 1714d2dfdc7f..a17fe86984fa 100644 --- a/dev-python/botocore/botocore-1.43.94.ebuild +++ b/dev-python/botocore/botocore-1.43.94.ebuild @@ -63,5 +63,18 @@ python_test() { tests/functional/test_six_threading.py::test_six_thread_safety ) - epytest tests/{functional,unit} + # 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/botocore/botocore-1.43.95.ebuild b/dev-python/botocore/botocore-1.43.95.ebuild new file mode 100644 index 000000000000..a17fe86984fa --- /dev/null +++ b/dev-python/botocore/botocore-1.43.95.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_{12..15} ) + +inherit distutils-r1 + +DESCRIPTION="Low-level, data-driven core of boto 3" +HOMEPAGE=" + https://github.com/boto/botocore/ + https://pypi.org/project/botocore/ +" +SRC_URI=" + https://github.com/boto/botocore/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + <dev-python/jmespath-2[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +# unbundled packages +RDEPEND+=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # unpin deps + sed -i -e "s:>=.*':':" setup.py || die + + # unbundle deps + rm -r botocore/vendored || die + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # rely on bundled six + tests/functional/test_six_imports.py::test_no_bare_six_imports + tests/functional/test_six_threading.py::test_six_thread_safety + ) + + # 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/clang/Manifest b/dev-python/clang/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/dev-python/clang/Manifest +++ b/dev-python/clang/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/dev-python/clang/clang-23.1.0.ebuild b/dev-python/clang/clang-24.0.0_pre20260916.ebuild index 5ff17aa81675..12ac231b99c4 100644 --- a/dev-python/clang/clang-23.1.0.ebuild +++ b/dev-python/clang/clang-24.0.0_pre20260916.ebuild @@ -12,7 +12,6 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~x86" IUSE="test" RESTRICT="!test? ( test )" REQUIRED_USE="${PYTHON_REQUIRED_USE}" diff --git a/dev-python/crcmod/crcmod-1.7-r5.ebuild b/dev-python/crcmod/crcmod-1.7-r5.ebuild index ef8246c16145..1f1158e6f79f 100644 --- a/dev-python/crcmod/crcmod-1.7-r5.ebuild +++ b/dev-python/crcmod/crcmod-1.7-r5.ebuild @@ -21,6 +21,12 @@ KEYWORDS="amd64 arm x86" DOCS=( changelog test/examples.py ) +src_prepare() { + distutils-r1_src_prepare + + sed -i -e 's:del setup_dict.*$:raise:' setup.py || die +} + python_test() { "${EPYTHON}" test/test_crcmod.py -v || die "Tests fail with ${EPYTHON}" } diff --git a/dev-python/esp-pylib/Manifest b/dev-python/esp-pylib/Manifest new file mode 100644 index 000000000000..0484040abe9a --- /dev/null +++ b/dev-python/esp-pylib/Manifest @@ -0,0 +1,2 @@ +DIST esp_pylib-1.1.4.tar.gz 98849 BLAKE2B 60ee0260b38f04730712c4589ee5f018c86c5ae0e1a53bd12725619b487baeb065b18a4caeabf286284deb7f52d14cdd1d1ff64229a7a1b6381530bb644ed222 SHA512 74d9d34fcf2b35870e6e1550e9a314e124791132050fe04e29ecf6977659c7702843b4c6d07c016dfc2325adff69938588366167ff6069d91be38f06a249cf83 +DIST esp_pylib-1.1.4.tar.gz.provenance 9954 BLAKE2B d36dd9d9dfaf2ac6de77163e52498480d68f874a7479a1ad894247ffd16d4bce48bdb572b523152b043a530ace9980c990e1239073e59afce78f5c3db35de853 SHA512 9dbfc6d3836812d4ae59f8968bb605708b60d81f4d6149ace843ad6345e62437b06d4d80a59dd6026b30aa0fae8c3ee474bc9d790bba8a6e9ee0a08c00b3b382 diff --git a/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild b/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild new file mode 100644 index 000000000000..e4be8c3aaa8d --- /dev/null +++ b/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/espressif/esp-pylib +PYTHON_COMPAT=( python3_{12..15} ) + +inherit distutils-r1 pypi + +DESCRIPTION="library for logging, utils and constants for Espressif Systems' Python projects" +HOMEPAGE=" + https://github.com/espressif/esp-pylib/ + https://pypi.org/project/esp-pylib/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + dev-python/click[${PYTHON_USEDEP}] + dev-python/pyserial[${PYTHON_USEDEP}] + dev-python/rich-click[${PYTHON_USEDEP}] + dev-python/websockets[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=( ) +distutils_enable_tests pytest diff --git a/dev-python/esp-pylib/metadata.xml b/dev-python/esp-pylib/metadata.xml new file mode 100644 index 000000000000..e736c18fef8a --- /dev/null +++ b/dev-python/esp-pylib/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>martin.dummer@gmx.net</email> + <name>Martin Dummer</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <stabilize-allarches/> + <upstream> + <remote-id type="github">espressif/esp-pylib</remote-id> + <remote-id type="pypi">esp_pylib</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-python/filelock/Manifest b/dev-python/filelock/Manifest index 93ee4c44263f..04a13c8de628 100644 --- a/dev-python/filelock/Manifest +++ b/dev-python/filelock/Manifest @@ -1,5 +1,3 @@ -DIST filelock-3.31.0.tar.gz 180931 BLAKE2B 1921f1ec88d79cb764c30dc5f2ebf9192209dd433504d6577f8f5c3b73951268345af331f1a684fd986d9f9f25ea3f88179dcd5ce32604c6af6f7b7e8903413d SHA512 e24d88921f975db582b64baf5e23bd1ebb3de1364b874e9d63a2a4a42cd9e71d2a30e6646f9b7afcbca3cd3b075eb480bb38c6451f5410b711ba57578252d871 -DIST filelock-3.31.0.tar.gz.provenance 9855 BLAKE2B 9b98e156d7e941a8585d6deb01ac732966ab560cbcf86dc5a6c076c74a7877c7fde9cc7982e084e502f3047a62b2571baffc4e81010d576a2283844b3be64d68 SHA512 4400dda6b091d5efbe61dc2cbc62e03fcaaf5d28f8e80e38e7e3e9cd5bc7f2d53eb969c123c0b8bb9da277e455dad1ef7769fecf7c999e94ad1a691b7b5ea1ff DIST filelock-3.32.3.tar.gz 218135 BLAKE2B 5b4419e69a892ef0df4afac008fedf19025f162092dfbe472c925141278b9f5834edd3f9c5ba10db39091f42bf748653b63659c0215dc24f29b4951ae4f5d70f SHA512 896063634b104faa169aae67df71f1b77161340c2b99205923fb8c9e74cdd1b2d618153b44831095299a30bf83ed8319c5d2bc5229f17afad88909417e98dbea DIST filelock-3.32.3.tar.gz.provenance 9622 BLAKE2B 67bc8f6e8909a9b1ce99cc53b627df63762019b1075f796f9027e70d196944b6ea2e3e63dc6e759077bda139912cdbb8c1c298f591fe1c1c90a12219404a02d3 SHA512 b2ac1f0f6a087605da3bbbffec6918661aa164991ae33e0f6098039eae6cbc1e6ed0f6bee2073d86f1c30fc84df1e3b1a0893882d697c5c494b76c51568770a9 DIST filelock-3.32.4.tar.gz 222126 BLAKE2B 8061bbb3d3e2e78c685764a4789caf1ba8196e179a6595caca754dc34c905a4543b24343077808aae8064d3875657c3bcb9000e311f6728ce8776c9e491f5fb9 SHA512 199cbe99519fa152dd1fefa208306fd4c0cc9c48daff0aded91fd56171901b0a1883f0ba4ed2c0107363e028a0266a4f0af9fde55170d94d7e569204b296a3cc @@ -8,3 +6,5 @@ DIST filelock-3.32.5.tar.gz 222838 BLAKE2B 61ea53f89ec434d8ab49cf468fed811486e4c DIST filelock-3.32.5.tar.gz.provenance 9622 BLAKE2B 076bfaf9260ac890f689d84bb0b85d8807536804e14c79c5843a29c10806cf4806b77862761daf9b01a053af73aa611abe0af839d8792d29b1063c657c83f121 SHA512 3df81c5cda929a05ed494b06359431d42c2522b7cb0a640ca3a13657486f23d270cc930b28cf6e5cc948462d1fcf6eb6268b9c82de820b3dcc2c11134d485c8a DIST filelock-3.32.6.tar.gz 225172 BLAKE2B f077ad228f28f6080cff6487b10d18789174592ccca9117766946572e07f97af88c68c796665e1183d39b9d92aa5c6881da3a278ce3ca2691b8f85ce4abaf116 SHA512 a2431f17c1f7e01e0eb704354a8e3b27c2e0b2e769962ea904b20206ef36e1b173fca846c696680b7c6c8a0bee846b9a6d5449a4b09e0ae7c390bb374380ccc6 DIST filelock-3.32.6.tar.gz.provenance 9904 BLAKE2B f3509822beb0993f3050ac404835a62a1beec9f98ca4f28202b237daf7f1db0fa8ac2803d822138a140761229d9334928f85e54583d7aaefc7bafdfca607f51e SHA512 6a30896d8c8166f19be54362a7e278922d6104f8e5093dca36e25d9fb7331f7918201b19919c56feef9005e6a62fd2766b9ebea371c8fff419b63f0634c419d6 +DIST filelock-3.32.7.tar.gz 225154 BLAKE2B 8235b3db8218f46b0bcc9287dc2a5f93f81a08a5d1fb26014ea3bdd980c259f76dd35f3f26c7302d08d96dcd82997b6082b4ec9d44c5b778aeaf6f6e2835b875 SHA512 ce49bd21ab60aa2711daa467239aea7ad054e7be2e1d638dbe6de8962b7f2ca5a8dca4dba247098c89b0306700e2c45f64359833319afb1010025cd6362f8e12 +DIST filelock-3.32.7.tar.gz.provenance 9669 BLAKE2B 145e8c0f37a7ae187771f8c82199404dc5d1677b83faffd264f2d69afdba1d390dd28aa63d8fdb242296dbe130c8c7085cd59186bedfa20b5397b244c670832c SHA512 5db27b4f9a3fd138353d4504eb621e6a6bb7ba24038499f354606dab5825aaddb241c859713760d974a28ccf1cf5bdc18f6a7e792e497f03dbc136f03f41ca09 diff --git a/dev-python/filelock/filelock-3.31.0.ebuild b/dev-python/filelock/filelock-3.32.7.ebuild index 7900ab85a7c7..b905d777c546 100644 --- a/dev-python/filelock/filelock-3.31.0.ebuild +++ b/dev-python/filelock/filelock-3.32.7.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" BDEPEND=" dev-python/hatch-vcs[${PYTHON_USEDEP}] diff --git a/dev-python/flask-compress/Manifest b/dev-python/flask-compress/Manifest index 1f3fd6808d9b..2187a31714e9 100644 --- a/dev-python/flask-compress/Manifest +++ b/dev-python/flask-compress/Manifest @@ -1,3 +1,4 @@ -DIST flask_compress-1.23.tar.gz 20135 BLAKE2B bb1aa78bb1192e0bf12ba29a98dcd910642d156fdd41a890cd80e65904cd910d84919fc33e124f0c88e8fb79ab55a82bdd775177fce3cef4bc12b5b12c4357ce SHA512 e1ccd6c24c54b8c65d3ac833dbb16a145a622241fe60843c81d9a54ef14691c843410098ab3820d1afb24c48ae9c141d82c2696b0635058233ed31449a90a674 DIST flask_compress-1.24.tar.gz 21089 BLAKE2B ca8822823b917c5676b41c1b3998cd38542f3456560d18bcd6fff2d79bc72ad703e7d1a7f96bd7dd6e8ce54e32b1e93192b46d332fa2eb8037d75c65ab9e05cd SHA512 4b4f0c0c5aec341003a05b080487d175fe5f399747d7afe25a025a66670470002e7b96faa0808e6a19794914f0f5f6b5bf8c75c45f30e439e00622f0556a3680 DIST flask_compress-1.24.tar.gz.provenance 9594 BLAKE2B 239741e40f14d160b81f904bbbff223d0a21981d992bf6f7da609e9f6d025e2dab393cf89e574b1e16585f28c43d9bbade1d375787ec8bc45d693c95611569f0 SHA512 53b268d06c38ff269a6b204a014bd14f574dc306d769dcf73b2136f53a83c2c97b36d68d5eeb228f2e45181c683308481155f6e069975d4a152c7461bc0957d5 +DIST flask_compress-1.25.tar.gz 21719 BLAKE2B 84ac6a013d36bbd02ad572f31d6755566d73b31d183f0667f1174fe5d3388ba47c80c9fb761056a695f2f8a4fe79c1b92d9236fc37272a5790d266ef5a96442f SHA512 dd5a8d9d0abb2fbeabdbf62ca16f32ec10f8a62fb843878feeedce75589d3f83acc854feddf6331a1159d0b62015f103e122712079e23b1b594ca59f0dc7424d +DIST flask_compress-1.25.tar.gz.provenance 10005 BLAKE2B 4e050dccdf23a65ba1b091e2bc5eb6d80a2e411570bc229fe952e257ecc1b22e7be70ce1f8084e67035014381d0cfa1cf18a5756bd2fbf8dc3dda69ecc2fda23 SHA512 c4964fbd3788bfdfaf2ec4499eb7598314069f77ea0d4586d2600d53685676466ba18f951250db22911be63feb3372307e76b7131294deee684853951985097e diff --git a/dev-python/flask-compress/flask-compress-1.23.ebuild b/dev-python/flask-compress/flask-compress-1.25.ebuild index be676d861bb2..5ee5f32cedbc 100644 --- a/dev-python/flask-compress/flask-compress-1.23.ebuild +++ b/dev-python/flask-compress/flask-compress-1.25.ebuild @@ -5,7 +5,8 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools PYPI_PN="Flask-Compress" -PYTHON_COMPAT=( python3_{11..13} ) +PYPI_VERIFY_REPO=https://github.com/colour-science/flask-compress +PYTHON_COMPAT=( python3_{12..15} ) inherit distutils-r1 pypi @@ -17,7 +18,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="amd64 arm64 x86" +KEYWORDS="~amd64 ~arm64 ~x86" # brotli on cpython, brotlicffi on pypy3 RDEPEND=" @@ -25,7 +26,7 @@ RDEPEND=" dev-python/flask[${PYTHON_USEDEP}] $(python_gen_cond_dep ' dev-python/backports-zstd[${PYTHON_USEDEP}] - ' 3.{11..13}) + ' 3.{12..13}) " BDEPEND=" test? ( diff --git a/dev-python/gpep517/Manifest b/dev-python/gpep517/Manifest index 3a024bf48444..f17c49cd4b7b 100644 --- a/dev-python/gpep517/Manifest +++ b/dev-python/gpep517/Manifest @@ -1,3 +1,3 @@ -DIST gpep517-19.gh.tar.gz 29279 BLAKE2B 1f3002e970de1e56004a0c6486c678ee9baa51d76c263d7356b3a63086615bf81c326b0a0ee313389ae046c7c451c17a1eed1b1cada8c61f0875ee007d5caa23 SHA512 463c3812f388ea7ef83aaf6b3b90de4036b0a8200038a654621822c02d46627f7adf2ed4c7accf016293f89b8c3a2080d9ac80d2f82caaa3fdd370aa98c4335b DIST gpep517-20.gh.tar.gz 29306 BLAKE2B 5799cfb351741758a3e195d0496ab1e94dbb53d938ac27e1f00a81aaeb338f058a2b33ddcc4c7b073953b77e20b3d8d729c04f00b7c43928c457590818be2ee8 SHA512 3a8782eb513bb189b6d4d10516a122fa496185960a2970445058030fccde10b841e222cce04ce3bde2c3f1e1186cb8e3f50f44e40be2fd35e7e1b91e937585b0 DIST gpep517-22.gh.tar.gz 31344 BLAKE2B 1d7fb03dd3b71887dfd0a56a47e3e2220c75dd7f6c84887568731071eb543582ddcfa50c6e4305105ebe194252542752e8b7de673f8731bca2372759758306ff SHA512 421a681e7de79ea06fb89920dbe1e2ba58f5dcb8ecd1bb4043dea5415978621b817c212b001a64d3955a1f7b8156b6a845e2b4c64130ebefc155de20701dcbc9 +DIST gpep517-23.gh.tar.gz 31369 BLAKE2B 4c1cea22a935c21c731e8e0242f63b89200c1aa2647489f4319d0c1442897123edac1006e60c4c14636996f264000fc32213f87f0082ba906cb01fe878c94320 SHA512 f61deb134d4b39a56f6782884b87383fbe864ce0c6c7c2b53c0fe0a17019637f8d37b9c420194ba0cc6ac40dd09bd5b3518a4cabb61331a9da5c53fb2d18c660 diff --git a/dev-python/gpep517/gpep517-19.ebuild b/dev-python/gpep517/gpep517-23.ebuild index 1319effb33ce..bc06f089d60c 100644 --- a/dev-python/gpep517/gpep517-19.ebuild +++ b/dev-python/gpep517/gpep517-23.ebuild @@ -5,27 +5,36 @@ EAPI=8 DISTUTILS_USE_PEP517=no -PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) +PYTHON_COMPAT=( python3_{12..15} python3_{14..15}t ) inherit distutils-r1 DESCRIPTION="A backend script to aid installing Python packages in Gentoo" HOMEPAGE=" https://pypi.org/project/gpep517/ - https://github.com/projg2/gpep517/ + https://github.com/gentoo/gpep517/ " SRC_URI=" - https://github.com/projg2/gpep517/archive/v${PV}.tar.gz + https://github.com/gentoo/gpep517/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz " LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" >=dev-python/installer-0.5.0[${PYTHON_USEDEP}] " +# 26.1 for abi3t support +PDEPEND=" + >=dev-python/packaging-26.1[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + ${PDEPEND} + ) +" EPYTEST_PLUGINS=() distutils_enable_tests pytest diff --git a/dev-python/jupyter-server/Manifest b/dev-python/jupyter-server/Manifest index 31fff246deb4..68bf0666762e 100644 --- a/dev-python/jupyter-server/Manifest +++ b/dev-python/jupyter-server/Manifest @@ -1,2 +1,3 @@ DIST jupyter_server-2.20.0.tar.gz 756523 BLAKE2B a55bce21bf2a3d8b7f544161eb20802971e947eb082e3ebf6e0d8e777e46044d1deae8a3568b580cabd8cb6d88ca18cc871a829441b820d02f656ebe30e97b36 SHA512 859d890d67f92212c5a3fa772e9e6abf58c3ef4b08a94e84a64e1c9714114b5bbe5667bb93fab3448671c32ef670c2f4869f4009aa2aa257a67223b47628d578 DIST jupyter_server-2.21.0.tar.gz 760357 BLAKE2B f78368f76d9e7dce8b4429640abcf482014c87d051625ed7b162ae08e18e4afc175643ab17f036b18439f83111ed2dd6e1c9bc3ef7072e968440ddb6e570cbc1 SHA512 b595eb045958f9602c423ddaa01f079f21ef63492933b6b0ef07772d1877f06d348bb927c43e8f685aa98604ea74b18bf126c047227cdfc0bbd6fb16c8b5cae4 +DIST jupyter_server-2.21.1.tar.gz 761651 BLAKE2B e6cb80250523ed9c1cf774375e96d9c9c557652a5788ea0c3d9192e9e96008b93bc81a93b9302c7ae3d87c28cb7eb501212a085182e986705a7e0fad5db3017b SHA512 b3c6801d636634b068db386fc9f828af44805686e9ccca637361dd6588a79570291d5ba5360c6ea25c891251cc07cea052d2c1dd12dd53c74666c42b08072b5a diff --git a/dev-python/jupyter-server/jupyter-server-2.21.1.ebuild b/dev-python/jupyter-server/jupyter-server-2.21.1.ebuild new file mode 100644 index 000000000000..c95a40025ac5 --- /dev/null +++ b/dev-python/jupyter-server/jupyter-server-2.21.1.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{12..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Core services, APIs, and REST endpoints to Jupyter web applications" +HOMEPAGE=" + https://jupyter.org/ + https://github.com/jupyter-server/jupyter_server/ + https://pypi.org/project/jupyter-server/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/anyio-3.1.0[${PYTHON_USEDEP}] + >=dev-python/argon2-cffi-21.1[${PYTHON_USEDEP}] + >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}] + >=dev-python/jupyter-client-7.4.4[${PYTHON_USEDEP}] + >=dev-python/jupyter-core-5.1.0[${PYTHON_USEDEP}] + >=dev-python/jupyter-server-terminals-0.4.4[${PYTHON_USEDEP}] + >=dev-python/jupyter-events-0.11.0[${PYTHON_USEDEP}] + >=dev-python/nbconvert-6.4.4[${PYTHON_USEDEP}] + >=dev-python/nbformat-5.3.0[${PYTHON_USEDEP}] + >=dev-python/packaging-22.0[${PYTHON_USEDEP}] + >=dev-python/prometheus-client-0.9[${PYTHON_USEDEP}] + >=dev-python/pyzmq-24[${PYTHON_USEDEP}] + >=dev-python/send2trash-1.8.2[${PYTHON_USEDEP}] + >=dev-python/terminado-0.8.3[${PYTHON_USEDEP}] + >=dev-python/tornado-6.2[${PYTHON_USEDEP}] + >=dev-python/traitlets-5.6.0[${PYTHON_USEDEP}] + >=dev-python/websocket-client-1.7[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}] + test? ( + dev-python/ipykernel[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,timeout,tornasync} ) +EPYTEST_RERUNS=5 +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=( + # This fails if your terminal is zsh (and maybe other non-bash as well?) + tests/test_terminal.py + # Fails because above is ignored + tests/auth/test_authorizer.py + # Fails with additional extensions installed + tests/extension/test_app.py::test_stop_extension + ) + + # FIXME: tests seem to be affected by previously installed version + epytest -o tmp_path_retention_policy=all +} diff --git a/dev-python/jupyterlab-server/Manifest b/dev-python/jupyterlab-server/Manifest index e34234f90b82..82c604eb04d3 100644 --- a/dev-python/jupyterlab-server/Manifest +++ b/dev-python/jupyterlab-server/Manifest @@ -1 +1,2 @@ DIST jupyterlab_server-2.28.0.tar.gz 76996 BLAKE2B 7242e471f7d7630facdfce3112e797576521807245dc0cbd23937c716c70eb64ce8da655981bd04bc2f879a3e4c021f4d097d393e34c2d79fe75bdf71259c290 SHA512 b12119ca8c43dce3a4bbc385d944f70c391b95b55ba79cf9c7319e90a1e1fdb13d92dbac159fea147866accf5a2e29b3cff0ae3534f81af8ff763c688af75712 +DIST jupyterlab_server-2.28.1.tar.gz 78141 BLAKE2B 9173dbcc34025e429bfc3dead11ae55f19bc3194d0d72816d1c8c6eff741f5e1a392afa59d3ea3d2173f4623587a156f0dc625d2abc0ad15381beac93e3ade9e SHA512 fdfbb5464cdb3cbce702782df5b57ab53f595115cd6a0efbe70f26909c697af027c648f9d79e6cd1c499556ce30d9e0a254fcff07888981dc6b6b90670ac842e diff --git a/dev-python/jupyterlab-server/files/jupyterlab-server-2.28.1-openapi-0.23.patch b/dev-python/jupyterlab-server/files/jupyterlab-server-2.28.1-openapi-0.23.patch new file mode 100644 index 000000000000..39f6a628ccc0 --- /dev/null +++ b/dev-python/jupyterlab-server/files/jupyterlab-server-2.28.1-openapi-0.23.patch @@ -0,0 +1,139 @@ +From 204d494f1961ada729937a4df26afe4111b5a24a Mon Sep 17 00:00:00 2001 +From: Evgeniy Martynenko <enimalojd@altlinux.org> +Date: Mon, 17 Aug 2026 14:00:52 +0300 +Subject: [PATCH] openapi: support openapi-core 0.19 through 0.23 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +openapi-core 0.23 removed the openapi_core.spec module and its Spec class. + +Use the public OpenAPI API for loading specifications and validating requests +and responses. Update the dependency constraints and add coverage for +get_openapi_spec(). + +Signed-off-by: Michał Górny <mgorny@gentoo.org> +--- + jupyterlab_server/spec.py | 8 ++++---- + jupyterlab_server/test_utils.py | 21 ++++++++++++--------- + pyproject.toml | 6 +++--- + 3 files changed, 19 insertions(+), 16 deletions(-) + +diff --git a/jupyterlab_server/spec.py b/jupyterlab_server/spec.py +index 94347b9..3c07466 100644 +--- a/jupyterlab_server/spec.py ++++ b/jupyterlab_server/spec.py +@@ -9,17 +9,17 @@ import typing + from pathlib import Path + + if typing.TYPE_CHECKING: +- from openapi_core.spec.paths import Spec ++ from jsonschema_path import SchemaPath + + HERE = Path(os.path.dirname(__file__)).resolve() + + +-def get_openapi_spec() -> Spec: ++def get_openapi_spec() -> SchemaPath: + """Get the OpenAPI spec object.""" +- from openapi_core.spec.paths import Spec ++ from openapi_core import OpenAPI + + openapi_spec_dict = get_openapi_spec_dict() +- return Spec.from_dict(openapi_spec_dict) # type:ignore[arg-type] ++ return OpenAPI.from_dict(openapi_spec_dict).spec + + + def get_openapi_spec_dict() -> dict[str, typing.Any]: +diff --git a/jupyterlab_server/test_utils.py b/jupyterlab_server/test_utils.py +index 094f020..a19c022 100644 +--- a/jupyterlab_server/test_utils.py ++++ b/jupyterlab_server/test_utils.py +@@ -7,19 +7,22 @@ from __future__ import annotations + import json + import os + import sys ++import typing + from http.cookies import SimpleCookie + from pathlib import Path + from urllib.parse import parse_qs, urlparse + + import tornado.httpclient + import tornado.web +-from openapi_core import V30RequestValidator, V30ResponseValidator +-from openapi_core.spec.paths import Spec ++from openapi_core import OpenAPI + from openapi_core.validation.request.datatypes import RequestParameters + from tornado.httpclient import HTTPRequest, HTTPResponse + from werkzeug.datastructures import Headers, ImmutableMultiDict + +-from jupyterlab_server.spec import get_openapi_spec ++from jupyterlab_server.spec import get_openapi_spec_dict ++ ++if typing.TYPE_CHECKING: ++ from jsonschema_path import SchemaPath + + HERE = Path(os.path.dirname(__file__)).resolve() + +@@ -32,7 +35,7 @@ class TornadoOpenAPIRequest: + Converts a torando request to an OpenAPI one + """ + +- def __init__(self, request: HTTPRequest, spec: Spec): ++ def __init__(self, request: HTTPRequest, spec: SchemaPath): + """Initialize the request.""" + self.request = request + self.spec = spec +@@ -76,7 +79,7 @@ class TornadoOpenAPIRequest: + # https://github.com/OAI/OpenAPI-Specification/issues/892 + url = None + o = urlparse(self.request.url) +- for path_ in self.spec["paths"]: ++ for path_ in self.spec["paths"].keys(): # noqa: SIM118 + if url: + continue # type:ignore[unreachable] + has_arg = "{" in path_ +@@ -152,16 +155,16 @@ class TornadoOpenAPIResponse: + + def validate_request(response: HTTPResponse) -> None: + """Validate an API request""" +- openapi_spec = get_openapi_spec() ++ openapi = OpenAPI.from_dict(get_openapi_spec_dict()) + + # openapi_core 0.18 declares body, data and headers as str and Mapping in its + # Request and Response protocols. Tornado hands over bytes and a Headers object, + # and the validators read both, so the adapters above return what tornado gives. +- request = TornadoOpenAPIRequest(response.request, openapi_spec) +- V30RequestValidator(openapi_spec).validate(request) # type: ignore[arg-type] ++ request = TornadoOpenAPIRequest(response.request, openapi.spec) ++ openapi.validate_request(request) + + torn_response = TornadoOpenAPIResponse(response) +- V30ResponseValidator(openapi_spec).validate(request, torn_response) # type: ignore[arg-type] ++ openapi.validate_response(request, torn_response) + + + def maybe_patch_ioloop() -> None: +diff --git a/pyproject.toml b/pyproject.toml +index 0dd1bca..f48ecf9 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -64,15 +64,15 @@ docs = [ + "jinja2<3.2.0" + ] + openapi = [ +- "openapi_core~=0.18.0", ++ "openapi_core>=0.19,<0.24", + "ruamel.yaml", + ] + test = [ + "hatch", + "ipykernel", + "pytest-jupyter[server]>=0.6.2", +- "openapi_core~=0.18.0", +- "openapi-spec-validator>=0.6.0,<0.8.0", ++ "openapi_core>=0.19,<0.24", ++ "openapi-spec-validator>=0.6.0,<0.9.0", + "sphinxcontrib_spelling", + "requests_mock", + "ruamel.yaml", diff --git a/dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild b/dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild new file mode 100644 index 000000000000..23bbd0778715 --- /dev/null +++ b/dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{12..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Server components for JupyterLab and JupyterLab like applications" +HOMEPAGE=" + https://jupyter.org/ + https://github.com/jupyterlab/jupyterlab_server/ + https://pypi.org/project/jupyterlab-server/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + +RDEPEND=" + >=dev-python/babel-2.10[${PYTHON_USEDEP}] + >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}] + >=dev-python/json5-0.9.0[${PYTHON_USEDEP}] + >=dev-python/jsonschema-4.18.0[${PYTHON_USEDEP}] + >=dev-python/packaging-21.3[${PYTHON_USEDEP}] + >=dev-python/requests-2.31[${PYTHON_USEDEP}] + >=dev-python/jupyter-server-1.21[${PYTHON_USEDEP}] + <dev-python/jupyter-server-3[${PYTHON_USEDEP}] +" + +BDEPEND=" + test? ( + dev-python/ipykernel[${PYTHON_USEDEP}] + dev-python/jupyter-server[${PYTHON_USEDEP}] + >=dev-python/openapi-core-0.19[${PYTHON_USEDEP}] + >=dev-python/openapi-spec-validator-0.7[${PYTHON_USEDEP}] + dev-python/requests-mock[${PYTHON_USEDEP}] + dev-python/ruamel-yaml[${PYTHON_USEDEP}] + dev-python/strict-rfc3339[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-{jupyter,tornasync,timeout} ) +distutils_enable_tests pytest +# TODO: package autodoc_traits +#distutils_enable_sphinx docs/source dev-python/pydata-sphinx-theme dev-python/myst-parser + +PATCHES=( + "${FILESDIR}/${PN}-2.28.1-openapi-0.23.patch" +) + +EPYTEST_IGNORE=( + tests/test_translation_api.py +) + +EPYTEST_DESELECT=( + # Fails if terminal not available + tests/test_labapp.py::test_page_config +) diff --git a/dev-python/jwcrypto/Manifest b/dev-python/jwcrypto/Manifest index b30249ac17b0..af3e6ced6beb 100644 --- a/dev-python/jwcrypto/Manifest +++ b/dev-python/jwcrypto/Manifest @@ -1,3 +1,4 @@ DIST jwcrypto-1.5.8.tar.gz 90772 BLAKE2B b91b810466e527d5a121b021f5cb8c4f952b88aebe6a0c3e8cff4afd285c135b71c45254dd2d821f2fe645f02f3a78763c819f84c53033f9100bc8969c37970d SHA512 b7f63049583e6d468952d46f41ce80258868a0bd74b7123bbfe02b44f01668be550247b67374db42b24bc2d25af5f71abe97b857fb2842d877cc6217a888f869 DIST jwcrypto-1.5.9.tar.gz 115793 BLAKE2B f5905b2d7c3f8a20b71a1542b351fab790db4eff23af6502bd0765a3702a5628098fcfa795eae5d4bcf1a045dde2719e676a96bbf325f88dcfe0f064e850e888 SHA512 a77d7f77dfec3e05b0b07db9d4d6d393cb5be58feb85c019cb561d0ac651a28492c3d509a5ba7724b65f374c608579b1a831b7a5791b92a91250da7aacbb3892 DIST jwcrypto-1.6.0.tar.gz 116186 BLAKE2B 013484d22e3b2f0fee5899495c5168fa8b80a9e1aede4fdae400f82540f61270ada3e9eeaaa83634b1ce8ef15420edfe18f506984471e7dd1d1aa009efb8065d SHA512 8f8fb08fb8ce13c0a11d58aca9a81bdbcad398c300c4e55108ca75c1fa42fc9ab44e8fe149a0e26bb901e40bffa68eab80a3aa2d226c3c0b5fa27897531a11c7 +DIST jwcrypto-1.6.1.tar.gz 116287 BLAKE2B e4111daadee7469bed35e72033e80bc1ffd734e82ae052ee4cf2e4b0ef899d970a3ac11506522a80146c6d8608509fc94df8845e5e7bdc75def15913a0353e06 SHA512 40da6729ae57c698a712f132d22451b1c9061af6862c80390a4c43209633bd28e133c9539061b165e65cab9d065e2753f6bc19f3ac6fd935071e753163b3a461 diff --git a/dev-python/jwcrypto/jwcrypto-1.6.1.ebuild b/dev-python/jwcrypto/jwcrypto-1.6.1.ebuild new file mode 100644 index 000000000000..9bd8136e1291 --- /dev/null +++ b/dev-python/jwcrypto/jwcrypto-1.6.1.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{12..15} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Implements JWK,JWS,JWE specifications using python-cryptography" +HOMEPAGE=" + https://github.com/latchset/jwcrypto/ + https://pypi.org/project/jwcrypto/ +" + +LICENSE="LGPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv ~x86" + +RDEPEND=" + >=dev-python/cryptography-49.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +src_install() { + distutils-r1_src_install + rm -r "${ED}/usr/share/doc/jwcrypto" || die +} diff --git a/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild b/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild index 7a21f2f22172..0e1d2c0753cc 100644 --- a/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild +++ b/dev-python/libvirt-python/libvirt-python-12.2.0.ebuild @@ -23,7 +23,7 @@ else MY_P="${P/-/_}" SRC_URI="https://download.libvirt.org/python/${MY_P}.tar.gz verify-sig? ( https://download.libvirt.org/python/${MY_P}.tar.gz.asc )" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" + KEYWORDS="amd64 ~arm arm64 ppc64 x86" RDEPEND="app-emulation/libvirt:0/${PV}" S="${WORKDIR}/${MY_P}" fi diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/dev-python/lit/Manifest +++ b/dev-python/lit/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/dev-python/lit/lit-23.1.0.ebuild b/dev-python/lit/lit-24.0.0_pre20260916.ebuild index 78186933430f..ed447bd3c1db 100644 --- a/dev-python/lit/lit-23.1.0.ebuild +++ b/dev-python/lit/lit-24.0.0_pre20260916.ebuild @@ -13,7 +13,6 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" IUSE="test" RESTRICT="!test? ( test )" diff --git a/dev-python/numpydoc/Manifest b/dev-python/numpydoc/Manifest index 35cc51b83d88..16a371a4eb56 100644 --- a/dev-python/numpydoc/Manifest +++ b/dev-python/numpydoc/Manifest @@ -1 +1,2 @@ DIST numpydoc-1.10.0.gh.tar.gz 94037 BLAKE2B 356004e4e30634048f9e4adb2b560fde574feac973c59d9becf6bd4bbd4d502c79ca6eaadb21322d13db0882a596e88e89f87d32565a003253b88bc6439c3446 SHA512 bd8becb71fe45f7a0e11bbd3f804c9855b1192ff22acbc0291380c462c493facd2efd6d59e560111ae56132925502d37abc90643db217358f3a8c1138ce7c693 +DIST numpydoc-1.11.0.gh.tar.gz 97229 BLAKE2B da290e76635955bc3fe6aac74ec693cb95e9842a770ca0aec71ce38a1ab01c30ce1159a02e509f415a107f932c1aae686d42511a9dab0363e3428eb72b9f909d SHA512 2c483c694ef3a6fbda63df9cfb76211ea36f1a96b1d5fc494a02e04f10ed8d9f01f9d0258a80be7ff72f272cb5299c2eece3614aacf32242714773f5c87b217b diff --git a/dev-python/numpydoc/numpydoc-1.11.0.ebuild b/dev-python/numpydoc/numpydoc-1.11.0.ebuild new file mode 100644 index 000000000000..3c714079d5b9 --- /dev/null +++ b/dev-python/numpydoc/numpydoc-1.11.0.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{12..14} ) + +inherit distutils-r1 + +MY_P=${P/_} +DESCRIPTION="Sphinx extension to support docstrings in Numpy format" +HOMEPAGE=" + https://numpydoc.readthedocs.io/en/latest/ + https://github.com/numpy/numpydoc/ + https://pypi.org/project/numpydoc/ +" +SRC_URI=" + https://github.com/numpy/numpydoc/archive/v${PV/_}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + +RDEPEND=" + >=dev-python/sphinx-6[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + >=dev-python/matplotlib-3.2.1[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=( + # these require Internet (intersphinx) + numpydoc/tests/test_full.py::test_MyClass + numpydoc/tests/test_full.py::test_my_function + # TODO + numpydoc/tests/test_validate.py::test_extract_ignore_validation_comments + ) + epytest -o addopts= --pyargs numpydoc +} diff --git a/dev-python/pivy/Manifest b/dev-python/pivy/Manifest index e2311cf4b3fd..bbbcc63244f5 100644 --- a/dev-python/pivy/Manifest +++ b/dev-python/pivy/Manifest @@ -1 +1,2 @@ DIST pivy-0.6.10.tar.gz 6678472 BLAKE2B 125551acde1bb5b323672e24cfd7554a32fab3a0abfa3431594ed793603f2ad38d957fddb75e8b5ad7bd40ea3d9259c7ed6b07e91f543697b0950f23892ac4cc SHA512 d4f52635c1e18f137322e52ead8e8e69a6519ed0902aab17a264fc296df9fe2b82221de2234aa152db9c7fd45003a6299a19ddace4488adea99c2159d31d68bb +DIST pivy-0.6.11.tar.gz 6276974 BLAKE2B f60fe22bcb9c8a94e36d7518112587d22ba73c25ef0a04a2ce55136c4cc292ba789b5bd3aafb73927962da5e64f7b74a8eeba56f43d524729def17c3e043f8b2 SHA512 abe0c252f8202e57e35728adc08a67fe1471d2a19802687e0c88cd69953bc902d5e77885f9b875b7dc33e73ffd8336b7e2703450645a6f22e982eca259c90be2 diff --git a/dev-python/pivy/files/pivy-0.6.7-find-qmake.patch b/dev-python/pivy/files/pivy-0.6.7-find-qmake.patch index 6332afa97a3c..735aebfa7ffc 100644 --- a/dev-python/pivy/files/pivy-0.6.7-find-qmake.patch +++ b/dev-python/pivy/files/pivy-0.6.7-find-qmake.patch @@ -13,7 +13,7 @@ Signed-off-by: Bernd Waibel <waebbl-gentoo@posteo.net> self._qmake_command = qmake_command else: - self._qmake_command = [find_executable("qmake"),] -+ self._qmake_command = [find_executable("qmake5"),] ++ self._qmake_command = [find_executable("qmake6"),] self._dict = {} # bind all variables early at __init__ time. for thing in self.__class__.__dict__: diff --git a/dev-python/pivy/pivy-0.6.11.ebuild b/dev-python/pivy/pivy-0.6.11.ebuild new file mode 100644 index 000000000000..bf1898decf87 --- /dev/null +++ b/dev-python/pivy/pivy-0.6.11.ebuild @@ -0,0 +1,73 @@ +# 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_{12..14} ) + +inherit distutils-r1 + +DESCRIPTION="Coin3D bindings for Python" +HOMEPAGE="https://github.com/coin3d/pivy" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + PIVY_REPO_URI="https://github.com/coin3d/pivy.git" +else + SRC_URI=" + https://github.com/coin3d/pivy/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz + " + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="ISC" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} +" + +RDEPEND=" + >=media-libs/coin-4.0.0 + media-libs/quarter + >=media-libs/SoQt-1.6.0 +" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-build/cmake + dev-lang/swig + test? ( ${RDEPEND} ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-0.6.6-0002-Gentoo-specific-clear-swig-deprecation-warning.patch + "${FILESDIR}"/${PN}-0.6.7-find-qmake.patch +) + +DOCS=( AUTHORS HACKING NEWS README.md THANKS ) + +src_prepare() { + default + + # no way to pass this via swig + sed \ + -e '/option(PIVY_USE_QT6/s/OFF/ON/' \ + -e 's/CMAKE_POLICY_VERSION_MINIMUM 3.5/CMAKE_POLICY_VERSION_MINIMUM 3.10/' \ + -i CMakeLists.txt || die +} + +python_test() { + # visual_test.py is interactive + tests=( + tests/coin_tests.py + tests/pyside_tests.py + tests/quarter_tests.py + ) + for f in "${strings[@]}"; do + "${EPYTHON}" "${f}" || die "Test ${f} failed with ${EPYTHON}" + done +} diff --git a/dev-python/plotly/Manifest b/dev-python/plotly/Manifest index 130439adc03c..a53d3ef10510 100644 --- a/dev-python/plotly/Manifest +++ b/dev-python/plotly/Manifest @@ -1,2 +1,2 @@ -DIST plotly.py-6.9.0.gh.tar.gz 10539701 BLAKE2B 9bc7856d14acc8bac28c3981967485d51a741d948c275ccb0d7cc6462273d2a68cb74104eb54db98899e6890423bbd066b612804bc59f3657ac7611a4a1fd109 SHA512 6c302391beaa81c389ab574a700b3269cc517b1fc81552f57bb12f0d8c283c0757fba6bca2582a02bd29c98697e94900af3805288b42ff70904f7d54c51ada9e DIST plotly.py-7.0.0.gh.tar.gz 9588726 BLAKE2B f725857ed1e645861b364697f0766b5aa750f04683736e9879bf0ebb70bd326af4a53ab862fe884c3e16e14958d86eee13f06d4d0e6d5b48c9b51a8c77f96ae2 SHA512 54fb04dd442f5deb2c18fdd78f8d74f76040dbf3af7451807c5567d86376fb72c995ac54c69acdfa86b369a078da300a5729f38bd506ac2760b1e8c96dc86761 +DIST plotly.py-7.1.0.gh.tar.gz 10239984 BLAKE2B d94c0d51c1d810c508b6a42567d8bb96bc47df7dd905f30a7557169a321505c92a6c0138702141766eaec1464ac1dcdd887f4a2ed611e65d5fd01a07db90fd43 SHA512 21527325f66e5cec00c98be740db89a5ecc53a057ffdb99950a3cbf915ac7188bdf346936308a57526e9cf14b6f30442c45a209635386c0abaec1f4c16c55707 diff --git a/dev-python/plotly/plotly-6.9.0.ebuild b/dev-python/plotly/plotly-7.1.0.ebuild index dae3a8e7f288..dae3a8e7f288 100644 --- a/dev-python/plotly/plotly-6.9.0.ebuild +++ b/dev-python/plotly/plotly-7.1.0.ebuild diff --git a/dev-python/propcache/Manifest b/dev-python/propcache/Manifest index 5552abe176b2..6738faf61d32 100644 --- a/dev-python/propcache/Manifest +++ b/dev-python/propcache/Manifest @@ -1,2 +1,4 @@ DIST propcache-0.5.2.tar.gz 50208 BLAKE2B 53b0a36724277bbe1b08e4fe9b6bf7b32933fbb52b5c4fa3477b3fba1d021875f9311cb4abc020989a40c3482707b0e9e3b40669b9d219334b10b0303dfbfbe9 SHA512 7d720b55a54a3dc35a13c27c8b2821e5dc8ccabae1c004c4049df6a4d914c7f5247cac4efb8a6e0cc95cb9cf62119c27febfeaaaa900343f19ee8c8cef92e15f DIST propcache-0.5.2.tar.gz.provenance 9321 BLAKE2B 4a48da3e3c88f767ef481373c560fc6d0895987422a43a4a9cd09d27a70c254d2b05fe19876c03f72d094770965992d1df0d8b066cbb9cd15f3eb4ee867dfc33 SHA512 ef3796ac1f4b65bfec89d1d9944870dfdead6f932671eb0725d6bf0ba1e19a8a8d50dd9e1b73c02d97b64d19af314e782dfda52a131c9851bb506f4a2a3cd08e +DIST propcache-0.5.4.tar.gz 61545 BLAKE2B e6aa31867cc04cedeaaaa597934cf2e8cc9362fe7f7f05059dbc50e87865091c1083d89e76023e7537c77fdb91759db06a4292958a74d58c5e16eb07b90b0bc9 SHA512 90cc06be430dd305e30c1931bf5504ea811169badd19e54a7cc92a721c9d353419d649c5eab5eba59f035e557cbb451087974bec5af752ec16590430061c0d43 +DIST propcache-0.5.4.tar.gz.provenance 9535 BLAKE2B 713d4b82f4789afab22772fdef3713913f230a5cbd50f53ba291858a8f5c1c4f987b0fbe0f02c0d77e6b013dcf75f64edb34bb748c465f55798a7c1a034b6f9c SHA512 75f71a1065560d6ef17654f5a27ceb2d387bddacda4374ed8d6106c83dd8131959550502344579a8bfef4ce7cce27cdb01e997e91edc330d1cddf501f49a4548 diff --git a/dev-python/propcache/propcache-0.5.4.ebuild b/dev-python/propcache/propcache-0.5.4.ebuild new file mode 100644 index 000000000000..75e13efd388a --- /dev/null +++ b/dev-python/propcache/propcache-0.5.4.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=standalone +PYPI_VERIFY_REPO=https://github.com/aio-libs/propcache +PYTHON_COMPAT=( python3_{12..15} python3_{14..15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="Accelerated property cache" +HOMEPAGE=" + https://github.com/aio-libs/propcache/ + https://pypi.org/project/propcache/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+native-extensions" + +BDEPEND=" + native-extensions? ( + dev-python/cython[${PYTHON_USEDEP}] + ) + dev-python/expandvars[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_compile() { + local -x PROPCACHE_NO_EXTENSIONS=0 + if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then + PROPCACHE_NO_EXTENSIONS=1 + fi + distutils-r1_python_compile +} + +python_test() { + local EPYTEST_IGNORE=( + tests/test_benchmarks.py + ) + + local opts=() + if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then + opts+=( --no-c-extensions ) + fi + + rm -rf propcache || die + epytest -o addopts= "${opts[@]}" +} diff --git a/dev-python/pyenchant/pyenchant-3.3.0.ebuild b/dev-python/pyenchant/pyenchant-3.3.0.ebuild index 4b7fd14e93d3..6666d30559fa 100644 --- a/dev-python/pyenchant/pyenchant-3.3.0.ebuild +++ b/dev-python/pyenchant/pyenchant-3.3.0.ebuild @@ -20,7 +20,7 @@ SRC_URI=" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" RDEPEND=" app-text/enchant:* diff --git a/dev-python/pymdown-extensions/Manifest b/dev-python/pymdown-extensions/Manifest index b294c54a658c..704894af9e08 100644 --- a/dev-python/pymdown-extensions/Manifest +++ b/dev-python/pymdown-extensions/Manifest @@ -2,5 +2,7 @@ DIST pymdown_extensions-11.0.1.tar.gz 857113 BLAKE2B a585fd5c325fb4b146ecdddf920 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 +DIST pymdown_extensions-12.0.1.tar.gz.provenance 9890 BLAKE2B 491f20c46cfdb392d7ad484b52d26397d30aa28ce95039fa9ccf93e69cb1b4a54147d2ce81f7d22fd3079b111041109102a65de9e8a7a00a2e91fbd01c533687 SHA512 0992eead14c6c8147683616ad66d32d8134dab1279b275b06bda5f50e60d5dbd4566eea139903f3dba535f6ed3c1d91cfa91965637ace3c1389771c40c48c0af DIST pymdown_extensions-12.0.tar.gz 867035 BLAKE2B 2a95a81964b16f816c435892c9498614c3c9befd50c5d34b3d3e1fd324ef14a4dcb43eec487b1af865e4c778746f7b1b4f4d50ce77edb626fdbc5fc9f2f8b83f SHA512 bc1738a04021889df3a802074d93131a84ec5000db3aa4cae5b068cb9ace315941bcf57565983d172f3965cb57017c168df96ab25667132ed3e2517a61edc2b7 DIST pymdown_extensions-12.0.tar.gz.provenance 9995 BLAKE2B 2c231bb3f412bbdad5abbeb7627be427e8ba3bc6eec22f2128ad089e71d639599494edaf9a9e84db8093ea484955843b23f642fd33c7d1f93c5a3ae0ee02175f SHA512 36de2ab58cf83c00e4f207b6421eddf225646ee38bf79dbfad6a969dde532c8d8352ba39e173567a455037710cc9dfd77e658607a02fad987e43bded7e2f82c7 diff --git a/dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild b/dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild new file mode 100644 index 000000000000..7fc1f4531858 --- /dev/null +++ b/dev-python/pymdown-extensions/pymdown-extensions-12.0.1.ebuild @@ -0,0 +1,34 @@ +# 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_{12..15} ) + +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/pyproject-api/Manifest b/dev-python/pyproject-api/Manifest index eed12a6aafc5..dc1afc4a4866 100644 --- a/dev-python/pyproject-api/Manifest +++ b/dev-python/pyproject-api/Manifest @@ -1,4 +1,4 @@ -DIST pyproject_api-1.10.1.tar.gz 23477 BLAKE2B b7051bbd72f5c9d4115118e20d691e705fdaf5293c99c667db9528fd0a1a40010f331450fcea8b7349e8df7174dffcbfbe61bd03ec9873a1d02627bdf9dc234a SHA512 f37c805879a37aa9564fc5bc15cf7bcf7724fb1cec56dcc82328e1cc9f803c6e2053cccd2f30cca7d621f594db52773348e25f7a2b581a893a63e7f11e00f7c0 -DIST pyproject_api-1.10.1.tar.gz.provenance 10016 BLAKE2B 704a82013aacc995d75a24f48c7c4d08e5ce9d06697fe02827286a2ec47f4e26d42ae83cd9345fb177ceb5ed28bec18ce8e24c47d4f83e8ff00625c9e3d1050e SHA512 673a0779e7c8237b94296331257718bf6a5faa530f36ff57e4fe64e7ecfd23e3a17ede37e511804bf0c1f405b36595cecd9fd9dcd2794b49fd5af89aed7e944d DIST pyproject_api-1.11.0.tar.gz 23787 BLAKE2B 63846530d8299564466546f8b00bf46c3b2010b95c5661727f80a3966d0d5cdfb36e43a6848b1ac970ca11d489b67aa96e49387d69d5fd36a1170bafd0096951 SHA512 0d42bf451077ad1661c1d0ee5d5dfce1525ef65000e556bc3f71a7ffe5b8324aa25b5688322763b760bbd14130c3dda28e30610351084d95b73c81e706241884 DIST pyproject_api-1.11.0.tar.gz.provenance 9781 BLAKE2B 956f3099e731974bf28a4b31f7c29f8e34d2f4e5816e15f6c4db0257ff833b349c5b63caf9c83e2590a36d02ecc94d1771fb90488bc7955142b12666a6de3c46 SHA512 01fc7652d185f6f5b255461e3b7a0fd7d1d07680416e179a7ef9ba5cf71e6e813699fafbdb04780f85e9c2e30b9cb7bca02975171d93a5c3c465ac8a46e5b0a6 +DIST pyproject_api-1.11.1.tar.gz 23991 BLAKE2B 29db06754c715a3c60c98974e9c98dd343cc5a75746eb58cb055647968b188d72c5dac67463b1bf17bd6ce0b8fc17b22141e21061d6a723adeb8be51f17002c3 SHA512 f012aa1734ab6108eee56f621ccdf938a07cf57a81e68425a8004c0a2de0130c6c246b131a88d439b07bdad828e9e895833947d27d74e9ea936d21fcea5f33fa +DIST pyproject_api-1.11.1.tar.gz.provenance 9736 BLAKE2B 056f457a9d5c45fcd7983fc0ff6fedefc3b7ee3b74c7a98d3e9988769d9391f9fe5e803dea6ac5a65a4902d77c51371c7ef77dbbb824b617eab0477a324bd144 SHA512 52808c3501cfa20824de9798b0dba3ec7688e2410019820234f875cad61c4e97122d7875ae33799b4c0177bdac9af5391d96bf77cfb9b6c2c2ed19be5e21953d diff --git a/dev-python/pyproject-api/pyproject-api-1.10.1.ebuild b/dev-python/pyproject-api/pyproject-api-1.11.1.ebuild index 5fc944f029f1..13def5d3be93 100644 --- a/dev-python/pyproject-api/pyproject-api-1.10.1.ebuild +++ b/dev-python/pyproject-api/pyproject-api-1.11.1.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" RDEPEND=" >=dev-python/packaging-25[${PYTHON_USEDEP}] diff --git a/dev-python/pyproject-hooks/Manifest b/dev-python/pyproject-hooks/Manifest index 7321a8dc1af8..473b147afa3c 100644 --- a/dev-python/pyproject-hooks/Manifest +++ b/dev-python/pyproject-hooks/Manifest @@ -1 +1,3 @@ DIST pyproject_hooks-1.2.0.tar.gz 19228 BLAKE2B e02864220393876639cc459918f48c02e19835b392102d117cb5900c9a4f5228bc21377421f7afdd67300ba15d131194197a3b4b1ce0ad7fef195bca9be4344b SHA512 e098e521f03cfae9a96c0ee5d2e2ef46ef832d8f38c7d8380fc17355776e09ae3a704879e6e4a2bc7999092c4dbf80267b3b56850135c74d275a12607e0ffe83 +DIST pyproject_hooks-1.3.0.tar.gz 20883 BLAKE2B a2e9984a25c6f730e6f1e46a0a144bef4ad05909d389a615e6ff72019c0b06c6996ca89fea0a875e6ccc39f2414d084dc00c7a7d87a4d50ddb5d6e6d8cf2a896 SHA512 08dc8e6e92fea46da684cc1105a205ba3f657307a4219fb6f562d4cd4f269399bbbe7bd95b933a9940d63ea5af4433f48c0058c8573ff69c055a4b3cf5ffef95 +DIST pyproject_hooks-1.3.0.tar.gz.provenance 9655 BLAKE2B a8b76df1718a1b065f8c798ca03a8111c20b391b283a0f0bc91dbe80f8a8ad51045f432fe55a2e12d8ff716629b8906fc563b54f7d5b0c709f4b57c33a3b8499 SHA512 3f15ea931c5ae9f2f56cda1f88ae571d667cb04813d6ae964bb80dcd17974ac4d2a6325f26a3301c75424baf67e60840122b9323e4d169628151530f1a9cffc7 diff --git a/dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild b/dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild new file mode 100644 index 000000000000..262f22823f2d --- /dev/null +++ b/dev-python/pyproject-hooks/pyproject-hooks-1.3.0.ebuild @@ -0,0 +1,37 @@ +# 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/pypa/pyproject-hooks +PYTHON_COMPAT=( python3_{12..15} python3_{14..15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="Wrappers to build Python packages using PEP 517 hooks" +HOMEPAGE=" + https://pypi.org/project/pyproject-hooks/ + https://github.com/pypa/pyproject-hooks/ + https://pyproject-hooks.readthedocs.io/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +BDEPEND=" + test? ( + dev-python/testpath[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # fails due to setuptools 70.1 + # https://bugs.gentoo.org/936052 + # https://github.com/pypa/pyproject-hooks/issues/203 + tests/test_call_hooks.py::test_setup_py +) diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest index 682880484ebb..70680577549b 100644 --- a/dev-python/sqlalchemy/Manifest +++ b/dev-python/sqlalchemy/Manifest @@ -1,3 +1,4 @@ DIST sqlalchemy-2.0.52.tar.gz 9945637 BLAKE2B 4af6f1485d26c94569babc99ba6cb3314f0bbc4267bc17ebefbb786390214110283b0a43a81cc38d275fcd852bbb74e77ed2167dce6a5ec9b144119eb0593206 SHA512 9341389b75b684b37f2f1bba8fde882c95c77a68e5ff15b8ab16b163db9c31088a884352999b750fbabadbd723cff093e971035159e77562d5cd843305258fdd DIST sqlalchemy-2.0.53.tar.gz 9966200 BLAKE2B b14be728d4ba7e6517b6e4af96127e3c5bde05218d77afa5bba16638f4270e85c69eded7bd4497c517afc2dbcc5db1baa1201c84d8354ac9a7de8e0f5cf3f98b SHA512 568035a5c37e337eee5606756e5c3bb3edff248cca4879144d690ff4215abc51d697eeb0ab7a3991ea933b65a639d2ae8812e9b325d4fd7d860a26513892609c +DIST sqlalchemy-2.0.54.tar.gz 9969559 BLAKE2B b29973d44b49e8c98267d509246369e78c213a3d53280098c4ea14c6d2ae6161fc2bfb71bd2e4af32c39bc187efd0ae03668bad3963ca79187c3889521da4911 SHA512 d88af975c7fc7d4e1b0781e654ef003fb1de90f00e6a4168b167c2b8c6927732caea5bb9ec084451994d89e8808691bc18abf236d80f6e13158f6f1f0a406d1b DIST sqlalchemy-2.1.0rc1.tar.gz 10436777 BLAKE2B 3840f114f930dc1d18e8837cd51ebc66a193f386139eda7b825a0efcc280488a4d1f78c0997c4c81d5c8c2b6b92b2cb789beec32dbae43fa05bd638d3afe493b SHA512 66435f258067621f649ae8f28ed409772319cf9939b21cb8a7b2de1ddcdb482f536402350767ff618dbec2be5254b243f903f8c7a7261c49bc66269235bce2eb diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild new file mode 100644 index 000000000000..47b1fdf975f2 --- /dev/null +++ b/dev-python/sqlalchemy/sqlalchemy-2.0.54.ebuild @@ -0,0 +1,95 @@ +# 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 +PYPI_PN=SQLAlchemy +PYTHON_COMPAT=( python3_{12..15} ) +PYTHON_REQ_USE="sqlite?" + +inherit distutils-r1 optfeature pypi + +DESCRIPTION="Python SQL toolkit and Object Relational Mapper" +HOMEPAGE=" + https://www.sqlalchemy.org/ + https://pypi.org/project/SQLAlchemy/ + https://github.com/sqlalchemy/sqlalchemy/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +IUSE="examples +sqlite test" + +RDEPEND=" + >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/cython[${PYTHON_USEDEP}] + test? ( + $(python_gen_impl_dep sqlite) + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_RERUNS=5 +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + sed -i -e '/greenlet/d' setup.cfg || die + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_IGNORE=( + test/ext/mypy/test_mypy_plugin_py3k.py + test/typing/test_mypy.py + # hardcode call counts specific to Python versions + test/aaa_profiling + ) + local EPYTEST_DESELECT=( + # warning tests are unreliable + test/base/test_warnings.py + # TODO: flaky? xdist? + test/base/test_concurrency_py3k.py::TestAsyncioCompat::test_await_fallback_no_greenlet + ) + local sqlite_version=$(sqlite3 --version | cut -d' ' -f1) + if ! has_version "dev-python/greenlet[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_execution + test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_run_sync + "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[False-True]" + "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[True-True]" + "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[has_terminate-is_asyncio]" + "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[not_has_terminate-is_asyncio]" + "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True-_exclusions0]" + "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True]" + ) + fi + + # upstream's test suite is horribly hacky; it relies on disabling + # the warnings plugin and turning warnings into errors; this also + # means that any DeprecationWarnings from third-party plugins cause + # everything to explode + epytest --reruns-delay=2 -m "not gc_intensive and not timing_intensive and not mypy" +} + +python_install_all() { + if use examples; then + docompress -x "/usr/share/doc/${PF}/examples" + dodoc -r examples + fi + + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature "asyncio support" dev-python/greenlet + optfeature "MySQL support" \ + dev-python/mysqlclient \ + dev-python/pymysql + optfeature "postgresql support" dev-python/psycopg:2 +} diff --git a/dev-python/threadpoolctl/Manifest b/dev-python/threadpoolctl/Manifest index 28b03f0cc0b3..197bf3a8296c 100644 --- a/dev-python/threadpoolctl/Manifest +++ b/dev-python/threadpoolctl/Manifest @@ -1 +1,2 @@ DIST threadpoolctl-3.6.0.gh.tar.gz 37892 BLAKE2B 3b89180bbfdbb5aa027a5f828745ba1bd881533e6c2f5ff44fecf920618db4111fa9ef1b219e929485a327e54fe144f80cb9b78a4012d509dea7151f0892e5f8 SHA512 5c55f81bbff127cd7cdd62f390ed5a386c29c7d2806aa98a67b99b54fde0d0360ac78ce004125561486b7f5076c9085ea8dd52779aea1b9bc65b25cf166925e1 +DIST threadpoolctl-3.7.0.gh.tar.gz 53102 BLAKE2B a6bf0533210eb35b72a2d7d9b7058a6e357a2c8a5e645953c30c1b425ed9dc80514878cfec681c5617c0644ae8d12b39a07588810ae302038ba098faf297d4dd SHA512 957821c45942e0c43deeca4abfc1849fd70a982deaf1ac31f78931847f73ecbed704437892b42b8afd2e20e7e8bdac0bf47e97934bbb69a27f09fe6aabdf4075 diff --git a/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild b/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild new file mode 100644 index 000000000000..0b4b195c6775 --- /dev/null +++ b/dev-python/threadpoolctl/threadpoolctl-3.7.0.ebuild @@ -0,0 +1,65 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit-core +PYTHON_COMPAT=( python3_{12..15} ) + +inherit distutils-r1 toolchain-funcs + +DESCRIPTION="Limit the number of threads used in native libs that have their own threadpool" +HOMEPAGE=" + https://github.com/joblib/threadpoolctl/ + https://pypi.org/project/threadpoolctl/ +" +SRC_URI=" + https://github.com/joblib/threadpoolctl/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos" + +BDEPEND=" + test? ( + dev-python/cython[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/scipy[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=( + # Asserts against a hardcoded list of CPUs. Either we skip it + # or file bugs about missing architectures until upstream realizes + # how bad idea that were. + tests/test_threadpoolctl.py::test_architecture + # This test fails if the Python executable (or any library that it + # links to) uses OpenMP. This can particularly be the case with + # CPython 3.12 that links to app-crypt/libb2. + # https://github.com/joblib/threadpoolctl/issues/146 + tests/test_threadpoolctl.py::test_command_line_empty + ) + + # see continuous_integration/build_test_ext.sh + if [[ ! -f tests/_pyMylib/my_threaded_lib.so ]]; then + pushd tests/_pyMylib >/dev/null || die + $(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIC -shared \ + -o my_threaded_lib.so my_threaded_lib.c || die + popd >/dev/null || die + fi + + pushd tests/_openmp_test_helper >/dev/null || die + "${EPYTHON}" setup_inner.py build_ext -i || die + "${EPYTHON}" setup_outer.py build_ext -i || die + "${EPYTHON}" setup_nested_prange_blas.py build_ext -i || die + popd >/dev/null || die + + epytest +} diff --git a/dev-python/tifffile/Manifest b/dev-python/tifffile/Manifest index 334a1cacab93..84d006476c4b 100644 --- a/dev-python/tifffile/Manifest +++ b/dev-python/tifffile/Manifest @@ -1,2 +1,2 @@ -DIST tifffile-2026.8.23.gh.tar.gz 428025 BLAKE2B b6021be6bc47814a09847f610dd1f111317830df31aacaf3d68a793933c5bcfbd625f4607c7ac9c68907db295f8c17148d2b6215d6ef809215863b09ca1a4497 SHA512 86778792b8f156798dba02a3288bc7cff4fd09e1a7feef57104469761699a1c0bf76bebc08fe9e8620c2a368617189cb2dcd5273b1a06bef767629d42f6e4bff +DIST tifffile-2026.9.15.gh.tar.gz 428109 BLAKE2B 510e16937f4286fef6da3b19c2f7edfa06e26e19eeb938357885d2731bd1404315eb44624352491535d71b5d5328ce8e30b5b865616819b66d43c87c7b5502ea SHA512 76f1ed5a122f46d4d9e05e6024ad362dbca8c3f1af8fb328f0f19945d53a3da21df2ec2b467fa56a214486607b479abdc0ab0b67f1d4885233262c7487b34179 DIST tifffile-2026.9.9.gh.tar.gz 427709 BLAKE2B 8e935e91b9bc43ec74ed26f0d7b1038b3c2ea9e03cd90b6712d3fc2999fe584954b1baa5111baa1ec00e4ca4e556adde3ee9092ae7031ffd00c690aec06bbc5d SHA512 75256c187bf979d55217b945e1443e2d3d895821c200b96f72a9ba98e4f3c84e879f776e8c7b30e0cefceb6d0ab8770c67d8abc31da8db633f8726b2be53f4d9 diff --git a/dev-python/tifffile/tifffile-2026.8.23.ebuild b/dev-python/tifffile/tifffile-2026.9.15.ebuild index 637e43979e1e..637e43979e1e 100644 --- a/dev-python/tifffile/tifffile-2026.8.23.ebuild +++ b/dev-python/tifffile/tifffile-2026.9.15.ebuild diff --git a/dev-python/tornado/Manifest b/dev-python/tornado/Manifest index 7fcffa153f4c..62d409037691 100644 --- a/dev-python/tornado/Manifest +++ b/dev-python/tornado/Manifest @@ -1,3 +1,5 @@ +DIST tornado-6.5.10.tar.gz 537910 BLAKE2B 6ec1bcba8c7dc2175206528b97be64e6dbbfb51ae6c9cdd1d0dc0bdc4eff55c1a9a0ebe9c700ea18e88fef3197b0d7efe1812fab5196dfab5cdfd71b6d1568bc SHA512 0a3a38162a91d7d82f0d790d37788c5761bd9663af0356641bd6bd0ec5f6d490e5013965db1f91f28959d925127640cffbd4b661415b43ca5b50ee812841f445 +DIST tornado-6.5.10.tar.gz.provenance 9454 BLAKE2B 4a8faa5670534337aead096a06c10b3f77c0ba8dc13e70d94dc92fae59a28e072333ef37635cf2db12fe20de17e175e96da6b575e73c8426103320b6a58f71ac SHA512 c03ebd606a6543a816ffff74217061702ffbdfbeb209ac7541f50d6beca4caf8568e32b40712a3b9ef567f15d50453fe789a84f6e4c2420201216a50776c6951 DIST tornado-6.5.8.tar.gz 520493 BLAKE2B e48ca20fe0551b8536162071e0b9267ccd167df617c25f930481668e733c656904109014e65462e561d47acc557cfe32f86a422e8f7e840b4262acbafb2b720a SHA512 88c096ca30357644c07b6013cd514b5e64135b26a77d9ff17640951632d6f68c9a68d7fa80224743f7900fbf5ddde838088bd9838395651d87d876c8d1d1a2fe DIST tornado-6.5.8.tar.gz.provenance 9416 BLAKE2B 1f4d1d9289f8aa8fdde1dda19454da15e9056111f0225e0701eb385ef42b0fae26a6bb9dc5df3ffb9796e4d805db5aa7406aa466ec9389802df1033cdb5231a6 SHA512 b1c364aed55ecb3cbab7343de9ebfaa181579ca81a57e498953c7d0e657bd8b08ee9fb6e5f72d8205f379fbd25237054bfecdb9982fc973e4bb55a00a0411444 DIST tornado-6.5.9.tar.gz 536145 BLAKE2B 13071c50a8f0701d750f26aa5fb3669ee5c78c4d249d570b519a672d8fdfa76d38f90633ad21fa1c7d551c50c5f6d0dab53ebb694685d52f1cc1269cb0728564 SHA512 e497f0cacca0ca0d34b65117a72e9ebe0056f77ced09eb5d200dea24da8c28182d5704d1b17510fc139841718fce6a19c7f154d416e59292f4236eb717a0a75c diff --git a/dev-python/tornado/tornado-6.5.10.ebuild b/dev-python/tornado/tornado-6.5.10.ebuild new file mode 100644 index 000000000000..76c40f41afc1 --- /dev/null +++ b/dev-python/tornado/tornado-6.5.10.ebuild @@ -0,0 +1,61 @@ +# 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 +PYPI_VERIFY_REPO=https://github.com/tornadoweb/tornado +PYTHON_COMPAT=( python3_{12..15} ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 pypi + +DESCRIPTION="Python web framework and asynchronous networking library" +HOMEPAGE=" + https://www.tornadoweb.org/ + https://github.com/tornadoweb/tornado/ + https://pypi.org/project/tornado/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/twisted-16.0.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + ${RDEPEND} + $(python_gen_cond_dep ' + >=dev-python/pycurl-7.19.3.1[${PYTHON_USEDEP}] + ' python3_{13..15}) + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.3.2-ignore-deprecationwarning.patch" +) + +src_prepare() { + # network-sandbox? ipv6? + sed -i -e 's:test_localhost:_&:' \ + tornado/test/netutil_test.py || die + + distutils-r1_src_prepare +} + +python_test() { + local -x ASYNC_TEST_TIMEOUT=60 + # Avoid time-sensitive tests + # https://github.com/tornadoweb/tornado/blob/10974e6ebee80a26a2a65bb9bd715cf858fafde5/tornado/test/util.py#L19 + local -x TRAVIS=1 + local -x NO_NETWORK=1 + + cd "${T}" || die + "${EPYTHON}" -m tornado.test.runtests --verbose || + die "tests failed under ${EPYTHON}" +} diff --git a/dev-python/trakit/Manifest b/dev-python/trakit/Manifest index ace11e1ac489..0c6e51504b47 100644 --- a/dev-python/trakit/Manifest +++ b/dev-python/trakit/Manifest @@ -1,2 +1,2 @@ -DIST trakit-0.2.5.tar.gz 34873 BLAKE2B 5e5272a7a9882328dd1f5fc2a8e142511d0a1cb19d488378b9fa43772ee77ce787d309d0b10fe77ee8f737817e41c8fdf6cc2d8eaafa989353706cbc92358e89 SHA512 95dfd06d8cb6c9f4b2f1412c4b505209e5122595f0ebba1b6bef9ecb80c31e4f8a4b7aba706931ce9684f2e8ddf4f9836c9f034053ce2f25c857d08c76a9eaf1 DIST trakit-0.3.0.tar.gz 34888 BLAKE2B 63668b7b5a0f4f94c055bf6e20220549fe54cb06a3b0832d6c6220075c2ef1a4488e75bb8ff3b24740597853fc0b6ce9661c8e04e7b2a449603545c9e6f09967 SHA512 11eebf7656ff1da72c8a05f8e58d1e6cac753ae1f5b8ee3c8c1afc52ab4c001b7ded3fa395a422fbbd4d452d3d8769f597e49df0985e83fc50f31551c1d468bc +DIST trakit-0.4.0.tar.gz 34465 BLAKE2B 7d6be36561c1c968b62bcf7dd24ff21dc3f1df0927acb476cf278884a74f42038c61f11667d573371a740c923e61d2a94b834d9a374ce388898a80640eb06829 SHA512 46b3cf32e059b642bdc69ea5e7b20b216bda265c0b114a3e1c1ef16a3145d7236f2d9da6c7e8b648e2203f91daa399bc0334386798e7f5f19ac370cb421370c5 diff --git a/dev-python/trakit/trakit-0.2.5.ebuild b/dev-python/trakit/trakit-0.4.0.ebuild index d453da5e225a..201075132362 100644 --- a/dev-python/trakit/trakit-0.2.5.ebuild +++ b/dev-python/trakit/trakit-0.4.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -DISTUTILS_USE_PEP517=poetry +DISTUTILS_USE_PEP517=hatchling PYTHON_COMPAT=( python3_{12..15} ) inherit distutils-r1 pypi @@ -16,7 +16,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 ~x86" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" RDEPEND=" >=dev-python/babelfish-0.6.0[${PYTHON_USEDEP}] @@ -36,10 +36,3 @@ EPYTEST_DESELECT=( EPYTEST_PLUGINS=() distutils_enable_tests pytest - -src_prepare() { - distutils-r1_src_prepare - - # sigh, poetry - sed -i -e 's:\^:>=:' pyproject.toml || die -} diff --git a/dev-python/urllib3/Manifest b/dev-python/urllib3/Manifest index b209d1bf7ebf..4f52106b16f6 100644 --- a/dev-python/urllib3/Manifest +++ b/dev-python/urllib3/Manifest @@ -1,3 +1,5 @@ DIST hypercorn-d1719f8c1570cbd8e6a3719ffdb14a4d72880abb.gh.tar.gz 156216 BLAKE2B fcb5f49653401e6e4079e1c770d3cd407602d4d6764437b735bd4ec04191dec59cdc930822fa2aff726ee25cddd0f71fd457dedf31026bff1da121d93af8b768 SHA512 62d6787d88a2e716f0ac04fc49f6cdc586e473a660ee754ff66961922ae78bcc75d1f78b091e78557dd60f006e8e480114738c7b4ff71beac804e4fc9603240b DIST urllib3-2.7.0.tar.gz 433602 BLAKE2B 2a74917dbcca8a30cd0e202c6c4d1b2cb096b6466b4c7c4d7a11d74205f971cea41aac5628ea8d69cfd99f1a0ac1aff4221119cddcf53449e8271bc4d50e6abf SHA512 6f75e5873f18301de37c0d7f17c726b21c9928f2fe9ec58d843f1172b80be6eb05117bdf7af27dd7eb1ab0175a94e0f49cde01d8d8919f61de8710e163fabc03 DIST urllib3-2.7.0.tar.gz.provenance 9499 BLAKE2B 86eb7207644c7f94a76f8818927d4e2301648c4bde0acc029f95ddf40ae3b777ad6149ca8fbfa51de26493c6c3987d99ddfb90df101c4e5eb1d3c85ddf101134 SHA512 25447cda48b206b5a351c9295771111bc0e61d53fb878a3735ac1d7c6a333df863b396b215a9bbc3a7821b368738aa3f5bbac7dbc67e617c354ff977e3432743 +DIST urllib3-2.8.0.tar.gz 458972 BLAKE2B 10ff4ea8f934c19159b5a10d2c2af954d93114c636eb2c052970d6a9a7787b8e99dc49f1bdbb42d31458c9c7f37a22a0b206a34a14dfe0aa72d272f37905c7ea SHA512 3104f0b89b9d7421b0b13ff34c9e68a315772f2e1271c8b02da516b7dc4108676e632145ab9b390c3d9033019253f36a48ca44c5b89269058eebb0d21f472383 +DIST urllib3-2.8.0.tar.gz.provenance 9611 BLAKE2B bbb95ca460058ed0993b895a8a76ca00cea828abc0ad16d163d6a0a0014aa7e69d0daabbb3a7f7dd82e6dbad0ea21ea3e6743e21549ed265b49b53e534034db7 SHA512 3c290a3a51161e10f3ab5d8c02875c68adc0c04eed4f12b121b5b3637646fac311e10910ddb7cd51130fbcad7fed0b269aa2b4e8c8d886936fb846011d1aaa85 diff --git a/dev-python/urllib3/urllib3-2.8.0.ebuild b/dev-python/urllib3/urllib3-2.8.0.ebuild new file mode 100644 index 000000000000..0b66b0cbb11b --- /dev/null +++ b/dev-python/urllib3/urllib3-2.8.0.ebuild @@ -0,0 +1,118 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/urllib3/urllib3 +PYTHON_TESTED=( python3_{12..15} ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{14..15}t ) +PYTHON_REQ_USE="ssl(+)" + +inherit distutils-r1 pypi + +# The package has a test dependency on their own hypercorn fork. +HYPERCORN_COMMIT=d1719f8c1570cbd8e6a3719ffdb14a4d72880abb +DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more" +HOMEPAGE=" + https://github.com/urllib3/urllib3/ + https://pypi.org/project/urllib3/ +" +SRC_URI+=" + test? ( + https://github.com/urllib3/hypercorn/archive/${HYPERCORN_COMMIT}.tar.gz + -> hypercorn-${HYPERCORN_COMMIT}.gh.tar.gz + ) +" + +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" +IUSE="brotli http2 test zstd" +RESTRICT="!test? ( test )" + +# [secure] extra is deprecated and slated for removal, we don't need it: +# https://github.com/urllib3/urllib3/issues/2680 +RDEPEND=" + >=dev-python/pysocks-1.5.8[${PYTHON_USEDEP}] + <dev-python/pysocks-2.0[${PYTHON_USEDEP}] + brotli? ( >=dev-python/brotlicffi-1.2.0.0[${PYTHON_USEDEP}] ) + http2? ( + <dev-python/h2-5[${PYTHON_USEDEP}] + >=dev-python/h2-4[${PYTHON_USEDEP}] + ) + zstd? ( + $(python_gen_cond_dep ' + >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}] + ' 3.{11..13}) + ) +" +BDEPEND=" + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + $(python_gen_cond_dep " + ${RDEPEND} + dev-python/brotlicffi[\${PYTHON_USEDEP}] + dev-python/freezegun[\${PYTHON_USEDEP}] + dev-python/h2[\${PYTHON_USEDEP}] + dev-python/httpx[\${PYTHON_USEDEP}] + dev-python/pytest[\${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[\${PYTHON_USEDEP}] + dev-python/pytest-timeout[\${PYTHON_USEDEP}] + dev-python/pytest-xdist[\${PYTHON_USEDEP}] + dev-python/quart[\${PYTHON_USEDEP}] + dev-python/quart-trio[\${PYTHON_USEDEP}] + dev-python/trio[\${PYTHON_USEDEP}] + >=dev-python/tornado-4.2.1[\${PYTHON_USEDEP}] + >=dev-python/trustme-0.5.3[\${PYTHON_USEDEP}] + " "${PYTHON_TESTED[@]}") + $(python_gen_cond_dep ' + >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}] + ' 3.{12..13}) + ) +" + +src_prepare() { + # upstream considers 0.5 s to be "long" for a timeout + # we get tons of test failures on *fast* systems because of that + sed -i -e '/LONG_TIMEOUT/s:0.5:5:' test/__init__.py || die + + # remove stupid warning checks + sed -e '/str(wm)/d' \ + -e '/assert not warn\.called/d' \ + -i test/with_dummyserver/test_https.py || die + + distutils-r1_src_prepare +} + +python_test() { + local -x PYTHONPATH=${WORKDIR}/hypercorn-${HYPERCORN_COMMIT}/src + local -x CI=1 + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping tests on ${EPYTHON}" + return + fi + + local EPYTEST_DESELECT=( + # TODO: timeouts + test/contrib/test_pyopenssl.py::TestSocketClosing::test_timeout_errors_cause_retries + test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_timeout_errors_cause_retries + # TODO + test/contrib/test_pyopenssl.py::TestSocketClosing::test_socket_shutdown_stops_recv + test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_socket_shutdown_stops_recv + # hangs randomly + test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread + test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread + # more random warning failures + test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_ssl_correct_system_time + test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_ssl_wrong_system_time + # some plugin? + test/test_connection.py::TestConnection::test_HTTPSConnection_default_socket_options + ) + + local EPYTEST_PLUGINS=( pytest-timeout ) + local EPYTEST_RERUNS=10 + local EPYTEST_XDIST=1 + epytest --reruns-delay=2 +} diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest index fc268a0cccf9..e75ed3a8e5dd 100644 --- a/dev-python/uv-build/Manifest +++ b/dev-python/uv-build/Manifest @@ -3,6 +3,7 @@ DIST uv_build-0.12.10.tar.gz 423598 BLAKE2B 363ee130a5da490859d0a2f0122be340f369 DIST uv_build-0.12.12.tar.gz 424423 BLAKE2B c7ed255923f884467ecaf8d70be044bea5c39db61611d320105d2a5c4c8e885a674ed22fa285ed398abbcaa229d9cca339f31f7d2e022adf099b5e0fe175d4c8 SHA512 38b91b29112af0e9677ae666125356b1735d8608ecdbcfae1d87ceff2b8cb8f61d5ecf917292a620d0e9c6f6d3ac121994fba2a0d7d076e18cd52e813fc1e2b2 DIST uv_build-0.12.13.tar.gz 424846 BLAKE2B 9fee11946f1067045349d28ba05b6dae8aaea430fdbbe19970c286d20f758d03343ed9a6afd2166f85ecfee3009fb66c7429f6ee8c58a6453e0203f2a3fca38a SHA512 77bf75208e6932b791b42d2a9dc199901a981d3ab8881e58cd5604e3207aef020538ff120770e0eb31646c1c0b7e972c816932c9d3bb0defc6b9583763607584 DIST uv_build-0.12.14.tar.gz 427528 BLAKE2B 81c3c2310058e279debf4c3964ac02fbccb0deec757fbb0824cf0e9a7e6edc0a49b269b382ee8ec47290bf37194c33c806bbb6778ba52d6915bbff3109007a9d SHA512 d8ff710bab00c287e3935e1411c9b9898a9db2107ac03285155bbcdda58e2d94d40556ace50986777b90832a03ea896149846b51e57691f9f243203c32ec44f7 +DIST uv_build-0.12.15.tar.gz 427499 BLAKE2B 30c3f72775de6f609ada7eca182fbd46da150624945983bd64691c59afb86e5e6c2bbeda1ea7f0bb5d12e8c9a332e741a9e2443ac6edba09da90352c00680d6a SHA512 8ad1d541ee1e287683d3013efb453e0ce1867e1404b369c36ac8f46b7300dd201516ade51930aad08b38ef1d42dff362baa13f58281d454344fde22f00443919 DIST uv_build-0.12.3.tar.gz 414444 BLAKE2B f226c1c2bf0b2af538f66095e20c02ad1933afdee62a07eff5f1135692bab47e286f67e7a8f5882e98c61fbb6bf831a85dd56a2d5af2bee6d62d8857a59e56bc SHA512 90d9af3e1a1ff1d7dda21fa38c0ac2d94536e73697ddabb408fb38e2d381498b2401007af0ab31c39cbf3b632aeca2991b3a66d7108e1c5eb7294b3fba8fe107 DIST uv_build-0.12.7.tar.gz 418759 BLAKE2B 94aa33b2644f849a686d80d7f7d365ca8433615d93f27209fca5b21747363cd349d11e887d090420102f06a49977ce963b8f19c24a4280bf82a09943ba08885b SHA512 135f845b3ee6d1925f740917f83f94ec1a7e95aab5ed2db0aa70516c712ab0a143a0e427d3c172fac0bb1fabaa9103718bb2a26c31c9a287e3af65ac0175a245 DIST uv_build-0.12.9.tar.gz 423446 BLAKE2B 8f32f7527633f5853a11a0f798a2aa075f9e96c2b34144f986a639dbd042bac7c5e33853287ef43273352a3ee84da852062c42daead1f188281295b635694177 SHA512 3aa6ea5b4e60218e7cbc3c5ed8ff7fbeeace36eb0d2c75627fb7a0ce7c060e8d6405378e9713f7164319cce55dc96b1a335ccb3032cfc7e9e60e99862295e79e diff --git a/dev-python/uv-build/uv-build-0.12.15.ebuild b/dev-python/uv-build/uv-build-0.12.15.ebuild new file mode 100644 index 000000000000..1625e3730c9a --- /dev/null +++ b/dev-python/uv-build/uv-build-0.12.15.ebuild @@ -0,0 +1,100 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maturin compiles uv-build executable for every impl, we do not want +# that, so we use another backend. And since we use another backend, +# why not dogfood it in the first place? +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{12..15} ) + +inherit distutils-r1 pypi + +DESCRIPTION="PEP517 uv build backend" +HOMEPAGE=" + https://github.com/astral-sh/uv/ + https://pypi.org/project/uv-build/ +" + +LICENSE="|| ( Apache-2.0 MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/uv-${PV} +" +BDEPEND=" + test? ( + app-arch/unzip + dev-python/build[${PYTHON_USEDEP}] + ) +" + +src_prepare() { + distutils-r1_src_prepare + + # use the executable from dev-python/uv instead of building + # a largely overlapping uv-build executable (at least for now) + sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die + + # replace the build-system section + sed -i -e '/\[build-system\]/,$d' pyproject.toml || die + cat >> pyproject.toml <<-EOF || die + [build-system] + requires = ["uv_build<9999"] + build-backend = "uv_build" + backend-path = ["src"] + EOF + + # rename to make uv-build find it + mv python src || die +} + +python_test() { + "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}" + + local zip_result=$( + unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die + ) + local zip_expected="\ +Archive: dist/uv_build-${PV}-py3-none-any.whl + testing: uv_build/ OK + testing: uv_build/__init__.py OK + testing: uv_build/__main__.py OK + testing: uv_build/py.typed OK + testing: uv_build-${PV}.dist-info/ OK + testing: uv_build-${PV}.dist-info/WHEEL OK + testing: uv_build-${PV}.dist-info/METADATA OK + testing: uv_build-${PV}.dist-info/RECORD OK +No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\ +" + if [[ ${zip_result} != ${zip_expected} ]]; then + eerror ".zip result:\n${zip_result}" + eerror ".zip expected:\n${zip_expected}" + die ".whl result mismatch" + fi + + local tar_result=$( + tar -tf "dist/uv_build-${PV}.tar.gz" || die + ) + local tar_expected="\ +uv_build-${PV}/PKG-INFO +uv_build-${PV}/pyproject.toml +uv_build-${PV}/pyproject.toml.orig +uv_build-${PV}/ +uv_build-${PV}/README.md +uv_build-${PV}/src +uv_build-${PV}/src/uv_build +uv_build-${PV}/src/uv_build/__init__.py +uv_build-${PV}/src/uv_build/__main__.py +uv_build-${PV}/src/uv_build/py.typed\ +" + if [[ ${tar_result} != ${tar_expected} ]]; then + eerror ".tar.gz result:\n${tar_result}" + eerror ".tar.gz expected:\n${tar_expected}" + die ".tar.gz result mismatch" + fi +} diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest index 0fc2a569f30f..51b06af7f5f4 100644 --- a/dev-python/uv/Manifest +++ b/dev-python/uv/Manifest @@ -8,6 +8,8 @@ DIST uv-0.12.13-crates.tar.xz 44176012 BLAKE2B 5a2459d28a794edf2a049c973916c6af9 DIST uv-0.12.13.gh.tar.gz 8784071 BLAKE2B afb0acdf733efe4937ba5e7a8ca5257e9f3c6651e13adf5b44e96985be9f0abebd2167aec84bf285385b8c984636c0c9ff0f4c6077188088cff27af40334fa78 SHA512 e8a03cde57914007d932c55d017be780a9aaeac62d1b5831a3fd62f8c44299d6c8bc01582eb3e6c06c92b3edfbd519e1ea4d8d95fbb2cd0bdffd85b1cd36a137 DIST uv-0.12.14-crates.tar.xz 44168832 BLAKE2B ad318ae7073d47eec81b715bb5461993c03de35b99d7b657fc1541ae63a3e3a2e5e9010bd2dbc525fc9b543ef85bdb276552383bdf916164b980c510646f2c74 SHA512 1cb24613d418983e2d7b921fe4766c5dce9d68eede6f1a99a1187657d002446a1b97685b0246d96136c6d3701050d2490830f0f325bfb602620a856b4aa498ac DIST uv-0.12.14.gh.tar.gz 8629043 BLAKE2B 2260d63c6061d3dd2bdcb267848e9e6379f2e09a72e34a024f988d27aeb6818b75c1dd34962f1730d5d394722c19394abc356735ed919f9edc0ac680f0fe6f1d SHA512 72354cb5cce51e938aba647cb6fa0956efb5a5d49be1a928f8965a0639d207e142170cefb2f5d5dc9e72943951580ca156e2a12be6b7c08d049c4dc3a7f1d944 +DIST uv-0.12.15-crates.tar.xz 44168832 BLAKE2B ad318ae7073d47eec81b715bb5461993c03de35b99d7b657fc1541ae63a3e3a2e5e9010bd2dbc525fc9b543ef85bdb276552383bdf916164b980c510646f2c74 SHA512 1cb24613d418983e2d7b921fe4766c5dce9d68eede6f1a99a1187657d002446a1b97685b0246d96136c6d3701050d2490830f0f325bfb602620a856b4aa498ac +DIST uv-0.12.15.gh.tar.gz 8628030 BLAKE2B 6640138ba52b1d4758e7d703652669b82de5246866145cbe62d0eda101738cc15a967037962c8a2f3a964cdf329896243a6363966088e2346a9499d2b85ea626 SHA512 7bc4c206e00ebb4540cd03b4eb70b120aebafe0392cfe652bd94dc8e003ea922eb451d2ce50c1468641f97709672cbea6c05f93739162fc822a8481fe2027089 DIST uv-0.12.3-crates.tar.xz 42197452 BLAKE2B 996bb294d37774e0cb5529c34552d20877cd82a3d063b6e4dc1f6feff05a7822a91c44408a970f038d3045312be0edd4c9e8d34f6eebc04d71bd4d2ffa0184ee SHA512 8de33956c5a603fb4aa1bb5ab6db68c537d7523a84f3092057f562b1209bc976b0bc64cc6ed76cbf1b0edb4981b6a41765fa5e2729a487e4e2322052aa08b8a4 DIST uv-0.12.3.gh.tar.gz 7273161 BLAKE2B 706a2297090b13c6f731d25f55ae8c2225e3b9bd820c61814f512c1e04d98d2e46ce5bfac6ec6ea346dbce1663aea644384b37663b53d64a08a90b48217bdb0d SHA512 a4933b9b9b852dee2485800ad82ee3be111a4a5a437ab32d5064cfd4004e124ba733294a546a097379c74cf1fc234d1da0488aec7725037c7b967ec1aa862a71 DIST uv-0.12.7-crates.tar.xz 44143088 BLAKE2B 075113e8cbafd99a1c70c4ce53678f2ceb13ce31dc7cafb5773e32ae9dfa14144390380e0149219912a0c4b92e6d3b9d0a0a0016cdd4c69097bf75adf1b8a716 SHA512 f9dbdad7cbddd3238c7cc9fbcbec4e92fc8c8c66bc7247ccc8159bb186223c199e3bd411ad9148750ec1fa258775dcec1e2bb6bc3287fca7aeb6ffa7ba4d6b44 diff --git a/dev-python/uv/uv-0.12.15.ebuild b/dev-python/uv/uv-0.12.15.ebuild new file mode 100644 index 000000000000..9826f9045941 --- /dev/null +++ b/dev-python/uv/uv-0.12.15.ebuild @@ -0,0 +1,151 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" +" +RUST_MIN_VER="1.96.0" + +inherit cargo check-reqs + +CRATE_PV=${PV} +DESCRIPTION="A Python package installer and resolver, written in Rust" +HOMEPAGE=" + https://github.com/astral-sh/uv/ + https://pypi.org/project/uv/ +" +# pypi sdist misses scripts/, needed for tests +SRC_URI=" + https://github.com/astral-sh/uv/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz + ${CARGO_CRATE_URIS} +" +if [[ ${PKGBUMPING} != ${PVR} ]]; then + SRC_URI+=" + https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz + " +fi + +# most of the code +LICENSE="|| ( Apache-2.0 MIT )" +# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below +# Dependent crate licenses +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0 + CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0 + Unicode-DFS-2016 ZLIB +" +# ring crate +LICENSE+=" openssl" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="test" +RESTRICT="test" +PROPERTIES="test_network" + +DEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-arch/zstd:= +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + virtual/pkgconfig + test? ( + dev-lang/python:3.9 + dev-lang/python:3.10 + dev-lang/python:3.11 + dev-lang/python:3.12 + dev-lang/python:3.13 + !!~dev-python/uv-0.5.0 + ) +" + +QA_FLAGS_IGNORED="usr/bin/.*" + +check_space() { + local CHECKREQS_DISK_BUILD=3G + use debug && CHECKREQS_DISK_BUILD=9G + check-reqs_pkg_setup +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + rust_pkg_setup +} + +src_prepare() { + default + + # force thin lto, makes build much faster and less memory hungry + # (i.e. makes it possible to actually build uv on 32-bit PPC) + sed -i -e '/lto/s:fat:thin:' Cargo.toml || die + + # enable system libraries where supported + export ZSTD_SYS_USE_PKG_CONFIG=1 + # TODO: unbundle tikv-jemalloc-sys? + + # remove unbundled sources, just in case + find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die +} + +src_configure() { + local myfeatures=( + test-git + test-pypi + test-python + ) + + cargo_src_configure --no-default-features + # otherwise, rustc/llvm runs out of address space + use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0" +} + +src_compile() { + cd crates/uv || die + cargo_src_compile +} + +src_test() { + cd crates/uv || die + cargo_src_test --no-fail-fast +} + +src_install() { + dobin "$(cargo_target_dir)"/{uv,uvx} + + insinto /etc/xdg/uv + newins - uv.toml <<-EOF || die + # These defaults match Fedora, see: + # https://src.fedoraproject.org/rpms/uv/pull-request/18 + + # By default ("automatic"), uv downloads missing Python versions + # automatically and keeps them in the user's home directory. + # Disable that to make downloading opt-in, and especially + # to avoid unnecessarily fetching custom Python when the distro + # package would be preferable. Python builds can still be + # downloaded manually via "uv python install". + # + # https://docs.astral.sh/uv/reference/settings/#python-downloads + python-downloads = "manual" + + # By default ("managed"), uv always prefers self-installed + # Python versions over the system Python, independently + # of versions. Since we generally expect users to use that + # to install old Python versions not in ::gentoo anymore, + # this effectively means that uv would end up preferring very + # old Python versions over the newer ones that are provided + # by the system. Default to using the system versions to avoid + # this counter-intuitive behavior. + # + # https://docs.astral.sh/uv/reference/settings/#python-preference + python-preference = "system" + EOF +} diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest index 99e02b8473c6..f8e0dd7dd414 100644 --- a/dev-python/virtualenv/Manifest +++ b/dev-python/virtualenv/Manifest @@ -1,5 +1,7 @@ DIST virtualenv-21.6.1.tar.gz 5526620 BLAKE2B a970f52b9a8ef5948ac0f2827ce9d2b724010bf77ef1fd678024d61834dd607cade4f1895c7f3cffd88d0b5f20353ee3b1934056d6d93a6d7576782aa71249e3 SHA512 bb5388dec00fa8e607188b1bd9240f2bbccf1b80ba94e4df30737eb435aae2be8637d534e2448cf7eae14dcc2f2b02a63168816c2207c8251c129db2a5665f39 DIST virtualenv-21.6.1.tar.gz.provenance 9508 BLAKE2B fa5122071df6df6435ad11f102bed2f85d5ebbaf8ab6056c2f2c66c1d3e8366692dadda375f2c39151abc413ec540169197730101ba3061dccec0cf2f7bd2668 SHA512 f5180591d1f4cca9bb5632ea2918437daf30c1deb91fac7676a783e5ee19ea424a6bac7fd3a8c6eddff7996ef6c1a4358746d92788cbd283a8abb579d745935e +DIST virtualenv-21.7.10.tar.gz 5350247 BLAKE2B 9d9b5f419c4ac1225ed4435a9f5a2e337854efe68b3453a67fb764e84b48d34d896ea322ab01de1892f33a0ceabf29a7937ecc1fa6173615c3e4e68aae4b3665 SHA512 87e8de301a3d089c1066a87cc40848c0e60985eddaba9aff217f41aaa10149d96dc0ec39ee507066c3f3cc402a9ca09ca8b22d14cf369c63075e2eb703187311 +DIST virtualenv-21.7.10.tar.gz.provenance 9440 BLAKE2B 6f75442780a0ce863a63316b4c43c92c5464ca27065f1d31e410a8cdadbf716fd3b8c07dcb22e2c855b2a745d9dcdcab1249ee20457e413b25b611a08f86e18a SHA512 f4386b408b460bbd0921d48e1f0751dc93b253dd4f3a1adfbb565263fd63488f6fd64d68ef52b0a60651a256c7714a687fe5cb6c23126446a6def5578f2dc5ed DIST virtualenv-21.7.4.tar.gz 5345511 BLAKE2B 30c7b5e782e4867e5d2a1726ab564af6d106280a909666a4dbee0a42d0cf9bde932681eb442cecb186d3a04bea329ebce458e45ecc5b745bfcc8a8fcc1e85997 SHA512 52db3945bf8c3c8f87db9b2e9df3ff22ab45b4ce3f0ffdbb9a7b3678df4cde0b0980dd9040adf478a6909d0650ff6f873a2db2d022e402e8d46edc8b67cf5c97 DIST virtualenv-21.7.4.tar.gz.provenance 9618 BLAKE2B 5cf72407fb515710895b6534a32c0b7b96329c3c8387aae5a1552e7d43a5447bb2d10c2198b61bd0150cf3cf719d54d5e3329a5a7230abb470e3805f87031a6b SHA512 a7280f39dfeb05379b7c9ba5dd3b9fdb8e7fda8a9496805795f53407fc175b308309640e77dfadec21806e2fb07c545ccb95c7e7b87fee68fa63fdf1fb30f58e DIST virtualenv-21.7.5.tar.gz 5346743 BLAKE2B 52c54885686970e47eb44c6271515164929382f7ab8f514c1cd4861fb9145354d4b299e1d2d5eb658504713545dc9d481db8dec8541235983f9f68d795b68d52 SHA512 708068427c768f6469ffc49afa9738ef7d7b1f3edd1809ed2e8267878eae7f5729ad0992fc9acefbda6059c4c42a78a6cba31af0c6dbf4de7414b6c12da924de diff --git a/dev-python/virtualenv/virtualenv-21.7.10.ebuild b/dev-python/virtualenv/virtualenv-21.7.10.ebuild new file mode 100644 index 000000000000..5bf170300204 --- /dev/null +++ b/dev-python/virtualenv/virtualenv-21.7.10.ebuild @@ -0,0 +1,117 @@ +# 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/pypa/virtualenv +PYTHON_TESTED=( python3_{12..15} ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{14..15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="Virtual Python Environment builder" +HOMEPAGE=" + https://virtualenv.pypa.io/en/stable/ + https://pypi.org/project/virtualenv/ + https://github.com/pypa/virtualenv/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}] + >=dev-python/filelock-3.24.2[${PYTHON_USEDEP}] + >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}] + >=dev-python/python-discovery-1.6[${PYTHON_USEDEP}] + + dev-python/ensurepip-pip + >=dev-python/ensurepip-setuptools-70.1 + dev-python/ensurepip-wheel +" +# coverage is used somehow magically in virtualenv, maybe it actually +# tests something useful +BDEPEND=" + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + ${RDEPEND} + $(python_gen_cond_dep ' + dev-python/coverage[${PYTHON_USEDEP}] + >=dev-python/pip-22.2.1[${PYTHON_USEDEP}] + >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-timeout[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + >=dev-python/setuptools-67.8[${PYTHON_USEDEP}] + dev-python/time-machine[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + >=dev-python/packaging-20.0[${PYTHON_USEDEP}] + ' "${PYTHON_TESTED[@]}") + ) +" + +src_prepare() { + local PATCHES=( + # use wheels from ensurepip bundle + "${FILESDIR}/${PN}-21.5.1-ensurepip.patch" + ) + + distutils-r1_src_prepare + + # workaround test failures due to warnings from setuptools-scm, sigh + echo '[tool.setuptools_scm]' >> pyproject.toml || die + + # remove useless pins + sed -i -e 's:,<[=0-9.]*::' pyproject.toml || die + + # remove bundled wheels + rm src/virtualenv/seed/wheels/embed/*.whl || die +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping testing on ${EPYTHON}" + return + fi + + local EPYTEST_DESELECT=( + tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data + # tests for old wheels with py3.7 support + tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke + tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support + # broken by different wheel versions in ensurepip + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none + tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output + tests/unit/seed/wheels/test_wheels_util.py::test_embed_wheel_below_oldest_supported_is_missing + # hangs on a busy system, sigh + tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe + # TODO + tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions + # random resource leaks or xdist + tests/unit/test_file_limit.py::test_too_many_open_files + # Internet + tests/unit/create/test_creator.py::test_create_distutils_cfg + # we do not use bundled wheels + tests/unit/seed/wheels/test_bundle.py::test_every_wheel_on_disk_has_sha256 + ) + + local -x TZ=UTC + local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} time-machine ) + local EPYTEST_RERUNS=5 + local EPYTEST_TIMEOUT=180 + local EPYTEST_XDIST=1 + epytest -o addopts= +} + +src_install() { + distutils-r1_src_install + + # remove bundled wheels, we're using ensurepip bundle instead + find "${ED}" -name '*.whl' -delete || die +} diff --git a/dev-python/wxpython/wxpython-4.2.5.ebuild b/dev-python/wxpython/wxpython-4.2.5.ebuild index 647db0fbafef..44bdb7b4abe1 100644 --- a/dev-python/wxpython/wxpython-4.2.5.ebuild +++ b/dev-python/wxpython/wxpython-4.2.5.ebuild @@ -21,7 +21,7 @@ HOMEPAGE=" LICENSE="wxWinLL-3" SLOT="4.0" -KEYWORDS="~alpha amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~sparc x86" +KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" IUSE="test webkit" RESTRICT="!test? ( test )" diff --git a/dev-python/xvfbwrapper/Manifest b/dev-python/xvfbwrapper/Manifest index d51eb6556120..491bcc8c5fca 100644 --- a/dev-python/xvfbwrapper/Manifest +++ b/dev-python/xvfbwrapper/Manifest @@ -1,3 +1,4 @@ DIST xvfbwrapper-0.2.29.tar.gz 12853 BLAKE2B d6d931a9742e29e34bc1506da2121c67eaf3bbcaa61f2c14c61fc2a7baaf4424949f836248917903264a7f64c425e8f20a6fa631a789fbff4a0c071a8d59dd47 SHA512 c546c7db922dc0027450a9526e94102cdcc0ac322c106574fb35ff70315daa6b4c1d1319aa240259fb1574af129227835cd3a0670dccf89b5d81f6e7b9a643c5 DIST xvfbwrapper-0.2.32.tar.gz 13308 BLAKE2B 2bc2a5d5c681a7ff898c09803b1fd16c8550bbd0871705ac950c0daec64df58525dc249c3d475e28266d0ea3fdb6c0b5d0c681fb9b4bcecca8846dad7db162c1 SHA512 0c4cf35816e325de2688b3781d4a96518d97ac1c2654a5c422ac5787bf6306cfb3af2b57a526823715286c0cba0a0b3b02694c29c14995f5f5ff59a189b2e802 DIST xvfbwrapper-0.2.33.tar.gz 13488 BLAKE2B c0d8ab22efa27c0d20b6b77499e0f10a260b3ae1f533a714d633c9542439c550deb33d237a9a44efb2a94096702de28e07ae306c1ad238fb468ddb73e4116c8e SHA512 2898cd60db19823fd0cb482402e5dc243fa5188bdc7029e27d9b900251fb8822b9aa7b1a5e8e8649b10986c6f6a2bbaa3457064ad680e6a406283c42c55e779c +DIST xvfbwrapper-0.2.34.tar.gz 13264 BLAKE2B d1ec1808f0f6824397cff5d75ded199c9e578aa129593088a15a121a473afd4bafdc08edc44a49988f49f87534886a0b282bf257f9eba9c2412b3d0228b61704 SHA512 ae94b449e87b4136e058ad30dc7e02de5618cf1bffb7bf5cba1d2fc4e653c96c8d2626792860375e4c25c98c39233e2e3374aa5509e99868d7378259473fad3b diff --git a/dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild b/dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild new file mode 100644 index 000000000000..768aead611cb --- /dev/null +++ b/dev-python/xvfbwrapper/xvfbwrapper-0.2.34.ebuild @@ -0,0 +1,31 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{12..15} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Python wrapper for running a display inside X virtual framebuffer" +HOMEPAGE=" + https://github.com/cgoldberg/xvfbwrapper/ + https://pypi.org/project/xvfbwrapper/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + x11-base/xorg-server[xvfb] +" +BDEPEND=" + test? ( + dev-python/psutil[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/dev-python/yarl/Manifest b/dev-python/yarl/Manifest index 9a9653fdf088..0217245f26ce 100644 --- a/dev-python/yarl/Manifest +++ b/dev-python/yarl/Manifest @@ -1,4 +1,4 @@ -DIST yarl-1.24.2.tar.gz 210798 BLAKE2B 24307407fe04c59e33a34bc4c8a529f47966328a592134fc7af3c8fe7170404f5bc7cf0886c05b6d26fae62e7f42470491e92161d71ceb6757998f13a9724942 SHA512 1804d105d20d828c29827cf593aecabb3369af3a5edb62c46af4daa54bb39e452b815258e2a5e6a9fcfcd2485d93e4354822549abd3de29cd681aa0d04e46aab -DIST yarl-1.24.2.tar.gz.provenance 9271 BLAKE2B 2cecf60ef6c52ab36fd04d243d854dcff16f7d37228b941d2ceda934a4a65ed94eb3d8e73f93df7e51cb84cd52a71c701b1f251667c6e17ea597bcef9430f86a SHA512 8bbdecb0632757b2e63428d2ba12dc600366583ec3e41bc7409a57c0ae939d09cfb6b0273a1d015e6bdcc480d82954a23571d2fde0c00b0f3b484fb83c8efd4c DIST yarl-1.24.5.tar.gz 228679 BLAKE2B 81e0d83e7ebd56602fba4b9e8a0c4b98269d11fdc64d0e72ff7fe1c9f7872784cabbbe6ce10596f73939c08253c0d238dff303c2302911b589e6a7ac47015b90 SHA512 0805b94ab2d69bd906a8f4a6a65b65e0cc11e0eaec473d40e9d363664c48a25dbd5cb0a5d4ed14b5ec965c2e5a17c766788b3d08f82a836876e80e2c9a012cb3 DIST yarl-1.24.5.tar.gz.provenance 9424 BLAKE2B e0b509817c88266a0a6eebe00da6bec206b0c3c18e7d2d13e39b39b0d2dd2611d9a766380375e67b51ba4c0a046db07b59b6f182bccd8fb1748811110970b820 SHA512 f5d551cc2484ed7c27b4e40e118cb3f96755ff4b8d8cdda036c1fdf8c542fd71456183719f749f42a973069ed90d4543398eeba1707b2700e1a2bc5c08a92a08 +DIST yarl-1.25.1.tar.gz 246245 BLAKE2B b9cc73e56ac526f9e703c0c60808f25c557a1a1c285920b220966cc6a2627265f0f034d7ea72546a07b5775c2e282e11b0179f935407c3f0df95ba13f59bdd2b SHA512 d7a8ecaeaef036c622b97d610a607ad55481e427957e9291a3e2035f3df0552024f1d57cb97465d7bb62faf2a2ae13661912325f77af99c80830280658988f52 +DIST yarl-1.25.1.tar.gz.provenance 9512 BLAKE2B 1b7d8431fd2687c8b07dc938746c6901accb1a3be1b1c079df2fed08241b8dd0b1a83817b361549f71a033ecac8eb844ef05a6bf70607610ce3e22f7f0d560de SHA512 85c8f4a4651788a3f304fe83119e4c074ad6e5b9491217e583e2d3eb78a61eaf39403385c11ef05b643899e3dc466878d9bf9ae8a5cc27a85e434f1b9f1de807 diff --git a/dev-python/yarl/yarl-1.24.2.ebuild b/dev-python/yarl/yarl-1.25.1.ebuild index f765803aa517..96729f1ad249 100644 --- a/dev-python/yarl/yarl-1.24.2.ebuild +++ b/dev-python/yarl/yarl-1.25.1.ebuild @@ -18,7 +18,7 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="+native-extensions" RDEPEND=" diff --git a/dev-util/glslang/Manifest b/dev-util/glslang/Manifest index 4b078b6c91bd..0bb276b30338 100644 --- a/dev-util/glslang/Manifest +++ b/dev-util/glslang/Manifest @@ -1,5 +1,2 @@ -DIST glslang-1.4.328.0.tar.gz 4193518 BLAKE2B db02d964e1cd1ec26050b7733d9e7b43835fc18e28dddc21e9ae0afa5914dcd92137535bafb8c888765b6f937f022254982f70a72597094f6efba9126590b126 SHA512 a732b1bfa6b4420cccfeccd2ea31fd72f026c3cd5e9e36ac906b86f15f7470ac3c0a32a22f3d9a0219d8d6c7d059a09f528e3166de129075d0c3acf63c5cd3e7 -DIST glslang-1.4.335.0.tar.gz 4247137 BLAKE2B 0a714296f02948ae19647258f04b51ffec1c6955b7cc634dfe34fa93f48c43c8c5e47fcf0f563394921e41740869b402b4c8e6cf6be8a6b6c11097ec8d67b401 SHA512 4b3774f745b80a8ed8169504d7f649fd92351281f459359288e5a4837e257039d32ece63a29bfc9367a3cb5383ec2ab7bfda6be091ba7928d9f7666776a795cb -DIST glslang-1.4.341.0.tar.gz 4297511 BLAKE2B c9f5c1be4625e87dd79c1a16aaf7933c2607df507915f724f37d06a2d8d9b839b52a18f55076ed5138f1dea93f2328dfc499705639b741945ecd7257fa8b5a18 SHA512 f243830836f0ba6f13d6e2ccb48cee3c41f8478e0315b190f3a8e607d3723e7e687102126131a7ecc6eed5899b9de1b69c76f6f795f0f13703931e5041c47906 DIST glslang-1.4.350.0.tar.gz 4328907 BLAKE2B 1f45d69f04310d9beb0e51ba283e1e9e777e288831e21423c9b26cbfc7b0f9bfba5c0383c6a58e2cb0661f266867bea529ca07e393630777e031a55f1c499d7d SHA512 bf93a225f007b8ccb605fe33ed6642d26f2211f77c3530c2418b272c26d7706e94a2da89759cb249c26d2ccfc9e91110f55550f9112fd7ca724867f225ac3e44 DIST glslang-1.4.357.0.tar.gz 4412438 BLAKE2B 78b4a1b8ac947fd10cf8561f7bdf5b0726f3c36c76750926374f82ae5a3ea7f2d4000455fa18edadbc0eaf8d3ec5655b4f66771c054f5e1668227347a805e6a4 SHA512 471ea08f786564fd08469f79544c1959c7ccbd62f422d2a03b464410e265914d607b97e6dbec54ecbb601270d58528f01238faa55ca5387ddf0cdecb626d0ec4 diff --git a/dev-util/glslang/files/1.4.350.0-Fix-format-specifier-for-64-bit-index-in-error-messa.patch b/dev-util/glslang/files/1.4.350.0-Fix-format-specifier-for-64-bit-index-in-error-messa.patch new file mode 100644 index 000000000000..3dc74fb157b5 --- /dev/null +++ b/dev-util/glslang/files/1.4.350.0-Fix-format-specifier-for-64-bit-index-in-error-messa.patch @@ -0,0 +1,84 @@ +From 08587b8450103cac108caed26a773e2f4a081867 Mon Sep 17 00:00:00 2001 +From: Matt Turner <mattst88@gmail.com> +Date: Mon, 14 Sep 2026 23:20:13 -0400 +Subject: [PATCH] Fix format specifier for 64-bit index in error messages + +Commit e2ab21f2 ("Implement GL_EXT_shader_64bit_indexing") made the +index int64_t but left the "index out of range" messages using '%d'. + +32-bit ARM and PowerPC align 64-bit variadic arguments, so '%d' reads +the skipped padding (a stack slot on ARM, a register on PowerPC) and +prints garbage. This breaks the runtests single-thread vs. multithread +output comparison. + +Fixes #4180 + +(cherry picked from commit b44e6091549ca4cc801a74622848cbc259cce6db) +--- + glslang/MachineIndependent/ParseContextBase.cpp | 10 +++++----- + glslang/MachineIndependent/ParseHelper.cpp | 6 +++--- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git ./glslang/MachineIndependent/ParseContextBase.cpp ./glslang/MachineIndependent/ParseContextBase.cpp +index 45ada17d..8cdeb20c 100644 +--- ./glslang/MachineIndependent/ParseContextBase.cpp ++++ ./glslang/MachineIndependent/ParseContextBase.cpp +@@ -290,27 +290,27 @@ void TParseContextBase::checkIndex(const TSourceLoc& loc, const TType& type, int + type.getArraySizes()->getOuterNode()->getAsSymbolNode() == nullptr; }; + + if (index < 0) { +- error(loc, "", "[", "index out of range '%d'", index); ++ error(loc, "", "[", "index out of range '%lld'", (long long)index); + index = 0; + } else if (type.isArray()) { + if (type.isSizedArray() && !sizeIsSpecializationExpression() && + index >= type.getOuterArraySize()) { +- error(loc, "", "[", "array index out of range '%d'", index); ++ error(loc, "", "[", "array index out of range '%lld'", (long long)index); + index = type.getOuterArraySize() - 1; + } + } else if (type.isVector()) { + if (index >= type.getVectorSize()) { +- error(loc, "", "[", "vector index out of range '%d'", index); ++ error(loc, "", "[", "vector index out of range '%lld'", (long long)index); + index = type.getVectorSize() - 1; + } + } else if (type.isMatrix()) { + if (index >= type.getMatrixCols()) { +- error(loc, "", "[", "matrix index out of range '%d'", index); ++ error(loc, "", "[", "matrix index out of range '%lld'", (long long)index); + index = type.getMatrixCols() - 1; + } + } else if (type.isCoopVecNV()) { + if (index >= type.computeNumComponents()) { +- error(loc, "", "[", "cooperative vector index out of range '%d'", index); ++ error(loc, "", "[", "cooperative vector index out of range '%lld'", (long long)index); + index = type.computeNumComponents() - 1; + } + } +diff --git ./glslang/MachineIndependent/ParseHelper.cpp ./glslang/MachineIndependent/ParseHelper.cpp +index fc37e24b..5ced50df 100644 +--- ./glslang/MachineIndependent/ParseHelper.cpp ++++ ./glslang/MachineIndependent/ParseHelper.cpp +@@ -623,15 +623,15 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn + base->getWritableType().setImplicitlySized(true); + if (base->getQualifier().builtIn == EbvClipDistance && + indexValue >= resources.maxClipDistances) { +- error(loc, "gl_ClipDistance", "[", "array index out of range '%d'", indexValue); ++ error(loc, "gl_ClipDistance", "[", "array index out of range '%lld'", (long long)indexValue); + } + else if (base->getQualifier().builtIn == EbvCullDistance && + indexValue >= resources.maxCullDistances) { +- error(loc, "gl_CullDistance", "[", "array index out of range '%d'", indexValue); ++ error(loc, "gl_CullDistance", "[", "array index out of range '%lld'", (long long)indexValue); + } + else if (base->getQualifier().builtIn == EbvSampleMask && + indexValue >= (resources.maxSamples + 31) / 32) { +- error(loc, "gl_SampleMask", "[", "array index out of range '%d'", indexValue); ++ error(loc, "gl_SampleMask", "[", "array index out of range '%lld'", (long long)indexValue); + } + // For 2D per-view builtin arrays, update the inner dimension size in parent type + if (base->getQualifier().isPerView() && base->getQualifier().builtIn != EbvNone) { +-- +2.54.0 + diff --git a/dev-util/glslang/files/1.4.357.0-Fix-format-specifier-for-64-bit-index-in-error-messa.patch b/dev-util/glslang/files/1.4.357.0-Fix-format-specifier-for-64-bit-index-in-error-messa.patch new file mode 100644 index 000000000000..f5214974e568 --- /dev/null +++ b/dev-util/glslang/files/1.4.357.0-Fix-format-specifier-for-64-bit-index-in-error-messa.patch @@ -0,0 +1,84 @@ +From 665a0df36ab2e6edf3921ea0bda5ff047781c266 Mon Sep 17 00:00:00 2001 +From: Matt Turner <mattst88@gmail.com> +Date: Mon, 14 Sep 2026 23:20:13 -0400 +Subject: [PATCH] Fix format specifier for 64-bit index in error messages + +Commit e2ab21f2 ("Implement GL_EXT_shader_64bit_indexing") made the +index int64_t but left the "index out of range" messages using '%d'. + +32-bit ARM and PowerPC align 64-bit variadic arguments, so '%d' reads +the skipped padding (a stack slot on ARM, a register on PowerPC) and +prints garbage. This breaks the runtests single-thread vs. multithread +output comparison. + +Fixes #4180 + +(cherry picked from commit b44e6091549ca4cc801a74622848cbc259cce6db) +--- + glslang/MachineIndependent/ParseContextBase.cpp | 10 +++++----- + glslang/MachineIndependent/ParseHelper.cpp | 6 +++--- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git ./glslang/MachineIndependent/ParseContextBase.cpp ./glslang/MachineIndependent/ParseContextBase.cpp +index 50bec19f..1acc2748 100644 +--- ./glslang/MachineIndependent/ParseContextBase.cpp ++++ ./glslang/MachineIndependent/ParseContextBase.cpp +@@ -290,27 +290,27 @@ void TParseContextBase::checkIndex(const TSourceLoc& loc, const TType& type, int + type.getArraySizes()->getOuterNode()->getAsSymbolNode() == nullptr; }; + + if (index < 0) { +- error(loc, "", "[", "index out of range '%d'", index); ++ error(loc, "", "[", "index out of range '%lld'", (long long)index); + index = 0; + } else if (type.isArray()) { + if (type.isSizedArray() && !sizeIsSpecializationExpression() && + index >= type.getOuterArraySize()) { +- error(loc, "", "[", "array index out of range '%d'", index); ++ error(loc, "", "[", "array index out of range '%lld'", (long long)index); + index = type.getOuterArraySize() - 1; + } + } else if (type.isVector()) { + if (index >= type.getVectorSize()) { +- error(loc, "", "[", "vector index out of range '%d'", index); ++ error(loc, "", "[", "vector index out of range '%lld'", (long long)index); + index = type.getVectorSize() - 1; + } + } else if (type.isMatrix()) { + if (index >= type.getMatrixCols()) { +- error(loc, "", "[", "matrix index out of range '%d'", index); ++ error(loc, "", "[", "matrix index out of range '%lld'", (long long)index); + index = type.getMatrixCols() - 1; + } + } else if (type.isCoopVecNV()) { + if (index >= type.computeNumComponents()) { +- error(loc, "", "[", "cooperative vector index out of range '%d'", index); ++ error(loc, "", "[", "cooperative vector index out of range '%lld'", (long long)index); + index = type.computeNumComponents() - 1; + } + } +diff --git ./glslang/MachineIndependent/ParseHelper.cpp ./glslang/MachineIndependent/ParseHelper.cpp +index dbafc8a8..b1124713 100644 +--- ./glslang/MachineIndependent/ParseHelper.cpp ++++ ./glslang/MachineIndependent/ParseHelper.cpp +@@ -631,15 +631,15 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn + base->getWritableType().setImplicitlySized(true); + if (base->getQualifier().builtIn == EbvClipDistance && + indexValue >= resources.maxClipDistances) { +- error(loc, "gl_ClipDistance", "[", "array index out of range '%d'", indexValue); ++ error(loc, "gl_ClipDistance", "[", "array index out of range '%lld'", (long long)indexValue); + } + else if (base->getQualifier().builtIn == EbvCullDistance && + indexValue >= resources.maxCullDistances) { +- error(loc, "gl_CullDistance", "[", "array index out of range '%d'", indexValue); ++ error(loc, "gl_CullDistance", "[", "array index out of range '%lld'", (long long)indexValue); + } + else if (base->getQualifier().builtIn == EbvSampleMask && + indexValue >= (resources.maxSamples + 31) / 32) { +- error(loc, "gl_SampleMask", "[", "array index out of range '%d'", indexValue); ++ error(loc, "gl_SampleMask", "[", "array index out of range '%lld'", (long long)indexValue); + } + // For 2D per-view builtin arrays, update the inner dimension size in parent type + if (base->getQualifier().isPerView() && base->getQualifier().builtIn != EbvNone) { +-- +2.54.0 + diff --git a/dev-util/glslang/glslang-1.4.328.0-r1.ebuild b/dev-util/glslang/glslang-1.4.328.0-r1.ebuild deleted file mode 100644 index 8e88a8ffac87..000000000000 --- a/dev-util/glslang/glslang-1.4.328.0-r1.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${PN}.git" - inherit git-r3 -else - GIT_COMMIT="vulkan-sdk-${PV}" - SRC_URI="https://github.com/KhronosGroup/${PN}/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" - S="${WORKDIR}/${PN}-${GIT_COMMIT}" -fi - -DESCRIPTION="Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator" -HOMEPAGE="https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/ https://github.com/KhronosGroup/glslang" - -LICENSE="BSD" -SLOT="0/16.0" - -BDEPEND="${PYTHON_DEPS} - ~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}] -" - -DEPEND="~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}]" -RDEPEND="${DEPEND}" - -multilib_src_configure() { - local mycmakeargs=( - -DENABLE_PCH=OFF - -DALLOW_EXTERNAL_SPIRV_TOOLS=ON - ) - cmake_src_configure -} diff --git a/dev-util/glslang/glslang-1.4.335.0.ebuild b/dev-util/glslang/glslang-1.4.335.0.ebuild deleted file mode 100644 index 159ae5b81447..000000000000 --- a/dev-util/glslang/glslang-1.4.335.0.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 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${PN}.git" - inherit git-r3 -else - GIT_COMMIT="vulkan-sdk-${PV}" - SRC_URI="https://github.com/KhronosGroup/${PN}/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" - S="${WORKDIR}/${PN}-${GIT_COMMIT}" -fi - -DESCRIPTION="Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator" -HOMEPAGE="https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/ https://github.com/KhronosGroup/glslang" - -LICENSE="BSD" -SLOT="0/16.1" - -BDEPEND="${PYTHON_DEPS} - ~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}] -" - -DEPEND="~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}]" -RDEPEND="${DEPEND}" - -multilib_src_configure() { - local mycmakeargs=( - -DENABLE_PCH=OFF - -DALLOW_EXTERNAL_SPIRV_TOOLS=ON - ) - cmake_src_configure -} diff --git a/dev-util/glslang/glslang-1.4.341.0.ebuild b/dev-util/glslang/glslang-1.4.341.0.ebuild deleted file mode 100644 index 31a12511f0dc..000000000000 --- a/dev-util/glslang/glslang-1.4.341.0.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 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${PN}.git" - inherit git-r3 -else - GIT_COMMIT="vulkan-sdk-${PV}" - SRC_URI="https://github.com/KhronosGroup/${PN}/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" - S="${WORKDIR}/${PN}-${GIT_COMMIT}" -fi - -DESCRIPTION="Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator" -HOMEPAGE="https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/ https://github.com/KhronosGroup/glslang" - -LICENSE="BSD" -SLOT="0/16.2" - -BDEPEND="${PYTHON_DEPS} - ~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}] -" - -DEPEND="~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}]" -RDEPEND="${DEPEND}" - -multilib_src_configure() { - local mycmakeargs=( - -DENABLE_PCH=OFF - -DALLOW_EXTERNAL_SPIRV_TOOLS=ON - ) - cmake_src_configure -} diff --git a/dev-util/glslang/glslang-1.4.350.0.ebuild b/dev-util/glslang/glslang-1.4.350.0.ebuild index 85898b438e5a..98b0739a05c1 100644 --- a/dev-util/glslang/glslang-1.4.350.0.ebuild +++ b/dev-util/glslang/glslang-1.4.350.0.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == *9999* ]]; then else GIT_COMMIT="vulkan-sdk-${PV}" SRC_URI="https://github.com/KhronosGroup/${PN}/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86" + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" S="${WORKDIR}/${PN}-${GIT_COMMIT}" fi @@ -29,6 +29,10 @@ BDEPEND="${PYTHON_DEPS} DEPEND="~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}]" RDEPEND="${DEPEND}" +PATCHES=( + "${FILESDIR}"/${PV}-Fix-format-specifier-for-64-bit-index-in-error-messa.patch +) + multilib_src_configure() { local mycmakeargs=( -DENABLE_PCH=OFF diff --git a/dev-util/glslang/glslang-1.4.357.0.ebuild b/dev-util/glslang/glslang-1.4.357.0.ebuild index d97276cf80a0..af4b1281e47d 100644 --- a/dev-util/glslang/glslang-1.4.357.0.ebuild +++ b/dev-util/glslang/glslang-1.4.357.0.ebuild @@ -29,6 +29,10 @@ BDEPEND="${PYTHON_DEPS} DEPEND="~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}]" RDEPEND="${DEPEND}" +PATCHES=( + "${FILESDIR}"/${PV}-Fix-format-specifier-for-64-bit-index-in-error-messa.patch +) + multilib_src_configure() { local mycmakeargs=( -DENABLE_PCH=OFF diff --git a/dev-util/intellij-idea/Manifest b/dev-util/intellij-idea/Manifest index 2c8b5854c000..2df17da46bff 100644 --- a/dev-util/intellij-idea/Manifest +++ b/dev-util/intellij-idea/Manifest @@ -1,2 +1,2 @@ -DIST intellij-idea-2026.2.2-aarch64.tar.gz 1628647297 BLAKE2B cb87a1d607d02e5b1e28f68d60d7cd3048fa08428fd422511620a7781efde94f65bee87ff8d3ffcdb12e0eecf4fdc83a5442e0c707baa045d80f057fc4adb5ab SHA512 e73850ca6a321fcf71127637c989b2d24bd8b76e1cd586a590c1f36874573e05213f91ec62c76ba6ac8409f297c37444736f6c87e29ae8b6c8314e27671e22d6 -DIST intellij-idea-2026.2.2.tar.gz 1606104586 BLAKE2B cb0e2c63256857c72b1191e00b2e57c5f98807c616f68751ff320346317f233d9a833a0e6d0100c1c29a6b2e789ddcf7735dabf0a3d9a6f26ece2579b631a6d8 SHA512 03d89b0d1e423ab3d5af9a8412f581f96dd5cb84cc35c72abd12df50d570628aacf81cefd23523db88c1588f9d25b0efc1b3be5a33c358d17b015d6f7cb1f674 +DIST intellij-idea-2026.2.3-aarch64.tar.gz 1642914136 BLAKE2B 9175a033ad95720b2792ad4656226d42266b9d57c77ccfd134773fc196539f7fadf0275a0761e27d8aba71b34a3ed12b450f758fb6432ea1d78216748ac8fdcb SHA512 cf9dab0bf2aec493f80034c4f2ba020c4843f1a269b7e5f22d38556d02d65894e2dad6c089f1c590ae6f1e8fe709b2d0413e864da6e1b15a34afe0156ad99db3 +DIST intellij-idea-2026.2.3.tar.gz 1620373462 BLAKE2B 767aa1905a85bdaaefdc039960418131c77d9086a8740b8b6fb245c54fac2e943068bfd4deb8c7d5f74d12eb11aaf80e0e07c7e639399def9ba937a4f277724a SHA512 04c57009135ff96bb5a042f41c4bea2520fae623b7598f4d5cb1a4308c047b6e2d8fe29d067b032dc2656023674d5ad453cf01bb91b40a2713d35e5183c98656 diff --git a/dev-util/intellij-idea/intellij-idea-2026.2.2.ebuild b/dev-util/intellij-idea/intellij-idea-2026.2.3.ebuild index 7ab03efa4565..4852f77069cd 100644 --- a/dev-util/intellij-idea/intellij-idea-2026.2.2.ebuild +++ b/dev-util/intellij-idea/intellij-idea-2026.2.3.ebuild @@ -2,6 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=8 + inherit check-reqs desktop wrapper MY_PV=idea-$(ver_cut 1-3) diff --git a/dev-util/maturin/maturin-1.15.0.ebuild b/dev-util/maturin/maturin-1.15.0.ebuild index bef7bfbf6f36..46e09e9f9f97 100644 --- a/dev-util/maturin/maturin-1.15.0.ebuild +++ b/dev-util/maturin/maturin-1.15.0.ebuild @@ -76,7 +76,6 @@ src_prepare() { git config --global user.name "Larry the Cow" || die git add . || die git commit -qm init || die - fi } @@ -134,9 +133,10 @@ python_test() { develop::develop_uv_cases::case_1_hello_world develop::develop_uv_cases::case_2_pyo3_ffi_pure develop::develop_uv_cases::case_3_pyo3_pure_with_dependency_group - # compliance tests using zig (if present) need old libc (bug #946967) + # compliance tests that require a old glibc (bug #946967,#982570) integration::integration_cases::case_07_cffi_mixed_py_subdir integration::integration_cases::case_16_pyo3_stub_generation_zig + integration::integration_cases::case_16_pyo3_stub_generation_pure_zig # avoid need for wasm over a single hello world test integration::integration_wasm_hello_world # these currently attempt to install tomli regardless of python version diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.6.3-r1.ebuild b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.6.3-r1.ebuild index 8d478d6d8d46..f71ed60736e2 100644 --- a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.6.3-r1.ebuild +++ b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.6.3-r1.ebuild @@ -360,8 +360,8 @@ pkg_postinst_check() { ewarn ewarn "Append --ccbin= pointing to a clang bindir to the nvcc compiler flags (NVCCFLAGS)" ewarn "or set NVCC_CCBIN to the same bindir." - ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")\"" - ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")" + ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/${CLANG_MAX_VER}/bin")\"" + ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/${CLANG_MAX_VER}/bin")" ewarn fi fi diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.1-r1.ebuild b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.1-r1.ebuild index a5f875b9d548..87a7b37e082b 100644 --- a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.1-r1.ebuild +++ b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.1-r1.ebuild @@ -360,8 +360,8 @@ pkg_postinst_check() { ewarn ewarn "Append --ccbin= pointing to a clang bindir to the nvcc compiler flags (NVCCFLAGS)" ewarn "or set NVCC_CCBIN to the same bindir." - ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")\"" - ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")" + ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/${CLANG_MAX_VER}/bin")\"" + ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/${CLANG_MAX_VER}/bin")" ewarn fi fi diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.2.ebuild b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.2.ebuild index cee5cb9bcbba..c89a1d47a4cd 100644 --- a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.2.ebuild +++ b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.2.ebuild @@ -362,8 +362,8 @@ pkg_postinst_check() { ewarn ewarn "Append --ccbin= pointing to a clang bindir to the nvcc compiler flags (NVCCFLAGS)" ewarn "or set NVCC_CCBIN to the same bindir." - ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")\"" - ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")" + ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/${CLANG_MAX_VER}/bin")\"" + ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/${CLANG_MAX_VER}/bin")" ewarn fi fi diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.1-r1.ebuild b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.1-r1.ebuild index f4fb706bb119..20baede2ab5e 100644 --- a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.1-r1.ebuild +++ b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.1-r1.ebuild @@ -363,8 +363,8 @@ pkg_postinst_check() { ewarn ewarn "Append --ccbin= pointing to a clang bindir to the nvcc compiler flags (NVCCFLAGS)" ewarn "or set NVCC_CCBIN to the same bindir." - ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")\"" - ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")" + ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/${CLANG_MAX_VER}/bin")\"" + ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/${CLANG_MAX_VER}/bin")" ewarn fi fi diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.2.ebuild b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.2.ebuild index 167513b93897..686aae3a32b9 100644 --- a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.2.ebuild +++ b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.2.ebuild @@ -362,8 +362,8 @@ pkg_postinst_check() { ewarn ewarn "Append --ccbin= pointing to a clang bindir to the nvcc compiler flags (NVCCFLAGS)" ewarn "or set NVCC_CCBIN to the same bindir." - ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")\"" - ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")" + ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/${CLANG_MAX_VER}/bin")\"" + ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/${CLANG_MAX_VER}/bin")" ewarn fi fi diff --git a/dev-util/pixi/Manifest b/dev-util/pixi/Manifest index 941568cce766..d92e055fa525 100644 --- a/dev-util/pixi/Manifest +++ b/dev-util/pixi/Manifest @@ -1,6 +1,6 @@ -DIST pixi-0.79.0-crates.tar.xz 78344160 BLAKE2B 4965008f0b0185ef729fa728215d7ae72c2b8357f62f75a1416b58be90e9ac0b2f21315d803d62e84b13cde063ea4ec7e7853e6dc3f4023f5bbf86d6c2335f18 SHA512 3a8dbbdc75148add5a5ad8b3f3211ef48976c612a0b4a77560b93766bcf15f6a0e0ea5bd4d9b0d3ad09bfb92b7f5e27093ece3bf469472d3ebd4db836507b76c -DIST pixi-0.79.0.tar.gz 19868796 BLAKE2B d736801e76bae9aa5cd0dc004db96142c42aa35aa7a6a8eae11635b2c96dbe41ec5a01a8d72dc1d611ce85a24399501a4bc71383a7dda2385682a02e09097398 SHA512 ae6a01d5b07b8b23b02b04cef8bc01a894236681a7203cce8ddd8502482532c7694e4633a5ceee0fe0fe7e9f7dc6387668ed41cb9bb4a93854b55e65a699486e DIST 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 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.79.0.ebuild b/dev-util/pixi/pixi-0.81.0.ebuild index 8913b7bf42cc..8913b7bf42cc 100644 --- a/dev-util/pixi/pixi-0.79.0.ebuild +++ b/dev-util/pixi/pixi-0.81.0.ebuild diff --git a/dev-util/redo/redo-0.42d-r1.ebuild b/dev-util/redo/redo-0.42d-r1.ebuild index f7d49d374da1..5f8dc05e8066 100644 --- a/dev-util/redo/redo-0.42d-r1.ebuild +++ b/dev-util/redo/redo-0.42d-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 2018-2024 Gentoo Authors +# Copyright 2018-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{12..14} ) PYTHON_REQ_USE="sqlite" inherit edo multiprocessing python-single-r1 diff --git a/dev-util/spirv-headers/Manifest b/dev-util/spirv-headers/Manifest index ce89bef60354..4a7a54696378 100644 --- a/dev-util/spirv-headers/Manifest +++ b/dev-util/spirv-headers/Manifest @@ -1,5 +1,2 @@ -DIST spirv-headers-1.4.328.0.tar.gz 545592 BLAKE2B 403a901f3dbc567ae75124ee048c32ef910d68a64f97f9c9ce7e322b53daf52089f816538202104a98898582587453f364cab540fa3dd2257c533bbfb15e13ee SHA512 8b4f9a0f678184fbdc9a56831ecbbc83d561555bbac2b84df91e7a00f56e8905f1e107a9a497e98ae93b231b0789661110d0e247829da14e57edd14ee40ceea5 -DIST spirv-headers-1.4.335.0.tar.gz 558628 BLAKE2B e059cfac502d393e56ebafba47bc11f49cbe619690bddfba7ebbeffc2a503734e79e8c89f3aff18bbf87377693a0d13077b6a71ca1e25a6a4332afe99e3dba43 SHA512 4906f5b310d176d7c5e83f9a4ec0b6006a39d278a6fce50f5ef29a4d5b287e5823d28007f5015b1dba60d9db352c3bb1a6190bb07ff3a6940b5a5c3ce19ee985 -DIST spirv-headers-1.4.341.0.tar.gz 561287 BLAKE2B 264ef29628a5644a099ebf352fe492f32e7b9eefbd2ca51821d7910d9611f7bb532b3342b6bfab9448337e31cc7f8cf6e15fd1e36de68799a7e94b6bb30998fa SHA512 d624371dd455c66a300344c89812598ffe11b5eedba555779f789e85c29dc67317741858c60e0744a1e6755cc0d2759b8659f0674f4cc31479c4cb6fc25ed23b DIST spirv-headers-1.4.350.0.tar.gz 565401 BLAKE2B 27531f159554bdb0bf74cbb520a10a4cbf7ea2fff3508001d87820bd7e675fb0d27e7941874b02c78f5f48d021159f61859314344c21cc57213a855029f6e3f2 SHA512 5a91928cecb4b4fcf4badffc2e20ba93803f7bb0f3e5bf0f92eba18e689b856b80885bcc61838cadf76423b872952465c53da76ecec0b73164dad1a391192c28 DIST spirv-headers-1.4.357.0.tar.gz 571830 BLAKE2B 5120efbef62e8e246afc0b9ed747ec3797fb4279b3a87fb3b87e1a21d568dbb93c7e00c8123fb840da3057345242de8df86baedcc9634236b4aa101a66f0e3ad SHA512 54ef13eb8375dd3f1b4f30814c83fa5c994f4a73a446ceb6741d244fcffa1571b9d61fedc9c68974f65240adae14ec9b91a04575c78ab1c97442e28439ac71b5 diff --git a/dev-util/spirv-headers/spirv-headers-1.4.328.0.ebuild b/dev-util/spirv-headers/spirv-headers-1.4.328.0.ebuild deleted file mode 100644 index 6c7db0458302..000000000000 --- a/dev-util/spirv-headers/spirv-headers-1.4.328.0.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=SPIRV-Headers -inherit cmake - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Machine-readable files for the SPIR-V Registry" -HOMEPAGE="https://registry.khronos.org/SPIR-V/ https://github.com/KhronosGroup/SPIRV-Headers" - -LICENSE="MIT" -SLOT="0" - -src_configure() { - local mycmakeargs=( - -DSPIRV_HEADERS_ENABLE_TESTS=OFF - -DSPIRV_HEADERS_ENABLE_INSTALL=ON - ) - cmake_src_configure -} diff --git a/dev-util/spirv-headers/spirv-headers-1.4.335.0.ebuild b/dev-util/spirv-headers/spirv-headers-1.4.335.0.ebuild deleted file mode 100644 index cae7ab196d16..000000000000 --- a/dev-util/spirv-headers/spirv-headers-1.4.335.0.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=SPIRV-Headers -inherit cmake - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Machine-readable files for the SPIR-V Registry" -HOMEPAGE="https://registry.khronos.org/SPIR-V/ https://github.com/KhronosGroup/SPIRV-Headers" - -LICENSE="MIT" -SLOT="0" - -src_configure() { - local mycmakeargs=( - -DSPIRV_HEADERS_ENABLE_TESTS=OFF - -DSPIRV_HEADERS_ENABLE_INSTALL=ON - ) - cmake_src_configure -} diff --git a/dev-util/spirv-headers/spirv-headers-1.4.341.0.ebuild b/dev-util/spirv-headers/spirv-headers-1.4.341.0.ebuild deleted file mode 100644 index 00906ee11e63..000000000000 --- a/dev-util/spirv-headers/spirv-headers-1.4.341.0.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=SPIRV-Headers -inherit cmake - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Machine-readable files for the SPIR-V Registry" -HOMEPAGE="https://registry.khronos.org/SPIR-V/ https://github.com/KhronosGroup/SPIRV-Headers" - -LICENSE="MIT" -SLOT="0" - -src_configure() { - local mycmakeargs=( - -DSPIRV_HEADERS_ENABLE_TESTS=OFF - -DSPIRV_HEADERS_ENABLE_INSTALL=ON - ) - cmake_src_configure -} diff --git a/dev-util/spirv-headers/spirv-headers-1.4.350.0.ebuild b/dev-util/spirv-headers/spirv-headers-1.4.350.0.ebuild index 1af38bdc5cc4..00906ee11e63 100644 --- a/dev-util/spirv-headers/spirv-headers-1.4.350.0.ebuild +++ b/dev-util/spirv-headers/spirv-headers-1.4.350.0.ebuild @@ -11,7 +11,7 @@ if [[ ${PV} == *9999* ]]; then inherit git-r3 else SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} fi diff --git a/dev-util/spirv-tools/Manifest b/dev-util/spirv-tools/Manifest index 873a4dc8c2b4..8493a55e233c 100644 --- a/dev-util/spirv-tools/Manifest +++ b/dev-util/spirv-tools/Manifest @@ -1,5 +1,2 @@ -DIST spirv-tools-1.4.328.0.tar.gz 3393733 BLAKE2B fe0639e4a970ab041343587d654ca6629ed2e4eb841ac482e762a6bd1d0164901ada658960b865c5781699ac151eb4807f3d7d9b19ff8935e2a92ff2285e2e1f SHA512 a87f8ba15a0a58e34fe0de9a3eaf0e299deccd9ec98f0c27566d4dfd15abcce3f2599df93c8bfeb287b3ef3b8e4ff34332bca83e21204d75068ab21d8dd30229 -DIST spirv-tools-1.4.335.0.tar.gz 3424516 BLAKE2B b15438d4cea587e2ece3eff46c8fd50d0e698932943bc685c53a2ee1310124ac32c5f976be01ad667ace9f7b8011eefadc2018b2561eaa1055bce26cc5f8995c SHA512 57c394422d73655559a9a9ba72d96cf376269547824a827023b9626fa8d63ab8df7bb1391dbc56d2b566decde592717d525c68633791105f8b82ed70624f241f -DIST spirv-tools-1.4.341.0.tar.gz 3455701 BLAKE2B cfcbbd215c925d0f80eabcc54ebfa3ec994d9d3b00d91113726fa9fc91773015cc6a495ea5e240b7d4f3c651cdb20fa21eefb59491c0e0990cbb69c994e6f108 SHA512 429954f382e3a4006c012642509d0530001eb56e802686f35b1dd33a21167e08e2b164cb2f32e8acdd66da7f5bea6046aa184945d7138d3b0b929e512437c40d DIST spirv-tools-1.4.350.0.tar.gz 3472744 BLAKE2B 5c64656f356e9b413306c10cb6547d8272cdafcc816ff6c9760ba0f9f343085c12f9e5c5bee8c0067f659bbe42b3a7ca7b48e3bfdc6fd3e40bde1499ab48c77b SHA512 765c71b082c77450b0823d9b04cdcfe8990ff83c9c12ab7d2318c1d7c3caf5d0db175ee8618472544c7ef9e18637d679ce07b6b43b2d6040cdb0435a59dd780b DIST spirv-tools-1.4.357.0.tar.gz 3518451 BLAKE2B 50d398f014fbe9111628d0a7a43530dabcd2645890038b714e374ebe459675702a998fbf0c64abef627697be6ee71c1cc749a8db0aa046f8e3578d8d652089dc SHA512 e853b7a08d1d1001a45e8d8f7179be7b02d803959d598bd9d097f096b33fd2a380bcecc8c9c1c446941b9df41018271b45d7995f79f8d360e15feb0c32d43f39 diff --git a/dev-util/spirv-tools/spirv-tools-1.4.328.0.ebuild b/dev-util/spirv-tools/spirv-tools-1.4.328.0.ebuild deleted file mode 100644 index 2ec072f4823c..000000000000 --- a/dev-util/spirv-tools/spirv-tools-1.4.328.0.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=SPIRV-Tools -PYTHON_COMPAT=( python3_{11..14} ) -PYTHON_REQ_USE="xml(+)" -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - EGIT_COMMIT="vulkan-sdk-${PV}" - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - S="${WORKDIR}"/${MY_PN}-${EGIT_COMMIT} -fi - -DESCRIPTION="Provides an API and commands for processing SPIR-V modules" -HOMEPAGE="https://github.com/KhronosGroup/SPIRV-Tools" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="~dev-util/spirv-headers-${PV}" -# RDEPEND="" -BDEPEND="${PYTHON_DEPS}" - -multilib_src_configure() { - local mycmakeargs=( - -DSPIRV-Headers_SOURCE_DIR="${ESYSROOT}"/usr/ - -DSPIRV_WERROR=OFF - -DSPIRV_SKIP_TESTS=$(usex !test) - -DSPIRV_TOOLS_BUILD_STATIC=OFF - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" - ) - - cmake_src_configure -} - -src_test() { - CMAKE_SKIP_TESTS=( - # Not relevant for us downstream - spirv-tools-copyrights - # Tests fail upon finding symbols that do not match a regular expression - # in the generated library. Easily hit with non-standard compiler flags - spirv-tools-symbol-exports.* - ) - - multilib-minimal_src_test -} diff --git a/dev-util/spirv-tools/spirv-tools-1.4.335.0.ebuild b/dev-util/spirv-tools/spirv-tools-1.4.335.0.ebuild deleted file mode 100644 index 1279e71c10f2..000000000000 --- a/dev-util/spirv-tools/spirv-tools-1.4.335.0.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=SPIRV-Tools -PYTHON_COMPAT=( python3_{11..14} ) -PYTHON_REQ_USE="xml(+)" -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - EGIT_COMMIT="vulkan-sdk-${PV}" - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - S="${WORKDIR}"/${MY_PN}-${EGIT_COMMIT} -fi - -DESCRIPTION="Provides an API and commands for processing SPIR-V modules" -HOMEPAGE="https://github.com/KhronosGroup/SPIRV-Tools" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="~dev-util/spirv-headers-${PV}" -# RDEPEND="" -BDEPEND="${PYTHON_DEPS}" - -multilib_src_configure() { - local mycmakeargs=( - -DSPIRV-Headers_SOURCE_DIR="${ESYSROOT}"/usr/ - -DSPIRV_WERROR=OFF - -DSPIRV_SKIP_TESTS=$(usex !test) - -DSPIRV_TOOLS_BUILD_STATIC=OFF - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" - ) - - cmake_src_configure -} - -src_test() { - CMAKE_SKIP_TESTS=( - # Not relevant for us downstream - spirv-tools-copyrights - # Tests fail upon finding symbols that do not match a regular expression - # in the generated library. Easily hit with non-standard compiler flags - spirv-tools-symbol-exports.* - ) - - multilib-minimal_src_test -} diff --git a/dev-util/spirv-tools/spirv-tools-1.4.341.0.ebuild b/dev-util/spirv-tools/spirv-tools-1.4.341.0.ebuild deleted file mode 100644 index e8480b66085c..000000000000 --- a/dev-util/spirv-tools/spirv-tools-1.4.341.0.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=SPIRV-Tools -PYTHON_COMPAT=( python3_{11..14} ) -PYTHON_REQ_USE="xml(+)" -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - EGIT_COMMIT="vulkan-sdk-${PV}" - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - S="${WORKDIR}"/${MY_PN}-${EGIT_COMMIT} -fi - -DESCRIPTION="Provides an API and commands for processing SPIR-V modules" -HOMEPAGE="https://github.com/KhronosGroup/SPIRV-Tools" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="~dev-util/spirv-headers-${PV}" -# RDEPEND="" -BDEPEND="${PYTHON_DEPS}" - -multilib_src_configure() { - local mycmakeargs=( - -DSPIRV-Headers_SOURCE_DIR="${ESYSROOT}"/usr/ - -DSPIRV_WERROR=OFF - -DSPIRV_SKIP_TESTS=$(usex !test) - -DSPIRV_TOOLS_BUILD_STATIC=OFF - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" - ) - - cmake_src_configure -} - -src_test() { - CMAKE_SKIP_TESTS=( - # Not relevant for us downstream - spirv-tools-copyrights - # Tests fail upon finding symbols that do not match a regular expression - # in the generated library. Easily hit with non-standard compiler flags - spirv-tools-symbol-exports.* - ) - - multilib-minimal_src_test -} diff --git a/dev-util/spirv-tools/spirv-tools-1.4.350.0.ebuild b/dev-util/spirv-tools/spirv-tools-1.4.350.0.ebuild index 2838fc5630c8..e8480b66085c 100644 --- a/dev-util/spirv-tools/spirv-tools-1.4.350.0.ebuild +++ b/dev-util/spirv-tools/spirv-tools-1.4.350.0.ebuild @@ -14,7 +14,7 @@ if [[ ${PV} == *9999* ]]; then else EGIT_COMMIT="vulkan-sdk-${PV}" SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" S="${WORKDIR}"/${MY_PN}-${EGIT_COMMIT} fi diff --git a/dev-util/vulkan-headers/Manifest b/dev-util/vulkan-headers/Manifest index 5dc19921c5a1..645c673c4b44 100644 --- a/dev-util/vulkan-headers/Manifest +++ b/dev-util/vulkan-headers/Manifest @@ -1,5 +1,2 @@ -DIST vulkan-headers-1.4.328.0.tar.gz 2765889 BLAKE2B 87626665045956d600bfea1c520ebe9f3d00ed33b24ed566112a3e9fbad641963316e81e610bbb0e7caf6dabe5756e5aa6e338aa574a378cfb445f94030bf4b6 SHA512 613a330e37cb4c4c4d17d77e10d47e7482a6cd143a1ae618fdd0f2f0af05b1cdb4ddeebc44f6395d6dee5766a322b9ea9a16ad3cf9e4fffef30d804b976093ee -DIST vulkan-headers-1.4.335.0.tar.gz 2871481 BLAKE2B 9c13381381e1ce3f2a26c3a56f89c163f946e35680e011d4285d24529c1faef219ddf472eb344666d662e58d738d4d497a247bf13474c1ebe1eefdb8bd29c84b SHA512 1ec6aabf2267137dfe661fdc36bc25cc44b7c3ac3c6f0bbd8a1a1f5da30619e244ebfb905620c30002b914525d37ac7933f5a7dfd10117888f66d7c1b129612f -DIST vulkan-headers-1.4.341.0.tar.gz 3058600 BLAKE2B 1806b1e982e84f64c6db699e8ba33666edcfd734e42ec0db7a48fce905488831d88021d3b633b9eea5e55f8d68abda6ff39db69c09ae931351f0bfbac1221c2a SHA512 aa6d517304663c55c67bdd8578518a399a1188c6c3a92fac4ee29738f96f6a66b61ebc9c606c20d52f5cbb47976757bfcab35576eca7c839dfda1cdd65074c29 DIST vulkan-headers-1.4.350.0.tar.gz 3271466 BLAKE2B a0a38003554b45af669a12c42e74f11615bce1e7179dabc1712bce79351979adc8c5600074ed799a817197e8b4874bb9657ffda94f2e15176b9a49bf1eaa4a6d SHA512 b7987072292d81bae34d28878b3cc12845db0a51710b4d5c21cf804d7c593b1db9ee736f10b8d7696150a25d9e8e2d3d1e17e670c6cca029858de027d5df08ea DIST vulkan-headers-1.4.357.0.tar.gz 3376379 BLAKE2B 32577c17eee332d4e3175f252beeb54e66f75e474da6907eb90f061de7e189552a8c08e169fdbeb65f03fe183e6ddf944c48df244a40c83ac10c837c342690b0 SHA512 253975e391fe23a3a63f9c10b7510e5e5bce6b15b36a81499eba9ceb1000cbf69b00807442b4678e69d4b6a2a8ec14c6c0d9d05ec739c277ca1cd8ee7d5d84f6 diff --git a/dev-util/vulkan-headers/vulkan-headers-1.4.328.0.ebuild b/dev-util/vulkan-headers/vulkan-headers-1.4.328.0.ebuild deleted file mode 100644 index 0b9cc056c852..000000000000 --- a/dev-util/vulkan-headers/vulkan-headers-1.4.328.0.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Headers -inherit cmake - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Vulkan Header files and API registry" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Headers" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -src_configure() { - local mycmakeargs=( - -DVULKAN_HEADERS_ENABLE_MODULE=OFF - -DVULKAN_HEADERS_ENABLE_TESTS=$(usex test) - ) - - cmake_src_configure -} - -src_install() { - # VULKAN_HEADERS_ENABLE_MODULE doesn't seem to be working so just - # delete the modules manually - cmake_src_install - find "${ED}" -name "*.cppm" -type f -delete || die -} diff --git a/dev-util/vulkan-headers/vulkan-headers-1.4.335.0.ebuild b/dev-util/vulkan-headers/vulkan-headers-1.4.335.0.ebuild deleted file mode 100644 index 5dca2c8435a9..000000000000 --- a/dev-util/vulkan-headers/vulkan-headers-1.4.335.0.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Headers -inherit cmake - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Vulkan Header files and API registry" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Headers" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -src_configure() { - local mycmakeargs=( - -DVULKAN_HEADERS_ENABLE_MODULE=OFF - -DVULKAN_HEADERS_ENABLE_TESTS=$(usex test) - ) - - cmake_src_configure -} - -src_install() { - # VULKAN_HEADERS_ENABLE_MODULE doesn't seem to be working so just - # delete the modules manually - cmake_src_install - find "${ED}" -name "*.cppm" -type f -delete || die -} diff --git a/dev-util/vulkan-headers/vulkan-headers-1.4.341.0.ebuild b/dev-util/vulkan-headers/vulkan-headers-1.4.341.0.ebuild deleted file mode 100644 index b807c24f2ab1..000000000000 --- a/dev-util/vulkan-headers/vulkan-headers-1.4.341.0.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Headers -inherit cmake - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Vulkan Header files and API registry" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Headers" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -src_configure() { - local mycmakeargs=( - -DVULKAN_HEADERS_ENABLE_MODULE=OFF - -DVULKAN_HEADERS_ENABLE_TESTS=$(usex test) - ) - - cmake_src_configure -} - -src_install() { - # VULKAN_HEADERS_ENABLE_MODULE doesn't seem to be working so just - # delete the modules manually - cmake_src_install - find "${ED}" -name "*.cppm" -type f -delete || die -} diff --git a/dev-util/vulkan-headers/vulkan-headers-1.4.350.0.ebuild b/dev-util/vulkan-headers/vulkan-headers-1.4.350.0.ebuild index 1c30beb2afcb..b807c24f2ab1 100644 --- a/dev-util/vulkan-headers/vulkan-headers-1.4.350.0.ebuild +++ b/dev-util/vulkan-headers/vulkan-headers-1.4.350.0.ebuild @@ -11,7 +11,7 @@ if [[ ${PV} == *9999* ]]; then inherit git-r3 else SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~sparc x86" + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86" S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} fi diff --git a/dev-util/vulkan-tools/Manifest b/dev-util/vulkan-tools/Manifest index b303d4314812..676fea6e007d 100644 --- a/dev-util/vulkan-tools/Manifest +++ b/dev-util/vulkan-tools/Manifest @@ -1,5 +1,2 @@ -DIST vulkan-tools-1.4.328.0.tar.gz 798521 BLAKE2B a65a4ff396d8ecb0da4bbf4c3541f1b30b7338d78fe3f348b3fcc564e4d503e23f6101392d3352e823d29286c510b199a6e36599f626c4350b5afa4d6e2ba272 SHA512 61ff1b61efd536c10ab6edc71c56bec9fe5ca42c827fae6dfc5af84c729597143c9530b5a050c95fa4a8c4eb390ad8956bdd8f42d29ffa1da2e53397073fa0b0 -DIST vulkan-tools-1.4.335.0.tar.gz 791395 BLAKE2B 9a043e05e44b761a5b23326f33b16429652b11b43c500dd6ff5104c0959dd8bd37f3f75f94827555ddaa99e779eebc508b719f9ebb2945a8a2fb7083db5decbf SHA512 6563105c9ebcd57fea0afeaaf81e03b11dfe893037ca8fd2ae688e0ce4d55b74c274cdf66a207c6bbb67f8e30761976423b1e13ef2e8e3246076de97051e5b6d -DIST vulkan-tools-1.4.341.0.tar.gz 804878 BLAKE2B 8701c16818475c0afe5e5b6c8adee2a153c188ed93ea7daf5b1b60ec733e649f8c3ac66b7f51f91c3ced305c752f5e56fc40133382a15d5eeaa616bb4fd0e86d SHA512 0fad33d732e034489acea4745abfb21fb27619114bfdfa0923cc4baa7e22be65c1dfd10309bfdd9926fe943cd1c8d86521fbd7c326ce46a7c468e1428736db29 DIST vulkan-tools-1.4.350.0.tar.gz 811196 BLAKE2B 39edf6f29d738119aedeea1c8c7c09e106876a1401343d517552994d65fb6815dcbc5d3567f3c4ffc21c80397065af90bbda668df5838671f8e9eb96cb95380e SHA512 2d2afbcb06bb1ee08ffb3cbe133b531fe6341e90fa0dca4d5459dbdedf201521e798226768a7e307f8b6c08b388114a34a9a581a294f6226ca7a2fcd6f63f813 DIST vulkan-tools-1.4.357.0.tar.gz 820293 BLAKE2B 97aa989b6f831cff0e0270986654ee9241703137623c134bf9d3dee980b805241e222dbe6ee23b523e484821716b4fcd642b259af9d0cc172bc5e854bc7533eb SHA512 edfaf3cb0b7ce0547b7379764aea706443a70cbf1b1074089404ec22f4b84ed3ac55050c1cb230093345f22d6332e9a9459054c730da1e4be636cd09f820c4fa diff --git a/dev-util/vulkan-tools/vulkan-tools-1.4.328.0.ebuild b/dev-util/vulkan-tools/vulkan-tools-1.4.328.0.ebuild deleted file mode 100644 index cac152073394..000000000000 --- a/dev-util/vulkan-tools/vulkan-tools-1.4.328.0.ebuild +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Tools -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - EGIT_SUBMODULES=() - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Official Vulkan Tools and Utilities for Windows, Linux, Android, and MacOS" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Tools" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="cube wayland test X" -# bug #964032 for test restriction, drop w/ newer versions -RESTRICT="test !test? ( test )" - -BDEPEND="${PYTHON_DEPS} - cube? ( ~dev-util/glslang-${PV}:=[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] ) - X? ( - x11-libs/libX11[${MULTILIB_USEDEP}] - x11-libs/libxcb:=[${MULTILIB_USEDEP}] - ) -" -DEPEND="${RDEPEND} - ~dev-util/vulkan-headers-${PV} - X? ( x11-libs/libXrandr[${MULTILIB_USEDEP}] ) - test? ( ~media-libs/vulkan-loader-${PV}[${MULTILIB_USEDEP},wayland?,X?] ) -" - -pkg_setup() { - MULTILIB_CHOST_TOOLS=( - /usr/bin/vulkaninfo - ) - - use cube && MULTILIB_CHOST_TOOLS+=( - /usr/bin/vkcube - /usr/bin/vkcubepp - ) - - python-any-r1_pkg_setup -} - -multilib_src_configure() { - local mycmakeargs=( - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG -DGIT_BRANCH_NAME=\\\"gentoo\\\" -DGIT_TAG_INFO=\\\"${PV//./_}\\\"" - -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON - -DCMAKE_SKIP_RPATH=ON - -DBUILD_VULKANINFO=ON - -DBUILD_CUBE=$(usex cube) - -DBUILD_TESTS=$(usex test) - -DBUILD_WERROR=OFF - -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) - -DBUILD_WSI_XCB_SUPPORT=$(usex X) - -DBUILD_WSI_XLIB_SUPPORT=$(usex X) - -DVULKAN_HEADERS_INSTALL_DIR="${ESYSROOT}/usr" - ) - - cmake_src_configure -} - -pkg_postinst() { - if use cube; then - einfo "As of version 1.4.304.0, the window system for 'vkcube' and 'vkcubepp'" - einfo "can be selected at runtime using the '--wsi' runtime argument." - einfo "For example, Wayland can be selected using '--wsi wayland'." - einfo "As such, 'vkcube-wayland' has been removed and the runtime argument" - einfo "must be used instead. See 'vkcube --help' for more information." - fi -} diff --git a/dev-util/vulkan-tools/vulkan-tools-1.4.335.0.ebuild b/dev-util/vulkan-tools/vulkan-tools-1.4.335.0.ebuild deleted file mode 100644 index e8f2261a133d..000000000000 --- a/dev-util/vulkan-tools/vulkan-tools-1.4.335.0.ebuild +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Tools -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - EGIT_SUBMODULES=() - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Official Vulkan Tools and Utilities for Windows, Linux, Android, and MacOS" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Tools" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="cube wayland test X" -RESTRICT="!test? ( test )" - -BDEPEND="${PYTHON_DEPS} - cube? ( ~dev-util/glslang-${PV}:=[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] ) - X? ( - x11-libs/libX11[${MULTILIB_USEDEP}] - x11-libs/libxcb:=[${MULTILIB_USEDEP}] - ) -" -DEPEND="${RDEPEND} - ~dev-util/vulkan-headers-${PV} - X? ( x11-libs/libXrandr[${MULTILIB_USEDEP}] ) - test? ( ~media-libs/vulkan-loader-${PV}[${MULTILIB_USEDEP},wayland?,X?] ) -" - -pkg_setup() { - MULTILIB_CHOST_TOOLS=( - /usr/bin/vulkaninfo - ) - - use cube && MULTILIB_CHOST_TOOLS+=( - /usr/bin/vkcube - /usr/bin/vkcubepp - ) - - python-any-r1_pkg_setup -} - -multilib_src_configure() { - local mycmakeargs=( - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG -DGIT_BRANCH_NAME=\\\"gentoo\\\" -DGIT_TAG_INFO=\\\"${PV//./_}\\\"" - -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON - -DCMAKE_SKIP_RPATH=ON - -DBUILD_VULKANINFO=ON - -DBUILD_CUBE=$(usex cube) - -DBUILD_TESTS=$(usex test) - -DBUILD_WERROR=OFF - -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) - -DBUILD_WSI_XCB_SUPPORT=$(usex X) - -DBUILD_WSI_XLIB_SUPPORT=$(usex X) - -DVULKAN_HEADERS_INSTALL_DIR="${ESYSROOT}/usr" - ) - - cmake_src_configure -} - -pkg_postinst() { - if use cube; then - einfo "As of version 1.4.304.0, the window system for 'vkcube' and 'vkcubepp'" - einfo "can be selected at runtime using the '--wsi' runtime argument." - einfo "For example, Wayland can be selected using '--wsi wayland'." - einfo "As such, 'vkcube-wayland' has been removed and the runtime argument" - einfo "must be used instead. See 'vkcube --help' for more information." - fi -} diff --git a/dev-util/vulkan-tools/vulkan-tools-1.4.341.0.ebuild b/dev-util/vulkan-tools/vulkan-tools-1.4.341.0.ebuild deleted file mode 100644 index 2a53fbb76afe..000000000000 --- a/dev-util/vulkan-tools/vulkan-tools-1.4.341.0.ebuild +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Tools -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - EGIT_SUBMODULES=() - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Official Vulkan Tools and Utilities for Windows, Linux, Android, and MacOS" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Tools" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="cube wayland test X" -RESTRICT="!test? ( test )" - -BDEPEND="${PYTHON_DEPS} - cube? ( ~dev-util/glslang-${PV}:=[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] ) - X? ( - x11-libs/libX11[${MULTILIB_USEDEP}] - x11-libs/libxcb:=[${MULTILIB_USEDEP}] - ) -" -DEPEND="${RDEPEND} - ~dev-util/vulkan-headers-${PV} - X? ( x11-libs/libXrandr[${MULTILIB_USEDEP}] ) - test? ( ~media-libs/vulkan-loader-${PV}[${MULTILIB_USEDEP},wayland?,X?] ) -" - -pkg_setup() { - MULTILIB_CHOST_TOOLS=( - /usr/bin/vulkaninfo - ) - - use cube && MULTILIB_CHOST_TOOLS+=( - /usr/bin/vkcube - /usr/bin/vkcubepp - ) - - python-any-r1_pkg_setup -} - -multilib_src_configure() { - local mycmakeargs=( - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG -DGIT_BRANCH_NAME=\\\"gentoo\\\" -DGIT_TAG_INFO=\\\"${PV//./_}\\\"" - -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON - -DCMAKE_SKIP_RPATH=ON - -DBUILD_VULKANINFO=ON - -DBUILD_CUBE=$(usex cube) - -DBUILD_TESTS=$(usex test) - -DBUILD_WERROR=OFF - -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) - -DBUILD_WSI_XCB_SUPPORT=$(usex X) - -DBUILD_WSI_XLIB_SUPPORT=$(usex X) - -DVULKAN_HEADERS_INSTALL_DIR="${ESYSROOT}/usr" - ) - - cmake_src_configure -} - -pkg_postinst() { - if use cube; then - einfo "As of version 1.4.304.0, the window system for 'vkcube' and 'vkcubepp'" - einfo "can be selected at runtime using the '--wsi' runtime argument." - einfo "For example, Wayland can be selected using '--wsi wayland'." - einfo "As such, 'vkcube-wayland' has been removed and the runtime argument" - einfo "must be used instead. See 'vkcube --help' for more information." - fi -} diff --git a/dev-util/vulkan-tools/vulkan-tools-1.4.350.0.ebuild b/dev-util/vulkan-tools/vulkan-tools-1.4.350.0.ebuild index 32a44c9632ca..1310d4e15f66 100644 --- a/dev-util/vulkan-tools/vulkan-tools-1.4.350.0.ebuild +++ b/dev-util/vulkan-tools/vulkan-tools-1.4.350.0.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == *9999* ]]; then inherit git-r3 else SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv" + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv" S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} fi diff --git a/dev-util/vulkan-utility-libraries/Manifest b/dev-util/vulkan-utility-libraries/Manifest index b65bf403ad2e..9a9954af4a4a 100644 --- a/dev-util/vulkan-utility-libraries/Manifest +++ b/dev-util/vulkan-utility-libraries/Manifest @@ -1,5 +1,2 @@ -DIST vulkan-utility-libraries-1.4.328.0.tar.gz 1241530 BLAKE2B 21cafbcf066b69340d7c36851f9fb3174c7795d40160e52327a01f0a5800ab8cdf119d5eba8f12199476be32503d60509308b9acfc3b6033c4c86c5558fc649a SHA512 598c03da7c4a76be6ee95d74fc4a00908b0dc3165e82ec0eec01c329c0a79654d827f8eeada8d9b4e173443b848c15cd71c23c965ac799d7d4d354cf76cc68e9 -DIST vulkan-utility-libraries-1.4.335.0.tar.gz 1505429 BLAKE2B f165d70024a7cdccf535ceebdc9a09e0d4f3c3402b782f84fb9da75d3bbcd64cabbcd8aa59cc0b2b3ad1534b79c1e57d9044c277a6062750c4abe009502f8216 SHA512 ed46883cf35c888f9fd77c433a5b612a81c267b263c0e6ac4441ea677112584375529485767f69ec3628664b2ffe4005bc1f90e1f0c1a53d27b2998a8552564a -DIST vulkan-utility-libraries-1.4.341.0.tar.gz 1517906 BLAKE2B 436277d4cc6b528bd4f6801bde15b3c8f31c6210ccc1bbdb203141f5768db5fbc7e89672d2bee50f7548125448056d88dbb1b56ad730f63afb98a28b2f4fee04 SHA512 254b2f6e11ce8baac5ddb3f3ae0abf55b2cb4e5f5e1883826d57b5becab6b01176e832b4451c6080a4a1ef945cd5e634a78018e2fe6d1ace2e487c1770ef4b0f DIST vulkan-utility-libraries-1.4.350.0.tar.gz 1319190 BLAKE2B c94d37438fe929b35e75cf20902c92e9707792760a45132dd4b928e270073a2fa06ee226856c389bf40d29ec221cae2610020767689eb1c70f3010fd004013f3 SHA512 ee3d0fbd0eb1444e6464c899417ee526198479291d2cad55c859c94507b69ef0e339bfff6a9926f74d2b5ef1c4c8d7318833b42d031205f4edf8a0f8bbdccc11 DIST vulkan-utility-libraries-1.4.357.0.tar.gz 1342012 BLAKE2B 5721e19cb07d3b3af60fc2cd8cabf99b6c8a1e0899bd7314726f22cf3dc34d7436f54ed3545e1e5148a4a53a25d90a58bf09e08e351a054f982b6cbb493a75d9 SHA512 97c8d4bdfaa6faed17d004f2fc27ef342e887cc63da1d121a5fd7ea3e35c24c5c770fb33fa088685d047d069b9d68336d48bdc4a3f0fa88d1336e2f09476c63c diff --git a/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.328.0.ebuild b/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.328.0.ebuild deleted file mode 100644 index e893a3a4b787..000000000000 --- a/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.328.0.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Utility-Libraries -PYTHON_COMPAT=( python3_{11..14} ) -PYTHON_REQ_USE="xml(+)" -inherit cmake-multilib dot-a python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - EGIT_COMMIT="vulkan-sdk-${PV}" - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" - S="${WORKDIR}"/${MY_PN}-${EGIT_COMMIT} -fi - -DESCRIPTION="Share code across various Vulkan repositories" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Utility-Libraries" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="~dev-util/vulkan-headers-${PV} - test? ( - dev-cpp/gtest - >=dev-cpp/magic_enum-0.9.7 - )" -BDEPEND="${PYTHON_DEPS}" - -PATCHES=( - "${FILESDIR}"/${PN}-1.4.313.0-magic_enum-0.9.7.patch -) - -src_configure() { - lto-guarantee-fat - multilib-minimal_src_configure -} - -multilib_src_configure() { - local mycmakeargs=( - -DBUILD_TESTS=$(usex test ON OFF) - ) - cmake_src_configure -} - -multilib_src_install_all() { - einstalldocs - strip-lto-bytecode -} diff --git a/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.335.0.ebuild b/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.335.0.ebuild deleted file mode 100644 index e7d1cf850cd3..000000000000 --- a/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.335.0.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Utility-Libraries -PYTHON_COMPAT=( python3_{11..14} ) -PYTHON_REQ_USE="xml(+)" -inherit cmake-multilib dot-a python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - EGIT_COMMIT="vulkan-sdk-${PV}" - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" - S="${WORKDIR}"/${MY_PN}-${EGIT_COMMIT} -fi - -DESCRIPTION="Share code across various Vulkan repositories" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Utility-Libraries" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="~dev-util/vulkan-headers-${PV} - test? ( - dev-cpp/gtest - >=dev-cpp/magic_enum-0.9.7 - )" -BDEPEND="${PYTHON_DEPS}" - -PATCHES=( - "${FILESDIR}"/${PN}-1.4.313.0-magic_enum-0.9.7.patch -) - -src_configure() { - lto-guarantee-fat - multilib-minimal_src_configure -} - -multilib_src_configure() { - local mycmakeargs=( - -DBUILD_TESTS=$(usex test ON OFF) - ) - cmake_src_configure -} - -multilib_src_install_all() { - einstalldocs - strip-lto-bytecode -} diff --git a/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.341.0.ebuild b/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.341.0.ebuild deleted file mode 100644 index 97ec55763718..000000000000 --- a/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.341.0.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Utility-Libraries -PYTHON_COMPAT=( python3_{11..14} ) -PYTHON_REQ_USE="xml(+)" -inherit cmake-multilib dot-a python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - inherit git-r3 -else - EGIT_COMMIT="vulkan-sdk-${PV}" - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" - S="${WORKDIR}"/${MY_PN}-${EGIT_COMMIT} -fi - -DESCRIPTION="Share code across various Vulkan repositories" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Utility-Libraries" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="~dev-util/vulkan-headers-${PV} - test? ( - dev-cpp/gtest - >=dev-cpp/magic_enum-0.9.7 - )" -BDEPEND="${PYTHON_DEPS}" - -PATCHES=( - "${FILESDIR}"/${PN}-1.4.313.0-magic_enum-0.9.7.patch -) - -src_configure() { - lto-guarantee-fat - multilib-minimal_src_configure -} - -multilib_src_configure() { - local mycmakeargs=( - -DBUILD_TESTS=$(usex test ON OFF) - ) - cmake_src_configure -} - -multilib_src_install_all() { - einstalldocs - strip-lto-bytecode -} diff --git a/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.350.0.ebuild b/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.350.0.ebuild index 016090f53106..97ec55763718 100644 --- a/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.350.0.ebuild +++ b/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.350.0.ebuild @@ -14,7 +14,7 @@ if [[ ${PV} == *9999* ]]; then else EGIT_COMMIT="vulkan-sdk-${PV}" SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86" + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" S="${WORKDIR}"/${MY_PN}-${EGIT_COMMIT} fi diff --git a/dev-vcs/tig/tig-2.6.1.ebuild b/dev-vcs/tig/tig-2.6.1.ebuild index e92c67347eb1..24541d6fb59b 100644 --- a/dev-vcs/tig/tig-2.6.1.ebuild +++ b/dev-vcs/tig/tig-2.6.1.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} == "9999" ]] ; then inherit git-r3 autotools else SRC_URI="https://github.com/jonas/tig/releases/download/${P}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos" fi DESCRIPTION="text mode interface for git" diff --git a/dev-vcs/tortoisehg/tortoisehg-7.2.2.ebuild b/dev-vcs/tortoisehg/tortoisehg-7.2.2.ebuild index adc25b1ecb04..19df11800d22 100644 --- a/dev-vcs/tortoisehg/tortoisehg-7.2.2.ebuild +++ b/dev-vcs/tortoisehg/tortoisehg-7.2.2.ebuild @@ -3,12 +3,12 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) DISTUTILS_USE_PEP517=setuptools inherit desktop distutils-r1 optfeature xdg-utils if [[ ${PV} != *9999* ]]; then - KEYWORDS="~amd64 ~arm64 ~x86" + KEYWORDS="amd64 ~arm64 x86" SRC_URI="https://foss.heptapod.net/mercurial/${PN}/thg/-/archive/${PV}/thg-${PV}.tar.gz -> ${P}.tar.gz" HG_DEPEND=">=dev-vcs/mercurial-6.7[${PYTHON_USEDEP}] <dev-vcs/mercurial-7.3[${PYTHON_USEDEP}]" diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass index 76046988849b..34f9a7f0b9b6 100644 --- a/eclass/acct-user.eclass +++ b/eclass/acct-user.eclass @@ -151,6 +151,7 @@ ACCT_USER_NAME=${PN} : "${KEYWORDS:=~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris}" S=${WORKDIR} +IDEPEND=">=sys-apps/shadow-4.6" # << API functions >> diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass index 187e063c318c..489c394dc30c 100644 --- a/eclass/llvm.org.eclass +++ b/eclass/llvm.org.eclass @@ -72,12 +72,12 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then _LLVM_SOURCE_TYPE=snapshot case ${PV} in + 24.0.0_pre20260916) + EGIT_COMMIT=02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78 + ;; 24.0.0_pre20260725) EGIT_COMMIT=0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612 ;; - 23.1.0_pre20260724) - EGIT_COMMIT=bb9934d4dfef9033ded36d26827dbb6d3ac1dd92 - ;; *) die "Unknown snapshot: ${PV}" ;; diff --git a/eclass/nginx-module.eclass b/eclass/nginx-module.eclass index 9fea5ba6de4b..5c919bc4c821 100644 --- a/eclass/nginx-module.eclass +++ b/eclass/nginx-module.eclass @@ -29,7 +29,7 @@ # using the ngx_mod_link_lib() function. # # If the package genuinely depends on first-party NGINX module(s), the helper -# ngx_mod_gen_nginx_dep() might be used to generate the suitable dependency +# ngx_gen_dep() might be used to generate the suitable dependency # string for depending on first-party modules. For more advanced setups, # ngx_force_module() and ngx_usex_module() might be of interest. # @@ -111,19 +111,19 @@ inherit flag-o-matic toolchain-funcs # @USAGE: <prefix> <word> # @RETURN: 'word' with 'prefix' removed if present or added if absent _ngx_mod_toggle_prefix() { - debug-print-function "${FUNCNAME[0]}" "$@" - [[ $# -eq 2 ]] || die "${FUNCNAME[0]} must receive exactly two arguments" + debug-print-function "${FUNCNAME[0]}" "$@" + [[ $# -eq 2 ]] || die "${FUNCNAME[0]} must receive exactly two arguments" - local prefix="$1" word="$2" - case "${word}" in - "${prefix}"*) - word="${word#"${prefix}"}" - ;; - *) - word="${prefix}${word}" - ;; - esac - printf '%s\n' "${word}" + local prefix="$1" word="$2" + case "${word}" in + "${prefix}"*) + word="${word#"${prefix}"}" + ;; + *) + word="${prefix}${word}" + ;; + esac + printf '%s\n' "${word}" } # @FUNCTION: _ngx_mod_assert_argfile_exists @@ -280,7 +280,7 @@ _ngx_mod_enforce_module_flags() { # Neither target_string, nor inverse_string are found in # ./configure --help: either the module genuinely does not exist or # something has gone really wrong. - die "ngx_force_module: module \"${mod}\" not found and '-n' has not been supplied" + die "ngx_force_module: module \"${mod}\" not found and '-t' has not been supplied" else # If we do not die, we just return 1. return 1 @@ -370,29 +370,36 @@ ngx_mod_pkg_to_sonames() { printf "%s\0" "${dep_sonames[@]}" } -# @FUNCTION: ngx_mod_append_libs -# @USAGE: [<linker flags>...] +# @FUNCTION: _ngx_mod_append_link_args +# @INTERNAL +# @USAGE: <ldflags|libs> [<linker arguments>...] # @DESCRIPTION: -# Adds the passed arguments to the list of flags used for the linking the -# module's shared objects. Flags may be of any form accepted by linker. -# See the nginx_src_install() function in nginx.eclass for more details. -# -# Example usage: -# @CODE -# ngx_mod_append_libs "-L/usr/$(get_libdir)/nginx/modules" \ -# "$("$(tc-getPKG_CONFIG)" --libs luajit)" -# @CODE -ngx_mod_append_libs() { +# Appends linker arguments to the response file associated with the specified +# argument type and adds the response file to the corresponding environment +# variable. +_ngx_mod_append_link_args() { debug-print-function "${FUNCNAME[0]}" "$@" + [[ $# -ge 1 ]] || die "${FUNCNAME[0]} must receive an argument type" + + local type="$1" + shift + case ${type} in + ldflags|libs) ;; + *) die "${FUNCNAME[0]}: invalid argument type: ${type}" ;; + esac [[ $# -eq 0 ]] && return 0 - local resp_file="${T}/append-libs-resp-file" + local suffix="${type^^}" + declare -n env_var="_NGINX_GENTOO_MOD_${suffix}" + local state_var="_NGX_MOD_${suffix}_RESP_FILE_SET_UP" + local resp_file="${T}/append-${type}-resp-file" - # Setup the response file. Make sure to do it only once. - if [[ -z ${_NGX_MOD_RESP_FILE_SET_UP} ]]; then - touch "${resp_file}" || die "touch failed" - export _NGINX_GENTOO_MOD_LIBS+=" @${resp_file}" - declare -g -r _NGX_MOD_RESP_FILE_SET_UP=1 + # Set up the response file. Make sure to do it only once. + if [[ -z ${!state_var} ]]; then + : > "${resp_file}" || die "failed to initialize response file" + env_var+=" @${resp_file}" + export env_var + declare -g -r "${state_var}=1" fi # If multiple arguments are passed, expand them as separate words so that @@ -400,11 +407,45 @@ ngx_mod_append_libs() { printf '%s\n' "$@" >> "${resp_file}" || die "printf failed" } +# @FUNCTION: ngx_mod_prepend_ldflags +# @USAGE: [<linker flags>...] +# @DESCRIPTION: +# Adds the passed linker arguments before NGINX's module libraries when linking +# the module's shared objects. Arguments may be of any form accepted by the +# linker. +# +# Example usage: +# @CODE +# ngx_mod_prepend_ldflags "-Wl,--as-needed" +# @CODE +ngx_mod_prepend_ldflags() { + debug-print-function "${FUNCNAME[0]}" "$@" + _ngx_mod_append_link_args ldflags "$@" +} + +# @FUNCTION: ngx_mod_append_ldflags +# @USAGE: [<linker flags>...] +# @DESCRIPTION: +# Adds the passed linker arguments after NGINX's module libraries when linking +# the module's shared objects. Arguments may be of any form accepted by the +# linker. +# See the nginx_src_install() function in nginx.eclass for more details. +# +# Example usage: +# @CODE +# ngx_mod_append_ldflags "-L/usr/$(get_libdir)/nginx/modules" \ +# "$("$(tc-getPKG_CONFIG)" --libs luajit)" +# @CODE +ngx_mod_append_ldflags() { + debug-print-function "${FUNCNAME[0]}" "$@" + _ngx_mod_append_link_args libs "$@" +} + # @FUNCTION: ngx_mod_setup_link_modules # @DESCRIPTION: # Adds necessary linker arguments for linking to other NGINX modules' share # objects installed in /usr/$(get_libdir)/nginx/modules by calling -# ngx_mod_append_libs(). This function takes no arguments. +# ngx_mod_append_ldflags(). This function takes no arguments. # # This function is called internally by the ngx_mod_link_module() function. # ngx_mod_setup_link_modules() keeps track whether it has already been called, @@ -419,7 +460,7 @@ ngx_mod_setup_link_modules() { moddir="${EPREFIX}/usr/$(get_libdir)/nginx/modules" # Add 'moddir' to the list of directories search by linker and add 'moddir' # to the module's RUNPATH. - ngx_mod_append_libs "-L${moddir}" "-Wl,-rpath,\${ORIGIN}" + ngx_mod_append_ldflags "-L${moddir}" "-Wl,-rpath,\${ORIGIN}" } # @FUNCTION: ngx_mod_link_module @@ -477,7 +518,7 @@ ngx_mod_link_module() { # Prepend '-l:' to each shared object name. The colon instructs the linker # to link to the given name literally; i.e. '-lmylib' will look for # 'libmylib.so', while '-l:mylib' will look for 'mylib'. - ngx_mod_append_libs "${sonames[@]/#/-l:}" + ngx_mod_append_ldflags "${sonames[@]/#/-l:}" } # @FUNCTION: ngx_mod_link_lib @@ -496,7 +537,7 @@ ngx_mod_link_lib() { "${pkgconf}" --exists "$1" || die "The pkgconfig library $1 does not exist" append-cflags "$("${pkgconf}" --cflags "$1")" - ngx_mod_append_libs "$("${pkgconf}" --libs "$1")" + ngx_mod_append_ldflags "$("${pkgconf}" --libs "$1")" } # @FUNCTION: ngx_gen_dep @@ -583,7 +624,7 @@ ngx_force_module() { debug-print-function "${FUNCNAME[0]}" "$@" [[ $# -ge 1 ]] || die "${FUNCNAME[0]} must receive one or more non-option arguments" - _ngx_mod_assert_argfile_exists "${_NGX_MOD_CONFIG_FLAGS_FILE}" + _ngx_mod_assert_argfile_exists "${ESYSROOT}${_NGX_MOD_CONFIG_FLAGS_FILE}" local nonfatal=0 if [[ $1 = '-t' ]]; then @@ -623,7 +664,7 @@ ngx_force_module() { # ngx_force_module() description. # # By default, if any of the specified modules do not exist, the build is -# aborted. This can be overriden by supplying '-t'. See ngx_force_module() +# aborted. This can be overridden by supplying '-t'. See ngx_force_module() # for behaviour when this flag is supplied. # # Example: @@ -736,9 +777,9 @@ NGINX_S="${WORKDIR}/nginx" # @ECLASS_VARIABLE: _NGX_MOD_CONFIG_FLAGS_FILE # @INTERNAL # @DESCRIPTION: -# Holds the path to the file containing NUL-separated ./configure flags used to -# build www-servers/nginx. -_NGX_MOD_CONFIG_FLAGS_FILE="${BROOT}/usr/src/nginx/configure-flags" +# Holds the root-relative path to the file containing NUL-separated ./configure +# flags used to build www-servers/nginx. +_NGX_MOD_CONFIG_FLAGS_FILE="/usr/src/nginx/configure-flags" # @ECLASS_VARIABLE: _NGX_MOD_FORCED_MODULES # @INTERNAL @@ -1000,7 +1041,7 @@ nginx-module_src_prepare() { ebegin "Determining NGINX configuration on-disk format" - if [[ -f "${_NGX_MOD_CONFIG_FLAGS_FILE}" ]]; then + if [[ -f "${ESYSROOT}${_NGX_MOD_CONFIG_FLAGS_FILE}" ]]; then eend 0 einfo "Using ./configure flags file" else @@ -1068,15 +1109,16 @@ nginx-module_src_configure() { pushd "${NGINX_S}" >/dev/null || die "pushd failed" local ngx_mod_flags=() - if [[ -f "${_NGX_MOD_CONFIG_FLAGS_FILE}" ]]; then + if [[ -f "${ESYSROOT}${_NGX_MOD_CONFIG_FLAGS_FILE}" ]]; then # Restore the stored configure flags into ngx_mod_flags. - mapfile -d '' ngx_mod_flags < "${_NGX_MOD_CONFIG_FLAGS_FILE}" + mapfile -d '' ngx_mod_flags < \ + "${ESYSROOT}${_NGX_MOD_CONFIG_FLAGS_FILE}" || die "mapfile failed" # When we save compilation flags, NGINX passes all the -l flags to # modules too, including stuff like -lperl -lcrypt etc. I am not sure - # what to do with this yet so for now we just pass the following to - # limit unnecessary linkage. - ngx_mod_append_libs "$(test-flags-CC '-Wl,--as-needed')" + # what to do with this yet so for now we prepend --as-needed to + # ngx_module_libs to limit unnecessary linkage. + ngx_mod_prepend_ldflags $(test-flags-CCLD '-Wl,--as-needed') else # Otherwise, just replicate a sane subset of configure flags for # backwards compatibility. @@ -1149,7 +1191,7 @@ nginx-module_src_configure() { "${EXTRA_ECONF[@]}" # Backwards compatibility. - if [[ ! -f "${_NGX_MOD_CONFIG_FLAGS_FILE}" ]]; then + if [[ ! -f "${ESYSROOT}${_NGX_MOD_CONFIG_FLAGS_FILE}" ]]; then cat "${ESYSROOT}/usr/include/nginx/ngx_auto_config.h" \ build/__ngx_gentoo_mod_config.h > build/ngx_auto_config.h || die "cat failed" diff --git a/eclass/nginx.eclass b/eclass/nginx.eclass index 9783f7c7fa25..d517c15ef727 100644 --- a/eclass/nginx.eclass +++ b/eclass/nginx.eclass @@ -687,7 +687,7 @@ nginx_src_configure() { # module building. if use modules; then printf '%s\0' "${nginx_flags[@]}" "$@" "${EXTRA_ECONF[@]}" \ - >> "${_NGX_CONFIG_FLAGS_FILE}" + > "${_NGX_CONFIG_FLAGS_FILE}" || die "printf failed" fi sed -E -i \ @@ -888,10 +888,10 @@ nginx_src_install() { # The directory where third-party modules should save their own headers. keepdir /usr/include/nginx/modules - # Allow pluging arbitrary libraries (linker flags, more accurately) via - # the _NGINX_GENTOO_MOD_LIBS environment variable. + # Allow injecting linker flags before and libraries after NGINX's module + # libraries via environment variables. sed -i -e '/"$ngx_module_link" = DYNAMIC/ a\' \ - -e 'ngx_module_libs="$ngx_module_libs ${_NGINX_GENTOO_MOD_LIBS}"' \ + -e 'ngx_module_libs="${_NGINX_GENTOO_MOD_LDFLAGS} $ngx_module_libs ${_NGINX_GENTOO_MOD_LIBS}"' \ auto/module || die "sed failed" # Copy the build system of NGINX to /usr/src/nginx. diff --git a/games-emulation/dosbox-staging/dosbox-staging-0.83.0.ebuild b/games-emulation/dosbox-staging/dosbox-staging-0.83.0.ebuild index 94a10835d6f3..29a6c774e756 100644 --- a/games-emulation/dosbox-staging/dosbox-staging-0.83.0.ebuild +++ b/games-emulation/dosbox-staging/dosbox-staging-0.83.0.ebuild @@ -35,6 +35,7 @@ RDEPEND="debug? ( sys-libs/ncurses:0= ) media-libs/libpng:0= media-libs/libsdl2[alsa,joystick,opengl?,sound,video,X] media-libs/opusfile + media-libs/sdl2-image media-libs/speexdsp media-sound/fluid-soundfont media-sound/fluidsynth @@ -45,6 +46,7 @@ DEPEND="${RDEPEND}" BDEPEND="test? ( dev-cpp/gtest ) sc55? ( virtual/pkgconfig )" +PATCHES=( "${FILESDIR}"/${P}-optional_mt32.patch ) DOCS=( README.md docs/AUTHORS ) src_prepare() { diff --git a/games-emulation/dosbox-staging/files/dosbox-staging-0.83.0-optional_mt32.patch b/games-emulation/dosbox-staging/files/dosbox-staging-0.83.0-optional_mt32.patch new file mode 100644 index 000000000000..eb96c2478f76 --- /dev/null +++ b/games-emulation/dosbox-staging/files/dosbox-staging-0.83.0-optional_mt32.patch @@ -0,0 +1,30 @@ +From c90051dbbfd5781964db9d9d5b20a32b4fdefaf6 Mon Sep 17 00:00:00 2001 +From: Maseru898 <marcel.weissenbach@miraclelinux.com> +Date: Mon, 15 Jun 2026 18:04:52 +0900 +Subject: [PATCH] build: Only require MT32 Package when actually enabled + +Currently the find_package runs unrelated to the variable check which causes it to always get executed. Moved it to its correct place so it only gets executed if building with MT32 is actually requested by setting the variable +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 399899d1eb8..0eb03b50162 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -340,6 +340,7 @@ endif() + option(OPT_MT32EMU "Enable Roland MT-32 emulation support" ON) + if (OPT_MT32EMU) + set(C_MT32EMU ON) ++ find_package(MT32Emu REQUIRED) + endif() + + if (OPT_DEBUGGER) +@@ -488,7 +489,6 @@ find_package(SDL2_image CONFIG REQUIRED) + find_package(iir REQUIRED) + find_package(PNG REQUIRED) + find_package(OpenGL REQUIRED) +-find_package(MT32Emu REQUIRED) + find_package(FluidSynth REQUIRED CONFIG) + if (C_ALSA) + find_package(ALSA REQUIRED) diff --git a/games-emulation/geolith-jg/geolith-jg-0.4.2.ebuild b/games-emulation/geolith-jg/geolith-jg-0.4.2.ebuild index 18d631724dae..47c23623042c 100644 --- a/games-emulation/geolith-jg/geolith-jg-0.4.2.ebuild +++ b/games-emulation/geolith-jg/geolith-jg-0.4.2.ebuild @@ -15,7 +15,7 @@ if [[ "${PV}" == *9999 ]] ; then else SRC_URI="https://gitlab.com/jgemu/${MY_PN}/-/archive/${PV}/${MY_P}.tar.bz2" S="${WORKDIR}/${MY_P}" - KEYWORDS="~amd64 ~arm ~arm64 ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86" fi LICENSE="BSD MIT MIT-0" diff --git a/gui-apps/waybar/files/meson-fix-build.patch b/gui-apps/waybar/files/meson-fix-build.patch new file mode 100644 index 000000000000..cee64a56a395 --- /dev/null +++ b/gui-apps/waybar/files/meson-fix-build.patch @@ -0,0 +1,38 @@ +From 69c61c3d9ae8f7397d64570412655007ea086c56 Mon Sep 17 00:00:00 2001 +From: ShengYi Hung <aokblast@FreeBSD.org> +Date: Sun, 23 Aug 2026 12:45:10 +0800 +Subject: [PATCH] meson: Fix unwinding error in libunwind over glibc + +glibc's pthread_cancel dlopens libgcc_s.so.1 and uses its unwinder, +while libc++abi's personality routine resolves the Unwind* accessors +from the global scope, where LLVM libunwind wins. This causes the two +unwinders to interpret each other's unwind context incorrectly, and +cancelling a thread segfaults. Pull libgcc_s into DT_NEEDED before +libc++abi/libunwind so all Unwind* symbols resolve to the same unwinder. +--- + meson.build | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 5dc7338d5f..88be32e27b 100644 +--- a/meson.build ++++ b/meson.build +@@ -17,7 +17,17 @@ cpp_link_args = [] + + if get_option('libcxx') + cpp_args += ['-stdlib=libc++'] +- cpp_link_args += ['-stdlib=libc++', '-lc++abi'] ++ cpp_link_args += ['-stdlib=libc++'] ++ # glibc's pthread_cancel dlopens libgcc_s.so.1 and forces the unwind through ++ # that unwinder, while libc++abi's personality routine resolves the _Unwind_* ++ # accessors through the global scope, where LLVM libunwind wins. The two read ++ # each other's unwind context as their own, so cancelling a thread ++ # (SleeperThread::stop) segfaults. Pull libgcc_s into DT_NEEDED ahead of ++ # libc++abi/libunwind so every _Unwind_* symbol resolves to one unwinder. ++ if compiler.has_link_argument('-lgcc_s') ++ cpp_link_args += ['-Wl,--push-state,--no-as-needed', '-lgcc_s', '-Wl,--pop-state'] ++ endif ++ cpp_link_args += ['-lc++abi'] + endif + + if compiler.has_link_argument('-lc++fs') diff --git a/gui-apps/waybar/waybar-0.14.0.ebuild b/gui-apps/waybar/waybar-0.14.0.ebuild index 5e6e473ccd97..494b727a9d27 100644 --- a/gui-apps/waybar/waybar-0.14.0.ebuild +++ b/gui-apps/waybar/waybar-0.14.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit meson optfeature +inherit meson optfeature toolchain-funcs DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors" HOMEPAGE="https://github.com/Alexays/Waybar" @@ -75,9 +75,20 @@ DEPEND="${RDEPEND} dev-libs/wayland-protocols test? ( dev-cpp/catch:0 ) " +PATCHES=( + "${FILESDIR}"/meson-fix-build.patch +) src_configure() { + local cxx_stdlib=$(tc-get-cxx-stdlib) + einfo "C++ standard library: ${cxx_stdlib:-unknown}" + local libcxx=false + if [[ ${cxx_stdlib} == libc++ ]]; then + libcxx=true + fi + local emesonargs=( + -Dlibcxx=${libcxx} -Dman-pages=enabled -Dcava=disabled # depends on LukashonakV/cava fork, but media-sound/cava is karlstav/cava $(meson_feature evdev libevdev) diff --git a/gui-apps/waybar/waybar-0.15.0.ebuild b/gui-apps/waybar/waybar-0.15.0.ebuild index 04495a22dfb5..2589ddedf9b2 100644 --- a/gui-apps/waybar/waybar-0.15.0.ebuild +++ b/gui-apps/waybar/waybar-0.15.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit meson optfeature +inherit meson optfeature toolchain-funcs DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors" HOMEPAGE="https://github.com/Alexays/Waybar" @@ -78,8 +78,20 @@ DEPEND="${RDEPEND} test? ( dev-cpp/catch:0 ) " +PATCHES=( + "${FILESDIR}"/meson-fix-build.patch +) + src_configure() { + local cxx_stdlib=$(tc-get-cxx-stdlib) + einfo "C++ standard library: ${cxx_stdlib:-unknown}" + local libcxx=false + if [[ ${cxx_stdlib} == libc++ ]]; then + libcxx=true + fi + local emesonargs=( + -Dlibcxx=${libcxx} -Dman-pages=enabled -Dcava=disabled # depends on LukashonakV/cava fork, but media-sound/cava is karlstav/cava $(meson_feature evdev libevdev) diff --git a/llvm-core/clang-common/Manifest b/llvm-core/clang-common/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/llvm-core/clang-common/Manifest +++ b/llvm-core/clang-common/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-core/clang-common/clang-common-23.1.0.ebuild b/llvm-core/clang-common/clang-common-24.0.0_pre20260916.ebuild index 0c1bc9d4f50d..d37eeaebbf4a 100644 --- a/llvm-core/clang-common/clang-common-23.1.0.ebuild +++ b/llvm-core/clang-common/clang-common-24.0.0_pre20260916.ebuild @@ -10,7 +10,6 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" IUSE=" default-compiler-rt default-libcxx default-lld bootstrap-prefix cet emacs hardened llvm-libunwind diff --git a/llvm-core/clang/Manifest b/llvm-core/clang/Manifest index 1a5ea818dd7d..ce47bc46c609 100644 --- a/llvm-core/clang/Manifest +++ b/llvm-core/clang/Manifest @@ -6,6 +6,7 @@ DIST llvm-21.1.0-manpages.tar.xz 303556 BLAKE2B 93e844bb13826e0154a24bfcdc108c9e DIST llvm-22.1.0-r2-manpages.tar.xz 320124 BLAKE2B 7a54177781e84d5e0f788a3ebc00f9417b943e14d8c462a859c5267f87bb8c9ed5132000d069b6cbab089411d025852af3b35fd7ace0a1f0f606bee210f9e8e5 SHA512 cdf986c1927436e49ef0b5a02b5fc08473bad4aeef11164119824ef02afb8c5513a19e1d0bed2211ba259ef2d331f833daf9543d030e56d02407ef3efdb74196 DIST llvm-gentoo-patchset-17.0.6-r5.tar.xz 7256 BLAKE2B d0f3f7df4ee38fbcd236225e9b64e313a1d4bae8d8eff0473fe50e20e79e0e161af418eb4a56e29e5b188cb17cd12c43bc42716d390286f6ab42d45b86b7a040 SHA512 70ca00b79e927931edfe905688f82b744443675c8b6ad7b5a962636629ea73d778dbf7a43c4947f05773eb04cdc0c1a64fe9d0e41d46ef04237b95bfc076740f DIST llvm-gentoo-patchset-18.1.8-r8.tar.xz 27220 BLAKE2B 2bf71ea769ebe61c863a52a891743d705f313d41416d02614deb9f5e8bffec3a22b3c681d3cee4b4a4da224943d1015f061562d379f7d3934f4e9196ef6feeb4 SHA512 08264c6a5ae30666d6e18c74cb9cd706317157d5cb9b31f35c6807b9396f733dc80ba957c711bf20e2a4388f2ef8ba620e82598fa779922accb50dad7db23eb3 +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -19,7 +20,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-core/clang/clang-23.1.0.ebuild b/llvm-core/clang/clang-24.0.0_pre20260916.ebuild index 63738f9bf338..f853ded42b13 100644 --- a/llvm-core/clang/clang-23.1.0.ebuild +++ b/llvm-core/clang/clang-24.0.0_pre20260916.ebuild @@ -16,8 +16,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" -IUSE="debug doc +extra ieee-long-double +pie +static-analyzer test xml" +IUSE="+debug doc +extra ieee-long-double +pie +static-analyzer test xml" REQUIRED_USE="${PYTHON_REQUIRED_USE}" RESTRICT="!test? ( test )" @@ -203,6 +202,7 @@ get_distribution_components() { clang-ssaf-analyzer clang-ssaf-format clang-ssaf-linker + clang-ssaf-src-edit-merge clang-sycl-linker diagtool hmaptool diff --git a/llvm-core/flang/Manifest b/llvm-core/flang/Manifest index be61a8a5e5d8..ba9aebd9dd57 100644 --- a/llvm-core/flang/Manifest +++ b/llvm-core/flang/Manifest @@ -1,9 +1,8 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e98152616f16004c74df0e7313cc86d893428fb7b1c875109988a5e40ea6f2e5d0fef53c7bfe2fc2b69e84807f6eb440b03afa1b228a36 SHA512 cae4c44e7bf678071723da63ad5839491d717a7233e7f4791aa408207f3ea42f52de939ad15189b112c02a0770f1bb8d59bae6ad31ef53417a6eea7770fe52ab DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-core/flang/flang-23.1.0.ebuild b/llvm-core/flang/flang-24.0.0_pre20260916.ebuild index 72cc510ec89e..4d5f655fc9f1 100644 --- a/llvm-core/flang/flang-23.1.0.ebuild +++ b/llvm-core/flang/flang-24.0.0_pre20260916.ebuild @@ -11,8 +11,7 @@ HOMEPAGE="https://flang.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="~amd64 ~arm64" -IUSE="+clang debug test" +IUSE="+clang +debug test" RESTRICT="!test? ( test )" DEPEND=" diff --git a/llvm-core/lld/Manifest b/llvm-core/lld/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/llvm-core/lld/Manifest +++ b/llvm-core/lld/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-core/lld/lld-23.1.0.ebuild b/llvm-core/lld/lld-24.0.0_pre20260916.ebuild index 94684a3cdc63..e5089597e942 100644 --- a/llvm-core/lld/lld-23.1.0.ebuild +++ b/llvm-core/lld/lld-24.0.0_pre20260916.ebuild @@ -11,8 +11,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" -IUSE="debug test zstd" +IUSE="+debug test zstd" RESTRICT="!test? ( test )" DEPEND=" diff --git a/llvm-core/lldb/Manifest b/llvm-core/lldb/Manifest index 4a758728363f..fd81ec1b1a7a 100644 --- a/llvm-core/lldb/Manifest +++ b/llvm-core/lldb/Manifest @@ -1,4 +1,5 @@ DIST llvm-gentoo-patchset-18.1.8-r8.tar.xz 27220 BLAKE2B 2bf71ea769ebe61c863a52a891743d705f313d41416d02614deb9f5e8bffec3a22b3c681d3cee4b4a4da224943d1015f061562d379f7d3934f4e9196ef6feeb4 SHA512 08264c6a5ae30666d6e18c74cb9cd706317157d5cb9b31f35c6807b9396f733dc80ba957c711bf20e2a4388f2ef8ba620e82598fa779922accb50dad7db23eb3 +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -12,7 +13,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-core/lldb/lldb-23.1.0.ebuild b/llvm-core/lldb/lldb-24.0.0_pre20260916.ebuild index 85b71bd7057a..4b2fdc54d281 100644 --- a/llvm-core/lldb/lldb-23.1.0.ebuild +++ b/llvm-core/lldb/lldb-24.0.0_pre20260916.ebuild @@ -11,8 +11,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="0/${LLVM_SOABI}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~x86" -IUSE="debug debuginfod +libedit lzma ncurses +python test +tree-sitter +xml" +IUSE="+debug debuginfod +libedit lzma ncurses +python test +tree-sitter +xml" RESTRICT="test" REQUIRED_USE=${PYTHON_REQUIRED_USE} diff --git a/llvm-core/llvm-common/Manifest b/llvm-core/llvm-common/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/llvm-core/llvm-common/Manifest +++ b/llvm-core/llvm-common/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-core/llvm-common/llvm-common-23.1.0.ebuild b/llvm-core/llvm-common/llvm-common-24.0.0_pre20260916.ebuild index 27828503be34..4548489cd9bc 100644 --- a/llvm-core/llvm-common/llvm-common-23.1.0.ebuild +++ b/llvm-core/llvm-common/llvm-common-24.0.0_pre20260916.ebuild @@ -10,7 +10,6 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" IUSE="emacs" RDEPEND=" diff --git a/llvm-core/llvm/Manifest b/llvm-core/llvm/Manifest index 1a5ea818dd7d..ce47bc46c609 100644 --- a/llvm-core/llvm/Manifest +++ b/llvm-core/llvm/Manifest @@ -6,6 +6,7 @@ DIST llvm-21.1.0-manpages.tar.xz 303556 BLAKE2B 93e844bb13826e0154a24bfcdc108c9e DIST llvm-22.1.0-r2-manpages.tar.xz 320124 BLAKE2B 7a54177781e84d5e0f788a3ebc00f9417b943e14d8c462a859c5267f87bb8c9ed5132000d069b6cbab089411d025852af3b35fd7ace0a1f0f606bee210f9e8e5 SHA512 cdf986c1927436e49ef0b5a02b5fc08473bad4aeef11164119824ef02afb8c5513a19e1d0bed2211ba259ef2d331f833daf9543d030e56d02407ef3efdb74196 DIST llvm-gentoo-patchset-17.0.6-r5.tar.xz 7256 BLAKE2B d0f3f7df4ee38fbcd236225e9b64e313a1d4bae8d8eff0473fe50e20e79e0e161af418eb4a56e29e5b188cb17cd12c43bc42716d390286f6ab42d45b86b7a040 SHA512 70ca00b79e927931edfe905688f82b744443675c8b6ad7b5a962636629ea73d778dbf7a43c4947f05773eb04cdc0c1a64fe9d0e41d46ef04237b95bfc076740f DIST llvm-gentoo-patchset-18.1.8-r8.tar.xz 27220 BLAKE2B 2bf71ea769ebe61c863a52a891743d705f313d41416d02614deb9f5e8bffec3a22b3c681d3cee4b4a4da224943d1015f061562d379f7d3934f4e9196ef6feeb4 SHA512 08264c6a5ae30666d6e18c74cb9cd706317157d5cb9b31f35c6807b9396f733dc80ba957c711bf20e2a4388f2ef8ba620e82598fa779922accb50dad7db23eb3 +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -19,7 +20,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-core/llvm/llvm-23.1.0.ebuild b/llvm-core/llvm/llvm-24.0.0_pre20260916.ebuild index 6a4092ea6e45..f53515fafd1d 100644 --- a/llvm-core/llvm/llvm-23.1.0.ebuild +++ b/llvm-core/llvm/llvm-24.0.0_pre20260916.ebuild @@ -19,9 +19,8 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" IUSE=" - +binutils-plugin debug debuginfod doc exegesis libedit +libffi + +binutils-plugin +debug debuginfod doc exegesis libedit +libffi test xml z3 zstd " RESTRICT="!test? ( test )" @@ -274,6 +273,7 @@ get_distribution_components() { llvm-bcanalyzer llvm-bitcode-strip llvm-c-test + llvm-calc-occupancy llvm-cas llvm-cat llvm-cfi-verify @@ -332,7 +332,6 @@ get_distribution_components() { llvm-reduce llvm-remarkutil llvm-rtdyld - llvm-sim llvm-size llvm-split llvm-stress diff --git a/llvm-core/mlir/Manifest b/llvm-core/mlir/Manifest index be61a8a5e5d8..ba9aebd9dd57 100644 --- a/llvm-core/mlir/Manifest +++ b/llvm-core/mlir/Manifest @@ -1,9 +1,8 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e98152616f16004c74df0e7313cc86d893428fb7b1c875109988a5e40ea6f2e5d0fef53c7bfe2fc2b69e84807f6eb440b03afa1b228a36 SHA512 cae4c44e7bf678071723da63ad5839491d717a7233e7f4791aa408207f3ea42f52de939ad15189b112c02a0770f1bb8d59bae6ad31ef53417a6eea7770fe52ab DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-core/mlir/mlir-24.0.0.9999.ebuild b/llvm-core/mlir/mlir-24.0.0.9999.ebuild index d01921b1aca2..e9afa3f480bd 100644 --- a/llvm-core/mlir/mlir-24.0.0.9999.ebuild +++ b/llvm-core/mlir/mlir-24.0.0.9999.ebuild @@ -69,7 +69,7 @@ check_distribution_components() { MLIR) ;; # installed test libraries - MLIRTestAnalysis|MLIRTestDialect|MLIRTestIR) + MLIRTestAliasAnalysis|MLIRTestAnalysis|MLIRTestDialect|MLIRTestIR) ;; MLIROpenACCTestPasses) ;; @@ -100,9 +100,10 @@ check_distribution_components() { done if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then - eqawarn "get_distribution_components() is outdated!" - eqawarn " Add: ${add[*]}" - eqawarn "Remove: ${remove[*]}" + eerror "get_distribution_components() is outdated!" + eerror " Add: ${add[*]}" + eerror "Remove: ${remove[*]}" + die "Update get_distribution_components()!" fi cd - >/dev/null || die fi @@ -129,6 +130,7 @@ get_distribution_components() { # test libraries required by flang MLIROpenACCTestPasses + MLIRTestAliasAnalysis MLIRTestAnalysis MLIRTestDialect MLIRTestIR @@ -137,6 +139,7 @@ get_distribution_components() { if multilib_is_native_abi; then out+=( # tools + mlir-irdl-to-cpp mlir-linalg-ods-yaml-gen mlir-lsp-server mlir-opt @@ -146,6 +149,7 @@ get_distribution_components() { mlir-reduce mlir-rewrite mlir-runner + mlir-src-sharder mlir-tblgen mlir-translate tblgen-lsp-server @@ -201,29 +205,8 @@ multilib_src_compile() { } multilib_src_test() { - local known_xfail=() - - case ${ABI} in - arm|ppc|x86) - known_xfail+=( - # MLIR is full of 64-bit assumptions, sigh - # https://github.com/llvm/llvm-project/issues/124541 - Dialect/Bufferization/Transforms/one-shot-bufferize-pass-statistics.mlir - Dialect/LLVMIR/sroa-statistics.mlir - Dialect/Linalg/vectorize-tensor-extract.mlir - Dialect/MemRef/mem2reg-statistics.mlir - Dialect/Tensor/fold-tensor-subset-ops.mlir - Dialect/Tensor/tracking-listener.mlir - Pass/pipeline-stats-nested.mlir - Pass/pipeline-stats.mlir - ) - ;; - esac - # respect TMPDIR! local -x LIT_PRESERVES_TMP=1 - local -x LIT_XFAIL="${known_xfail[*]}" - LIT_XFAIL=${LIT_XFAIL// /;} cmake_build check-mlir } diff --git a/llvm-core/mlir/mlir-23.1.0.ebuild b/llvm-core/mlir/mlir-24.0.0_pre20260916.ebuild index 0aa8b3d2701d..e9afa3f480bd 100644 --- a/llvm-core/mlir/mlir-23.1.0.ebuild +++ b/llvm-core/mlir/mlir-24.0.0_pre20260916.ebuild @@ -11,8 +11,7 @@ HOMEPAGE="https://mlir.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="~amd64 ~arm64" -IUSE="debug test" +IUSE="+debug test" RESTRICT="!test? ( test )" DEPEND=" @@ -70,7 +69,7 @@ check_distribution_components() { MLIR) ;; # installed test libraries - MLIRTestAnalysis|MLIRTestDialect|MLIRTestIR) + MLIRTestAliasAnalysis|MLIRTestAnalysis|MLIRTestDialect|MLIRTestIR) ;; MLIROpenACCTestPasses) ;; @@ -101,9 +100,10 @@ check_distribution_components() { done if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then - eqawarn "get_distribution_components() is outdated!" - eqawarn " Add: ${add[*]}" - eqawarn "Remove: ${remove[*]}" + eerror "get_distribution_components() is outdated!" + eerror " Add: ${add[*]}" + eerror "Remove: ${remove[*]}" + die "Update get_distribution_components()!" fi cd - >/dev/null || die fi @@ -130,6 +130,7 @@ get_distribution_components() { # test libraries required by flang MLIROpenACCTestPasses + MLIRTestAliasAnalysis MLIRTestAnalysis MLIRTestDialect MLIRTestIR @@ -138,6 +139,7 @@ get_distribution_components() { if multilib_is_native_abi; then out+=( # tools + mlir-irdl-to-cpp mlir-linalg-ods-yaml-gen mlir-lsp-server mlir-opt @@ -147,6 +149,7 @@ get_distribution_components() { mlir-reduce mlir-rewrite mlir-runner + mlir-src-sharder mlir-tblgen mlir-translate tblgen-lsp-server @@ -202,29 +205,8 @@ multilib_src_compile() { } multilib_src_test() { - local known_xfail=() - - case ${ABI} in - arm|ppc|x86) - known_xfail+=( - # MLIR is full of 64-bit assumptions, sigh - # https://github.com/llvm/llvm-project/issues/124541 - Dialect/Bufferization/Transforms/one-shot-bufferize-pass-statistics.mlir - Dialect/LLVMIR/sroa-statistics.mlir - Dialect/Linalg/vectorize-tensor-extract.mlir - Dialect/MemRef/mem2reg-statistics.mlir - Dialect/Tensor/fold-tensor-subset-ops.mlir - Dialect/Tensor/tracking-listener.mlir - Pass/pipeline-stats-nested.mlir - Pass/pipeline-stats.mlir - ) - ;; - esac - # respect TMPDIR! local -x LIT_PRESERVES_TMP=1 - local -x LIT_XFAIL="${known_xfail[*]}" - LIT_XFAIL=${LIT_XFAIL// /;} cmake_build check-mlir } diff --git a/llvm-core/polly/Manifest b/llvm-core/polly/Manifest index db528f0ccc8c..70e301becb0c 100644 --- a/llvm-core/polly/Manifest +++ b/llvm-core/polly/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b912ade3191c5d77f3979d5a80d5f6ce52f56a7d1c448bd257398390bf10838f02faa6f3ece37a7327cced69d165ec2e2e699316 SHA512 f330e72e6a1da468569049437cc0ba7a41abb816ccece7367189344f7ebfef730f4788ac7af2bef0aa8a49341c15ab1d31e941ffa782f264d11fe0dc05470773 DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619 @@ -5,7 +6,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-core/polly/polly-23.1.0.ebuild b/llvm-core/polly/polly-24.0.0_pre20260916.ebuild index 9f35405dda6e..859e9044b84e 100644 --- a/llvm-core/polly/polly-23.1.0.ebuild +++ b/llvm-core/polly/polly-24.0.0_pre20260916.ebuild @@ -14,8 +14,7 @@ LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" # vendored isl (fork?) LICENSE+=" MIT" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" -IUSE="debug test" +IUSE="+debug test" RESTRICT="!test? ( test )" DEPEND=" diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest index 7298244e5a33..328af47f876d 100644 --- a/llvm-runtimes/compiler-rt-sanitizers/Manifest +++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest @@ -4,6 +4,7 @@ DIST llvm-gentoo-patchset-19.1.7-r3.tar.xz 12488 BLAKE2B c11d0d43a48d95fa072edcc DIST llvm-gentoo-patchset-20.1.8-r2.tar.xz 12024 BLAKE2B c07960f21d2db0c7713b0f6ef7e7ab5c168fa1f4f487bcd6752e0f4f78604740fc8662e6470d9eeb555082f7f8abcd03d6af0ebee70c6648224356828716992b SHA512 8c7de03bdea061c300c473362624e20af37016cf7525d7ed2f5b286f435c703da5b9a05ed33f40306d516b1d6c18ea2def7116ae176c778867a98e4511ff2f7c DIST llvm-gentoo-patchset-21.1.8.tar.xz 1316 BLAKE2B df5a5e92c8b291c6555e805c1e33f1387cb0e2b43584b1d741bb2debaa65d10e9a87a69c22bb9dfa700a840a2fa15dd906ac4810518dcf4d37eb31881f969521 SHA512 09a1b0d68a538bed1bbc25ae9b0bb9196c48877c64d53d1238167ba3997b1205655a2ab3a465d64760634e5c8104225cbf45cccb48ea13f01bd40f8db248df55 DIST llvm-gentoo-patchset-22.1.7.tar.xz 1220 BLAKE2B 0b37c45625f0e595ab1cdb232950e52e2ea94192f35200bc358c453f38135e06befa92a85d0ad6bec984c8ded4e65a7d008661a0853cc4defbbb42ef0b04e277 SHA512 b87ac840a95d6a3307b7816df5e6351ab62b5e155c45b32ac8734e31598549bf0f494785974d45c506a086eb6dadf288551cb78391784fb799a18091dcc6e4b6 +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -17,7 +18,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-23.1.0.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0_pre20260916.ebuild index 3d58038c5c2a..4dc256f9656e 100644 --- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-23.1.0.ebuild +++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0_pre20260916.ebuild @@ -11,8 +11,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="${LLVM_MAJOR}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~x64-macos" -IUSE="+abi_x86_32 abi_x86_64 +clang debug test" +IUSE="+abi_x86_32 abi_x86_64 +clang +debug test" # base targets IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray" # sanitizer targets, keep in sync with config-ix.cmake diff --git a/llvm-runtimes/compiler-rt/Manifest b/llvm-runtimes/compiler-rt/Manifest index f7ca65cae170..25f03cd05eda 100644 --- a/llvm-runtimes/compiler-rt/Manifest +++ b/llvm-runtimes/compiler-rt/Manifest @@ -1,4 +1,5 @@ DIST llvm-gentoo-patchset-17.0.6-r5.tar.xz 7256 BLAKE2B d0f3f7df4ee38fbcd236225e9b64e313a1d4bae8d8eff0473fe50e20e79e0e161af418eb4a56e29e5b188cb17cd12c43bc42716d390286f6ab42d45b86b7a040 SHA512 70ca00b79e927931edfe905688f82b744443675c8b6ad7b5a962636629ea73d778dbf7a43c4947f05773eb04cdc0c1a64fe9d0e41d46ef04237b95bfc076740f +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -12,7 +13,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/compiler-rt/compiler-rt-23.1.0.ebuild b/llvm-runtimes/compiler-rt/compiler-rt-24.0.0_pre20260916.ebuild index af23533ba203..06a3628e4d57 100644 --- a/llvm-runtimes/compiler-rt/compiler-rt-23.1.0.ebuild +++ b/llvm-runtimes/compiler-rt/compiler-rt-24.0.0_pre20260916.ebuild @@ -12,8 +12,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="${LLVM_MAJOR}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos" -IUSE="+abi_x86_32 abi_x86_64 +atomic-builtins +clang debug test" +IUSE="+abi_x86_32 abi_x86_64 +atomic-builtins +clang +debug test" REQUIRED_USE="atomic-builtins? ( clang )" RESTRICT="!test? ( test ) !clang? ( test )" diff --git a/llvm-runtimes/flang-rt/Manifest b/llvm-runtimes/flang-rt/Manifest index be61a8a5e5d8..ba9aebd9dd57 100644 --- a/llvm-runtimes/flang-rt/Manifest +++ b/llvm-runtimes/flang-rt/Manifest @@ -1,9 +1,8 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e98152616f16004c74df0e7313cc86d893428fb7b1c875109988a5e40ea6f2e5d0fef53c7bfe2fc2b69e84807f6eb440b03afa1b228a36 SHA512 cae4c44e7bf678071723da63ad5839491d717a7233e7f4791aa408207f3ea42f52de939ad15189b112c02a0770f1bb8d59bae6ad31ef53417a6eea7770fe52ab DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/flang-rt/flang-rt-24.0.0.9999.ebuild b/llvm-runtimes/flang-rt/flang-rt-24.0.0.9999.ebuild index c30bf24b0e09..0d547b2c95be 100644 --- a/llvm-runtimes/flang-rt/flang-rt-24.0.0.9999.ebuild +++ b/llvm-runtimes/flang-rt/flang-rt-24.0.0.9999.ebuild @@ -45,8 +45,14 @@ src_configure() { strip-unsupported-flags local mycmakeargs=( + # cmake.eclass does not set if it we don't inherit fortran-2 + # and upstream code relies on it being set before Fortran logic + # kicks in and reds envvars + -DCMAKE_Fortran_COMPILER="${FC}" # we may not have a runtime yet -DCMAKE_Fortran_COMPILER_WORKS=TRUE + # tests require modules now, and we probably want them anyway + -DRUNTIMES_FORTRAN_MODULES=ON -DLLVM_ENABLE_RUNTIMES="flang-rt" # this package forces NO_DEFAULT_PATHS diff --git a/llvm-runtimes/flang-rt/flang-rt-23.1.0.ebuild b/llvm-runtimes/flang-rt/flang-rt-24.0.0_pre20260916.ebuild index d9815ee6096e..0d547b2c95be 100644 --- a/llvm-runtimes/flang-rt/flang-rt-23.1.0.ebuild +++ b/llvm-runtimes/flang-rt/flang-rt-24.0.0_pre20260916.ebuild @@ -11,8 +11,7 @@ HOMEPAGE="https://flang.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions" SLOT="${LLVM_MAJOR}" -KEYWORDS="~amd64 ~arm64" -IUSE="debug test" +IUSE="+debug test" RESTRICT="!test? ( test )" RDEPEND=" @@ -46,8 +45,14 @@ src_configure() { strip-unsupported-flags local mycmakeargs=( + # cmake.eclass does not set if it we don't inherit fortran-2 + # and upstream code relies on it being set before Fortran logic + # kicks in and reds envvars + -DCMAKE_Fortran_COMPILER="${FC}" # we may not have a runtime yet -DCMAKE_Fortran_COMPILER_WORKS=TRUE + # tests require modules now, and we probably want them anyway + -DRUNTIMES_FORTRAN_MODULES=ON -DLLVM_ENABLE_RUNTIMES="flang-rt" # this package forces NO_DEFAULT_PATHS diff --git a/llvm-runtimes/libclc/Manifest b/llvm-runtimes/libclc/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/llvm-runtimes/libclc/Manifest +++ b/llvm-runtimes/libclc/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/libclc/libclc-23.1.0.ebuild b/llvm-runtimes/libclc/libclc-24.0.0_pre20260916.ebuild index 44f6373106ce..7c429401a51e 100644 --- a/llvm-runtimes/libclc/libclc-23.1.0.ebuild +++ b/llvm-runtimes/libclc/libclc-24.0.0_pre20260916.ebuild @@ -11,7 +11,6 @@ HOMEPAGE="https://libclc.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86" IUSE="+spirv test video_cards_nvidia video_cards_radeonsi" RESTRICT="!test? ( test )" diff --git a/llvm-runtimes/libcxx/Manifest b/llvm-runtimes/libcxx/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/llvm-runtimes/libcxx/Manifest +++ b/llvm-runtimes/libcxx/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/libcxx/libcxx-23.1.0.ebuild b/llvm-runtimes/libcxx/libcxx-24.0.0_pre20260916.ebuild index 12dd095c3259..02d747942913 100644 --- a/llvm-runtimes/libcxx/libcxx-23.1.0.ebuild +++ b/llvm-runtimes/libcxx/libcxx-24.0.0_pre20260916.ebuild @@ -12,7 +12,6 @@ HOMEPAGE="https://libcxx.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" IUSE="+clang +libcxxabi +static-libs test" REQUIRED_USE="test? ( clang )" RESTRICT="!test? ( test )" diff --git a/llvm-runtimes/libcxxabi/Manifest b/llvm-runtimes/libcxxabi/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/llvm-runtimes/libcxxabi/Manifest +++ b/llvm-runtimes/libcxxabi/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/libcxxabi/libcxxabi-23.1.0.ebuild b/llvm-runtimes/libcxxabi/libcxxabi-24.0.0_pre20260916.ebuild index 57b59b4d26a8..f855c19440b9 100644 --- a/llvm-runtimes/libcxxabi/libcxxabi-23.1.0.ebuild +++ b/llvm-runtimes/libcxxabi/libcxxabi-24.0.0_pre20260916.ebuild @@ -12,7 +12,6 @@ HOMEPAGE="https://libcxxabi.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" IUSE="+clang +static-libs test" REQUIRED_USE="test? ( clang )" RESTRICT="!test? ( test )" diff --git a/llvm-runtimes/libgcc/Manifest b/llvm-runtimes/libgcc/Manifest index ab3b1f9af90f..0873a08690b6 100644 --- a/llvm-runtimes/libgcc/Manifest +++ b/llvm-runtimes/libgcc/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda @@ -7,7 +8,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/libgcc/libgcc-23.1.0.ebuild b/llvm-runtimes/libgcc/libgcc-24.0.0_pre20260916.ebuild index 13a2a5a81e1d..d11a82b17160 100644 --- a/llvm-runtimes/libgcc/libgcc-23.1.0.ebuild +++ b/llvm-runtimes/libgcc/libgcc-24.0.0_pre20260916.ebuild @@ -13,7 +13,6 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="~amd64" IUSE="debug test" DEPEND=" diff --git a/llvm-runtimes/libunwind/Manifest b/llvm-runtimes/libunwind/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/llvm-runtimes/libunwind/Manifest +++ b/llvm-runtimes/libunwind/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/libunwind/libunwind-23.1.0-r1.ebuild b/llvm-runtimes/libunwind/libunwind-24.0.0_pre20260916.ebuild index 7f2499ed75a1..11f95f2eadfa 100644 --- a/llvm-runtimes/libunwind/libunwind-23.1.0-r1.ebuild +++ b/llvm-runtimes/libunwind/libunwind-24.0.0_pre20260916.ebuild @@ -12,8 +12,7 @@ HOMEPAGE="https://llvm.org/docs/ExceptionHandling.html" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" -IUSE="cet +clang debug static-libs test" +IUSE="cet +clang +debug static-libs test" REQUIRED_USE="test? ( clang )" RESTRICT="!test? ( test )" @@ -133,8 +132,8 @@ multilib_src_configure() { -DLLVM_ENABLE_RUNTIMES="libunwind" -DLLVM_LIBDIR_SUFFIX=${libdir#lib} -DLLVM_INCLUDE_TESTS=OFF - -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) -DLIBUNWIND_ENABLE_CET=$(usex cet) + -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) -DLIBUNWIND_INCLUDE_TESTS=$(usex test) -DLIBUNWIND_INSTALL_HEADERS=ON diff --git a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest index c1a5a4b1dcc9..e6c47baddb89 100644 --- a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest +++ b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest @@ -1,7 +1,6 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-23.1.0.ebuild b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-24.0.0_pre20260916.ebuild index a06fab0c331d..637f0ee529d9 100644 --- a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-23.1.0.ebuild +++ b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-24.0.0_pre20260916.ebuild @@ -11,7 +11,6 @@ HOMEPAGE="https://openmp.llvm.org" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0/${LLVM_SOABI}" -KEYWORDS="~amd64" RDEPEND=" !<llvm-runtimes/offload-22[llvm_targets_AMDGPU(-)] diff --git a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest index c1a5a4b1dcc9..e6c47baddb89 100644 --- a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest +++ b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest @@ -1,7 +1,6 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-23.1.0.ebuild b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-24.0.0_pre20260916.ebuild index ea4824f2c5d1..451ed63aa328 100644 --- a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-23.1.0.ebuild +++ b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-24.0.0_pre20260916.ebuild @@ -11,7 +11,6 @@ HOMEPAGE="https://openmp.llvm.org" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0/${LLVM_SOABI}" -KEYWORDS="~amd64" RDEPEND=" !<llvm-runtimes/offload-22[llvm_targets_NVPTX(-)] diff --git a/llvm-runtimes/openmp-spirv64-intel/Manifest b/llvm-runtimes/openmp-spirv64-intel/Manifest index c986c37d5a49..89370ff8e310 100644 --- a/llvm-runtimes/openmp-spirv64-intel/Manifest +++ b/llvm-runtimes/openmp-spirv64-intel/Manifest @@ -1,5 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/openmp-spirv64-intel/openmp-spirv64-intel-23.1.0.ebuild b/llvm-runtimes/openmp-spirv64-intel/openmp-spirv64-intel-24.0.0_pre20260916.ebuild index 355f59c49595..b4ca394e780e 100644 --- a/llvm-runtimes/openmp-spirv64-intel/openmp-spirv64-intel-23.1.0.ebuild +++ b/llvm-runtimes/openmp-spirv64-intel/openmp-spirv64-intel-24.0.0_pre20260916.ebuild @@ -11,7 +11,6 @@ HOMEPAGE="https://openmp.llvm.org" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0/${LLVM_SOABI}" -KEYWORDS="~amd64" BDEPEND=" ~llvm-core/clang-${PV}:${LLVM_MAJOR}[llvm_targets_SPIRV] diff --git a/llvm-runtimes/openmp/Manifest b/llvm-runtimes/openmp/Manifest index bb684066886b..c1e1a95276a5 100644 --- a/llvm-runtimes/openmp/Manifest +++ b/llvm-runtimes/openmp/Manifest @@ -1,3 +1,4 @@ +DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340 @@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 -DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061 -DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39 DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581 diff --git a/llvm-runtimes/openmp/openmp-24.0.0.9999.ebuild b/llvm-runtimes/openmp/openmp-24.0.0.9999.ebuild index 5b8c84c1ea50..09180c8bc22d 100644 --- a/llvm-runtimes/openmp/openmp-24.0.0.9999.ebuild +++ b/llvm-runtimes/openmp/openmp-24.0.0.9999.ebuild @@ -68,8 +68,16 @@ LLVM_COMPONENTS=( llvm.org_set_globals MULTILIB_WRAPPED_HEADERS=( - /usr/include/offload/OffloadPrint.hpp /usr/include/offload/OffloadAPI.h + /usr/include/offload/OffloadPrint.hpp + /usr/include/offload/cuda/cuda_runtime.h + /usr/include/offload/hip/hip_runtime.h + /usr/include/offload/kernel/DefineLanguageNames.inc + /usr/include/offload/kernel/LanguageErrors.h + /usr/include/offload/kernel/LanguageLaunch.h + /usr/include/offload/kernel/LanguageRuntime.h + /usr/include/offload/kernel/Types.h + /usr/include/offload/kernel/UndefineLanguageNames.inc ) pkg_pretend() { diff --git a/llvm-runtimes/openmp/openmp-23.1.0.ebuild b/llvm-runtimes/openmp/openmp-24.0.0_pre20260916.ebuild index 95a6b9e476b2..09180c8bc22d 100644 --- a/llvm-runtimes/openmp/openmp-23.1.0.ebuild +++ b/llvm-runtimes/openmp/openmp-24.0.0_pre20260916.ebuild @@ -12,9 +12,8 @@ HOMEPAGE="https://openmp.llvm.org" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0/${LLVM_SOABI}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~x64-macos" IUSE=" - +clang debug gdb-plugin hwloc offload ompt test + +clang +debug gdb-plugin hwloc offload ompt test cuda level-zero rocm " REQUIRED_USE=" @@ -69,8 +68,16 @@ LLVM_COMPONENTS=( llvm.org_set_globals MULTILIB_WRAPPED_HEADERS=( - /usr/include/offload/OffloadPrint.hpp /usr/include/offload/OffloadAPI.h + /usr/include/offload/OffloadPrint.hpp + /usr/include/offload/cuda/cuda_runtime.h + /usr/include/offload/hip/hip_runtime.h + /usr/include/offload/kernel/DefineLanguageNames.inc + /usr/include/offload/kernel/LanguageErrors.h + /usr/include/offload/kernel/LanguageLaunch.h + /usr/include/offload/kernel/LanguageRuntime.h + /usr/include/offload/kernel/Types.h + /usr/include/offload/kernel/UndefineLanguageNames.inc ) pkg_pretend() { diff --git a/mail-filter/popfile/files/1.1.3-select-timeout.patch b/mail-filter/popfile/files/1.1.3-select-timeout.patch new file mode 100644 index 000000000000..9fdac3745602 --- /dev/null +++ b/mail-filter/popfile/files/1.1.3-select-timeout.patch @@ -0,0 +1,17 @@ +Increase select() timeout from 5 to 25 ms to reduce CPU overhead. + +--- a/POPFile/Loader.pm ++++ b/POPFile/Loader.pm +@@ -794,10 +794,10 @@ + } + } + +- # Sleep for 0.05 of a second to ensure that POPFile does not ++ # Sleep for 0.25 of a second to ensure that POPFile does not + # hog the machine's CPU + +- select(undef, undef, undef, 0.05) if !$nowait; ++ select(undef, undef, undef, 0.25) if !$nowait; + + # If we are on Windows then reap children here + diff --git a/mail-filter/popfile/popfile-1.1.3-r1.ebuild b/mail-filter/popfile/popfile-1.1.3-r2.ebuild index 90cdd61c3f20..7116cafcb9da 100644 --- a/mail-filter/popfile/popfile-1.1.3-r1.ebuild +++ b/mail-filter/popfile/popfile-1.1.3-r2.ebuild @@ -3,8 +3,6 @@ EAPI=8 -inherit edos2unix - DESCRIPTION="Anti-spam bayesian filter" HOMEPAGE="https://getpopfile.org" SRC_URI="https://getpopfile.org/downloads/${P}.zip" @@ -33,17 +31,11 @@ RDEPEND="virtual/perl-Digest-MD5 xmlrpc? ( dev-perl/PlRPC )" BDEPEND="app-arch/unzip" -src_prepare() { - default - local f - for f in $(find ./ -type f || die); do - edos2unix "${f}" - done -} +PATCHES=( "${FILESDIR}"/1.1.3-select-timeout.patch ) src_install() { dodoc *.change* - rm -r *.change* license || die + rm -r *.change* license popfile.pck || die insinto /usr/share/${PN} doins -r * diff --git a/mail-mta/exim/Manifest b/mail-mta/exim/Manifest index c6cf70b36af4..b413f8bcdd43 100644 --- a/mail-mta/exim/Manifest +++ b/mail-mta/exim/Manifest @@ -1,5 +1,5 @@ -DIST exim-4.99.4.tar.xz 1961412 BLAKE2B 316bd641a66f056a7d76f9c8b277a8727d854687d7251957ca4f2f2cf1ad7c92f0a25ddbed15e45009bd6c4d1ca9e8714262e508e4a577eb6eed74c6c9e06018 SHA512 30fa01a301f8f4fe0c069f3da9e5247f0e22b19f64119cb8cccaf10aada8280ce02061a4671d110ad29b08af9e23ba3c3e8c7483874c7b1c992d90b51681ca9a +DIST exim-4.100.tar.xz 2007860 BLAKE2B 0ae580074c4dd910a4f63491c8fe05bc787b74b3785cf027f0f8166e157cc9d7e3d98792fd3618c371e6e2ad114e0f60c7618b3e820b929a7145d2ff363bd103 SHA512 e7f2cc1ba9af4b1113d9a40b384bf2e5439f539381126018fb9a15d3afaf687fd209d06d1cfa96e61426df0d9f4e7988e49e1192510abc02b2aa19b14b051abc DIST exim-4.99.5.tar.xz 1962384 BLAKE2B 123140e1ffd1c7723070161a50573706da3abd5c6ef160621faca180869634ed2fbc2aaebea6be8312447d2d68e1b398f7ba1ba4712ab29c95e843816d1c42bf SHA512 28fd15d0d4e0114129fd42140fb5d5920fcd5cbfb6ac816197e3567c3d2ece6ec73367b43bd8d47d2b543adb89ad28a5e4c58a23210887f867a5c41c24e181b5 -DIST exim-pdf-4.99.4.tar.xz 2186640 BLAKE2B f9f7ae0a414202924d84e3581559dbc86118313338129dc0c7016fc626c84d0279a40c10496a7c18b6e8c2e14b96b3dd66e3c3aa183a63c432e506536c4b39cb SHA512 07436bb596464155d135c1f5bcc6e25f4fa9c9a34cb6fe40150044af44c1f06de14792776575681c562aa86dd9c625a9c19e8ef7cd1ba81f70663db7a9d08720 +DIST exim-pdf-4.100.tar.xz 2183432 BLAKE2B 2bb743ce03aadc7aa49ba0c4c12b75e4f7998220f2ef678e3b1af4b4fde79f45d18c0b52166a746825713288e90b6a49ca83ffc5e82a22dc9480e58cf403d34a SHA512 4f7aa3226c9b5da67c271edbf4aeb63bf0883f8d534dd6f83e8473deb892e14a35a2fe64966a64961d00bdd43dc66e943c67941f04c8fe74acabd16b2d3d06cb DIST exim-pdf-4.99.5.tar.xz 2174576 BLAKE2B 5b32709161852ba5aaca46aea97f22154a425c93efb6ea08654e2aa1bdf50b58ef0b14c273a592b982edc9d73a9a92668d716fea6c428a4fef0ad43a76105c5b SHA512 e60b439952c3ca73ae46d37a639067a8112a4d1346084f9f88b25a382ed658f4fc2dd5275de801a287fcca70d26b71b4c6651240ad1dcd9ba24a403e6f1a765c DIST system_filter.exim.gz 3075 BLAKE2B d05e872b5cef377d29126cda03fc0a74c8777b2119b76ff43da6e8de808035eb9bfcb034a85d81824f135d484e864bfc0629fc1af2c228a7277d5ee7cf9cde79 SHA512 cb358d3ce2499a0bb5920d962a06f2af8486e55ec90c8c928bd8e3aefb279aa57f5f960d5adfcef68bd94110b405eaa144e9629cfe6014a529c79c544600bbf3 diff --git a/mail-mta/exim/exim-4.99.4-r1.ebuild b/mail-mta/exim/exim-4.100-r1.ebuild index 7f8bc1feb8cd..9b9737726464 100644 --- a/mail-mta/exim/exim-4.99.4-r1.ebuild +++ b/mail-mta/exim/exim-4.100-r1.ebuild @@ -23,15 +23,18 @@ LICENSE="GPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" -IUSE="arc berkdb +dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl - dsn gdbm gnutls gsasl idn ipv6 ldap lmtp maildir mbx - mysql nis pam perl pkcs11 postgres +prdr proxy redis sasl - selinux socks5 spf sqlite srs +ssl syslog +tdb tcpd +tpda" +IUSE="arc berkdb +dane dcc +dkim dlfunc dmarc dmarc-native +dmarc-opendmarc + +dnsdb doc dovecot-sasl dsn gdbm gnutls gsasl idn ldap lmtp maildir mbx + mysql nis pam perl pkcs11 postgres +prdr proxy redis sasl selinux socks5 + spf sqlite srs +ssl syslog +tdb tcpd +tpda" REQUIRED_USE=" arc? ( dkim spf ) dane? ( ssl !gnutls ) - !dane? ( ssl? ( gnutls ) ) - dmarc? ( dkim spf ) + dmarc? ( + dkim spf + dmarc-native? ( idn ) + ^^ ( dmarc-native dmarc-opendmarc ) + ) dkim? ( ssl !gnutls ) gnutls? ( ssl ) pkcs11? ( ssl ) @@ -44,8 +47,6 @@ REQUIRED_USE=" # have left is to a) ignore the dependency (but that results in bug # #661164) or b) mask the usage of USE=dane with USE=gnutls. Both are # incorrect, but b) is the only "correct" view from dep-pointofview. -# Bug #925108 showed that DANE is basically non-optional with OpenSSL, -# so we make -dane mandatory to use gnutls. Bleh. # We cannot express a required use for berkdb/gdbm/tdb correctly because # berkdb and gdbm are both enabled in base profile @@ -81,7 +82,9 @@ COMMON_DEPEND=">=sys-apps/sed-4.0.5 gsasl? ( net-misc/gsasl ) redis? ( dev-libs/hiredis:= ) spf? ( >=mail-filter/libspf2-1.2.5-r1 ) - dmarc? ( mail-filter/opendmarc:= ) + dmarc? ( + dmarc-opendmarc? ( mail-filter/opendmarc:= ) + ) sqlite? ( dev-db/sqlite:= ) virtual/libcrypt:= virtual/libiconv @@ -112,7 +115,6 @@ src_prepare() { eapply "${FILESDIR}"/exim-4.69-r1.27021.patch eapply "${FILESDIR}"/exim-4.97-localscan_dlopen.patch eapply "${FILESDIR}"/exim-4.97-no-exim_id_update.patch - eapply "${FILESDIR}"/exim-4.99.4-dkim_no_direct_ld.patch # 963615 if use maildir ; then eapply "${FILESDIR}"/exim-4.94-maildir.patch @@ -165,6 +167,7 @@ src_configure() { SPOOL_DIRECTORY=${EPREFIX}/var/spool/exim HAVE_ICONV=yes WITH_CONTENT_SCAN=yes + HAVE_IPV6=YES EOC # configure db implementation, Exim always needs one for its hints @@ -211,13 +214,6 @@ src_configure() { EOC fi - # support for IPv6 - if use ipv6; then - cat >> Makefile <<- EOC - HAVE_IPV6=YES - EOC - fi - # support i18n/IDNA if use idn; then cat >> Makefile <<- EOC @@ -429,10 +425,20 @@ src_configure() { # DMARC if use dmarc; then - cat >> Makefile <<- EOC - SUPPORT_DMARC=yes - EXTRALIBS_EXIM += -lopendmarc - EOC + if use dmarc-opendmarc; then + cat >> Makefile <<- EOC + SUPPORT_DMARC=yes + EXTRALIBS_EXIM += -lopendmarc + EOC + elif use dmarc-native; then + cat >> Makefile <<- EOC + # Enable experimental dmarc (which needs PSL) + LOOKUP_PSL=yes + EXPERIMENTAL_DMARC_NATIVE=yes + EOC + else + die "Unable to correctly detemine selected DMARC implementation." + fi fi # Sender Policy Framework @@ -518,7 +524,7 @@ src_configure() { } src_compile() { - emake CC="$(tc-getCC)" HOSTCC="$(tc-getBUILD_CC)" \ + emake CC="$(tc-getCC)" HOSTCC="$(tc-getBUILD_CC)" LD="$(tc-getLD)" \ AR="$(tc-getAR) cq" RANLIB="$(tc-getRANLIB)" FULLECHO='' } @@ -606,6 +612,6 @@ pkg_postinst() { fi use dsn && einfo "extra information in fail DSN message is experimental" einfo - elog "Support for eximon via USE=X was dropped in this ebuild." - elog "The eximon code no longer compiles using recent compilers." + elog "Support for eximon via USE=X was dropped in 4.99 ebuilds," + elog "for eximon code no longer compiles using recent compilers." } diff --git a/mail-mta/exim/exim-4.99.4.ebuild b/mail-mta/exim/exim-4.99.4.ebuild deleted file mode 100644 index fd92d0c73673..000000000000 --- a/mail-mta/exim/exim-4.99.4.ebuild +++ /dev/null @@ -1,610 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -inherit db-use flag-o-matic toolchain-funcs pam systemd - -DESCRIPTION="A highly configurable, drop-in replacement for sendmail" -HOMEPAGE="https://www.exim.org/" - -SDIR=$( - [[ ${PV} == *_rc* ]] && echo /test - [[ ${PV} == *.*.*.* ]] && echo /fixes -) -COMM_URI="https://downloads.exim.org/exim4${SDIR}" - -SRC_URI="${COMM_URI}/${P//_rc/-RC}.tar.xz - mirror://gentoo/system_filter.exim.gz - doc? ( ${COMM_URI}/${PN}-pdf-${PV//_rc/-RC}.tar.xz )" -S=${WORKDIR}/${P//_rc/-RC} - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ppc ppc64 ~sparc x86" - -IUSE="arc berkdb +dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl - dsn gdbm gnutls gsasl idn ipv6 ldap lmtp maildir mbx - mysql nis pam perl pkcs11 postgres +prdr proxy redis sasl - selinux socks5 spf sqlite srs +ssl syslog +tdb tcpd +tpda" -REQUIRED_USE=" - arc? ( dkim spf ) - dane? ( ssl !gnutls ) - !dane? ( ssl? ( gnutls ) ) - dmarc? ( dkim spf ) - dkim? ( ssl !gnutls ) - gnutls? ( ssl ) - pkcs11? ( ssl ) - || ( berkdb gdbm tdb sqlite ) -" -# NOTE on USE="gnutls dane", gnutls[dane] is masked in base, unmasked -# for x86 and amd64 only (probably due to unbound dep) -# Exim supports it but we cannot express the dep USE=dane when -# USE=gnutls is in effect only in package.use.mask, the only option we -# have left is to a) ignore the dependency (but that results in bug -# #661164) or b) mask the usage of USE=dane with USE=gnutls. Both are -# incorrect, but b) is the only "correct" view from dep-pointofview. -# Bug #925108 showed that DANE is basically non-optional with OpenSSL, -# so we make -dane mandatory to use gnutls. Bleh. -# We cannot express a required use for berkdb/gdbm/tdb correctly because -# berkdb and gdbm are both enabled in base profile - -COMMON_DEPEND=">=sys-apps/sed-4.0.5 - dev-libs/libpcre2:= - tdb? ( sys-libs/tdb:= ) - !tdb? ( berkdb? ( >=sys-libs/db-3.2:= <sys-libs/db-6:= ) ) - !tdb? ( !berkdb? ( sys-libs/gdbm:= ) ) - idn? ( net-dns/libidn:= net-dns/libidn2:= ) - perl? ( dev-lang/perl:= ) - pam? ( sys-libs/pam ) - tcpd? ( sys-apps/tcp-wrappers ) - ssl? ( - gnutls? ( - net-libs/gnutls:0=[pkcs11?] - dev-libs/libtasn1 - ) - !gnutls? ( - dev-libs/openssl:0= - ) - ) - ldap? ( >=net-nds/openldap-2.0.7:= ) - elibc_glibc? ( - net-libs/libnsl:= - nis? ( - net-libs/libtirpc:= - >=net-libs/libnsl-1:= - ) - ) - mysql? ( dev-db/mysql-connector-c:= ) - postgres? ( dev-db/postgresql:= ) - sasl? ( >=dev-libs/cyrus-sasl-2.1.26-r2 ) - gsasl? ( net-misc/gsasl ) - redis? ( dev-libs/hiredis:= ) - spf? ( >=mail-filter/libspf2-1.2.5-r1 ) - dmarc? ( mail-filter/opendmarc:= ) - sqlite? ( dev-db/sqlite:= ) - virtual/libcrypt:= - virtual/libiconv - " -BDEPEND="virtual/pkgconfig" -DEPEND="${COMMON_DEPEND}" -RDEPEND="${COMMON_DEPEND} - !mail-mta/courier - !mail-mta/esmtp - !mail-mta/msmtp[mta] - !mail-mta/netqmail - !mail-mta/nullmailer - !mail-mta/postfix - !mail-mta/sendmail - !mail-mta/opensmtpd - !mail-mta/ssmtp[mta] - >=net-mail/mailbase-0.00-r5 - virtual/logger - dcc? ( mail-filter/dcc ) - selinux? ( sec-policy/selinux-exim ) - " - -src_prepare() { - # Legacy patches which need a respin for -p1 - eapply -p0 "${FILESDIR}"/exim-4.14-tail.patch - eapply "${FILESDIR}"/exim-4.99.3-as-needed-ldflags.patch # 352265, 391279 - eapply -p0 "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591 - eapply "${FILESDIR}"/exim-4.69-r1.27021.patch - eapply "${FILESDIR}"/exim-4.97-localscan_dlopen.patch - eapply "${FILESDIR}"/exim-4.97-no-exim_id_update.patch - - if use maildir ; then - eapply "${FILESDIR}"/exim-4.94-maildir.patch - else - eapply -p0 "${FILESDIR}"/exim-4.80-spool-mail-group.patch # 438606 - fi - - eapply_user - - # user Exim believes it should be - MAILUSER=mail - MAILGROUP=mail - if use prefix && [[ ${EUID} != 0 ]] ; then - MAILUSER=$(id -un) - MAILGROUP=$(id -gn) - fi -} - -src_configure() { - # general config and paths - - local aliases="${EPREFIX}/etc/mail/aliases" - sed -i \ - -e "/SYSTEM_ALIASES_FILE/s'SYSTEM_ALIASES_FILE'${aliases}'" \ - src/configure.default || die - - sed -i -e 's/^buildname=.*/buildname=exim-gentoo/' Makefile || die - - if use elibc_musl; then - sed -i -e 's/^LIBS = -lnsl/LIBS =/g' OS/Makefile-Linux || die - append-cflags -DNO_EXECINFO - fi - - local conffile="${EPREFIX}/etc/exim/exim.conf" - sed -e "48i\CFLAGS=${CFLAGS}" \ - -e "s:BIN_DIRECTORY=/usr/exim/bin:BIN_DIRECTORY=${EPREFIX}/usr/sbin:" \ - -e "s;EXIM_USER=;EXIM_USER=ref:${MAILUSER};" \ - -e "s:CONFIGURE_FILE=.*$:CONFIGURE_FILE=${conffile}:" \ - -e "s:ZCAT_COMMAND=.*$:ZCAT_COMMAND=${EPREFIX}/bin/zcat:" \ - -e "s:COMPRESS_COMMAND=.*$:COMPRESS_COMMAND=${EPREFIX}/bin/gzip:" \ - -e "s:^LOOKUP_DBM = yes:# LOOKUP_DBM = yes:" \ - src/EDITME > Local/Makefile || die - - # work on Local/Makefile from now on - cd Local - - cat >> Makefile <<- EOC - INFO_DIRECTORY=${EPREFIX}/usr/share/info - PID_FILE_PATH=${EPREFIX}/run/exim.pid - SPOOL_DIRECTORY=${EPREFIX}/var/spool/exim - HAVE_ICONV=yes - WITH_CONTENT_SCAN=yes - EOC - - # configure db implementation, Exim always needs one for its hints - # database, we prefer sqlite, tdb and gdbm, since bdb is kind of - # getting less and less support - sed -i \ - -e 's:^USE_DB=yes:# USE_DB=yes:' \ - -e 's:^USE_GDBM=yes:# USE_GDBM=yes:' \ - -e 's:^USE_TDB=yes:# USE_TDB=yes:' \ - -e 's:^USE_SQLITE=yes:# USE_SQLITE=yes:' \ - Makefile || die - if use sqlite ; then - cat >> Makefile <<- EOC - USE_SQLITE=yes - DBMLIB = -lsqlite3 - EOC - elif use tdb ; then - cat >> Makefile <<- EOC - USE_TDB=yes - DBMLIB = -ltdb - EOC - elif use gdbm ; then - cat >> Makefile <<- EOC - USE_GDBM=yes - DBMLIB = -lgdbm - EOC - else # must be berkdb via required_use - # use the "native" interfaces to the DBM and CDB libraries, support - # passwd and directory lookups by default - local DB_VERS="5.3 5.1 4.8 4.7 4.6 4.5 4.4 4.3 4.2 3.2" - cat >> Makefile <<- EOC - USE_DB=yes - LOOKUP_DBM = yes - # keep include in CFLAGS because exim.h -> dbstuff.h -> db.h - CFLAGS += -I$(db_includedir ${DB_VERS}) - DBMLIB = -l$(db_libname ${DB_VERS}) - EOC - fi - - # if we use libiconv, now is the time to tell so - if use !elibc_glibc && use !elibc_musl ; then - cat >> Makefile <<- EOC - EXTRALIBS_EXIM=-liconv - EOC - fi - - # support for IPv6 - if use ipv6; then - cat >> Makefile <<- EOC - HAVE_IPV6=YES - EOC - fi - - # support i18n/IDNA - if use idn; then - cat >> Makefile <<- EOC - SUPPORT_I18N=yes - SUPPORT_I18N_2008=yes - EXTRALIBS_EXIM += -lidn -lidn2 - EOC - fi - - # - # mail storage formats - # - - # mailstore is Exim's traditional storage format - cat >> Makefile <<- EOC - SUPPORT_MAILSTORE=yes - EOC - - # mbox - if use mbx; then - cat >> Makefile <<- EOC - SUPPORT_MBX=yes - EOC - fi - - # maildir - if use maildir; then - cat >> Makefile <<- EOC - SUPPORT_MAILDIR=yes - EOC - fi - - # - # lookup methods - # - - # support passwd and directory lookups by default - cat >> Makefile <<- EOC - LOOKUP_CDB=yes - LOOKUP_PASSWD=yes - LOOKUP_DSEARCH=yes - EOC - - if ! use dnsdb; then - # DNSDB lookup is enabled by default - sed -i -e 's:^LOOKUP_DNSDB=yes:# LOOKUP_DNSDB=yes:' Makefile || die - fi - - if use ldap; then - cat >> Makefile <<- EOC - LOOKUP_LDAP=yes - LDAP_LIB_TYPE=OPENLDAP2 - LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/ldap - LOOKUP_LIBS += -lldap -llber - EOC - fi - - if use mysql; then - cat >> Makefile <<- EOC - LOOKUP_MYSQL=yes - LOOKUP_INCLUDE += $(mysql_config --include) - LOOKUP_LIBS += $(mysql_config --libs) - EOC - fi - - if use nis; then - cat >> Makefile <<- EOC - LOOKUP_NIS=yes - LOOKUP_NISPLUS=yes - EOC - if use elibc_glibc ; then - cat >> Makefile <<- EOC - LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/tirpc - LOOKUP_LIBS += -lnsl - EOC - fi - fi - - if use postgres; then - cat >> Makefile <<- EOC - LOOKUP_PGSQL=yes - LOOKUP_INCLUDE += -I$(pg_config --includedir) - LOOKUP_LIBS += -L$(pg_config --libdir) -lpq - EOC - fi - - if use sqlite; then - cat >> Makefile <<- EOC - LOOKUP_SQLITE=yes - LOOKUP_SQLITE_PC=sqlite3 - EOC - fi - - if use redis; then - cat >> Makefile <<- EOC - LOOKUP_REDIS=yes - LOOKUP_LIBS += -lhiredis - EOC - fi - - # - # features - # - - # DomainKeys Identified Mail, RFC4871 - if ! use dkim; then - # DKIM is enabled by default - cat >> Makefile <<- EOC - DISABLE_DKIM=yes - EOC - fi - - # Per-Recipient-Data-Response - if ! use prdr; then - # PRDR is enabled by default - cat >> Makefile <<- EOC - DISABLE_PRDR=yes - EOC - fi - - # Transport post-delivery actions - if use !tpda && use !dane; then - # EVENT is enabled by default - cat >> Makefile <<- EOC - DISABLE_EVENT=yes - EOC - fi - - # log to syslog - if use syslog; then - local eximlog="${EPREFIX}/var/log/exim/exim_%s.log" - sed -i \ - -e "s:LOG_FILE_PATH=${eximlog}:LOG_FILE_PATH=syslog:" \ - Makefile || die - cat >> Makefile <<- EOC - LOG_FILE_PATH=syslog - EOC - else - cat >> Makefile <<- EOC - LOG_FILE_PATH=${EPREFIX}/var/log/exim/exim_%s.log - EOC - fi - - # starttls support (ssl) - if use ssl; then - if use gnutls; then - echo "USE_GNUTLS=yes" >> Makefile - echo "USE_GNUTLS_PC=gnutls $(use dane && echo gnutls-dane)" \ - >> Makefile - use pkcs11 || echo "AVOID_GNUTLS_PKCS11=yes" >> Makefile - else - echo "USE_OPENSSL=yes" >> Makefile - echo "USE_OPENSSL_PC=openssl" >> Makefile - fi - else - echo "DISABLE_TLS=yes" >> Makefile - fi - - # TCP wrappers - if use tcpd; then - cat >> Makefile <<- EOC - USE_TCP_WRAPPERS=yes - EXTRALIBS_EXIM += -lwrap - EOC - fi - - # Light Mail Transport Protocol - if use lmtp; then - cat >> Makefile <<- EOC - TRANSPORT_LMTP=yes - EOC - fi - - # embedded Perl - if use perl; then - cat >> Makefile <<- EOC - EXIM_PERL=perl.o - EOC - fi - - # dlfunc - if use dlfunc; then - cat >> Makefile <<- EOC - EXPAND_DLFUNC=yes - HAVE_LOCAL_SCAN=yes - DLOPEN_LOCAL_SCAN=yes - EOC - fi - - # Proxy Protocol - if use proxy; then - cat >> Makefile <<- EOC - SUPPORT_PROXY=yes - EOC - fi - - # SOCKS5 (outbound) proxy support - if use socks5; then - cat >> Makefile <<- EOC - SUPPORT_SOCKS=yes - EOC - fi - - # DANE - if use !dane; then - # DANE is enabled by default - sed -i -e 's:^SUPPORT_DANE=yes:# SUPPORT_DANE=yes:' Makefile || die - fi - - # DMARC - if use dmarc; then - cat >> Makefile <<- EOC - SUPPORT_DMARC=yes - EXTRALIBS_EXIM += -lopendmarc - EOC - fi - - # Sender Policy Framework - if use spf; then - cat >> Makefile <<- EOC - SUPPORT_SPF=yes - EXTRALIBS_EXIM += -lspf2 - EOC - fi - - # - # experimental features - # - - # Authenticated Receive Chain - if use arc; then - echo "EXPERIMENTAL_ARC=yes">> Makefile - fi - - # Distributed Checksum Clearinghouse - if use dcc; then - echo "EXPERIMENTAL_DCC=yes">> Makefile - fi - - # Sender Rewriting Scheme - if use srs; then - # this one is the default/supported variant since 4.95, and the - # only variant available since 4.96 - cat >> Makefile <<- EOC - SUPPORT_SRS=yes - EOC - fi - - # Delivery Sender Notifications extra information in fail message - if use dsn; then - cat >> Makefile <<- EOC - EXPERIMENTAL_DSN_INFO=yes - EOC - fi - - # - # authentication (SMTP AUTH) - # - - # standard bits - cat >> Makefile <<- EOC - AUTH_SPA=yes - AUTH_CRAM_MD5=yes - AUTH_PLAINTEXT=yes - EOC - - # Cyrus SASL - if use sasl; then - cat >> Makefile <<- EOC - CYRUS_SASLAUTHD_SOCKET=${EPREFIX}/run/saslauthd/mux - AUTH_CYRUS_SASL=yes - AUTH_LIBS += -lsasl2 - EOC - fi - - # Dovecot - if use dovecot-sasl; then - cat >> Makefile <<- EOC - AUTH_DOVECOT=yes - EOC - fi - - # GNU SASL - if use gsasl; then - cat >> Makefile <<- EOC - AUTH_GSASL=yes - AUTH_GSASL_PC=libgsasl - EOC - fi - - # Pluggable Authentication Modules - if use pam; then - cat >> Makefile <<- EOC - SUPPORT_PAM=yes - AUTH_LIBS += -lpam - EOC - fi -} - -src_compile() { - emake CC="$(tc-getCC)" HOSTCC="$(tc-getBUILD_CC)" \ - AR="$(tc-getAR) cq" RANLIB="$(tc-getRANLIB)" FULLECHO='' -} - -src_install() { - cd "${S}"/build-exim-gentoo || die - dosbin exim - fperms 4755 /usr/sbin/exim - - dosym exim /usr/sbin/sendmail - dosym exim /usr/sbin/rsmtp - dosym exim /usr/sbin/rmail - dosym ../sbin/exim /usr/bin/mailq - dosym ../sbin/exim /usr/bin/newaliases - dosym ../sbin/sendmail /usr/lib/sendmail - - for i in exicyclog exim_dbmbuild exim_dumpdb exim_fixdb exim_lock \ - exim_tidydb exinext exiwhat exigrep eximstats exiqsumm exiqgrep \ - exipick - do - dosbin $i - done - - dodoc -r "${S}"/doc/. - doman "${S}"/doc/exim.8 - use dsn && dodoc "${S}"/README.DSN - use doc && dodoc "${WORKDIR}"/${PN}-pdf-${PV//rc/RC}/doc/*.pdf - - # conf files - insinto /etc/exim - newins "${S}"/src/configure.default exim.conf.dist - doins "${WORKDIR}"/system_filter.exim - doins "${FILESDIR}"/auth_conf.sub - - if use pam; then - pamd_mimic system-auth exim auth account - fi - - # headers, #436406 - if use dlfunc ; then - # fixup includes so they actually can be found when including - sed -i \ - -e '/#include "\(config\|store\|mytypes\).h"/s:"\(.\+\)":<exim/\1>:' \ - local_scan.h || die - insinto /usr/include/exim - doins {config,local_scan}.h ../src/{mytypes,store}.h - fi - - insinto /etc/logrotate.d - newins "${FILESDIR}/exim.logrotate" exim - - newinitd "${FILESDIR}"/exim.rc10 exim - newconfd "${FILESDIR}"/exim.confd exim - - systemd_dounit \ - "${FILESDIR}"/{exim.service,exim.socket,exim-submission.socket} - systemd_newunit \ - "${FILESDIR}"/exim_at.service 'exim@.service' - systemd_newunit \ - "${FILESDIR}"/exim-submission_at.service 'exim-submission@.service' - - diropts -m 0750 -o ${MAILUSER} -g ${MAILGROUP} - keepdir /var/log/${PN} -} - -pkg_postinst() { - if [[ ! -f ${EROOT}/etc/exim/exim.conf ]] ; then - einfo "${EROOT}/etc/exim/system_filter.exim is a sample system_filter." - einfo "${EROOT}/etc/exim/auth_conf.sub contains the configuration sub" - einfo "for using smtp auth." - einfo "Please create ${EROOT}/etc/exim/exim.conf from" - einfo " ${EROOT}/etc/exim/exim.conf.dist." - fi - if use berkdb && ( use gdbm || use tdb ) ; then - ewarn "USE=berkdb is ignored because USE=gdbm or USE=tdb is enabled!" - fi - if use dmarc ; then - einfo "DMARC support requires ${EROOT}/etc/exim/opendmarc.tlds" - einfo "you can populate this file with the contents downloaded from" - einfo " https://publicsuffix.org/list/public_suffix_list.dat" - fi - if use dcc ; then - einfo "DCC support is experimental, you can find some limited" - einfo "documentation at the bottom of this prerelease message:" - einfo " http://article.gmane.org/gmane.mail.exim.devel/3579" - fi - use dsn && einfo "extra information in fail DSN message is experimental" - einfo - elog "Support for eximon via USE=X was dropped in this ebuild." - elog "The eximon code no longer compiles using recent compilers." -} diff --git a/mail-mta/exim/exim-4.99.5.ebuild b/mail-mta/exim/exim-4.99.5.ebuild index 8439782a40d9..09ac0e3c1d63 100644 --- a/mail-mta/exim/exim-4.99.5.ebuild +++ b/mail-mta/exim/exim-4.99.5.ebuild @@ -21,7 +21,7 @@ S=${WORKDIR}/${P//_rc/-RC} LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ppc ppc64 ~sparc x86" IUSE="arc berkdb +dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl dsn gdbm gnutls gsasl idn ipv6 ldap lmtp maildir mbx diff --git a/mail-mta/exim/metadata.xml b/mail-mta/exim/metadata.xml index 11584667adf9..3fb8015bb358 100644 --- a/mail-mta/exim/metadata.xml +++ b/mail-mta/exim/metadata.xml @@ -28,6 +28,8 @@ <flag name="dlfunc">Install local_scan.h header to compile separate dlfunc libraries</flag> <flag name="dmarc">Adds support for DMARC</flag> + <flag name="dmarc-native">Use *EXPERIMENTAL* Native DMARC implementation (Only effective with USE=dmarc).</flag> + <flag name="dmarc-opendmarc">Use established opendmarc based DMARC implementation (Only effective with USE=dmarc).</flag> <flag name="dnsdb">Adds support for a DNS search for a record whose domain name is the supplied query</flag> <flag name="dovecot-sasl">Adds support for Dovecot's diff --git a/mail-mta/postfix/Manifest b/mail-mta/postfix/Manifest index c2151b2ec3c0..f5df7348d44b 100644 --- a/mail-mta/postfix/Manifest +++ b/mail-mta/postfix/Manifest @@ -1,4 +1,4 @@ DIST postfix-3.11.7.tar.gz 5293599 BLAKE2B 4f3d9f92320336a80770593800d026aa41dc628dfd9db5e5d3b6fad667fe700bdd4bddcc16fce17f47fdba9cd58419946dc5f14b0e9d7dc5569c45b1226ffae4 SHA512 3b4ef7562a24bbab1d0ca361ac0af1037aa3d4ae65a7c825711de9d5d3ed88975aad63cb09991717de334f4382c29039b527a3e8d4e65c5a6d35efd3e782910f DIST postfix-3.11.7.tar.gz.asc 220 BLAKE2B e32f69fae20c6aae0f95efabd02c77c2bd9b7684738b15f8d584447e3bb5d09c8ef80ffb11c4798615c6b8f3e8ff31de25a5bc2dc4f41ef012ec956f7528c662 SHA512 d482753f934393bb65b8e069a5ae092d3b3ef4c30106f8738e9947d18ad35271fc375d202ffbc335e4a04737e369eb8975163fb530aa1a7176d16c7f62746697 -DIST postfix-3.12-20260902.tar.gz 5425474 BLAKE2B f74688566d86114f59376d68fff99b7ac9ba6b2e606c48d053e74740c8b6a3f1ca2d3bb8085631ddfbcd580a8aa2b06364d257a2838e85b1187efd07d5c9df0b SHA512 48ba1d448ec62861ddc42a951e234fe9679504ce08343a79d2e0a84a54d4908086f064fec7ed5de7a3af6c4434bbc66e3186a6aafd81c22a84fee8982d143ae1 -DIST postfix-3.12-20260902.tar.gz.asc 220 BLAKE2B 73fddbf6600e830f032e6552c7690f30392876e66630419f036a5c3c53d97a10e43289963f59e33c8cb2fa60f14adee63ba1b3c3d4967bdff098cb2bb0d7d3c8 SHA512 dce300b296588f314e24c747f859f741a06dae76f60cc33c541e3013b21ef9bde0ebcbb949a2c7d58bf79f94c8292acb28681657b745777218f83d1da09b5139 +DIST postfix-3.12-20260915.tar.gz 5429668 BLAKE2B 68f512f110556695b64807c0efb344993dfc4142998fdbbb04ec5fc49e9c930ba2ca269a02235c8e03f1caf83f2132cc26558337dd3fcb2b13905ed380dc4b85 SHA512 c62c81a2f14eeb14809b2b195002467435663a422aebc1c8187a9c96810a50d1414ded12f0320d9c234f59fde34abf683e19075dd26f4b58a552c383e2afec09 +DIST postfix-3.12-20260915.tar.gz.asc 220 BLAKE2B b305b8e5f005084f55fd2a2d0698f364c416524f5e022a33ab7ccd57a88be96ea65129558b3e2faa6c3bff14bde8731c7fdb5cf205d67aa3de4f2d5cd0042c68 SHA512 987d9e3f8281dd36020747911465a92f4e9f9a14fb4725faf1851ab39261c6adb3683ac4caeec298e247ce376b1bceb89855b9adf2654932884d0f94b1881f3b diff --git a/mail-mta/postfix/postfix-3.12_pre20260902.ebuild b/mail-mta/postfix/postfix-3.12_pre20260915.ebuild index c46f8e9da614..c46f8e9da614 100644 --- a/mail-mta/postfix/postfix-3.12_pre20260902.ebuild +++ b/mail-mta/postfix/postfix-3.12_pre20260915.ebuild diff --git a/media-gfx/freecad/Manifest b/media-gfx/freecad/Manifest index 9bb0f13f2f84..54c3d6426c02 100644 --- a/media-gfx/freecad/Manifest +++ b/media-gfx/freecad/Manifest @@ -3,3 +3,4 @@ DIST freecad-1.0.2.tar.gz 91635756 BLAKE2B d71e356ad64ff1dd9a6433752dd1ae71e981a DIST freecad-1.1.1.tar.gz 91720496 BLAKE2B 598326c9d1aee79864bbabb6b521dff44b9f8ee4767d9a2d254f6aeb6f350455c88c1d024978279217e53b283dc57a04ce496f63216b07556567b887cfb78306 SHA512 47e9a251f228112f7037a1e36f9a372ab5f9925fc3117983cf32d91006572eed430316d42539dc8c37c36f7179f8ffe2a66e392f1391e58adf6ccdec82d0c344 DIST freecad-20710.patch 902 BLAKE2B ce69e5714c06e969bd533c54be9f7de0c23fc881a5259979c444aecc1f5cbb175b01c7a61bf3ebc35e0eeb7f9aabfba729499e449cbf2a06055df6aecc8465cd SHA512 1df1b0941d1ccbf9aef0f882cd17e647448acb9267a2fae503b4427b80620374e5d4e1a1bb651fab8b631db3ff4d53748951d75e244a9ffddda817b6d4971a84 DIST freecad-21433.patch 1151 BLAKE2B 88945020844ba6df0b5ae70a6e889191886165e21711c021c56a8902a881aeebca1974d12a92e0f3c45ba354221acc2c65ffd84b0cb2055aa307f693a0b8f235 SHA512 2b28cabb53fa0d2bc8ee2fab9b5672c225baff20705731c89491f0b2c89877e31c3b622396ecdcf806208b6c7bacb231ad635681183ece14f4102def96381493 +DIST freecad_source_1.1.3.tar.gz 98193618 BLAKE2B 2caa65cace6a9b05abf83c119e3a9807df719001076675b7ffa8433258e7331a82b7ddb4da3178925b69919322a34aa64e3b24c2ba745d690163fb7539bf528e SHA512 36fd55ff54a7eec38a1364e95b86fbb6e70336e79936b8bb58f56d52e0c6ddb4dcb0eb96d5c2fde2e34ed233421b088cd19e85edfbad13a99c983d7c79e38261 diff --git a/media-gfx/freecad/files/freecad-1.1.0-boost_system.patch b/media-gfx/freecad/files/freecad-1.1.0-boost_system.patch new file mode 100644 index 000000000000..69d995fbfa42 --- /dev/null +++ b/media-gfx/freecad/files/freecad-1.1.0-boost_system.patch @@ -0,0 +1,25 @@ +From c17dc17bf3d33d8a084657098ccd51d99b2ee220 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Fri, 10 Apr 2026 20:55:21 +0200 +Subject: boost_system + +header-only since forever + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/cMake/UseLibPack3.cmake b/cMake/UseLibPack3.cmake +index f8871df..0f7ae79 100644 +--- a/cMake/UseLibPack3.cmake ++++ b/cMake/UseLibPack3.cmake +@@ -6,7 +6,7 @@ find_package(Python3 COMPONENTS Interpreter Development REQUIRED) + + # Make sure we are using the shared versions of Boost here: the LibPack includes both + set(Boost_USE_STATIC_LIBS OFF) +-find_package(Boost COMPONENTS filesystem program_options regex system thread date_time REQUIRED PATHS ${FREECAD_LIBPACK_DIR}/lib/cmake NO_DEFAULT_PATH) ++find_package(Boost COMPONENTS filesystem program_options regex thread date_time REQUIRED PATHS ${FREECAD_LIBPACK_DIR}/lib/cmake NO_DEFAULT_PATH) + + set(OCE_DIR ${FREECAD_LIBPACK_DIR}/lib/cmake CACHE PATH "" FORCE) + +-- +2.53.0 + diff --git a/media-gfx/freecad/files/freecad-1.1.1-fix-sketcher-toolbars.patch b/media-gfx/freecad/files/freecad-1.1.1-fix-sketcher-toolbars.patch index 10e0422ef05c..08568943951b 100644 --- a/media-gfx/freecad/files/freecad-1.1.1-fix-sketcher-toolbars.patch +++ b/media-gfx/freecad/files/freecad-1.1.1-fix-sketcher-toolbars.patch @@ -1,8 +1,12 @@ -diff --git a/src/Gui/ToolBarManager.cpp b/src/Gui/ToolBarManager.cpp -index 61232d64bf8e..3a73a0b398bc 100644 +From 4859a133b1a9179bf313fa60dd6e66dc422709b9 Mon Sep 17 00:00:00 2001 +From: ayyaz20003 <81612629+ayyaz20003@users.noreply.github.com> +Date: Sat, 4 Apr 2026 07:28:49 +0500 +Subject: [PATCH] Gui: Fix Sketcher toolbar state not persisting across + workbench switches (#28674) + --- a/src/Gui/ToolBarManager.cpp +++ b/src/Gui/ToolBarManager.cpp -@@ -841,21 +841,8 @@ void ToolBarManager::onTimer() +@@ -844,21 +844,8 @@ void ToolBarManager::onTimer() void ToolBarManager::saveState() const
{
auto ignoreSave = [](QAction* action) {
@@ -26,8 +30,11 @@ index 61232d64bf8e..3a73a0b398bc 100644 };
QList<ToolBar*> toolbars = toolBars();
-diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp -index a5c80f39f7..1fa3a9ba8a 100644 +From 7db3f901fdbe427868c5732d43957298f24e342b Mon Sep 17 00:00:00 2001 +From: theo-vt <theo.veilleux.trinh@proton.me> +Date: Thu, 12 Feb 2026 16:43:44 -0500 +Subject: [PATCH] Fix diapearing sketcher tools + --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -3915,8 +3915,6 @@ void ViewProviderSketch::unsetEdit(int ModNum) diff --git a/media-gfx/freecad/files/freecad-1.1.3-Gentoo-specific-don-t-check-vcs.patch b/media-gfx/freecad/files/freecad-1.1.3-Gentoo-specific-don-t-check-vcs.patch new file mode 100644 index 000000000000..d102daf2aaf0 --- /dev/null +++ b/media-gfx/freecad/files/freecad-1.1.3-Gentoo-specific-don-t-check-vcs.patch @@ -0,0 +1,29 @@ +From dc5131feb7a9140bccf554894220c2101ba1a06b Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Fri, 10 Apr 2026 20:39:31 +0200 +Subject: Gentoo specific don't check vcs + +We know the version. No need to check the source. + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/src/Tools/SubWCRev.py b/src/Tools/SubWCRev.py +index 1875427..c5098ed 100644 +--- a/src/Tools/SubWCRev.py ++++ b/src/Tools/SubWCRev.py +@@ -516,12 +516,6 @@ def main(): + bindir = a + + vcs = [ +- GitControl(), +- DebianGitHub(), +- BazaarControl(), +- Subversion(), +- MercurialControl(), +- DebianChangelog(), + UnknownControl(), + ] + for i in vcs: +-- +2.53.0 + diff --git a/media-gfx/freecad/files/freecad-1.1.3-fastsignals-disconnect.patch b/media-gfx/freecad/files/freecad-1.1.3-fastsignals-disconnect.patch new file mode 100644 index 000000000000..19fc0f345592 --- /dev/null +++ b/media-gfx/freecad/files/freecad-1.1.3-fastsignals-disconnect.patch @@ -0,0 +1,23 @@ +From b9cac43474f6b66175f8f538eee5bc94eba62e74 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Mon, 12 Jan 2026 23:27:53 +0100 +Subject: [PATCH] fastsignals disconnect + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/src/Mod/Cloud/App/AppCloud.cpp b/src/Mod/Cloud/App/AppCloud.cpp +index 87014fccf7..3f616123b3 100644 +--- a/src/Mod/Cloud/App/AppCloud.cpp ++++ b/src/Mod/Cloud/App/AppCloud.cpp +@@ -1553,6 +1553,7 @@ bool Cloud::Module::cloudRestore(const char* BucketName) + string uri;
+ uri = this->URL.getStrValue() + ":" + this->TCPPort.getStrValue() + "/" + string(BucketName);
+ doc->FileName.setValue(uri);
+- doc->signalLinkXsetValue.disconnect(boost::bind(&Cloud::Module::LinkXSetValue, this, _1));
++ //doc->signalLinkXsetValue.disconnect(boost::bind(&Cloud::Module::LinkXSetValue, this, _1));
++ doc->signalLinkXsetValue.disconnect_all_slots();
+ return (true);
+ }
+-- +2.52.0 + diff --git a/media-gfx/freecad/files/freecad-1.1.3-fix-COIN3D_MICRO_VERSION-regex-for-coin-4.0.10.patch b/media-gfx/freecad/files/freecad-1.1.3-fix-COIN3D_MICRO_VERSION-regex-for-coin-4.0.10.patch new file mode 100644 index 000000000000..47c4c1fd4bb3 --- /dev/null +++ b/media-gfx/freecad/files/freecad-1.1.3-fix-COIN3D_MICRO_VERSION-regex-for-coin-4.0.10.patch @@ -0,0 +1,32 @@ +From e3e56059865849c6b1c85161f69183ad872414e3 Mon Sep 17 00:00:00 2001 +From: Christoph Moench-Tegeder <cmt@FreeBSD.org> +Date: Sun, 21 Jun 2026 21:05:46 +0200 +Subject: fix COIN3D_MICRO_VERSION regex for coin 4.0.10 + +In cMake/FreeCAD_Helpers/SetupCoin3D.cmake, the version of Coin3D +we're builing against is extracted from Coin3D's header files via +regexes - but the regex only accepts single digit versions. That +might be fine for COIN_MAJOR_VERSION (currently 4 and increasing +only rarely) and COIN3D_MINOR_VERSION (which is 0 for some years +now), but with the release of Coin3D 4.0.10, we should catch all +digits in COIN_MICRO_VERSION (now at 10), else the build against +the new Coin3D release fails with +: CMake Error at cMake/FreeCAD_Helpers/SetupCoin3D.cmake:79 (message): +: Coin3D version 4.0.1 mismatches Pivy Coin3D 4.0.10. + +diff --git a/cMake/FreeCAD_Helpers/SetupCoin3D.cmake b/cMake/FreeCAD_Helpers/SetupCoin3D.cmake +index a026764540..0a4bd7ffdb 100644 +--- a/cMake/FreeCAD_Helpers/SetupCoin3D.cmake ++++ b/cMake/FreeCAD_Helpers/SetupCoin3D.cmake +@@ -29,7 +29,7 @@ macro(SetupCoin3D) + set(COIN3D_MAJOR_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+COIN_MINOR_VERSION[ \t]+([0-9?])" _coin3d_minor_version_match "${_coin3d_basic_h}") + set(COIN3D_MINOR_VERSION "${CMAKE_MATCH_1}") +- string(REGEX MATCH "define[ \t]+COIN_MICRO_VERSION[ \t]+([0-9?])" _coin3d_micro_version_match "${_coin3d_basic_h}") ++ string(REGEX MATCH "define[ \t]+COIN_MICRO_VERSION[ \t]+([0-9?]+)" _coin3d_micro_version_match "${_coin3d_basic_h}") + set(COIN3D_MICRO_VERSION "${CMAKE_MATCH_1}") + set(COIN3D_VERSION "${COIN3D_MAJOR_VERSION}.${COIN3D_MINOR_VERSION}.${COIN3D_MICRO_VERSION}") + ENDIF () +-- +2.55.0 + diff --git a/media-gfx/freecad/files/freecad-1.1.3-gcc-17-fstream.patch b/media-gfx/freecad/files/freecad-1.1.3-gcc-17-fstream.patch new file mode 100644 index 000000000000..1e06218516f0 --- /dev/null +++ b/media-gfx/freecad/files/freecad-1.1.3-gcc-17-fstream.patch @@ -0,0 +1,34 @@ +From 4bfe8732477fe3b29d8ecca8362cde669fcbdf4b Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx@gmail.com> +Date: Tue, 16 Jun 2026 16:20:33 +0200 +Subject: gcc-17 include fstream + +Signed-off-by: Paul Zander <negril.nx@gmail.com> + +diff --git a/src/3rdParty/salomesmesh/inc/UNV164_Structure.hxx b/src/3rdParty/salomesmesh/inc/UNV164_Structure.hxx +index 2dab980215..95a1d79e6e 100644 +--- a/src/3rdParty/salomesmesh/inc/UNV164_Structure.hxx ++++ b/src/3rdParty/salomesmesh/inc/UNV164_Structure.hxx +@@ -67,6 +67,7 @@ + + #include "SMESH_DriverUNV.hxx" + ++#include <fstream> + #include <string> + + namespace UNV164 +diff --git a/src/3rdParty/salomesmesh/inc/UNV2420_Structure.hxx b/src/3rdParty/salomesmesh/inc/UNV2420_Structure.hxx +index 60dd28afe2..9bea40a4df 100644 +--- a/src/3rdParty/salomesmesh/inc/UNV2420_Structure.hxx ++++ b/src/3rdParty/salomesmesh/inc/UNV2420_Structure.hxx +@@ -78,6 +78,7 @@ + + #include "SMESH_DriverUNV.hxx" + ++#include <fstream> + #include <string> + #include <vector> + +-- +2.54.0 + diff --git a/media-gfx/freecad/files/freecad-1.1.3-skip-unicode-test.patch b/media-gfx/freecad/files/freecad-1.1.3-skip-unicode-test.patch new file mode 100644 index 000000000000..59083f41bd54 --- /dev/null +++ b/media-gfx/freecad/files/freecad-1.1.3-skip-unicode-test.patch @@ -0,0 +1,26 @@ +From 356bedd98ad25d81c7ddff10e282621f52f7d679 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Mon, 10 Aug 2026 14:12:45 +0200 +Subject: skip unicode test + +Mod/Part/TestPartGui.py(111)<class 'SyntaxError'>: + Non-UTF-8 code starting with '\xe9' on line 4, but no encoding declared; + see https://peps.python.org/pep-0263/ for details (<string>, line 4) + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/src/Mod/Part/TestPartGui.py b/src/Mod/Part/TestPartGui.py +index 8d280d2c62..616f185995 100644 +--- a/src/Mod/Part/TestPartGui.py ++++ b/src/Mod/Part/TestPartGui.py +@@ -116,6 +116,7 @@ class PartMirrorGuiTestCases(unittest.TestCase): + return mirrors[0].Label
+
+ def testMirrorLabelWithUnicodeIsNotDoubleEscaped(self):
++ return
+ self.assertEqual("caf\u00e9 (Mirror #1)", self.mirrorBoxWithLabel("caf\u00e9"))
+
+ def testMirrorLabelEscapesQuotesBeforePythonCommand(self):
+-- +2.55.0 + diff --git a/media-gfx/freecad/files/freecad-9999-Gentoo-specific-don-t-check-vcs.patch b/media-gfx/freecad/files/freecad-9999-Gentoo-specific-don-t-check-vcs.patch new file mode 100644 index 000000000000..0280861b5d01 --- /dev/null +++ b/media-gfx/freecad/files/freecad-9999-Gentoo-specific-don-t-check-vcs.patch @@ -0,0 +1,29 @@ +From 6d08ec7f09ab47cc62d0ce20ad7bccd05b53f6cb Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Tue, 15 Sep 2026 14:33:04 +0200 +Subject: Gentoo specific don't check vcs + +We know the version. No need to check the source. + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/src/Tools/SubWCRev.py b/src/Tools/SubWCRev.py +index 45088371fb..0cb03b9a5d 100644 +--- a/src/Tools/SubWCRev.py ++++ b/src/Tools/SubWCRev.py +@@ -516,12 +516,6 @@ def main(): + bindir = a
+
+ vcs = [
+- GitControl(),
+- DebianGitHub(),
+- BazaarControl(),
+- Subversion(),
+- MercurialControl(),
+- DebianChangelog(),
+ UnknownControl(),
+ ]
+ for i in vcs:
+-- +2.55.0 + diff --git a/media-gfx/freecad/files/freecad-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch b/media-gfx/freecad/files/freecad-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch new file mode 100644 index 000000000000..2fb23bb4fdc3 --- /dev/null +++ b/media-gfx/freecad/files/freecad-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch @@ -0,0 +1,42 @@ +From 9e10e873affcadbad27b0b71a7a4bb9bb7644ba4 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx@gmail.com> +Date: Mon, 14 Jul 2025 15:18:26 +0200 +Subject: [PATCH] tests src Qt only build test for BUILD_GUI=ON + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/tests/src/Base/CMakeLists.txt b/tests/src/Base/CMakeLists.txt +index 0bdc34ba5c..850772b5b3 100644 +--- a/tests/src/Base/CMakeLists.txt ++++ b/tests/src/Base/CMakeLists.txt +@@ -46,7 +46,9 @@ add_executable(Base_tests_run + XMLTools.cpp + ) + ++if(BUILD_GUI) + setup_qt_test(InventorBuilder) ++endif() + + target_link_libraries(Base_tests_run PRIVATE + GTest::gmock_main +diff --git a/tests/src/Gui/CMakeLists.txt b/tests/src/Gui/CMakeLists.txt +index bf6b87d0fd..0b186fbf5c 100644 +--- a/tests/src/Gui/CMakeLists.txt ++++ b/tests/src/Gui/CMakeLists.txt +@@ -28,11 +28,13 @@ add_executable(Gui_tests_run + ) + + # Qt tests ++if(BUILD_GUI) + setup_qt_test(ObjectSelection) + setup_qt_test(TranslatorLocale) + setup_qt_test(InputField) + setup_qt_test(QuantitySpinBox) + setup_qt_test(NumericLocaleConsumers) ++endif() + + target_link_libraries(Gui_tests_run PRIVATE + GTest::gmock_main +-- +2.50.1 + diff --git a/media-gfx/freecad/freecad-1.1.1.ebuild b/media-gfx/freecad/freecad-1.1.1.ebuild index ac155d887b34..616b244785df 100644 --- a/media-gfx/freecad/freecad-1.1.1.ebuild +++ b/media-gfx/freecad/freecad-1.1.1.ebuild @@ -136,10 +136,10 @@ BDEPEND=" " PATCHES=( - "${FILESDIR}"/${P}-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch - "${FILESDIR}"/${P}-Gentoo-specific-don-t-check-vcs.patch - "${FILESDIR}"/${P}-fix-sketcher-toolbars.patch - "${FILESDIR}"/${P}-qt-6.11.patch + "${FILESDIR}"/${PN}-1.1.1-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch + "${FILESDIR}"/${PN}-1.1.1-Gentoo-specific-don-t-check-vcs.patch + "${FILESDIR}"/${PN}-1.1.1-fix-sketcher-toolbars.patch + "${FILESDIR}"/${PN}-1.1.1-qt-6.11.patch "${FILESDIR}"/${PN}-1.0.2-pybind11-latent-slots-macro-conflicts-with-Qt.patch # fixed in pybind-3.0.1 ) diff --git a/media-gfx/freecad/freecad-1.1.3.ebuild b/media-gfx/freecad/freecad-1.1.3.ebuild new file mode 100644 index 000000000000..8c642f206160 --- /dev/null +++ b/media-gfx/freecad/freecad-1.1.3.ebuild @@ -0,0 +1,683 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) + +# https://github.com/FreeCAD/FreeCAD/issues/19066 +# The added asserts break on mem leaks, so tests fail. +# PYTHON_REQ_USE="-debug" + +# pyNastran missing + +inherit branding check-reqs cmake cuda edo flag-o-matic optfeature python-single-r1 toolchain-funcs xdg virtualx + +DESCRIPTION="Qt based Computer Aided Design application" +HOMEPAGE="https://www.freecad.org/ https://github.com/FreeCAD/FreeCAD" + +MY_PN=FreeCAD + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git" + EGIT_SUBMODULES=( '-*' ) +else + SRC_URI=" + https://github.com/${MY_PN}/${MY_PN}/releases/download/${PV}/freecad_source_${PV}.tar.gz + " + KEYWORDS="~amd64" +fi + +# code is licensed LGPL-2 +# examples are licensed CC-BY-SA (without note of specific version) +LICENSE="LGPL-2 CC-BY-SA-4.0" +SLOT="0" +IUSE="debug designer +gui netgen pcl +smesh spacenav tbb test X" +# Modules are found in src/Mod/ and their options defined in: +# cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake +# To get their dependencies: +# 'grep REQUIRES_MODS cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake' +IUSE+=" addonmgr assembly +bim cam fem idf inspection +mesh openscad points reverse robot surface +techdraw" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + bim? ( mesh ) + cam? ( mesh ) + gui? ( bim ) + designer? ( gui ) + fem? ( smesh ) + inspection? ( points ) + mesh? ( smesh ) + openscad? ( mesh ) + reverse? ( mesh points ) + test? ( techdraw ) +" +# Draft Workbench needs BIM + +RESTRICT="!test? ( test )" + +# if opencascade[tbb], we link to tbb +# if vtk[cuda], we use cuda +RDEPEND=" + ${PYTHON_DEPS} + dev-cpp/yaml-cpp:= + dev-libs/boost:= + dev-libs/libfmt:= + dev-libs/xerces-c:=[icu] + dev-qt/qtbase:6[concurrent,network,xml] + media-libs/freetype + sci-libs/opencascade:=[json,tbb?] + tbb? ( + dev-cpp/tbb:= + ) + virtual/zlib:= + $(python_gen_cond_dep ' + dev-python/lark[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + >=dev-python/pybind11-3.0.1[${PYTHON_USEDEP}] + dev-python/pycxx[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + ') + assembly? ( >=sci-libs/ondselsolver-1.0.1_p20260211 ) + fem? ( + sci-libs/vtk:= + $(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]') + ) + gui? ( + >=media-libs/coin-4.0.0 + dev-qt/qtbase:6[gui,opengl,widgets] + dev-qt/qtsvg:6 + dev-qt/qttools:6[designer?,widgets] + $(python_gen_cond_dep ' + dev-python/matplotlib[${PYTHON_USEDEP}] + >=dev-python/pivy-0.6.5[${PYTHON_USEDEP}] + dev-python/pyside:6=[uitools(-),gui,svg,${PYTHON_USEDEP}] + ' ) + virtual/opengl + spacenav? ( dev-libs/libspnav[X?] ) + ) + netgen? ( <media-gfx/netgen-6.2.2605[opencascade] ) + openscad? ( $(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]') ) + pcl? ( sci-libs/pcl:= ) + smesh? ( + >=sci-libs/med-4.0.0-r1 + sci-libs/vtk:= + ) +" +# TODO why? +RDEPEND+=" + dev-libs/icu:= +" +DEPEND="${RDEPEND} + dev-cpp/eigen:= + dev-cpp/ms-gsl + test? ( + $(python_gen_impl_dep '-debug') + $(python_gen_cond_dep ' + sci-libs/vtk[python,${PYTHON_SINGLE_USEDEP}] + ' ) + fem? ( + sci-libs/calculix-ccx + $(python_gen_cond_dep ' + sci-libs/gmsh[${PYTHON_USEDEP}] + ' ) + ) + gui? ( + $(python_gen_cond_dep ' + dev-python/pyside:6[tools(-),${PYTHON_USEDEP}] + ' ) + ) + dev-cpp/gtest + ) +" +BDEPEND=" + dev-lang/swig + test? ( + gui? ( + $(python_gen_cond_dep ' + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] + ' ) + ) + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-1.1.3-Gentoo-specific-don-t-check-vcs.patch" + "${FILESDIR}/${PN}-1.1.1-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch" + "${FILESDIR}/${PN}-1.1.3-fastsignals-disconnect.patch" + "${FILESDIR}/${PN}-1.1.1-fix-sketcher-toolbars.patch" + "${FILESDIR}/${PN}-1.1.0-boost_system.patch" + "${FILESDIR}/${PN}-1.1.3-fix-COIN3D_MICRO_VERSION-regex-for-coin-4.0.10.patch" + "${FILESDIR}/${PN}-1.1.3-gcc-17-fstream.patch" + "${FILESDIR}/${PN}-1.1.3-skip-unicode-test.patch" +) + +DOCS=( CODE_OF_CONDUCT.md README.md ) + +CHECKREQS_DISK_BUILD="2G" + +cuda_get_host_compiler() { + if [[ -v NVCC_CCBIN ]]; then + echo "${NVCC_CCBIN}" + return + fi + + if [[ -v CUDAHOSTCXX ]]; then + echo "${CUDAHOSTCXX}" + return + fi + + if ! command -v nvcc >/dev/null; then + eerror "Could not find nvcc. Is the CUDA SDK installed?" + die "nvcc not found" + fi + + einfo "Trying to find working CUDA host compiler" + + if ! tc-is-gcc && ! tc-is-clang; then + die "$(tc-get-compiler-type) compiler is not supported" + fi + + # compiler with CHOST prefix + # x86_64-pc-linux-gnu-g++ + local compiler + + # gcc or clang + local compiler_type + + # major version of the current compiler. 15 + local compiler_version + + # cat/pkg of the compiler + # sys-devel/gcc, llvm-core/clang + local package + + # QPN of the package we are checking + # sys-devel/gcc, <sys-devel/gcc-15 + local package_version + + # system compiler e.g. tc-getCXX plus version + # used to skip rechecking, as we check NVCC_CCBIN first + # x86_64-pc-linux-gnu-g++-15 + local NVCC_CCBIN_default + + compiler_type="$(tc-get-compiler-type)" + compiler_version="$("${compiler_type}-major-version")" + + # try the default compiler first + NVCC_CCBIN="$(tc-getCXX)" + NVCC_CCBIN_default="${NVCC_CCBIN}-${compiler_version}" + + compiler="${NVCC_CCBIN/%-${compiler_version}}" + + # store the package so we can re-use it later + if tc-is-gcc; then + package="sys-devel/${compiler_type}" + elif tc-is-clang; then + package="llvm-core/${compiler_type}" + else + die "$(tc-get-compiler-type) compiler is not supported" + fi + + package_version="${package}" + + ebegin "testing ${NVCC_CCBIN_default} (default)" + + while ! \ + nvcc "${NVCCFLAGS:-}" \ + -ccbin "${NVCC_CCBIN}" \ + - \ + -x cu \ + <<<"int main(){}" \ + &>> "${T:?}/cuda_get_host_compiler.log" ; + do + eend 1 + + while true; do + # prepare next version + local package_version_next + package_version_next="$(best_version "${package_version}")" + + if [[ -z "${package_version_next}" ]]; then + eerror "Compiler lookup failed. Nothing installed matches: ${package_version}." + eerror "You can use NVCC_CCBIN to specify the exact compiler to use." + eerror "Check ${T}/cuda_get_host_compiler.log for details." + die "Could not find a supported version of ${compiler}. Did not find \"${package_version}\". NVCC_CCBIN is unset." + fi + + package_version="<${package_version_next}" + + NVCC_CCBIN="${compiler}-$(ver_cut 1 "${package_version/#<${package}-/}")" + + # skip the next version equals the already checked system default + [[ "${NVCC_CCBIN}" != "${NVCC_CCBIN_default}" ]] && break + done + ebegin "testing ${NVCC_CCBIN}" + done + eend $? + + echo "${NVCC_CCBIN}" + export NVCC_CCBIN +} + +pkg_setup() { + check-reqs_pkg_setup + python-single-r1_pkg_setup +} + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # only fetch/unpack if used + if use addonmgr; then + EGIT_SUBMODULES+=( 'src/Mod/AddonManager' ) + fi + + git-r3_src_unpack + else + # release archive does not contain a top-level directory... + mkdir -p "${S}" || die + cd "${S}" || die + unpack ${A} + fi +} + +src_prepare() { + sed \ + -e '/include( ccache )/s/^/# /g' \ + -e '/include( ClangFormat )/s/^/# /g' \ + -i src/3rdParty/libE57Format/CMakeLists.txt || die + + # TODO + sed -e '/TestExternalFacePreselection/d' -i src/Mod/Sketcher/TestSketcherGui.py || die + + # removed bundled pycxx + if [[ ${PV} != *9999* ]]; then + rm -r src/3rdParty/PyCXX || die "remove bundled pycxx" + fi + + cmake_src_prepare +} + +src_configure() { + # -Werror=odr, -Werror=lto-type-mismatch + # https://bugs.gentoo.org/875221 + # https://github.com/FreeCAD/FreeCAD/issues/13173 + append-flags -fno-strict-aliasing + filter-lto + + # Fix building tests + if tc-ld-is-bfd; then # 940524 + append-ldflags -Wl,--copy-dt-needed-entries + fi + + local mycmakeargs=( + "$(cmake_use_find_package "spacenav" "Spnav")" + + -DPYCXX_INCLUDE_DIRS="${ESYSROOT}/usr/include/${PYTHON_SINGLE_TARGET/_/.}" + -DPYCXX_SOURCE_DIR="${ESYSROOT}/usr/share/${PYTHON_SINGLE_TARGET/_/.}/CXX" + + -DBUILD_DESIGNER_PLUGIN=$(usex designer) + -DBUILD_FORCE_DIRECTORY=ON # force building in a dedicated directory + -DBUILD_GUI=$(usex gui) + -DBUILD_SMESH=$(usex smesh) + -DBUILD_VR=OFF + -DBUILD_WITH_CONDA=OFF + + # Modules + -DBUILD_ADDONMGR=$(usex addonmgr) + -DBUILD_ASSEMBLY=$(usex assembly) + -DBUILD_BIM=$(usex bim) + -DBUILD_CAM=$(usex cam) + -DBUILD_DRAFT=ON + # see below for DRAWING + -DBUILD_FEM=$(usex fem) + -DBUILD_FEM_NETGEN=$(usex fem $(usex netgen)) + -DBUILD_FLAT_MESH=$(usex mesh) # a submodule of MeshPart + -DBUILD_HELP=ON + -DBUILD_IDF=$(usex idf) + -DBUILD_IMPORT=ON # import module for various file formats + -DBUILD_INSPECTION=$(usex inspection) + -DBUILD_JTREADER=OFF # uses an old proprietary library + -DBUILD_MATERIAL=ON + -DBUILD_MATERIAL_EXTERNAL=ON + -DBUILD_MEASURE=ON + -DBUILD_MESH=$(usex mesh) + -DBUILD_MESH_PART=$(usex mesh) + -DBUILD_OPENSCAD=$(usex openscad) + -DBUILD_PART=ON + -DBUILD_PART_DESIGN=ON + -DBUILD_PLOT=ON + -DBUILD_POINTS=$(usex points) + -DBUILD_REVERSEENGINEERING=$(usex reverse) + -DBUILD_ROBOT=$(usex robot) + # -DBUILD_SANDBOX=OFF + -DBUILD_SHOW=$(usex gui) + -DBUILD_SKETCHER=ON # needed by draft workspace + -DBUILD_SPREADSHEET=ON + -DBUILD_START=ON + -DBUILD_SURFACE=$(usex surface) + -DBUILD_TECHDRAW=$(usex techdraw) + -DBUILD_TEST="$(usex test)" # always build test workbench for run-time testing + -DBUILD_TUX=$(usex gui) + -DBUILD_WEB=ON # needed by start workspace + + # do not set these or tests fail + # -DCMAKE_INSTALL_DATADIR=share/${PN}/data + # -DCMAKE_INSTALL_DOCDIR=share/doc/${PF} + # -DCMAKE_INSTALL_INCLUDEDIR=include/${PN} + # -DCMAKE_INSTALL_PREFIX=/usr/$(get_libdir)/${PN} + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/$(get_libdir)/${PN}" + + -DFREECAD_BUILD_DEBIAN=OFF + + -DE57_ENABLE_DIAGNOSTIC_OUTPUT="no" + -DE57_VALIDATION_LEVEL=0 + + # -DFREECAD_PARALLEL_COMPILE_JOBS="" + # -DFREECAD_PARALLEL_LINK_JOBS="" + + -DFREECAD_USE_3DCONNEXION_LEGACY="no" + -DFREECAD_USE_CCACHE="no" # Do not use CCache + + -DFREECAD_USE_EXTERNAL_CLIPPER2="yes" + -DFREECAD_USE_EXTERNAL_COIN_PIVY="yes" + -DFREECAD_USE_EXTERNAL_E57FORMAT="no" + -DFREECAD_USE_EXTERNAL_GTEST="$(usex test)" + -DFREECAD_USE_EXTERNAL_JSON="yes" + -DFREECAD_USE_EXTERNAL_KDL=OFF # https://github.com/FreeCAD/FreeCAD/commit/9f98866 + -DFREECAD_USE_EXTERNAL_KDTREE=OFF + -DFREECAD_USE_EXTERNAL_ONDSELSOLVER=$(usex assembly) + -DFREECAD_USE_EXTERNAL_PYCXX="no" + -DFREECAD_USE_EXTERNAL_SMESH=OFF # no package in Gentoo + -DFREECAD_USE_EXTERNAL_ZIPIOS=OFF # doesn't work yet, also no package in Gentoo tree + + -DFREECAD_USE_FREETYPE=ON + -Dfreetype_DIR="${ESYSROOT}/usr" + -DFREECAD_USE_OCC_VARIANT:STRING="Official Version" + -DFREECAD_USE_PCL=$(usex pcl) + # -DFREECAD_USE_PYBIND11=ON + -DFREECAD_USE_PYSIDE="yes" + -DFREECAD_USE_QT_DIALOGS="yes" + # -DFREECAD_USE_QT_FILEDIALOG=ON + -DFREECAD_USE_SHIBOKEN="yes" + + # install python modules to site-packages' dir. True only for the main package, + # sub-packages will still be installed inside /usr/lib64/freecad + -DINSTALL_TO_SITEPACKAGES=ON + + # Use the version of pyside[tools] that matches the selected python version + -DPYTHON_CONFIG_SUFFIX="-${EPYTHON}" + # -DPython3_EXECUTABLE=${EPYTHON} + ) + + if [[ ${PV} == *9999* ]]; then + mycmakeargs+=( + -DENABLE_DEVELOPER_TESTS="$(usex test)" + + -DPACKAGE_WCREF="%{release} (Git)" + -DPACKAGE_WCURL="git://github.com/FreeCAD/FreeCAD.git main" + ) + else + mycmakeargs+=( + -DENABLE_DEVELOPER_TESTS=OFF + + -DPACKAGE_WCREF="${PVR} (${BRANDING_OS_NAME})" + -DPACKAGE_WCURL="git://github.com/FreeCAD/FreeCAD.git ${PV}" + ) + fi + + if use debug; then + # BUILD_SANDBOX currently broken, see + # https://forum.freecadweb.org/viewtopic.php?f=4&t=36071&start=30#p504595 + mycmakeargs+=( + -DBUILD_SANDBOX=OFF + -DBUILD_TEMPLATE=ON + ) + else + mycmakeargs+=( + -DBUILD_SANDBOX=OFF + -DBUILD_TEMPLATE=OFF + ) + fi + + # fem and smesh depend on sci-lib/vtk, which looks up a cuda compiler when build with USE=cuda. + # We therefore need to set the correct CUDAHOSTCXX and setup the sandbox. + if use fem || use smesh; then + if has_version "sci-libs/vtk[cuda]" ; then + cuda_add_sandbox + addpredict "/dev/char/" + export CUDAHOSTCXX="$(cuda_get_host_compiler)" + fi + fi + + if use gui; then + mycmakeargs+=( + -DFREECAD_QT_MAJOR_VERSION=6 + -DFREECAD_QT_VERSION=6 + -DQT_DEFAULT_MAJOR_VERSION=6 + -DBUILD_QT5=OFF + # Drawing module unmaintained and not ported to qt6 + -DBUILD_DRAWING=OFF + ) + fi + + cmake_src_configure +} + +# We use the FreeCADCmd binary instead of the FreeCAD binary here +# for two reasons: +# 1. It works out of the box with USE=-gui as well, not needing a guard +# 2. We don't need virtualx.eclass and its dependencies +src_test() { + # Fails because translated names are used otherwise + local -x LANG="en_US.UTF-8" + + # The environment variables are needed, so that FreeCAD knows + # where to save its temporary files, and where to look and write its + # configuration. Without those, there is a sandbox violation, when it + # tries to create /var/lib/portage/home/.FreeCAD directory. + local -x FREECAD_USER_HOME="${T}/home" + local -x FREECAD_USER_DATA="${T}/data" + local -x FREECAD_USER_TEMP="${T}/temp" + + mkdir -p "${FREECAD_USER_HOME}" "${FREECAD_USER_DATA}" "${FREECAD_USER_TEMP}" || die + + cd "${BUILD_DIR}" || die + + if use bim; then + # No module named 'ifcopenshell' #940465 + rm "Mod/BIM/nativeifc/ifc_performance_test.py" || die + fi + + if use cam; then + # we need the spaces to match the python indent + sed -e '/test46/a \ return' -i "Mod/CAM/CAMTests/TestPathOpUtil.py" || die + sed -e '/test47/a \ return' -i "Mod/CAM/CAMTests/TestPathOpUtil.py" || die + fi + + if ! use openscad ; then + EPYTEST_IGNORE+=( + "Mod/OpenSCAD/OpenSCADTest/app/test_importCSG.py" + "Mod/OpenSCAD/OpenSCADTest/gui/test_dummy.py" + ) + fi + + # # TODO coin? pivy? + # sed \ + # -e '/self.assertTrue(pc.getTriangleCount/i \ print(pc.getTriangleCount())' \ + # -e '/self.assertTrue(pc.getTriangleCount/s/self/# /' \ + # -i Mod/Mesh/MeshTestsApp.py || die + + local -x EPYTEST_IGNORE=( + "Mod/BIM/nativeifc/ifc_performance_test.py" + ) + + local CMAKE_SKIP_TESTS=( + "^TestLineFormat.setQColorKeepsOpaqueColorsOpaque$" + "^TestLineFormat.setQColorPreservesAlphaValue$" + ) + + local failed=() + + run_freecad() { + if [[ $# -ne 1 && $# -ne 2 ]]; then + eerror "$0: usage <cmd> [<runner>]" + die "$0: usage <cmd> <runner>" + fi + + local cmd="${1}" + local run="${2}" + + if use debug; then + nonfatal \ + ${run} \ + edo \ + "${BUILD_DIR}/bin/${cmd}" \ + --set-config AppHomePath="${BUILD_DIR}/" \ + --dump-config &> "${T}/${cmd}_config.log" + fi + + if \ + ! nonfatal \ + ${run} \ + edo \ + "${BUILD_DIR}/bin/${cmd}" \ + --run-test 0 \ + --set-config AppHomePath="${BUILD_DIR}/" \ + --log-file "${T}/${cmd}.log" + then + ret=$? + eerror "${cmd} failed ${ret}" + die "${cmd} failed ${ret}" + failed+=( "${cmd}" ) + fi + } + + if ! use gui; then + run_freecad "FreeCADCmd" + else + run="virtx" + + addwrite "/dev/dri/renderD128" + addwrite "/dev/dri/card0" + + [[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf" + + if [[ -c "/dev/nvidiactl" ]]; then + addwrite "/dev/nvidiactl" + addpredict "/dev/char/" + [[ -c "/dev/nvidia-uvm" ]] && addwrite "/dev/nvidia-uvm" + [[ -c "/dev/nvidia-uvm-tools" ]] && addwrite "/dev/nvidia-uvm-tools" + [[ -c "/dev/nvidia0" ]] && addwrite "/dev/nvidia0" + fi + + # run_freecad "FreeCAD" virtx + + # this runs only the gui tests + if \ + ! nonfatal \ + virtx \ + ${PYTHON} "${S}/.github/scripts/run_gui_tests.py" "${BUILD_DIR}" + then + ret=$? + eerror "$run_gui_tests.py failed ${ret}" + die "run_gui_tests.py failed ${ret}" + failed+=( "run_gui_tests.py" ) + fi + fi + + if [[ ${PV} == *9999* ]]; then + local myctestargs=( + # for YamlParameterSourceTest + -j1 + ) + if ! nonfatal \ + ${run} \ + cmake_src_test + then + ret=$? + eerror "cmake_src_test failed ${ret}" + die "cmake_src_test failed ${ret}" + failed+=( "cmake_src_test" ) + fi + fi + + if [[ "${#failed[@]}" -gt 0 ]]; then + eerror "Tests ${failed[*]} failed" + # Tests _will_ fail with USE=debug as the reference values change + # We want test failures to be fatal for keyworded versions + if ! use debug || [[ ${PV} != *9999* ]]; then + die "${failed[@]}" + fi + fi +} + +src_install() { + cmake_src_install + + if use gui; then + newbin - FreeCAD <<- _EOF_ + #!/usr/bin/env sh + # https://github.com/coin3d/coin/issues/451 + : "\${QT_QPA_PLATFORM:=xcb}" + export QT_QPA_PLATFORM + exec ${EPREFIX}/usr/$(get_libdir)/${PN}/bin/FreeCAD "\${@}" + _EOF_ + fi + dosym -r "/usr/$(get_libdir)/${PN}/bin/FreeCADCmd" "/usr/bin/FreeCADCmd" + + if [[ -f src/Tools/freecad-thumbnailer ]]; then + dobin src/Tools/freecad-thumbnailer + else + dosym -r "/usr/$(get_libdir)/${PN}/bin/freecad-thumbnailer" "/usr/bin/freecad-thumbnailer" + fi + + for dir in share/{applications,icons,metainfo,mime,pixmaps,thumbnailers}; do + mv "${ED}/usr/$(get_libdir)/${PN}/${dir}" "${ED}/usr/share/" || die "mv failed" + done + + rm -r "${ED}/usr/$(get_libdir)/${PN}/include/E57Format" || die "failed to drop unneeded include directory E57Format" + rmdir "${ED}/usr/$(get_libdir)/${PN}/include/" || die "failed to drop unneeded include directory" + + python_optimize "${ED}/usr/share/${PN}/data/Mod/Start/" "${ED}/usr/$(get_libdir)/${PN}/"{Ext,Mod}/ + # compile main package in python site-packages as well + python_optimize +} + +pkg_postinst() { + xdg_pkg_postinst + + einfo "" + einfo "You can load a lot of additional workbenches using the integrated AddonManager." + einfo "" + einfo "There are a lot of additional tools, for which FreeCAD has builtin support." + einfo "Some of them are available in Gentoo." + einfo "Take a look at:" + einfo " https://wiki.freecad.org/Installing_additional_components" + einfo "" + + optfeature_header "External programs used by FreeCAD" + optfeature "dependency graphs" media-gfx/graphviz + optfeature "importing and exporting 2D AutoCAD DWG files" media-gfx/libredwg + optfeature "importing OpenSCAD files, Mesh booleans" media-gfx/openscad + if use bim; then + optfeature "working with COLLADA documents" dev-python/pycollada + fi + if use fem || use mesh; then + optfeature "mesh generation" sci-libs/gmsh + optfeature "mesh solver" sci-libs/calculix-ccx + fi + + if use python_single_target_python3_13; then + einfo "${PN} is reported to suffer from memory leaks." + einfo "This can cause to program abortions with python-3.13" + einfo "Fall back to python-3.12 if that happens." + einfo "See https://github.com/FreeCAD/FreeCAD/issues/19066 for details." + fi +} + +pkg_postrm() { + xdg_pkg_postrm +} diff --git a/media-gfx/freecad/freecad-9999.ebuild b/media-gfx/freecad/freecad-9999.ebuild index d3f405695116..df0c083c9215 100644 --- a/media-gfx/freecad/freecad-9999.ebuild +++ b/media-gfx/freecad/freecad-9999.ebuild @@ -9,35 +9,31 @@ PYTHON_COMPAT=( python3_{12..14} ) # The added asserts break on mem leaks, so tests fail. # PYTHON_REQ_USE="-debug" -inherit check-reqs cmake cuda edo flag-o-matic optfeature python-single-r1 qt-utils toolchain-funcs xdg virtualx branding +# pyNastran missing + +inherit branding check-reqs cmake cuda edo flag-o-matic optfeature python-single-r1 toolchain-funcs xdg virtualx DESCRIPTION="Qt based Computer Aided Design application" HOMEPAGE="https://www.freecad.org/ https://github.com/FreeCAD/FreeCAD" -ADDON_MANAGER_COMMIT="937b6877239dc78ef59eeefe8099e5f14243eda1" MY_PN=FreeCAD if [[ ${PV} == *9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git" - EGIT_SUBMODULES=( 'src/Mod/AddonManager' ) - S="${WORKDIR}/freecad-${PV}" + EGIT_SUBMODULES=( '-*' ) else - SRC_URI=" - https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz - https://github.com/FreeCAD/AddonManager/archive/${ADDON_MANAGER_COMMIT}.tar.gz -> AddonManager.tar.gz + https://github.com/${MY_PN}/${MY_PN}/releases/download/${PV}/freecad_source_${PV}.tar.gz " - KEYWORDS="~amd64" - S="${WORKDIR}/FreeCAD-${PV}" fi # code is licensed LGPL-2 # examples are licensed CC-BY-SA (without note of specific version) LICENSE="LGPL-2 CC-BY-SA-4.0" SLOT="0" -IUSE="debug designer +gui netgen pcl +smesh spacenav test X" +IUSE="debug designer +gui netgen pcl +smesh spacenav tbb test X" # Modules are found in src/Mod/ and their options defined in: # cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake # To get their dependencies: @@ -65,19 +61,21 @@ RESTRICT="!test? ( test )" # if vtk[cuda], we use cuda RDEPEND=" ${PYTHON_DEPS} - dev-cpp/tbb:= dev-cpp/yaml-cpp:= dev-libs/boost:= dev-libs/libfmt:= dev-libs/xerces-c:=[icu] dev-qt/qtbase:6[concurrent,network,xml] media-libs/freetype - sci-libs/opencascade:=[json] + sci-libs/opencascade:=[json,tbb?] + tbb? ( + dev-cpp/tbb:= + ) virtual/zlib:= $(python_gen_cond_dep ' dev-python/lark[${PYTHON_USEDEP}] dev-python/numpy[${PYTHON_USEDEP}] - dev-python/pybind11[${PYTHON_USEDEP}] + >=dev-python/pybind11-3.0.1[${PYTHON_USEDEP}] dev-python/pycxx[${PYTHON_USEDEP}] dev-python/pyyaml[${PYTHON_USEDEP}] ') @@ -94,12 +92,12 @@ RDEPEND=" $(python_gen_cond_dep ' dev-python/matplotlib[${PYTHON_USEDEP}] >=dev-python/pivy-0.6.5[${PYTHON_USEDEP}] - >=dev-python/pyside-6.10.1-r5:6=[uitools(-),gui,svg,${PYTHON_USEDEP}] + dev-python/pyside:6=[uitools(-),gui,svg,${PYTHON_USEDEP}] ' ) virtual/opengl spacenav? ( dev-libs/libspnav[X?] ) ) - netgen? ( media-gfx/netgen[opencascade] ) + netgen? ( <media-gfx/netgen-6.2.2605[opencascade] ) openscad? ( $(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]') ) pcl? ( sci-libs/pcl:= ) smesh? ( @@ -107,15 +105,24 @@ RDEPEND=" sci-libs/vtk:= ) " - +# TODO why? +RDEPEND+=" + dev-libs/icu:= +" DEPEND="${RDEPEND} - <dev-cpp/eigen-5:= + dev-cpp/eigen:= dev-cpp/ms-gsl test? ( $(python_gen_impl_dep '-debug') $(python_gen_cond_dep ' sci-libs/vtk[python,${PYTHON_SINGLE_USEDEP}] ' ) + fem? ( + sci-libs/calculix-ccx + $(python_gen_cond_dep ' + sci-libs/gmsh[${PYTHON_USEDEP}] + ' ) + ) gui? ( $(python_gen_cond_dep ' dev-python/pyside:6[tools(-),${PYTHON_USEDEP}] @@ -137,9 +144,11 @@ BDEPEND=" " PATCHES=( - "${FILESDIR}"/${PN}-1.1.1-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch - "${FILESDIR}"/${PN}-1.1.1-Gentoo-specific-don-t-check-vcs.patch - "${FILESDIR}/${PN}-1.0.2-pybind11-latent-slots-macro-conflicts-with-Qt.patch" # fixed in pybind-3.0.1 + "${FILESDIR}/${PN}-9999-Gentoo-specific-don-t-check-vcs.patch" + "${FILESDIR}/${PN}-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch" + "${FILESDIR}/${PN}-1.1.0-boost_system.patch" + "${FILESDIR}/${PN}-1.1.3-gcc-17-fstream.patch" + "${FILESDIR}/${PN}-1.1.3-skip-unicode-test.patch" ) DOCS=( CODE_OF_CONDUCT.md README.md ) @@ -255,12 +264,34 @@ pkg_setup() { python-single-r1_pkg_setup } +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # only fetch/unpack if used + if use addonmgr; then + EGIT_SUBMODULES+=( 'src/Mod/AddonManager' ) + fi + + git-r3_src_unpack + else + # release archive does not contain a top-level directory... + mkdir -p "${S}" || die + cd "${S}" || die + unpack ${A} + fi +} + src_prepare() { - if [[ ${PV} != *9999* ]]; then - rmdir "${WORKDIR}/FreeCAD-${PV}/src/Mod/AddonManager" || die + sed \ + -e '/include( ccache )/s/^/# /g' \ + -e '/include( ClangFormat )/s/^/# /g' \ + -i src/3rdParty/libE57Format/CMakeLists.txt || die - mv "${WORKDIR}"/AddonManager-${ADDON_MANAGER_COMMIT} \ - "${S}"/src/Mod/AddonManager || die + # TODO + sed -e '/TestExternalFacePreselection/d' -i src/Mod/Sketcher/TestSketcherGui.py || die + + # removed bundled pycxx + if [[ ${PV} != *9999* ]]; then + rm -r src/3rdParty/PyCXX || die "remove bundled pycxx" fi cmake_src_prepare @@ -279,12 +310,7 @@ src_configure() { fi local mycmakeargs=( - -DFREECAD_USE_CCACHE="no" # Do not use CCache - - -DCMAKE_POLICY_DEFAULT_CMP0144="OLD" # FLANN_ROOT - -DCMAKE_POLICY_DEFAULT_CMP0167="OLD" # FindBoost - -DCMAKE_POLICY_DEFAULT_CMP0175="OLD" # add_custom_command - -DCMAKE_POLICY_DEFAULT_CMP0153="OLD" # exec_program + "$(cmake_use_find_package "spacenav" "Spnav")" -DPYCXX_INCLUDE_DIRS="${ESYSROOT}/usr/include/${PYTHON_SINGLE_TARGET/_/.}" -DPYCXX_SOURCE_DIR="${ESYSROOT}/usr/share/${PYTHON_SINGLE_TARGET/_/.}/CXX" @@ -343,18 +369,36 @@ src_configure() { -DFREECAD_BUILD_DEBIAN=OFF + -DE57_ENABLE_DIAGNOSTIC_OUTPUT="no" + -DE57_VALIDATION_LEVEL=0 + + # -DFREECAD_PARALLEL_COMPILE_JOBS="" + # -DFREECAD_PARALLEL_LINK_JOBS="" + + -DFREECAD_USE_3DCONNEXION_LEGACY="no" + -DFREECAD_USE_CCACHE="no" # Do not use CCache + + -DFREECAD_USE_EXTERNAL_CLIPPER2="yes" + -DFREECAD_USE_EXTERNAL_COIN_PIVY="yes" -DFREECAD_USE_EXTERNAL_E57FORMAT="no" -DFREECAD_USE_EXTERNAL_GTEST="$(usex test)" + -DFREECAD_USE_EXTERNAL_JSON="yes" + -DFREECAD_USE_EXTERNAL_KDL=OFF # https://github.com/FreeCAD/FreeCAD/commit/9f98866 + -DFREECAD_USE_EXTERNAL_KDTREE=OFF -DFREECAD_USE_EXTERNAL_ONDSELSOLVER=$(usex assembly) + -DFREECAD_USE_EXTERNAL_PYCXX="no" -DFREECAD_USE_EXTERNAL_SMESH=OFF # no package in Gentoo -DFREECAD_USE_EXTERNAL_ZIPIOS=OFF # doesn't work yet, also no package in Gentoo tree - -DFREECAD_USE_EXTERNAL_FMT="yes" - -DFREECAD_USE_EXTERNAL_KDL=OFF # https://github.com/FreeCAD/FreeCAD/commit/9f98866 + -DFREECAD_USE_FREETYPE=ON + -Dfreetype_DIR="${ESYSROOT}/usr" -DFREECAD_USE_OCC_VARIANT:STRING="Official Version" -DFREECAD_USE_PCL=$(usex pcl) - -DFREECAD_USE_PYBIND11=ON - -DFREECAD_USE_QT_FILEDIALOG=ON + # -DFREECAD_USE_PYBIND11=ON + -DFREECAD_USE_PYSIDE="yes" + -DFREECAD_USE_QT_DIALOGS="yes" + # -DFREECAD_USE_QT_FILEDIALOG=ON + -DFREECAD_USE_SHIBOKEN="yes" # install python modules to site-packages' dir. True only for the main package, # sub-packages will still be installed inside /usr/lib64/freecad @@ -410,8 +454,6 @@ src_configure() { -DFREECAD_QT_MAJOR_VERSION=6 -DFREECAD_QT_VERSION=6 -DQT_DEFAULT_MAJOR_VERSION=6 - -DQt6Core_MOC_EXECUTABLE="$(qt_get_broot_binary 6 moc)" - -DQt6Core_RCC_EXECUTABLE="$(qt_get_broot_binary 6 rcc)" -DBUILD_QT5=OFF # Drawing module unmaintained and not ported to qt6 -DBUILD_DRAWING=OFF @@ -425,18 +467,25 @@ src_configure() { # for two reasons: # 1. It works out of the box with USE=-gui as well, not needing a guard # 2. We don't need virtualx.eclass and its dependencies -# The environment variables are needed, so that FreeCAD knows -# where to save its temporary files, and where to look and write its -# configuration. Without those, there is a sandbox violation, when it -# tries to create /var/lib/portage/home/.FreeCAD directory. src_test() { - cd "${BUILD_DIR}" || die + # Fails because translated names are used otherwise + local -x LANG="en_US.UTF-8" - [[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf" + # The environment variables are needed, so that FreeCAD knows + # where to save its temporary files, and where to look and write its + # configuration. Without those, there is a sandbox violation, when it + # tries to create /var/lib/portage/home/.FreeCAD directory. + local -x FREECAD_USER_HOME="${T}/home" + local -x FREECAD_USER_DATA="${T}/data" + local -x FREECAD_USER_TEMP="${T}/temp" + + mkdir -p "${FREECAD_USER_HOME}" "${FREECAD_USER_DATA}" "${FREECAD_USER_TEMP}" || die + + cd "${BUILD_DIR}" || die if use bim; then # No module named 'ifcopenshell' #940465 - rm "${BUILD_DIR}/Mod/BIM/nativeifc/ifc_performance_test.py" || die + rm "Mod/BIM/nativeifc/ifc_performance_test.py" || die fi if use cam; then @@ -445,10 +494,6 @@ src_test() { sed -e '/test47/a \ return' -i "Mod/CAM/CAMTests/TestPathOpUtil.py" || die fi - local -x EPYTEST_IGNORE=( - "Mod/BIM/nativeifc/ifc_performance_test.py" - ) - if ! use openscad ; then EPYTEST_IGNORE+=( "Mod/OpenSCAD/OpenSCADTest/app/test_importCSG.py" @@ -456,71 +501,115 @@ src_test() { ) fi - local -x CMAKE_SKIP_TESTS=( - "^ConstraintPointsAccess." - ) + # # TODO coin? pivy? + # sed \ + # -e '/self.assertTrue(pc.getTriangleCount/i \ print(pc.getTriangleCount())' \ + # -e '/self.assertTrue(pc.getTriangleCount/s/self/# /' \ + # -i Mod/Mesh/MeshTestsApp.py || die - local -x FREECAD_USER_HOME="${HOME}" - local -x FREECAD_USER_DATA="${T}/data" - local -x FREECAD_USER_TEMP="${T}/temp" + local -x EPYTEST_IGNORE=( + "Mod/BIM/nativeifc/ifc_performance_test.py" + ) - mkdir -p "${FREECAD_USER_DATA}" "${FREECAD_USER_TEMP}" || die + local CMAKE_SKIP_TESTS=( + "^AttachExtensionTest.testEmptyLegacySupportDoesNotClearAttachmentSupport$" + "^AttachExtensionTest.testNonEmptyLegacySupportReplacesAttachmentSupport$" + "^LinkArrayPolarTest.expandedElementsFollowPatternPlacementChanges$" + "^LinkArrayPolarTest.suppressedExpandedElementIsOmittedFromSubObjects$" + "^TestLineFormat.setQColorKeepsOpaqueColorsOpaque$" + "^TestLineFormat.setQColorPreservesAlphaValue$" + ) local failed=() - local run - - if \ - ! nonfatal \ - edo \ - "${BUILD_DIR}/bin/FreeCADCmd" \ - --run-test 0 \ - --set-config AppHomePath="${BUILD_DIR}/" \ - --log-file "${T}/FreeCADCmd.log"; then - ret=$? - eerror "FreeCADCmd failed $ret" - failed+=( "FreeCADCmd" ) - fi - if use gui; then - addpredict "/dev/char/" - addwrite "/dev/dri/renderD128" - addwrite "/dev/dri/card0" + run_freecad() { + if [[ $# -ne 1 && $# -ne 2 ]]; then + eerror "$0: usage <cmd> [<runner>]" + die "$0: usage <cmd> <runner>" + fi - [[ -c "/dev/nvidiactl" ]] && addwrite "/dev/nvidiactl" - [[ -c "/dev/nvidia-uvm" ]] && addwrite "/dev/nvidia-uvm" - [[ -c "/dev/nvidia-uvm-tools" ]] && addwrite "/dev/nvidia-uvm-tools" - [[ -c "/dev/nvidia0" ]] && addwrite "/dev/nvidia0" + local cmd="${1}" + local run="${2}" - [[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf" + if use debug; then + nonfatal \ + ${run} \ + edo \ + "${BUILD_DIR}/bin/${cmd}" \ + --set-config AppHomePath="${BUILD_DIR}/" \ + --dump-config &> "${T}/${cmd}_config.log" + fi if \ ! nonfatal \ - virtx \ + ${run} \ edo \ - "${BUILD_DIR}/bin/FreeCAD" \ + "${BUILD_DIR}/bin/${cmd}" \ --run-test 0 \ --set-config AppHomePath="${BUILD_DIR}/" \ - --log-file "${T}/FreeCAD.log" ; then + --log-file "${T}/${cmd}.log" + then ret=$? - eerror "FreeCAD failed $ret" - failed+=( "FreeCAD" ) + eerror "${cmd} failed ${ret}" + die "${cmd} failed ${ret}" + failed+=( "${cmd}" ) fi + } + if ! use gui; then + run_freecad "FreeCADCmd" + else run="virtx" + + addwrite "/dev/dri/renderD128" + addwrite "/dev/dri/card0" + + [[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf" + + if [[ -c "/dev/nvidiactl" ]]; then + addwrite "/dev/nvidiactl" + addpredict "/dev/char/" + [[ -c "/dev/nvidia-uvm" ]] && addwrite "/dev/nvidia-uvm" + [[ -c "/dev/nvidia-uvm-tools" ]] && addwrite "/dev/nvidia-uvm-tools" + [[ -c "/dev/nvidia0" ]] && addwrite "/dev/nvidia0" + fi + + # run_freecad "FreeCAD" virtx + + # this runs only the gui tests + if \ + ! nonfatal \ + virtx \ + ${PYTHON} "${S}/.github/scripts/run_gui_tests.py" "${BUILD_DIR}" + then + ret=$? + eerror "$run_gui_tests.py failed ${ret}" + die "run_gui_tests.py failed ${ret}" + failed+=( "run_gui_tests.py" ) + fi fi if [[ ${PV} == *9999* ]]; then + local myctestargs=( + # for YamlParameterSourceTest + -j1 + ) if ! nonfatal \ - "${run}" \ - cmake_src_test; then - eerror "cmake failed $?" - failed+=( "cmake" ) + ${run} \ + cmake_src_test + then + ret=$? + eerror "cmake_src_test failed ${ret}" + die "cmake_src_test failed ${ret}" + failed+=( "cmake_src_test" ) fi fi if [[ "${#failed[@]}" -gt 0 ]]; then eerror "Tests ${failed[*]} failed" - if ! use debug && [[ ${PV} != *9999* ]]; then + # Tests _will_ fail with USE=debug as the reference values change + # We want test failures to be fatal for keyworded versions + if ! use debug || [[ ${PV} != *9999* ]]; then die "${failed[@]}" fi fi @@ -531,7 +620,7 @@ src_install() { if use gui; then newbin - FreeCAD <<- _EOF_ - #!/bin/sh + #!/usr/bin/env sh # https://github.com/coin3d/coin/issues/451 : "\${QT_QPA_PLATFORM:=xcb}" export QT_QPA_PLATFORM @@ -551,7 +640,6 @@ src_install() { done rm -r "${ED}/usr/$(get_libdir)/${PN}/include/E57Format" || die "failed to drop unneeded include directory E57Format" - rm -r "${ED}/usr/$(get_libdir)/${PN}/include/clipper2" || die "failed to drop unneeded include directory clipper2" rmdir "${ED}/usr/$(get_libdir)/${PN}/include/" || die "failed to drop unneeded include directory" python_optimize "${ED}/usr/share/${PN}/data/Mod/Start/" "${ED}/usr/$(get_libdir)/${PN}/"{Ext,Mod}/ @@ -562,19 +650,25 @@ src_install() { pkg_postinst() { xdg_pkg_postinst - einfo "You can load a lot of additional workbenches using the integrated" - einfo "AddonManager." + einfo "" + einfo "You can load a lot of additional workbenches using the integrated AddonManager." + einfo "" + einfo "There are a lot of additional tools, for which FreeCAD has builtin support." + einfo "Some of them are available in Gentoo." + einfo "Take a look at:" + einfo " https://wiki.freecad.org/Installing_additional_components" + einfo "" - einfo "There are a lot of additional tools, for which FreeCAD has builtin" - einfo "support. Some of them are available in Gentoo. Take a look at" - einfo "https://wiki.freecad.org/Installing_additional_components" optfeature_header "External programs used by FreeCAD" optfeature "dependency graphs" media-gfx/graphviz optfeature "importing and exporting 2D AutoCAD DWG files" media-gfx/libredwg optfeature "importing OpenSCAD files, Mesh booleans" media-gfx/openscad - use bim && optfeature "working with COLLADA documents" dev-python/pycollada + if use bim; then + optfeature "working with COLLADA documents" dev-python/pycollada + fi if use fem || use mesh; then optfeature "mesh generation" sci-libs/gmsh + optfeature "mesh solver" sci-libs/calculix-ccx fi if use python_single_target_python3_13; then diff --git a/media-gfx/freecad/metadata.xml b/media-gfx/freecad/metadata.xml index 7cc8bc2a327b..496840cd7346 100644 --- a/media-gfx/freecad/metadata.xml +++ b/media-gfx/freecad/metadata.xml @@ -83,6 +83,9 @@ <flag name="surface"> Build the surface module and workbench </flag> + <flag name="tbb"> + Enable multithreading with the Intel Threads Building Block <pkg>dev-cpp/tbb</pkg> + </flag> <flag name="techdraw"> Build the techdraw module and workbench, a more advanced and feature-rich successor of the drawing workbench diff --git a/media-gfx/gimp/Manifest b/media-gfx/gimp/Manifest index 16376bd4efdc..a76baf156064 100644 --- a/media-gfx/gimp/Manifest +++ b/media-gfx/gimp/Manifest @@ -1,3 +1,4 @@ DIST gimp-2.10.38-patches.tar.xz 10568 BLAKE2B e661a70e0533a826688cfef8f7226f742728bed437425439562ea0c1a45133fb53b8390f3c794f578e626fe8d43af6b7818d27716fb751b2f1f06d16b0c6db9e SHA512 4ee3168b9029b384485a5ec1951ffd1d03df8a3327a89376d26cda31070f825e3af5529dde2f5ab291d1b347ed3613ca2289dddfc5c020af6e07c78b070662d2 DIST gimp-2.10.38.tar.bz2 31698453 BLAKE2B 58c29e3e00d873e69a5e5f4e9c3ff4d868ccfb11914570306ef12c54ca7d3ef89a62d8c71fac1f2d1f426ac615dc4caf7a7260351c00301dce2b1aa4193bab6d SHA512 343bf1c3bd14bf8e7c7af79c05920faca213da68549127c1d8af53e2e872e55aeaf39a3cfcf578183a34fdc4f98e1c859be63956b0611067186eefd1fdee2aaa DIST gimp-3.2.4.tar.xz 34912956 BLAKE2B 318687e03f60a44787737b6b241977bc7b9a1c8313e4ebdc8ef3991e15e3f70c69308167d18453e3cfce125d3b64d56799fe3f8af03e999e9b70ade8e8d0865e SHA512 99e45b321f80925599f1e1a6b9ccc737df303a19e012bf5182588421e163424e295250824f223dc518ac515e7953b5bc392c4082dd5ead300fc42b6b11cf9a6d +DIST gimp-3.2.6.tar.xz 35004888 BLAKE2B 639ba66577c85cad7250924c882eb65416853a92a84f587d2b9982e3b5face9bca8e6c5f96b74ef6431a62adbb73bfe11ef89bdbd372e07be30085f5f74ac117 SHA512 3f2076055bc42c18725c53564190fd5783c0d95984df90e24847797f00ad98a75677ad91ee1eedd59a7e638f81cea28fec064755b2095844d0ec703bbc5d0b4c diff --git a/media-gfx/gimp/gimp-3.2.6.ebuild b/media-gfx/gimp/gimp-3.2.6.ebuild new file mode 100644 index 000000000000..8df9ddd61b43 --- /dev/null +++ b/media-gfx/gimp/gimp-3.2.6.ebuild @@ -0,0 +1,320 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( luajit ) +PYTHON_COMPAT=( python3_{12..15} ) +VALA_USE_DEPEND=vapigen + +inherit branding flag-o-matic lua-single meson python-single-r1 shell-completion toolchain-funcs vala xdg + +DESCRIPTION="GNU Image Manipulation Program" +HOMEPAGE="https://www.gimp.org/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/gimp.git" + + MAJOR_VERSION="3" +else + MY_PV="${PV/_rc/-RC}" + MY_P="${PN}-${MY_PV}" + SRC_URI="mirror://gimp/v$(ver_cut 1-2)/${MY_P}.tar.xz" + S="${WORKDIR}/${MY_P}" + + MAJOR_VERSION="$(ver_cut 1)" + + # Dont keyword prereleases or unstable releases + # https://gitlab.gnome.org/Infrastructure/gimp-web-devel/-/blob/testing/content/core/maintainer/versioning.md#software-version + if ! [[ ${PV} =~ _rc ]] && + [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] && + [[ $(( $(ver_cut 3) % 2 )) -eq 0 ]] + then + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" + fi +fi + +LICENSE="GPL-3+ LGPL-3+" +SLOT="0/${MAJOR_VERSION}" + +IUSE="X aalib alsa bash-completion doc fits gnome heif javascript jpeg2k jpegxl lua mng openexr openmp postscript test udev unwind vala vector-icons wayland webp wmf xpm" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + lua? ( ${LUA_REQUIRED_USE} ) + xpm? ( X ) +" + +RESTRICT="!test? ( test )" + +# See libgimp_deps_table in libgimp/meson.build for introspection dependencies, bug #969449 +COMMON_DEPEND=" + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/pycairo[${PYTHON_USEDEP}] + >=dev-python/pygobject-3.0:3[${PYTHON_USEDEP}] + ') + >=app-accessibility/at-spi2-core-2.4.0 + app-arch/bzip2 + app-arch/libarchive:= + >=app-arch/xz-utils-5.0.0 + app-text/iso-codes + >=app-text/poppler-0.69.0[cairo] + >=app-text/poppler-data-0.4.9 + >=dev-libs/appstream-0.16.1:= + >=dev-libs/glib-2.70.0:2[introspection] + >=dev-libs/gobject-introspection-1.82.0-r2 + >=dev-libs/json-glib-1.2.6 + >=gnome-base/librsvg-2.40.6:2 + >=media-gfx/exiv2-0.27.4 + media-gfx/mypaint-brushes:2.0= + >=media-libs/fontconfig-2.12.4 + >=media-libs/freetype-2.1.7 + <media-libs/gexiv2-0.15.0[introspection] + >=media-libs/gexiv2-0.14.0:=[introspection] + >=media-libs/harfbuzz-2.8.2:= + >=media-libs/lcms-2.8:2 + media-libs/libjpeg-turbo:= + >=media-libs/libmypaint-1.5.0:= + >=media-libs/libpng-1.6.25:0= + >=media-libs/tiff-4.0.0:= + net-libs/glib-networking[ssl] + virtual/zlib:= + >=x11-libs/cairo-1.14.0[introspection(+),X?] + >=x11-libs/gdk-pixbuf-2.32.0:2[introspection] + >=x11-libs/gtk+-3.24.0:3[introspection,wayland?,X?] + >=x11-libs/pango-1.50.0[introspection,X?] + aalib? ( media-libs/aalib ) + alsa? ( >=media-libs/alsa-lib-1.0.0 ) + fits? ( sci-libs/cfitsio:= ) + heif? ( >=media-libs/libheif-1.15.1:= ) + javascript? ( dev-libs/gjs ) + jpeg2k? ( >=media-libs/openjpeg-2.1.0:2= ) + jpegxl? ( >=media-libs/libjxl-0.7.0:= ) + lua? ( + ${LUA_DEPS} + $(lua_gen_cond_dep ' + dev-lua/lgi[${LUA_USEDEP}] + ') + ) + mng? ( media-libs/libmng:= ) + openexr? ( >=media-libs/openexr-1.6.1:= ) + postscript? ( app-text/ghostscript-gpl:= ) + udev? ( >=dev-libs/libgudev-167:= ) + unwind? ( >=sys-libs/libunwind-1.1.0:= ) + webp? ( >=media-libs/libwebp-0.6.0:= ) + wmf? ( >=media-libs/libwmf-0.2.8[X?] ) + X? ( + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXfixes + >=x11-libs/libXmu-1.1.4 + ) + xpm? ( x11-libs/libXpm ) +" +if [[ ${PV} == 9999 ]]; then + COMMON_DEPEND+=" + >=media-libs/babl-9999[introspection,lcms,vala?] + >=media-libs/gegl-9999[cairo,introspection,lcms,vala?] + " +else + COMMON_DEPEND+=" + >=media-libs/babl-0.1.118[introspection,lcms,vala?] + >=media-libs/gegl-0.4.66:0.4[cairo,introspection,lcms,vala?] + " +fi + +RDEPEND=" + ${COMMON_DEPEND} + x11-themes/hicolor-icon-theme + gnome? ( gnome-base/gvfs ) +" + +DEPEND="${COMMON_DEPEND}" + +BDEPEND=" + >=dev-lang/perl-5.30.3 + dev-libs/libxslt + >=dev-util/gdbus-codegen-2.80.5-r1 + >=sys-devel/gettext-0.21 + virtual/pkgconfig + bash-completion? ( + app-shells/bash-completion + app-shells/bash + ) + doc? ( + >=dev-libs/gobject-introspection-1.82.0-r2[doctool] + dev-util/gi-docgen + ) + vala? ( $(vala_depend) ) + vector-icons? ( x11-misc/shared-mime-info ) +" +# X? ( test? ( +# sys-apps/dbus +# x11-misc/xvfb-run +# ) ) + +DOCS=( "AUTHORS" "NEWS" "README" "README.i18n" ) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + use openmp && tc-check-openmp + + # bug #969468 + local locales="$(locale -a)" + if ! has "en_US.utf8" ${locales} && ! has "en_US.UTF-8" ${locales}; then + # portage splits and unset LC_ALL. Cannot rely on that + if [[ "${LANG}" != "C" ]] && [[ "${LANG}" != "POSIX" ]] && [[ "${LANG}" == "${LANG#C\.}" ]]; then + # Set LC_ALL to avoid locales breaking due to the profile setting LC_MESSAGES=C + # and portage itself setting LC_COLLATE=C + einfo "Setting LC_ALL=${LANG} based on LANG because en_US.UTF-8 isn't available, bug #968468" + export LC_ALL="${LANG}" + else + eerror "Cannot use LANG=${LANG} as it cannot be C or POSIX" + die "en_US.UTF-8 isn't available and cannot fallback to user locale, bug #969468" + fi + fi + fi + + python-single-r1_pkg_setup + use lua && lua-single_pkg_setup + + if [[ ${PV} == 9999 ]]; then + if has_version ">=media-libs/babl-9999" || has_version ">=media-libs/gegl-9999"; then + ewarn "Please make sure to rebuild media-libs/babl-9999 and media-libs/gegl-9999 packages" + ewarn "before building media-gfx/gimp-9999 to have their latest master branch versions." + fi + fi +} + +src_prepare() { + default + + # Fix Gimp and GimpUI devel doc installation paths + sed -e "s/'doc'/'gtk-doc'/" -i devel-docs/reference/gimp{,-ui}/meson.build || die + + # Fix pygimp.interp python implementation path. + # Meson @PYTHON_PATH@ use sandbox path e.g.: + # '/var/tmp/portage/media-gfx/gimp-2.99.12/temp/python3.10/bin/python3' + sed -e 's/@PYTHON_EXE@/'${EPYTHON}'/' -i plug-ins/python/pygimp.interp.in || die + + # Set proper intallation path of documentation logo + sed -e "s/'gimp-' + gimp_api_version/'gimp-${PVR}'/" -i gimp-data/images/logo/meson.build || die + + # Force disable x11_target if USE="-X" is setup. See bug #943164 for additional info + if use !X; then + sed -e 's/x11_target = /x11_target = false #/' -i meson.build || die + fi + + # Disable automagic pandoc use that isn't relevant for a package build + sed -e '/pandoc/ s/ = .*/ = disabler()/' -i docs/meson.build || die +} + +src_configure() { + # Defang automagic dependencies, bug #943164 + use wayland || append-cppflags -DGENTOO_GTK_HIDE_WAYLAND + use X || append-cppflags -DGENTOO_GTK_HIDE_X11 + + tc-export NM READELF + + use vala && vala_setup + + local emesonargs=( + -Denable-default-bin=enabled + + -Dcheck-update=no + -Ddebug-self-in-build=false + -Denable-multiproc=true + -Dappdata-test=disabled + -Dbug-report-url="${BRANDING_OS_BUG_REPORT_URL}" + -Dilbm=disabled + -Dlibbacktrace=false + $(meson_feature aalib aa) + $(meson_feature alsa) + $(meson_feature bash-completion) + $(meson_feature doc gi-docgen) + $(meson_feature fits) + $(meson_feature heif) + $(meson_feature javascript) + $(meson_feature jpeg2k jpeg2000) + $(meson_feature jpegxl jpeg-xl) + $(meson_feature mng) + $(meson_feature openexr) + $(meson_feature openmp) + $(meson_feature postscript ghostscript) + # https://gitlab.gnome.org/GNOME/gimp/-/issues/15763 + -Dheadless-tests=disabled + #$(usex X $(meson_feature test headless-tests) -Dheadless-tests=disabled ) + $(meson_feature udev gudev) + $(meson_feature vala) + $(meson_feature webp) + $(meson_feature wmf) + $(meson_feature X xcursor) + $(meson_feature xpm) + $(meson_use lua) + $(meson_use unwind libunwind) + $(meson_use vector-icons) + ) + + meson_src_configure +} + +src_compile() { + export XDG_DATA_DIRS="${EPREFIX}"/usr/share # bug 587004 + meson_src_compile +} + +# bug #664938 +_rename_plugins() { + einfo 'Renaming plug-ins to not collide with pre-2.10.6 file layout (bug #664938)...' + local prename=gimp-org- + ( + cd "${ED}"/usr/$(get_libdir)/gimp/3.0/plug-ins || exit 1 + for plugin_slash in $(ls -d1 */); do + plugin=${plugin_slash%/} + if [[ -f ${plugin}/${plugin} ]]; then + # NOTE: Folder and file name need to match for Gimp to load that plug-in + # so "file-svg/file-svg" becomes "${prename}file-svg/${prename}file-svg" + mv ${plugin}/{,${prename}}${plugin} || exit 1 + mv {,${prename}}${plugin} || exit 1 + fi + done + ) +} + +src_test() { + local -x LD_LIBRARY_PATH="${BUILD_DIR}/libgimp:${LD_LIBRARY_PATH}" + + # Try hard to avoid system installed gimp causing issues + local -x GIMP3_DIRECTORY="${BUILD_DIR}/" + local -x GIMP3_PLUGINDIR="${BUILD_DIR}/plug-ins/" + local -x GIMP3_SYSCONFDIR="${BUILD_DIR}/etc/" + + # Flakyness is possible + meson_src_test -j1 +} + +src_install() { + meson_src_install + + python_optimize "${ED}/usr/$(get_libdir)/gimp" + python_fix_shebang "${ED}/usr/$(get_libdir)/gimp" + + # Create symlinks for Gimp exec in /usr/bin + # gimp-$(ver_cut 1-2) -> gimp-$(ver_cut 1) -> gimp + dosym "${ESYSROOT}"/usr/bin/gimp-${MAJOR_VERSION} /usr/bin/gimp + dosym "${ESYSROOT}"/usr/bin/gimp-console-${MAJOR_VERSION} /usr/bin/gimp-console + dosym "${ESYSROOT}"/usr/bin/gimp-test-clipboard-${MAJOR_VERSION} /usr/bin/gimp-test-clipboard + dosym "${ESYSROOT}"/usr/bin/gimptool-${MAJOR_VERSION} /usr/bin/gimptool + + if use bash-completion; then + bashcomp_alias gimp-3.2 gimp{,-3} gimp-console{,-3,-3.2} + fi + + _rename_plugins || die +} diff --git a/media-gfx/gimp/gimp-9999.ebuild b/media-gfx/gimp/gimp-9999.ebuild index 0e3ed403b457..8df9ddd61b43 100644 --- a/media-gfx/gimp/gimp-9999.ebuild +++ b/media-gfx/gimp/gimp-9999.ebuild @@ -81,7 +81,7 @@ COMMON_DEPEND=" net-libs/glib-networking[ssl] virtual/zlib:= >=x11-libs/cairo-1.14.0[introspection(+),X?] - >=x11-libs/gdk-pixbuf-2.30.8:2[introspection] + >=x11-libs/gdk-pixbuf-2.32.0:2[introspection] >=x11-libs/gtk+-3.24.0:3[introspection,wayland?,X?] >=x11-libs/pango-1.50.0[introspection,X?] aalib? ( media-libs/aalib ) diff --git a/media-gfx/krita/Manifest b/media-gfx/krita/Manifest index 05ba81bc70ce..3bc7f088b5ec 100644 --- a/media-gfx/krita/Manifest +++ b/media-gfx/krita/Manifest @@ -1,2 +1,3 @@ DIST krita-6.0.1.tar.xz 203100664 BLAKE2B 6d8865973cab26cf1fb7c0e53b24fdfddd98f295a73c00f0b9f7f8f6ae1bbb344487d930ab7588e30718e20aeed05fd14ce54e5b7bf3a9d7c7a75d97a0b6da5f SHA512 2c00cb04675f8e936f300adbc121fe231edd64a2b1d5f9a16b4aa0fc60a54f4a7089ca332fb144426f9dea1d429b835f0cf1fa6e26c2f04fc6c73558a0eabad3 DIST krita-6.0.3.tar.xz 206701316 BLAKE2B b59c54dbbf1890d977280203fa23e1aadb76408327d8c82a04ae80c0d7c6c5be828d8b497bf0574718031bafd999ac6bce3ab4a494f14269b8569834163dedf2 SHA512 6c721d03c4d681854c216176556233bb4378e20a28d7a384055a68b08231efa7a483a32823abedaafec9578d4d480ecb777943be45a1abfeb011e917e9a9eb75 +DIST krita-6.0.4.tar.xz 206806924 BLAKE2B 68dc552effb93eb90b762bc45d1d8bf6ea6795bb0a53e8494273a384fbdc2cc0278ae8df5b95ec463942c414565a4b20105ca32e02fa2023fbfe9824ed61defe SHA512 5c6a03c4447d4130a28c3c10d5ff596fc6dcf95894d9eddbb91f1960a89def00968bc551a75a8ec8d55d97b16a310a4c0ceef6e9432e89fbc4413f7361faede4 diff --git a/media-gfx/krita/files/krita-6.0.4-fix-colorspace-browser-crash.patch b/media-gfx/krita/files/krita-6.0.4-fix-colorspace-browser-crash.patch new file mode 100644 index 000000000000..3814b1b2cfa7 --- /dev/null +++ b/media-gfx/krita/files/krita-6.0.4-fix-colorspace-browser-crash.patch @@ -0,0 +1,69 @@ +From 3aaf34b677ad3841d6e0f541399b866e23f30b61 Mon Sep 17 00:00:00 2001 +From: Luna Lovecraft <ciubix8514@gmail.com> +Date: Thu, 10 Sep 2026 22:18:13 +0400 +Subject: [PATCH] Fix a crash in the color space browser on qt 6.11 + +Some of the color space data includes a few NaNs, which when transformed +it leads to insane values, which makes the qpainter crash in the newer +qt version. + +So now there are a few NaN checks to avoid that. +--- + libs/ui/widgets/kis_cie_tongue_widget.cpp | 24 +++++++++++++++++------ + 1 file changed, 18 insertions(+), 6 deletions(-) + +diff --git a/libs/ui/widgets/kis_cie_tongue_widget.cpp b/libs/ui/widgets/kis_cie_tongue_widget.cpp +index f83066bea85..e7fb6a835e1 100644 +--- a/libs/ui/widgets/kis_cie_tongue_widget.cpp ++++ b/libs/ui/widgets/kis_cie_tongue_widget.cpp +@@ -178,6 +178,12 @@ void KisCIETongueWidget::setProfileData(QVector <double> p, QVector <double> w, + d->profileDataAvailable = profileData; + if (profileData){ + d->Primaries= p; ++ ++ for (int i = 0; i < d->Primaries.size(); i++) { ++ if (std::isnan(d->Primaries[i])) { ++ d->Primaries[i] = 0; ++ } ++ } + + d->whitePoint = w; + d->needUpdatePixmap = true; +@@ -193,7 +199,13 @@ void KisCIETongueWidget::setRGBData(QVector <double> whitepoint, QVector <double + { + if (colorants.size()==9){ + d->Primaries= colorants; +- ++ ++ for (int i = 0; i < d->Primaries.size(); i++) { ++ if (std::isnan(d->Primaries[i])) { ++ d->Primaries[i] = 0; ++ } ++ } ++ + d->whitePoint = whitepoint; + d->needUpdatePixmap = true; + d->colorModel = KisCIETongueWidget::RGBA; +@@ -543,14 +555,14 @@ void KisCIETongueWidget::drawGamut() + gamutPaint.drawPath(path); + gamutPaint.setOpacity(1.0); + foreach (QPointF Point, d->gamut) { ++ if (std::isnan(Point.x()) || std::isnan(Point.y())) { ++ continue; ++ } + mapPoint(x, y, Point); +- gamutPaint.drawEllipse(x + d->xBias- 2, y-2, 4, 4); +- //Point.setX(x); +- //Point.setY(y); +- //path.lineTo(Point); ++ gamutPaint.drawEllipse(x + d->xBias - 2, y - 2, 4, 4); + } + } +- ++ + gamutPaint.end(); + d->painter.save(); + d->painter.setOpacity(0.5); +-- +GitLab + diff --git a/media-gfx/krita/krita-6.0.4.ebuild b/media-gfx/krita/krita-6.0.4.ebuild new file mode 100644 index 000000000000..eca03ffaa886 --- /dev/null +++ b/media-gfx/krita/krita-6.0.4.ebuild @@ -0,0 +1,151 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PATCHSET= +ECM_TEST="forceoptional" +PYTHON_COMPAT=( python3_{11..14} ) +KFMIN=6.16.0 +QTMIN=6.10.1 +inherit ecm kde.org python-single-r1 xdg + +if [[ ${KDE_BUILD_TYPE} == release ]]; then + if [[ ${PV} == *_p* ]] ; then + SRC_URI="https://dev.gentoo.org/~asturm/distfiles/kde/${P}.tar.xz" + S="${WORKDIR}/${P}" + else + MY_PV="${PV/_/-}" + MY_P="${PN}-${MY_PV}" + if [[ ${MY_P} == ${P} ]] ; then + SRC_URI="mirror://kde/stable/${PN}/${PV}/${P}.tar.xz" + else + SRC_URI="mirror://kde/unstable/${PN}/${MY_PV}/${MY_P}.tar.xz" + fi + S="${WORKDIR}/${MY_P}" + fi + KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" +fi +if [[ -n ${PATCHSET} ]]; then + SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/kde/${PATCHSET}.tar.xz" +fi + +DESCRIPTION="Free digital painting application. Digital Painting, Creative Freedom!" +HOMEPAGE="https://apps.kde.org/krita/ https://krita.org/en/" + +LICENSE="GPL-3" +SLOT="0" +IUSE="color-management fftw gif +gsl heif jpeg2k jpegxl +mypaint-brush-engine openexr pdf media +raw wayland webp" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +# bug 630508 +RESTRICT="test" + +COMMON_DEPEND="${PYTHON_DEPS} + dev-cpp/eigen:= + >=dev-cpp/xsimd-13.0.0 + dev-libs/boost:= + dev-libs/libunibreak:= + >=dev-libs/quazip-1.3-r2:0=[qt6(+)] + $(python_gen_cond_dep ' + dev-python/pyqt6[gui,qml,widgets,xml,${PYTHON_USEDEP}] + dev-python/sip:=[${PYTHON_USEDEP}] + ') + >=dev-qt/qt5compat-${QTMIN}:6 + >=dev-qt/qtbase-${QTMIN}:6=[concurrent,dbus,-gles2-only,gui,network,opengl,sql,wayland?,widgets,X,xml] + >=dev-qt/qtdeclarative-${QTMIN}:6 + >=dev-qt/qtsvg-${QTMIN}:6 + >=kde-frameworks/kcolorscheme-${KFMIN}:6 + >=kde-frameworks/kcompletion-${KFMIN}:6 + >=kde-frameworks/kconfig-${KFMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/kcrash-${KFMIN}:6 + >=kde-frameworks/kguiaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kiconthemes-${KFMIN}:6 + >=kde-frameworks/kitemviews-${KFMIN}:6 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:6 + >=kde-frameworks/kxmlgui-${KFMIN}:6 + media-gfx/exiv2:= + media-libs/fontconfig + media-libs/freetype + media-libs/harfbuzz:= + media-libs/lcms + media-libs/libjpeg-turbo:= + media-libs/libpng:= + media-libs/tiff:= + virtual/zlib:= + virtual/opengl + x11-libs/libX11 + x11-libs/libXi + color-management? ( >=media-libs/opencolorio-2.0.0 ) + fftw? ( sci-libs/fftw:3.0= ) + gif? ( media-libs/giflib ) + gsl? ( sci-libs/gsl:= ) + jpeg2k? ( media-libs/openjpeg:= ) + jpegxl? ( >=media-libs/libjxl-0.7.0_pre20220825:= ) + heif? ( >=media-libs/libheif-1.11:=[x265] ) + media? ( media-libs/mlt:= ) + mypaint-brush-engine? ( media-libs/libmypaint:= ) + openexr? ( media-libs/openexr:= ) + pdf? ( app-text/poppler[qt6(-)] ) + raw? ( kde-apps/libkdcraw:6 ) + webp? ( >=media-libs/libwebp-1.2.0:= ) +" +RDEPEND="${COMMON_DEPEND} + !${CATEGORY}/${PN}:5 +" +DEPEND="${COMMON_DEPEND} + dev-libs/immer + dev-libs/lager + dev-libs/zug +" +BDEPEND=" + dev-lang/perl + sys-devel/gettext +" + +PATCHES=( + # downstream + "${FILESDIR}"/${PN}-5.3.0-tests-optional.patch + "${FILESDIR}"/${PN}-5.2.2-fftw.patch # bug 913518 + "${FILESDIR}"/${PN}-6.0.1-pyqt6.11-sip13.8.patch # bug 974789, unfortunately, also downstream + "${FILESDIR}"/${P}-fix-colorspace-browser-crash.patch # in 6.0 branch +) +if [[ -n ${PATCHSET} ]]; then + PATCHES+=( "${WORKDIR}/${PATCHSET}" ) +fi + +src_prepare() { + rm -r packaging || die # unused and too low CMake minimum + ecm_src_prepare +} + +src_configure() { + # Prevent sandbox violation from FindPyQt5.py module + # See Gentoo-bug 655918 + addpredict /dev/dri + + local mycmakeargs=( + -DBUILD_WITH_QT6=ON + -DALLOW_UNSTABLE=QT6 + -DENABLE_UPDATERS=OFF + -DKRITA_ENABLE_PCH=OFF # big mess. + -DCMAKE_DISABLE_FIND_PACKAGE_KSeExpr=ON # not packaged + $(cmake_use_find_package color-management OpenColorIO) + $(cmake_use_find_package fftw FFTW3) + $(cmake_use_find_package gif GIF) + $(cmake_use_find_package gsl GSL) + $(cmake_use_find_package heif HEIF) + $(cmake_use_find_package jpeg2k OpenJPEG) + $(cmake_use_find_package jpegxl JPEGXL) + $(cmake_use_find_package media Mlt7) + $(cmake_use_find_package mypaint-brush-engine LibMyPaint) + $(cmake_use_find_package openexr OpenEXR) + $(cmake_use_find_package pdf Poppler) + $(cmake_use_find_package raw KDcrawQt6) + $(cmake_use_find_package wayland Qt6WaylandClient) + $(cmake_use_find_package webp WebP) + ) + ecm_src_configure +} diff --git a/media-gfx/netgen/Manifest b/media-gfx/netgen/Manifest index 4d11efadf1fc..b61ff855edb4 100644 --- a/media-gfx/netgen/Manifest +++ b/media-gfx/netgen/Manifest @@ -1,3 +1,3 @@ -DIST netgen-6.2.2406.tar.gz 3452436 BLAKE2B 4cb42f20e7627a98e54a9f2e6da5d1b4af174fa7e33c6f72a731b4879c3e4324b20016f1980d2ceb50976fedc2b001a0824e2edd03b03c434c49baa947ded126 SHA512 262e57dca39519c797ea58b32eb886d523926aa48979b31df0c61839f9db09eea76346d3519742b7173a78a80335c16960860772646edd20f365dab1e1a6bed8 -DIST netgen-6.2.2501.tar.gz 3328069 BLAKE2B 68387ffdf3ff4025b8b68377aa5744077a5ab4718e1a9213bd2103e58dce8750355ad7031b8cc533345fa84bfa4b1c96f30f9e1efb977141d97a35f40dbf57a8 SHA512 7a39b8bc17216a69239e1f3774793f65e8ac3b1837b0859a730bba8967a4791a76ea5041a94e7de1e1e42f8d12b8ab59dfa06eadcf048f3c99dce57b360faa45 DIST netgen-6.2.2505.tar.gz 3332150 BLAKE2B 9f8baa8423c34ee68c2cb77da1918a38c23a34dd61059f912d0bfb832ea9778d3dfa206ac35d39e8bdaad415be40682c4f1b7313c4f1b7ed0b4670a9568bf2b3 SHA512 f5274f8b1642109fa79926ce1c761f7d312ed86fc35624884917b7e39937bf8501e40238c7e9a3c7fc6324bfdaa27910c59a927c954d49e8dfc62618704f857f +DIST netgen-6.2.2604.tar.gz 3308713 BLAKE2B 11643cf7d784b45a59e2a6e26dc95f2391140f58a140a2254e6d21fe7a711b8801e40d53b57a6c70cf188f7167ef431b237793e5d75f3c9c3c831d84aba6e0ca SHA512 2ddc416c235ba42c576e3b019d0a2ee49b0728fe56a1e57b0d230dab0abcd466bf11b0ac290cf449442b46749055978477018003f743700ae54b9f32a8094ca3 +DIST netgen-6.2.2605.tar.gz 3336141 BLAKE2B 848c0e6d488bd3ac3fb36409700bde5d43020dea6decfd58b67a82fd82b64a0c40991b5cf088d7314439121e950e85c617386f24d9b88fe85d0d4b00636bef12 SHA512 73980c674155b3d13b3a37c2dd2530c03e2df0337401a1e055c3ec373e89cbddf2fb76e345071ef6ced4dc6e4b6d0eac13d6aef6d1f99cb905f61705ef6a46ff diff --git a/media-gfx/netgen/files/netgen-6.2.2406-encoding_h.patch b/media-gfx/netgen/files/netgen-6.2.2406-encoding_h.patch index 9d9288412efb..d176fdde96ff 100644 --- a/media-gfx/netgen/files/netgen-6.2.2406-encoding_h.patch +++ b/media-gfx/netgen/files/netgen-6.2.2406-encoding_h.patch @@ -1,7 +1,7 @@ From 8504832e746b1581d5b51be7f04f24826440255f Mon Sep 17 00:00:00 2001 From: Paul Zander <negril.nx+gentoo@gmail.com> Date: Thu, 6 Jun 2024 15:59:51 +0200 -Subject: [PATCH 1/2] use std namespace prefix +Subject: [PATCH] use std namespace prefix Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> --- @@ -48,7 +48,7 @@ index 9ea2ffb..498431c 100644 From 2e52e913603745670cfc5c4a461845a6fb22e118 Mon Sep 17 00:00:00 2001 From: Paul Zander <negril.nx+gentoo@gmail.com> Date: Thu, 6 Jun 2024 16:00:40 +0200 -Subject: [PATCH 2/2] av_init_packet is deprecated +Subject: [PATCH] av_init_packet is deprecated Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> --- diff --git a/media-gfx/netgen/files/netgen-6.2.2406-find-libjpeg-turbo-library.patch b/media-gfx/netgen/files/netgen-6.2.2406-find-libjpeg-turbo-library.patch deleted file mode 100644 index 17bf2ad95f61..000000000000 --- a/media-gfx/netgen/files/netgen-6.2.2406-find-libjpeg-turbo-library.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 49507f7708d72b25fd5e350f7f6b30aa80a50cb4 Mon Sep 17 00:00:00 2001 -From: Paul Zander <negril.nx+gentoo@gmail.com> -Date: Thu, 6 Jun 2024 15:40:10 +0200 -Subject: [PATCH] [PATCH] find libjpeg-turbo library - -Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> ---- - nglib/CMakeLists.txt | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/nglib/CMakeLists.txt b/nglib/CMakeLists.txt -index b1036ea..78340b6 100644 ---- a/nglib/CMakeLists.txt -+++ b/nglib/CMakeLists.txt -@@ -13,6 +13,11 @@ if(EMSCRIPTEN) - target_link_libraries(nglib PRIVATE ${ZLIB_LIBRARIES} $<BUILD_INTERFACE:$<TARGET_PROPERTY:occ_libs,INTERFACE_LINK_LIBRARIES>>) - else(EMSCRIPTEN) - target_link_libraries(nglib PUBLIC ngcore) -+ if(TARGET JPEG::JPEG) -+ get_target_property(JPEG_LIBRARIES JPEG::JPEG IMPORTED_LOCATION_RELEASE) -+ else() -+ set(JPEG_LIBRARIES ${JPEG_LIBRARY_RELEASE}) -+ endif() - target_link_libraries( nglib PRIVATE ${CMAKE_THREAD_LIBS_INIT} ${JPEG_LIBRARIES} ${MKL_LIBRARIES} ${ZLIB_LIBRARIES} occ_libs netgen_cgns ) - endif(EMSCRIPTEN) - --- -2.45.2 - diff --git a/media-gfx/netgen/files/netgen-PR206-catch2-v3.patch b/media-gfx/netgen/files/netgen-PR206-catch2-v3.patch new file mode 100644 index 000000000000..039da5db72ad --- /dev/null +++ b/media-gfx/netgen/files/netgen-PR206-catch2-v3.patch @@ -0,0 +1,157 @@ +From cb1e8d12695b25886c05cb59d1dadb4e4a881d57 Mon Sep 17 00:00:00 2001 +From: Drew Parsons <dparsons@debian.org> +Date: Sun, 5 Jan 2025 12:50:27 +0100 +Subject: [PATCH] support Catch2 v3 + +- uses Cmake config files for Catch2 +- supports both v2 and v3 of Catch2 +- Catch2 v3 includes <catch2/catch_all.hpp> instead of <catch2/catch.hpp> +- v3 moves Catch::Contains to Catch::Matchers::ContainsSubstring + +see https://github.com/catchorg/Catch2/blob/devel/docs/migrate-v2-to-v3.md + +Patch adapted from debian patch catch2_v3.patch +https://salsa.debian.org/science-team/netgen/-/blob/d7ca1c564d90d00ce3d83e0b63c36fbec11cf1ce/debian/patches/catch2_v3.patch +--- + tests/catch/CMakeLists.txt | 6 ++++++ + tests/catch/archive.cpp | 8 ++++++++ + tests/catch/array.cpp | 4 ++++ + tests/catch/main.cpp | 4 ++++ + tests/catch/ranges.cpp | 4 ++++ + tests/catch/symboltable.cpp | 4 ++++ + tests/catch/utils.cpp | 4 ++++ + tests/catch/version.cpp | 4 ++++ + 8 files changed, 38 insertions(+) + +diff --git a/tests/catch/CMakeLists.txt b/tests/catch/CMakeLists.txt +index fce02cdc9..e89dc00f2 100644 +--- a/tests/catch/CMakeLists.txt ++++ b/tests/catch/CMakeLists.txt +@@ -3,12 +3,18 @@ if(ENABLE_UNIT_TESTS) + add_custom_target(unit_tests) + + # Build catch_main test object ++find_package(Catch2 REQUIRED) + include_directories(${CATCH_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../../libsrc/include ${SPDLOG_INCLUDE_DIR}) + add_library(catch_main STATIC main.cpp) + set_target_properties(catch_main PROPERTIES CXX_STANDARD 17) + add_dependencies(unit_tests catch_main) + add_dependencies(catch_main project_catch) + ++if (Catch2_VERSION VERSION_GREATER_EQUAL 3) ++ target_compile_options(catch_main PUBLIC -DCATCH2_v3) ++ target_link_libraries(catch_main Catch2::Catch2WithMain) ++endif() ++ + # ensure the test targets are built before testing + add_test(NAME unit_tests_built COMMAND ${CMAKE_COMMAND} --build . --target unit_tests --config ${CMAKE_BUILD_TYPE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../.. ) + +diff --git a/tests/catch/archive.cpp b/tests/catch/archive.cpp +index 62f6df467..1d1b55f7a 100644 +--- a/tests/catch/archive.cpp ++++ b/tests/catch/archive.cpp +@@ -1,5 +1,9 @@ + ++#ifdef CATCH2_v3 ++#include "catch2/catch_all.hpp" ++#else + #include <catch2/catch.hpp> ++#endif + #include <../core/ngcore.hpp> + #include <core/register_archive.hpp> + #include <core/logging.hpp> +@@ -354,7 +358,11 @@ void testArchive(Archive& in, Archive& out) + SECTION("Not registered") + { + SharedPtrAndPtrHolder* p = new NotRegisteredForArchive; ++#ifdef CATCH2_v3 ++ REQUIRE_THROWS(out & p, Catch::Matchers::ContainsSubstring("not registered for archive")); ++#else + REQUIRE_THROWS(out & p, Catch::Contains("not registered for archive")); ++#endif + } + SECTION("Non-default constructor") + { +diff --git a/tests/catch/array.cpp b/tests/catch/array.cpp +index 63011533f..2c0eee794 100644 +--- a/tests/catch/array.cpp ++++ b/tests/catch/array.cpp +@@ -1,5 +1,9 @@ + ++#ifdef CATCH2_v3 ++#include "catch2/catch_all.hpp" ++#else + #include <catch2/catch.hpp> ++#endif + #include <core/array.hpp> + using namespace ngcore; + using namespace std; +diff --git a/tests/catch/main.cpp b/tests/catch/main.cpp +index ad4c84315..6e8f9a3a1 100644 +--- a/tests/catch/main.cpp ++++ b/tests/catch/main.cpp +@@ -1,3 +1,7 @@ + #define CATCH_CONFIG_MAIN + #define DO_NOT_USE_WMAIN ++#ifdef CATCH2_v3 ++#include "catch2/catch_all.hpp" ++#else + #include <catch2/catch.hpp> ++#endif +\ No newline at end of file +diff --git a/tests/catch/ranges.cpp b/tests/catch/ranges.cpp +index aeca69b8e..b37dbb376 100644 +--- a/tests/catch/ranges.cpp ++++ b/tests/catch/ranges.cpp +@@ -1,5 +1,9 @@ + ++#ifdef CATCH2_v3 ++#include "catch2/catch_all.hpp" ++#else + #include <catch2/catch.hpp> ++#endif + + #include <core/array.hpp> + #include <core/ranges.hpp> +diff --git a/tests/catch/symboltable.cpp b/tests/catch/symboltable.cpp +index 10bdff121..88dbc806d 100644 +--- a/tests/catch/symboltable.cpp ++++ b/tests/catch/symboltable.cpp +@@ -1,5 +1,9 @@ + ++#ifdef CATCH2_v3 ++#include "catch2/catch_all.hpp" ++#else + #include <catch2/catch.hpp> ++#endif + #include <../core/ngcore.hpp> + using namespace ngcore; + using namespace std; +diff --git a/tests/catch/utils.cpp b/tests/catch/utils.cpp +index 74b6dd37c..50f754d4b 100644 +--- a/tests/catch/utils.cpp ++++ b/tests/catch/utils.cpp +@@ -1,5 +1,9 @@ + ++#ifdef CATCH2_v3 ++#include "catch2/catch_all.hpp" ++#else + #include <catch2/catch.hpp> ++#endif + #include <core/ngcore.hpp> + using namespace ngcore; + using namespace std; +diff --git a/tests/catch/version.cpp b/tests/catch/version.cpp +index 873636c23..ec79ecca2 100644 +--- a/tests/catch/version.cpp ++++ b/tests/catch/version.cpp +@@ -1,5 +1,9 @@ + ++#ifdef CATCH2_v3 ++#include "catch2/catch_all.hpp" ++#else + #include <catch2/catch.hpp> ++#endif + #include <../core/ngcore.hpp> + using namespace ngcore; + using namespace std; diff --git a/media-gfx/netgen/netgen-6.2.2505.ebuild b/media-gfx/netgen/netgen-6.2.2505.ebuild index e2e8a46f5bae..8c0b052dfe96 100644 --- a/media-gfx/netgen/netgen-6.2.2505.ebuild +++ b/media-gfx/netgen/netgen-6.2.2505.ebuild @@ -18,7 +18,7 @@ IUSE="ffmpeg gui jpeg mpi +opencascade python test" RESTRICT="!test? ( test )" REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} + python? ( ${PYTHON_REQUIRED_USE} ) ffmpeg? ( gui ) jpeg? ( gui ) python? ( gui ) diff --git a/media-gfx/netgen/netgen-6.2.2406-r1.ebuild b/media-gfx/netgen/netgen-6.2.2604.ebuild index 895172a83e12..a3aa60598797 100644 --- a/media-gfx/netgen/netgen-6.2.2406-r1.ebuild +++ b/media-gfx/netgen/netgen-6.2.2604.ebuild @@ -3,22 +3,31 @@ EAPI=8 -PYTHON_COMPAT=( python3_{12..13} ) -inherit cmake desktop flag-o-matic python-single-r1 xdg +PYTHON_COMPAT=( python3_{12..14} ) +TCL_SLOT="8.6" +inherit cmake desktop python-single-r1 xdg flag-o-matic DESCRIPTION="Automatic 3d tetrahedral mesh generator" HOMEPAGE="https://ngsolve.org/ https://github.com/NGSolve/netgen" -SRC_URI="https://github.com/NGSolve/netgen/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/NGSolve/netgen.git" +else + SRC_URI=" + https://github.com/NGSolve/netgen/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + " + KEYWORDS="~amd64 ~x86" +fi LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="amd64 ~x86" IUSE="ffmpeg gui jpeg mpi +opencascade python test" RESTRICT="!test? ( test )" REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} + python? ( ${PYTHON_REQUIRED_USE} ) ffmpeg? ( gui ) jpeg? ( gui ) python? ( gui ) @@ -28,8 +37,8 @@ DEPEND=" virtual/zlib:= ffmpeg? ( media-video/ffmpeg:= ) gui? ( - dev-lang/tcl:0/8.6 - dev-lang/tk:0/8.6 + dev-lang/tcl:0/${TCL_SLOT} + dev-lang/tk:0/${TCL_SLOT} media-libs/glu media-libs/libglvnd[X] x11-libs/libX11 @@ -45,6 +54,7 @@ DEPEND=" python? ( ${PYTHON_DEPS} $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] dev-python/pybind11[${PYTHON_USEDEP}] ' ) @@ -59,7 +69,7 @@ BDEPEND=" virtual/pkgconfig gui? ( virtual/imagemagick-tools[png] ) test? ( - <dev-cpp/catch-3:0 + dev-cpp/catch python? ( $(python_gen_cond_dep ' dev-python/pytest-check[${PYTHON_USEDEP}] ') ) @@ -69,32 +79,32 @@ BDEPEND=" PATCHES=( "${FILESDIR}/${PN}-6.2.2204-find-Tk-include-directories.patch" "${FILESDIR}/${PN}-6.2.2406-link-against-ffmpeg.patch" - "${FILESDIR}/${PN}-6.2.2204-use-system-catch.patch" - "${FILESDIR}/${PN}-6.2.2406-find-libjpeg-turbo-library.patch" + # "${FILESDIR}/${PN}-6.2.2406-find-libjpeg-turbo-library.patch" "${FILESDIR}/${PN}-6.2.2301-fix-nullptr-deref-in-archive.patch" "${FILESDIR}/${PN}-6.2.2406-encoding_h.patch" "${FILESDIR}/${PN}-6.2.2406-link-against-jpeg.patch" - "${FILESDIR}/${PN}-PR202-std_map.patch" + "${FILESDIR}/${PN}-PR206-catch2-v3.patch" ) pkg_setup() { if use python; then python-single-r1_pkg_setup - # NOTE This calls find_package(Python3) without specifying Interpreter in COMPONENTS. - # Python3_FIND_UNVERSIONED_NAMES=FIRST is thus never checked and we search the highest python version first. - pushd "${T}/${EPYTHON}/bin" > /dev/null || die - cp "python-config" "${EPYTHON}-config" || die - chmod +x "${EPYTHON}-config" || die - popd > /dev/null || die + # # NOTE This calls find_package(Python3) without specifying Interpreter in COMPONENTS. + # # Python3_FIND_UNVERSIONED_NAMES=FIRST is thus never checked and we search the highest python version first. + # pushd "${T}/${EPYTHON}/bin" > /dev/null || die + # cp "python-config" "${EPYTHON}-config" || die + # chmod +x "${EPYTHON}-config" || die + # popd > /dev/null || die fi } src_prepare() { - # # NOTE: need to manually check and update this string on version bumps! - # # git describe --tags --match "v[0-9]*" --long --dirty + # NOTE: need to manually check and update this string on version bumps! + # git ls-remote --tags https://github.com/NGSolve/netgen.git refs/tags/v${PV} | cut -c-8 + # git describe --tags --match "v[0-9]*" --long --dirty # cat <<- EOF > "${S}/version.txt" || die - # v${PV}-0-08eec44 + # v${PV}-0-gd1a9f7ee # EOF # 855214 needs git @@ -102,13 +112,26 @@ src_prepare() { -e '/-DBDIR=${CMAKE_CURRENT_BINARY_DIR}/a -DNETGEN_VERSION_GIT=${NETGEN_VERSION_GIT}' \ -i CMakeLists.txt || die - rm external_dependencies -r || die + if use python; then + sed \ + -e "s/Python3_EXECUTABLE/PYTHON_EXECUTABLE/" \ + -i cmake/NetgenConfig.cmake.in || die + fi + + rm -r external_dependencies || die cmake_src_prepare } src_configure() { - filter-lto + # TODO BUG + # /var/tmp/paludis/media-gfx-netgen-6.2.2601/work/netgen-6.2.2601/libsrc/core/simd_sse.hpp: + # In member function ‘int64_t ngcore::SIMD<long int, 2>::Lo() const’: + # /var/tmp/paludis/media-gfx-netgen-6.2.2601/work/netgen-6.2.2601/libsrc/core/simd_sse.hpp:74:48: + # error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] + # 74 | NETGEN_INLINE int64_t Lo() const { return ((int64_t*)(&data))[0]; } + append-cflags -fno-strict-aliasing + append-cxxflags -fno-strict-aliasing local mycmakeargs=( # currently not working in a sandbox, expects netgen to be installed @@ -121,7 +144,7 @@ src_configure() { -DNG_INSTALL_DIR_LIB="$(get_libdir)" -DUSE_CCACHE=OFF # doesn't build with this version - -DUSE_CGNS=OFF + -DUSE_CGNS=no -DUSE_GUI=$(usex gui) -DUSE_INTERNAL_TCL=OFF -DUSE_JPEG=$(usex jpeg) @@ -132,26 +155,37 @@ src_configure() { -DUSE_OCC=$(usex opencascade) -DUSE_PYTHON="$(usex python)" -DUSE_SUPERBUILD=OFF - -DNETGEN_VERSION_GIT="v${PV}" ) + + if [[ ${PV} != *9999* ]]; then + mycmakeargs+=( + -DNETGEN_VERSION_GIT="v${PV}-0-3ee489c7" + ) + fi + # no need to set this, if we only build the library if use gui; then - mycmakeargs+=( -DTK_INCLUDE_PATH="/usr/$(get_libdir)/tk8.6/include" ) + mycmakeargs+=( + -DTK_INCLUDE_PATH="${ESYSROOT}/usr/$(get_libdir)/tk${TCL_SLOT}/include" + ) fi + if use python; then append-cppflags -DPYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF mycmakeargs+=( -DPREFER_SYSTEM_PYBIND11=ON - # # needed, so the value gets passed to NetgenConfig.cmake instead of ${T}/pythonX.Y - # -DPYTHON_EXECUTABLE="${PYTHON}" + # needed, so the value gets passed to NetgenConfig.cmake instead of ${T}/pythonX.Y + -DPYTHON_EXECUTABLE="${PYTHON}" ) fi + if use mpi && use python; then mycmakeargs+=( -DUSE_MPI4PY=ON ) else mycmakeargs+=( -DUSE_MPI4PY=OFF ) fi + cmake_src_configure } @@ -161,19 +195,22 @@ src_test() { if use python; then local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 local -x NETGENDIR="${T}/usr/bin" - export PYTHONPATH="${T}$(python_get_sitedir):${T}/usr/$(get_libdir):${BUILD_DIR}/libsrc/core" + local -x PYTHONPATH="${T}$(python_get_sitedir):${T}/usr/$(get_libdir):${BUILD_DIR}/libsrc/core" fi CMAKE_SKIP_TESTS=( '^unit_symboltable$' - '^pytest$' # SEGFAULT + '^pytest$' # floating point errors '^pytest-mpi$' # needs pytest-mpi ) cmake_src_test + + rm -r "${T}/usr" || die } src_install() { cmake_src_install + use python && python_optimize local NETGENDIR="/usr/share/${PN}" @@ -184,13 +221,13 @@ src_install() { mv "${ED}"/usr/bin/{*.tcl,*.ocf} "${ED}${NETGENDIR}" || die convert -deconstruct "${S}/windows/${PN}.ico" netgen.png || die - newicon -s 32 "${S}"/${PN}-2.png ${PN}.png - newicon -s 16 "${S}"/${PN}-3.png ${PN}.png - make_desktop_entry ${PN} "Netgen" netgen Graphics + newicon -s 32 "${S}/${PN}-2.png" "${PN}.png" + newicon -s 16 "${S}/${PN}-3.png" "${PN}.png" + make_desktop_entry "${PN}" "Netgen" netgen Graphics fi - mv "${ED}"/usr/share/${PN}/doc/ng4.pdf "${ED}"/usr/share/doc/${PF} || die - dosym -r /usr/share/doc/${PF}/ng4.pdf /usr/share/${PN}/doc/ng4.pdf + mv "${ED}/usr/share/${PN}/doc/ng4.pdf" "${ED}/usr/share/doc/${PF}" || die + dosym -r "/usr/share/doc/${PF}/ng4.pdf" "/usr/share/${PN}/doc/ng4.pdf" - use python || rm -r "${ED}${NETGENDIR}"/py_tutorials || die + use python || rm -r "${ED}${NETGENDIR}/py_tutorials" || die } diff --git a/media-gfx/netgen/netgen-6.2.2605.ebuild b/media-gfx/netgen/netgen-6.2.2605.ebuild new file mode 100644 index 000000000000..a3aa60598797 --- /dev/null +++ b/media-gfx/netgen/netgen-6.2.2605.ebuild @@ -0,0 +1,233 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +TCL_SLOT="8.6" +inherit cmake desktop python-single-r1 xdg flag-o-matic + +DESCRIPTION="Automatic 3d tetrahedral mesh generator" +HOMEPAGE="https://ngsolve.org/ https://github.com/NGSolve/netgen" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/NGSolve/netgen.git" +else + SRC_URI=" + https://github.com/NGSolve/netgen/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + " + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="LGPL-2.1" +SLOT="0" + +IUSE="ffmpeg gui jpeg mpi +opencascade python test" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) + ffmpeg? ( gui ) + jpeg? ( gui ) + python? ( gui ) +" + +DEPEND=" + virtual/zlib:= + ffmpeg? ( media-video/ffmpeg:= ) + gui? ( + dev-lang/tcl:0/${TCL_SLOT} + dev-lang/tk:0/${TCL_SLOT} + media-libs/glu + media-libs/libglvnd[X] + x11-libs/libX11 + x11-libs/libXmu + x11-libs/libxcb:= + ) + jpeg? ( media-libs/libjpeg-turbo:0= ) + mpi? ( + sci-libs/metis + virtual/mpi + ) + opencascade? ( sci-libs/opencascade:= ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pybind11[${PYTHON_USEDEP}] + ' + ) + mpi? ( + $(python_gen_cond_dep 'dev-python/mpi4py[${PYTHON_USEDEP}]' ) + ) + ) +" +RDEPEND="${DEPEND}" +BDEPEND=" + sys-apps/lsb-release + virtual/pkgconfig + gui? ( virtual/imagemagick-tools[png] ) + test? ( + dev-cpp/catch + python? ( $(python_gen_cond_dep ' + dev-python/pytest-check[${PYTHON_USEDEP}] + ') ) + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.2.2204-find-Tk-include-directories.patch" + "${FILESDIR}/${PN}-6.2.2406-link-against-ffmpeg.patch" + # "${FILESDIR}/${PN}-6.2.2406-find-libjpeg-turbo-library.patch" + "${FILESDIR}/${PN}-6.2.2301-fix-nullptr-deref-in-archive.patch" + "${FILESDIR}/${PN}-6.2.2406-encoding_h.patch" + "${FILESDIR}/${PN}-6.2.2406-link-against-jpeg.patch" + "${FILESDIR}/${PN}-PR206-catch2-v3.patch" +) + +pkg_setup() { + if use python; then + python-single-r1_pkg_setup + + # # NOTE This calls find_package(Python3) without specifying Interpreter in COMPONENTS. + # # Python3_FIND_UNVERSIONED_NAMES=FIRST is thus never checked and we search the highest python version first. + # pushd "${T}/${EPYTHON}/bin" > /dev/null || die + # cp "python-config" "${EPYTHON}-config" || die + # chmod +x "${EPYTHON}-config" || die + # popd > /dev/null || die + fi +} + +src_prepare() { + # NOTE: need to manually check and update this string on version bumps! + # git ls-remote --tags https://github.com/NGSolve/netgen.git refs/tags/v${PV} | cut -c-8 + # git describe --tags --match "v[0-9]*" --long --dirty + # cat <<- EOF > "${S}/version.txt" || die + # v${PV}-0-gd1a9f7ee + # EOF + + # 855214 needs git + sed \ + -e '/-DBDIR=${CMAKE_CURRENT_BINARY_DIR}/a -DNETGEN_VERSION_GIT=${NETGEN_VERSION_GIT}' \ + -i CMakeLists.txt || die + + if use python; then + sed \ + -e "s/Python3_EXECUTABLE/PYTHON_EXECUTABLE/" \ + -i cmake/NetgenConfig.cmake.in || die + fi + + rm -r external_dependencies || die + + cmake_src_prepare +} + +src_configure() { + # TODO BUG + # /var/tmp/paludis/media-gfx-netgen-6.2.2601/work/netgen-6.2.2601/libsrc/core/simd_sse.hpp: + # In member function ‘int64_t ngcore::SIMD<long int, 2>::Lo() const’: + # /var/tmp/paludis/media-gfx-netgen-6.2.2601/work/netgen-6.2.2601/libsrc/core/simd_sse.hpp:74:48: + # error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] + # 74 | NETGEN_INLINE int64_t Lo() const { return ((int64_t*)(&data))[0]; } + append-cflags -fno-strict-aliasing + append-cxxflags -fno-strict-aliasing + + local mycmakeargs=( + # currently not working in a sandbox, expects netgen to be installed + # see https://github.com/NGSolve/netgen/issues/132 + -DBUILD_STUB_FILES=OFF + -DENABLE_UNIT_TESTS=$(usex test) + -DINSTALL_PROFILES=OFF + -DNG_INSTALL_DIR_CMAKE="$(get_libdir)/cmake/${PN}" + -DNG_INSTALL_DIR_INCLUDE="include/${PN}" + -DNG_INSTALL_DIR_LIB="$(get_libdir)" + -DUSE_CCACHE=OFF + # doesn't build with this version + -DUSE_CGNS=no + -DUSE_GUI=$(usex gui) + -DUSE_INTERNAL_TCL=OFF + -DUSE_JPEG=$(usex jpeg) + -DUSE_MPEG=$(usex ffmpeg) + # respect users -march= choice + -DUSE_NATIVE_ARCH=OFF + -DUSE_MPI=$(usex mpi) + -DUSE_OCC=$(usex opencascade) + -DUSE_PYTHON="$(usex python)" + -DUSE_SUPERBUILD=OFF + ) + + if [[ ${PV} != *9999* ]]; then + mycmakeargs+=( + -DNETGEN_VERSION_GIT="v${PV}-0-3ee489c7" + ) + fi + + # no need to set this, if we only build the library + if use gui; then + mycmakeargs+=( + -DTK_INCLUDE_PATH="${ESYSROOT}/usr/$(get_libdir)/tk${TCL_SLOT}/include" + ) + fi + + if use python; then + append-cppflags -DPYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF + + mycmakeargs+=( + -DPREFER_SYSTEM_PYBIND11=ON + # needed, so the value gets passed to NetgenConfig.cmake instead of ${T}/pythonX.Y + -DPYTHON_EXECUTABLE="${PYTHON}" + ) + fi + + if use mpi && use python; then + mycmakeargs+=( -DUSE_MPI4PY=ON ) + else + mycmakeargs+=( -DUSE_MPI4PY=OFF ) + fi + + cmake_src_configure +} + +src_test() { + DESTDIR="${T}" cmake_build install + + if use python; then + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x NETGENDIR="${T}/usr/bin" + local -x PYTHONPATH="${T}$(python_get_sitedir):${T}/usr/$(get_libdir):${BUILD_DIR}/libsrc/core" + fi + + CMAKE_SKIP_TESTS=( + '^unit_symboltable$' + '^pytest$' # floating point errors + '^pytest-mpi$' # needs pytest-mpi + ) + cmake_src_test + + rm -r "${T}/usr" || die +} + +src_install() { + cmake_src_install + + use python && python_optimize + + local NETGENDIR="/usr/share/${PN}" + echo -e "NETGENDIR=${NETGENDIR}" > ./99netgen || die + doenvd 99netgen + + if use gui; then + mv "${ED}"/usr/bin/{*.tcl,*.ocf} "${ED}${NETGENDIR}" || die + + convert -deconstruct "${S}/windows/${PN}.ico" netgen.png || die + newicon -s 32 "${S}/${PN}-2.png" "${PN}.png" + newicon -s 16 "${S}/${PN}-3.png" "${PN}.png" + make_desktop_entry "${PN}" "Netgen" netgen Graphics + fi + + mv "${ED}/usr/share/${PN}/doc/ng4.pdf" "${ED}/usr/share/doc/${PF}" || die + dosym -r "/usr/share/doc/${PF}/ng4.pdf" "/usr/share/${PN}/doc/ng4.pdf" + + use python || rm -r "${ED}${NETGENDIR}/py_tutorials" || die +} diff --git a/media-gfx/netgen/netgen-6.2.2501-r1.ebuild b/media-gfx/netgen/netgen-9999.ebuild index a9f482e7765f..4847629995c2 100644 --- a/media-gfx/netgen/netgen-6.2.2501-r1.ebuild +++ b/media-gfx/netgen/netgen-9999.ebuild @@ -3,22 +3,31 @@ EAPI=8 -PYTHON_COMPAT=( python3_{12..13} ) -inherit cmake desktop flag-o-matic python-single-r1 xdg +PYTHON_COMPAT=( python3_{12..14} ) +TCL_SLOT="8.6" +inherit cmake desktop python-single-r1 xdg flag-o-matic DESCRIPTION="Automatic 3d tetrahedral mesh generator" HOMEPAGE="https://ngsolve.org/ https://github.com/NGSolve/netgen" -SRC_URI="https://github.com/NGSolve/netgen/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/NGSolve/netgen.git" +else + SRC_URI=" + https://github.com/NGSolve/netgen/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + " + KEYWORDS="~amd64 ~x86" +fi LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="amd64 ~x86" IUSE="ffmpeg gui jpeg mpi +opencascade python test" RESTRICT="!test? ( test )" REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} + python? ( ${PYTHON_REQUIRED_USE} ) ffmpeg? ( gui ) jpeg? ( gui ) python? ( gui ) @@ -28,8 +37,8 @@ DEPEND=" virtual/zlib:= ffmpeg? ( media-video/ffmpeg:= ) gui? ( - dev-lang/tcl:0/8.6 - dev-lang/tk:0/8.6 + dev-lang/tcl:0/${TCL_SLOT} + dev-lang/tk:0/${TCL_SLOT} media-libs/glu media-libs/libglvnd[X] x11-libs/libX11 @@ -45,6 +54,7 @@ DEPEND=" python? ( ${PYTHON_DEPS} $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] dev-python/pybind11[${PYTHON_USEDEP}] ' ) @@ -59,7 +69,7 @@ BDEPEND=" virtual/pkgconfig gui? ( virtual/imagemagick-tools[png] ) test? ( - <dev-cpp/catch-3:0 + dev-cpp/catch python? ( $(python_gen_cond_dep ' dev-python/pytest-check[${PYTHON_USEDEP}] ') ) @@ -69,24 +79,24 @@ BDEPEND=" PATCHES=( "${FILESDIR}/${PN}-6.2.2204-find-Tk-include-directories.patch" "${FILESDIR}/${PN}-6.2.2406-link-against-ffmpeg.patch" - "${FILESDIR}/${PN}-6.2.2204-use-system-catch.patch" # "${FILESDIR}/${PN}-6.2.2406-find-libjpeg-turbo-library.patch" "${FILESDIR}/${PN}-6.2.2301-fix-nullptr-deref-in-archive.patch" "${FILESDIR}/${PN}-6.2.2406-encoding_h.patch" "${FILESDIR}/${PN}-6.2.2406-link-against-jpeg.patch" "${FILESDIR}/${PN}-PR202-std_map.patch" + "${FILESDIR}/${PN}-PR206-catch2-v3.patch" ) pkg_setup() { if use python; then python-single-r1_pkg_setup - # NOTE This calls find_package(Python3) without specifying Interpreter in COMPONENTS. - # Python3_FIND_UNVERSIONED_NAMES=FIRST is thus never checked and we search the highest python version first. - pushd "${T}/${EPYTHON}/bin" > /dev/null || die - cp "python-config" "${EPYTHON}-config" || die - chmod +x "${EPYTHON}-config" || die - popd > /dev/null || die + # # NOTE This calls find_package(Python3) without specifying Interpreter in COMPONENTS. + # # Python3_FIND_UNVERSIONED_NAMES=FIRST is thus never checked and we search the highest python version first. + # pushd "${T}/${EPYTHON}/bin" > /dev/null || die + # cp "python-config" "${EPYTHON}-config" || die + # chmod +x "${EPYTHON}-config" || die + # popd > /dev/null || die fi } @@ -115,6 +125,15 @@ src_prepare() { } src_configure() { + # TODO BUG + # /var/tmp/paludis/media-gfx-netgen-6.2.2601/work/netgen-6.2.2601/libsrc/core/simd_sse.hpp: + # In member function ‘int64_t ngcore::SIMD<long int, 2>::Lo() const’: + # /var/tmp/paludis/media-gfx-netgen-6.2.2601/work/netgen-6.2.2601/libsrc/core/simd_sse.hpp:74:48: + # error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] + # 74 | NETGEN_INLINE int64_t Lo() const { return ((int64_t*)(&data))[0]; } + append-cflags -fno-strict-aliasing + append-cxxflags -fno-strict-aliasing + local mycmakeargs=( # currently not working in a sandbox, expects netgen to be installed # see https://github.com/NGSolve/netgen/issues/132 @@ -137,14 +156,18 @@ src_configure() { -DUSE_OCC=$(usex opencascade) -DUSE_PYTHON="$(usex python)" -DUSE_SUPERBUILD=OFF - - -DNETGEN_VERSION_GIT="v${PV}-0-gd1a9f7ee" ) + if [[ ${PV} != *9999* ]]; then + mycmakeargs+=( + -DNETGEN_VERSION_GIT="v${PV}-0-gentoo" + ) + fi + # no need to set this, if we only build the library if use gui; then mycmakeargs+=( - -DTK_INCLUDE_PATH="${ESYSROOT}/usr/$(get_libdir)/tk8.6/include" + -DTK_INCLUDE_PATH="${ESYSROOT}/usr/$(get_libdir)/tk${TCL_SLOT}/include" ) fi diff --git a/media-gfx/openscad/Manifest b/media-gfx/openscad/Manifest index 0bcd7c55215f..5c630d93614e 100644 --- a/media-gfx/openscad/Manifest +++ b/media-gfx/openscad/Manifest @@ -1,3 +1,6 @@ DIST openscad-2025.05.01_pre.tar.gz 24447451 BLAKE2B fb7575d254e8c80028c639493515c008cfaa23c6d98cd4857c6d71161451a90d8fcbc43c56202902eab3e6eea5a5e8c7df77a9d25d37247315b3aba8b4e3658a SHA512 6eaf7c9b0998d2cc02573aa148a36aa2fe8a7082a5b16f29f4848e95944db63e5948fbcc3aec91833517ff20740fa24e3b104e77a1052c7771630c57b4696b1f +DIST openscad-2026.08.19_pre.tar.gz 25435733 BLAKE2B ba09e5c9779f916e8afe3e312fa9bdef0cc725767e5b478ee12e96e0810cc3effd16d594ddfe43de5d89ea66af28ed769ec50ea6e86aa2ef825482aff37b386d SHA512 35794b5464fa8bdbb1b2d6f958449dbddc414d2645428dab1dd2ee6b90f6937d8fe9e02b39ed226b35bcdc734b13822503afcf22cae4ca6fafc68d6f942c4bf2 +DIST openscad-MCAD-1ea402208c3127ffb443931e9bb1681c191dacca.tar.gz 56943 BLAKE2B fd03ab73efa39143ef39b1caa50e5edca8ca10526c7e81744a127986bd78a6095d28e81f30ce4f07c690fa62a1eb1d3322f9efccb1fbf0c6bc699ebf1ac0ccc8 SHA512 5c51384c56024a07ff4f00a5567ee0b6c7c0eea5ca1eafde651deab1d178f545cb41a48c0ced35f579cd62758168f51a39767cb23aa91828efd3ca11664fda6d DIST openscad-MCAD-bd0a7ba3f042bfbced5ca1894b236cea08904e26.tar.gz 58895 BLAKE2B e154a38e1c36873a34f7c80b8fa484e4bbcb1b0c217e15b977e6cedc9a83fd2e1518791f9a58a4f0e893c2a55947d7eaddb660d8b725eca048c30f0ea41cf14a SHA512 c6208a90f6a58ebdc0477d3e1b6be2f52e4ce976ac619a87818437cb9696b7e83285564fde757d32efaf50033d5217b55f67b6ce342250de838dd09fef334f36 DIST sanitizers-cmake-0573e2ea8651b9bb3083f193c41eb086497cc80a.tar.gz 7495 BLAKE2B 57efaac8861755fd7fe3a9c9db2a68f775169ef82b91fbcf44da375540dce7673f319908c0d1a8ac324584bc217f9e2a1e27d6f935fe84f1f640049324ea3b24 SHA512 80d1c471492a771b12291e36cc7523e65c8f9add5b14643c9554156bbcc3e1753772054998306c3f89d33b7f5c9969e89670e16428a72040033b41329c9cb71b +DIST sanitizers-cmake-bcb1fc68616e9645ca5acea2992412606373ab04.tar.gz 7491 BLAKE2B bec8e2d788da9fca5303fd51254944f54d6e1f0e9f35b7dac80995629a962bd33858fdb4edd6134eaff6e36acea374b0ccb1b4aa65369bfbfc04da5d6105e8f1 SHA512 f90b01f8f09c536a673de3a25bd5926bac2007b7698740b63b8589570177e34eef4132b0d93cfd6a15330b2b6b6a86b55807b0c797343daaf2d41b24dec00162 diff --git a/media-gfx/openscad/openscad-2026.08.19_pre.ebuild b/media-gfx/openscad/openscad-2026.08.19_pre.ebuild new file mode 100644 index 000000000000..9dd87c5b1678 --- /dev/null +++ b/media-gfx/openscad/openscad-2026.08.19_pre.ebuild @@ -0,0 +1,407 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# verify QT_XCB_GL_INTEGRATION= breakage via alaric/SeanFenian + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +inherit cmake flag-o-matic optfeature python-single-r1 virtualx xdg + +DESCRIPTION="The Programmers Solid 3D CAD Modeller" +HOMEPAGE="https://openscad.org/" + +# TODO +# NOTE the build system sets up a venv for tests, we could use imagemagick with -DUSE_IMAGE_COMPARE_PY="no" + +if [[ ${PV} = *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/openscad/openscad.git" + EGIT_SUBMODULES=( + '*' + '-Clipper2' + '-mimalloc' + '-submodules/manifold' + '-OpenCSG' + ) +else + if [[ ${PV} = *pre* ]] ; then + COMMIT="019c069c3c07ed9c280e643f2c156104736cebd0" + SANITIZERS_CMAKE_COMMIT="bcb1fc68616e9645ca5acea2992412606373ab04" + MCAD_COMMIT="1ea402208c3127ffb443931e9bb1681c191dacca" + + SRC_URI=" + https://github.com/openscad/openscad/archive/${COMMIT}.tar.gz + -> ${P}.tar.gz + https://github.com/arsenm/sanitizers-cmake/archive/${SANITIZERS_CMAKE_COMMIT}.tar.gz + -> sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}.tar.gz + test? ( + https://github.com/openscad/MCAD/archive/${MCAD_COMMIT}.tar.gz -> ${PN}-MCAD-${MCAD_COMMIT}.tar.gz + ) + " + # doc downloads are not versioned and found at: + # https://files.openscad.org/documentation/ + S="${WORKDIR}/${PN}-${COMMIT}" + else + SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.src.tar.gz -> ${P}.tar.gz" + fi + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +# Code is GPL-3+, MCAD library is LGPL-2.1 +LICENSE="GPL-3+ LGPL-2.1" +SLOT="0" + +IUSE="+cgal dbus +egl experimental glx +gui hidapi +manifold mimalloc pdf +python spacenav test" +RESTRICT="!test? ( test )" + # ?? ( glad glew ) + # || ( cgal manifold ) +REQUIRED_USE=" + || ( egl glx ) + dbus? ( gui ) + hidapi? ( gui ) + manifold? ( cgal ) + python? ( ${PYTHON_REQUIRED_USE} ) + spacenav? ( gui ) +" + +RDEPEND=" + dev-cpp/eigen:= + dev-libs/boost:= + dev-libs/double-conversion:= + dev-libs/glib:2 + dev-libs/libxml2:= + dev-libs/libzip:= + >=media-gfx/opencsg-1.7.0:= + media-libs/fontconfig + media-libs/freetype + media-libs/harfbuzz:= + media-libs/lib3mf:= + media-libs/libglvnd + >=sci-mathematics/clipper2-1.5.2:= + cgal? ( + sci-mathematics/cgal:= + ) + glx? ( + media-libs/libglvnd[X] + ) + gui? ( + dev-qt/qt5compat:6 + dev-qt/qtbase:6[concurrent,dbus?,-gles2-only,network,opengl,widgets] + dev-qt/qtmultimedia:6 + dev-qt/qtsvg:6 + >=x11-libs/qscintilla-2.14.1-r1:=[qt6(+)] + ) + hidapi? ( dev-libs/hidapi ) + manifold? ( + dev-cpp/tbb:= + >=sci-mathematics/manifold-3.0.2_pre20250330:= + ) + mimalloc? ( dev-libs/mimalloc:= ) + pdf? ( x11-libs/cairo ) + python? ( + ${PYTHON_DEPS} + dev-libs/nettle:= + ) + spacenav? ( dev-libs/libspnav ) +" +DEPEND=" + ${RDEPEND} + test? ( + >=dev-cpp/catch-3 + ) +" +BDEPEND=" + app-alternatives/yacc + app-alternatives/lex + dev-util/itstool + sys-devel/gettext + virtual/pkgconfig + test? ( + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pillow[${PYTHON_USEDEP}] + dev-python/pip[${PYTHON_USEDEP}] + ') + gui-wm/tinywl + python? ( + ${PYTHON_DEPS} + ) + !python? ( + media-gfx/imagemagick + ) + ) +" + +DOCS=( + README.md + RELEASE_NOTES.md + doc/contributor_copyright.txt + # doc/hacking.md + # doc/testing.md + doc/translation.txt +) + +# NOTE the build system sets up a venv for tests, we could use imagemagick with -DUSE_IMAGE_COMPARE_PY="no" +python_check_deps() { + python_has_version -b \ + "dev-python/numpy[${PYTHON_USEDEP}]" \ + "dev-python/pillow[${PYTHON_USEDEP}]" \ + "dev-python/pip[${PYTHON_USEDEP}]" +} + +pkg_setup() { + if use python || use test ; then + python-single-r1_pkg_setup + fi +} + +src_prepare() { + if use test && [[ ${PV} != *9999* ]] ; then + mv -f "${WORKDIR}/MCAD-${MCAD_COMMIT}"/* "${S}/libraries/MCAD/" || die + fi + + # NOTE adhere CMP0167 + # https://cmake.org/cmake/help/latest/policy/CMP0167.html + sed \ + -e '/find_package(Boost/s/)/ CONFIG)/g' \ + -i CMakeLists.txt || die + + cmake_src_prepare +} + +src_configure() { + # -Werror=odr + # https://github.com/openscad/openscad/issues/5239 + filter-lto + + local mycmakeargs=( + -DINFO="yes" + -DUSE_MANIFOLD_TRIANGULATOR="$(usex manifold)" + -DUSE_MANIFOLD_MINKOWSKI="$(usex manifold "no")" # experimental + -DBUILD_SHARED_LIBS="yes" + + -DCLANG_TIDY="no" + -DENABLE_CAIRO="$(usex pdf)" + -DENABLE_CGAL="$(usex cgal)" + -DENABLE_EGL="$(usex egl)" + -DENABLE_GAMEPAD="no" + -DENABLE_GLX="$(usex glx)" + -DENABLE_MANIFOLD="$(usex manifold)" + -DENABLE_PYTHON="$(usex python)" + -DENABLE_TESTS="$(usex test)" + + -DEXPERIMENTAL="$(usex experimental)" + + -DUSE_BUILTIN_CLIPPER2="no" + -DUSE_BUILTIN_MANIFOLD="no" + -DUSE_BUILTIN_OPENCSG="no" + + -DUSE_CCACHE="no" + + # For now, we'll default to whatever OpenCSG uses (>=1.6 -> GLAD, <1.6 -> GLEW) + -DUSE_GLAD="$(usex gui)" + -DUSE_GLEW="no" + -DHEADLESS="$(usex !gui)" + -DNULLGL="$(usex !gui)" + + -DUSE_IMAGE_COMPARE_PY="$(usex python)" + -DUSE_MIMALLOC="$(usex mimalloc)" + -DUSE_QT6="$(usex gui)" + -DOFFLINE_DOCS="no" # TODO + -DOPENCSG_DIR="${EPREFIX}/usr/$(get_libdir)" + ) + + if use gui; then + mycmakeargs+=( + -DENABLE_HIDAPI="$(usex hidapi)" + -DENABLE_GUI_TESTS="$(usex gui)" + -DENABLE_QTDBUS="$(usex dbus)" + -DENABLE_SPNAV="$(usex spacenav)" + ) + fi + + if [[ ${PV} != *9999* ]] ; then + mycmakeargs+=( + -DCMAKE_MODULE_PATH="${WORKDIR}/sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}/cmake" + ) + if [[ ${PV} = *pre* ]] ; then + mycmakeargs+=( + -DOPENSCAD_COMMIT="${COMMIT:0:9}" + -DOPENSCAD_VERSION="$(ver_cut 1-3)" + -DSNAPSHOT="yes" + ) + fi + else + mycmakeargs+=( + -DOPENSCAD_COMMIT="${COMMIT:0:9}" + -DSNAPSHOT="yes" + ) + fi + + cmake_src_configure +} + +hardware_add_gpu_sandbox() { + local dri cards PREDICT=() WRITE=() + + # mesa will make use of udmabuf if it exists + if [[ -c "/dev/udmabuf" ]]; then + WRITE+=( + "/dev/udmabuf" + ) + fi + + # /dev/dri/card[%d] + # /dev/dri/renderD[128+%d] + readarray -t dri <<<"$( + find /sys/class/drm/*/device/drm \ + -mindepth 1 -maxdepth 1 -type d -exec basename {} \; \ + | sort | uniq | sed 's:^:/dev/dri/:' + )" + + [[ -n "${dri[*]}" ]] && WRITE+=( "${dri[@]}" ) + + if [[ -d /sys/module/nvidia ]]; then + # stat --printf="%Hr:%Lr" + PREDICT+=( + # /dev/char/195:X # ../nvidiaX + # /dev/char/195:254 # ../nvidia-modeset + # /dev/char/195:255 # ../nvidiactl + /dev/char/ + ) + + # /dev/nvidia{0-9} + readarray -t nvidia_devs <<<"$( + find /dev -regextype posix-extended -regex '/dev/nvidia(|-(nvswitch|vgpu))[0-9]*' + )" + [[ -n "${nvidia_devs[*]}" ]] && WRITE+=( "${nvidia_devs[@]}" ) + + WRITE+=( + "/dev/nvidiactl" + "/dev/nvidia-caps/" + + "/dev/nvidia-modeset" + + "/dev/nvidia-uvm" + "/dev/nvidia-uvm-tools" + ) + fi + + WRITE+=( + # for portage + "/proc/self/task/" + ) + + local dev + for dev in "${WRITE[@]}"; do + if [[ ! -e "${dev}" ]]; then + eqawarn "${dev} does not exist" + continue + fi + + if [[ -w "${dev}" ]]; then + eqawarn "${dev} is already writable" + continue + fi + + addwrite "${dev}" + + if [[ ! -d "${dev}" ]] && [[ ! -w "${dev}" ]]; then + eerror "can not access ${dev} after addwrite" + fi + done + + for dev in "${PREDICT[@]}"; do + if [[ ! -e "${dev}" ]]; then + eqawarn "${dev} does not exist" + continue + fi + + addpredict "${dev}" + done +} + +virtwl() { + debug-print-function "${FUNCNAME[0]}" "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME[0]} needs at least one argument" + + # [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME[0]} 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 -r WAYLAND_DISPLAY <&"${VIRTWL[0]}" + + debug-print "${FUNCNAME[0]}: $*" + nonfatal "${@}" + local r="${?}" + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + + if [[ "${r}" -ne 0 ]]; then + die -n "${*} failed" + fi + + return "${r}" +} + +src_test() { + hardware_add_gpu_sandbox + + sed \ + -e "s/OPENSCAD_BINARY/OPENSCADPATH/g" \ + -i tests/test_cmdline_tool.py || die + + cd "${BUILD_DIR}" || die + + # NOTE link in from CMAKE_USE_DIR + ln -s "${CMAKE_USE_DIR}/color-schemes" . || die + ln -s "${CMAKE_USE_DIR}/locale" . || die + ln -s "${CMAKE_USE_DIR}/shaders" . || die + + local CMAKE_SKIP_TESTS=( + # just skip all issue tests all together + # "_issue[0-9]*$" + + # fails + "_spec-paths-arcs01$" + "_issue6607$" + ) + + if ! has_version app-text/ghostscript-gpl ; then + CMAKE_SKIP_TESTS+=( + # needs GS + "^export-pdf_centered$" + "^export-pdf_simple-pdf$" + ) + fi + + local -x GIT_DIR="${CMAKE_USE_DIR}/.git" + + if use egl; then + xdg_environment_reset + virtwl cmake_src_test + else + virtx cmake_src_test + fi +} + +src_install() { + DOCS+=( doc/*.pdf ) + + cmake_src_install + + mv -i "${ED}"/usr/share/openscad/locale "${ED}"/usr/share || die "failed to move locales" + dosym -r /usr/share/locale /usr/share/openscad/locale +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature "support scad major mode in GNU Emacs" app-emacs/scad-mode +} diff --git a/media-gfx/openscad/openscad-9999.ebuild b/media-gfx/openscad/openscad-9999.ebuild index fffe5a59bc44..ce3100c5a5c1 100644 --- a/media-gfx/openscad/openscad-9999.ebuild +++ b/media-gfx/openscad/openscad-9999.ebuild @@ -1,28 +1,34 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# verify QT_XCB_GL_INTEGRATION= breakage via alaric/SeanFenian + EAPI=8 PYTHON_COMPAT=( python3_{12..14} ) -inherit cmake flag-o-matic optfeature python-any-r1 virtualx xdg +inherit cmake flag-o-matic optfeature python-single-r1 virtualx xdg DESCRIPTION="The Programmers Solid 3D CAD Modeller" HOMEPAGE="https://openscad.org/" +# TODO +# NOTE the build system sets up a venv for tests, we could use imagemagick with -DUSE_IMAGE_COMPARE_PY="no" + if [[ ${PV} = *9999* ]] ; then inherit git-r3 EGIT_REPO_URI="https://github.com/openscad/openscad.git" EGIT_SUBMODULES=( '*' + '-Clipper2' '-mimalloc' '-submodules/manifold' '-OpenCSG' ) else if [[ ${PV} = *pre* ]] ; then - COMMIT="f3cac59bf973502ad4b278fd3f20298f9bc2fc84" - SANITIZERS_CMAKE_COMMIT="0573e2ea8651b9bb3083f193c41eb086497cc80a" - MCAD_COMMIT="bd0a7ba3f042bfbced5ca1894b236cea08904e26" + COMMIT="019c069c3c07ed9c280e643f2c156104736cebd0" + SANITIZERS_CMAKE_COMMIT="bcb1fc68616e9645ca5acea2992412606373ab04" + MCAD_COMMIT="1ea402208c3127ffb443931e9bb1681c191dacca" SRC_URI=" https://github.com/openscad/openscad/archive/${COMMIT}.tar.gz @@ -46,15 +52,17 @@ fi LICENSE="GPL-3+ LGPL-2.1" SLOT="0" -IUSE="cgal dbus +egl experimental glx +gui hidapi +manifold mimalloc pdf spacenav test" +IUSE="+cgal dbus +egl experimental glx +gui hidapi +manifold mimalloc pdf +python spacenav test" RESTRICT="!test? ( test )" - + # ?? ( glad glew ) + # || ( cgal manifold ) REQUIRED_USE=" - || ( cgal manifold ) + || ( egl glx ) dbus? ( gui ) hidapi? ( gui ) + manifold? ( cgal ) + python? ( ${PYTHON_REQUIRED_USE} ) spacenav? ( gui ) - || ( egl glx ) " RDEPEND=" @@ -70,7 +78,7 @@ RDEPEND=" media-libs/harfbuzz:= media-libs/lib3mf:= media-libs/libglvnd - >=sci-mathematics/clipper2-1.5.2 + >=sci-mathematics/clipper2-1.5.2:= cgal? ( sci-mathematics/cgal:= ) @@ -91,10 +99,17 @@ RDEPEND=" ) mimalloc? ( dev-libs/mimalloc:= ) pdf? ( x11-libs/cairo ) + python? ( + ${PYTHON_DEPS} + dev-libs/nettle:= + ) spacenav? ( dev-libs/libspnav ) " DEPEND=" ${RDEPEND} + test? ( + >=dev-cpp/catch-3 + ) " BDEPEND=" app-alternatives/yacc @@ -103,11 +118,18 @@ BDEPEND=" sys-devel/gettext virtual/pkgconfig test? ( - $(python_gen_any_dep ' + $(python_gen_cond_dep ' dev-python/numpy[${PYTHON_USEDEP}] dev-python/pillow[${PYTHON_USEDEP}] dev-python/pip[${PYTHON_USEDEP}] ') + gui-wm/tinywl + python? ( + ${PYTHON_DEPS} + ) + !python? ( + media-gfx/imagemagick + ) ) " @@ -115,20 +137,23 @@ DOCS=( README.md RELEASE_NOTES.md doc/contributor_copyright.txt - doc/hacking.md - doc/testing.txt + # doc/hacking.md + # doc/testing.md doc/translation.txt ) # NOTE the build system sets up a venv for tests, we could use imagemagick with -DUSE_IMAGE_COMPARE_PY="no" python_check_deps() { - python_has_version "dev-python/numpy[${PYTHON_USEDEP}]" && - python_has_version "dev-python/pillow[${PYTHON_USEDEP}]" && - python_has_version "dev-python/pip[${PYTHON_USEDEP}]" + python_has_version -b \ + "dev-python/numpy[${PYTHON_USEDEP}]" \ + "dev-python/pillow[${PYTHON_USEDEP}]" \ + "dev-python/pip[${PYTHON_USEDEP}]" } pkg_setup() { - use test && python-any-r1_pkg_setup + if use python || use test ; then + python-single-r1_pkg_setup + fi } src_prepare() { @@ -151,23 +176,36 @@ src_configure() { filter-lto local mycmakeargs=( + -DINFO="yes" + -DUSE_MANIFOLD_TRIANGULATOR="$(usex manifold)" + -DUSE_MANIFOLD_MINKOWSKI="$(usex manifold "no")" # experimental + -DBUILD_SHARED_LIBS="yes" + -DCLANG_TIDY="no" -DENABLE_CAIRO="$(usex pdf)" -DENABLE_CGAL="$(usex cgal)" -DENABLE_EGL="$(usex egl)" + -DENABLE_GAMEPAD="no" -DENABLE_GLX="$(usex glx)" -DENABLE_MANIFOLD="$(usex manifold)" - -DENABLE_PYTHON="no" + -DENABLE_PYTHON="$(usex python)" -DENABLE_TESTS="$(usex test)" -DEXPERIMENTAL="$(usex experimental)" - -DHEADLESS="$(usex !gui)" -DUSE_BUILTIN_CLIPPER2="no" -DUSE_BUILTIN_MANIFOLD="no" + -DUSE_BUILTIN_OPENCSG="no" + -DUSE_CCACHE="no" - -DUSE_GLAD="yes" + + # For now, we'll default to whatever OpenCSG uses (>=1.6 -> GLAD, <1.6 -> GLEW) + -DUSE_GLAD="$(usex gui)" -DUSE_GLEW="no" + -DHEADLESS="$(usex !gui)" + -DNULLGL="$(usex !gui)" + + -DUSE_IMAGE_COMPARE_PY="$(usex python)" -DUSE_MIMALLOC="$(usex mimalloc)" -DUSE_QT6="$(usex gui)" -DOFFLINE_DOCS="no" # TODO @@ -177,6 +215,7 @@ src_configure() { if use gui; then mycmakeargs+=( -DENABLE_HIDAPI="$(usex hidapi)" + -DENABLE_GUI_TESTS="$(usex gui)" -DENABLE_QTDBUS="$(usex dbus)" -DENABLE_SPNAV="$(usex spacenav)" ) @@ -203,8 +242,8 @@ src_configure() { cmake_src_configure } -src_test() { - local i WRITE=() +hardware_add_gpu_sandbox() { + local dri cards PREDICT=() WRITE=() # mesa will make use of udmabuf if it exists if [[ -c "/dev/udmabuf" ]]; then @@ -213,24 +252,37 @@ src_test() { ) fi + # /dev/dri/card[%d] + # /dev/dri/renderD[128+%d] + readarray -t dri <<<"$( + find /sys/class/drm/*/device/drm \ + -mindepth 1 -maxdepth 1 -type d -exec basename {} \; \ + | sort | uniq | sed 's:^:/dev/dri/:' + )" + + [[ -n "${dri[*]}" ]] && WRITE+=( "${dri[@]}" ) + if [[ -d /sys/module/nvidia ]]; then - # /dev/dri/card* - # /dev/dri/renderD* - readarray -t dri <<<"$( - find /sys/module/nvidia/drivers/*/*:*:*.*/drm \ - -mindepth 1 -maxdepth 1 -type d -exec basename {} \; \ - | sed 's:^:/dev/dri/:' - )" + # stat --printf="%Hr:%Lr" + PREDICT+=( + # /dev/char/195:X # ../nvidiaX + # /dev/char/195:254 # ../nvidia-modeset + # /dev/char/195:255 # ../nvidiactl + /dev/char/ + ) # /dev/nvidia{0-9} - readarray -t cards <<<"$(find /dev -regextype sed -regex '/dev/nvidia[0-9]*')" + readarray -t nvidia_devs <<<"$( + find /dev -regextype posix-extended -regex '/dev/nvidia(|-(nvswitch|vgpu))[0-9]*' + )" + [[ -n "${nvidia_devs[*]}" ]] && WRITE+=( "${nvidia_devs[@]}" ) WRITE+=( - "${dri[@]}" - "${cards[@]}" "/dev/nvidiactl" "/dev/nvidia-caps/" + "/dev/nvidia-modeset" + "/dev/nvidia-uvm" "/dev/nvidia-uvm-tools" ) @@ -240,18 +292,66 @@ src_test() { # for portage "/proc/self/task/" ) - for i in "${WRITE[@]}"; do - if [[ ! -w "$i" ]]; then - eqawarn "addwrite $i" - addwrite "$i" - if [[ ! -d "$i" ]] && [[ ! -w "$i" ]]; then - eqawarn "can not access $i after addwrite" - fi + local dev + for dev in "${WRITE[@]}"; do + if [[ ! -e "${dev}" ]]; then + eqawarn "${dev} does not exist" + continue + fi + + if [[ -w "${dev}" ]]; then + eqawarn "${dev} is already writable" + continue + fi + + addwrite "${dev}" + + if [[ ! -d "${dev}" ]] && [[ ! -w "${dev}" ]]; then + eerror "can not access ${dev} after addwrite" fi done - addpredict "/dev/char/" + for dev in "${PREDICT[@]}"; do + if [[ ! -e "${dev}" ]]; then + eqawarn "${dev} does not exist" + continue + fi + + addpredict "${dev}" + done +} + +virtwl() { + debug-print-function "${FUNCNAME[0]}" "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME[0]} needs at least one argument" + + # [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME[0]} 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 -r WAYLAND_DISPLAY <&"${VIRTWL[0]}" + + debug-print "${FUNCNAME[0]}: $*" + nonfatal "${@}" + local r="${?}" + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + + if [[ "${r}" -ne 0 ]]; then + die -n "${*} failed" + fi + + return "${r}" +} + +src_test() { + hardware_add_gpu_sandbox sed \ -e "s/OPENSCAD_BINARY/OPENSCADPATH/g" \ @@ -264,7 +364,18 @@ src_test() { ln -s "${CMAKE_USE_DIR}/locale" . || die ln -s "${CMAKE_USE_DIR}/shaders" . || die - local -x CMAKE_SKIP_TESTS=() + if [[ ! -d tests/data/image ]]; then + ln -sr "${CMAKE_USE_DIR}/tests/data/image" tests/data/image || die + fi + + local CMAKE_SKIP_TESTS=( + # just skip all issue tests all together + # "_issue[0-9]*$" + + # fails + "_spec-paths-arcs01$" + "_issue6607$" + ) if ! has_version app-text/ghostscript-gpl ; then CMAKE_SKIP_TESTS+=( @@ -274,7 +385,14 @@ src_test() { ) fi - virtx cmake_src_test + local -x GIT_DIR="${CMAKE_USE_DIR}/.git" + + if use egl; then + xdg_environment_reset + virtwl cmake_src_test + else + virtx cmake_src_test + fi } src_install() { diff --git a/media-libs/SoQt/SoQt-1.6.4-r1.ebuild b/media-libs/SoQt/SoQt-1.6.4-r1.ebuild new file mode 100644 index 000000000000..3db848d95347 --- /dev/null +++ b/media-libs/SoQt/SoQt-1.6.4-r1.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="GUI binding for using Coin/Open Inventor with Qt" +HOMEPAGE="https://github.com/coin3d/soqt https://github.com/coin3d/coin/wiki" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/coin3d/${PN,,}.git" +else + SRC_URI="https://github.com/coin3d/${PN,,}/releases/download/v${PV}/${P/${PN}/${PN,,}}-src.tar.gz" + S="${WORKDIR}/${PN,,}" + + KEYWORDS="amd64 x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug doc test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-qt/qtbase:6[gui,opengl,widgets] + media-libs/coin + virtual/opengl[X] + x11-libs/libX11 + x11-libs/libXi +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + x11-base/xorg-proto + doc? ( app-text/doxygen ) +" + +DOCS=( + AUTHORS + ChangeLog + HACKING + NEWS + README +) + +src_configure() { + use debug && CMAKE_BUILD_TYPE="Debug" + + local mycmakeargs=( + -D${PN^^}_BUILD_SHARED_LIBS="yes" + + -D${PN^^}_BUILD_AWESOME_DOCUMENTATION="$(usex doc)" + -D${PN^^}_BUILD_DOCUMENTATION="$(usex doc)" + -D${PN^^}_BUILD_DOC_MAN="$(usex doc)" + -D${PN^^}_BUILD_INTERNAL_DOCUMENTATION="no" + + # Interactive test programs + -D${PN^^}_BUILD_TESTS="$(usex test)" + -D${PN^^}_USE_QT5="no" + -D${PN^^}_USE_QT6="yes" + -D${PN^^}_VERBOSE="$(usex debug)" + ) + + cmake_src_configure +} diff --git a/media-libs/SoQt/SoQt-1.6.4.ebuild b/media-libs/SoQt/SoQt-1.6.4.ebuild deleted file mode 100644 index 202d12d40171..000000000000 --- a/media-libs/SoQt/SoQt-1.6.4.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake flag-o-matic - -DESCRIPTION="GUI binding for using Coin/Open Inventor with Qt" -HOMEPAGE="https://github.com/coin3d/coin/wiki" -SRC_URI="https://github.com/coin3d/soqt/releases/download/v${PV}/${P/SoQt/soqt}-src.tar.gz" -S="${WORKDIR}/soqt" - -LICENSE="GPL-2" -KEYWORDS="~amd64 ~x86" -SLOT="0" -IUSE="debug doc" - -RDEPEND=" - dev-qt/qtbase:6[gui,opengl,widgets] - media-libs/coin - virtual/opengl - x11-libs/libX11 - x11-libs/libXi -" -DEPEND="${RDEPEND} - x11-base/xorg-proto -" -BDEPEND=" - virtual/pkgconfig - doc? ( app-text/doxygen ) -" - -DOCS=( AUTHORS ChangeLog HACKING NEWS README ) - -src_configure() { - use debug && append-cppflags -DSOQT_DEBUG=1 - local mycmakeargs=( - -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - -DSOQT_BUILD_DOCUMENTATION=$(usex doc) - -DSOQT_BUILD_INTERNAL_DOCUMENTATION=OFF - -DSOQT_USE_QT6=ON - -DSOQT_VERBOSE=$(usex debug) - ) - cmake_src_configure -} diff --git a/media-libs/SoQt/metadata.xml b/media-libs/SoQt/metadata.xml index 358cd94b6456..fc0107544cbd 100644 --- a/media-libs/SoQt/metadata.xml +++ b/media-libs/SoQt/metadata.xml @@ -1,13 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <!-- maintainer-needed --> - <longdescription lang="en"> - SoQt is a Qt GUI component toolkit library for Coin. It is also compatible - with SGI and TGS Open Inventor, and the API is based on the API of the - InventorXt GUI component toolkit. - </longdescription> - <upstream> - <remote-id type="github">coin3d/soqt</remote-id> - </upstream> + <maintainer type="person" proxied="yes"> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Gentoo Proxy Maintainers</name> + </maintainer> + <longdescription lang="en"> + SoQt is a Qt GUI component toolkit library for Coin. It is also compatible with SGI and TGS Open Inventor, and the API is based on the API of the InventorXt GUI component toolkit. + </longdescription> + <upstream> + <remote-id type="github">coin3d/soqt</remote-id> + </upstream> </pkgmetadata> diff --git a/media-libs/SoXt/Manifest b/media-libs/SoXt/Manifest index bde1fc9d4b78..b3acdf4d42e1 100644 --- a/media-libs/SoXt/Manifest +++ b/media-libs/SoXt/Manifest @@ -1,2 +1,2 @@ DIST SoXt-1.4.1-src.tar.gz 1402559 BLAKE2B fd0f0433e1d5c231f4392f7cfa4e6e08bd9d872b46619c6daa9f4fa2157da27780b0a28d4cbb7ea8f3f3a881f90c789760cad2c2709f27bf9f4edb1cdfc1f86c SHA512 c379acb14b7f3a03664a3b1c10bdd14e836a54fb72f62cb728301755ee148b423203513a085534c2ea74704fd3c9a77ceabe1de089aa168c848518a9d690e53e -DIST SoXt-1.4.2-src.tar.gz 7366540 BLAKE2B 00b0dab81473bf7eb0c5857ed3f1b1182917160021c7aa6d9f8df82d73d9e16e4eef59e681995eb719cbce35a1039775f35e769f8e9dff1dc61c02352f68aaca SHA512 6fdc942a2f6b48406c9e6c67bddd03f7067581ea072845634bee0eb825fca642829f92e0ee8054886e7f5bf553e394b6253da568ce445432d1a1ecd744b22475 +DIST soxt-1.4.2-src.tar.gz 7366540 BLAKE2B 00b0dab81473bf7eb0c5857ed3f1b1182917160021c7aa6d9f8df82d73d9e16e4eef59e681995eb719cbce35a1039775f35e769f8e9dff1dc61c02352f68aaca SHA512 6fdc942a2f6b48406c9e6c67bddd03f7067581ea072845634bee0eb825fca642829f92e0ee8054886e7f5bf553e394b6253da568ce445432d1a1ecd744b22475 diff --git a/media-libs/SoXt/SoXt-1.4.2-r1.ebuild b/media-libs/SoXt/SoXt-1.4.2-r1.ebuild new file mode 100644 index 000000000000..aa6f77bcfcbd --- /dev/null +++ b/media-libs/SoXt/SoXt-1.4.2-r1.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="GUI binding for using Coin/Open Inventor with Xt/Motif" +HOMEPAGE="https://github.com/coin3d/soxt https://github.com/coin3d/coin/wiki" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/coin3d/${PN,,}.git" +else + SRC_URI="https://github.com/coin3d/${PN,,}/releases/download/v${PV}/${P/${PN}/${PN,,}}-src.tar.gz" + S="${WORKDIR}/${PN,,}" + + KEYWORDS="amd64 ~arm x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug doc test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + media-libs/coin + x11-libs/motif:0= + x11-libs/libX11 + x11-libs/libXi + x11-libs/libXmu + x11-libs/libXpm + x11-libs/libXt + virtual/opengl[X] +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + x11-base/xorg-proto + doc? ( app-text/doxygen ) +" + +DOCS=( + AUTHORS + ChangeLog + HACKING + NEWS + README + TODO + BUGS.txt +) + +src_prepare() { + cmake_src_prepare + + if has_version ">=x11-libs/motif-2.3.9"; then + eapply "${FILESDIR}/${PN}-1.4.2-motif-2.3.9-version.h.patch" + fi +} + +src_configure() { + use debug && CMAKE_BUILD_TYPE="Debug" + + local mycmakeargs=( + -D${PN^^}_BUILD_SHARED_LIBS="yes" + + -D${PN^^}_BUILD_AWESOME_DOCUMENTATION="$(usex doc)" + -D${PN^^}_BUILD_DOCUMENTATION="$(usex doc)" + -D${PN^^}_BUILD_DOC_MAN="$(usex doc)" + -D${PN^^}_BUILD_INTERNAL_DOCUMENTATION="no" + + # Interactive test programs + -D${PN^^}_BUILD_TESTS="$(usex test)" + -D${PN^^}_VERBOSE="$(usex debug)" + ) + + cmake_src_configure +} diff --git a/media-libs/SoXt/SoXt-1.4.2.ebuild b/media-libs/SoXt/SoXt-1.4.2.ebuild deleted file mode 100644 index e8188aac9c08..000000000000 --- a/media-libs/SoXt/SoXt-1.4.2.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake flag-o-matic - -MY_P=${P/soxt/SoXt} - -DESCRIPTION="GUI binding for using Coin/Open Inventor with Xt/Motif" -HOMEPAGE="https://github.com/coin3d/coin/wiki" -SRC_URI="https://github.com/coin3d/soxt/releases/download/v${PV}/${P}-src.tar.gz" -S="${WORKDIR}/soxt" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~arm ~x86" -IUSE="debug doc" - -RDEPEND=" - media-libs/coin - x11-libs/motif:0 - virtual/opengl -" -DEPEND="${RDEPEND}" -BDEPEND=" - virtual/pkgconfig - x11-base/xorg-proto - doc? ( app-text/doxygen ) -" - -DOCS=( AUTHORS ChangeLog HACKING NEWS README TODO BUGS.txt ) - -src_configure() { - use debug && append-cppflags -DSOXT_DEBUG=1 - local mycmakeargs=( - -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - -DSOXT_BUILD_DOCUMENTATION=$(usex doc) - -DSOXT_BUILD_INTERNAL_DOCUMENTATION=OFF - # Interactive test programs - -DSOXT_BUILD_TESTS=OFF - -DSOXT_VERBOSE=$(usex debug) - ) - cmake_src_configure -} diff --git a/media-libs/SoXt/files/SoXt-1.4.2-motif-2.3.9-version.h.patch b/media-libs/SoXt/files/SoXt-1.4.2-motif-2.3.9-version.h.patch new file mode 100644 index 000000000000..8a52b74147bb --- /dev/null +++ b/media-libs/SoXt/files/SoXt-1.4.2-motif-2.3.9-version.h.patch @@ -0,0 +1,23 @@ +From d99ca72e2df57f96f94083460f5bb90e8a8a2ae3 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Tue, 15 Sep 2026 14:11:51 +0000 +Subject: use version.h for >=motif-2.3.9 + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b8b6106..8caf2cf 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -175,7 +175,7 @@ foreach (_config ${CMAKE_CONFIGURATION_TYPES}) + endforeach() + + # gets the Motif toolkit version +-file(STRINGS "${MOTIF_INCLUDE_DIR}/Xm/Xm.h" _motif REGEX "#define XmVERSION_STRING") ++file(STRINGS "${MOTIF_INCLUDE_DIR}/Xm/version.h" _motif REGEX "#define XmVERSION_STRING") + string(REGEX MATCH "Motif Version ([0-9]+)\\.([0-9]+)\\.([0-9]+)" dummy ${_motif}) + set(MOTIF_VERSION_MAJOR ${CMAKE_MATCH_1}) + set(MOTIF_VERSION_MINOR ${CMAKE_MATCH_2}) +-- +2.55.0 + diff --git a/media-libs/SoXt/metadata.xml b/media-libs/SoXt/metadata.xml index c65b6ed5c77d..ab0461ece68c 100644 --- a/media-libs/SoXt/metadata.xml +++ b/media-libs/SoXt/metadata.xml @@ -1,17 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="project"> - <email>sci-physics@gentoo.org</email> - <description>Feel free to maintain/fix</description> - </maintainer> - <longdescription lang="en"> - SoXt is an alternative to SGIs InventorXt library, which is a GUI - binding for using Open Inventor with Xt/Motif. While SoXt has been developed - for use with Coin, it is also possible to compile it against Open Inventor - from SGI or TGS. - </longdescription> - <upstream> - <remote-id type="github">coin3d/soxt</remote-id> - </upstream> + <maintainer type="project"> + <email>sci-physics@gentoo.org</email> + <description>Feel free to maintain/fix</description> + </maintainer> + <longdescription lang="en"> + SoXt is an alternative to SGIs InventorXt library, which is a GUI binding for using Open Inventor with Xt/Motif. + While SoXt has been developed for use with Coin, it is also possible to compile it against Open Inventor from SGI or TGS. + </longdescription> + <upstream> + <remote-id type="github">coin3d/soxt</remote-id> + </upstream> </pkgmetadata> diff --git a/media-libs/coin/Manifest b/media-libs/coin/Manifest index 183b1a9dee68..0468d733cda5 100644 --- a/media-libs/coin/Manifest +++ b/media-libs/coin/Manifest @@ -1,2 +1,4 @@ +DIST coin-4.0.10-src.tar.gz 11855404 BLAKE2B eab33a33cd4449762cc61195d3501956f2ea141044fbf2e67a05dd6b37761cefc8dee74e0f3628ed22e366ea50fa41fa83cf6445d5c76532696e16d3b06e9cd5 SHA512 cdd0da0f34fa599f791d504bd740f3ced09ecdb26b5ddf8bc3708b697cddbcfab73b00c2ce7722c083cfbb30716d93621d85000aa298c3aafe6eb136f80f2fef DIST coin-4.0.4-src.tar.gz 13110106 BLAKE2B fac92cb99b2eb37fe52a3e1bc9c9c8b72c956e135236052dcde2a257374be217d94f3f3a1d908c78dc1ce55adee2d79e6f95e88866600a88bbcf2d4903adcc29 SHA512 5d13c9d03b8da1b6de2be6632434184ff05370039906a34cf9812ab51b849f99cf59db844b32577d2c155218d8ad8fe515e757d445dbbeddda3f4740b0e384a2 DIST coin-4.0.6-src.tar.gz 13114463 BLAKE2B 7760186d86f54188f33357b310bff6e3457d1de04de8d1cf9dcf959516a3828493f47d789d83d2bc628d9dbbb70ba3d36a7e6af34a10a4934d1be6bc07b801e2 SHA512 eaf6d20328abba86d77ec78b38f80149bbcf3a61fd0c33ac22a2cd77f971f29197d2e20498cdd3b317271ca502882864833877f65381f3dded44e4bb51fa439d +DIST coin-PR590.patch 635 BLAKE2B d5a8d8da1a1532065a63e8308fced55510c9e8c35978ab853f531946fdc18f94a3083b3a817eebcc4902a7a884a9ed423fc03ba947af94efcf326f1fe087fc4a SHA512 35b57c678a72920273a71e4361d7003a68b6fbc0432477e0e61dfc278fec8b1a0dc1abbc61ed797564802379d9c4265b4a593df7739781408f484b13cd420b8e diff --git a/media-libs/coin/coin-4.0.10.ebuild b/media-libs/coin/coin-4.0.10.ebuild new file mode 100644 index 000000000000..116296dec650 --- /dev/null +++ b/media-libs/coin/coin-4.0.10.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="High-level 3D graphics toolkit, fully compatible with SGI Open Inventor 2.1" +HOMEPAGE="https://github.com/coin3d/coin https://github.com/coin3d/coin/wiki" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/coin3d/${PN,,}.git" +else + SRC_URI="https://github.com/coin3d/${PN,,}/releases/download/v${PV}/${P/${PN}/${PN,,}}-src.tar.gz" + S="${WORKDIR}/${PN,,}" + + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~x86" +fi + +LICENSE="|| ( GPL-2 PEL )" +SLOT="0" +IUSE="debug doc +exceptions openal qch test threads" + +REQUIRED_USE="qch? ( doc )" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-arch/bzip2 + dev-libs/expat + media-libs/fontconfig + media-libs/freetype:2 + media-libs/simage:= + virtual/glu + virtual/opengl[X] + virtual/zlib:= + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXext + openal? ( media-libs/openal ) +" +DEPEND="${RDEPEND} + dev-libs/boost:0 +" +BDEPEND=" + x11-base/xorg-proto + doc? ( + app-text/doxygen + qch? ( dev-qt/qttools:6[assistant] ) + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-4.0.3-find-qhelpgenerator.patch" +) + +DOCS=( + AUTHORS + FAQ + FAQ.legal + NEWS + THANKS + docs/HACKING +) + +src_configure() { + use debug && CMAKE_BUILD_TYPE="Debug" + + local mycmakeargs=( + -DCOIN_BUILD_SHARED_LIBS=ON + -DCOIN_BUILD_TESTS=$(usex test) + + -DCOIN_BUILD_AWESOME_DOCUMENTATION=$(usex doc) + -DCOIN_BUILD_DOCUMENTATION=$(usex doc) + -DCOIN_BUILD_DOCUMENTATION_MAN=$(usex doc) + -DCOIN_BUILD_DOCUMENTATION_QTHELP=$(usex qch) + -DCOIN_BUILD_DOCUMENTATION_CHM=OFF + -DCOIN_BUILD_INTERNAL_DOCUMENTATION=OFF + + -DCOIN_THREADSAFE=$(usex threads) + -DHAVE_VRML97=ON + -DCOIN_HAVE_JAVASCRIPT=OFF + -DHAVE_NODEKITS=ON + -DHAVE_DRAGGERS=ON + -DHAVE_MANIPULATORS=ON + -DHAVE_SOUND=$(usex openal) + -DHAVE_3DS_IMPORT_CAPABILITIES=ON + -DUSE_EXTERNAL_EXPAT=ON + -DUSE_EXCEPTIONS=$(usex exceptions) + -DUSE_SUPERGLU=OFF + + -DFONTCONFIG_RUNTIME_LINKING=OFF + -DFREETYPE_RUNTIME_LINKING=OFF + -DLIBBZIP2_RUNTIME_LINKING=OFF + -DOPENAL_RUNTIME_LINKING=OFF + -DSIMAGE_RUNTIME_LINKING=OFF + -DZLIB_RUNTIME_LINKING=OFF + -DGLU_RUNTIME_LINKING=OFF + -DSPIDERMONKEY_RUNTIME_LINKING=ON + + -DCOIN_VERBOSE=$(usex debug) + -DHAVE_MULTIPLE_VERSION=OFF + + -DCOIN_BUILD_SINGLE_LIB=ON + ) + + use doc && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON ) + + cmake_src_configure +} + +src_test() { + pushd "${BUILD_DIR}/bin" > /dev/null || die + ./CoinTests -r detailed || die "Tests failed." + popd > /dev/null || die +} diff --git a/media-libs/coin/coin-4.0.6.ebuild b/media-libs/coin/coin-4.0.6-r1.ebuild index fd31873eb309..0771af73eb75 100644 --- a/media-libs/coin/coin-4.0.6.ebuild +++ b/media-libs/coin/coin-4.0.6-r1.ebuild @@ -1,18 +1,21 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit cmake flag-o-matic +inherit cmake DESCRIPTION="High-level 3D graphics toolkit, fully compatible with SGI Open Inventor 2.1" HOMEPAGE="https://github.com/coin3d/coin/wiki" -SRC_URI="https://github.com/coin3d/coin/releases/download/v${PV}/${P}-src.tar.gz" +SRC_URI=" + https://github.com/coin3d/coin/releases/download/v${PV}/${P}-src.tar.gz + https://github.com/coin3d/coin/commit/1bba57bd0d9f41666d72857f75263068aeeeefcb.patch -> ${PN}-PR590.patch +" S="${WORKDIR}/${PN}" LICENSE="|| ( GPL-2 PEL )" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~hppa ppc ppc64 x86" IUSE="debug doc +exceptions openal qch test threads" REQUIRED_USE="qch? ( doc )" @@ -25,7 +28,7 @@ RDEPEND=" media-libs/freetype:2 media-libs/simage:= virtual/zlib:= - virtual/opengl + virtual/opengl[X] virtual/glu x11-libs/libICE x11-libs/libSM @@ -35,21 +38,24 @@ RDEPEND=" " DEPEND="${RDEPEND} dev-libs/boost:0 - x11-base/xorg-proto " BDEPEND=" + x11-base/xorg-proto doc? ( app-text/doxygen qch? ( dev-qt/qttools:6[assistant] ) ) " -PATCHES=( "${FILESDIR}"/${PN}-4.0.3-find-qhelpgenerator.patch ) +PATCHES=( + "${FILESDIR}"/${PN}-4.0.3-find-qhelpgenerator.patch + "${DISTDIR}/${PN}-PR590.patch" +) DOCS=( AUTHORS FAQ FAQ.legal NEWS THANKS docs/HACKING ) src_configure() { - use debug && append-cppflags -DCOIN_DEBUG=1 + use debug && CMAKE_BUILD_TYPE="Debug" local mycmakeargs=( -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" diff --git a/media-libs/coin/metadata.xml b/media-libs/coin/metadata.xml index 18ff2df69f56..bd141f0c3b0e 100644 --- a/media-libs/coin/metadata.xml +++ b/media-libs/coin/metadata.xml @@ -1,12 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <!-- maintainer-needed --> - <use> - <flag name="exceptions">Compile with C++ exceptions</flag> - <flag name="qch">Install API documentation in QCH format</flag> - </use> - <upstream> - <remote-id type="github">coin3d/coin</remote-id> - </upstream> + <maintainer type="person" proxied="yes"> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Gentoo Proxy Maintainers</name> + </maintainer> + <use> + <flag name="exceptions">Compile with C++ exceptions</flag> + <flag name="qch">Install API documentation in QCH format</flag> + </use> + <upstream> + <remote-id type="github">coin3d/coin</remote-id> + </upstream> </pkgmetadata> diff --git a/media-libs/gegl/Manifest b/media-libs/gegl/Manifest index ea40844f1c79..80c98e78822c 100644 --- a/media-libs/gegl/Manifest +++ b/media-libs/gegl/Manifest @@ -1 +1,2 @@ DIST gegl-0.4.70.tar.xz 6164464 BLAKE2B dc0a5a78bd782a690a3b596e89d4646e72d59c131420044daca624b91499e0ec0a232dafe4fb3270508339a5bef657eff23968e814bcbcc33b8e22e09eeed361 SHA512 9f47480dc2fad58c052aa3df3ac914d500614e7acb0dc46677bea4228350a00a0fe38b5b0572303251210e3e544b5b7cb51415476586630df4da8f4b7c6486d8 +DIST gegl-0.4.72.tar.xz 6278088 BLAKE2B 5be64b750aec2c9c21ca499eef22b3c98e7223b037df0baefd7e1354d58db0f720ed9a869408b331739dbbf08cf7b56803aa8f2459d2bce5da00805e33679f76 SHA512 94bdc545a7647491adb6371779ce128d5d03120ae58c849bd76cd2acaab58fd00a0579ce28f0e46d4c171a1f2796ab09d4633c24bd01eabd8b959400cbe6e650 diff --git a/media-libs/gegl/gegl-0.4.72.ebuild b/media-libs/gegl/gegl-0.4.72.ebuild new file mode 100644 index 000000000000..905674719f81 --- /dev/null +++ b/media-libs/gegl/gegl-0.4.72.ebuild @@ -0,0 +1,182 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..15} ) +# vala and introspection support is broken, bug #468208 +VALA_USE_DEPEND=vapigen + +inherit flag-o-matic meson optfeature python-any-r1 toolchain-funcs vala + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/gegl.git" +else + SRC_URI="https://download.gimp.org/pub/${PN}/${PV:0:3}/${P}.tar.xz" + KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="A graph based image processing framework" +HOMEPAGE="https://gegl.org/" + +LICENSE="|| ( GPL-3+ LGPL-3 )" +SLOT="0.4" + +IUSE="cairo debug ffmpeg gtk-doc +introspection jpeg2k lcms openexr openmp pdf raw sdl sdl2 sdl3 svg test tiff umfpack vala v4l webp" +REQUIRED_USE=" + gtk-doc? ( introspection ) + svg? ( cairo ) + test? ( introspection ) + vala? ( introspection ) +" + +RESTRICT="!test? ( test )" + +# See https://gegl.org/build.html for upstream instructions on dependencies. +# opencl-3.0 =~ >=opencl-2023.02.06 +RDEPEND=" + >=dev-libs/glib-2.44.0:2 + >=dev-libs/json-glib-1.0.0 + >=dev-util/opencl-headers-2023.02.06 + >=media-libs/babl-0.1.116[introspection?,lcms?,vala?] + >=media-libs/libjpeg-turbo-1.0.0:= + >=media-libs/libnsgif-1.0.0:= + >=media-libs/libpng-1.6.0:0= + >=virtual/zlib-1.2.0:= + >=x11-libs/gdk-pixbuf-2.32:2 + >=x11-libs/pango-1.38.0 + cairo? ( >=x11-libs/cairo-1.12.2 ) + ffmpeg? ( media-video/ffmpeg:0= ) + introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= ) + jpeg2k? ( >=media-libs/jasper-1.900.1:= ) + lcms? ( >=media-libs/lcms-2.8:2 ) + openexr? ( >=media-libs/openexr-1.6.1:= ) + pdf? ( >=app-text/poppler-0.71.0[cairo] ) + raw? ( >=media-libs/libraw-0.15.4:0= ) + sdl? ( >=media-libs/libsdl-1.2.0 ) + sdl2? ( >=media-libs/libsdl2-2.0.5 ) + sdl3? ( >=media-libs/libsdl3-3.2.0 ) + svg? ( >=gnome-base/librsvg-2.40.6:2 ) + tiff? ( >=media-libs/tiff-4:= ) + umfpack? ( sci-libs/umfpack ) + v4l? ( >=media-libs/libv4l-1.0.1 ) + webp? ( >=media-libs/libwebp-0.5.0:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + dev-lang/perl + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig + gtk-doc? ( dev-util/gi-docgen ) + test? ( $(python_gen_any_dep '>=dev-python/pygobject-3.2:3[${PYTHON_USEDEP}]') ) + vala? ( $(vala_depend) ) +" + +DOCS=( AUTHORS docs/ChangeLog docs/NEWS.adoc ) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + python-any-r1_pkg_setup +} + +python_check_deps() { + use test || return 0 + python_has_version -b ">=dev-python/pygobject-3.2:3[${PYTHON_USEDEP}]" +} + +src_prepare() { + default + # patch executables suffix + sed -i -e "s/'gegl'/'gegl-0.4'/" bin/meson.build || die + sed -i -e "s/'gegl-imgcmp'/'gegl-imgcmp-0.4'/" tools/meson.build || die + sed -i -e "s/gegl-imgcmp/gegl-imgcmp-0.4/" tests/simple/test-exp-combine.py || die + # skip UNEXPECTED PASSED 'matting-levin' test + sed -i -e "s/composition_tests += 'matting-levin'//" \ + -e "s/composition_tests_fail += 'matting-levin'//" tests/compositions/meson.build || die + + # don't require Apple's OpenCL on versions of OSX that don't have it + if [[ ${CHOST} == *-darwin* && ${CHOST#*-darwin} -le 9 ]] ; then + sed -i -e 's/#ifdef __APPLE__/#if 0/' gegl/opencl/* || die + fi + + # Fix QA warning, install docs into /usr/share/gtk-doc/html/gegl-0.4 instead of /usr/share/doc/gegl-0.4 + sed -i -e "s#'doc'#'gtk-doc' / 'html'#" docs/reference/meson.build || die +} + +src_configure() { + # Bug #859901 + filter-lto + + tc-export READELF NM + + use vala && vala_setup + + local emesonargs=( + # Follow upstream order in meson_options.txt + + # - Disable documentation as the generating is bit automagic + # if anyone wants to work on it just create bug with patch + -Ddocs=false # website + $(meson_feature gtk-doc gi-docgen) + # - Work in progress operations + # Might make sense to hook up if masked to make it an explicit opt-in + -Dworkshop=false + $(meson_use introspection) + $(meson_feature vala vapigen) + + # Optional dependencies (as per upstream) + -Dgdk-pixbuf=enabled + # - Dependency currently used for tests, examples and not installed tools. + # If in addition mrg and sdl are enabled then some substantive change could happen. + # With ffmpeg allows building tests that currently fail bug #907412 + -Dgexiv2=disabled + # - Noop option. Its fully optional at runtime. + -Dgraphviz=disabled + $(meson_feature jpeg2k jasper) + $(meson_feature lcms) + # - Needs -Dworkshop=true + -Dlensfun=disabled + $(meson_feature ffmpeg libav) + $(meson_feature raw libraw) + $(meson_feature svg librsvg) + # - Not in portage main tree + -Dlibspiro=disabled + $(meson_feature tiff libtiff) + # - v4l support does not work with our media-libs/libv4l-0.8.9, + # upstream bug at https://bugzilla.gnome.org/show_bug.cgi?id=654675 + $(meson_feature v4l libv4l) + $(meson_feature v4l libv4l2) + -Dlua=disabled + # - Unpackaged and discontinued upstream. mrg upstream recommends ctx which is vendored in gegl + -Dmrg=disabled + # - Unpackaged, needs -Dworkshop=true + # Implementation of the feature in gimp stalled + # https://gitlab.gnome.org/GNOME/gimp/-/issues/2912 + -Dmaxflow=disabled + $(meson_feature openexr) + $(meson_feature openmp) + $(meson_feature cairo) + -Dpango=enabled + $(meson_feature cairo pangocairo) + $(meson_feature pdf poppler) + # - Test dependency + $(meson_feature test pygobject) + $(meson_feature sdl sdl1) + $(meson_feature sdl2) + $(meson_feature sdl3) + $(meson_feature umfpack) + $(meson_feature webp) + ) + meson_src_configure +} + +pkg_postinst() { + optfeature "'Show Image Graph' under GIMP[debug] menu 'File - Debug'" media-gfx/graphviz + optfeature "Optionally use OpenCL for operations" virtual/opencl +} diff --git a/media-libs/gegl/gegl-9999.ebuild b/media-libs/gegl/gegl-9999.ebuild index e55790e5b176..905674719f81 100644 --- a/media-libs/gegl/gegl-9999.ebuild +++ b/media-libs/gegl/gegl-9999.ebuild @@ -14,7 +14,7 @@ if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/gegl.git" else SRC_URI="https://download.gimp.org/pub/${PN}/${PV:0:3}/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~x86" + KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" fi DESCRIPTION="A graph based image processing framework" @@ -23,7 +23,7 @@ HOMEPAGE="https://gegl.org/" LICENSE="|| ( GPL-3+ LGPL-3 )" SLOT="0.4" -IUSE="cairo debug ffmpeg gtk-doc +introspection jpeg2k lcms openexr openmp pdf raw sdl sdl2 svg test tiff umfpack vala v4l webp" +IUSE="cairo debug ffmpeg gtk-doc +introspection jpeg2k lcms openexr openmp pdf raw sdl sdl2 sdl3 svg test tiff umfpack vala v4l webp" REQUIRED_USE=" gtk-doc? ( introspection ) svg? ( cairo ) @@ -34,9 +34,11 @@ REQUIRED_USE=" RESTRICT="!test? ( test )" # See https://gegl.org/build.html for upstream instructions on dependencies. +# opencl-3.0 =~ >=opencl-2023.02.06 RDEPEND=" >=dev-libs/glib-2.44.0:2 >=dev-libs/json-glib-1.0.0 + >=dev-util/opencl-headers-2023.02.06 >=media-libs/babl-0.1.116[introspection?,lcms?,vala?] >=media-libs/libjpeg-turbo-1.0.0:= >=media-libs/libnsgif-1.0.0:= @@ -54,6 +56,7 @@ RDEPEND=" raw? ( >=media-libs/libraw-0.15.4:0= ) sdl? ( >=media-libs/libsdl-1.2.0 ) sdl2? ( >=media-libs/libsdl2-2.0.5 ) + sdl3? ( >=media-libs/libsdl3-3.2.0 ) svg? ( >=gnome-base/librsvg-2.40.6:2 ) tiff? ( >=media-libs/tiff-4:= ) umfpack? ( sci-libs/umfpack ) @@ -165,7 +168,8 @@ src_configure() { # - Test dependency $(meson_feature test pygobject) $(meson_feature sdl sdl1) - $(meson_feature sdl2 sdl2) + $(meson_feature sdl2) + $(meson_feature sdl3) $(meson_feature umfpack) $(meson_feature webp) ) @@ -174,4 +178,5 @@ src_configure() { pkg_postinst() { optfeature "'Show Image Graph' under GIMP[debug] menu 'File - Debug'" media-gfx/graphviz + optfeature "Optionally use OpenCL for operations" virtual/opencl } diff --git a/media-libs/gegl/metadata.xml b/media-libs/gegl/metadata.xml index e6028d5a8965..077ca79b447f 100644 --- a/media-libs/gegl/metadata.xml +++ b/media-libs/gegl/metadata.xml @@ -11,6 +11,7 @@ </maintainer> <use> <flag name="sdl2">Add support for Simple Direct Layer 2.0 (<pkg>media-libs/libsdl2</pkg>)</flag> + <flag name="sdl3">Add support for Simple Direct Layer 3.0 (<pkg>media-libs/libsdl3</pkg>)</flag> <flag name="umfpack">Enable sparse solving via <pkg>sci-libs/umfpack</pkg>.</flag> </use> <upstream> diff --git a/media-libs/glycin-loaders/Manifest b/media-libs/glycin-loaders/Manifest index 27d8d3e51aad..436c6cadc88a 100644 --- a/media-libs/glycin-loaders/Manifest +++ b/media-libs/glycin-loaders/Manifest @@ -5,5 +5,7 @@ DIST glycin-2.1.5-crates.tar.xz 18050756 BLAKE2B 94af2ef6733df65ee735df76d0dc261 DIST glycin-2.1.5.tar.bz2 178056 BLAKE2B 9791dba971636e170e49772b26bc93ec2118eb21a9e476648d37c7c5afc80b536a7e95f461c32dc8c875c19d35d3d834e8df779fb452e230d741f8dc99a2f77d SHA512 33d02fdebc3ee4ade820c548335727d4db54bd1f882130106b2772ecad4f33db5ba0dbe3390dfdd4998e5bbf54111619e51bb0b2582213e13ecaa18134b1bd89 DIST glycin-2.2.0-crates.tar.xz 21935372 BLAKE2B bb881b2cde00de20491fdd72e916fa026371944a3ba01972408ccc3c6e5465eb278584bd3831a30c6c5ba04f967b50a7c686c321c71e49906eff6a471cedb939 SHA512 a2632c5794976198804c8296939589983dd95667b8ca4522f055bcdb2b0ce045d6288b766d948678a178a48f07b4b2ba96224c7ecfcce3f634c6a4d2e0b8f858 DIST glycin-2.2.0.tar.bz2 219781 BLAKE2B 6879c89c66d7ff31ae97548d1f891a424b242d9f40df02e7ac8ccd8c555e5b4e8974ae007cdd24157fba672866e33f411d97b8399f9883b8d1354f878e070c17 SHA512 333e54ec912528d7b12dd2cf984912377d27656fd2f28cd1261cd19d35023bf031f3b2977061949f1ec25629d6c1dcbed2f8a45e8a29ab55993585fb2fabf260 +DIST glycin-2.2.1-crates.tar.xz 21935372 BLAKE2B bb881b2cde00de20491fdd72e916fa026371944a3ba01972408ccc3c6e5465eb278584bd3831a30c6c5ba04f967b50a7c686c321c71e49906eff6a471cedb939 SHA512 a2632c5794976198804c8296939589983dd95667b8ca4522f055bcdb2b0ce045d6288b766d948678a178a48f07b4b2ba96224c7ecfcce3f634c6a4d2e0b8f858 +DIST glycin-2.2.1.tar.bz2 219965 BLAKE2B cb257120d58841aabceaff18fb9a1a4e145509150f301b6119f476a344b652919239284b0cabd2bc1f4052ab05cacc5beb424f36a700f7440777fe4aa9f92636 SHA512 62c4f344e9d593739dc8c1c183c29a992378ad9ad98614243257a9a86e653848b5749cfef08fe706da00908da4ca4a0e2efb4d983530234c60c7225650461358 DIST glycin-test-images-75c95e4fe35d6d328a91f73d9225db9ee9e588d0.tar.bz2 9528708 BLAKE2B a3b1f709a3898586c5bfa6fd520ecac1406876dbb941d0ccf95d9b0bf0cf33a65d3412ead464bab8e7b9f896e23a1a1e9869ef83034e454a8160b56696996338 SHA512 03ad185c23aba94fb34004a26d284f50ccd8fe38581a8e6d826f39a2cbdf86a56c97cdb427b4fa1b324c766f9679018b5ba135c41781f8f2b37d2bf9295f8a98 DIST glycin-test-images-f7a06d9131a5686c1b58c56f42f9fda9ea5e620d.tar.bz2 8890371 BLAKE2B 7b334ec32f8614de3fd556256f421ef88b32db36949fdbf191f57dcffc0cc5c1cdb4f88beb3531548a0bc4e462cae309a335c37a37b2f66b224f406aac751596 SHA512 f88b897b2b9a0a59c4f6b495383084c7a86392e3428f870b9f61a03d8e17da23903953211dc6c24b90f01c6a00eb5fa7626c71ff50d64dacd737f1a669ec8a35 diff --git a/media-libs/glycin-loaders/glycin-loaders-2.2.1.ebuild b/media-libs/glycin-loaders/glycin-loaders-2.2.1.ebuild new file mode 100644 index 000000000000..5a21ca7dc3ac --- /dev/null +++ b/media-libs/glycin-loaders/glycin-loaders-2.2.1.ebuild @@ -0,0 +1,112 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" +" +RUST_MIN_VER=1.93.0 + +inherit cargo meson + +MY_PV=${PV/_/.} +MY_P=glycin-${MY_PV} +TEST_IMAGE_COMMIT=75c95e4fe35d6d328a91f73d9225db9ee9e588d0 + +DESCRIPTION="Loaders for glycin clients (glycin crate or libglycin)" +HOMEPAGE="https://gitlab.gnome.org/GNOME/glycin/" +# upstream release tarballs are useless, as upstream is deliberately +# stripping glycin crate from them +SRC_URI=" + https://gitlab.gnome.org/GNOME/glycin/-/archive/${MY_PV}/${MY_P}.tar.bz2 + https://github.com/gentoo-crate-dist/glycin/releases/download/${MY_PV}/${MY_P}-crates.tar.xz + test? ( + https://gitlab.gnome.org/sophie-h/test-images/-/archive/${TEST_IMAGE_COMMIT}/test-images-${TEST_IMAGE_COMMIT}.tar.bz2 + -> glycin-test-images-${TEST_IMAGE_COMMIT}.tar.bz2 + ) +" +S=${WORKDIR}/${MY_P} + +LICENSE="|| ( LGPL-2.1+ MPL-2.0 )" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD GPL-3+ IJG ISC + LGPL-3+ MIT Unicode-3.0 + || ( LGPL-2.1+ MPL-2.0 ) +" +SLOT="2" +if [[ ${PV} != *_[ab]* ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" +fi +IUSE="heif jpegxl svg test" +REQUIRED_USE="test? ( heif jpegxl )" +RESTRICT="!test? ( test )" + +RDEPEND=" + !>=media-libs/glycin-loaders-2:0 + >=dev-libs/glib-2.68.0:2 + >=sys-libs/libseccomp-2.5.0 + heif? ( >=media-libs/libheif-1.17.0:= ) + jpegxl? ( >=media-libs/libjxl-0.11.1:= ) + svg? ( + >=gnome-base/librsvg-2.52.0:2 + >=x11-libs/cairo-1.17.0 + ) +" +DEPEND=" + ${RDEPEND} + test? ( + >=gui-libs/gtk-4.16.0:4 + >=media-libs/lcms-2.14:2 + ) +" +BDEPEND=" + test? ( + sys-apps/bubblewrap + sys-apps/dbus + ) +" + +QA_FLAGS_IGNORED="usr/libexec/glycin-loaders/.*" + +src_unpack() { + cargo_src_unpack + + if use test; then + mv "test-images-${TEST_IMAGE_COMMIT}"/* \ + "${S}/tests/test-images/" || die + fi +} + +src_configure() { + local formats=( + $(usev heif glycin-heif) + $(usev jpegxl glycin-jxl) + $(usev svg glycin-svg) + glycin-image-rs + ) + local formats_s=${formats[*]} + local emesonargs=( + -Dprofile=$(usex debug dev release) + -Dglycin-loaders=true + -Dloaders="${formats_s// /,}" + -Dtests=$(usex test true false) + -Dlibglycin=false + -Dlibglycin-gtk4=false + -Dglycin-thumbnailer=false + + # TODO: figure out why it fails + # https://gitlab.gnome.org/GNOME/glycin/-/issues/167 + -Dtest_skip_ext=heic + ) + + meson_src_configure + ln -s "${CARGO_HOME}" "${BUILD_DIR}/cargo-home" || die +} + +src_test() { + # tests write to /proc/*/uid_map + # apparently, "addpredict /" in Portage breaks it + local -x SANDBOX_ON=0 + meson_src_test +} diff --git a/media-libs/lib3mf/Manifest b/media-libs/lib3mf/Manifest index 0dd615930de7..6b7481c3488b 100644 --- a/media-libs/lib3mf/Manifest +++ b/media-libs/lib3mf/Manifest @@ -1 +1,2 @@ DIST lib3mf-2.4.1.tar.gz 36313494 BLAKE2B f5fea473e2e28480372cc39178e78022c3612e705d4ea95366a9b9988bdf729a09ee6045af234bc3b4d817d2cd77c1523b27c93abc86c10893a04268276aa251 SHA512 91d3928315bd5d1a8553284505d28c7d839a3cbd8b07a87bca5a21087fffa8ba7a1738ed14313212815a09e33f7a82318f7b069f1bbe40456b57ec528379ab4b +DIST lib3mf-2.5.0.tar.gz 39105759 BLAKE2B 50007420c2e9d15795409504a1170e5eff6faf07d1d9488af1e6dcbcc3a1f2eaeb31fbd6d893fe05392fd62363b175dbbffc4cd3b82f043484b9b4f513dd15ff SHA512 acfd0e4862248c475c674f7ee7855f809965a854e62ea0cd847008be7a9ca3c5a03ac87cac889f036555229762405094ca9811817dd45dbdaae941b5b41ae356 diff --git a/media-libs/lib3mf/files/lib3mf-2.5.0-remove-std-and-opt-flags.patch b/media-libs/lib3mf/files/lib3mf-2.5.0-remove-std-and-opt-flags.patch new file mode 100644 index 000000000000..622b92fec12d --- /dev/null +++ b/media-libs/lib3mf/files/lib3mf-2.5.0-remove-std-and-opt-flags.patch @@ -0,0 +1,32 @@ +From 5989c293eb369742afff546173e7ec96b00d050d Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx@gmail.com> +Date: Tue, 22 Apr 2025 13:28:03 +0200 +Subject: remove optimization flags and C++ standard + +Signed-off-by: Paul Zander <negril.nx@gmail.com> + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ec1d7dde..201f5aa2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -74,9 +74,7 @@ set (CMAKE_CXX_STANDARD 17) + add_compile_options(-Wall) + if (CMAKE_BUILD_TYPE MATCHES DEBUG) + add_compile_options(-g) +- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -Og") + else() +- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -O2") + endif(CMAKE_BUILD_TYPE MATCHES DEBUG) + + elseif ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") +@@ -85,7 +83,6 @@ set (CMAKE_CXX_STANDARD 17) + add_definitions(-DBUILD_DLL) + endif() + add_compile_options(-Wall) +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -O2") + set(CMAKE_MACOSX_RPATH ON) + endif() + +-- +2.53.0 + diff --git a/media-libs/lib3mf/lib3mf-2.4.1-r1.ebuild b/media-libs/lib3mf/lib3mf-2.4.1-r1.ebuild index 242aad4bd00e..e9c8a7fff0fa 100644 --- a/media-libs/lib3mf/lib3mf-2.4.1-r1.ebuild +++ b/media-libs/lib3mf/lib3mf-2.4.1-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -28,7 +28,6 @@ BDEPEND=" test? ( dev-cpp/gtest dev-libs/openssl - dev-debug/valgrind ) " @@ -56,6 +55,8 @@ src_configure() { -DUSE_INCLUDED_LIBZIP=OFF -DUSE_INCLUDED_ZLIB=OFF -DSTRIP_BINARIES=OFF + # we don't want valgrind tests + -DVALGRIND=NOTFOUND ) if use test; then diff --git a/media-libs/lib3mf/lib3mf-2.5.0.ebuild b/media-libs/lib3mf/lib3mf-2.5.0.ebuild new file mode 100644 index 000000000000..6536c2cbcda2 --- /dev/null +++ b/media-libs/lib3mf/lib3mf-2.5.0.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Implementation of the 3D Manufacturing Format file standard" +HOMEPAGE="https://3mf.io/ https://github.com/3MFConsortium/lib3mf" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/3MFConsortium/lib3mf.git" +else + SRC_URI=" + https://github.com/3MFConsortium/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz + " + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +fi + +LICENSE="BSD" +SLOT="0/$(ver_cut 1)" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-cpp/fast_float + dev-libs/libzip:= + virtual/zlib:= +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + test? ( + dev-cpp/gtest + dev-libs/openssl + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-2.5.0-remove-std-and-opt-flags.patch" +) + +src_prepare() { + # DO NOT WANT! + rm -r Libraries/libressl || die + + # DO NOT WANT! + rm -r SDK || die + rm -r AutomaticComponentToolkit || die + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_INSTALL_INCLUDEDIR="${EPREFIX}/usr/include/${PN}" + -DLIB3MF_TESTS=$(usex test) + -DUSE_INCLUDED_FASTFLOAT=OFF + -DUSE_INCLUDED_LIBZIP=OFF + -DUSE_INCLUDED_ZLIB=OFF + -DUSE_INCLUDED_CPPBASE64=ON # TODO not packaged + -DSTRIP_BINARIES=OFF + -DLIB3MF_BUILD_WASM=OFF + # we don't want valgrind tests + -DVALGRIND=NOTFOUND + ) + + if use test; then + mycmakeargs+=( + # code says it uses libressl, but works with openssl too + -DUSE_INCLUDED_SSL=OFF + ) + fi + + cmake_src_configure +} + +src_install() { + cmake_src_install + + for suf in abi types implicit; do + dosym -r "/usr/include/${PN}/Bindings/Cpp/${PN}_${suf}.hpp" "/usr/include/${PN}/${PN}_${suf}.hpp" + done +} diff --git a/media-libs/lib3mf/lib3mf-9999.ebuild b/media-libs/lib3mf/lib3mf-9999.ebuild new file mode 100644 index 000000000000..6536c2cbcda2 --- /dev/null +++ b/media-libs/lib3mf/lib3mf-9999.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Implementation of the 3D Manufacturing Format file standard" +HOMEPAGE="https://3mf.io/ https://github.com/3MFConsortium/lib3mf" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/3MFConsortium/lib3mf.git" +else + SRC_URI=" + https://github.com/3MFConsortium/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz + " + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +fi + +LICENSE="BSD" +SLOT="0/$(ver_cut 1)" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-cpp/fast_float + dev-libs/libzip:= + virtual/zlib:= +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + test? ( + dev-cpp/gtest + dev-libs/openssl + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-2.5.0-remove-std-and-opt-flags.patch" +) + +src_prepare() { + # DO NOT WANT! + rm -r Libraries/libressl || die + + # DO NOT WANT! + rm -r SDK || die + rm -r AutomaticComponentToolkit || die + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_INSTALL_INCLUDEDIR="${EPREFIX}/usr/include/${PN}" + -DLIB3MF_TESTS=$(usex test) + -DUSE_INCLUDED_FASTFLOAT=OFF + -DUSE_INCLUDED_LIBZIP=OFF + -DUSE_INCLUDED_ZLIB=OFF + -DUSE_INCLUDED_CPPBASE64=ON # TODO not packaged + -DSTRIP_BINARIES=OFF + -DLIB3MF_BUILD_WASM=OFF + # we don't want valgrind tests + -DVALGRIND=NOTFOUND + ) + + if use test; then + mycmakeargs+=( + # code says it uses libressl, but works with openssl too + -DUSE_INCLUDED_SSL=OFF + ) + fi + + cmake_src_configure +} + +src_install() { + cmake_src_install + + for suf in abi types implicit; do + dosym -r "/usr/include/${PN}/Bindings/Cpp/${PN}_${suf}.hpp" "/usr/include/${PN}/${PN}_${suf}.hpp" + done +} diff --git a/media-libs/libaom/Manifest b/media-libs/libaom/Manifest index b4958af4a024..7ad2592dad8b 100644 --- a/media-libs/libaom/Manifest +++ b/media-libs/libaom/Manifest @@ -1,2 +1,4 @@ DIST libaom-3.12.1-testdata.tar.xz 426315008 BLAKE2B 159ff275b23ac4784342deb9f82e89a3546e169c7e896178a253e0d48eda81b31aeedc90bb4a1d4cac00854b0de45fb1829904d8438a76b680966f1ec33112aa SHA512 bfad9a06fdb5004f73b42db58fdbf664902733a729475ba26f7bf823f485dec75fde1e03b10b61f98d33c8fe5932bd1dc11e322f22dfedb8722cfdfa0ede7a16 DIST libaom-3.12.1.tar.gz 5497367 BLAKE2B 4fa4ea0620b27013d2c39589ea5bc4333ea26ffe51dad64e95b240cdf5c82fcd0810fecf45410f34b89057d9000c93efae106c49e4017796d7c8b2752357709d SHA512 27521fe1cffd89a8875552f1758de89c19a47aa1640ee20930ac420a03d964eb9ae10c4b0f55e518c37d4d59f06657aee2bfa84eedad35683648bd658e06da73 +DIST libaom-3.14.1-testdata.tar.xz 480511176 BLAKE2B a169db24c6b3ab9ee6ab00a9fcb6c5e58c7d0bd6cd26f9273cca3935df10dc6cb8a7cb90612b88fa6a14403e11fa5d352057fb85e6ac5783ba849528dbe777c8 SHA512 6e2afeaa48b258a9351185cd70d1d477426f874fd75d53de070484af300543c3a1dcdb79460c1ad0ff6162e7da031cc1e9a699bf246e63cfc92e88d7fc07f03a +DIST libaom-3.14.1.tar.gz 6368868 BLAKE2B b88e6868a9dcf3c91f20a49520884268f961c54e6c5890467505ce6b7086faee191db021d46dbdbb9e0da57ddc482263ac6e8e816afd5319e6d072ada42b28eb SHA512 a4c3427db0bb4cd49b8873ffae0a287570b86d6f0733da52798b08470519755ffe08198222be86d3bc8c9bd0052477017dc595b98bbbd77f76bfe7b9ce48d7fa diff --git a/media-libs/libaom/files/libaom-3.14.1-allow-fortify-source.patch b/media-libs/libaom/files/libaom-3.14.1-allow-fortify-source.patch new file mode 100644 index 000000000000..133e6acba647 --- /dev/null +++ b/media-libs/libaom/files/libaom-3.14.1-allow-fortify-source.patch @@ -0,0 +1,13 @@ +Fortification is an important security feature. +--- a/cmake/aom_configure.cmake ++++ b/cmake/aom_configure.cmake +@@ -389,9 +389,6 @@ else() + add_compiler_flag_if_supported("-Werror") + endif() + +- if(build_type_lowercase MATCHES "rel") +- add_compiler_flag_if_supported("-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0") +- endif() + add_compiler_flag_if_supported("-D_LARGEFILE_SOURCE") + add_compiler_flag_if_supported("-D_FILE_OFFSET_BITS=64") + endif() diff --git a/media-libs/libaom/files/libaom-3.14.1-dont-install-static.patch b/media-libs/libaom/files/libaom-3.14.1-dont-install-static.patch new file mode 100644 index 000000000000..66c254d9b3c5 --- /dev/null +++ b/media-libs/libaom/files/libaom-3.14.1-dont-install-static.patch @@ -0,0 +1,14 @@ +Patching the static library fully would need extensive changes. +Patching it out from install means it won't be included in generated cmake config files. +--- a/cmake/aom_install.cmake ++++ b/cmake/aom_install.cmake +@@ -81,7 +81,7 @@ macro(setup_aom_install_targets) + endif() + + if(BUILD_SHARED_LIBS) +- set(AOM_INSTALL_LIBS aom aom_static) ++ set(AOM_INSTALL_LIBS aom) + else() + set(AOM_INSTALL_LIBS aom) + endif() + diff --git a/media-libs/libaom/libaom-3.14.1.ebuild b/media-libs/libaom/libaom-3.14.1.ebuild new file mode 100644 index 000000000000..bf7abee62e74 --- /dev/null +++ b/media-libs/libaom/libaom-3.14.1.ebuild @@ -0,0 +1,152 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..15} ) +inherit cmake-multilib edo flag-o-matic multiprocessing python-any-r1 + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://aomedia.googlesource.com/aom" +else + # To update test data tarball, + # chromium-tools.git/generate-libaom-test-tarball.sh + SRC_URI=" + https://storage.googleapis.com/aom-releases/${P}.tar.gz + test? ( https://gitlab.com/api/v4/projects/32909921/packages/generic/${PN}/${PV}/${P}-testdata.tar.xz ) + " + KEYWORDS="~amd64 ~arm64" +fi + +DESCRIPTION="Alliance for Open Media AV1 Codec SDK" +HOMEPAGE="https://aomedia.org https://aomedia.googlesource.com/aom/" + +LICENSE="BSD-2" +SLOT="0/3" +IUSE="big-endian debug doc +examples test" +IUSE="${IUSE} cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3" +IUSE="${IUSE} cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2" +IUSE="${IUSE} cpu_flags_arm_crc32 cpu_flags_arm_neon cpu_flags_ppc_vsx" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + cpu_flags_x86_sse2? ( cpu_flags_x86_mmx ) + cpu_flags_x86_ssse3? ( cpu_flags_x86_sse2 ) +" + +BDEPEND="${PYTHON_DEPS} + dev-lang/perl + abi_x86_32? ( dev-lang/yasm ) + abi_x86_64? ( dev-lang/yasm ) + abi_x86_x32? ( dev-lang/yasm ) + doc? ( app-text/doxygen ) + test? ( dev-util/gtest-parallel ) +" + +# The PATENTS file is required to be distributed with this package, bug #682214 +DOCS=( PATENTS ) + +PATCHES=( + "${FILESDIR}"/${PN}-3.4.0-posix-c-source-ftello.patch + "${FILESDIR}"/${PN}-3.14.1-allow-fortify-source.patch + "${FILESDIR}"/${PN}-3.14.1-dont-install-static.patch +) + +src_prepare() { + # fix hardcoded path + # libvmaf ERROR could not read model from path: "/usr/local/share/model/vmaf_v0.6.1.json" + sed -e "s#/usr/local/share/model/#${EPREFIX}/usr/share/vmaf/model/#g" -i README.md av1/av1_cx_iface.c || die + + cmake_src_prepare +} + +multilib_src_configure() { + # Follow upstream recommendations in README (bug #921438) and avoid + # asserts during common use (bug #914614). + append-cppflags $(usex debug '-UNDEBUG' '-DNDEBUG') + + local mycmakeargs=( + -DENABLE_CCACHE=OFF + -DENABLE_DOCS=$(multilib_native_usex doc ON OFF) + -DENABLE_EXAMPLES=$(multilib_native_usex examples ON OFF) + -DENABLE_NASM=OFF + -DENABLE_TESTS=$(usex test) + -DENABLE_TOOLS=ON + -DENABLE_WERROR=OFF + # https://bugs.chromium.org/p/aomedia/issues/detail?id=3487 shows + # that big endian detection doesn't really work otherwise. + -DCONFIG_BIG_ENDIAN=$(usex big-endian 1 0) + + # Needs libjxl, currently unpackaged. + -DCONFIG_TUNE_BUTTERAUGLI=0 + + # arm + -DENABLE_NEON=$(usex cpu_flags_arm_neon ON OFF) + -DENABLE_ARM_CRC32=$(usex cpu_flags_arm_crc32 ON OFF) + # bug #917277 + -DENABLE_NEON_DOTPROD=OFF + # bug #917278 + -DENABLE_NEON_I8MM=OFF + # bug #920474 + -DENABLE_SVE=OFF + + # mips + # ENABLE_DSPR2 / ENABLE_MSA for mips + + # riscv + # ENABLE_RVV for riscv + + # amd64 + -DENABLE_MMX=$(usex cpu_flags_x86_mmx ON OFF) + -DENABLE_SSE=$(usex cpu_flags_x86_sse ON OFF) + -DENABLE_SSE2=$(usex cpu_flags_x86_sse2 ON OFF) + -DENABLE_SSE3=$(usex cpu_flags_x86_sse3 ON OFF) + -DENABLE_SSSE3=$(usex cpu_flags_x86_ssse3 ON OFF) + -DENABLE_SSE4_1=$(usex cpu_flags_x86_sse4_1 ON OFF) + -DENABLE_SSE4_2=$(usex cpu_flags_x86_sse4_2 ON OFF) + -DENABLE_AVX=$(usex cpu_flags_x86_avx ON OFF) + -DENABLE_AVX2=$(usex cpu_flags_x86_avx2 ON OFF) + + # ppc + -DENABLE_VSX=$(usex cpu_flags_ppc_vsx ON OFF) + ) + + # For 32-bit multilib builds, force some intrinsics on to work around + # bug #816027. libaom seems to do runtime detection for some targets + # at least, so this isn't an issue. + if ! multilib_is_native_abi && use amd64 ; then + mycmakeargs+=( + -DENABLE_SSE3=ON + -DENABLE_SSSE3=ON + ) + fi + + # On ARM32-on-ARM64, things end up failing if NEON is off, bug #835456 + # Just force generic, given it's a niche situation. + # TODO: could try forcing armv7 or similar? + if use arm && ! use cpu_flags_arm_neon && [[ $(uname -p) == "aarch64" ]] ; then + ewarn "Forcing generic for arm32-on-arm64 build (bug #835456)" + mycmakeargs+=( + -DAOM_TARGET_CPU=generic + ) + fi + + cmake_src_configure +} + +multilib_src_test() { + einfo "Running quiet tests which take hours." + # We use ninja rather than test_libaom directly so we can run it in parallel + # with sharding, see https://aomedia.googlesource.com/aom/#sharded-testing. + local -x LIBAOM_TEST_DATA_PATH="${WORKDIR}/${P}-testdata" + edo gtest-parallel --workers "$(get_makeopts_jobs)" "${BUILD_DIR}"/test_libaom +} + +multilib_src_install() { + if multilib_is_native_abi && use doc ; then + local HTML_DOCS=( "${BUILD_DIR}"/docs/html/. ) + fi + + cmake_src_install +} diff --git a/media-libs/libaom/libaom-9999.ebuild b/media-libs/libaom/libaom-9999.ebuild index 44eb17f03508..bf7abee62e74 100644 --- a/media-libs/libaom/libaom-9999.ebuild +++ b/media-libs/libaom/libaom-9999.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake-multilib flag-o-matic multiprocessing python-any-r1 +PYTHON_COMPAT=( python3_{12..15} ) +inherit cmake-multilib edo flag-o-matic multiprocessing python-any-r1 if [[ ${PV} == *9999* ]]; then inherit git-r3 @@ -14,9 +14,9 @@ else # chromium-tools.git/generate-libaom-test-tarball.sh SRC_URI=" https://storage.googleapis.com/aom-releases/${P}.tar.gz - test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-testdata.tar.xz ) + test? ( https://gitlab.com/api/v4/projects/32909921/packages/generic/${PN}/${PV}/${P}-testdata.tar.xz ) " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" + KEYWORDS="~amd64 ~arm64" fi DESCRIPTION="Alliance for Open Media AV1 Codec SDK" @@ -41,6 +41,7 @@ BDEPEND="${PYTHON_DEPS} abi_x86_64? ( dev-lang/yasm ) abi_x86_x32? ( dev-lang/yasm ) doc? ( app-text/doxygen ) + test? ( dev-util/gtest-parallel ) " # The PATENTS file is required to be distributed with this package, bug #682214 @@ -48,8 +49,8 @@ DOCS=( PATENTS ) PATCHES=( "${FILESDIR}"/${PN}-3.4.0-posix-c-source-ftello.patch - "${FILESDIR}"/${PN}-3.7.0-allow-fortify-source.patch - "${FILESDIR}"/${PN}-3.8.1-tests-parallel.patch + "${FILESDIR}"/${PN}-3.14.1-allow-fortify-source.patch + "${FILESDIR}"/${PN}-3.14.1-dont-install-static.patch ) src_prepare() { @@ -131,9 +132,6 @@ multilib_src_configure() { ) fi - # LIBAOM_TEST_PROCS is added by our tests-parallel.patch - export LIBAOM_TEST_PROCS="$(makeopts_jobs)" - cmake_src_configure } @@ -141,7 +139,8 @@ multilib_src_test() { einfo "Running quiet tests which take hours." # We use ninja rather than test_libaom directly so we can run it in parallel # with sharding, see https://aomedia.googlesource.com/aom/#sharded-testing. - LIBAOM_TEST_DATA_PATH="${WORKDIR}/${P}-testdata" eninja -C "${BUILD_DIR}" runtests + local -x LIBAOM_TEST_DATA_PATH="${WORKDIR}/${P}-testdata" + edo gtest-parallel --workers "$(get_makeopts_jobs)" "${BUILD_DIR}"/test_libaom } multilib_src_install() { @@ -151,7 +150,3 @@ multilib_src_install() { cmake_src_install } - -multilib_src_install_all() { - find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die -} diff --git a/media-libs/libchdr/libchdr-0.3.0.ebuild b/media-libs/libchdr/libchdr-0.3.0.ebuild index 6f255ab820ff..59ca86452688 100644 --- a/media-libs/libchdr/libchdr-0.3.0.ebuild +++ b/media-libs/libchdr/libchdr-0.3.0.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == 9999 ]] ; then EGIT_REPO_URI="https://github.com/rtissera/${PN}.git" else SRC_URI="https://github.com/rtissera/${PN}/archive/v${PV}/${P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86" + KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86" fi LICENSE="BSD public-domain" diff --git a/media-libs/libmediainfo/Manifest b/media-libs/libmediainfo/Manifest index cb4cd73280f4..d70c6da869a2 100644 --- a/media-libs/libmediainfo/Manifest +++ b/media-libs/libmediainfo/Manifest @@ -1 +1,2 @@ DIST libmediainfo_24.11.tar.xz 2096092 BLAKE2B 4080c34afa7e0a3ff2c9424e95ae4c461d2535f715bcc9812f30953be9b127d73100ba13835a5e77baa383bef0e089333a7ebcf891ce4e461d91d3388b1972e2 SHA512 3a7c889b09be4b17696288ac5a773684fed2dc608f9c1da346e790524b8bea372cedf5573e602dc48e10f61a17d314c8bd48764e5365dabe2c0222687e904a26 +DIST libmediainfo_26.05.tar.xz 2314844 BLAKE2B 2c2a6e9a1f5cd9daaaa3575a99477f4d1bfebaa193b4d72f2f25288c0afa2ebe1e9e15ff38d01a09c882aac28b2f13593960e6df738a97eee0e162143c8ffec3 SHA512 8eef2b1214d2b512c8d4483f4a8a967cd05f065cb7dd0ec9ac09b2989a2bce0f60a897a7b154e90f2d6f9e3b53ac8bebe7e9c577dfe2afdb37686c027b3a97a7 diff --git a/media-libs/libmediainfo/libmediainfo-26.05.ebuild b/media-libs/libmediainfo/libmediainfo-26.05.ebuild new file mode 100644 index 000000000000..28de0430f952 --- /dev/null +++ b/media-libs/libmediainfo/libmediainfo-26.05.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# These must be bumped together: +# - media-libs/libzen (if a release is available) +# - media-libs/libmediainfo +# - media-video/mediainfo + +MY_PN="MediaInfo" +inherit autotools edos2unix flag-o-matic + +DESCRIPTION="MediaInfo libraries" +HOMEPAGE="https://mediaarea.net/en/MediaInfo https://github.com/MediaArea/MediaInfoLib" +SRC_URI="https://mediaarea.net/download/source/${PN}/${PV}/${P/-/_}.tar.xz" +S="${WORKDIR}"/${MY_PN}Lib + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +IUSE="curl doc mms" + +# Tests try to fetch data from online sources +RESTRICT="test" + +# The libzen dep usually needs to be bumped for each release! +RDEPEND=" + dev-libs/tinyxml2:= + >=media-libs/libzen-0.4.41 + virtual/zlib:= + curl? ( net-misc/curl ) + mms? ( >=media-libs/libmms-0.6.1 ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( app-text/doxygen ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-24.11-gcc17.patch +) + +src_prepare() { + default + + cd Project/GNU/Library || die + + sed -i 's:-O2::' configure.ac || die + + append-cppflags -DMEDIAINFO_LIBMMS_DESCRIBE_SUPPORT=0 + + eautoreconf +} + +src_configure() { + cd Project/GNU/Library || die + econf \ + --enable-shared \ + --disable-static \ + --disable-staticlibs \ + --with-libtinyxml2 \ + $(use_with curl libcurl) \ + $(use_with mms libmms) +} + +src_compile() { + cd Project/GNU/Library || die + default + + if use doc; then + cd "${WORKDIR}"/${MY_PN}Lib/Source/Doc || die + doxygen Doxyfile || die + fi +} + +src_install() { + if use doc; then + local HTML_DOCS=( "${WORKDIR}"/${MY_PN}Lib/Doc/*.html ) + fi + + cd Project/GNU/Library || die + + default + + edos2unix ${PN}.pc #414545 + insinto /usr/$(get_libdir)/pkgconfig + doins ${PN}.pc + + for x in ./ Archive Audio Duplicate Export Image Multiple Reader Tag Text Video; do + insinto /usr/include/${MY_PN}/${x} + doins "${S}"/Source/${MY_PN}/${x}/*.h + done + + insinto /usr/include/${MY_PN}DLL + doins "${S}"/Source/${MY_PN}DLL/*.h + + dodoc "${S}"/*.txt + + find "${ED}" -name '*.la' -delete || die +} diff --git a/media-libs/libxmp/Manifest b/media-libs/libxmp/Manifest index 3879cdf4d90d..d333e9ca3830 100644 --- a/media-libs/libxmp/Manifest +++ b/media-libs/libxmp/Manifest @@ -1,2 +1,2 @@ DIST libxmp-4.6.3.tar.gz 805616 BLAKE2B 5cf99574d990d48f069f1ebb3f06d6b0658f41adb5f032b11c7d8849f4a8ad08597e3881d8804c10ef895c4620c329bf3369a2f7f84b553f5350407c520e06c9 SHA512 fc87fafa392ebd07f6f9823801cdf296d5f5a6216e15a437d0539bc4ebf0f963bb8d868c73499d1ece33a238b71a8da6da303be23d409975a62b166225853bec -DIST libxmp-4.7.2.tar.gz 857784 BLAKE2B 0c519d50791a396069aa9e38463ebbdee6bb6119ae7c77db2d9b702c01c5fa690f8858710d362d2d2097d661cd62e4517160df55b89d2fe128338b37a384b759 SHA512 f05d46fcb7ba8060f44964a366487b191ff6a4c379ecc3cb7b34977bfec803417ba6ef7eb1d08fb23bde59d5b10c898b4908093583a470cf3f0e5ec595d9f57a +DIST libxmp-4.7.3.tar.gz 858590 BLAKE2B 14ca792584f9791bd99a107425530cec4e026a6fd455a733c1030cf5c3906231965fcebc83284564412d9860457317dc01a825fe05fa339d83b5455766a747cf SHA512 b8048711ddec131c4186bc710e64b542b6845327d97cfc167839c2cf96dbc4fc8882776ab7902446ae18de9c57718543c18c6d2ffdbfe032fedaf5a836ba3f32 diff --git a/media-libs/libxmp/libxmp-4.7.2.ebuild b/media-libs/libxmp/libxmp-4.7.3.ebuild index c7c43b0ff092..c7c43b0ff092 100644 --- a/media-libs/libxmp/libxmp-4.7.2.ebuild +++ b/media-libs/libxmp/libxmp-4.7.3.ebuild diff --git a/media-libs/opensubdiv/files/opensubdiv-3.6.1-cuda-13.patch b/media-libs/opensubdiv/files/opensubdiv-3.6.1-cuda-13.patch new file mode 100644 index 000000000000..906191ad5aa2 --- /dev/null +++ b/media-libs/opensubdiv/files/opensubdiv-3.6.1-cuda-13.patch @@ -0,0 +1,25 @@ +From cb1b2378c8fb370b4cc9b71079473145fed6ae35 Mon Sep 17 00:00:00 2001 +From: David G Yu <davidgyu@gmail.com> +Date: Fri, 12 Dec 2025 14:29:05 -0800 +Subject: [PATCH] [opensubdiv/osd] Fixed CUDA deprecated API + +Updated osd/cudaEvaluator.cpp to use cudaDeviceSynchronize() +instead of cudaThreadSynchronize() which was deprecated and +has been removed from CUDA 13.0. +--- + opensubdiv/osd/cudaEvaluator.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/opensubdiv/osd/cudaEvaluator.cpp b/opensubdiv/osd/cudaEvaluator.cpp +index 4b638dd49..c42caacaa 100644 +--- a/opensubdiv/osd/cudaEvaluator.cpp ++++ b/opensubdiv/osd/cudaEvaluator.cpp +@@ -359,7 +359,7 @@ CudaEvaluator::EvalPatches( + /* static */ + void + CudaEvaluator::Synchronize(void * /*deviceContext*/) { +- cudaThreadSynchronize(); ++ cudaDeviceSynchronize(); + } + + } // end namespace Osd diff --git a/media-libs/opensubdiv/opensubdiv-3.6.1.ebuild b/media-libs/opensubdiv/opensubdiv-3.6.1-r1.ebuild index f88f773272d6..d27923f037d6 100644 --- a/media-libs/opensubdiv/opensubdiv-3.6.1.ebuild +++ b/media-libs/opensubdiv/opensubdiv-3.6.1-r1.ebuild @@ -71,6 +71,7 @@ DEPEND=" PATCHES=( "${FILESDIR}/${PN}-3.6.0-use-gnuinstalldirs.patch" "${FILESDIR}/${PN}-3.6.0-cudaflags.patch" + "${FILESDIR}/${P}-cuda-13.patch" ) pkg_pretend() { diff --git a/media-libs/quarter/metadata.xml b/media-libs/quarter/metadata.xml index d496eb5324f6..079d306fff38 100644 --- a/media-libs/quarter/metadata.xml +++ b/media-libs/quarter/metadata.xml @@ -2,18 +2,16 @@ <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person" proxied="yes"> - <email>waebbl-gentoo@posteo.net</email> - <name>Bernd Waibel</name> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> </maintainer> <maintainer type="project" proxied="proxy"> <email>proxy-maint@gentoo.org</email> <name>Gentoo Proxy Maintainers</name> </maintainer> <longdescription lang="en"> - Quarter is a light-weight glue library that provides seamless - integration between Systems in Motions's Coin high-level 3D - visualization library and Trolltech's Qt 2D user interface library. - It supersedes previous Qt binding - SoQt - by subclassing QGLWidget. + Quarter is a light-weight glue library that provides seamless integration between Systems in Motions's Coin high-level 3D visualization library and Trolltech's Qt 2D user interface library. + It supersedes previous Qt binding - SoQt - by subclassing QGLWidget. </longdescription> <use> <flag name="designer">Install plugin for <pkg>dev-qt/qttools</pkg>[designer]</flag> diff --git a/media-libs/quarter/quarter-1.2.3-r1.ebuild b/media-libs/quarter/quarter-1.2.3-r1.ebuild new file mode 100644 index 000000000000..23173a1d4ee6 --- /dev/null +++ b/media-libs/quarter/quarter-1.2.3-r1.ebuild @@ -0,0 +1,80 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="GUI binding for using Coin/Open Inventor with Qt" +HOMEPAGE="https://github.com/coin3d/quarter https://github.com/coin3d/coin/wiki" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/coin3d/${PN,,}.git" +else + SRC_URI="https://github.com/coin3d/${PN,,}/releases/download/v${PV}/${P/${PN}/${PN,,}}-src.tar.gz" + S="${WORKDIR}/${PN,,}" + + KEYWORDS="amd64 x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug designer doc qch" + +REQUIRED_USE="qch? ( doc )" +RESTRICT="test" + +RDEPEND=" + dev-qt/qtbase:6[gui,opengl,widgets] + dev-qt/qttools:6[widgets,designer?] + media-libs/coin + virtual/opengl +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( + app-text/doxygen[dot] + qch? ( dev-qt/qttools:6[assistant] ) + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-1.2.1-cmake.patch" + "${FILESDIR}/${PN}-1.2.2-find-qhelpgenerator.patch" # bug 933432 +) + +DOCS=( AUTHORS NEWS README.md ) + +src_prepare() { + cmake_src_prepare + + sed -e 's|/lib$|/lib@LIB_SUFFIX@|' \ + -i Quarter.pc.cmake.in || die +} + +src_configure() { + use debug && CMAKE_BUILD_TYPE="Debug" + + local mycmakeargs=( + -D${PN^^}_BUILD_SHARED_LIBS=ON + + -D${PN^^}_BUILD_PLUGIN=$(usex designer) + -D${PN^^}_BUILD_EXAMPLES=OFF + + -D${PN^^}_BUILD_AWESOME_DOCUMENTATION=$(usex doc) + -D${PN^^}_BUILD_DOCUMENTATION=$(usex doc) + -D${PN^^}_BUILD_DOC_MAN=$(usex doc) + -D${PN^^}_BUILD_DOC_QTHELP=$(usex qch) + -D${PN^^}_BUILD_DOC_CHM=OFF + -D${PN^^}_BUILD_INTERNAL_DOCUMENTATION=OFF + + -D${PN^^}_USE_QT5="no" + -D${PN^^}_USE_QT6="yes" + ) + + use doc && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON ) + + cmake_src_configure +} diff --git a/media-libs/quarter/quarter-1.2.3.ebuild b/media-libs/quarter/quarter-1.2.3.ebuild deleted file mode 100644 index db81f795c25f..000000000000 --- a/media-libs/quarter/quarter-1.2.3.ebuild +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake flag-o-matic - -DESCRIPTION="GUI binding for using Coin/Open Inventor with Qt" -HOMEPAGE="https://github.com/coin3d/coin/wiki" -SRC_URI="https://github.com/coin3d/quarter/releases/download/v${PV}/${P}-src.tar.gz" -S="${WORKDIR}/quarter" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="debug designer doc qch" - -REQUIRED_USE="qch? ( doc )" - -RDEPEND=" - dev-qt/qtbase:6[gui,opengl,widgets] - dev-qt/qttools:6[widgets] - media-libs/coin - virtual/opengl - designer? ( dev-qt/qttools:6[designer] ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - virtual/pkgconfig - doc? ( - app-text/doxygen[dot] - qch? ( dev-qt/qttools:6[assistant] ) - ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.2.1-cmake.patch - "${FILESDIR}"/${PN}-1.2.2-find-qhelpgenerator.patch # bug 933432 -) - -DOCS=( AUTHORS NEWS README.md ) - -src_prepare() { - cmake_src_prepare - sed -e 's|/lib$|/lib@LIB_SUFFIX@|' \ - -i Quarter.pc.cmake.in || die -} - -src_configure() { - use debug && append-cppflags -DQUARTER_DEBUG=1 - local mycmakeargs=( - -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - -DQUARTER_BUILD_SHARED_LIBS=ON - -DQUARTER_BUILD_PLUGIN=$(usex designer) - -DQUARTER_BUILD_EXAMPLES=OFF - -DQUARTER_BUILD_DOCUMENTATION=$(usex doc) - -DQUARTER_BUILD_AWESOME_DOCUMENTATION=$(usex doc) - -DQUARTER_BUILD_DOC_MAN=$(usex doc) - -DQUARTER_BUILD_INTERNAL_DOCUMENTATION=OFF - -DQUARTER_BUILD_DOC_QTHELP=$(usex qch) - -DQUARTER_BUILD_DOC_CHM=OFF - -DQUARTER_USE_QT6=ON - ) - use doc && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON ) - cmake_src_configure -} diff --git a/media-libs/shaderc/Manifest b/media-libs/shaderc/Manifest index ab47c7373d1d..b014db046f95 100644 --- a/media-libs/shaderc/Manifest +++ b/media-libs/shaderc/Manifest @@ -1,5 +1,2 @@ -DIST shaderc-2025.4.tar.gz 228962 BLAKE2B eb9fc280e1137198508885114abbeb1e196e0aa5dd9900585a40b76d279c8de3352da76f4ca0444110961bd0edc999caa1f9153ec89a8becc9301a67bc7fec74 SHA512 78a1dac0bd80c447193680066970343413cf504314d0f9a0af772181cf2e673b22b0d467a06cefa9743f451e1c0c9445ade82d3ee68eae927a4c784ec2ca15e3 -DIST shaderc-2025.5.tar.gz 228956 BLAKE2B 574586e29769b5000f48b9dc8c93b34d59f368b9f2b4e3169bef1e077b018d7a49acfd589d48cc93ad7335dcf72dcb54b1639ddb15feea0ee18ace2388c034dc SHA512 700339a2a79bba3a91d7c07a6dd4d752c8f1228d7a8d8dc4bed2330deaa4899ae05adcaeeb3386307b5252ab45995e1f30535e67b4ead67c2f8ddf86949d621b -DIST shaderc-2026.1.tar.gz 229148 BLAKE2B 007fc3ae0442ae05a9309cb7cadb5595ad7f31d599c5c30bc574a62d569c895666277c7bab79e048ae4ff354c142b97c264354298fb709e4801b9ab9d0a5f5df SHA512 b8758884d5cd67f5536f30838295e618544df38e3ca3e2b1379757bc57464d333c3263c5fd19e5b4a735284fde7c3d4de9075a414691b2e86ba069bcff2cd616 DIST shaderc-2026.2.tar.gz 228959 BLAKE2B 7110c9153fd109e4c9e30fb2ae2a34afda7af7e439bf4c209063d59248fce0eb78b2a71d8335e97bbe30365bc199b1bb0d1d24c317fee2e225911cc05b94a3df SHA512 733f85a83db4b71814c7f251c44e6010b485ed03d7e2389db5c14f8426942bebf6c95a35e5eaef80e51c29f8efa28cc0577226344630a427553200c6a87349ec DIST shaderc-2026.3.tar.gz 230772 BLAKE2B b78a37d538b1dc6adbd957e378aad4d72b5f461225a63025d8dfa9e21e3fae7c5080639876754f2419627345513e02d9bc62accca5cc1cef7e40bbac836bc7d9 SHA512 795a2c59c31b11c23e7110fd01fc7ee7c07cadae621c9a11c2df56bc85fcb43c25a1c5504fab36e3df21bad1eb1a2af28872ee9bcf745cd2dec815acd189bcfd diff --git a/media-libs/shaderc/shaderc-2025.4.ebuild b/media-libs/shaderc/shaderc-2025.4.ebuild deleted file mode 100644 index 90d789b24f26..000000000000 --- a/media-libs/shaderc/shaderc-2025.4.ebuild +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..14} ) -inherit cmake-multilib dot-a python-any-r1 - -DESCRIPTION="Collection of tools, libraries and tests for shader compilation" -HOMEPAGE="https://github.com/google/shaderc" -EGIT_COMMIT="${PV}" -SRC_URI="https://github.com/google/${PN}/archive/v${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/${PN}-${EGIT_COMMIT}" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" -IUSE="doc" - -RDEPEND=" - >=dev-util/glslang-1.4.321.0:=[${MULTILIB_USEDEP}] - >=dev-util/spirv-tools-1.4.321.0[${MULTILIB_USEDEP}] -" -DEPEND="${RDEPEND} - ${PYTHON_DEPS} - >=dev-util/spirv-headers-1.4.321.0" - -BDEPEND="doc? ( dev-ruby/asciidoctor )" - -PATCHES=( - "${FILESDIR}"/${PN}-2020.4-fix-build.patch -) - -# https://github.com/google/shaderc/issues/470 -RESTRICT=test - -src_prepare() { - cmake_comment_add_subdirectory examples - - # Unbundle glslang, spirv-headers, spirv-tools - cmake_comment_add_subdirectory third_party - sed -i \ - -e "s|\$<TARGET_FILE:spirv-dis>|${EPREFIX}/usr/bin/spirv-dis|" \ - glslc/test/CMakeLists.txt || die - - # Disable git versioning - sed -i -e '/build-version/d' glslc/CMakeLists.txt || die - - # Manually create build-version.inc as we disabled git versioning - cat <<- EOF > glslc/src/build-version.inc || die - "${P}\n" - "$(best_version dev-util/spirv-tools)\n" - "$(best_version dev-util/glslang)\n" - EOF - - cmake_src_prepare -} - -multilib_src_configure() { - lto-guarantee-fat - local mycmakeargs=( - -DSHADERC_SKIP_TESTS="true" - -DSHADERC_ENABLE_WERROR_COMPILE="false" - ) - cmake_src_configure -} - -multilib_src_compile() { - if multilib_is_native_abi && use doc; then - cmake_src_compile glslc_doc_README - fi - cmake_src_compile -} - -multilib_src_install() { - if multilib_is_native_abi; then - use doc && local HTML_DOCS=( "${BUILD_DIR}/glslc/README.html" ) - fi - cmake_src_install - strip-lto-bytecode -} diff --git a/media-libs/shaderc/shaderc-2025.5.ebuild b/media-libs/shaderc/shaderc-2025.5.ebuild deleted file mode 100644 index 408660928274..000000000000 --- a/media-libs/shaderc/shaderc-2025.5.ebuild +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..14} ) -inherit cmake-multilib dot-a python-any-r1 - -DESCRIPTION="Collection of tools, libraries and tests for shader compilation" -HOMEPAGE="https://github.com/google/shaderc" -EGIT_COMMIT="${PV}" -SRC_URI="https://github.com/google/${PN}/archive/v${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/${PN}-${EGIT_COMMIT}" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" -IUSE="doc" - -RDEPEND=" - >=dev-util/glslang-1.4.335.0:=[${MULTILIB_USEDEP}] - >=dev-util/spirv-tools-1.4.335.0[${MULTILIB_USEDEP}] -" -DEPEND="${RDEPEND} - ${PYTHON_DEPS} - >=dev-util/spirv-headers-1.4.335.0" - -BDEPEND="doc? ( dev-ruby/asciidoctor )" - -PATCHES=( - "${FILESDIR}"/${PN}-2020.4-fix-build.patch -) - -# https://github.com/google/shaderc/issues/470 -RESTRICT=test - -src_prepare() { - cmake_comment_add_subdirectory examples - - # Unbundle glslang, spirv-headers, spirv-tools - cmake_comment_add_subdirectory third_party - sed -i \ - -e "s|\$<TARGET_FILE:spirv-dis>|${EPREFIX}/usr/bin/spirv-dis|" \ - glslc/test/CMakeLists.txt || die - - # Disable git versioning - sed -i -e '/build-version/d' glslc/CMakeLists.txt || die - - # Manually create build-version.inc as we disabled git versioning - cat <<- EOF > glslc/src/build-version.inc || die - "${P}\n" - "$(best_version dev-util/spirv-tools)\n" - "$(best_version dev-util/glslang)\n" - EOF - - cmake_src_prepare -} - -multilib_src_configure() { - lto-guarantee-fat - local mycmakeargs=( - -DSHADERC_SKIP_TESTS="true" - -DSHADERC_ENABLE_WERROR_COMPILE="false" - ) - cmake_src_configure -} - -multilib_src_compile() { - if multilib_is_native_abi && use doc; then - cmake_src_compile glslc_doc_README - fi - cmake_src_compile -} - -multilib_src_install() { - if multilib_is_native_abi; then - use doc && local HTML_DOCS=( "${BUILD_DIR}/glslc/README.html" ) - fi - cmake_src_install - strip-lto-bytecode -} diff --git a/media-libs/shaderc/shaderc-2026.1.ebuild b/media-libs/shaderc/shaderc-2026.1.ebuild deleted file mode 100644 index e6cee24a7b36..000000000000 --- a/media-libs/shaderc/shaderc-2026.1.ebuild +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..14} ) -inherit cmake-multilib dot-a python-any-r1 - -DESCRIPTION="Collection of tools, libraries and tests for shader compilation" -HOMEPAGE="https://github.com/google/shaderc" -EGIT_COMMIT="${PV}" -SRC_URI="https://github.com/google/${PN}/archive/v${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/${PN}-${EGIT_COMMIT}" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" -IUSE="doc" - -RDEPEND=" - >=dev-util/glslang-1.4.341.0:=[${MULTILIB_USEDEP}] - >=dev-util/spirv-tools-1.4.341.0[${MULTILIB_USEDEP}] -" -DEPEND="${RDEPEND} - ${PYTHON_DEPS} - >=dev-util/spirv-headers-1.4.341.0" - -BDEPEND="doc? ( dev-ruby/asciidoctor )" - -PATCHES=( - "${FILESDIR}"/${PN}-2020.4-fix-build.patch -) - -# https://github.com/google/shaderc/issues/470 -RESTRICT=test - -src_prepare() { - cmake_comment_add_subdirectory examples - - # Unbundle glslang, spirv-headers, spirv-tools - cmake_comment_add_subdirectory third_party - sed -i \ - -e "s|\$<TARGET_FILE:spirv-dis>|${EPREFIX}/usr/bin/spirv-dis|" \ - glslc/test/CMakeLists.txt || die - - # Disable git versioning - sed -i -e '/build-version/d' glslc/CMakeLists.txt || die - - # Manually create build-version.inc as we disabled git versioning - cat <<- EOF > glslc/src/build-version.inc || die - "${P}\n" - "$(best_version dev-util/spirv-tools)\n" - "$(best_version dev-util/glslang)\n" - EOF - - cmake_src_prepare -} - -multilib_src_configure() { - lto-guarantee-fat - local mycmakeargs=( - -DSHADERC_SKIP_TESTS="true" - -DSHADERC_ENABLE_WERROR_COMPILE="false" - ) - cmake_src_configure -} - -multilib_src_compile() { - if multilib_is_native_abi && use doc; then - cmake_src_compile glslc_doc_README - fi - cmake_src_compile -} - -multilib_src_install() { - if multilib_is_native_abi; then - use doc && local HTML_DOCS=( "${BUILD_DIR}/glslc/README.html" ) - fi - cmake_src_install - strip-lto-bytecode -} diff --git a/media-libs/shaderc/shaderc-2026.2.ebuild b/media-libs/shaderc/shaderc-2026.2.ebuild index 59b5c498cab9..741f9c7eda36 100644 --- a/media-libs/shaderc/shaderc-2026.2.ebuild +++ b/media-libs/shaderc/shaderc-2026.2.ebuild @@ -14,7 +14,7 @@ S="${WORKDIR}/${PN}-${EGIT_COMMIT}" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86" +KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" IUSE="doc" RDEPEND=" diff --git a/media-libs/simage/Manifest b/media-libs/simage/Manifest index 16fb95241389..0363f696c178 100644 --- a/media-libs/simage/Manifest +++ b/media-libs/simage/Manifest @@ -1,2 +1,3 @@ DIST simage-1.8.3.tar.gz 829994 BLAKE2B 794ee3a1c71727af7e92839542470a4732584715b01cbfd5be7b34d8ea8295ca65f5634e10027e0e7e4eb36a024d31704ad31d9aa0a6ad6b66c08612879a1603 SHA512 193137bd00a322fe6c170d3ff318ac81e4cc685bdfa40a0415c5bb95802b6290174fea630eb79956f362b4e79fa0b60916976c63ef26d6a65a6a51d5d9f7de03 -DIST simage-1.8.4.tar.gz 6798392 BLAKE2B 8135d26075516d35f11917b1c5b0ebc60c559ee6fb4e84c9601e85b28d15ff83eb5031d45e9332b9fcfc113d20c26639e6d118d73601e59a36f15797c2cbe60e SHA512 8dcd55a5ce4b2b135acc3dd2e5e7b589697e545ca68aaf496350202d9bdeeed2c4623d85a56fc8c73f28ece5f02c0047088c8b68732d5067020d487e2ff99965 +DIST simage-1.8.4-src.tar.gz 6798392 BLAKE2B 8135d26075516d35f11917b1c5b0ebc60c559ee6fb4e84c9601e85b28d15ff83eb5031d45e9332b9fcfc113d20c26639e6d118d73601e59a36f15797c2cbe60e SHA512 8dcd55a5ce4b2b135acc3dd2e5e7b589697e545ca68aaf496350202d9bdeeed2c4623d85a56fc8c73f28ece5f02c0047088c8b68732d5067020d487e2ff99965 +DIST simage-1.8.5-src.tar.gz 6797333 BLAKE2B 21064d0b78796d233f08d3d10a70a8fcd7aa8de5eb19cc42da1cb2fec9b2a60fba2c12cf41f8cb9fe6109931102d9d5e98d6097705e612961fab0436b1a2bb84 SHA512 9853e071126a1b38325b8e0b0c67f3fd7b03b0e9b372469708785f5425ccc2ca93bfa78d1c83818241b882cf49f145a515b099385731f5086d42f3d43f92cc0d diff --git a/media-libs/simage/metadata.xml b/media-libs/simage/metadata.xml index 67ca43e29e1e..3a2cb1bee445 100644 --- a/media-libs/simage/metadata.xml +++ b/media-libs/simage/metadata.xml @@ -1,7 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <!-- maintainer-needed --> + <maintainer type="person" proxied="yes"> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Gentoo Proxy Maintainers</name> + </maintainer> <upstream> <remote-id type="github">coin3d/simage</remote-id> </upstream> diff --git a/media-libs/simage/simage-1.8.4-r1.ebuild b/media-libs/simage/simage-1.8.4-r1.ebuild new file mode 100644 index 000000000000..3ede28c1a3c3 --- /dev/null +++ b/media-libs/simage/simage-1.8.4-r1.ebuild @@ -0,0 +1,88 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Image and video texturing library" +HOMEPAGE="https://github.com/coin3d/simage https://github.com/coin3d/coin/wiki" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/coin3d/${PN,,}.git" +else + SRC_URI="https://github.com/coin3d/${PN,,}/releases/download/v${PV}/${P/${PN}/${PN,,}}-src.tar.gz" + S="${WORKDIR}/${PN,,}" + + KEYWORDS="amd64 ~arm ~arm64 ~hppa ppc ppc64 ~sparc x86" +fi + +LICENSE="BSD-1" +# SONAME +SLOT="0/20" +IUSE="gif jpeg png qt6 sndfile test tiff vorbis zlib" +RESTRICT="!test? ( test )" + +RDEPEND=" + gif? ( media-libs/giflib:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + png? ( media-libs/libpng:= ) + qt6? ( dev-qt/qtbase:6[gui] ) + sndfile? ( + media-libs/libsndfile + media-libs/flac:= + ) + tiff? ( + media-libs/tiff:=[lzma,zstd] + app-arch/xz-utils + app-arch/zstd:= + ) + vorbis? ( + media-libs/libogg + media-libs/libvorbis + media-libs/opus + ) + zlib? ( virtual/zlib:= ) +" +DEPEND="${RDEPEND}" +BDEPEND="test? ( media-libs/libsndfile )" + +PATCHES=( + "${FILESDIR}"/${PN}-1.8.1-0001-Gentoo-specific-remove-RELEASE-flag-from-pkg-config.patch +) + +DOCS=( AUTHORS ChangeLog NEWS README ) + +src_configure() { + local mycmakeargs=( + -D${PN^^}_BUILD_SHARED_LIBS=ON + -D${PN^^}_BUILD_EXAMPLES=OFF + -D${PN^^}_BUILD_TESTS=$(usex test) + -D${PN^^}_BUILD_DOCUMENTATION=OFF + -D${PN^^}_USE_AVIENC=OFF # Windows only + -D${PN^^}_USE_GDIPLUS=OFF # Windows + -D${PN^^}_USE_CGIMAGE=OFF # OS X only + -D${PN^^}_USE_QUICKTIME=OFF # OS X only + -D${PN^^}_USE_QIMAGE=$(usex qt6) + -D${PN^^}_USE_QT5=OFF + -D${PN^^}_USE_QT6=$(usex qt6) + -D${PN^^}_USE_CPACK=OFF + -D${PN^^}_USE_STATIC_LIBS=OFF + -D${PN^^}_LIBJASPER_SUPPORT=OFF + -D${PN^^}_LIBSNDFILE_SUPPORT=$(usex sndfile) + -D${PN^^}_OGGVORBIS_SUPPORT=$(usex vorbis) + -D${PN^^}_EPS_SUPPORT=ON + -D${PN^^}_MPEG2ENC_SUPPORT=ON + -D${PN^^}_PIC_SUPPORT=ON + -D${PN^^}_RGB_SUPPORT=ON + -D${PN^^}_TGA_SUPPORT=ON + -D${PN^^}_XWD_SUPPORT=ON + -D${PN^^}_ZLIB_SUPPORT=$(usex zlib) + -D${PN^^}_GIF_SUPPORT=$(usex gif) + -D${PN^^}_JPEG_SUPPORT=$(usex jpeg) + -D${PN^^}_PNG_SUPPORT=$(usex png) + -D${PN^^}_TIFF_SUPPORT=$(usex tiff) + ) + cmake_src_configure +} diff --git a/media-libs/simage/simage-1.8.4.ebuild b/media-libs/simage/simage-1.8.4.ebuild deleted file mode 100644 index abd806b3375c..000000000000 --- a/media-libs/simage/simage-1.8.4.ebuild +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake - -DESCRIPTION="Image and video texturing library" -HOMEPAGE="https://github.com/coin3d/simage/" - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/coin3d/simage.git" -else - SRC_URI="https://github.com/coin3d/simage/releases/download/v${PV}/${P}-src.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" - S="${WORKDIR}/${PN}" -fi - -LICENSE="BSD-1" -# SONAME -SLOT="0/20" -IUSE="gif jpeg png qt6 sndfile test tiff vorbis zlib" -RESTRICT="!test? ( test )" - -RDEPEND=" - gif? ( media-libs/giflib:= ) - jpeg? ( media-libs/libjpeg-turbo:= ) - png? ( media-libs/libpng:= ) - qt6? ( dev-qt/qtbase:6[gui] ) - sndfile? ( - media-libs/libsndfile - media-libs/flac:= - ) - tiff? ( - media-libs/tiff:=[lzma,zstd] - app-arch/xz-utils - app-arch/zstd:= - ) - vorbis? ( - media-libs/libogg - media-libs/libvorbis - media-libs/opus - ) - zlib? ( virtual/zlib:= ) -" -DEPEND="${RDEPEND}" -BDEPEND="test? ( media-libs/libsndfile )" - -PATCHES=( - "${FILESDIR}"/${PN}-1.8.1-0001-Gentoo-specific-remove-RELEASE-flag-from-pkg-config.patch -) - -DOCS=( AUTHORS ChangeLog NEWS README ) - -src_configure() { - local mycmakeargs=( - -DSIMAGE_BUILD_SHARED_LIBS=ON - -DSIMAGE_BUILD_EXAMPLES=OFF - -DSIMAGE_BUILD_TESTS=$(usex test) - -DSIMAGE_BUILD_DOCUMENTATION=OFF - -DSIMAGE_USE_AVIENC=OFF # Windows only - -DSIMAGE_USE_GDIPLUS=OFF # Windows - -DSIMAGE_USE_CGIMAGE=OFF # OS X only - -DSIMAGE_USE_QUICKTIME=OFF # OS X only - -DSIMAGE_USE_QIMAGE=$(usex qt6) - -DSIMAGE_USE_QT5=OFF - -DSIMAGE_USE_QT6=$(usex qt6) - -DSIMAGE_USE_CPACK=OFF - -DSIMAGE_USE_STATIC_LIBS=OFF - -DSIMAGE_LIBJASPER_SUPPORT=OFF - -DSIMAGE_LIBSNDFILE_SUPPORT=$(usex sndfile) - -DSIMAGE_OGGVORBIS_SUPPORT=$(usex vorbis) - -DSIMAGE_EPS_SUPPORT=ON - -DSIMAGE_MPEG2ENC_SUPPORT=ON - -DSIMAGE_PIC_SUPPORT=ON - -DSIMAGE_RGB_SUPPORT=ON - -DSIMAGE_TGA_SUPPORT=ON - -DSIMAGE_XWD_SUPPORT=ON - -DSIMAGE_ZLIB_SUPPORT=$(usex zlib) - -DSIMAGE_GIF_SUPPORT=$(usex gif) - -DSIMAGE_JPEG_SUPPORT=$(usex jpeg) - -DSIMAGE_PNG_SUPPORT=$(usex png) - -DSIMAGE_TIFF_SUPPORT=$(usex tiff) - ) - cmake_src_configure -} diff --git a/media-libs/simage/simage-1.8.5.ebuild b/media-libs/simage/simage-1.8.5.ebuild new file mode 100644 index 000000000000..713eba4a16cc --- /dev/null +++ b/media-libs/simage/simage-1.8.5.ebuild @@ -0,0 +1,88 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Image and video texturing library" +HOMEPAGE="https://github.com/coin3d/simage https://github.com/coin3d/coin/wiki" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/coin3d/${PN,,}.git" +else + SRC_URI="https://github.com/coin3d/${PN,,}/releases/download/v${PV}/${P/${PN}/${PN,,}}-src.tar.gz" + S="${WORKDIR}/${PN,,}" + + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" +fi + +LICENSE="BSD-1" +# SONAME +SLOT="0/20" +IUSE="gif jpeg png qt6 sndfile test tiff vorbis zlib" +RESTRICT="!test? ( test )" + +RDEPEND=" + gif? ( media-libs/giflib:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + png? ( media-libs/libpng:= ) + qt6? ( dev-qt/qtbase:6[gui] ) + sndfile? ( + media-libs/libsndfile + media-libs/flac:= + ) + tiff? ( + media-libs/tiff:=[lzma,zstd] + app-arch/xz-utils + app-arch/zstd:= + ) + vorbis? ( + media-libs/libogg + media-libs/libvorbis + media-libs/opus + ) + zlib? ( virtual/zlib:= ) +" +DEPEND="${RDEPEND}" +BDEPEND="test? ( media-libs/libsndfile )" + +PATCHES=( + "${FILESDIR}"/${PN}-1.8.1-0001-Gentoo-specific-remove-RELEASE-flag-from-pkg-config.patch +) + +DOCS=( AUTHORS ChangeLog NEWS README ) + +src_configure() { + local mycmakeargs=( + -D${PN^^}_BUILD_SHARED_LIBS=ON + -D${PN^^}_BUILD_EXAMPLES=OFF + -D${PN^^}_BUILD_TESTS=$(usex test) + -D${PN^^}_BUILD_DOCUMENTATION=OFF + -D${PN^^}_USE_AVIENC=OFF # Windows only + -D${PN^^}_USE_GDIPLUS=OFF # Windows + -D${PN^^}_USE_CGIMAGE=OFF # OS X only + -D${PN^^}_USE_QUICKTIME=OFF # OS X only + -D${PN^^}_USE_QIMAGE=$(usex qt6) + -D${PN^^}_USE_QT5=OFF + -D${PN^^}_USE_QT6=$(usex qt6) + -D${PN^^}_USE_CPACK=OFF + -D${PN^^}_USE_STATIC_LIBS=OFF + -D${PN^^}_LIBJASPER_SUPPORT=OFF + -D${PN^^}_LIBSNDFILE_SUPPORT=$(usex sndfile) + -D${PN^^}_OGGVORBIS_SUPPORT=$(usex vorbis) + -D${PN^^}_EPS_SUPPORT=ON + -D${PN^^}_MPEG2ENC_SUPPORT=ON + -D${PN^^}_PIC_SUPPORT=ON + -D${PN^^}_RGB_SUPPORT=ON + -D${PN^^}_TGA_SUPPORT=ON + -D${PN^^}_XWD_SUPPORT=ON + -D${PN^^}_ZLIB_SUPPORT=$(usex zlib) + -D${PN^^}_GIF_SUPPORT=$(usex gif) + -D${PN^^}_JPEG_SUPPORT=$(usex jpeg) + -D${PN^^}_PNG_SUPPORT=$(usex png) + -D${PN^^}_TIFF_SUPPORT=$(usex tiff) + ) + cmake_src_configure +} diff --git a/media-libs/vulkan-layers/Manifest b/media-libs/vulkan-layers/Manifest index 29796342267d..4ac741a895b9 100644 --- a/media-libs/vulkan-layers/Manifest +++ b/media-libs/vulkan-layers/Manifest @@ -1,5 +1,2 @@ -DIST vulkan-layers-1.4.328.0.tar.gz 6765952 BLAKE2B 7b68d635c262f1350f93c5906ccaf9b548ea27ae85210198e02d8cbaee52a9bd080fd9555979a6b26d2d5fe200de8e4a77f938f1a77050b959100b6b82226b10 SHA512 d98ae93e738fee540e4924c887497f06ca7296a22a1a450f08e5278bdc51fb440443361fdf839793bc632b6e6115754621f24a8e7f2548da58d1bf67713ccaf9 -DIST vulkan-layers-1.4.335.0.tar.gz 7035814 BLAKE2B ee49766f3521db3434dfba793f8cb51d98363610cf85d91f238727c3dd3392743897fe3aa0979956fefcdf86a4e2b0a2de9c0b236473ceba3d7556363e572407 SHA512 5088bfb212595d5c1bd052f3e2e7d52ffa1c329625576116876a248daba51c9ba86297ebf8ffb6bd1e8f78bf161409a603aa4d145032664623292d53ed541514 -DIST vulkan-layers-1.4.341.0.tar.gz 7331280 BLAKE2B 1be3f6b4ab9d04f3a6b4d1c6d1e4c8b1baf00d5fb8fff55af552cbab4ceb0026375dcbfbe257d43aa21cdb1ff2876efa1c93abbea834bbb8f643749839ae8aa4 SHA512 621ed3bc35d97bbac6a2343818530ac5b36c10868fb0fa8de7a3dbb9ae67f3676fd66656a36c4f19ec875b247b0c29b478d735882a429e850c1754203d4f9845 DIST vulkan-layers-1.4.350.0.tar.gz 7789546 BLAKE2B c59150af0dc6213d77d5ee604cb63c96ff81ce5df424c1d210e30ac330d010973002a907416375f1c27f4b268279ec3d5386dfe64357c90e30de8d20c66af057 SHA512 7005b696069d5580ffd1942f115b32a7b3fd2aa24bf9666222174e2d6f4d8471e5df7433b49c08360f9126dbd02cd4009dfcee4a6642948b8e36d658aad4d72b DIST vulkan-layers-1.4.357.0.tar.gz 8376244 BLAKE2B ca0a40093fff06d0543fdb4a4adbc7262b8e6b2d1cc28d83c3ca7b18e54f3333803da1260fbd231d3c31cfed9fd646724f2f877a96db33a177a98ffc63da8ba3 SHA512 5bdec84ad1072e9728ab6c599c2f67af8d5b8b5f58f565a5f74f7a98a5e8b414e7b89b2c0c1b6de45c6ba6c58f9f1cd9953e242919bbb98c0c79888ecd328800 diff --git a/media-libs/vulkan-layers/files/vulkan-layers-1.4.328.0-tests-no-static.patch b/media-libs/vulkan-layers/files/vulkan-layers-1.4.328.0-tests-no-static.patch deleted file mode 100644 index 61f63ad90505..000000000000 --- a/media-libs/vulkan-layers/files/vulkan-layers-1.4.328.0-tests-no-static.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git ./tests/CMakeLists.txt ./tests/CMakeLists.txt -index c7e2a73d8..5742cb8a1 100644 ---- ./tests/CMakeLists.txt -+++ ./tests/CMakeLists.txt -@@ -337,7 +337,6 @@ endif() - - find_package(GTest CONFIG) - find_package(glslang CONFIG) --find_package(SPIRV-Tools CONFIG) - - # Slang - # --- -@@ -533,7 +532,6 @@ target_link_libraries(vk_layer_validation_tests PRIVATE - VkLayer_utils - $<$<BOOL:${USE_SLANG}>:slang> - glslang::SPIRV -- SPIRV-Tools-static - SPIRV-Headers::SPIRV-Headers - GTest::gtest - GTest::gtest_main -@@ -554,6 +552,21 @@ target_include_directories(vk_layer_validation_tests PRIVATE - ${VVL_SOURCE_DIR}/layers/external - ) - -+find_package(SPIRV-Tools CONFIG QUIET) -+ -+# See https://github.com/KhronosGroup/SPIRV-Tools/issues/3909 for background on this. -+# The targets available from SPIRV-Tools change depending on how SPIRV_TOOLS_BUILD_STATIC is set. -+# Try to handle all possible combinations so that we work with externally built packages. -+if (TARGET SPIRV-Tools) -+ target_link_libraries(vk_layer_validation_tests PRIVATE SPIRV-Tools) -+elseif(TARGET SPIRV-Tools-static) -+ target_link_libraries(vk_layer_validation_tests PRIVATE SPIRV-Tools-static) -+elseif(TARGET SPIRV-Tools-shared) -+ target_link_libraries(vk_layer_validation_tests PRIVATE SPIRV-Tools-shared) -+else() -+ message(FATAL_ERROR "Cannot determine SPIRV-Tools target name") -+endif() -+ - # More details in tests/android/mock/README.md - option(VVL_MOCK_ANDROID "Enable building for Android on desktop for testing with MockICD setup") - if(VVL_MOCK_ANDROID) diff --git a/media-libs/vulkan-layers/vulkan-layers-1.4.328.0.ebuild b/media-libs/vulkan-layers/vulkan-layers-1.4.328.0.ebuild deleted file mode 100644 index 0da0d748570f..000000000000 --- a/media-libs/vulkan-layers/vulkan-layers-1.4.328.0.ebuild +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-ValidationLayers -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - EGIT_SUBMODULES=() - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Vulkan Validation Layers" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-ValidationLayers" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="wayland test X" -# Many segfaults as of 1.4.313.0 -RESTRICT="!test? ( test ) test" - -RDEPEND="~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}]" -DEPEND="${RDEPEND} - ${PYTHON_DEPS} - ~dev-util/glslang-${PV}:=[${MULTILIB_USEDEP}] - ~dev-util/spirv-headers-${PV} - ~dev-util/vulkan-headers-${PV} - ~dev-util/vulkan-utility-libraries-${PV}:=[${MULTILIB_USEDEP}] - wayland? ( dev-libs/wayland:=[${MULTILIB_USEDEP}] ) - X? ( - x11-libs/libX11:=[${MULTILIB_USEDEP}] - x11-libs/libXrandr:=[${MULTILIB_USEDEP}] - ) -" - -QA_SONAME="/usr/lib[^/]*/libVkLayer_khronos_validation.so" - -PATCHES=( - "${FILESDIR}"/${PN}-1.4.328.0-tests-no-static.patch -) - -multilib_src_configure() { - local mycmakeargs=( - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" - -DCMAKE_SKIP_RPATH=ON - -DBUILD_WERROR=OFF - -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) - -DBUILD_WSI_XCB_SUPPORT=$(usex X) - -DBUILD_WSI_XLIB_SUPPORT=$(usex X) - -DBUILD_TESTS=$(usex test) - ) - cmake_src_configure -} - -multilib_src_install_all() { - find "${ED}" -type f -name \*.a -delete || die -} diff --git a/media-libs/vulkan-layers/vulkan-layers-1.4.335.0.ebuild b/media-libs/vulkan-layers/vulkan-layers-1.4.335.0.ebuild deleted file mode 100644 index 090020bed2de..000000000000 --- a/media-libs/vulkan-layers/vulkan-layers-1.4.335.0.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-ValidationLayers -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - EGIT_SUBMODULES=() - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Vulkan Validation Layers" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-ValidationLayers" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="wayland test X" -RESTRICT="!test? ( test )" - -RDEPEND="~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}]" -DEPEND="${RDEPEND} - ${PYTHON_DEPS} - ~dev-util/glslang-${PV}:=[${MULTILIB_USEDEP}] - ~dev-util/spirv-headers-${PV} - ~dev-util/vulkan-headers-${PV} - ~dev-util/vulkan-utility-libraries-${PV}:=[${MULTILIB_USEDEP}] - wayland? ( dev-libs/wayland:=[${MULTILIB_USEDEP}] ) - X? ( - x11-libs/libX11:=[${MULTILIB_USEDEP}] - x11-libs/libXrandr:=[${MULTILIB_USEDEP}] - ) -" - -QA_SONAME="/usr/lib[^/]*/libVkLayer_khronos_validation.so" - -PATCHES=( - "${FILESDIR}"/${PN}-1.4.335.0-tests-no-static.patch -) - -multilib_src_configure() { - local mycmakeargs=( - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" - -DCMAKE_SKIP_RPATH=ON - -DBUILD_WERROR=OFF - -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) - -DBUILD_WSI_XCB_SUPPORT=$(usex X) - -DBUILD_WSI_XLIB_SUPPORT=$(usex X) - -DBUILD_TESTS=$(usex test) - ) - cmake_src_configure -} - -multilib_src_test() { - addwrite "/dev/dri/renderD128" - cmake_src_test -} - -multilib_src_install_all() { - find "${ED}" -type f -name \*.a -delete || die -} diff --git a/media-libs/vulkan-layers/vulkan-layers-1.4.341.0.ebuild b/media-libs/vulkan-layers/vulkan-layers-1.4.341.0.ebuild deleted file mode 100644 index 8c08a96ef2a6..000000000000 --- a/media-libs/vulkan-layers/vulkan-layers-1.4.341.0.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-ValidationLayers -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - EGIT_SUBMODULES=() - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Vulkan Validation Layers" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-ValidationLayers" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="wayland test X" -RESTRICT="!test? ( test ) test" - -RDEPEND="~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}]" -DEPEND="${RDEPEND} - ${PYTHON_DEPS} - ~dev-util/glslang-${PV}:=[${MULTILIB_USEDEP}] - ~dev-util/spirv-headers-${PV} - ~dev-util/vulkan-headers-${PV} - ~dev-util/vulkan-utility-libraries-${PV}:=[${MULTILIB_USEDEP}] - wayland? ( dev-libs/wayland:=[${MULTILIB_USEDEP}] ) - X? ( - x11-libs/libX11:=[${MULTILIB_USEDEP}] - x11-libs/libXrandr:=[${MULTILIB_USEDEP}] - ) -" - -QA_SONAME="/usr/lib[^/]*/libVkLayer_khronos_validation.so" - -PATCHES=( - "${FILESDIR}"/${PN}-1.4.335.0-tests-no-static.patch -) - -multilib_src_configure() { - local mycmakeargs=( - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" - -DCMAKE_SKIP_RPATH=ON - -DBUILD_WERROR=OFF - -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) - -DBUILD_WSI_XCB_SUPPORT=$(usex X) - -DBUILD_WSI_XLIB_SUPPORT=$(usex X) - -DBUILD_TESTS=$(usex test) - ) - cmake_src_configure -} - -multilib_src_test() { - addwrite "/dev/dri/renderD128" - cmake_src_test -} - -multilib_src_install_all() { - find "${ED}" -type f -name \*.a -delete || die -} diff --git a/media-libs/vulkan-layers/vulkan-layers-1.4.350.0.ebuild b/media-libs/vulkan-layers/vulkan-layers-1.4.350.0.ebuild index 16854598630f..55cd5f304721 100644 --- a/media-libs/vulkan-layers/vulkan-layers-1.4.350.0.ebuild +++ b/media-libs/vulkan-layers/vulkan-layers-1.4.350.0.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == *9999* ]]; then inherit git-r3 else SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86" + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} fi diff --git a/media-libs/vulkan-loader/Manifest b/media-libs/vulkan-loader/Manifest index c1dbf61252be..a5193514b37a 100644 --- a/media-libs/vulkan-loader/Manifest +++ b/media-libs/vulkan-loader/Manifest @@ -1,5 +1,2 @@ -DIST vulkan-loader-1.4.328.0.tar.gz 1769166 BLAKE2B 9d7687de18059361abe87f34fb679954bac5b991f8fb882dc5a5d2f568080f5478c37c8c5d164870e86125cb97e032e138d06154169841576de36f1ed88181d3 SHA512 f35017b0b4ca9e1b149e2ab956fac59ffbab1f861971459c0b3c340377a0399b27ec706284ac4e4a931b58a3c2f7e6df36838ab0829f4a17cf087c0199793e16 -DIST vulkan-loader-1.4.335.0.tar.gz 1793888 BLAKE2B c9bb72147c839ded1250b40a7c2b285c3b41aa9b9332fa1e91759fc7966c7d1f5be9c1805d55fd31c97f68b4a6f9346f3f57323a04b62c3a0262158fd00e176e SHA512 91d9883e05eaeec8d800b8eb7f5e457c62554ded3b470bc1b0cdb979863819f01c0c02b2ba7c1dd3031a05c90152960a680b237d3570826a8615b25aa57bd061 -DIST vulkan-loader-1.4.341.0.tar.gz 1793677 BLAKE2B f41c8975bdede9cf3c527293dbf4ef21f7228b72719916abda55ad39063f413c3814183d3fa5b532c167e5e5d5fcc0dcd3fd6f557f7946bf2e605a444db2a2c5 SHA512 37492473268fbedb8d099a03bdd575f49798c34b3e6647736e271ffa584aeb865e0a227e48d5a45fcdbf217909bc78bfda6ee7288836e556553f853305e3627c DIST vulkan-loader-1.4.350.0.tar.gz 1800025 BLAKE2B 14d370c4a53def72bfc017966d91594bd9fbbc636d50185c873f571287eb731ec0770687edf3feb0da9c2b3e1a79d06bd84612287b90e2cb5f7589a80276d65a SHA512 5d9829bed6e166b598e6769b6263c0d0408ba578c3e99b460e1ca2a5b13bd0ea38f315953f6ad74567fbd7025143050704b87e2ea11e6689c41675220e115ce1 DIST vulkan-loader-1.4.357.0.tar.gz 1820868 BLAKE2B e70b04e567b71b61927116ca771822605ccfa8b6c7f1d6ec0b5aadd45045ba1a8e5fe6ad7181f5964c98fec96f24a3e04d12dace925d66e59d1b2dd5eafa29a0 SHA512 3376ce1be08ec4f453d6674118cc5e59d07ba7c7ec135f3cdd4d6820fa26bf4ef5e176ac9ade4413d25d90b4828060a1d0e0c1c2a7b4bec3118d70cdd61e6bfa diff --git a/media-libs/vulkan-loader/vulkan-loader-1.4.328.0-r1.ebuild b/media-libs/vulkan-loader/vulkan-loader-1.4.328.0-r1.ebuild deleted file mode 100644 index 7795dd700e1c..000000000000 --- a/media-libs/vulkan-loader/vulkan-loader-1.4.328.0-r1.ebuild +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Loader -inherit flag-o-matic cmake-multilib toolchain-funcs - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - EGIT_SUBMODULES=() - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Vulkan Installable Client Driver (ICD) Loader" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Loader" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="layers wayland X" - -DEPEND=" - ~dev-util/vulkan-headers-${PV} - wayland? ( dev-libs/wayland:=[${MULTILIB_USEDEP}] ) - X? ( - x11-base/xorg-proto - x11-libs/libX11:=[${MULTILIB_USEDEP}] - x11-libs/libXrandr:=[${MULTILIB_USEDEP}] - ) -" -PDEPEND="layers? ( media-libs/vulkan-layers[${MULTILIB_USEDEP},wayland?,X?] )" - -multilib_src_configure() { - # Integrated clang assembler doesn't work with x86 - Bug #698164 - if tc-is-clang && [[ ${ABI} == x86 ]]; then - append-cflags -fno-integrated-as - fi - - local mycmakeargs=( - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" - -DCMAKE_SKIP_RPATH=ON - -DBUILD_TESTS=OFF - -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) - -DBUILD_WSI_XCB_SUPPORT=$(usex X) - -DBUILD_WSI_XLIB_SUPPORT=$(usex X) - -DVULKAN_HEADERS_INSTALL_DIR="${ESYSROOT}/usr" - ) - cmake_src_configure -} - -multilib_src_install() { - keepdir /etc/vulkan/icd.d - - cmake_src_install -} diff --git a/media-libs/vulkan-loader/vulkan-loader-1.4.335.0-r1.ebuild b/media-libs/vulkan-loader/vulkan-loader-1.4.335.0-r1.ebuild deleted file mode 100644 index 5a7e7db6f424..000000000000 --- a/media-libs/vulkan-loader/vulkan-loader-1.4.335.0-r1.ebuild +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Loader -inherit flag-o-matic cmake-multilib toolchain-funcs - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - EGIT_SUBMODULES=() - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Vulkan Installable Client Driver (ICD) Loader" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Loader" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="wayland X" - -DEPEND=" - ~dev-util/vulkan-headers-${PV} - wayland? ( dev-libs/wayland:=[${MULTILIB_USEDEP}] ) - X? ( - x11-base/xorg-proto - x11-libs/libX11:=[${MULTILIB_USEDEP}] - x11-libs/libXrandr:=[${MULTILIB_USEDEP}] - ) -" - -multilib_src_configure() { - # Integrated clang assembler doesn't work with x86 - Bug #698164 - if tc-is-clang && [[ ${ABI} == x86 ]]; then - append-cflags -fno-integrated-as - fi - - local mycmakeargs=( - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" - -DCMAKE_SKIP_RPATH=ON - -DBUILD_TESTS=OFF - -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) - -DBUILD_WSI_XCB_SUPPORT=$(usex X) - -DBUILD_WSI_XLIB_SUPPORT=$(usex X) - -DVULKAN_HEADERS_INSTALL_DIR="${ESYSROOT}/usr" - -DGIT_EXECUTABLE="${BROOT}/usr/bin/git" - ) - - if tc-is-cross-compiler; then - # Python only needed when cross-compiling so don't bother with eclass. - mycmakeargs+=( -DPython3_EXECUTABLE="${BROOT}/usr/bin/python3" ) - fi - - cmake_src_configure -} - -multilib_src_install() { - keepdir /etc/vulkan/icd.d - - cmake_src_install -} diff --git a/media-libs/vulkan-loader/vulkan-loader-1.4.341.0.ebuild b/media-libs/vulkan-loader/vulkan-loader-1.4.341.0.ebuild deleted file mode 100644 index c8f379019eaa..000000000000 --- a/media-libs/vulkan-loader/vulkan-loader-1.4.341.0.ebuild +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_PN=Vulkan-Loader -inherit flag-o-matic cmake-multilib toolchain-funcs - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/KhronosGroup/${MY_PN}.git" - EGIT_SUBMODULES=() - inherit git-r3 -else - SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" - S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} -fi - -DESCRIPTION="Vulkan Installable Client Driver (ICD) Loader" -HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Loader" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="wayland X" - -DEPEND=" - ~dev-util/vulkan-headers-${PV} - wayland? ( dev-libs/wayland:=[${MULTILIB_USEDEP}] ) - X? ( - x11-base/xorg-proto - x11-libs/libX11:=[${MULTILIB_USEDEP}] - x11-libs/libXrandr:=[${MULTILIB_USEDEP}] - ) -" - -multilib_src_configure() { - # Integrated clang assembler doesn't work with x86 - Bug #698164 - if tc-is-clang && [[ ${ABI} == x86 ]]; then - append-cflags -fno-integrated-as - fi - - local mycmakeargs=( - -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG" - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" - -DCMAKE_SKIP_RPATH=ON - -DBUILD_TESTS=OFF - -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) - -DBUILD_WSI_XCB_SUPPORT=$(usex X) - -DBUILD_WSI_XLIB_SUPPORT=$(usex X) - -DVULKAN_HEADERS_INSTALL_DIR="${ESYSROOT}/usr" - -DGIT_EXECUTABLE="${BROOT}/usr/bin/git" - ) - - if tc-is-cross-compiler; then - # Python only needed when cross-compiling so don't bother with eclass. - mycmakeargs+=( -DPython3_EXECUTABLE="${BROOT}/usr/bin/python3" ) - fi - - cmake_src_configure -} - -multilib_src_install() { - keepdir /etc/vulkan/icd.d - - cmake_src_install -} diff --git a/media-libs/vulkan-loader/vulkan-loader-1.4.350.0.ebuild b/media-libs/vulkan-loader/vulkan-loader-1.4.350.0.ebuild index 0aeafc24a9ac..c8f379019eaa 100644 --- a/media-libs/vulkan-loader/vulkan-loader-1.4.350.0.ebuild +++ b/media-libs/vulkan-loader/vulkan-loader-1.4.350.0.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == *9999* ]]; then inherit git-r3 else SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86" + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" S="${WORKDIR}"/${MY_PN}-vulkan-sdk-${PV} fi diff --git a/media-libs/zint/zint-2.16.0.ebuild b/media-libs/zint/zint-2.16.0.ebuild index 253f92d52cdf..6f8da68524a9 100644 --- a/media-libs/zint/zint-2.16.0.ebuild +++ b/media-libs/zint/zint-2.16.0.ebuild @@ -15,7 +15,7 @@ S="${WORKDIR}/${P}-src" # see LICENSE LICENSE="BSD GPL-3+" SLOT="0/$(ver_cut 1-2)" -KEYWORDS="amd64 ~riscv" +KEYWORDS="amd64 ~arm ~ppc64 ~riscv ~x86" IUSE="gui png test" RESTRICT="!test? ( test )" diff --git a/media-libs/zxing-cpp/zxing-cpp-3.1.1.ebuild b/media-libs/zxing-cpp/zxing-cpp-3.1.1.ebuild index f25c8a2cc3f3..04534585e248 100644 --- a/media-libs/zxing-cpp/zxing-cpp-3.1.1.ebuild +++ b/media-libs/zxing-cpp/zxing-cpp-3.1.1.ebuild @@ -19,7 +19,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="Apache-2.0" SLOT="0/4" # ZXING_SONAME in CMakeLists.txt -KEYWORDS="~amd64 ~riscv" +KEYWORDS="~amd64 ~arm ~ppc64 ~riscv ~x86" IUSE="test tools" RESTRICT="!test? ( test )" diff --git a/media-tv/mythtv/Manifest b/media-tv/mythtv/Manifest index 637ddee549e9..7550ed72bac5 100644 --- a/media-tv/mythtv/Manifest +++ b/media-tv/mythtv/Manifest @@ -1 +1,2 @@ DIST mythtv-35.0_p20251230.tar.gz 120232263 BLAKE2B ce6e9ce3cfbcb18f38e45708e8d9d434c352bbf3f7987e55c047214af10db9090593d374ee2d7fa3f4afc8567c715dadbd6c7fd41f448e605fcb8f527dc9591a SHA512 a8bcf4667f8a190f19a9fe22a10cc37a93e23704bcf19c7b3cdb156cc86890fce225e4118c5bcb2810a29306c34215dd8fe18ad69c310770963c79d7a51afeec +DIST mythtv-36.0_p20260819.tar.gz 114288232 BLAKE2B 5554f2e731078f10cfdcbf5e6cb9785c753c30aada102d28381f0ab2bc3d4795d909d46948240a8628275989f5dabfeafb8c8142f29d48adfa50229388334331 SHA512 14bd086a37d3795738e7e8842d54c9497682c307c0b4340734f56f0628e43ae0bf7707660bdf4ac0fa272e0db15dee7650a3f0e10182f2c5ea7151aae809662e diff --git a/media-tv/mythtv/mythtv-36.0_p20260819.ebuild b/media-tv/mythtv/mythtv-36.0_p20260819.ebuild new file mode 100644 index 000000000000..f64223c00eff --- /dev/null +++ b/media-tv/mythtv/mythtv-36.0_p20260819.ebuild @@ -0,0 +1,390 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISABLE_AUTOFORMATTING="yes" +PYTHON_COMPAT=( python3_{11..14} ) + +inherit edo flag-o-matic python-any-r1 +inherit qmake-utils readme.gentoo-r1 systemd toolchain-funcs user-info + +DESCRIPTION="Open Source DVR and media center hub" +HOMEPAGE="https://www.mythtv.org https://github.com/MythTV/mythtv" +if [[ ${PV} == *_p* ]] ; then + # https://github.com/MythTV/mythtv/tree/fixes/36 + MY_COMMIT="b6ed364d3fb3ed4aea468c60d1eee0d86404c72c" + SRC_URI="https://github.com/MythTV/mythtv/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" + # mythtv and mythplugins are separate builds in the github MythTV project + S="${WORKDIR}/mythtv-${MY_COMMIT}/mythtv" +else + SRC_URI="https://github.com/MythTV/mythtv/archive/v${PV}.tar.gz -> ${P}.tar.gz" + # mythtv and mythplugins are separate builds in the github mythtv project + S="${WORKDIR}/${P}/mythtv" +fi + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE_INPUT_DEVICES="input_devices_joystick" +IUSE_VIDEO_CAPTURE_DEVICES="v4l ieee1394 hdhomerun vbox ceton" +IUSE="alsa asi autostart cdda cdr cec cpu_flags_ppc_altivec debug dvd dvb exif jack java" +IUSE+=" +lame lcd libass lirc nvdec +opengl oss perl pulseaudio python raw systemd vaapi vdpau vpx" +IUSE+=" +wrapper x264 x265 +xml xmltv +xvid +X zeroconf" +IUSE+=" ${IUSE_INPUT_DEVICES} ${IUSE_VIDEO_CAPTURE_DEVICES}" +REQUIRED_USE=" + cdr? ( cdda ) +" + +RDEPEND=" + acct-user/mythtv + dev-libs/glib:2 + dev-libs/lzo:2 + dev-libs/libzip:= + dev-qt/qtbase:6[dbus,gui,mysql,network,sql,xml,widgets] + media-fonts/corefonts + media-fonts/dejavu + media-fonts/liberation-fonts + media-fonts/tex-gyre + media-gfx/exiv2:= + media-libs/freetype:2 + media-libs/libbluray:=[java?] + media-libs/libsamplerate + media-libs/libsoundtouch:= + media-libs/taglib:= + virtual/zlib:= + alsa? ( media-libs/alsa-lib ) + autostart? ( + net-dialup/mingetty + x11-apps/xset + x11-wm/evilwm + ) + cec? ( dev-libs/libcec ) + dvd? ( + dev-libs/libcdio:= + media-libs/libdvdcss + sys-fs/udisks:2 + ) + hdhomerun? ( media-libs/libhdhomerun ) + ieee1394? ( + media-libs/libiec61883 + sys-libs/libavc1394 + sys-libs/libraw1394 + ) + jack? ( virtual/jack ) + lame? ( media-sound/lame ) + lcd? ( app-misc/lcdproc ) + libass? ( media-libs/libass:= ) + lirc? ( app-misc/lirc ) + nvdec? ( x11-drivers/nvidia-drivers ) + opengl? ( dev-qt/qtbase:6[opengl] ) + pulseaudio? ( media-libs/libpulse ) + systemd? ( sys-apps/systemd:= ) + vaapi? ( media-libs/libva:=[X] ) + vdpau? ( x11-libs/libvdpau ) + vpx? ( media-libs/libvpx:= ) + x264? ( media-libs/x264:= ) + X? ( + x11-apps/xinit + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXrandr + x11-libs/libXv + x11-libs/libXxf86vm:= + x11-misc/wmctrl:= + ) + x265? ( media-libs/x265 ) + xml? ( dev-libs/libxml2:2 ) + xmltv? ( + dev-perl/XML-LibXML + media-tv/xmltv + ) + xvid? ( media-libs/xvid ) + zeroconf? ( + dev-libs/openssl:= + net-dns/avahi[mdnsresponder-compat] + ) +" +DEPEND=" + ${RDEPEND} + dev-lang/yasm + sys-kernel/linux-headers + x11-base/xorg-proto + perl? ( + dev-perl/DBD-mysql + dev-perl/DBI + dev-perl/HTTP-Message + dev-perl/IO-Socket-INET6 + dev-perl/LWP-Protocol-https + dev-perl/Net-UPnP + dev-perl/XML-Simple + ) +" +BDEPEND=" + virtual/pkgconfig + opengl? ( virtual/opengl ) + python? ( + ${PYTHON_DEPS} + $(python_gen_any_dep ' + dev-python/python-dateutil[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/mysqlclient[${PYTHON_USEDEP}] + dev-python/pip[${PYTHON_USEDEP}] + dev-python/requests-cache[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + ') + ) +" + +python_check_deps() { + use python || return 0 + python_has_version "dev-python/python-dateutil[${PYTHON_USEDEP}]" && + python_has_version "dev-python/lxml[${PYTHON_USEDEP}]" && + python_has_version "dev-python/mysqlclient[${PYTHON_USEDEP}]" && + python_has_version "dev-python/requests-cache[${PYTHON_USEDEP}]" && + python_has_version "dev-python/pip[${PYTHON_USEDEP}]" && + python_has_version "dev-python/wheel[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + if use autostart; then + local HOME_MYTHTV=$(egethome mythtv) + if [[ ! -z "${HOME_MYTHTV}" && ! -d "${HOME_MYTHTV}" ]] ; then + eerror "Home path '${HOME_MYTHTV}' for user 'mythtv' exists" \ + "but is not a directory" + die + fi + fi +} + +pkg_setup() { + use python && python-any-r1_pkg_setup +} + +src_prepare() { + default + + # Perl bits need to go into vendor_perl and not site_perl + sed -e "s:pure_install:pure_install INSTALLDIRS=vendor:" \ + -i "${S}"/bindings/perl/Makefile || die "Cannot convert site_perl to vendor_perl!" +} + +src_configure() { + use elibc_musl && append-flags -D_LARGEFILE64_SOURCE # 924347 + + local -a myconf=() + + # Setup paths + myconf+=( --prefix="${EPREFIX}"/usr ) + myconf+=( --libdir="${EPREFIX}"/usr/$(get_libdir) ) + myconf+=( --libdir-name=$(get_libdir) ) + myconf+=( --mandir="${EPREFIX}"/usr/share/man ) + + if use debug; then + myconf+=( --compile-type=debug ) + myconf+=( --enable-valgrind ) # disables timeouts for valgrind memory debugging + else + myconf+=( --compile-type=release ) + fi + + # Build boosters + has ccache "${FEATURES}" || myconf+=( --disable-ccache ) + has distcc "${FEATURES}" || myconf+=( --disable-distcc ) + + # CPU settings + # Mythtv's configure is borrowed from ffmpeg, + # Bug #172723 + # Try to get cpu type based on CFLAGS. + # We need to do this so that features of that CPU will be better used + # If they contain an unknown CPU it will not hurt since ffmpeg's configure + # will just ignore it. + local i + for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do + [[ "${i}" == "native" ]] && i="host" # bug #273421 + myconf+=( --cpu="${i}" ) + break + done + myconf+=( $(use_enable cpu_flags_ppc_altivec altivec) ) + + # Sound Output Support + myconf+=( + $(use_enable oss audio-oss) + + $(use_enable alsa audio-alsa) + $(use_enable jack audio-jack) + $(use_enable pulseaudio audio-pulseoutput) + ) + + # Input Support + myconf+=( + $(use_enable lirc) + $(use_enable input_devices_joystick joystick-menu) + $(use_enable cec libcec) + $(use_enable ieee1394 firewire) + $(use_enable hdhomerun) + $(use_enable vbox) + $(use_enable ceton) + $(use_enable v4l v4l2) + $(use_enable dvb) + $(use_enable asi) + ) + + # Video Output Support + myconf+=( + $(use_enable X x11) + ) + + # Hardware accelerators + myconf+=( + $(use_enable nvdec) + $(use_enable vaapi) + $(use_enable vdpau) + $(use_enable opengl) + $(use_enable opengl egl) + $(use_enable libass) + ) + + # System tools + myconf+=( + $(use_enable systemd systemd_notify) + $(use_enable systemd systemd_journal) + $(use_enable xml libxml2) + $(use_enable zeroconf libdns-sd) + ) + + # Bindings + if use perl && use python; then + myconf+=( --with-bindings=perl,python ) + elif use perl; then + myconf+=( --without-bindings=python ) + myconf+=( --with-bindings=perl ) + elif use python; then + myconf+=( --without-bindings=perl ) + myconf+=( --with-bindings=python ) + else + myconf+=( --without-bindings=perl,python ) + fi + use python && myconf+=( --python="${EPYTHON}" ) + myconf+=( $(use_enable java bdjava) ) + + # External codec library options (used for mythffmpeg and streaming transcode) + # lame is required for some broadcasts for silence detection of commercials + # default enable in IUSE with +lame + myconf+=( + $(use_enable lame libmp3lame) + $(use_enable xvid libxvid) + $(use_enable x264 libx264) + $(use_enable x265 libx265) + $(use_enable vpx libvpx) + ) + + # Clean up DSO load times and other compiler bits + myconf+=( --enable-symbol-visibility ) + myconf+=( --enable-pic ) + + # libavformat/format.c:37:22: error: type of 'ff_mythtv_mpegtsraw_demuxer' does not match original declaration [-Werror=lto-type-mismatch] + # libavformat/mpegts-mythtv.c:3731:21: note: type 'const struct FFInputFormat' should match type 'struct AVInputFormat' + filter-lto + + # Needed just like ffmpeg (bug #860987) + tc-is-lto && myconf+=( --enable-lto ) + + if tc-is-cross-compiler ; then + myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) ) + myconf+=( --cross-prefix="${CHOST}"- ) + fi + + # econf sets these options that are not handled by configure: + # --build --host --infodir --localstatedir --sysconfdir + + edo ./configure \ + --prefix="${EPREFIX}/usr" \ + --cc="$(tc-getCC)" \ + --cxx="$(tc-getCXX)" \ + --ar="$(tc-getAR)" \ + --nm="$(tc-getNM)" \ + --optflags="${CFLAGS}" \ + --extra-cflags="${CFLAGS}" \ + --extra-cxxflags="${CXXFLAGS}" \ + --extra-ldflags="${LDFLAGS}" \ + --qmake="$(qt6_get_bindir)"/qmake \ + "${myconf[@]}" +} + +src_compile() { + emake V=1 +} + +src_install() { + emake V=1 STRIP="true" INSTALL_ROOT="${D}" install + use python && python_optimize # does all packages by default + dodoc AUTHORS README + readme.gentoo_create_doc + + insinto /usr/share/mythtv/database + doins database/* + + newinitd "${FILESDIR}"/mythbackend.init-r4 mythbackend + newconfd "${FILESDIR}"/mythbackend.conf-r1 mythbackend + if use systemd; then + systemd_newunit "${FILESDIR}"/mythbackend.service-28 mythbackend.service + fi + + # The acct-user/mythtv package creates/manages the user 'mythtv' + keepdir /etc/mythtv + fowners -R mythtv /etc/mythtv + keepdir /var/log/mythtv + fowners -R mythtv /var/log/mythtv + + insinto /etc/logrotate.d + newins "${FILESDIR}"/mythtv.logrotate.d-r4 mythtv + + insinto /usr/share/mythtv/contrib + # Ensure we don't install scripts needing the perl bindings (bug #516968) Finding none is OK. + if ! use perl; then + find contrib/ -name '*.pl' -exec rm {} \; + fi + # Ensure we don't install scripts needing the python bindings (bug #516968) Finding none is OK. + if ! use python; then + find contrib/ -name '*.py' -exec rm {} \; + fi + doins -r contrib/* + + # Install our mythfrontend wrapper which is similar to Mythbuntu's + if use wrapper; then + mv "${ED}/usr/bin/mythfrontend" "${ED}/usr/bin/mythfrontend.real" || die "Failed to install mythfrontend.real" + newbin "${FILESDIR}"/mythfrontend.wrapper mythfrontend + newconfd "${FILESDIR}"/mythfrontend.conf mythfrontend + fi + + if use autostart; then + newenvd - 95mythtv <<- _EOF_ + CONFIG_PROTECT=\"$(egethome mythtv)\" + _EOF_ + insinto $(egethome mythtv) + newins "${FILESDIR}"/bash_profile .bash_profile + newins "${FILESDIR}"/xinitrc-r1 .xinitrc + fi + + # Make Python files executable but not files named "__init__.py" + find "${ED}/usr/share/mythtv" -type f -name '*.py' -exec expr \( {} : '.*__init__.py' \) = 0 \; \ + -exec chmod a+x {} \; || die "Failed to make python file $(basename ${file}) executable" + + # Ensure that Python scripts are executed by Python 2 + use python && python_fix_shebang "${ED}/usr/share/mythtv" + + # Make shell & perl scripts executable + find "${ED}" -type f \( -name '*.sh' -o -name '*.pl' \) -exec chmod a+x {} \; \ + || die "Failed to make script executable" +} + +pkg_postinst() { + readme.gentoo_print_elog +} + +pkg_config() { + if [[ -e "${EROOT}"/usr/bin/mysql ]]; then + "${EROOT}"/usr/bin/mysql -u root -p < "${EROOT}"/usr/share/mythtv/database/mc.sql + fi +} diff --git a/media-tv/plex-media-server/Manifest b/media-tv/plex-media-server/Manifest index 1cbbd2bdc547..7d3213294f00 100644 --- a/media-tv/plex-media-server/Manifest +++ b/media-tv/plex-media-server/Manifest @@ -1,9 +1,9 @@ -DIST plex-media-server-1.43.3.10896-InRelease 4069 BLAKE2B f2d81da85d5921775cf636a3f391f73c93c4519295470be0b97d9e1fa84716b8f8312eaaed301569119ba18badc2e5fb9bd31e81d27139a6f6108fca9356a784 SHA512 c4138a5d6fad4f6389768f9cfee7d9a232de4eaf3e29c91a98a72d4ccdd1f9a8157c73af96d6b9185fae0b7b1569a61f5b8da1784bfb23935cdecdae88a09f23 -DIST plex-media-server-1.43.3.10896-Packages.amd64 557 BLAKE2B 2917721ef5e142b2b5ba3686eab89371ef745006d9b97b47dca2d1807b5b4658d6655f94d1e462241b2dc415398b25607b9f8e36990a9ef5ea299f180632ee4e SHA512 c88bbfaaea5b5466a1aaa36c9ef9d2337aa2a92d5dd6045010756fd6c69eb29d4049af452d0268fda587a3434d4d4e2469dbb0fc95f56fb4b35fea12d693da47 -DIST plex-media-server-1.43.3.10896-Packages.arm 557 BLAKE2B aa491c82d993d97b578119f9c115bbfb236fe61850537380b1d2a61cbd2047f1e2583471b72aef9827e7128d7aa72888ba5a1f877ede1897206a93bad55541ea SHA512 6609ca7f49fac4508267bde9bddf126fe7a0ddb5f17bea54698bc88a995a28448ce65fb13e324772c56f70323cefb50d9f3b0ebd159c92c4e211b4d5de1e206b -DIST plex-media-server-1.43.3.10896-Packages.arm64 557 BLAKE2B f218a9a597b58e5bf24ecb0a9289a316162be191b0852cd026420cdffd86f7eb2cc22f496c3c275792a5ca54a525b7d650cff4e7f3b3a31b38b736df7d80b195 SHA512 2d474df8cec1a4ba3cc439d90dd323088becca1ef295a2d7e8dbaa3698ef9f2ee4125d7d8bcd029c14873fbfa2a1d3cdf8164d64522164b2a87a5d82eaa8f047 -DIST plex-media-server-1.43.3.10896-Packages.x86 555 BLAKE2B f33e2340e925e9c83684bfd791cbd8a91e58bdfae067abcaf814d92d21d48e0d6f8bf3e9258e951faf5a45a3cc71bfd6f1332f7167687620282afab59f997119 SHA512 ac778a6942ed2cca16152ba31043c309c5d2b74ac9f46ea065c6d1ac71e3a3e297855169d83a0b36b18253b5110197c8625794c3f7417a7761b7239238bb5a06 -DIST plexmediaserver_1.43.3.10896-cb3ebc72d_amd64.deb 83121058 BLAKE2B d1423c7ed99be12b927167e9032b3cea75f7891139d13640fc0c1f40dd6b5de89756d46591cf89c6f0b55c06d5b102446a07e273f42368afcf97ad502e4478e2 SHA512 197e1a56b60c53a36725d233d2bfbf9e77cdbb90a6a45e4ad6032c947172d1e3459592039e5b1e663d7023fc52f4d817059535231ae4596645ab6a889f0f8e25 -DIST plexmediaserver_1.43.3.10896-cb3ebc72d_arm64.deb 75170990 BLAKE2B e6916344b61a6334764d51948c4b6a782a6f4967ff97ca759108ad0f33be7feeadb7da9e3b576b5e41f1804337914a5974e66302eb74a1fc8da99728a9ec933a SHA512 32e5d3dd2cb1ebbee0fad5cff350417e656de7b9456ffde50e7109b0e0e5da339086d30a5bd59aa0960ca31913d50d89e8bb4716fe4fe662d4edef62218b93d3 -DIST plexmediaserver_1.43.3.10896-cb3ebc72d_armhf.deb 75174814 BLAKE2B 45c1d5c9cc8db9da8132dda01ed603122812411e848f6b102d17d33fdcdf2f27638ebf44c7ed4af40d8448599f64323b575056699109a0082b53e638ef259ebc SHA512 bb77c9836548506803207f7ca297cbe1c11d8047132a9ee47c7c1822aa9606c04604ab3e76f289f76291515122172d82a4be50bd8650da3c38033ebfee3130b9 -DIST plexmediaserver_1.43.3.10896-cb3ebc72d_i386.deb 76222246 BLAKE2B 5538cc67166e5be0f9b52b5c1198e3bcf0c574839fee606c0f8c408dd7ebc2e6f987a8810da73e5ba610925b57fa10d15291949762d805bb9273e79190ab744d SHA512 574393e0b6fe6adca976c8217d9fef60b9a7304d81fd6c5bcc1fba7497ed6bdcdac5316fe8158efb134a96dbdd69533a14064343a09cab2c6ccd842195181b1c +DIST plex-media-server-1.43.4.10903-InRelease 4069 BLAKE2B e3628046f678936c8ac03093d27ea38235fb7ca95fb9448e52c82c321a888d95cc13692e827eca0caf12f33bfd6a12eed2de6ef0ec9ada398d86f1dc4b585f04 SHA512 10bd2b8aa135205c3dfda23dc411de0fa06df568eaac070c20247517d0e393e8bbefd2b9f2e2a28aea9a5847e36f122139008a0d4d5f0ae843f9f6fbec73ab15 +DIST plex-media-server-1.43.4.10903-Packages.amd64 557 BLAKE2B b66494b47239ad371e062c48dc05db06db27c317db7eeb8342cae806e05886a4d4f81a814d37371edc3d0d5168800ac58a60bcd7473c91f1ae5316b31d3fcc44 SHA512 4635470d679bf64ad738d64d4cd829ef5369479aa1f2fa8d5bba938ef21bb0f5ae1f9e7b00a17dea389d7a528a9f7d0e176212e87c7f909ea9ce9d50f7d7cfcb +DIST plex-media-server-1.43.4.10903-Packages.arm 557 BLAKE2B e6e138db481c3a4248fba9821d1275e32b85829efaa77674d60b03f183dbf48092c555f1da2ab164f1fd1b8a21327698672fcc07262f4efb5e892016d997508e SHA512 9394ec39c332e48cf9c3338784d1b7804327170448d89b68de9c037f02e0606838236ea9ae8daa6de6a0bf9ae64d6dad7d5b3f1e0ea84d86afa9c904ba909e03 +DIST plex-media-server-1.43.4.10903-Packages.arm64 557 BLAKE2B 0fbb8c2ffbb0471b6efcc72abdb25c973a8cf81f3a0577a0e9e20a88098c2762a5a90b47afea1d58186de61f3190a1da1e1457aef2c7f54bece7ff37aee65c45 SHA512 966d3e38168c55f5ec22bbf4151e84a4b99888da2dbb51e85684161fe02c409a176ba246e0171ff06de586cb426e4460399db9b359b670491c815bf2bae1a4d3 +DIST plex-media-server-1.43.4.10903-Packages.x86 555 BLAKE2B f1bc5a04138a0f98dfbe91448bbc585eff115f36eb4ed2675a4133812cd01f50edc6b4fe19034df8798889e3a706d8c11ae4f5e2767c8640214ced4e41450625 SHA512 e2e9b8fc2581c84cfc9f5d4bc7066c6de2cd4cfaa9e12530ed5fcbdfde4786071c322c46aac6546d392c8e705afc2db51ede0d0509e53d7b93902c7992f2922b +DIST plexmediaserver_1.43.4.10903-e5521bd8c_amd64.deb 83213458 BLAKE2B 78c1c8f52b6dfbbc5b0833ce4a5d641b572625d76a5ee797869a34bafdbb98fa720c581aa7aaf899ca6c7e154f7b18eb7ee15c7be05bf7c9ba30cf456f23ba22 SHA512 4fe7033bf7967be0c7e54674815f4119e8e51550c33b79aa633cd2ee00cb0ebdc08a61172e7c207682c19696efbe6578d938ba751fc3719ae17f53ae26392cfd +DIST plexmediaserver_1.43.4.10903-e5521bd8c_arm64.deb 75287770 BLAKE2B 8a39d8520cb5a1b941ad871881479334f766f5d465d608f6d1be22082549fcde636e46bc2356104ef15b1e0878db91dd4c2e9afbce6c8b4ea5c4787461358fdf SHA512 94be46575eef01653f6c68875deceafca34b739116e8553f99719cc5de9f950968128ffcebbcaeedef2b0df53157fae09fdc411f8bdc76c72cef967e4042fe48 +DIST plexmediaserver_1.43.4.10903-e5521bd8c_armhf.deb 75257578 BLAKE2B 83544d1ac313a7cd5368e42c2d6226d51963a89a8fe74de19c00db9a3d9486e1ee1dee1bdc64052d1b6a3d8da17ad69331b4f67aec28565f773f9b47ffd5fe0b SHA512 b602ba8eba4d309262fb916527e02409ac6c285a8ca3ad659ef3b335acfa092099430569fcc477fc7b032307e0d2d0326e8cb244f5391b8285ff5ed52b16c491 +DIST plexmediaserver_1.43.4.10903-e5521bd8c_i386.deb 76290922 BLAKE2B 338dbef21440fa1ff8b7d519378463a79056ba5b10605de20e0cde3b99816d66efdfe92d70520769780fcbc671c3e6d3043beeb9992e1e52aab54a3e3ca7f036 SHA512 0d5019f48f137b6a9059cb3a11921b83f61a6729c66cee16687daacb7526c6988cd0cc92e8c31209f3d05bf01e627a221d11c49da71de7938c6ed67f506b8ae7 diff --git a/media-tv/plex-media-server/plex-media-server-1.43.3.10896.ebuild b/media-tv/plex-media-server/plex-media-server-1.43.4.10903.ebuild index 0a6ed0da015e..49c99bb5b1fc 100644 --- a/media-tv/plex-media-server/plex-media-server-1.43.3.10896.ebuild +++ b/media-tv/plex-media-server/plex-media-server-1.43.4.10903.ebuild @@ -7,7 +7,7 @@ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/plexmediaserver.asc inherit eapi9-pipestatus readme.gentoo-r1 systemd unpacker pax-utils verify-sig -MY_PV="${PV}-cb3ebc72d" +MY_PV="${PV}-e5521bd8c" MY_URI="https://downloads.plex.tv/plex-media-server-new" DESCRIPTION="Free media library that is intended for use with a plex client" diff --git a/media-video/mediainfo/Manifest b/media-video/mediainfo/Manifest index 778bc6116090..e9f4d08b52dd 100644 --- a/media-video/mediainfo/Manifest +++ b/media-video/mediainfo/Manifest @@ -1 +1,2 @@ DIST mediainfo_24.11.tar.xz 2432936 BLAKE2B 6aa1ecc565db72ab1ad90189dad4d2cd492b5d80eef530ada7ca850755e32e57e3b7e0355c2509876d96dffc259b5489d54b95f13680b68d22b2ef62edb41dd6 SHA512 e8abcbfdd1b5a6369c528240cd642366fe4fb308a179bc38d13e690b7024145546689c829c4a94f6d3c75f7db4df903685472134fb6f250e35290ed3d7408039 +DIST mediainfo_26.05.tar.xz 16146132 BLAKE2B 64c7c841e513881af2e3466bc631886fcce07e1210c20dc51b29b8f7ea95d78270d113d034c9dd64fd08644a7986bfd6c80b33932579a2818d4de51b5ee2669e SHA512 219ca43d78dc84c4f66f9a5140705470a2555d879de26857e96080e47120b156ca56f1b22de6459fe0ea74d4a8b2ae75c9ffc8e55501f8982e7d5b41de0ee75c diff --git a/media-video/mediainfo/mediainfo-26.05.ebuild b/media-video/mediainfo/mediainfo-26.05.ebuild new file mode 100644 index 000000000000..47b4141db5a8 --- /dev/null +++ b/media-video/mediainfo/mediainfo-26.05.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# These must be bumped together: +# - media-libs/libzen (if a release is available) +# - media-libs/libmediainfo +# - media-video/mediainfo + +WX_GTK_VER="3.2-gtk3" +inherit xdg-utils autotools wxwidgets + +DESCRIPTION="MediaInfo supplies technical and tag information about media files" +HOMEPAGE="https://mediaarea.net/en/mediainfo/ https://github.com/MediaArea/MediaInfo" +SRC_URI="https://mediaarea.net/download/source/${PN}/${PV}/${P/-/_}.tar.xz" +S="${WORKDIR}/MediaInfo" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +IUSE="curl mms wxwidgets" + +# The libzen dep usually needs to be bumped for each release! +RDEPEND=" + ~media-libs/libmediainfo-${PV}[curl=,mms=] + >=media-libs/libzen-0.4.41 + virtual/zlib:= + wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}=[X] ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +pkg_setup() { + TARGETS="CLI" + + if use wxwidgets; then + TARGETS+=" GUI" + setup-wxwidgets + fi +} + +src_prepare() { + default + + local target + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + sed -i -e "s:-O2::" configure.ac || die + eautoreconf + done +} + +src_configure() { + local target + + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + local args="" + [[ ${target} == "GUI" ]] && args="--with-wxwidgets --with-wx-gui" + econf ${args} + done +} + +src_compile() { + local target + + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + default + done +} + +src_install() { + local target + + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + default + dodoc "${S}"/History_${target}.txt + done +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_desktop_database_update +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_desktop_database_update +} diff --git a/net-dialup/freeradius/Manifest b/net-dialup/freeradius/Manifest index adb9914eef85..696183cf3410 100644 --- a/net-dialup/freeradius/Manifest +++ b/net-dialup/freeradius/Manifest @@ -1,3 +1,2 @@ DIST freeradius-server-3.2.10.tar.bz2 3727834 BLAKE2B 2e4b88f13c5742e60fd5b2931e93cb861b8fd0b9b12ba340a08f185884b64e49f035e14387a19b9ae4ae7c71ec9249132c0ccf19febfcdefd4725ddef0877a77 SHA512 c1928f6123848549797b7f527841b0bfcd61f2da02ddfe6c1cb49dd36af2da05c06c8f33c95330ad43f0326e3d1c893e3dff1797f499eac452bb5ef1ada00b16 -DIST freeradius-server-3.2.6.tar.bz2 3500878 BLAKE2B 0af7cdf7fb784f2d5019f3bcb06d1d44dca046c9a4513d780ab032367001b6a67e9ea17a3a5b4609b9d7b936647e60c96e35188ba9644c4360071ac8d021bd58 SHA512 3fdd0c1bf82cf7ea2e9ee46cda1061ef06c97eddd70b75be17f05d9dc13771b339d01f140b4288632700d6315c1ac506d225d1e83a179b6f7e8338e2ae42d7e8 DIST freeradius-server-3.2.8.tar.bz2 3671952 BLAKE2B 6266c00c68cbb02de65f88d976453fdcdda552d7554199030640f9bcd60f208afaf75aaac8fbf0a2eea0022eb23ad7b809cb910d48618261ea9f52100732c469 SHA512 31db199c3847bfdb80b726e16cece0d660bd741fae0fca8ba96aaaee30972c657438c4e1fdaa7ef070f84d8b7889a8da8db1defc542b0c0e18f247156f17e0ae diff --git a/net-dialup/freeradius/files/freeradius-3.0.20-systemd-service.patch b/net-dialup/freeradius/files/freeradius-3.0.20-systemd-service.patch deleted file mode 100644 index 04223657d5f5..000000000000 --- a/net-dialup/freeradius/files/freeradius-3.0.20-systemd-service.patch +++ /dev/null @@ -1,57 +0,0 @@ -diff --git a/debian/freeradius.service b/debian/freeradius.service -index 378702d184..ee33c2a294 100644 ---- a/debian/freeradius.service -+++ b/debian/freeradius.service -@@ -7,7 +7,6 @@ Documentation=man:radiusd(8) man:radiusd.conf(5) http://wiki.freeradius.org/ htt - Type=notify - WatchdogSec=60 - NotifyAccess=all --EnvironmentFile=-/etc/default/freeradius - - # FreeRADIUS can do static evaluation of policy language rules based - # on environmental variables which is very useful for doing per-host -@@ -25,16 +24,15 @@ MemoryLimit=2G - # Ensure the daemon can still write its pidfile after it drops - # privileges. Combination of options that work on a variety of - # systems. Test very carefully if you alter these lines. --RuntimeDirectory=freeradius -+RuntimeDirectory=radiusd - RuntimeDirectoryMode=0775 - # This does not work on Debian Jessie: --User=freerad --Group=freerad --# This does not work on Ubuntu Bionic: --ExecStartPre=/bin/chown freerad:freerad /var/run/freeradius -+User=radius -+Group=radius - --ExecStartPre=/usr/sbin/freeradius $FREERADIUS_OPTIONS -Cx -lstdout --ExecStart=/usr/sbin/freeradius -f $FREERADIUS_OPTIONS -+ExecStartPre=/usr/sbin/radiusd $RADIUSD_OPTIONS -Cx -lstdout -+ExecStart=/usr/sbin/radiusd -f $RADIUSD_OPTIONS -+ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure - RestartSec=5 - -@@ -42,7 +40,7 @@ RestartSec=5 - NoNewPrivileges=true - - # Allow binding to secure ports, broadcast addresses, and raw interfaces. --#CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SETUID CAP_SETGID CAP_CHOWN CAP_DAC_OVERRIDE -+CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SETUID CAP_SETGID CAP_CHOWN CAP_DAC_OVERRIDE - - # Private /tmp that isn't shared by other processes - PrivateTmp=true -@@ -60,10 +58,10 @@ ProtectKernelTunables=true - SystemCallArchitectures=native - - # We shouldn't be writing to the configuration directory --ReadOnlyDirectories=/etc/freeradius/ -+ReadOnlyDirectories=/etc/raddb/ - - # We can read and write to the log directory. --ReadWriteDirectories=/var/log/freeradius/ -+ReadWriteDirectories=/var/log/radius/ - - [Install] - WantedBy=multi-user.target diff --git a/net-dialup/freeradius/freeradius-3.2.6-r1.ebuild b/net-dialup/freeradius/freeradius-3.2.6-r1.ebuild deleted file mode 100644 index edbd9a4f8e40..000000000000 --- a/net-dialup/freeradius/freeradius-3.2.6-r1.ebuild +++ /dev/null @@ -1,323 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} python3_13t ) -AUTOTOOLS_DEPEND=">=dev-build/autoconf-2.69" -inherit autotools pam python-single-r1 systemd - -MY_PN=${PN}-server -MY_P=${MY_PN}-${PV} -MY_PV=$(ver_rs 1- "_") - -DESCRIPTION="Highly configurable free RADIUS server" -HOMEPAGE="https://www.freeradius.org/" -SRC_URI="https://github.com/FreeRADIUS/freeradius-server/releases/download/release_${MY_PV}/${MY_P}.tar.bz2" -S="${WORKDIR}"/${MY_P} - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~sparc x86" - -IUSE=" - debug iodbc kerberos ldap memcached mysql mongodb odbc oracle pam - postgres python readline redis samba selinux sqlite ssl systemd -" - -# NOTE: Temporary freeradius doesn't support linking with mariadb client -# libs also if code is compliant, will be available in the next release. -# (http://lists.freeradius.org/pipermail/freeradius-devel/2018-October/013228.html)a - -# TODO: rlm_mschap works with both samba library or without. I need to avoid -# linking of samba library if -samba is used. - -# TODO: unconditional json-c for now as automagic dep despite efforts to stop it -# ditto libpcap. Can restore USE=rest, USE=pcap if/when fixed. - -DEPEND=" - acct-group/radius - acct-user/radius - dev-libs/libltdl - dev-libs/libpcre - dev-libs/json-c:= - dev-lang/perl:= - net-libs/libpcap - net-misc/curl - sys-libs/gdbm:= - sys-libs/libcap - sys-libs/talloc - virtual/libcrypt:= - iodbc? ( dev-db/libiodbc ) - kerberos? ( virtual/krb5 ) - ldap? ( net-nds/openldap:= ) - memcached? ( - || ( - dev-libs/libmemcached-awesome - dev-libs/libmemcached - ) - ) - mysql? ( dev-db/mysql-connector-c:= ) - mongodb? ( >=dev-libs/mongo-c-driver-1.13.0-r1 ) - odbc? ( dev-db/unixODBC ) - oracle? ( dev-db/oracle-instantclient[sdk] ) - pam? ( sys-libs/pam ) - postgres? ( dev-db/postgresql:= ) - python? ( ${PYTHON_DEPS} ) - readline? ( sys-libs/readline:= ) - redis? ( dev-libs/hiredis:= ) - samba? ( net-fs/samba ) - sqlite? ( dev-db/sqlite:3 ) - ssl? ( >=dev-libs/openssl-1.0.2:=[-bindist(-)] ) - systemd? ( sys-apps/systemd:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-radius ) -" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -# bug #721040 -QA_SONAME="usr/lib.*/libfreeradius-.*.so" - -QA_CONFIG_IMPL_DECL_SKIP=( - # Not available on Linux (bug #900048) - htonll - htonlll -) - -PATCHES=( - "${FILESDIR}"/${PN}-3.0.20-systemd-service.patch - "${FILESDIR}"/${PN}-3.2.3-configure-c99.patch -) - -pkg_setup() { - if use python ; then - python-single-r1_pkg_setup - export PYTHONBIN="${EPYTHON}" - fi -} - -src_prepare() { - default - - # Most of the configuration options do not appear as ./configure - # switches. Instead it identifies the directories that are available - # and run through them. These might check for the presence of - # various libraries, in which case they are not built. To avoid - # automagic dependencies, we just remove all the modules that we're - # not interested in using. - # TODO: shift more of these into configure args below as things - # are a bit better now. - use ssl || { rm -r src/modules/rlm_eap/types/rlm_eap_{tls,ttls,peap} || die ; } - use ldap || { rm -r src/modules/rlm_ldap || die ; } - use kerberos || { rm -r src/modules/rlm_krb5 || die ; } - use memcached || { rm -r src/modules/rlm_cache/drivers/rlm_cache_memcached || die ; } - use pam || { rm -r src/modules/rlm_pam || die ; } - - # Drop support for python2 - rm -r src/modules/rlm_python || die - - use python || { rm -r src/modules/rlm_python3 || die ; } - #use rest || { rm -r src/modules/rlm_rest || die ; } - # Do not install ruby rlm module, bug #483108 - rm -r src/modules/rlm_ruby || die - - # These are all things we don't have in portage/I don't want to deal - # with myself. - # - # Requires TNCS library - rm -r src/modules/rlm_eap/types/rlm_eap_tnc || die - # Requires libeap-ikev2 - rm -r src/modules/rlm_eap/types/rlm_eap_ikev2 || die - # Requires some membership.h - rm -r src/modules/rlm_opendirectory || die - # Requires firebird - rm -r ./src/modules/rlm_sql/drivers/rlm_sql_firebird || die - # ? - rm -r src/modules/rlm_sql/drivers/rlm_sql_{db2,freetds} || die - - # SQL drivers that are not part of experimental are loaded from a - # file, so we have to remove them from the file itself when we - # remove them. - usesqldriver() { - local flag=$1 - local driver=rlm_sql_${2:-${flag}} - - if ! use ${flag} ; then - rm -r src/modules/rlm_sql/drivers/${driver} || die - sed -i -e /${driver}/d src/modules/rlm_sql/stable || die - fi - } - - sed -i \ - -e 's:^#\tuser = :\tuser = :g' \ - -e 's:^#\tgroup = :\tgroup = :g' \ - -e 's:/var/run/radiusd:/run/radiusd:g' \ - -e '/^run_dir/s:${localstatedir}::g' \ - raddb/radiusd.conf.in || die - - # - Verbosity - # - B uild shared libraries using jlibtool -shared - sed -i \ - -e 's|--silent ||g' \ - -e 's:--mode=\(compile\|link\):& -shared:g' \ - scripts/libtool.mk || die - - # Crude measure to stop jlibtool from running ranlib and ar - sed -i \ - -e '/LIBRARIAN/s|".*"|"true"|g' \ - -e '/RANLIB/s|".*"|"true"|g' \ - scripts/jlibtool.c || die - - usesqldriver mysql - usesqldriver postgres postgresql - usesqldriver iodbc - usesqldriver odbc unixodbc - usesqldriver oracle - usesqldriver sqlite - usesqldriver mongodb mongo - - eautoreconf -} - -src_configure() { - # Do not try to enable static with static-libs; upstream is a - # massacre of libtool best practices so you also have to make sure - # to --enable-shared explicitly. - local myeconfargs=( - # Revisit confcache when not needing to use ac_cv anymore - # for automagic deps. - #--cache-file="${S}"/config.cache - - --enable-shared - --disable-ltdl-install - --disable-silent-rules - --with-system-libtool - --with-system-libltdl - - --enable-strict-dependencies - --without-rlm_couchbase - --without-rlm_securid - --without-rlm_unbound - --without-rlm_idn - #--without-rlm_json - #$(use_with rest libfreeradius-json) - - # Our OpenSSL should be patched. Avoid false-positive failures. - --disable-openssl-version-check - --with-ascend-binary - --with-udpfromto - --with-dhcp - --with-pcre - --with-iodbc-include-dir=/usr/include/iodbc - --with-experimental-modules - --with-docdir=/usr/share/doc/${PF} - --with-logdir=/var/log/radius - - $(use_enable debug developer) - $(use_with ldap edir) - $(use_with redis rlm_cache_redis) - $(use_with redis rlm_redis) - $(use_with redis rlm_rediswho) - $(use_with ssl openssl) - $(use_with systemd systemd) - ) - - # bug #77613 - if has_version app-crypt/heimdal ; then - myeconfargs+=( --enable-heimdal-krb5 ) - fi - - if use python ; then - myeconfargs+=( - --with-rlm-python3-bin=${EPYTHON} - --with-rlm-python3-config-bin=${EPYTHON}-config - ) - fi - - if ! use readline ; then - export ac_cv_lib_readline=no - fi - - #if ! use pcap ; then - # export ac_cv_lib_pcap_pcap_open_live=no - # export ac_cv_header_pcap_h=no - #fi - - econf "${myeconfargs[@]}" -} - -src_compile() { - # Verbose, do not generate certificates - emake \ - Q='' ECHO=true \ - LOCAL_CERT_PRODUCTS='' -} - -src_install() { - dodir /etc - - diropts -m0750 -o root -g radius - dodir /etc/raddb - - diropts -m0750 -o radius -g radius - dodir /var/log/radius - - keepdir /var/log/radius/radacct - diropts - - # - Verbose, do not install certificates - # - Parallel install fails (bug #509498) - emake -j1 \ - Q='' ECHO=true \ - LOCAL_CERT_PRODUCTS='' \ - R="${D}" \ - install - - if use pam ; then - pamd_mimic_system radiusd auth account password session - fi - - # bug #711756 - fowners -R radius:radius /etc/raddb - fowners -R radius:radius /var/log/radius - - dodoc CREDITS - - rm "${ED}"/usr/sbin/rc.radiusd || die - - newinitd "${FILESDIR}"/radius.init-r4 radiusd - newconfd "${FILESDIR}"/radius.conf-r6 radiusd - - if ! use systemd ; then - # If systemd builtin is not enabled we need use Type=Simple - # as systemd .service - sed -i -e 's:^Type=.*::g' \ - -e 's:^WatchdogSec=.*::g' -e 's:^NotifyAccess=all.*::g' \ - "${S}"/debian/freeradius.service - fi - - systemd_dounit "${S}"/debian/freeradius.service - - find "${ED}" \( -name "*.a" -o -name "*.la" \) -delete || die -} - -pkg_config() { - if use ssl ; then - cd "${ROOT}"/etc/raddb/certs || die - - ./bootstrap || die "Error while running ./bootstrap script." - chown root:radius "${ROOT}"/etc/raddb/certs || die - chown root:radius "${ROOT}"/etc/raddb/certs/ca.pem || die - chown root:radius "${ROOT}"/etc/raddb/certs/server.{key,crt,pem} || die - fi -} - -pkg_preinst() { - if ! has_version ${CATEGORY}/${PN} && use ssl ; then - elog "You have to run \`emerge --config =${CATEGORY}/${PF}\` to be able" - elog "to start the radiusd service." - fi -} diff --git a/net-dialup/ppp/Manifest b/net-dialup/ppp/Manifest index 6cb9d5bfd142..f63ab207706d 100644 --- a/net-dialup/ppp/Manifest +++ b/net-dialup/ppp/Manifest @@ -1,6 +1 @@ -DIST ppp-2.5.0.tar.gz 1170057 BLAKE2B 6a0e9efcbff3cb499705071cc7d0e3411cf4871fd53b2bfedbb1f2cf3ad80728eb436050cf33b78e36d473be64f15907a21da17f283337455f0af379bc18272d SHA512 094368ea2aa6c6e8dfba4443509857a7c1c7ff839bb6d6657743802477208c01e87db31593cef0932d3725c640e9c103179da6b742825034cda82bd31ddcc2ed -DIST ppp-2.5.1.tar.gz 991639 BLAKE2B e3ece873ea25bde5ddffd0da168ffe6ba890693f20fb9f1d6a48f365331abdb4cf517fd0b3004d26a0c778ad4d750e39e38486544e2771b23223469db13c239c SHA512 57b3bbf918c302dbc621f56b706efa1b35b2fc45b71c3a309c1cfee22c28fcf98d7f8965fbeba9260c124f2afb9e297885007256ee05469adca73fad032902b9 -DIST ppp-2.5.2.tar.gz 973132 BLAKE2B 5a79bfaf23c2f1cba7b2c4e8f27e6033aa7ee6e119b4d96dfd2870f91524052fe9ed16149e5f76cf93370159f491af828b4103eb04bd4f5dbbecca4a08af9d0d SHA512 2c49d411818632a750f52b187c0ee421e9fcc1530c717abacce61e76aa8b296ce09fb142bc202696c0e0ac5570dd12ee649267921b756b6572ae514ce961d1e6 -DIST ppp-2.5.3.tar.gz 995939 BLAKE2B fe915978f1332c18dc370b5d79d07c55afd006d576168c16034ac368afe138d3e0a41d7a9a05fdc2868b1e30bbd0510aadbf7e9a595c77cacaeb739c9289051c SHA512 4de2af44d56d8629db37a7aa71ea1973020bacd4fe6b8e56b69b4b825445437cf9d5e2caee13e0af09d26b89954a8e08560581f3c5611edb119ea63fc10d2255 DIST ppp-2.5.4.tar.gz 1013028 BLAKE2B 4b70250f73811a343c87087cac7555f6d7b550c5bce6bf71af7fa585f12437c62d2525f669f6e3306e02adc9f180c0508554e4f04abec4227ff7d181e39f0618 SHA512 078075fc4f9fab07d44fab626d87def8f73c76a50d2bd52e7f84ad874a4bf6e9530d5f59fc77a20857f0049f58f84c3f6af0a17ccc60e0ffe6a34ddaf90159f4 -DIST pppgetpass.8 450 BLAKE2B 4e9805cfecb4d07c302682c1ced42cc5d247d18fae904b909e126874af962cf48bb703cd75b0cefce4e19404f2e757602d3b57f187567fc23d4b93d9598d1486 SHA512 21f6dda908cf73ee27bfa39d2b50e7f76b371e50bd7d5a0586174b30129c119accbd260d7f9e0e6aa6aabfa5ba11a13ba560588a99672c9dd4e9f33254f88836 diff --git a/net-dialup/ppp/files/ppp-2.5.0-openssl-pkgconfig.patch b/net-dialup/ppp/files/ppp-2.5.0-openssl-pkgconfig.patch deleted file mode 100644 index 893b623a4ea5..000000000000 --- a/net-dialup/ppp/files/ppp-2.5.0-openssl-pkgconfig.patch +++ /dev/null @@ -1,79 +0,0 @@ -https://bugs.gentoo.org/905442 -https://github.com/ppp-project/ppp/pull/438 - -From 9b4bdca70081abbad26277b009ef9c4ab7e276d0 Mon Sep 17 00:00:00 2001 -From: Brahmajit Das <brahmajit.xyz@gmail.com> -Date: Thu, 2 Nov 2023 11:26:18 +0530 -Subject: [PATCH] Fix linking error with lld linkers (#438) - -When using lld linker, build fails with - -ld.lld: error: /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../lib64/Scrt1.o is incompatible with elf32-i386 -ld.lld: error: /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../lib64/crti.o is incompatible with elf32-i386 -ld.lld: error: /usr/lib/llvm/16/bin/../../../../lib/clang/16/lib/linux - -The fix is to check pkg-config first, and not force manual -L /usr/lib. -If pkg-config succeeded, then we don't bother with -L /usr/lib - -Our guess is this what the actual intention was based upon the coments - -if pkg-config is installed and openssl has installed a .pc file, -then use that information and don't search ssldirs - -First found on gentoo linux with llvm profile, please check out Bug: -section of the commit for more info and a complete build log. - -Bug: https://bugs.gentoo.org/905442 - -Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com> -Co-authored-by: Sam James <sam@gentoo.org> ---- - m4/ax_check_openssl.m4 | 28 ++++++++++++++-------------- - 1 file changed, 14 insertions(+), 14 deletions(-) - -diff --git a/m4/ax_check_openssl.m4 b/m4/ax_check_openssl.m4 -index 8ae39cae6..39154c856 100644 ---- a/m4/ax_check_openssl.m4 -+++ b/m4/ax_check_openssl.m4 -@@ -55,6 +55,20 @@ AC_DEFUN([AX_CHECK_OPENSSL], [ - ]) - - AS_IF([test "${with_openssl}" != "no"], [ -+ # if pkg-config is installed and openssl has installed a .pc file, -+ # then use that information and don't search ssldirs -+ AC_PATH_PROG([PKG_CONFIG], [pkg-config]) -+ if test x"$PKG_CONFIG" != x""; then -+ OPENSSL_LDFLAGS=`$PKG_CONFIG openssl --libs-only-L 2>/dev/null` -+ if test $? = 0; then -+ OPENSSL_LIBS=`$PKG_CONFIG openssl --libs-only-l 2>/dev/null` -+ OPENSSL_INCLUDES=`$PKG_CONFIG openssl --cflags-only-I 2>/dev/null` -+ found=true -+ fi -+ fi -+ ]) -+ -+ AS_IF([test "${with_openssl}" != "no" && test ! ${found}], [ - OPENSSL_INCLUDES= - for ssldir in $ssldirs; do - AC_MSG_CHECKING([for openssl/ssl.h in $ssldir]) -@@ -69,20 +83,6 @@ AC_DEFUN([AX_CHECK_OPENSSL], [ - AC_MSG_RESULT([no]) - ]) - done]) -- -- AS_IF([test "${with_openssl}" != "no" && test ! ${found}], [ -- # if pkg-config is installed and openssl has installed a .pc file, -- # then use that information and don't search ssldirs -- AC_PATH_PROG([PKG_CONFIG], [pkg-config]) -- if test x"$PKG_CONFIG" != x""; then -- OPENSSL_LDFLAGS=`$PKG_CONFIG openssl --libs-only-L 2>/dev/null` -- if test $? = 0; then -- OPENSSL_LIBS=`$PKG_CONFIG openssl --libs-only-l 2>/dev/null` -- OPENSSL_INCLUDES=`$PKG_CONFIG openssl --cflags-only-I 2>/dev/null` -- found=true -- fi -- fi -- ]) - - AS_IF([test "${with_openssl}" != "no" && test ${found}], [ - diff --git a/net-dialup/ppp/files/ppp-2.5.0-pam-pkgconfig.patch b/net-dialup/ppp/files/ppp-2.5.0-pam-pkgconfig.patch deleted file mode 100644 index 40488fee96b7..000000000000 --- a/net-dialup/ppp/files/ppp-2.5.0-pam-pkgconfig.patch +++ /dev/null @@ -1,81 +0,0 @@ -https://github.com/ppp-project/ppp/pull/479 - -From c73498fad415d99aa566b11256938272e62b22dd Mon Sep 17 00:00:00 2001 -From: Mike Gilbert <floppym@gentoo.org> -Date: Tue, 5 Mar 2024 14:41:10 -0500 -Subject: [PATCH] Use pkg-config to detect PAM when possible - -Signed-off-by: Mike Gilbert <floppym@gentoo.org> ---- - m4/ax_check_pam.m4 | 50 ++++++++++++++++++++-------------------------- - 1 file changed, 22 insertions(+), 28 deletions(-) - -diff --git a/m4/ax_check_pam.m4 b/m4/ax_check_pam.m4 -index b17a7573c..7ebd79b61 100644 ---- a/m4/ax_check_pam.m4 -+++ b/m4/ax_check_pam.m4 -@@ -26,34 +26,28 @@ - AC_DEFUN([AX_CHECK_PAM], [ - AC_ARG_WITH([pam], - [AS_HELP_STRING([--with-pam=DIR], -- [With libpam support, see ftp.redhat.com:/pub/pam])], -- [ -- case "$withval" in -- "" | y | ye | yes) -- pamdirs="/usr/local /usr/lib /usr" -- ;; -- n | no) -- with_pam="no" -- ;; -- *) -- pamdirs="$withval" -- ;; -- esac -- ]) -+ [With libpam support, see ftp.redhat.com:/pub/pam])]) - -- if [ test "x${with_pam}" != "xno" ] ; then -- PAM_LIBS="-lpam" -- for pamdir in $pamdirs; do -- AC_MSG_CHECKING([for pam_appl.h in $pamdir]) -- if test -f "$pamdir/include/security/pam_appl.h"; then -- PAM_CFLAGS="-I$pamdir/include" -- PAM_LDFLAGS="-L$pamdir/lib" -- AC_MSG_RESULT([yes]) -- break -- else -- AC_MSG_RESULT([no]) -- fi -- done -+ AS_IF([test "$with_pam" != "no"], [ -+ AS_CASE(["$with_pam"], -+ [""|yes], [PKG_CHECK_MODULES([PAM], [pam], [pamdirs=], -+ [pamdirs="/usr/local /usr/lib /usr"])], -+ [pamdirs="$with_pam"]) -+ -+ AS_IF([test -n "$pamdirs"], [ -+ PAM_LIBS="-lpam" -+ for pamdir in $pamdirs; do -+ AC_MSG_CHECKING([for pam_appl.h in $pamdir]) -+ if test -f "$pamdir/include/security/pam_appl.h"; then -+ PAM_CFLAGS="-I$pamdir/include" -+ PAM_LDFLAGS="-L$pamdir/lib" -+ AC_MSG_RESULT([yes]) -+ break -+ else -+ AC_MSG_RESULT([no]) -+ fi -+ done -+ ]) - - # try the preprocessor and linker with our new flags, - # being careful not to pollute the global LIBS, LDFLAGS, and CPPFLAGS -@@ -87,7 +81,7 @@ AC_DEFUN([AX_CHECK_PAM], [ - AC_SUBST([PAM_CFLAGS]) - AC_SUBST([PAM_LIBS]) - AC_SUBST([PAM_LDFLAGS]) -- fi -+ ]) - AM_CONDITIONAL(WITH_LIBPAM, test "x${with_pam}" != "xno") - ]) - diff --git a/net-dialup/ppp/files/ppp-2.5.0-passwordfd-read-early.patch b/net-dialup/ppp/files/ppp-2.5.0-passwordfd-read-early.patch deleted file mode 100644 index 5c7067c5307b..000000000000 --- a/net-dialup/ppp/files/ppp-2.5.0-passwordfd-read-early.patch +++ /dev/null @@ -1,101 +0,0 @@ -https://github.com/ppp-project/ppp/pull/420 - -From df35ecb4ab63e8f89f57aa5d593441765a96ed62 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alin=20N=C4=83stac?= <mrness@gentoo.org> -Date: Fri, 20 Jun 2008 18:34:06 +0000 -Subject: [PATCH] passwordfd: read password early - -Bug: https://bugs.gentoo.org/209294 -Bug: https://bugs.gentoo.org/905112 ---- - pppd/plugins/passwordfd.c | 54 ++++++++++++++++++--------------------- - 1 file changed, 25 insertions(+), 29 deletions(-) - -diff --git a/pppd/plugins/passwordfd.c b/pppd/plugins/passwordfd.c -index c1f782e..13aec56 100644 ---- a/pppd/plugins/passwordfd.c -+++ b/pppd/plugins/passwordfd.c -@@ -24,11 +24,11 @@ - - char pppd_version[] = PPPD_VERSION; - --static int passwdfd = -1; - static char save_passwd[MAXSECRETLEN]; - -+static int readpassword (char **); - static struct option options[] = { -- { "passwordfd", o_int, &passwdfd, -+ { "passwordfd", o_special, (void *)readpassword, - "Receive password on this file descriptor" }, - { NULL } - }; -@@ -38,43 +38,39 @@ static int pwfd_check (void) - return 1; - } - --static int pwfd_passwd (char *user, char *passwd) -+static int readpassword(char **argv) - { -- int readgood, red; -- -- if (passwdfd == -1) -- return -1; -+ char *arg = *argv; -+ int passwdfd = -1; -+ int chunk, len; - -- if (passwd == NULL) -- return 1; -- -- if (passwdfd == -2) { -- strcpy (passwd, save_passwd); -- return 1; -+ if (sscanf(arg, "%d", &passwdfd) != 1 || passwdfd < 0) -+ { -+ error ("\"%s\" is not a valid file descriptor number", arg); -+ return 0; - } - -- readgood = 0; -+ len = 0; - do { -- red = read (passwdfd, passwd + readgood, MAXSECRETLEN - 1 - readgood); -- if (red == 0) -- break; -- if (red < 0) { -- error ("Can't read secret from fd\n"); -- readgood = -1; -+ chunk = read (passwdfd, save_passwd + len, MAXSECRETLEN - 1 - len); -+ if (chunk == 0) - break; -+ if (chunk < 0) { -+ error ("Can't read secret from fd %d", passwdfd); -+ return 0; - } -- readgood += red; -- } while (readgood < MAXSECRETLEN - 1); -- -+ len += chunk; -+ } while (len < MAXSECRETLEN - 1); -+ save_passwd[len] = 0; - close (passwdfd); - -- if (readgood < 0) -- return 0; -- -- passwd[readgood] = 0; -- strcpy (save_passwd, passwd); -- passwdfd = -2; -+ return 1; -+} - -+static int pwfd_passwd (char *user, char *passwd) -+{ -+ if (passwd != NULL) -+ strcpy (passwd, save_passwd); - return 1; - } - --- -2.40.1 - diff --git a/net-dialup/ppp/files/ppp-2.5.0-pidfile.patch b/net-dialup/ppp/files/ppp-2.5.0-pidfile.patch deleted file mode 100644 index 538ddfb0a2c1..000000000000 --- a/net-dialup/ppp/files/ppp-2.5.0-pidfile.patch +++ /dev/null @@ -1,39 +0,0 @@ -https://github.com/ppp-project/ppp/pull/427 - -From 0c9f2cb93f56d2a14ffcc97f53f4665b7728d8e4 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert <floppym@gentoo.org> -Date: Sun, 28 May 2023 17:01:12 -0400 -Subject: [PATCH] Ensure there is a '/' between PPP_PATH_VARRUN and the PID - filename - -Bug: https://bugs.gentoo.org/907311 -Signed-off-by: Mike Gilbert <floppym@gentoo.org> ---- - pppd/main.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pppd/main.c b/pppd/main.c -index 4455199..c207d10 100644 ---- a/pppd/main.c -+++ b/pppd/main.c -@@ -888,7 +888,7 @@ create_pidfile(int pid) - { - FILE *pidfile; - -- slprintf(pidfilename, sizeof(pidfilename), "%s%s.pid", -+ slprintf(pidfilename, sizeof(pidfilename), "%s/%s.pid", - PPP_PATH_VARRUN, ifname); - if ((pidfile = fopen(pidfilename, "w")) != NULL) { - fprintf(pidfile, "%d\n", pid); -@@ -907,7 +907,7 @@ create_linkpidfile(int pid) - if (linkname[0] == 0) - return; - ppp_script_setenv("LINKNAME", linkname, 1); -- slprintf(linkpidfile, sizeof(linkpidfile), "%sppp-%s.pid", -+ slprintf(linkpidfile, sizeof(linkpidfile), "%s/ppp-%s.pid", - PPP_PATH_VARRUN, linkname); - if ((pidfile = fopen(linkpidfile, "w")) != NULL) { - fprintf(pidfile, "%d\n", pid); --- -2.40.1 - diff --git a/net-dialup/ppp/files/ppp-2.5.0-radius-mppe.patch b/net-dialup/ppp/files/ppp-2.5.0-radius-mppe.patch deleted file mode 100644 index 7bb63c964605..000000000000 --- a/net-dialup/ppp/files/ppp-2.5.0-radius-mppe.patch +++ /dev/null @@ -1,167 +0,0 @@ -https://github.com/ppp-project/ppp/pull/463 -https://bugs.gentoo.org/915686 - -From 77693b89fed6d4110184789f8e7dfd31710f3190 Mon Sep 17 00:00:00 2001 -From: Jaco Kroon <jaco@uls.co.za> -Date: Thu, 23 Nov 2023 14:54:42 +0200 -Subject: [PATCH] radius: fix the MPPE key decryption for the second-half of - the key block. - -During he refactor in commit 4cb90c1 the key material used to decrypt -the second-half of the encrypted block was accidentally updated from: - -MD5(radius_secret + crypt[0..15]); to: - -MD5(radius_secret + crypt[0..15] + salt) - -Which would obviously mismatch. - -This also refactors back into what I believe to be a more readable block -with lower nesting and more comprehensive error reporting. - -Closes: #453 -Signed-off-by: Jaco Kroon <jaco@uls.co.za> ---- - pppd/plugins/radius/radius.c | 115 +++++++++++++++++------------------ - 1 file changed, 55 insertions(+), 60 deletions(-) - -diff --git a/pppd/plugins/radius/radius.c b/pppd/plugins/radius/radius.c -index c73ca0b53..e99bc7511 100644 ---- a/pppd/plugins/radius/radius.c -+++ b/pppd/plugins/radius/radius.c -@@ -897,80 +897,75 @@ radius_setmppekeys2(VALUE_PAIR *vp, REQUEST_INFO *req_info) - memcpy(plain, crypt, 32); - - ctx = PPP_MD_CTX_new(); -- if (ctx) { -- -- if (PPP_DigestInit(ctx, PPP_md5())) { -- -- if (PPP_DigestUpdate(ctx, req_info->secret, strlen(req_info->secret))) { -- -- if (PPP_DigestUpdate(ctx, req_info->request_vector, AUTH_VECTOR_LEN)) { -- -- if (PPP_DigestUpdate(ctx, salt, 2)) { -- -- buflen = sizeof(buf); -- if (PPP_DigestFinal(ctx, buf, &buflen)) { -- -- status = 1; -- } -- } -- } -- } -- } -- -- PPP_MD_CTX_free(ctx); -+ if (!ctx) { -+ error("RADIUS: Error creating PPP_MD_CTX for MS-MPPE-%s-Key attribute", type); -+ return -1; - } - -- if (status) { -- -- for (i = 0; i < 16; i++) { -- plain[i] ^= buf[i]; -- } -+ buflen = sizeof(buf); -+ if (!PPP_DigestInit(ctx, PPP_md5())) { -+ error("RADIUS: Error setting hash algorithm to MD5 for MS-MPPE-%s-Key attribute", type); -+ } else if (!PPP_DigestUpdate(ctx, req_info->secret, strlen(req_info->secret))) { -+ error("RADIUS: Error mixing in radius secret for MS-MPPE-%s-Key attribute", type); -+ } else if (!PPP_DigestUpdate(ctx, req_info->request_vector, AUTH_VECTOR_LEN)) { -+ error("RADIUS: Error mixing in request vector for MS-MPPE-%s-Key attribute", type); -+ } else if (!PPP_DigestUpdate(ctx, salt, 2)) { -+ error("RADIUS: Error mixing in salt for MS-MPPE-%s-Key attribute", type); -+ } else if (!PPP_DigestFinal(ctx, buf, &buflen)) { -+ error("RADIUS: Error finalizing key buffer for MS-MPPE-%s-Key attribute", type); -+ } else { -+ status = 1; -+ } - -- if (plain[0] != 16) { -- error("RADIUS: Incorrect key length (%d) for MS-MPPE-%s-Key attribute", -- (int) plain[0], type); -- return -1; -- } -+ PPP_MD_CTX_free(ctx); - -- status = 0; -- ctx = PPP_MD_CTX_new(); -- if (ctx) { -- -- if (PPP_DigestInit(ctx, PPP_md5())) { -+ if (!status) -+ return -1; - -- if (PPP_DigestUpdate(ctx, req_info->secret, strlen(req_info->secret))) { -+ for (i = 0; i < 16; i++) { -+ plain[i] ^= buf[i]; -+ } - -- if (PPP_DigestUpdate(ctx, crypt, 16)) { -+ if (plain[0] != 16) { -+ error("RADIUS: Incorrect key length (%d) for MS-MPPE-%s-Key attribute", -+ (int) plain[0], type); -+ return -1; -+ } - -- if (PPP_DigestUpdate(ctx, salt, 2)) { -+ status = 0; -+ ctx = PPP_MD_CTX_new(); -+ if (!ctx) { -+ error("RADIUS: Error creating PPP_MD_CTX for MS-MPPE-%s-Key(2) attribute", type); -+ return -1; -+ } - -- buflen = sizeof(buf); -- if (PPP_DigestFinal(ctx, buf, &buflen)) { -+ buflen = sizeof(buf); - -- status = 1; -- } -- } -- } -- } -- } -+ if (!PPP_DigestInit(ctx, PPP_md5())) { -+ error("RADIUS: Error setting hash algorithm to MD5 for MS-MPPE-%s-Key(2) attribute", type); -+ } else if (!PPP_DigestUpdate(ctx, req_info->secret, strlen(req_info->secret))) { -+ error("RADIUS: Error mixing in radius secret for MS-MPPE-%s-Key(2) attribute", type); -+ } else if (!PPP_DigestUpdate(ctx, crypt, 16)) { -+ error("RADIUS: Error mixing in crypt vector for MS-MPPE-%s-Key(2) attribute", type); -+ } else if (!PPP_DigestFinal(ctx, buf, &buflen)) { -+ error("RADIUS: Error finalizing key buffer for MS-MPPE-%s-Key(2) attribute", type); -+ } else { -+ status = 1; -+ } - -- PPP_MD_CTX_free(ctx); -- } -+ PPP_MD_CTX_free(ctx); - -- if (status) { -+ if (!status) -+ return -1; - -- plain[16] ^= buf[0]; /* only need the first byte */ -+ plain[16] ^= buf[0]; /* only need the first byte */ - -- if (vp->attribute == PW_MS_MPPE_SEND_KEY) { -- mppe_set_keys(plain + 1, NULL, 16); -- } else { -- mppe_set_keys(NULL, plain + 1, 16); -- } -- return 0; -- } -+ if (vp->attribute == PW_MS_MPPE_SEND_KEY) { -+ mppe_set_keys(plain + 1, NULL, 16); -+ } else { -+ mppe_set_keys(NULL, plain + 1, 16); - } -- -- return -1; -+ return 0; - } - #endif /* PPP_WITH_MPPE */ - diff --git a/net-dialup/ppp/files/ppp-2.5.0-radiusclient.conf-parsing.patch b/net-dialup/ppp/files/ppp-2.5.0-radiusclient.conf-parsing.patch deleted file mode 100644 index 9916f766c7af..000000000000 --- a/net-dialup/ppp/files/ppp-2.5.0-radiusclient.conf-parsing.patch +++ /dev/null @@ -1,48 +0,0 @@ -https://github.com/ppp-project/ppp/issues/411 -https://github.com/ppp-project/ppp/commit/7f89208b860ea0c41636410bfdb6a609b2772f47 -https://bugs.gentoo.org/908396 - -From 7f89208b860ea0c41636410bfdb6a609b2772f47 Mon Sep 17 00:00:00 2001 -From: Eivind Naess <eivnaes@yahoo.com> -Date: Sun, 23 Apr 2023 11:37:01 -0700 -Subject: [PATCH] Closes #411, Fixing up parsing in radiusclient.conf - -Adding curly braces to fix the code. - -Signed-off-by: Eivind Naess <eivnaes@yahoo.com> ---- a/pppd/plugins/radius/config.c -+++ b/pppd/plugins/radius/config.c -@@ -235,24 +235,28 @@ int rc_read_config(char *filename) - - switch (option->type) { - case OT_STR: -- if (set_option_str(filename, line, option, p) < 0) -+ if (set_option_str(filename, line, option, p) < 0) { - fclose(configfd); - return (-1); -+ } - break; - case OT_INT: -- if (set_option_int(filename, line, option, p) < 0) -+ if (set_option_int(filename, line, option, p) < 0) { - fclose(configfd); - return (-1); -+ } - break; - case OT_SRV: -- if (set_option_srv(filename, line, option, p) < 0) -+ if (set_option_srv(filename, line, option, p) < 0) { - fclose(configfd); - return (-1); -+ } - break; - case OT_AUO: -- if (set_option_auo(filename, line, option, p) < 0) -+ if (set_option_auo(filename, line, option, p) < 0) { - fclose(configfd); - return (-1); -+ } - break; - default: - fatal("rc_read_config: impossible case branch!"); - diff --git a/net-dialup/ppp/files/pppd.tmpfiles b/net-dialup/ppp/files/pppd.tmpfiles deleted file mode 100644 index 81b402e77055..000000000000 --- a/net-dialup/ppp/files/pppd.tmpfiles +++ /dev/null @@ -1,2 +0,0 @@ -d /run/pppd -L /run/pppd/lock - - - - ../lock diff --git a/net-dialup/ppp/metadata.xml b/net-dialup/ppp/metadata.xml index c34e91eb9749..9343bbdf784e 100644 --- a/net-dialup/ppp/metadata.xml +++ b/net-dialup/ppp/metadata.xml @@ -11,9 +11,6 @@ </maintainer> <use> <flag name="activefilter">Enables active filter support</flag> - <flag name="gtk">Installs GTK+ password prompting program that can be used - by passprompt.so PPP plugin for reading the password from a X11 input - terminal</flag> </use> <upstream> <remote-id type="cpe">cpe:/a:samba:ppp</remote-id> diff --git a/net-dialup/ppp/ppp-2.5.0-r7.ebuild b/net-dialup/ppp/ppp-2.5.0-r7.ebuild deleted file mode 100644 index 3bdf1eda3c85..000000000000 --- a/net-dialup/ppp/ppp-2.5.0-r7.ebuild +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools linux-info pam tmpfiles - -DESCRIPTION="Point-to-Point Protocol (PPP)" -HOMEPAGE="https://ppp.samba.org/" -SRC_URI=" - https://download.samba.org/pub/ppp/${P}.tar.gz - https://raw.githubusercontent.com/ppp-project/ppp/${P}/contrib/pppgetpass/pppgetpass.8 -" - -LICENSE="BSD GPL-2" -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="activefilter atm gtk pam selinux systemd" - -DEPEND=" - dev-libs/openssl:0= - virtual/libcrypt:= - activefilter? ( net-libs/libpcap ) - atm? ( net-dialup/linux-atm ) - gtk? ( x11-libs/gtk+:2 ) - pam? ( sys-libs/pam ) - systemd? ( sys-apps/systemd ) -" -RDEPEND=" - ${DEPEND} - !<net-misc/netifrc-0.7.1-r2 - selinux? ( sec-policy/selinux-ppp ) -" -BDEPEND="virtual/pkgconfig" -PDEPEND="net-dialup/ppp-scripts" - -PATCHES=( - "${FILESDIR}"/ppp-2.5.0-passwordfd-read-early.patch - "${FILESDIR}"/ppp-2.5.0-pidfile.patch - "${FILESDIR}"/ppp-2.5.0-radiusclient.conf-parsing.patch - "${FILESDIR}"/ppp-2.5.0-openssl-pkgconfig.patch - "${FILESDIR}"/ppp-2.5.0-pam-pkgconfig.patch - "${FILESDIR}"/ppp-2.5.0-radius-mppe.patch -) - -pkg_setup() { - local CONFIG_CHECK="~PPP ~PPP_ASYNC ~PPP_SYNC_TTY" - local ERROR_PPP="CONFIG_PPP:\t missing PPP support (REQUIRED)" - local ERROR_PPP_ASYNC="CONFIG_PPP_ASYNC:\t missing asynchronous serial line discipline" - ERROR_PPP_ASYNC+=" (optional, but highly recommended)" - local WARNING_PPP_SYNC_TTY="CONFIG_PPP_SYNC_TTY:\t missing synchronous serial line discipline" - WARNING_PPP_SYNC_TTY+=" (optional; used by 'sync' pppd option)" - if use activefilter ; then - CONFIG_CHECK+=" ~PPP_FILTER" - local ERROR_PPP_FILTER="CONFIG_PPP_FILTER:\t missing PPP filtering support (REQUIRED)" - fi - CONFIG_CHECK+=" ~PPP_DEFLATE ~PPP_BSDCOMP ~PPP_MPPE" - local ERROR_PPP_DEFLATE="CONFIG_PPP_DEFLATE:\t missing Deflate compression (optional, but highly recommended)" - local ERROR_PPP_BSDCOMP="CONFIG_PPP_BSDCOMP:\t missing BSD-Compress compression (optional, but highly recommended)" - local WARNING_PPP_MPPE="CONFIG_PPP_MPPE:\t missing MPPE encryption (optional, mostly used by PPTP links)" - CONFIG_CHECK+=" ~PPPOE ~PACKET" - local WARNING_PPPOE="CONFIG_PPPOE:\t missing PPPoE support (optional, needed by pppoe plugin)" - local WARNING_PACKET="CONFIG_PACKET:\t missing AF_PACKET support (optional, used by pppoe plugin)" - if use atm ; then - CONFIG_CHECK+=" ~PPPOATM" - local WARNING_PPPOATM="CONFIG_PPPOATM:\t missing PPPoA support (optional, needed by pppoatm plugin)" - fi - - linux-info_pkg_setup -} - -src_prepare() { - default - eautoreconf - - # Set the right paths in radiusclient.conf - sed -e "s:/usr/local/etc:/etc:" \ - -e "s:/usr/local/sbin:/usr/sbin:" \ - -i pppd/plugins/radius/etc/radiusclient.conf || die - # Set config dir to /etc/ppp/radius - sed -i -e "s:/etc/radiusclient:/etc/ppp/radius:g" \ - pppd/plugins/radius/{*.8,*.c,*.h} \ - pppd/plugins/radius/etc/* || die -} - -src_configure() { - local args=( - --localstatedir="${EPREFIX}"/var - --runstatedir="${EPREFIX}"/run - $(use_enable systemd) - $(use_with atm) - $(use_with pam) - $(use_with activefilter pcap) - $(use_with gtk) - --enable-cbcp - --enable-multilink - ) - econf "${args[@]}" -} - -src_install() { - default - - find "${ED}" -name '*.la' -type f -delete || die - - if use pam; then - pamd_mimic_system ppp auth account session - fi - - insinto /etc/modprobe.d - newins "${FILESDIR}/modules.ppp" ppp.conf - - dosbin scripts/p{on,off,log} - doman scripts/pon.1 - dosym pon.1 /usr/share/man/man1/poff.1 - dosym pon.1 /usr/share/man/man1/plog.1 - - # Adding misc. specialized scripts to doc dir - dodoc -r scripts - - if use gtk ; then - dosbin contrib/pppgetpass/pppgetpass.{gtk,vt} - newsbin contrib/pppgetpass/pppgetpass.sh pppgetpass - else - newsbin contrib/pppgetpass/pppgetpass.vt pppgetpass - fi - - newtmpfiles "${FILESDIR}/pppd.tmpfiles" pppd.conf - - # Missing from upstream tarball - # https://github.com/ppp-project/ppp/pull/412 - #doman contrib/pppgetpass/pppgetpass.8 - doman "${DISTDIR}/pppgetpass.8" - - insinto /etc/ppp/radius - doins pppd/plugins/radius/etc/{dictionary*,issue,port-id-map,radiusclient.conf,realms,servers} -} - -pkg_postinst() { - tmpfiles_process pppd.conf -} diff --git a/net-dialup/ppp/ppp-2.5.1-r1.ebuild b/net-dialup/ppp/ppp-2.5.1-r1.ebuild deleted file mode 100644 index c73dc2c82e81..000000000000 --- a/net-dialup/ppp/ppp-2.5.1-r1.ebuild +++ /dev/null @@ -1,127 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic linux-info pam tmpfiles - -DESCRIPTION="Point-to-Point Protocol (PPP)" -HOMEPAGE="https://ppp.samba.org/" -SRC_URI="https://download.samba.org/pub/ppp/${P}.tar.gz" - -LICENSE="BSD GPL-2" -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="activefilter atm gtk pam selinux systemd" - -DEPEND=" - dev-libs/openssl:0= - virtual/libcrypt:= - activefilter? ( net-libs/libpcap ) - atm? ( net-dialup/linux-atm ) - gtk? ( x11-libs/gtk+:2 ) - pam? ( sys-libs/pam ) - systemd? ( sys-apps/systemd ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-ppp ) -" -BDEPEND="virtual/pkgconfig" -PDEPEND="net-dialup/ppp-scripts" - -pkg_setup() { - local CONFIG_CHECK="~PPP ~PPP_ASYNC ~PPP_SYNC_TTY" - local ERROR_PPP="CONFIG_PPP:\t missing PPP support (REQUIRED)" - local ERROR_PPP_ASYNC="CONFIG_PPP_ASYNC:\t missing asynchronous serial line discipline" - ERROR_PPP_ASYNC+=" (optional, but highly recommended)" - local WARNING_PPP_SYNC_TTY="CONFIG_PPP_SYNC_TTY:\t missing synchronous serial line discipline" - WARNING_PPP_SYNC_TTY+=" (optional; used by 'sync' pppd option)" - if use activefilter ; then - CONFIG_CHECK+=" ~PPP_FILTER" - local ERROR_PPP_FILTER="CONFIG_PPP_FILTER:\t missing PPP filtering support (REQUIRED)" - fi - CONFIG_CHECK+=" ~PPP_DEFLATE ~PPP_BSDCOMP ~PPP_MPPE" - local ERROR_PPP_DEFLATE="CONFIG_PPP_DEFLATE:\t missing Deflate compression (optional, but highly recommended)" - local ERROR_PPP_BSDCOMP="CONFIG_PPP_BSDCOMP:\t missing BSD-Compress compression (optional, but highly recommended)" - local WARNING_PPP_MPPE="CONFIG_PPP_MPPE:\t missing MPPE encryption (optional, mostly used by PPTP links)" - CONFIG_CHECK+=" ~PPPOE ~PACKET" - local WARNING_PPPOE="CONFIG_PPPOE:\t missing PPPoE support (optional, needed by pppoe plugin)" - local WARNING_PACKET="CONFIG_PACKET:\t missing AF_PACKET support (optional, used by pppoe plugin)" - if use atm ; then - CONFIG_CHECK+=" ~PPPOATM" - local WARNING_PPPOATM="CONFIG_PPPOATM:\t missing PPPoA support (optional, needed by pppoatm plugin)" - fi - - linux-info_pkg_setup -} - -src_prepare() { - default - - # Set the right paths in radiusclient.conf - sed -e "s:/usr/local/etc:/etc:" \ - -e "s:/usr/local/sbin:/usr/sbin:" \ - -i pppd/plugins/radius/etc/radiusclient.conf || die - # Set config dir to /etc/ppp/radius - sed -i -e "s:/etc/radiusclient:/etc/ppp/radius:g" \ - pppd/plugins/radius/{*.8,*.c,*.h} \ - pppd/plugins/radius/etc/* || die -} - -src_configure() { - # https://bugs.gentoo.org/943931 - append-cflags -std=gnu17 - - local args=( - --localstatedir="${EPREFIX}"/var - --runstatedir="${EPREFIX}"/run - $(use_enable systemd) - $(use_with atm) - $(use_with pam) - $(use_with activefilter pcap) - $(use_with gtk) - --enable-cbcp - --enable-multilink - ) - econf "${args[@]}" -} - -src_install() { - default - - find "${ED}" -name '*.la' -type f -delete || die - - if use pam; then - pamd_mimic_system ppp auth account session - fi - - insinto /etc/modprobe.d - newins "${FILESDIR}/modules.ppp" ppp.conf - - dosbin scripts/p{on,off,log} - doman scripts/pon.1 - dosym pon.1 /usr/share/man/man1/poff.1 - dosym pon.1 /usr/share/man/man1/plog.1 - - # Adding misc. specialized scripts to doc dir - dodoc -r scripts - - if use gtk ; then - dosbin contrib/pppgetpass/pppgetpass.{gtk,vt} - newsbin contrib/pppgetpass/pppgetpass.sh pppgetpass - else - newsbin contrib/pppgetpass/pppgetpass.vt pppgetpass - fi - - doman contrib/pppgetpass/pppgetpass.8 - - newtmpfiles "${FILESDIR}/pppd.tmpfiles-r1" pppd.conf - - insinto /etc/ppp/radius - doins pppd/plugins/radius/etc/{dictionary*,issue,port-id-map,radiusclient.conf,realms,servers} -} - -pkg_postinst() { - tmpfiles_process pppd.conf -} diff --git a/net-dialup/ppp/ppp-2.5.2.ebuild b/net-dialup/ppp/ppp-2.5.2.ebuild deleted file mode 100644 index 4c2efbb1c352..000000000000 --- a/net-dialup/ppp/ppp-2.5.2.ebuild +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic linux-info pam tmpfiles - -DESCRIPTION="Point-to-Point Protocol (PPP)" -HOMEPAGE="https://ppp.samba.org/" -SRC_URI="https://download.samba.org/pub/ppp/${P}.tar.gz" - -LICENSE="BSD GPL-2" -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="activefilter atm pam selinux systemd" - -DEPEND=" - dev-libs/openssl:0= - virtual/libcrypt:= - activefilter? ( net-libs/libpcap ) - atm? ( net-dialup/linux-atm ) - pam? ( sys-libs/pam ) - systemd? ( sys-apps/systemd ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-ppp ) -" -BDEPEND="virtual/pkgconfig" -PDEPEND="net-dialup/ppp-scripts" - -pkg_setup() { - local CONFIG_CHECK="~PPP ~PPP_ASYNC ~PPP_SYNC_TTY" - local ERROR_PPP="CONFIG_PPP:\t missing PPP support (REQUIRED)" - local ERROR_PPP_ASYNC="CONFIG_PPP_ASYNC:\t missing asynchronous serial line discipline" - ERROR_PPP_ASYNC+=" (optional, but highly recommended)" - local WARNING_PPP_SYNC_TTY="CONFIG_PPP_SYNC_TTY:\t missing synchronous serial line discipline" - WARNING_PPP_SYNC_TTY+=" (optional; used by 'sync' pppd option)" - if use activefilter ; then - CONFIG_CHECK+=" ~PPP_FILTER" - local ERROR_PPP_FILTER="CONFIG_PPP_FILTER:\t missing PPP filtering support (REQUIRED)" - fi - CONFIG_CHECK+=" ~PPP_DEFLATE ~PPP_BSDCOMP ~PPP_MPPE" - local ERROR_PPP_DEFLATE="CONFIG_PPP_DEFLATE:\t missing Deflate compression (optional, but highly recommended)" - local ERROR_PPP_BSDCOMP="CONFIG_PPP_BSDCOMP:\t missing BSD-Compress compression (optional, but highly recommended)" - local WARNING_PPP_MPPE="CONFIG_PPP_MPPE:\t missing MPPE encryption (optional, mostly used by PPTP links)" - CONFIG_CHECK+=" ~PPPOE ~PACKET" - local WARNING_PPPOE="CONFIG_PPPOE:\t missing PPPoE support (optional, needed by pppoe plugin)" - local WARNING_PACKET="CONFIG_PACKET:\t missing AF_PACKET support (optional, used by pppoe plugin)" - if use atm ; then - CONFIG_CHECK+=" ~PPPOATM" - local WARNING_PPPOATM="CONFIG_PPPOATM:\t missing PPPoA support (optional, needed by pppoatm plugin)" - fi - - linux-info_pkg_setup -} - -src_prepare() { - default - - # Set the right paths in radiusclient.conf - sed -e "s:/usr/local/etc:/etc:" \ - -e "s:/usr/local/sbin:/usr/sbin:" \ - -i pppd/plugins/radius/etc/radiusclient.conf || die - # Set config dir to /etc/ppp/radius - sed -i -e "s:/etc/radiusclient:/etc/ppp/radius:g" \ - pppd/plugins/radius/{*.8,*.c,*.h} \ - pppd/plugins/radius/etc/* || die -} - -src_configure() { - # https://bugs.gentoo.org/943931 - append-cflags -std=gnu17 - - local args=( - --localstatedir="${EPREFIX}"/var - --runstatedir="${EPREFIX}"/run - $(use_enable systemd) - $(use_with atm) - $(use_with pam) - $(use_with activefilter pcap) - --enable-cbcp - --enable-multilink - ) - econf "${args[@]}" -} - -src_install() { - default - - find "${ED}" -name '*.la' -type f -delete || die - - if use pam; then - pamd_mimic_system ppp auth account session - fi - - insinto /etc/modprobe.d - newins "${FILESDIR}/modules.ppp" ppp.conf - - dosbin scripts/p{on,off,log} - doman scripts/pon.1 - dosym pon.1 /usr/share/man/man1/poff.1 - dosym pon.1 /usr/share/man/man1/plog.1 - - # Adding misc. specialized scripts to doc dir - dodoc -r scripts - - newtmpfiles "${FILESDIR}/pppd.tmpfiles-r1" pppd.conf - - insinto /etc/ppp/radius - doins pppd/plugins/radius/etc/{dictionary*,issue,port-id-map,radiusclient.conf,realms,servers} -} - -pkg_postinst() { - tmpfiles_process pppd.conf -} diff --git a/net-dialup/ppp/ppp-2.5.3.ebuild b/net-dialup/ppp/ppp-2.5.3.ebuild deleted file mode 100644 index a84813f4a114..000000000000 --- a/net-dialup/ppp/ppp-2.5.3.ebuild +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic linux-info pam tmpfiles - -DESCRIPTION="Point-to-Point Protocol (PPP)" -HOMEPAGE="https://ppp.samba.org/" -SRC_URI="https://download.samba.org/pub/ppp/${P}.tar.gz" - -LICENSE="BSD GPL-2" -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="activefilter atm pam selinux systemd" - -DEPEND=" - dev-libs/openssl:0= - virtual/libcrypt:= - activefilter? ( net-libs/libpcap ) - atm? ( net-dialup/linux-atm ) - pam? ( sys-libs/pam ) - systemd? ( sys-apps/systemd ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-ppp ) -" -BDEPEND="virtual/pkgconfig" -PDEPEND="net-dialup/ppp-scripts" - -pkg_setup() { - local CONFIG_CHECK="~PPP ~PPP_ASYNC ~PPP_SYNC_TTY" - local ERROR_PPP="CONFIG_PPP:\t missing PPP support (REQUIRED)" - local ERROR_PPP_ASYNC="CONFIG_PPP_ASYNC:\t missing asynchronous serial line discipline" - ERROR_PPP_ASYNC+=" (optional, but highly recommended)" - local WARNING_PPP_SYNC_TTY="CONFIG_PPP_SYNC_TTY:\t missing synchronous serial line discipline" - WARNING_PPP_SYNC_TTY+=" (optional; used by 'sync' pppd option)" - if use activefilter ; then - CONFIG_CHECK+=" ~PPP_FILTER" - local ERROR_PPP_FILTER="CONFIG_PPP_FILTER:\t missing PPP filtering support (REQUIRED)" - fi - CONFIG_CHECK+=" ~PPP_DEFLATE ~PPP_BSDCOMP ~PPP_MPPE" - local ERROR_PPP_DEFLATE="CONFIG_PPP_DEFLATE:\t missing Deflate compression (optional, but highly recommended)" - local ERROR_PPP_BSDCOMP="CONFIG_PPP_BSDCOMP:\t missing BSD-Compress compression (optional, but highly recommended)" - local WARNING_PPP_MPPE="CONFIG_PPP_MPPE:\t missing MPPE encryption (optional, mostly used by PPTP links)" - CONFIG_CHECK+=" ~PPPOE ~PACKET" - local WARNING_PPPOE="CONFIG_PPPOE:\t missing PPPoE support (optional, needed by pppoe plugin)" - local WARNING_PACKET="CONFIG_PACKET:\t missing AF_PACKET support (optional, used by pppoe plugin)" - if use atm ; then - CONFIG_CHECK+=" ~PPPOATM" - local WARNING_PPPOATM="CONFIG_PPPOATM:\t missing PPPoA support (optional, needed by pppoatm plugin)" - fi - - linux-info_pkg_setup -} - -src_prepare() { - default - - # Set the right paths in radiusclient.conf - sed -e "s:/usr/local/etc:/etc:" \ - -e "s:/usr/local/sbin:/usr/sbin:" \ - -i pppd/plugins/radius/etc/radiusclient.conf || die - # Set config dir to /etc/ppp/radius - sed -i -e "s:/etc/radiusclient:/etc/ppp/radius:g" \ - pppd/plugins/radius/{*.8,*.c,*.h} \ - pppd/plugins/radius/etc/* || die -} - -src_configure() { - # https://bugs.gentoo.org/943931 - append-cflags -std=gnu17 - - local args=( - --localstatedir="${EPREFIX}"/var - --runstatedir="${EPREFIX}"/run - $(use_enable systemd) - $(use_with atm) - $(use_with pam) - $(use_with activefilter pcap) - --enable-cbcp - --enable-multilink - ) - econf "${args[@]}" -} - -src_install() { - default - - find "${ED}" -name '*.la' -type f -delete || die - - if use pam; then - pamd_mimic_system ppp auth account session - fi - - insinto /etc/modprobe.d - newins "${FILESDIR}/modules.ppp" ppp.conf - - dosbin scripts/p{on,off,log} - doman scripts/pon.1 - dosym pon.1 /usr/share/man/man1/poff.1 - dosym pon.1 /usr/share/man/man1/plog.1 - - # Adding misc. specialized scripts to doc dir - dodoc -r scripts - - newtmpfiles "${FILESDIR}/pppd.tmpfiles-r1" pppd.conf - - insinto /etc/ppp/radius - doins pppd/plugins/radius/etc/{dictionary*,issue,port-id-map,radiusclient.conf,realms,servers} -} - -pkg_postinst() { - tmpfiles_process pppd.conf -} diff --git a/net-dialup/ppp/ppp-2.5.4.ebuild b/net-dialup/ppp/ppp-2.5.4.ebuild index edd22cef08a9..6aa12055fd50 100644 --- a/net-dialup/ppp/ppp-2.5.4.ebuild +++ b/net-dialup/ppp/ppp-2.5.4.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/ppp-project/ppp.git" else SRC_URI="https://download.samba.org/pub/ppp/${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" fi LICENSE="BSD GPL-2" diff --git a/net-dns/bind/Manifest b/net-dns/bind/Manifest index 84de24a2637c..e611e7bff520 100644 --- a/net-dns/bind/Manifest +++ b/net-dns/bind/Manifest @@ -1,18 +1,4 @@ -DIST bind-9.18.38.tar.xz 5362772 BLAKE2B 04a7eeba174dc0333f5f4f3a0767ac66a0f81665dc26dc5a88434ab1c1c12fdd2deaee91b62f77001a92283d40942a0487f6d314b465d9dac6c817d4f78166d4 SHA512 38710646a817dca0df6247b660cd244c79da13d0fed2898da139ae206bc8732fddd93af6fc2cbeca805c0c0d0789ec22eacf26789db288154581478ab2eaf44c -DIST bind-9.18.39.tar.xz 5383056 BLAKE2B 5629a4973273d0ef132c94634be2787a916e6cf2dd2d4dfb12c5a27359ffc8eda26bbfc8650a03fbb5f5b98d834527289a213c74f0c5d31a68f4781053fed3bc SHA512 fd6d45c9cb9c599d8770c18801fad2f177faf3a8af82948800d186ae6dc9eb2c894b61802def0841eb722c615c93c077b55368204f0cf2737a3c50d949efca07 -DIST bind-9.18.42.tar.xz 5423412 BLAKE2B d29813a76f18eaf75908e95f18d0c82fb591a1228962ec6d209a08260b2f60327e049fc263bd772eed12bd9c2231c835f1e3f3262df0e0f6811481570e1dc169 SHA512 9133be987e2043aabf8cd7de58f62c41c632b92d9930a3644aaff80b23211e5a967a133080f6e61142408ef752f8a07d6b7c1e775ca8a495bb29ff9d167446c0 -DIST bind-9.18.47.tar.xz 5448920 BLAKE2B fea217afba2d40b8d762bee70a0f31c35cd9c6fe1df5e5a7730bd8c5c69e0f0e8df03d8eb276a40851f4105d40210f297d5d3a970ed678d620aa726ddf27b945 SHA512 8135d453c0dd99947c93b9fb8fe1a52c5657f1c675b503dbfb745dfc9bb278121dc307d590bae99b439b093e87cb2bd0bf07d0a32ffd8a39841752559a0df1e8 -DIST bind-9.18.48.tar.xz 5452356 BLAKE2B 2712af1f077284c752d7279784f9990dfec75fc0eb0715219e6ca502356f01a21b9fa1b3d7ce83252c1818adf9d1e6a58d7c15dda0aa9d7179e7a75ba57d6193 SHA512 9c93fe60e8fdfa140cfd535beaf42b368aed885aa97669f990f100c8d75d02cb2b0423f87e8b0f36315fda5bb998e18b7bf8d3d649e9ffe32a4724947a5bebe7 -DIST bind-9.18.49.tar.xz 5476288 BLAKE2B 3a8510602b63708cc3f7b47dc89e2f2f62ebf022403075e4222e4067445c99e183b8f9a94ca04134479406ee4966acc4cf6d79751cbcbfd018f6aca51d209372 SHA512 e5259db8b9fdb3940d4e1d95978514692777a3675fc85a83db30e049d80d8150d10e672d51eeb885a94c6bbd4573ff8fe49248117c24ff155197a24a26b09544 -DIST bind-9.20.21.tar.xz 5808576 BLAKE2B 20c2acac40242516da10cc8e45074de3d5d8906e4c4e216f6d69cba0585816aba4ec77adda8142294623eef5b045ec64cc8a18c721ece6af939741903558454b SHA512 f0f566a243268a579a7c97409409699aa66a08e82982d48046c83d9dfd01f8a9c337af7bb80018773667fcc98a5e6fb9f244ac28e72688ab04a494337605c616 -DIST bind-9.20.21.tar.xz.asc 833 BLAKE2B d3af3befb08ef8c3fefdd5baa61647414a026dd86d7bb3982ac12f9ae5a5199326c8421dee6eb7a2eea219b67491afb36be366509488df2128008fccbd9b2787 SHA512 21eddf0ca03874381c5135496e9b0739d1889cbdcced0dd9b68075e3e04ea24983ff8974b462d8ee0f36e1eb0c202b2791707037346e8f0aa2a13e94a1a5f7bb -DIST bind-9.20.22.tar.xz 5817248 BLAKE2B 74537646d8c08c4874548b064ab62bab3721d22e2654feed54ea0b61c087018b24f725d0cfaf8298bc71a1be280c753c86449b13e5d9ec26f84ba7e9f61b7a5a SHA512 a23b630fc755977534e3fb8605810495ab8e4817ade93448f93167a38c643b0da6e93b3c2d9e191e99989af446a8aabfa43636120cc6c2a0c653dcd36cb89d07 -DIST bind-9.20.22.tar.xz.asc 833 BLAKE2B 1b68a0dc7ba7e3bcb9c222f13daaf113e464cfea792408bc28096ce7961e3121a85104b0bfb468bd6c7a8becdc0fb54ed744aeb96490b4d5792ed7113fb69b02 SHA512 c987629f59f919ce325c70c001e5c3093bd9f36dc589aac94ba9cdfcc4679e892da4d1980cc154801f222a9ec4dbf3112ff627e5abf539a5d3cf20629fda72b3 -DIST bind-9.20.23.tar.xz 5837532 BLAKE2B f4f5526fac2832685204ccc93087df3ce2dd3fbb267a5b68d0cf8074365a8f1d6e7b9ff130b41a023ea8dd96499a361a0396188f0a71a08630c54ec13e63c39a SHA512 fce8a69620c15223e54dd197c09c7b00c165e5e3a5b2f62b241f589be5675c581029cf750caa8ed1f1fcb0faf293df04e77c494c205bab89d6d01153395bf4cb -DIST bind-9.20.23.tar.xz.asc 833 BLAKE2B dd8f34f1257c7fa153225b0d25780c34549ed8209e88a41ccbd66dca3186817395002989cebe92fecb39bcb5452d998c512daac5143a7fb87baacdcb6a1d5976 SHA512 41c008dd3edc1bff238dbabff74731ffb1ec7213805e354661450a28676212b3937d3be35e7ecaefd3670f609cc40fbd346ebfff77aa82511d28d46c24b88c31 -DIST bind-9.20.24.tar.xz 5854912 BLAKE2B 06fde034ef2d3f4432caf5d9a701f70f32dec94be63e64dfd5484d9e008245ca5707c067c0fa19e1e2c0a3d83d2bbeb465c6ec18aceed48ffaad6973c8a77a54 SHA512 6e163d483a45a71d979c0c4fc9778e22f6fc158ab3dff460d84fa60391689c2f6e62ec179500718bcad27547728910ee17de2d10ef1936018a8958138e9c146c -DIST bind-9.20.24.tar.xz.asc 833 BLAKE2B 8dbbfe712f35929ab3edb2906ce732fe2a2427f64a225df37ea90ec60c7bf23678987c32cb99310c47938b20e561aa8b6205c22c04481a5bb0c6007d65bdcd61 SHA512 3e9bebcc3bf22402e81bb361e955d82973c307b2a3aee25e238e66956fc6e6ffe5fa46d37c2b500ebfadec24e5d6eb3b504d2008741384fddad65442035a8c33 -DIST bind-9.20.26.tar.xz 5918032 BLAKE2B 433d5ed7457367ce5b195a7d1a6f3fef21f929b158b14e3c86d8dc2004240119e4ec3b1d3cab1121be66ec77463fcb462e1207ec3339cf46ca4eec05f8c366ef SHA512 6d90452d86bfbd1cd6c1301f8c2d9c2251402c81a03d45ab30217f5db05ab1ca6ca7e01fac3642bcd7e1866bd535763e9a9526886312eb5eaf4e532431a92931 -DIST bind-9.20.26.tar.xz.asc 833 BLAKE2B 1d5b52adb8e8458d2b3050fbbee650770ad23b2dfbd5d8ca94fef8dd1d8631a1d97f7cb153e8560628cbb9ad35b87bf1cefdf1e4363a9a0ea2f92290f06d6edf SHA512 cca9944521ce45e456e2e04ad271a9df97e8772cb2f2cb8230b875fc39d893be20e3b957207ad11e211b5426b8ee4313131b073f06af8e0271db457b7caffb84 DIST bind-9.20.27.tar.xz 5932248 BLAKE2B 7f2f0f030748e722d12800bae567f9cfb1ddeba712a8f3a2a1018572ef9be2a69c072cca2139cb723b928ebe62c502a2715ae0d4afab3d0ba526b0a5eb5e215e SHA512 e8b4c3cdbd7d03eb97303d3fa8496769fd5ec2ca323db621939af8096b06e352d9777e1c77403131c72e633d5008a4be49774581162ef421827df596e243a600 DIST bind-9.20.27.tar.xz.asc 870 BLAKE2B e24deaa0cbc186b31b86e983e5c9f2c53550d8978d84e291d67027cf558d4b39b2fe6e217e3bc61685645bc249a1576087915980420a3336c67f6992ba05227a SHA512 255a523bb73c94e04c4cfd6b00a60bc57a1351767fef2421258e358ca5c13a359e53d1b6921792447b655aac7911fc22cd2ded8e5b114221c08fa7bc17d3a154 +DIST bind-9.20.29.tar.xz 5966372 BLAKE2B 0707c48f2d8eb898578bf1d6c2e626e17f93b50394855dd697ccd7e8b98c0926366112cc7dab9f6becd3d01210958e365bcc60142558cdf4ce28002dcc2906de SHA512 afedc73a1376d662eec86b7f0e5795a3b0302e7184af83f90d06e3b5054efb54f5d7ab73f777e0d1b84b25aa27f299de688c508e28f0a22e67ba5eb07aa46077 +DIST bind-9.20.29.tar.xz.asc 870 BLAKE2B a3c564fb898fa4cf00ef5bf47339f9cfcad78180cf6bdd723e243854b53f3bc7549e3074ea6d2ea3852bb68b5910c5270d9e4abc376c6c839f7dea91b31719c7 SHA512 456be1551ccb858da7de072e51b1c5c9a3688cae3ac0d070ff84dcd3cb6a2ccfdf5afca3c06cf44089abcf5ae8f24f626fc5ded84bce521494dd7c56e6a786f2 diff --git a/net-dns/bind/bind-9.18.38.ebuild b/net-dns/bind/bind-9.18.38.ebuild deleted file mode 100644 index 9e5e071ffe4c..000000000000 --- a/net-dns/bind/bind-9.18.38.ebuild +++ /dev/null @@ -1,279 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit eapi9-ver systemd tmpfiles toolchain-funcs - -MY_PV="${PV/_p/-P}" -MY_PV="${MY_PV/_rc/rc}" - -DESCRIPTION="Berkeley Internet Name Domain - Name Server" -HOMEPAGE="https://www.isc.org/software/bind" -SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="MPL-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" -RESTRICT="!test? ( test )" - -DEPEND=" - acct-group/named - acct-user/named - dev-libs/json-c:= - >=dev-libs/libuv-1.37.0:= - virtual/zlib:= - dev-libs/openssl:=[-bindist(-)] - caps? ( >=sys-libs/libcap-2.1.0 ) - dnstap? ( - dev-libs/fstrm - dev-libs/protobuf-c - ) - doh? ( net-libs/nghttp2:= ) - geoip? ( dev-libs/libmaxminddb ) - gssapi? ( virtual/krb5 ) - idn? ( net-dns/libidn2 ) - jemalloc? ( dev-libs/jemalloc:= ) - lmdb? ( dev-db/lmdb ) - xml? ( dev-libs/libxml2:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-bind ) - sys-process/psmisc - !<net-dns/bind-tools-9.18.0 -" -# sphinx required for man-page and html creation -BDEPEND=" - dev-lang/perl - virtual/pkgconfig - doc? ( dev-python/sphinx ) - test? ( - dev-util/cmocka - ) -" - -src_prepare() { - default - - # Don't clobber our toolchain defaults - sed -i -e '/FORTIFY_SOURCE=/d' configure || die - - # Test is (notoriously) slow/resource intensive - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/isc/netmgr_test.c || die - - # Relies on -Wl,--wrap (bug #877741) - if tc-is-lto ; then - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die - fi -} - -src_configure() { - # configure automagically uses sphinx even if prebuilt man pages - # are available. Force fallback to prebuilt ones. - use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD= - - local myeconfargs=( - --prefix="${EPREFIX}"/usr - --sysconfdir="${EPREFIX}"/etc/bind - --localstatedir="${EPREFIX}"/var - --enable-full-report - --without-readline - --with-openssl="${ESYSROOT}"/usr - --with-json-c - --with-zlib - $(use_enable caps linux-caps) - --disable-dnsrps - $(use_enable dnstap) - $(use_enable doh) - $(use_with doh libnghttp2) - $(use_enable fixed-rrset) - $(use_enable geoip) - $(use_with test cmocka) - $(use_with geoip maxminddb) - $(use_with gssapi) - $(use_with idn libidn2) - $(use_with jemalloc) - $(use_with lmdb) - $(use_with xml libxml2) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # system tests ('emake test') require network configuration for IPs etc - # so we run the unit tests instead. - CI=1 emake unit V=1 - - # libtest is an internal test helper library, it has no tests, - # so suppress the QA warning. - rm tests/libtest/test-suite.log || die -} - -src_install() { - default - - if use doc; then - docinto misc - dodoc -r doc/misc/ - - docinto html - dodoc -r doc/arm/ - - docinto dnssec-guide - dodoc -r doc/dnssec-guide/ - - docinto contrib - dodoc contrib/scripts/nanny.pl - fi - - insinto /etc/bind - newins "${FILESDIR}"/named.conf-r9 named.conf - newins "${FILESDIR}"/named.conf.auth named.conf.auth - - newinitd "${FILESDIR}"/named.init-r15 named - newconfd "${FILESDIR}"/named.confd-r8 named - - newenvd "${FILESDIR}"/10bind.env 10bind - - find "${ED}"/usr/lib* -name '*.la' -delete || die - - # - # /var/bind - # - # These need to remain for now because CONFIG_PROTECT won't - # save them and we shipped configs for years containing references - # to them. - # - # ftp://ftp.rs.internic.net/domain/named.cache: - insinto /var/bind - newins "${FILESDIR}"/named.cache-r4 named.cache - # bug #450406 - dosym named.cache /var/bind/root.cache - # - insinto /var/bind/pri - newins "${FILESDIR}"/localhost.zone-r3 localhost.zone - - dosym -r /var/bind/pri /etc/bind/pri - dosym -r /var/bind/sec /etc/bind/sec - dosym -r /var/bind/dyn /etc/bind/dyn - keepdir /var/bind/{pri,sec,dyn} /var/log/named - - fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn} - fowners root:named /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0640 /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0750 /etc/bind /var/bind/pri - fperms 0770 /var/log/named /var/bind/{,sec,dyn} - - systemd_newunit "${FILESDIR}/named.service-r2" named.service - dotmpfiles "${FILESDIR}"/named.conf - exeinto /usr/libexec - doexe "${FILESDIR}/generate-rndc-key.sh" -} - -pkg_postinst() { - tmpfiles_process named.conf - - if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then - einfo "Generating rndc.key" - "${EPREFIX}"/usr/sbin/rndc-confgen -a || die - chown root:named "${EPREFIX}"/etc/bind/rndc.key || die - chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die - fi - - einfo - einfo "You can edit /etc/conf.d/named to customize named settings" - einfo - - einfo "If you'd like to run bind in a chroot AND this is a new" - einfo "install OR your bind doesn't already run in a chroot:" - einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named." - einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`" - einfo - - CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT}) - if [[ -n ${CHROOT} ]]; then - elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - elog "To enable the old behaviour (without using mount) uncomment the" - elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - elog "If you decide to use the new/default method, ensure to make backup" - elog "first and merge your existing configs/zones to /etc/bind and" - elog "/var/bind because bind will now mount the needed directories into" - elog "the chroot dir." - fi - - # show only when upgrading to 9.18 - if ver_replacing -lt 9.18; then - elog "As this is a major bind version upgrade, please read:" - elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" - elog "for differences in functionality." - elog "" - ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" - ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" - ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" - ewarn "to find the specified file. Best practice is to delete the offending lines that" - ewarn "reference named.cache file from your configuration." - fi -} - -pkg_config() { - CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) - CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) - CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) - - if [[ -z "${CHROOT}" ]]; then - eerror "This config script is designed to automate setting up" - eerror "a chrooted bind/named. To do so, please first uncomment" - eerror "and set the CHROOT variable in '/etc/conf.d/named'." - die "Unset CHROOT" - fi - - if [[ -d "${CHROOT}" ]]; then - ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - ewarn "To enable the old behaviour (without using mount) uncomment the" - ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - ewarn - ewarn "${CHROOT} already exists... some things might become overridden" - ewarn "press CTRL+C if you don't want to continue" - sleep 10 - fi - - echo; einfo "Setting up the chroot directory..." - - mkdir -m 0750 -p "${CHROOT}" || die - mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die - mkdir -m 0750 -p "${CHROOT}"/etc/bind || die - mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named} "${CHROOT}"/run/named/ || die - - chown root:named \ - "${CHROOT}" \ - "${CHROOT}"/var/{bind,log/named} \ - "${CHROOT}"/run/named/ \ - "${CHROOT}"/etc/bind \ - || die - - mknod "${CHROOT}"/dev/null c 1 3 || die - chmod 0666 "${CHROOT}"/dev/null || die - - mknod "${CHROOT}"/dev/zero c 1 5 || die - chmod 0666 "${CHROOT}"/dev/zero || die - - if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then - cp -a /etc/bind "${CHROOT}"/etc/ || die - cp -a /var/bind "${CHROOT}"/var/ || die - fi - - if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then - if use geoip; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die - elif use geoip2; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die - fi - fi - - elog "You may need to add the following line to your syslog-ng.conf:" - elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" -} diff --git a/net-dns/bind/bind-9.18.39.ebuild b/net-dns/bind/bind-9.18.39.ebuild deleted file mode 100644 index 3828470997a6..000000000000 --- a/net-dns/bind/bind-9.18.39.ebuild +++ /dev/null @@ -1,279 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit eapi9-ver systemd tmpfiles toolchain-funcs - -MY_PV="${PV/_p/-P}" -MY_PV="${MY_PV/_rc/rc}" - -DESCRIPTION="Berkeley Internet Name Domain - Name Server" -HOMEPAGE="https://www.isc.org/software/bind" -SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="MPL-2.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" -RESTRICT="!test? ( test )" - -DEPEND=" - acct-group/named - acct-user/named - dev-libs/json-c:= - >=dev-libs/libuv-1.37.0:= - virtual/zlib:= - dev-libs/openssl:=[-bindist(-)] - caps? ( >=sys-libs/libcap-2.1.0 ) - dnstap? ( - dev-libs/fstrm - dev-libs/protobuf-c - ) - doh? ( net-libs/nghttp2:= ) - geoip? ( dev-libs/libmaxminddb ) - gssapi? ( virtual/krb5 ) - idn? ( net-dns/libidn2 ) - jemalloc? ( dev-libs/jemalloc:= ) - lmdb? ( dev-db/lmdb ) - xml? ( dev-libs/libxml2:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-bind ) - sys-process/psmisc - !<net-dns/bind-tools-9.18.0 -" -# sphinx required for man-page and html creation -BDEPEND=" - dev-lang/perl - virtual/pkgconfig - doc? ( dev-python/sphinx ) - test? ( - dev-util/cmocka - ) -" - -src_prepare() { - default - - # Don't clobber our toolchain defaults - sed -i -e '/FORTIFY_SOURCE=/d' configure || die - - # Test is (notoriously) slow/resource intensive - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/isc/netmgr_test.c || die - - # Relies on -Wl,--wrap (bug #877741) - if tc-is-lto ; then - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die - fi -} - -src_configure() { - # configure automagically uses sphinx even if prebuilt man pages - # are available. Force fallback to prebuilt ones. - use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD= - - local myeconfargs=( - --prefix="${EPREFIX}"/usr - --sysconfdir="${EPREFIX}"/etc/bind - --localstatedir="${EPREFIX}"/var - --enable-full-report - --without-readline - --with-openssl="${ESYSROOT}"/usr - --with-json-c - --with-zlib - $(use_enable caps linux-caps) - --disable-dnsrps - $(use_enable dnstap) - $(use_enable doh) - $(use_with doh libnghttp2) - $(use_enable fixed-rrset) - $(use_enable geoip) - $(use_with test cmocka) - $(use_with geoip maxminddb) - $(use_with gssapi) - $(use_with idn libidn2) - $(use_with jemalloc) - $(use_with lmdb) - $(use_with xml libxml2) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # system tests ('emake test') require network configuration for IPs etc - # so we run the unit tests instead. - CI=1 emake unit V=1 - - # libtest is an internal test helper library, it has no tests, - # so suppress the QA warning. - rm tests/libtest/test-suite.log || die -} - -src_install() { - default - - if use doc; then - docinto misc - dodoc -r doc/misc/ - - docinto html - dodoc -r doc/arm/ - - docinto dnssec-guide - dodoc -r doc/dnssec-guide/ - - docinto contrib - dodoc contrib/scripts/nanny.pl - fi - - insinto /etc/bind - newins "${FILESDIR}"/named.conf-r9 named.conf - newins "${FILESDIR}"/named.conf.auth named.conf.auth - - newinitd "${FILESDIR}"/named.init-r15 named - newconfd "${FILESDIR}"/named.confd-r8 named - - newenvd "${FILESDIR}"/10bind.env 10bind - - find "${ED}"/usr/lib* -name '*.la' -delete || die - - # - # /var/bind - # - # These need to remain for now because CONFIG_PROTECT won't - # save them and we shipped configs for years containing references - # to them. - # - # ftp://ftp.rs.internic.net/domain/named.cache: - insinto /var/bind - newins "${FILESDIR}"/named.cache-r4 named.cache - # bug #450406 - dosym named.cache /var/bind/root.cache - # - insinto /var/bind/pri - newins "${FILESDIR}"/localhost.zone-r3 localhost.zone - - dosym -r /var/bind/pri /etc/bind/pri - dosym -r /var/bind/sec /etc/bind/sec - dosym -r /var/bind/dyn /etc/bind/dyn - keepdir /var/bind/{pri,sec,dyn} /var/log/named - - fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn} - fowners root:named /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0640 /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0750 /etc/bind /var/bind/pri - fperms 0770 /var/log/named /var/bind/{,sec,dyn} - - systemd_newunit "${FILESDIR}/named.service-r2" named.service - dotmpfiles "${FILESDIR}"/named.conf - exeinto /usr/libexec - doexe "${FILESDIR}/generate-rndc-key.sh" -} - -pkg_postinst() { - tmpfiles_process named.conf - - if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then - einfo "Generating rndc.key" - "${EPREFIX}"/usr/sbin/rndc-confgen -a || die - chown root:named "${EPREFIX}"/etc/bind/rndc.key || die - chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die - fi - - einfo - einfo "You can edit /etc/conf.d/named to customize named settings" - einfo - - einfo "If you'd like to run bind in a chroot AND this is a new" - einfo "install OR your bind doesn't already run in a chroot:" - einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named." - einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`" - einfo - - CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT}) - if [[ -n ${CHROOT} ]]; then - elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - elog "To enable the old behaviour (without using mount) uncomment the" - elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - elog "If you decide to use the new/default method, ensure to make backup" - elog "first and merge your existing configs/zones to /etc/bind and" - elog "/var/bind because bind will now mount the needed directories into" - elog "the chroot dir." - fi - - # show only when upgrading to 9.18 - if ver_replacing -lt 9.18; then - elog "As this is a major bind version upgrade, please read:" - elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" - elog "for differences in functionality." - elog "" - ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" - ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" - ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" - ewarn "to find the specified file. Best practice is to delete the offending lines that" - ewarn "reference named.cache file from your configuration." - fi -} - -pkg_config() { - CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) - CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) - CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) - - if [[ -z "${CHROOT}" ]]; then - eerror "This config script is designed to automate setting up" - eerror "a chrooted bind/named. To do so, please first uncomment" - eerror "and set the CHROOT variable in '/etc/conf.d/named'." - die "Unset CHROOT" - fi - - if [[ -d "${CHROOT}" ]]; then - ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - ewarn "To enable the old behaviour (without using mount) uncomment the" - ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - ewarn - ewarn "${CHROOT} already exists... some things might become overridden" - ewarn "press CTRL+C if you don't want to continue" - sleep 10 - fi - - echo; einfo "Setting up the chroot directory..." - - mkdir -m 0750 -p "${CHROOT}" || die - mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die - mkdir -m 0750 -p "${CHROOT}"/etc/bind || die - mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named} "${CHROOT}"/run/named/ || die - - chown root:named \ - "${CHROOT}" \ - "${CHROOT}"/var/{bind,log/named} \ - "${CHROOT}"/run/named/ \ - "${CHROOT}"/etc/bind \ - || die - - mknod "${CHROOT}"/dev/null c 1 3 || die - chmod 0666 "${CHROOT}"/dev/null || die - - mknod "${CHROOT}"/dev/zero c 1 5 || die - chmod 0666 "${CHROOT}"/dev/zero || die - - if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then - cp -a /etc/bind "${CHROOT}"/etc/ || die - cp -a /var/bind "${CHROOT}"/var/ || die - fi - - if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then - if use geoip; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die - elif use geoip2; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die - fi - fi - - elog "You may need to add the following line to your syslog-ng.conf:" - elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" -} diff --git a/net-dns/bind/bind-9.18.42.ebuild b/net-dns/bind/bind-9.18.42.ebuild deleted file mode 100644 index 5d41252065f3..000000000000 --- a/net-dns/bind/bind-9.18.42.ebuild +++ /dev/null @@ -1,279 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit eapi9-ver systemd tmpfiles toolchain-funcs - -MY_PV="${PV/_p/-P}" -MY_PV="${MY_PV/_rc/rc}" - -DESCRIPTION="Berkeley Internet Name Domain - Name Server" -HOMEPAGE="https://www.isc.org/software/bind" -SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="MPL-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" -RESTRICT="!test? ( test )" - -DEPEND=" - acct-group/named - acct-user/named - dev-libs/json-c:= - >=dev-libs/libuv-1.37.0:= - virtual/zlib:= - dev-libs/openssl:=[-bindist(-)] - caps? ( >=sys-libs/libcap-2.1.0 ) - dnstap? ( - dev-libs/fstrm - dev-libs/protobuf-c - ) - doh? ( net-libs/nghttp2:= ) - geoip? ( dev-libs/libmaxminddb ) - gssapi? ( virtual/krb5 ) - idn? ( net-dns/libidn2 ) - jemalloc? ( dev-libs/jemalloc:= ) - lmdb? ( dev-db/lmdb ) - xml? ( dev-libs/libxml2:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-bind ) - sys-process/psmisc - !<net-dns/bind-tools-9.18.0 -" -# sphinx required for man-page and html creation -BDEPEND=" - dev-lang/perl - virtual/pkgconfig - doc? ( dev-python/sphinx ) - test? ( - dev-util/cmocka - ) -" - -src_prepare() { - default - - # Don't clobber our toolchain defaults - sed -i -e '/FORTIFY_SOURCE=/d' configure || die - - # Test is (notoriously) slow/resource intensive - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/isc/netmgr_test.c || die - - # Relies on -Wl,--wrap (bug #877741) - if tc-is-lto ; then - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die - fi -} - -src_configure() { - # configure automagically uses sphinx even if prebuilt man pages - # are available. Force fallback to prebuilt ones. - use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD= - - local myeconfargs=( - --prefix="${EPREFIX}"/usr - --sysconfdir="${EPREFIX}"/etc/bind - --localstatedir="${EPREFIX}"/var - --enable-full-report - --without-readline - --with-openssl="${ESYSROOT}"/usr - --with-json-c - --with-zlib - $(use_enable caps linux-caps) - --disable-dnsrps - $(use_enable dnstap) - $(use_enable doh) - $(use_with doh libnghttp2) - $(use_enable fixed-rrset) - $(use_enable geoip) - $(use_with test cmocka) - $(use_with geoip maxminddb) - $(use_with gssapi) - $(use_with idn libidn2) - $(use_with jemalloc) - $(use_with lmdb) - $(use_with xml libxml2) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # system tests ('emake test') require network configuration for IPs etc - # so we run the unit tests instead. - CI=1 emake unit V=1 - - # libtest is an internal test helper library, it has no tests, - # so suppress the QA warning. - rm tests/libtest/test-suite.log || die -} - -src_install() { - default - - if use doc; then - docinto misc - dodoc -r doc/misc/ - - docinto html - dodoc -r doc/arm/ - - docinto dnssec-guide - dodoc -r doc/dnssec-guide/ - - docinto contrib - dodoc contrib/scripts/nanny.pl - fi - - insinto /etc/bind - newins "${FILESDIR}"/named.conf-r9 named.conf - newins "${FILESDIR}"/named.conf.auth named.conf.auth - - newinitd "${FILESDIR}"/named.init-r15 named - newconfd "${FILESDIR}"/named.confd-r8 named - - newenvd "${FILESDIR}"/10bind.env 10bind - - find "${ED}"/usr/lib* -name '*.la' -delete || die - - # - # /var/bind - # - # These need to remain for now because CONFIG_PROTECT won't - # save them and we shipped configs for years containing references - # to them. - # - # ftp://ftp.rs.internic.net/domain/named.cache: - insinto /var/bind - newins "${FILESDIR}"/named.cache-r4 named.cache - # bug #450406 - dosym named.cache /var/bind/root.cache - # - insinto /var/bind/pri - newins "${FILESDIR}"/localhost.zone-r3 localhost.zone - - dosym -r /var/bind/pri /etc/bind/pri - dosym -r /var/bind/sec /etc/bind/sec - dosym -r /var/bind/dyn /etc/bind/dyn - keepdir /var/bind/{pri,sec,dyn} /var/log/named - - fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn} - fowners root:named /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0640 /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0750 /etc/bind /var/bind/pri - fperms 0770 /var/log/named /var/bind/{,sec,dyn} - - systemd_newunit "${FILESDIR}/named.service-r2" named.service - dotmpfiles "${FILESDIR}"/named.conf - exeinto /usr/libexec - doexe "${FILESDIR}/generate-rndc-key.sh" -} - -pkg_postinst() { - tmpfiles_process named.conf - - if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then - einfo "Generating rndc.key" - "${EPREFIX}"/usr/sbin/rndc-confgen -a || die - chown root:named "${EPREFIX}"/etc/bind/rndc.key || die - chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die - fi - - einfo - einfo "You can edit /etc/conf.d/named to customize named settings" - einfo - - einfo "If you'd like to run bind in a chroot AND this is a new" - einfo "install OR your bind doesn't already run in a chroot:" - einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named." - einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`" - einfo - - CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT}) - if [[ -n ${CHROOT} ]]; then - elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - elog "To enable the old behaviour (without using mount) uncomment the" - elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - elog "If you decide to use the new/default method, ensure to make backup" - elog "first and merge your existing configs/zones to /etc/bind and" - elog "/var/bind because bind will now mount the needed directories into" - elog "the chroot dir." - fi - - # show only when upgrading to 9.18 - if ver_replacing -lt 9.18; then - elog "As this is a major bind version upgrade, please read:" - elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" - elog "for differences in functionality." - elog "" - ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" - ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" - ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" - ewarn "to find the specified file. Best practice is to delete the offending lines that" - ewarn "reference named.cache file from your configuration." - fi -} - -pkg_config() { - CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) - CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) - CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) - - if [[ -z "${CHROOT}" ]]; then - eerror "This config script is designed to automate setting up" - eerror "a chrooted bind/named. To do so, please first uncomment" - eerror "and set the CHROOT variable in '/etc/conf.d/named'." - die "Unset CHROOT" - fi - - if [[ -d "${CHROOT}" ]]; then - ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - ewarn "To enable the old behaviour (without using mount) uncomment the" - ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - ewarn - ewarn "${CHROOT} already exists... some things might become overridden" - ewarn "press CTRL+C if you don't want to continue" - sleep 10 - fi - - echo; einfo "Setting up the chroot directory..." - - mkdir -m 0750 -p "${CHROOT}" || die - mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die - mkdir -m 0750 -p "${CHROOT}"/etc/bind || die - mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named} "${CHROOT}"/run/named/ || die - - chown root:named \ - "${CHROOT}" \ - "${CHROOT}"/var/{bind,log/named} \ - "${CHROOT}"/run/named/ \ - "${CHROOT}"/etc/bind \ - || die - - mknod "${CHROOT}"/dev/null c 1 3 || die - chmod 0666 "${CHROOT}"/dev/null || die - - mknod "${CHROOT}"/dev/zero c 1 5 || die - chmod 0666 "${CHROOT}"/dev/zero || die - - if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then - cp -a /etc/bind "${CHROOT}"/etc/ || die - cp -a /var/bind "${CHROOT}"/var/ || die - fi - - if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then - if use geoip; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die - elif use geoip2; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die - fi - fi - - elog "You may need to add the following line to your syslog-ng.conf:" - elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" -} diff --git a/net-dns/bind/bind-9.18.47.ebuild b/net-dns/bind/bind-9.18.47.ebuild deleted file mode 100644 index 27abe98df551..000000000000 --- a/net-dns/bind/bind-9.18.47.ebuild +++ /dev/null @@ -1,279 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit eapi9-ver systemd tmpfiles toolchain-funcs - -MY_PV="${PV/_p/-P}" -MY_PV="${MY_PV/_rc/rc}" - -DESCRIPTION="Berkeley Internet Name Domain - Name Server" -HOMEPAGE="https://www.isc.org/software/bind" -SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="MPL-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" -RESTRICT="!test? ( test )" - -DEPEND=" - acct-group/named - acct-user/named - dev-libs/json-c:= - >=dev-libs/libuv-1.37.0:= - virtual/zlib:= - dev-libs/openssl:=[-bindist(-)] - caps? ( >=sys-libs/libcap-2.1.0 ) - dnstap? ( - dev-libs/fstrm - dev-libs/protobuf-c - ) - doh? ( net-libs/nghttp2:= ) - geoip? ( dev-libs/libmaxminddb ) - gssapi? ( virtual/krb5 ) - idn? ( net-dns/libidn2 ) - jemalloc? ( dev-libs/jemalloc:= ) - lmdb? ( dev-db/lmdb ) - xml? ( dev-libs/libxml2:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-bind ) - sys-process/psmisc - !<net-dns/bind-tools-9.18.0 -" -# sphinx required for man-page and html creation -BDEPEND=" - dev-lang/perl - virtual/pkgconfig - doc? ( dev-python/sphinx ) - test? ( - dev-util/cmocka - ) -" - -src_prepare() { - default - - # Don't clobber our toolchain defaults - sed -i -e '/FORTIFY_SOURCE=/d' configure || die - - # Test is (notoriously) slow/resource intensive - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/isc/netmgr_test.c || die - - # Relies on -Wl,--wrap (bug #877741) - if tc-is-lto ; then - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die - fi -} - -src_configure() { - # configure automagically uses sphinx even if prebuilt man pages - # are available. Force fallback to prebuilt ones. - use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD= - - local myeconfargs=( - --prefix="${EPREFIX}"/usr - --sysconfdir="${EPREFIX}"/etc/bind - --localstatedir="${EPREFIX}"/var - --enable-full-report - --without-readline - --with-openssl="${ESYSROOT}"/usr - --with-json-c - --with-zlib - $(use_enable caps linux-caps) - --disable-dnsrps - $(use_enable dnstap) - $(use_enable doh) - $(use_with doh libnghttp2) - $(use_enable fixed-rrset) - $(use_enable geoip) - $(use_with test cmocka) - $(use_with geoip maxminddb) - $(use_with gssapi) - $(use_with idn libidn2) - $(use_with jemalloc) - $(use_with lmdb) - $(use_with xml libxml2) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # system tests ('emake test') require network configuration for IPs etc - # so we run the unit tests instead. - CI=1 emake unit V=1 - - # libtest is an internal test helper library, it has no tests, - # so suppress the QA warning. - rm tests/libtest/test-suite.log || die -} - -src_install() { - default - - if use doc; then - docinto misc - dodoc -r doc/misc/ - - docinto html - dodoc -r doc/arm/ - - docinto dnssec-guide - dodoc -r doc/dnssec-guide/ - - docinto contrib - dodoc contrib/scripts/nanny.pl - fi - - insinto /etc/bind - newins "${FILESDIR}"/named.conf-r9 named.conf - newins "${FILESDIR}"/named.conf.auth named.conf.auth - - newinitd "${FILESDIR}"/named.init-r15 named - newconfd "${FILESDIR}"/named.confd-r8 named - - newenvd "${FILESDIR}"/10bind.env 10bind - - find "${ED}"/usr/lib* -name '*.la' -delete || die - - # - # /var/bind - # - # These need to remain for now because CONFIG_PROTECT won't - # save them and we shipped configs for years containing references - # to them. - # - # ftp://ftp.rs.internic.net/domain/named.cache: - insinto /var/bind - newins "${FILESDIR}"/named.cache-r4 named.cache - # bug #450406 - dosym named.cache /var/bind/root.cache - # - insinto /var/bind/pri - newins "${FILESDIR}"/localhost.zone-r3 localhost.zone - - dosym -r /var/bind/pri /etc/bind/pri - dosym -r /var/bind/sec /etc/bind/sec - dosym -r /var/bind/dyn /etc/bind/dyn - keepdir /var/bind/{pri,sec,dyn} /var/log/named - - fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn} - fowners root:named /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0640 /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0750 /etc/bind /var/bind/pri - fperms 0770 /var/log/named /var/bind/{,sec,dyn} - - systemd_newunit "${FILESDIR}/named.service-r2" named.service - dotmpfiles "${FILESDIR}"/named.conf - exeinto /usr/libexec - doexe "${FILESDIR}/generate-rndc-key.sh" -} - -pkg_postinst() { - tmpfiles_process named.conf - - if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then - einfo "Generating rndc.key" - "${EPREFIX}"/usr/sbin/rndc-confgen -a || die - chown root:named "${EPREFIX}"/etc/bind/rndc.key || die - chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die - fi - - einfo - einfo "You can edit /etc/conf.d/named to customize named settings" - einfo - - einfo "If you'd like to run bind in a chroot AND this is a new" - einfo "install OR your bind doesn't already run in a chroot:" - einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named." - einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`" - einfo - - CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT}) - if [[ -n ${CHROOT} ]]; then - elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - elog "To enable the old behaviour (without using mount) uncomment the" - elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - elog "If you decide to use the new/default method, ensure to make backup" - elog "first and merge your existing configs/zones to /etc/bind and" - elog "/var/bind because bind will now mount the needed directories into" - elog "the chroot dir." - fi - - # show only when upgrading to 9.18 - if ver_replacing -lt 9.18; then - elog "As this is a major bind version upgrade, please read:" - elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" - elog "for differences in functionality." - elog "" - ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" - ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" - ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" - ewarn "to find the specified file. Best practice is to delete the offending lines that" - ewarn "reference named.cache file from your configuration." - fi -} - -pkg_config() { - CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) - CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) - CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) - - if [[ -z "${CHROOT}" ]]; then - eerror "This config script is designed to automate setting up" - eerror "a chrooted bind/named. To do so, please first uncomment" - eerror "and set the CHROOT variable in '/etc/conf.d/named'." - die "Unset CHROOT" - fi - - if [[ -d "${CHROOT}" ]]; then - ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - ewarn "To enable the old behaviour (without using mount) uncomment the" - ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - ewarn - ewarn "${CHROOT} already exists... some things might become overridden" - ewarn "press CTRL+C if you don't want to continue" - sleep 10 - fi - - echo; einfo "Setting up the chroot directory..." - - mkdir -m 0750 -p "${CHROOT}" || die - mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die - mkdir -m 0750 -p "${CHROOT}"/etc/bind || die - mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named} "${CHROOT}"/run/named/ || die - - chown root:named \ - "${CHROOT}" \ - "${CHROOT}"/var/{bind,log/named} \ - "${CHROOT}"/run/named/ \ - "${CHROOT}"/etc/bind \ - || die - - mknod "${CHROOT}"/dev/null c 1 3 || die - chmod 0666 "${CHROOT}"/dev/null || die - - mknod "${CHROOT}"/dev/zero c 1 5 || die - chmod 0666 "${CHROOT}"/dev/zero || die - - if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then - cp -a /etc/bind "${CHROOT}"/etc/ || die - cp -a /var/bind "${CHROOT}"/var/ || die - fi - - if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then - if use geoip; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die - elif use geoip2; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die - fi - fi - - elog "You may need to add the following line to your syslog-ng.conf:" - elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" -} diff --git a/net-dns/bind/bind-9.18.48.ebuild b/net-dns/bind/bind-9.18.48.ebuild deleted file mode 100644 index 3828470997a6..000000000000 --- a/net-dns/bind/bind-9.18.48.ebuild +++ /dev/null @@ -1,279 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit eapi9-ver systemd tmpfiles toolchain-funcs - -MY_PV="${PV/_p/-P}" -MY_PV="${MY_PV/_rc/rc}" - -DESCRIPTION="Berkeley Internet Name Domain - Name Server" -HOMEPAGE="https://www.isc.org/software/bind" -SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="MPL-2.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" -RESTRICT="!test? ( test )" - -DEPEND=" - acct-group/named - acct-user/named - dev-libs/json-c:= - >=dev-libs/libuv-1.37.0:= - virtual/zlib:= - dev-libs/openssl:=[-bindist(-)] - caps? ( >=sys-libs/libcap-2.1.0 ) - dnstap? ( - dev-libs/fstrm - dev-libs/protobuf-c - ) - doh? ( net-libs/nghttp2:= ) - geoip? ( dev-libs/libmaxminddb ) - gssapi? ( virtual/krb5 ) - idn? ( net-dns/libidn2 ) - jemalloc? ( dev-libs/jemalloc:= ) - lmdb? ( dev-db/lmdb ) - xml? ( dev-libs/libxml2:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-bind ) - sys-process/psmisc - !<net-dns/bind-tools-9.18.0 -" -# sphinx required for man-page and html creation -BDEPEND=" - dev-lang/perl - virtual/pkgconfig - doc? ( dev-python/sphinx ) - test? ( - dev-util/cmocka - ) -" - -src_prepare() { - default - - # Don't clobber our toolchain defaults - sed -i -e '/FORTIFY_SOURCE=/d' configure || die - - # Test is (notoriously) slow/resource intensive - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/isc/netmgr_test.c || die - - # Relies on -Wl,--wrap (bug #877741) - if tc-is-lto ; then - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die - fi -} - -src_configure() { - # configure automagically uses sphinx even if prebuilt man pages - # are available. Force fallback to prebuilt ones. - use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD= - - local myeconfargs=( - --prefix="${EPREFIX}"/usr - --sysconfdir="${EPREFIX}"/etc/bind - --localstatedir="${EPREFIX}"/var - --enable-full-report - --without-readline - --with-openssl="${ESYSROOT}"/usr - --with-json-c - --with-zlib - $(use_enable caps linux-caps) - --disable-dnsrps - $(use_enable dnstap) - $(use_enable doh) - $(use_with doh libnghttp2) - $(use_enable fixed-rrset) - $(use_enable geoip) - $(use_with test cmocka) - $(use_with geoip maxminddb) - $(use_with gssapi) - $(use_with idn libidn2) - $(use_with jemalloc) - $(use_with lmdb) - $(use_with xml libxml2) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # system tests ('emake test') require network configuration for IPs etc - # so we run the unit tests instead. - CI=1 emake unit V=1 - - # libtest is an internal test helper library, it has no tests, - # so suppress the QA warning. - rm tests/libtest/test-suite.log || die -} - -src_install() { - default - - if use doc; then - docinto misc - dodoc -r doc/misc/ - - docinto html - dodoc -r doc/arm/ - - docinto dnssec-guide - dodoc -r doc/dnssec-guide/ - - docinto contrib - dodoc contrib/scripts/nanny.pl - fi - - insinto /etc/bind - newins "${FILESDIR}"/named.conf-r9 named.conf - newins "${FILESDIR}"/named.conf.auth named.conf.auth - - newinitd "${FILESDIR}"/named.init-r15 named - newconfd "${FILESDIR}"/named.confd-r8 named - - newenvd "${FILESDIR}"/10bind.env 10bind - - find "${ED}"/usr/lib* -name '*.la' -delete || die - - # - # /var/bind - # - # These need to remain for now because CONFIG_PROTECT won't - # save them and we shipped configs for years containing references - # to them. - # - # ftp://ftp.rs.internic.net/domain/named.cache: - insinto /var/bind - newins "${FILESDIR}"/named.cache-r4 named.cache - # bug #450406 - dosym named.cache /var/bind/root.cache - # - insinto /var/bind/pri - newins "${FILESDIR}"/localhost.zone-r3 localhost.zone - - dosym -r /var/bind/pri /etc/bind/pri - dosym -r /var/bind/sec /etc/bind/sec - dosym -r /var/bind/dyn /etc/bind/dyn - keepdir /var/bind/{pri,sec,dyn} /var/log/named - - fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn} - fowners root:named /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0640 /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0750 /etc/bind /var/bind/pri - fperms 0770 /var/log/named /var/bind/{,sec,dyn} - - systemd_newunit "${FILESDIR}/named.service-r2" named.service - dotmpfiles "${FILESDIR}"/named.conf - exeinto /usr/libexec - doexe "${FILESDIR}/generate-rndc-key.sh" -} - -pkg_postinst() { - tmpfiles_process named.conf - - if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then - einfo "Generating rndc.key" - "${EPREFIX}"/usr/sbin/rndc-confgen -a || die - chown root:named "${EPREFIX}"/etc/bind/rndc.key || die - chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die - fi - - einfo - einfo "You can edit /etc/conf.d/named to customize named settings" - einfo - - einfo "If you'd like to run bind in a chroot AND this is a new" - einfo "install OR your bind doesn't already run in a chroot:" - einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named." - einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`" - einfo - - CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT}) - if [[ -n ${CHROOT} ]]; then - elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - elog "To enable the old behaviour (without using mount) uncomment the" - elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - elog "If you decide to use the new/default method, ensure to make backup" - elog "first and merge your existing configs/zones to /etc/bind and" - elog "/var/bind because bind will now mount the needed directories into" - elog "the chroot dir." - fi - - # show only when upgrading to 9.18 - if ver_replacing -lt 9.18; then - elog "As this is a major bind version upgrade, please read:" - elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" - elog "for differences in functionality." - elog "" - ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" - ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" - ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" - ewarn "to find the specified file. Best practice is to delete the offending lines that" - ewarn "reference named.cache file from your configuration." - fi -} - -pkg_config() { - CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) - CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) - CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) - - if [[ -z "${CHROOT}" ]]; then - eerror "This config script is designed to automate setting up" - eerror "a chrooted bind/named. To do so, please first uncomment" - eerror "and set the CHROOT variable in '/etc/conf.d/named'." - die "Unset CHROOT" - fi - - if [[ -d "${CHROOT}" ]]; then - ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - ewarn "To enable the old behaviour (without using mount) uncomment the" - ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - ewarn - ewarn "${CHROOT} already exists... some things might become overridden" - ewarn "press CTRL+C if you don't want to continue" - sleep 10 - fi - - echo; einfo "Setting up the chroot directory..." - - mkdir -m 0750 -p "${CHROOT}" || die - mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die - mkdir -m 0750 -p "${CHROOT}"/etc/bind || die - mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named} "${CHROOT}"/run/named/ || die - - chown root:named \ - "${CHROOT}" \ - "${CHROOT}"/var/{bind,log/named} \ - "${CHROOT}"/run/named/ \ - "${CHROOT}"/etc/bind \ - || die - - mknod "${CHROOT}"/dev/null c 1 3 || die - chmod 0666 "${CHROOT}"/dev/null || die - - mknod "${CHROOT}"/dev/zero c 1 5 || die - chmod 0666 "${CHROOT}"/dev/zero || die - - if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then - cp -a /etc/bind "${CHROOT}"/etc/ || die - cp -a /var/bind "${CHROOT}"/var/ || die - fi - - if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then - if use geoip; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die - elif use geoip2; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die - fi - fi - - elog "You may need to add the following line to your syslog-ng.conf:" - elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" -} diff --git a/net-dns/bind/bind-9.18.49.ebuild b/net-dns/bind/bind-9.18.49.ebuild deleted file mode 100644 index 27abe98df551..000000000000 --- a/net-dns/bind/bind-9.18.49.ebuild +++ /dev/null @@ -1,279 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit eapi9-ver systemd tmpfiles toolchain-funcs - -MY_PV="${PV/_p/-P}" -MY_PV="${MY_PV/_rc/rc}" - -DESCRIPTION="Berkeley Internet Name Domain - Name Server" -HOMEPAGE="https://www.isc.org/software/bind" -SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="MPL-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" -RESTRICT="!test? ( test )" - -DEPEND=" - acct-group/named - acct-user/named - dev-libs/json-c:= - >=dev-libs/libuv-1.37.0:= - virtual/zlib:= - dev-libs/openssl:=[-bindist(-)] - caps? ( >=sys-libs/libcap-2.1.0 ) - dnstap? ( - dev-libs/fstrm - dev-libs/protobuf-c - ) - doh? ( net-libs/nghttp2:= ) - geoip? ( dev-libs/libmaxminddb ) - gssapi? ( virtual/krb5 ) - idn? ( net-dns/libidn2 ) - jemalloc? ( dev-libs/jemalloc:= ) - lmdb? ( dev-db/lmdb ) - xml? ( dev-libs/libxml2:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-bind ) - sys-process/psmisc - !<net-dns/bind-tools-9.18.0 -" -# sphinx required for man-page and html creation -BDEPEND=" - dev-lang/perl - virtual/pkgconfig - doc? ( dev-python/sphinx ) - test? ( - dev-util/cmocka - ) -" - -src_prepare() { - default - - # Don't clobber our toolchain defaults - sed -i -e '/FORTIFY_SOURCE=/d' configure || die - - # Test is (notoriously) slow/resource intensive - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/isc/netmgr_test.c || die - - # Relies on -Wl,--wrap (bug #877741) - if tc-is-lto ; then - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die - fi -} - -src_configure() { - # configure automagically uses sphinx even if prebuilt man pages - # are available. Force fallback to prebuilt ones. - use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD= - - local myeconfargs=( - --prefix="${EPREFIX}"/usr - --sysconfdir="${EPREFIX}"/etc/bind - --localstatedir="${EPREFIX}"/var - --enable-full-report - --without-readline - --with-openssl="${ESYSROOT}"/usr - --with-json-c - --with-zlib - $(use_enable caps linux-caps) - --disable-dnsrps - $(use_enable dnstap) - $(use_enable doh) - $(use_with doh libnghttp2) - $(use_enable fixed-rrset) - $(use_enable geoip) - $(use_with test cmocka) - $(use_with geoip maxminddb) - $(use_with gssapi) - $(use_with idn libidn2) - $(use_with jemalloc) - $(use_with lmdb) - $(use_with xml libxml2) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # system tests ('emake test') require network configuration for IPs etc - # so we run the unit tests instead. - CI=1 emake unit V=1 - - # libtest is an internal test helper library, it has no tests, - # so suppress the QA warning. - rm tests/libtest/test-suite.log || die -} - -src_install() { - default - - if use doc; then - docinto misc - dodoc -r doc/misc/ - - docinto html - dodoc -r doc/arm/ - - docinto dnssec-guide - dodoc -r doc/dnssec-guide/ - - docinto contrib - dodoc contrib/scripts/nanny.pl - fi - - insinto /etc/bind - newins "${FILESDIR}"/named.conf-r9 named.conf - newins "${FILESDIR}"/named.conf.auth named.conf.auth - - newinitd "${FILESDIR}"/named.init-r15 named - newconfd "${FILESDIR}"/named.confd-r8 named - - newenvd "${FILESDIR}"/10bind.env 10bind - - find "${ED}"/usr/lib* -name '*.la' -delete || die - - # - # /var/bind - # - # These need to remain for now because CONFIG_PROTECT won't - # save them and we shipped configs for years containing references - # to them. - # - # ftp://ftp.rs.internic.net/domain/named.cache: - insinto /var/bind - newins "${FILESDIR}"/named.cache-r4 named.cache - # bug #450406 - dosym named.cache /var/bind/root.cache - # - insinto /var/bind/pri - newins "${FILESDIR}"/localhost.zone-r3 localhost.zone - - dosym -r /var/bind/pri /etc/bind/pri - dosym -r /var/bind/sec /etc/bind/sec - dosym -r /var/bind/dyn /etc/bind/dyn - keepdir /var/bind/{pri,sec,dyn} /var/log/named - - fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn} - fowners root:named /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0640 /etc/bind/{bind.keys,named.conf,named.conf.auth} - fperms 0750 /etc/bind /var/bind/pri - fperms 0770 /var/log/named /var/bind/{,sec,dyn} - - systemd_newunit "${FILESDIR}/named.service-r2" named.service - dotmpfiles "${FILESDIR}"/named.conf - exeinto /usr/libexec - doexe "${FILESDIR}/generate-rndc-key.sh" -} - -pkg_postinst() { - tmpfiles_process named.conf - - if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then - einfo "Generating rndc.key" - "${EPREFIX}"/usr/sbin/rndc-confgen -a || die - chown root:named "${EPREFIX}"/etc/bind/rndc.key || die - chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die - fi - - einfo - einfo "You can edit /etc/conf.d/named to customize named settings" - einfo - - einfo "If you'd like to run bind in a chroot AND this is a new" - einfo "install OR your bind doesn't already run in a chroot:" - einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named." - einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`" - einfo - - CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT}) - if [[ -n ${CHROOT} ]]; then - elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - elog "To enable the old behaviour (without using mount) uncomment the" - elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - elog "If you decide to use the new/default method, ensure to make backup" - elog "first and merge your existing configs/zones to /etc/bind and" - elog "/var/bind because bind will now mount the needed directories into" - elog "the chroot dir." - fi - - # show only when upgrading to 9.18 - if ver_replacing -lt 9.18; then - elog "As this is a major bind version upgrade, please read:" - elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" - elog "for differences in functionality." - elog "" - ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" - ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" - ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" - ewarn "to find the specified file. Best practice is to delete the offending lines that" - ewarn "reference named.cache file from your configuration." - fi -} - -pkg_config() { - CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) - CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) - CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) - - if [[ -z "${CHROOT}" ]]; then - eerror "This config script is designed to automate setting up" - eerror "a chrooted bind/named. To do so, please first uncomment" - eerror "and set the CHROOT variable in '/etc/conf.d/named'." - die "Unset CHROOT" - fi - - if [[ -d "${CHROOT}" ]]; then - ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - ewarn "To enable the old behaviour (without using mount) uncomment the" - ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - ewarn - ewarn "${CHROOT} already exists... some things might become overridden" - ewarn "press CTRL+C if you don't want to continue" - sleep 10 - fi - - echo; einfo "Setting up the chroot directory..." - - mkdir -m 0750 -p "${CHROOT}" || die - mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die - mkdir -m 0750 -p "${CHROOT}"/etc/bind || die - mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named} "${CHROOT}"/run/named/ || die - - chown root:named \ - "${CHROOT}" \ - "${CHROOT}"/var/{bind,log/named} \ - "${CHROOT}"/run/named/ \ - "${CHROOT}"/etc/bind \ - || die - - mknod "${CHROOT}"/dev/null c 1 3 || die - chmod 0666 "${CHROOT}"/dev/null || die - - mknod "${CHROOT}"/dev/zero c 1 5 || die - chmod 0666 "${CHROOT}"/dev/zero || die - - if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then - cp -a /etc/bind "${CHROOT}"/etc/ || die - cp -a /var/bind "${CHROOT}"/var/ || die - fi - - if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then - if use geoip; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die - elif use geoip2; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die - fi - fi - - elog "You may need to add the following line to your syslog-ng.conf:" - elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" -} diff --git a/net-dns/bind/bind-9.20.21.ebuild b/net-dns/bind/bind-9.20.21.ebuild deleted file mode 100644 index 5f693e5bfb3c..000000000000 --- a/net-dns/bind/bind-9.20.21.ebuild +++ /dev/null @@ -1,285 +0,0 @@ -# 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/isc.asc -inherit eapi9-ver systemd tmpfiles toolchain-funcs verify-sig - -MY_PV="${PV/_p/-P}" -MY_PV="${MY_PV/_rc/rc}" - -DESCRIPTION="Berkeley Internet Name Domain - Name Server" -HOMEPAGE="https://www.isc.org/bind/" -SRC_URI=" - https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz - verify-sig? ( https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz.asc ) -" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="MPL-2.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" -RESTRICT="!test? ( test )" - -DEPEND=" - acct-group/named - acct-user/named - dev-libs/json-c:= - dev-libs/userspace-rcu:= - >=dev-libs/libuv-1.37.0:= - virtual/zlib:= - dev-libs/openssl:=[-bindist(-)] - >=sys-libs/libcap-2.1.0 - dnstap? ( - dev-libs/fstrm - dev-libs/protobuf-c - ) - doh? ( net-libs/nghttp2:= ) - geoip? ( dev-libs/libmaxminddb ) - gssapi? ( virtual/krb5 ) - idn? ( net-dns/libidn2 ) - jemalloc? ( dev-libs/jemalloc:= ) - lmdb? ( dev-db/lmdb ) - xml? ( dev-libs/libxml2:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-bind ) - sys-process/psmisc - !<net-dns/bind-tools-9.18.0 -" -# sphinx required for man-page and html creation -BDEPEND=" - dev-lang/perl - virtual/pkgconfig - doc? ( dev-python/sphinx ) - test? ( dev-util/cmocka ) - systemtap? ( dev-debug/systemtap ) - verify-sig? ( sec-keys/openpgp-keys-isc ) -" - -src_prepare() { - default - - # Don't clobber our toolchain defaults - sed -i -e '/FORTIFY_SOURCE=/d' configure || die - - # Relies on -Wl,--wrap (bug #877741) - if tc-is-lto ; then - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die - fi -} - -src_configure() { - # configure automagically uses sphinx even if prebuilt man pages - # are available. Force fallback to prebuilt ones. - use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD= - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - local myeconfargs=( - --prefix="${EPREFIX}"/usr - --sysconfdir="${EPREFIX}"/etc/bind - --localstatedir="${EPREFIX}"/var - --enable-full-report - --without-readline - --with-openssl="${ESYSROOT}"/usr - --with-json-c - --with-zlib - --disable-dnsrps - $(use_enable dnstap) - $(use_enable doh) - $(use_with doh libnghttp2) - $(use_enable geoip) - $(use_enable systemtap tracing) - $(use_with test cmocka) - $(use_with geoip maxminddb) - $(use_with gssapi) - $(use_with idn libidn2) - $(use_with jemalloc) - $(use_with lmdb) - $(use_with xml libxml2) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # system tests ('emake test') require network configuration for IPs etc - # so we run the unit tests instead. - CI=1 emake unit V=1 - - # libtest is an internal test helper library, it has no tests, - # so suppress the QA warning. - rm tests/libtest/test-suite.log || die -} - -src_install() { - default - - if use doc; then - docinto misc - dodoc -r doc/misc/ - - docinto html - dodoc -r doc/arm/ - - docinto dnssec-guide - dodoc -r doc/dnssec-guide/ - - docinto contrib - dodoc contrib/scripts/nanny.pl - fi - - insinto /etc/bind - newins "${FILESDIR}"/named.conf-r9 named.conf - newins "${FILESDIR}"/named.conf.auth named.conf.auth - - newinitd "${FILESDIR}"/named.init-r15 named - newconfd "${FILESDIR}"/named.confd-r8 named - - newenvd "${FILESDIR}"/10bind.env 10bind - - find "${ED}"/usr/lib* -name '*.la' -delete || die - - # - # /var/bind - # - # These need to remain for now because CONFIG_PROTECT won't - # save them and we shipped configs for years containing references - # to them. - # - # ftp://ftp.rs.internic.net/domain/named.cache: - insinto /var/bind - newins "${FILESDIR}"/named.cache-r4 named.cache - # bug #450406 - dosym named.cache /var/bind/root.cache - # - insinto /var/bind/pri - newins "${FILESDIR}"/localhost.zone-r3 localhost.zone - - dosym -r /var/bind/pri /etc/bind/pri - dosym -r /var/bind/sec /etc/bind/sec - dosym -r /var/bind/dyn /etc/bind/dyn - keepdir /var/bind/{pri,sec,dyn} /var/log/named - - fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn} - fowners root:named /etc/bind/{named.conf,named.conf.auth} - fperms 0640 /etc/bind/{named.conf,named.conf.auth} - fperms 0750 /etc/bind /var/bind/pri - fperms 0770 /var/log/named /var/bind/{,sec,dyn} - - systemd_newunit "${FILESDIR}/named.service-r2" named.service - dotmpfiles "${FILESDIR}"/named.conf - exeinto /usr/libexec - doexe "${FILESDIR}/generate-rndc-key.sh" -} - -pkg_postinst() { - tmpfiles_process named.conf - - if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then - einfo "Generating rndc.key" - "${EPREFIX}"/usr/sbin/rndc-confgen -a || die - chown root:named "${EPREFIX}"/etc/bind/rndc.key || die - chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die - fi - - einfo - einfo "You can edit /etc/conf.d/named to customize named settings" - einfo - - einfo "If you'd like to run bind in a chroot AND this is a new" - einfo "install OR your bind doesn't already run in a chroot:" - einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named." - einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`" - einfo - - CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT}) - if [[ -n ${CHROOT} ]]; then - elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - elog "To enable the old behaviour (without using mount) uncomment the" - elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - elog "If you decide to use the new/default method, ensure to make backup" - elog "first and merge your existing configs/zones to /etc/bind and" - elog "/var/bind because bind will now mount the needed directories into" - elog "the chroot dir." - fi - - # show only when upgrading to 9.18 - if ver_replacing -lt 9.18; then - elog "As this is a major bind version upgrade, please read:" - elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" - elog "for differences in functionality." - elog "" - ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" - ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" - ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" - ewarn "to find the specified file. Best practice is to delete the offending lines that" - ewarn "reference named.cache file from your configuration." - fi -} - -pkg_config() { - CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) - CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) - CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) - - if [[ -z "${CHROOT}" ]]; then - eerror "This config script is designed to automate setting up" - eerror "a chrooted bind/named. To do so, please first uncomment" - eerror "and set the CHROOT variable in '/etc/conf.d/named'." - die "Unset CHROOT" - fi - - if [[ -d "${CHROOT}" ]]; then - ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - ewarn "To enable the old behaviour (without using mount) uncomment the" - ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - ewarn - ewarn "${CHROOT} already exists... some things might become overridden" - ewarn "press CTRL+C if you don't want to continue" - sleep 10 - fi - - echo; einfo "Setting up the chroot directory..." - - mkdir -m 0750 -p "${CHROOT}" || die - mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die - mkdir -m 0750 -p "${CHROOT}"/etc/bind || die - mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named,run/named} "${CHROOT}"/run/named/ || die - - chown root:named \ - "${CHROOT}" \ - "${CHROOT}"/var/{bind,log/named,run/named} \ - "${CHROOT}"/run/named/ \ - "${CHROOT}"/etc/bind \ - || die - - mknod "${CHROOT}"/dev/null c 1 3 || die - chmod 0666 "${CHROOT}"/dev/null || die - - mknod "${CHROOT}"/dev/zero c 1 5 || die - chmod 0666 "${CHROOT}"/dev/zero || die - - if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then - cp -a /etc/bind "${CHROOT}"/etc/ || die - cp -a /var/bind "${CHROOT}"/var/ || die - fi - - if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then - if use geoip; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die - elif use geoip2; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die - fi - fi - - elog "You may need to add the following line to your syslog-ng.conf:" - elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" -} diff --git a/net-dns/bind/bind-9.20.22.ebuild b/net-dns/bind/bind-9.20.22.ebuild deleted file mode 100644 index 5f693e5bfb3c..000000000000 --- a/net-dns/bind/bind-9.20.22.ebuild +++ /dev/null @@ -1,285 +0,0 @@ -# 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/isc.asc -inherit eapi9-ver systemd tmpfiles toolchain-funcs verify-sig - -MY_PV="${PV/_p/-P}" -MY_PV="${MY_PV/_rc/rc}" - -DESCRIPTION="Berkeley Internet Name Domain - Name Server" -HOMEPAGE="https://www.isc.org/bind/" -SRC_URI=" - https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz - verify-sig? ( https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz.asc ) -" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="MPL-2.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" -RESTRICT="!test? ( test )" - -DEPEND=" - acct-group/named - acct-user/named - dev-libs/json-c:= - dev-libs/userspace-rcu:= - >=dev-libs/libuv-1.37.0:= - virtual/zlib:= - dev-libs/openssl:=[-bindist(-)] - >=sys-libs/libcap-2.1.0 - dnstap? ( - dev-libs/fstrm - dev-libs/protobuf-c - ) - doh? ( net-libs/nghttp2:= ) - geoip? ( dev-libs/libmaxminddb ) - gssapi? ( virtual/krb5 ) - idn? ( net-dns/libidn2 ) - jemalloc? ( dev-libs/jemalloc:= ) - lmdb? ( dev-db/lmdb ) - xml? ( dev-libs/libxml2:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-bind ) - sys-process/psmisc - !<net-dns/bind-tools-9.18.0 -" -# sphinx required for man-page and html creation -BDEPEND=" - dev-lang/perl - virtual/pkgconfig - doc? ( dev-python/sphinx ) - test? ( dev-util/cmocka ) - systemtap? ( dev-debug/systemtap ) - verify-sig? ( sec-keys/openpgp-keys-isc ) -" - -src_prepare() { - default - - # Don't clobber our toolchain defaults - sed -i -e '/FORTIFY_SOURCE=/d' configure || die - - # Relies on -Wl,--wrap (bug #877741) - if tc-is-lto ; then - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die - fi -} - -src_configure() { - # configure automagically uses sphinx even if prebuilt man pages - # are available. Force fallback to prebuilt ones. - use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD= - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - local myeconfargs=( - --prefix="${EPREFIX}"/usr - --sysconfdir="${EPREFIX}"/etc/bind - --localstatedir="${EPREFIX}"/var - --enable-full-report - --without-readline - --with-openssl="${ESYSROOT}"/usr - --with-json-c - --with-zlib - --disable-dnsrps - $(use_enable dnstap) - $(use_enable doh) - $(use_with doh libnghttp2) - $(use_enable geoip) - $(use_enable systemtap tracing) - $(use_with test cmocka) - $(use_with geoip maxminddb) - $(use_with gssapi) - $(use_with idn libidn2) - $(use_with jemalloc) - $(use_with lmdb) - $(use_with xml libxml2) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # system tests ('emake test') require network configuration for IPs etc - # so we run the unit tests instead. - CI=1 emake unit V=1 - - # libtest is an internal test helper library, it has no tests, - # so suppress the QA warning. - rm tests/libtest/test-suite.log || die -} - -src_install() { - default - - if use doc; then - docinto misc - dodoc -r doc/misc/ - - docinto html - dodoc -r doc/arm/ - - docinto dnssec-guide - dodoc -r doc/dnssec-guide/ - - docinto contrib - dodoc contrib/scripts/nanny.pl - fi - - insinto /etc/bind - newins "${FILESDIR}"/named.conf-r9 named.conf - newins "${FILESDIR}"/named.conf.auth named.conf.auth - - newinitd "${FILESDIR}"/named.init-r15 named - newconfd "${FILESDIR}"/named.confd-r8 named - - newenvd "${FILESDIR}"/10bind.env 10bind - - find "${ED}"/usr/lib* -name '*.la' -delete || die - - # - # /var/bind - # - # These need to remain for now because CONFIG_PROTECT won't - # save them and we shipped configs for years containing references - # to them. - # - # ftp://ftp.rs.internic.net/domain/named.cache: - insinto /var/bind - newins "${FILESDIR}"/named.cache-r4 named.cache - # bug #450406 - dosym named.cache /var/bind/root.cache - # - insinto /var/bind/pri - newins "${FILESDIR}"/localhost.zone-r3 localhost.zone - - dosym -r /var/bind/pri /etc/bind/pri - dosym -r /var/bind/sec /etc/bind/sec - dosym -r /var/bind/dyn /etc/bind/dyn - keepdir /var/bind/{pri,sec,dyn} /var/log/named - - fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn} - fowners root:named /etc/bind/{named.conf,named.conf.auth} - fperms 0640 /etc/bind/{named.conf,named.conf.auth} - fperms 0750 /etc/bind /var/bind/pri - fperms 0770 /var/log/named /var/bind/{,sec,dyn} - - systemd_newunit "${FILESDIR}/named.service-r2" named.service - dotmpfiles "${FILESDIR}"/named.conf - exeinto /usr/libexec - doexe "${FILESDIR}/generate-rndc-key.sh" -} - -pkg_postinst() { - tmpfiles_process named.conf - - if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then - einfo "Generating rndc.key" - "${EPREFIX}"/usr/sbin/rndc-confgen -a || die - chown root:named "${EPREFIX}"/etc/bind/rndc.key || die - chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die - fi - - einfo - einfo "You can edit /etc/conf.d/named to customize named settings" - einfo - - einfo "If you'd like to run bind in a chroot AND this is a new" - einfo "install OR your bind doesn't already run in a chroot:" - einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named." - einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`" - einfo - - CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT}) - if [[ -n ${CHROOT} ]]; then - elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - elog "To enable the old behaviour (without using mount) uncomment the" - elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - elog "If you decide to use the new/default method, ensure to make backup" - elog "first and merge your existing configs/zones to /etc/bind and" - elog "/var/bind because bind will now mount the needed directories into" - elog "the chroot dir." - fi - - # show only when upgrading to 9.18 - if ver_replacing -lt 9.18; then - elog "As this is a major bind version upgrade, please read:" - elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" - elog "for differences in functionality." - elog "" - ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" - ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" - ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" - ewarn "to find the specified file. Best practice is to delete the offending lines that" - ewarn "reference named.cache file from your configuration." - fi -} - -pkg_config() { - CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) - CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) - CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) - - if [[ -z "${CHROOT}" ]]; then - eerror "This config script is designed to automate setting up" - eerror "a chrooted bind/named. To do so, please first uncomment" - eerror "and set the CHROOT variable in '/etc/conf.d/named'." - die "Unset CHROOT" - fi - - if [[ -d "${CHROOT}" ]]; then - ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - ewarn "To enable the old behaviour (without using mount) uncomment the" - ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - ewarn - ewarn "${CHROOT} already exists... some things might become overridden" - ewarn "press CTRL+C if you don't want to continue" - sleep 10 - fi - - echo; einfo "Setting up the chroot directory..." - - mkdir -m 0750 -p "${CHROOT}" || die - mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die - mkdir -m 0750 -p "${CHROOT}"/etc/bind || die - mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named,run/named} "${CHROOT}"/run/named/ || die - - chown root:named \ - "${CHROOT}" \ - "${CHROOT}"/var/{bind,log/named,run/named} \ - "${CHROOT}"/run/named/ \ - "${CHROOT}"/etc/bind \ - || die - - mknod "${CHROOT}"/dev/null c 1 3 || die - chmod 0666 "${CHROOT}"/dev/null || die - - mknod "${CHROOT}"/dev/zero c 1 5 || die - chmod 0666 "${CHROOT}"/dev/zero || die - - if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then - cp -a /etc/bind "${CHROOT}"/etc/ || die - cp -a /var/bind "${CHROOT}"/var/ || die - fi - - if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then - if use geoip; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die - elif use geoip2; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die - fi - fi - - elog "You may need to add the following line to your syslog-ng.conf:" - elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" -} diff --git a/net-dns/bind/bind-9.20.23.ebuild b/net-dns/bind/bind-9.20.23.ebuild deleted file mode 100644 index a3a911b1342b..000000000000 --- a/net-dns/bind/bind-9.20.23.ebuild +++ /dev/null @@ -1,285 +0,0 @@ -# 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/isc.asc -inherit eapi9-ver systemd tmpfiles toolchain-funcs verify-sig - -MY_PV="${PV/_p/-P}" -MY_PV="${MY_PV/_rc/rc}" - -DESCRIPTION="Berkeley Internet Name Domain - Name Server" -HOMEPAGE="https://www.isc.org/bind/" -SRC_URI=" - https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz - verify-sig? ( https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz.asc ) -" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="MPL-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" -RESTRICT="!test? ( test )" - -DEPEND=" - acct-group/named - acct-user/named - dev-libs/json-c:= - dev-libs/userspace-rcu:= - >=dev-libs/libuv-1.37.0:= - virtual/zlib:= - dev-libs/openssl:=[-bindist(-)] - >=sys-libs/libcap-2.1.0 - dnstap? ( - dev-libs/fstrm - dev-libs/protobuf-c - ) - doh? ( net-libs/nghttp2:= ) - geoip? ( dev-libs/libmaxminddb ) - gssapi? ( virtual/krb5 ) - idn? ( net-dns/libidn2 ) - jemalloc? ( dev-libs/jemalloc:= ) - lmdb? ( dev-db/lmdb ) - xml? ( dev-libs/libxml2:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-bind ) - sys-process/psmisc - !<net-dns/bind-tools-9.18.0 -" -# sphinx required for man-page and html creation -BDEPEND=" - dev-lang/perl - virtual/pkgconfig - doc? ( dev-python/sphinx ) - test? ( dev-util/cmocka ) - systemtap? ( dev-debug/systemtap ) - verify-sig? ( sec-keys/openpgp-keys-isc ) -" - -src_prepare() { - default - - # Don't clobber our toolchain defaults - sed -i -e '/FORTIFY_SOURCE=/d' configure || die - - # Relies on -Wl,--wrap (bug #877741) - if tc-is-lto ; then - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die - fi -} - -src_configure() { - # configure automagically uses sphinx even if prebuilt man pages - # are available. Force fallback to prebuilt ones. - use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD= - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - local myeconfargs=( - --prefix="${EPREFIX}"/usr - --sysconfdir="${EPREFIX}"/etc/bind - --localstatedir="${EPREFIX}"/var - --enable-full-report - --without-readline - --with-openssl="${ESYSROOT}"/usr - --with-json-c - --with-zlib - --disable-dnsrps - $(use_enable dnstap) - $(use_enable doh) - $(use_with doh libnghttp2) - $(use_enable geoip) - $(use_enable systemtap tracing) - $(use_with test cmocka) - $(use_with geoip maxminddb) - $(use_with gssapi) - $(use_with idn libidn2) - $(use_with jemalloc) - $(use_with lmdb) - $(use_with xml libxml2) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # system tests ('emake test') require network configuration for IPs etc - # so we run the unit tests instead. - CI=1 emake unit V=1 - - # libtest is an internal test helper library, it has no tests, - # so suppress the QA warning. - rm tests/libtest/test-suite.log || die -} - -src_install() { - default - - if use doc; then - docinto misc - dodoc -r doc/misc/ - - docinto html - dodoc -r doc/arm/ - - docinto dnssec-guide - dodoc -r doc/dnssec-guide/ - - docinto contrib - dodoc contrib/scripts/nanny.pl - fi - - insinto /etc/bind - newins "${FILESDIR}"/named.conf-r9 named.conf - newins "${FILESDIR}"/named.conf.auth named.conf.auth - - newinitd "${FILESDIR}"/named.init-r15 named - newconfd "${FILESDIR}"/named.confd-r8 named - - newenvd "${FILESDIR}"/10bind.env 10bind - - find "${ED}"/usr/lib* -name '*.la' -delete || die - - # - # /var/bind - # - # These need to remain for now because CONFIG_PROTECT won't - # save them and we shipped configs for years containing references - # to them. - # - # ftp://ftp.rs.internic.net/domain/named.cache: - insinto /var/bind - newins "${FILESDIR}"/named.cache-r4 named.cache - # bug #450406 - dosym named.cache /var/bind/root.cache - # - insinto /var/bind/pri - newins "${FILESDIR}"/localhost.zone-r3 localhost.zone - - dosym -r /var/bind/pri /etc/bind/pri - dosym -r /var/bind/sec /etc/bind/sec - dosym -r /var/bind/dyn /etc/bind/dyn - keepdir /var/bind/{pri,sec,dyn} /var/log/named - - fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn} - fowners root:named /etc/bind/{named.conf,named.conf.auth} - fperms 0640 /etc/bind/{named.conf,named.conf.auth} - fperms 0750 /etc/bind /var/bind/pri - fperms 0770 /var/log/named /var/bind/{,sec,dyn} - - systemd_newunit "${FILESDIR}/named.service-r2" named.service - dotmpfiles "${FILESDIR}"/named.conf - exeinto /usr/libexec - doexe "${FILESDIR}/generate-rndc-key.sh" -} - -pkg_postinst() { - tmpfiles_process named.conf - - if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then - einfo "Generating rndc.key" - "${EPREFIX}"/usr/sbin/rndc-confgen -a || die - chown root:named "${EPREFIX}"/etc/bind/rndc.key || die - chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die - fi - - einfo - einfo "You can edit /etc/conf.d/named to customize named settings" - einfo - - einfo "If you'd like to run bind in a chroot AND this is a new" - einfo "install OR your bind doesn't already run in a chroot:" - einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named." - einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`" - einfo - - CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT}) - if [[ -n ${CHROOT} ]]; then - elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - elog "To enable the old behaviour (without using mount) uncomment the" - elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - elog "If you decide to use the new/default method, ensure to make backup" - elog "first and merge your existing configs/zones to /etc/bind and" - elog "/var/bind because bind will now mount the needed directories into" - elog "the chroot dir." - fi - - # show only when upgrading to 9.18 - if ver_replacing -lt 9.18; then - elog "As this is a major bind version upgrade, please read:" - elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" - elog "for differences in functionality." - elog "" - ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" - ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" - ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" - ewarn "to find the specified file. Best practice is to delete the offending lines that" - ewarn "reference named.cache file from your configuration." - fi -} - -pkg_config() { - CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) - CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) - CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) - - if [[ -z "${CHROOT}" ]]; then - eerror "This config script is designed to automate setting up" - eerror "a chrooted bind/named. To do so, please first uncomment" - eerror "and set the CHROOT variable in '/etc/conf.d/named'." - die "Unset CHROOT" - fi - - if [[ -d "${CHROOT}" ]]; then - ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - ewarn "To enable the old behaviour (without using mount) uncomment the" - ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - ewarn - ewarn "${CHROOT} already exists... some things might become overridden" - ewarn "press CTRL+C if you don't want to continue" - sleep 10 - fi - - echo; einfo "Setting up the chroot directory..." - - mkdir -m 0750 -p "${CHROOT}" || die - mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die - mkdir -m 0750 -p "${CHROOT}"/etc/bind || die - mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named,run/named} "${CHROOT}"/run/named/ || die - - chown root:named \ - "${CHROOT}" \ - "${CHROOT}"/var/{bind,log/named,run/named} \ - "${CHROOT}"/run/named/ \ - "${CHROOT}"/etc/bind \ - || die - - mknod "${CHROOT}"/dev/null c 1 3 || die - chmod 0666 "${CHROOT}"/dev/null || die - - mknod "${CHROOT}"/dev/zero c 1 5 || die - chmod 0666 "${CHROOT}"/dev/zero || die - - if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then - cp -a /etc/bind "${CHROOT}"/etc/ || die - cp -a /var/bind "${CHROOT}"/var/ || die - fi - - if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then - if use geoip; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die - elif use geoip2; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die - fi - fi - - elog "You may need to add the following line to your syslog-ng.conf:" - elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" -} diff --git a/net-dns/bind/bind-9.20.26.ebuild b/net-dns/bind/bind-9.20.26.ebuild deleted file mode 100644 index e211f04725ec..000000000000 --- a/net-dns/bind/bind-9.20.26.ebuild +++ /dev/null @@ -1,285 +0,0 @@ -# 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/isc.asc -inherit eapi9-ver systemd tmpfiles toolchain-funcs verify-sig - -MY_PV="${PV/_p/-P}" -MY_PV="${MY_PV/_rc/rc}" - -DESCRIPTION="Berkeley Internet Name Domain - Name Server" -HOMEPAGE="https://www.isc.org/bind/" -SRC_URI=" - https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz - verify-sig? ( https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz.asc ) -" -S="${WORKDIR}/${PN}-${MY_PV}" - -LICENSE="MPL-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" -RESTRICT="!test? ( test )" - -DEPEND=" - acct-group/named - acct-user/named - dev-libs/json-c:= - dev-libs/userspace-rcu:= - >=dev-libs/libuv-1.37.0:= - virtual/zlib:= - dev-libs/openssl:=[-bindist(-)] - >=sys-libs/libcap-2.1.0 - dnstap? ( - dev-libs/fstrm - dev-libs/protobuf-c - ) - doh? ( net-libs/nghttp2:= ) - geoip? ( dev-libs/libmaxminddb ) - gssapi? ( virtual/krb5 ) - idn? ( net-dns/libidn2 ) - jemalloc? ( dev-libs/jemalloc:= ) - lmdb? ( dev-db/lmdb ) - xml? ( dev-libs/libxml2:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-bind ) - sys-process/psmisc - !<net-dns/bind-tools-9.18.0 -" -# sphinx required for man-page and html creation -BDEPEND=" - dev-lang/perl - virtual/pkgconfig - doc? ( dev-python/sphinx ) - test? ( dev-util/cmocka ) - systemtap? ( dev-debug/systemtap ) - verify-sig? ( sec-keys/openpgp-keys-isc ) -" - -src_prepare() { - default - - # Don't clobber our toolchain defaults - sed -i -e '/FORTIFY_SOURCE=/d' configure || die - - # Relies on -Wl,--wrap (bug #877741) - if tc-is-lto ; then - sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die - fi -} - -src_configure() { - # configure automagically uses sphinx even if prebuilt man pages - # are available. Force fallback to prebuilt ones. - use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD= - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - local myeconfargs=( - --prefix="${EPREFIX}"/usr - --sysconfdir="${EPREFIX}"/etc/bind - --localstatedir="${EPREFIX}"/var - --enable-full-report - --without-readline - --with-openssl="${ESYSROOT}"/usr - --with-json-c - --with-zlib - --disable-dnsrps - $(use_enable dnstap) - $(use_enable doh) - $(use_with doh libnghttp2) - $(use_enable geoip) - $(use_enable systemtap tracing) - $(use_with test cmocka) - $(use_with geoip maxminddb) - $(use_with gssapi) - $(use_with idn libidn2) - $(use_with jemalloc) - $(use_with lmdb) - $(use_with xml libxml2) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # system tests ('emake test') require network configuration for IPs etc - # so we run the unit tests instead. - CI=1 emake unit V=1 - - # libtest is an internal test helper library, it has no tests, - # so suppress the QA warning. - rm tests/libtest/test-suite.log || die -} - -src_install() { - default - - if use doc; then - docinto misc - dodoc -r doc/misc/ - - docinto html - dodoc -r doc/arm/ - - docinto dnssec-guide - dodoc -r doc/dnssec-guide/ - - docinto contrib - dodoc contrib/scripts/nanny.pl - fi - - insinto /etc/bind - newins "${FILESDIR}"/named.conf-r9 named.conf - newins "${FILESDIR}"/named.conf.auth named.conf.auth - - newinitd "${FILESDIR}"/named.init-r15 named - newconfd "${FILESDIR}"/named.confd-r8 named - - newenvd "${FILESDIR}"/10bind.env 10bind - - find "${ED}"/usr/lib* -name '*.la' -delete || die - - # - # /var/bind - # - # These need to remain for now because CONFIG_PROTECT won't - # save them and we shipped configs for years containing references - # to them. - # - # ftp://ftp.rs.internic.net/domain/named.cache: - insinto /var/bind - newins "${FILESDIR}"/named.cache-r4 named.cache - # bug #450406 - dosym named.cache /var/bind/root.cache - # - insinto /var/bind/pri - newins "${FILESDIR}"/localhost.zone-r3 localhost.zone - - dosym -r /var/bind/pri /etc/bind/pri - dosym -r /var/bind/sec /etc/bind/sec - dosym -r /var/bind/dyn /etc/bind/dyn - keepdir /var/bind/{pri,sec,dyn} /var/log/named - - fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn} - fowners root:named /etc/bind/{named.conf,named.conf.auth} - fperms 0640 /etc/bind/{named.conf,named.conf.auth} - fperms 0750 /etc/bind /var/bind/pri - fperms 0770 /var/log/named /var/bind/{,sec,dyn} - - systemd_newunit "${FILESDIR}/named.service-r2" named.service - dotmpfiles "${FILESDIR}"/named.conf - exeinto /usr/libexec - doexe "${FILESDIR}/generate-rndc-key.sh" -} - -pkg_postinst() { - tmpfiles_process named.conf - - if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then - einfo "Generating rndc.key" - "${EPREFIX}"/usr/sbin/rndc-confgen -a || die - chown root:named "${EPREFIX}"/etc/bind/rndc.key || die - chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die - fi - - einfo - einfo "You can edit /etc/conf.d/named to customize named settings" - einfo - - einfo "If you'd like to run bind in a chroot AND this is a new" - einfo "install OR your bind doesn't already run in a chroot:" - einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named." - einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`" - einfo - - CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT}) - if [[ -n ${CHROOT} ]]; then - elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - elog "To enable the old behaviour (without using mount) uncomment the" - elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - elog "If you decide to use the new/default method, ensure to make backup" - elog "first and merge your existing configs/zones to /etc/bind and" - elog "/var/bind because bind will now mount the needed directories into" - elog "the chroot dir." - fi - - # show only when upgrading to 9.18 - if ver_replacing -lt 9.18; then - elog "As this is a major bind version upgrade, please read:" - elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" - elog "for differences in functionality." - elog "" - ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" - ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" - ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" - ewarn "to find the specified file. Best practice is to delete the offending lines that" - ewarn "reference named.cache file from your configuration." - fi -} - -pkg_config() { - CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) - CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) - CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) - - if [[ -z "${CHROOT}" ]]; then - eerror "This config script is designed to automate setting up" - eerror "a chrooted bind/named. To do so, please first uncomment" - eerror "and set the CHROOT variable in '/etc/conf.d/named'." - die "Unset CHROOT" - fi - - if [[ -d "${CHROOT}" ]]; then - ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" - ewarn "To enable the old behaviour (without using mount) uncomment the" - ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." - ewarn - ewarn "${CHROOT} already exists... some things might become overridden" - ewarn "press CTRL+C if you don't want to continue" - sleep 10 - fi - - echo; einfo "Setting up the chroot directory..." - - mkdir -m 0750 -p "${CHROOT}" || die - mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die - mkdir -m 0750 -p "${CHROOT}"/etc/bind || die - mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named,run/named} "${CHROOT}"/run/named/ || die - - chown root:named \ - "${CHROOT}" \ - "${CHROOT}"/var/{bind,log/named,run/named} \ - "${CHROOT}"/run/named/ \ - "${CHROOT}"/etc/bind \ - || die - - mknod "${CHROOT}"/dev/null c 1 3 || die - chmod 0666 "${CHROOT}"/dev/null || die - - mknod "${CHROOT}"/dev/zero c 1 5 || die - chmod 0666 "${CHROOT}"/dev/zero || die - - if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then - cp -a /etc/bind "${CHROOT}"/etc/ || die - cp -a /var/bind "${CHROOT}"/var/ || die - fi - - if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then - if use geoip; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die - elif use geoip2; then - mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die - fi - fi - - elog "You may need to add the following line to your syslog-ng.conf:" - elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" -} diff --git a/net-dns/bind/bind-9.20.27.ebuild b/net-dns/bind/bind-9.20.27.ebuild index 5f693e5bfb3c..05d9bc344f59 100644 --- a/net-dns/bind/bind-9.20.27.ebuild +++ b/net-dns/bind/bind-9.20.27.ebuild @@ -4,7 +4,7 @@ EAPI=8 VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/isc.asc -inherit eapi9-ver systemd tmpfiles toolchain-funcs verify-sig +inherit autotools eapi9-ver systemd tmpfiles toolchain-funcs verify-sig MY_PV="${PV/_p/-P}" MY_PV="${MY_PV/_rc/rc}" @@ -19,7 +19,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" RESTRICT="!test? ( test )" @@ -62,6 +62,7 @@ BDEPEND=" src_prepare() { default + eautoreconf # Don't clobber our toolchain defaults sed -i -e '/FORTIFY_SOURCE=/d' configure || die diff --git a/net-dns/bind/bind-9.20.24.ebuild b/net-dns/bind/bind-9.20.29.ebuild index 5f693e5bfb3c..127a82589b3b 100644 --- a/net-dns/bind/bind-9.20.24.ebuild +++ b/net-dns/bind/bind-9.20.29.ebuild @@ -4,7 +4,7 @@ EAPI=8 VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/isc.asc -inherit eapi9-ver systemd tmpfiles toolchain-funcs verify-sig +inherit autotools eapi9-ver systemd tmpfiles toolchain-funcs verify-sig MY_PV="${PV/_p/-P}" MY_PV="${MY_PV/_rc/rc}" @@ -62,6 +62,7 @@ BDEPEND=" src_prepare() { default + eautoreconf # Don't clobber our toolchain defaults sed -i -e '/FORTIFY_SOURCE=/d' configure || die diff --git a/net-dns/dnsdist/Manifest b/net-dns/dnsdist/Manifest index c3e98d50adfb..cd7a80fbdfe7 100644 --- a/net-dns/dnsdist/Manifest +++ b/net-dns/dnsdist/Manifest @@ -1,3 +1,5 @@ DIST dnsdist-2.1.1.tar.xz 2369660 BLAKE2B 88607ab943a22131b9e9f7321a5576ccda2d773637176cf72e04b0007dd4f812a806d6369bdcaf3f2f74e89c05988e7cf5b98886742fb927cd1b877243cc258b SHA512 597057c587959dd1b5cf98c7e146e1b3188ae4298c4b319b26712ee846248a70a34b8f22d39c8b97c92e4d3bf51a0d14c450342e0b334b8e5ed98ebd132eff2d +DIST dnsdist-2.1.2.tar.xz 2371820 BLAKE2B bd125e4c2d1dcb731bd503f73b387ab9ea7817318b4e00f7f0f049c1add593ee1d6e7c4df94a56432992da1d0286c170f624c799bfece10896cbf83620e2a5ca SHA512 c64366e444c67c356b106a10da444dd82869b32cb5ed1671e402e5c5912cadb337889665ec359c44bfe3b55e7cf6e63d85f3d9a51b60b06c8e19f8570a803d4e DIST dnsdist-rust-2.1.1-crates.tar.xz 3275568 BLAKE2B 1185b4c96fb0ec94e96333fea49b1bfee20384cf6515acc9dc95056ae7a759933cbe885175766c2239f2d86524af0df264a92256f7853a6b16c01e257267ad1b SHA512 10221f627bf6733c03882f3f050c2fa40b5d601c6744672d4f2903d863dfa6378b9582feaaa11cdc10b6ca3900db2805bccd84e3bc69a5623eaa24c5d4569047 -DIST dnsdist-rust-9999-630a017b-crates.tar.xz 3275568 BLAKE2B 1185b4c96fb0ec94e96333fea49b1bfee20384cf6515acc9dc95056ae7a759933cbe885175766c2239f2d86524af0df264a92256f7853a6b16c01e257267ad1b SHA512 10221f627bf6733c03882f3f050c2fa40b5d601c6744672d4f2903d863dfa6378b9582feaaa11cdc10b6ca3900db2805bccd84e3bc69a5623eaa24c5d4569047 +DIST dnsdist-rust-2.1.2-crates.tar.xz 3293064 BLAKE2B 31dd3b860f1762e9c2924c4e824e5e9d28f225e083225909f5a563cdadd00adf6b923a0b54016180c6aa0db20921ce314f2621178c866ac2c8a271a4b582842a SHA512 c1beb4acfeb068e0486501d956861b65ffa1d71a12eab8dbf6e1638811590ff0994bed783759f3698a1ba9d59b2a61d3b7558d5722b73504dd68a232940fc316 +DIST dnsdist-rust-9999-d7740dcd-crates.tar.xz 3314532 BLAKE2B ec60ea7a8c8ccde6ae6c973a6fa3233764d67761f2cb1204f7032433226b24e49f070d4bd86c947d2667bb4e23f3d05b00bd388fa139938651a4d323633c81a4 SHA512 2684e2a046fc3a256158a2d50f4a8437f712b8a543d1964973321b975dea60ef9b103b381e7b605536be7d7b4c033ceba397c3af27307db99048159fd55ba11a diff --git a/net-dns/dnsdist/dnsdist-2.1.2.ebuild b/net-dns/dnsdist/dnsdist-2.1.2.ebuild new file mode 100644 index 000000000000..9ee0ef93bb0c --- /dev/null +++ b/net-dns/dnsdist/dnsdist-2.1.2.ebuild @@ -0,0 +1,186 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-{1..4} luajit ) +PYTHON_COMPAT=( python3_{12..14} ) +RUST_MIN_VER="1.85.0" +RUST_OPTIONAL=1 + +inherit cargo flag-o-matic lua-single meson python-any-r1 toolchain-funcs + +DESCRIPTION="A highly DNS-, DoS- and abuse-aware loadbalancer" +HOMEPAGE="https://www.dnsdist.org/index.html" + +if [[ ${PV} == *9999* ]] ; then + EGIT_REPO_URI="https://github.com/PowerDNS/pdns" + EGIT_BRANCH="rel/dnsdist-2.1.x" + inherit git-r3 + # the first 8 digits of the sha256sum of the 9999 crates tarball + CRATES_HASH=630a017b + CRATES_PV="${PV}"-"${CRATES_HASH}" +else + SRC_URI="https://downloads.powerdns.com/releases/${P}.tar.xz" + KEYWORDS="~amd64 ~x86" + CRATES_PV="${PV}" +fi + +SRC_URI+=" + yaml? ( https://www.applied-asynchrony.com/distfiles/${PN}-rust-${CRATES_PV}-crates.tar.xz ) +" + +LICENSE="GPL-2" +SLOT="0" +IUSE="bpf cdb dnscrypt dnstap doh doh3 ipcipher ipcrypt lmdb quic regex snmp +ssl systemd test web xdp yaml" +RESTRICT="!test? ( test )" + +REQUIRED_USE="${LUA_REQUIRED_USE} + dnscrypt? ( ssl ) + doh? ( ssl ) + doh3? ( ssl quic ) + ipcipher? ( ssl ) + quic? ( ssl )" + +RDEPEND="acct-group/dnsdist + acct-user/dnsdist + bpf? ( dev-libs/libbpf:= ) + cdb? ( dev-db/tinycdb:= ) + sys-libs/libcap + dev-libs/libedit + dev-libs/libsodium:= + dnstap? ( dev-libs/fstrm ) + doh? ( net-libs/nghttp2:= ) + doh3? ( net-libs/quiche:= ) + lmdb? ( dev-db/lmdb:= ) + quic? ( net-libs/quiche ) + regex? ( dev-libs/re2:= ) + snmp? ( net-analyzer/net-snmp:= ) + ssl? ( dev-libs/openssl:= ) + systemd? ( sys-apps/systemd:0= ) + xdp? ( net-libs/xdp-tools ) + ${LUA_DEPS} +" + +DEPEND="${RDEPEND} + dev-libs/boost:= +" +BDEPEND="$(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]') + virtual/pkgconfig + yaml? ( ${RUST_DEPEND} ) +" + +# special requirements for live +if [[ ${PV} == *9999* ]] ; then + BDEPEND+=" dev-util/ragel" + S="${S}/pdns/dnsdistdist" +fi + +PATCHES=( + "${FILESDIR}"/2.1.0-comboaddress-missing-lua-methods.patch +) + +pkg_setup() { + lua-single_pkg_setup + python-any-r1_pkg_setup + use yaml && rust_pkg_setup +} + +python_check_deps() { + python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]" +} + +# git-r3 overrides automatic SRC_URI unpacking +src_unpack() { + default + + if [[ ${PV} == *9999* ]] ; then + git-r3_src_unpack + fi +} + +src_prepare() { + default + + # clean up duplicate file + rm -f README.md +} + +src_configure() { + # bug #822855 + append-lfs-flags + + # There is currently no reliable way to handle mixed C++/Rust + LTO + # correctly: https://bugs.gentoo.org/963128 + if use yaml && tc-is-lto ; then + ewarn "Disabling LTO because of mixed C++/Rust toolchains." + filter-lto + fi + + # some things can only be enabled/disabled by defines + ! use dnstap && append-cppflags -DDISABLE_PROTOBUF + ! use web && append-cppflags -DDISABLE_BUILTIN_HTML + + local emesonargs=( + --sysconfdir="${EPREFIX}/etc/dnsdist" + # always use libsodium + -Dlibsodium=enabled + -Dlua=${ELUA} + # never try to build man pages (virtualenv) + -Dman-pages=false + # never use gnutls (openssl only) + -Dtls-gnutls=disabled + $(meson_feature bpf ebpf) + $(meson_feature cdb) + $(meson_feature dnscrypt) + $(meson_feature dnstap) + $(meson_feature doh dns-over-https) + $(meson_feature doh nghttp2) + $(meson_feature doh3 dns-over-http3) + $(meson_feature ipcipher) + $(meson_feature ipcrypt ipcrypt2) + $(meson_feature lmdb) + $(meson_feature quic dns-over-quic) + $(meson_feature regex re2) + $(meson_feature snmp) + $(meson_feature ssl libcrypto) + $(meson_feature ssl tls-libssl) + $(meson_feature ssl dns-over-tls) + $(meson_feature systemd systemd-service) + $(meson_use test unit-tests) + $(meson_feature xdp xsk) + $(meson_feature yaml) + ) + + meson_src_configure +} + +# explicitly implement src_compile/test to override the +# otherwise automagic cargo_src_compile/test phases + +src_compile() { + cargo_gen_config + cargo_env meson_src_compile +} + +src_test() { + meson_src_test +} + +src_install() { + meson_src_install + + insinto /etc/dnsdist + doins "${FILESDIR}"/dnsdist.conf.example + + newconfd "${FILESDIR}"/dnsdist.confd ${PN} + newinitd "${FILESDIR}"/dnsdist.initd ${PN} +} + +pkg_postinst() { + elog "dnsdist provides multiple instances support. You can create more instances" + elog "by symlinking the dnsdist init script to another name." + elog + elog "The name must be in the format dnsdist.<suffix> and dnsdist will use the" + elog "/etc/dnsdist/dnsdist-<suffix>.conf configuration file instead of the default." +} diff --git a/net-dns/dnsdist/dnsdist-9999.ebuild b/net-dns/dnsdist/dnsdist-9999.ebuild index 60a1c20754ee..a2170af6c90b 100644 --- a/net-dns/dnsdist/dnsdist-9999.ebuild +++ b/net-dns/dnsdist/dnsdist-9999.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == *9999* ]] ; then EGIT_BRANCH="master" inherit git-r3 # the first 8 digits of the sha256sum of the 9999 crates tarball - CRATES_HASH=630a017b + CRATES_HASH=d7740dcd CRATES_PV="${PV}"-"${CRATES_HASH}" else SRC_URI="https://downloads.powerdns.com/releases/${P}.tar.xz" @@ -32,7 +32,7 @@ SRC_URI+=" LICENSE="GPL-2" SLOT="0" -IUSE="bpf cdb dnscrypt dnstap doh doh3 ipcipher ipcrypt lmdb quic regex snmp +ssl systemd test web xdp yaml" +IUSE="bpf cdb dnscrypt dnstap doh doh3 ipcipher ipcrypt lmdb otlp quic regex snmp +ssl systemd test web xdp yaml" RESTRICT="!test? ( test )" REQUIRED_USE="${LUA_REQUIRED_USE} @@ -53,6 +53,7 @@ RDEPEND="acct-group/dnsdist doh? ( net-libs/nghttp2:= ) doh3? ( net-libs/quiche:= ) lmdb? ( dev-db/lmdb:= ) + otlp? ( net-misc/curl ) quic? ( net-libs/quiche ) regex? ( dev-libs/re2:= ) snmp? ( net-analyzer/net-snmp:= ) @@ -136,6 +137,7 @@ src_configure() { $(meson_feature ipcipher) $(meson_feature ipcrypt ipcrypt2) $(meson_feature lmdb) + $(meson_feature otlp) $(meson_feature quic dns-over-quic) $(meson_feature regex re2) $(meson_feature snmp) diff --git a/net-dns/dnsdist/metadata.xml b/net-dns/dnsdist/metadata.xml index 2bc563e59a29..94aeeb8c93f2 100644 --- a/net-dns/dnsdist/metadata.xml +++ b/net-dns/dnsdist/metadata.xml @@ -21,6 +21,7 @@ <flag name="ipcipher">Enable support for ipcipher via <pkg>dev-libs/openssl</pkg></flag> <flag name="ipcrypt">Enable support for encryption/decryption of IP addresses via IPCrypt</flag> <flag name="lmdb">Enable support for lmdb</flag> + <flag name="otlp">Enable support for OTLP logging</flag> <flag name="quic">Enable support for dns over quic via <pkg>net-libs/quiche</pkg></flag> <flag name="regex">Enable support for regular expression matching via <pkg>dev-libs/re2</pkg></flag> <flag name="ssl">Enable support for and encrypted client-server communication via <pkg>dev-libs/libsodium</pkg></flag> diff --git a/net-dns/dnsmasq/dnsmasq-2.93.ebuild b/net-dns/dnsmasq/dnsmasq-2.93.ebuild index 3fbfdeff3285..071c8efe440b 100644 --- a/net-dns/dnsmasq/dnsmasq-2.93.ebuild +++ b/net-dns/dnsmasq/dnsmasq-2.93.ebuild @@ -18,7 +18,7 @@ S="${WORKDIR}"/${MY_P} LICENSE="|| ( GPL-2 GPL-3 )" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="auth-dns conntrack dbus +dhcp dhcp-tools dnssec +dumpfile id idn libidn2" IUSE+=" +loop +inotify ipv6 lua nettlehash nls script selinux static tftp" diff --git a/net-dns/doggo/Manifest b/net-dns/doggo/Manifest index 8edf06346eb1..f90f30ddfe5a 100644 --- a/net-dns/doggo/Manifest +++ b/net-dns/doggo/Manifest @@ -2,3 +2,5 @@ DIST doggo-1.2.0-vendor.tar.xz 2386052 BLAKE2B 6d36d48437b477590421cc4c53b868467 DIST doggo-1.2.0.tar.gz 2471501 BLAKE2B aadf18cf9dbe83dcd493821d22349503a6e9ce89fe4bbf2d47aff5dcbe854426bb4f1908de69233e39c1336b86549257451287668dfc280fdc38e3c872ac669f SHA512 327340db86c901aa63bcfb1d44dd888829de3ea0eb3da0e54f1ea6266f58d4dd8d5360642a4978c842111369f7c75ca1a401a9b2cba77296bee39e630822b57e DIST doggo-1.3.0-vendor.tar.xz 2436088 BLAKE2B 60f3c3989d8f289239250254240aebf10211919e70057d5da6ecf769dadee0d983da3d0d679b5ce2b68841f386969d7248cf777bf6ecdead78a6d14286a72119 SHA512 7087bedef21ba9b1c9fbae07cc381b27487d70893712bb5b107c62b768e893d1d79d8f9a5b81f3b5eb1a1f5c6e7d5a0cc733d5839c32dae651c42f2c815a9f6f DIST doggo-1.3.0.tar.gz 2509840 BLAKE2B d275def3378581bdc0a590d358be1a63eef9bba8ed6181bfd183f77edab1347e35b0604417eeab3b50e424fe232e30565b37696d0399d77e64dc56399e048727 SHA512 f89849d6dee8a0115140ca61f5ea73ef29369c7c5c84490bc3fb610f6261e905471ef90fc3b7c16aee3e136451082b1680e038a249820cd3721c07d1dd2cd1ff +DIST doggo-1.4.0-vendor.tar.xz 2443612 BLAKE2B 170930fb8d97374369b40aa84c469d24fe4abe0f56a829fc7c849486fa02b4f6c46877e960ff05b8d9354a0a06d9055ef565f66ebfee5b1a5abeef808fb83eff SHA512 09cc947a30475bc31161d84b49c35aee11a08bf67a6f753a447ecb19b20d8a5de57f876760e8ebde3f8e90798b08b9e4f2dda0b9382128e812042fa4d5887368 +DIST doggo-1.4.0.tar.gz 2551351 BLAKE2B e97a9111cb85fc0f2659aa283c03e670b8e5e6e3e6f654b28ba0b8dc7bf71261be8bfc1b9d4c444a609026c223f46bbce5e50cc68c817f1cdb37761a8becaae7 SHA512 7d32a279c6e07f47f635047679f63f9130322429b791418501762a2d63414cd863f4d95d8bb492b6f0a7b090b4155cf84050c58df2631641db49e9807d53c25b diff --git a/net-dns/doggo/doggo-1.4.0.ebuild b/net-dns/doggo/doggo-1.4.0.ebuild new file mode 100644 index 000000000000..2b5348fb5529 --- /dev/null +++ b/net-dns/doggo/doggo-1.4.0.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module shell-completion + +DESCRIPTION="Command-line DNS Client for Humans" +HOMEPAGE="https://github.com/mr-karan/doggo" + +SRC_URI="https://github.com/mr-karan/doggo/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/gentoo-golang-dist/doggo/releases/download/v${PV}/${P}-vendor.tar.xz +" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +BDEPEND=">=dev-lang/go-1.26.6" + +src_compile() { + emake build-cli VERSION=${PV} +} + +src_install() { + newbin bin/${PN}.bin ${PN} + + local comp + for comp in bash fish zsh; do + bin/${PN}.bin completions $comp > "${WORKDIR}"/${PN}.$comp || die + done + + newbashcomp "${WORKDIR}"/${PN}.bash ${PN} + newfishcomp "${WORKDIR}"/${PN}.fish ${PN}.fish + newzshcomp "${WORKDIR}"/${PN}.zsh _${PN} +} diff --git a/net-dns/knot/Manifest b/net-dns/knot/Manifest index c44aabe11367..59cb58b03796 100644 --- a/net-dns/knot/Manifest +++ b/net-dns/knot/Manifest @@ -7,3 +7,6 @@ DIST knot-3.5.6.tar.xz.asc 833 BLAKE2B e50abb5e54db106e965ea01d8bed5ee183cc98922 DIST knot-3.5.8-manpages.tar.xz 41224 BLAKE2B b5e09b5d3af811a9e83a5f6e07c18bdd515fbbc3195ec72057f9b0586bf3be620f76c796d549413734e866d3e3738fb8607e74880eac05475363dd0618230a71 SHA512 9e69b6e29a71085a29c8666e82149a3d3bc4196d49294c096708109870f4ab3a980d1b3b70e12b05058fe8cbb42ebb74cb506f31bba827a788241bba459a666e DIST knot-3.5.8.tar.xz 1736408 BLAKE2B e7793b469c7782a3aa14c8e02fb038d8d1d943283a9cd4dde7bee6a7296d5c4149e0752f8741317dabadbe4dfe930c715a8c82b6c27bb483b8f358c17acac3c4 SHA512 de7212d4b2d6b5868e848db55a3b276ff650bfe46b1fb8df5a6702d6e1408d85ad25b692a95eb26bd5165e8ebf2b2b9bed6fac46d8f6b870698bb32a97c179f3 DIST knot-3.5.8.tar.xz.asc 833 BLAKE2B d1bf720b9b20478884ec6336722ac09c0e40a401a8b5c1adb58ae0c43adca5ecd8b941f85b53e2b6b4808bfc768315291f33d3a542ca44b75e7e9159269574b6 SHA512 9f85e7db04d310fed38811b7ee86da80bff4571ea974bc39e81d737a1fd4a587a5ff3fdcb6cea7a04c8ab2590d814411f6fc8b3b8e352ce4a7471c24901f26b4 +DIST knot-3.6.0-manpages.tar.xz 42052 BLAKE2B 11c9c090fc5a9ee4b9d695fbc5252dc315d29d8d121e6ee700c9cb6abd619c1d4ebc32ed734596ef5d3f34a74d96791e165e0758f40fa4074c854b4a9aa378b9 SHA512 f224279e8f850b7edf445a794d205c387cbc01671745bf3ca197bbd30e282dd490cd28b73b8b1e23c3add879a3ec07b0e54212764f73f1f451a39195c937e3f9 +DIST knot-3.6.0.tar.xz 1852000 BLAKE2B 454d12deb35c91fd3c3e71cfd4021bd0d36fb39446e3cef41a47df3bbc0362950de1a21eb742d936dbce13a822891b313da335b8bb21026b88d4d985d8c763c0 SHA512 83369a94ce7f35f41b08d599844e4c9586c29ba8efcf841e90560734b81df72054ddd62df609b84149944a36672bb71219c66e6e0c8ee7e41d5c421fc256e64a +DIST knot-3.6.0.tar.xz.asc 833 BLAKE2B e8e9ca59ba1586854ab8de727dcd29fca23e7bb9a7572015f67e8e0173d2824419c91e6bc44d25ff4771bad59f15d03411dd4f8732174eff9e7d25e582d0b415 SHA512 31985e81306275b1cf1c382b0a97317a7220a1166ae680f1ed6dc02bb16dfe0789ccec3f98947d89d5966494132686169eb70c9222d0beada2f6c02072fa2c99 diff --git a/net-dns/knot/knot-3.6.0.ebuild b/net-dns/knot/knot-3.6.0.ebuild new file mode 100644 index 000000000000..dce592f77c37 --- /dev/null +++ b/net-dns/knot/knot-3.6.0.ebuild @@ -0,0 +1,282 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..15} ) +inherit eapi9-ver python-r1 systemd tmpfiles verify-sig + +# subslot: libknot major.libzscanner major +KNOT_SUBSLOT="17.5" + +DESCRIPTION="High-performance authoritative-only DNS server" +HOMEPAGE="https://www.knot-dns.cz/ https://gitlab.nic.cz/knot/knot-dns" +SRC_URI=" + https://knot-dns.nic.cz/release/${P}.tar.xz + !doc? ( https://raw.githubusercontent.com/PPN-SD/gentoo-manpages/refs/tags/${P}/${P}-manpages.tar.xz ) + verify-sig? ( https://knot-dns.nic.cz/release/${P}.tar.xz.asc ) +" +# OPENLDAP: include code from lmdb-0.9 for automatic migration to lmdb-1 +LICENSE="GPL-2+ OPENLDAP" +SLOT="0/${KNOT_SUBSLOT}" +KEYWORDS="~amd64 ~arm64 ~riscv ~x86" + +# Modules without dep and enabled by default. Built unconditionally. +KNOT_MODULES=( + "alias" + "authsignal" + "cookies" + "dnserr" + "dnsproxy" + "noudp" + "onlinesign" + "probe" + "queryacl" + "rrl" + "stats" + "synthrecord" + "whoami" +) + +KNOT_MODULES_OPT=( + "dnstap" + "geoip" +) + +IUSE="caps +daemon dbus doc doh +fastparser +idn pkcs11 prometheus python quic redis selinux systemd test +utils xdp ${KNOT_MODULES_OPT[@]}" +RESTRICT="!test? ( test )" +REQUIRED_USE=" + prometheus? ( python ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +COMMON_DEPEND=" + dev-libs/libedit + dnstap? ( + dev-libs/fstrm + dev-libs/protobuf-c:= + ) +" +RDEPEND=" + >=dev-db/lmdb-0.9.15:= + >=net-libs/gnutls-3.7.3:=[pkcs11?] + daemon? ( + ${COMMON_DEPEND} + acct-group/knot + acct-user/knot + dev-libs/userspace-rcu:= + caps? ( sys-libs/libcap-ng ) + dbus? ( sys-apps/dbus ) + geoip? ( dev-libs/libmaxminddb:= ) + redis? ( >=dev-libs/hiredis-1.1.0:= ) + systemd? ( >=sys-apps/systemd-221:= ) + ) + prometheus? ( + dev-python/prometheus-client[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + ) + python? ( ${PYTHON_DEPS} ) + quic? ( >=net-libs/ngtcp2-0.17.0[gnutls] ) + selinux? ( sec-policy/selinux-knot ) + utils? ( + ${COMMON_DEPEND} + doh? ( net-libs/nghttp2:= ) + idn? ( net-dns/libidn2:= ) + ) + xdp? ( + >=dev-libs/libbpf-1.0:= + net-libs/xdp-tools + utils? ( net-libs/libmnl:= ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + dnstap? ( + dev-libs/protobuf[protoc(+)] + dev-libs/protobuf-c + ) + doc? ( + $(python_gen_any_dep ' + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-panels[${PYTHON_USEDEP}] + ') + ) + python? ( ${PYTHON_DEPS} ) + test? ( + elibc_musl? ( sys-libs/timezone-data ) + pkcs11? ( dev-libs/softhsm ) + ) + verify-sig? ( sec-keys/openpgp-keys-knot ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/${PN}.asc + +# Used to check cpuset_t in sched.h with NetBSD. +# False positive because linux have sched.h too but with cpu_set_t +QA_CONFIG_IMPL_DECL_SKIP=( cpuset_create cpuset_destroy ) + +python_check_deps() { + # redundant but clearly marks doc dependencies + use doc || return 0 + python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" \ + "dev-python/sphinx-panels[${PYTHON_USEDEP}]" +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use doc && python_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.asc} + fi + default +} + +src_configure() { + local u + local my_conf=( + --with-storage="${EPREFIX}/var/lib/${PN}" + --with-rundir="${EPREFIX}/run/${PN}" + $(use_enable caps cap_ng) + $(use_enable daemon) + # enable-dnstap defines support for kdig only + $(use_enable dnstap dnstap $(usex utils)) + $(use_enable doc documentation) + $(use_with doh libnghttp2) + $(use_enable fastparser) + $(use_enable geoip maxminddb) + $(use_with idn libidn) + $(use_enable pkcs11) + $(use_enable quic) + $(use_enable redis redis $(usex daemon client)) + $(use_enable systemd) + $(use_enable utils utilities) + $(use_enable xdp) + ) + # modules are only used by daemon + # module-dnstap defines support for knotd only + if use daemon; then + for u in "${KNOT_MODULES[@]}"; do + my_conf+=( --with-module-${u} ) + done + for u in "${KNOT_MODULES_OPT[@]#+}"; do + my_conf+=( $(use_with ${u} module-${u}) ) + done + else + my_conf+=( --disable-modules ) + fi + + if use !daemon; then + my_conf+=( --enable-dbus=no ) + elif use dbus; then + my_conf+=( --enable-dbus=libdbus ) + elif use systemd; then + my_conf+=( --enable-dbus=systemd ) + else + my_conf+=( --enable-dbus=no ) + fi + + econf "${my_conf[@]}" +} + +src_compile() { + default + + use doc && emake -C doc html +} + +src_install() { + if use doc; then + local HTML_DOCS=( doc/_build/html/{*.html,*.js,_sources,_static} ) + else + # install the manpages only for the activated options, order from doc/Makefile.am + pushd "${WORKDIR}"/man/ >/dev/null || die + local manp=() + if use daemon; then + manp+=( + knot.conf.5 + knotc.8 + knotd.8 + ) + fi + if use utils; then + use daemon && manp+=( + kcatalogprint.8 + keymgr.8 + kjournalprint.8 + kzonecheck.1 + kzonesign.1 + ) + manp+=( + kdig.1 + khost.1 + knsupdate.1 + knsec3hash.1 + ) + use xdp && manp+=( + kxdpgun.8 + ) + fi + [[ "${#manp[@]}" -ne 0 ]] && doman "${manp[@]}" + popd >/dev/null || die + fi + + if use python; then + # install only .py files, not build system leftovers (e.g. .in) + python_moduleinto libknot + python_foreach_impl python_domodule python/libknot/libknot/*.py + newdoc python/libknot/README.md README.python.md + fi + + if use prometheus; then + # reset module target + python_moduleinto knot_exporter + python_foreach_impl python_domodule python/knot_exporter/knot_exporter/. + python_scriptinto /usr/sbin + python_foreach_impl python_newscript python/knot_exporter/knot_exporter/knot_exporter.py knot-exporter + newdoc python/knot_exporter/README.md README.knot_exporter.md + fi + + default + + if use daemon; then + rm -r "${ED}"/run/ || die + + keepdir /var/lib/${PN} + + fowners -R :knot /etc/${PN} + fperms 750 /etc/${PN} + fperms 640 /etc/${PN}/${PN}.sample.conf + fperms 640 /etc/${PN}/example.com.zone + + newinitd "${FILESDIR}"/knot-3.init knot + newconfd "${FILESDIR}"/knot.confd knot + + newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf + + if use dbus; then + insinto /usr/share/dbus-1/system.d + doins distro/common/cz.nic.knotd.conf + fi + + use systemd && systemd_newunit distro/common/knot.service knot.service + fi + + find "${D}" -name '*.la' -delete || die +} + +pkg_postinst() { + use daemon && tmpfiles_process ${PN}.conf + + if has_version net-dns/redis-knot || use redis; then + ewarn "To use redis, ${EPREFIX}/usr/$(get_libdir)/knot/redis/knot.so from net-dns/redis-knot" + ewarn "must be loaded by an instance of Redis." + fi + + if ver_replacing -lt 3.6; then + elog "See documentation for migration:" + elog "https://www.knot-dns.cz/docs/3.6/html/migration.html#upgrade-3-5-x-to-3-6-x" + fi +} diff --git a/net-dns/redis-knot/Manifest b/net-dns/redis-knot/Manifest index 4046dbffd2b0..e0d9155cbf1c 100644 --- a/net-dns/redis-knot/Manifest +++ b/net-dns/redis-knot/Manifest @@ -4,3 +4,5 @@ DIST knot-3.5.6.tar.xz 1734776 BLAKE2B f03a2da9390e89bd7955505d3f59ca54689e2183b DIST knot-3.5.6.tar.xz.asc 833 BLAKE2B e50abb5e54db106e965ea01d8bed5ee183cc98922368d58144552cb2a6a55af738abd44195624397fc965fead72a687c8cd76554f60ea34013a6b2e6e94652ef SHA512 5647f932b145d6a4fd12e205fe895fe18df67a3e9c33a8bb3fc93b93762bbe46a359b86cf2482e0089eddb8fbe9fe22f306df94527804c9b3bf35631914c1101 DIST knot-3.5.8.tar.xz 1736408 BLAKE2B e7793b469c7782a3aa14c8e02fb038d8d1d943283a9cd4dde7bee6a7296d5c4149e0752f8741317dabadbe4dfe930c715a8c82b6c27bb483b8f358c17acac3c4 SHA512 de7212d4b2d6b5868e848db55a3b276ff650bfe46b1fb8df5a6702d6e1408d85ad25b692a95eb26bd5165e8ebf2b2b9bed6fac46d8f6b870698bb32a97c179f3 DIST knot-3.5.8.tar.xz.asc 833 BLAKE2B d1bf720b9b20478884ec6336722ac09c0e40a401a8b5c1adb58ae0c43adca5ecd8b941f85b53e2b6b4808bfc768315291f33d3a542ca44b75e7e9159269574b6 SHA512 9f85e7db04d310fed38811b7ee86da80bff4571ea974bc39e81d737a1fd4a587a5ff3fdcb6cea7a04c8ab2590d814411f6fc8b3b8e352ce4a7471c24901f26b4 +DIST knot-3.6.0.tar.xz 1852000 BLAKE2B 454d12deb35c91fd3c3e71cfd4021bd0d36fb39446e3cef41a47df3bbc0362950de1a21eb742d936dbce13a822891b313da335b8bb21026b88d4d985d8c763c0 SHA512 83369a94ce7f35f41b08d599844e4c9586c29ba8efcf841e90560734b81df72054ddd62df609b84149944a36672bb71219c66e6e0c8ee7e41d5c421fc256e64a +DIST knot-3.6.0.tar.xz.asc 833 BLAKE2B e8e9ca59ba1586854ab8de727dcd29fca23e7bb9a7572015f67e8e0173d2824419c91e6bc44d25ff4771bad59f15d03411dd4f8732174eff9e7d25e582d0b415 SHA512 31985e81306275b1cf1c382b0a97317a7220a1166ae680f1ed6dc02bb16dfe0789ccec3f98947d89d5966494132686169eb70c9222d0beada2f6c02072fa2c99 diff --git a/net-dns/redis-knot/redis-knot-3.6.0.ebuild b/net-dns/redis-knot/redis-knot-3.6.0.ebuild new file mode 100644 index 000000000000..d8199f90a76b --- /dev/null +++ b/net-dns/redis-knot/redis-knot-3.6.0.ebuild @@ -0,0 +1,50 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit verify-sig + +MY_PN="knot" +MY_P="${MY_PN}-${PV}" +DESCRIPTION="Redis module for Knot DNS" +HOMEPAGE="https://www.knot-dns.cz/ https://gitlab.nic.cz/knot/knot-dns" +SRC_URI=" + https://knot-dns.nic.cz/release/${MY_P}.tar.xz + verify-sig? ( https://knot-dns.nic.cz/release/${MY_P}.tar.xz.asc ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv ~x86" + +# no test, it requires a Redis instance and RLTest (not packaged) +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-knot )" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/${MY_PN}.asc + +# Used to check cpuset_t in sched.h with NetBSD. +# False positive because linux have sched.h too but with cpu_set_t +QA_CONFIG_IMPL_DECL_SKIP=( cpuset_create cpuset_destroy ) + +src_configure() { + local myeconfargs=( + --disable-daemon + --disable-modules + --disable-utilities + --disable-xdp + --enable-redis=module + ) + econf "${myeconfargs[@]}" +} + +src_compile() { + emake -C src/redis +} + +src_install() { + emake DESTDIR="${D}" -C src/redis install + + find "${D}" -name '*.la' -delete || die +} diff --git a/net-dns/unbound/Manifest b/net-dns/unbound/Manifest index fdb55076a135..94e4c1a63374 100644 --- a/net-dns/unbound/Manifest +++ b/net-dns/unbound/Manifest @@ -2,3 +2,5 @@ DIST unbound-1.25.1.tar.gz 6832247 BLAKE2B da9818a14a540bf2d674f504a38da711cfead DIST unbound-1.25.1.tar.gz.asc 659 BLAKE2B c629e2ba167e867c49c4ca420b3801e7380a0f35224d8ba5c2c8226c096b53b16f38615cc202492966865d347526f979bc7a146502e5c592d60fdd76a6dc91c4 SHA512 307ce54a35c47e19dda75154424fe8e35382605cb3541ab2c16f567e28c44cfcace5aa14ca8c18d272647b8ef70cfc75f51c27cb0587bc51bd82d074380825aa DIST unbound-1.25.2.tar.gz 6839073 BLAKE2B f5bcdbac166ba468cd591750ed76cdcafa01dda065aef131a405590d089f7565e6c4b5aa0cfdae42ab259f8fb83ce40ec6e6686a9ff3fa60fd017f831291e79b SHA512 f442105849db8d6f7bfb2d8130cd6772e3850ca36c9275fda99c659d0851f7ae3aee0c927bad756bdf5fbe83379e8a058f00fd5c50eedfe5fbe73b4d3ae0e222 DIST unbound-1.25.2.tar.gz.asc 659 BLAKE2B 2bf9b5d12e47519ec22a2b72cc25ffc18ae306e7185d55b6353f36222cd5f0141dca28ca4644edbcc1eb1c2159c033afaf8217ed75f1ebfc878832b09d57b73d SHA512 4878caf1df8b41693cd32a61e7ead1b7fd26a866e5075085a55e5095ff6ed7eb5b63447f91ba814d4535c212cb13ede0651a3529f42a185535b28013c57df1ea +DIST unbound-1.26.1.tar.gz 6948585 BLAKE2B 6894a2b7119a6998de24ffec469eb2d47b1c3b28aaa1746754c01490539dccfc8745c6ab29b938ef8b9ee82d9c87402d12828b42bef25d3d5fbe7a90a3f7f02d SHA512 b0a02fe77e5d0ad697e950ee0c13b987f0f33b489dfe4bf4ed0b09723ca883ebe4465f69625b7d4eba8171516e6879bb07bf8c22b6e8bdd357e2f4f43e485525 +DIST unbound-1.26.1.tar.gz.asc 659 BLAKE2B 66014fb2fcb5791f275558ea1e6fa14c48655da0f5955988993cf21705b3d94ebfcd273e672092231bd8f381d390799dee65dbfef579afa98b9fa87e94577296 SHA512 e68e349ffb76eb92b19a618be31d370879cdd42eaf9da0dbe854aa1b7637421846a2c0601198e118f66f49da25d921709dc48603ce9728155705ed7e5f25c5bf diff --git a/net-dns/unbound/unbound-1.26.1.ebuild b/net-dns/unbound/unbound-1.26.1.ebuild new file mode 100644 index 000000000000..2695aefa0eaf --- /dev/null +++ b/net-dns/unbound/unbound-1.26.1.ebuild @@ -0,0 +1,212 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nlnetlabs.asc +inherit autotools flag-o-matic python-single-r1 systemd verify-sig multilib-minimal + +MY_P=${PN}-${PV/_/} +DESCRIPTION="A validating, recursive and caching DNS resolver" +HOMEPAGE="https://unbound.net/ https://nlnetlabs.nl/projects/unbound/about/" +SRC_URI=" + https://nlnetlabs.nl/downloads/unbound/${MY_P}.tar.gz + verify-sig? ( https://nlnetlabs.nl/downloads/unbound/${MY_P}.tar.gz.asc ) +" +S="${WORKDIR}"/${MY_P} + +LICENSE="BSD GPL-2" +SLOT="0/8" # ABI version of libunbound.so +if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi +IUSE="debug dnscrypt dnstap +ecdsa ecs gost +http2 python redis selinux static-libs systemd test +tfo" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +# Note: expat is needed by executable only but the Makefile is custom +# and doesn't make it possible to easily install the library without +# the executables. MULTILIB_USEDEP may be dropped once build system +# is fixed. +DEPEND=" + acct-group/unbound + acct-user/unbound + >=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}] + >=dev-libs/libevent-2.0.21:0=[${MULTILIB_USEDEP}] + >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] + dnscrypt? ( dev-libs/libsodium:=[${MULTILIB_USEDEP}] ) + dnstap? ( + dev-libs/fstrm[${MULTILIB_USEDEP}] + >=dev-libs/protobuf-c-1.0.2-r1:=[${MULTILIB_USEDEP}] + ) + ecdsa? ( + dev-libs/openssl:0[-bindist(-)] + ) + http2? ( net-libs/nghttp2:=[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} ) + redis? ( dev-libs/hiredis:= ) + systemd? ( sys-apps/systemd ) +" +BDEPEND=" + virtual/pkgconfig + python? ( dev-lang/swig ) + test? ( + net-libs/ldns[examples(-)] + dev-util/splint + app-text/wdiff + ) + verify-sig? ( >=sec-keys/openpgp-keys-nlnetlabs-20260101 ) +" +RDEPEND=" + ${DEPEND} + net-dns/dnssec-root + selinux? ( sec-policy/selinux-bind ) +" + +QA_CONFIG_IMPL_DECL_SKIP=( + ioctlsocket # not on Linux (bug #900060) +) + +PATCHES=( + "${FILESDIR}"/${PN}-1.5.7-trust-anchor-file.patch + "${FILESDIR}"/${PN}-1.6.3-pkg-config.patch + "${FILESDIR}"/${PN}-1.10.1-find-ar.patch +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + eautoreconf + + # Required for the python part + multilib_copy_sources +} + +src_configure() { + [[ ${CHOST} == *-darwin* ]] || append-ldflags -Wl,-z,noexecstack + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myeconfargs=( + $(multilib_native_use_enable debug) + $(multilib_native_use_enable gost) + $(multilib_native_use_enable dnscrypt) + $(multilib_native_use_enable dnstap) + $(multilib_native_use_enable ecdsa) + $(multilib_native_use_enable ecs subnet) + $(multilib_native_use_enable redis cachedb) + $(multilib_native_use_enable static-libs static) + $(multilib_native_use_enable systemd) + $(multilib_native_use_with python pythonmodule) + $(multilib_native_use_with python pyunbound) + $(multilib_native_use_with http2 libnghttp2) + $(multilib_native_use_enable tfo tfo-client) + $(multilib_native_use_enable tfo tfo-server) + + --disable-flto + --disable-rpath + --enable-event-api + --enable-ipsecmod + + --with-libevent="${ESYSROOT}"/usr + $(multilib_native_usex redis --with-libhiredis="${ESYSROOT}/usr" --without-libhiredis) + + --with-pidfile="${EPREFIX}"/run/unbound.pid + --with-rootkey-file="${EPREFIX}"/etc/dnssec/root-anchors.txt + --with-ssl="${ESYSROOT}"/usr + --with-libexpat="${ESYSROOT}"/usr + + # http://unbound.nlnetlabs.nl/pipermail/unbound-users/2011-April/001801.html + # $(use_enable debug lock-checks) + # $(use_enable debug alloc-checks) + # $(use_enable debug alloc-lite) + # $(use_enable debug alloc-nonregional) + ) + + econf "${myeconfargs[@]}" +} + +multilib_src_install() { + emake DESTDIR="${D}" install + systemd_dounit contrib/unbound.service + systemd_dounit contrib/unbound.socket + systemd_dounit contrib/unbound_portable.service +} + +multilib_src_install_all() { + use python && python_optimize + + newinitd "${FILESDIR}"/unbound-r2.initd unbound + newconfd "${FILESDIR}"/unbound-r1.confd unbound + + systemd_newunit "${FILESDIR}"/unbound-anchor-r1.service unbound-anchor.service + + dodoc doc/{README,CREDITS,TODO,Changelog,FEATURES} + dodoc contrib/{unbound_munin_,metrics.awk} + + docinto selinux + dodoc contrib/selinux/* + + exeinto /usr/share/${PN} + doexe contrib/{update-anchor.sh,unbound_cache.sh} + + # Create space for auto-trust-anchor-file eventually + # downloaded by unbound-anchor + keepdir /etc/unbound/var + fowners root:unbound /etc/unbound/var + fperms 0770 /etc/unbound/var + + # Used to store cache data + keepdir /var/lib/${PN} + fowners root:unbound /var/lib/${PN} + fperms 0770 /var/lib/${PN} + + find "${ED}" -name '*.la' -delete || die + if ! use static-libs ; then + find "${ED}" -name "*.a" -delete || die + fi +} + +pkg_postinst() { + if [[ ! -f "${EROOT}/etc/unbound/unbound_control.key" ]]; then + einfo "Trying to create unbound control key ..." + if ! unbound-control-setup &>/dev/null ; then + ewarn "Failed to create unbound control key!" + fi + fi + + if [[ ! -f "${EROOT}/etc/unbound/var/root-anchors.txt" ]]; then + einfo "" + einfo "If you want unbound to automatically update the root-anchor file for DNSSEC validation" + einfo "set 'auto-trust-anchor-file: ${EROOT}/etc/unbound/var/root-anchors.txt' in ${EROOT}/etc/unbound/unbound.conf" + einfo "and run" + einfo "" + einfo " su -s /bin/sh -c '${EROOT}/usr/sbin/unbound-anchor -a ${EROOT}/etc/unbound/var/root-anchors.txt' unbound" + einfo "" + einfo "as root to create it initially before starting unbound for the first time after enabling this." + einfo "" + einfo "If using systemd you may also enable the unbound-anchor.service" + fi + + # Our user is not available on prefix + use prefix && return + + local _perm_check_testfile=$(mktemp --dry-run "${EPREFIX}"/etc/unbound/var/.pkg_postinst-perm-check.XXXXXXXXX) + su -s /bin/sh -c "touch ${_perm_check_testfile}" unbound &>/dev/null + if [[ $? -ne 0 ]]; then + ewarn "WARNING: unbound user cannot write to \"${EPREFIX}/etc/unbound/var\"!" + ewarn "Run the following commands to restore default permission:" + ewarn "" + ewarn " chown root:unbound ${EPREFIX}/etc/unbound/var" + ewarn " chmod 0770 ${EPREFIX}/etc/unbound/var" + else + # Cleanup -- no reason to die here! + rm -f "${_perm_check_testfile}" + fi +} diff --git a/net-firewall/xtables-addons/Manifest b/net-firewall/xtables-addons/Manifest index 792a4870f63e..69dd2a0cebcd 100644 --- a/net-firewall/xtables-addons/Manifest +++ b/net-firewall/xtables-addons/Manifest @@ -1,3 +1,2 @@ -DIST xtables-addons-3.27.tar.xz 340360 BLAKE2B 5b82069e21464bc293d76c6cd298e6beafdda57bc07582be64d7ff9a5511741bd1acd9a54a7b1caa08631d108a17b51dc7e7c2926003e6a893b1df0f6b360b62 SHA512 1938342914c24621743d0460e4057ffa6d3b6d01f3d0ca5feaa3852675f18c309f57fcb73725972d4aa87b7da92667efffa16e203f4cd1362cb8bb03a116636a -DIST xtables-addons-3.28.tar.xz 340112 BLAKE2B ee4455e3f57549c7dfcf3871782617e22806d5862d22a791aca9579188e735d070504caaf72b4ceaa516a4a77c809cd6cb12c964214a56d9df0a3ba047683b81 SHA512 11d7ffc62d41d9f86c51a0c35fb4bc91581e8c4f2fb8e0c6309ea1381a8bd5567612dbcdfed041bfeed300bfe19fd7f36d9af0d4c76d36b2275fa840cfa5342d DIST xtables-addons-3.29.tar.xz 342356 BLAKE2B 632b8a4b11b5365b7a9e08277374c5b74c0cf56e3783e3cf63764139b03b36973e20c6a27e7a6336cf72d8cf5a2c00f61daf83ceb5eba536a7d52d13e0a70d74 SHA512 48264f3a555d7ba6fc404154e2a0d84b8551a28c9e0cbeff44f3dc419cff46a250e10482ce8b256545bbde2ddec6b11183dc2f7f7396f8ed3cd12c99ff69d2e7 +DIST xtables-addons-3.31.tar.zst 356307 BLAKE2B d45aa1e60f7c3194e4442a14f17ada3509eec15ec7da8c7b0367c3951f833c4fbc5d5b28f6d5f88e23ef7acec2f781362c7dd9a0b96f1086a340455bd40bd979 SHA512 99db16f2f7069060725b52f9dc779287444f4ef64407afaf63f966382f8e0cdff8f6fba5b89080065454d08c51b19ea72d266327acd446be1872a21112ca5407 diff --git a/net-firewall/xtables-addons/metadata.xml b/net-firewall/xtables-addons/metadata.xml index 461cf8e0f052..d0285680dfa7 100644 --- a/net-firewall/xtables-addons/metadata.xml +++ b/net-firewall/xtables-addons/metadata.xml @@ -12,7 +12,6 @@ please see the INSTALL file for the minimum requirements of this package. </longdescription> <upstream> - <remote-id type="sourceforge">xtables-addons</remote-id> <remote-id type="codeberg">jengelh/xtables-addons</remote-id> </upstream> </pkgmetadata> diff --git a/net-firewall/xtables-addons/xtables-addons-3.27.ebuild b/net-firewall/xtables-addons/xtables-addons-3.27.ebuild deleted file mode 100644 index 45cae44b7c2b..000000000000 --- a/net-firewall/xtables-addons/xtables-addons-3.27.ebuild +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright 2023-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE="+modules" -inherit flag-o-matic linux-mod-r1 toolchain-funcs - -XTABLES_MODULES=( - account chaos delude dhcpmac dnetmap echo ipmark logmark - proto sysrq tarpit asn condition fuzzy geoip gradm iface - ipp2p ipv4options length2 lscan pknock psd quota2 -) - -MODULES_KERNEL_MIN=4.15 - -DESCRIPTION="iptables extensions not yet accepted in the main kernel" -HOMEPAGE=" - https://inai.de/projects/xtables-addons/ - https://codeberg.org/jengelh/xtables-addons/ -" -SRC_URI="https://inai.de/files/xtables-addons/${P}.tar.xz" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="${XTABLES_MODULES[*]/#/xtables_addons_}" - -XTABLES_SCRIPTS_DEPEND=" - app-arch/unzip - dev-perl/Net-CIDR-Lite - dev-perl/Text-CSV_XS - virtual/perl-Getopt-Long -" -DEPEND="net-firewall/iptables:=" -RDEPEND=" - ${DEPEND} - xtables_addons_asn? ( ${XTABLES_SCRIPTS_DEPEND} ) - xtables_addons_geoip? ( ${XTABLES_SCRIPTS_DEPEND} ) -" -BDEPEND="virtual/pkgconfig" - -pkg_setup() { - local CONFIG_CHECK="NF_CONNTRACK NF_CONNTRACK_MARK" - - if use xtables_addons_ipp2p; then - CONFIG_CHECK+=" TEXTSEARCH_BM" - local ERROR_TEXTSEARCH_BM="CONFIG_TEXTSEARCH_BM: is not set but is needed to use xt_ipp2p" - fi - - if use xtables_addons_pknock; then - CONFIG_CHECK+=" ~CONNECTOR" - local ERROR_CONNECTOR="CONFIG_CONNECTOR: is not set but is needed to receive userspace - notifications from pknock through netlink/connector" - fi - - linux-mod-r1_pkg_setup -} - -src_prepare() { - default - - local mod modules - mapfile -t modules < <(sed -En 's/^build_(.+)=.*/\L\1/p' mconfig || die) - [[ ${modules[*]} == "${XTABLES_MODULES[*]}" ]] || - die "XTABLES_MODULES needs to be updated to: '${modules[*]}'" - - for mod in "${modules[@]}"; do - use xtables_addons_${mod} || sed -i "/^build_${mod}=/Id" mconfig || die - done -} - -src_configure() { - # Uses CFLAGS for tools, and it may mismatch with the kernel's CC - # FIXME?: ideally would want to build tools with normal CC - use modules && CC=${KERNEL_CC} strip-unsupported-flags - - local econfargs=( - # TODO?: should move to ${EPREFIX}/usr + use default libexecdir by now - # (matching documentation), but could be a disruptive change for users - # with xt_asn/geoip_* paths they may have hardcoded in scripts - --prefix="${EPREFIX:-/}" - --libexecdir="${EPREFIX}"/$(get_libdir) - $(usex modules --with-kbuild="${KV_OUT_DIR}" --without-kbuild) - - # Needed for cross-compiling and to avoid a clash with the Gentoo ARCH. - ARCH="$(tc-arch-kernel)" - ) - - econf "${econfargs[@]}" -} - -src_compile() { - use modules || MODULES_MAKEARGS=() - - emake "${MODULES_MAKEARGS[@]}" -} - -src_install() { - MODULES_MAKEARGS+=( - DESTDIR="${D}" - INSTALL_MOD_DIR=xtables_addons - ) - - emake "${MODULES_MAKEARGS[@]}" install - modules_post_process - - dodoc -r README.rst doc/. - - use xtables_addons_asn || - find "${ED}" -type f -name '*_asn*' -delete || die - use xtables_addons_geoip || - find "${ED}" -type f -name '*_geoip*' -delete || die - - find "${ED}" -type f -name '*.la' -delete || die -} diff --git a/net-firewall/xtables-addons/xtables-addons-3.28.ebuild b/net-firewall/xtables-addons/xtables-addons-3.31.ebuild index ef451cea3ad4..8e3e62bc80ad 100644 --- a/net-firewall/xtables-addons/xtables-addons-3.28.ebuild +++ b/net-firewall/xtables-addons/xtables-addons-3.31.ebuild @@ -1,10 +1,10 @@ -# Copyright 2023-2025 Gentoo Authors +# Copyright 2023-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 MODULES_OPTIONAL_IUSE="+modules" -inherit flag-o-matic linux-mod-r1 toolchain-funcs +inherit flag-o-matic linux-mod-r1 toolchain-funcs unpacker XTABLES_MODULES=( account chaos delude dhcpmac dnetmap echo ipmark logmark @@ -19,7 +19,7 @@ HOMEPAGE=" https://inai.de/projects/xtables-addons/ https://codeberg.org/jengelh/xtables-addons/ " -SRC_URI="https://inai.de/files/xtables-addons/${P}.tar.xz" +SRC_URI="https://inai.de/files/xtables-addons/${P}.tar.zst" LICENSE="GPL-2+" SLOT="0" @@ -37,7 +37,10 @@ RDEPEND=" xtables_addons_asn? ( ${XTABLES_SCRIPTS_DEPEND} ) xtables_addons_geoip? ( ${XTABLES_SCRIPTS_DEPEND} ) " -BDEPEND="virtual/pkgconfig" +BDEPEND=" + virtual/pkgconfig + $(unpacker_src_uri_depends) +" pkg_setup() { local CONFIG_CHECK="NF_CONNTRACK NF_CONNTRACK_MARK" diff --git a/net-fs/nfs-utils/Manifest b/net-fs/nfs-utils/Manifest index b77fd3af1574..c0023cf0e76b 100644 --- a/net-fs/nfs-utils/Manifest +++ b/net-fs/nfs-utils/Manifest @@ -1,3 +1 @@ -DIST nfs-utils-2.6.4.tar.bz2 979652 BLAKE2B 45f6e9c98e8148e82684526c2ab0f8976b2a46fd869d91f03cf9afffbaad64b77dc1729a50b74d30c5d65bfe213a1da2f54e3d3e19539b61994f7b65671a26ab SHA512 e5fde25c54f594d00e69c9aeff8abc22663b994ecd37d8516751be98b51b12c61ffec47ee128794e170ec773f0649cb594df1ca104ec4dba561823db423f8533 -DIST nfs-utils-2.7.1.tar.bz2 1001424 BLAKE2B 176c5559c23c2761c1f2beed068fda8bdd39ac9fa09b4b223552c1455152c410d8925adf8d0023300d4355338e9dc8f6b2774ba71488e795945e5f1fee2b305c SHA512 9e55d4a0d672dbb0e20f8ea0213355a0bec054124c2a9437b3e4b81214c24ef5adb43914bd8606d4af14801ec8e6a4f849c9a97d76ae0879566792bbc960845a DIST nfs-utils-2.8.5.tar.bz2 1001261 BLAKE2B 68ab063257222107e79f792c92103a98779e3401284395bef1f2a3cf37bfc73c984e8e5d60ee820882cb92fbb371dd5a72ffa28738274b66e8f269324cdf3e19 SHA512 a42612c5611f7de5fe8170f3059b96e4c15ab8ad2be19aa83f9117efa4207b3fec0629ea11864ee9b8ff267dcb5328a5295e8995a6f2cf500361ab38f91ad65a diff --git a/net-fs/nfs-utils/files/nfs-utils-2.6.4-includes.patch b/net-fs/nfs-utils/files/nfs-utils-2.6.4-includes.patch deleted file mode 100644 index 0312ac1a8b37..000000000000 --- a/net-fs/nfs-utils/files/nfs-utils-2.6.4-includes.patch +++ /dev/null @@ -1,41 +0,0 @@ -https://bugs.gentoo.org/922373 -https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=bb25f3f594ddf85e5826e931eaaa35874f6a4204 - -From bb25f3f594ddf85e5826e931eaaa35874f6a4204 Mon Sep 17 00:00:00 2001 -From: Petr Vorel <pvorel@suse.cz> -Date: Wed, 3 Jan 2024 19:07:43 -0500 -Subject: [PATCH] reexport/{fsidd,reexport}.c: Re-add missing includes - -Older uClibc-ng requires <unistd.h> for close(2), unlink(2) and write(2), -<sys/un.h> for struct sockaddr_un. - -Fixes: 1a4edb2a ("reexport/fsidd.c: Remove unused headers") -Fixes: bdc79f02 ("support/reexport.c: Remove unused headers") - -Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com> -Tested-by: Giulio Benetti <giulio.benetti@benettiengineering.com> -Signed-off-by: Petr Vorel <pvorel@suse.cz> -Signed-off-by: Steve Dickson <steved@redhat.com> ---- a/support/reexport/fsidd.c -+++ b/support/reexport/fsidd.c -@@ -7,6 +7,8 @@ - #include <dlfcn.h> - #endif - #include <event2/event.h> -+#include <sys/un.h> -+#include <unistd.h> - - #include "conffile.h" - #include "reexport_backend.h" ---- a/support/reexport/reexport.c -+++ b/support/reexport/reexport.c -@@ -7,6 +7,7 @@ - #endif - #include <sys/types.h> - #include <sys/vfs.h> -+#include <unistd.h> - #include <errno.h> - - #include "nfsd_path.h" --- -1.8.3.1 diff --git a/net-fs/nfs-utils/nfs-utils-2.6.4-r12.ebuild b/net-fs/nfs-utils/nfs-utils-2.6.4-r12.ebuild deleted file mode 100644 index e2d1bd84fa56..000000000000 --- a/net-fs/nfs-utils/nfs-utils-2.6.4-r12.ebuild +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools linux-info systemd - -DESCRIPTION="NFS client and server daemons" -HOMEPAGE="http://linux-nfs.org/ https://git.linux-nfs.org/?p=steved/nfs-utils.git" - -if [[ ${PV} == *_rc* ]] ; then - MY_PV="$(ver_rs 1- -)" - SRC_URI="http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=snapshot;h=refs/tags/${PN}-${MY_PV};sf=tgz -> ${P}.tar.gz" - S="${WORKDIR}/${PN}-${PN}-${MY_PV}" -else - SRC_URI="https://downloads.sourceforge.net/nfs/${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="caps junction kerberos ldap +libmount +nfsv3 +nfsv4 sasl selinux tcpd +uuid" -REQUIRED_USE="|| ( nfsv3 nfsv4 ) kerberos? ( nfsv4 )" -# bug #315573 -RESTRICT="test" - -# kth-krb doesn't provide the right include -# files, and nfs-utils doesn't build against heimdal either, -# so don't depend on virtual/krb. -# (04 Feb 2005 agriffis) -COMMON_DEPEND=" - dev-libs/libxml2:= - net-libs/libtirpc:= - sys-fs/e2fsprogs - dev-db/sqlite:3 - dev-libs/libevent:= - caps? ( sys-libs/libcap ) - ldap? ( - net-nds/openldap:= - sasl? ( - app-crypt/mit-krb5 - dev-libs/cyrus-sasl:2 - ) - ) - libmount? ( sys-apps/util-linux ) - nfsv3? ( >=net-nds/rpcbind-0.2.4 ) - nfsv4? ( - >=sys-apps/keyutils-1.5.9:= - sys-fs/lvm2 - kerberos? ( - >=net-libs/libtirpc-0.2.4-r1[kerberos] - app-crypt/mit-krb5 - ) - ) - tcpd? ( sys-apps/tcp-wrappers ) - uuid? ( sys-apps/util-linux )" -DEPEND="${COMMON_DEPEND} - elibc_musl? ( sys-libs/queue-standalone ) -" -RDEPEND="${COMMON_DEPEND} - !net-libs/libnfsidmap - selinux? ( - sec-policy/selinux-rpc - nfsv3? ( sec-policy/selinux-rpcbind ) - ) -" -BDEPEND=" - net-libs/rpcsvc-proto - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-2.5.2-no-werror.patch - "${FILESDIR}"/${PN}-udev-sysctl.patch - "${FILESDIR}"/${P}-includes.patch - "${FILESDIR}"/${P}-C99-inline.patch -) - -pkg_setup() { - linux-info_pkg_setup - - if use nfsv4 && linux_config_exists && ! linux_chkconfig_present CRYPTO_MD5 ; then - ewarn "Your NFS server will be unable to track clients across server restarts!" - ewarn "Please enable ${HILITE}CONFIG_CRYPTO_MD5${NORMAL} in your kernel to" - ewarn "support the legacy, in-kernel client tracker." - fi -} - -src_prepare() { - default - - sed \ - -e "/^sbindir/s:= := \"${EPREFIX}\":g" \ - -i utils/*/Makefile.am || die - - eautoreconf -} - -src_configure() { - # Our DEPEND forces this. - export libsqlite3_cv_is_recent=yes - export ac_cv_header_keyutils_h=$(usex nfsv4) - - # SASL is consumed in a purely automagic way - export ac_cv_header_sasl_h=no - export ac_cv_header_sasl_sasl_h=$(usex sasl) - - local myeconfargs=( - --disable-static - --with-statedir="${EPREFIX}"/var/lib/nfs - --enable-tirpc - --with-tirpcinclude="${ESYSROOT}"/usr/include/tirpc/ - --with-pluginpath="${EPREFIX}"/usr/$(get_libdir)/libnfsidmap - --with-rpcgen - --with-systemd="$(systemd_get_systemunitdir)" - --without-gssglue - $(use_enable caps) - --enable-ipv6 - $(use_enable junction) - $(use_enable kerberos gss) - $(use_enable kerberos svcgss) - $(use_enable ldap) - $(use_enable libmount libmount-mount) - $(use_enable nfsv4) - $(use_enable nfsv4 nfsdcld) - $(use_enable nfsv4 nfsdcltrack) - $(use_enable nfsv4 nfsv41) - $(use_enable nfsv4 nfsv4server) - $(use_enable uuid) - $(use_with tcpd tcp-wrappers) - ) - econf "${myeconfargs[@]}" -} - -src_compile() { - # Remove compiled files bundled in the tarball - emake clean - - default -} - -src_install() { - default - rm linux-nfs/Makefile* || die - dodoc -r linux-nfs README - - # Don't overwrite existing xtab/etab, install the original - # versions somewhere safe... more info in pkg_postinst - keepdir /var/lib/nfs/{,sm,sm.bak} - mv "${ED}"/var/lib/nfs "${ED}"/usr/$(get_libdir)/ || die - - # Install some client-side binaries in /sbin - dodir /sbin - mv "${ED}"/usr/sbin/rpc.statd "${ED}"/sbin/ || die - - if use nfsv4 ; then - insinto /etc - doins support/nfsidmap/idmapd.conf - - # Install a config file for idmappers in newer kernels. bug #415625 - insinto /etc/request-key.d - echo 'create id_resolver * * /usr/sbin/nfsidmap -t 600 %k %d' > id_resolver.conf - doins id_resolver.conf - fi - - insinto /etc - doins "${FILESDIR}"/exports - keepdir /etc/exports.d - - local f list=() - if use nfsv4 ; then - list+=( rpc.idmapd rpc.pipefs ) - use kerberos && list+=( rpc.gssd rpc.svcgssd ) - fi - - local sedexp=( -e '#placehoder' ) - use nfsv3 || sedexp+=( -e '/need portmap/d' ) - - mkdir -p "${T}/init.d" || die - for f in nfs nfsclient rpc.statd "${list[@]}" ; do - sed "${sedexp[@]}" "${FILESDIR}/${f}.initd" > "${T}/init.d/${f}" || die - doinitd "${T}/init.d/${f}" - done - - local systemd_systemunitdir="$(systemd_get_systemunitdir)" - sed -i \ - -e 's:/usr/sbin/rpc.statd:/sbin/rpc.statd:' \ - "${ED}${systemd_systemunitdir}"/* || die - - # Remove legacy service if not requested (as it will be broken without rpcbind) - if ! use nfsv3; then - rm "${ED}${systemd_systemunitdir}/nfs-server.service" || die - fi - - # bug #368505 - keepdir /var/lib/nfs - # bug #603628 - keepdir /var/lib/nfs/v4recovery - - # No static archives - find "${ED}" -name '*.la' -delete || die -} - -pkg_postinst() { - # Install default xtab and friends if there's none existing. In - # src_install we put them in /usr/lib/nfs for safe-keeping, but - # the daemons actually use the files in /var/lib/nfs. #30486 - local f - for f in "${EROOT}"/usr/$(get_libdir)/nfs/*; do - [[ -e ${EROOT}/var/lib/nfs/${f##*/} ]] && continue - einfo "Copying default ${f##*/} from ${EPREFIX}/usr/$(get_libdir)/nfs to ${EPREFIX}/var/lib/nfs" - cp -pPR "${f}" "${EROOT}"/var/lib/nfs/ - done -} diff --git a/net-fs/nfs-utils/nfs-utils-2.7.1-r1.ebuild b/net-fs/nfs-utils/nfs-utils-2.7.1-r1.ebuild deleted file mode 100644 index ff7994e98bc7..000000000000 --- a/net-fs/nfs-utils/nfs-utils-2.7.1-r1.ebuild +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools linux-info systemd - -DESCRIPTION="NFS client and server daemons" -HOMEPAGE="http://linux-nfs.org/ https://git.linux-nfs.org/?p=steved/nfs-utils.git" - -if [[ ${PV} == *_rc* ]] ; then - MY_PV="$(ver_rs 1- -)" - SRC_URI="http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=snapshot;h=refs/tags/${PN}-${MY_PV};sf=tgz -> ${P}.tar.gz" - S="${WORKDIR}/${PN}-${PN}-${MY_PV}" -else - SRC_URI="https://downloads.sourceforge.net/nfs/${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="caps junction kerberos ldap +libmount +nfsv3 +nfsv4 sasl selinux tcpd +uuid" -REQUIRED_USE="|| ( nfsv3 nfsv4 ) kerberos? ( nfsv4 )" -# bug #315573 -RESTRICT="test" - -# kth-krb doesn't provide the right include -# files, and nfs-utils doesn't build against heimdal either, -# so don't depend on virtual/krb. -# (04 Feb 2005 agriffis) -COMMON_DEPEND=" - dev-libs/libxml2:= - net-libs/libtirpc:= - sys-fs/e2fsprogs - dev-db/sqlite:3 - dev-libs/libevent:= - caps? ( sys-libs/libcap ) - ldap? ( - net-nds/openldap:= - sasl? ( - app-crypt/mit-krb5 - dev-libs/cyrus-sasl:2 - ) - ) - libmount? ( sys-apps/util-linux ) - nfsv3? ( >=net-nds/rpcbind-0.2.4 ) - nfsv4? ( - >=sys-apps/keyutils-1.5.9:= - sys-fs/lvm2 - kerberos? ( - >=net-libs/libtirpc-0.2.4-r1[kerberos] - app-crypt/mit-krb5 - ) - ) - tcpd? ( sys-apps/tcp-wrappers ) - uuid? ( sys-apps/util-linux )" -DEPEND="${COMMON_DEPEND} - elibc_musl? ( sys-libs/queue-standalone ) -" -RDEPEND="${COMMON_DEPEND} - !net-libs/libnfsidmap - selinux? ( - sec-policy/selinux-rpc - nfsv3? ( sec-policy/selinux-rpcbind ) - ) -" -BDEPEND=" - net-libs/rpcsvc-proto - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-2.5.2-no-werror.patch - "${FILESDIR}"/${PN}-udev-sysctl.patch - "${FILESDIR}"/${PN}-2.6.4-C99-inline.patch -) - -pkg_setup() { - linux-info_pkg_setup - - if use nfsv4 && linux_config_exists && ! linux_chkconfig_present CRYPTO_MD5 ; then - ewarn "Your NFS server will be unable to track clients across server restarts!" - ewarn "Please enable CONFIG_CRYPTO_MD5 in your kernel to" - ewarn "support the legacy, in-kernel client tracker." - fi -} - -src_prepare() { - default - - sed \ - -e "/^sbindir/s:= := \"${EPREFIX}\":g" \ - -i utils/*/Makefile.am || die - - eautoreconf -} - -src_configure() { - # Our DEPEND forces this. - export libsqlite3_cv_is_recent=yes - export ac_cv_header_keyutils_h=$(usex nfsv4) - - # SASL is consumed in a purely automagic way - export ac_cv_header_sasl_h=no - export ac_cv_header_sasl_sasl_h=$(usex sasl) - - local myeconfargs=( - --disable-static - --with-statedir="${EPREFIX}"/var/lib/nfs - --enable-tirpc - --with-tirpcinclude="${ESYSROOT}"/usr/include/tirpc/ - --with-pluginpath="${EPREFIX}"/usr/$(get_libdir)/libnfsidmap - --with-rpcgen - --with-systemd="$(systemd_get_systemunitdir)" - --without-gssglue - $(use_enable caps) - --enable-ipv6 - $(use_enable junction) - $(use_enable kerberos gss) - $(use_enable kerberos svcgss) - $(use_enable ldap) - $(use_enable libmount libmount-mount) - $(use_enable nfsv4) - $(use_enable nfsv4 nfsdcld) - $(use_enable nfsv4 nfsdcltrack) - $(use_enable nfsv4 nfsv41) - $(use_enable nfsv4 nfsv4server) - $(use_enable uuid) - $(use_with kerberos krb5 "${ESYSROOT}"/usr) - $(use_with tcpd tcp-wrappers) - ) - econf "${myeconfargs[@]}" -} - -src_compile() { - # Remove compiled files bundled in the tarball - emake clean - - default -} - -src_install() { - default - rm linux-nfs/Makefile* || die - dodoc -r linux-nfs README - - # Don't overwrite existing xtab/etab, install the original - # versions somewhere safe... more info in pkg_postinst - keepdir /var/lib/nfs/{,sm,sm.bak} - mv "${ED}"/var/lib/nfs "${ED}"/usr/$(get_libdir)/ || die - - # Install some client-side binaries in /sbin - dodir /sbin - mv "${ED}"/usr/sbin/rpc.statd "${ED}"/sbin/ || die - - if use nfsv4 ; then - insinto /etc - doins support/nfsidmap/idmapd.conf - - # Install a config file for idmappers in newer kernels. bug #415625 - insinto /etc/request-key.d - echo 'create id_resolver * * /usr/sbin/nfsidmap -t 600 %k %d' > id_resolver.conf - doins id_resolver.conf - fi - - insinto /etc - doins "${FILESDIR}"/exports - keepdir /etc/exports.d - - local f list=() - if use nfsv4 ; then - list+=( rpc.idmapd rpc.pipefs ) - use kerberos && list+=( rpc.gssd rpc.svcgssd ) - fi - - local sedexp=( -e '#placehoder' ) - use nfsv3 || sedexp+=( -e '/need portmap/d' ) - - mkdir -p "${T}/init.d" || die - for f in nfs nfsclient rpc.statd "${list[@]}" ; do - sed "${sedexp[@]}" "${FILESDIR}/${f}.initd" > "${T}/init.d/${f}" || die - doinitd "${T}/init.d/${f}" - done - - local systemd_systemunitdir="$(systemd_get_systemunitdir)" - sed -i \ - -e 's:/usr/sbin/rpc.statd:/sbin/rpc.statd:' \ - "${ED}${systemd_systemunitdir}"/* || die - - # Remove legacy service if not requested (as it will be broken without rpcbind) - if ! use nfsv3; then - rm "${ED}${systemd_systemunitdir}/nfs-server.service" || die - fi - - # bug #368505 - keepdir /var/lib/nfs - # bug #603628 - keepdir /var/lib/nfs/v4recovery - - # No static archives - find "${ED}" -name '*.la' -delete || die -} - -pkg_postinst() { - # Install default xtab and friends if there's none existing. In - # src_install we put them in /usr/lib/nfs for safe-keeping, but - # the daemons actually use the files in /var/lib/nfs. #30486 - local f - for f in "${EROOT}"/usr/$(get_libdir)/nfs/*; do - [[ -e ${EROOT}/var/lib/nfs/${f##*/} ]] && continue - einfo "Copying default ${f##*/} from ${EPREFIX}/usr/$(get_libdir)/nfs to ${EPREFIX}/var/lib/nfs" - cp -pPR "${f}" "${EROOT}"/var/lib/nfs/ - done -} diff --git a/net-fs/samba/Manifest b/net-fs/samba/Manifest index f05d21e43546..db4421d086d8 100644 --- a/net-fs/samba/Manifest +++ b/net-fs/samba/Manifest @@ -6,3 +6,4 @@ DIST samba-4.24.4.tar.gz 43431734 BLAKE2B 7d8406ed473f88a009628b64e070611dbac2b7 DIST samba-4.24.5.tar.gz 43445051 BLAKE2B 4796e3ae5e70c1d11d9326566677f0909423c5aad140309bfd9b3f8a3dedefe49660d0a0d502a681726ed7a961779587c33c9da29ecf69664b00a2ca958e64af SHA512 dadaee50c61cc8076bd5f4e6e3a8be13b6aa6aeff33991277c7f5398ba9dea32e8d966c0206dec9cad240b935768b707f9c9dd6b60c3db433dcf8ddb30134088 DIST samba-4.24.6.tar.gz 43449390 BLAKE2B cd28c61285624de1e45f6f55684adae3df42ca3579106412f4ed58889ebf0ee7e8bb1b7501878910eafebf1884d019f23b3da75b71850cdca8da751f70423e0a SHA512 fb4e4602c0a36ab26ce04457e0ae259eda6f00411468f91227d234385b545e230103c1053820b17193e8f5a1967dc3bf637777e946c72ecbe1f2e82901af737f DIST samba-4.24.7.tar.gz 43450847 BLAKE2B 79f5093db219798081eddadf1c81c0337d97563bbd3f9047f14538c557c61b6d58dd57d97bde957a7d84f61f1fbe547cd85a4f6f1e4bff6fe4b86d0772223501 SHA512 f895baf3c06d0d0371052ae48f44ebc9f953441a8d6fbb6eab223bf1b892dab7be429733d46fa2cbd1088b1cefee601cc99ca97f41b985c47b9846c300af8cce +DIST samba-4.25.0rc2.tar.gz 43568275 BLAKE2B a8ccbcdcaf32eb498544976b69449c88f5d9ebf542ac06292bca21200a4407d7ec643a18b9f29c81d7da504dd09ddbb94474fe47ab1a68bf139713ac11310921 SHA512 5233251e481430003e35671c6054f8645f92f51da022c5c8fd9fc8e972c4821e70e46b5c924ef88cf8e2d69a818a0dba2f96f92afe3faf966ac32fc469b7c0a0 diff --git a/net-fs/samba/samba-4.25.0_rc2.ebuild b/net-fs/samba/samba-4.25.0_rc2.ebuild new file mode 100644 index 000000000000..b64ae110381a --- /dev/null +++ b/net-fs/samba/samba-4.25.0_rc2.ebuild @@ -0,0 +1,400 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="threads(+),xml(+)" +inherit python-single-r1 flag-o-matic waf-utils multilib-minimal linux-info optfeature systemd pam tmpfiles + +DESCRIPTION="Samba Suite Version 4" +HOMEPAGE="https://samba.org/" + +MY_PV="${PV/_rc/rc}" +MY_P="${PN}-${MY_PV}" +if [[ ${PV} == *_rc* ]]; then + SRC_URI="https://download.samba.org/pub/samba/rc/${MY_P}.tar.gz" +else + SRC_URI="https://download.samba.org/pub/samba/stable/${MY_P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-3" +SLOT="0/2.11.0" +IUSE="acl addc ads ceph client cluster cups debug fam glusterfs gpg" +IUSE+=" iprint json ldap llvm-libunwind lmdb pam profiling-data python quota" +IUSE+=" +regedit selinux snapper spotlight syslog system-heimdal +system-mitkrb5" +IUSE+=" systemd test unwind winbind zeroconf" + +# ldap needs ads (bug #941578) +REQUIRED_USE="${PYTHON_REQUIRED_USE} + addc? ( json python !system-mitkrb5 winbind ) + ads? ( acl ldap python winbind ) + cluster? ( ads ) + gpg? ( addc ) + ldap? ( ads ) + spotlight? ( json ) + test? ( python ) + !ads? ( !addc ) + ?? ( system-heimdal system-mitkrb5 ) +" + +# the test suite is messed, it uses system-installed samba +# bits instead of what was built, tests things disabled via use +# flags, and generally just fails to work in a way ebuilds could +# rely on in its current state +RESTRICT="test" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/samba-4.0/policy.h + /usr/include/samba-4.0/dcerpc_server.h + /usr/include/samba-4.0/ctdb.h + /usr/include/samba-4.0/ctdb_client.h + /usr/include/samba-4.0/ctdb_protocol.h + /usr/include/samba-4.0/ctdb_private.h + /usr/include/samba-4.0/ctdb_typesafe_cb.h + /usr/include/samba-4.0/ctdb_version.h +) + +TALLOC_VERSION="2.5.0" +TDB_VERSION="1.4.15" +TEVENT_VERSION="0.17.2" + +COMMON_DEPEND=" + >=app-arch/libarchive-3.1.2:=[${MULTILIB_USEDEP}] + dev-lang/perl:= + dev-libs/icu:=[${MULTILIB_USEDEP}] + dev-libs/libbsd[${MULTILIB_USEDEP}] + dev-libs/libtasn1:=[${MULTILIB_USEDEP}] + dev-libs/popt[${MULTILIB_USEDEP}] + dev-perl/Parse-Yapp + >=net-libs/gnutls-3.4.7:=[${MULTILIB_USEDEP}] + >=net-libs/ngtcp2-1.12.0[gnutls,${MULTILIB_USEDEP}] + >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] + !sys-libs/ldb + sys-libs/libcap[${MULTILIB_USEDEP}] + sys-libs/liburing:=[${MULTILIB_USEDEP}] + sys-libs/ncurses:= + sys-libs/readline:= + >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}] + >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}] + >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}] + virtual/zlib:=[${MULTILIB_USEDEP}] + virtual/libcrypt:=[${MULTILIB_USEDEP}] + virtual/libiconv + $(python_gen_cond_dep ' + addc? ( + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/dnspython:=[${PYTHON_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] + net-dns/bind[gssapi] + ) + ads? ( + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/dnspython:=[${PYTHON_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] + net-dns/bind[gssapi] + ) + ') + acl? ( virtual/acl ) + ceph? ( sys-cluster/ceph ) + cluster? ( net-libs/rpcsvc-proto ) + cups? ( net-print/cups ) + debug? ( dev-util/lttng-ust ) + fam? ( virtual/fam ) + gpg? ( app-crypt/gpgme:= ) + json? ( dev-libs/jansson:= ) + ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) + lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] ) + pam? ( sys-libs/pam ) + python? ( + sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}] + sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}] + sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}] + ) + snapper? ( sys-apps/dbus ) + system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl(-),${MULTILIB_USEDEP}] ) + system-mitkrb5? ( >=app-crypt/mit-krb5-1.19[${MULTILIB_USEDEP}] ) + !system-heimdal? ( !system-mitkrb5? ( sys-apps/keyutils[${MULTILIB_USEDEP}] ) ) + systemd? ( sys-apps/systemd:= ) + unwind? ( + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + !llvm-libunwind? ( sys-libs/libunwind:= ) + ) + zeroconf? ( net-dns/avahi[dbus] ) +" +DEPEND="${COMMON_DEPEND} + dev-perl/JSON + net-libs/libtirpc[${MULTILIB_USEDEP}] + net-libs/rpcsvc-proto + spotlight? ( dev-libs/glib ) + test? ( + >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] + $(python_gen_cond_dep "dev-python/python-subunit[\${PYTHON_USEDEP},${MULTILIB_USEDEP}]" ) + !system-mitkrb5? ( + >=net-dns/resolv_wrapper-1.1.4 + >=net-libs/socket_wrapper-1.1.9 + >=sys-libs/nss_wrapper-1.1.3 + >=sys-libs/uid_wrapper-1.2.1 + ) + )" +RDEPEND="${COMMON_DEPEND} + client? ( net-fs/cifs-utils[ads?] ) + python? ( ${PYTHON_DEPS} ) + selinux? ( sec-policy/selinux-samba ) +" +BDEPEND="${PYTHON_DEPS} + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${PN}-4.18.4-pam.patch + "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch +) + +CONFDIR="${FILESDIR}/4.4" +WAF_BINARY="${S}/buildtools/bin/waf" +SHAREDMODS="" + +pkg_setup() { + # Package fails to build with distcc + export DISTCC_DISABLE=1 + export PYTHONHASHSEED=1 + + python-single-r1_pkg_setup + + SHAREDMODS="$(usev !snapper '!')vfs_snapper" + if use cluster ; then + SHAREDMODS+=",idmap_rid,idmap_tdb2,idmap_ad" + elif use ads ; then + SHAREDMODS+=",idmap_ad" + fi +} + +check_samba_dep_versions() { + actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die) + if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then + eerror "Source talloc version: ${TALLOC_VERSION}" + eerror "Ebuild talloc version: ${actual_talloc_version}" + die "Ebuild needs to fix TALLOC_VERSION!" + fi + + actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tdb/wscript || die) + if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then + eerror "Source tdb version: ${TDB_VERSION}" + eerror "Ebuild tdb version: ${actual_tdb_version}" + die "Ebuild needs to fix TDB_VERSION!" + fi + + actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tevent/wscript || die) + if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then + eerror "Source tevent version: ${TEVENT_VERSION}" + eerror "Ebuild tevent version: ${actual_tevent_version}" + die "Ebuild needs to fix TEVENT_VERSION!" + fi +} + +src_prepare() { + default + + check_samba_dep_versions + + # Unbundle dnspython + sed -i -e '/"dns.resolver":/d' "${S}"/third_party/wscript || die + + # Unbundle iso8601 unless tests are enabled + if ! use test ; then + sed -i -e '/"iso8601":/d' "${S}"/third_party/wscript || die + fi + + # Ugly hackaround for bug #592502 + #cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die + + # bug #943942 + append-cflags -std=gnu17 + + # WAF + multilib_copy_sources +} + +multilib_src_configure() { + # When specifying libs for samba build you must append NONE to the end to + # stop it automatically including things + local bundled_libs="NONE" + if ! use system-heimdal && ! use system-mitkrb5 ; then + bundled_libs="heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE" + fi + + # We "use" bundled cmocka when we're not running tests as we're + # not using it anyway. Means we avoid making users install it for + # no reason. bug #802531 + if ! use test ; then + bundled_libs="cmocka,${bundled_libs}" + fi + + # bug #874633 + if use llvm-libunwind ; then + mkdir -p "${T}"/${ABI}/pkgconfig || die + + local -x PKG_CONFIG_PATH="${T}/${ABI}/pkgconfig:${PKG_CONFIG_PATH}" + + cat <<-EOF > "${T}"/${ABI}/pkgconfig/libunwind-generic.pc || die + exec_prefix=\${prefix} + libdir=/usr/$(get_libdir) + includedir=\${prefix}/include + + Name: libunwind-generic + Description: libunwind generic library + Version: 1.70 + Libs: -L\${libdir} -lunwind + Cflags: -I\${includedir} + EOF + fi + + bundled_libs="libquic,${bundled_libs}" + + local myconf=( + --enable-fhs + --sysconfdir="${EPREFIX}/etc" + --localstatedir="${EPREFIX}/var" + --with-modulesdir="${EPREFIX}/usr/$(get_libdir)/samba" + --with-piddir="${EPREFIX}/run/${PN}" + --bundled-libraries="${bundled_libs}" + --builtin-libraries=NONE + --disable-rpath + --disable-rpath-install + --nopyc + --nopyo + --without-winexe + $(multilib_native_use_with acl acl-support) + $(multilib_native_usex addc '' '--without-ad-dc') + $(multilib_native_use_enable ceph cephfs) + $(multilib_native_use_with cluster cluster-support) + $(multilib_native_use_enable cups) + --without-dmapi + $(multilib_native_use_with fam) + $(multilib_native_use_enable glusterfs) + $(multilib_native_use_with gpg gpgme) + $(multilib_native_use_with json) + $(multilib_native_use_enable iprint) + $(multilib_native_use_with pam) + $(multilib_native_usex pam "--with-pammodulesdir=${EPREFIX}/$(get_libdir)/security" '') + $(multilib_native_use_with quota quotas) + $(multilib_native_use_with regedit) + $(multilib_native_use_enable spotlight) + $(multilib_native_use_with syslog) + $(multilib_native_use_with systemd) + --systemd-install-services + --with-systemddir="$(systemd_get_systemunitdir)" + $(multilib_native_use_with unwind libunwind) + $(multilib_native_use_with winbind) + $(multilib_native_usex python '' '--disable-python') + $(multilib_native_use_enable zeroconf avahi) + $(multilib_native_usex test '--enable-selftest' '') + $(usev system-mitkrb5 "--with-system-mitkrb5 $(multilib_native_usex addc --with-experimental-mit-ad-dc '')") + $(use_with ads) + $(use_with debug lttng) + $(use_with ldap) + $(use_with profiling-data) + --private-libraries='!ldb' + $(usex lmdb '' --without-ldb-lmdb) + # bug #683148 + --jobs 1 + ) + + if multilib_is_native_abi ; then + myconf+=( --with-shared-modules=${SHAREDMODS} ) + else + myconf+=( --with-shared-modules=DEFAULT,!vfs_snapper ) + fi + + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) # bug 914898 + + append-cppflags "-I${ESYSROOT}/usr/include/et" + + waf-utils_src_configure ${myconf[@]} +} + +multilib_src_compile() { + waf-utils_src_compile +} + +multilib_src_test() { + if multilib_is_native_abi ; then + "${WAF_BINARY}" test || die "Test failed" + fi +} + +multilib_src_install() { + waf-utils_src_install + + # Make all .so files executable + find "${ED}" -type f -name "*.so" -exec chmod +x {} + || die + # smbspool_krb5_wrapper must only be accessible to root, bug #880739 + find "${ED}" -type f -name "smbspool_krb5_wrapper" -exec chmod go-rwx {} + || die + + # Remove empty runtime dirs created by build system (bug #892341) + find "${ED}"/{run,var} -type d -empty -delete || die + + if multilib_is_native_abi ; then + # Install ldap schema for server (bug #491002) + if use ldap ; then + insinto /etc/openldap/schema + doins examples/LDAP/samba.schema + fi + + # Create symlink for cups (bug #552310) + if use cups ; then + dosym ../../../bin/smbspool \ + /usr/libexec/cups/backend/smb + fi + + # Install example config file + insinto /etc/samba + doins examples/smb.conf.default + + # Fix paths in example file (bug #603964) + sed \ + -e '/log file =/s@/usr/local/samba/var/@/var/log/samba/@' \ + -e '/include =/s@/usr/local/samba/lib/@/etc/samba/@' \ + -e '/path =/s@/usr/local/samba/lib/@/var/lib/samba/@' \ + -e '/path =/s@/usr/local/samba/@/var/lib/samba/@' \ + -e '/path =/s@/usr/spool/samba@/var/spool/samba@' \ + -i "${ED}"/etc/samba/smb.conf.default || die + + # Install init script and conf.d file + newinitd "${CONFDIR}/samba4.initd-r1" samba + newconfd "${CONFDIR}/samba4.confd" samba + + dotmpfiles "${FILESDIR}"/samba.conf + if ! use addc ; then + rm "${D}/$(systemd_get_systemunitdir)/samba.service" \ + || die + fi + + # Preserve functionality for old gentoo-specific unit names + dosym nmb.service "$(systemd_get_systemunitdir)/nmbd.service" + dosym smb.service "$(systemd_get_systemunitdir)/smbd.service" + dosym winbind.service "$(systemd_get_systemunitdir)/winbindd.service" + + use python && python_optimize + fi + + if use pam && use winbind ; then + newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind + # bugs #376853 and #590374 + insinto /etc/security + doins examples/pam_winbind/pam_winbind.conf + fi +} + +pkg_postinst() { + tmpfiles_process samba.conf + + if use addc || use ads ; then + optfeature "Hide passwords from command line when using samba-tool or samba-gpupdate" dev-python/setproctitle + fi +} diff --git a/net-libs/nodejs/files/nodejs-26.8.2-add-missing-vector-include.patch b/net-libs/nodejs/files/nodejs-26.8.2-add-missing-vector-include.patch new file mode 100644 index 000000000000..19c0f53620b7 --- /dev/null +++ b/net-libs/nodejs/files/nodejs-26.8.2-add-missing-vector-include.patch @@ -0,0 +1,31 @@ +From f7e2c140c883051d3f6dacd4c4daa280a2b36718 Mon Sep 17 00:00:00 2001 +From: Filip Skokan <panva.ip@gmail.com> +Date: Sun, 30 Aug 2026 18:32:42 +0200 +Subject: [PATCH] src: add missing vector include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Filip Skokan <panva.ip@gmail.com> +PR-URL: https://github.com/nodejs/node/pull/65622 +Fixes: https://github.com/nodejs/node/issues/65620 +Reviewed-By: Tim Perry <pimterry@gmail.com> +Reviewed-By: Luigi Pinca <luigipinca@gmail.com> +Reviewed-By: René <contact.9a5d6388@renegade334.me.uk> +Reviewed-By: James M Snell <jasnell@gmail.com> +--- + deps/ncrypto/ncrypto.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/deps/ncrypto/ncrypto.cc b/deps/ncrypto/ncrypto.cc +index 8b707b4f89c4..59006ebf6a84 100644 +--- a/deps/ncrypto/ncrypto.cc ++++ b/deps/ncrypto/ncrypto.cc +@@ -18,6 +18,7 @@ + #include <climits> + #include <cstring> + #include <string_view> ++#include <vector> + #if OPENSSL_VERSION_MAJOR >= 3 + #include <openssl/core_names.h> + #include <openssl/params.h> diff --git a/net-libs/nodejs/nodejs-26.8.2-r1.ebuild b/net-libs/nodejs/nodejs-26.8.2-r1.ebuild new file mode 100644 index 000000000000..d5ab4d16694d --- /dev/null +++ b/net-libs/nodejs/nodejs-26.8.2-r1.ebuild @@ -0,0 +1,316 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CONFIG_CHECK="~ADVISE_SYSCALLS" +PYTHON_COMPAT=( python3_{11..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 + +DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine" +HOMEPAGE="https://nodejs.org/" +LICENSE="Apache-1.1 Apache-2.0 BlueOak-1.0.0 BSD BSD-2 MIT npm? ( Artistic-2 )" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/nodejs/node" + SLOT="0" +else + 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" +REQUIRED_USE="inspector? ( icu ssl ) + npm? ( ssl ) + system-icu? ( icu ) + system-ssl? ( ssl ) + x86? ( cpu_flags_x86_sse2 )" + +RESTRICT="!test? ( test )" + +COMMON_DEPEND=">=app-arch/brotli-1.1.0:= + dev-db/sqlite:3 + >=dev-cpp/ada-4.0.0:= + >=dev-cpp/simdutf-7.3.4:= + >=dev-libs/libuv-1.52.1:= + >=dev-libs/simdjson-4.6.9:= + >=net-dns/c-ares-1.34.8:= + >=net-libs/nghttp2-1.70.0:= + >=net-libs/nghttp3-1.18.0:= + virtual/zlib:= + system-icu? ( >=dev-libs/icu-78:= ) + system-ssl? ( + >=net-libs/ngtcp2-1.25.0:= + >=dev-libs/openssl-3.5.8:0= + ) + !system-ssl? ( >=net-libs/ngtcp2-1.25.0:=[-gnutls] ) + || ( + sys-devel/gcc:* + llvm-runtimes/libatomic-stub + )" +BDEPEND="${PYTHON_DEPS} + app-alternatives/ninja + sys-apps/coreutils + virtual/pkgconfig + test? ( net-misc/curl ) + pax-kernel? ( sys-apps/elfix )" +DEPEND="${COMMON_DEPEND}" +RDEPEND="${COMMON_DEPEND}" + +# These are measured on a loong machine with -ggdb on, and only checked +# if debugging flags are present in CFLAGS. +# +# The final link consumed a little more than 7GiB alone, so 8GiB is the lower +# limit for memory usage. Disk usage was 19.1GiB for the build directory and +# 1.2GiB for the installed image, so we leave some room for architectures with +# fatter binaries and set the disk requirement to 22GiB. +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-vector-include.patch +) + +pkg_pretend() { + if [[ ${MERGE_TYPE} != "binary" ]]; then + if is-flagq "-g*" && ! is-flagq "-g*0" ; then + einfo "Checking for sufficient disk space and memory to build ${PN} with debugging CFLAGS" + check-reqs_pkg_pretend + fi + fi +} + +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() { + tc-export AR CC CXX PKG_CONFIG + export V=1 + export BUILDTYPE=Release + + # 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 + + # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504 + local LIBDIR=$(get_libdir) + sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die + sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die + + # Avoid writing a depfile, not useful + sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die + + sed -i -e "/'-O3'/d" common.gypi node.gypi || die + + # debug builds. change install path, remove optimisations and override buildtype + if use debug; then + sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die + BUILDTYPE=Debug + fi + + # We need to disable mprotect on two files when it builds Bug 694100. + use pax-kernel && + PATCHES+=( "${FILESDIR}"/${PN}-24.1.0-paxmarking.patch ) + + use ppc64 && + PATCHES+=( "${FILESDIR}/${PN}-24.11.1-restore-ppc64be.patch" ) + + default +} + +src_configure() { + xdg_environment_reset + + # LTO compiler flags are handled by configure.py itself + filter-lto + # The warnings are *so* noisy and make build.logs massive + append-cxxflags $(test-flags-CXX -Wno-template-id-cdtor) + # https://bugs.gentoo.org/931514 + use arm64 && append-flags $(test-flags-CXX -mbranch-protection=none) + + local myconf=( + --ninja + --shared-ada + --shared-brotli + --shared-cares + --shared-libuv + --shared-nghttp2 + --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 ) + fi + use inspector || myconf+=( --without-inspector ) + use npm || myconf+=( --without-npm ) + use snapshot || myconf+=( --without-node-snapshot ) + if use ssl; then + use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store ) + else + myconf+=( --without-ssl ) + fi + + local myarch="" + case "${ARCH}:${ABI}" in + *:amd64) myarch="x64";; + *:arm) myarch="arm";; + *:arm64) myarch="arm64";; + loong:lp64*) myarch="loong64";; + riscv:lp64*) myarch="riscv64";; + *:ppc64) myarch="ppc64";; + *:x32) myarch="x32";; + *:x86) myarch="ia32";; + *) myarch="${ABI}";; + esac + + GYP_DEFINES="linux_use_gold_flags=0 + linux_use_bundled_binutils=0 + linux_use_bundled_gold=0" \ + "${EPYTHON}" configure.py \ + --prefix="${EPREFIX}"/usr \ + --dest-cpu=${myarch} \ + "${myconf[@]}" || die +} + +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() { + local LIBDIR="${ED}/usr/$(get_libdir)" + default + + pax-mark -m "${ED}"/usr/bin/node + + if use doc; then + docinto html + dodoc -r "${S}"/doc/* + fi + + if use npm; then + keepdir /etc/npm + echo "NPM_CONFIG_GLOBALCONFIG=${EPREFIX}/etc/npm/npmrc" > "${T}"/50npm + doenvd "${T}"/50npm + + # Install bash completion for `npm` + local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)" + "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}" + newbashcomp "${tmp_npm_completion_file}" npm + + # Move man pages + doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/* + + # Clean up + rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} + + local find_exp="-or -name" + local find_name=() + for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \ + ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \ + "*.bat" "*.cmd"; do + find_name+=( ${find_exp} "${match}" ) + done + + # 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" \) \ + "${find_name[@]}" \ + \) \) -exec rm -rf "{}" \; + fi + + mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die +} + +src_test() { + local drop_tests=( + test/parallel/test-dns.js + test/parallel/test-dns-resolveany-bad-ancount.js + test/parallel/test-dns-setserver-when-querying.js + test/parallel/test-dotenv.js + test/parallel/test-fs-mkdir.js + test/parallel/test-fs-read-stream.js + test/parallel/test-fs-utimes-y2K38.js + test/parallel/test-fs-watch-recursive-add-file.js + test/parallel/test-http2-client-set-priority.js + test/parallel/test-http2-priority-event.js + test/parallel/test-process-euid-egid.js + test/parallel/test-process-get-builtin.mjs + test/parallel/test-process-initgroups.js + 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 + ) + use inspector || + drop_tests+=( + test/parallel/test-inspector-emit-protocol-event.js + test/parallel/test-inspector-network-arbitrary-data.js + test/parallel/test-inspector-network-domain.js + test/parallel/test-inspector-network-fetch.js + test/parallel/test-inspector-network-http.js + test/sequential/test-watch-mode.mjs + ) + rm -f "${drop_tests[@]}" || die "disabling tests failed" + + out/${BUILDTYPE}/cctest || die + "${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die +} + +pkg_postinst() { + if use npm; then + 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/telepathy-glib/files/telepathy-glib-0.24.2-c99.patch b/net-libs/telepathy-glib/files/telepathy-glib-0.24.2-c99.patch new file mode 100644 index 000000000000..0712dd688e9d --- /dev/null +++ b/net-libs/telepathy-glib/files/telepathy-glib-0.24.2-c99.patch @@ -0,0 +1,28 @@ +https://gitlab.freedesktop.org/telepathy/telepathy-glib/-/commit/72412c944b771f3214ddc40fa9dea82cea3a5651 + +From 72412c944b771f3214ddc40fa9dea82cea3a5651 Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA <mtasaka@fedoraproject.org> +Date: Fri, 2 Feb 2024 12:17:44 +0900 +Subject: [PATCH] fix: build fix with -Werror=incompatible-pointer-types + +gcc14 defaults to -Werror=incompatible-pointer-types . +Fix build error with this option. +--- + telepathy-glib/protocol.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/telepathy-glib/protocol.c b/telepathy-glib/protocol.c +index 88fdff382..25b36620b 100644 +--- a/telepathy-glib/protocol.c ++++ b/telepathy-glib/protocol.c +@@ -1791,7 +1791,7 @@ _tp_protocol_parse_manager_file (GKeyFile *file, + i++; + } + +- param_specs = g_ptr_array_new_full (i, tp_value_array_free); ++ param_specs = g_ptr_array_new_full (i, (GDestroyNotify) tp_value_array_free); + + for (key = keys; key != NULL && *key != NULL; key++) + { +-- +GitLab diff --git a/net-libs/telepathy-glib/files/telepathy-glib-0.24.2-glib-tests.patch b/net-libs/telepathy-glib/files/telepathy-glib-0.24.2-glib-tests.patch new file mode 100644 index 000000000000..ebff85795239 --- /dev/null +++ b/net-libs/telepathy-glib/files/telepathy-glib-0.24.2-glib-tests.patch @@ -0,0 +1,35 @@ +https://gitlab.freedesktop.org/telepathy/telepathy-glib/-/commit/aa858698d7ede76b3b4c825ca14b8061c24f14e1 + +From aa858698d7ede76b3b4c825ca14b8061c24f14e1 Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA <mtasaka@fedoraproject.org> +Date: Mon, 4 Sep 2023 17:56:15 +0900 +Subject: [PATCH] test: make test-cm accepted with newer GLib + +With GLib 2.77.3, the key value "foo\;bar" is no longer accepted +with g_key_file_get_string and it returns null string result. + +Modify key value in test file to get it accepted by new GLib. +--- + tests/dbus/telepathy/managers/test_manager_file.manager | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/tests/dbus/telepathy/managers/test_manager_file.manager b/tests/dbus/telepathy/managers/test_manager_file.manager +index 426ad4a7e..bdb3f90f1 100644 +--- a/tests/dbus/telepathy/managers/test_manager_file.manager ++++ b/tests/dbus/telepathy/managers/test_manager_file.manager +@@ -79,11 +79,9 @@ default-triply-escaped-semicolon-in-list = list\\\;of;misc; + param-empty-list = as + default-empty-list = + +-# this is probably technically a Desktop Entry spec violation? +-# we should be permissive, interpreting this as either "foo\;bar" or "foo;bar" +-# seems reasonable ++# the value is "foo\\;bar" + param-escaped-semicolon = s +-default-escaped-semicolon = foo\;bar ++default-escaped-semicolon = foo\\;bar + + # all the other types + param-object = o +-- +GitLab diff --git a/net-libs/telepathy-glib/telepathy-glib-0.24.2-r1.ebuild b/net-libs/telepathy-glib/telepathy-glib-0.24.2-r1.ebuild index 910dc0638bcc..0d5a2a6d1aed 100644 --- a/net-libs/telepathy-glib/telepathy-glib-0.24.2-r1.ebuild +++ b/net-libs/telepathy-glib/telepathy-glib-0.24.2-r1.ebuild @@ -4,7 +4,7 @@ EAPI=8 PYTHON_REQ_USE="xml(+)" -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) inherit gnome2 python-any-r1 vala virtualx @@ -40,6 +40,11 @@ PDEPEND=" net-im/telepathy-mission-control " +PATCHES=( + "${FILESDIR}"/${PN}-0.24.2-glib-tests.patch + "${FILESDIR}"/${PN}-0.24.2-c99.patch +) + src_configure() { use vala && vala_setup diff --git a/net-misc/asterisk-base/Manifest b/net-misc/asterisk-base/Manifest index 0aed01ebcbb1..1a30e5081286 100644 --- a/net-misc/asterisk-base/Manifest +++ b/net-misc/asterisk-base/Manifest @@ -1,2 +1,3 @@ DIST asterisk-base-3.tar.gz 14589 BLAKE2B 854df19a0aa6cbd6c452ec03f8766f166824580f30edbf158f9e23baa451b092388b5f653999cab63d3232d7ff2c1efb7784c8e69d9ea1f2855dd446613ade87 SHA512 e2b53a3db6cb38fcc8456c3c69806452ecdd748f7d5833c6fdc426f436f92b651d69a902f6f588ffc371903c5a1374a9fc0695a74f9b4e47e75df3b1ce50764e DIST asterisk-base-4.tar.gz 14708 BLAKE2B 5c54d65ca7c1de2f24c069a4f666a91c42f3e1f2137ed84aaa61b8fd626b15d87e81d0c2ac6643f8557db06672dab3193a13e55da2c40924f9406fae36ce1b87 SHA512 a450d419ac9d736a0ffc25abd9f6441b72365d9e4156163bd1e536eb84f2cd3efff1a918a20f16479ca979bc571f69de34c7e995f22695a1a34af685b5b2dea7 +DIST asterisk-base-5.tar.gz 14715 BLAKE2B b49fd053d24f80299246c14ae423038fab5e92eb6def687fa989af22429cf45685b406d5bf119b4fbbcca7b0cfea3d30c02512b82f25209235cb4b687f876f10 SHA512 ff8a6fd5c020de7a029a08207f852a199e093bcb0d769245d415d376f1ebe58f7da9a6de72d9f07b716b59941039c77e4090558c9950300723fb4edf272a6a1d diff --git a/net-misc/asterisk-base/asterisk-base-4.ebuild b/net-misc/asterisk-base/asterisk-base-4.ebuild index 73ec196fd4b4..25b33b2e3b1e 100644 --- a/net-misc/asterisk-base/asterisk-base-4.ebuild +++ b/net-misc/asterisk-base/asterisk-base-4.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/jkroonza/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${ LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc x86" RDEPEND="net-misc/asterisk" diff --git a/net-misc/asterisk-base/asterisk-base-5.ebuild b/net-misc/asterisk-base/asterisk-base-5.ebuild new file mode 100644 index 000000000000..73ec196fd4b4 --- /dev/null +++ b/net-misc/asterisk-base/asterisk-base-5.ebuild @@ -0,0 +1,34 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit systemd tmpfiles + +DESCRIPTION="Gentoo Asterisk init scripts" +HOMEPAGE="https://github.com/jkroonza/asterisk-base" +SRC_URI="https://github.com/jkroonza/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86" + +RDEPEND="net-misc/asterisk" + +src_install() { + newinitd initd asterisk + newconfd confd asterisk + dosbin asterisk_wrapper + + systemd_dounit asterisk.service + systemd_install_serviced asterisk.service.conf asterisk.service + + newtmpfiles tmpfiles.conf asterisk.conf + + insinto /etc/logrotate.d + newins logrotate asterisk +} + +pkg_postinst() { + tmpfiles_process asterisk.conf +} diff --git a/net-misc/asterisk-opus/asterisk-opus-20.0.1.3.0-r1.ebuild b/net-misc/asterisk-opus/asterisk-opus-20.0.1.3.0-r1.ebuild new file mode 100644 index 000000000000..2ab82cc12bca --- /dev/null +++ b/net-misc/asterisk-opus/asterisk-opus-20.0.1.3.0-r1.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +DESCRIPTION="OPUS codec and supporting files for asterisk" +HOMEPAGE="https://docs.asterisk.org/Configuration/Codec-Opus/" + +AST_PV="$(ver_cut 1-2)" +MY_PV="$(ver_rs 2 _)" + +SRC_URI="amd64? ( + https://downloads.digium.com/pub/telephony/codec_opus/asterisk-${AST_PV}/x86-64/codec_opus-${MY_PV}-x86_64.tar.gz +) +x86? ( + https://downloads.digium.com/pub/telephony/codec_opus/asterisk-${AST_PV}/x86-32/codec_opus-${MY_PV}-x86_32.tar.gz +)" + +LICENSE="Digium" +SLOT="0/${AST_PV}" +KEYWORDS="-* ~amd64 ~x86" + +RDEPEND="=net-misc/asterisk-${PV%%.*}*" + +RESTRICT="bindist mirror strip" + +S="${WORKDIR}" + +pkg_setup() { + QA_FLAGS_IGNORED="/usr/$(get_libdir)/asterisk/modules/codec_opus.so /usr/$(get_libdir)/asterisk/modules/format_ogg_opus.so" + QA_PREBUILT="${QA_FLAGS_IGNORED}" + use x86 && QA_TEXTRELS="${QA_PREBUILT}" +} + +src_install() { + local arch + + if use x86; then + arch=x86_32 + elif use amd64; then + arch=x86_64 + fi + + dodoc codec_opus-${MY_PV}-${arch}/README + insinto /usr/$(get_libdir)/asterisk/modules/ + doins "codec_opus-${MY_PV}-${arch}/codec_opus.so" + doins "codec_opus-${MY_PV}-${arch}/format_ogg_opus.so" + + insinto /var/lib/asterisk/documentation/thirdparty + doins "codec_opus-${MY_PV}-${arch}/codec_opus_config-en_US.xml" +} diff --git a/net-misc/asterisk-opus/asterisk-opus-23.0.1.3.0.ebuild b/net-misc/asterisk-opus/asterisk-opus-21.0.1.3.0-r1.ebuild index 9be81cf8b1da..000b51e72932 100644 --- a/net-misc/asterisk-opus/asterisk-opus-23.0.1.3.0.ebuild +++ b/net-misc/asterisk-opus/asterisk-opus-21.0.1.3.0-r1.ebuild @@ -21,7 +21,7 @@ RESTRICT="bindist mirror strip" RDEPEND="=net-misc/asterisk-${PV%%.*}*" pkg_setup() { - QA_FLAGS_IGNORED="/usr/$(get_libdir)/asterisk/modules/codec_opus.so" + QA_FLAGS_IGNORED="/usr/$(get_libdir)/asterisk/modules/codec_opus.so /usr/$(get_libdir)/asterisk/modules/format_ogg_opus.so" QA_PREBUILT="${QA_FLAGS_IGNORED}" } @@ -31,6 +31,7 @@ src_install() { dodoc codec_opus-${MY_PV}-${arch}/README insinto /usr/$(get_libdir)/asterisk/modules/ doins "codec_opus-${MY_PV}-${arch}/codec_opus.so" + doins "codec_opus-${MY_PV}-${arch}/format_ogg_opus.so" insinto /var/lib/asterisk/documentation/thirdparty doins "codec_opus-${MY_PV}-${arch}/codec_opus_config-en_US.xml" diff --git a/net-misc/asterisk-opus/asterisk-opus-21.0.1.3.0.ebuild b/net-misc/asterisk-opus/asterisk-opus-22.0.1.3.0-r1.ebuild index b321689d4e9b..000b51e72932 100644 --- a/net-misc/asterisk-opus/asterisk-opus-21.0.1.3.0.ebuild +++ b/net-misc/asterisk-opus/asterisk-opus-22.0.1.3.0-r1.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI="9" DESCRIPTION="OPUS codec and supporting files for asterisk" HOMEPAGE="https://docs.asterisk.org/Configuration/Codec-Opus/" @@ -21,7 +21,7 @@ RESTRICT="bindist mirror strip" RDEPEND="=net-misc/asterisk-${PV%%.*}*" pkg_setup() { - QA_FLAGS_IGNORED="/usr/$(get_libdir)/asterisk/modules/codec_opus.so" + QA_FLAGS_IGNORED="/usr/$(get_libdir)/asterisk/modules/codec_opus.so /usr/$(get_libdir)/asterisk/modules/format_ogg_opus.so" QA_PREBUILT="${QA_FLAGS_IGNORED}" } @@ -31,6 +31,7 @@ src_install() { dodoc codec_opus-${MY_PV}-${arch}/README insinto /usr/$(get_libdir)/asterisk/modules/ doins "codec_opus-${MY_PV}-${arch}/codec_opus.so" + doins "codec_opus-${MY_PV}-${arch}/format_ogg_opus.so" insinto /var/lib/asterisk/documentation/thirdparty doins "codec_opus-${MY_PV}-${arch}/codec_opus_config-en_US.xml" diff --git a/net-misc/asterisk-opus/asterisk-opus-22.0.1.3.0.ebuild b/net-misc/asterisk-opus/asterisk-opus-23.0.1.3.0-r1.ebuild index b321689d4e9b..000b51e72932 100644 --- a/net-misc/asterisk-opus/asterisk-opus-22.0.1.3.0.ebuild +++ b/net-misc/asterisk-opus/asterisk-opus-23.0.1.3.0-r1.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI="9" DESCRIPTION="OPUS codec and supporting files for asterisk" HOMEPAGE="https://docs.asterisk.org/Configuration/Codec-Opus/" @@ -21,7 +21,7 @@ RESTRICT="bindist mirror strip" RDEPEND="=net-misc/asterisk-${PV%%.*}*" pkg_setup() { - QA_FLAGS_IGNORED="/usr/$(get_libdir)/asterisk/modules/codec_opus.so" + QA_FLAGS_IGNORED="/usr/$(get_libdir)/asterisk/modules/codec_opus.so /usr/$(get_libdir)/asterisk/modules/format_ogg_opus.so" QA_PREBUILT="${QA_FLAGS_IGNORED}" } @@ -31,6 +31,7 @@ src_install() { dodoc codec_opus-${MY_PV}-${arch}/README insinto /usr/$(get_libdir)/asterisk/modules/ doins "codec_opus-${MY_PV}-${arch}/codec_opus.so" + doins "codec_opus-${MY_PV}-${arch}/format_ogg_opus.so" insinto /var/lib/asterisk/documentation/thirdparty doins "codec_opus-${MY_PV}-${arch}/codec_opus_config-en_US.xml" diff --git a/net-misc/icecast/icecast-2.5.0.ebuild b/net-misc/icecast/icecast-2.5.0.ebuild index 5051f18aa36f..89dd4abf8666 100644 --- a/net-misc/icecast/icecast-2.5.0.ebuild +++ b/net-misc/icecast/icecast-2.5.0.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://downloads.xiph.org/releases/icecast/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="amd64 ~arm64 ~ppc64 x86" +KEYWORDS="amd64 ~arm64 ~ppc ~ppc64 x86" IUSE="geoip +speex selinux +ssl test +theora +yp" # TODO: few tests fail RESTRICT="test" diff --git a/net-misc/lldpd/lldpd-1.0.22.ebuild b/net-misc/lldpd/lldpd-1.0.22.ebuild index 2af70a330b96..cf03ac3eca07 100644 --- a/net-misc/lldpd/lldpd-1.0.22.ebuild +++ b/net-misc/lldpd/lldpd-1.0.22.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/lldpd/lldpd/releases/download/${PV}/${P}.tar.gz" LICENSE="ISC" SLOT="0/4" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 ~x86" IUSE="cdp doc +dot1 +dot3 edp fdp graph +lldpmed old-kernel sanitizers seccomp sonmp snmp static-libs test readline valgrind xml" RESTRICT="!test? ( test )" diff --git a/net-misc/putty/putty-0.85.ebuild b/net-misc/putty/putty-0.85.ebuild index a22b9a61e19e..b2f98dc864dd 100644 --- a/net-misc/putty/putty-0.85.ebuild +++ b/net-misc/putty/putty-0.85.ebuild @@ -16,7 +16,7 @@ else https://the.earth.li/~sgtatham/${PN}/${PV}/${P}.tar.gz verify-sig? ( https://the.earth.li/~sgtatham/${PN}/${PV}/${P}.tar.gz.gpg ) " - KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="~alpha amd64 ~arm64 ~hppa ppc ppc64 ~riscv ~sparc x86" fi SRC_URI+="https://librecast.net/downloads/gentoo/net-misc/putty/${PN}-icons.tar.bz2" diff --git a/net-misc/r8125/Manifest b/net-misc/r8125/Manifest index 160a1ffc8356..677373eb0008 100644 --- a/net-misc/r8125/Manifest +++ b/net-misc/r8125/Manifest @@ -3,3 +3,4 @@ DIST r8125-9.014.01.tar.bz2 111465 BLAKE2B ae09f27b617422e03484b10dfe7dcee14f58b DIST r8125-9.015.00.tar.bz2 112287 BLAKE2B cadb5fc4fbb633a61284683d6ebb1233692fd496d2c436f7e26352193397cf8e0a23a40b5e3f00273f08ade254d61579474c21a57c5b118aceabd4d1269a2665 SHA512 3dcd3d2a9052738589dc85e7d2ecc79a41e3bd1868c58c370a21d6d6ce9acf758f53e9853fdcf0ef20c28014035ef58934145294269ce758c11e5666f526c008 DIST r8125-9.016.00.tar.bz2 122011 BLAKE2B 00ffd6d2d31c6425c9cce1b8cb6191d712c940677df9038451ff4719d8b8b243b87e2dcfd5d4f6e502ca6be285203a30fbbb9ae8b809100e3b68628b93535f84 SHA512 46d014e5d1790a1a9f184f25d1df1682970cec2f30f25429b89de2ab461639bd0b36d0d13125bd58534fd6589d96c74ec30a668b33d0d444b8ed3c4cc3b41527 DIST r8125-9.016.01.tar.bz2 124146 BLAKE2B 0b7e55d38f716087d66dff9d7ee6ae1cff0e9a082d356c3905aae051ad248ba35c594779fefea6a69cfc1ebc80b4f903f4e48f14e08fbac9738ba6b8c8fbbd98 SHA512 698345dabf9c4aad8759618502be0f09c313793dd1b516b18be08cee7d136f90546f77c8c7da9e3f3fbef1749638524f06ae1a09f5c6058509d8d02c522538b8 +DIST r8125-9.018.00.tar.bz2 124544 BLAKE2B 968c60cc239798088c7b13d3cd186d44cbd6630983152b6e5018c332e1344c639df55168f2e30d5d7bc952818c08883186eb2ea8d51860cd71fcb8a87e915305 SHA512 5c97dc7f7d093089954d6d8f335723f971be7551a608f028bdbebdfd0b60268d1a0ebddaec5e9df8eea5133aecef48864b7345fc1a3894e65878cbd282d38d99 diff --git a/net-misc/r8125/r8125-9.018.00.ebuild b/net-misc/r8125/r8125-9.018.00.ebuild new file mode 100644 index 000000000000..9267f28e09e6 --- /dev/null +++ b/net-misc/r8125/r8125-9.018.00.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-mod-r1 + +DESCRIPTION="r8125 vendor driver for Realtek RTL8125 PCI-E NICs" +HOMEPAGE="https://www.realtek.com/Download/List?cate_id=584" +# Mirrored to avoid captcha +SRC_URI="https://github.com/Karlson2k/r8125/releases/download/${PV}/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="dash down-speed-100 fiber hw-acceleration hw-optim-tx +eee +giga-lite +multi-tx-q ptp +rss s5-keep-mac use-firmware +wol-s5 +wol" + +CONFIG_CHECK="~!R8169" +WARNING_R8169="CONFIG_R8169 is enabled. ${PN} will not be loaded unless kernel driver Realtek 8169 PCI Gigabit Ethernet (CONFIG_R8169) is DISABLED." + +src_prepare() { + default + + # Replace wrong EXTRA_CFLAGS (stopped working with kernels >= 6.15) + # with proper CFLAGS_MODULE (available since 2.6.36). + # Bug 957883 + sed -E -i'' \ + -e 's/(^|[^A-Za-z0-9_])EXTRA_CFLAGS([^A-Za-z0-9_]|$)/\1CFLAGS_MODULE\2/g' \ + src/Makefile || die +} + +src_compile() { + local modlist=( ${PN}=kernel/drivers/net/ethernet/realtek:src ) + local modargs=( + # Build parameters + KERNELDIR="${KV_OUT_DIR}" + # Code build options + ENABLE_DASH_SUPPORT=$(usex dash y n) + ENABLE_FIBER_SUPPORT=$(usex fiber y n) + ENABLE_RSS_SUPPORT=$(usex rss y n) + ENABLE_MULTIPLE_TX_QUEUE=$(usex multi-tx-q y n) + ENABLE_USE_FIRMWARE_FILE=$(usex use-firmware y n) + CONFIG_DOWN_SPEED_100=$(usex down-speed-100 y n) + ENABLE_PTP_SUPPORT=$(usex ptp y n) + ENABLE_PAGE_REUSE=y + ENABLE_RX_PACKET_FRAGMENT=y + # Driver defaults + CONFIG_SOC_LAN=$(usex hw-acceleration y n) + ENABLE_TX_NO_CLOSE=$(usex hw-optim-tx y n) + ENABLE_EEE=$(usex eee y n) + ENABLE_GIGA_LITE=$(usex giga-lite y n) + DISABLE_WOL_SUPPORT=$(usex wol n y) + ENABLE_S5WOL=$(usex wol-s5 y n) + ENABLE_S5_KEEP_CURR_MAC=$(usex s5-keep-mac y n) + ) + + linux-mod-r1_src_compile +} diff --git a/net-nntp/sabnzbd/Manifest b/net-nntp/sabnzbd/Manifest index 184aca267d74..9ba854c4ebd8 100644 --- a/net-nntp/sabnzbd/Manifest +++ b/net-nntp/sabnzbd/Manifest @@ -1 +1,2 @@ DIST SABnzbd-5.1.2-src.tar.gz 5422206 BLAKE2B e46874607001ed7a6bb58aa738b21becc1638dfa2bedd8b2fcfd19c10a1bd9570be11db77f3a92767ebd7112684df3f491f6edb470b4285f298cad8ea63d1003 SHA512 8030acf2a9e0f0360150570c5deca7b71fe523acfa417681772e8ade730f7b161ebfa7bb65627acf05bdebff81d30748ec61eda9fbb9a9eca7aa2894efb4c2f1 +DIST SABnzbd-5.1.3-src.tar.gz 5432583 BLAKE2B beec1bf2ff4448d8e38749cf7ddb0cdfe38a2db3a32fab23a0d1b6ad8cdfe35a086a1d871db145c122e53d55a8e05ada1207e989326d62110d62729d9b698ba9 SHA512 e9b50729adaf87827422e472d00b80637ee150c5a075b6d8fb06a68365df306cfa138e550126c8b02992d10b690fe6608bad5c9e8d313faf8a757f52ae1f30af diff --git a/net-nntp/sabnzbd/sabnzbd-5.1.3.ebuild b/net-nntp/sabnzbd/sabnzbd-5.1.3.ebuild new file mode 100644 index 000000000000..6b789ef612a5 --- /dev/null +++ b/net-nntp/sabnzbd/sabnzbd-5.1.3.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="sqlite" + +inherit optfeature python-single-r1 systemd + +MY_PV="${PV/_alpha/Alpha}" +MY_PV="${MY_PV/_beta/Beta}" +MY_PV="${MY_PV/_rc/RC}" + +MY_P="SABnzbd-${MY_PV}" + +DESCRIPTION="Binary newsgrabber with web-interface" +HOMEPAGE="https://sabnzbd.org/" +SRC_URI="https://github.com/sabnzbd/sabnzbd/releases/download/${MY_PV}/${MY_P}-src.tar.gz" +S="${WORKDIR}/${MY_P}" + +# SABnzbd is GPL-2+ but bundles JS/CSS libraries and Python modules +# with their own licenses (Bootstrap, jQuery, Knockout, rarfile, etc). +LICENSE="GPL-2+ Apache-2.0 CC-BY-3.0 ISC LGPL-2.1+ MIT" +SLOT="0" +KEYWORDS="amd64" +IUSE="test" +RESTRICT="!test? ( test )" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DEPEND=" + acct-user/sabnzbd + acct-group/sabnzbd + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + >=dev-python/apprise-1.9.2[${PYTHON_USEDEP}] + dev-python/chardet[${PYTHON_USEDEP}] + >=dev-python/cheetah3-3.4.0[${PYTHON_USEDEP}] + dev-python/cherrypy[${PYTHON_USEDEP}] + dev-python/configobj[${PYTHON_USEDEP}] + dev-python/cryptography[${PYTHON_USEDEP}] + >=dev-python/feedparser-6.0.11[${PYTHON_USEDEP}] + >=dev-python/guessit-3.8.0[${PYTHON_USEDEP}] + dev-python/hachoir[${PYTHON_USEDEP}] + dev-python/notify2[${PYTHON_USEDEP}] + dev-python/portend[${PYTHON_USEDEP}] + dev-python/puremagic[${PYTHON_USEDEP}] + ~dev-python/rarfile-4.3[${PYTHON_USEDEP}] + ~dev-python/sabctools-9.6.3[${PYTHON_USEDEP}] + ') +" +RDEPEND=" + ${DEPEND} + || ( + >=app-arch/par2cmdline-0.8 + >=app-arch/par2cmdline-turbo-1.1.0 + ) + net-misc/wget +" +BDEPEND=" + test? ( + $(python_gen_cond_dep ' + dev-python/flaky[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/pyfakefs[${PYTHON_USEDEP}] + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + dev-python/pytest-httpbin[${PYTHON_USEDEP}] + dev-python/pytest-httpserver[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/selenium[${PYTHON_USEDEP}] + dev-python/tavalidate[${PYTHON_USEDEP}] + >=dev-python/tavern-3[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] + dev-python/xmltodict[${PYTHON_USEDEP}] + ') + app-arch/7zip + app-arch/unrar + app-arch/unzip + ) +" + +src_test() { + local EPYTEST_IGNORE=( + # network sandbox + tests/test_get_addrinfo.py + tests/test_getipaddress.py + tests/test_internetspeed.py + # Requires chromedriver + tests/test_functional_config.py + tests/test_functional_downloads.py + tests/test_functional_sorting.py + ) + local EPYTEST_DESELECT=( + # network sandbox + 'tests/test_cfg.py::TestValidators::test_validate_host' + 'tests/test_consistency.py::TestWiki' + 'tests/test_downloader.py::TestConnectionStateMachine::test_failed_connect_allows_retry' + 'tests/test_rss.py::TestRSS::test_rss_newznab_parser' + 'tests/test_rss.py::TestRSS::test_rss_nzedb_parser' + 'tests/test_urlgrabber.py::TestBuildRequest::test_http_basic' + 'tests/test_urlgrabber.py::TestBuildRequest::test_https_basic' + # Requires chromedriver + 'tests/test_functional_misc.py::TestShowLogging::test_showlog' + 'tests/test_functional_misc.py::TestQueueRepair::test_queue_repair' + 'tests/test_functional_misc.py::TestDaemonizing::test_daemonizing' + # Runs extract_pot.py which needs the git repo + 'tests/test_functional_misc.py::TestExtractPot::test_extract_pot' + ) + + epytest -s +} + +src_install() { + insinto /usr/share/${PN} + doins -r email icons interfaces locale po sabnzbd scripts tools + + exeinto /usr/share/${PN} + doexe SABnzbd.py + + python_fix_shebang "${ED}"/usr/share/${PN} + python_optimize "${ED}"/usr/share/${PN} + + newinitd "${FILESDIR}"/${PN}-r1.initd ${PN} + newconfd "${FILESDIR}"/${PN}.confd ${PN} + + diropts -o ${PN} -g ${PN} + dodir /etc/${PN} + keepdir /var/log/${PN} + + insinto "/etc/${PN}" + insopts -m 0600 -o "${PN}" -g "${PN}" + newins "${FILESDIR}"/${PN}-r1.ini ${PN}.ini + + dodoc ISSUES.txt README.mkd + + systemd_newunit "${FILESDIR}"/sabnzbd_at.service 'sabnzbd@.service' +} + +pkg_postinst() { + if [[ -z "${REPLACING_VERSIONS}" ]]; then + # This is a new installation + einfo "Default directory: /var/lib/${PN}" + einfo + einfo "To add a user to the sabnzbd group so it can edit SABnzbd+ files, run:" + einfo + einfo " usermod -a -G sabnzbd <user>" + einfo + einfo "By default, SABnzbd will listen on TCP port 8080." + fi + + optfeature "7z archive support" app-arch/7zip + optfeature "rar archive support" app-arch/unrar app-arch/rar + optfeature "zip archive support" app-arch/unzip +} diff --git a/net-p2p/amule/amule-3.0.1.ebuild b/net-p2p/amule/amule-3.0.1.ebuild index a37320cb9ec1..0216173c3100 100644 --- a/net-p2p/amule/amule-3.0.1.ebuild +++ b/net-p2p/amule/amule-3.0.1.ebuild @@ -11,7 +11,7 @@ if [[ ${PV} == 9999 ]] ; then inherit git-r3 else SRC_URI="https://github.com/amule-org/amule/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 ~arm ~mips ~ppc ppc64 ~riscv ~sparc ~x86" + KEYWORDS="~alpha amd64 ~arm ~mips ppc ppc64 ~riscv ~sparc ~x86" fi DESCRIPTION="aMule, the all-platform eMule p2p client" diff --git a/net-proxy/squid/squid-7.7.ebuild b/net-proxy/squid/squid-7.7.ebuild index 3e6b4359340a..893eb0605877 100644 --- a/net-proxy/squid/squid-7.7.ebuild +++ b/net-proxy/squid/squid-7.7.ebuild @@ -28,7 +28,7 @@ fi LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" IUSE="caps gnutls pam ldap samba sasl kerberos nis radius ssl snmp selinux logrotate test ecap" IUSE+=" esi ssl-crtd mysql postgres sqlite systemd perl qos tproxy +htcp valgrind +wccp +wccpv2" RESTRICT="!test? ( test )" diff --git a/perl-core/File-Temp/File-Temp-0.231.200.ebuild b/perl-core/File-Temp/File-Temp-0.231.200.ebuild index 1168d6effb88..b46600d45bde 100644 --- a/perl-core/File-Temp/File-Temp-0.231.200.ebuild +++ b/perl-core/File-Temp/File-Temp-0.231.200.ebuild @@ -10,7 +10,7 @@ inherit perl-module DESCRIPTION="File::Temp can be used to create and open temporary files in a safe way" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="" PATCHES=( diff --git a/profiles/features/wd40/package.use.mask b/profiles/features/wd40/package.use.mask index 673f854757cf..af8c58bebb97 100644 --- a/profiles/features/wd40/package.use.mask +++ b/profiles/features/wd40/package.use.mask @@ -215,6 +215,7 @@ dev-python/ipython nbconvert test dev-python/opentelemetry-sdk test dev-python/sphinx-autodoc-typehints test >=sci-libs/gdal-3.11.3 python +>=app-admin/awscli-2 test # Michał Górny <mgorny@gentoo.org> (2024-02-01) # Need dev-python/trio. diff --git a/profiles/package.mask b/profiles/package.mask index 295306acaf9d..17133bba9c59 100644 --- a/profiles/package.mask +++ b/profiles/package.mask @@ -36,6 +36,17 @@ #--- END OF EXAMPLES --- +# Jaco Kroon <jkroon@gentoo.org> (2026-09-16) +# Intention was for STIR/SHAKEN, which has proven to have extremely limited +# usability outside of NANP. No revdeps. Outdated. Three different APIs and +# unable to properly SLOT. Removal on 2026-10-16. Bugs #929073, #939530. +dev-libs/libjwt + +# Michał Górny <mgorny@gentoo.org> (2026-09-16) +# Used only by dev-python/jupyter-server with Python < 3.12. +# No revdeps left. Removal on 2026-10-16. Bug #982608. +dev-python/overrides + # Lukas Schmelting <lschmelting@posteo.com> (2026-09-06) # Most revdeps still need gexiv2-0.16 compatibility fixes # See: https://bugs.gentoo.org/982084 @@ -451,10 +462,6 @@ dev-qt/qtx11extras:5 # Severe memory leak (bug #953874) =app-i18n/ibus-anthy-1.5.17 -# Alfred Wingate <parona@protonmail.com> (2025-05-17) -# Masked for testing -dev-db/mysql:8.4 - # Norbert Norbiros <norbiros@protonmail.com> (2025-04-01) # Screen v5.0.0 has a lot of regressions # https://lists.gnu.org/archive/html/screen-devel/2024-10/msg00007.html diff --git a/sci-libs/calculix-ccx/Manifest b/sci-libs/calculix-ccx/Manifest new file mode 100644 index 000000000000..bac39743e1a1 --- /dev/null +++ b/sci-libs/calculix-ccx/Manifest @@ -0,0 +1,3 @@ +DIST ccx_2.23.ps.tar.bz2 5181114 BLAKE2B 7b7690109a1c6d55cae461bd60a680c8837f46cb12c95ff43f0f22e421a6f9d45115942037ccf6d4b7ff0066730f32ec3037937c5c4ca1e5dcdb98a8a992ff58 SHA512 9bc8399dba1a9e80f36ffb7076c9e839a8e00f670032b4488f3015597c6e0a28e25e216fe2945b90fa8978d86006f03319563c77d7ce0642121fd47870c4e2d2 +DIST ccx_2.23.src.tar.bz2 1551289 BLAKE2B f198992f3194744d467fa1df732cabefe511219f3afd279e84daa7954715301fc545a890d62474c53952eb9952fd8c2eba11370c85c706ac705dccad98d85de7 SHA512 41f8f54a7d4969ab2a7a152cbe8dc90b70178ba5e74d57fdedd43d8cd46113c8142d3a9e7c3ef5c1df8b0ff16befa6d57852866cf604d99d72765cb52e5a9b8f +DIST ccx_2.23.test.tar.bz2 13468187 BLAKE2B 3e4eb6a98628b40ad0b4b8d870ae9946569368f6a98621705c250aa1b7c20e028dcdc146a79df3f1dd52b1879b263f75db5c10960c339f708bdabdc41b3beaae SHA512 144e7c22113fcde98e995b30305bc43a7de04f1c95503b05fd7e20960218bbfa68ed8858ec74b0b691747b6651c360a18fdb15cea5b9f8e4155a96c02506ed29 diff --git a/sci-libs/calculix-ccx/calculix-ccx-2.23.ebuild b/sci-libs/calculix-ccx/calculix-ccx-2.23.ebuild new file mode 100644 index 000000000000..fa3e153bc757 --- /dev/null +++ b/sci-libs/calculix-ccx/calculix-ccx-2.23.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# TODO: add src_test, check MPI support, unrespected LDFLAGS QA + +inherit flag-o-matic fortran-2 toolchain-funcs + +MY_P="ccx_${PV/_/}" + +DESCRIPTION="A Free Software Three-Dimensional Structural Finite Element Program (Solver)" +HOMEPAGE="https://www.calculix.de" + +SRC_URI=" + https://www.dhondt.de/${MY_P}.src.tar.bz2 + doc? ( + https://www.dhondt.de/${MY_P}.ps.tar.bz2 + ) + examples? ( + https://www.dhondt.de/${MY_P}.test.tar.bz2 + ) +" +S="${WORKDIR}/CalculiX/${MY_P}/src" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="doc examples openmp threads" +RESTRICT="test" # TODO + +RDEPEND=" + >=sci-libs/arpack-3.1.3 + >=sci-libs/spooles-2.2[threads=] + virtual/blas + virtual/lapack +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( + app-text/ghostscript-gpl + ) +" + +PATCHES=( + "${FILESDIR}/${P}-fix-makefile-to-respect-system-settings.patch" + "${FILESDIR}/${P}-return-NULL.patch" +) + +pkg_setup() { + fortran-2_pkg_setup +} + +src_configure() { + # many -Wlto-type-mismatch + filter-lto + + # Technically we currently only need this when arpack is not used. + # Keeping things this way in case we change pkgconfig for arpack + export LAPACK=$($(tc-getPKG_CONFIG) --libs lapack) + + # allow compilation with gcc-10 + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=957064 + if test-flag-FC -fallow-argument-mismatch; then + append-fflags -fallow-argument-mismatch + fi + + append-cflags "-I${ESYSROOT}/usr/include/spooles -DSPOOLES" + if use threads; then + append-cflags "-DUSE_MT" + fi + + if use openmp; then + append-fflags "-fopenmp" + append-cflags "-fopenmp" + fi + + export ARPACKLIB=$($(tc-getPKG_CONFIG) --libs arpack) + append-cflags "-DARPACK" + + export CC="$(tc-getCC)" + export FC="$(tc-getFC)" +} + +src_install () { + dobin "${MY_P}" + dosym -r "/usr/bin/${MY_P}" "/usr/bin/ccx" + + dodoc BUGS LOGBOOK README.INSTALL TODO + if use doc; then + pushd "${S}/../doc" >/dev/null || die + ps2pdf ${MY_P}.ps ${MY_P}.pdf || die "ps2pdf failed" + dodoc ${MY_P}.pdf + popd >/dev/null || die + fi + + if use examples; then + docompress -x /usr/share/doc/${PF}/examples + docinto examples + dodoc -r "${S}"/../test/* + fi +} diff --git a/sci-libs/calculix-ccx/files/calculix-ccx-2.23-fix-makefile-to-respect-system-settings.patch b/sci-libs/calculix-ccx/files/calculix-ccx-2.23-fix-makefile-to-respect-system-settings.patch new file mode 100644 index 000000000000..62c543323e06 --- /dev/null +++ b/sci-libs/calculix-ccx/files/calculix-ccx-2.23-fix-makefile-to-respect-system-settings.patch @@ -0,0 +1,41 @@ +From d80c423c89b79742fad1d1d6762002ed3dcddf09 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Thu, 16 Apr 2026 16:02:24 +0200 +Subject: src/Makefile: fix makefile to respect system settings + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/Makefile b/Makefile +index 3f22129..ceb0ee3 100755 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,6 @@ + +-CFLAGS = -Wall -O2 -I ../../../SPOOLES.2.2 -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DNETWORKOUT +-FFLAGS = -Wall -O2 -cpp ++CFLAGS := -Wall -DARCH="Linux" -DMATRIXSTORAGE -DNETWORKOUT $(CFLAGS) ++FFLAGS := -Wall -cpp $(FFLAGS) + + CC=cc + FC=gfortran +@@ -18,15 +18,10 @@ OCCXF = $(SCCXF:.f=.o) + OCCXC = $(SCCXC:.c=.o) + OCCXMAIN = $(SCCXMAIN:.c=.o) + +-DIR=../../../SPOOLES.2.2 +- +-LIBS = \ +- $(DIR)/spooles.a \ +- ../../../ARPACK/libarpack_INTEL.a \ +- -lpthread -lm -lc ++LIBS = $(ARPACKLIB) $(LAPACK) -lm -lc -lspooles -lpthread -lblas + + ccx_2.23: $(OCCXMAIN) ccx_2.23.a $(LIBS) +- ./date.pl; $(CC) $(CFLAGS) -c ccx_2.23.c; $(FC) -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.23.a $(LIBS) -fopenmp ++ ./date.pl; $(CC) $(CFLAGS) -c ccx_2.23.c; $(FC) $(FFLAGS) -o $@ $(OCCXMAIN) ccx_2.23.a $(LIBS) + + ccx_2.23.a: $(OCCXF) $(OCCXC) + ar vr $@ $? +-- +2.53.0 + diff --git a/sci-libs/calculix-ccx/files/calculix-ccx-2.23-return-NULL.patch b/sci-libs/calculix-ccx/files/calculix-ccx-2.23-return-NULL.patch new file mode 100644 index 000000000000..12f5821f2dd5 --- /dev/null +++ b/sci-libs/calculix-ccx/files/calculix-ccx-2.23-return-NULL.patch @@ -0,0 +1,23 @@ +From ca248322d94b927daf6192bd8c6ac9a9258a84ec Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Thu, 16 Apr 2026 16:08:39 +0200 +Subject: return NULL + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/readnewmesh.c b/readnewmesh.c +index 7cc45f2..52b53cb 100644 +--- a/readnewmesh.c ++++ b/readnewmesh.c +@@ -465,7 +465,7 @@ void readnewmesh(char *jobnamec,ITG *nboun,ITG *nodeboun,ITG *iamboun, + *ipkonp=ipkon;*lakonp=lakon;*iamt1p=iamt1;*ipobodyp=ipobody; + *iprfnp=iprfn;*konrfnp=konrfn;*ratiorfnp=ratiorfn; + +- return NULL; ++ return; + + } + +-- +2.53.0 + diff --git a/sci-libs/calculix-ccx/metadata.xml b/sci-libs/calculix-ccx/metadata.xml new file mode 100644 index 000000000000..11739a290d5f --- /dev/null +++ b/sci-libs/calculix-ccx/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <upstream> + <remote-id type="github">Dhondtguido/CalculiX</remote-id> + </upstream> +</pkgmetadata> diff --git a/sci-libs/cantera/Manifest b/sci-libs/cantera/Manifest index b822b61eeaf8..323ce4337481 100644 --- a/sci-libs/cantera/Manifest +++ b/sci-libs/cantera/Manifest @@ -1,5 +1,2 @@ -DIST cantera-3.0.1.tar.gz 2451841 BLAKE2B b05771021a81d5266dfed382e2a6357e5b70653c6d9cfb5f03a6755095f4f8f4e7c0f78b79e0bf131c01fefce46bbc647c790ee412b6457c515cda39d4fc3054 SHA512 fa993b33867c6c0a0ca539f52116c4cdea739dfcd30deb5d2f66042f290f7f2f60112d7a37c38fbd8a38a119e5af00a7a85fd80b6e36388202b666be0ddd7715 -DIST cantera-3.1.0.tar.gz 2605640 BLAKE2B 6912b4e6b96ff71f02484a8fa051f8d34d0fc24c933e08e129531c6fe10e80fea74fcf6a6f7b00736de7b6ed5d4ab483f37a51b532d9bf154646546a8856e2a2 SHA512 0400a01ed0e244e6a34c9c04ffd5174ce6632c713c9bf003ab96e22b6f5a62713ee6a7eb07d7ae614e9f4e303e17df7fd234d66a48e43e46ede0246bb2bac52b -DIST cantera-3.1.0_example_data.tar.gz 244545 BLAKE2B c341a7d530ad2486660b1dfe870f6ddd49280101bc7e98d3a88dea3aaaab0ae6c25383746f688164a04385a462a513f706d0ee248a675806de22df467d4f074f SHA512 a6171a106460f8b7a84bf825db38826444c30f921ba27896a50e1b52177550deaa5f66e11f6f91a2b91c4023e3dfb55b46233d2b6176afa771154dd81f8b34ab DIST cantera-3.2.0.tar.gz 2817937 BLAKE2B 5e6058fb57c05315661f6298f6f4384d266510221e1bc5c8b2b7041b11a6fab0d588c87d05c61543a87ac98fea01763f68614c25948783e8fa17a2a3a7ca2846 SHA512 d587029567ebc4685d03c811fbcc56f676e2f29270b8cb69d22e2518911db2bdfe40c7683d822c09c0a723925479b247beae44a3edc07c86a48e67d2bad628b8 DIST cantera-3.2.0_example_data.tar.gz 260526 BLAKE2B 2c1ff2430bc42867e6dc41cb0677382139fed152e022cae0b94597f8962181d1c46013818344429114584826c7e6dbe58fd9854a5f3d46fd966fe9fb248cb207 SHA512 940a16f69975b7171d56a1d8c89bc0d8e2e306e8be041974bdd33f4061dca4c172555d1886785f294f3b009856b4112e95870c4b891a9153529c94747fca936f diff --git a/sci-libs/cantera/cantera-3.0.1-r1.ebuild b/sci-libs/cantera/cantera-3.0.1-r1.ebuild deleted file mode 100644 index d19a3daf375d..000000000000 --- a/sci-libs/cantera/cantera-3.0.1-r1.ebuild +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..13} ) - -FORTRAN_NEEDED=fortran -FORTRAN_STANDARD="77 90" - -inherit flag-o-matic fortran-2 python-single-r1 scons-utils toolchain-funcs - -DESCRIPTION="Object-oriented tool suite for chemical kinetics, thermodynamics, and transport" -HOMEPAGE="https://www.cantera.org" -SRC_URI="https://github.com/Cantera/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="amd64 ~x86" -IUSE="fortran hdf5 lapack +python test" -RESTRICT="!test? ( test )" - -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} -" - -RDEPEND=" - ${PYTHON_DEPS} - dev-cpp/eigen:= - dev-cpp/yaml-cpp - hdf5? ( sci-libs/highfive ) - !lapack? ( sci-libs/sundials:0= ) - lapack? ( - >=sci-libs/sundials-6.5.0:0=[lapack?] - virtual/lapack - ) - python? ( - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/ruamel-yaml[${PYTHON_USEDEP}] - ') - ) -" - -DEPEND=" - ${RDEPEND} - dev-libs/boost:= - <dev-libs/libfmt-11 - python? ( - $(python_gen_cond_dep ' - dev-python/cython[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - ') - ) - test? ( - >=dev-cpp/gtest-1.11.0 - python? ( - $(python_gen_cond_dep ' - dev-python/h5py[${PYTHON_USEDEP}] - dev-python/pandas[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/scipy[${PYTHON_USEDEP}] - ') - ) - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-3.0.0_env.patch" -) - -pkg_setup() { - fortran-2_pkg_setup - python-single-r1_pkg_setup -} - -## Full list of configuration options of Cantera is presented here: -## http://cantera.org/docs/sphinx/html/compiling/config-options.html -src_configure() { - # -Werror=odr, -Werror=lto-type-mismatch - # https://github.com/Cantera/cantera/issues/1783 - filter-lto - - scons_vars=( - AR="$(tc-getAR)" - CC="$(tc-getCC)" - CXX="$(tc-getCXX)" - cc_flags="${CXXFLAGS}" - cxx_flags="-std=c++17" - debug="no" - FORTRAN="$(tc-getFC)" - FORTRANFLAGS="${FCFLAGS}" - optimize_flags="-Wno-inline" - renamed_shared_libraries="no" - use_pch="no" - ## In some cases other order can break the detection of right location of Boost: ## - system_fmt="y" - system_sundials="y" - system_eigen="y" - system_yamlcpp="y" - hdf_support=$(usex hdf5 y n) - system_blas_lapack=$(usex lapack y n) - env_vars="all" - extra_inc_dirs="/usr/include/eigen3" - use_rpath_linkage="yes" - extra_lib_dirs="/usr/$(get_libdir)/${PN}" - ) - use hdf5 && scons_vars+=( system_highfive="y" ) - use lapack && scons_vars+=( blas_lapack_libs="lapack,blas" ) - use test || scons_vars+=( googletest="none" ) - - scons_targets=( - f90_interface=$(usex fortran y n) - ) - - if use python ; then - scons_targets+=( python_package="full" python_cmd="${EPYTHON}" ) - else - scons_targets+=( python_package="none" ) - fi -} - -src_compile() { - escons build "${scons_vars[@]}" "${scons_targets[@]}" prefix="/usr" -} - -src_test() { - escons test -} - -src_install() { - escons install stage_dir="${D}" libdirname="$(get_libdir)" - if ! use python ; then - rm -r "${D}/usr/share/man" || die "Can't remove man files." - else - # Run the byte-compile of modules - python_optimize "${D}$(python_get_sitedir)/${PN}" - fi - - # User could remove this line if require static libs for development purpose - find "${ED}" -name '*.a' -delete || die -} - -pkg_postinst() { - local post_msg=$(usex fortran "and Fortran " "") - elog "C++ ${post_msg}samples are installed to '/usr/share/${PN}/samples/' directory." -} diff --git a/sci-libs/cantera/cantera-3.0.1-r2.ebuild b/sci-libs/cantera/cantera-3.0.1-r2.ebuild deleted file mode 100644 index dcab9a4a47f9..000000000000 --- a/sci-libs/cantera/cantera-3.0.1-r2.ebuild +++ /dev/null @@ -1,149 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..13} ) - -FORTRAN_NEEDED=fortran -FORTRAN_STANDARD="77 90" - -inherit flag-o-matic fortran-2 python-single-r1 scons-utils toolchain-funcs - -DESCRIPTION="Object-oriented tool suite for chemical kinetics, thermodynamics, and transport" -HOMEPAGE="https://www.cantera.org" -SRC_URI="https://github.com/Cantera/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="fortran hdf5 lapack +python test" -RESTRICT="!test? ( test )" - -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} -" - -RDEPEND=" - ${PYTHON_DEPS} - dev-cpp/eigen:= - dev-cpp/yaml-cpp - hdf5? ( sci-libs/highfive ) - !lapack? ( sci-libs/sundials:0= ) - lapack? ( - >=sci-libs/sundials-6.5.0:0=[lapack?] - virtual/lapack - ) - python? ( - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/ruamel-yaml[${PYTHON_USEDEP}] - ') - ) -" - -DEPEND=" - ${RDEPEND} - dev-libs/boost:= - dev-libs/libfmt - python? ( - $(python_gen_cond_dep ' - dev-python/cython[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - ') - ) - test? ( - >=dev-cpp/gtest-1.11.0 - python? ( - $(python_gen_cond_dep ' - dev-python/h5py[${PYTHON_USEDEP}] - dev-python/pandas[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/scipy[${PYTHON_USEDEP}] - ') - ) - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-3.0.0_env.patch" - "${FILESDIR}/${P}_fix_fmt_with_c++20.patch" - "${FILESDIR}/${P}_add_fmt11_support.patch" -) - -pkg_setup() { - fortran-2_pkg_setup - python-single-r1_pkg_setup -} - -## Full list of configuration options of Cantera is presented here: -## http://cantera.org/docs/sphinx/html/compiling/config-options.html -src_configure() { - # -Werror=odr, -Werror=lto-type-mismatch - # https://github.com/Cantera/cantera/issues/1783 - filter-lto - - scons_vars=( - AR="$(tc-getAR)" - CC="$(tc-getCC)" - CXX="$(tc-getCXX)" - cc_flags="${CXXFLAGS}" - cxx_flags="-std=c++20" - debug="no" - FORTRAN="$(tc-getFC)" - FORTRANFLAGS="${FCFLAGS}" - optimize_flags="-Wno-inline" - renamed_shared_libraries="no" - use_pch="no" - ## In some cases other order can break the detection of right location of Boost: ## - system_fmt="y" - system_sundials="y" - system_eigen="y" - system_yamlcpp="y" - hdf_support=$(usex hdf5 y n) - system_blas_lapack=$(usex lapack y n) - env_vars="all" - extra_inc_dirs="/usr/include/eigen3" - use_rpath_linkage="yes" - extra_lib_dirs="/usr/$(get_libdir)/${PN}" - ) - use hdf5 && scons_vars+=( system_highfive="y" ) - use lapack && scons_vars+=( blas_lapack_libs="lapack,blas" ) - use test || scons_vars+=( googletest="none" ) - - scons_targets=( - f90_interface=$(usex fortran y n) - ) - - if use python ; then - scons_targets+=( python_package="full" python_cmd="${EPYTHON}" ) - else - scons_targets+=( python_package="none" ) - fi -} - -src_compile() { - escons build "${scons_vars[@]}" "${scons_targets[@]}" prefix="/usr" -} - -src_test() { - escons test -} - -src_install() { - escons install stage_dir="${D}" libdirname="$(get_libdir)" - if ! use python ; then - rm -r "${D}/usr/share/man" || die "Can't remove man files." - else - # Run the byte-compile of modules - python_optimize "${D}$(python_get_sitedir)/${PN}" - fi - - # User could remove this line if require static libs for development purpose - find "${ED}" -name '*.a' -delete || die -} - -pkg_postinst() { - local post_msg=$(usex fortran "and Fortran " "") - elog "C++ ${post_msg}samples are installed to '/usr/share/${PN}/samples/' directory." -} diff --git a/sci-libs/cantera/cantera-3.1.0-r1.ebuild b/sci-libs/cantera/cantera-3.1.0-r1.ebuild deleted file mode 100644 index 8f5a16b17778..000000000000 --- a/sci-libs/cantera/cantera-3.1.0-r1.ebuild +++ /dev/null @@ -1,156 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..14} ) - -FORTRAN_NEEDED=fortran -FORTRAN_STANDARD="77 90" - -inherit flag-o-matic fortran-2 python-single-r1 scons-utils toolchain-funcs - -DESCRIPTION="Object-oriented tool suite for chemical kinetics, thermodynamics, and transport" -HOMEPAGE="https://www.cantera.org" -SRC_URI=" - https://github.com/Cantera/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz - https://github.com/Cantera/cantera-example-data/archive/refs/tags/v${PV}.tar.gz -> ${P}_example_data.tar.gz -" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="fortran hdf5 lapack +python test" -RESTRICT="!test? ( test )" - -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} -" - -RDEPEND=" - ${PYTHON_DEPS} - dev-cpp/eigen:= - dev-cpp/yaml-cpp - hdf5? ( sci-libs/highfive ) - !lapack? ( sci-libs/sundials:0= ) - lapack? ( - >=sci-libs/sundials-6.5.0:0=[lapack?] - virtual/lapack - ) - python? ( - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/ruamel-yaml[${PYTHON_USEDEP}] - ') - ) -" - -DEPEND=" - ${RDEPEND} - dev-libs/boost:= - dev-libs/libfmt - python? ( - $(python_gen_cond_dep ' - dev-python/cython[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - ') - ) - test? ( - >=dev-cpp/gtest-1.11.0 - python? ( - $(python_gen_cond_dep ' - dev-python/h5py[${PYTHON_USEDEP}] - dev-python/pandas[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/scipy[${PYTHON_USEDEP}] - ') - ) - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-3.1.0_env.patch" - "${FILESDIR}/${PN}-3.1.0_enable_py3.14_packaging.patch" -) - -src_unpack() { - default - mv -T "${WORKDIR}/${PN}-example-data-${PV}" "${S}"/data/example_data || die -} - -pkg_setup() { - fortran-2_pkg_setup - python-single-r1_pkg_setup -} - -## Full list of configuration options of Cantera is presented here: -## https://cantera.org/3.1/develop/compiling/config-options.html -src_configure() { - # -Werror=odr, -Werror=lto-type-mismatch - # https://github.com/Cantera/cantera/issues/1783 - filter-lto - - scons_vars=( - AR="$(tc-getAR)" - CC="$(tc-getCC)" - CXX="$(tc-getCXX)" - cc_flags="${CXXFLAGS}" - cxx_flags="-std=c++20" - debug="no" - FORTRAN="$(tc-getFC)" - FORTRANFLAGS="${FCFLAGS}" - optimize_flags="-Wno-inline" - renamed_shared_libraries="no" - use_pch="no" - ## In some cases other order can break the detection of right location of Boost: ## - system_fmt="y" - system_sundials="y" - system_eigen="y" - system_yamlcpp="y" - hdf_support=$(usex hdf5 y n) - system_blas_lapack=$(usex lapack y n) - env_vars="all" - extra_inc_dirs="/usr/include/eigen3" - use_rpath_linkage="yes" - extra_lib_dirs="/usr/$(get_libdir)/${PN}" - ) - use hdf5 && scons_vars+=( system_highfive="y" ) - use lapack && scons_vars+=( blas_lapack_libs="lapack,blas" ) - use test || scons_vars+=( googletest="none" ) - - scons_targets=( - f90_interface=$(usex fortran y n) - ) - - if use python ; then - scons_targets+=( python_package="y" python_cmd="${EPYTHON}" ) - else - scons_targets+=( python_package="n" ) - fi -} - -src_compile() { - escons build "${scons_vars[@]}" "${scons_targets[@]}" prefix="/usr" -} - -src_test() { - escons test -} - -src_install() { - escons install stage_dir="${D}" libdirname="$(get_libdir)" - if ! use python ; then - rm -r "${D}/usr/share/man" || die "Can't remove man files." - else - # Run the byte-compile of modules - python_optimize "${D}$(python_get_sitedir)/${PN}" - fi - - # User could remove this line if require static libs for development purpose - find "${ED}" -name '*.a' -delete || die -} - -pkg_postinst() { - local post_msg=$(usex fortran "and Fortran " "") - elog "C++ ${post_msg}samples are installed to '/usr/share/${PN}/samples/' directory." -} diff --git a/sci-libs/cantera/cantera-3.1.0.ebuild b/sci-libs/cantera/cantera-3.2.0-r1.ebuild index 970f6faaa334..1a5ad3dc403d 100644 --- a/sci-libs/cantera/cantera-3.1.0.ebuild +++ b/sci-libs/cantera/cantera-3.2.0-r1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{12..13} ) +PYTHON_COMPAT=( python3_{12..14} ) FORTRAN_NEEDED=fortran FORTRAN_STANDARD="77 90" @@ -20,7 +20,7 @@ SRC_URI=" LICENSE="BSD" SLOT="0" KEYWORDS="amd64 ~x86" -IUSE="fortran hdf5 lapack +python test" +IUSE="fortran hdf5 +python test" RESTRICT="!test? ( test )" REQUIRED_USE=" @@ -31,15 +31,11 @@ RDEPEND=" ${PYTHON_DEPS} dev-cpp/eigen:= dev-cpp/yaml-cpp + sci-libs/sundials:0= hdf5? ( sci-libs/highfive ) - !lapack? ( sci-libs/sundials:0= ) - lapack? ( - >=sci-libs/sundials-6.5.0:0=[lapack?] - virtual/lapack - ) python? ( $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] + <dev-python/numpy-2.4.0[${PYTHON_USEDEP}] dev-python/ruamel-yaml[${PYTHON_USEDEP}] ') ) @@ -47,6 +43,7 @@ RDEPEND=" DEPEND=" ${RDEPEND} + >=app-text/doxygen-1.13.0[dot] dev-libs/boost:= dev-libs/libfmt python? ( @@ -69,7 +66,7 @@ DEPEND=" " PATCHES=( - "${FILESDIR}/${PN}-3.1.0_env.patch" + "${FILESDIR}/${P}_env.patch" ) src_unpack() { @@ -83,7 +80,7 @@ pkg_setup() { } ## Full list of configuration options of Cantera is presented here: -## https://cantera.org/3.1/develop/compiling/config-options.html +## https://cantera.org/3.2/develop/compiling/config-options.html src_configure() { # -Werror=odr, -Werror=lto-type-mismatch # https://github.com/Cantera/cantera/issues/1783 @@ -102,19 +99,18 @@ src_configure() { renamed_shared_libraries="no" use_pch="no" ## In some cases other order can break the detection of right location of Boost: ## + system_blas_lapack="n" system_fmt="y" system_sundials="y" system_eigen="y" system_yamlcpp="y" hdf_support=$(usex hdf5 y n) - system_blas_lapack=$(usex lapack y n) env_vars="all" extra_inc_dirs="/usr/include/eigen3" use_rpath_linkage="yes" extra_lib_dirs="/usr/$(get_libdir)/${PN}" ) use hdf5 && scons_vars+=( system_highfive="y" ) - use lapack && scons_vars+=( blas_lapack_libs="lapack,blas" ) use test || scons_vars+=( googletest="none" ) scons_targets=( diff --git a/sci-libs/cantera/cantera-3.2.0.ebuild b/sci-libs/cantera/cantera-3.2.0-r2.ebuild index 32891771dbbc..2b855c17c9e1 100644 --- a/sci-libs/cantera/cantera-3.2.0.ebuild +++ b/sci-libs/cantera/cantera-3.2.0-r2.ebuild @@ -19,8 +19,8 @@ SRC_URI=" LICENSE="BSD" SLOT="0" -KEYWORDS="amd64 ~x86" -IUSE="fortran hdf5 lapack +python test" +KEYWORDS="~amd64 ~x86" +IUSE="fortran hdf5 +python test" RESTRICT="!test? ( test )" REQUIRED_USE=" @@ -31,12 +31,8 @@ RDEPEND=" ${PYTHON_DEPS} dev-cpp/eigen:= dev-cpp/yaml-cpp + sci-libs/sundials:0= hdf5? ( sci-libs/highfive ) - !lapack? ( sci-libs/sundials:0= ) - lapack? ( - >=sci-libs/sundials-6.5.0:0=[lapack?] - virtual/lapack - ) python? ( $(python_gen_cond_dep ' dev-python/numpy[${PYTHON_USEDEP}] @@ -70,7 +66,8 @@ DEPEND=" " PATCHES=( - "${FILESDIR}/${PN}-3.1.0_env.patch" + "${FILESDIR}/${P}_env.patch" + "${FILESDIR}/${P}_fix_species_slicing_error_numpy-2.4.patch" ) src_unpack() { @@ -103,19 +100,18 @@ src_configure() { renamed_shared_libraries="no" use_pch="no" ## In some cases other order can break the detection of right location of Boost: ## + system_blas_lapack="n" system_fmt="y" system_sundials="y" system_eigen="y" system_yamlcpp="y" hdf_support=$(usex hdf5 y n) - system_blas_lapack=$(usex lapack y n) env_vars="all" extra_inc_dirs="/usr/include/eigen3" use_rpath_linkage="yes" extra_lib_dirs="/usr/$(get_libdir)/${PN}" ) use hdf5 && scons_vars+=( system_highfive="y" ) - use lapack && scons_vars+=( blas_lapack_libs="lapack,blas" ) use test || scons_vars+=( googletest="none" ) scons_targets=( diff --git a/sci-libs/cantera/files/cantera-3.0.0_env.patch b/sci-libs/cantera/files/cantera-3.0.0_env.patch deleted file mode 100644 index cfc2874250e4..000000000000 --- a/sci-libs/cantera/files/cantera-3.0.0_env.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -Naur a/SConstruct b/SConstruct ---- a/SConstruct -+++ b/SConstruct -@@ -819,7 +819,7 @@ - toolchain = ["default"] - - env = Environment(tools=toolchain+["textfile", "subst", "recursiveInstall", "UnitsInterfaceBuilder", "wix", "gch"], -- ENV={"PATH": os.environ["PATH"]}, -+ ENV={'PATH': os.environ['PATH'], 'CCACHE_DIR': os.environ.get('CCACHE_DIR','')}, - toolchain=toolchain, - **extraEnvArgs) - -@@ -970,11 +974,7 @@ - env["CPU"] = get_processor_name() - logger.info(f"Compiling on {env['CPU']!r}") - --try: -- env["git_commit"] = get_command_output("git", "rev-parse", "--short", "HEAD") -- logger.info(f"Building Cantera from git commit {env['git_commit']!r}") --except (subprocess.CalledProcessError, FileNotFoundError): -- env["git_commit"] = "unknown" -+env["git_commit"] = "unknown" - - # Print values of all build options: - # the (updated) "cantera.conf" combines all options that were specified by the user -diff -Naur a/src/SConscript b/src/SConscript ---- a/src/SConscript -+++ b/src/SConscript -@@ -89,7 +89,7 @@ - shim = pyenv.SharedObject("extensions/pythonShim.cpp") - pylibname = f"../lib/cantera_python{pyenv['py_version_short'].replace('.', '_')}" - lib = build(pyenv.SharedLibrary(pylibname, shim, SPAWN=get_spawn(pyenv))) -- install("$inst_shlibdir", lib) -+ install("$inst_shlibdir/cantera", lib) - - - # build the Cantera static library diff --git a/sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch b/sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch deleted file mode 100644 index 7e0d5333a105..000000000000 --- a/sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch +++ /dev/null @@ -1,46 +0,0 @@ -This is upstream patch with removed changes for "doc/sphinx/develop/compiling/dependencies.md" file -Upstream issue: https://github.com/Cantera/cantera/issues/1735 -Gentoo issue: https://bugs.gentoo.org/945800 - -From c8f190928fd7a074944f0f4c58661f84a282a35e Mon Sep 17 00:00:00 2001 -From: Ray Speth <speth@mit.edu> -Date: Wed, 24 Jul 2024 20:12:18 -0400 -Subject: [PATCH] Add support for fmt 11.0 - -Resolves #1735 ---- - SConstruct | 2 +- - doc/sphinx/develop/compiling/dependencies.md | 2 +- - include/cantera/base/fmt.h | 8 ++++++++ - 3 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/SConstruct b/SConstruct -index 3863fe3a32..0b607ac891 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -216,7 +216,7 @@ config_options = [ - options with spaces, for example, "cxx_flags='-g -Wextra -O3 --std=c++14'" - """, - { -- "cl": "/EHsc /std:c++17", -+ "cl": "/EHsc /std:c++17 /utf-8", - "default": "-std=c++17" - }), - Option( -diff --git a/include/cantera/base/fmt.h b/include/cantera/base/fmt.h -index 1e0b3a0423..6b4d734fe3 100644 ---- a/include/cantera/base/fmt.h -+++ b/include/cantera/base/fmt.h -@@ -42,4 +42,12 @@ void fmt_append(fmt::memory_buffer& b, const std::string& tmpl, Args... args) { - } - #endif - -+#if FMT_VERSION > 100000 -+ #if CT_USE_SYSTEM_FMT -+ #include <fmt/ranges.h> -+ #else -+ #include <fmt/join.h> -+ #endif -+#endif -+ - #endif diff --git a/sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch b/sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch deleted file mode 100644 index 3b6b3da50a53..000000000000 --- a/sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch +++ /dev/null @@ -1,323 +0,0 @@ -This is upstream patch. -Upstream issue: https://github.com/Cantera/cantera/issues/1711 - -From edc8243577020b7dd6cd0fd85285cc8ca043b5ea Mon Sep 17 00:00:00 2001 -From: Ray Speth <speth@mit.edu> -Date: Wed, 19 Jun 2024 00:09:02 -0400 -Subject: [PATCH] Fix usage of fmt when compiling in C++20 mode - -Resolves #1711 ---- - include/cantera/base/AnyMap.h | 6 ++-- - include/cantera/base/ctexceptions.h | 2 +- - include/cantera/base/fmt.h | 8 ++--- - include/cantera/base/global.h | 8 ++--- - src/base/AnyMap.cpp | 4 +-- - src/base/SolutionArray.cpp | 51 ++++++++++++++++------------- - src/thermo/PureFluidPhase.cpp | 2 +- - src/thermo/ThermoPhase.cpp | 2 +- - 8 files changed, 46 insertions(+), 37 deletions(-) - -diff --git a/include/cantera/base/AnyMap.h b/include/cantera/base/AnyMap.h -index 81ac0071a7..b1f0747f33 100644 ---- a/include/cantera/base/AnyMap.h -+++ b/include/cantera/base/AnyMap.h -@@ -746,7 +746,8 @@ class InputFileError : public CanteraError - : CanteraError( - procedure, - formatError( -- (sizeof...(args) == 0) ? message : fmt::format(message, args...), -+ (sizeof...(args) == 0) ? message -+ : fmt::format(fmt::runtime(message), args...), - node.m_line, node.m_column, node.m_metadata)) - { - } -@@ -761,7 +762,8 @@ class InputFileError : public CanteraError - : CanteraError( - procedure, - formatError2( -- (sizeof...(args) == 0) ? message : fmt::format(message, args...), -+ (sizeof...(args) == 0) ? message -+ : fmt::format(fmt::runtime(message), args...), - node1.m_line, node1.m_column, node1.m_metadata, - node2.m_line, node2.m_column, node2.m_metadata)) - { -diff --git a/include/cantera/base/ctexceptions.h b/include/cantera/base/ctexceptions.h -index fb21d3ef22..476e16bf46 100644 ---- a/include/cantera/base/ctexceptions.h -+++ b/include/cantera/base/ctexceptions.h -@@ -86,7 +86,7 @@ class CanteraError : public std::exception - if (sizeof...(args) == 0) { - msg_ = msg; - } else { -- msg_ = fmt::format(msg, args...); -+ msg_ = fmt::format(fmt::runtime(msg), args...); - } - } - -diff --git a/include/cantera/base/fmt.h b/include/cantera/base/fmt.h -index 8341be115e..f613e17b31 100644 ---- a/include/cantera/base/fmt.h -+++ b/include/cantera/base/fmt.h -@@ -26,13 +26,13 @@ - - #if FMT_VERSION < 80000 - template <typename... Args> --void fmt_append(fmt::memory_buffer& b, Args... args) { -- format_to(b, args...); -+void fmt_append(fmt::memory_buffer& b, const std::string& tmpl, Args... args) { -+ format_to(b, tmpl, args...); - } - #else - template <typename... Args> --void fmt_append(fmt::memory_buffer& b, Args... args) { -- format_to(fmt::appender(b), args...); -+void fmt_append(fmt::memory_buffer& b, const std::string& tmpl, Args... args) { -+ format_to(fmt::appender(b), fmt::runtime(tmpl), args...); - } - #endif - -diff --git a/include/cantera/base/global.h b/include/cantera/base/global.h -index c0092c43ee..aa0f636754 100644 ---- a/include/cantera/base/global.h -+++ b/include/cantera/base/global.h -@@ -176,7 +176,7 @@ void writelog(const string& fmt, const Args&... args) { - if (sizeof...(args) == 0) { - writelog_direct(fmt); - } else { -- writelog_direct(fmt::format(fmt, args...)); -+ writelog_direct(fmt::format(fmt::runtime(fmt), args...)); - } - } - -@@ -228,7 +228,7 @@ void warn_deprecated(const string& method, const string& msg, const Args&... arg - if (sizeof...(args) == 0) { - _warn_deprecated(method, msg); - } else { -- _warn_deprecated(method, fmt::format(msg, args...)); -+ _warn_deprecated(method, fmt::format(fmt::runtime(msg), args...)); - } - } - -@@ -253,7 +253,7 @@ void warn(const string& warning, const string& method, - if (sizeof...(args) == 0) { - _warn(warning, method, msg); - } else { -- _warn(warning, method, fmt::format(msg, args...)); -+ _warn(warning, method, fmt::format(fmt::runtime(msg), args...)); - } - } - -@@ -268,7 +268,7 @@ void warn_user(const string& method, const string& msg, const Args&... args) { - if (sizeof...(args) == 0) { - _warn("Cantera", method, msg); - } else { -- _warn("Cantera", method, fmt::format(msg, args...)); -+ _warn("Cantera", method, fmt::format(fmt::runtime(msg), args...)); - } - } - -diff --git a/src/base/AnyMap.cpp b/src/base/AnyMap.cpp -index 84d74c1358..b35aabb8c3 100644 ---- a/src/base/AnyMap.cpp -+++ b/src/base/AnyMap.cpp -@@ -164,7 +164,7 @@ string formatDouble(double x, long int precision) - size_t last; - string s0; - if (useExp) { -- s0 = fmt::format(fmt::format("{:.{}e}", x, precision)); -+ s0 = fmt::format(fmt::runtime(fmt::format("{:.{}e}", x, precision))); - // last digit of significand - last = s0.size() - 5; - if (s0[last + 1] == 'e') { -@@ -195,7 +195,7 @@ string formatDouble(double x, long int precision) - if (s0[last - 1] == '0') { - s1 = s0; // Recycle original string - } else if (useExp) { -- s1 = fmt::format(fmt::format("{:.{}e}", x, precision - 2)); -+ s1 = fmt::format(fmt::runtime(fmt::format("{:.{}e}", x, precision - 2))); - } else { - s1 = fmt::format("{:.{}f}", x, precision - log10x - 2); - } -diff --git a/src/base/SolutionArray.cpp b/src/base/SolutionArray.cpp -index 4819aaa756..986c3e2373 100644 ---- a/src/base/SolutionArray.cpp -+++ b/src/base/SolutionArray.cpp -@@ -232,17 +232,19 @@ vector<string> doubleColumn(string name, const vector<double>& comp, - if (csize <= rows) { - for (const auto& val : comp) { - data.push_back(val); -- raw.push_back(boost::trim_copy(fmt::format(notation, val))); -+ raw.push_back(boost::trim_copy(fmt::format(fmt::runtime(notation), val))); - } - } else { - dots = (rows + 1) / 2; - for (int row = 0; row < dots; row++) { - data.push_back(comp[row]); -- raw.push_back(boost::trim_copy(fmt::format(notation, comp[row]))); -+ raw.push_back(boost::trim_copy( -+ fmt::format(fmt::runtime(notation), comp[row]))); - } - for (int row = csize - rows / 2; row < csize; row++) { - data.push_back(comp[row]); -- raw.push_back(boost::trim_copy(fmt::format(notation, comp[row]))); -+ raw.push_back(boost::trim_copy( -+ fmt::format(fmt::runtime(notation), comp[row]))); - } - } - -@@ -292,17 +294,17 @@ vector<string> doubleColumn(string name, const vector<double>& comp, - // all entries are integers - notation = fmt::format(" {{:>{}.0f}}", over + maxLen); - } -- maxLen = fmt::format(notation, 0.).size(); -+ maxLen = fmt::format(fmt::runtime(notation), 0.).size(); - - // assemble output - string section = fmt::format("{{:>{}}}", maxLen); -- vector<string> col = {fmt::format(section, name)}; -+ vector<string> col = {fmt::format(fmt::runtime(section), name)}; - int count = 0; - for (const auto& val : data) { -- col.push_back(fmt::format(notation, val)); -+ col.push_back(fmt::format(fmt::runtime(notation), val)); - count++; - if (count == dots) { -- col.push_back(fmt::format(section, "...")); -+ col.push_back(fmt::format(fmt::runtime(section), "...")); - } - } - return col; -@@ -320,7 +322,8 @@ vector<string> integerColumn(string name, const vector<long int>& comp, - if (csize <= rows) { - for (const auto& val : comp) { - data.push_back(val); -- string formatted = boost::trim_copy(fmt::format(notation, val)); -+ string formatted = boost::trim_copy( -+ fmt::format(fmt::runtime(notation), val)); - if (formatted[0] == '-') { - formatted = formatted.substr(1); - } -@@ -330,7 +333,8 @@ vector<string> integerColumn(string name, const vector<long int>& comp, - dots = (rows + 1) / 2; - for (int row = 0; row < dots; row++) { - data.push_back(comp[row]); -- string formatted = boost::trim_copy(fmt::format(notation, comp[row])); -+ string formatted = boost::trim_copy( -+ fmt::format(fmt::runtime(notation), comp[row])); - if (formatted[0] == '-') { - formatted = formatted.substr(1); - } -@@ -338,7 +342,8 @@ vector<string> integerColumn(string name, const vector<long int>& comp, - } - for (int row = csize - rows / 2; row < csize; row++) { - data.push_back(comp[row]); -- string formatted = boost::trim_copy(fmt::format(notation, comp[row])); -+ string formatted = boost::trim_copy( -+ fmt::format(fmt::runtime(notation), comp[row])); - if (formatted[0] == '-') { - formatted = formatted.substr(1); - } -@@ -356,13 +361,13 @@ vector<string> integerColumn(string name, const vector<long int>& comp, - } - - // assemble output -- vector<string> col = {fmt::format(notation, name)}; -+ vector<string> col = {fmt::format(fmt::runtime(notation), name)}; - int count = 0; - for (const auto& val : data) { -- col.push_back(fmt::format(notation, val)); -+ col.push_back(fmt::format(fmt::runtime(notation), val)); - count++; - if (count == dots) { -- col.push_back(fmt::format(notation, "..")); -+ col.push_back(fmt::format(fmt::runtime(notation), "..")); - } - } - return col; -@@ -381,31 +386,33 @@ vector<string> stringColumn(string name, const vector<string>& comp, - for (const auto& val : comp) { - data.push_back(val); - maxLen = std::max(maxLen, -- boost::trim_copy(fmt::format(notation, val)).size()); -+ boost::trim_copy(fmt::format(fmt::runtime(notation), val)).size()); - } - } else { - dots = (rows + 1) / 2; - for (int row = 0; row < dots; row++) { - data.push_back(comp[row]); - maxLen = std::max(maxLen, -- boost::trim_copy(fmt::format(notation, comp[row])).size()); -+ boost::trim_copy( -+ fmt::format(fmt::runtime(notation), comp[row])).size()); - } - for (int row = csize - rows / 2; row < csize; row++) { - data.push_back(comp[row]); - maxLen = std::max(maxLen, -- boost::trim_copy(fmt::format(notation, comp[row])).size()); -+ boost::trim_copy( -+ fmt::format(fmt::runtime(notation), comp[row])).size()); - } - } - - // assemble output - notation = fmt::format(" {{:>{}}}", maxLen); -- vector<string> col = {fmt::format(notation, name)}; -+ vector<string> col = {fmt::format(fmt::runtime(notation), name)}; - int count = 0; - for (const auto& val : data) { -- col.push_back(fmt::format(notation, val)); -+ col.push_back(fmt::format(fmt::runtime(notation), val)); - count++; - if (count == dots) { -- col.push_back(fmt::format(notation, "...")); -+ col.push_back(fmt::format(fmt::runtime(notation), "...")); - } - } - return col; -@@ -443,8 +450,8 @@ vector<string> formatColumn(string name, const AnyValue& comp, int rows, int wid - - // assemble output - string notation = fmt::format(" {{:>{}}}", maxLen); -- repr = fmt::format(notation, repr); -- vector<string> col = {fmt::format(notation, name)}; -+ repr = fmt::format(fmt::runtime(notation), repr); -+ vector<string> col = {fmt::format(fmt::runtime(notation), name)}; - if (size <= rows) { - for (int row = 0; row < size; row++) { - col.push_back(repr); -@@ -454,7 +461,7 @@ vector<string> formatColumn(string name, const AnyValue& comp, int rows, int wid - for (int row = 0; row < dots; row++) { - col.push_back(repr); - } -- col.push_back(fmt::format(notation, "...")); -+ col.push_back(fmt::format(fmt::runtime(notation), "...")); - for (int row = size - rows / 2; row < size; row++) { - col.push_back(repr); - } -diff --git a/src/thermo/PureFluidPhase.cpp b/src/thermo/PureFluidPhase.cpp -index 65e27c52d7..3e45009422 100644 ---- a/src/thermo/PureFluidPhase.cpp -+++ b/src/thermo/PureFluidPhase.cpp -@@ -393,7 +393,7 @@ string PureFluidPhase::report(bool show_thermo, double threshold) const - - string one_property = fmt::format("{{:>{}}} {{:<.5g}} {{}}\n", name_width); - -- string two_prop_header = "{} {:^15} {:^15}\n"; -+ constexpr auto two_prop_header = "{} {:^15} {:^15}\n"; - string kg_kmol_header = fmt::format( - two_prop_header, blank_leader, "1 kg", "1 kmol" - ); -diff --git a/src/thermo/ThermoPhase.cpp b/src/thermo/ThermoPhase.cpp -index 31b2c0ee9f..2b3993be35 100644 ---- a/src/thermo/ThermoPhase.cpp -+++ b/src/thermo/ThermoPhase.cpp -@@ -1291,7 +1291,7 @@ string ThermoPhase::report(bool show_thermo, double threshold) const - - string one_property = fmt::format("{{:>{}}} {{:<.5g}} {{}}\n", name_width); - -- string two_prop_header = "{} {:^15} {:^15}\n"; -+ constexpr auto two_prop_header = "{} {:^15} {:^15}\n"; - string kg_kmol_header = fmt::format( - two_prop_header, blank_leader, "1 kg", "1 kmol" - ); diff --git a/sci-libs/cantera/files/cantera-3.1.0_enable_py3.14_packaging.patch b/sci-libs/cantera/files/cantera-3.1.0_enable_py3.14_packaging.patch deleted file mode 100644 index 1ecaa421028a..000000000000 --- a/sci-libs/cantera/files/cantera-3.1.0_enable_py3.14_packaging.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff '--color=auto' -Naur a/SConstruct b/SConstruct ---- a/SConstruct -+++ b/SConstruct -@@ -182,7 +182,7 @@ - # Python Package Settings - python_min_version = parse_version("3.8") - # Newest Python version not supported/tested by Cantera --python_max_version = parse_version("3.14") -+python_max_version = parse_version("3.15") - # The string is used to set python_requires in setup.cfg.in - py_requires_ver_str = f">={python_min_version},<{python_max_version}" - diff --git a/sci-libs/cantera/files/cantera-3.1.0_env.patch b/sci-libs/cantera/files/cantera-3.2.0_env.patch index 31766f1afb13..31766f1afb13 100644 --- a/sci-libs/cantera/files/cantera-3.1.0_env.patch +++ b/sci-libs/cantera/files/cantera-3.2.0_env.patch diff --git a/sci-libs/cantera/files/cantera-3.2.0_fix_species_slicing_error_numpy-2.4.patch b/sci-libs/cantera/files/cantera-3.2.0_fix_species_slicing_error_numpy-2.4.patch new file mode 100644 index 000000000000..2c2c019223ec --- /dev/null +++ b/sci-libs/cantera/files/cantera-3.2.0_fix_species_slicing_error_numpy-2.4.patch @@ -0,0 +1,48 @@ +The patch is based on upstream commits: +https://github.com/Cantera/cantera/commit/7f7f37255dfa561c518061a816d9e4ed67dfe1a4 +https://github.com/Cantera/cantera/commit/3d86636ee4c231def3097d117f9679e83a1f6dde +The upstream issue: +https://github.com/Cantera/cantera/issues/2114 + +diff '--color=auto' -Naur a/interfaces/cython/cantera/solutionbase.pyx b/interfaces/cython/cantera/solutionbase.pyx +--- a/interfaces/cython/cantera/solutionbase.pyx ++++ b/interfaces/cython/cantera/solutionbase.pyx +@@ -54,7 +54,7 @@ + cxx_soln.get().setKinetics(newKinetics(stringify("none"))) + cxx_soln.get().setTransportModel(stringify("none")) + _assign_Solution(self, cxx_soln, True) +- self._selected_species = np.ndarray(0, dtype=np.uint64) ++ self._selected_species = np.ndarray(0, dtype=np.intp) + + def _cinit(self, infile="", name="", adjacent=(), origin=None, yaml=None, + thermo=None, species=(), kinetics=None, reactions=(), **kwargs): +@@ -82,7 +82,7 @@ + _assign_Solution(self, CxxNewSolution(), True) + self._init_parts(thermo, species, kinetics, transport, adjacent, reactions) + +- self._selected_species = np.ndarray(0, dtype=np.uint64) ++ self._selected_species = np.ndarray(0, dtype=np.intp) + + def __init__(self, *args, **kwargs): + if isinstance(self, Transport) and kwargs.get("init", True): +@@ -395,9 +395,8 @@ + def __set__(self, species): + if isinstance(species, (str, int)): + species = (species,) +- self._selected_species.resize(len(species)) +- for i,spec in enumerate(species): +- self._selected_species[i] = self.species_index(spec) ++ selection = [self.species_index(spec) for spec in species] ++ self._selected_species = np.array(selection, dtype=np.intp) + + def __getstate__(self): + """Save complete information of the current phase for pickling.""" +@@ -480,7 +479,7 @@ + + cdef _SolutionBase soln = cls(init=False) + _assign_Solution(soln, cxx_soln, True) +- soln._selected_species = np.ndarray(0, dtype=np.uint64) ++ soln._selected_species = np.ndarray(0, dtype=np.intp) + + cdef InterfacePhase iface + if isinstance(soln, Interface): diff --git a/sci-libs/gdal/Manifest b/sci-libs/gdal/Manifest index 16331f5cf9fa..b72f3e8c1d16 100644 --- a/sci-libs/gdal/Manifest +++ b/sci-libs/gdal/Manifest @@ -4,6 +4,9 @@ DIST gdal-3.13.1.tar.xz 9957916 BLAKE2B 582bea82ed21059c8b3348f91806842f0ee5337e DIST gdal-3.13.1.tar.xz.sig 566 BLAKE2B f60b2c5dd5bd55c84aabf5f0f5b2189f2793c49eab7083fe79c308697ade74c2e374beff2a78d6d80c75a74aa47dc3360f3a6bd63191bfdba9b51b77d449690d SHA512 6fa6a8c1bcfb0e69135702d4ee46aa70d0623bd0db933c6844691b08a2a4bbc94fea70ed0c0c1bc0906c551b20186e369cff48eab971fec7c49f82b1305d9b36 DIST gdal-3.13.2.tar.xz 9989660 BLAKE2B 6c22f3a19b28c67c03db83b8138283955371d1a939a1cfdeadd2fa646fa8fb760961f227ba4c819cb2386bc372371352a8c5e45c35ed552d91738590cee22013 SHA512 cef8ff877006dc3c112012edcb8c164e47b2295fca1985ba84e21588f4457aeb1ec9b33487291b2f72686c6d06ecf6144cc6d03fee553caa7ce7165094e88344 DIST gdal-3.13.2.tar.xz.sig 566 BLAKE2B a94d69384c2631e921cfcb9172ebc10daaa3d0f20ab43a9c1c11760d404fa2687870f5da8322ab7464beeabf5ef8560e3eb05ca8f1100deb20518ae4fbd54ce5 SHA512 7efe2dd6d0758a3782bad2acb8c4e5e6eff19e2cef256c4bee4e368b4656c767b288c662852e239bc05bd0afd7d35cc1feeb701bf6137b27dd23f1e7166be9e6 +DIST gdal-3.13.3.tar.xz 9982976 BLAKE2B 21e35a6318321155df27a2c55a4ca6b98f9a724ff7c5cb68866428ba6675aa017f21de1a3f1562cf506e288e23748520c87e0184a495147eb4d91ffc0e534c72 SHA512 e557a38a8bc0f2f1e40c0ca980db00ed22137a610dfdb16d19b18ce12100916bfa5c1fa75d702eb2e26a4e98cf868c2229551bfe2784d6e1131451f758b205dd +DIST gdal-3.13.3.tar.xz.sig 566 BLAKE2B 43ba8ef43ac30f52589e01d5ad6a29932ef3204e9dd0b28fa23b391410e33d5c37a0edaad2cfd9f6a7c233f0ae3021caa24a08597abbecfeb9b54e72bdb2f19c SHA512 fcb0176abdd48b1a7e98ba8c6aa7edf5444eeb85686c4a413100421df182e39af40ccd1659f0a04c11b8da1102b2d78c48ed669163b387ca00faf160bcb7b05d DIST gdalautotest-3.12.4.zip 23266101 BLAKE2B 4425fed6d5a17ae0a222a37e581923015054141d236f15b71179cd55efc0fcee7ec1b572e9af2c2a6c9cf54807a0753e90b7b9cd6d7fbd8ca93beab5a8b75cb2 SHA512 19eef02db070ddf71c213311e702f4a15b2d3dc86a55de6edb22d38396bc477c2da0634035e3186c5172e94bed526b6057e2e8a6c17b4d786ada116ceef41aba DIST gdalautotest-3.13.1.zip 23833294 BLAKE2B c2669145d7b40a5797b1dc6ba3796a1cf8036e2b0af9c50e37165770689f28861ecf0c28a243adf7682b88db668e07c83394b5248abc6f349ce5ab8fc092f41d SHA512 52b7e0769d6dae1cb2c25dd1095a17c7189fe4c917ba5a3da4df28ff6aef52fa31be98fff5e1cefd29952d1dae070b56ed54ce5165a014111ef77ba225eb69d4 DIST gdalautotest-3.13.2.zip 23847042 BLAKE2B 87c1c40050b360a537b7904c79f63532977d824677c40211f7ca62b83d519a0a52fd78cd26def01d2edfe7dc9d1797827688615781e9fc94ef5190e5b8c0a930 SHA512 c940abc2ea0953c9a6065cce139346aad97e525ee7355826d919d81048f3aacda3f0ea06e563e35a444dd22c1566bfe33430c13deab276794374a2c59859fa20 +DIST gdalautotest-3.13.3.zip 23847761 BLAKE2B 6ab9b5a733d49f06fad93216427fb34c368d002afc7bae31402dd6ec31dcd847be32cb2fe8b5ecad0b28cf83d0899e5b8e01b5dbd6fb4e769e4362751b8e693d SHA512 4f235718cdeac3a00a69f3b0b1d6942fd5380443164ac0d0bd2910a9a96735db97e6058222276f8b5be0474e2826c4fc13e9f1fce2d9717f46697341f76e624a diff --git a/sci-libs/gdal/gdal-3.13.2.ebuild b/sci-libs/gdal/gdal-3.13.2.ebuild index 4acd52683f06..16618d9c8fb9 100644 --- a/sci-libs/gdal/gdal-3.13.2.ebuild +++ b/sci-libs/gdal/gdal-3.13.2.ebuild @@ -19,7 +19,7 @@ SRC_URI=" LICENSE="BSD Info-ZIP MIT" SLOT="0/39" # subslot is libgdal.so.<SONAME> (and GDAL_SOVERSION in gdal.cmake) -KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv x86" +KEYWORDS="amd64 ~arm arm64 ~ppc ppc64 ~riscv x86" IUSE=" archive armadillo avif blosc cryptopp +curl cpu_flags_arm_neon cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 diff --git a/sci-libs/gdal/gdal-3.13.3.ebuild b/sci-libs/gdal/gdal-3.13.3.ebuild new file mode 100644 index 000000000000..be7bedd7ee32 --- /dev/null +++ b/sci-libs/gdal/gdal-3.13.3.ebuild @@ -0,0 +1,529 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_EXT=1 +DISTUTILS_OPTIONAL=1 +PYTHON_COMPAT=( python3_{12..14} ) +inherit cmake distutils-r1 flag-o-matic java-pkg-opt-2 unpacker verify-sig + +DESCRIPTION="Translator library for raster geospatial data formats (includes OGR support)" +HOMEPAGE="https://gdal.org/" +SRC_URI=" + https://download.osgeo.org/${PN}/${PV}/${P}.tar.xz + test? ( https://download.osgeo.org/${PN}/${PV}/${PN}autotest-${PV}.zip ) + verify-sig? ( https://download.osgeo.org/${PN}/${PV}/${P}.tar.xz.sig ) +" + +LICENSE="BSD Info-ZIP MIT" +SLOT="0/39" # subslot is libgdal.so.<SONAME> (and GDAL_SOVERSION in gdal.cmake) +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" +IUSE=" + archive armadillo avif blosc cryptopp +curl cpu_flags_arm_neon cpu_flags_x86_avx + cpu_flags_x86_avx2 cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 + cpu_flags_x86_ssse3 exprtk fits geos gif gml hdf5 heif java jpeg2k jpegxl lerc + libaec libdeflate lz4 lzma mongodb +muparser mysql netcdf odbc openexr oracle + parquet pdf png postgres python qhull spatialite sqlite system-tiff test +tools + webp xls zstd +" + +# jpegxl isn't supported for system tiff +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) + spatialite? ( sqlite ) + jpegxl? ( !system-tiff ) +" + +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + dev-libs/expat + dev-libs/json-c:= + dev-libs/libxml2:2= + dev-libs/openssl:= + media-libs/libjpeg-turbo:= + >=sci-libs/proj-6.0.0:=[tiff] + virtual/minizip:= + archive? ( app-arch/libarchive:= ) + armadillo? ( sci-libs/armadillo:=[lapack] ) + avif? ( media-libs/libavif:= ) + blosc? ( dev-libs/c-blosc:= ) + cryptopp? ( dev-libs/crypto++:= ) + curl? ( net-misc/curl ) + fits? ( sci-libs/cfitsio:= ) + geos? ( >=sci-libs/geos-3.8.0 ) + gif? ( media-libs/giflib:= ) + gml? ( >=dev-libs/xerces-c-3.1:= ) + heif? ( media-libs/libheif:= ) + hdf5? ( >=sci-libs/hdf5-1.6.4:=[cxx,szip] ) + java? ( + >=virtual/jdk-1.8:* + ) + jpeg2k? ( media-libs/openjpeg:2= ) + jpegxl? ( media-libs/libjxl:= ) + lerc? ( media-libs/lerc:= ) + libaec? ( sci-libs/libaec:= ) + libdeflate? ( app-arch/libdeflate ) + lz4? ( app-arch/lz4:= ) + lzma? ( || ( + app-arch/xz-utils + app-arch/lzma + ) ) + mongodb? ( dev-libs/mongo-cxx-driver:= ) + muparser? ( dev-cpp/muParser:= ) + mysql? ( dev-db/mysql-connector-c:= ) + netcdf? ( sci-libs/netcdf:= ) + odbc? ( dev-db/unixODBC ) + openexr? ( media-libs/openexr:= ) + oracle? ( dev-db/oracle-instantclient:= ) + parquet? ( dev-libs/apache-arrow:=[compute,dataset,parquet,lz4?,zlib,zstd?] ) + pdf? ( app-text/poppler:= ) + png? ( media-libs/libpng:= ) + postgres? ( >=dev-db/postgresql-8.4:= ) + qhull? ( media-libs/qhull:= ) + spatialite? ( dev-db/spatialite ) + sqlite? ( + >=dev-db/sqlite-3.31:3 + dev-libs/libpcre2:= + ) + system-tiff? ( + media-libs/tiff:=[jpeg] + >=sci-libs/libgeotiff-1.5.1-r1:= + ) + webp? ( media-libs/libwebp:= ) + xls? ( dev-libs/freexl ) + zstd? ( app-arch/zstd:= ) +" +RDEPEND="${COMMON_DEPEND} + java? ( >=virtual/jre-1.8:* ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + ') + ) +" +DEPEND="${COMMON_DEPEND} + exprtk? ( dev-cpp/exprtk ) + test? ( dev-cpp/gtest ) +" +BDEPEND=" + virtual/pkgconfig + java? ( + >=dev-java/ant-1.10.14-r3:0 + dev-lang/swig + ) + python? ( + ${DISTUTILS_DEPS} + dev-lang/swig + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + test? ( + dev-python/filelock[${PYTHON_USEDEP}] + dev-python/jsonschema[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + >=dev-python/pytest-6.0.0[${PYTHON_USEDEP}] + dev-python/pytest-env[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + parquet? ( dev-python/pyarrow[parquet,${PYTHON_USEDEP}] ) + ) + ') + ) + test? ( app-arch/unzip ) + verify-sig? ( sec-keys/openpgp-keys-gdal ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gdal.asc + +QA_CONFIG_IMPL_DECL_SKIP=( + _wstat64 # Windows LFS +) + +EPYTEST_PLUGINS=( pytest-env ) +EPYTEST_RERUNS=5 +EPYTEST_XDIST=1 +# distutils_enable_tests unconditionally touches BDEPEND + +pkg_setup() { + use java && java-pkg-opt-2_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${P}.tar.xz" "${DISTDIR}/${P}.tar.xz.sig" + fi + + # unpacker mishandles .sig files + unpack ${P}.tar.xz + use test && unpack_zip gdalautotest-${PV}.zip +} + +src_prepare() { + if use test ; then + mv "${WORKDIR}"/gdalautotest-${PV} "${S}"/autotest || die + fi + java-pkg-opt-2_src_prepare + cmake_src_prepare +} + +python_configure_all() { + local -x BUILD_DIR="${S}_python" + # Generate required files with cmake and then use distutils-r1 to generate wheels + # https://github.com/OSGeo/gdal/issues/9965#issuecomment-2159222393 + mycmakeargs+=( -DBUILD_PYTHON_BINDINGS=ON ) + cmake_src_configure + cmake_build python_generated_files + cmake_build generate_gdal_version_h + sed -E -e "/(library_dirs|include_dirs) =/ { s|${BUILD_DIR}|${cmake_build_dir}| } " \ + -i "${BUILD_DIR}/swig/python/setup.py" || die +} + +src_configure() { + # sanity check subslot to give a friendly reminder to would-be drive by bumpers + local detected_soversion + detected_soversion="$(sed -n -e 's/set(GDAL_SOVERSION \(.*\))/\1/p' gdal.cmake)" + if [[ "${SLOT#0/}" != "${detected_soversion}" ]]; then + die "Subslot ${SLOT#0/} doesn't match upstream specified set(GDAL_SOVERSION ${detected_soversion}) in gdal.cmake." + fi + + # ODR violations + filter-lto + + local mycmakeargs=( + # https://gdal.org/en/stable/development/building_from_source.html + + -DBUILD_APPS=$(usex tools) + -DBUILD_TESTING=$(usex test) + -DENABLE_GNM=ON + -DENABLE_IPO=OFF + -DENABLE_PAM=ON # Persistent Auxiliary Metadata (not Pluggable Authentication Modules!) + -DOGR_ENABLE_DRIVER_SQLITE=$(usex sqlite) + -DGDAL_ENABLE_PLUGINS=OFF + -DGDAL_ENABLE_PLUGINS_NO_DEPS=OFF + -DGDAL_BUILD_OPTIONAL_DRIVERS=ON + -DOGR_BUILD_OPTIONAL_DRIVERS=ON + -DGDAL_USE_EXTERNAL_LIBS=ON + -DGDAL_USE_INTERNAL_LIBS=OFF + -DUSE_CCACHE=OFF + -DUSE_PRECOMPILED_HEADERS=OFF + + # bug #844874 and bug #845150 + -DCMAKE_INSTALL_INCLUDEDIR="include/gdal" + + -DGDAL_FIND_PACKAGE_PROJ_MODE=CONFIG + + # Options here are generally off because of one of: + # - Not yet packaged dependencies + # + # - Off for autotools build and didn't want more churn by + # enabling during port to CMake. Feel free to request them + # being turned on if useful for you. + # + # See cmake/helpers/CheckDependentLibraries.cmake for options + # *_*_package(Option) -> GDAL_USE_OPTION + -DGDAL_USE_ADBCDRIVERMANAGER=OFF + -DGDAL_USE_ARCHIVE=$(usex archive) + -DGDAL_USE_ARMADILLO=$(usex armadillo) + -DGDAL_USE_AVIF=$(usex avif) + -DGDAL_USE_ARROW=$(usex parquet) + -DGDAL_USE_BASISU=OFF + -DGDAL_USE_BLOSC=$(usex blosc) + -DGDAL_USE_BRUNSLI=OFF + -DGDAL_USE_CRNLIB=OFF + -DGDAL_USE_CFITSIO=$(usex fits) + -DGDAL_USE_CURL=$(usex curl) + -DGDAL_USE_CRYPTOPP=$(usex cryptopp) + -DGDAL_USE_DEFLATE=$(usex libdeflate) # complements zlib + -DGDAL_USE_ECW=OFF + -DGDAL_USE_EXPAT=ON + -DGDAL_USE_EXPRTK=$(usex exprtk) + -DGDAL_USE_FILEGDB=OFF + -DGDAL_USE_FREEXL=$(usex xls) + -DGDAL_USE_FYBA=OFF + + -DGDAL_USE_GEOTIFF=$(usex system-tiff) + -DGDAL_USE_GEOTIFF_INTERNAL=$(usex !system-tiff) + + -DGDAL_USE_GEOS=$(usex geos) + -DGDAL_USE_GIF=$(usex gif) + -DGDAL_USE_GTA=OFF + -DGDAL_USE_HEIF=$(usex heif) + -DGDAL_USE_HDF4=OFF + -DGDAL_USE_HDF5=$(usex hdf5) + -DGDAL_USE_HDFS=OFF + -DGDAL_USE_ICONV=ON # TODO dep + -DGDAL_USE_IDB=OFF + -DGDAL_USE_JPEG=ON # bug #965329 + + # https://gdal.org/build_hints.html#jpeg12 + # Independent of whether using system libjpeg + -DGDAL_USE_JPEG12_INTERNAL=ON + + -DGDAL_USE_JSONC=ON + -DGDAL_USE_JXL=$(usex jpegxl) + -DGDAL_USE_JXL_THREADS=$(usex jpegxl) + -DGDAL_USE_KDU=OFF + -DGDAL_USE_KEA=OFF + -DGDAL_USE_LERC=$(usex lerc) + -DGDAL_USE_LIBAEC=$(usex libaec) + -DGDAL_USE_LIBKML=OFF + -DGDAL_USE_LIBLZMA=$(usex lzma) + -DGDAL_USE_LIBQB3=OFF + -DGDAL_USE_LIBXML2=ON + -DGDAL_USE_LZ4=$(usex lz4) # FIXME + -DGDAL_USE_MONGOCXX=$(usex mongodb) + -DGDAL_USE_MRSID=OFF + -DGDAL_USE_MSSQL_NCLI=OFF + -DGDAL_USE_MSSQL_ODBC=OFF + -DGDAL_USE_MUPARSER=$(usex muparser) + -DGDAL_USE_MYSQL=$(usex mysql) + -DGDAL_USE_NETCDF=$(usex netcdf) + -DGDAL_USE_ODBC=$(usex odbc) + -DGDAL_USE_ODBCCPP=OFF + + # unpackaged + -DGDAL_USE_OPENCAD=OFF + -DGDAL_USE_OPENCAD_INTERNAL=ON + + -DGDAL_USE_OPENDRIVE=OFF + -DGDAL_USE_OPENEXR=$(usex openexr) + -DGDAL_USE_OPENJPEG=$(usex jpeg2k) + -DGDAL_USE_OPENSSL=ON + -DGDAL_USE_ORACLE=$(usex oracle) + -DGDAL_USE_PARQUET=$(usex parquet) + -DGDAL_USE_PCRE2=ON + -DGDAL_USE_PDFIUM=OFF + + # Enable internal implementation so that tests pass with the use disabled + -DGDAL_USE_PNG=$(usex png) + -DGDAL_USE_PNG_INTERNAL=$(usex !png) + + -DGDAL_USE_PODOFO=OFF + -DGDAL_USE_POPPLER=$(usex pdf) + -DGDAL_USE_POSTGRESQL=$(usex postgres) + -DGDAL_USE_QHULL=$(usex qhull) + -DGDAL_USE_RASTERLITE2=OFF + + # upstream recommends using the internal implementation + # bug #935567 + -DGDAL_USE_SHAPELIB=OFF + -DGDAL_USE_SHAPELIB_INTERNAL=ON + + -DGDAL_USE_SPATIALITE=$(usex spatialite) + -DGDAL_USE_SQLITE3=$(usex sqlite) + -DGDAL_USE_SFCGAL=OFF + -DGDAL_USE_TEIGHA=OFF + + -DGDAL_USE_TIFF=$(usex system-tiff) + -DGDAL_USE_TIFF_INTERNAL=$(usex !system-tiff) + + -DGDAL_USE_WEBP=$(usex webp) + -DGDAL_USE_XERCESC=$(usex gml) + -DGDAL_USE_ZLIB=ON + -DGDAL_USE_ZSTD=$(usex zstd) + + # Bindings + -DBUILD_PYTHON_BINDINGS=OFF # handled separately + -DBUILD_JAVA_BINDINGS=$(usex java) + # bug #845369 + -DBUILD_CSHARP_BINDINGS=OFF + + # Handled differently from x86 + # First checks if the platform supports neon and if it supports the option will be available + # See SSE2NEON_COMPILES in CMakeLists.txt and gdal.cmake + -DGDAL_ENABLE_ARM_NEON_OPTIMIZATIONS=$(usex cpu_flags_arm_neon) + ) + + if use x86 || use amd64 ; then + mycmakeargs+=( + # Check work/gdal-3.5.0_build/CMakeCache.txt after configure + # and https://github.com/OSGeo/gdal/blob/master/cmake/helpers/CheckCompilerMachineOption.cmake#L71 + # Commented out: not (yet?) implemented upstream. + # + # check_compiler_machine_option(flag <instruction set>) -> -Dtest_<instruction set> + -Dtest_avx=$(usex cpu_flags_x86_avx) + -Dtest_avx2=$(usex cpu_flags_x86_avx2) + -Dtest_sse=$(usex cpu_flags_x86_sse) + -Dtest_sse2=$(usex cpu_flags_x86_sse2) + #-Dtest_sse3=$(usex cpu_flags_x86_sse3) + -Dtest_sse4.1=$(usex cpu_flags_x86_sse4_1) + #-Dtest_sse4.2=$(usex cpu_flags_x86_sse4_2) + #-Dtest_sse4a=$(usex cpu_flags_x86_sse4a) + -Dtest_ssse3=$(usex cpu_flags_x86_ssse3) + #-Dtest_fma4=$(usex cpu_flags_x86_fma4) + #-Dtest_xop=$(usex cpu_flags_x86_xop) + ) + fi + + if use test ; then + mycmakeargs+=( -DUSE_EXTERNAL_GTEST=ON ) + fi + + cmake_src_configure + + local cmake_build_dir="${BUILD_DIR}" + use python && distutils-r1_src_configure +} + +python_compile() { + pushd "${S}_python/swig/python" >/dev/null || die + distutils-r1_python_compile + popd >/dev/null || die +} + +src_compile() { + cmake_src_compile + + local -x PATH="${BUILD_DIR}/apps:${PATH}" + local -x LD_LIBRARY_PATH="${BUILD_DIR}:${LD_LIBRARY_PATH}" + use python && distutils-r1_src_compile +} + +python_test() { + local -x GDAL_DATA="${S}/data" + + # note: testpaths in pytest.ini will fight EPYTEST_IGNORE + EPYTEST_IGNORE=( + # network-sandbox and deselecting tests turns into whac-a-mole with their interdependencies + "gcore/vsis3.py" + # All tests require network-sandbox + "ogr/ogr_ngw.py" + ) + + use !muparser && EPYTEST_IGNORE+=( "gdrivers/vrtpansharpen.py" ) + use !pdf && EPYTEST_IGNORE+=( "gdrivers/pdf.py" ) + + EPYTEST_DESELECT=( + # network-sandbox + "gcore/basic_test.py::test_hint_http" + "gcore/tiff_read.py::test_tiff_read_strace_check" + "gcore/vsioss.py::test_vsioss_6" + "gdrivers/gdalhttp.py::test_http_ssl_verifystatus" + "gdrivers/hdf5multidim.py::test_hdf5_multimdim_eos_grid_dimension_list" + "gdrivers/jp2openjpeg.py::test_jp2openjpeg_45" + "gdrivers/vrtrawlink.py::test_vrtrawlink_GDAL_VRT_RAWRASTERBAND_ALLOWED_SOURCE_ONLY_REMOTE_accepted" + "gdrivers/wms.py::test_wms_8" + "gdrivers/zarr_driver.py::test_zarr_write_error_at_close_on_array" + "gdrivers/zarr_driver.py::test_zarr_write_error_at_close_on_group" + "ogr/ogr_csv.py::test_ogr_csv_schema_override" + "ogr/ogr_geojson.py::test_ogr_geojson_schema_override" + "ogr/ogr_gml.py::test_ogr_gml_type_override" + "ogr/ogr_gmlas.py::test_ogr_gmlas_billion_laugh" + "ogr/ogr_gmlas.py::test_ogr_gmlas_datetime" + "ogr/ogr_parquet.py::test_ogr_parquet_coordinate_epoch" + "ogr/ogr_parquet.py::test_ogr_parquet_crs_identification_on_write" + "ogr/ogr_parquet.py::test_ogr_parquet_edges" + "ogr/ogr_parquet.py::test_ogr_parquet_geoarrow" + "ogr/ogr_parquet.py::test_ogr_parquet_geometry_types" + "ogr/ogr_parquet.py::test_ogr_parquet_polygon_orientation" + "ogr/ogr_sqlite.py::test_ogr_sqlite_schema_override" + "pyscripts/test_validate_geoparquet.py::test_validate_geoparquet_ok" + "utilities/test_gdalinfo_lib.py::test_gdalinfo_lib_2" + "utilities/test_gdalinfo_lib.py::test_gdalinfo_lib_5" + "utilities/test_gdalinfo_lib.py::test_gdalinfo_lib_json_color_table_and_rat" + "utilities/test_ogrinfo_lib.py::test_ogrinfo_lib_extent3D" + "utilities/test_ogrinfo_lib.py::test_ogrinfo_lib_json_relationships" + "utilities/test_ogrinfo_lib.py::test_ogrinfo_lib_json_validate" + + # sandbox interferes with strace? + "gcore/basic_test.py::test_basic_test_strace_non_existing_file" + + # Breaks due to other deselects. + "ogr/ogr_gpkg.py::test_ogr_gpkg_immutable" + "ogr/ogr_gpkg.py::test_ogr_gpkg_nolock" + "ogr/ogr_parquet.py::test_ogr_parquet_read_large_binary_or_string_for_geometry" + "ogr/ogr_parquet.py::test_ogr_parquet_write_arrow_rewind_polygon" + "ogr/ogr_parquet.py::test_ogr_parquet_bbox_float32" + "ogr/ogr_sqlite.py::test_ogr_sqlite_34" + + # Fails on new poppler versions due to checksum check + "gdrivers/pdf.py::test_pdf_extra_rasters[POPPLER]" + + # flaky + "gdrivers/kmlsuperoverlay.py::test_kmlsuperoverlay_8" + ) + + if use !armadillo; then + EPYTEST_DESELECT+=( + # AssertionError: (1634, (3456541.352648813, 5640759.820845713, 0.0)) + "gcore/transformer.py::test_transformer_tps_precision" + ) + fi + + if use !sqlite; then + EPYTEST_DESELECT+=( + # implicit sqlite requirement for the test (or the wms (curl) driver)? + "gdrivers/ogcapi.py::test_ogr_ogcapi_vector_tiles" + # expects sqlite being enabled in a warning message + "utilities/test_gdalalg_vector_rasterize.py::test_gdalalg_vector_rasterize" + ) + fi + + pushd "${S}_python/autotest" >/dev/null || die + # https://github.com/OSGeo/gdal/tree/v3.11.3/autotest#gdals-tests-are-not-independent + # So run directories separately with reruns to maximise chances without excluding every test + # + # See pytest_dirs in autotest/CMakeLists.txt. + # benchmark excluded on purpose as it uses pytest-benchmark + # gdrivers excluded as its especially flaky with excluding tests + # gnm excluded as you need to exclude 99% of it leaving only one or two tests + local failures=() + for pytest_dir in alg gcore gdrivers ogr osr pyscripts utilities; do + nonfatal epytest ${pytest_dir} + [[ ${?} != 0 ]] && failures+=( ${pytest_dir} ) + done + popd >/dev/null || die + + if [[ ${#failures} -gt 0 ]]; then + die "pytest failures: ${failures[@]}" + fi +} + +src_test() { + local -x GDAL_RUN_SLOW_TESTS=0 + local -x GDAL_DOWNLOAD_TEST_DATA=0 # tests relying on downloaded data **may** be skipped + + cmake_src_test + + local -x PATH="${BUILD_DIR}/apps:${PATH}" + local -x LD_LIBRARY_PATH="${BUILD_DIR}:${LD_LIBRARY_PATH}" + use python && distutils-r1_src_test +} + +python_install() { + pushd "${S}_python/swig/python" >/dev/null || die + distutils-r1_python_install + popd >/dev/null || die +} + +src_install() { + cmake_src_install + + if use java; then + # Move the native library into the proper place for Gentoo. The + # library in ${ED} has already had its RPATH fixed, so we use it + # rather than ${BUILD_DIR}/swig/java/libgdalalljni.so. + java-pkg_doso "${ED}/usr/$(get_libdir)/jni/libgdalalljni.so" + rm -rf "${ED}/usr/$(get_libdir)/jni" || die + fi + + use python && distutils-r1_src_install +} + +pkg_postinst() { + elog "Check available image and data formats after building with" + if use tools; then + elog "gdal info --formats" + else + elog "gdal-config --formats" + fi + + if use java; then + elog + elog "To use the Java bindings, you need to pass the following to java:" + elog " -Djava.library.path=$(java-config -i gdal)" + fi +} diff --git a/sci-libs/gmsh/gmsh-4.14.1.ebuild b/sci-libs/gmsh/gmsh-4.14.1.ebuild index 50792a0a5a82..11e34e94f3bd 100644 --- a/sci-libs/gmsh/gmsh-4.14.1.ebuild +++ b/sci-libs/gmsh/gmsh-4.14.1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..14} ) inherit cmake desktop fortran-2 python-r1 toolchain-funcs xdg-utils diff --git a/sci-libs/nanoflann/Manifest b/sci-libs/nanoflann/Manifest index 92a1b16e7acf..0892c7c48628 100644 --- a/sci-libs/nanoflann/Manifest +++ b/sci-libs/nanoflann/Manifest @@ -1 +1,2 @@ DIST nanoflann-1.7.1.tar.gz 522904 BLAKE2B 3e6e50225d97ce926481a0148c66458245b04e5d0632d42569e6a6edfb6cd097c3b467535de7de11907a0a848bf971a6aa18f0b4b5920f0a680b67c0ce490319 SHA512 258b2145f2972f6e6cbfa524dfada15f6d66fd53ab81cd55924f159c6c05eb55c56426039bded0357ea707c34df3ca04fa4875a42baeecb5e6b5f4a57feac808 +DIST nanoflann-1.12.1.tar.gz 562328 BLAKE2B 3a912be2d59fb040d3944ff748e21a498421aeaac5639d12f73d25b9e47d6209a2ad835880f8ff0f6e144132bee6b794dfc4da763dd0f31a94e6655a4cb88115 SHA512 bee1b914404d51537a8e572e3fe005d8ceeba7ef09eefd26997f4ef1caa0806c07c816465e79e58b23a6fd324671cf2e0d272692e0b6f9624a6cc3e37bde7c8a diff --git a/sci-libs/nanoflann/nanoflann-1.12.1.ebuild b/sci-libs/nanoflann/nanoflann-1.12.1.ebuild new file mode 100644 index 000000000000..75530a35ff87 --- /dev/null +++ b/sci-libs/nanoflann/nanoflann-1.12.1.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="C++ header-only library for Nearest Neighbor (NN) search wih KD-trees" +HOMEPAGE="https://github.com/jlblancoc/nanoflann" + +if [[ ${PV} = *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/jlblancoc/nanoflann.git" +else + SRC_URI=" + https://github.com/jlblancoc/nanoflann/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz + " + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="BSD" +SLOT="0" +IUSE="examples test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-cpp/eigen:= +" +DEPEND="${RDEPEND}" + +src_configure() { + local mycmakeargs=( + -DNANOFLANN_BUILD_EXAMPLES=$(usex examples) + -DNANOFLANN_BUILD_TESTS=$(usex test) + ) + cmake_src_configure +} diff --git a/sci-libs/nanoflann/nanoflann-9999.ebuild b/sci-libs/nanoflann/nanoflann-9999.ebuild index f3a8c055e7d4..75530a35ff87 100644 --- a/sci-libs/nanoflann/nanoflann-9999.ebuild +++ b/sci-libs/nanoflann/nanoflann-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,7 +12,9 @@ if [[ ${PV} = *9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/jlblancoc/nanoflann.git" else - SRC_URI="https://github.com/jlblancoc/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + SRC_URI=" + https://github.com/jlblancoc/nanoflann/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz + " KEYWORDS="~amd64 ~x86" fi @@ -21,7 +23,9 @@ SLOT="0" IUSE="examples test" RESTRICT="!test? ( test )" -RDEPEND="dev-cpp/eigen:=" +RDEPEND=" + dev-cpp/eigen:= +" DEPEND="${RDEPEND}" src_configure() { diff --git a/sci-libs/ondselsolver/Manifest b/sci-libs/ondselsolver/Manifest index d6239fd28b47..9bf565b22b3f 100644 --- a/sci-libs/ondselsolver/Manifest +++ b/sci-libs/ondselsolver/Manifest @@ -1,3 +1,4 @@ DIST ondselsolver-1.0.1_p20241024.tar.gz 4668075 BLAKE2B 82e13168b2f6d988e411613584d9bb943afd9df73716a467d2681658d530e71173abcb31e432075dce8ebc1f0276ecb2b7b837bf057fb68f654c972e2d77f5b5 SHA512 918542fca4bfcb952d6d9500a0f3721549810dd2cde9adfb352d9301e0e1bf0fe1100a301316f15a6dcd18e36d371c58ba4a41b8f8e0878a77db4cbf054a095a DIST ondselsolver-1.0.1_p20241127.tar.gz 4669048 BLAKE2B 6f6c4f9468b2474890b05ca394947aa91bc1780e1ef922bba40144a30c247db32d7a5de469ed27e426209013b07a137522bad9c220d9e1862f7e946696974b0b SHA512 3504a6ab379f2d9d943a1a6da8f79abffebd7fe45fd3258f0bfeb0a789d73a2b68714c10e77e48987514c8acb23800412c10daa0046ed82dab4a2aab569851ff DIST ondselsolver-1.0.1_p20260211.tar.gz 4667722 BLAKE2B 7ae7e44ecbb33cf13af6b7b4e51caf7ceb26cd189a07d7ff1968010aa0bf9cac48b11c496c256d9eccf254e28a1dc9bf64decb54fc677c13654dcec157c194b2 SHA512 00cbb6c39352f4a695189ea7d5c1e3b5fc149d35ad81880725b372e9311599b25e350fc2ac02214c6a06430920de2516e8fa54566bde231cd8ef96e916e78910 +DIST ondselsolver-1.0.1_p20260723.tar.gz 4669639 BLAKE2B ac1a424194f08edb0816cc7bdea677c6c6d72e668aad90dd62483e863f404c6c511296175101f94645dddec8ca0c25c5e36d6ce4b4fb2dae0b059633ba1bdc82 SHA512 d556dc6e686190dcbb0b4ea941def21b767cc5f45960d79c739eb64330dfc498ed89268bad619379f1da7a83a1db91a4f299b920b78e08529e011c57b3569a4f diff --git a/sci-libs/ondselsolver/files/ondselsolver-1.0.1-properly-demangle-typenames.patch b/sci-libs/ondselsolver/files/ondselsolver-1.0.1-properly-demangle-typenames.patch index 7d536796d9f5..edb4728f43b4 100644 --- a/sci-libs/ondselsolver/files/ondselsolver-1.0.1-properly-demangle-typenames.patch +++ b/sci-libs/ondselsolver/files/ondselsolver-1.0.1-properly-demangle-typenames.patch @@ -57,6 +57,25 @@ index 40edd52..bb710e3 100644 ASMTItemIJ::storeOnTimeSeries(os); } +diff --git a/OndselSolver/AccNewtonRaphson.cpp b/OndselSolver/AccNewtonRaphson.cpp +index 588d0fe..abc9ce5 100644 +--- a/OndselSolver/AccNewtonRaphson.cpp ++++ b/OndselSolver/AccNewtonRaphson.cpp +@@ -126,12 +126,12 @@ void AccNewtonRaphson::preRun() + void MbD::AccNewtonRaphson::handleSingularMatrix() + { + auto& r = *matrixSolver; +- std::string str = typeid(r).name(); ++ std::string str = demangle(typeid(r).name()); + if (str.find("GESpMatParPvMarkoFast") != std::string::npos) { + matrixSolver = CREATE<GESpMatParPvPrecise>::With(); + this->solveEquations(); + } else { +- str = typeid(r).name(); ++ str = demangle(typeid(r).name()); + if (str.find("GESpMatParPvPrecise") != std::string::npos) { + this->logSingularMatrixMessage(); + matrixSolver->throwSingularMatrixError("AccAccNewtonRaphson"); diff --git a/OndselSolver/Array.h b/OndselSolver/Array.h index 636e9a5..e270795 100644 --- a/OndselSolver/Array.h @@ -81,6 +100,28 @@ index 636e9a5..e270795 100644 } friend std::ostream& operator<<(std::ostream& s, const Array& array) { +diff --git a/OndselSolver/CREATE.h b/OndselSolver/CREATE.h +index 0c6fc96..7c94b82 100644 +--- a/OndselSolver/CREATE.h ++++ b/OndselSolver/CREATE.h +@@ -70,7 +70,7 @@ namespace MbD { + } + static std::shared_ptr<Constraint> ConstraintWith(std::shared_ptr<EndFramec> frmi, std::shared_ptr<EndFramec> frmj, size_t axis) { + std::shared_ptr<Constraint> inst; +- std::string str = typeid(T).name(); ++ std::string str = demangle(typeid(T).name()); + if (str.find("AtPointConstraintIqcJqc") != std::string::npos) { + if (std::dynamic_pointer_cast<EndFrameqct>(frmi)) { + inst = std::make_shared<AtPointConstraintIqctJqc>(frmi, frmj, axis); +@@ -97,7 +97,7 @@ namespace MbD { + } + static std::shared_ptr<Constraint> ConstraintWith(std::shared_ptr<EndFramec> frmi, std::shared_ptr<EndFramec> frmj, size_t axisi, size_t axisj) { + std::shared_ptr<Constraint> inst; +- std::string str = typeid(T).name(); ++ std::string str = demangle(typeid(T).name()); + if (str.find("DirectionCosineConstraintIqcJqc") != std::string::npos) { + if (std::dynamic_pointer_cast<EndFrameqct>(frmi)) { + inst = std::make_shared<DirectionCosineConstraintIqctJqc>(frmi, frmj, axisi, axisj); diff --git a/OndselSolver/Demangle.h b/OndselSolver/Demangle.h new file mode 100644 index 0000000..810936d @@ -150,6 +191,48 @@ index 4435d5d..120cd3c 100644 } void Item::initializeLocally() +diff --git a/OndselSolver/PartFrame.cpp b/OndselSolver/PartFrame.cpp +index 5219bb8..b395458 100644 +--- a/OndselSolver/PartFrame.cpp ++++ b/OndselSolver/PartFrame.cpp +@@ -187,7 +187,7 @@ void PartFrame::constraintsReport() + std::string str = "MbD: " + part->classname() + std::string(" ") + part->name + " has the following constraint(s) removed: "; + this->logString(str); + std::for_each(redunCons->begin(), redunCons->end(), [&](auto& con) { +- str = "MbD: " + std::string(" ") + std::string(typeid(*con).name()); ++ str = "MbD: " + std::string(" ") + std::string(demangle(typeid(*con).name())); + this->logString(str); + }); + } +diff --git a/OndselSolver/PosICNewtonRaphson.cpp b/OndselSolver/PosICNewtonRaphson.cpp +index b581e82..87285eb 100644 +--- a/OndselSolver/PosICNewtonRaphson.cpp ++++ b/OndselSolver/PosICNewtonRaphson.cpp +@@ -17,6 +17,7 @@ + #include "CREATE.h" + #include "GESpMatParPvPrecise.h" + #include "GESpMatFullPvPosIC.h" ++#include "Demangle.h" + + using namespace MbD; + +@@ -108,14 +109,14 @@ void PosICNewtonRaphson::handleSingularMatrix() + } + else { + auto& r = *matrixSolver; +- std::string str = typeid(r).name(); ++ std::string str = demangle(typeid(r).name()); + if (str.find("GESpMatParPvMarkoFast") != std::string::npos) { + matrixSolver = CREATE<GESpMatParPvPrecise>::With(); + this->solveEquations(); + } + else { + auto& msRef = *matrixSolver.get(); // extrapolated to suppress warning +- str = typeid(msRef).name(); ++ str = demangle(typeid(msRef).name()); + (void) msRef; // also for warning suppression + if (str.find("GESpMatParPvPrecise") != std::string::npos) { + this->lookForRedundantConstraints(); diff --git a/OndselSolver/Symbolic.cpp b/OndselSolver/Symbolic.cpp index 75bcbb6..4961964 100644 --- a/OndselSolver/Symbolic.cpp @@ -174,6 +257,46 @@ index 75bcbb6..4961964 100644 } std::shared_ptr<std::vector<Symsptr>> Symbolic::getTerms() +diff --git a/OndselSolver/SystemNewtonRaphson.cpp b/OndselSolver/SystemNewtonRaphson.cpp +index 1a32f85..c2e5fc5 100644 +--- a/OndselSolver/SystemNewtonRaphson.cpp ++++ b/OndselSolver/SystemNewtonRaphson.cpp +@@ -66,13 +66,13 @@ void SystemNewtonRaphson::basicSolveEquations() + void SystemNewtonRaphson::handleSingularMatrix() + { + auto& r = *matrixSolver; +- std::string str = typeid(r).name(); ++ std::string str = demangle(typeid(r).name()); + if (str.find("GESpMatParPvMarkoFast") != std::string::npos) { + matrixSolver = CREATE<GESpMatParPvPrecise>::With(); + this->solveEquations(); + } + else { +- str = typeid(r).name(); ++ str = demangle(typeid(r).name()); + if (str.find("GESpMatParPvPrecise") != std::string::npos) { + str = "MbD: Singular Matrix Error. "; + system->logString(str); +diff --git a/OndselSolver/VelSolver.cpp b/OndselSolver/VelSolver.cpp +index b62cb70..a6a03da 100644 +--- a/OndselSolver/VelSolver.cpp ++++ b/OndselSolver/VelSolver.cpp +@@ -25,13 +25,13 @@ void VelSolver::basicSolveEquations() + void VelSolver::handleSingularMatrix() + { + auto& r = *matrixSolver; +- std::string str = typeid(r).name(); ++ std::string str = demangle(typeid(r).name()); + if (str.find("GESpMatParPvMarkoFast") != std::string::npos) { + matrixSolver = CREATE<GESpMatParPvPrecise>::With(); + this->solveEquations(); + } + else { +- str = typeid(r).name(); ++ str = demangle(typeid(r).name()); + if (str.find("GESpMatParPvPrecise") != std::string::npos) { + this->logSingularMatrixMessage(); + matrixSolver->throwSingularMatrixError("VelSolver"); diff --git a/OndselSolver/CMakeLists.txt b/OndselSolver/CMakeLists.txt index 6836e72..30d5bf4 100644 --- a/OndselSolver/CMakeLists.txt diff --git a/sci-libs/ondselsolver/metadata.xml b/sci-libs/ondselsolver/metadata.xml index a6feb57a7762..c271562af9c2 100644 --- a/sci-libs/ondselsolver/metadata.xml +++ b/sci-libs/ondselsolver/metadata.xml @@ -11,5 +11,9 @@ </maintainer> <upstream> <remote-id type="github">Ondsel-Development/OndselSolver</remote-id> + <remote-id type="github">FreeCAD/OndselSolver</remote-id> </upstream> + <use> + <flag name="tools">build the standalone OndselSolver executable</flag> + </use> </pkgmetadata> diff --git a/sci-libs/ondselsolver/ondselsolver-1.0.1_p20260723.ebuild b/sci-libs/ondselsolver/ondselsolver-1.0.1_p20260723.ebuild new file mode 100644 index 000000000000..8b3668d34095 --- /dev/null +++ b/sci-libs/ondselsolver/ondselsolver-1.0.1_p20260723.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Assembly Constraints and Multibody Dynamics code" +HOMEPAGE="https://github.com/FreeCAD/OndselSolve" + +if [[ ${PV} = *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/FreeCAD/OndselSolver.git" +else + COMMIT="3afcb30353084d402e3c34760cd662cf22d88759" + SRC_URI=" + https://github.com/FreeCAD/OndselSolver/archive/${COMMIT}.tar.gz -> ${P}.tar.gz + " + S="${WORKDIR}/OndselSolver-${COMMIT}" + KEYWORDS="~amd64" +fi + +LICENSE="LGPL-2.1" +SLOT="0" + +IUSE="test tools" +RESTRICT="!test? ( test )" + +DEPEND="test? ( dev-cpp/gtest )" + +PATCHES=( + "${FILESDIR}/${PN}-1.0.1-properly-demangle-typenames.patch" +) + +src_configure() { + local mycmakeargs=( + -DONDSELSOLVER_BUILD_EXE="$(usex tools)" + -DONDSELSOLVER_BUILD_TESTS="$(usex test)" + ) + + cmake_src_configure +} + +src_test() { + local CMAKE_SKIP_TESTS=( + "^OndselSolver.runPreDragBackhoe[1-3]$" + ) + + cmake_src_test +} diff --git a/sci-libs/ondselsolver/ondselsolver-9999.ebuild b/sci-libs/ondselsolver/ondselsolver-9999.ebuild new file mode 100644 index 000000000000..348541edd9b9 --- /dev/null +++ b/sci-libs/ondselsolver/ondselsolver-9999.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Assembly Constraints and Multibody Dynamics code" +HOMEPAGE="https://github.com/FreeCAD/OndselSolve" + +if [[ ${PV} = *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/FreeCAD/OndselSolver.git" +else + COMMIT="30e9b64e8bf881d438d4b88834f9ba3674865418" + SRC_URI=" + https://github.com/FreeCAD/OndselSolver/archive/${COMMIT}.tar.gz -> ${P}.tar.gz + " + S="${WORKDIR}/OndselSolver-${COMMIT}" + KEYWORDS="~amd64" +fi + +LICENSE="LGPL-2.1" +SLOT="0" + +IUSE="test tools" +RESTRICT="!test? ( test )" + +DEPEND="test? ( dev-cpp/gtest )" + +PATCHES=( + "${FILESDIR}/${PN}-1.0.1-properly-demangle-typenames.patch" +) + +src_configure() { + local mycmakeargs=( + -DONDSELSOLVER_BUILD_EXE="$(usex tools)" + -DONDSELSOLVER_BUILD_TESTS="$(usex test)" + ) + + cmake_src_configure +} + +src_test() { + local CMAKE_SKIP_TESTS=( + "^OndselSolver.runPreDragBackhoe[1-3]$" + "^OndselSolver.sliderrunDragStep$" + "^OndselSolver.slider_issue$" + + # random fails + "^OndselSolver.Gears$" + "^OndselSolver.anglejoint$" + "^OndselSolver.rackscrew$" + "^OndselSolver.planarbug$" + "^OndselSolver.piston$" + ) + + cmake_src_test +} diff --git a/sci-libs/pcl/Manifest b/sci-libs/pcl/Manifest index ba9f05542d86..f223414af4c8 100644 --- a/sci-libs/pcl/Manifest +++ b/sci-libs/pcl/Manifest @@ -1 +1,11 @@ DIST pcl-1.14.1.tar.gz 68672885 BLAKE2B 207389d844ac2793f6f321504c05282ace2d8e51aaf0277c13fb11f5be22ac93f7e044f34fc2259aca7d7e34ae3b9b00287ee9df0d15f851f1f4b4bd651578c7 SHA512 8e2d2839fe73a955d49b9a72861de2becf2da9a0dc906bd10ab8a3518e270a2f1900d801922d02871d704f2ed380273d35c2d0e04d8da7e24a21eb351c43c00b +DIST pcl-1.15.1.tar.gz 68700306 BLAKE2B 39dcb01d4409e3d4bc4241c5f48f0c450fea285cf3eaef5da6808aa4983ae56338a27e38bc4c77fe47354818564b495c63a6541a4ca9418a2336d0e8b92f4a0b SHA512 ca9e742bc24b38f31c42c9ea08e19054e18d045f487269b64a7b831dada89936445d90a5b46870d8c24c2d25b33a59df2d904fe7e51bc0b231317cdb319951e9 +DIST pcl-PR6330.patch 2278 BLAKE2B 8f494daf31dd24e2493230ec87baf957bdb843a38d6561dfb28297c150500d4c6f05bdc4025b9236409ae3b2df609bc34ee79655f644f4f36aef704ae130b575 SHA512 38cda18b971327d23ed5a55cbf6156feb7a679019d2299188b7173e2297ad05c069d01861e19eec8e45b779a67e5f350d1cbd3be68bd24d2f32434940d72b2b2 +DIST pcl-PR6354.patch 1738 BLAKE2B fe23de1f522f2032d53a811bf64290e4f1a4d8b7d5321865e225aa215d7199c1e96960e5f0125c313a019fde6aaf21568c4e11ef0b593b1c99a9291b0d04aecc SHA512 e888c3859164b43971cbebd5dd945ac70a0b06ee45433c0ac90989b7f29f7eb98272632ebe24a1cdbe0635081bc7a745358416e532a65a99b577f09974cbfb0b +DIST pcl-PR6386.patch 2452 BLAKE2B 0cdee2584812dfa55b53edd30bd7b2fcafae4d86b1429bb4bfef150e870f87ef6b6c51016dd869763437673a94b228afd6205b0024be62351e3cb9c4a9367852 SHA512 b71c116e2041cfc6362ec7c79a4b58f55f407cf7964427f4b2c72921ae2b15655bddd3424eab2574b731efe3356a175acfc3bf168117cbe190d96860b90b3b92 +DIST pcl-PR6394.patch 1120 BLAKE2B a2ef189d7d785cc94a087d133ab4fb3975e0d529e9adb08fed36436ba4810f010c2277a09238ea09c5519961ab866d49b2f81d2d6410368637a807d5fd8c3341 SHA512 bb754403be2a7cc760cfa6d76ceb9e6aec5d84709f1c1b2a650dbc2045a9a5ef99dfc8ae76b3917dc1a447fd4feb7e1ca2b48440d81d97117ad0b5ab6aaea468 +DIST pcl-PR6412.patch 774 BLAKE2B 5422c99c79a564ad5770650b70bb9e230d96006b07b33e6d28e682adf06bd1e69838509f65fee05a57d8b632e002b5a59bef0573e324feceb7330a6fe3591edf SHA512 e6632c2501c3b669523db21c84a79009a665b667414c3852b1735885eb337d9204acc619160b45871a3e54ffb6778db6df596f663afcb407ad8c940674506ff8 +DIST pcl-PR6424.patch 1072 BLAKE2B 1a86af8ae82689a74308e147b106da3b16947ca014cdc10588e756be4a3c26f48f298b61aeb988ad0efd61871b7df367ddf576f1c17f77b02c4b158b1576bf28 SHA512 a2f5ce55071ae8a9417ed09fb77b9e909cac8526a3af544491b837f4fe9ffdade182558020927840ef2fae2100e57cc1d3e650d37e2544aab50379be72ff8d72 +DIST pcl-PR6435.patch 960 BLAKE2B 1e5e70d6896cac4145605f0f1ccc7fe0ea1e124b4f25351752b5dd9eacc2ffccc613fc6d88f596131fd0b4473149f15dbcd616acc33eb4d7fa75a7d2697b7474 SHA512 a2ab357283834243eeb14b24419928847ea1d8e75a7a167ed35374fcbdc30ebadca44c63130beace4b328b4c2e68f43d26d5da36b4414819fe70eb5188b0a5ec +DIST pcl-PR6443.patch 749 BLAKE2B f74290ffe32a5aedadc207f66d98a8e914f16e1975e2394b0c6fbc678ccd979b8a0d66cb607a146edb55b4bbfa5aadae8b754a655a793d4d3432141cc28abac4 SHA512 9700b60274d03743a6de8fab96da6c309d853e037d7a81552f62cdfff844c4cf739317ef4784d9bf8c77a82c230e0398953eb89bec48cbaca36ea320bb206e69 +DIST pcl-PR6460.patch 6240 BLAKE2B 51ad6c7e86eb3af5f4f1d262ac0e5cb9bf0b384d7d3da49829af70cf6a613f9dec48c0fa2c63deb79ed3894bf67ac7b577e8340baa5f3aaaac2e5e9dfd87dcd5 SHA512 419b7baea2ae87b50e1d2c47848d758c11245fce9083f4e281d97d5151213b7e482bd51a912d68839f487eed44d31940e6ae0dbc46fc0ca9b72cdb7ca4101a50 diff --git a/sci-libs/pcl/files/pcl-1.15.1-ASSERT_FLOAT_EQ.patch b/sci-libs/pcl/files/pcl-1.15.1-ASSERT_FLOAT_EQ.patch new file mode 100644 index 000000000000..485df915d5b4 --- /dev/null +++ b/sci-libs/pcl/files/pcl-1.15.1-ASSERT_FLOAT_EQ.patch @@ -0,0 +1,25 @@ +From f295b9bb52d419d67c338ed9f782ad7761c09234 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx@gmail.com> +Date: Thu, 8 Jan 2026 17:52:49 +0100 +Subject: [PATCH] ASSERT_FLOAT_EQ + +Compare float as floats... + +Signed-off-by: Paul Zander <negril.nx@gmail.com> + +diff --git a/test/gpu/octree/test_approx_nearest.cpp b/test/gpu/octree/test_approx_nearest.cpp +index f6f4c0a50..46c951d6e 100644 +--- a/test/gpu/octree/test_approx_nearest.cpp ++++ b/test/gpu/octree/test_approx_nearest.cpp +@@ -121,7 +121,7 @@ TEST(PCL_OctreeGPU, approxNearesSearch) + pcl::squaredEuclideanDistance(coords[7], queries[2]) }; + + for (size_t i = 0; i < queries.size(); ++i) { +- ASSERT_EQ(dists_pcl[i], dists_gpu[i]); ++ ASSERT_FLOAT_EQ(dists_pcl[i], dists_gpu[i]); + ASSERT_NEAR(dists_gpu[i], dists_device_downloaded[i], 0.001); + ASSERT_NEAR(dists_device_downloaded[i], expected_sqr_dists[i], 0.001); + } +-- +2.52.0 + diff --git a/sci-libs/pcl/files/pcl-1.15.1-gcc17-includes.patch b/sci-libs/pcl/files/pcl-1.15.1-gcc17-includes.patch new file mode 100644 index 000000000000..137d6d7999f4 --- /dev/null +++ b/sci-libs/pcl/files/pcl-1.15.1-gcc17-includes.patch @@ -0,0 +1,91 @@ +From 769cd10ca24f3f59e05a52ff9d9f2cdeec22b2d7 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Thu, 10 Sep 2026 19:28:54 +0200 +Subject: gcc-17 include iostream + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/cuda/common/include/pcl/cuda/time_gpu.h b/cuda/common/include/pcl/cuda/time_gpu.h +index 4457029c6..cb51a673d 100644 +--- a/cuda/common/include/pcl/cuda/time_gpu.h ++++ b/cuda/common/include/pcl/cuda/time_gpu.h +@@ -39,6 +39,7 @@ + + #include <cuda.h> + #include <pcl/cuda/cutil_inline.h> ++#include <iostream> + + namespace pcl + { +diff --git a/cuda/sample_consensus/src/sac_model_1point_plane.cu b/cuda/sample_consensus/src/sac_model_1point_plane.cu +index 033de426a..53f92913c 100644 +--- a/cuda/sample_consensus/src/sac_model_1point_plane.cu ++++ b/cuda/sample_consensus/src/sac_model_1point_plane.cu +@@ -47,6 +47,7 @@ + + #include <vector_types.h> + #include <stdio.h> ++#include <iostream> + #include <limits> + + // specify inlier computation method +-- +2.55.0 + + +From 323f2e1ef49853fde45d6e75b430660d2f994b2f Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Thu, 10 Sep 2026 20:18:26 +0200 +Subject: use nullptr + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/cuda/common/include/pcl/cuda/time_gpu.h b/cuda/common/include/pcl/cuda/time_gpu.h +index cb51a673d..108ddc7fc 100644 +--- a/cuda/common/include/pcl/cuda/time_gpu.h ++++ b/cuda/common/include/pcl/cuda/time_gpu.h +@@ -75,7 +75,7 @@ namespace pcl + cutilSafeCall (cudaEventCreate (&start_)); + cutilSafeCall (cudaEventCreate (&end_)); + +- cutilSafeCall (cudaEventRecord (start_, 0)); ++ cutilSafeCall (cudaEventRecord (start_, nullptr)); + } + + /** \brief Stop the timer. */ +@@ -85,7 +85,7 @@ namespace pcl + CUT_CHECK_ERROR ("dude"); + // Measure time needed to copy data + cutilSafeCall (cudaDeviceSynchronize ()); +- cutilSafeCall (cudaEventRecord (end_, 0)); ++ cutilSafeCall (cudaEventRecord (end_, nullptr)); + cutilSafeCall (cudaEventSynchronize (end_)); + cutilSafeCall (cudaEventElapsedTime (&elapsed_time_, start_, end_)); + +-- +2.55.0 + + +From 01134d22dbbaa30c28fc8473e143eb2520cc1c0d Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Thu, 10 Sep 2026 20:18:36 +0200 +Subject: use cstdio + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/gpu/people/src/cuda/nvidia/NCVPyramid.cu b/gpu/people/src/cuda/nvidia/NCVPyramid.cu +index 440d80fb7..cc88a1bea 100644 +--- a/gpu/people/src/cuda/nvidia/NCVPyramid.cu ++++ b/gpu/people/src/cuda/nvidia/NCVPyramid.cu +@@ -40,7 +40,7 @@ + + + #include <cuda_runtime.h> +-#include <stdio.h> ++#include <cstdio> + #include "NCV.hpp" + #include "NCVAlg.hpp" + #include "NCVPyramid.hpp" +-- +2.55.0 + diff --git a/sci-libs/pcl/files/pcl-1.15.1-update-find-vtk.patch b/sci-libs/pcl/files/pcl-1.15.1-update-find-vtk.patch new file mode 100644 index 000000000000..66d8b973a8eb --- /dev/null +++ b/sci-libs/pcl/files/pcl-1.15.1-update-find-vtk.patch @@ -0,0 +1,55 @@ +From 0cc63c4e426c516db835bc323c22ecc72e0bf82f Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Thu, 8 Jan 2026 22:02:00 +0100 +Subject: [PATCH] update find vtk + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/cmake/pcl_find_vtk.cmake b/cmake/pcl_find_vtk.cmake +index ab48e74..adba979 100644 +--- a/cmake/pcl_find_vtk.cmake ++++ b/cmake/pcl_find_vtk.cmake +@@ -28,7 +28,14 @@ endfunction() + # the version of VTK. As the module names were changed from VTK 8.2 to 9.0, we don't + # search explicitly for modules. Furthermore we don't pass required minimum version 6.2 + # to find_package because then it only accept versions with same major version. +-find_package(VTK) ++ ++# Module names changed between 8 and 9, so do a QUIET find for 9 and its module name first, and fall back ++# to v7 minimum with the old component name if it is not found. ++find_package(VTK COMPONENTS CommonCore QUIET NO_MODULE) ++if(NOT VTK_FOUND) ++ message(STATUS "Did not find VTK 9, trying for an older version") ++ find_package(VTK COMPONENTS vtkCommonCore REQUIRED NO_MODULE) ++endif() + + if(NOT VTK_FOUND) + return() +@@ -44,7 +51,6 @@ set(NON_PREFIX_PCL_VTK_COMPONENTS + ChartsCore + CommonColor + CommonComputationalGeometry +- CommonCore + CommonDataModel + CommonExecutionModel + CommonMath +@@ -79,7 +85,7 @@ set(VTK_RENDERING_BACKEND "OpenGL2") + set(VTK_RENDERING_BACKEND_OPENGL_VERSION "2") + list(APPEND NON_PREFIX_PCL_VTK_COMPONENTS Rendering${VTK_RENDERING_BACKEND} RenderingContext${VTK_RENDERING_BACKEND}) + +-#Append vtk to components if version is <9.0 ++# Append vtk to components if version is <9.0 + if(VTK_VERSION VERSION_LESS 9.0) + foreach(vtkComponent ${NON_PREFIX_PCL_VTK_COMPONENTS}) + set(vtkComponent "vtk${vtkComponent}") +@@ -90,6 +96,7 @@ else() + endif() + + # Check if requested modules are available ++find_package(VTK COMPONENTS ${PCL_VTK_COMPONENTS} REQUIRED NO_MODULE) + checkVTKComponents(COMPONENTS ${PCL_VTK_COMPONENTS} MISSING_COMPONENTS vtkMissingComponents) + + if (vtkMissingComponents) +-- +2.52.0 + diff --git a/sci-libs/pcl/metadata.xml b/sci-libs/pcl/metadata.xml index 21f9146980f8..336316d7ce38 100644 --- a/sci-libs/pcl/metadata.xml +++ b/sci-libs/pcl/metadata.xml @@ -1,14 +1,26 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <!-- maintainer-needed --> + <maintainer type="person" proxied="yes"> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>sci@gentoo.org</email> + <name>Gentoo Science Project</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> <use> - <flag name="openni">Adds support for Kinect-like 3D sensors devices with <pkg>dev-libs/OpenNI</pkg>.</flag> - <flag name="openni2">Adds support for Kinect-like 3D sensors devices with <pkg>dev-libs/OpenNI2</pkg> (should be preferred over openni).</flag> - <flag name="pcap">Adds pcap file capabilities in some drivers.</flag> - <flag name="qhull">Adds convex-hull operation support via <pkg>media-libs/qhull</pkg>.</flag> - <flag name="vtk">Adds support for VTK-Visualizations.</flag> - <flag name="tutorials">Builds and installs tutorials.</flag> + <flag name="apps">Build application examples/samples that show how PCL works</flag> + <flag name="openni">Adds support for Kinect-like 3D sensors devices with <pkg>dev-libs/OpenNI</pkg></flag> + <flag name="openni2">Adds support for Kinect-like 3D sensors devices with <pkg>dev-libs/OpenNI2</pkg> (should be preferred over openni)</flag> + <flag name="pcap">Adds pcap file capabilities in some drivers</flag> + <flag name="qhull">Adds convex-hull operation support via <pkg>media-libs/qhull</pkg></flag> + <flag name="tutorials">Builds and installs tutorials</flag> + <flag name="vtk">Adds support for VTK-Visualizations</flag> </use> <longdescription lang="en"> The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing. diff --git a/sci-libs/pcl/pcl-1.15.1.ebuild b/sci-libs/pcl/pcl-1.15.1.ebuild new file mode 100644 index 000000000000..e87ef38dba54 --- /dev/null +++ b/sci-libs/pcl/pcl-1.15.1.ebuild @@ -0,0 +1,301 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) + +inherit cmake cuda flag-o-matic python-any-r1 toolchain-funcs + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/PointCloudLibrary/pcl" +else + SRC_URI=" + https://github.com/PointCloudLibrary/pcl/archive/${P}.tar.gz + https://github.com/PointCloudLibrary/pcl/commit/99333442ac63971297b4cdd05fab9d2bd2ff57a4.patch -> ${PN}-PR6330.patch + https://github.com/PointCloudLibrary/pcl/commit/8dd410058f7acfd825e078dd9ef078677ebd929c.patch -> ${PN}-PR6386.patch + https://github.com/PointCloudLibrary/pcl/commit/2d6929bdcd98beaa28fa8ee3a105beb566f16347.patch -> ${PN}-PR6354.patch + https://github.com/PointCloudLibrary/pcl/commit/f76acdae162e77437582ea93856bb4f81109a359.patch -> ${PN}-PR6394.patch + https://github.com/PointCloudLibrary/pcl/commit/0290ff7340519d6213f78b067a2fd28d8dd13a56.patch -> ${PN}-PR6412.patch + https://github.com/PointCloudLibrary/pcl/commit/c423d307ceeb5c004b0c9714180c521fafadb857.patch -> ${PN}-PR6424.patch + https://github.com/PointCloudLibrary/pcl/commit/4a6fbd87dcc7caf5be63526e4c3f469f79b63ea5.patch -> ${PN}-PR6435.patch + https://github.com/PointCloudLibrary/pcl/commit/5f77c27fb80a0a70a56570f3974501a527afb320.patch -> ${PN}-PR6443.patch + https://github.com/PointCloudLibrary/pcl/commit/c1126ecfb6535d0199827615676a92b648b98a16.patch -> ${PN}-PR6460.patch + " + S="${WORKDIR}/${PN}-${P}" + KEYWORDS="~amd64" + CMAKE_QA_COMPAT_SKIP="true" +fi + +DESCRIPTION="2D/3D image and point cloud processing" +HOMEPAGE="https://pointclouds.org/" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2)" +IUSE="apps cuda doc examples opengl openmp openni openni2 pcap png +qhull qt6 test tutorials usb vtk cpu_flags_x86_avx cpu_flags_x86_sse" + +# vtk has a hard depend on png. so HAVE_PNG is true if you find vtk +REQUIRED_USE=" + openni? ( usb ) + openni2? ( usb ) + tutorials? ( doc ) + vtk? ( png qt6 ) + test? ( vtk ) +" + +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-cpp/eigen:= + dev-libs/boost:= + dev-libs/cJSON + >=sci-libs/flann-1.7.1 + sci-libs/nanoflann + virtual/zlib:= + apps? ( + qt6? ( + dev-qt/qtbase:6[concurrent,gui,opengl] + vtk? ( + sci-libs/vtk[qt6] + ) + ) + ) + cuda? ( + dev-util/nvidia-cuda-toolkit:= + ) + opengl? ( + media-libs/freeglut + virtual/opengl + ) + openni? ( + dev-libs/OpenNI + ) + openni2? ( + dev-libs/OpenNI2 + ) + pcap? ( + net-libs/libpcap + ) + png? ( + media-libs/libpng:= + ) + qhull? ( + media-libs/qhull:= + ) + usb? ( + virtual/libusb:1 + ) + vtk? ( + media-libs/glew:= + sci-libs/vtk:=[imaging,rendering,views] + virtual/glu + x11-libs/libX11 + ) +" +DEPEND="${RDEPEND} + !!dev-cpp/metslib + openmp? ( + || ( + sys-devel/gcc[openmp] + llvm-runtimes/clang-runtime[openmp] + ) + ) + test? ( + dev-cpp/gtest + ) +" +# dev-texlive/texlive-latexextra for anyfontsize.sty +BDEPEND=" + doc? ( + app-text/doxygen[dot] + $(python_gen_any_dep ' + dev-python/sphinxcontrib-doxylink[${PYTHON_USEDEP}] + ') + virtual/latex-base + dev-texlive/texlive-latexextra + ) + tutorials? ( + $(python_gen_any_dep ' + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + dev-python/sphinxcontrib-doxylink[${PYTHON_USEDEP}] + ') + ) + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/${PN}-1.12.1-allow-configuration-of-install-dirs.patch" + "${FILESDIR}/${PN}-1.12.1-fix-hardcoded-relative-directory-of-the-installed-cmake-files.patch" + "${FILESDIR}/${PN}-1.14.1-tests.patch" + "${FILESDIR}/${PN}-1.15.1-ASSERT_FLOAT_EQ.patch" + "${FILESDIR}/${PN}-1.15.1-update-find-vtk.patch" + + "${DISTDIR}/${PN}-PR6330.patch" # Fix build with Boost 1.89.0 + "${DISTDIR}/${PN}-PR6386.patch" # Enable compilation with Eigen 5.0.0 + "${DISTDIR}/${PN}-PR6354.patch" # Fix CUDA 12.9 transform_reduce ambiguity + "${DISTDIR}/${PN}-PR6394.patch" # Replace deprecated VTK function + "${DISTDIR}/${PN}-PR6412.patch" # fix missing iostream include + "${DISTDIR}/${PN}-PR6424.patch" # Fix gpu module building with cuda 13.2 + "${DISTDIR}/${PN}-PR6435.patch" # Add x11 on linux when vtk 9.6+ + "${DISTDIR}/${PN}-PR6443.patch" # fix cuda 13.3 errors + "${DISTDIR}/${PN}-PR6460.patch" # Replace deprecated thrust function, fix problems with thrust + "${FILESDIR}/${PN}-1.15.1-gcc17-includes.patch" +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + + if use doc || use tutorials; then + python-any-r1_pkg_setup + fi +} + +python_check_deps() { + { + use doc && + python_has_version "dev-python/sphinxcontrib-doxylink[${PYTHON_USEDEP}]"; + } && + { + use tutorials && + python_has_version \ + "dev-python/sphinx[${PYTHON_USEDEP}]" \ + "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" \ + "dev-python/sphinxcontrib-doxylink[${PYTHON_USEDEP}]" \ + ; + } +} + +src_prepare() { + if use cuda; then + cuda_src_prepare + fi + + cmake_src_prepare +} + +src_configure() { + append-flags -fno-strict-aliasing + + local mycmakeargs=( + -DDOC_INSTALL_DIR="share/doc/${PF}" + -DLIB_INSTALL_DIR="$(get_libdir)" + + # we are mixing static and shared libraries... + -DCMAKE_POSITION_INDEPENDENT_CODE="yes" + -DPCL_ALLOW_BOTH_SHARED_AND_STATIC_DEPENDENCIES="no" + + -DPCLCONFIG_INSTALL_DIR="share/cmake/${PN}-$(ver_cut 1-2)" + + -DBUILD_CUDA="$(usex cuda)" + -DBUILD_GPU="$(usex cuda)" + + -DBUILD_apps="$(usex apps)" + + -DBUILD_benchmarks="no" + + -DBUILD_examples="$(usex examples)" + -DBUILD_global_tests="$(usex test)" + + -DBUILD_simulation="yes" + -DBUILD_surface="yes" + -DBUILD_surface_on_nurbs="yes" + -DBUILD_tools="yes" + -DBUILD_tracking="yes" + -DBUILD_visualization="$(usex vtk)" + + -DPCL_ENABLE_CCACHE="no" + + -DPCL_ENABLE_MARCHNATIVE="no" + -DPCL_ENABLE_AVX="$(usex cpu_flags_x86_avx)" + -DPCL_ENABLE_SSE="$(usex cpu_flags_x86_sse)" + + -DPCL_DISABLE_GPU_TESTS="$(usex !cuda)" + -DPCL_DISABLE_VISUALIZATION_TESTS="$(usex !vtk)" + + -DWITH_CUDA="$(usex cuda)" + -DWITH_DAVIDSDK="no" + -DWITH_DOCS="$(usex doc)" + -DWITH_DSSDK="no" + -DWITH_ENSENSO="no" + -DWITH_GLEW="yes" + -DWITH_LIBUSB="$(usex usb)" + -DWITH_OPENGL="$(usex opengl)" + -DWITH_OPENMP="$(usex openmp)" + -DWITH_OPENNI2="$(usex openni2)" + -DWITH_OPENNI="$(usex openni)" + -DWITH_PCAP="$(usex pcap)" + -DWITH_PNG="$(usex png)" + -DWITH_QHULL="$(usex qhull)" + -DWITH_QT="$(usex qt6 QT6 NO)" + -DWITH_RSSDK2="no" + -DWITH_RSSDK="no" + -DWITH_SYSTEM_CJSON="yes" + -DWITH_SYSTEM_ZLIB="yes" + -DWITH_TUTORIALS="$(usex tutorials)" + -DWITH_VTK="$(usex vtk)" + + # TODO expects <suitesparse/cholmod.h> #979607 + # surface/src/on_nurbs/on_nurbs.cmake + -DUSE_UMFPACK="no" + ) + + if use apps; then + mycmakeargs+=( + -DBUILD_apps_3d_rec_framework="$(usex vtk "$(usex openni)")" + -DBUILD_apps_cloud_composer="yes" + -DBUILD_apps_in_hand_scanner="$(usex qt6 "$(usex opengl "$(usex openni)")")" + -DBUILD_apps_modeler="yes" + -DBUILD_apps_point_cloud_editor="yes" + ) + + if use cuda; then + mycmakeargs+=( + -DBUILD_cuda_common="yes" + -DBUILD_cuda_features="yes" + -DBUILD_cuda_sample_consensus="yes" + -DBUILD_cuda_segmentation="yes" + + -DBUILD_gpu_features="yes" + -DBUILD_gpu_kinfu="no" # uses textures which was removed in CUDA 12 + -DBUILD_gpu_kinfu_large_scale="no" # uses textures which was removed in CUDA 12 + -DBUILD_gpu_people="no" # uses textures which was removed in CUDA 12 + ) + fi + fi + + if use cuda; then + mycmakeargs+=( + -DBUILD_cuda_apps="$(usex openni "$(usex vtk)")" # Requires cuda_io. + -DBUILD_cuda_io="$(usex openni)" # Requires external library openni. + -DBUILD_gpu_surface="yes" + -DBUILD_gpu_tracking="yes" + ) + + cuda_add_sandbox + addpredict "/dev/char/" + + local -x CUDAHOSTCXX="$(cuda_gccdir)" + + if [[ -v CUDAARCHS ]]; then + mycmakeargs+=( + -DCUDA_ARCH_BIN="${CUDAARCHS}" + ) + fi + fi + + cmake_src_configure +} + +src_test() { + if use cuda; then + cuda_add_sandbox -w + fi + + BUILD_DIR="${BUILD_DIR}/test" cmake_src_test +} diff --git a/sci-libs/pcl/pcl-9999.ebuild b/sci-libs/pcl/pcl-9999.ebuild index b2d79f5e6fe7..f41fb64a8bc6 100644 --- a/sci-libs/pcl/pcl-9999.ebuild +++ b/sci-libs/pcl/pcl-9999.ebuild @@ -1,17 +1,22 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit cmake cuda +PYTHON_COMPAT=( python3_{12..14} ) + +inherit cmake cuda flag-o-matic python-any-r1 toolchain-funcs if [[ ${PV} == *9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/PointCloudLibrary/pcl" else - SRC_URI="https://github.com/PointCloudLibrary/pcl/archive/${P}.tar.gz" + SRC_URI=" + https://github.com/PointCloudLibrary/pcl/archive/${P}.tar.gz + " S="${WORKDIR}/${PN}-${P}" KEYWORDS="~amd64 ~arm" + CMAKE_QA_COMPAT_SKIP="true" fi DESCRIPTION="2D/3D image and point cloud processing" @@ -19,98 +24,258 @@ HOMEPAGE="https://pointclouds.org/" LICENSE="BSD" SLOT="0/$(ver_cut 1-2)" -IUSE="cuda doc opengl openni openni2 pcap png +qhull qt6 usb vtk cpu_flags_x86_sse test tutorials" +IUSE="apps cuda doc examples opengl openmp openni openni2 pcap png +qhull qt6 test tutorials usb vtk cpu_flags_x86_avx cpu_flags_x86_sse" +# vtk has a hard depend on png. so HAVE_PNG is true if you find vtk REQUIRED_USE=" openni? ( usb ) openni2? ( usb ) tutorials? ( doc ) + vtk? ( png qt6 ) + test? ( vtk ) " + RESTRICT="!test? ( test )" RDEPEND=" - dev-libs/boost:= dev-cpp/eigen:= + dev-libs/boost:= + dev-libs/cJSON >=sci-libs/flann-1.7.1 + sci-libs/nanoflann + virtual/zlib:= + apps? ( + qt6? ( + dev-qt/qtbase:6[concurrent,gui,opengl] + vtk? ( + sci-libs/vtk[qt6] + ) + ) + ) + cuda? ( + dev-util/nvidia-cuda-toolkit:= + ) opengl? ( media-libs/freeglut virtual/opengl ) - openni? ( dev-libs/OpenNI ) - openni2? ( dev-libs/OpenNI2 ) - pcap? ( net-libs/libpcap ) - png? ( media-libs/libpng:0= ) - qhull? ( media-libs/qhull:= ) - qt6? ( - dev-qt/qtbase:6[concurrent,gui,opengl] - vtk? ( sci-libs/vtk[-qt5(-),qt6] ) + openni? ( + dev-libs/OpenNI + ) + openni2? ( + dev-libs/OpenNI2 + ) + pcap? ( + net-libs/libpcap + ) + png? ( + media-libs/libpng:= + ) + qhull? ( + media-libs/qhull:= + ) + usb? ( + virtual/libusb:1 + ) + vtk? ( + media-libs/glew:= + sci-libs/vtk:=[imaging,rendering,views] + virtual/glu + x11-libs/libX11 ) - usb? ( virtual/libusb:1 ) - vtk? ( >=sci-libs/vtk-5.6:=[imaging,rendering,views] ) - cuda? ( >=dev-util/nvidia-cuda-toolkit-4 ) " DEPEND="${RDEPEND} !!dev-cpp/metslib - test? ( dev-cpp/gtest ) + openmp? ( + || ( + sys-devel/gcc[openmp] + llvm-runtimes/clang-runtime[openmp] + ) + ) + test? ( + dev-cpp/gtest + ) " +# dev-texlive/texlive-latexextra for anyfontsize.sty BDEPEND=" doc? ( app-text/doxygen[dot] + $(python_gen_any_dep ' + dev-python/sphinxcontrib-doxylink[${PYTHON_USEDEP}] + ') virtual/latex-base + dev-texlive/texlive-latexextra ) tutorials? ( - dev-python/sphinx - dev-python/sphinx-rtd-theme - dev-python/sphinxcontrib-doxylink + $(python_gen_any_dep ' + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + dev-python/sphinxcontrib-doxylink[${PYTHON_USEDEP}] + ') ) virtual/pkgconfig " PATCHES=( - "${FILESDIR}"/${PN}-1.12.1-allow-configuration-of-install-dirs.patch - "${FILESDIR}"/${PN}-1.12.1-fix-hardcoded-relative-directory-of-the-installed-cmake-files.patch - "${FILESDIR}"/${PN}-1.14.1-gcc15.patch - "${FILESDIR}"/${PN}-1.14.1-tests.patch + "${FILESDIR}/${PN}-1.12.1-allow-configuration-of-install-dirs.patch" + "${FILESDIR}/${PN}-1.12.1-fix-hardcoded-relative-directory-of-the-installed-cmake-files.patch" + "${FILESDIR}/${PN}-1.14.1-tests.patch" + "${FILESDIR}/${PN}-1.15.1-ASSERT_FLOAT_EQ.patch" + "${FILESDIR}/${PN}-1.15.1-update-find-vtk.patch" ) +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + + if use doc || use tutorials; then + python-any-r1_pkg_setup + fi +} + +python_check_deps() { + { + use doc && + python_has_version "dev-python/sphinxcontrib-doxylink[${PYTHON_USEDEP}]"; + } && + { + use tutorials && + python_has_version \ + "dev-python/sphinx[${PYTHON_USEDEP}]" \ + "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" \ + "dev-python/sphinxcontrib-doxylink[${PYTHON_USEDEP}]" \ + ; + } +} + src_prepare() { if use cuda; then cuda_src_prepare - cuda_add_sandbox -w fi cmake_src_prepare } src_configure() { + append-flags -fno-strict-aliasing + local mycmakeargs=( - "-DDOC_INSTALL_DIR=share/doc/${PF}" - "-DLIB_INSTALL_DIR=$(get_libdir)" - "-DPCLCONFIG_INSTALL_DIR=share/cmake/${PN}-$(ver_cut 1-2)" - "-DWITH_CUDA=$(usex cuda TRUE FALSE)" - "-DWITH_LIBUSB=$(usex usb TRUE FALSE)" - "-DWITH_OPENGL=$(usex opengl TRUE FALSE)" - "-DWITH_PNG=$(usex png TRUE FALSE)" - "-DWITH_QHULL=$(usex qhull TRUE FALSE)" - "-DWITH_VTK=$(usex vtk TRUE FALSE)" - "-DWITH_PCAP=$(usex pcap TRUE FALSE)" - "-DWITH_OPENNI=$(usex openni TRUE FALSE)" - "-DWITH_OPENNI2=$(usex openni2 TRUE FALSE)" - "-DPCL_ENABLE_SSE=$(usex cpu_flags_x86_sse TRUE FALSE)" - "-DWITH_DOCS=$(usex doc TRUE FALSE)" - "-DWITH_TUTORIALS=$(usex tutorials TRUE FALSE)" + -DDOC_INSTALL_DIR="share/doc/${PF}" + -DLIB_INSTALL_DIR="$(get_libdir)" + + # we are mixing static and shared libraries... + -DCMAKE_POSITION_INDEPENDENT_CODE="yes" + -DPCL_ALLOW_BOTH_SHARED_AND_STATIC_DEPENDENCIES="no" + + -DPCLCONFIG_INSTALL_DIR="share/cmake/${PN}-$(ver_cut 1-2)" + + -DBUILD_CUDA="$(usex cuda)" + -DBUILD_GPU="$(usex cuda)" + + -DBUILD_apps="$(usex apps)" + + -DBUILD_benchmarks="no" + + -DBUILD_examples="$(usex examples)" -DBUILD_global_tests="$(usex test)" + + -DBUILD_simulation="yes" + -DBUILD_surface="yes" + -DBUILD_surface_on_nurbs="yes" + -DBUILD_tools="yes" + -DBUILD_tracking="yes" + -DBUILD_visualization="$(usex vtk)" + + -DPCL_ENABLE_CCACHE="no" + + -DPCL_ENABLE_MARCHNATIVE="no" + -DPCL_ENABLE_AVX="$(usex cpu_flags_x86_avx)" + -DPCL_ENABLE_SSE="$(usex cpu_flags_x86_sse)" + + -DPCL_DISABLE_GPU_TESTS="$(usex !cuda)" + -DPCL_DISABLE_VISUALIZATION_TESTS="$(usex !vtk)" + + -DWITH_CUDA="$(usex cuda)" + -DWITH_DAVIDSDK="no" + -DWITH_DOCS="$(usex doc)" + -DWITH_DSSDK="no" + -DWITH_ENSENSO="no" + -DWITH_GLEW="yes" + -DWITH_LIBUSB="$(usex usb)" + -DWITH_OPENGL="$(usex opengl)" + -DWITH_OPENMP="$(usex openmp)" + -DWITH_OPENNI2="$(usex openni2)" + -DWITH_OPENNI="$(usex openni)" + -DWITH_PCAP="$(usex pcap)" + -DWITH_PNG="$(usex png)" + -DWITH_QHULL="$(usex qhull)" + -DWITH_QT="$(usex qt6 QT6 NO)" + -DWITH_RSSDK2="no" + -DWITH_RSSDK="no" + -DWITH_SYSTEM_CJSON="yes" + -DWITH_SYSTEM_ZLIB="yes" + -DWITH_TUTORIALS="$(usex tutorials)" + -DWITH_VTK="$(usex vtk)" + + # TODO expects <suitesparse/cholmod.h> #979607 + # surface/src/on_nurbs/on_nurbs.cmake + -DUSE_UMFPACK="no" ) - if use qt6; then - mycmakeargs+=( "-DWITH_QT=QT6" ) - else - mycmakeargs+=( "-DWITH_QT=NO" ) + if use apps; then + mycmakeargs+=( + -DBUILD_apps_3d_rec_framework="$(usex vtk "$(usex openni)")" + -DBUILD_apps_cloud_composer="yes" + -DBUILD_apps_in_hand_scanner="$(usex qt6 "$(usex opengl "$(usex openni)")")" + -DBUILD_apps_modeler="yes" + -DBUILD_apps_point_cloud_editor="yes" + ) + + if use cuda; then + mycmakeargs+=( + -DBUILD_cuda_common="yes" + -DBUILD_cuda_features="yes" + -DBUILD_cuda_sample_consensus="yes" + -DBUILD_cuda_segmentation="yes" + + -DBUILD_gpu_features="yes" + -DBUILD_gpu_kinfu="no" # uses textures which was removed in CUDA 12 + -DBUILD_gpu_kinfu_large_scale="no" # uses textures which was removed in CUDA 12 + -DBUILD_gpu_people="no" # uses textures which was removed in CUDA 12 + ) + fi + fi + + if use cuda; then + mycmakeargs+=( + -DBUILD_cuda_apps="$(usex openni "$(usex vtk)")" # Requires cuda_io. + -DBUILD_cuda_io="$(usex openni)" # Requires external library openni. + -DBUILD_gpu_surface="yes" + -DBUILD_gpu_tracking="yes" + ) + + cuda_add_sandbox + addpredict "/dev/char/" + + local -x CUDAHOSTCXX="$(cuda_gccdir)" + + if [[ -v CUDAARCHS ]]; then + mycmakeargs+=( + -DCUDA_ARCH_BIN="${CUDAARCHS}" + ) + fi fi cmake_src_configure } src_test() { + if use cuda; then + cuda_add_sandbox -w + fi + BUILD_DIR="${BUILD_DIR}/test" cmake_src_test } diff --git a/sci-libs/spooles/Manifest b/sci-libs/spooles/Manifest new file mode 100644 index 000000000000..dcbe9e7e2bcc --- /dev/null +++ b/sci-libs/spooles/Manifest @@ -0,0 +1 @@ +DIST spooles.2.2.tgz 4510271 BLAKE2B 86adc0764709f772526909942bcbe034209838c7284e7c1245293e4acb84e9a02511428f0659607de3b39ffecdc02c6b60e4015a8c8905da34b2b15688edab34 SHA512 440146b4abf81d8e66a7c57e839b06b11c7753e16d40ae67f80255d6d5dc9fb43b4fd549326c405a8f3009223fcb0f6997090b3649029c323c732b0759944d19 diff --git a/sci-libs/spooles/files/Make.inc.in b/sci-libs/spooles/files/Make.inc.in new file mode 100644 index 000000000000..1557f9fe979e --- /dev/null +++ b/sci-libs/spooles/files/Make.inc.in @@ -0,0 +1,9 @@ +.POSIX: +THREAD_LIBS = -lpthread +CC = @CC@ +AR = @AR@ +RANLIB = @RANLIB@ +ARFLAGS = rv +.c.a : + $(CC) $(CFLAGS) -c $< + $(AR) $(ARFLAGS) $@ $*.o diff --git a/sci-libs/spooles/files/spooles-2.2-I2Ohash-64bit.patch b/sci-libs/spooles/files/spooles-2.2-I2Ohash-64bit.patch new file mode 100644 index 000000000000..0f608da2afc8 --- /dev/null +++ b/sci-libs/spooles/files/spooles-2.2-I2Ohash-64bit.patch @@ -0,0 +1,28 @@ +--- spooles-2.2/I2Ohash/src/util.c~ 1998-05-30 18:45:12.000000000 -0400 ++++ spooles-2.2/I2Ohash/src/util.c 2008-06-28 20:56:49.000000000 -0400 +@@ -39,9 +39,10 @@ + */ + loc1 = (key1 + 1) % hashtable->nlist ; + loc2 = (key2 + 1) % hashtable->nlist ; +-loc = (loc1*loc2) % hashtable->nlist ; ++long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ; ++loc =(int) loc3; + #if MYDEBUG > 0 +-fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %d", loc1, loc2, loc) ; ++fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %ld, loc = %d", loc1, loc2, loc3, loc) ; + fflush(stdout) ; + #endif + /* +@@ -158,9 +159,10 @@ + #endif + loc1 = (key1 + 1) % hashtable->nlist ; + loc2 = (key2 + 1) % hashtable->nlist ; +-loc = (loc1*loc2) % hashtable->nlist ; ++long int loc3 = (long int)loc1*(long int)loc2 % hashtable->nlist ; ++loc =(int) loc3; + #if MYDEBUG > 0 +-fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %d", loc1, loc2, loc) ; ++fprintf(stdout, "\n loc1 = %d, loc2 = %d, loc3 = %ld, loc = %d", loc1, loc2, loc3, loc) ; + fflush(stdout) ; + #endif + /* diff --git a/sci-libs/spooles/files/spooles-2.2-NULL-is-not-int.patch b/sci-libs/spooles/files/spooles-2.2-NULL-is-not-int.patch new file mode 100644 index 000000000000..82ae97d4e46f --- /dev/null +++ b/sci-libs/spooles/files/spooles-2.2-NULL-is-not-int.patch @@ -0,0 +1,41 @@ +From 0d4da5e66c5913f6fe748baf91f6ad466131c3c7 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Thu, 16 Apr 2026 15:19:59 +0200 +Subject: NULL is not int + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/ETree/src/transform.c b/ETree/src/transform.c +index 1e36981..dbdfc70 100644 +--- a/ETree/src/transform.c ++++ b/ETree/src/transform.c +@@ -291,7 +291,7 @@ etree2 = ETree_compress(etree, mapIV) ; + remap the nzeros[] vector + ------------------------- + */ +-temp = IVinit(nfront, NULL) ; ++temp = IVinit(nfront, 0) ; + IVcopy(nfront, temp, nzeros) ; + IV_setSize(nzerosIV, nnew) ; + nzeros = IV_entries(nzerosIV) ; +@@ -453,7 +453,7 @@ etree2 = ETree_compress(etree, mapIV) ; + remap the nzeros[] vector + ------------------------- + */ +-temp = IVinit(nfront, NULL) ; ++temp = IVinit(nfront, 0) ; + IVcopy(nfront, temp, nzeros) ; + IV_setSize(nzerosIV, nnew) ; + nzeros = IV_entries(nzerosIV) ; +@@ -614,7 +614,7 @@ etree2 = ETree_compress(etree, mapIV) ; + remap the nzeros[] vector + ------------------------- + */ +-temp = IVinit(nfront, NULL) ; ++temp = IVinit(nfront, 0) ; + IVcopy(nfront, temp, nzeros) ; + IV_setSize(nzerosIV, nnew) ; + nzeros = IV_entries(nzerosIV) ; +-- +2.53.0 + diff --git a/sci-libs/spooles/files/spooles-2.2-formats.patch b/sci-libs/spooles/files/spooles-2.2-formats.patch new file mode 100644 index 000000000000..2d6b622bf7d0 --- /dev/null +++ b/sci-libs/spooles/files/spooles-2.2-formats.patch @@ -0,0 +1,17 @@ +--- spooles-2.2/SolveMap/src/setup.c.orig 2011-03-05 18:08:51.000000000 +0000 ++++ spooles-2.2/SolveMap/src/setup.c 2011-03-05 18:16:50.000000000 +0000 +@@ -28,12 +28,12 @@ + --------------- + */ + if ( solvemap == NULL ) { +- fprintf(stderr, "\n fatal error in SolveMap_forwardSetup(%p,%d)" ++ fprintf(stderr, "\n fatal error in SolveMap_forwardSetup" + "\n solvemap is NULL\n") ; + exit(-1) ; + } + if ( myid < 0 || myid >= solvemap->nproc ) { +- fprintf(stderr, "\n fatal error in SolveMap_forwardSetup(%p,%d)" ++ fprintf(stderr, "\n fatal error in SolveMap_forwardSetup" + "\n myid %d, solvemap->nproc %d\n", myid, solvemap->nproc) ; + exit(-1) ; + } diff --git a/sci-libs/spooles/files/spooles-2.2-include-stdio.h.patch b/sci-libs/spooles/files/spooles-2.2-include-stdio.h.patch new file mode 100644 index 000000000000..653b8a2f1149 --- /dev/null +++ b/sci-libs/spooles/files/spooles-2.2-include-stdio.h.patch @@ -0,0 +1,24 @@ +From 433b42aca312e1f44ab20366ab7748a5d8246a70 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Thu, 16 Apr 2026 15:20:24 +0200 +Subject: include stdio.h + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/Utilities/IV.h b/Utilities/IV.h +index eb7dfcf..5890b4e 100644 +--- a/Utilities/IV.h ++++ b/Utilities/IV.h +@@ -11,6 +11,9 @@ + return value -- the size of the (x2[],y2[]) arrays + ------------------------------------------------------- + */ ++ ++#include <stdio.h> ++ + int + IVcompress ( + int size1, +-- +2.53.0 + diff --git a/sci-libs/spooles/files/spooles-2.2-makefiles.patch b/sci-libs/spooles/files/spooles-2.2-makefiles.patch new file mode 100644 index 000000000000..0fe974c181af --- /dev/null +++ b/sci-libs/spooles/files/spooles-2.2-makefiles.patch @@ -0,0 +1,47 @@ +--- spooles-2.2/MPI/makefile~ 1998-12-17 15:47:44.000000000 +0000 ++++ spooles-2.2/MPI/makefile 2008-02-26 00:10:57.000000000 +0000 +@@ -2,7 +2,7 @@ + cd drivers ; make drivers + + lib : +- cd src ; make spoolesMPI.a ++ cd src ; make makeLib + + clean : + cd src ; make clean +--- spooles-2.2/MPI/src/makefile~ 1998-12-16 21:54:41.000000000 +0000 ++++ spooles-2.2/MPI/src/makefile 2008-02-26 00:08:16.000000000 +0000 +@@ -42,3 +42,8 @@ + + clean : + - rm -f *.a *.o ++ ++makeLib : ++ perl ../../makeLib > makeG ++ make -f makeG ++ rm -f makeG +--- spooles-2.2/MT/makefile~ 1998-12-17 15:47:48.000000000 +0000 ++++ spooles-2.2/MT/makefile 2008-02-26 00:12:43.000000000 +0000 +@@ -2,7 +2,7 @@ + cd drivers ; make drivers + + lib : +- cd src ; make spoolesMT.a ++ cd src ; make makeLib + + clean : + cd src ; make clean +--- spooles-2.2/makeLib~ 2011-03-05 16:44:12.000000000 +0000 ++++ spooles-2.2/makeLib 2011-03-05 17:46:58.000000000 +0000 +@@ -70,8 +70,8 @@ + .c.o : + $(PURIFY) $(CC) -c $(CFLAGS) $*.c -o $(OBJ)_$*.o + +-../../spooles.a : ${OBJ_FILES} +- $(AR) $(ARFLAGS) ../../spooles.a $(OBJ)_*.o ++../../libspooles.a : ${OBJ_FILES} ++ $(AR) $(ARFLAGS) ../../libspooles.a $(OBJ)_*.o + rm -f $(OBJ)_*.o +- $(RANLIB) ../../spooles.a ++ $(RANLIB) ../../libspooles.a + EOF diff --git a/sci-libs/spooles/files/spooles-2.2-printf-long.patch b/sci-libs/spooles/files/spooles-2.2-printf-long.patch new file mode 100644 index 000000000000..531391dec97b --- /dev/null +++ b/sci-libs/spooles/files/spooles-2.2-printf-long.patch @@ -0,0 +1,145 @@ +From 6f30f1cef38d548b1b0f8cd720e52f2e40608f22 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Thu, 16 Apr 2026 15:20:16 +0200 +Subject: printf long + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/Chv/src/init.c b/Chv/src/init.c +index faa6b7b..ad873cf 100644 +--- a/Chv/src/init.c ++++ b/Chv/src/init.c +@@ -58,7 +58,7 @@ case SPOOLES_REAL : + } else { + fprintf(stderr, + "\n fatal error in Chv_nbytesNeeded()" +- "\n sizeof(int) = %d, sizeof(double) = %d", ++ "\n sizeof(int) = %lu, sizeof(double) = %lu", + sizeof(int), sizeof(double)) ; + exit(-1) ; + } +@@ -90,7 +90,7 @@ case SPOOLES_COMPLEX : + } else { + fprintf(stderr, + "\n fatal error in Chv_nbytesNeeded()" +- "\n sizeof(int) = %d, sizeof(double) = %d", ++ "\n sizeof(int) = %lu, sizeof(double) = %lu", + sizeof(int), sizeof(double)) ; + exit(-1) ; + } +diff --git a/DenseMtx/src/IO.c b/DenseMtx/src/IO.c +index b7495a1..bdccb73 100644 +--- a/DenseMtx/src/IO.c ++++ b/DenseMtx/src/IO.c +@@ -519,7 +519,7 @@ fprintf(fp, "\n rowind = %p, colind = %p, entries = %p", + mtx->rowind, mtx->colind, mtx->entries) ; + fprintf(fp, ", base = %p", DV_entries(&mtx->wrkDV)) ; + fprintf(fp, +- "\n rowind - base = %d, colind - base = %d, entries - base = %d", ++ "\n rowind - base = %ld, colind - base = %ld, entries - base = %ld", + mtx->rowind - (int *) DV_entries(&mtx->wrkDV), + mtx->colind - (int *) DV_entries(&mtx->wrkDV), + mtx->entries - DV_entries(&mtx->wrkDV)) ; +diff --git a/DenseMtx/src/init.c b/DenseMtx/src/init.c +index 850dff5..500129c 100644 +--- a/DenseMtx/src/init.c ++++ b/DenseMtx/src/init.c +@@ -47,7 +47,7 @@ if ( sizeof(int) == sizeof(double) ) { + nbytes = ((nint + 1)/2 + ndouble)*sizeof(double) ; + } else { + fprintf(stderr, "\n error in DenseMtx_nbytesNeeded(%d,%d)" +- "\n sizeof(int) = %d, sizeof(double) = %d", ++ "\n sizeof(int) = %ld, sizeof(double) = %ld", + nrow, ncol, sizeof(int), sizeof(double)) ; + exit(-1) ; + } +diff --git a/MT/src/QRfactorMT.c b/MT/src/QRfactorMT.c +index ff52f52..a58e655 100644 +--- a/MT/src/QRfactorMT.c ++++ b/MT/src/QRfactorMT.c +@@ -215,7 +215,7 @@ void *status ; + myid, rc) ; + exit(-1) ; + } else if ( msglvl > 2 ) { +- fprintf(stderr, "\n thread %d created", tids[myid]) ; ++ fprintf(stderr, "\n thread %lu created", tids[myid]) ; + } + } + for ( myid = 0 ; myid < nthread ; myid++ ) { +diff --git a/MT/src/factorMT.c b/MT/src/factorMT.c +index 477bc8e..58ae6d2 100644 +--- a/MT/src/factorMT.c ++++ b/MT/src/factorMT.c +@@ -328,7 +328,7 @@ for ( myid = 0, data = dataObjects ; myid < nthread ; myid++, data++ ) { + myid, rc) ; + exit(-1) ; + } else if ( msglvl > 1 ) { +- fprintf(stderr, "\n thread %d created", tids[myid]) ; ++ fprintf(stderr, "\n thread %lu created", tids[myid]) ; + } + } + MARKTIME(t2) ; +@@ -490,7 +490,7 @@ if ( msglvl > 2 ) { + #if THREAD_TYPE == TT_POSIX + if ( msglvl > 2 ) { + fprintf(stdout, "\n ### inside workerFactor, myid = %d" +- ", pthread_self() = %d", myid, pthread_self()) ; ++ ", pthread_self() = %lu", myid, pthread_self()) ; + fflush(stdout) ; + } + #endif +diff --git a/MT/src/mvm.c b/MT/src/mvm.c +index 24a6049..c66c3a3 100644 +--- a/MT/src/mvm.c ++++ b/MT/src/mvm.c +@@ -278,7 +278,7 @@ for ( myid = 0, obj = MTmvmObjs ; myid < nthread ; myid++, obj++ ) { + myid, rc) ; + exit(-1) ; + } else if ( msglvl > 2 ) { +- fprintf(stderr, "\n %% thread %d created", tids[myid]) ; ++ fprintf(stderr, "\n %% thread %lu created", tids[myid]) ; + } + } + MARKTIME(t2) ; +diff --git a/SubMtx/src/init.c b/SubMtx/src/init.c +index 24b9fb4..9cd6713 100644 +--- a/SubMtx/src/init.c ++++ b/SubMtx/src/init.c +@@ -107,7 +107,7 @@ if ( sizeof(int) == sizeof(double) ) { + nbytes = ((nint + 1)/2 + ndouble)*sizeof(double) ; + } else { + fprintf(stderr, "\n error in SubMtx_nbytesNeeded(%d,%d)" +- "\n sizeof(int) = %d, sizeof(double) = %d", ++ "\n sizeof(int) = %lu, sizeof(double) = %lu", + nrow, ncol, sizeof(int), sizeof(double)) ; + exit(-1) ; + } +diff --git a/Utilities/MM.h b/Utilities/MM.h +index 11e86c5..0bc3e80 100644 +--- a/Utilities/MM.h ++++ b/Utilities/MM.h +@@ -33,18 +33,18 @@ if ( (count) > 0 ) { \ + if ( (ptr = (type *)malloc((unsigned long)((count)*sizeof(type)))) \ + == NULL ) {\ + fprintf(stderr, \ +- "\n ALLOCATE failure : bytes %d, line %d, file %s", \ ++ "\n ALLOCATE failure : bytes %ld, line %d, file %s", \ + (count)*sizeof(type), __LINE__, __FILE__) ; \ + exit(-1) ; } \ + else if ( MEMORY_DEBUG > 0 ) { \ + fprintf(stderr, \ +- "\n ALLOCATE : address %p, bytes %d, line %d, file %s", \ ++ "\n ALLOCATE : address %p, bytes %ld, line %d, file %s", \ + ptr, (count)*sizeof(type), __LINE__, __FILE__) ; } } \ + else if ( (count) == 0 ) { \ + ptr = NULL ; } \ + else { \ + fprintf(stderr, \ +- "\n ALLOCATE error : bytes %d, line %d, file %s", \ ++ "\n ALLOCATE error : bytes %ld, line %d, file %s", \ + (count)*sizeof(type), __LINE__, __FILE__) ; \ + exit(-1) ; } + /* +-- +2.53.0 + diff --git a/sci-libs/spooles/metadata.xml b/sci-libs/spooles/metadata.xml new file mode 100644 index 000000000000..d139dd72eda6 --- /dev/null +++ b/sci-libs/spooles/metadata.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <longdescription lang="en"> + SPOOLES is a library for solving sparse real and complex linear + systems of equations, written in the C language using object + oriented design. At present, there is the following functionality: + 1. Compute multiple minimum degree, generalized nested dissection + and multisection orderings of matrices with symmetric structure. + 2. Factor and solve square linear systems of equations with + symmetric structure, with or without pivoting for stability. + 3. Factor and solve overdetermined full rank systems of equations + using a multifrontal QR factorization. + 4. Solve square linear systems using a variety of Krylov iterative + methods. The preconditioner is a drop tolerance factorization, + with or without pivoting for stability. + </longdescription> +</pkgmetadata> diff --git a/sci-libs/spooles/spooles-2.2.ebuild b/sci-libs/spooles/spooles-2.2.ebuild new file mode 100644 index 000000000000..9de0ad28e8fa --- /dev/null +++ b/sci-libs/spooles/spooles-2.2.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# TODO +# utilities.c:20:1: warning: ‘MPI_Attr_get’ is deprecated: +# MPI_Attr_get was deprecated in MPI-2.0; use MPI_Comm_get_attr instead [-Wdeprecated-declarations] + +inherit toolchain-funcs flag-o-matic + +MY_P="${PN}.${PV}" + +DESCRIPTION="SParse Object Oriented Linear Equations Solver" +HOMEPAGE="http://www.netlib.org/linalg/spooles" + +SRC_URI="http://www.netlib.org/linalg/${PN}/${MY_P}.tgz" +S="${WORKDIR}" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~amd64" + +IUSE="mpi static-libs threads" +RESTRICT="test" + +RDEPEND=" + mpi? ( + virtual/mpi + ) +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}/${P}-I2Ohash-64bit.patch" + "${FILESDIR}/${P}-makefiles.patch" + "${FILESDIR}/${P}-formats.patch" + "${FILESDIR}/${P}-NULL-is-not-int.patch" + "${FILESDIR}/${P}-printf-long.patch" + "${FILESDIR}/${P}-include-stdio.h.patch" +) + +make_shared_lib() { + local soname="$(basename "${1%.a}").so.$(ver_cut 1)" + + einfo "Making ${soname}" + + ${2:-$(tc-getCC)} ${LDFLAGS} \ + -shared -Wl,-soname="${soname}" \ + -Wl,--whole-archive "${1}" -Wl,--no-whole-archive \ + -o $(dirname "${1}")/"${soname}" || return 1 +} + +src_prepare() { + default_src_prepare + + find . -name makefile -exec \ + sed -i -e 's:make:$(MAKE):g' '{}' \; + + sed \ + -e "s/@CC@/$(tc-getCC)/" \ + -e "s/@AR@/$(tc-getAR)/" \ + -e "s/@RANLIB@/$(tc-getRANLIB)/" \ + "${FILESDIR}"/Make.inc.in > Make.inc || die +} + +src_compile() { + append-flags -fPIC + + emake lib + + if use threads; then + emake -C MT lib + fi + + if use mpi; then + emake -C MPI CC="mpicc" lib + fi + + make_shared_lib libspooles.a $(usev mpi "mpicc") || die "shared lib failed" + + if use static-libs; then + filter-flags -fPIC + + emake clean + emake lib + + if use threads; then + emake -C MT lib + fi + + if use mpi; then + emake -C MPI CC="mpicc" lib + fi + fi +} + +src_install() { + dolib.so libspooles.so.2 + dosym libspooles.so.2 /usr/$(get_libdir)/libspooles.so + + if use static-libs; then + dolib.a libspooles.a + fi + + find . -name '*.h' -print0 | \ + xargs -0 -n1 --replace=headerfile install -D headerfile tmp/headerfile + + insinto /usr/include/${PN} + + doins -r tmp/* +} diff --git a/sci-libs/vtk/Manifest b/sci-libs/vtk/Manifest index 29e7b37c68d7..41c4327b27ef 100644 --- a/sci-libs/vtk/Manifest +++ b/sci-libs/vtk/Manifest @@ -1,6 +1,17 @@ DIST VTK-9.5.2.tar.gz 50189467 BLAKE2B 6e7dab56c4f48d066ca44637f8839e9abc973d2831381ef5aec860aa1daa49ac9beca223e439c12dda2c33056b45395043f2edc54f55f9d169719b6c96499f40 SHA512 fc8157a89fa603a7f7fce356e2f638ae69e0ea629a507458bdbb173daf511c61e39a1f0d7201b196a5b3a7ffa7e3e821398b62521faadf85edb1119a1e8b8e8e +DIST VTK-9.6.2.tar.gz 54213869 BLAKE2B 343e3ee333ec0f5541014faf07fb66ac00f935e389af3dc588e1d75a023b77b2ecb2b57d8522ef46f77f0060811ee7c1c417becca5b605282704bcdf2bc750db SHA512 1a8d6c89ab03961f59181b12d06d9baca09445485e1cb5ac78a81ec4a2f9d8a25e87d6112f932d856782d0fcab23880295a95fd38e7f9b0b9592138fb2e2e671 DIST VTKData-9.5.2.tar.gz 1096057742 BLAKE2B 3c50adba539e7457268cd122246361e2161a003264cf4df6a3c7c3b62e9f35026588ad046112c0dd0b8360f6f8f67d5fc6f034bd5cdd4bb67d746dcf2ebb2a86 SHA512 1be895bed613ed0f0ace0ba5e138afacc3d61b57e437299b3aecf6beff702ad1a2d02036fd147853bbbcb6a1f9d20a51831c0263fdc5b8e62ece9a6f8f7d410e +DIST VTKData-9.6.2.tar.gz 1110208506 BLAKE2B fb48447c26d9dc82c8248351071947dbc7781911c067b9a112dbca594834a2a74030daad77fc5287ec43d2a6ac676a234cd3f3d23bac22ab65e97ad44e80ffb6 SHA512 f8cb1332a70a26f79eee65b0a5e8863337b6f53e81f93cf1a536e8cce2b52a69871da7fc4776de7ed1c476825ca3ad3fb85a4982bb8876faad98d72bbb3e6a8a DIST VTKDataFiles-9.5.2.tar.gz 1128658332 BLAKE2B c3c3e259479f78bb0cc60b48e00d3fad21dd8bb924e16b87801d230c2f684fc04431873eb7fd5617cb93a09319038f835da17357888ba207f4e10faf19bf6c01 SHA512 f3503fea75aa248fb5b225e4e6437fe47b2eabdc39ffd4113e5f87a5d9edd232afef7e21375e40cf3a6e979f399a7fcc5bdc0b09a6759a2baa491eb360ce0c8b +DIST VTKDataFiles-9.6.2.tar.gz 1143256312 BLAKE2B fd60137871882cbc20f56d4c435969cf5f100e4c855d6b3217231f471c0479d8b5404ffdad10075b4f459ab5bf4bc381c77921a195f6d9c1698c2467afddeed4 SHA512 5b21c8bebe55915719e04ff9a9a9a50da254b06975c8751ddb29958834968cb4638b1c4d43a73646cf3ff2b5348d8aca37474461ff9ae093440ae5243fd334a8 DIST VTKLargeData-9.5.2.tar.gz 247524517 BLAKE2B 439daacebf50ff65019b42ba3f9a244428ea1d49951e135a655acd65342d6a7ee6a01c313b2565e574910218eebdd8e0291ecfc4c6615b3111050b7233d5a7c8 SHA512 f1ee327bc9ffa4f4055e169b940239031c00e18a3109bb720c5bcc3a68821761c2d5eb573db5245956721cf534b58d3fa737c2ecdac8c90cd3dada565c1a40d5 +DIST VTKLargeData-9.6.2.tar.gz 247523935 BLAKE2B c4db61e460b93be4c4193e6b80439157dc14f40851a3affed50ad725fcedba8e2807a0780b7241db6b12683f3cf648aef2c9cec23d34183a4e5f5553951bdc27 SHA512 e7402385f14fb3ae0fbf65df2d697d85e597a872244623858266579dcc4aa4812713e9d9132a9ead587880f4fdbe313b3cfdb5070e9461e6241f1906852eb794 DIST VTKLargeDataFiles-9.5.2.tar.gz 247505288 BLAKE2B 49c02df1cda16b0ff8b447d3785afaef56c15aa447f4bc464676a2b52cd9f9812221e566480ca17990538f69f84ea818b5776c422105a3eb53dc63d5518ca0de SHA512 1ee7beba1ca7eeabe634cf31ff2c377ea708fa0ddd40b60e90ab582e4e439ad130a84449d138040f2c47741026ace4613272409f2b958ebc315a55f62a1fa7e8 +DIST VTKLargeDataFiles-9.6.2.tar.gz 247504715 BLAKE2B d9b237f416ef7f642017f58712ed89fad645485187cb8f69d09622972fd9eeeaf8ceb35525d018213abc5da140b98fde75881bd86c15fbe50fdb955a8ec58b72 SHA512 d7d00a8ac906c72e5ae3a384b58385195daf9bc26fef5fcbddb95a38f486c550406b216909c526695235fba665f42ed607bbb3c726c1325c1c23ce5522b70351 +DIST vtk-9.6.2-PR13147.patch 1030 BLAKE2B e11d2872b215770d1d743326e22953d044c9aecd656d4728db825957164a068bb24d789608fe79216e668cecd9f5066d943f832bbc726bb074c2f989ab5b0a26 SHA512 0371f05adfa35a0e9f3367833e9ab5990cb3960e2a2bb5d7bbace1ed32d1135643a0ee14f081c178f570c351b93c631174d996e851e53db52624e137b0e98671 +DIST vtk-9.6.2-PR13291.patch 2866 BLAKE2B c97ac4525266d2175dc46893c9b8858e69e8a475d47197ec7cf0a705e703b404bc0cbb2b883a1a44cbb3ef5814891944fa8bd71f3e77bbe6734094872cd08a11 SHA512 b3d5df2968e328c20d1aba5457882c720e8448918710c94dd3937282677f6eb878e696cdb5206a5814665aa94c522f3b4a0e5f979f4ecd9c8b6502ca373c4289 +DIST vtk-9.6.2-viscores-PR290.patch 1629 BLAKE2B c9ea07504ebeb2aefe37a1beb071b901ffb3b2d3b0a6282740ead07db67ab329fe34a6196573c6c0234be4d49e545746abb818419f27144fcb2b521bc1051028 SHA512 302871453c81def7dc9e86b271282c6de9f911db996d418780255503ce2a7296e86dd8cc2915de01bd200cf7ba8b413df27d2968c8e5c42ca281aaa69ac27341 +DIST vtk-9.6.2-viscores-PR314.patch 22895 BLAKE2B 20963ac00b45f80ffdb62e5bb122a7ad6e0ff919f69c0daf2c982e766078aa30e1c0fc640273f15f59d52831ada5558ed55a70bfddf3d3269250dc4985a978a6 SHA512 5631137135f427cefd8d00691a73f0b778193e623987fc2d7e70bf03d26935674b7b35ba9b0a48837e554c4efbcda51bfeb26d78b285fd2574af9ea9971baa07 +DIST vtk-9.6.2-viscores-PR336.patch 6813 BLAKE2B 8f788a860b919c2e70c7f05bf4ee536eb15fdbd1a0052c250d63ce85c182629c9b846d7b4e9e976fae84d13506dc5c9f3475828e197edef6a4fe485974f93c09 SHA512 9b686db11838723bed545fd6337db26c8c4e48b9c2386709ff37cf0d7e37b1c95a755e55950f379b1a86ef3ca573b37066944a4a2b2354f6adb8a1bb278127fc DIST vtkDocHtml-9.5.2.tar.gz 193518054 BLAKE2B 1af2d23d049dbd0ccf6307b3fa0a25c917850c70c7e5ce14e76b02baa7fd4d9be1c2f453dfd1a54b3da30ff8ee5ac374d1ad41225cc6affb3ac29ca037d20687 SHA512 76b572f4b4a0bc4c7573334522017578e2eb1cfd83bdc973c515b65ec23a4fe8e2d7914cc1d4c78d574187068df918ccb575904252f96d88ed94428460698721 +DIST vtkDocHtml-9.6.2.tar.gz 203927262 BLAKE2B 8d622157fc64b42ae9c7b14b9f14fc854d342da5d66251e9b12185ca3811ef94b67f33c932e123dc7c55d87c25ce27db96de9f4f7001a5a032dc6c20a86b9df0 SHA512 dd3f7182bc95471ed4713be17db2078ff220ae27a9b40809fa4420b540c881a4cfe637dc965cc7002d110af2f2d9f5070c964e77c872f972f233e68b91707600 diff --git a/sci-libs/vtk/files/vtk-9.5.2-gcc17-include-string.patch b/sci-libs/vtk/files/vtk-9.5.2-gcc17-include-string.patch new file mode 100644 index 000000000000..f0244fd5b85f --- /dev/null +++ b/sci-libs/vtk/files/vtk-9.5.2-gcc17-include-string.patch @@ -0,0 +1,22 @@ +From 6c0eea93a53da99afe1cdd7e660935bb139ba2c2 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx@gmail.com> +Date: Mon, 8 Jun 2026 16:00:43 +0200 +Subject: gcc17 include string + +Signed-off-by: Paul Zander <negril.nx@gmail.com> + +diff --git a/ThirdParty/token/vtktoken/token/Manager.h b/ThirdParty/token/vtktoken/token/Manager.h +index 69a3840ca5..19585a8999 100644 +--- a/ThirdParty/token/vtktoken/token/Manager.h ++++ b/ThirdParty/token/vtktoken/token/Manager.h +@@ -8,6 +8,7 @@ + #include <functional> + #include <memory> + #include <mutex> ++#include <string> + #include <unordered_map> + #include <unordered_set> + +-- +2.54.0 + diff --git a/sci-libs/vtk/files/vtk-9.6.2-cccl-3.0.patch b/sci-libs/vtk/files/vtk-9.6.2-cccl-3.0.patch new file mode 100644 index 000000000000..e6353cf0e34a --- /dev/null +++ b/sci-libs/vtk/files/vtk-9.6.2-cccl-3.0.patch @@ -0,0 +1,34 @@ +From f5a86f3c623330aa3817ea2ee735c96bb4ec30e9 Mon Sep 17 00:00:00 2001 +From: Paul Zander <negril.nx+gentoo@gmail.com> +Date: Sun, 31 May 2026 23:15:24 +0200 +Subject: cccl 3.0 + +Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> + +diff --git a/ThirdParty/viskores/vtkviskores/viskores/viskores/exec/cuda/internal/WrappedOperators.h b/ThirdParty/viskores/vtkviskores/viskores/viskores/exec/cuda/internal/WrappedOperators.h +index c00f1414..802ee555 100644 +--- a/ThirdParty/viskores/vtkviskores/viskores/viskores/exec/cuda/internal/WrappedOperators.h ++++ b/ThirdParty/viskores/vtkviskores/viskores/viskores/exec/cuda/internal/WrappedOperators.h +@@ -30,7 +30,8 @@ VISKORES_THIRDPARTY_PRE_INCLUDE + #include <thrust/system/cuda/memory.h> + VISKORES_THIRDPARTY_POST_INCLUDE + +-#if THRUST_VERSION >= 200500 ++#if THRUST_VERSION >= 300200 ++#elif THRUST_VERSION >= 200500 + #include <cuda/std/type_traits> + #endif + +@@ -209,7 +210,8 @@ namespace detail + // the binary functor is commutative and the T type is is_arithmetic + // + // +-#if THRUST_VERSION >= 200500 ++#if THRUST_VERSION >= 300200 ++#elif THRUST_VERSION >= 200500 + template <typename T, typename F> + struct is_commutative<viskores::exec::cuda::internal::WrappedBinaryOperator<T, F>> + : public ::cuda::std::is_arithmetic<T> +-- +2.54.0 + diff --git a/sci-libs/vtk/metadata.xml b/sci-libs/vtk/metadata.xml index cfcf017d5814..a788198ccef9 100644 --- a/sci-libs/vtk/metadata.xml +++ b/sci-libs/vtk/metadata.xml @@ -23,8 +23,12 @@ <flag name="opencascade">Enable OpenCASCADE support</flag> <flag name="openvdb">Build support to handle VDB data files</flag> <flag name="pdal">Build support to handle point cloud data files</flag> + <flag name="qt6">Use Qt6 packages instead of Qt5</flag> <flag name="rendering">Building Redering modules</flag> <flag name="tbb">Use <pkg>dev-cpp/tbb</pkg> to handle smp support</flag> + <flag name="truetype">Build support for font rendering</flag> + <flag name="video_cards_nvidia">Support running on NVIDIA GPUs using <pkg>x11-drivers/nvidia-drivers</pkg></flag> + <flag name="video_cards_zink">Run tests using the MESA Zink OpenGL-over-Vulkan driver</flag> <flag name="views">Building Views modules</flag> <flag name="vtkm" restrict="<sci-libs/vtk-9.5">Build the vtkm accelerations modules</flag> <flag name="vtkm" restrict=">=sci-libs/vtk-9.5">Build the viskores accelerations modules</flag> diff --git a/sci-libs/vtk/vtk-9.5.2.ebuild b/sci-libs/vtk/vtk-9.5.2.ebuild index 572d56a852ea..938d9c891b3b 100644 --- a/sci-libs/vtk/vtk-9.5.2.ebuild +++ b/sci-libs/vtk/vtk-9.5.2.ebuild @@ -7,7 +7,7 @@ EAPI=8 # - add USE flag for remote modules? Those modules can be downloaded properly before building. # - vtkm was renamed to viskores. Rename once usemove is implemented. -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) PYTHON_REQ_USE="tk?" WEBAPP_OPTIONAL=yes @@ -88,6 +88,7 @@ RDEPEND=" media-libs/tiff:= sci-libs/hdf5:=[mpi=] virtual/zlib:= + virtual/opengl[X] boost? ( dev-libs/boost:=[mpi?] ) cgns? ( >=sci-libs/cgnslib-4.1.1:=[hdf5,mpi=] @@ -164,6 +165,7 @@ PATCHES=( "${FILESDIR}/${PN}-9.5.0-cuda-13-1.patch" "${FILESDIR}/${PN}-9.5.0-cuda-13-2.patch" "${FILESDIR}/${PN}-9.5.2-gdal-3.13.patch" + "${FILESDIR}/${PN}-9.5.2-gcc17-include-string.patch" ) DOCS=( CONTRIBUTING.md README.md ) @@ -330,7 +332,7 @@ vtk_add_sandbox() { } pkg_pretend() { - [[ ${MERGE_TYPE} != binary ]] && has openmp && tc-check-openmp + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp vtk_check_reqs @@ -342,7 +344,7 @@ pkg_pretend() { } pkg_setup() { - [[ ${MERGE_TYPE} != binary ]] && has openmp && tc-check-openmp + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp vtk_check_reqs @@ -351,6 +353,16 @@ pkg_setup() { # so __nvcc_device_query does not fail later. nvidia-smi -L || true + + if has_version ">=dev-util/nvidia-cuda-toolkit-12.6.0"; then + # NOTE Without this ptxas will consume large amounts of memory. + # The user can override this using NVCC_APPREND_FLAGS. + # #973279 + # TODO Should go into the eclass. + export NVCC_PREPREND_FLAGS="${NVCC_PREPREND_FLAGS:+"${NVCC_PREPREND_FLAGS} "} -Ofc min --threads $(makeopts_jobs)" + einfo "Using NVCC_PREPREND_FLAGS=\"${NVCC_PREPREND_FLAGS}\"" + einfo "You can override this using NVCC_APPREND_FLAGS" + fi fi use java && java-pkg-opt-2_pkg_setup @@ -376,12 +388,6 @@ src_prepare() { cmake_src_prepare - # 14 GiB is the highest single process ram usage seen - # 932464 - sed \ - -e "/EXPR viskores_pool_size/s/3072/$(( 14 * 1024 ))/g" \ - -i ThirdParty/viskores/vtkviskores/viskores/CMake/ViskoresWrappers.cmake || die - if use test; then ebegin "Copying data files to ${BUILD_DIR}" mkdir -p "${BUILD_DIR}/ExternalData" || die diff --git a/sci-libs/vtk/vtk-9.6.2.ebuild b/sci-libs/vtk/vtk-9.6.2.ebuild new file mode 100644 index 000000000000..2c90e429dde5 --- /dev/null +++ b/sci-libs/vtk/vtk-9.6.2.ebuild @@ -0,0 +1,1468 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# TODO: +# - add USE flag for remote modules? Those modules can be downloaded properly before building. +# - vtkm was renamed to viskores. Rename once usemove is implemented. + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="tk?" + +WEBAPP_OPTIONAL=yes +WEBAPP_MANUAL_SLOT=yes + +inherit check-reqs cmake cuda java-pkg-opt-2 multiprocessing python-single-r1 toolchain-funcs virtualx webapp +inherit flag-o-matic xdg-utils + +# Short package version +MY_PV="$(ver_cut 1-2)" + +DESCRIPTION="The Visualization Toolkit" +HOMEPAGE="https://www.vtk.org/" + +if [[ ${PV} = *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI=" + https://github.com/Kitware/VTK.git + https://gitlab.kitware.com/vtk/vtk.git + " +else + SRC_URI=" + https://www.vtk.org/files/release/${MY_PV}/VTK-${PV}.tar.gz + cuda? ( vtkm? ( + https://github.com/Viskores/viskores/commit/92cbfd81199208f79d1644469c1514fe91ba0e2e.patch + -> ${PN}-9.6.2-viscores-PR290.patch + https://github.com/Viskores/viskores/commit/0bb528866ae2263a7f37aee23b63f275d4bcaf40.patch + -> ${PN}-9.6.2-viscores-PR314.patch + https://github.com/Viskores/viskores/commit/7ca23d4e594864b816b3335ddf0c741e0988d84e.patch + -> ${PN}-9.6.2-viscores-PR336.patch + ) ) + doc? ( + https://www.vtk.org/files/release/${MY_PV}/vtkDocHtml-${PV}.tar.gz + ) + examples? ( + https://www.vtk.org/files/release/${MY_PV}/VTKLargeData-${PV}.tar.gz + https://www.vtk.org/files/release/${MY_PV}/VTKLargeDataFiles-${PV}.tar.gz + ) + gdal? ( + https://gitlab.kitware.com/vtk/vtk/-/commit/2395603fdddc40c29efc64c632ae98225ca2a58e.patch + -> ${PN}-9.6.2-PR13291.patch + ) + test? ( + https://www.vtk.org/files/release/${MY_PV}/VTKData-${PV}.tar.gz + https://www.vtk.org/files/release/${MY_PV}/VTKDataFiles-${PV}.tar.gz + https://www.vtk.org/files/release/${MY_PV}/VTKLargeData-${PV}.tar.gz + https://www.vtk.org/files/release/${MY_PV}/VTKLargeDataFiles-${PV}.tar.gz + python? ( + https://gitlab.kitware.com/vtk/vtk/-/commit/8f1eef77be1accab6c536f53a03439b0d732eb84.patch + -> ${PN}-9.6.2-PR13147.patch + ) + ) + " + S="${WORKDIR}/VTK-${PV}" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +LICENSE="BSD LGPL-2" +SLOT="0/${MY_PV}" + +# TODO: Like to simplify these. Mostly the flags related to Groups. +IUSE=" + all-modules boost +cgns cuda debug doc egl examples ffmpeg gdal gles2 imaging + java +logging minimal mpi mysql +netcdf odbc opencascade openmp openvdb pdal postgres + python qt6 +rendering tbb test +threads tk +truetype video_cards_nvidia +views vtkm web + +video_cards_zink +" + +RESTRICT="!test? ( test )" + +# we can't test egl or gles2 without hardware access +REQUIRED_USE=" + all-modules? ( + boost cgns ffmpeg gdal imaging mysql netcdf odbc opencascade openvdb pdal + postgres rendering truetype views + ) + cuda? ( video_cards_nvidia vtkm ) + java? ( rendering ) + minimal? ( !gdal !rendering ) + !minimal? ( cgns netcdf rendering ) + python? ( ${PYTHON_REQUIRED_USE} ) + qt6? ( rendering ) + tk? ( python rendering ) + web? ( python ) + rendering? ( truetype views ) + test? ( !egl !gles2 ) +" + +# eigen, nlohmann_json, pegtl and utfcpp are referenced in the cmake files +# and need to be available when VTK consumers configure the dependencies. +# opencascade does things with gles2/opengl detection so we need to align both +RDEPEND=" + app-arch/lz4:= + app-arch/xz-utils + dev-cpp/eigen:= + dev-cpp/nlohmann_json + dev-db/sqlite:3 + dev-libs/expat + dev-libs/jsoncpp:= + >=dev-libs/libfmt-8.1.1:= + dev-libs/libxml2:2= + >=dev-libs/pegtl-3 + dev-libs/pugixml + dev-libs/utfcpp + media-libs/freetype + media-libs/libjpeg-turbo:= + media-libs/libogg + media-libs/libpng:= + media-libs/tiff:= + sci-libs/hdf5:=[mpi=] + virtual/zlib:= + virtual/opengl[X] + boost? ( dev-libs/boost:=[mpi?] ) + cgns? ( + >=sci-libs/cgnslib-4.1.1:=[hdf5,mpi=] + ) + cuda? ( dev-util/nvidia-cuda-toolkit:= ) + ffmpeg? ( media-video/ffmpeg:= ) + gdal? ( sci-libs/gdal:= ) + java? ( >=virtual/jdk-11:= ) + !minimal? ( + >=media-libs/libharu-2.4.0:= + media-libs/libtheora:= + sci-libs/proj:= + ) + mpi? ( virtual/mpi[romio] ) + mysql? ( dev-db/mariadb-connector-c:= ) + netcdf? ( sci-libs/netcdf:=[mpi=] ) + odbc? ( dev-db/unixODBC ) + openvdb? ( media-gfx/openvdb:= ) + opencascade? ( <sci-libs/opencascade-8:=[gles2=] ) + pdal? ( sci-libs/pdal:= ) + postgres? ( dev-db/postgresql:= ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/cftime[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/xarray[${PYTHON_USEDEP}] + mpi? ( dev-python/mpi4py[${PYTHON_USEDEP}] ) + rendering? ( dev-python/matplotlib[${PYTHON_USEDEP}] ) + ') + ) + qt6? ( + dev-qt/qtbase:6[gui,opengl,sql,widgets] + dev-qt/qtdeclarative:6[opengl] + dev-qt/qtshadertools:6 + x11-libs/libxkbcommon + !gles2? ( + dev-qt/qtbase:6[-gles2-only] + ) + ) + rendering? ( + media-libs/libglvnd[X] + x11-libs/gl2ps + x11-libs/libXcursor + x11-libs/libX11 + ) + tbb? ( dev-cpp/tbb:= ) + tk? ( dev-lang/tk:= ) + truetype? ( media-libs/fontconfig ) + video_cards_nvidia? ( x11-drivers/nvidia-drivers ) + views? ( + x11-libs/libX11 + ) + vtkm? ( + sci-libs/hdf5[cxx] + mpi? ( + sci-libs/hdf5[unsupported] + ) + ) + web? ( ${WEBAPP_DEPEND} ) +" + +# we need OpenGL 3.2 or later -> llvmpipe -> mesa[llvm] +DEPEND=" + ${RDEPEND} + dev-cpp/cli11 + test? ( + media-libs/glew + media-libs/mesa[llvm,video_cards_zink?] + x11-libs/libXcursor + rendering? ( media-libs/freeglut ) + ) +" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}/${PN}-9.2.5-pegtl-3.x.patch" + "${FILESDIR}/${PN}-9.3.0-java.patch" + + "${FILESDIR}/${PN}-9.4.2-pegtl-3.x.patch" + "${FILESDIR}/${PN}-9.5.2-gcc17-include-string.patch" + + # "${DISTDIR}/${PN}-9.6.2-viscores-PR290.patch" + # "${DISTDIR}/${PN}-9.6.2-viscores-PR314.patch" + # "${DISTDIR}/${PN}-9.6.2-viscores-PR336.patch" + # "${FILESDIR}/${PN}-9.6.2-cccl-3.0.patch" +) + +DOCS=( CONTRIBUTING.md README.md ) + +vtk_check_reqs() { + local dsk="$(( + 1024 + + $(usex cuda 8192 0) + + $(usex doc 3072 0) + + $(usex examples 2048 0) + + $(usex test 0 0) + ))" +# cuda 5.4 G + 1.4G +# cuda 4.7 G + 1.5G + local -x CHECKREQS_DISK_BUILD=${dsk}M + + # In case users are not aware of the extra NINJAOPTS, check + # for the more common MAKEOPTS, in case NINJAOPTS is empty + local jobs=1 + if [[ -n "${NINJAOPTS}" ]]; then + jobs=$(makeopts_jobs "${NINJAOPTS}" "$(get_nproc)") + elif [[ -n "${MAKEOPTS}" ]]; then + jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + fi + + if use cuda; then + local mem="$(( + $(usex cuda $(( 7 * 1024 )) 0) * $(( jobs > 4 ? 4 : jobs )) + ))" + local CHECKREQS_MEMORY=${mem}M + fi + + "check-reqs_pkg_${EBUILD_PHASE}" +} + +cuda_get_host_compiler() { + if [[ -n "${NVCC_CCBIN}" ]]; then + echo "${NVCC_CCBIN}" + return + fi + + if [[ -n "${CUDAHOSTCXX}" ]]; then + echo "${CUDAHOSTCXX}" + return + fi + + einfo "Trying to find working CUDA host compiler" + + if ! tc-is-gcc && ! tc-is-clang; then + die "$(tc-get-compiler-type) compiler is not supported" + fi + + local compiler compiler_type compiler_version + local package package_version + local NVCC_CCBIN_default + + compiler_type="$(tc-get-compiler-type)" + compiler_version="$("${compiler_type}-major-version")" + + # try the default compiler first + NVCC_CCBIN="$(tc-getCXX)" + NVCC_CCBIN_default="${NVCC_CCBIN}-${compiler_version}" + + compiler="${NVCC_CCBIN/%-${compiler_version}}" + + # store the package so we can re-use it later + package="sys-devel/${compiler_type}" + package_version="${package}" + + ebegin "testing ${NVCC_CCBIN_default} (default)" + + while ! nvcc -v -ccbin "${NVCC_CCBIN}" - -x cu <<<"int main(){}" &>> "${T}/cuda_get_host_compiler.log" ; do + eend 1 + + while true; do + # prepare next version + if ! package_version="<$(best_version "${package_version}")"; then + die "could not find a supported version of ${compiler}" + fi + + NVCC_CCBIN="${compiler}-$(ver_cut 1 "${package_version/#<${package}-/}")" + + [[ "${NVCC_CCBIN}" != "${NVCC_CCBIN_default}" ]] && break + done + ebegin "testing ${NVCC_CCBIN}" + done + eend $? + + # clean temp file + rm -f a.out + + echo "${NVCC_CCBIN}" + export NVCC_CCBIN +} + +cuda_get_host_native_arch() { + [[ -n ${CUDAARCHS} ]] && echo "${CUDAARCHS}" + + __nvcc_device_query || die "failed to query the native device" +} + +vtk_add_sandbox() { + local WRITE=() + + # mesa via virtx will make use of udmabuf if it exists + [[ -c "/dev/udmabuf" ]] && WRITE+=( "/dev/udmabuf" ) + + readarray -t dris <<<"$( + find /sys/class/drm/*/device/drm \ + -mindepth 1 -maxdepth 1 -type d -exec basename {} \; \ + | sort | uniq | sed 's:^:/dev/dri/:' + )" + + [[ -n "${dris[*]}" ]] && WRITE+=( "${dris[@]}" ) + + if [[ -d /sys/module/nvidia ]]; then + # /dev/nvidia{0-9} + readarray -t nvidia_devs <<<"$( + find /dev -regextype posix-extended -regex '/dev/nvidia(|-(nvswitch|vgpu))[0-9]*' + )" + + [[ -n "${nvidia_devs[*]}" ]] && WRITE+=( "${nvidia_devs[@]}" ) + + WRITE+=( + "/dev/nvidiactl" + "/dev/nvidia-modeset" + + "/dev/nvidia-uvm" + "/dev/nvidia-uvm-tools" + + "/dev/nvidia-caps/" + ) + + addpredict "/dev/char/" + fi + + # for portage + WRITE+=( + "/proc/self/task/" + ) + + local dev + for dev in "${WRITE[@]}"; do + if [[ ! -e "${dev}" ]]; then + eqawarn "${dev} does not exist" + # continue + fi + + if [[ -w "${dev}" ]]; then + eqawarn "${dev} is already writable" + # continue + fi + + eqawarn "addwrite ${dev}" + addwrite "${dev}" + + if [[ ! -d "${dev}" ]] && [[ ! -w "${dev}" ]]; then + eerror "can not access ${dev} after addwrite" + fi + done +} + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + + vtk_check_reqs + + # When building binpkgs you probably want to include all targets + if use cuda && [[ ${MERGE_TYPE} == "buildonly" ]] && [[ -n "${CUDAARCHS}" ]]; then + local info_message="When building a binary package it's recommended to unset CUDAARCHS" + einfo "$info_message so all available architectures are build." + fi +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + + vtk_check_reqs + + if use cuda && [[ ! -e /dev/nvidia-uvm ]]; then + # NOTE We try to load nvidia-uvm and nvidia-modeset here, + # so __nvcc_device_query does not fail later. + + nvidia-smi -L || true + + if has_version ">=dev-util/nvidia-cuda-toolkit-12.6.0"; then + # NOTE Without this ptxas will consume large amounts of memory. + # The user can override this using NVCC_APPREND_FLAGS. + # #973279 + # TODO Should go into the eclass. + export NVCC_PREPREND_FLAGS="${NVCC_PREPREND_FLAGS:+"${NVCC_PREPREND_FLAGS} "} -Ofc min --threads $(makeopts_jobs)" + einfo "Using NVCC_PREPREND_FLAGS=\"${NVCC_PREPREND_FLAGS}\"" + einfo "You can override this using NVCC_APPREND_FLAGS" + fi + fi + + use java && java-pkg-opt-2_pkg_setup + use python && python-single-r1_pkg_setup + use web && webapp_pkg_setup +} + +# Note: The following libraries are marked as internal by kitware +# and can currently not unbundled: +# diy2, exodusII, fides, h5part, kissfft, loguru, verdict, vpic, +# viskores, xdmf{2,3}, zfp +# TODO: exprtk, ioss +# Note: As of v9.2.2 we no longer drop bundled libraries, when using system +# libraries. This just saves a little space. CMake logic of VTK on ThirdParty +# libraries avoids automagic builds, so deletion is not needed to catch these. +src_prepare() { + if use doc; then + einfo "Removing .md5 files from documents." + rm -f "${WORKDIR}"/html/*.md5 || die "Failed to remove superfluous hashes" + sed -e "s|\${VTK_BINARY_DIR}/Utilities/Doxygen/doc|${WORKDIR}|" \ + -i Utilities/Doxygen/CMakeLists.txt || die + fi + + if use cuda && use vtkm; then + pushd ThirdParty/viskores/vtkviskores/viskores >/dev/null || die + eapply "${DISTDIR}/${PN}-9.6.2-viscores-PR290.patch" + eapply "${DISTDIR}/${PN}-9.6.2-viscores-PR314.patch" + eapply "${DISTDIR}/${PN}-9.6.2-viscores-PR336.patch" + popd >/dev/null || die + eapply "${FILESDIR}/${PN}-9.6.2-cccl-3.0.patch" + fi + + if use gdal; then + eapply "${DISTDIR}/${PN}-9.6.2-PR13291.patch" + fi + + if use python && use test; then + eapply "${DISTDIR}/${PN}-9.6.2-PR13147.patch" + fi + + cmake_src_prepare + + if use test; then + ebegin "Copying data files to ${BUILD_DIR}" + mkdir -p "${BUILD_DIR}/ExternalData" || die + pushd "${BUILD_DIR}/ExternalData" >/dev/null || die + ln -sf "../../${S}/.ExternalData/README.rst" . || die + ln -sf "../../${S}/.ExternalData/SHA512" . || die + popd >/dev/null || die + eend "$?" + fi +} + +# TODO: check these and consider to use them +# VTK_BUILD_SCALED_SOA_ARRAYS +# VTK_DISPATCH_{AOS,SOA,TYPED}_ARRAYS +src_configure() { + filter-lto + + if ! is-flagq "$(usex debug '-DDEBUG' '-DNDEBUG')"; then + append-cxxflags "$(usex debug '-DDEBUG' '-DNDEBUG')" + fi + + local mycmakeargs=( + -DHDF5_IS_PARALLEL=1 + -DCMAKE_DISABLE_FIND_PACKAGE_Git="yes" + -DVTK_GIT_DESCRIBE="v${PV}" + -DVTK_VERSION_FULL="${PV}" + -DGIT_EXECUTABLE="${T}/notgit" + + -DCMAKE_POLICY_DEFAULT_CMP0167="OLD" + -DCMAKE_POLICY_DEFAULT_CMP0174="OLD" + -DCMAKE_POLICY_DEFAULT_CMP0177="OLD" + + -DCMAKE_INSTALL_LICENSEDIR="share/${PN}/licenses" + # c++17 since 9.5.0 + -DVTK_IGNORE_CMAKE_CXX17_CHECKS="no" + + # -DCMAKE_UNITY_BUILD=ON + # -DCMAKE_UNITY_BUILD_BATCH_SIZE=16 + + -DVTK_ANDROID_BUILD=OFF + -DVTK_IOS_BUILD=OFF + + -DVTK_BUILD_ALL_MODULES="$(usex all-modules)" + # we use the pre-built documentation and install these with USE=doc + -DVTK_BUILD_DOCUMENTATION=OFF + -DVTK_BUILD_EXAMPLES="$(usex examples)" + + # no package in the tree: https://github.com/LLNL/conduit + -DVTK_ENABLE_CATALYST=OFF + -DVTK_ENABLE_KITS=OFF + -DVTK_ENABLE_LOGGING="$(usex logging)" + # defaults to ON: USE flag for this? + -DVTK_ENABLE_REMOTE_MODULES=OFF + + # disable fetching files during build + -DVTK_FORBID_DOWNLOADS="yes" + + -DVTK_GROUP_ENABLE_Imaging="$(usex imaging "YES" "NO")" + -DVTK_GROUP_ENABLE_MPI="$(usex mpi "YES" "NO")" + -DVTK_GROUP_ENABLE_Qt="$(usex qt6 "YES" "NO")" + -DVTK_GROUP_ENABLE_Rendering="$(usex rendering "YES" "NO")" + -DVTK_GROUP_ENABLE_StandAlone="$(usex minimal "NO" "YES")" + -DVTK_GROUP_ENABLE_Views="$(usex views "YES" "NO")" + -DVTK_GROUP_ENABLE_Web="$(usex web "YES" "NO")" + + -DVTK_INSTALL_SDK=ON + + -DVTK_MODULE_ENABLE_VTK_IOCGNSReader="$(usex cgns "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOExportPDF="$(usex minimal "NO" "YES")" + -DVTK_MODULE_ENABLE_VTK_IOLAS="NO" # las is dead + -DVTK_MODULE_ENABLE_VTK_IONetCDF="$(usex netcdf "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOOCCT="$(usex opencascade "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOOggTheora="$(usex minimal "NO" "YES")" + -DVTK_MODULE_ENABLE_VTK_IOOpenVDB="$(usex openvdb "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOSQL="YES" # sqlite + -DVTK_MODULE_ENABLE_VTK_IOPDAL="$(usex pdal "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOXML="YES" + -DVTK_MODULE_ENABLE_VTK_IOXMLParser="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingFreeType="$(usex truetype "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig="$(usex truetype "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_cgns="$(usex cgns "YES" "NO")" + # -DVTK_MODULE_ENABLE_VTK_cli11 + # -DVTK_MODULE_ENABLE_VTK_dy2 + -DVTK_MODULE_ENABLE_VTK_eigen="YES" + # -DVTK_MODULE_ENABLE_VTK_exodusII + -DVTK_MODULE_ENABLE_VTK_expat="YES" + # -DVTK_MODULE_ENABLE_VTK_exprtk + # -DVTK_MODULE_ENABLE_VTK_fast_float + # -DVTK_MODULE_ENABLE_VTK_fides + -DVTK_MODULE_ENABLE_VTK_fmt="YES" + -DVTK_MODULE_ENABLE_VTK_freetype="$(usex truetype "YES" "NO")" + # -DVTK_MODULE_ENABLE_VTK_glad + # -DVTK_MODULE_ENABLE_VTK_h5part + -DVTK_MODULE_ENABLE_VTK_hdf5="YES" + # -DVTK_MODULE_ENABLE_VTK_ioss + -DVTK_MODULE_ENABLE_VTK_jpeg="YES" + -DVTK_MODULE_ENABLE_VTK_jsoncpp="YES" + # -DVTK_MODULE_ENABLE_VTK_kissfft + # -DVTK_MODULE_ENABLE_VTK_kwiml + -DVTK_MODULE_ENABLE_VTK_libharu="$(usex minimal "NO" "YES")" + -DVTK_MODULE_ENABLE_VTK_libproj="$(usex minimal "NO" "YES")" + -DVTK_MODULE_ENABLE_VTK_libxml2="YES" + # -DVTK_MODULE_ENABLE_VTK_loguru + -DVTK_MODULE_ENABLE_VTK_lz4="YES" + -DVTK_MODULE_ENABLE_VTK_lzma="YES" + # -DVTK_MODULE_ENABLE_VTK_metaio + -DVTK_MODULE_ENABLE_VTK_netcdf="$(usex netcdf "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_nlohmannjson="YES" + # -DVTK_MODULE_ENABLE_VTK_octree + -DVTK_MODULE_ENABLE_VTK_ogg="YES" + -DVTK_MODULE_ENABLE_VTK_pegtl="YES" + -DVTK_MODULE_ENABLE_VTK_png="YES" + -DVTK_MODULE_ENABLE_VTK_pugixml="YES" + # -DVTK_MODULE_ENABLE_VTK_scn="$(usex test "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_sqlite="YES" + -DVTK_MODULE_ENABLE_VTK_theora="$(usex minimal "NO" "YES")" + -DVTK_MODULE_ENABLE_VTK_tiff="YES" + # -DVTK_MODULE_ENABLE_VTK_token + -DVTK_MODULE_ENABLE_VTK_utf8="YES" + # -DVTK_MODULE_ENABLE_VTK_verdict + # -DVTK_MODULE_ENABLE_VTK_vpic + # -DVTK_MODULE_ENABLE_VTK_vtksys + -DVTK_MODULE_ENABLE_VTK_vtkviskores="$(usex vtkm "YES" "NO")" + # -DVTK_MODULE_ENABLE_VTK_xdmf2 + # -DVTK_MODULE_ENABLE_VTK_xdmf3 + -DVTK_MODULE_ENABLE_VTK_zlib="YES" + + # not packaged in Gentoo + -DVTK_MODULE_USE_EXTERNAL_VTK_fast_float=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_exprtk=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_token=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_verdict=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_vtkviskores=OFF + + -DVTK_RELOCATABLE_INSTALL=ON + -DVTK_UNIFIED_INSTALL_TREE=ON + + -DVTK_SMP_ENABLE_OPENMP="$(usex openmp)" + -DVTK_SMP_ENABLE_STDTHREAD="$(usex threads)" + -DVTK_SMP_ENABLE_TBB="$(usex tbb)" + + -DVTK_USE_CUDA="$(usex cuda)" + -DVTK_USE_KOKKOS="no" # "$(usex hip)" # requires kokkos + # use system libraries where possible + -DVTK_USE_EXTERNAL=ON + # avoid finding package from either ::guru or ::sci + -DVTK_USE_MEMKIND=OFF + -DVTK_USE_MPI="$(usex mpi)" + -DVTK_USE_TK="$(usex tk)" + -DVTK_USE_X=ON + + -DVTK_WHEEL_BUILD=OFF + + -DVTK_WRAP_JAVA="$(usex java)" + -DVTK_WRAP_PYTHON="$(usex python)" + ) + + if use all-modules; then + mycmakeargs+=( + # no package in ::gentoo + -DVTK_ENABLE_OSPRAY=OFF + # TODO: some of these are tied to the VTK_ENABLE_REMOTE_MODULES + # option. Check whether we can download them clean and enable + # them. + -DVTK_MODULE_ENABLE_VTK_DomainsMicroscopy="NO" + -DVTK_MODULE_ENABLE_VTK_fides="NO" + -DVTK_MODULE_ENABLE_VTK_FiltersOpenTURNS="NO" + -DVTK_MODULE_ENABLE_VTK_IOADIOS2="NO" + -DVTK_MODULE_ENABLE_VTK_IOFides="NO" + + -DVTK_MODULE_ENABLE_VTK_RenderingOpenVR="NO" + -DVTK_MODULE_ENABLE_VTK_RenderingOpenXR="NO" + + -DVTK_MODULE_USE_EXTERNAL_VTK_cli11="YES" + ) + fi + + if use boost; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_InfovisBoost="YES" + -DVTK_MODULE_ENABLE_VTK_InfovisBoostGraphAlgorithms="YES" + ) + fi + + if use cuda; then + cuda_add_sandbox -w + addpredict "/dev/char" + + if ! test -w /dev/nvidiactl; then + # eqawarn "Can't access the GPU at /dev/nvidiactl." + # eqawarn "User $(id -nu) is not in the group \"video\"." + if [[ -z "${CUDAARCHS}" ]]; then + # build all targets + mycmakeargs+=( + -DCMAKE_CUDA_ARCHITECTURES="all" + ) + fi + else + local -x CUDAARCHS + : "${CUDAARCHS:="$(cuda_get_host_native_arch)"}" + fi + + # set NVCC_CCBIN + local -x CUDAHOSTCXX CUDAHOSTLD + CUDAHOSTCXX="$(cuda_get_host_compiler)" + CUDAHOSTLD="$(tc-getCXX)" + export NVCC_CCBIN="${CUDAHOSTCXX}" + + if tc-is-gcc; then + # Filter out IMPLICIT_LINK_DIRECTORIES picked up by CMAKE_DETERMINE_COMPILER_ABI(CUDA) + # See /usr/share/cmake/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst + CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES_EXCLUDE=$( + "${CUDAHOSTLD}" -E -v - <<<"int main(){}" |& \ + grep LIBRARY_PATH | cut -d '=' -f 2 | cut -d ':' -f 1 + ) + fi + fi + + if use debug; then + mycmakeargs+=( + -DVTK_DEBUG_LEAKS=ON + -DVTK_DEBUG_MODULE=ON + -DVTK_DEBUG_MODULE_ALL=ON + -DVTK_ENABLE_SANITIZER=ON + -DVTK_EXTRA_COMPILER_WARNINGS=ON + -DVTK_WARN_ON_DISPATCH_FAILURE=ON + ) + if use rendering; then + mycmakeargs+=( -DVTK_OPENGL_ENABLE_STREAM_ANNOTATIONS="YES" ) + fi + fi + + if use examples || use test; then + mycmakeargs+=( -DVTK_USE_LARGE_DATA=ON ) + fi + + if use ffmpeg; then + mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOFFMPEG="YES" ) + if use rendering; then + mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingFFMPEGOpenGL2="YES" ) + fi + fi + + if use gdal; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_GeovisGDAL="YES" + -DVTK_MODULE_ENABLE_VTK_IOGDAL="YES" + -DVTK_MODULE_ENABLE_VTK_IOGeoJSON="YES" + ) + fi + + if use imaging; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_ImagingColor="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingCore="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingFourier="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingGeneral="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingHybrid="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingMath="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingMorphological="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingSources="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingStatistics="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingStencil="YES" + ) + use rendering && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingImage="YES" ) + fi + + if ! use java && ! use python; then + # defaults to ON + mycmakeargs+=( -DVTK_ENABLE_WRAPPING=OFF ) + fi + + if use java; then + mycmakeargs+=( + -DCMAKE_INSTALL_JARDIR="share/${PN}" + -DVTK_ENABLE_WRAPPING=ON + -DVTK_MODULE_ENABLE_VTK_Java="YES" + -DVTK_JAVA_RELEASE_VERSION="$(java-config -g PROVIDES_VERSION)" + ) + fi + + if use minimal; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_CommonComputationalGeometry="YES" + -DVTK_MODULE_ENABLE_VTK_CommonExecutionModel="YES" + -DVTK_MODULE_ENABLE_VTK_CommonMath="YES" + -DVTK_MODULE_ENABLE_VTK_CommonMisc="YES" + -DVTK_MODULE_ENABLE_VTK_CommonSystem="YES" + -DVTK_MODULE_ENABLE_VTK_CommonTransforms="YES" + + -DVTK_MODULE_ENABLE_VTK_FiltersCellGrid="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersCore="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersExtraction="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersGeneral="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersGeneric="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersGeometry="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersHybrid="NO" + -DVTK_MODULE_ENABLE_VTK_FiltersHyperTree="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersReduction="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersSources="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersStatistics="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersVerdict="YES" + + -DVTK_MODULE_ENABLE_VTK_IOCellGrid="YES" + -DVTK_MODULE_ENABLE_VTK_IOCore="YES" + -DVTK_MODULE_ENABLE_VTK_IOGeometry="NO" + -DVTK_MODULE_ENABLE_VTK_IOLegacy="YES" + + -DVTK_MODULE_ENABLE_VTK_ParallelCore="YES" + -DVTK_MODULE_ENABLE_VTK_ParallelDIY="YES" + ) + fi + + if use mpi; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_IOH5part="YES" + -DVTK_MODULE_ENABLE_VTK_IOMPIParallel="YES" + -DVTK_MODULE_ENABLE_VTK_IOParallel="YES" + -DVTK_MODULE_ENABLE_VTK_IOParallelNetCDF="$(usex netcdf "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOParallelXML="YES" + -DVTK_MODULE_ENABLE_VTK_ParallelMPI="YES" + -DVTK_MODULE_ENABLE_VTK_h5part="YES" + -DVTK_MODULE_USE_EXTERNAL_VTK_verdict=OFF + ) + use imaging && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOMPIImage="YES" ) + use python && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_ParallelMPI4Py="YES" ) + if use rendering; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_RenderingParallel="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingParallelLIC="YES" + ) + fi + use vtkm && mycmakeargs+=( -DVTKm_ENABLE_MPI=ON ) + fi + + use mysql && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOMySQL="YES" ) + use odbc && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOODBC="YES" ) + use openvdb && mycmakeargs+=( -DOpenVDB_CMAKE_PATH="${ESYSROOT}/usr/$(get_libdir)/cmake/OpenVDB" ) + use postgres && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOPostgreSQL="YES" ) + + if use python; then + mycmakeargs+=( + -DPython3_EXECUTABLE="${PYTHON}" + -DVTK_ENABLE_WRAPPING=ON + -DVTK_MODULE_ENABLE_VTK_Python="YES" + -DVTK_MODULE_ENABLE_VTK_PythonInterpreter="YES" + -DVTK_MODULE_ENABLE_VTK_WrappingPythonCore="YES" + -DVTK_PYTHON_OPTIONAL_LINK="OFF" + -DVTK_PYTHON_SITE_PACKAGES_SUFFIX="lib/${EPYTHON}/site-packages" + ) + use rendering && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_PythonContext2D="YES" ) + fi + + if use qt6; then + mycmakeargs+=( + -DCMAKE_INSTALL_QMLDIR="${EPFREIX}/usr/$(get_libdir)/qt6/qml" + -DVTK_QT_VERSION="6" + -DVTK_MODULE_ENABLE_VTK_GUISupportQt="YES" + -DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick="YES" + ) + + if use mysql || use postgres; then + mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_GUISupportQtSQL="YES" ) + fi + if use rendering; then + mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingQt="YES" ) + fi + if use views; then + mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_ViewsQt="YES" ) + fi + fi + + if use rendering; then + mycmakeargs+=( + # Force using EGL + -DVTK_OPENGL_HAS_EGL="$(usex egl)" + -DVTK_OPENGL_USE_GLES="$(usex gles2)" + + -DVTK_ENABLE_OSPRAY=OFF + + -DVTK_MODULE_ENABLE_VTK_IOExportGL2PS="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingAnari="NO" # no package in ::gentoo + -DVTK_MODULE_ENABLE_VTK_RenderingAnnotation="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingContext2D="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingCore="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingExternal="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingGL2PSOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingHyperTreeGrid="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingLICOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingLOD="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingLabel="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingRayTracing="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingSceneGraph="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingUI="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingVolume="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingVolumeAMR="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingVolumeOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_gl2ps="YES" + ) + + use python && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingMatplotlib="YES" ) + use tk && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingTk="YES" ) + use views && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_ViewsContext2D="YES" ) + use web && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingVtkJS="YES" ) + fi + + # Testing has been changed in 9.2.5: it is now allowed without + # requiring to download, if the data files are available locally! + if use test; then + mycmakeargs+=( + -DVTK_BUILD_TESTING=ON + # disable fetching data files for the default 'all' target + -DVTK_DATA_EXCLUDE_FROM_ALL=OFF + + # requested even if all use flags are off + -DVTK_MODULE_ENABLE_VTK_octree="YES" + -DVTK_MODULE_ENABLE_VTK_ViewsCore="YES" + + -DVTK_MODULE_USE_EXTERNAL_VTK_cli11="YES" + # not packaged in Gentoo + -DVTK_MODULE_USE_EXTERNAL_VTK_scn=OFF + ) + else + mycmakeargs+=( + -DVTK_BUILD_TESTING=OFF + # not packaged in Gentoo + -DVTK_MODULE_USE_EXTERNAL_VTK_scn=OFF + ) + fi + + # FIXME: upstream provides 4 threading models, as of 9.1.0. These are + # sequential, stdthread, openmp and tbb. AFAICS all of them can be + # enabled at the same time. Sequential and STDThread are enabled by + # default. The default selected type for the build is sequential. + # Assuming sequential < STDThread < openmp < tbb wrt speed, although + # this is dependent on the actual scenario where threading is used. + if use tbb; then + mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="TBB" ) + elif use openmp; then # FIXME doesn't work with clang + mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="OpenMP" ) + elif use threads; then + mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="STDThread" ) + else + mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="Sequential" ) + fi + + if use tk; then + mycmakeargs+=( + -DVTK_GROUP_ENABLE_Tk="YES" + ) + fi + + if use views; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_ViewsCore="YES" + -DVTK_MODULE_ENABLE_VTK_ViewsInfovis="YES" + ) + fi + + if use vtkm; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore="YES" + -DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel="YES" + -DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters="YES" + -DViskores_ENABLE_CPACK="no" # "Enable CPack packaging of Viskores" ON + -DViskores_ENABLE_CUDA="$(usex cuda)" # "Enable Cuda support" OFF + -DViskores_ENABLE_DOCUMENTATION="$(usex doc)" # "Build Doxygen documentation" OFF + -DViskores_ENABLE_EXAMPLES="$(usex examples)" # "Build examples" OFF + -DViskores_ENABLE_HDF5_IO="yes" # "Enable HDF5 support" OFF + -DViskores_HDF5_IS_PARALLEL="$(usex mpi)" + -DViskores_ENABLE_LOGGING="$(usex logging)" # "Enable Viskores Logging" ON + -DViskores_ENABLE_MPI="$(usex mpi)" # "Enable MPI support" OFF + -DViskores_ENABLE_OPENMP="$(usex openmp)" # "Enable OpenMP support" OFF + -DViskores_ENABLE_RENDERING="$(usex rendering)" # "Enable rendering library" ON + -DViskores_ENABLE_TBB="$(usex tbb)" # "Enable TBB support" OFF + -DViskores_ENABLE_TESTING="$(usex test)" # "Enable Viskores Testing" ON + -DViskores_ENABLE_TUTORIALS="no" # "Build tutorials" OFF + -DViskores_NO_ASSERT_CUDA="yes" # "Disable assertions for CUDA devices." ON + -DViskores_NO_ASSERT_HIP="yes" # "Disable assertions for HIP devices." ON + -DViskores_NO_ASSERT="no" # "Disable assertions in debugging builds." OFF + -DViskores_NO_INSTALL_README_LICENSE="ON" # bug #793221 # "disable the installation of README and LICENSE files" OFF + -DViskores_SKIP_LIBRARY_VERSIONS="no" # "Skip versioning VTK-m libraries" OFF + -DViskores_Vectorization="none" # only sets compiler flags + ) + fi + + if use web; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_WebCore="YES" + -DVTK_MODULE_ENABLE_VTK_WebGLExporter="YES" + ) + use python && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_WebPython="YES" ) + fi + + cmake_src_configure +} + +src_compile() { + use test && cmake_build VTKData + cmake_src_compile +} + +src_test() { + vtk_add_sandbox + + addwrite /dev/fuse + + # The build system prepends /usr/$(get_libdir) to the RUNPATH instead of appending. + # Set LD_LIBRARY_PATH to use the just build libraries. + local -x LD_LIBRARY_PATH="${BUILD_DIR}/$(get_libdir)${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" + + # local -x VTK_SMP_BACKEND_IN_USE="STDThread" + + # see VTK_SMP_IMPLEMENTATION_TYPE + if use tbb; then + local -x VTK_SMP_BACKEND_IN_USE="TBB" + # # FIXME Times out under openmp + # elif use openmp; then + # local -x VTK_SMP_BACKEND_IN_USE="OpenMP" + elif use threads; then + local -x VTK_SMP_BACKEND_IN_USE="STDThread" + else + local -x VTK_SMP_BACKEND_IN_USE="Sequential" + fi + + local -a CMAKE_SKIP_TESTS + + if [[ "${CMAKE_RUN_OPTIONAL_TESTS:=no}" != "yes" ]]; then + local -a REALLY_BAD_TESTS BAD_TESTS RANDOM_FAIL_TESTS + + # don't work at all + REALLY_BAD_TESTS=( + # (Failed) + "^VTK::ChartsCoreCxx-TestLinePlot3D$" + "^VTK::CommonDataModelCxx-TestHyperTreeGridGeometricLocator$" + "^VTK::FiltersCoreCxx-TestImplicitPolyDataDistanceCube$" + "^VTK::FiltersCorePython-TestSphereTreeFilter$" + "^VTK::FiltersFlowPathsCxx-TestEvenlySpacedStreamlines2D$" + "^VTK::FiltersFlowPathsCxx-TestParticleTracers$" + "^VTK::FiltersGeneralCxx-TestContourTriangulatorHoles$" + "^VTK::IOExportGL2PSCxx-TestGL2PSBillboardTextActor3D" + "^VTK::IOExportGL2PSCxx-TestGL2PSExporterRaster" + "^VTK::IOExportGL2PSCxx-TestGL2PSExporterVolumeRaster" + "^VTK::IOExportGL2PSCxx-TestGL2PSLabeledDataMapper" + "^VTK::IOExportGL2PSCxx-TestGL2PSTextActor" + "^VTK::IOExportGL2PSCxx-TestGL2PSTextMapper" + "^VTK::RenderingCorePython-pickImageData$" + "^VTK::RenderingExternalCxx-TestGLUTRenderWindow$" + "^VTK::RenderingFreeTypeFontConfigCxx-TestSystemFontRendering$" + "^VTK::RenderingOpenGL2Cxx-TestGlyph3DMapperPickability$" + + # (Failed) + "^VTK::FiltersParallelDIY2Cxx-MPI-TestProbeLineFilter$" + "^VTK::FiltersSourcesCxx-MPI-TestRandomHyperTreeGridSourceMPI3$" + + # (Subprocess aborted) + # File missing? ExternalData/Testing/Data/MotionFX/position_file/Sprocket_New.prn + "VTK::IOMotionFXCxx-TestMotionFXCFGReaderPositionFile$" + ) + + # don't work in src_test but when on their own + BAD_TESTS=( + # (Failed) + "^VTK::FiltersCoreCxx-TestQuadricDecimationMaximumError$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLNativeWidgetWithChartHistogram2D$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLStereoWidgetWithDisabledInteractor$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLWidgetWithChartHistogram2D$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLWindowWithDisabledInteractor$" + "^VTK::GUISupportQtCxx-TestQVTKRenderWidgetWithChartHistogram2D$" + "^VTK::GUISupportQtQuickCxx-TestQQuickVTKItem_1$" # QT-6.10.3 maybe? + "^VTK::GUISupportQtQuickCxx-TestQQuickVTKItem_2$" # QT-6.10.3 maybe? + "^VTK::GUISupportQtQuickCxx-TestQQuickVTKItem_3$" # QT-6.10.3 maybe? + "^VTK::InteractionWidgetsCxx-TestFinitePlaneWidget$" + "^VTK::InteractionWidgetsCxx-TestResliceCursorWidget2$" + "^VTK::InteractionWidgetsCxx-TestResliceCursorWidget3$" + "^VTK::InteractionWidgetsPython-TestTensorWidget2$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperCameraShiftScale$" + "^VTK::RenderingOpenGL2Cxx-TestCameraShiftScale$" + "^VTK::RenderingOpenGL2Cxx-TestFluidMapper$" + + # The following tests did not run: + "^VTK::RenderingCoreCxx-TestInteractorTimers$" + + # The following tests FAILED: + # (Subprocess aborted) + "^VTK::CommonDataModelCxx-quadraticIntersection$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperBlockOpacities$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperToggleScalarVisibilities$" + ) + + if use egl; then + REALLY_BAD_TESTS+=( + # The following tests did not run: + # (Skipped) + "^VTK::IOMovieCxx-TestAVIWriter$" + "^VTK::IOMovieCxx-TestMP4Writer$" + ) + else + BAD_TESTS+=( + # (Failed) + # needs OSMesa or gles? + "^VTK::CommonDataModelCxx-TestBezier$" + ) + fi + + if use gles2; then + BAD_TESTS+=( + # (Failed) + "^VTK::RenderingVolumeOpenGL2Cxx-TestGPURayCastDepthPeelingBoxWidget$" + "^VTK::IOImportCxx-OBJImport-MixedOrder1$" + "^VTK::IOImportCxx-OBJImport-MTLwithoutTextureFile$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLStereoWidgetWithMSAA$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLNativeWidgetWithMSAA$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLWindowWithMSAA$" + "^VTK::GUISupportQtCxx-TestQVTKRenderWidgetWithMSAA$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLWidgetWithMSAA$" + "^VTK::InteractionWidgetsCxx-BoxWidget$" + "^VTK::InteractionWidgetsCxx-BoxWidget2$" + "^VTK::InteractionWidgetsCxx-TestBrokenLineWidget$" + "^VTK::InteractionWidgetsCxx-TestCamera3DWidget$" + "^VTK::InteractionWidgetsCxx-TestLightWidget$" + "^VTK::InteractionWidgetsCxx-TestPickingManagerSeedWidget$" + "^VTK::InteractionWidgetsCxx-TestSphereWidget2CenterCursor$" + "^VTK::InteractionWidgetsCxx-TestSphereWidgetZoomInOut$" + "^VTK::InteractionWidgetsCxx-TestSplineWidget$" + "^VTK::InteractionWidgetsCxx-TestTextRepresentationWithBorders$" + "^VTK::InteractionWidgetsCxx-TestDijkstraGraphGeodesicPath$" + "^VTK::RenderingVolumeCxx-TestGPURayCastMapperRectilinearGrid$" + "^VTK::RenderingAnnotationCxx-TestAxisActor2D$" + "^VTK::RenderingAnnotationCxx-TestCubeAxes2DMode$" + "^VTK::RenderingAnnotationCxx-TestPolarAxes2D$" + "^VTK::RenderingAnnotationCxx-TestPolarAxes2DDefault$" + "^VTK::RenderingAnnotationCxx-TestXYPlotActor$" + "^VTK::FiltersGeometryPreviewCxx-TestPointSetStreamer$" + "^VTK::FiltersFlowPathsCxx-TestBSPTree$" + "^VTK::FiltersFlowPathsCxx-TestBSPTreeWithGhostArrays$" + "^VTK::FiltersFlowPathsCxx-TestStreamSurface$" + "^VTK::FiltersFlowPathsCxx-TestVectorFieldTopology$" + "^VTK::FiltersFlowPathsCxx-TestVectorFieldTopologyAMR$" + "^VTK::FiltersModelingCxx-TestQuadRotationalExtrusion$" + "^VTK::FiltersModelingCxx-TestQuadRotationalExtrusionMultiBlock$" + "^VTK::FiltersModelingCxx-TestRotationalExtrusion$" + "^VTK::FiltersModelingCxx-TestRotationalExtrusion2$" + "^VTK::RenderingOpenGL2Cxx-TestCoincident$" + "^VTK::RenderingOpenGL2Cxx-TestMultiTexturing$" + "^VTK::RenderingOpenGL2Cxx-TestMultiTexturingInterpolateScalars$" + "^VTK::RenderingOpenGL2Cxx-TestPBRClearCoat$" + "^VTK::RenderingOpenGL2Cxx-TestSpherePoints$" + "^VTK::RenderingOpenGL2Cxx-TestSphereVertex$" + "^VTK::RenderingOpenGL2Cxx-TestValuePassFloatingPoint$" + "^VTK::RenderingOpenGL2Cxx-TestValuePassFloatingPoint2$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2D$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionXCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionYCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionYCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DIJK$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DMaterialIJK$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVector$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVectorAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVectorAxisReflectionYCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary3DContour$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary3DContourDecomposePolyhedra$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary3DContourImplicit$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2D$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DBiMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DFullMaterialBits$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DMaterialBits$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisClipBox$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionXCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DCellCenters$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DCellCentersMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DClip$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DContour$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DContourMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DDualContour$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DDualContourMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutterDual$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutterDualMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernarySphereMaterial$" + "^VTK::RenderingCoreCxx-RGrid$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperPartialFieldData$" + "^VTK::RenderingCoreCxx-TestEdgeFlags$" + "^VTK::RenderingCoreCxx-TestGlyph3DMapperOrientationArray$" + "^VTK::RenderingCoreCxx-TestGlyph3DMapperQuaternionArray$" + "^VTK::RenderingCoreCxx-TestPolyDataMapperNormals$" + "^VTK::RenderingCoreCxx-TestRenderLinesAsTubes$" + "^VTK::FiltersSourcesCxx-TestRandomHyperTreeGridSource$" + "^VTK::AcceleratorsVTKmFiltersCxx-TestVTKMPolyDataNormals$" + "^VTK::FiltersGeneralCxx-TestYoungsMaterialInterface$" + "^VTK::FiltersGeometryCxx-TestLinearToQuadraticCellsFilter$" + "^VTK::CommonDataModelCxx-TestKdTreeRepresentation$" + ) + fi + + if use video_cards_zink; then + local -x MESA_LOADER_DRIVER_OVERRIDE="zink" + else + REALLY_BAD_TESTS+=( + # these fail when run using OpenGL4.5, e.g. llvmpipe + # (Failed) + "^VTK::FiltersGeneralCxx-TestLoopBooleanPolyDataFilter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGrid3DIntercepts$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGrid3DInterface$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2D$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisClipBox$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisClipEllipse$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisClipPlanes$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionXCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionYCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DDepthLimiter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DDepthLimiterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThresholdDeep$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThresholdImplicit$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThresholdMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThresholdMaterialDeep$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThresholdMaterialImplicit$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVectorAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVectorAxisReflectionYCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary3DGeometry$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2D$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DBiMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisClipCylinder$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisClipPlanes$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisCut$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisCutMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionXCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionYZCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionYZCenterMaterial$" + "^VTK::ViewsInfovisCxx-TestIcicleView$" + "^VTK::ViewsInfovisCxx-TestInteractorStyleTreeMapHover$" + "^VTK::ViewsInfovisCxx-TestNetworkViews$" + "^VTK::ViewsInfovisCxx-TestRenderView$" + "^VTK::ViewsInfovisCxx-TestTreeMapView$" + "^VTK::ViewsInfovisCxx-TestTreeRingView$" + ) + + BAD_TESTS+=( + "^VTK::FiltersAMRCxx-TestAMRSliceFilterCellData$" + "^VTK::FiltersCoreCxx-Test3DLinearGridPlaneCutterCellData$" + "^VTK::FiltersCoreCxx-TestPolyDataTangents$" + "^VTK::FiltersExtractionCxx-TestExtraction$" + "^VTK::FiltersExtractionCxx-TestExtractionExpression$" + "^VTK::FiltersGeneralCxx-TestClipClosedSurface1$" + "^VTK::FiltersGeneralCxx-TestClipClosedSurface2$" + "^VTK::FiltersGeneralCxx-TestDateToNumeric$" + "^VTK::FiltersGeneralCxx-TestYoungsMaterialInterface$" + "^VTK::FiltersGeometryCxx-TestDataSetRegionSurfaceFilter$" + "^VTK::FiltersHybridCxx-TemporalStatistics$" + "^VTK::FiltersHybridCxx-TestDepthSortPolyData$" + "^VTK::FiltersHybridCxx-TestHyperTreeGridBinary2DAdaptiveDataSetSurfaceFilter$" + "^VTK::FiltersHybridCxx-TestHyperTreeGridBinary2DAdaptiveDataSetSurfaceFilterMaterial$" + "^VTK::FiltersHybridCxx-TestHyperTreeGridTernary3DAdaptiveDataSetSurfaceFilter$" + "^VTK::FiltersHybridCxx-TestHyperTreeGridTernary3DAdaptiveDataSetSurfaceFilterMaterial$" + "^VTK::FiltersHybridCxx-TestHyperTreeGridTernary3DToUnstructuredAdaptiveDataSetSurfaceFilter$" + "^VTK::FiltersHybridCxx-TestTemporalFractal$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGrid2DInterfaceShift$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionYCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DCellCenters$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DCellCentersMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DContour$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DContourMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DIJK$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DInterfaceMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DMaterialIJK$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThreshold$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVector$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinaryClipPlanes$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinaryEllipseMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinaryHyperbolicParaboloidMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DFullMaterialBits$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DMaterialBits$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DGeometry$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DGeometryMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DGeometryMaterialBits$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThreshold$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThresholdDeep$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThresholdImplicit$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThresholdMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThresholdMaterialDeep$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThresholdMaterialImplicit$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DUnstructured$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DUnstructuredMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernaryHyperbola$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernarySphereMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernarySphereMaterialReflections$" + "^VTK::FiltersModelingCxx-TestCollisionDetectionAllContacts$" + "^VTK::FiltersModelingCxx-TestCollisionDetectionHalfContacts$" + "^VTK::FiltersModelingCxx-TestLinearCellExtrusion$" + "^VTK::FiltersModelingCxx-TestNamedColorsIntegration$" + "^VTK::IOChemistryCxx-TestVASPTessellationReader$" + "^VTK::IOGeometryCxx-TestOpenFOAMReaderFaceZone$" + "^VTK::IOIOSSCxx-TestIOSSExodusParallelWriter$" + "^VTK::IOOCCTCxx-TestOCCTReader$" + "^VTK::IOXMLCxx-TestXMLHyperTreeGridIOInterface$" + "^VTK::IOXMLCxx-TestXMLPieceDistribution$" + "^VTK::InfovisLayoutCxx-TestCirclePackLayoutStrategy$" + "^VTK::InfovisLayoutCxx-TestTreeMapLayoutStrategy$" + "^VTK::InteractionWidgetsCxx-TestButtonWidgetMultipleViewports$" + "^VTK::InteractionWidgetsCxx-TestDisplaySizedImplicitPlaneWidget$" + "^VTK::InteractionWidgetsCxx-TestHandleWidget$" + "^VTK::InteractionWidgetsCxx-TestImplicitPlaneWidget$" + "^VTK::InteractionWidgetsCxx-TestImplicitPlaneWidget2$" + "^VTK::InteractionWidgetsCxx-TestImplicitPlaneWidget2LockNormalToCamera$" + "^VTK::InteractionWidgetsCxx-TestImplicitPlaneWidget2b$" + "^VTK::RenderingAnnotationCxx-TestScalarBarAboveBelow$" + "^VTK::RenderingCoreCxx-TestColorByCellDataStringArray$" + "^VTK::RenderingCoreCxx-TestColorByStringArrayDefaultLookupTable$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperOverrideLUT$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperOverrideScalarArray$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperPartialFieldData$" + "^VTK::RenderingCoreCxx-TestMixedGeometryCellScalars$" + "^VTK::RenderingCoreCxx-TestTilingCxx$" + ) + fi + + if use vtkm && use cuda; then + REALLY_BAD_TESTS+=( + # (Subprocess aborted) + "^VTK::AcceleratorsVTKmFiltersCxx-TestVTKMAbort$" + "^VTK::AcceleratorsVTKmFiltersCxx-TestVTKMClip$" + "^VTK::AcceleratorsVTKmFiltersCxx-TestVTKMClipWithImplicitFunction$" + "^VTK::AcceleratorsVTKmFiltersPython-TestVTKMSlice$" + + # cuda-13? + "^VTK::AcceleratorsVTKmFiltersCxx-TestVTKMSlice$" + ) + fi + + if use rendering && use python && has_version '>=dev-python/matplotlib-3.11'; then + REALLY_BAD_TESTS+=( + "^VTK::RenderingMatplotlibCxx-TestContextMathTextImage$" + "^VTK::RenderingMatplotlibCxx-TestRenderString$" + "^VTK::RenderingMatplotlibCxx-TestStringToPath$" + "^VTK::RenderingMatplotlibCxx-TestScalarBarCombinatorics$" + "^VTK::RenderingMatplotlibPython-TestRenderString$" + "^VTK::RenderingMatplotlibPython-TestStringToPath$" + ) + + if use truetype; then + REALLY_BAD_TESTS+=( + "^VTK::RenderingFreeTypeCxx-TestMathTextFonts$" + "^VTK::RenderingFreeTypeCxx-TestMathTextFreeTypeTextRenderer$" + "^VTK::RenderingFreeTypeCxx-TestFreeTypeTextMapper$" + "^VTK::RenderingFreeTypeCxx-TestFreeTypeTextMapperWithColumns$" + "^VTK::RenderingFreeTypeCxx-TestFontDPIScaling$" + ) + fi + fi + + RANDOM_FAIL_TESTS=( + # (Failed) + "VTK::FiltersVerdictCxx-TestCellQuality$" + + # (Subprocess aborted) + "^VTK::RenderingLICOpenGL2Cxx-SurfaceLICCurvedContrastEnhancedColorMappedSmallGrainMask$" + "^VTK::RenderingLICOpenGL2Cxx-SurfaceLICPlanarContrastEnhanced$" + ) + + CMAKE_SKIP_TESTS+=( + "${REALLY_BAD_TESTS[@]}" + "${BAD_TESTS[@]}" + "${RANDOM_FAIL_TESTS[@]}" + ) + fi + + CMAKE_SKIP_TESTS+=( + # requires VTK_USE_MICROSOFT_MEDIA_FOUNDATION + "^VTK::IOMovieCxx-Test" # Skipped + ) + + if use openmp; then + CMAKE_SKIP_TESTS+=( + "^VTK::CommonCoreCxx-TestSMP$" + ) + fi + + # TODO Why? + local -x CC="$(tc-getCC)" + local -x CXX="$(tc-getCXX)" + + myctestargs=( + --test-timeout 300 + --repeat until-pass:15 + --output-on-failure + ) + + local -x VTK_DEFAULT_OPENGL_WINDOW + if use egl; then + VTK_DEFAULT_OPENGL_WINDOW="vtkEGLRenderWindow" + # elif use osmesa; then + # VTK_DEFAULT_OPENGL_WINDOW="vtkOSOpenGLRenderWindow" + else + VTK_DEFAULT_OPENGL_WINDOW="vtkXOpenGLRenderWindow" + fi + + if use egl; then + # freedesktop specifications mandate that the definition + # of XDG_SESSION_TYPE should be respected + # local -x XDG_SESSION_TYPE="wayland" + # local -x GDK_BACKEND="wayland" + # local -x QT_QPA_PLATFORM="wayland-egl" + # local -x MOZ_ENABLE_WAYLAND=1 + + xdg_environment_reset + + local -x WAYLAND_DISPLAY="wayland-${P}" + local westonargs=( + --backend="headless-backend.so" + --socket="${WAYLAND_DISPLAY}" + --idle-time="0" + --xwayland + --width="1280" + --height="1024" + --refresh-rate="144000" + ) + weston "${westonargs[@]}" & # MHz + local compositor=$! + + eqawarn "running at ${compositor}" + # elif use qt6; then + # local -x QT_QPA_PLATFORM="offscreen" + fi + + local -x MESA_SHADER_CACHE_DISABLE=true + + eqawarn "MESA_LOADER_DRIVER_OVERRIDE: ${MESA_LOADER_DRIVER_OVERRIDE}" + eqawarn "VTK_DEFAULT_OPENGL_WINDOW: ${VTK_DEFAULT_OPENGL_WINDOW}" + + # local -x WL=tinywl + if use egl; then + cmake_src_test + else + virtx \ + cmake_src_test + fi + + # unset CMAKE_SKIP_TESTS + # myctestargs=( -N ) + # cmake_src_test + + if use egl; then + eqawarn "killing ${compositor}" + kill "${compositor}" || die + fi + + eqawarn "MESA_LOADER_DRIVER_OVERRIDE: ${MESA_LOADER_DRIVER_OVERRIDE}" + eqawarn "VTK_DEFAULT_OPENGL_WINDOW: ${VTK_DEFAULT_OPENGL_WINDOW}" + + # die "the end" +} + +src_install() { + use web && webapp_src_preinst + + # Stop web page images from being compressed + if use doc; then + HTML_DOCS=( "${WORKDIR}/html/." ) + fi + + cmake_src_install + + use java && java-pkg_regjar "${ED}/usr/share/${PN}/${PN}.jar" + + # install examples + if use examples; then + einfo "Installing examples" + mv -v {E,e}xamples || die + dodoc -r examples + docompress -x "/usr/share/doc/${PF}/examples" + + einfo "Installing datafiles" + insinto "/usr/share/${PN}/data" + doins -r "${S}/.ExternalData" + fi + + use python && python_optimize + + use web && webapp_src_install +} + +# webapp.eclass exports these but we want it optional #534036 +pkg_postinst() { + use web && webapp_pkg_postinst + + if use examples; then + einfo "You can get more and updated examples at" + einfo "https://kitware.github.io/vtk-examples/site/" + fi +} + +pkg_prerm() { + use web && webapp_pkg_prerm +} + +pkg_info() { + # if [[ -v DISPLAY ]]; then + # for virtx + xdg_environment_reset + + if use video_cards_zink; then + local -x MESA_LOADER_DRIVER_OVERRIDE="zink" + fi + + vtk_add_sandbox + nonfatal virtx "/usr/bin/vtkProbeOpenGLVersion-$(ver_cut 1-2)" + # fi +} diff --git a/sci-libs/vtk/vtk-9999.ebuild b/sci-libs/vtk/vtk-9999.ebuild new file mode 100644 index 000000000000..ae29ac75e925 --- /dev/null +++ b/sci-libs/vtk/vtk-9999.ebuild @@ -0,0 +1,1429 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# TODO: +# - add USE flag for remote modules? Those modules can be downloaded properly before building. +# - vtkm was renamed to viskores. Rename once usemove is implemented. + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="tk?" + +WEBAPP_OPTIONAL=yes +WEBAPP_MANUAL_SLOT=yes + +inherit check-reqs cmake cuda java-pkg-opt-2 multiprocessing python-single-r1 toolchain-funcs virtualx webapp +inherit flag-o-matic xdg-utils + +# Short package version +MY_PV="$(ver_cut 1-2)" + +DESCRIPTION="The Visualization Toolkit" +HOMEPAGE="https://www.vtk.org/" + +if [[ ${PV} = *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI=" + https://github.com/Kitware/VTK.git + https://gitlab.kitware.com/vtk/vtk.git + " +else + SRC_URI=" + https://www.vtk.org/files/release/${MY_PV}/VTK-${PV}.tar.gz + doc? ( + https://www.vtk.org/files/release/${MY_PV}/vtkDocHtml-${PV}.tar.gz + ) + examples? ( + https://www.vtk.org/files/release/${MY_PV}/VTKLargeData-${PV}.tar.gz + https://www.vtk.org/files/release/${MY_PV}/VTKLargeDataFiles-${PV}.tar.gz + ) + test? ( + https://www.vtk.org/files/release/${MY_PV}/VTKData-${PV}.tar.gz + https://www.vtk.org/files/release/${MY_PV}/VTKDataFiles-${PV}.tar.gz + https://www.vtk.org/files/release/${MY_PV}/VTKLargeData-${PV}.tar.gz + https://www.vtk.org/files/release/${MY_PV}/VTKLargeDataFiles-${PV}.tar.gz + ) + " + S="${WORKDIR}/VTK-${PV}" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +LICENSE="BSD LGPL-2" +SLOT="0/${MY_PV}" + +# TODO: Like to simplify these. Mostly the flags related to Groups. +IUSE=" + all-modules boost +cgns cuda debug doc egl examples ffmpeg gdal gles2 imaging + java +logging minimal mpi mysql +netcdf odbc opencascade openmp openvdb pdal postgres + python qt6 +rendering tbb test +threads tk +truetype video_cards_nvidia +views vtkm web + +video_cards_zink +" + +RESTRICT="!test? ( test )" + +# we can't test egl or gles2 without hardware access +REQUIRED_USE=" + all-modules? ( + boost cgns ffmpeg gdal imaging mysql netcdf odbc opencascade openvdb pdal + postgres rendering truetype views + ) + cuda? ( video_cards_nvidia vtkm ) + java? ( rendering ) + minimal? ( !gdal !rendering ) + !minimal? ( cgns netcdf rendering ) + python? ( ${PYTHON_REQUIRED_USE} ) + qt6? ( rendering ) + tk? ( python rendering ) + web? ( python ) + rendering? ( truetype views ) + test? ( !egl !gles2 ) +" + +# eigen, nlohmann_json, pegtl and utfcpp are referenced in the cmake files +# and need to be available when VTK consumers configure the dependencies. +# opencascade does things with gles2/opengl detection so we need to align both +RDEPEND=" + app-arch/lz4:= + app-arch/xz-utils + dev-cpp/eigen:= + dev-cpp/nlohmann_json + dev-db/sqlite:3 + dev-libs/expat + dev-libs/jsoncpp:= + >=dev-libs/libfmt-8.1.1:= + dev-libs/libxml2:2= + >=dev-libs/pegtl-3 + dev-libs/pugixml + dev-libs/utfcpp + media-libs/freetype + media-libs/libjpeg-turbo:= + media-libs/libogg + media-libs/libpng:= + media-libs/tiff:= + sci-libs/hdf5:=[mpi=] + virtual/zlib:= + virtual/opengl[X] + boost? ( dev-libs/boost:=[mpi?] ) + cgns? ( + >=sci-libs/cgnslib-4.1.1:=[hdf5,mpi=] + ) + cuda? ( dev-util/nvidia-cuda-toolkit:= ) + ffmpeg? ( media-video/ffmpeg:= ) + gdal? ( sci-libs/gdal:= ) + java? ( >=virtual/jdk-11:= ) + !minimal? ( + >=media-libs/libharu-2.4.0:= + media-libs/libtheora:= + sci-libs/proj:= + ) + mpi? ( virtual/mpi[romio] ) + mysql? ( dev-db/mariadb-connector-c:= ) + netcdf? ( sci-libs/netcdf:=[mpi=] ) + odbc? ( dev-db/unixODBC ) + openvdb? ( media-gfx/openvdb:= ) + opencascade? ( sci-libs/opencascade:=[gles2=] ) + pdal? ( sci-libs/pdal:= ) + postgres? ( dev-db/postgresql:= ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/cftime[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/xarray[${PYTHON_USEDEP}] + mpi? ( dev-python/mpi4py[${PYTHON_USEDEP}] ) + rendering? ( dev-python/matplotlib[${PYTHON_USEDEP}] ) + ') + ) + qt6? ( + dev-qt/qtbase:6[gui,opengl,sql,widgets] + dev-qt/qtdeclarative:6[opengl] + dev-qt/qtshadertools:6 + x11-libs/libxkbcommon + !gles2? ( + dev-qt/qtbase:6[-gles2-only] + ) + ) + rendering? ( + media-libs/libglvnd[X] + x11-libs/gl2ps + x11-libs/libXcursor + x11-libs/libX11 + ) + tbb? ( dev-cpp/tbb:= ) + tk? ( dev-lang/tk:= ) + truetype? ( media-libs/fontconfig ) + video_cards_nvidia? ( x11-drivers/nvidia-drivers ) + views? ( + x11-libs/libX11 + ) + vtkm? ( + sci-libs/hdf5[cxx] + mpi? ( + sci-libs/hdf5[unsupported] + ) + ) + web? ( ${WEBAPP_DEPEND} ) +" + +# we need OpenGL 3.2 or later -> llvmpipe -> mesa[llvm] +DEPEND=" + ${RDEPEND} + dev-cpp/cli11 + test? ( + media-libs/glew + media-libs/mesa[llvm,video_cards_zink?] + x11-libs/libXcursor + rendering? ( media-libs/freeglut ) + ) +" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}/${PN}-9.2.5-pegtl-3.x.patch" + "${FILESDIR}/${PN}-9.3.0-java.patch" + + "${FILESDIR}/${PN}-9.4.2-pegtl-3.x.patch" + "${FILESDIR}/${PN}-9.5.2-gcc17-include-string.patch" +) + +DOCS=( CONTRIBUTING.md README.md ) + +vtk_check_reqs() { + local dsk="$(( + 1024 + + $(usex cuda 8192 0) + + $(usex doc 3072 0) + + $(usex examples 2048 0) + + $(usex test 0 0) + ))" +# cuda 5.4 G + 1.4G +# cuda 4.7 G + 1.5G + local -x CHECKREQS_DISK_BUILD=${dsk}M + + # In case users are not aware of the extra NINJAOPTS, check + # for the more common MAKEOPTS, in case NINJAOPTS is empty + local jobs=1 + if [[ -n "${NINJAOPTS}" ]]; then + jobs=$(makeopts_jobs "${NINJAOPTS}" "$(get_nproc)") + elif [[ -n "${MAKEOPTS}" ]]; then + jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + fi + + if use cuda; then + local mem="$(( + $(usex cuda $(( 7 * 1024 )) 0) * $(( jobs > 4 ? 4 : jobs )) + ))" + local CHECKREQS_MEMORY=${mem}M + fi + + "check-reqs_pkg_${EBUILD_PHASE}" +} + +cuda_get_host_compiler() { + if [[ -n "${NVCC_CCBIN}" ]]; then + echo "${NVCC_CCBIN}" + return + fi + + if [[ -n "${CUDAHOSTCXX}" ]]; then + echo "${CUDAHOSTCXX}" + return + fi + + einfo "Trying to find working CUDA host compiler" + + if ! tc-is-gcc && ! tc-is-clang; then + die "$(tc-get-compiler-type) compiler is not supported" + fi + + local compiler compiler_type compiler_version + local package package_version + local NVCC_CCBIN_default + + compiler_type="$(tc-get-compiler-type)" + compiler_version="$("${compiler_type}-major-version")" + + # try the default compiler first + NVCC_CCBIN="$(tc-getCXX)" + NVCC_CCBIN_default="${NVCC_CCBIN}-${compiler_version}" + + compiler="${NVCC_CCBIN/%-${compiler_version}}" + + # store the package so we can re-use it later + package="sys-devel/${compiler_type}" + package_version="${package}" + + ebegin "testing ${NVCC_CCBIN_default} (default)" + + while ! nvcc -v -ccbin "${NVCC_CCBIN}" - -x cu <<<"int main(){}" &>> "${T}/cuda_get_host_compiler.log" ; do + eend 1 + + while true; do + # prepare next version + if ! package_version="<$(best_version "${package_version}")"; then + die "could not find a supported version of ${compiler}" + fi + + NVCC_CCBIN="${compiler}-$(ver_cut 1 "${package_version/#<${package}-/}")" + + [[ "${NVCC_CCBIN}" != "${NVCC_CCBIN_default}" ]] && break + done + ebegin "testing ${NVCC_CCBIN}" + done + eend $? + + # clean temp file + rm -f a.out + + echo "${NVCC_CCBIN}" + export NVCC_CCBIN +} + +cuda_get_host_native_arch() { + [[ -n ${CUDAARCHS} ]] && echo "${CUDAARCHS}" + + __nvcc_device_query || die "failed to query the native device" +} + +vtk_add_sandbox() { + local WRITE=() + + # mesa via virtx will make use of udmabuf if it exists + [[ -c "/dev/udmabuf" ]] && WRITE+=( "/dev/udmabuf" ) + + readarray -t dris <<<"$( + find /sys/class/drm/*/device/drm \ + -mindepth 1 -maxdepth 1 -type d -exec basename {} \; \ + | sort | uniq | sed 's:^:/dev/dri/:' + )" + + [[ -n "${dris[*]}" ]] && WRITE+=( "${dris[@]}" ) + + if [[ -d /sys/module/nvidia ]]; then + # /dev/nvidia{0-9} + readarray -t nvidia_devs <<<"$( + find /dev -regextype posix-extended -regex '/dev/nvidia(|-(nvswitch|vgpu))[0-9]*' + )" + + [[ -n "${nvidia_devs[*]}" ]] && WRITE+=( "${nvidia_devs[@]}" ) + + WRITE+=( + "/dev/nvidiactl" + "/dev/nvidia-modeset" + + "/dev/nvidia-uvm" + "/dev/nvidia-uvm-tools" + + "/dev/nvidia-caps/" + ) + + addpredict "/dev/char/" + fi + + # for portage + WRITE+=( + "/proc/self/task/" + ) + + local dev + for dev in "${WRITE[@]}"; do + if [[ ! -e "${dev}" ]]; then + eqawarn "${dev} does not exist" + # continue + fi + + if [[ -w "${dev}" ]]; then + eqawarn "${dev} is already writable" + # continue + fi + + eqawarn "addwrite ${dev}" + addwrite "${dev}" + + if [[ ! -d "${dev}" ]] && [[ ! -w "${dev}" ]]; then + eerror "can not access ${dev} after addwrite" + fi + done +} + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + + vtk_check_reqs + + # When building binpkgs you probably want to include all targets + if use cuda && [[ ${MERGE_TYPE} == "buildonly" ]] && [[ -n "${CUDAARCHS}" ]]; then + local info_message="When building a binary package it's recommended to unset CUDAARCHS" + einfo "$info_message so all available architectures are build." + fi +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + + vtk_check_reqs + + if use cuda && [[ ! -e /dev/nvidia-uvm ]]; then + # NOTE We try to load nvidia-uvm and nvidia-modeset here, + # so __nvcc_device_query does not fail later. + + nvidia-smi -L || true + + if has_version ">=dev-util/nvidia-cuda-toolkit-12.6.0"; then + # NOTE Without this ptxas will consume large amounts of memory. + # The user can override this using NVCC_APPREND_FLAGS. + # #973279 + # TODO Should go into the eclass. + export NVCC_PREPREND_FLAGS="${NVCC_PREPREND_FLAGS:+"${NVCC_PREPREND_FLAGS} "} -Ofc min --threads $(makeopts_jobs)" + einfo "Using NVCC_PREPREND_FLAGS=\"${NVCC_PREPREND_FLAGS}\"" + einfo "You can override this using NVCC_APPREND_FLAGS" + fi + fi + + use java && java-pkg-opt-2_pkg_setup + use python && python-single-r1_pkg_setup + use web && webapp_pkg_setup +} + +# Note: The following libraries are marked as internal by kitware +# and can currently not unbundled: +# diy2, exodusII, fides, h5part, kissfft, loguru, verdict, vpic, +# viskores, xdmf{2,3}, zfp +# TODO: exprtk, ioss +# Note: As of v9.2.2 we no longer drop bundled libraries, when using system +# libraries. This just saves a little space. CMake logic of VTK on ThirdParty +# libraries avoids automagic builds, so deletion is not needed to catch these. +src_prepare() { + if use doc; then + einfo "Removing .md5 files from documents." + rm -f "${WORKDIR}"/html/*.md5 || die "Failed to remove superfluous hashes" + sed -e "s|\${VTK_BINARY_DIR}/Utilities/Doxygen/doc|${WORKDIR}|" \ + -i Utilities/Doxygen/CMakeLists.txt || die + fi + + cmake_src_prepare + + if use test; then + ebegin "Copying data files to ${BUILD_DIR}" + mkdir -p "${BUILD_DIR}/ExternalData" || die + pushd "${BUILD_DIR}/ExternalData" >/dev/null || die + ln -sf "../../${S}/.ExternalData/README.rst" . || die + ln -sf "../../${S}/.ExternalData/SHA512" . || die + popd >/dev/null || die + eend "$?" + fi +} + +# TODO: check these and consider to use them +# VTK_BUILD_SCALED_SOA_ARRAYS +# VTK_DISPATCH_{AOS,SOA,TYPED}_ARRAYS +src_configure() { + filter-lto + + if ! is-flagq "$(usex debug '-DDEBUG' '-DNDEBUG')"; then + append-cxxflags "$(usex debug '-DDEBUG' '-DNDEBUG')" + fi + + local mycmakeargs=( + -DHDF5_IS_PARALLEL=1 + -DCMAKE_DISABLE_FIND_PACKAGE_Git="yes" + -DVTK_GIT_DESCRIBE="v${PV}" + -DVTK_VERSION_FULL="${PV}" + -DGIT_EXECUTABLE="${T}/notgit" + + -DCMAKE_POLICY_DEFAULT_CMP0167="OLD" + -DCMAKE_POLICY_DEFAULT_CMP0174="OLD" + -DCMAKE_POLICY_DEFAULT_CMP0177="OLD" + + -DCMAKE_INSTALL_LICENSEDIR="share/${PN}/licenses" + # c++17 since 9.5.0 + -DVTK_IGNORE_CMAKE_CXX17_CHECKS="no" + + # -DCMAKE_UNITY_BUILD=ON + # -DCMAKE_UNITY_BUILD_BATCH_SIZE=16 + + -DVTK_ANDROID_BUILD=OFF + -DVTK_IOS_BUILD=OFF + + -DVTK_BUILD_ALL_MODULES="$(usex all-modules)" + # we use the pre-built documentation and install these with USE=doc + -DVTK_BUILD_DOCUMENTATION=OFF + -DVTK_BUILD_EXAMPLES="$(usex examples)" + + # no package in the tree: https://github.com/LLNL/conduit + -DVTK_ENABLE_CATALYST=OFF + -DVTK_ENABLE_KITS=OFF + -DVTK_ENABLE_LOGGING="$(usex logging)" + # defaults to ON: USE flag for this? + -DVTK_ENABLE_REMOTE_MODULES=OFF + + # disable fetching files during build + -DVTK_FORBID_DOWNLOADS="yes" + + -DVTK_GROUP_ENABLE_Imaging="$(usex imaging "YES" "NO")" + -DVTK_GROUP_ENABLE_MPI="$(usex mpi "YES" "NO")" + -DVTK_GROUP_ENABLE_Qt="$(usex qt6 "YES" "NO")" + -DVTK_GROUP_ENABLE_Rendering="$(usex rendering "YES" "NO")" + -DVTK_GROUP_ENABLE_StandAlone="$(usex minimal "NO" "YES")" + -DVTK_GROUP_ENABLE_Views="$(usex views "YES" "NO")" + -DVTK_GROUP_ENABLE_Web="$(usex web "YES" "NO")" + + -DVTK_INSTALL_SDK=ON + + -DVTK_MODULE_ENABLE_VTK_IOCGNSReader="$(usex cgns "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOExportPDF="$(usex minimal "NO" "YES")" + -DVTK_MODULE_ENABLE_VTK_IOLAS="NO" # las is dead + -DVTK_MODULE_ENABLE_VTK_IONetCDF="$(usex netcdf "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOOCCT="$(usex opencascade "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOOggTheora="$(usex minimal "NO" "YES")" + -DVTK_MODULE_ENABLE_VTK_IOOpenVDB="$(usex openvdb "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOSQL="YES" # sqlite + -DVTK_MODULE_ENABLE_VTK_IOPDAL="$(usex pdal "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOXML="YES" + -DVTK_MODULE_ENABLE_VTK_IOXMLParser="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingFreeType="$(usex truetype "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig="$(usex truetype "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_cgns="$(usex cgns "YES" "NO")" + # -DVTK_MODULE_ENABLE_VTK_cli11 + # -DVTK_MODULE_ENABLE_VTK_dy2 + -DVTK_MODULE_ENABLE_VTK_eigen="YES" + # -DVTK_MODULE_ENABLE_VTK_exodusII + -DVTK_MODULE_ENABLE_VTK_expat="YES" + # -DVTK_MODULE_ENABLE_VTK_exprtk + # -DVTK_MODULE_ENABLE_VTK_fast_float + # -DVTK_MODULE_ENABLE_VTK_fides + -DVTK_MODULE_ENABLE_VTK_fmt="YES" + -DVTK_MODULE_ENABLE_VTK_freetype="$(usex truetype "YES" "NO")" + # -DVTK_MODULE_ENABLE_VTK_glad + # -DVTK_MODULE_ENABLE_VTK_h5part + -DVTK_MODULE_ENABLE_VTK_hdf5="YES" + # -DVTK_MODULE_ENABLE_VTK_ioss + -DVTK_MODULE_ENABLE_VTK_jpeg="YES" + -DVTK_MODULE_ENABLE_VTK_jsoncpp="YES" + # -DVTK_MODULE_ENABLE_VTK_kissfft + # -DVTK_MODULE_ENABLE_VTK_kwiml + -DVTK_MODULE_ENABLE_VTK_libharu="$(usex minimal "NO" "YES")" + -DVTK_MODULE_ENABLE_VTK_libproj="$(usex minimal "NO" "YES")" + -DVTK_MODULE_ENABLE_VTK_libxml2="YES" + # -DVTK_MODULE_ENABLE_VTK_loguru + -DVTK_MODULE_ENABLE_VTK_lz4="YES" + -DVTK_MODULE_ENABLE_VTK_lzma="YES" + # -DVTK_MODULE_ENABLE_VTK_metaio + -DVTK_MODULE_ENABLE_VTK_netcdf="$(usex netcdf "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_nlohmannjson="YES" + # -DVTK_MODULE_ENABLE_VTK_octree + -DVTK_MODULE_ENABLE_VTK_ogg="YES" + -DVTK_MODULE_ENABLE_VTK_pegtl="YES" + -DVTK_MODULE_ENABLE_VTK_png="YES" + -DVTK_MODULE_ENABLE_VTK_pugixml="YES" + # -DVTK_MODULE_ENABLE_VTK_scn="$(usex test "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_sqlite="YES" + -DVTK_MODULE_ENABLE_VTK_theora="$(usex minimal "NO" "YES")" + -DVTK_MODULE_ENABLE_VTK_tiff="YES" + # -DVTK_MODULE_ENABLE_VTK_token + -DVTK_MODULE_ENABLE_VTK_utf8="YES" + # -DVTK_MODULE_ENABLE_VTK_verdict + # -DVTK_MODULE_ENABLE_VTK_vpic + # -DVTK_MODULE_ENABLE_VTK_vtksys + -DVTK_MODULE_ENABLE_VTK_vtkviskores="$(usex vtkm "YES" "NO")" + # -DVTK_MODULE_ENABLE_VTK_xdmf2 + # -DVTK_MODULE_ENABLE_VTK_xdmf3 + -DVTK_MODULE_ENABLE_VTK_zlib="YES" + + # not packaged in Gentoo + -DVTK_MODULE_USE_EXTERNAL_VTK_fast_float=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_exprtk=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_token=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_verdict=OFF + -DVTK_MODULE_USE_EXTERNAL_VTK_vtkviskores=OFF + + -DVTK_RELOCATABLE_INSTALL=ON + -DVTK_UNIFIED_INSTALL_TREE=ON + + -DVTK_SMP_ENABLE_OPENMP="$(usex openmp)" + -DVTK_SMP_ENABLE_STDTHREAD="$(usex threads)" + -DVTK_SMP_ENABLE_TBB="$(usex tbb)" + + -DVTK_USE_CUDA="$(usex cuda)" + -DVTK_USE_KOKKOS="no" # "$(usex hip)" # requires kokkos + # use system libraries where possible + -DVTK_USE_EXTERNAL=ON + # avoid finding package from either ::guru or ::sci + -DVTK_USE_MEMKIND=OFF + -DVTK_USE_MPI="$(usex mpi)" + -DVTK_USE_TK="$(usex tk)" + -DVTK_USE_X=ON + + -DVTK_WHEEL_BUILD=OFF + + -DVTK_WRAP_JAVA="$(usex java)" + -DVTK_WRAP_PYTHON="$(usex python)" + ) + + if use all-modules; then + mycmakeargs+=( + # no package in ::gentoo + -DVTK_ENABLE_OSPRAY=OFF + # TODO: some of these are tied to the VTK_ENABLE_REMOTE_MODULES + # option. Check whether we can download them clean and enable + # them. + -DVTK_MODULE_ENABLE_VTK_DomainsMicroscopy="NO" + -DVTK_MODULE_ENABLE_VTK_fides="NO" + -DVTK_MODULE_ENABLE_VTK_FiltersOpenTURNS="NO" + -DVTK_MODULE_ENABLE_VTK_IOADIOS2="NO" + -DVTK_MODULE_ENABLE_VTK_IOFides="NO" + + -DVTK_MODULE_ENABLE_VTK_RenderingOpenVR="NO" + -DVTK_MODULE_ENABLE_VTK_RenderingOpenXR="NO" + + -DVTK_MODULE_USE_EXTERNAL_VTK_cli11="YES" + ) + fi + + if use boost; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_InfovisBoost="YES" + -DVTK_MODULE_ENABLE_VTK_InfovisBoostGraphAlgorithms="YES" + ) + fi + + if use cuda; then + cuda_add_sandbox -w + addpredict "/dev/char" + + if ! test -w /dev/nvidiactl; then + # eqawarn "Can't access the GPU at /dev/nvidiactl." + # eqawarn "User $(id -nu) is not in the group \"video\"." + if [[ -z "${CUDAARCHS}" ]]; then + # build all targets + mycmakeargs+=( + -DCMAKE_CUDA_ARCHITECTURES="all" + ) + fi + else + local -x CUDAARCHS + : "${CUDAARCHS:="$(cuda_get_host_native_arch)"}" + fi + + # set NVCC_CCBIN + local -x CUDAHOSTCXX CUDAHOSTLD + CUDAHOSTCXX="$(cuda_get_host_compiler)" + CUDAHOSTLD="$(tc-getCXX)" + export NVCC_CCBIN="${CUDAHOSTCXX}" + + if tc-is-gcc; then + # Filter out IMPLICIT_LINK_DIRECTORIES picked up by CMAKE_DETERMINE_COMPILER_ABI(CUDA) + # See /usr/share/cmake/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst + CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES_EXCLUDE=$( + "${CUDAHOSTLD}" -E -v - <<<"int main(){}" |& \ + grep LIBRARY_PATH | cut -d '=' -f 2 | cut -d ':' -f 1 + ) + fi + fi + + if use debug; then + mycmakeargs+=( + -DVTK_DEBUG_LEAKS=ON + -DVTK_DEBUG_MODULE=ON + -DVTK_DEBUG_MODULE_ALL=ON + -DVTK_ENABLE_SANITIZER=ON + -DVTK_EXTRA_COMPILER_WARNINGS=ON + -DVTK_WARN_ON_DISPATCH_FAILURE=ON + ) + if use rendering; then + mycmakeargs+=( -DVTK_OPENGL_ENABLE_STREAM_ANNOTATIONS="YES" ) + fi + fi + + if use examples || use test; then + mycmakeargs+=( -DVTK_USE_LARGE_DATA=ON ) + fi + + if use ffmpeg; then + mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOFFMPEG="YES" ) + if use rendering; then + mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingFFMPEGOpenGL2="YES" ) + fi + fi + + if use gdal; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_GeovisGDAL="YES" + -DVTK_MODULE_ENABLE_VTK_IOGDAL="YES" + -DVTK_MODULE_ENABLE_VTK_IOGeoJSON="YES" + ) + fi + + if use imaging; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_ImagingColor="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingCore="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingFourier="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingGeneral="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingHybrid="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingMath="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingMorphological="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingSources="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingStatistics="YES" + -DVTK_MODULE_ENABLE_VTK_ImagingStencil="YES" + ) + use rendering && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingImage="YES" ) + fi + + if ! use java && ! use python; then + # defaults to ON + mycmakeargs+=( -DVTK_ENABLE_WRAPPING=OFF ) + fi + + if use java; then + mycmakeargs+=( + -DCMAKE_INSTALL_JARDIR="share/${PN}" + -DVTK_ENABLE_WRAPPING=ON + -DVTK_MODULE_ENABLE_VTK_Java="YES" + -DVTK_JAVA_RELEASE_VERSION="$(java-config -g PROVIDES_VERSION)" + ) + fi + + if use minimal; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_CommonComputationalGeometry="YES" + -DVTK_MODULE_ENABLE_VTK_CommonExecutionModel="YES" + -DVTK_MODULE_ENABLE_VTK_CommonMath="YES" + -DVTK_MODULE_ENABLE_VTK_CommonMisc="YES" + -DVTK_MODULE_ENABLE_VTK_CommonSystem="YES" + -DVTK_MODULE_ENABLE_VTK_CommonTransforms="YES" + + -DVTK_MODULE_ENABLE_VTK_FiltersCellGrid="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersCore="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersExtraction="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersGeneral="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersGeneric="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersGeometry="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersHybrid="NO" + -DVTK_MODULE_ENABLE_VTK_FiltersHyperTree="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersReduction="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersSources="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersStatistics="YES" + -DVTK_MODULE_ENABLE_VTK_FiltersVerdict="YES" + + -DVTK_MODULE_ENABLE_VTK_IOCellGrid="YES" + -DVTK_MODULE_ENABLE_VTK_IOCore="YES" + -DVTK_MODULE_ENABLE_VTK_IOGeometry="NO" + -DVTK_MODULE_ENABLE_VTK_IOLegacy="YES" + + -DVTK_MODULE_ENABLE_VTK_ParallelCore="YES" + -DVTK_MODULE_ENABLE_VTK_ParallelDIY="YES" + ) + fi + + if use mpi; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_IOH5part="YES" + -DVTK_MODULE_ENABLE_VTK_IOMPIParallel="YES" + -DVTK_MODULE_ENABLE_VTK_IOParallel="YES" + -DVTK_MODULE_ENABLE_VTK_IOParallelNetCDF="$(usex netcdf "YES" "NO")" + -DVTK_MODULE_ENABLE_VTK_IOParallelXML="YES" + -DVTK_MODULE_ENABLE_VTK_ParallelMPI="YES" + -DVTK_MODULE_ENABLE_VTK_h5part="YES" + -DVTK_MODULE_USE_EXTERNAL_VTK_verdict=OFF + ) + use imaging && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOMPIImage="YES" ) + use python && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_ParallelMPI4Py="YES" ) + if use rendering; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_RenderingParallel="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingParallelLIC="YES" + ) + fi + use vtkm && mycmakeargs+=( -DVTKm_ENABLE_MPI=ON ) + fi + + use mysql && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOMySQL="YES" ) + use odbc && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOODBC="YES" ) + use openvdb && mycmakeargs+=( -DOpenVDB_CMAKE_PATH="${ESYSROOT}/usr/$(get_libdir)/cmake/OpenVDB" ) + use postgres && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOPostgreSQL="YES" ) + + if use python; then + mycmakeargs+=( + -DPython3_EXECUTABLE="${PYTHON}" + -DVTK_ENABLE_WRAPPING=ON + -DVTK_MODULE_ENABLE_VTK_Python="YES" + -DVTK_MODULE_ENABLE_VTK_PythonInterpreter="YES" + -DVTK_MODULE_ENABLE_VTK_WrappingPythonCore="YES" + -DVTK_PYTHON_OPTIONAL_LINK="OFF" + -DVTK_PYTHON_SITE_PACKAGES_SUFFIX="lib/${EPYTHON}/site-packages" + ) + use rendering && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_PythonContext2D="YES" ) + fi + + if use qt6; then + mycmakeargs+=( + -DCMAKE_INSTALL_QMLDIR="${EPFREIX}/usr/$(get_libdir)/qt6/qml" + -DVTK_QT_VERSION="6" + -DVTK_MODULE_ENABLE_VTK_GUISupportQt="YES" + -DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick="YES" + ) + + if use mysql || use postgres; then + mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_GUISupportQtSQL="YES" ) + fi + if use rendering; then + mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingQt="YES" ) + fi + if use views; then + mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_ViewsQt="YES" ) + fi + fi + + if use rendering; then + mycmakeargs+=( + # Force using EGL + -DVTK_OPENGL_HAS_EGL="$(usex egl)" + -DVTK_OPENGL_USE_GLES="$(usex gles2)" + + -DVTK_ENABLE_OSPRAY=OFF + + -DVTK_MODULE_ENABLE_VTK_IOExportGL2PS="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingAnari="NO" # no package in ::gentoo + -DVTK_MODULE_ENABLE_VTK_RenderingAnnotation="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingContext2D="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingCore="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingExternal="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingGL2PSOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingHyperTreeGrid="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingLICOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingLOD="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingLabel="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingRayTracing="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingSceneGraph="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingUI="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingVolume="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingVolumeAMR="YES" + -DVTK_MODULE_ENABLE_VTK_RenderingVolumeOpenGL2="YES" + -DVTK_MODULE_ENABLE_VTK_gl2ps="YES" + ) + + use python && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingMatplotlib="YES" ) + use tk && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingTk="YES" ) + use views && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_ViewsContext2D="YES" ) + use web && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingVtkJS="YES" ) + fi + + # Testing has been changed in 9.2.5: it is now allowed without + # requiring to download, if the data files are available locally! + if use test; then + mycmakeargs+=( + -DVTK_BUILD_TESTING=ON + # disable fetching data files for the default 'all' target + -DVTK_DATA_EXCLUDE_FROM_ALL=OFF + + # requested even if all use flags are off + -DVTK_MODULE_ENABLE_VTK_octree="YES" + -DVTK_MODULE_ENABLE_VTK_ViewsCore="YES" + + -DVTK_MODULE_USE_EXTERNAL_VTK_cli11="YES" + # not packaged in Gentoo + -DVTK_MODULE_USE_EXTERNAL_VTK_scn=OFF + ) + else + mycmakeargs+=( + -DVTK_BUILD_TESTING=OFF + # not packaged in Gentoo + -DVTK_MODULE_USE_EXTERNAL_VTK_scn=OFF + ) + fi + + # FIXME: upstream provides 4 threading models, as of 9.1.0. These are + # sequential, stdthread, openmp and tbb. AFAICS all of them can be + # enabled at the same time. Sequential and STDThread are enabled by + # default. The default selected type for the build is sequential. + # Assuming sequential < STDThread < openmp < tbb wrt speed, although + # this is dependent on the actual scenario where threading is used. + if use tbb; then + mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="TBB" ) + elif use openmp; then # FIXME doesn't work with clang + mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="OpenMP" ) + elif use threads; then + mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="STDThread" ) + else + mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="Sequential" ) + fi + + if use tk; then + mycmakeargs+=( + -DVTK_GROUP_ENABLE_Tk="YES" + ) + fi + + if use views; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_ViewsCore="YES" + -DVTK_MODULE_ENABLE_VTK_ViewsInfovis="YES" + ) + fi + + if use vtkm; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore="YES" + -DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel="YES" + -DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters="YES" + -DViskores_ENABLE_CPACK="no" # "Enable CPack packaging of Viskores" ON + -DViskores_ENABLE_CUDA="$(usex cuda)" # "Enable Cuda support" OFF + -DViskores_ENABLE_DOCUMENTATION="$(usex doc)" # "Build Doxygen documentation" OFF + -DViskores_ENABLE_EXAMPLES="$(usex examples)" # "Build examples" OFF + -DViskores_ENABLE_HDF5_IO="yes" # "Enable HDF5 support" OFF + -DViskores_HDF5_IS_PARALLEL="$(usex mpi)" + -DViskores_ENABLE_LOGGING="$(usex logging)" # "Enable Viskores Logging" ON + -DViskores_ENABLE_MPI="$(usex mpi)" # "Enable MPI support" OFF + -DViskores_ENABLE_OPENMP="$(usex openmp)" # "Enable OpenMP support" OFF + -DViskores_ENABLE_RENDERING="$(usex rendering)" # "Enable rendering library" ON + -DViskores_ENABLE_TBB="$(usex tbb)" # "Enable TBB support" OFF + -DViskores_ENABLE_TESTING="$(usex test)" # "Enable Viskores Testing" ON + -DViskores_ENABLE_TUTORIALS="no" # "Build tutorials" OFF + -DViskores_NO_ASSERT_CUDA="yes" # "Disable assertions for CUDA devices." ON + -DViskores_NO_ASSERT_HIP="yes" # "Disable assertions for HIP devices." ON + -DViskores_NO_ASSERT="no" # "Disable assertions in debugging builds." OFF + -DViskores_NO_INSTALL_README_LICENSE="ON" # bug #793221 # "disable the installation of README and LICENSE files" OFF + -DViskores_SKIP_LIBRARY_VERSIONS="no" # "Skip versioning VTK-m libraries" OFF + -DViskores_Vectorization="none" # only sets compiler flags + ) + fi + + if use web; then + mycmakeargs+=( + -DVTK_MODULE_ENABLE_VTK_WebCore="YES" + -DVTK_MODULE_ENABLE_VTK_WebGLExporter="YES" + ) + use python && mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_WebPython="YES" ) + fi + + cmake_src_configure +} + +src_compile() { + use test && cmake_build VTKData + cmake_src_compile +} + +src_test() { + vtk_add_sandbox + + addwrite /dev/fuse + + # The build system prepends /usr/$(get_libdir) to the RUNPATH instead of appending. + # Set LD_LIBRARY_PATH to use the just build libraries. + local -x LD_LIBRARY_PATH="${BUILD_DIR}/$(get_libdir)${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" + + # local -x VTK_SMP_BACKEND_IN_USE="STDThread" + + # see VTK_SMP_IMPLEMENTATION_TYPE + if use tbb; then + local -x VTK_SMP_BACKEND_IN_USE="TBB" + # # FIXME Times out under openmp + # elif use openmp; then + # local -x VTK_SMP_BACKEND_IN_USE="OpenMP" + elif use threads; then + local -x VTK_SMP_BACKEND_IN_USE="STDThread" + else + local -x VTK_SMP_BACKEND_IN_USE="Sequential" + fi + + local -a CMAKE_SKIP_TESTS + + if [[ "${CMAKE_RUN_OPTIONAL_TESTS:=no}" != "yes" ]]; then + local -a REALLY_BAD_TESTS BAD_TESTS RANDOM_FAIL_TESTS + + # don't work at all + REALLY_BAD_TESTS=( + # (Failed) + "^VTK::ChartsCoreCxx-TestLinePlot3D$" + "^VTK::CommonDataModelCxx-TestHyperTreeGridGeometricLocator$" + "^VTK::FiltersCoreCxx-TestImplicitPolyDataDistanceCube$" + "^VTK::FiltersCorePython-TestSphereTreeFilter$" + "^VTK::FiltersFlowPathsCxx-TestEvenlySpacedStreamlines2D$" + "^VTK::FiltersFlowPathsCxx-TestParticleTracers$" + "^VTK::FiltersGeneralCxx-TestContourTriangulatorHoles$" + "^VTK::IOExportGL2PSCxx-TestGL2PSBillboardTextActor3D" + "^VTK::IOExportGL2PSCxx-TestGL2PSExporterRaster" + "^VTK::IOExportGL2PSCxx-TestGL2PSExporterVolumeRaster" + "^VTK::IOExportGL2PSCxx-TestGL2PSLabeledDataMapper" + "^VTK::IOExportGL2PSCxx-TestGL2PSTextActor" + "^VTK::IOExportGL2PSCxx-TestGL2PSTextMapper" + "^VTK::RenderingCorePython-pickImageData$" + "^VTK::RenderingExternalCxx-TestGLUTRenderWindow$" + "^VTK::RenderingFreeTypeFontConfigCxx-TestSystemFontRendering$" + "^VTK::RenderingOpenGL2Cxx-TestGlyph3DMapperPickability$" + + # (Failed) + "^VTK::FiltersParallelDIY2Cxx-MPI-TestProbeLineFilter$" + + # (Subprocess aborted) + # File missing? ExternalData/Testing/Data/MotionFX/position_file/Sprocket_New.prn + "VTK::IOMotionFXCxx-TestMotionFXCFGReaderPositionFile$" + ) + + # don't work in src_test but when on their own + BAD_TESTS=( + # (Failed) + "^VTK::FiltersCoreCxx-TestQuadricDecimationMaximumError$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLNativeWidgetWithChartHistogram2D$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLStereoWidgetWithDisabledInteractor$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLWidgetWithChartHistogram2D$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLWindowWithDisabledInteractor$" + "^VTK::GUISupportQtCxx-TestQVTKRenderWidgetWithChartHistogram2D$" + "^VTK::GUISupportQtQuickCxx-TestQQuickVTKItem_1$" # QT-6.10.3 maybe? + "^VTK::GUISupportQtQuickCxx-TestQQuickVTKItem_2$" # QT-6.10.3 maybe? + "^VTK::GUISupportQtQuickCxx-TestQQuickVTKItem_3$" # QT-6.10.3 maybe? + "^VTK::InteractionWidgetsCxx-TestFinitePlaneWidget$" + "^VTK::InteractionWidgetsCxx-TestResliceCursorWidget2$" + "^VTK::InteractionWidgetsCxx-TestResliceCursorWidget3$" + "^VTK::InteractionWidgetsPython-TestTensorWidget2$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperCameraShiftScale$" + "^VTK::RenderingOpenGL2Cxx-TestCameraShiftScale$" + "^VTK::RenderingOpenGL2Cxx-TestFluidMapper$" + + # The following tests did not run: + "^VTK::RenderingCoreCxx-TestInteractorTimers$" + + # The following tests FAILED: + # (Subprocess aborted) + "^VTK::CommonDataModelCxx-quadraticIntersection$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperBlockOpacities$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperToggleScalarVisibilities$" + ) + + if use egl; then + REALLY_BAD_TESTS+=( + # The following tests did not run: + # (Skipped) + "^VTK::IOMovieCxx-TestAVIWriter$" + "^VTK::IOMovieCxx-TestMP4Writer$" + ) + else + BAD_TESTS+=( + # (Failed) + # needs OSMesa or gles? + "^VTK::CommonDataModelCxx-TestBezier$" + ) + fi + + if use gles2; then + BAD_TESTS+=( + # (Failed) + "^VTK::RenderingVolumeOpenGL2Cxx-TestGPURayCastDepthPeelingBoxWidget$" + "^VTK::IOImportCxx-OBJImport-MixedOrder1$" + "^VTK::IOImportCxx-OBJImport-MTLwithoutTextureFile$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLStereoWidgetWithMSAA$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLNativeWidgetWithMSAA$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLWindowWithMSAA$" + "^VTK::GUISupportQtCxx-TestQVTKRenderWidgetWithMSAA$" + "^VTK::GUISupportQtCxx-TestQVTKOpenGLWidgetWithMSAA$" + "^VTK::InteractionWidgetsCxx-BoxWidget$" + "^VTK::InteractionWidgetsCxx-BoxWidget2$" + "^VTK::InteractionWidgetsCxx-TestBrokenLineWidget$" + "^VTK::InteractionWidgetsCxx-TestCamera3DWidget$" + "^VTK::InteractionWidgetsCxx-TestLightWidget$" + "^VTK::InteractionWidgetsCxx-TestPickingManagerSeedWidget$" + "^VTK::InteractionWidgetsCxx-TestSphereWidget2CenterCursor$" + "^VTK::InteractionWidgetsCxx-TestSphereWidgetZoomInOut$" + "^VTK::InteractionWidgetsCxx-TestSplineWidget$" + "^VTK::InteractionWidgetsCxx-TestTextRepresentationWithBorders$" + "^VTK::InteractionWidgetsCxx-TestDijkstraGraphGeodesicPath$" + "^VTK::RenderingVolumeCxx-TestGPURayCastMapperRectilinearGrid$" + "^VTK::RenderingAnnotationCxx-TestAxisActor2D$" + "^VTK::RenderingAnnotationCxx-TestCubeAxes2DMode$" + "^VTK::RenderingAnnotationCxx-TestPolarAxes2D$" + "^VTK::RenderingAnnotationCxx-TestPolarAxes2DDefault$" + "^VTK::RenderingAnnotationCxx-TestXYPlotActor$" + "^VTK::FiltersGeometryPreviewCxx-TestPointSetStreamer$" + "^VTK::FiltersFlowPathsCxx-TestBSPTree$" + "^VTK::FiltersFlowPathsCxx-TestBSPTreeWithGhostArrays$" + "^VTK::FiltersFlowPathsCxx-TestStreamSurface$" + "^VTK::FiltersFlowPathsCxx-TestVectorFieldTopology$" + "^VTK::FiltersFlowPathsCxx-TestVectorFieldTopologyAMR$" + "^VTK::FiltersModelingCxx-TestQuadRotationalExtrusion$" + "^VTK::FiltersModelingCxx-TestQuadRotationalExtrusionMultiBlock$" + "^VTK::FiltersModelingCxx-TestRotationalExtrusion$" + "^VTK::FiltersModelingCxx-TestRotationalExtrusion2$" + "^VTK::RenderingOpenGL2Cxx-TestCoincident$" + "^VTK::RenderingOpenGL2Cxx-TestMultiTexturing$" + "^VTK::RenderingOpenGL2Cxx-TestMultiTexturingInterpolateScalars$" + "^VTK::RenderingOpenGL2Cxx-TestPBRClearCoat$" + "^VTK::RenderingOpenGL2Cxx-TestSpherePoints$" + "^VTK::RenderingOpenGL2Cxx-TestSphereVertex$" + "^VTK::RenderingOpenGL2Cxx-TestValuePassFloatingPoint$" + "^VTK::RenderingOpenGL2Cxx-TestValuePassFloatingPoint2$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2D$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionXCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionYCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionYCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DIJK$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DMaterialIJK$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVector$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVectorAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVectorAxisReflectionYCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary3DContour$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary3DContourDecomposePolyhedra$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary3DContourImplicit$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2D$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DBiMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DFullMaterialBits$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DMaterialBits$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisClipBox$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionXCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DCellCenters$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DCellCentersMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DClip$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DContour$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DContourMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DDualContour$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DDualContourMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutterDual$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutterDualMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernarySphereMaterial$" + "^VTK::RenderingCoreCxx-RGrid$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperPartialFieldData$" + "^VTK::RenderingCoreCxx-TestEdgeFlags$" + "^VTK::RenderingCoreCxx-TestGlyph3DMapperOrientationArray$" + "^VTK::RenderingCoreCxx-TestGlyph3DMapperQuaternionArray$" + "^VTK::RenderingCoreCxx-TestPolyDataMapperNormals$" + "^VTK::RenderingCoreCxx-TestRenderLinesAsTubes$" + "^VTK::FiltersSourcesCxx-TestRandomHyperTreeGridSource$" + "^VTK::AcceleratorsVTKmFiltersCxx-TestVTKMPolyDataNormals$" + "^VTK::FiltersGeneralCxx-TestYoungsMaterialInterface$" + "^VTK::FiltersGeometryCxx-TestLinearToQuadraticCellsFilter$" + "^VTK::CommonDataModelCxx-TestKdTreeRepresentation$" + ) + fi + + if use video_cards_zink; then + local -x MESA_LOADER_DRIVER_OVERRIDE="zink" + else + REALLY_BAD_TESTS+=( + # these fail when run using OpenGL4.5, e.g. llvmpipe + # (Failed) + "^VTK::FiltersGeneralCxx-TestLoopBooleanPolyDataFilter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGrid3DIntercepts$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGrid3DInterface$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2D$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisClipBox$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisClipEllipse$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisClipPlanes$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionXCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionYCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DDepthLimiter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DDepthLimiterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThresholdDeep$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThresholdImplicit$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThresholdMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThresholdMaterialDeep$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThresholdMaterialImplicit$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVectorAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVectorAxisReflectionYCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary3DGeometry$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2D$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DBiMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisClipCylinder$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisClipPlanes$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisCut$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisCutMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionXCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionXCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionYZCenter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DAxisReflectionYZCenterMaterial$" + "^VTK::ViewsInfovisCxx-TestIcicleView$" + "^VTK::ViewsInfovisCxx-TestInteractorStyleTreeMapHover$" + "^VTK::ViewsInfovisCxx-TestNetworkViews$" + "^VTK::ViewsInfovisCxx-TestRenderView$" + "^VTK::ViewsInfovisCxx-TestTreeMapView$" + "^VTK::ViewsInfovisCxx-TestTreeRingView$" + ) + + BAD_TESTS+=( + "^VTK::FiltersAMRCxx-TestAMRSliceFilterCellData$" + "^VTK::FiltersCoreCxx-Test3DLinearGridPlaneCutterCellData$" + "^VTK::FiltersCoreCxx-TestPolyDataTangents$" + "^VTK::FiltersExtractionCxx-TestExtraction$" + "^VTK::FiltersExtractionCxx-TestExtractionExpression$" + "^VTK::FiltersGeneralCxx-TestClipClosedSurface1$" + "^VTK::FiltersGeneralCxx-TestClipClosedSurface2$" + "^VTK::FiltersGeneralCxx-TestDateToNumeric$" + "^VTK::FiltersGeneralCxx-TestYoungsMaterialInterface$" + "^VTK::FiltersGeometryCxx-TestDataSetRegionSurfaceFilter$" + "^VTK::FiltersHybridCxx-TemporalStatistics$" + "^VTK::FiltersHybridCxx-TestDepthSortPolyData$" + "^VTK::FiltersHybridCxx-TestHyperTreeGridBinary2DAdaptiveDataSetSurfaceFilter$" + "^VTK::FiltersHybridCxx-TestHyperTreeGridBinary2DAdaptiveDataSetSurfaceFilterMaterial$" + "^VTK::FiltersHybridCxx-TestHyperTreeGridTernary3DAdaptiveDataSetSurfaceFilter$" + "^VTK::FiltersHybridCxx-TestHyperTreeGridTernary3DAdaptiveDataSetSurfaceFilterMaterial$" + "^VTK::FiltersHybridCxx-TestHyperTreeGridTernary3DToUnstructuredAdaptiveDataSetSurfaceFilter$" + "^VTK::FiltersHybridCxx-TestTemporalFractal$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGrid2DInterfaceShift$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DAxisReflectionYCenterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DCellCenters$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DCellCentersMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DContour$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DContourMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DIJK$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DInterfaceMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DMaterialIJK$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DThreshold$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinary2DVector$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinaryClipPlanes$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinaryEllipseMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridBinaryHyperbolicParaboloidMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DFullMaterialBits$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary2DMaterialBits$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DGeometry$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DGeometryMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DGeometryMaterialBits$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutter$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DPlaneCutterMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThreshold$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThresholdDeep$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThresholdImplicit$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThresholdMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThresholdMaterialDeep$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DThresholdMaterialImplicit$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DUnstructured$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernary3DUnstructuredMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernaryHyperbola$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernarySphereMaterial$" + "^VTK::FiltersHyperTreeCxx-TestHyperTreeGridTernarySphereMaterialReflections$" + "^VTK::FiltersModelingCxx-TestCollisionDetectionAllContacts$" + "^VTK::FiltersModelingCxx-TestCollisionDetectionHalfContacts$" + "^VTK::FiltersModelingCxx-TestLinearCellExtrusion$" + "^VTK::FiltersModelingCxx-TestNamedColorsIntegration$" + "^VTK::IOChemistryCxx-TestVASPTessellationReader$" + "^VTK::IOGeometryCxx-TestOpenFOAMReaderFaceZone$" + "^VTK::IOIOSSCxx-TestIOSSExodusParallelWriter$" + "^VTK::IOOCCTCxx-TestOCCTReader$" + "^VTK::IOXMLCxx-TestXMLHyperTreeGridIOInterface$" + "^VTK::IOXMLCxx-TestXMLPieceDistribution$" + "^VTK::InfovisLayoutCxx-TestCirclePackLayoutStrategy$" + "^VTK::InfovisLayoutCxx-TestTreeMapLayoutStrategy$" + "^VTK::InteractionWidgetsCxx-TestButtonWidgetMultipleViewports$" + "^VTK::InteractionWidgetsCxx-TestDisplaySizedImplicitPlaneWidget$" + "^VTK::InteractionWidgetsCxx-TestHandleWidget$" + "^VTK::InteractionWidgetsCxx-TestImplicitPlaneWidget$" + "^VTK::InteractionWidgetsCxx-TestImplicitPlaneWidget2$" + "^VTK::InteractionWidgetsCxx-TestImplicitPlaneWidget2LockNormalToCamera$" + "^VTK::InteractionWidgetsCxx-TestImplicitPlaneWidget2b$" + "^VTK::RenderingAnnotationCxx-TestScalarBarAboveBelow$" + "^VTK::RenderingCoreCxx-TestColorByCellDataStringArray$" + "^VTK::RenderingCoreCxx-TestColorByStringArrayDefaultLookupTable$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperOverrideLUT$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperOverrideScalarArray$" + "^VTK::RenderingCoreCxx-TestCompositePolyDataMapperPartialFieldData$" + "^VTK::RenderingCoreCxx-TestMixedGeometryCellScalars$" + "^VTK::RenderingCoreCxx-TestTilingCxx$" + ) + fi + + if use vtkm && use cuda; then + REALLY_BAD_TESTS+=( + # (Subprocess aborted) + "^VTK::AcceleratorsVTKmFiltersCxx-TestVTKMAbort$" + "^VTK::AcceleratorsVTKmFiltersCxx-TestVTKMClip$" + "^VTK::AcceleratorsVTKmFiltersCxx-TestVTKMClipWithImplicitFunction$" + "^VTK::AcceleratorsVTKmFiltersPython-TestVTKMSlice$" + + # cuda-13? + "^VTK::AcceleratorsVTKmFiltersCxx-TestVTKMSlice$" + ) + fi + + if use rendering && use python && has_version '>=dev-python/matplotlib-3.11'; then + REALLY_BAD_TESTS+=( + "^VTK::RenderingMatplotlibCxx-TestContextMathTextImage$" + "^VTK::RenderingMatplotlibCxx-TestRenderString$" + "^VTK::RenderingMatplotlibCxx-TestStringToPath$" + "^VTK::RenderingMatplotlibCxx-TestScalarBarCombinatorics$" + "^VTK::RenderingMatplotlibPython-TestRenderString$" + "^VTK::RenderingMatplotlibPython-TestStringToPath$" + ) + + if use truetype; then + REALLY_BAD_TESTS+=( + "^VTK::RenderingFreeTypeCxx-TestMathTextFonts$" + "^VTK::RenderingFreeTypeCxx-TestMathTextFreeTypeTextRenderer$" + "^VTK::RenderingFreeTypeCxx-TestFreeTypeTextMapper$" + "^VTK::RenderingFreeTypeCxx-TestFreeTypeTextMapperWithColumns$" + "^VTK::RenderingFreeTypeCxx-TestFontDPIScaling$" + ) + fi + fi + + RANDOM_FAIL_TESTS=( + # (Failed) + "VTK::FiltersVerdictCxx-TestCellQuality$" + + # (Subprocess aborted) + "^VTK::RenderingLICOpenGL2Cxx-SurfaceLICCurvedContrastEnhancedColorMappedSmallGrainMask$" + "^VTK::RenderingLICOpenGL2Cxx-SurfaceLICPlanarContrastEnhanced$" + ) + + CMAKE_SKIP_TESTS+=( + "${REALLY_BAD_TESTS[@]}" + "${BAD_TESTS[@]}" + "${RANDOM_FAIL_TESTS[@]}" + ) + fi + + CMAKE_SKIP_TESTS+=( + # requires VTK_USE_MICROSOFT_MEDIA_FOUNDATION + "^VTK::IOMovieCxx-Test" # Skipped + ) + + if use openmp; then + CMAKE_SKIP_TESTS+=( + "^VTK::CommonCoreCxx-TestSMP$" + ) + fi + + # TODO Why? + local -x CC="$(tc-getCC)" + local -x CXX="$(tc-getCXX)" + + myctestargs=( + --test-timeout 300 + --repeat until-pass:15 + --output-on-failure + ) + + local -x VTK_DEFAULT_OPENGL_WINDOW + if use egl; then + VTK_DEFAULT_OPENGL_WINDOW="vtkEGLRenderWindow" + # elif use osmesa; then + # VTK_DEFAULT_OPENGL_WINDOW="vtkOSOpenGLRenderWindow" + else + VTK_DEFAULT_OPENGL_WINDOW="vtkXOpenGLRenderWindow" + fi + + if use egl; then + # freedesktop specifications mandate that the definition + # of XDG_SESSION_TYPE should be respected + # local -x XDG_SESSION_TYPE="wayland" + # local -x GDK_BACKEND="wayland" + # local -x QT_QPA_PLATFORM="wayland-egl" + # local -x MOZ_ENABLE_WAYLAND=1 + + xdg_environment_reset + + local -x WAYLAND_DISPLAY="wayland-${P}" + local westonargs=( + --backend="headless-backend.so" + --socket="${WAYLAND_DISPLAY}" + --idle-time="0" + --xwayland + --width="1280" + --height="1024" + --refresh-rate="144000" + ) + weston "${westonargs[@]}" & # MHz + local compositor=$! + + eqawarn "running at ${compositor}" + # elif use qt6; then + # local -x QT_QPA_PLATFORM="offscreen" + fi + + local -x MESA_SHADER_CACHE_DISABLE=true + + eqawarn "MESA_LOADER_DRIVER_OVERRIDE: ${MESA_LOADER_DRIVER_OVERRIDE}" + eqawarn "VTK_DEFAULT_OPENGL_WINDOW: ${VTK_DEFAULT_OPENGL_WINDOW}" + + # local -x WL=tinywl + if use egl; then + cmake_src_test + else + virtx \ + cmake_src_test + fi + + # unset CMAKE_SKIP_TESTS + # myctestargs=( -N ) + # cmake_src_test + + if use egl; then + eqawarn "killing ${compositor}" + kill "${compositor}" || die + fi + + eqawarn "MESA_LOADER_DRIVER_OVERRIDE: ${MESA_LOADER_DRIVER_OVERRIDE}" + eqawarn "VTK_DEFAULT_OPENGL_WINDOW: ${VTK_DEFAULT_OPENGL_WINDOW}" + + # die "the end" +} + +src_install() { + use web && webapp_src_preinst + + # Stop web page images from being compressed + if use doc; then + HTML_DOCS=( "${WORKDIR}/html/." ) + fi + + cmake_src_install + + use java && java-pkg_regjar "${ED}/usr/share/${PN}/${PN}.jar" + + # install examples + if use examples; then + einfo "Installing examples" + mv -v {E,e}xamples || die + dodoc -r examples + docompress -x "/usr/share/doc/${PF}/examples" + + einfo "Installing datafiles" + insinto "/usr/share/${PN}/data" + doins -r "${S}/.ExternalData" + fi + + use python && python_optimize + + use web && webapp_src_install +} + +# webapp.eclass exports these but we want it optional #534036 +pkg_postinst() { + use web && webapp_pkg_postinst + + if use examples; then + einfo "You can get more and updated examples at" + einfo "https://kitware.github.io/vtk-examples/site/" + fi +} + +pkg_prerm() { + use web && webapp_pkg_prerm +} + +pkg_info() { + # if [[ -v DISPLAY ]]; then + # for virtx + xdg_environment_reset + + if use video_cards_zink; then + local -x MESA_LOADER_DRIVER_OVERRIDE="zink" + fi + + vtk_add_sandbox + nonfatal virtx "/usr/bin/vtkProbeOpenGLVersion-$(ver_cut 1-2)" + # fi +} diff --git a/sci-mathematics/cgal/Manifest b/sci-mathematics/cgal/Manifest index 05d44b47ce07..d7c075889f43 100644 --- a/sci-mathematics/cgal/Manifest +++ b/sci-mathematics/cgal/Manifest @@ -7,4 +7,8 @@ DIST CGAL-6.0.1-doc_html.tar.xz 59971752 BLAKE2B 050f078d7c56b5a9044b319f35c9602 DIST CGAL-6.0.1.tar.xz 25659212 BLAKE2B 48a707b74f6fc823197e60ae9643001ff24efcb7adfcb325018ee54ce538ef5f356f19fb2e979c2b2cd5fb0945590d37abe3f41bae4a511c9c88e83edab03422 SHA512 f3dfd8f872d5ac016f6e2e1ae83a0c070fc352c1d97dd5012f774e708401a8ad7e78bc117a48dbc799aba49d6bd537470c35a52956d9484f877df72497cfc23d DIST CGAL-6.0.tar.xz 25979696 BLAKE2B dfc7785cc6398334b877a8839c2ea20e4540663f86230d54b45771519cf2ade31bb943e512714b72e5bc5af80978cfe9833332bbb1a75fa009de9d6caf6c8f89 SHA512 3c7aa6e5a014867cc2a2038c96ab7f62ab735d678efc580cc498fa27209cd338c4bba9524ea90d4dd88442e4df648791b83c465e7319ae5870f8c3c8827128e7 DIST CGAL-6.1-doc_html.tar.xz 65517356 BLAKE2B 19dd8660be8ab84373809559e808e577701f14f8c4ae359877ec73ae958f40a3c18f12512a5900ec6c4d446297bc4d0f2c7aacfe0f15f72e58e402ec2c343958 SHA512 6b9f3f0762ad9760a7f6d6a4480bb64e339aa0ba0593bd7bfb0af02f00d5c2b710bfb6dad48a6837e4e01f32a01ecd9557c09fc3a1d1937d0abd920417ba4afb +DIST CGAL-6.1.1-doc_html.tar.xz 65520064 BLAKE2B 05de9df026b7643375554a3d2b28e498071559555a3d4f2c74fe55151f89b3c746c7d76401795ac4694593e74e01d38ef1ed40997810423ec5cab46ef0ef4003 SHA512 223701d046ff41b3f4096e1fcb432404a18b49ec92f8a4a4bbc01d35a32318bc17caf45ddec9318feb2be602c5e00c172216dff8dc7d7d7b27321c740043b803 +DIST CGAL-6.1.1.tar.xz 26305296 BLAKE2B 4c96527dac7c1fd26d4a4de5df5bec3e2c4fcd0eae64edf5809e600a6623be1b2561354d7be2dfe44589dd37cba34f169d30d65fa78f42a1f296200a47477c2f SHA512 dc6ae82526697df986c755f0a2d4754b04810b8910bec794bed4f822cc2e15d6174e85649241295022acddca3cd10408e7b279b6da93e0506d44e7fc1e03b7c6 DIST CGAL-6.1.tar.xz 26293988 BLAKE2B 21a154e26b54c985edcee10d5401020b272e1ff4a477b4eeaf9cffec0043f4fb4973c30088804a20a5ff9c7d974c65c198d5a8e626fa33910b5ab6175df973be SHA512 8921dad4802bb276348a6fccb5a4e0e191f0f03bd9224eeaa8f5525eab87c4dc949741bb0cb11e4127a080090635ae2f243fa5904376488e5b7dd966e0c312a5 +DIST CGAL-6.2-doc_html.tar.xz 74966988 BLAKE2B 667d164b0286cab7dbea9005d5a39d4115556568d3b4d05f2cf6ae38664b10784d72c18edca9b4538c44da6e4996187127e0f67d708fef2df762454923ca135d SHA512 651eb366083aa05877d5e743a501cd07480d1d8ac4dc48343ab991522d1a2c1b475a4183fddb27809d7f8b2d97983d9e2f92ad1068765411c832d675861e282d +DIST CGAL-6.2.tar.xz 26596404 BLAKE2B 783d3adc86a369ec79a2b5acb4e421b1c64590929c4cc2e9de90e3ede6e926ac49723db0694778df66551cec05047aed356f598e436923b9a801b98670f0e56a SHA512 5f0a3e24d56250b1651fe9016d14da9dcc1af0dd1347b4daa0bf6ae8c512ab831ea66ce5655133497f9965071d2e200582b36ba29961ecb5cdc896b47a5d7e17 diff --git a/sci-mathematics/cgal/cgal-6.1.1.ebuild b/sci-mathematics/cgal/cgal-6.1.1.ebuild new file mode 100644 index 000000000000..8e78d90d04a0 --- /dev/null +++ b/sci-mathematics/cgal/cgal-6.1.1.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Modules provided by dev-cpp/eigen +CMAKE_REMOVE_MODULES_LIST=( FindEigen3 ) +inherit cmake cuda flag-o-matic multiprocessing + +DESCRIPTION="C++ library for geometric algorithms and data structures" +HOMEPAGE="https://www.cgal.org/" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/${PN^^}/${PN}.git" +else + SRC_URI=" + https://github.com/CGAL/cgal/releases/download/v${PV}/${P^^}.tar.xz + doc? ( + https://github.com/CGAL/cgal/releases/download/v${PV}/${P^^}-doc_html.tar.xz + ) + " + S="${WORKDIR}/${P^^}" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +fi + +LICENSE="LGPL-3 GPL-3 Boost-1.0" +SLOT="0/14" + +IUSE="doc test test-full" +RESTRICT="!test? ( test )" + +# Referenced in the cmake files. +RDEPEND=" + dev-cpp/eigen:= + dev-libs/boost:= + dev-libs/gmp:=[cxx] + dev-libs/mpfr:= + virtual/zlib:= +" +DEPEND="${RDEPEND} + test? ( + net-libs/libssh[server] + ) +" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + if use doc; then + rm -r "doc_html" || die + mv "${WORKDIR}/doc_html" "${S}/" || die + fi + + cmake_src_prepare +} + +src_configure() { + # Header only since 5.0 + + local mycmakeargs=( + -DCMAKE_POLICY_DEFAULT_CMP0167="NEW" + + -DCGAL_INSTALL_LIB_DIR="$(get_libdir)" + -DCGAL_INSTALL_CMAKE_DIR="$(get_libdir)/cmake/CGAL" + + # https://github.com/CGAL/cgal/wiki/Testing#using-ctest + -DCGAL_ENABLE_TESTING="$(usex test)" + + # Forcibly wipe to get rid of NDEBUG. see below + -DCMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE^^}="" + ) + + if use test; then + # include/CGAL/config.h:53:4: error: #error The test-suite needs no NDEBUG defined + filter-flags -DNDEBUG* + + # cmake/modules/display-third-party-libs-versions.cmake + # these need use flags eventually + local deps=( + VTK + ) + deps+=( + # Ceres + # GLPK + # # GMP + # ITK + # ITT + # LASLIB + # libpointmatcher + # METIS + # MPFI + # # MPFR + # OpenCV + # OpenGR + # OSQP + # SCIP + # SuiteSparse + # TBB + # # VTK + # # ZLIB + # # LEDA # unused + # # MKL + # # RS + # # RS3 + # SCIP + # # UMFPACK + # Eigen3 + Qt6 + # # ESBTL # unused + # # IPE # unused + # # LibSSH # unused + OpenMesh + ) + + if use test-full; then + # Optionally depends on sci-lib/vtk, which looks up a cuda compiler iff build with USE=cuda. + # We therefore need to set the correct CUDAHOSTCXX and setup the sandbox. + if has_version "sci-libs/vtk[cuda]" ; then + cuda_add_sandbox + addpredict "/dev/char/" + local -x CUDAHOSTCXX="$(cuda_gccdir)" + fi + else + deps+=( + # Threads + # Boost + ) + fi + + mycmakeargs+=( + -DCGAL_CTEST_DISPLAY_MEM_AND_TIME="yes" + # exits some tests early + -DCGAL_TEST_SUITE="yes" + -DCGAL_TEST_DRAW_FUNCTIONS="yes" + -DCGAL_DISABLE_GMP="no" + # -DCGAL_WITH_benchmark="$(usex test "$(usex benchmark)")" # wired up but not present + -DCGAL_WITH_demos="$(usex test "$(usex test-full)")" + -DCGAL_WITH_examples="$(usex test "$(usex test-full)")" + ) + + if [[ -n "${deps[@]}" ]]; then + mycmakeargs+=( + # 964750 + # this does not work as demos and examples are separate cmake calls that ignore mycmakeargs + $(printf -- "-DCMAKE_DISABLE_FIND_PACKAGE_%s=yes " "${deps[@]}") + ) + fi + fi + + cmake_src_configure +} + +src_compile() { + if use test; then + local targets=( + ALL_CGAL_TARGETS + ) + if use test-full; then + targets+=( + demos + examples + ) + fi + + cmake_src_compile "${targets[@]}" + fi +} + +src_test() { + # tests have split compilation & execution stages that do not depend on each other, but break when run out of order + # We pass CMAKE_BUILD_PARALLEL_LEVEL to run compilation tests in parallel + local -x CMAKE_BUILD_PARALLEL_LEVEL="$(get_makeopts_jobs)" + einfo "using CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}" + + # We pass CTEST_PARALLEL_LEVEL to run execution tests in parallel + local -x CTEST_PARALLEL_LEVEL="$(get_makeopts_jobs)" + einfo "using CTEST_PARALLEL_LEVEL=${CTEST_PARALLEL_LEVEL}" + + local -x QT_QPA_PLATFORM="offscreen" + + local CMAKE_SKIP_TESTS=( + region_growing_planes_on_point_set_3 + mesh_3D_image_with_image_initialization + ) + + cmake_src_test -j1 +} + +src_install() { + if use doc; then + local HTML_DOCS=( + "doc_html/." + ) + fi + + cmake_src_install + + # if use demos; then + # dodoc -r demo + # fi + + # if use examples; then + # dodoc -r examples + # fi +} diff --git a/sci-mathematics/cgal/cgal-6.2.ebuild b/sci-mathematics/cgal/cgal-6.2.ebuild new file mode 100644 index 000000000000..a54f36906bc4 --- /dev/null +++ b/sci-mathematics/cgal/cgal-6.2.ebuild @@ -0,0 +1,187 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_BUILD_TYPE="Debug" + +# Modules provided by dev-cpp/eigen +CMAKE_REMOVE_MODULES_LIST=( FindEigen3 ) +inherit cmake cuda flag-o-matic multiprocessing + +DESCRIPTION="C++ library for geometric algorithms and data structures" +HOMEPAGE="https://www.cgal.org/" + +SRC_URI=" + https://github.com/CGAL/cgal/releases/download/v${PV}/${P^^}.tar.xz + doc? ( + https://github.com/CGAL/cgal/releases/download/v${PV}/${P^^}-doc_html.tar.xz + ) +" +S="${WORKDIR}/${P^^}" + +LICENSE="LGPL-3 GPL-3 Boost-1.0" +SLOT="0/14" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +IUSE="demos doc examples test" +RESTRICT="!test? ( test )" + +# This seems wrong. +RDEPEND=" + dev-cpp/eigen:= + dev-libs/boost:= + dev-libs/gmp:=[cxx] + dev-libs/mpfr:= + virtual/zlib:= + x11-libs/libX11:= + virtual/glu:= + virtual/opengl:= +" +DEPEND="${RDEPEND} + test? ( + net-libs/libssh[server] + demos? ( + dev-qt/qtbase:6[gui,opengl,widgets] + ) + examples? ( + amd64? ( + media-gfx/openmesh + ) + dev-qt/qtbase:6[gui,opengl,widgets] + ) + ) +" +BDEPEND=" + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/${PN}-4.11.1-fix-buildsystem.patch" +) + +pkg_pretend() { + if ! use test && { use demos || use examples; }; then + ewarn "The \"demos\" and \"examples\" useflag require USE=\"test\"" + fi +} + +src_prepare() { + if use doc; then + rm -r "doc_html" || die + mv "${WORKDIR}/doc_html" "${S}/" || die + fi + + if use examples; then + rm -Rf \ + examples/BGL_polyhedron_3 \ + examples/BGL_surface_mesh \ + examples/Isosurfacing_3 \ + examples/Mesh_3 \ + examples/Polygon_mesh_processing \ + examples/Surface_mesh_simplification \ + || die + fi + + cmake_src_prepare +} + +src_compile() { + cmake_src_compile demos + cmake_src_compile examples + cmake_src_compile ALL_CGAL_TARGETS +} + +src_configure() { + # Header only + filter-flags -DNDEBUG* + + local deps=( + ESBTL + F2C + GLPK + IPE + ITT + LASLIB + LEDA + libpointmatcher + LibSSH + MKL + MPFI + # MPFR + OpenCV + OpenGR + OpenMesh + OSQP + RS + RS3 + SCIP + TBB + UMFPACK + VTK + ) + + local mycmakeargs=( + -DCMAKE_POLICY_DEFAULT_CMP0167="NEW" + # 964750 + "$(printf -- "-DCMAKE_DISABLE_FIND_PACKAGE_%s=yes " "${deps[@]}")" + + -DCGAL_INSTALL_LIB_DIR="$(get_libdir)" + -DCGAL_INSTALL_CMAKE_DIR="$(get_libdir)/cmake/CGAL" + + # https://github.com/CGAL/cgal/wiki/Testing#using-ctest + -DCGAL_ENABLE_TESTING="$(usex test)" + -DCGAL_CTEST_DISPLAY_MEM_AND_TIME="yes" + # exits some tests early + -DCGAL_TEST_SUITE="yes" + -DCGAL_TEST_DRAW_FUNCTIONS="yes" + -DCGAL_WITH_GMPXX="yes" + + # -DCGAL_WITH_benchmark="$(usex test "$(usex benchmark)")" # wired up but not present + -DCGAL_WITH_demos="$(usex test "$(usex demos)")" + -DCGAL_WITH_examples="$(usex test "$(usex examples)")" + ) + + # Optionally depends on sci-lib/vtk, which looks up a cuda compiler iff build with USE=cuda. + # We therefore need to set the correct CUDAHOSTCXX and setup the sandbox. + if use test && { use demos || use examples; }; then + if has_version "sci-libs/vtk[cuda]" ; then + cuda_add_sandbox -w + addpredict "/dev/char/" + fi + fi + + cmake_src_configure +} + +src_test() { + # tests have split compilation & execution stages that do not depend on each other, but break when run out of order + # We pass CMAKE_BUILD_PARALLEL_LEVEL to run compilation tests in parallel + local -x CMAKE_BUILD_PARALLEL_LEVEL="$(get_makeopts_jobs)" + einfo "using CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}" + + # We pass CTEST_PARALLEL_LEVEL to run execution tests in parallel + local -x CTEST_PARALLEL_LEVEL="$(get_makeopts_jobs)" + einfo "using CTEST_PARALLEL_LEVEL=${CTEST_PARALLEL_LEVEL}" + + local -x QT_QPA_PLATFORM="offscreen" + cmake_src_test -j1 +} + +src_install() { + if use doc; then + local HTML_DOCS=( + "doc_html/." + ) + fi + + cmake_src_install + + if use demos; then + dodoc -r demos + fi + + if use examples; then + dodoc -r examples + fi +} diff --git a/sci-mathematics/cgal/cgal-9999.ebuild b/sci-mathematics/cgal/cgal-9999.ebuild new file mode 100644 index 000000000000..8f67037d87f7 --- /dev/null +++ b/sci-mathematics/cgal/cgal-9999.ebuild @@ -0,0 +1,238 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Modules provided by dev-cpp/eigen +CMAKE_REMOVE_MODULES_LIST=( FindEigen3 ) +inherit cmake cuda flag-o-matic multiprocessing + +DESCRIPTION="C++ library for geometric algorithms and data structures" +HOMEPAGE="https://www.cgal.org/" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/${PN^^}/${PN}.git" +else + SRC_URI=" + https://github.com/CGAL/cgal/releases/download/v${PV}/${P^^}.tar.xz + doc? ( + https://github.com/CGAL/cgal/releases/download/v${PV}/${P^^}-doc_html.tar.xz + ) + " + S="${WORKDIR}/${P^^}" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +fi + +LICENSE="LGPL-3 GPL-3 Boost-1.0" +SLOT="0/14" + +IUSE="demos doc examples test" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + test? ( || ( + demos examples + ) ) +" + +# Referenced in the cmake files. +RDEPEND=" + dev-cpp/eigen:= + dev-libs/boost:= + dev-libs/gmp:=[cxx] + dev-libs/mpfr:= + virtual/zlib:= +" +DEPEND="${RDEPEND} + test? ( + net-libs/libssh[server] + demos? ( + dev-qt/qtbase:6[gui,opengl,widgets] + ) + examples? ( + amd64? ( + media-gfx/openmesh + ) + dev-qt/qtbase:6[gui,opengl,widgets] + ) + ) +" +BDEPEND=" + virtual/pkgconfig +" + +pkg_pretend() { + if ! use test && { use demos || use examples; }; then + ewarn "The \"demos\" and \"examples\" useflag require USE=\"test\"" + fi +} + +src_prepare() { + if use doc; then + rm -r "doc_html" || die + mv "${WORKDIR}/doc_html" "${S}/" || die + fi + + cmake_src_prepare +} + +src_configure() { + # Header only since 5.0 + + local mycmakeargs=( + -DCMAKE_POLICY_DEFAULT_CMP0167="NEW" + + -DCGAL_INSTALL_LIB_DIR="$(get_libdir)" + -DCGAL_INSTALL_CMAKE_DIR="$(get_libdir)/cmake/CGAL" + + # https://github.com/CGAL/cgal/wiki/Testing#using-ctest + -DCGAL_ENABLE_TESTING="$(usex test)" + + # Forcibly wipe to get rid of NDEBUG. see below + -DCMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE^^}="" + ) + + if use test; then + # include/CGAL/config.h:53:4: error: #error The test-suite needs no NDEBUG defined + filter-flags -DNDEBUG* + + # cmake/modules/display-third-party-libs-versions.cmake + # these need use flags eventually + local deps=( + Ceres + GLPK + # GMP + ITK + ITT + LASLIB + libpointmatcher + METIS + MPFI + # MPFR + OpenCV + OpenGR + OSQP + SCIP + SuiteSparse + TBB + VTK + # ZLIB + ) + + if use demos || use examples; then + # Optionally depends on sci-lib/vtk, which looks up a cuda compiler iff build with USE=cuda. + # We therefore need to set the correct CUDAHOSTCXX and setup the sandbox. + if has_version "sci-libs/vtk[cuda]" ; then + cuda_add_sandbox + addpredict "/dev/char/" + fi + + deps+=( + LEDA + # MKL + # RS + # RS3 + SCIP + # UMFPACK + ) + fi + + if ! use demos; then + deps+=( + # Eigen3 + ) + fi + + if ! use demos && ! use examples; then + deps+=( + # Boost + # Threads + Qt6 + ) + fi + + if use examples; then + deps+=( + ESBTL + ) + else + deps+=( + IPE + LibSSH + OpenMesh + ) + fi + + mycmakeargs+=( + -DCGAL_CTEST_DISPLAY_MEM_AND_TIME="yes" + # exits some tests early + -DCGAL_TEST_SUITE="yes" + -DCGAL_TEST_DRAW_FUNCTIONS="yes" + -DCGAL_DISABLE_GMP="no" + # -DCGAL_WITH_benchmark="$(usex test "$(usex benchmark)")" # wired up but not present + -DCGAL_WITH_demos="$(usex test "$(usex demos)")" + -DCGAL_WITH_examples="$(usex test "$(usex examples)")" + ) + if [[ -n "${deps[@]}" ]]; then + mycmakeargs+=( + # 964750 + # this does not work as demos and examples are separate cmake calls that ignore mycmakeargs + $(printf -- "-DCMAKE_DISABLE_FIND_PACKAGE_%s=yes " "${deps[@]}") + ) + fi + fi + + cmake_src_configure +} + +src_compile() { + if use test; then + if use demos; then + cmake_src_compile demos + fi + + if use examples; then + cmake_src_compile examples + fi + + cmake_src_compile ALL_CGAL_TARGETS + fi +} + +src_test() { + # tests have split compilation & execution stages that do not depend on each other, but break when run out of order + # We pass CMAKE_BUILD_PARALLEL_LEVEL to run compilation tests in parallel + local -x CMAKE_BUILD_PARALLEL_LEVEL="$(get_makeopts_jobs)" + einfo "using CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}" + + # We pass CTEST_PARALLEL_LEVEL to run execution tests in parallel + local -x CTEST_PARALLEL_LEVEL="$(get_makeopts_jobs)" + einfo "using CTEST_PARALLEL_LEVEL=${CTEST_PARALLEL_LEVEL}" + + local -x QT_QPA_PLATFORM="offscreen" + + local CMAKE_SKIP_TESTS=( + region_growing_planes_on_point_set_3 + ) + + cmake_src_test -j1 +} + +src_install() { + if use doc; then + local HTML_DOCS=( + "doc_html/." + ) + fi + + cmake_src_install + + if use demos; then + dodoc -r demo + fi + + if use examples; then + dodoc -r examples + fi +} diff --git a/sci-mathematics/cgal/metadata.xml b/sci-mathematics/cgal/metadata.xml index b0571510639e..3c0baafee110 100644 --- a/sci-mathematics/cgal/metadata.xml +++ b/sci-mathematics/cgal/metadata.xml @@ -21,4 +21,10 @@ <upstream> <remote-id type="github">CGAL/cgal</remote-id> </upstream> + <use> + <!--<flag name="benchmark">Build benchmarks during test (requires USE=test)</flag>--> + <flag name="demos">Build demos during test (requires USE=test)</flag> + <flag name="examples">Build examples during test (requires USE=test)</flag> + <flag name="test-full">Run demos and examples when testing</flag> + </use> </pkgmetadata> diff --git a/sci-mathematics/clipper2/Manifest b/sci-mathematics/clipper2/Manifest index 9da1aa46fe7c..bf10f26bfbd4 100644 --- a/sci-mathematics/clipper2/Manifest +++ b/sci-mathematics/clipper2/Manifest @@ -1,2 +1,3 @@ DIST Clipper2_1.5.3.tar.gz 624450 BLAKE2B f1cc293f6b1dc2d4f5409c29a8b70daf70af9e4e7b58af9b55faec4a1481bd9f5ec89779bfa4fb728326cbf8a3b0770f0bafc34a52e380271d552afee1157379 SHA512 a56f1bf28a9baf8cbcf42d63e4c73f8b4a01eac9edfb59dafb752f67af7873bb46a256fc26f7bb839ee7051db69efb9a1c21c54b358cf55c84c4b137f7f2d804 DIST Clipper2_1.5.4.tar.gz 625047 BLAKE2B c3e0b343429c5df28509f4bc92c25d31983a02fe6585f16f398750502ecf7ba5c7b04d1b31d8d44380705445570a558d94aca20b2a218568ca5cd2840d02243d SHA512 39153f35630ddc455ad4955a8b9b35f05bf3fad2a33c6e7232300b674a5172794a57c7bd18f96dd0a90d4607a44ecb32c92b0cacc7060d840d568032efaddf19 +DIST Clipper2_2.0.1.tar.gz 715527 BLAKE2B 1178409f05038a4e136928f241301f55977b3038df545a60d37f327ea55eb3594459ad0eb860346c5d63b8a227996fa90bb87e0cb129159604664c7425b8772e SHA512 ce753ae3752b7516a9e0cb23c9788d9533c204819d5451ee50cf3b69a06e24165fa9f5270781764c036ad597eef83cf80532a5bebce5c96f5230179dc3ed499a diff --git a/sci-mathematics/clipper2/clipper2-1.5.4.ebuild b/sci-mathematics/clipper2/clipper2-1.5.3-r1.ebuild index 2cb0a1762525..2016996d5a42 100644 --- a/sci-mathematics/clipper2/clipper2-1.5.4.ebuild +++ b/sci-mathematics/clipper2/clipper2-1.5.3-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -14,7 +14,8 @@ SRC_URI="https://github.com/AngusJohnson/Clipper2/archive/refs/tags/${MY_P}.tar. S="${WORKDIR}/${MY_PN}-${MY_P}/CPP" LICENSE="Boost-1.0" -SLOT="0" +# SONAME +SLOT="0/$(ver_cut 1)" KEYWORDS="amd64 ~arm64 ~x86" IUSE="test" diff --git a/sci-mathematics/clipper2/clipper2-1.5.3.ebuild b/sci-mathematics/clipper2/clipper2-1.5.4-r1.ebuild index 2cb0a1762525..2016996d5a42 100644 --- a/sci-mathematics/clipper2/clipper2-1.5.3.ebuild +++ b/sci-mathematics/clipper2/clipper2-1.5.4-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -14,7 +14,8 @@ SRC_URI="https://github.com/AngusJohnson/Clipper2/archive/refs/tags/${MY_P}.tar. S="${WORKDIR}/${MY_PN}-${MY_P}/CPP" LICENSE="Boost-1.0" -SLOT="0" +# SONAME +SLOT="0/$(ver_cut 1)" KEYWORDS="amd64 ~arm64 ~x86" IUSE="test" diff --git a/sci-mathematics/clipper2/clipper2-2.0.1.ebuild b/sci-mathematics/clipper2/clipper2-2.0.1.ebuild new file mode 100644 index 000000000000..ef5f4e931655 --- /dev/null +++ b/sci-mathematics/clipper2/clipper2-2.0.1.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN="Clipper2" +MY_P=${MY_PN}_${PV} + +inherit cmake flag-o-matic + +DESCRIPTION="Polygon Clipping and Offsetting" +HOMEPAGE="https://www.angusj.com/clipper2/Docs/Overview.htm" +SRC_URI="https://github.com/AngusJohnson/Clipper2/archive/refs/tags/${MY_P}.tar.gz" +S="${WORKDIR}/${MY_PN}-${MY_P}/CPP" + +LICENSE="Boost-1.0" +# SONAME +SLOT="0/$(ver_cut 1)" +KEYWORDS="~amd64 ~arm64 ~x86" + +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND=" + test? ( dev-cpp/gtest ) +" + +src_prepare() { + cmake_src_prepare + + #943720 + sed -e 's/ -Werror//g' -i CMakeLists.txt || die +} + +src_configure() { + append-flags -fno-strict-aliasing + filter-lto + + local mycmakeargs=( + -DCLIPPER2_UTILS="no" + -DCLIPPER2_EXAMPLES="no" + -DCLIPPER2_TESTS="$(usex test)" + -DCLIPPER2_USINGZ="no" # manifold src/third_party/CMakeLists.txt + + -DUSE_EXTERNAL_GTEST="yes" + ) + cmake_src_configure +} diff --git a/sci-mathematics/manifold/Manifest b/sci-mathematics/manifold/Manifest index 23baa8f0a230..9a7670d88084 100644 --- a/sci-mathematics/manifold/Manifest +++ b/sci-mathematics/manifold/Manifest @@ -1,2 +1,3 @@ DIST manifold-3.1.0.tar.gz 29612205 BLAKE2B 66f3dfed7e5e3a12720ac38860d396090e6a7cd6a435c53cd6afdb0b64048d9e2016cfaf54fe018a0bdd9663da486267278ded329bfdeb0ff0f15ececb3b3dd1 SHA512 259d7233a4d6f2ac6dcdf30d04bd82dd454da914c2aa77ebd0c76c2245b8e802beec62b52b3592c290adede4f57a0ee3b4abd82daec28012542fb4e0240dd1da DIST manifold-3.2.1.tar.gz 29615413 BLAKE2B 0c5d9029674a810e8db278521dd5b2f25ace6279ee9336d4df42bca5e672133c998619c5cb7190328c0f6ac4ce95ec3ff474e6abb36a27d36df3e96a11c0911e SHA512 f2b69ac4453829896db4ac89dd54654cc7d2b36dd328d880b392ed8d40a2e2c7420d02ef06f6ae840a423c2a17bae0eb022d4444a39af9e08111bf11f9563092 +DIST manifold-3.5.2.tar.gz 30975253 BLAKE2B 2d2ef3418d90905a23ac68f47cb5059800680b49279b5222a539a38e30d3dfa87d6fbda70071d9cac89a82d4740b939da3d70baa9aee7c95b84feb3ac02257af SHA512 986ab180a8a94f1c2b7cd9952eebe1241564b869c589792778674f8f56b7a6cb799b43f06ca16c0ea4fcaa517034d2a2cd240e0e9f9c2dfb5b5cb4ed73b303a8 diff --git a/sci-mathematics/manifold/manifold-3.5.2.ebuild b/sci-mathematics/manifold/manifold-3.5.2.ebuild new file mode 100644 index 000000000000..9f20e0973882 --- /dev/null +++ b/sci-mathematics/manifold/manifold-3.5.2.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +inherit cmake python-single-r1 + +DESCRIPTION="Geometry library for topological robustness" +HOMEPAGE="https://github.com/elalish/manifold" + +if [[ ${PV} == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/elalish/manifold.git" +else + if [[ ${PV} = *pre* ]] ; then + COMMIT="e7e0780114881dcf6e5ad934323f2595966865f9" + SRC_URI="https://github.com/elalish/manifold/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-${COMMIT}" + else + SRC_URI="https://github.com/elalish/manifold/releases/download/v${PV}/${P}.tar.gz" + fi + + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +LICENSE="Apache-2.0" +# SONAME +SLOT="0/3" + +IUSE="assimp debug python +tbb test" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RESTRICT="!test? ( test )" + +RDEPEND=" + sci-mathematics/clipper2:= + assimp? ( media-libs/assimp:= ) + tbb? ( dev-cpp/tbb:= ) + python? ( ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + ') + ) +" +DEPEND=" + python? ( + $(python_gen_cond_dep ' + >=dev-python/nanobind-2.1.0[${PYTHON_USEDEP}] + ') + ) + test? ( dev-cpp/gtest ) + ${RDEPEND} +" + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_configure() { + local mycmakeargs=( + -DMANIFOLD_CROSS_SECTION="yes" + -DMANIFOLD_CROSS_SECTION_BACKEND="clipper2" # boolean2 + -DMANIFOLD_DEBUG="$(usex debug)" + -DMANIFOLD_DOWNLOADS="no" + -DASSIMP_ENABLE="$(usex assimp)" + -DMANIFOLD_JSBIND="no" + -DMANIFOLD_PAR="$(usex tbb ON OFF)" + -DMANIFOLD_STRICT="no" # adds -Werror + -DMANIFOLD_PYBIND="$(usex python)" + -DMANIFOLD_TEST="$(usex test)" + ) + + cmake_src_configure +} + +src_test() { + if use x86; then + local -x GTEST_FILTER="-Properties.ToleranceSphere:Boolean.AlmostCoplanar:Smooth.RefineQuads:Smooth.ToLength:Smooth.Torus" + fi + + cmake_src_test +} diff --git a/sci-mathematics/manifold/manifold-9999.ebuild b/sci-mathematics/manifold/manifold-9999.ebuild index ede68f3d9a40..9f20e0973882 100644 --- a/sci-mathematics/manifold/manifold-9999.ebuild +++ b/sci-mathematics/manifold/manifold-9999.ebuild @@ -34,7 +34,7 @@ REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" RESTRICT="!test? ( test )" RDEPEND=" - sci-mathematics/clipper2 + sci-mathematics/clipper2:= assimp? ( media-libs/assimp:= ) tbb? ( dev-cpp/tbb:= ) python? ( ${PYTHON_DEPS} @@ -60,9 +60,10 @@ pkg_setup() { src_configure() { local mycmakeargs=( -DMANIFOLD_CROSS_SECTION="yes" + -DMANIFOLD_CROSS_SECTION_BACKEND="clipper2" # boolean2 -DMANIFOLD_DEBUG="$(usex debug)" -DMANIFOLD_DOWNLOADS="no" - -DMANIFOLD_EXPORT="$(usex assimp)" + -DASSIMP_ENABLE="$(usex assimp)" -DMANIFOLD_JSBIND="no" -DMANIFOLD_PAR="$(usex tbb ON OFF)" -DMANIFOLD_STRICT="no" # adds -Werror diff --git a/sci-mathematics/mathmod/files/mathmod-13.0-fix_comparison.patch b/sci-mathematics/mathmod/files/mathmod-13.0-fix_comparison.patch new file mode 100644 index 000000000000..53a74cef6f05 --- /dev/null +++ b/sci-mathematics/mathmod/files/mathmod-13.0-fix_comparison.patch @@ -0,0 +1,24 @@ +backport https://github.com/parisolab/mathmod/commit/ddf9239f10fb0e07603297c06a23b7adeae8e323.patch +see also https://github.com/parisolab/mathmod/issues/303 +fix comparison for clang +--- a/ui_modules/mathmod.cpp ++++ b/ui_modules/mathmod.cpp +@@ -1665,7 +1665,7 @@ void MathMod::CopyData(ObjectProperties *scene) + { + glBindBuffer(GL_ARRAY_BUFFER, vbo[0]); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbo[1]); +- if(scene->VertxNumber>previousVertxNumber>0) ++ if((scene->VertxNumber>previousVertxNumber) && (scene->VertxNumber>0)) + { + glBufferData(GL_ARRAY_BUFFER, sizeof(GL_FLOAT)*10*(scene->VertxNumber+(12+60+36)), scene->ArrayNorVer_localPt, GL_STATIC_DRAW); + previousVertxNumber = scene->VertxNumber; +@@ -1676,7 +1676,8 @@ void MathMod::CopyData(ObjectProperties *scene) + previousVertxNumber = scene->VertxNumber; + } + +- if((scene->PolyNumber + scene->NbPolygnNbVertexPtMinSize)>previousPolyNumberNbPolygnNbVertexPtMin) ++ if(((scene->PolyNumber + scene->NbPolygnNbVertexPtMinSize)>previousPolyNumberNbPolygnNbVertexPtMin) && ++ ((scene->PolyNumber + scene->NbPolygnNbVertexPtMinSize)>0)) + { + glBufferData(GL_ELEMENT_ARRAY_BUFFER,sizeof(GLuint)*(scene->PolyNumber + scene->NbPolygnNbVertexPtMinSize), scene->PolyIndices_localPt, GL_STATIC_DRAW); + previousPolyNumberNbPolygnNbVertexPtMin = (scene->PolyNumber + scene->NbPolygnNbVertexPtMinSize); diff --git a/sci-mathematics/mathmod/mathmod-13.0-r1.ebuild b/sci-mathematics/mathmod/mathmod-13.0-r1.ebuild index b7ab90667be8..c09e64d86336 100644 --- a/sci-mathematics/mathmod/mathmod-13.0-r1.ebuild +++ b/sci-mathematics/mathmod/mathmod-13.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -22,9 +22,10 @@ RDEPEND=" DEPEND="${RDEPEND}" PATCHES=( - # both merged + # all in master "${FILESDIR}"/${PN}-13.0-missing_include.patch "${FILESDIR}"/${PN}-13.0-fix_cxx20.patch + "${FILESDIR}"/${PN}-13.0-fix_comparison.patch ) src_configure() { diff --git a/sec-keys/openpgp-keys-libvirt/openpgp-keys-libvirt-20260831.ebuild b/sec-keys/openpgp-keys-libvirt/openpgp-keys-libvirt-20260831.ebuild index c9450d4f6156..9dd76f2eae76 100644 --- a/sec-keys/openpgp-keys-libvirt/openpgp-keys-libvirt-20260831.ebuild +++ b/sec-keys/openpgp-keys-libvirt/openpgp-keys-libvirt-20260831.ebuild @@ -14,4 +14,4 @@ HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/" SRC_URI="https://download.libvirt.org/gpg_key.asc -> ${P}-gpg_key.asc" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" diff --git a/sec-keys/openpgp-keys-mysql/Manifest b/sec-keys/openpgp-keys-mysql/Manifest index 7301a906069d..55cb568bea7a 100644 --- a/sec-keys/openpgp-keys-mysql/Manifest +++ b/sec-keys/openpgp-keys-mysql/Manifest @@ -1,2 +1 @@ -DIST openpgp-keys-mysql-20231023.asc 3175 BLAKE2B 76ade4b39a24a03c6ebb0ada25207f86a9461bff1a1b62a118f061099e5272aa00564aa23ec91d7a2033d23905db00f6e2d012a4ed662d9929bb72ad2c47a233 SHA512 0731cc973718379968056bb18e117cfe161781715a928a3eefbff852b34ec9cd7aad7627e70759468711fee05d4bbfdbaba761cdead16247510f5209ba180c7f DIST openpgp-keys-mysql-ubuntu-20250120.asc 5575 BLAKE2B 0d9df9641a9197ebf44fc668e7a34445c78d4f381387c0fbaa844a2072a97f8a21331820b9117e33dd18f98e53b9d3cadc27d35fb79428046b9ff3eaea44b603 SHA512 b766eb75aa41a65cb1bd40dd42a4d0b3cd91a238d3e95d8f614c549ae60202183d54de2ad80179465e795bc68abdf029847a2c7d0dfcf51cba0b9a3d1198d1bb diff --git a/sec-keys/openpgp-keys-mysql/openpgp-keys-mysql-20231023.ebuild b/sec-keys/openpgp-keys-mysql/openpgp-keys-mysql-20231023.ebuild deleted file mode 100644 index a9fdebb275cb..000000000000 --- a/sec-keys/openpgp-keys-mysql/openpgp-keys-mysql-20231023.ebuild +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="OpenPGP keys used to sign MySQL releases" -HOMEPAGE="https://dev.mysql.com/doc/refman/8.4/en/checking-gpg-signature.html" -SRC_URI="https://repo.mysql.com/RPM-GPG-KEY-mysql-2023 -> ${P}.asc" -S="${WORKDIR}" - -LICENSE="public-domain" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86" - -src_install() { - local files=( ${A} ) - - insinto /usr/share/openpgp-keys - newins - mysql.asc < <(cat "${files[@]/#/${DISTDIR}/}" || die) -} diff --git a/sec-keys/openpgp-keys-openvpn/openpgp-keys-openvpn-202600704.ebuild b/sec-keys/openpgp-keys-openvpn/openpgp-keys-openvpn-202600704.ebuild index 5551b85d5fee..c548470860df 100644 --- a/sec-keys/openpgp-keys-openvpn/openpgp-keys-openvpn-202600704.ebuild +++ b/sec-keys/openpgp-keys-openvpn/openpgp-keys-openvpn-202600704.ebuild @@ -13,4 +13,4 @@ DESCRIPTION="OpenPGP keys used for OpenVPN releases" HOMEPAGE="https://community.openvpn.net/Downloads/Verify%20signature" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" diff --git a/sys-apps/amdgpu_top/amdgpu_top-0.11.5.ebuild b/sys-apps/amdgpu_top/amdgpu_top-0.11.5.ebuild index ef8c0482f5cb..cb0133a9032c 100644 --- a/sys-apps/amdgpu_top/amdgpu_top-0.11.5.ebuild +++ b/sys-apps/amdgpu_top/amdgpu_top-0.11.5.ebuild @@ -30,7 +30,7 @@ LICENSE+=" UbuntuFontLicense-1.0 Unicode-3.0 ZLIB " SLOT="0" -KEYWORDS="~amd64 ~arm64" +KEYWORDS="amd64 ~arm64" IUSE="man" diff --git a/sys-apps/dbus/dbus-1.16.2-r1.ebuild b/sys-apps/dbus/dbus-1.16.2-r1.ebuild index 7f34b33f0592..e85849817bb0 100644 --- a/sys-apps/dbus/dbus-1.16.2-r1.ebuild +++ b/sys-apps/dbus/dbus-1.16.2-r1.ebuild @@ -11,7 +11,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{11..14} ) TMPFILES_OPTIONAL=1 -inherit linux-info meson-multilib python-any-r1 readme.gentoo-r1 systemd tmpfiles virtualx +inherit linux-info meson-multilib python-any-r1 readme.gentoo-r1 systemd tmpfiles DESCRIPTION="A message bus system, a simple way for applications to talk to each other" HOMEPAGE="https://www.freedesktop.org/wiki/Software/dbus/" @@ -150,7 +150,7 @@ multilib_src_compile() { multilib_src_test() { # DBUS_TEST_MALLOC_FAILURES=0 to avoid huge test logs # https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/CONTRIBUTING.md#L231 - DBUS_TEST_MALLOC_FAILURES=0 DBUS_VERBOSE=1 virtx meson_src_test + DBUS_TEST_MALLOC_FAILURES=0 DBUS_VERBOSE=1 meson_src_test } multilib_src_install_all() { diff --git a/sys-apps/dbus/dbus-1.16.2.ebuild b/sys-apps/dbus/dbus-1.16.2.ebuild index bc380b6aec99..b5a26069841e 100644 --- a/sys-apps/dbus/dbus-1.16.2.ebuild +++ b/sys-apps/dbus/dbus-1.16.2.ebuild @@ -11,7 +11,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{11..14} ) TMPFILES_OPTIONAL=1 -inherit linux-info meson-multilib python-any-r1 readme.gentoo-r1 systemd tmpfiles virtualx +inherit linux-info meson-multilib python-any-r1 readme.gentoo-r1 systemd tmpfiles DESCRIPTION="A message bus system, a simple way for applications to talk to each other" HOMEPAGE="https://www.freedesktop.org/wiki/Software/dbus/" @@ -151,7 +151,7 @@ multilib_src_compile() { multilib_src_test() { # DBUS_TEST_MALLOC_FAILURES=0 to avoid huge test logs # https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/CONTRIBUTING.md#L231 - DBUS_TEST_MALLOC_FAILURES=0 DBUS_VERBOSE=1 virtx meson_src_test + DBUS_TEST_MALLOC_FAILURES=0 DBUS_VERBOSE=1 meson_src_test } multilib_src_install_all() { diff --git a/sys-apps/openrc/Manifest b/sys-apps/openrc/Manifest index 3f2ac3948fd6..c0722a81ad5b 100644 --- a/sys-apps/openrc/Manifest +++ b/sys-apps/openrc/Manifest @@ -1,2 +1,2 @@ -DIST openrc-0.63.1.tar.gz 267423 BLAKE2B 43f088dddb804005b7f6badee5fc4aa172d729ded582b5f8d5db9cf197638dea2845791941c98c587cfb7f0041cd0246773716b4af478a429f94f31d09af60ba SHA512 d1746909275bd2552ccc4a1786eb5f80ac79ba911ce08ffc12dd550f2965f3bea09ac7c4b638f17f495f92238b833ca1886782c9c7bbba868e1c905e82639a2e DIST openrc-0.63.3.tar.gz 267502 BLAKE2B d66bd09f1860a2f42a07283fe5082429934365b3ddf206e7437457cf70767b77aab8b0ab101b050cb5ff8910eff3c1717df06b4dc96e03b0850007ca5a456a02 SHA512 dbb2228f00bcba494fa207bca5aaae54e7341b839a723fd1e00e04631665500f792605eca674983095d5499a0640cf4c6de1812bf5a8a47cb8a27a7190bb84f5 +DIST openrc-0.64.tar.gz 277378 BLAKE2B 5798eb8c0426690b7705f9b988df0e311a53df8db37bb053e8b1013b83e31068fbbc38214a1b819a890ffb1735fc2f4c1c66ba2eea347ccb5afe4f4f09ae7dbf SHA512 a283a624ccd4beb782859f0e8ed81df53ce7f431ad256f55b6cb135cd35caa557bd737e4657df26842667110fa5aad6092d9492fbbb6c5d52bede422a3674443 diff --git a/sys-apps/openrc/openrc-0.63.1.ebuild b/sys-apps/openrc/openrc-0.64.ebuild index 31596041babe..5dda4ffdaf69 100644 --- a/sys-apps/openrc/openrc-0.63.1.ebuild +++ b/sys-apps/openrc/openrc-0.64.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} =~ ^9{4,}$ ]]; then inherit git-r3 else SRC_URI="https://github.com/OpenRC/openrc/archive/${PV}.tar.gz -> ${P}.tar.gz" - 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" fi LICENSE="BSD-2" diff --git a/sys-boot/limine/Manifest b/sys-boot/limine/Manifest index 2e3270792dc9..46c060b098d0 100644 --- a/sys-boot/limine/Manifest +++ b/sys-boot/limine/Manifest @@ -1 +1 @@ -DIST limine-12.6.1.tar.gz 724863 BLAKE2B 4743aa2fd7ebc1914f1101e00a5b0aa2df75446e741489d85e4b17b1fe8921f62929461d01ada4eff6d8fa9c47adeb2a772f45daaaf389995af8626093d7987e SHA512 23a888f5db7b835ae1fd9bcc7fbe02f73298cac2bcd76414f3adf48958be842620366c536421585d07e615ba77d0a1e48c2c62cb6abeea954a41df67edc27663 +DIST limine-12.9.0.tar.gz 733599 BLAKE2B 82bd8848dcfbf2982014d655a109810e8df2cc6a50d29dad97da9aa4d85b3609ec7d97481092fa214f306efc54fe4897dcd3fee5422f32c52bc9cc19b5cc346a SHA512 98e77c9c3788a9b0ef267a051eae714f1668752b76328dc6c6516a7edfd297b742351f4623fa7c194a42e5fa5df1adcd942bc1bd035534c901817df2e7d23ecc diff --git a/sys-boot/limine/limine-12.6.1.ebuild b/sys-boot/limine/limine-12.9.0.ebuild index e5a5e9f35a54..e5a5e9f35a54 100644 --- a/sys-boot/limine/limine-12.6.1.ebuild +++ b/sys-boot/limine/limine-12.9.0.ebuild diff --git a/sys-cluster/prrte/prrte-4.1.0.ebuild b/sys-cluster/prrte/prrte-4.1.0-r1.ebuild index 3cb08ca1d69a..d8161140a0a0 100644 --- a/sys-cluster/prrte/prrte-4.1.0.ebuild +++ b/sys-cluster/prrte/prrte-4.1.0-r1.ebuild @@ -37,7 +37,11 @@ src_configure() { # https://github.com/openpmix/openpmix/issues/3350 filter-lto - econf + econf --without-legacy-tools + + # do not install conflicting pterm man page #981014 + sed -i 's/pterm.1//' docs/Makefile || die + sed -i 's/prun.1 \\/prun.1/' docs/Makefile || die } src_install() { diff --git a/sys-kernel/linux-firmware/Manifest b/sys-kernel/linux-firmware/Manifest index 4391ea822201..c95c80d2f8e4 100644 --- a/sys-kernel/linux-firmware/Manifest +++ b/sys-kernel/linux-firmware/Manifest @@ -4,3 +4,4 @@ DIST linux-firmware-20260519.tar.xz 622942528 BLAKE2B ff91ed099c4df0cc59dcca6282 DIST linux-firmware-20260622.tar.xz 638944264 BLAKE2B 37463e95e4528c9168a5ea970b0d1b3d1dc18c03fdbb79e1998035e53649228367294318fe8fe276cb69a20551b6eda93d08c42198f0b69ae4f1c6ea54e1da0f SHA512 01355ec0eaad07960c1a447832058787c30b3231883b98d1ce667569d3286e98acc0b138ebfe35f8e9b4abbf48dd0cc0dbdd1629616b72df240013e90cfba9da DIST linux-firmware-20260810.tar.xz 648855508 BLAKE2B 9dd9c6656a026d1d5336c58deecb46ff8b62ef7c5c7870af366c2ce7857bdc9c0a3342aca6a67798c1560cdff146a8299d381188d20bda83b80bd4fa20b9debb SHA512 2ef755194eb022e539aa677474ca5c6c8c3616b3302ebc14e1698c62ccb6ba6f8149e507b46c2a0563297c53502defb892ce4d37eb02646d99d955ae899eebe7 DIST linux-firmware-20260910.tar.xz 656677324 BLAKE2B efaac94064019b7d17bf39ff50a2edd14dc776975e9b3c376e8dcd218c01c7be29567d369a5db1886b463655f572ac8c54aeb3792de2bbe72aa14eda2b75c350 SHA512 b16fa1356b3b22003b24aed69baeca13a361c381ca8f1452a9b5e299e4cc7ff24bf840c539ac9f7a34bf02b469951a66b98d2a15a2c5437ddd8005c96c91e2bc +DIST linux-firmware-20260916.tar.xz 662182768 BLAKE2B 28dcab37ea42571e73787c4868e524ec0186070ed69ac29cf07e1e0d935335c037358364a151faf792e7f07112efb01a773284b471007f94dfa872750bd68627 SHA512 3deda43f570b8cf8e1a81a0e209fd3b261fb43dcb8cd9a8183b49ae719402d68f47c66659e20feb79be8d20f5815c858e7010f435b544b07c59ee78526d86149 diff --git a/sys-kernel/linux-firmware/linux-firmware-20260916.ebuild b/sys-kernel/linux-firmware/linux-firmware-20260916.ebuild new file mode 100644 index 000000000000..11416c988d53 --- /dev/null +++ b/sys-kernel/linux-firmware/linux-firmware-20260916.ebuild @@ -0,0 +1,355 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dist-kernel-utils eapi9-ver linux-info mount-boot savedconfig + +# In case this is a real snapshot, fill in commit below. +# For normal, tagged releases, leave blank +MY_COMMIT="" + +if [[ ${PV} == 99999999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/${PN}.git" +else + if [[ -n "${MY_COMMIT}" ]]; then + SRC_URI="https://gitlab.com/kernel-firmware/linux-firmware/-/archive/${MY_COMMIT}/linux-firmware-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2" + S="${WORKDIR}/${PN}-${MY_COMMIT}" + else + SRC_URI="https://mirrors.edge.kernel.org/pub/linux/kernel/firmware/${P}.tar.xz" + fi + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +DESCRIPTION="Linux firmware files" +HOMEPAGE="https://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git" + +LICENSE="GPL-2 GPL-2+ GPL-3 BSD MIT || ( MPL-1.1 GPL-2 ) + redistributable? ( linux-fw-redistributable BSD-2 BSD BSD-4 ISC MIT )" +SLOT="0" +IUSE="bindist compress-xz compress-zstd deduplicate dist-kernel +initramfs +redistributable" +REQUIRED_USE="initramfs? ( redistributable ) + ?? ( compress-xz compress-zstd ) + savedconfig? ( !deduplicate )" + +RESTRICT="binchecks strip test + !bindist? ( bindist )" + +BDEPEND="initramfs? ( app-alternatives/cpio ) + compress-xz? ( app-arch/xz-utils ) + compress-zstd? ( app-arch/zstd ) + deduplicate? ( app-misc/rdfind ) + ${PYTHON_DEPS}" + +#add anything else that collides to this +RDEPEND="!savedconfig? ( + redistributable? ( + !sys-firmware/alsa-firmware[alsa_cards_ca0132,-deduplicate(-)] + !sys-block/qla-fc-firmware + !sys-firmware/raspberrypi-wifi-ucode + ) + ) + dist-kernel? ( + virtual/dist-kernel + initramfs? ( + app-alternatives/cpio + ) + ) +" +IDEPEND=" + dist-kernel? ( + initramfs? ( sys-kernel/installkernel ) + ) +" + +QA_PREBUILT="*" +PATCHES=( + "${FILESDIR}"/${PN}-copy-firmware-r9.patch +) + +pkg_pretend() { + if use initramfs; then + if use dist-kernel; then + # Check, but don't die because we can fix the problem and then + # emerge --config ... to re-run installation. + nonfatal mount-boot_check_status + else + mount-boot_pkg_pretend + fi + fi +} + +pkg_setup() { + if use compress-xz || use compress-zstd ; then + local CONFIG_CHECK + + if kernel_is -ge 5 19; then + use compress-xz && CONFIG_CHECK="~FW_LOADER_COMPRESS_XZ" + use compress-zstd && CONFIG_CHECK="~FW_LOADER_COMPRESS_ZSTD" + else + use compress-xz && CONFIG_CHECK="~FW_LOADER_COMPRESS" + if use compress-zstd; then + eerror "Kernels <5.19 do not support ZSTD-compressed firmware files" + fi + fi + fi + linux-info_pkg_setup +} + +src_unpack() { + if [[ ${PV} == 99999999* ]]; then + git-r3_src_unpack + else + default + # rename directory from git snapshot tarball + if [[ ${#GIT_COMMIT} -gt 8 ]]; then + mv ${PN}-*/ ${P} || die + fi + fi +} + +src_prepare() { + default + + # Stub out this script to avoid errors in the live ebuild + cat >check_whence.py<<-EOF + #!/bin/sh + exit 0 + EOF + + cp "${FILESDIR}/${PN}-make-amd-ucode-img.bash" "${T}/make-amd-ucode-img" || die + chmod +x "${T}/make-amd-ucode-img" || die + + if use initramfs && ! use dist-kernel; then + if [[ -d "${S}/amd-ucode" ]]; then + "${T}/make-amd-ucode-img" "${S}" "${S}/amd-ucode" || die + else + # If this will ever happen something has changed which + # must be reviewed + die "'${S}/amd-ucode' not found!" + fi + fi + + # whitelist of misc files + local misc_files=( + build_packages.py + carl9170fw/autogen.sh + carl9170fw/genapi.sh + contrib/process_linux_firmware.py + copy-firmware.sh + check_whence.py + dedup-firmware.sh + LICEN[CS]E.* + README.md + WHENCE + ) + + # whitelist of images with a free software license + local free_software=( + # keyspan_pda (GPL-2+) + keyspan_pda/keyspan_pda.fw + keyspan_pda/xircom_pgs.fw + # dsp56k (GPL-2+) + dsp56k/bootstrap.bin + # ath9k_htc (BSD GPL-2+ MIT) + ath9k_htc/htc_7010-1.4.0.fw + ath9k_htc/htc_9271-1.4.0.fw + # pcnet_cs, 3c589_cs, 3c574_cs, serial_cs (dual GPL-2/MPL-1.1) + cis/LA-PCM.cis + cis/PCMLM28.cis + cis/DP83903.cis + cis/NE2K.cis + cis/tamarack.cis + cis/PE-200.cis + cis/PE520.cis + cis/3CXEM556.cis + cis/3CCFEM556.cis + cis/MT5634ZLX.cis + cis/RS-COM-2P.cis + cis/COMpad2.cis + cis/COMpad4.cis + # serial_cs (GPL-3) + cis/SW_555_SER.cis + cis/SW_7xx_SER.cis + cis/SW_8xx_SER.cis + # dvb-ttpci (GPL-2+) + av7110/bootcode.bin + # usbdux, usbduxfast, usbduxsigma (GPL-2+) + usbdux_firmware.bin + usbduxfast_firmware.bin + usbduxsigma_firmware.bin + # brcmfmac (GPL-2+) + brcm/brcmfmac4330-sdio.Prowise-PT301.txt + brcm/brcmfmac43340-sdio.meegopad-t08.txt + brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt + brcm/brcmfmac43362-sdio.lemaker,bananapro.txt + brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt + "brcm/brcmfmac43430a0-sdio.ONDA-V80 PLUS.txt" + brcm/brcmfmac43430-sdio.AP6212.txt + brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt + brcm/brcmfmac43430-sdio.MUR1DX.txt + brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt + brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt + brcm/brcmfmac4356-pcie.gpd-win-pocket.txt + # isci (GPL-2) + isci/isci_firmware.bin + # carl9170 (GPL-2+) + carl9170-1.fw + # atusb (GPL-2+) + atusb/atusb-0.2.dfu + atusb/atusb-0.3.dfu + atusb/rzusb-0.3.bin + # mlxsw_spectrum (dual BSD/GPL-2) + mellanox/mlxsw_spectrum-13.1420.122.mfa2 + mellanox/mlxsw_spectrum-13.1530.152.mfa2 + mellanox/mlxsw_spectrum-13.1620.192.mfa2 + mellanox/mlxsw_spectrum-13.1702.6.mfa2 + mellanox/mlxsw_spectrum-13.1703.4.mfa2 + mellanox/mlxsw_spectrum-13.1910.622.mfa2 + mellanox/mlxsw_spectrum-13.2000.1122.mfa2 + ) + + if use !redistributable; then + # remove files _not_ in the free_software lists + # everything else is confirmed (or assumed) to be redistributable + # based on upstream acceptance policy + einfo "Removing non-redistributable files ..." + local OLDIFS="${IFS}" + local IFS=$'\n' + set -o pipefail + find ! -type d -printf "%P\n" \ + | grep -Fvx -e "${misc_files[*]}" -e "${free_software[*]}" \ + | xargs -d '\n' --no-run-if-empty rm -v + + [[ ${?} -ne 0 ]] && die "Failed to remove non-redistributable files" + + IFS="${OLDIFS}" + fi + + restore_config ${PN}.conf +} + +src_install() { + local FW_OPTIONS=( "-v" "-j1" ) + local files_to_keep= + + if use savedconfig; then + if [[ -s "${S}/${PN}.conf" ]]; then + files_to_keep="${T}/files_to_keep.lst" + grep -v '^#' "${S}/${PN}.conf" 2>/dev/null > "${files_to_keep}" || die + [[ -s "${files_to_keep}" ]] || die "grep failed, empty config file?" + FW_OPTIONS+=( "--firmware-list" "${files_to_keep}" ) + fi + fi + + if use compress-xz; then + FW_OPTIONS+=( "--xz" ) + elif use compress-zstd; then + FW_OPTIONS+=( "--zstd" ) + fi + FW_OPTIONS+=( "${ED}/lib/firmware" ) + ./copy-firmware.sh "${FW_OPTIONS[@]}" || die + use deduplicate && { ./dedup-firmware.sh "${ED}/lib/firmware" || die; } + + pushd "${ED}/lib/firmware" &>/dev/null || die + + # especially use !redistributable will cause some broken symlinks + einfo "Removing broken symlinks ..." + find * -xtype l -print -delete || die + + # remove empty files and directories, bug #396073 + # Copy-firmware.sh may have made empty copies of files we removed + find -empty -delete || die + + # sanity check + if ! ( shopt -s failglob; : * ) 2>/dev/null; then + eerror "No files to install. Check your USE flag settings" + eerror "and the list of files in your saved configuration." + die "Refusing to install an empty package" + fi + + # create config file + echo "# Remove files that shall not be installed from this list." > "${S}"/${PN}.conf || die + find * ! -type d >> "${S}"/${PN}.conf || die + save_config "${S}"/${PN}.conf + + popd &>/dev/null || die + + # Instruct Dracut on whether or not we want the microcode in initramfs + ( + insinto /usr/lib/dracut/dracut.conf.d + newins - 10-${PN}.conf <<<"early_microcode=$(usex initramfs)" + ) + if use initramfs; then + # Install installkernel/kernel-install hooks for non-dracut initramfs + # generators that don't bundled the microcode + dobin "${T}/make-amd-ucode-img" + ( + exeinto /usr/lib/kernel/preinst.d + doexe "${FILESDIR}/35-amd-microcode.install" + exeinto /usr/lib/kernel/install.d + doexe "${FILESDIR}/35-amd-microcode-systemd.install" + ) + fi + + if use initramfs && ! use dist-kernel; then + insinto /boot + doins "${S}"/amd-uc.img + fi + + dodoc README.md + # some licenses require copyright and permission notice to be included + use bindist && dodoc -r WHENCE LICENSES +} + +pkg_preinst() { + if use savedconfig; then + ewarn "USE=savedconfig is active. You must handle file collisions manually." + fi + + # Fix 'symlink is blocked by a directory' Bug #871315 + if has_version "<${CATEGORY}/${PN}-20220913-r2" ; then + rm -rf "${EROOT}"/lib/firmware/qcom/LENOVO/21BX + fi + + # Fix 'symlink is blocked by a directory' https://bugs.gentoo.org/958268#c3 + if has_version "<${CATEGORY}/${PN}-20250613" ; then + rm -rf "${EROOT}"/lib/firmware/nvidia/{ad103,ad104,ad106,ad107} + fi + + # Make sure /boot is available if needed. + use initramfs && ! use dist-kernel && mount-boot_pkg_preinst +} + +pkg_postinst() { + elog "If you are only interested in particular firmware files, edit the saved" + elog "configfile and remove those that you do not want." + + if ver_replacing -lt 20190514; then + elog + elog 'Starting with version 20190514, installation of many firmware' + elog 'files is controlled by USE flags. Please review your USE flag' + elog 'and package.license settings if you are missing some files.' + fi + + if use initramfs; then + if use dist-kernel; then + dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" --all + else + # Don't forget to umount /boot if it was previously mounted by us. + mount-boot_pkg_postinst + fi + fi +} + +pkg_prerm() { + # Make sure /boot is mounted so that we can remove /boot/amd-uc.img! + use initramfs && ! use dist-kernel && mount-boot_pkg_prerm +} + +pkg_postrm() { + # Don't forget to umount /boot if it was previously mounted by us. + use initramfs && ! use dist-kernel && mount-boot_pkg_postrm +} diff --git a/sys-libs/readline/Manifest b/sys-libs/readline/Manifest index e5b374c9d95e..a07fb84af459 100644 --- a/sys-libs/readline/Manifest +++ b/sys-libs/readline/Manifest @@ -36,3 +36,9 @@ DIST readline83-002 1613 BLAKE2B bb07c3e1663b36988e59721d8e8054022726f6adc2160cb DIST readline83-002.sig 95 BLAKE2B 8d5294bf74b4a6aff7408b827a12607da2b824295e4b9d4827825d053701f796580fe38029a62188aec9529a2801183ea4b10e40913e1039ee501f95a3a38a07 SHA512 4dbed1ad56a3be4f750544694164a1fdfbc8795cb0efb991cd0e84c8f4f97d8a69b239de90060aac5957fccf177c897bdd55667173bfd812261844d01d2c50b3 DIST readline83-003 2284 BLAKE2B 39f48eefef1840460aa418a070813dd284893e74dddad5fb44230498a7991148e9681be89b30e98fe805a67b3093360c883a16a26a7f103548f36c899f9359da SHA512 6b3ebffe994d0cd4d3466b15e3aee9a73613109283a4442f3bf10e28edcd1204df824c71356d66d01ac21014a806023a101fedf94526a19f6f590d9ffdc864cd DIST readline83-003.sig 95 BLAKE2B 1735f682249205cb0e1b0d81ef603d0f87fa3604f65634e66d851da747111abc36d82895480f283c93ef757483f85bba1f081f69c0d200a8d908dfd2d49974a4 SHA512 2e90acc5820fc2a6f5f63520dc66301c64a1636f6134d684d62560c235ba7a0a8fd4c0caad054d09021084fe201a171f3b776cc4814f212f8165aa6f67d007de +DIST readline83-004 2112 BLAKE2B 401263120f2b21cae9c71385a73ab49415dcfe44c197cc5af4157e9c228be26da78ef24d31001f11ab78d422425a23f8edc6176e3cf5783b9f9df035aa65b00b SHA512 406ec17b77389f9416c2bed824fea29b6661cde8892437a08067214c9ba92ae64083d79cee7ebef90bbccf0be94d0e43012a21d74c8b8bb36024ff4d353a3a9d +DIST readline83-004.sig 123 BLAKE2B dc94a53ab1bd058d560fc48a7d57da47d60724fd02f392a944ff7942822c81695291f6a479d81e8b41dbba25bf4c4b88e4adfcada3c9a746664ef671bdaf87c7 SHA512 ed331cb0203cfa3837ace170a662c1ae5a31214602510044e09fb88d5b9c701aa3d31a5baaaf6e55a3e95544c18333790fe5a9b7263b5c4f53421d65d33f3514 +DIST readline83-005 2511 BLAKE2B d21bc0a8e23d0f72569924fd7879f54b132873611823d4ccf93c6449b2beaf64819b1d018df48f90e6b3d977f97fdeb623832615d176c1561935d412dcdcd919 SHA512 2a4992bab4382e55456d33328c003c16e94da0c7dbad38b5064d570181823338d37ef756f422413f18a702a93f0ae0606f34ecb8ceaf35c89affac7aefb73265 +DIST readline83-005.sig 123 BLAKE2B eeab8c2686707372066befac752da034a52d7b0ffed9b4b703f3b0a95cb78fca89ce1c36730a391a44105ec23f807c7329b8f24a1e42a8c545d27681872d779a SHA512 842a5c192314961fbc097614a8c1bccbdf01f87190579339ebc98ff81e6e1647637429cf18480178c24e0f066226b417a614d45bc34b4d53b839cab7b6d08b62 +DIST readline83-006 1422 BLAKE2B 2ade2b861a51de18e8ec42a218198b50da3da75179cde0aeafa16005d2e5ba73ce97426e373eb72ca046c67bce9346f4ffb75f452290dfbeb9b540de0982d0fd SHA512 f3fb51f24c0d635a4b23e3b23ef6ade5c20adbc7a47dd42a2a5c020ae5ee694a662102af2aeb61895625477342fa4d8832dce3ad7ee4e8e5ee422caea8ed36c8 +DIST readline83-006.sig 123 BLAKE2B fcfa8ff25381c3ccf1ae83513e34f8f634ea3cc7db7db1d3ff8a0de10a53e5f21f5b01cb381577aba110970d1952e590e8da1f351ba44277db2ac8f184c9a475 SHA512 45d44100c0453215f030dc9f0bd0cfcbc69901c6ba7baff84ed411c4038e2965f6279ef076ae45ee76f0c0d271102eaeed0400379d3a3b345975cc2f39f0c0fe diff --git a/sys-libs/readline/readline-8.3_p6.ebuild b/sys-libs/readline/readline-8.3_p6.ebuild new file mode 100644 index 000000000000..24a840f7f08a --- /dev/null +++ b/sys-libs/readline/readline-8.3_p6.ebuild @@ -0,0 +1,257 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# There's no standard way of versioning the point releases upstream +# make anyway, so while this was added for RC versions, it's fine +# in general. +QA_PKGCONFIG_VERSION=$(ver_cut 1-2) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc +inherit flag-o-matic multilib multilib-minimal preserve-libs toolchain-funcs verify-sig + +# Official patches +# See ftp://ftp.cwru.edu/pub/bash/readline-8.1-patches/ +PLEVEL="${PV##*_p}" +MY_PV="${PV/_p*}" +MY_PV="${MY_PV/_/-}" +MY_P="${PN}-${MY_PV}" +MY_PATCHES=() + +# Determine the patchlevel. +case ${PV} in + 9999|*_alpha*|*_beta*|*_rc*) + # Set a negative patchlevel to indicate that it's a pre-release. + PLEVEL=-1 + ;; + *_p*) + PLEVEL=${PV##*_p} + ;; + *) + PLEVEL=0 +esac + +DESCRIPTION="Another cute console display library" +HOMEPAGE="https://tiswww.case.edu/php/chet/readline/rltop.html https://git.savannah.gnu.org/cgit/readline.git" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/readline.git" + EGIT_BRANCH=devel + inherit git-r3 +elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + # It can be useful to have snapshots in the pre-release period once + # the first alpha is out, as various bugs get reported and fixed from + # the alpha, and the next pre-release is usually quite far away. + # + # i.e. if it's worth packaging the alpha, it's worth packaging a followup. + READLINE_COMMIT="7cf2d923617659d216db3210f6247740f7dde1d8" + SRC_URI="https://git.savannah.gnu.org/cgit/readline.git/snapshot/readline-${READLINE_COMMIT}.tar.gz -> ${P}-${READLINE_COMMIT}.tar.gz" + S=${WORKDIR}/${PN}-${READLINE_COMMIT} +else + SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz" + SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig )" + S="${WORKDIR}/${MY_P}" + + if [[ ${PLEVEL} -gt 0 ]] ; then + # bash-5.1 -> bash51 + my_p=${PN}$(ver_rs 1-2 '' $(ver_cut 1-2)) + + patch_url= + my_patch_index= + + upstream_url_base="mirror://gnu/readline" + + for ((my_patch_index=1; my_patch_index <= ${PLEVEL} ; my_patch_index++)) ; do + printf -v mangled_patch_ver ${my_p}-%03d ${my_patch_index} + patch_url="${upstream_url_base}/${MY_P}-patches/${mangled_patch_ver}" + + SRC_URI+=" ${patch_url}" + SRC_URI+=" verify-sig? ( ${patch_url}.sig )" + + MY_PATCHES+=( "${DISTDIR}"/${mangled_patch_ver} ) + done + + unset my_p patch_url my_patch_index upstream_url_base + fi +fi + +LICENSE="GPL-3+" +SLOT="0/8" # subslot matches SONAME major +if (( PLEVEL >= 0 )); then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi +IUSE="static-libs +unicode utils" + +RDEPEND=">=sys-libs/ncurses-5.9-r3:=[static-libs?,unicode(+)?,${MULTILIB_USEDEP}]" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-chetramey ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-5.0-no_rpath.patch + "${FILESDIR}"/${PN}-7.0-headers.patch + "${FILESDIR}"/${PN}-8.0-headers.patch +) + +src_unpack() { + local patch + + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + default + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} + + for patch in "${MY_PATCHES[@]}"; do + verify-sig_verify_detached "${patch}"{,.sig} + done + fi + + unpack "${MY_P}.tar.gz" + + if [[ ${GENTOO_PATCH_VER} ]]; then + unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz" + fi + fi +} + +src_prepare() { + (( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}" + + default + + #(( PLEVEL < 0 )) && eautoreconf + + if use prefix && ! type -P $(tc-getPKG_CONFIG) > /dev/null ; then + # If we're bootstrapping, make a guess. We don't have pkg-config + # around yet. bug #818103. + # Incorrectly populating this leads to underlinked libreadline. + local ncurses_libs + local ncurses_libs_suffix=$(usex unicode w '') + + ncurses_libs="-lncurses${ncurses_libs_suffix}" + + if has_version "sys-libs/ncurses[tinfo(+)]" ; then + ncurses_libs+=" -ltinfo${ncurses_libs_suffix}" + fi + else + # Force ncurses linking, bug #71420. + # Use pkg-config to get the right values, bug #457558. + local ncurses_libs=$($(tc-getPKG_CONFIG) ncurses$(usex unicode w '') --libs || die) + fi + + sed -i \ + -e "/^SHLIB_LIBS=/s:=.*:='${ncurses_libs}':" \ + support/shobj-conf || die + sed -i \ + -e "/[[:space:]]*LIBS=.-lncurses/s:-lncurses:${ncurses_libs}:" \ + examples/rlfe/configure || die + + # Fix building under Gentoo/FreeBSD; upstream FreeBSD deprecated + # objformat for years, so we don't want to rely on that. + sed -i -e '/objformat/s:if .*; then:if true; then:' support/shobj-conf || die + + # For local readline headers + ln -s ../.. examples/rlfe/readline || die +} + +src_configure() { + # Fix implicit decls with widechar funcs + append-cppflags -D_GNU_SOURCE + # https://lists.gnu.org/archive/html/bug-readline/2010-07/msg00013.html + append-cppflags -Dxrealloc=_rl_realloc -Dxmalloc=_rl_malloc -Dxfree=_rl_free + + # Make sure configure picks a better ar than `ar`, bug #484866 + export ac_cv_prog_AR="$(tc-getAR)" + + # Force the test since we used sed above to force it. + export bash_cv_termcap_lib=ncurses + + # Control cross-compiling cases when we know the right answer. + # In cases where the C library doesn't support wide characters, readline + # itself won't work correctly, so forcing the answer below should be OK. + if tc-is-cross-compiler ; then + export bash_cv_func_sigsetjmp="present" + export bash_cv_func_ctype_nonascii="yes" + # bug #503312 + export bash_cv_wcwidth_broken="no" + fi + + # This is for rlfe, but we need to make sure LDFLAGS doesn't change + # so we can re-use the config cache file between the two. + append-ldflags -L. + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myeconfargs=( + --cache-file="${BUILD_DIR}"/config.cache + --with-curses + $(use_enable static-libs static) + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then + # Code is full of AC_TRY_RUN() + mkdir -p examples/rlfe || die + cd examples/rlfe || die + + ECONF_SOURCE="${S}"/examples/rlfe econf --cache-file="${BUILD_DIR}"/config.cache + fi +} + +multilib_src_compile() { + emake + + if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then + # Code is full of AC_TRY_RUN() + cd examples/rlfe || die + local l + for l in readline history ; do + ln -s ../../shlib/lib${l}$(get_libname)* lib${l}$(get_libname) || die + ln -s ../../lib${l}.a lib${l}.a || die + done + emake + fi +} + +multilib_src_install() { + default + + if multilib_is_native_abi ; then + if use utils && ! tc-is-cross-compiler; then + dobin examples/rlfe/rlfe + fi + fi +} + +multilib_src_install_all() { + HTML_DOCS="doc/history.html doc/readline.html doc/rluserman.html" einstalldocs + + dodoc USAGE + docinto ps + dodoc doc/*.ps +} +pkg_preinst() { + # bug #29865 + # Reappeared in bug #595324 with paludis so keeping this for now... + preserve_old_lib \ + /$(get_libdir)/lib{history,readline}$(get_libname 4) \ + /$(get_libdir)/lib{history,readline}$(get_libname 5) \ + /$(get_libdir)/lib{history,readline}$(get_libname 6) \ + /$(get_libdir)/lib{history,readline}$(get_libname 7) +} + +pkg_postinst() { + preserve_old_lib_notify \ + /$(get_libdir)/lib{history,readline}$(get_libname 4) \ + /$(get_libdir)/lib{history,readline}$(get_libname 5) \ + /$(get_libdir)/lib{history,readline}$(get_libname 6) \ + /$(get_libdir)/lib{history,readline}$(get_libname 7) +} diff --git a/sys-libs/talloc/Manifest b/sys-libs/talloc/Manifest index 742c16d85485..d6bbd29dcc16 100644 --- a/sys-libs/talloc/Manifest +++ b/sys-libs/talloc/Manifest @@ -1,3 +1,4 @@ DIST talloc-2.4.2.tar.gz 679750 BLAKE2B 1f836d6b11e096e399ad7b99ad4abd3c140e75ee307695659c35b89eca600de247e5432bce523a299334f20ca2dad4c726b783a94c546b67fe25b2b7199b2915 SHA512 fb91665ffbe0cce96b1359940ff3ed21330c81c5331140788a26aa94f82b50492176e6000ff54b31d1a434bb1cb53a6a2c7894153545252a1fd91bda7c05a213 DIST talloc-2.4.3.tar.gz 684092 BLAKE2B 5299ea4f19afd6b623f0c98514bdf4ae80121af3f4b38963cf2d39a8a9fdac3bd4a3119a606bc04f2a48a991bb98e7a66643e26e4f68427c64d3675b838ccc2d SHA512 7174a069dd3d4ebf8c04fee3434fd50269015bb8f039839e7e7723f431d089b66fb0167e8893bff2d1c392de1ac33665e5b278168246da30d528d522b0e1d5bd DIST talloc-2.4.4.tar.gz 684541 BLAKE2B 6d30a6d81e516a3361a9bb7bd9d0a039b65dc774828a836fda0a9a2f9efa2006a136a8ccff0103b28c12daa9cf75bd4d8ee8b065f9559a93dd1d3cb1132f716a SHA512 3273ef4f2de463293a515df8269cd585c46a1cae1889455d7c3438399541769cb5c55944ad77257ae6498cecbcc0c65bc81843b70d1f98b5e7fd107f67eec867 +DIST talloc-2.5.0.tar.gz 690172 BLAKE2B 3f1af126fe16f129e061f825db43f60aa963073a1aaf31e0da946367a1accecf68fc33127484335ecea5ac8a2ebbedec172fee46bb2ad50da301924c5eb0bfd1 SHA512 4503e753ddc3bc4c4279a8a1c6a3c623a228bc1991b35f4d25658602dd9688fc6297d0d535ffd193dcb04a83ce9ac8dc35a8accd35fac329b139f59ceba6891f diff --git a/sys-libs/talloc/talloc-2.5.0.ebuild b/sys-libs/talloc/talloc-2.5.0.ebuild new file mode 100644 index 000000000000..393ee87d431b --- /dev/null +++ b/sys-libs/talloc/talloc-2.5.0.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="threads(+)" +inherit waf-utils python-single-r1 multilib-minimal flag-o-matic + +DESCRIPTION="Samba talloc library" +HOMEPAGE="https://talloc.samba.org/" +SRC_URI="https://www.samba.org/ftp/${PN}/${P}.tar.gz" + +LICENSE="GPL-3 LGPL-3+ LGPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +IUSE="compat +python test valgrind" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +RDEPEND=" + !elibc_SunOS? ( + !elibc_Darwin? ( + dev-libs/libbsd[${MULTILIB_USEDEP}] + ) + ) + python? ( ${PYTHON_DEPS} ) +" +# Valgrind is automagic here but it's a build-only dep so it's not so bad. +DEPEND=" + ${RDEPEND} + valgrind? ( dev-debug/valgrind ) +" +BDEPEND=" + ${PYTHON_DEPS} + dev-libs/libxslt + sys-devel/gettext +" + +WAF_BINARY="${S}/buildtools/bin/waf" + +MULTILIB_WRAPPED_HEADERS=( + # python goes only for native + /usr/include/pytalloc.h +) + +pkg_setup() { + # Try to turn off distcc and ccache for people that have a problem with it + export DISTCC_DISABLE=1 + export CCACHE_DISABLE=1 + + python-single-r1_pkg_setup +} + +src_prepare() { + default + + if [[ ${CHOST} == *-darwin* ]] ; then + # Drop irritating ABI names (e.g. cpython-37m) + # We're only installing one implementation anyway + sed -i "s/+ conf.all_envs\['default'\]\['PYTHON_SO_ABI_FLAG'\]//" wscript || die + sed -i "s/name = bld.pyembed_libname('pytalloc-util')/name = 'pytalloc-util'/" wscript || die + fi + + if use test ; then + # TODO: Fix python tests to run w/ USE=python. + truncate -s0 test_pytalloc.py || die + fi + + # WAF + multilib_copy_sources +} + +multilib_src_configure() { + local extra_opts=( + --libdir="${EPREFIX}/usr/$(get_libdir)" + --disable-dependency-tracking + --disable-warnings-as-errors + + $(usev compat --enable-talloc-compat1) + $(multilib_native_usex python '' --disable-python) + $([[ ${CHOST} == *-solaris* ]] && echo '--disable-symbol-versions') + ) + + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) # bug 914712 + + waf-utils_src_configure "${extra_opts[@]}" +} + +multilib_src_compile() { + waf-utils_src_compile +} + +multilib_src_install() { + waf-utils_src_install + + # waf is stupid, and no, we can't fix the build-system, since it's provided + # as a brilliant binary blob thats decompressed on the fly + if [[ ${CHOST} == *-darwin* ]] ; then + install_name_tool \ + -id "${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \ + "${ED}"/usr/$(get_libdir)/libtalloc.${PV}.dylib || die + + if use python ; then + install_name_tool \ + -id "${EPREFIX}"/usr/$(get_libdir)/libpytalloc-util.2.dylib \ + "${ED}"/usr/$(get_libdir)/libpytalloc-util.${PV}.dylib || die + install_name_tool \ + -change "${BUILD_DIR}/bin/default/libtalloc.dylib" \ + "${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \ + "${ED}"/usr/$(get_libdir)/libpytalloc-util.${PV}.dylib || die + + install_name_tool \ + -id "${EPREFIX}"/usr/$(get_libdir)/libpytalloc-util.dylib \ + "${ED}"/usr/$(get_libdir)/libpytalloc-util.dylib || die + install_name_tool \ + -change "${BUILD_DIR}/bin/default/libtalloc.dylib" \ + "${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \ + "${ED}"/usr/$(get_libdir)/libpytalloc-util.dylib || die + + install_name_tool \ + -change "${BUILD_DIR}/bin/default/libpytalloc-util.dylib" \ + "${EPREFIX}"/usr/$(get_libdir)/libpytalloc-util.dylib \ + "${D}"$(python_get_sitedir)/talloc*.bundle || die + install_name_tool \ + -change "${BUILD_DIR}/bin/default/libtalloc.dylib" \ + "${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \ + "${D}"$(python_get_sitedir)/talloc*.bundle || die + fi + fi +} diff --git a/sys-libs/tevent/Manifest b/sys-libs/tevent/Manifest index 38a1b9550225..3a96f35ce477 100644 --- a/sys-libs/tevent/Manifest +++ b/sys-libs/tevent/Manifest @@ -1,3 +1,4 @@ DIST tevent-0.16.1.tar.gz 890010 BLAKE2B 34639cf0e63193eebdb9c3f845390685d66916c6a687f22fbe25dbe175d3279752dfea1e3567fdb2eed3bea17108b9b226039cb1218c0536fc1eb7f4e0a025ab SHA512 cda001d91728b2f28dd081e9c5f6d8ede345dcd9ce1dca04394860cd83090c15aa8dfef1c53b73e120bd17f0d95551fa9301eb4927963314556d016fe5420a39 DIST tevent-0.16.2.tar.gz 897447 BLAKE2B d23d60f5e5478899daab248c6a2b8d9b67d19a881bf1cfec2803e4fa538f2f59333b3e28c729a1072b3ec3b528961faf63ccd60fdc92f229a73e358fdcdb080e SHA512 c644771227fd1ee9f221e8cac1be9db97043953670a29415a20f3f8933d4fa93c7421b991a4ecaac0b9b29e922d1ec2f436160f2d2eaf77c6d392f1dec212417 DIST tevent-0.17.1.tar.gz 902444 BLAKE2B 20a6b205a58c982105462dbf49678e8dd8601d7f39af7e09e7cbb190a963901800ddaff9d5b09dbebe590dadea8c09d61946c0c398563cf7eb6eda1f473bc6ae SHA512 781f8aced9ad135e64ce3953a013434feb84a6945ccfbce58a6ff21cb3da48af1e32324a5a950a55256a02545c2e1808a4cd8b209a3f970375347c8b390df258 +DIST tevent-0.17.2.tar.gz 906519 BLAKE2B 973d5cd072348436f960ead5cb150cf3974a4398d400a4d9b74ece04bdab899fbd646bfd9b3b0640fe96ce09acb01b477aba8235a6910ce93c9bd2157cb3fdfb SHA512 23b8a8e4251d3a88e9bbb78134787280047e631393ab668fa34ab69986be72046506f9766b6b82f7ff6ce38412d7198665120312f98b9fe5428a662efc16b59b diff --git a/sys-libs/tevent/tevent-0.17.2.ebuild b/sys-libs/tevent/tevent-0.17.2.ebuild new file mode 100644 index 000000000000..fc496624f25c --- /dev/null +++ b/sys-libs/tevent/tevent-0.17.2.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..14} ) +PYTHON_REQ_USE="threads(+)" +inherit flag-o-matic waf-utils multilib-minimal python-single-r1 + +DESCRIPTION="Samba tevent library" +HOMEPAGE="https://tevent.samba.org/" +SRC_URI="https://samba.org/ftp/tevent/${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="python test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +TALLOC_VERSION="2.5.0" + +RDEPEND=" + dev-libs/libbsd[${MULTILIB_USEDEP}] + >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}] + python? ( + ${PYTHON_DEPS} + >=sys-libs/talloc-${TALLOC_VERSION}[python,${PYTHON_SINGLE_USEDEP}] + ) +" +DEPEND=" + ${RDEPEND} + elibc_glibc? ( + net-libs/libtirpc[${MULTILIB_USEDEP}] + net-libs/rpcsvc-proto + ) + test? ( >=dev-util/cmocka-1.1.3 ) +" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig +" + +WAF_BINARY="${S}/buildtools/bin/waf" + +check_samba_dep_versions() { + actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die) + if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then + eerror "Source talloc version: ${TALLOC_VERSION}" + eerror "Ebuild talloc version: ${actual_talloc_version}" + die "Ebuild needs to fix TALLOC_VERSION!" + fi +} + +src_prepare() { + default + + check_samba_dep_versions + + if use test ; then + # TODO: Fix python tests to run w/ USE=python. + # (depsite the name. bindings.py is just for Python tests.) + truncate -s0 bindings.py || die + fi + + multilib_copy_sources +} + +multilib_src_configure() { + # When specifying libs for samba build you must append NONE to the end to + # stop it automatically including things + local bundled_libs="NONE" + + # We "use" bundled cmocka when we're not running tests as we're + # not using it anyway. Means we avoid making users install it for + # no reason. bug #802531 + if ! use test ; then + bundled_libs="cmocka,${bundled_libs}" + fi + + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) # bug 915198 + + waf-utils_src_configure \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --disable-dependency-tracking \ + --disable-warnings-as-errors \ + --bundled-libraries="${bundled_libs}" \ + --builtin-libraries=NONE \ + $(multilib_native_usex python '' '--disable-python') +} + +multilib_src_compile() { + waf-utils_src_compile +} + +multilib_src_install() { + waf-utils_src_install + + multilib_is_native_abi && use python && python_domodule tevent.py +} + +multilib_src_install_all() { + insinto /usr/include + doins tevent_internal.h +} diff --git a/sys-process/atop/Manifest b/sys-process/atop/Manifest index d54947935b6f..eeeb290a2ca7 100644 --- a/sys-process/atop/Manifest +++ b/sys-process/atop/Manifest @@ -1,2 +1,3 @@ DIST atop-2.12.1.tar.gz 336538 BLAKE2B 5a7de979f6a919415cea7e68b2410f7d0f75b887ec1841e5061d2db3010f04335b9fa921d1c0fc78866b93e2808a6771a50caede920c465fc294007f88f1a58e SHA512 e01db51bf025598e7bad585f62761e10d23a77f6c7be96418bc8919a72c74628851ae5cbdc0c12ed752f80b44f5b72f2102692dbbb3210cacc59b32340107ce7 +DIST atop-2.13.0.tar.gz 354561 BLAKE2B 7b1a86b2025c304c804392c2da526cba90e4c77628c0c7a8a954c1290a3add888ab9b252bceb7ad0ed43d70c912ffb857d677f0e10d270fe025b28d32e0e0a82 SHA512 646e5c2d224fafd7635395cef6b5ad173dda872b8c39c120e0e31b9634a4b04174b7e5ce6885fc6c35e72c11a41f450a2c29fc648512b81f11cf55532b19220d DIST netatop-3.2.2.tar.gz 23977 BLAKE2B cf360071e56593251df4249d2c7ec8a1c823c71a4d96e5b7f5d02ab0dc8388eb22d34c4120924c5a5ecc9b4d610a14785e5002bc3b888aa4c66d8c73454a0900 SHA512 59ff6daf56f73578cfc7b48085747d3f2917589203196396dde6036c33da0dbce4b67b58c141545a785beb31ebeb35936d96bb6ff3b6071e95315a32e20d6093 diff --git a/sys-process/atop/atop-2.13.0.ebuild b/sys-process/atop/atop-2.13.0.ebuild new file mode 100644 index 000000000000..fc46cbb386e9 --- /dev/null +++ b/sys-process/atop/atop-2.13.0.ebuild @@ -0,0 +1,151 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Check on bumps of atop +# https://www.atoptool.nl/downloadnetatop.php +NETATOP_VER=3.2.2 + +# Controls 'netatop' kernel module +MODULES_OPTIONAL_IUSE="modules" +NETATOP_P=netatop-${NETATOP_VER} +NETATOP_S="${WORKDIR}"/${NETATOP_P} + +PYTHON_COMPAT=( python3_{12..14} ) + +inherit linux-mod-r1 python-single-r1 systemd toolchain-funcs flag-o-matic + +DESCRIPTION="Resource-specific view of processes" +HOMEPAGE="https://www.atoptool.nl/ https://github.com/Atoptool/atop" +SRC_URI=" + https://www.atoptool.nl/download/${P}.tar.gz + modules? ( https://www.atoptool.nl/download/${NETATOP_P}.tar.gz ) +" + +# Module is GPL-2 as well +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~x86" +IUSE="video_cards_nvidia" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + dev-libs/glib + sys-libs/ncurses:= + virtual/zlib:= + >=sys-process/acct-6.6.4-r1 + video_cards_nvidia? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/nvidia-ml-py[${PYTHON_USEDEP}] + ') + ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-2.12.0-respect-opt.patch + "${FILESDIR}"/${PN}-2.13.0-build.patch +) + +pkg_setup() { + if use modules; then + linux-mod-r1_pkg_setup + fi + + if use video_cards_nvidia ; then + python-single-r1_pkg_setup + fi +} + +pkg_pretend() { + if use kernel_linux ; then + CONFIG_CHECK="~BSD_PROCESS_ACCT" + check_extra_config + fi +} + +src_prepare() { + append-cflags -std=gnu17 # bug #945250 + default + + if use modules ; then + cd "${WORKDIR}"/${NETATOP_P} || die + eapply "${FILESDIR}/netatop-3.2.2-strict-prototype.patch" + + sed \ + -e "s#\`uname -r\`#${KV_FULL}#g" \ + -e "s#\$(shell uname -r)#${KV_FULL}#g" \ + -i Makefile || die + + grep -rq "uname -r" && die "found uname calls" + + cd "${S}" || die + fi + + tc-export CC PKG_CONFIG + + # bug #191926 + sed -i 's: root : :' atop.cronsysv || die + + # Prefixify + sed -i "s:/\(usr\|etc\|var\):${EPREFIX}/\1:g" Makefile || die +} + +src_compile() { + default + + local modlist=( "netatop=:../${NETATOP_P}::netatop.ko" ) + linux-mod-r1_src_compile + + if use modules ; then + # Don't let the Makefile try to build the module for us + emake -C "${NETATOP_S}" netatopd + fi +} + +src_install() { + linux-mod-r1_src_install + + if use modules ; then + dosbin "${NETATOP_S}"/netatopd + doman "${NETATOP_S}"/man/* + + systemd_dounit "${NETATOP_S}"/netatop.service + + newinitd "${NETATOP_S}"/netatop.rc netatop + fi + + emake DESTDIR="${D}" genericinstall + + if use video_cards_nvidia ; then + systemd_dounit "${S}"/atopgpu.service + + newinitd "${FILESDIR}"/atopgpud.initd atopgpud + + python_fix_shebang "${ED}/usr/sbin/atopgpud" + else + rm "${ED}"/usr/sbin/atopgpud || die + fi + + # useless -${PV} copies ? + rm "${ED}"/usr/bin/atop*-${PV} || die + + newinitd atop.rc.openrc ${PN} + newinitd atopacct.rc.openrc atopacct + + systemd_dounit "${S}"/${PN}.service + systemd_dounit "${S}"/atopacct.service + + dodoc atop.cronsysv AUTHORS README + + exeinto /usr/share/${PN} + doexe ${PN}.daily + + insinto /etc/default + newins ${PN}{.default,} + + keepdir /var/log/${PN} +} diff --git a/sys-process/atop/files/atop-2.13.0-build.patch b/sys-process/atop/files/atop-2.13.0-build.patch new file mode 100644 index 000000000000..c09ed5eab31f --- /dev/null +++ b/sys-process/atop/files/atop-2.13.0-build.patch @@ -0,0 +1,54 @@ +From e0266fa48b484386b5ebeba8b3d1957ac09f013c Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Sun, 11 Aug 2024 22:04:15 +0100 +Subject: [PATCH] Respect *FLAGS, use pkg-config + +* Respect CFLAGS +* Use pkg-config instead of hardcoding -lncursesw (in particular, this + is needed if a distribution has 'split tinfo') + +Signed-off-by: Sam James <sam@gentoo.org> +--- + Makefile | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Makefile b/Makefile +index 8ead5e9..968f13f 100644 +--- a/Makefile ++++ b/Makefile +@@ -22,7 +22,7 @@ PMPATHD = /usr/lib/systemd/system-sleep + + PKG_CONFIG ?= pkg-config + +-override CFLAGS := -I. -Wall $(shell $(PKG_CONFIG) --cflags glib-2.0) -Wmissing-prototypes -Wmissing-declarations -Wformat-security $(CFLAGS) # -DNOPERFEVENT # -DHTTPSTATS ++override CFLAGS := -I. -Wall $(shell $(PKG_CONFIG) --cflags glib-2.0) $(shell $(PKG_CONFIG) --cflags ncursesw) -Wmissing-prototypes -Wmissing-declarations -Wformat-security $(CFLAGS) # -DNOPERFEVENT # -DHTTPSTATS + + CC_CHECK := $(shell echo | $(CC) -dM -E - | grep -q __clang__ && echo clang || echo gcc) + ifeq ($(CC_CHECK),gcc) +@@ -43,19 +43,19 @@ VERS = $(shell ./atop -V 2>/dev/null| sed -e 's/^[^ ]* //' -e 's/ .*//') + all: atop atopsar atopacctd atopconvert atopcat atophide + + atop: atop.o $(ALLMODS) Makefile +- $(CC) atop.o $(ALLMODS) -o atop -lncursesw -lz -lm -lrt $(LDFLAGS) ++ $(CC) $(CFLAGS) atop.o $(ALLMODS) -o atop $(shell ${PKG_CONFIG} --libs ncursesw) -lz -lm -lrt $(LDFLAGS) + + atopsar: atop + ln -sf atop atopsar + + atopacctd: atopacctd.o netlink.o +- $(CC) atopacctd.o netlink.o -o atopacctd $(LDFLAGS) ++ $(CC) $(CFLAGS) atopacctd.o netlink.o -o atopacctd $(LDFLAGS) + + atopconvert: atopconvert.o +- $(CC) atopconvert.o -o atopconvert -lz $(LDFLAGS) ++ $(CC) $(CFLAGS) atopconvert.o -o atopconvert -lz $(LDFLAGS) + + atopcat: atopcat.o +- $(CC) atopcat.o -o atopcat $(LDFLAGS) ++ $(CC) $(CFLAGS) atopcat.o -o atopcat $(LDFLAGS) + + atophide: atophide.o + $(CC) atophide.o -o atophide -lz $(LDFLAGS) +-- +2.55.0 + diff --git a/sys-process/atop/files/netatop-3.2.2-strict-prototype.patch b/sys-process/atop/files/netatop-3.2.2-strict-prototype.patch index 3cb1d6fc5040..65a6a7c59ed3 100644 --- a/sys-process/atop/files/netatop-3.2.2-strict-prototype.patch +++ b/sys-process/atop/files/netatop-3.2.2-strict-prototype.patch @@ -1,9 +1,14 @@ Fix for strict prototypes error: declarations are fine, definitions are missing void https://bugs.gentoo.org/949835 ---- a/netatop.c 2024-06-01 15:19:08.000000000 +0400 -+++ b/netatop.c 2025-02-16 15:48:07.094848633 +0400 -@@ -1053,7 +1053,7 @@ + +Replace the deprecated init_module() and cleanup_module() entry points +with the module_init() and module_exit() macros. +https://bugs.gentoo.org/959282 +diff --git a/netatop.c b/netatop.c +--- a/netatop.c ++++ b/netatop.c +@@ -1053,7 +1053,7 @@ garbage_collector(void) ** can be found at the head */ static void @@ -12,7 +17,7 @@ https://bugs.gentoo.org/949835 { unsigned long flags; struct taskinfo *tip; -@@ -1087,7 +1087,7 @@ +@@ -1087,7 +1087,7 @@ gctaskexit() ** cleanup sockinfo structures that are connected to finished processes */ static void @@ -21,7 +26,7 @@ https://bugs.gentoo.org/949835 { int i; struct sockinfo *sip, *sipsave; -@@ -1300,7 +1300,7 @@ +@@ -1300,7 +1300,7 @@ gcsockinfo() ** remove taskinfo structures of finished tasks from hash list */ static void @@ -30,7 +35,7 @@ https://bugs.gentoo.org/949835 { int i; struct taskinfo *tip, *tipsave; -@@ -1376,7 +1376,7 @@ +@@ -1376,7 +1376,7 @@ gctaskinfo() ** remove all sockinfo structs */ static void @@ -39,7 +44,7 @@ https://bugs.gentoo.org/949835 { struct sockinfo *sip, *sipsave; int i; -@@ -1404,7 +1404,7 @@ +@@ -1404,7 +1404,7 @@ wipesockinfo() ** remove all taskinfo structs from hash list */ static void @@ -48,7 +53,7 @@ https://bugs.gentoo.org/949835 { struct taskinfo *tip, *tipsave; int i; -@@ -1432,7 +1432,7 @@ +@@ -1432,7 +1432,7 @@ wipetaskinfo() ** remove all taskinfo structs from exit list */ static void @@ -57,21 +62,32 @@ https://bugs.gentoo.org/949835 { gctaskexit(); } -@@ -1768,7 +1768,7 @@ +@@ -1767,8 +1767,8 @@ static struct pernet_operations netatop_net_ops = { + /* ** called when module loaded */ - int +-int -init_module() -+init_module(void) ++static int __init ++netatop_init(void) { int i; -@@ -1869,7 +1869,7 @@ +@@ -1868,8 +1868,8 @@ init_module() + /* ** called when module unloaded */ - void +-void -cleanup_module() -+cleanup_module(void) ++static void __exit ++netatop_exit(void) { /* ** tell kernel daemon to stop +@@ -1903,3 +1903,6 @@ cleanup_module() + kmem_cache_destroy(ticache); + kmem_cache_destroy(sicache); + } ++ ++module_init(netatop_init) ++module_exit(netatop_exit) diff --git a/virtual/jdk/jdk-27.ebuild b/virtual/jdk/jdk-27.ebuild index 40455aadc208..e00609fc3216 100644 --- a/virtual/jdk/jdk-27.ebuild +++ b/virtual/jdk/jdk-27.ebuild @@ -5,10 +5,10 @@ EAPI=8 DESCRIPTION="Virtual for Java Development Kit (JDK)" SLOT="${PV}" -# KEYWORDS="" # Not an LTS candidate +KEYWORDS="~amd64" IUSE="headless-awt" RDEPEND="|| ( - dev-java/openjdk-bin:${SLOT}[gentoo-vm(+),headless-awt=] - dev-java/openjdk:${SLOT}[gentoo-vm(+),headless-awt=] + dev-java/openjdk-bin:${SLOT}[headless-awt=] + dev-java/openjdk:${SLOT}[headless-awt=] )" diff --git a/virtual/jdk/jdk-28.ebuild b/virtual/jdk/jdk-28.ebuild index b442ed854c22..4d76385c595a 100644 --- a/virtual/jdk/jdk-28.ebuild +++ b/virtual/jdk/jdk-28.ebuild @@ -9,6 +9,6 @@ SLOT="${PV}" IUSE="headless-awt" RDEPEND="|| ( - dev-java/openjdk-bin:${SLOT}[gentoo-vm(+),headless-awt=] - dev-java/openjdk:${SLOT}[gentoo-vm(+),headless-awt=] + dev-java/openjdk-bin:${SLOT}[headless-awt=] + dev-java/openjdk:${SLOT}[headless-awt=] )" diff --git a/virtual/jre/jre-27.ebuild b/virtual/jre/jre-27.ebuild index 948a6c6cb963..13b28b47e397 100644 --- a/virtual/jre/jre-27.ebuild +++ b/virtual/jre/jre-27.ebuild @@ -5,6 +5,6 @@ EAPI=8 DESCRIPTION="Virtual for Java Runtime Environment (JRE)" SLOT="${PV}" -# KEYWORDS="~amd64 ~arm64 ~ppc64" +KEYWORDS="~amd64" RDEPEND="virtual/jdk:${SLOT}" diff --git a/virtual/perl-Archive-Tar/perl-Archive-Tar-3.120.0.ebuild b/virtual/perl-Archive-Tar/perl-Archive-Tar-3.120.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Archive-Tar/perl-Archive-Tar-3.120.0.ebuild +++ b/virtual/perl-Archive-Tar/perl-Archive-Tar-3.120.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-CPAN-Meta-Requirements/perl-CPAN-Meta-Requirements-2.145.0.ebuild b/virtual/perl-CPAN-Meta-Requirements/perl-CPAN-Meta-Requirements-2.145.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-CPAN-Meta-Requirements/perl-CPAN-Meta-Requirements-2.145.0.ebuild +++ b/virtual/perl-CPAN-Meta-Requirements/perl-CPAN-Meta-Requirements-2.145.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-CPAN-Meta/perl-CPAN-Meta-2.150.13.ebuild b/virtual/perl-CPAN-Meta/perl-CPAN-Meta-2.150.13.ebuild index b618a6e40a6e..ca0568d15181 100644 --- a/virtual/perl-CPAN-Meta/perl-CPAN-Meta-2.150.13.ebuild +++ b/virtual/perl-CPAN-Meta/perl-CPAN-Meta-2.150.13.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Compress-Raw-Bzip2/perl-Compress-Raw-Bzip2-2.218.0.ebuild b/virtual/perl-Compress-Raw-Bzip2/perl-Compress-Raw-Bzip2-2.218.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Compress-Raw-Bzip2/perl-Compress-Raw-Bzip2-2.218.0.ebuild +++ b/virtual/perl-Compress-Raw-Bzip2/perl-Compress-Raw-Bzip2-2.218.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-DB_File/perl-DB_File-1.860.0.ebuild b/virtual/perl-DB_File/perl-DB_File-1.860.0.ebuild index e651fe6a6755..bfd10c0b08fa 100644 --- a/virtual/perl-DB_File/perl-DB_File-1.860.0.ebuild +++ b/virtual/perl-DB_File/perl-DB_File-1.860.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44*[berkdb] ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Encode/perl-Encode-3.240.0.ebuild b/virtual/perl-Encode/perl-Encode-3.240.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Encode/perl-Encode-3.240.0.ebuild +++ b/virtual/perl-Encode/perl-Encode-3.240.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-ExtUtils-CBuilder/perl-ExtUtils-CBuilder-0.280.243.ebuild b/virtual/perl-ExtUtils-CBuilder/perl-ExtUtils-CBuilder-0.280.243.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-ExtUtils-CBuilder/perl-ExtUtils-CBuilder-0.280.243.ebuild +++ b/virtual/perl-ExtUtils-CBuilder/perl-ExtUtils-CBuilder-0.280.243.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-ExtUtils-MakeMaker/perl-ExtUtils-MakeMaker-7.780.0.ebuild b/virtual/perl-ExtUtils-MakeMaker/perl-ExtUtils-MakeMaker-7.780.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-ExtUtils-MakeMaker/perl-ExtUtils-MakeMaker-7.780.0.ebuild +++ b/virtual/perl-ExtUtils-MakeMaker/perl-ExtUtils-MakeMaker-7.780.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-ExtUtils-ParseXS/perl-ExtUtils-ParseXS-3.630.0.ebuild b/virtual/perl-ExtUtils-ParseXS/perl-ExtUtils-ParseXS-3.630.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-ExtUtils-ParseXS/perl-ExtUtils-ParseXS-3.630.0.ebuild +++ b/virtual/perl-ExtUtils-ParseXS/perl-ExtUtils-ParseXS-3.630.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-File-Spec/perl-File-Spec-3.950.0.ebuild b/virtual/perl-File-Spec/perl-File-Spec-3.950.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-File-Spec/perl-File-Spec-3.950.0.ebuild +++ b/virtual/perl-File-Spec/perl-File-Spec-3.950.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-File-Temp/perl-File-Temp-0.231.200.ebuild b/virtual/perl-File-Temp/perl-File-Temp-0.231.200.ebuild index 45ae6cc4c6a5..3dedcc896272 100644 --- a/virtual/perl-File-Temp/perl-File-Temp-0.231.200.ebuild +++ b/virtual/perl-File-Temp/perl-File-Temp-0.231.200.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" ~perl-core/${PN#perl-}-${PV} diff --git a/virtual/perl-IO-Compress/perl-IO-Compress-2.223.0-r1.ebuild b/virtual/perl-IO-Compress/perl-IO-Compress-2.223.0-r1.ebuild index 74694d4e79fb..6949c1dd16de 100644 --- a/virtual/perl-IO-Compress/perl-IO-Compress-2.223.0-r1.ebuild +++ b/virtual/perl-IO-Compress/perl-IO-Compress-2.223.0-r1.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-IO-Socket-IP/perl-IO-Socket-IP-0.440.0.ebuild b/virtual/perl-IO-Socket-IP/perl-IO-Socket-IP-0.440.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-IO-Socket-IP/perl-IO-Socket-IP-0.440.0.ebuild +++ b/virtual/perl-IO-Socket-IP/perl-IO-Socket-IP-0.440.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-IO/perl-IO-1.560.0.ebuild b/virtual/perl-IO/perl-IO-1.560.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-IO/perl-IO-1.560.0.ebuild +++ b/virtual/perl-IO/perl-IO-1.560.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Math-BigInt/perl-Math-BigInt-2.5.3.ebuild b/virtual/perl-Math-BigInt/perl-Math-BigInt-2.5.3.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Math-BigInt/perl-Math-BigInt-2.5.3.ebuild +++ b/virtual/perl-Math-BigInt/perl-Math-BigInt-2.5.3.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Module-CoreList/perl-Module-CoreList-5.202.607.80-r1.ebuild b/virtual/perl-Module-CoreList/perl-Module-CoreList-5.202.607.80-r1.ebuild index 31acbf20b0f2..1eae03538b0f 100644 --- a/virtual/perl-Module-CoreList/perl-Module-CoreList-5.202.607.80-r1.ebuild +++ b/virtual/perl-Module-CoreList/perl-Module-CoreList-5.202.607.80-r1.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" # Check https://wiki.gentoo.org/wiki/Project:Perl/maint-notes/virtual/perl-Module-CoreList # When bumping this package. diff --git a/virtual/perl-Module-Metadata/perl-Module-Metadata-1.0.39.ebuild b/virtual/perl-Module-Metadata/perl-Module-Metadata-1.0.39.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Module-Metadata/perl-Module-Metadata-1.0.39.ebuild +++ b/virtual/perl-Module-Metadata/perl-Module-Metadata-1.0.39.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Pod-Simple/perl-Pod-Simple-3.480.0.ebuild b/virtual/perl-Pod-Simple/perl-Pod-Simple-3.480.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Pod-Simple/perl-Pod-Simple-3.480.0.ebuild +++ b/virtual/perl-Pod-Simple/perl-Pod-Simple-3.480.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Scalar-List-Utils/perl-Scalar-List-Utils-1.700.0.ebuild b/virtual/perl-Scalar-List-Utils/perl-Scalar-List-Utils-1.700.0.ebuild index f2408a89b15d..1706213ceb9e 100644 --- a/virtual/perl-Scalar-List-Utils/perl-Scalar-List-Utils-1.700.0.ebuild +++ b/virtual/perl-Scalar-List-Utils/perl-Scalar-List-Utils-1.700.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for Scalar::Util and List::Util, also distributed as Scalar::List::Utils" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Socket/perl-Socket-2.41.0.ebuild b/virtual/perl-Socket/perl-Socket-2.41.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Socket/perl-Socket-2.41.0.ebuild +++ b/virtual/perl-Socket/perl-Socket-2.41.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Storable/perl-Storable-3.410.0.ebuild b/virtual/perl-Storable/perl-Storable-3.410.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Storable/perl-Storable-3.410.0.ebuild +++ b/virtual/perl-Storable/perl-Storable-3.410.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Term-Table/perl-Term-Table-0.28.0.ebuild b/virtual/perl-Term-Table/perl-Term-Table-0.28.0.ebuild index aa4c63a45a4a..70af74ea6214 100644 --- a/virtual/perl-Term-Table/perl-Term-Table-0.28.0.ebuild +++ b/virtual/perl-Term-Table/perl-Term-Table-0.28.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Test-Harness/perl-Test-Harness-3.520.0.ebuild b/virtual/perl-Test-Harness/perl-Test-Harness-3.520.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Test-Harness/perl-Test-Harness-3.520.0.ebuild +++ b/virtual/perl-Test-Harness/perl-Test-Harness-3.520.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Test-Simple/perl-Test-Simple-1.302.219.ebuild b/virtual/perl-Test-Simple/perl-Test-Simple-1.302.219.ebuild index dd51da2562ea..6c846f2bd37e 100644 --- a/virtual/perl-Test-Simple/perl-Test-Simple-1.302.219.ebuild +++ b/virtual/perl-Test-Simple/perl-Test-Simple-1.302.219.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Test2-Suite/perl-Test2-Suite-1.302.219.ebuild b/virtual/perl-Test2-Suite/perl-Test2-Suite-1.302.219.ebuild index 245de362b99a..c72a59f76764 100644 --- a/virtual/perl-Test2-Suite/perl-Test2-Suite-1.302.219.ebuild +++ b/virtual/perl-Test2-Suite/perl-Test2-Suite-1.302.219.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Text-Balanced/perl-Text-Balanced-2.70.0.ebuild b/virtual/perl-Text-Balanced/perl-Text-Balanced-2.70.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Text-Balanced/perl-Text-Balanced-2.70.0.ebuild +++ b/virtual/perl-Text-Balanced/perl-Text-Balanced-2.70.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-Time-HiRes/perl-Time-HiRes-1.978.0.ebuild b/virtual/perl-Time-HiRes/perl-Time-HiRes-1.978.0.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-Time-HiRes/perl-Time-HiRes-1.978.0.ebuild +++ b/virtual/perl-Time-HiRes/perl-Time-HiRes-1.978.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-threads/perl-threads-2.450.0.ebuild b/virtual/perl-threads/perl-threads-2.450.0.ebuild index a67092f0d85c..90d3257dbd67 100644 --- a/virtual/perl-threads/perl-threads-2.450.0.ebuild +++ b/virtual/perl-threads/perl-threads-2.450.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44*[perl_features_ithreads] ~perl-core/${PN#perl-}-${PV} ) diff --git a/virtual/perl-version/perl-version-0.993.400.ebuild b/virtual/perl-version/perl-version-0.993.400.ebuild index e691f3429b3f..3eab1310ef51 100644 --- a/virtual/perl-version/perl-version-0.993.400.ebuild +++ b/virtual/perl-version/perl-version-0.993.400.ebuild @@ -5,7 +5,7 @@ EAPI=8 DESCRIPTION="Virtual for ${PN#perl-}" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" || ( =dev-lang/perl-5.44* ~perl-core/${PN#perl-}-${PV} ) diff --git a/www-nginx/ngx-lua-upstream/ngx-lua-upstream-0.07.ebuild b/www-nginx/ngx-lua-upstream/ngx-lua-upstream-0.07.ebuild index 6c2f9e8bab18..7f77f657eb8e 100644 --- a/www-nginx/ngx-lua-upstream/ngx-lua-upstream-0.07.ebuild +++ b/www-nginx/ngx-lua-upstream/ngx-lua-upstream-0.07.ebuild @@ -39,7 +39,7 @@ PATCHES=( ) src_configure() { - ngx_mod_append_libs "$(lua_get_LIBS)" + ngx_mod_append_ldflags "$(lua_get_LIBS)" append-cflags "$(lua_get_CFLAGS)" nginx-module_src_configure diff --git a/www-nginx/njs/Manifest b/www-nginx/njs/Manifest index 336d28102ca6..1009dc26d07f 100644 --- a/www-nginx/njs/Manifest +++ b/www-nginx/njs/Manifest @@ -1 +1,2 @@ DIST njs-0.9.9.tar.gz 994273 BLAKE2B c37d9054f7691fe38b6ee750b32964315dd19c62f0ce3b91bed9ce009760f86234cb6280301560753dbdfccef73ff3d88898fcd23a415ec265249ac2eaaed511 SHA512 67b921c127fabb0ac0a8e53f63291af3227db0d2a9d67f32bfc853072403d9634f19ef736513a4007673fc98e1d3be8a5b3ac4832b04956852e43706891c38be +DIST njs-1.0.1.tar.gz 1003218 BLAKE2B f4f11b9bdfbc5e92a2b51ed3d92d639e9c0072a41bf54886ffe533c8c1993743ed4f8b77ed34fc1f2e222957f7228a76039c201659893bb978a79bb255f12290 SHA512 4531873957ec947e7e4c36d2713efff624aead0de1f3a8978efd3a06c1fdfd07fc848dcfb4cb284149b5ed91ba3f00030fe49c17f5d1aabda7efc1d38da31bda diff --git a/www-nginx/njs/njs-1.0.1.ebuild b/www-nginx/njs/njs-1.0.1.ebuild new file mode 100644 index 000000000000..7c28524a6492 --- /dev/null +++ b/www-nginx/njs/njs-1.0.1.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +NGINX_MOD_CONFIG_DIR="nginx" + +inherit edo nginx-module toolchain-funcs + +DESCRIPTION="A subset of JavaScript language to use in NGINX" +HOMEPAGE="https://github.com/nginx/njs https://nginx.org/en/docs/njs/" +SRC_URI=" + https://github.com/nginx/njs/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz +" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +IUSE="tools +ssl +xml +zlib" + +RDEPEND=" + dev-libs/quickjs-ng:= + tools? ( + dev-libs/libpcre2:= + sys-libs/readline:= + ) + ssl? ( dev-libs/openssl:= ) + xml? ( + dev-libs/libxml2:= + dev-libs/libxslt:= + ) + zlib? ( virtual/zlib:= ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +src_configure() { + ## The core part, i.e. libnjs and libqjs. + local myargs=( + --build-dir=build + --cc="$(tc-getCC)" + --ld-opt="${LDFLAGS}" + --ar="$(tc-getAR)" + ) + + local nocliargs=( + --no-openssl + --no-libxml2 + --no-zlib + ) + + if use tools; then + use !ssl && myargs+=( '--no-openssl' ) + use !xml && myargs+=( '--no-libxml2' ) + use !zlib && myargs+=( '--no-zlib' ) + else + myargs+=( "${nocliargs[@]}" ) + fi + + edo ./configure "${myargs[@]}" + + ## The NGINX module part. + # Build the stream module unconditionally. + sed -i "s/\\\$STREAM/YES/" nginx/config || + die "sed failed" + + # Export PKG_CONFIG for pkg-config-based QuickJS-NG detection. + tc-export PKG_CONFIG + + if use ssl; then + # Because NGINX build system refuses to link OPENSSL and ZLIB normally + # like other libraries. + ngx_mod_link_lib openssl + else + local -x NJS_OPENSSL=NO + fi + + if use zlib; then + # Ditto. + ngx_mod_link_lib zlib + else + local -x NJS_ZLIB=NO + fi + + use !xml && local -x NJS_LIBXSLT=NO + + nginx-module_src_configure +} + +src_compile() { + # Build the core first. + if use tools; then + emake + else + emake libnjs libqjs + fi + + nginx-module_src_compile +} + +src_install() { + use tools && dobin build/njs + + nginx-module_src_install +} diff --git a/www-servers/nginx/Manifest b/www-servers/nginx/Manifest index cbed86557ea8..de212e00b639 100644 --- a/www-servers/nginx/Manifest +++ b/www-servers/nginx/Manifest @@ -1,45 +1,5 @@ -DIST modsecurity-nginx-1.0.3.tar.gz 34063 BLAKE2B 859a29eb7f67d53a818578f1008f0d0debbe37c205bb7c6e79594d8b1a6a0d93988880d35f607ef05ef6d73c9aa887baebfd2c54aca894969beeed4bfe576f37 SHA512 20495884c6b3594edf879a19fd7445f2e74a1628789decd146b3c712764b0507e440a84a64aab619461b044f98b8d641913cfad57a6d0002e7061716bdfe84fc -DIST nginx-1.26.3.tar.gz 1260179 BLAKE2B 4ef731070e986d98fc1984717dec7fb766ed1a02b196c3ae9a69deea7093d17253b46c06f4eb812a19187be49e42c1a485a54ba3e2e639b5084ef2b0e2287212 SHA512 cd780e495796bf7413e54a6730d11d55127b0ca6563acf5c75eb2698f62cddbbf5ba61820c57b2316c0bb789fcfd17f98a27a84b525ed50f304d1b1043ffa05d -DIST nginx-1.27.5.tar.gz 1279891 BLAKE2B 6d7fd563d201e8ed985810e418f9981fd0adedf7b40bb3cf8278819a88ecaea148df7df69ff0240cfd028df86d92734e9d20449c2178d3e4b82e78bb0cef3e36 SHA512 5130bc2ec08a962b631ceb741ecb3dc0d84423ca50afb713d9c52c13af1e1bf5e2b0be226936d6dfbc7c2a45b44726ba478a571c6032099bc8ece85fe015ccbc -DIST nginx-1.29.5.tar.gz 1310203 BLAKE2B 15fd97ce91dcc9b2f882adcafbc6e265e02493bbc0ee0b37b30ac619bc7488a153dafccc1b25cdffa86c5279291345350396984fb6e57a438468424357c31b33 SHA512 721b5f8d5484b4508c3fffc5aa8239212266ad8635ea9e5b2c3d5f0349e0846ab9dd3c1e1409435b30989aa83d4b65113a8ab8854fff725c55b9043f17435235 -DIST nginx-1.29.7.tar.gz 1323485 BLAKE2B 24676ec144681fc82da5c8377b534c42be0f8334af9a3561a56c3b49b3c9e17f91a05553459319e9da4d512fffe8bbba6c6f935cf28e2cfb42773b6e456af856 SHA512 00a39c8e79c98b86f814720c9f1bd87d6ec608c436f6b6dfe18c69e7ac12cb6d04f8717976653b782b59ef5b8dbf3c97c6b577b2e2c33423dd13fbe222ec9e86 -DIST nginx-1.30.0.tar.gz 1324188 BLAKE2B 6a0241e636b087f95a34acc3ddb2c281aacd5e465b2ec02195912acb183a451c2e7124674911b0d54bc02a953adb4942a1965eb371869fb0ddc6313a05b2b572 SHA512 9df502279583ea305e2d7a4cbe67c54cbcdb880f1caf010d582eea8839bda3bc6dd5e244bb79e848a70ad0c9fda9927cb8d9d8c5fc1bc49acc2da9e734543d7c -DIST nginx-1.30.2.tar.gz 1325247 BLAKE2B 0800ae2326753e2b6d551b03aaad8f2c0fecdce5d34c5497175ff173bcade0dfaf5f24ab3074fcdfe44ef60820e8e901f0461f4c0917cd07b5401424a5f8d64c SHA512 dbba779a15595a77f340795c3a06bf5f846f351a14738f36085b3251f053c6b2946f112640754b8470b541ca45319fb599111cffc06e5cf2ac2384e64d16348c -DIST nginx-1.30.3.tar.gz 1325830 BLAKE2B b50e47d3ef339f961f08eea4b2a2fe9067d4f346fc0f4659720c751e19fc08d66351f08c9af49e9eeb09e0b4bfa374edc573dbc865a1bcf6e4dd22f4325c54f4 SHA512 13b479cb2e80bbe7e0b977bd762e70b0cb95c7ce5dc80da61ab59fbcf2da19eca266dc82a8ef1a8b8c8c19c22948abd1aa6a3817bf490880ae175f7e2f692495 DIST nginx-1.30.4.tar.gz 1328314 BLAKE2B dfcc320f6798fd8991d73c44e5cde53f839dd43d8f169274a8e804c5aa3e7ed447f167a6d47b27caba8bbb11f34ea2cfe9ef685c6c9fba274bca6e3ed1232978 SHA512 48c21de65fa188137a4088d02c28e2533a7164040bf19281637e025012e6d03afcacb0ee15463a107685a2a221037f24ce15fc89c46b6f7a36b94443d3993bf1 -DIST nginx-1.31.1.tar.gz 1337505 BLAKE2B 855145c876537eac36cdcc1e6e3c83c9e2880769a14c3588a7413ebe2c8b8505c4541835027bd294e40a295611b6a701d4db362a6c2ce4d2ea30c9ae02e620ef SHA512 054f2aa86eff18b0633e80329d8595bf66d937b0bb55a90d4bbb4d64ece90b49429d9a572c31d8d8a4cdd019ffcc2b9fea3c10d2ff87e7005baa47335d9121f1 -DIST nginx-1.31.2.tar.gz 1339618 BLAKE2B b5b692269ee827a9e874a4aad8b3d8a71dad545d354e1732f1001de58727d37b96f441048f7834afea86d709d26b4600a72a60eb3d2574bca06e01ff03d1bba9 SHA512 590fcb78b0abe51c2810fd9cce4618c2871fce9cceda7e1f7e401979df793afd3fd89b26db369e269db62ea7fa73c447f45db4b08747219690f387e319afcdd0 DIST nginx-1.31.3.tar.gz 1344885 BLAKE2B 490a9af0d264ab23932e30f5c88b15675f2682bee66a678e1449a20adb63ab1e77b64cdcea7dad581c63234f3fdb31c1bb82da7f042fca3c146dbda5e5a04113 SHA512 ecd1acc9e02fc7ae800607850e1f057f84e1ec32525f19e64235dc6f45e5731fdb19dac91a2f83207e9c0de77b6756341ad41ba806e6c7773898797568a1bdfa -DIST nginx-auth-ldap-42d195d7a7575ebab1c369ad3fc5d78dc2c2669c.tar.gz 18457 BLAKE2B 22225ca9e5299b20ab5a93a001cac48e446bd86b3a24ac49e716bc975b128890bdb4b0dbbf5730fbaaeadfd958160093c7a6af798dd0e6de27062f149a760333 SHA512 ec59637fda5acac053e815cb1d04b545fc6b765e5ec63d8c2c9c301abad87afaa2698145acac08e9e14c91e1423ebff7aff0cca2b940b19ccccbf4cf53973269 -DIST nginx-tests-0b5ec15c62ed.tar.gz 282652 BLAKE2B af41397f88f7aa969749c6dd9a77c58d1835bca24fe764dd0af328d621817f5fb89b3f5b5c0fbd1e7db53d51365e9098b020005e27a531649bd8a51a05b3cbb0 SHA512 c376d23c7001c5203428b664c388e97956cdda8365eb7df57db0da5146d0806f5c35cd1352260d6803d55542f46a90da4a604ebf971055caa77dd6106930558e -DIST nginx-tests-0f72f59c40de9977bd8f3deff5d200e761b8b683.tar.gz 342145 BLAKE2B b89aea07ef6df58e36448dd43c891dbbc850ea378a53c7d945f743e359d2f7dbb626d694bab67459801a476bbacea4cd5a4928cb91ae2766ab6a675f2873e843 SHA512 c88e0384c76eaff380f37bb4210ae3ca5c2557758cdad132eff68e05ed4ef307d987a5d283f0778ee49d3ba76406e5b94e68a9119ca4f7f597188e0fd3c9c0ca -DIST nginx-tests-2993130953b28ff4d64ea75b5bd35c92c7e510f7.tar.gz 328153 BLAKE2B 1ed978c53adce580be0d77872edcc3f93097d47c447ec4984b775d80437249f896ab3422248218d4316a49d189c6a28c773e9624adef54b7c077739f1f064599 SHA512 30686b78f64f557b6d1a79280cb165c9a818b0e83578d371370099e6f5bb7769bb4842937bfe61a459678e29cf4d680be8ce5a5c63c1b9aa87989be81e6f80df +DIST nginx-1.31.5.tar.gz 1371858 BLAKE2B 0496e78644687116ea7a863bff318e612924f2cf0cae44c8774a02a7893a441b694dec38dd2c9d05aed4898b0003ee92c69f8cdcd207fc0f513a42e228d55af5 SHA512 282d4504fb99e11d1b1a946ea67dc5573506aa89ec75bcd12fbca54693b6e2b1cf3f59853d2e13f4e31c25a0ec1b2ebf248912ff7a24d7e27d7221aa478f0c2f DIST nginx-tests-466b8e27b9963b307ea6d4a198268d3d6a325ba6.tar.gz 351518 BLAKE2B d384209f2f8c7921dfbb904a5362477b1a1782222d11254a81fc7d3f8c1de487cfa568efcdb904f2785b4927c63d6abcbc8cbf3b2c85b9aba4a0c03fc74f06b5 SHA512 e63728d1063160d86e8bcb141bce68fb84ee2c01058bf308095905162f8dea2852efd5acaef87614a2c41dcfd53ab9e79c4143f223616972fdc24cf1fd1aa6e3 -DIST nginx-tests-4d1de3f357afeb91865d024b27516d6b67aad86e.tar.gz 349966 BLAKE2B 00c379997252506e7b2c29b8815455ede0b368f89b9e7ea69b090086e565e988542ab34fcef4764ca2d222457a2808e38d38eb3392bc1ddc8b041b388bcc774c SHA512 60a42f953f73bf375ea70105bbe1df9d55eb2230a5d9fd7d5ca1db5b5f6a012c87426b7ab80b6704122cad369c0cfe4f3f3bc148c6763e955bd603db0e33df04 -DIST nginx-tests-56ae49add9286d2e896a22bcfb880c7ea7c3964e.tar.gz 350052 BLAKE2B 572593991c083042304fdddd9deb9a6a7aeeb0d5cab4e2f21d1ca03085c7ee29428943c174e659df2f274f2bcfc32a1855fb05be4f43a8566ad85556029ce6f9 SHA512 603b81407604af1615de31d44dd7f25ae5dfd59dbb19214b1397359e3c36a0e880ed90a08118b4f201dc17b65d36a4f4a054ce868c9f7b06d9bf35cebb7aeeff -DIST nginx-tests-cf90a22921652731302e8a4dc2a88049c723377d.tar.gz 340698 BLAKE2B e9674d915d51ca79b8c405f5bb7dd3e148473338b2f25799fb51092858385defbd5bf6da150d20280a338f5d838d90966fa23ced7101224a292aec200a53d1c2 SHA512 aa756ac38249fa9dc1c54588ef826146024b7bcf5fe7a2fe1d82a46d55597653c41146ba3e743f954ed8ec7380698ecec31893b4fd7d3942f332304d6afe4c47 -DIST nginx-vod-module-1.33.tar.gz 471858 BLAKE2B fa5cb9fd185b30c5c53b25a6f103213b3d04dac5d2d81db72f9749a51548e09e3e17dccc636d748aff8d21c6623484c77fdeb10d70854480759665d140d42e0e SHA512 29ef77f1bbdb2410ff317ebdd7434f31b8ec370ae6b617b92e745e87c11bc820b451181d1d2b57156b414348da14ac448b689b32b17ab418144292eda094512d -DIST nginx_http_sticky_module_ng-1.2.6-10-g08a395c66e42.tar.bz2 124047 BLAKE2B d37ef9a15c91abe3c6258e420d1f99fa452f9d9966a0e13102174973314a3bac5413957a5fe632a9dcb1163b3be5df8116e05cc053ee061e19319ec25f341570 SHA512 6c1bfdcf89884b2855d51ae7da0f6e53a4ca3629e1aaf58433b70c07dcb2af797ba6e87d9b3eb4fe2fb6d4d697e862f2b4c2f8d8b3fdaea201740c97ec936529 -DIST ngx_brotli-1.0.0rc.tar.gz 16207 BLAKE2B 450d0ea693bd98d4a1b615f2cdcaad41ccd28266f6d80beec7fe77fe750ab8c5d1bb55aabe15161b9b6d819d2b4d99a7774f2706f2f6fd084b52a7c7dddbc00c SHA512 05a880d5e48ac83be84498ed41fb4750211b827a9d7541acfd6ef494e5205a6e853d5594bfec3ab4ae668ea3f803e4f4b0ba550c76811971c8e266e42663c56d -DIST ngx_devel_kit-0.3.1.tar.gz 66542 BLAKE2B 8242d884464d99a131a48f599f9d0c2b546610f73f646e7eb0dcfdb98220810d949189cffa721360ddbe3b7b8adc8b678a848b9d1a56db6c62fd4439ecb63d24 SHA512 de1e3349d8dd08e5982279b2219dc8a8006739f0409b8e0f5c50d93434beff1fbafba43e9c5ac85a5fab90afc5c0a7244a340610339c36f82f2cba7233e72de9 -DIST ngx_http_auth_pam-1.5.2.tar.gz 7016 BLAKE2B 1efc8d2d12aa09a2b2a36f6f6d0132ac21fcd1720a2843ce598450198e2b7fe902e9ded15a78b66e8a897e811faa872e4e391bf211c795e320c1ccd57607c319 SHA512 b82e401533c44298c41bc9a1caaf3f7850e42da151c06a77a927f817810ebf5ce01c49ca81de42c326345765c784bb55e28fbf0f6a5500626f51e58a216b53c4 -DIST ngx_http_cache_purge-2.3.tar.gz 12248 BLAKE2B f83b267f4c19a9d4af5964522695814c164d200ecd4108bf8f6b5c21388eba8af989bdda646dee18a03174211e8c090a04736bbeb44043cb0e19fbccdc66278e SHA512 50a31dbf2216a6fae74a186af56dec4600cf55777e76a10ac0075f609e7737135aab063a64f2590dddcd0369ebebd4a523027f3d9ebcca74f7b4355be1c5dcc0 -DIST ngx_http_cache_purge-2.5.3.tar.gz 17156 BLAKE2B 50aaaa0bb89975cc912845909085b80c6bcc9adf73b619a7a3034ccf19bee64c891dc15310e0e09e1601125ab5809a33a5af18413d8d5717090c631f31174eec SHA512 aebc9b19a3e7dda3b57e6bd6d86a5ab66d25e05cf5c6c99c71234c789700eb9da8e29529b8b2abf3d775ff3c2610e695fc88e647738769f0d3730bcafc3be38b -DIST ngx_http_dav_ext-3.0.0.tar.gz 14558 BLAKE2B 0d370bfe34600d43a540dd19a386aa52ce135b2eae14e4e108a359d5ff3405939130d1c802062c7523057ec35d38322d3fbed8c13deb58ce7a08ebf9e3f106d4 SHA512 d0193ba90f1ef46c4e470630c4394bdf99d94fd2e3bd8be6cb2ba1655ec59944b1269025f032b79dc2c6dad366e54389ef6a6da2ddeb91d535a4027f2162fbde -DIST ngx_http_echo-0.63.tar.gz 53421 BLAKE2B 613d4f265b9bcf9b4a44a18749314075e797dca4b350e6c4bc2e7ddd52edadc52660504ee57d0c859ec0a20f6b2e425727e5ec4b30282e67498010fc8d959baa SHA512 c325ac4e3f3f735739e156d8c7ada503b34475c62533b4830231ff1b42c25cb0c841aae06b3448b589c2ab35da8d211436ed194d6fd062cad925af8152c5e789 -DIST ngx_http_fancyindex-0.4.4.tar.gz 26292 BLAKE2B a1ed76cb31cd4f7a349bcbe63d75f8e00331d0ba4ee9b7b1df41dac77fe64ebe6c72a6fd5f6ebc9de53e8d3a8a2ad5185fbaa533d8ff008fcf92f6956f267d80 SHA512 bf8ebb188c10fee5e6ebcb338fe20fdf859bb88d9b2b0e3da6f3e2f1847738d30760d2642d0dfe257092bdf2399b561631556a3a8e2fb33dc9cd0c59d371c173 -DIST ngx_http_geoip2_module-3.4.tar.gz 8877 BLAKE2B cd59ebbd2ca47f6af0b22b8b91768053d2c991f7adf19941625e3570d81dcb73989101795d641e4efce1eed37d454bca73d603b5d0e4511e3bd63100c7acf750 SHA512 18dea21e5ae2647bea1fc448058a1b773c936917245edef8d861d5e23ed92e9a3b1ec4ef43ffb2ece7b5899d787910adcf4fbd39f84d7e8d7c54759e2fee5b72 -DIST ngx_http_headers_more-0.34.tar.gz 28827 BLAKE2B 48badf603b93601b11c837057760f768ef2579062786bb366795617635747b654cecafa3a230eec1a3e442ab768fb068867ceb93385b14b6452b621764acfd3f SHA512 2c0c140feeb29f0154a223dc3020ff956f894d63e0232a7bc0ca33fcb26f8b807bda868159ae30b6cac7456ec25b831c3d299ea18e234202ae5d14c1ff471a4b -DIST ngx_http_lua-0.10.25.tar.gz 725616 BLAKE2B b7b766adb76d39edf4ed1fcebea4d696c30b53885923c12e06b6417a63ad5c7e7d926bab8c865b5900b92b3b43126b4d30f92ac6ec941e733f197e5295a0f406 SHA512 01943f2b789b4e385592707f2769a5f4da668415ef9bd0c5263face2fb4146a28137fb8ab8b55056240dad034780601b7966913951cc0c77f4b3aa9eab50ae40 -DIST ngx_http_naxsi-4140b2ded624eb36f04c783c460379b9403012d0.tar.gz 166325 BLAKE2B f80353bfc1f3fc009b847de1c1c5d623a84682efc588649cbd156f669336c95f337442ebf350c79321bf59477215f083817929f13550b22dc7f393583aa16ba1 SHA512 6d6565189d9fabdcf318270107455bb4915d2a43284fb2f77b5cf025a4b4843e990c1c1dbc254e0f3879ca7d30ac7bcd7eb8637f491d5b7f05193aa9865be7cc -DIST ngx_http_naxsi_libinjection-49904c42a6e68dc8f16c022c693e897e4010a06c.tar.gz 2123473 BLAKE2B 69208f09ca9f10f59f53a3e949894ebc6e51b0ed5708e551759fd8fbc002c83f5a0462fd22eaf52cae290992633729f47403b33c41539437e40700fb7763ac2a SHA512 ed643aaed8d70dae028ec3df48be3aa2c03955073039cd14fb6187bf162cfee9131ab3e5900ddc349526b171f4da0e01e13b39a669cb85838c1f254476a3c1b8 -DIST ngx_http_push_stream-8c02220d484d7848bc8e3a6d9b1c616987e86f66.tar.gz 196994 BLAKE2B 90baeb4fb03aeb309bcf1a987420067ca81843ff9b85b8fc26ba703741571e631826e5928a439a3ae79f2f5e369a3acb2cd803789308642ae757d67722ac7f33 SHA512 ad5424d65909d1cf0c2b64d7a4bc3123f4d3e240f1c9d611f6b6fc41167d169f474c723b1c327d42bd295f973a6365ad32e3f095b8c7c7cddc7e54aea138ca31 -DIST ngx_http_slowfs_cache-1.10.tar.gz 11809 BLAKE2B 54ec1bd0d1cc43cdaafc93ebd46b33374c57351c7f022eae0351d6961680abb03d896e7f058e67c43c4fee300253354feccb92d00e62bf91250e251e1860ec03 SHA512 fbc9609a8d6913aeefe535f206b9e53477503f131934ead2ae5a6169e395af2f5fb54778704824d5eeb22a4ef40a11ebbcde580db62a631f70edcc2cfc06b15d -DIST ngx_http_upload_progress-68b3ab3b64a0cee7f785d161401c8be357bbed12.tar.gz 17379 BLAKE2B 4790657b3f207eca460a26f5c4d1139dcd495e29fffedab8d716105e6dc3039cbeeecf5f6005d364470951e25b472860b46e3e08bc9573a5a7b4a23f53532f8a SHA512 6603e15aa33edca5e647fd04b4f008f1729c78c527be262ef481890f37a6d57e89609cebfb7459fad18b249024fbe3722e09473987401e8d8dfdd7cf50e4df4f -DIST ngx_http_upstream_check-9aecf15ec379fe98f62355c57b60c0bc83296f04.tar.gz 130073 BLAKE2B 3c93cef79425a46e22ae39adf13d5ebb0e5d36f5d6be8555ec068dd0017918f5355d82fbbe90ba934e58c52e89c2096e24012f75390c7159d1ebacfaaa112308 SHA512 fad2a0d3ac332b6e67c52e3525f6df8a432df3e92bc173190b8107fba7f24476ab9dae4824630299af68c15e856409bd47a3a79fb5b65e03a5133eb90142b8fc -DIST ngx_http_vhost_traffic_status-0.2.1.tar.gz 179679 BLAKE2B 3f0f950745695997232f4ae07487e58d798a3a4f2cd0ba8d922865a39e010e1282932469fbeee615a115358f1e9e36f67876fa507fbefb7c146d701ea68a864d SHA512 fadd4727ffc56111b443364d90e5b0597f09b25006404b11377586f0ed754f5a85e0b84796360be927bd455f43eb28e18004991f086b611146cd340937a6e5e9 -DIST ngx_memc_module-0.19.tar.gz 34654 BLAKE2B 536384c264d88535179634d459d3a47b1d9b11885fbce46fbe9fa4df3dce365320b5963c56aecde3b0039d4f9954943d95f25c5f4fada6256861257f82ebbb12 SHA512 a64ec8dffcd011db2cd12b501271bf5c408f2f31fd2bf477b8db4e88adc5bb5732c4c2181ed8378cab6a937869d8f747ef52b22fe256c90df8440b91890edbe7 -DIST ngx_metrics-0.1.1.tar.gz 2964 BLAKE2B 95d71ea26c949c345b83e353bd66a20df18cc8b2b93f692615a1b39c1f327393647f80e7a27e6929799a6e7e3469b61e1cd72f7821f7a820da4dd7cd9a96d85c SHA512 d36a8fb0104c83b6b564e03b351aa750cab08650264c74d6f786af357bfb7006b531a93270dd961896ea8dafe27e5db8548ede714c5f52c4742876bc73af4b5e -DIST ngx_mogilefs_module-1.0.4.tar.gz 11208 BLAKE2B e0729b66554c8890727190a624d4c9aef6499dfc2e301541a9bfc15690caf6d3155c8a4b8f7a1555a7655b47aa0cd1b797aeb8ba82efa92ab80808218a0bdcff SHA512 b8cb7eaf6274f4e2247dbcb39db05072d2b2d4361256a325fafab5533d7ce0c4ae9e2905b954dfcfa4789c9cab5cccf2ac1c3a1f02f6a327ed95b562d7773ed1 -DIST ngx_rtmp-1.2.2.tar.gz 519934 BLAKE2B 8745816b879f506720955d6c7e5e8af036e88b3601a680071ffb255a3ec31d69e132b5cc8b493202fa985eb30b8529428f683b5154a0054c0ee990d3185c7abf SHA512 3f8c803221854c4b1a06aadc6313fbfec74bd7179c0ee51d4365b26ffa8875881a6e1e48f777a9c9efbb9170ab7478a82920d5448a2c2df485503d37bb03ab81 -DIST njs-0.8.10.tar.gz 942446 BLAKE2B cad84d599f223e143f9e21ec01e40d0aa14a97b6ca2c1e9e2a17cd0806699e1ba04bb03b0840c6bcf0198d38fd3a11adf3f442bf7399fe16933e7ec5fec0672b SHA512 71bcd596383ff501514adcf9baa0fd4d5cd0d3b53b2cdeee7e64b094ba12f6ee0f8fe99849dd8ad71afb6212566253ebdca2b83713d026ddfed3fe7902a5e906 +DIST nginx-tests-9f1db4a63b14d2898652493735987d30ea61736f.tar.gz 355301 BLAKE2B aaf61ab18487b13ea8e8b2c7efbda3a9bea7b6b8b26736eeaecedca6b7cafb46b9edd6ce23096aa0000ec781ed9f3f9cb185733ea8e8b713b1526db565371fd7 SHA512 ab2fcb261e68ea65ef7424a597e61a8cf72a0dcc3ac12efcff1d54a29181fa686dd9bd890cf4980d9a9689109ca25896a958f7274370039ee342d54354037881 diff --git a/www-servers/nginx/files/http_brotli-detect-brotli-r3.patch b/www-servers/nginx/files/http_brotli-detect-brotli-r3.patch deleted file mode 100644 index 9ccb8c2379fb..000000000000 --- a/www-servers/nginx/files/http_brotli-detect-brotli-r3.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- a/filter/config -+++ b/filter/config -@@ -42,22 +42,13 @@ fi - ngx_module_type=HTTP_FILTER - ngx_module_name=ngx_http_brotli_filter_module - --brotli="$ngx_addon_dir/deps/brotli/c" --if [ ! -f "$brotli/include/brotli/encode.h" ]; then -- brotli="/usr/local" --fi --if [ ! -f "$brotli/include/brotli/encode.h" ]; then -- brotli="/usr" --fi -+brotli=$(pkg-config --variable=prefix libbrotlienc) -+ - if [ ! -f "$brotli/include/brotli/encode.h" ]; then - cat << END - - $0: error: \ --Brotli library is missing from the $brotli directory. -- --Please make sure that the git submodule has been checked out: -- -- cd $ngx_addon_dir && git submodule update --init && cd $PWD -+Brotli library not found. Don't you have app-arch/brotli installed? - - END - exit 1 diff --git a/www-servers/nginx/files/http_cache_purge-1.11.6+.patch b/www-servers/nginx/files/http_cache_purge-1.11.6+.patch deleted file mode 100644 index c4596bf97ad1..000000000000 --- a/www-servers/nginx/files/http_cache_purge-1.11.6+.patch +++ /dev/null @@ -1,22 +0,0 @@ -Fix compatibility with nginx-1.11.6+ - -https://github.com/FRiCKLE/ngx_cache_purge/pull/51 - ---- - ngx_cache_purge_module.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/ngx_cache_purge_module.c -+++ b/ngx_cache_purge_module.c -@@ -492,7 +492,11 @@ typedef struct { - ngx_str_t body_source; - # endif /* nginx_version < 1007008 */ - -+# if (nginx_version >= 1011006) -+ ngx_http_complex_value_t *method; -+# else - ngx_str_t method; -+# endif /* nginx_version >= 1011006 */ - ngx_str_t location; - ngx_str_t url; - diff --git a/www-servers/nginx/files/http_security-nginx-1.26.2.patch b/www-servers/nginx/files/http_security-nginx-1.26.2.patch deleted file mode 100644 index 26e3ea6046f0..000000000000 --- a/www-servers/nginx/files/http_security-nginx-1.26.2.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 7d37ace7431ea9704faa98f29876bcd72ef4b1ff Mon Sep 17 00:00:00 2001 -From: Ervin Hegedus <airween@gmail.com> -Date: Tue, 23 Apr 2024 21:42:02 +0200 -Subject: [PATCH] fix: Added missing header for conftest - ---- - config | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/config b/config -index c6e7467..3bf06a8 100644 ---- a/config -+++ b/config -@@ -10,7 +10,8 @@ - - ngx_feature_name= - ngx_feature_run=no --ngx_feature_incs="#include <modsecurity/modsecurity.h>" -+ngx_feature_incs="#include <modsecurity/modsecurity.h> -+#include <stdio.h>" - ngx_feature_libs="-lmodsecurity" - ngx_feature_test='printf("hello");' - ngx_modsecurity_opt_I= --- -2.26.2 - diff --git a/www-servers/nginx/files/http_sticky-nginx-1.23.0.patch b/www-servers/nginx/files/http_sticky-nginx-1.23.0.patch deleted file mode 100644 index da6126eacabb..000000000000 --- a/www-servers/nginx/files/http_sticky-nginx-1.23.0.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 105c946c0c1af93099502417784888acf60da540 Mon Sep 17 00:00:00 2001 -From: Younes El-karama <yelkarama@gmail.com> -Date: Sat, 2 Jul 2022 04:56:12 +0000 -Subject: [PATCH] make it compatible with nginx 1.23 - ---- - ngx_http_sticky_module.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ngx_http_sticky_module.c b/ngx_http_sticky_module.c -index c9a0a04..37b5bc3 100644 ---- a/ngx_http_sticky_module.c -+++ b/ngx_http_sticky_module.c -@@ -204,7 +204,7 @@ static ngx_int_t ngx_http_init_sticky_peer(ngx_http_request_t *r, ngx_http_upstr - iphp->request = r; - - /* check weather a cookie is present or not and save it */ -- if (ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &iphp->sticky_conf->cookie_name, &route) != NGX_DECLINED) { -+ if (ngx_http_parse_multi_header_lines(r, r->headers_in.cookie, &iphp->sticky_conf->cookie_name, &route) != NULL) { - /* a route cookie has been found. Let's give it a try */ - ngx_log_debug(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "[sticky/init_sticky_peer] got cookie route=%V, let's try to find a matching peer", &route); - --- -2.36.1 - diff --git a/www-servers/nginx/files/http_uploadprogress-nginx-1.23.0.patch b/www-servers/nginx/files/http_uploadprogress-nginx-1.23.0.patch deleted file mode 100644 index 3635aa45b53d..000000000000 --- a/www-servers/nginx/files/http_uploadprogress-nginx-1.23.0.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff -pNura http-uploadprogress.orig/ngx_http_uploadprogress_module.c http-uploadprogress/ngx_http_uploadprogress_module.c ---- http-uploadprogress.orig/ngx_http_uploadprogress_module.c 2020-10-03 02:05:45.000000000 +0700 -+++ http-uploadprogress/ngx_http_uploadprogress_module.c 2022-06-24 16:24:16.196626939 +0700 -@@ -550,12 +550,12 @@ ngx_http_reportuploads_handler(ngx_http_ - ngx_chain_t out; - ngx_int_t rc, found=0, done=0, err_status=0; - off_t rest=0, length=0; -- ngx_uint_t len, i; -+ ngx_uint_t len; - ngx_slab_pool_t *shpool; - ngx_http_uploadprogress_conf_t *upcf; - ngx_http_uploadprogress_ctx_t *ctx; - ngx_http_uploadprogress_node_t *up; -- ngx_table_elt_t *expires, *cc, **ccp; -+ ngx_table_elt_t *expires, *cc; - ngx_http_uploadprogress_state_t state; - ngx_http_uploadprogress_template_t *t; - -@@ -628,6 +628,7 @@ ngx_http_reportuploads_handler(ngx_http_ - } - - r->headers_out.expires = expires; -+ expires->next = NULL; - - expires->hash = 1; - expires->key.len = sizeof("Expires") - 1; -@@ -637,37 +638,30 @@ ngx_http_reportuploads_handler(ngx_http_ - len = sizeof("Mon, 28 Sep 1970 06:00:00 GMT"); - expires->value.len = len - 1; - -- ccp = r->headers_out.cache_control.elts; -- if (ccp == NULL) { -+ cc = r->headers_out.cache_control; - -- if (ngx_array_init(&r->headers_out.cache_control, r->pool, -- 1, sizeof(ngx_table_elt_t *)) -- != NGX_OK) { -- return NGX_HTTP_INTERNAL_SERVER_ERROR; -- } -- -- ccp = ngx_array_push(&r->headers_out.cache_control); -- if (ccp == NULL) { -- return NGX_HTTP_INTERNAL_SERVER_ERROR; -- } -+ if (cc == NULL) { - - cc = ngx_list_push(&r->headers_out.headers); - if (cc == NULL) { -+ expires->hash = 0; - return NGX_HTTP_INTERNAL_SERVER_ERROR; - } - -+ r->headers_out.cache_control = cc; -+ cc->next = NULL; -+ - cc->hash = 1; - cc->key.len = sizeof("Cache-Control") - 1; - cc->key.data = (u_char *) "Cache-Control"; - -- *ccp = cc; -- - } else { -- for (i = 1; i < r->headers_out.cache_control.nelts; i++) { -- ccp[i]->hash = 0; -+ for (cc = cc->next; cc; cc = cc->next) { -+ cc->hash = 0; - } - -- cc = ccp[0]; -+ cc = r->headers_out.cache_control; -+ cc->next = NULL; - } - - expires->value.data = (u_char *) "Thu, 01 Jan 1970 00:00:01 GMT"; diff --git a/www-servers/nginx/files/http_upstream_check-nginx-1.11.5+.patch b/www-servers/nginx/files/http_upstream_check-nginx-1.11.5+.patch deleted file mode 100644 index a894bde8ec34..000000000000 --- a/www-servers/nginx/files/http_upstream_check-nginx-1.11.5+.patch +++ /dev/null @@ -1,246 +0,0 @@ -Upstream: https://github.com/yaoweibin/nginx_upstream_check_module/pull/119 - -diff --git src/http/modules/ngx_http_upstream_hash_module.c src/http/modules/ngx_http_upstream_hash_module.c -index 6c28c64..a187887 100644 ---- src/http/modules/ngx_http_upstream_hash_module.c -+++ src/http/modules/ngx_http_upstream_hash_module.c -@@ -9,6 +9,9 @@ - #include <ngx_core.h> - #include <ngx_http.h> - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+#include "ngx_http_upstream_check_module.h" -+#endif - - typedef struct { - uint32_t hash; -@@ -235,6 +238,16 @@ ngx_http_upstream_get_hash_peer(ngx_peer_connection_t *pc, void *data) - goto next; - } - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0, -+ "get hash peer, check_index: %ui", -+ peer->check_index); -+ if (ngx_http_upstream_check_peer_down(peer->check_index)) { -+ goto next; -+ } -+#endif -+ -+ - if (peer->max_fails - && peer->fails >= peer->max_fails - && now - peer->checked <= peer->fail_timeout) -@@ -538,6 +551,15 @@ ngx_http_upstream_get_chash_peer(ngx_peer_connection_t *pc, void *data) - continue; - } - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0, -+ "get consistent_hash peer, check_index: %ui", -+ peer->check_index); -+ if (ngx_http_upstream_check_peer_down(peer->check_index)) { -+ continue; -+ } -+#endif -+ - if (peer->server.len != server->len - || ngx_strncmp(peer->server.data, server->data, server->len) - != 0) -diff --git src/http/modules/ngx_http_upstream_ip_hash_module.c src/http/modules/ngx_http_upstream_ip_hash_module.c -index 296108f..135ce5d 100644 ---- src/http/modules/ngx_http_upstream_ip_hash_module.c -+++ src/http/modules/ngx_http_upstream_ip_hash_module.c -@@ -9,6 +9,9 @@ - #include <ngx_core.h> - #include <ngx_http.h> - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+#include "ngx_http_upstream_check_module.h" -+#endif - - typedef struct { - /* the round robin data must be first */ -@@ -205,6 +208,15 @@ ngx_http_upstream_get_ip_hash_peer(ngx_peer_connection_t *pc, void *data) - goto next; - } - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0, -+ "get ip_hash peer, check_index: %ui", -+ peer->check_index); -+ if (ngx_http_upstream_check_peer_down(peer->check_index)) { -+ goto next; -+ } -+#endif -+ - if (peer->max_fails - && peer->fails >= peer->max_fails - && now - peer->checked <= peer->fail_timeout) -diff --git src/http/modules/ngx_http_upstream_least_conn_module.c src/http/modules/ngx_http_upstream_least_conn_module.c -index ebe0627..94f1883 100644 ---- src/http/modules/ngx_http_upstream_least_conn_module.c -+++ src/http/modules/ngx_http_upstream_least_conn_module.c -@@ -9,6 +9,10 @@ - #include <ngx_core.h> - #include <ngx_http.h> - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+#include "ngx_http_upstream_check_module.h" -+#endif -+ - - static ngx_int_t ngx_http_upstream_init_least_conn_peer(ngx_http_request_t *r, - ngx_http_upstream_srv_conf_t *us); -@@ -147,6 +151,16 @@ ngx_http_upstream_get_least_conn_peer(ngx_peer_connection_t *pc, void *data) - continue; - } - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0, -+ "get least_conn peer, check_index: %ui", -+ peer->check_index); -+ -+ if (ngx_http_upstream_check_peer_down(peer->check_index)) { -+ continue; -+ } -+#endif -+ - if (peer->max_fails - && peer->fails >= peer->max_fails - && now - peer->checked <= peer->fail_timeout) -@@ -202,6 +216,16 @@ ngx_http_upstream_get_least_conn_peer(ngx_peer_connection_t *pc, void *data) - continue; - } - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0, -+ "get least_conn peer, check_index: %ui", -+ peer->check_index); -+ -+ if (ngx_http_upstream_check_peer_down(peer->check_index)) { -+ continue; -+ } -+#endif -+ - if (peer->conns * best->weight != best->conns * peer->weight) { - continue; - } -diff --git src/http/ngx_http_upstream_round_robin.c src/http/ngx_http_upstream_round_robin.c -index 0137bf6..99f0923 100644 ---- src/http/ngx_http_upstream_round_robin.c -+++ src/http/ngx_http_upstream_round_robin.c -@@ -9,6 +9,9 @@ - #include <ngx_core.h> - #include <ngx_http.h> - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+#include "ngx_http_upstream_check_module.h" -+#endif - - #define ngx_http_upstream_tries(p) ((p)->number \ - + ((p)->next ? (p)->next->number : 0)) -@@ -97,7 +100,14 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf, - peer[n].fail_timeout = server[i].fail_timeout; - peer[n].down = server[i].down; - peer[n].server = server[i].name; -- -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ if (!server[i].down) { -+ peer[n].check_index = -+ ngx_http_upstream_check_add_peer(cf, us, &server[i].addrs[j]); -+ } else { -+ peer[n].check_index = (ngx_uint_t) NGX_ERROR; -+ } -+#endif - *peerp = &peer[n]; - peerp = &peer[n].next; - n++; -@@ -161,7 +171,15 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf, - peer[n].fail_timeout = server[i].fail_timeout; - peer[n].down = server[i].down; - peer[n].server = server[i].name; -- -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ if (!server[i].down) { -+ peer[n].check_index = -+ ngx_http_upstream_check_add_peer(cf, us, &server[i].addrs[j]); -+ } -+ else { -+ peer[n].check_index = (ngx_uint_t) NGX_ERROR; -+ } -+#endif - *peerp = &peer[n]; - peerp = &peer[n].next; - n++; -@@ -228,6 +246,9 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf, - peer[i].max_conns = 0; - peer[i].max_fails = 1; - peer[i].fail_timeout = 10; -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ peer[i].check_index = (ngx_uint_t) NGX_ERROR; -+#endif - *peerp = &peer[i]; - peerp = &peer[i].next; - } -@@ -344,6 +365,9 @@ ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r, - peer[0].max_conns = 0; - peer[0].max_fails = 1; - peer[0].fail_timeout = 10; -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ peer[0].check_index = (ngx_uint_t) NGX_ERROR; -+#endif - peers->peer = peer; - - } else { -@@ -378,6 +402,9 @@ ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r, - peer[i].max_conns = 0; - peer[i].max_fails = 1; - peer[i].fail_timeout = 10; -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ peer[i].check_index = (ngx_uint_t) NGX_ERROR; -+#endif - *peerp = &peer[i]; - peerp = &peer[i].next; - } -@@ -443,6 +470,12 @@ ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, void *data) - goto failed; - } - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ if (ngx_http_upstream_check_peer_down(peer->check_index)) { -+ goto failed; -+ } -+#endif -+ - rrp->current = peer; - - } else { -@@ -537,6 +570,12 @@ ngx_http_upstream_get_peer(ngx_http_upstream_rr_peer_data_t *rrp) - continue; - } - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ if (ngx_http_upstream_check_peer_down(peer->check_index)) { -+ continue; -+ } -+#endif -+ - if (peer->max_fails - && peer->fails >= peer->max_fails - && now - peer->checked <= peer->fail_timeout) -diff --git src/http/ngx_http_upstream_round_robin.h src/http/ngx_http_upstream_round_robin.h -index 45f258d..dee91d0 100644 ---- src/http/ngx_http_upstream_round_robin.h -+++ src/http/ngx_http_upstream_round_robin.h -@@ -38,6 +38,10 @@ struct ngx_http_upstream_rr_peer_s { - ngx_msec_t slow_start; - ngx_msec_t start_time; - -+#if (NGX_HTTP_UPSTREAM_CHECK) -+ ngx_uint_t check_index; -+#endif -+ - ngx_uint_t down; - - #if (NGX_HTTP_SSL || NGX_COMPAT) diff --git a/www-servers/nginx/files/nginx-1.23.2-mod_auth_ldap-fix.patch b/www-servers/nginx/files/nginx-1.23.2-mod_auth_ldap-fix.patch deleted file mode 100644 index b3b4cf4b33c4..000000000000 --- a/www-servers/nginx/files/nginx-1.23.2-mod_auth_ldap-fix.patch +++ /dev/null @@ -1,21 +0,0 @@ -From f0a5f61d9aad59c23e2c877094a8f17c43bee5b5 Mon Sep 17 00:00:00 2001 -From: freultwah <631910+freultwah@users.noreply.github.com> -Date: Tue, 23 Aug 2022 18:09:45 +0300 -Subject: [PATCH] Make the module not crash with nginx >1.23.* - ---- - ngx_http_auth_ldap_module.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/ngx_http_auth_ldap_module.c b/ngx_http_auth_ldap_module.c -index 2f4e592..83b481c 100644 ---- a/ngx_http_auth_ldap_module.c -+++ b/ngx_http_auth_ldap_module.c -@@ -1779,6 +1779,7 @@ ngx_http_auth_ldap_set_realm(ngx_http_request_t *r, ngx_str_t *realm) - } - - r->headers_out.www_authenticate->hash = 1; -+ r->headers_out.www_authenticate->next = NULL; - r->headers_out.www_authenticate->key.len = sizeof("WWW-Authenticate") - 1; - r->headers_out.www_authenticate->key.data = (u_char *) "WWW-Authenticate"; - r->headers_out.www_authenticate->value = *realm; diff --git a/www-servers/nginx/files/nginx-1.4.1-fix-perl-install-path.patch b/www-servers/nginx/files/nginx-1.4.1-fix-perl-install-path.patch deleted file mode 100644 index 601a79ba8a0f..000000000000 --- a/www-servers/nginx/files/nginx-1.4.1-fix-perl-install-path.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/auto/lib/perl/make b/auto/lib/perl/make -index 260bd95..857ece6 100644 ---- a/auto/lib/perl/make -+++ b/auto/lib/perl/make -@@ -35,6 +35,8 @@ $NGX_OBJS/src/http/modules/perl/Makefile: \\ - NGX_DEPS="\$(CORE_DEPS) \$(HTTP_DEPS)" \\ - $NGX_PERL Makefile.PL \\ - LIB=$NGX_PERL_MODULES \\ -+ PREFIX=$NGX_PREFIX \\ -+ INSTALLDIRS=vendor \\ - INSTALLSITEMAN3DIR=$NGX_PERL_MODULES_MAN - - END diff --git a/www-servers/nginx/files/nginx.conf-r3 b/www-servers/nginx/files/nginx.conf-r3 deleted file mode 100644 index f851bbf8934e..000000000000 --- a/www-servers/nginx/files/nginx.conf-r3 +++ /dev/null @@ -1,72 +0,0 @@ -user nginx nginx; -worker_processes 1; - -error_log /var/log/nginx/error_log info; - -events { - worker_connections 1024; - use epoll; -} - -http { - include /etc/nginx/mime.types.nginx; - types_hash_max_size 4096; - default_type application/octet-stream; - - log_format main - '$remote_addr - $remote_user [$time_local] ' - '"$request" $status $bytes_sent ' - '"$http_referer" "$http_user_agent" ' - '"$gzip_ratio"'; - - client_header_timeout 10m; - client_body_timeout 10m; - send_timeout 10m; - - connection_pool_size 256; - client_header_buffer_size 1k; - large_client_header_buffers 4 2k; - request_pool_size 4k; - - gzip off; - - output_buffers 1 32k; - postpone_output 1460; - - sendfile on; - tcp_nopush on; - tcp_nodelay on; - - keepalive_timeout 75 20; - - ignore_invalid_headers on; - - index index.html; - - server { - listen 127.0.0.1; - server_name localhost; - - access_log /var/log/nginx/localhost.access_log main; - error_log /var/log/nginx/localhost.error_log info; - - root /var/www/localhost/htdocs; - } - - # SSL example - #server { - # listen 127.0.0.1:443; - # server_name localhost; - - # ssl on; - # ssl_certificate /etc/ssl/nginx/nginx.pem; - # ssl_certificate_key /etc/ssl/nginx/nginx.key; - - # access_log /var/log/nginx/localhost.ssl_access_log main; - # error_log /var/log/nginx/localhost.ssl_error_log info; - - # root /var/www/localhost/htdocs; - #} - - include /etc/nginx/*_vhost.conf; -} diff --git a/www-servers/nginx/files/nginx.confd b/www-servers/nginx/files/nginx.confd deleted file mode 100644 index 478ad588f4e4..000000000000 --- a/www-servers/nginx/files/nginx.confd +++ /dev/null @@ -1,35 +0,0 @@ -# /etc/conf.d/nginx - -# Configuration file -#NGINX_CONFIGFILE="/etc/nginx/nginx.conf" - -# PID file -# If you should ever change this, remember to update -# "/etc/logrotate.d/nginx", too. -#NGINX_PIDFILE="/run/nginx/nginx.pid" - -# User to run nginx as -# If you should ever change this, make sure this user has -# execution permission on any of your log directories -# (/var/log/nginx per default) but do NOT forget other log directories -# one of your vhost(s) maybe using or logging after logrotation will -# be broken). -#NGINX_USER="nginx" - -# Group to run nginx as -# See the note above regarding NGINX_USER. -#NGINX_GROUP="nginx" - -# You can use this configuration option to pass additional options to the -# start-stop-daemon, see start-stop-daemon(8) for more details. -# Per default we wait 1000ms after we have started the service to ensure -# that the daemon is really up and running. -#NGINX_SSDARGS="--wait 1000" - -# The termination timeout (start-stop-daemon parameter "retry") ensures -# that the service will be terminated within a given time (60 + 5 seconds -# per default) when you are stopping the service. -#NGINX_TERMTIMEOUT="TERM/60/KILL/5" - -# Run master process as user (requires configuration with setcap) -#command_user="${NGINX_USER:-nginx}" diff --git a/www-servers/nginx/files/nginx.initd-r4 b/www-servers/nginx/files/nginx.initd-r4 deleted file mode 100644 index c9896289975f..000000000000 --- a/www-servers/nginx/files/nginx.initd-r4 +++ /dev/null @@ -1,94 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -extra_commands="configtest" -extra_started_commands="upgrade reload" - -description="Robust, small and high performance http and reverse proxy server" -description_configtest="Run nginx' internal config check." -description_upgrade="Upgrade the nginx binary without losing connections." -description_reload="Reload the nginx configuration without losing connections." - -NGINX_CONFIGFILE=${NGINX_CONFIGFILE:-/etc/nginx/nginx.conf} - -command="/usr/sbin/nginx" -command_args="-c \"${NGINX_CONFIGFILE}\"" -start_stop_daemon_args=${NGINX_SSDARGS:-"--wait 1000"} -pidfile=${NGINX_PIDFILE:-/run/nginx/nginx.pid} -user=${NGINX_USER:-nginx} -group=${NGINX_GROUP:-nginx} -retry=${NGINX_TERMTIMEOUT:-"TERM/60/KILL/5"} - -depend() { - need net - use dns logger netmount -} - -start_pre() { - mkdir -m 0775 -p "/run/nginx" - chown -R "${user}:${group}" "/run/nginx" - if [ "${RC_CMD}" != "restart" ]; then - configtest || return 1 - fi -} - -stop_pre() { - if [ "${RC_CMD}" = "restart" ]; then - configtest || return 1 - fi -} - -stop_post() { - rm -f ${pidfile} -} - -reload() { - configtest || return 1 - ebegin "Refreshing nginx' configuration" - start-stop-daemon --signal SIGHUP --pidfile "${pidfile}" - eend $? "Failed to reload nginx" -} - -upgrade() { - configtest || return 1 - ebegin "Upgrading nginx" - - einfo "Sending USR2 to old binary" - start-stop-daemon --signal SIGUSR2 --pidfile "${pidfile}" - - einfo "Sleeping 3 seconds before pid-files checking" - sleep 3 - - if [ ! -f "${pidfile}.oldbin" ]; then - eerror "File with old pid not found" - return 1 - fi - - if [ ! -f "${pidfile}" ]; then - eerror "New binary failed to start" - return 1 - fi - - einfo "Sleeping 3 seconds before WINCH" - sleep 3 - # Cannot send "WINCH" using start-stop-daemon yet, https://bugs.gentoo.org/604986 - kill -WINCH $(cat "${pidfile}.oldbin") - - einfo "Sending QUIT to old binary" - start-stop-daemon --signal SIGQUIT --pidfile "${pidfile}.oldbin" - - einfo "Upgrade completed" - eend $? "Upgrade failed" -} - -configtest() { - ebegin "Checking nginx' configuration" - ${command} -c "${NGINX_CONFIGFILE}" -t -q - - if [ $? -ne 0 ]; then - ${command} -c "${NGINX_CONFIGFILE}" -t - fi - - eend $? "failed, please correct errors above" -} diff --git a/www-servers/nginx/files/nginx.logrotate-r1 b/www-servers/nginx/files/nginx.logrotate-r1 deleted file mode 100644 index 81eca0168ced..000000000000 --- a/www-servers/nginx/files/nginx.logrotate-r1 +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -/var/log/nginx/*_log { - missingok - delaycompress - sharedscripts - postrotate - test -r /run/nginx/nginx.pid && kill -USR1 `cat /run/nginx/nginx.pid` - endscript -} diff --git a/www-servers/nginx/files/nginx.service-r1 b/www-servers/nginx/files/nginx.service-r1 deleted file mode 100644 index 74b023147587..000000000000 --- a/www-servers/nginx/files/nginx.service-r1 +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=The nginx HTTP and reverse proxy server -After=network.target remote-fs.target nss-lookup.target - -[Service] -Type=forking -PIDFile=/run/nginx/nginx.pid -RuntimeDirectory=nginx -ExecStartPre=/usr/sbin/nginx -t -ExecStart=/usr/sbin/nginx -ExecStartPost=/bin/sleep 0.1 -ExecReload=/bin/kill -HUP $MAINPID -ExecStop=/bin/kill -QUIT $MAINPID - -[Install] -WantedBy=multi-user.target diff --git a/www-servers/nginx/metadata.xml b/www-servers/nginx/metadata.xml index e2190272e704..5abdb0d47edb 100644 --- a/www-servers/nginx/metadata.xml +++ b/www-servers/nginx/metadata.xml @@ -25,17 +25,6 @@ <flag name="stream"> Enable generic TCP/UDP proxying and load balancing </flag> - <!-- NOTE: These are the USE flags for the legacy versions --> - <flag name="http2">Enable HTTP2 module support</flag> - <flag name="http3">Enable HTTP3 module support</flag> - <flag name="http-cache">Enable HTTP cache support</flag> - <flag name="ktls">Enable Kernel TLS offload (kTLS)</flag> - <flag name="pcre-jit">Enable JIT for pcre</flag> - <flag name="pcre2">Enable support for pcre2</flag> - <flag name="ssl"> - Enable HTTPS module for http. Enable SSL/TLS support for POP3/IMAP/SMTP for mail. - </flag> - <flag name="rtmp">NGINX-based Media Streaming Server</flag> </use> <upstream> <remote-id type="github">nginx/nginx</remote-id> diff --git a/www-servers/nginx/nginx-1.26.3-r2.ebuild b/www-servers/nginx/nginx-1.26.3-r2.ebuild deleted file mode 100644 index f996ddca7437..000000000000 --- a/www-servers/nginx/nginx-1.26.3-r2.ebuild +++ /dev/null @@ -1,1144 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainer notes: -# - http_rewrite-independent pcre-support makes sense for matching locations without an actual rewrite -# - any http-module activates the main http-functionality and overrides USE=-http -# - keep the following requirements in mind before adding external modules: -# * alive upstream -# * sane packaging -# * builds cleanly -# * does not need a patch for nginx core -# - Update NGINX_TESTS_REV to the current available revision and run tests. -# - TODO: test the google-perftools module (included in vanilla tarball) - -# prevent perl-module from adding automagic perl DEPENDs -GENTOO_DEPEND_ON_PERL="no" - -# devel_kit (https://github.com/simpl/ngx_devel_kit, BSD license) -DEVEL_KIT_MODULE_PV="0.3.1" -DEVEL_KIT_MODULE_P="ngx_devel_kit-${DEVEL_KIT_MODULE_PV}" -DEVEL_KIT_MODULE_URI="https://github.com/simpl/ngx_devel_kit/archive/v${DEVEL_KIT_MODULE_PV}.tar.gz" -DEVEL_KIT_MODULE_WD="${WORKDIR}/ngx_devel_kit-${DEVEL_KIT_MODULE_PV}" - -# ngx_brotli (https://github.com/google/ngx_brotli, BSD-2) -HTTP_BROTLI_MODULE_PV="1.0.0rc" -HTTP_BROTLI_MODULE_P="ngx_brotli-${HTTP_BROTLI_MODULE_PV}" -HTTP_BROTLI_MODULE_URI="https://github.com/google/ngx_brotli/archive/v${HTTP_BROTLI_MODULE_PV}.tar.gz" -HTTP_BROTLI_MODULE_WD="${WORKDIR}/ngx_brotli-${HTTP_BROTLI_MODULE_PV}" - -# http_uploadprogress (https://github.com/masterzen/nginx-upload-progress-module, BSD-2 license) -HTTP_UPLOAD_PROGRESS_MODULE_PV="68b3ab3b64a0cee7f785d161401c8be357bbed12" -HTTP_UPLOAD_PROGRESS_MODULE_P="ngx_http_upload_progress-${HTTP_UPLOAD_PROGRESS_MODULE_PV}" -HTTP_UPLOAD_PROGRESS_MODULE_URI="https://github.com/masterzen/nginx-upload-progress-module/archive/${HTTP_UPLOAD_PROGRESS_MODULE_PV}.tar.gz" -HTTP_UPLOAD_PROGRESS_MODULE_WD="${WORKDIR}/nginx-upload-progress-module-${HTTP_UPLOAD_PROGRESS_MODULE_PV}" - -# http_headers_more (https://github.com/openresty/headers-more-nginx-module, BSD license) -HTTP_HEADERS_MORE_MODULE_PV="0.34" -HTTP_HEADERS_MORE_MODULE_P="ngx_http_headers_more-${HTTP_HEADERS_MORE_MODULE_PV}" -HTTP_HEADERS_MORE_MODULE_URI="https://github.com/openresty/headers-more-nginx-module/archive/v${HTTP_HEADERS_MORE_MODULE_PV}.tar.gz" -HTTP_HEADERS_MORE_MODULE_WD="${WORKDIR}/headers-more-nginx-module-${HTTP_HEADERS_MORE_MODULE_PV}" - -# http_cache_purge (http://labs.frickle.com/nginx_ngx_cache_purge/, https://github.com/FRiCKLE/ngx_cache_purge, BSD-2 license) -HTTP_CACHE_PURGE_MODULE_PV="2.3" -HTTP_CACHE_PURGE_MODULE_P="ngx_http_cache_purge-${HTTP_CACHE_PURGE_MODULE_PV}" -HTTP_CACHE_PURGE_MODULE_URI="http://labs.frickle.com/files/ngx_cache_purge-${HTTP_CACHE_PURGE_MODULE_PV}.tar.gz" -HTTP_CACHE_PURGE_MODULE_WD="${WORKDIR}/ngx_cache_purge-${HTTP_CACHE_PURGE_MODULE_PV}" - -# http_slowfs_cache (http://labs.frickle.com/nginx_ngx_slowfs_cache/, BSD-2 license) -HTTP_SLOWFS_CACHE_MODULE_PV="1.10" -HTTP_SLOWFS_CACHE_MODULE_P="ngx_http_slowfs_cache-${HTTP_SLOWFS_CACHE_MODULE_PV}" -HTTP_SLOWFS_CACHE_MODULE_URI="http://labs.frickle.com/files/ngx_slowfs_cache-${HTTP_SLOWFS_CACHE_MODULE_PV}.tar.gz" -HTTP_SLOWFS_CACHE_MODULE_WD="${WORKDIR}/ngx_slowfs_cache-${HTTP_SLOWFS_CACHE_MODULE_PV}" - -# http_fancyindex (https://github.com/aperezdc/ngx-fancyindex, BSD license) -HTTP_FANCYINDEX_MODULE_PV="0.4.4" -HTTP_FANCYINDEX_MODULE_P="ngx_http_fancyindex-${HTTP_FANCYINDEX_MODULE_PV}" -HTTP_FANCYINDEX_MODULE_URI="https://github.com/aperezdc/ngx-fancyindex/archive/v${HTTP_FANCYINDEX_MODULE_PV}.tar.gz" -HTTP_FANCYINDEX_MODULE_WD="${WORKDIR}/ngx-fancyindex-${HTTP_FANCYINDEX_MODULE_PV}" - -# http_lua (https://github.com/openresty/lua-nginx-module, BSD license) -HTTP_LUA_MODULE_PV="0.10.25" -HTTP_LUA_MODULE_P="ngx_http_lua-${HTTP_LUA_MODULE_PV}" -HTTP_LUA_MODULE_URI="https://github.com/openresty/lua-nginx-module/archive/v${HTTP_LUA_MODULE_PV}.tar.gz" -HTTP_LUA_MODULE_WD="${WORKDIR}/lua-nginx-module-${HTTP_LUA_MODULE_PV}" -LUA_COMPAT=( luajit ) - -# http_auth_pam (https://github.com/stogh/ngx_http_auth_pam_module/, http://web.iti.upv.es/~sto/nginx/, BSD-2 license) -HTTP_AUTH_PAM_MODULE_PV="1.5.2" -HTTP_AUTH_PAM_MODULE_P="ngx_http_auth_pam-${HTTP_AUTH_PAM_MODULE_PV}" -HTTP_AUTH_PAM_MODULE_URI="https://github.com/stogh/ngx_http_auth_pam_module/archive/v${HTTP_AUTH_PAM_MODULE_PV}.tar.gz" -HTTP_AUTH_PAM_MODULE_WD="${WORKDIR}/ngx_http_auth_pam_module-${HTTP_AUTH_PAM_MODULE_PV}" - -# http_upstream_check (https://github.com/yaoweibin/nginx_upstream_check_module, BSD license) -HTTP_UPSTREAM_CHECK_MODULE_PV="9aecf15ec379fe98f62355c57b60c0bc83296f04" -HTTP_UPSTREAM_CHECK_MODULE_P="ngx_http_upstream_check-${HTTP_UPSTREAM_CHECK_MODULE_PV}" -HTTP_UPSTREAM_CHECK_MODULE_URI="https://github.com/yaoweibin/nginx_upstream_check_module/archive/${HTTP_UPSTREAM_CHECK_MODULE_PV}.tar.gz" -HTTP_UPSTREAM_CHECK_MODULE_WD="${WORKDIR}/nginx_upstream_check_module-${HTTP_UPSTREAM_CHECK_MODULE_PV}" - -# http_metrics (https://github.com/zenops/ngx_metrics, BSD license) -HTTP_METRICS_MODULE_PV="0.1.1" -HTTP_METRICS_MODULE_P="ngx_metrics-${HTTP_METRICS_MODULE_PV}" -HTTP_METRICS_MODULE_URI="https://github.com/liquidm/ngx_metrics/archive/v${HTTP_METRICS_MODULE_PV}.tar.gz" -HTTP_METRICS_MODULE_WD="${WORKDIR}/ngx_metrics-${HTTP_METRICS_MODULE_PV}" - -# http_vhost_traffic_status (https://github.com/vozlt/nginx-module-vts, BSD license) -HTTP_VHOST_TRAFFIC_STATUS_MODULE_PV="0.2.1" -HTTP_VHOST_TRAFFIC_STATUS_MODULE_P="ngx_http_vhost_traffic_status-${HTTP_VHOST_TRAFFIC_STATUS_MODULE_PV}" -HTTP_VHOST_TRAFFIC_STATUS_MODULE_URI="https://github.com/vozlt/nginx-module-vts/archive/v${HTTP_VHOST_TRAFFIC_STATUS_MODULE_PV}.tar.gz" -HTTP_VHOST_TRAFFIC_STATUS_MODULE_WD="${WORKDIR}/nginx-module-vts-${HTTP_VHOST_TRAFFIC_STATUS_MODULE_PV}" - -# naxsi-core (https://github.com/wargio/naxsi, GPL-3) -HTTP_NAXSI_MODULE_PV="4140b2ded624eb36f04c783c460379b9403012d0" -HTTP_NAXSI_MODULE_P="ngx_http_naxsi-${HTTP_NAXSI_MODULE_PV}" -HTTP_NAXSI_MODULE_URI="https://github.com/wargio/naxsi/archive/${HTTP_NAXSI_MODULE_PV}.tar.gz" -HTTP_NAXSI_MODULE_WD="${WORKDIR}/naxsi-${HTTP_NAXSI_MODULE_PV}/naxsi_src" -HTTP_NAXSI_LIBINJECTION_MODULE_PV="49904c42a6e68dc8f16c022c693e897e4010a06c" -HTTP_NAXSI_LIBINJECTION_MODULE_P="ngx_http_naxsi_libinjection-${HTTP_NAXSI_LIBINJECTION_MODULE_PV}" -HTTP_NAXSI_LIBINJECTION_MODULE_URI="https://github.com/libinjection/libinjection/archive/${HTTP_NAXSI_LIBINJECTION_MODULE_PV}.tar.gz" - -# nginx-rtmp-module (https://github.com/arut/nginx-rtmp-module, BSD license) -RTMP_MODULE_PV="1.2.2" -RTMP_MODULE_P="ngx_rtmp-${RTMP_MODULE_PV}" -RTMP_MODULE_URI="https://github.com/arut/nginx-rtmp-module/archive/v${RTMP_MODULE_PV}.tar.gz" -RTMP_MODULE_WD="${WORKDIR}/nginx-rtmp-module-${RTMP_MODULE_PV}" - -# nginx-dav-ext-module (https://github.com/arut/nginx-dav-ext-module, BSD license) -HTTP_DAV_EXT_MODULE_PV="3.0.0" -HTTP_DAV_EXT_MODULE_P="ngx_http_dav_ext-${HTTP_DAV_EXT_MODULE_PV}" -HTTP_DAV_EXT_MODULE_URI="https://github.com/arut/nginx-dav-ext-module/archive/v${HTTP_DAV_EXT_MODULE_PV}.tar.gz" -HTTP_DAV_EXT_MODULE_WD="${WORKDIR}/nginx-dav-ext-module-${HTTP_DAV_EXT_MODULE_PV}" - -# echo-nginx-module (https://github.com/openresty/echo-nginx-module, BSD license) -HTTP_ECHO_MODULE_PV="0.63" -HTTP_ECHO_MODULE_P="ngx_http_echo-${HTTP_ECHO_MODULE_PV}" -HTTP_ECHO_MODULE_URI="https://github.com/openresty/echo-nginx-module/archive/v${HTTP_ECHO_MODULE_PV}.tar.gz" -HTTP_ECHO_MODULE_WD="${WORKDIR}/echo-nginx-module-${HTTP_ECHO_MODULE_PV}" - -# modsecurity for nginx (https://github.com/SpiderLabs/ModSecurity-nginx, https://github.com/SpiderLabs/ModSecurity, Apache-2.0) -HTTP_SECURITY_MODULE_PV="1.0.3" -HTTP_SECURITY_MODULE_P="modsecurity-nginx-${HTTP_SECURITY_MODULE_PV}" -HTTP_SECURITY_MODULE_URI="https://github.com/SpiderLabs/ModSecurity-nginx/archive/refs/tags/v${HTTP_SECURITY_MODULE_PV}.tar.gz" -HTTP_SECURITY_MODULE_WD="${WORKDIR}/ModSecurity-nginx-${HTTP_SECURITY_MODULE_PV}" - -# push-stream-module (http://www.nginxpushstream.com, https://github.com/wandenberg/nginx-push-stream-module, GPL-3) -HTTP_PUSH_STREAM_MODULE_PV="8c02220d484d7848bc8e3a6d9b1c616987e86f66" -HTTP_PUSH_STREAM_MODULE_P="ngx_http_push_stream-${HTTP_PUSH_STREAM_MODULE_PV}" -HTTP_PUSH_STREAM_MODULE_URI="https://github.com/wandenberg/nginx-push-stream-module/archive/${HTTP_PUSH_STREAM_MODULE_PV}.tar.gz" -HTTP_PUSH_STREAM_MODULE_WD="${WORKDIR}/nginx-push-stream-module-${HTTP_PUSH_STREAM_MODULE_PV}" - -# sticky-module (https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng, BSD-2) -HTTP_STICKY_MODULE_PV="1.2.6-10-g08a395c66e42" -HTTP_STICKY_MODULE_P="nginx_http_sticky_module_ng-${HTTP_STICKY_MODULE_PV}" -HTTP_STICKY_MODULE_URI="https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/${HTTP_STICKY_MODULE_PV}.tar.bz2" -HTTP_STICKY_MODULE_WD="${WORKDIR}/nginx-goodies-nginx-sticky-module-ng-08a395c66e42" - -# mogilefs-module (https://github.com/vkholodkov/nginx-mogilefs-module, BSD-2) -HTTP_MOGILEFS_MODULE_PV="1.0.4" -HTTP_MOGILEFS_MODULE_P="ngx_mogilefs_module-${HTTP_MOGILEFS_MODULE_PV}" -HTTP_MOGILEFS_MODULE_URI="https://github.com/vkholodkov/nginx-mogilefs-module/archive/${HTTP_MOGILEFS_MODULE_PV}.tar.gz" -HTTP_MOGILEFS_MODULE_WD="${WORKDIR}/nginx_mogilefs_module-${HTTP_MOGILEFS_MODULE_PV}" - -# memc-module (https://github.com/openresty/memc-nginx-module, BSD-2) -HTTP_MEMC_MODULE_PV="0.19" -HTTP_MEMC_MODULE_P="ngx_memc_module-${HTTP_MEMC_MODULE_PV}" -HTTP_MEMC_MODULE_URI="https://github.com/openresty/memc-nginx-module/archive/v${HTTP_MEMC_MODULE_PV}.tar.gz" -HTTP_MEMC_MODULE_WD="${WORKDIR}/memc-nginx-module-${HTTP_MEMC_MODULE_PV}" - -# nginx-ldap-auth-module (https://github.com/kvspb/nginx-auth-ldap, BSD-2) -HTTP_LDAP_MODULE_PV="42d195d7a7575ebab1c369ad3fc5d78dc2c2669c" -HTTP_LDAP_MODULE_P="nginx-auth-ldap-${HTTP_LDAP_MODULE_PV}" -HTTP_LDAP_MODULE_URI="https://github.com/kvspb/nginx-auth-ldap/archive/${HTTP_LDAP_MODULE_PV}.tar.gz" -HTTP_LDAP_MODULE_WD="${WORKDIR}/nginx-auth-ldap-${HTTP_LDAP_MODULE_PV}" - -# nginx-vod-module (https://github.com/kaltura/nginx-vod-module, AGPL-3+) -HTTP_VOD_MODULE_PV="1.33" -HTTP_VOD_MODULE_P="nginx-vod-module-${HTTP_VOD_MODULE_PV}" -HTTP_VOD_MODULE_URI="https://github.com/kaltura/nginx-vod-module/archive/${HTTP_VOD_MODULE_PV}.tar.gz" -HTTP_VOD_MODULE_WD="${WORKDIR}/nginx-vod-module-${HTTP_VOD_MODULE_PV}" - -# geoip2 (https://github.com/leev/ngx_http_geoip2_module, BSD-2) -GEOIP2_MODULE_PV="3.4" -GEOIP2_MODULE_P="ngx_http_geoip2_module-${GEOIP2_MODULE_PV}" -GEOIP2_MODULE_URI="https://github.com/leev/ngx_http_geoip2_module/archive/${GEOIP2_MODULE_PV}.tar.gz" -GEOIP2_MODULE_WD="${WORKDIR}/ngx_http_geoip2_module-${GEOIP2_MODULE_PV}" - -# njs-module (https://github.com/nginx/njs, as-is) -NJS_MODULE_PV="0.8.10" -NJS_MODULE_P="njs-${NJS_MODULE_PV}" -NJS_MODULE_URI="https://github.com/nginx/njs/archive/${NJS_MODULE_PV}.tar.gz" -NJS_MODULE_WD="${WORKDIR}/njs-${NJS_MODULE_PV}" - -# nginx-tests (http://hg.nginx.org/nginx-tests, BSD-2) -NGINX_TESTS_REV="0b5ec15c62ed" - -# We handle deps below ourselves -SSL_DEPS_SKIP=1 -AUTOTOOLS_AUTO_DEPEND="no" - -inherit autotools lua-single multiprocessing ssl-cert toolchain-funcs perl-module systemd pax-utils - -DESCRIPTION="Robust, small and high performance http and reverse proxy server" -HOMEPAGE="https://nginx.org" -SRC_URI="https://nginx.org/download/${P}.tar.gz - ${DEVEL_KIT_MODULE_URI} -> ${DEVEL_KIT_MODULE_P}.tar.gz - nginx_modules_http_auth_ldap? ( ${HTTP_LDAP_MODULE_URI} -> ${HTTP_LDAP_MODULE_P}.tar.gz ) - nginx_modules_http_auth_pam? ( ${HTTP_AUTH_PAM_MODULE_URI} -> ${HTTP_AUTH_PAM_MODULE_P}.tar.gz ) - nginx_modules_http_brotli? ( ${HTTP_BROTLI_MODULE_URI} -> ${HTTP_BROTLI_MODULE_P}.tar.gz ) - nginx_modules_http_cache_purge? ( ${HTTP_CACHE_PURGE_MODULE_URI} -> ${HTTP_CACHE_PURGE_MODULE_P}.tar.gz ) - nginx_modules_http_dav_ext? ( ${HTTP_DAV_EXT_MODULE_URI} -> ${HTTP_DAV_EXT_MODULE_P}.tar.gz ) - nginx_modules_http_echo? ( ${HTTP_ECHO_MODULE_URI} -> ${HTTP_ECHO_MODULE_P}.tar.gz ) - nginx_modules_http_fancyindex? ( ${HTTP_FANCYINDEX_MODULE_URI} -> ${HTTP_FANCYINDEX_MODULE_P}.tar.gz ) - nginx_modules_http_geoip2? ( ${GEOIP2_MODULE_URI} -> ${GEOIP2_MODULE_P}.tar.gz ) - nginx_modules_http_headers_more? ( ${HTTP_HEADERS_MORE_MODULE_URI} -> ${HTTP_HEADERS_MORE_MODULE_P}.tar.gz ) - nginx_modules_http_javascript? ( ${NJS_MODULE_URI} -> ${NJS_MODULE_P}.tar.gz ) - nginx_modules_http_lua? ( ${HTTP_LUA_MODULE_URI} -> ${HTTP_LUA_MODULE_P}.tar.gz ) - nginx_modules_http_memc? ( ${HTTP_MEMC_MODULE_URI} -> ${HTTP_MEMC_MODULE_P}.tar.gz ) - nginx_modules_http_metrics? ( ${HTTP_METRICS_MODULE_URI} -> ${HTTP_METRICS_MODULE_P}.tar.gz ) - nginx_modules_http_mogilefs? ( ${HTTP_MOGILEFS_MODULE_URI} -> ${HTTP_MOGILEFS_MODULE_P}.tar.gz ) - nginx_modules_http_naxsi? ( - ${HTTP_NAXSI_MODULE_URI} -> ${HTTP_NAXSI_MODULE_P}.tar.gz - ${HTTP_NAXSI_LIBINJECTION_MODULE_URI} -> ${HTTP_NAXSI_LIBINJECTION_MODULE_P}.tar.gz - ) - nginx_modules_http_push_stream? ( ${HTTP_PUSH_STREAM_MODULE_URI} -> ${HTTP_PUSH_STREAM_MODULE_P}.tar.gz ) - nginx_modules_http_security? ( ${HTTP_SECURITY_MODULE_URI} -> ${HTTP_SECURITY_MODULE_P}.tar.gz ) - nginx_modules_http_slowfs_cache? ( ${HTTP_SLOWFS_CACHE_MODULE_URI} -> ${HTTP_SLOWFS_CACHE_MODULE_P}.tar.gz ) - nginx_modules_http_sticky? ( ${HTTP_STICKY_MODULE_URI} -> ${HTTP_STICKY_MODULE_P}.tar.bz2 ) - nginx_modules_http_upload_progress? ( ${HTTP_UPLOAD_PROGRESS_MODULE_URI} -> ${HTTP_UPLOAD_PROGRESS_MODULE_P}.tar.gz ) - nginx_modules_http_upstream_check? ( ${HTTP_UPSTREAM_CHECK_MODULE_URI} -> ${HTTP_UPSTREAM_CHECK_MODULE_P}.tar.gz ) - nginx_modules_http_vhost_traffic_status? ( ${HTTP_VHOST_TRAFFIC_STATUS_MODULE_URI} -> ${HTTP_VHOST_TRAFFIC_STATUS_MODULE_P}.tar.gz ) - nginx_modules_http_vod? ( ${HTTP_VOD_MODULE_URI} -> ${HTTP_VOD_MODULE_P}.tar.gz ) - nginx_modules_stream_geoip2? ( ${GEOIP2_MODULE_URI} -> ${GEOIP2_MODULE_P}.tar.gz ) - nginx_modules_stream_javascript? ( ${NJS_MODULE_URI} -> ${NJS_MODULE_P}.tar.gz ) - rtmp? ( ${RTMP_MODULE_URI} -> ${RTMP_MODULE_P}.tar.gz ) - test? ( https://hg.nginx.org/nginx-tests/archive/${NGINX_TESTS_REV}.tar.gz -> nginx-tests-${NGINX_TESTS_REV}.tar.gz )" - -LICENSE="BSD-2 BSD SSLeay MIT GPL-2 GPL-2+ - nginx_modules_http_security? ( Apache-2.0 ) - nginx_modules_http_push_stream? ( GPL-3 )" - -SLOT="0" -KEYWORDS="amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv x86" - -RESTRICT="!test? ( test )" - -NGINX_MODULES_STD="access auth_basic autoindex browser charset empty_gif - fastcgi geo grpc gzip limit_req limit_conn map memcached mirror - proxy referer rewrite scgi ssi split_clients upstream_hash - upstream_ip_hash upstream_keepalive upstream_least_conn - upstream_zone userid uwsgi" -NGINX_MODULES_OPT="addition auth_request dav degradation flv geoip gunzip - gzip_static image_filter mp4 perl random_index realip secure_link - slice stub_status sub xslt" -NGINX_MODULES_STREAM_STD="access geo limit_conn map return split_clients - upstream_hash upstream_least_conn upstream_zone" -NGINX_MODULES_STREAM_OPT="geoip realip ssl_preread" -NGINX_MODULES_MAIL="imap pop3 smtp" -NGINX_MODULES_3RD=" - http_auth_ldap - http_auth_pam - http_brotli - http_cache_purge - http_dav_ext - http_echo - http_fancyindex - http_geoip2 - http_headers_more - http_javascript - http_lua - http_memc - http_metrics - http_mogilefs - http_naxsi - http_push_stream - http_security - http_slowfs_cache - http_sticky - http_upload_progress - http_upstream_check - http_vhost_traffic_status - http_vod - stream_geoip2 - stream_javascript -" - -IUSE="aio debug +http +http2 http3 +http-cache ktls libatomic pcre +pcre2 pcre-jit rtmp selinux ssl test threads vim-syntax" - -for mod in $NGINX_MODULES_STD; do - IUSE="${IUSE} +nginx_modules_http_${mod}" -done - -for mod in $NGINX_MODULES_OPT; do - IUSE="${IUSE} nginx_modules_http_${mod}" -done - -for mod in $NGINX_MODULES_STREAM_STD; do - IUSE="${IUSE} nginx_modules_stream_${mod}" -done - -for mod in $NGINX_MODULES_STREAM_OPT; do - IUSE="${IUSE} nginx_modules_stream_${mod}" -done - -for mod in $NGINX_MODULES_MAIL; do - IUSE="${IUSE} nginx_modules_mail_${mod}" -done - -for mod in $NGINX_MODULES_3RD; do - IUSE="${IUSE} nginx_modules_${mod}" -done - -# Add so we can warn users updating about config changes -# @TODO: jbergstroem: remove on next release series -IUSE="${IUSE} nginx_modules_http_spdy" - -CDEPEND=" - acct-group/nginx - acct-user/nginx - virtual/libcrypt:= - pcre? ( dev-libs/libpcre:= ) - pcre2? ( dev-libs/libpcre2:= ) - pcre-jit? ( dev-libs/libpcre:=[jit] ) - ssl? ( - dev-libs/openssl:0= - ) - http2? ( - >=dev-libs/openssl-1.0.1c:0= - ) - http-cache? ( - dev-libs/openssl:0= - ) - ktls? ( - >=dev-libs/openssl-3:0=[ktls] - ) - nginx_modules_http_brotli? ( app-arch/brotli:= ) - nginx_modules_http_geoip? ( dev-libs/geoip ) - nginx_modules_http_geoip2? ( dev-libs/libmaxminddb:= ) - nginx_modules_http_gunzip? ( virtual/zlib:= ) - nginx_modules_http_gzip? ( virtual/zlib:= ) - nginx_modules_http_gzip_static? ( virtual/zlib:= ) - nginx_modules_http_image_filter? ( media-libs/gd:=[jpeg,png] ) - nginx_modules_http_perl? ( >=dev-lang/perl-5.8:= ) - nginx_modules_http_rewrite? ( dev-libs/libpcre:= ) - nginx_modules_http_secure_link? ( dev-libs/openssl:0= ) - nginx_modules_http_xslt? ( dev-libs/libxml2:= dev-libs/libxslt ) - nginx_modules_http_lua? ( ${LUA_DEPS} ) - nginx_modules_http_auth_pam? ( sys-libs/pam ) - nginx_modules_http_metrics? ( dev-libs/yajl:= ) - nginx_modules_http_dav_ext? ( dev-libs/libxml2:= ) - nginx_modules_http_security? ( dev-libs/modsecurity:= ) - nginx_modules_http_auth_ldap? ( net-nds/openldap:=[ssl?] ) - nginx_modules_http_vod? ( media-video/ffmpeg:0= ) - nginx_modules_stream_geoip? ( dev-libs/geoip ) - nginx_modules_stream_geoip2? ( dev-libs/libmaxminddb:= )" -RDEPEND="${CDEPEND} - app-misc/mime-types[nginx] - selinux? ( sec-policy/selinux-nginx ) - !www-servers/nginx:mainline" -DEPEND="${CDEPEND} - arm? ( dev-libs/libatomic_ops ) - libatomic? ( dev-libs/libatomic_ops )" -BDEPEND=" - nginx_modules_http_brotli? ( virtual/pkgconfig ) - test? ( - dev-lang/perl - dev-perl/Cache-Memcached - dev-perl/Cache-Memcached-Fast - dev-perl/CryptX - dev-perl/FCGI - dev-perl/GD - dev-perl/Net-SSLeay - )" -# Unpackaged perl modules which would be used by tests -# Protocol::WebSocket -# SCGI - -# Uwsgi doesn't start in tests -# www-servers/uwsgi - -PDEPEND="vim-syntax? ( app-vim/nginx-syntax )" - -REQUIRED_USE="pcre-jit? ( pcre ) - ktls? ( ssl ) - nginx_modules_http_fancyindex? ( nginx_modules_http_addition ) - nginx_modules_http_grpc? ( http2 ) - nginx_modules_http_lua? ( - ${LUA_REQUIRED_USE} - nginx_modules_http_rewrite - pcre - !pcre2 - ) - nginx_modules_http_naxsi? ( nginx_modules_http_rewrite pcre ) - nginx_modules_http_dav_ext? ( nginx_modules_http_dav nginx_modules_http_xslt ) - nginx_modules_http_metrics? ( nginx_modules_http_stub_status ) - nginx_modules_http_security? ( pcre ) - nginx_modules_http_push_stream? ( ssl ) - nginx_modules_http_vod? ( threads )" - -pkg_setup() { - NGINX_HOME="/var/lib/nginx" - NGINX_HOME_TMP="${NGINX_HOME}/tmp" - - if use libatomic; then - ewarn "GCC 4.1+ features built-in atomic operations." - ewarn "Using libatomic_ops is only needed if using" - ewarn "a different compiler or a GCC prior to 4.1" - fi - - if [[ -n $NGINX_ADD_MODULES ]]; then - ewarn "You are building custom modules via \$NGINX_ADD_MODULES!" - ewarn "This nginx installation is not supported!" - ewarn "Make sure you can reproduce the bug without those modules" - ewarn "_before_ reporting bugs." - fi - - if use !http; then - ewarn "To actually disable all http-functionality you also have to disable" - ewarn "all nginx http modules." - fi - - if use nginx_modules_http_mogilefs && use threads; then - eerror "mogilefs won't compile with threads support." - eerror "Please disable either flag and try again." - die "Can't compile mogilefs with threads support" - fi - - use nginx_modules_http_lua && lua-single_pkg_setup -} - -src_prepare() { - eapply "${FILESDIR}/${PN}-1.4.1-fix-perl-install-path.patch" - eapply "${FILESDIR}/${PN}-httpoxy-mitigation-r1.patch" - - if use nginx_modules_http_auth_ldap; then - cd "${HTTP_LDAP_MODULE_WD}" || die - eapply "${FILESDIR}/${PN}-1.23.2-mod_auth_ldap-fix.patch" - cd "${S}" || die - fi - - if use nginx_modules_http_javascript; then - cd "${NJS_MODULE_WD}" || die - sed -e 's/-Werror//g' -i auto/cc || die - cd "${S}" || die - fi - - if use nginx_modules_http_sticky; then - cd "${HTTP_STICKY_MODULE_WD}" || die - eapply "${FILESDIR}"/http_sticky-nginx-1.23.0.patch - cd "${S}" || die - fi - - if use nginx_modules_http_naxsi; then - cd "${HTTP_NAXSI_MODULE_WD}" || die - rm -r libinjection || die - mv ../../libinjection-${HTTP_NAXSI_LIBINJECTION_MODULE_PV} libinjection || die - cd "${S}" || die - fi - - if use nginx_modules_http_brotli; then - cd "${HTTP_BROTLI_MODULE_WD}" || die - eapply "${FILESDIR}"/http_brotli-detect-brotli-r3.patch - cd "${S}" || die - fi - - if use nginx_modules_http_upstream_check; then - eapply -p0 "${FILESDIR}"/http_upstream_check-nginx-1.11.5+.patch - fi - - if use nginx_modules_http_cache_purge; then - cd "${HTTP_CACHE_PURGE_MODULE_WD}" || die - eapply "${FILESDIR}"/http_cache_purge-1.11.6+.patch - cd "${S}" || die - fi - - if use nginx_modules_http_upload_progress; then - cd "${HTTP_UPLOAD_PROGRESS_MODULE_WD}" || die - eapply "${FILESDIR}"/http_uploadprogress-nginx-1.23.0.patch - cd "${S}" || die - fi - - if use nginx_modules_http_security ; then - cd "${HTTP_SECURITY_MODULE_WD}" || die - eapply "${FILESDIR}/http_security-nginx-1.26.2.patch" - cd "${S}" || die - fi - - find auto/ -type f -print0 | xargs -0 sed -i 's:\&\& make:\&\& \\$(MAKE):' || die - # We have config protection, don't rename etc files - sed -i 's:.default::' auto/install || die - # remove useless files - sed -i -e '/koi-/d' -e '/win-/d' auto/install || die - - # don't install to /etc/nginx/ if not in use - local module - for module in fastcgi scgi uwsgi ; do - if ! use nginx_modules_http_${module}; then - sed -i -e "/${module}/d" auto/install || die - fi - done - - eapply_user -} - -src_configure() { - local myconf=() http_enabled= mail_enabled= stream_enabled= - - use aio && myconf+=( --with-file-aio ) - use debug && myconf+=( --with-debug ) - use http2 && myconf+=( --with-http_v2_module ) - use http3 && myconf+=( --with-http_v3_module ) - use ktls && myconf+=( --with-openssl-opt=enable-ktls ) - use libatomic && myconf+=( --with-libatomic ) - use pcre && myconf+=( --with-pcre --without-pcre2 ) - use pcre-jit && myconf+=( --with-pcre-jit ) - use threads && myconf+=( --with-threads ) - - # HTTP modules - for mod in $NGINX_MODULES_STD; do - if use nginx_modules_http_${mod}; then - http_enabled=1 - else - myconf+=( --without-http_${mod}_module ) - fi - done - - for mod in $NGINX_MODULES_OPT; do - if use nginx_modules_http_${mod}; then - http_enabled=1 - myconf+=( --with-http_${mod}_module ) - fi - done - - if use nginx_modules_http_fastcgi; then - myconf+=( --with-http_realip_module ) - fi - - # third-party modules - if use nginx_modules_http_upload_progress; then - http_enabled=1 - myconf+=( --add-module=${HTTP_UPLOAD_PROGRESS_MODULE_WD} ) - fi - - if use nginx_modules_http_headers_more; then - http_enabled=1 - myconf+=( --add-module=${HTTP_HEADERS_MORE_MODULE_WD} ) - fi - - if use nginx_modules_http_cache_purge; then - http_enabled=1 - myconf+=( --add-module=${HTTP_CACHE_PURGE_MODULE_WD} ) - fi - - if use nginx_modules_http_slowfs_cache; then - http_enabled=1 - myconf+=( --add-module=${HTTP_SLOWFS_CACHE_MODULE_WD} ) - fi - - if use nginx_modules_http_fancyindex; then - http_enabled=1 - myconf+=( --add-module=${HTTP_FANCYINDEX_MODULE_WD} ) - fi - - if use nginx_modules_http_lua; then - http_enabled=1 - export LUAJIT_LIB=$(dirname $(lua_get_shared_lib)) - export LUAJIT_INC=$(lua_get_include_dir) - myconf+=( --add-module=${DEVEL_KIT_MODULE_WD} ) - myconf+=( --add-module=${HTTP_LUA_MODULE_WD} ) - fi - - if use nginx_modules_http_auth_pam; then - http_enabled=1 - myconf+=( --add-module=${HTTP_AUTH_PAM_MODULE_WD} ) - fi - - if use nginx_modules_http_upstream_check; then - http_enabled=1 - myconf+=( --add-module=${HTTP_UPSTREAM_CHECK_MODULE_WD} ) - fi - - if use nginx_modules_http_metrics; then - http_enabled=1 - myconf+=( --add-module=${HTTP_METRICS_MODULE_WD} ) - fi - - if use nginx_modules_http_naxsi ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_NAXSI_MODULE_WD} ) - fi - - if use rtmp ; then - http_enabled=1 - myconf+=( --add-module=${RTMP_MODULE_WD} ) - fi - - if use nginx_modules_http_dav_ext ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_DAV_EXT_MODULE_WD} ) - fi - - if use nginx_modules_http_echo ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_ECHO_MODULE_WD} ) - fi - - if use nginx_modules_http_security ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_SECURITY_MODULE_WD} ) - fi - - if use nginx_modules_http_push_stream ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_PUSH_STREAM_MODULE_WD} ) - fi - - if use nginx_modules_http_sticky ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_STICKY_MODULE_WD} ) - fi - - if use nginx_modules_http_mogilefs ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_MOGILEFS_MODULE_WD} ) - fi - - if use nginx_modules_http_memc ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_MEMC_MODULE_WD} ) - fi - - if use nginx_modules_http_auth_ldap; then - http_enabled=1 - myconf+=( --add-module=${HTTP_LDAP_MODULE_WD} ) - fi - - if use nginx_modules_http_vhost_traffic_status; then - http_enabled=1 - myconf+=( --add-module=${HTTP_VHOST_TRAFFIC_STATUS_MODULE_WD} ) - fi - - if use nginx_modules_http_geoip2 || use nginx_modules_stream_geoip2; then - myconf+=( --add-module=${GEOIP2_MODULE_WD} ) - fi - - if use nginx_modules_http_javascript || use nginx_modules_stream_javascript; then - myconf+=( --add-module="${NJS_MODULE_WD}/nginx" ) - fi - - if use nginx_modules_http_brotli; then - http_enabled=1 - myconf+=( --add-module=${HTTP_BROTLI_MODULE_WD} ) - fi - - if use http || use http-cache || use http2 || use http3 || use nginx_modules_http_javascript; then - http_enabled=1 - fi - - if use nginx_modules_http_vod; then - http_enabled=1 - myconf+=( --add-module=${HTTP_VOD_MODULE_WD} ) - fi - - if [ $http_enabled ]; then - use http-cache || myconf+=( --without-http-cache ) - use ssl && myconf+=( --with-http_ssl_module ) - else - myconf+=( --without-http --without-http-cache ) - fi - - # Stream modules - for mod in $NGINX_MODULES_STREAM_STD; do - if use nginx_modules_stream_${mod}; then - stream_enabled=1 - else - myconf+=( --without-stream_${mod}_module ) - fi - done - - for mod in $NGINX_MODULES_STREAM_OPT; do - if use nginx_modules_stream_${mod}; then - stream_enabled=1 - myconf+=( --with-stream_${mod}_module ) - fi - done - - if use nginx_modules_stream_geoip2 || use nginx_modules_stream_javascript; then - stream_enabled=1 - fi - - if [ $stream_enabled ]; then - myconf+=( --with-stream ) - use ssl && myconf+=( --with-stream_ssl_module ) - fi - - # MAIL modules - for mod in $NGINX_MODULES_MAIL; do - if use nginx_modules_mail_${mod}; then - mail_enabled=1 - else - myconf+=( --without-mail_${mod}_module ) - fi - done - - if [ $mail_enabled ]; then - myconf+=( --with-mail ) - use ssl && myconf+=( --with-mail_ssl_module ) - fi - - # custom modules - for mod in $NGINX_ADD_MODULES; do - myconf+=( --add-module=${mod} ) - done - - # https://bugs.gentoo.org/286772 - export LANG=C LC_ALL=C - tc-export AR CC - - if ! use prefix; then - myconf+=( --user=${PN} ) - myconf+=( --group=${PN} ) - fi - - if [[ -n "${EXTRA_ECONF}" ]]; then - myconf+=( ${EXTRA_ECONF} ) - ewarn "EXTRA_ECONF applied. Now you are on your own, good luck!" - fi - - ./configure \ - --prefix="${EPREFIX}"/usr \ - --conf-path="${EPREFIX}"/etc/${PN}/${PN}.conf \ - --error-log-path="${EPREFIX}"/var/log/${PN}/error_log \ - --pid-path="${EPREFIX}"/run/${PN}/${PN}.pid \ - --lock-path="${EPREFIX}"/run/lock/${PN}.lock \ - --with-cc-opt="-I${ESYSROOT}/usr/include" \ - --with-ld-opt="-L${ESYSROOT}/usr/$(get_libdir)" \ - --http-log-path="${EPREFIX}"/var/log/${PN}/access_log \ - --http-client-body-temp-path="${EPREFIX}${NGINX_HOME_TMP}"/client \ - --http-proxy-temp-path="${EPREFIX}${NGINX_HOME_TMP}"/proxy \ - --http-fastcgi-temp-path="${EPREFIX}${NGINX_HOME_TMP}"/fastcgi \ - --http-scgi-temp-path="${EPREFIX}${NGINX_HOME_TMP}"/scgi \ - --http-uwsgi-temp-path="${EPREFIX}${NGINX_HOME_TMP}"/uwsgi \ - --with-compat \ - "${myconf[@]}" || die "configure failed" - - # A purely cosmetic change that makes nginx -V more readable. This can be - # good if people outside the gentoo community would troubleshoot and - # question the users setup. - sed -i -e "s|${WORKDIR}|external_module|g" objs/ngx_auto_config.h || die -} - -src_compile() { - # https://bugs.gentoo.org/286772 - export LANG=C LC_ALL=C - emake LINK="${CC} ${LDFLAGS}" OTHERLDFLAGS="${LDFLAGS}" -} - -src_install() { - emake DESTDIR="${D}" install - - cp "${FILESDIR}"/nginx.conf-r3 "${ED}"/etc/nginx/nginx.conf || die - - newinitd "${FILESDIR}"/nginx.initd-r4 nginx - newconfd "${FILESDIR}"/nginx.confd nginx - - systemd_newunit "${FILESDIR}"/nginx.service-r1 nginx.service - - doman man/nginx.8 - dodoc CHANGES* README - - # just keepdir. do not copy the default htdocs files (bug #449136) - keepdir /var/www/localhost - rm -rf "${ED}"/usr/html || die - - # set up a list of directories to keep - local keepdir_list="${NGINX_HOME_TMP}"/client - local module - for module in proxy fastcgi scgi uwsgi; do - use nginx_modules_http_${module} && keepdir_list+=" ${NGINX_HOME_TMP}/${module}" - done - - keepdir /var/log/nginx ${keepdir_list} - - # this solves a problem with SELinux where nginx doesn't see the directories - # as root and tries to create them as nginx - fperms 0750 "${NGINX_HOME_TMP}" - fowners ${PN}:0 "${NGINX_HOME_TMP}" - - fperms 0700 ${keepdir_list} - fowners ${PN}:${PN} ${keepdir_list} - - fperms 0710 /var/log/nginx - fowners 0:${PN} /var/log/nginx - - # logrotate - insinto /etc/logrotate.d - newins "${FILESDIR}"/nginx.logrotate-r1 nginx - - # Don't create /run - rm -rf "${ED}"/run || die - - if use lua_single_target_luajit; then - pax-mark m "${ED}/usr/sbin/nginx" - fi - - if use nginx_modules_http_perl; then - cd "${S}"/objs/src/http/modules/perl/ || die - emake DESTDIR="${D}" INSTALLDIRS=vendor - perl_delete_localpod - cd "${S}" || die - fi - - if use nginx_modules_http_cache_purge; then - docinto ${HTTP_CACHE_PURGE_MODULE_P} - dodoc "${HTTP_CACHE_PURGE_MODULE_WD}"/{CHANGES,README.md,TODO.md} - fi - - if use nginx_modules_http_slowfs_cache; then - docinto ${HTTP_SLOWFS_CACHE_MODULE_P} - dodoc "${HTTP_SLOWFS_CACHE_MODULE_WD}"/{CHANGES,README.md} - fi - - if use nginx_modules_http_fancyindex; then - docinto ${HTTP_FANCYINDEX_MODULE_P} - dodoc "${HTTP_FANCYINDEX_MODULE_WD}"/README.rst - fi - - if use nginx_modules_http_lua; then - docinto ${HTTP_LUA_MODULE_P} - dodoc "${HTTP_LUA_MODULE_WD}"/README.markdown - insinto /etc/nginx - newins - 00-config.lua_vhost.conf <<-EOF - lua_package_path "/etc/nginx/?.lua;;"; - EOF - insinto /etc/nginx/resty - touch "${ED}"/etc/nginx/resty/core.lua - fi - - if use nginx_modules_http_auth_pam; then - docinto ${HTTP_AUTH_PAM_MODULE_P} - dodoc "${HTTP_AUTH_PAM_MODULE_WD}"/{README.md,ChangeLog} - fi - - if use nginx_modules_http_upstream_check; then - docinto ${HTTP_UPSTREAM_CHECK_MODULE_P} - dodoc "${HTTP_UPSTREAM_CHECK_MODULE_WD}"/{README,CHANGES} - fi - - if use nginx_modules_http_naxsi; then - insinto /etc/nginx/naxsi - doins "${HTTP_NAXSI_MODULE_WD}"/../distros/nginx/* - doins "${HTTP_NAXSI_MODULE_WD}"/../naxsi_rules/naxsi_core.rules - doins -r "${HTTP_NAXSI_MODULE_WD}"/../naxsi_rules/blocking - doins -r "${HTTP_NAXSI_MODULE_WD}"/../naxsi_rules/whitelists - fi - - if use rtmp; then - docinto ${RTMP_MODULE_P} - dodoc "${RTMP_MODULE_WD}"/{AUTHORS,README.md,stat.xsl} - fi - - if use nginx_modules_http_dav_ext; then - docinto ${HTTP_DAV_EXT_MODULE_P} - dodoc "${HTTP_DAV_EXT_MODULE_WD}"/README.rst - fi - - if use nginx_modules_http_echo; then - docinto ${HTTP_ECHO_MODULE_P} - dodoc "${HTTP_ECHO_MODULE_WD}"/README.markdown - fi - - if use nginx_modules_http_security; then - docinto ${HTTP_SECURITY_MODULE_P} - dodoc "${HTTP_SECURITY_MODULE_WD}"/{AUTHORS,CHANGES,README.md} - fi - - if use nginx_modules_http_push_stream; then - docinto ${HTTP_PUSH_STREAM_MODULE_P} - dodoc "${HTTP_PUSH_STREAM_MODULE_WD}"/{AUTHORS,CHANGELOG.textile,README.textile} - fi - - if use nginx_modules_http_sticky; then - docinto ${HTTP_STICKY_MODULE_P} - dodoc "${HTTP_STICKY_MODULE_WD}"/{README.md,Changelog.txt,docs/sticky.pdf} - fi - - if use nginx_modules_http_memc; then - docinto ${HTTP_MEMC_MODULE_P} - dodoc "${HTTP_MEMC_MODULE_WD}"/README.markdown - fi - - if use nginx_modules_http_auth_ldap; then - docinto ${HTTP_LDAP_MODULE_P} - dodoc "${HTTP_LDAP_MODULE_WD}"/example.conf - fi - - if use nginx_modules_http_vod; then - docinto ${HTTP_VOD_MODULE_P} - dodoc "${HTTP_VOD_MODULE_WD}"/{CHANGELOG,README}.md - fi -} - -src_test() { - pushd "${WORKDIR}"/nginx-tests-"${NGINX_TESTS_REV}" > /dev/null || die - - # FIXME: unsure why uwsgi fails to start - rm uwsgi*.t || die - - local -x TEST_NGINX_BINARY="${S}/objs/nginx" - local -x TEST_NGINX_VERBOSE=1 - - prove -v -j $(makeopts_jobs) . || die - popd > /dev/null || die -} - -pkg_postinst() { - if use ssl; then - if [[ ! -f "${EROOT}"/etc/ssl/${PN}/${PN}.key ]]; then - install_cert /etc/ssl/${PN}/${PN} - use prefix || chown ${PN}:${PN} "${EROOT}"/etc/ssl/${PN}/${PN}.{crt,csr,key,pem} - fi - fi - - if use nginx_modules_http_spdy; then - ewarn "" - ewarn "In nginx 1.9.5 the spdy module was superseded by http2." - ewarn "Update your configs and package.use accordingly." - fi - - if use nginx_modules_http_lua; then - ewarn "" - ewarn "While you can build lua 3rd party module against ${P}" - ewarn "the author warns that >=${PN}-1.11.11 is still not an" - ewarn "officially supported target yet. You are on your own." - ewarn "Expect runtime failures, memory leaks and other problems!" - fi - - if use nginx_modules_http_lua && use http2; then - ewarn "" - ewarn "Lua 3rd party module author warns against using ${P} with" - ewarn "NGINX_MODULES_HTTP=\"lua http2\". For more info, see https://git.io/OldLsg" - fi - - local _n_permission_layout_checks=0 - local _has_to_adjust_permissions=0 - local _has_to_show_permission_warning=0 - - # Defaults to 1 to inform people doing a fresh installation - # that we ship modified {scgi,uwsgi,fastcgi}_params files - local _has_to_show_httpoxy_mitigation_notice=1 - - local _replacing_version= - for _replacing_version in ${REPLACING_VERSIONS}; do - _n_permission_layout_checks=$((${_n_permission_layout_checks}+1)) - - if [[ ${_n_permission_layout_checks} -gt 1 ]]; then - # Should never happen: - # Package is abusing slots but doesn't allow multiple parallel installations. - # If we run into this situation it is unsafe to automatically adjust any - # permission... - _has_to_show_permission_warning=1 - - ewarn "Replacing multiple ${PN}' versions is unsupported! " \ - "You will have to adjust permissions on your own." - - break - fi - - local _replacing_version_branch=$(ver_cut 1-2 "${_replacing_version}") - debug-print "Updating an existing installation (v${_replacing_version}; branch '${_replacing_version_branch}') ..." - - # Do we need to adjust permissions to fix CVE-2013-0337 (bug #458726, #469094)? - # This was before we introduced multiple nginx versions so we - # do not need to distinguish between stable and mainline - local _need_to_fix_CVE2013_0337=1 - - if ver_test ${_replacing_version} -ge 1.4.1-r2; then - # We are updating an installation which should already be fixed - _need_to_fix_CVE2013_0337=0 - debug-print "Skipping CVE-2013-0337 ... existing installation should not be affected!" - else - _has_to_adjust_permissions=1 - debug-print "Need to adjust permissions to fix CVE-2013-0337!" - fi - - # Do we need to inform about HTTPoxy mitigation? - # In repository since commit 8be44f76d4ac02cebcd1e0e6e6284bb72d054b0f - if ver_test ${_replacing_version_branch} -lt 1.10; then - # Updating from <1.10 - _has_to_show_httpoxy_mitigation_notice=1 - debug-print "Need to inform about HTTPoxy mitigation!" - else - # Updating from >=1.10 - local _fixed_in_pvr= - case "${_replacing_version_branch}" in - "1.10") - _fixed_in_pvr="1.10.1-r2" - ;; - "1.11") - _fixed_in_pvr="1.11.3-r1" - ;; - *) - # This should be any future branch. - # If we run this code it is safe to assume that the user has - # already seen the HTTPoxy mitigation notice because he/she is doing - # an update from previous version where we have already shown - # the warning. Otherwise, we wouldn't hit this code path ... - _fixed_in_pvr= - esac - - if [[ -z "${_fixed_in_pvr}" ]] || ver_test ${_replacing_version} -ge ${_fixed_in_pvr}; then - # We are updating an installation where we already informed - # that we are mitigating HTTPoxy per default - _has_to_show_httpoxy_mitigation_notice=0 - debug-print "No need to inform about HTTPoxy mitigation ... information was already shown for existing installation!" - else - _has_to_show_httpoxy_mitigation_notice=1 - debug-print "Need to inform about HTTPoxy mitigation!" - fi - fi - - # Do we need to adjust permissions to fix CVE-2016-1247 (bug #605008)? - # All branches up to 1.11 are affected - local _need_to_fix_CVE2016_1247=1 - - if ver_test ${_replacing_version_branch} -lt 1.10; then - # Updating from <1.10 - _has_to_adjust_permissions=1 - debug-print "Need to adjust permissions to fix CVE-2016-1247!" - else - # Updating from >=1.10 - local _fixed_in_pvr= - case "${_replacing_version_branch}" in - "1.10") - _fixed_in_pvr="1.10.2-r3" - ;; - "1.11") - _fixed_in_pvr="1.11.6-r1" - ;; - *) - # This should be any future branch. - # If we run this code it is safe to assume that we have already - # adjusted permissions or were never affected because user is - # doing an update from previous version which was safe or did - # the adjustments. Otherwise, we wouldn't hit this code path ... - _fixed_in_pvr= - esac - - if [[ -z "${_fixed_in_pvr}" ]] || ver_test ${_replacing_version} -ge ${_fixed_in_pvr}; then - # We are updating an installation which should already be adjusted - # or which was never affected - _need_to_fix_CVE2016_1247=0 - debug-print "Skipping CVE-2016-1247 ... existing installation should not be affected!" - else - _has_to_adjust_permissions=1 - debug-print "Need to adjust permissions to fix CVE-2016-1247!" - fi - fi - done - - if [[ ${_has_to_adjust_permissions} -eq 1 ]]; then - # We do not DIE when chmod/chown commands are failing because - # package is already merged on user's system at this stage - # and we cannot retry without losing the information that - # the existing installation needs to adjust permissions. - # Instead we are going to a show a big warning ... - - if [[ ${_has_to_show_permission_warning} -eq 0 ]] && [[ ${_need_to_fix_CVE2013_0337} -eq 1 ]]; then - ewarn "" - ewarn "The world-readable bit (if set) has been removed from the" - ewarn "following directories to mitigate a security bug" - ewarn "(CVE-2013-0337, bug #458726):" - ewarn "" - ewarn " ${EPREFIX}/var/log/nginx" - ewarn " ${EPREFIX}${NGINX_HOME_TMP}/{,client,proxy,fastcgi,scgi,uwsgi}" - ewarn "" - ewarn "Check if this is correct for your setup before restarting nginx!" - ewarn "This is a one-time change and will not happen on subsequent updates." - ewarn "Furthermore nginx' temp directories got moved to '${EPREFIX}${NGINX_HOME_TMP}'" - chmod o-rwx \ - "${EPREFIX}"/var/log/nginx \ - "${EPREFIX}"${NGINX_HOME_TMP}/{,client,proxy,fastcgi,scgi,uwsgi} || \ - _has_to_show_permission_warning=1 - fi - - if [[ ${_has_to_show_permission_warning} -eq 0 ]] && [[ ${_need_to_fix_CVE2016_1247} -eq 1 ]]; then - ewarn "" - ewarn "The permissions on the following directory have been reset in" - ewarn "order to mitigate a security bug (CVE-2016-1247, bug #605008):" - ewarn "" - ewarn " ${EPREFIX}/var/log/nginx" - ewarn "" - ewarn "Check if this is correct for your setup before restarting nginx!" - ewarn "Also ensure that no other log directory used by any of your" - ewarn "vhost(s) is not writeable for nginx user. Any of your log files" - ewarn "used by nginx can be abused to escalate privileges!" - ewarn "This is a one-time change and will not happen on subsequent updates." - chown 0:nginx "${EPREFIX}"/var/log/nginx || _has_to_show_permission_warning=1 - chmod 710 "${EPREFIX}"/var/log/nginx || _has_to_show_permission_warning=1 - fi - - if [[ ${_has_to_show_permission_warning} -eq 1 ]]; then - # Should never happen ... - ewarn "" - ewarn "*************************************************************" - ewarn "*************** W A R N I N G ***************" - ewarn "*************************************************************" - ewarn "The one-time only attempt to adjust permissions of the" - ewarn "existing nginx installation failed. Be aware that we will not" - ewarn "try to adjust the same permissions again because now you are" - ewarn "using a nginx version where we expect that the permissions" - ewarn "are already adjusted or that you know what you are doing and" - ewarn "want to keep custom permissions." - ewarn "" - fi - fi - - # Sanity check for CVE-2016-1247 - # Required to warn users who received the warning above and thought - # they could fix it by unmerging and re-merging the package or have - # unmerged a affected installation on purpose in the past leaving - # /var/log/nginx on their system due to keepdir/non-empty folder - # and are now installing the package again. - local _sanity_check_testfile=$(mktemp --dry-run "${EPREFIX}"/var/log/nginx/.CVE-2016-1247.XXXXXXXXX) - su -s /bin/sh -c "touch ${_sanity_check_testfile}" nginx >&/dev/null - if [ $? -eq 0 ] ; then - # Cleanup -- no reason to die here! - rm -f "${_sanity_check_testfile}" - - ewarn "" - ewarn "*************************************************************" - ewarn "*************** W A R N I N G ***************" - ewarn "*************************************************************" - ewarn "Looks like your installation is vulnerable to CVE-2016-1247" - ewarn "(bug #605008) because nginx user is able to create files in" - ewarn "" - ewarn " ${EPREFIX}/var/log/nginx" - ewarn "" - ewarn "Also ensure that no other log directory used by any of your" - ewarn "vhost(s) is not writeable for nginx user. Any of your log files" - ewarn "used by nginx can be abused to escalate privileges!" - fi - - if [[ ${_has_to_show_httpoxy_mitigation_notice} -eq 1 ]]; then - # HTTPoxy mitigation - ewarn "" - ewarn "This nginx installation comes with a mitigation for the HTTPoxy" - ewarn "vulnerability for FastCGI, SCGI and uWSGI applications by setting" - ewarn "the HTTP_PROXY parameter to an empty string per default when you" - ewarn "are sourcing one of the default" - ewarn "" - ewarn " - 'fastcgi_params' or 'fastcgi.conf'" - ewarn " - 'scgi_params'" - ewarn " - 'uwsgi_params'" - ewarn "" - ewarn "files in your server block(s)." - ewarn "" - ewarn "If this is causing any problems for you make sure that you are sourcing the" - ewarn "default parameters _before_ you set your own values." - ewarn "If you are relying on user-supplied proxy values you have to remove the" - ewarn "correlating lines from the file(s) mentioned above." - ewarn "" - fi -} diff --git a/www-servers/nginx/nginx-1.27.5-r1.ebuild b/www-servers/nginx/nginx-1.27.5-r1.ebuild deleted file mode 100644 index 01c8df442568..000000000000 --- a/www-servers/nginx/nginx-1.27.5-r1.ebuild +++ /dev/null @@ -1,1132 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainer notes: -# - http_rewrite-independent pcre-support makes sense for matching locations without an actual rewrite -# - any http-module activates the main http-functionality and overrides USE=-http -# - keep the following requirements in mind before adding external modules: -# * alive upstream -# * sane packaging -# * builds cleanly -# * does not need a patch for nginx core -# - Update NGINX_TESTS_REV to the current available revision and run tests. -# - TODO: test the google-perftools module (included in vanilla tarball) - -# prevent perl-module from adding automagic perl DEPENDs -GENTOO_DEPEND_ON_PERL="no" - -# devel_kit (https://github.com/simpl/ngx_devel_kit, BSD license) -DEVEL_KIT_MODULE_PV="0.3.1" -DEVEL_KIT_MODULE_P="ngx_devel_kit-${DEVEL_KIT_MODULE_PV}" -DEVEL_KIT_MODULE_URI="https://github.com/simpl/ngx_devel_kit/archive/v${DEVEL_KIT_MODULE_PV}.tar.gz" -DEVEL_KIT_MODULE_WD="${WORKDIR}/ngx_devel_kit-${DEVEL_KIT_MODULE_PV}" - -# ngx_brotli (https://github.com/google/ngx_brotli, BSD-2) -HTTP_BROTLI_MODULE_PV="1.0.0rc" -HTTP_BROTLI_MODULE_P="ngx_brotli-${HTTP_BROTLI_MODULE_PV}" -HTTP_BROTLI_MODULE_URI="https://github.com/google/ngx_brotli/archive/v${HTTP_BROTLI_MODULE_PV}.tar.gz" -HTTP_BROTLI_MODULE_WD="${WORKDIR}/ngx_brotli-${HTTP_BROTLI_MODULE_PV}" - -# http_uploadprogress (https://github.com/masterzen/nginx-upload-progress-module, BSD-2 license) -HTTP_UPLOAD_PROGRESS_MODULE_PV="68b3ab3b64a0cee7f785d161401c8be357bbed12" -HTTP_UPLOAD_PROGRESS_MODULE_P="ngx_http_upload_progress-${HTTP_UPLOAD_PROGRESS_MODULE_PV}" -HTTP_UPLOAD_PROGRESS_MODULE_URI="https://github.com/masterzen/nginx-upload-progress-module/archive/${HTTP_UPLOAD_PROGRESS_MODULE_PV}.tar.gz" -HTTP_UPLOAD_PROGRESS_MODULE_WD="${WORKDIR}/nginx-upload-progress-module-${HTTP_UPLOAD_PROGRESS_MODULE_PV}" - -# http_headers_more (https://github.com/openresty/headers-more-nginx-module, BSD license) -HTTP_HEADERS_MORE_MODULE_PV="0.34" -HTTP_HEADERS_MORE_MODULE_P="ngx_http_headers_more-${HTTP_HEADERS_MORE_MODULE_PV}" -HTTP_HEADERS_MORE_MODULE_URI="https://github.com/openresty/headers-more-nginx-module/archive/v${HTTP_HEADERS_MORE_MODULE_PV}.tar.gz" -HTTP_HEADERS_MORE_MODULE_WD="${WORKDIR}/headers-more-nginx-module-${HTTP_HEADERS_MORE_MODULE_PV}" - -# http_cache_purge (https://github.com/nginx-modules/ngx_cache_purge, BSD-2 license) -HTTP_CACHE_PURGE_MODULE_PV="2.5.3" -HTTP_CACHE_PURGE_MODULE_P="ngx_http_cache_purge-${HTTP_CACHE_PURGE_MODULE_PV}" -HTTP_CACHE_PURGE_MODULE_URI="https://github.com/nginx-modules/ngx_cache_purge/archive/refs/tags/${HTTP_CACHE_PURGE_MODULE_PV}.tar.gz" -HTTP_CACHE_PURGE_MODULE_WD="${WORKDIR}/ngx_cache_purge-${HTTP_CACHE_PURGE_MODULE_PV}" - -# http_slowfs_cache (http://labs.frickle.com/nginx_ngx_slowfs_cache/, BSD-2 license) -HTTP_SLOWFS_CACHE_MODULE_PV="1.10" -HTTP_SLOWFS_CACHE_MODULE_P="ngx_http_slowfs_cache-${HTTP_SLOWFS_CACHE_MODULE_PV}" -HTTP_SLOWFS_CACHE_MODULE_URI="http://labs.frickle.com/files/ngx_slowfs_cache-${HTTP_SLOWFS_CACHE_MODULE_PV}.tar.gz" -HTTP_SLOWFS_CACHE_MODULE_WD="${WORKDIR}/ngx_slowfs_cache-${HTTP_SLOWFS_CACHE_MODULE_PV}" - -# http_fancyindex (https://github.com/aperezdc/ngx-fancyindex, BSD license) -HTTP_FANCYINDEX_MODULE_PV="0.4.4" -HTTP_FANCYINDEX_MODULE_P="ngx_http_fancyindex-${HTTP_FANCYINDEX_MODULE_PV}" -HTTP_FANCYINDEX_MODULE_URI="https://github.com/aperezdc/ngx-fancyindex/archive/v${HTTP_FANCYINDEX_MODULE_PV}.tar.gz" -HTTP_FANCYINDEX_MODULE_WD="${WORKDIR}/ngx-fancyindex-${HTTP_FANCYINDEX_MODULE_PV}" - -# http_lua (https://github.com/openresty/lua-nginx-module, BSD license) -HTTP_LUA_MODULE_PV="0.10.25" -HTTP_LUA_MODULE_P="ngx_http_lua-${HTTP_LUA_MODULE_PV}" -HTTP_LUA_MODULE_URI="https://github.com/openresty/lua-nginx-module/archive/v${HTTP_LUA_MODULE_PV}.tar.gz" -HTTP_LUA_MODULE_WD="${WORKDIR}/lua-nginx-module-${HTTP_LUA_MODULE_PV}" -LUA_COMPAT=( luajit ) - -# http_auth_pam (https://github.com/stogh/ngx_http_auth_pam_module/, http://web.iti.upv.es/~sto/nginx/, BSD-2 license) -HTTP_AUTH_PAM_MODULE_PV="1.5.2" -HTTP_AUTH_PAM_MODULE_P="ngx_http_auth_pam-${HTTP_AUTH_PAM_MODULE_PV}" -HTTP_AUTH_PAM_MODULE_URI="https://github.com/stogh/ngx_http_auth_pam_module/archive/v${HTTP_AUTH_PAM_MODULE_PV}.tar.gz" -HTTP_AUTH_PAM_MODULE_WD="${WORKDIR}/ngx_http_auth_pam_module-${HTTP_AUTH_PAM_MODULE_PV}" - -# http_upstream_check (https://github.com/yaoweibin/nginx_upstream_check_module, BSD license) -HTTP_UPSTREAM_CHECK_MODULE_PV="9aecf15ec379fe98f62355c57b60c0bc83296f04" -HTTP_UPSTREAM_CHECK_MODULE_P="ngx_http_upstream_check-${HTTP_UPSTREAM_CHECK_MODULE_PV}" -HTTP_UPSTREAM_CHECK_MODULE_URI="https://github.com/yaoweibin/nginx_upstream_check_module/archive/${HTTP_UPSTREAM_CHECK_MODULE_PV}.tar.gz" -HTTP_UPSTREAM_CHECK_MODULE_WD="${WORKDIR}/nginx_upstream_check_module-${HTTP_UPSTREAM_CHECK_MODULE_PV}" - -# http_metrics (https://github.com/zenops/ngx_metrics, BSD license) -HTTP_METRICS_MODULE_PV="0.1.1" -HTTP_METRICS_MODULE_P="ngx_metrics-${HTTP_METRICS_MODULE_PV}" -HTTP_METRICS_MODULE_URI="https://github.com/liquidm/ngx_metrics/archive/v${HTTP_METRICS_MODULE_PV}.tar.gz" -HTTP_METRICS_MODULE_WD="${WORKDIR}/ngx_metrics-${HTTP_METRICS_MODULE_PV}" - -# http_vhost_traffic_status (https://github.com/vozlt/nginx-module-vts, BSD license) -HTTP_VHOST_TRAFFIC_STATUS_MODULE_PV="0.2.1" -HTTP_VHOST_TRAFFIC_STATUS_MODULE_P="ngx_http_vhost_traffic_status-${HTTP_VHOST_TRAFFIC_STATUS_MODULE_PV}" -HTTP_VHOST_TRAFFIC_STATUS_MODULE_URI="https://github.com/vozlt/nginx-module-vts/archive/v${HTTP_VHOST_TRAFFIC_STATUS_MODULE_PV}.tar.gz" -HTTP_VHOST_TRAFFIC_STATUS_MODULE_WD="${WORKDIR}/nginx-module-vts-${HTTP_VHOST_TRAFFIC_STATUS_MODULE_PV}" - -# naxsi-core (https://github.com/wargio/naxsi, GPL-3) -HTTP_NAXSI_MODULE_PV="4140b2ded624eb36f04c783c460379b9403012d0" -HTTP_NAXSI_MODULE_P="ngx_http_naxsi-${HTTP_NAXSI_MODULE_PV}" -HTTP_NAXSI_MODULE_URI="https://github.com/wargio/naxsi/archive/${HTTP_NAXSI_MODULE_PV}.tar.gz" -HTTP_NAXSI_MODULE_WD="${WORKDIR}/naxsi-${HTTP_NAXSI_MODULE_PV}/naxsi_src" -HTTP_NAXSI_LIBINJECTION_MODULE_PV="49904c42a6e68dc8f16c022c693e897e4010a06c" -HTTP_NAXSI_LIBINJECTION_MODULE_P="ngx_http_naxsi_libinjection-${HTTP_NAXSI_LIBINJECTION_MODULE_PV}" -HTTP_NAXSI_LIBINJECTION_MODULE_URI="https://github.com/libinjection/libinjection/archive/${HTTP_NAXSI_LIBINJECTION_MODULE_PV}.tar.gz" - -# nginx-rtmp-module (https://github.com/arut/nginx-rtmp-module, BSD license) -RTMP_MODULE_PV="1.2.2" -RTMP_MODULE_P="ngx_rtmp-${RTMP_MODULE_PV}" -RTMP_MODULE_URI="https://github.com/arut/nginx-rtmp-module/archive/v${RTMP_MODULE_PV}.tar.gz" -RTMP_MODULE_WD="${WORKDIR}/nginx-rtmp-module-${RTMP_MODULE_PV}" - -# nginx-dav-ext-module (https://github.com/arut/nginx-dav-ext-module, BSD license) -HTTP_DAV_EXT_MODULE_PV="3.0.0" -HTTP_DAV_EXT_MODULE_P="ngx_http_dav_ext-${HTTP_DAV_EXT_MODULE_PV}" -HTTP_DAV_EXT_MODULE_URI="https://github.com/arut/nginx-dav-ext-module/archive/v${HTTP_DAV_EXT_MODULE_PV}.tar.gz" -HTTP_DAV_EXT_MODULE_WD="${WORKDIR}/nginx-dav-ext-module-${HTTP_DAV_EXT_MODULE_PV}" - -# echo-nginx-module (https://github.com/openresty/echo-nginx-module, BSD license) -HTTP_ECHO_MODULE_PV="0.63" -HTTP_ECHO_MODULE_P="ngx_http_echo-${HTTP_ECHO_MODULE_PV}" -HTTP_ECHO_MODULE_URI="https://github.com/openresty/echo-nginx-module/archive/v${HTTP_ECHO_MODULE_PV}.tar.gz" -HTTP_ECHO_MODULE_WD="${WORKDIR}/echo-nginx-module-${HTTP_ECHO_MODULE_PV}" - -# modsecurity for nginx (https://github.com/SpiderLabs/ModSecurity-nginx, https://github.com/SpiderLabs/ModSecurity, Apache-2.0) -HTTP_SECURITY_MODULE_PV="1.0.3" -HTTP_SECURITY_MODULE_P="modsecurity-nginx-${HTTP_SECURITY_MODULE_PV}" -HTTP_SECURITY_MODULE_URI="https://github.com/SpiderLabs/ModSecurity-nginx/archive/refs/tags/v${HTTP_SECURITY_MODULE_PV}.tar.gz" -HTTP_SECURITY_MODULE_WD="${WORKDIR}/ModSecurity-nginx-${HTTP_SECURITY_MODULE_PV}" - -# push-stream-module (http://www.nginxpushstream.com, https://github.com/wandenberg/nginx-push-stream-module, GPL-3) -HTTP_PUSH_STREAM_MODULE_PV="8c02220d484d7848bc8e3a6d9b1c616987e86f66" -HTTP_PUSH_STREAM_MODULE_P="ngx_http_push_stream-${HTTP_PUSH_STREAM_MODULE_PV}" -HTTP_PUSH_STREAM_MODULE_URI="https://github.com/wandenberg/nginx-push-stream-module/archive/${HTTP_PUSH_STREAM_MODULE_PV}.tar.gz" -HTTP_PUSH_STREAM_MODULE_WD="${WORKDIR}/nginx-push-stream-module-${HTTP_PUSH_STREAM_MODULE_PV}" - -# sticky-module (https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng, BSD-2) -HTTP_STICKY_MODULE_PV="1.2.6-10-g08a395c66e42" -HTTP_STICKY_MODULE_P="nginx_http_sticky_module_ng-${HTTP_STICKY_MODULE_PV}" -HTTP_STICKY_MODULE_URI="https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/${HTTP_STICKY_MODULE_PV}.tar.bz2" -HTTP_STICKY_MODULE_WD="${WORKDIR}/nginx-goodies-nginx-sticky-module-ng-08a395c66e42" - -# mogilefs-module (https://github.com/vkholodkov/nginx-mogilefs-module, BSD-2) -HTTP_MOGILEFS_MODULE_PV="1.0.4" -HTTP_MOGILEFS_MODULE_P="ngx_mogilefs_module-${HTTP_MOGILEFS_MODULE_PV}" -HTTP_MOGILEFS_MODULE_URI="https://github.com/vkholodkov/nginx-mogilefs-module/archive/${HTTP_MOGILEFS_MODULE_PV}.tar.gz" -HTTP_MOGILEFS_MODULE_WD="${WORKDIR}/nginx_mogilefs_module-${HTTP_MOGILEFS_MODULE_PV}" - -# memc-module (https://github.com/openresty/memc-nginx-module, BSD-2) -HTTP_MEMC_MODULE_PV="0.19" -HTTP_MEMC_MODULE_P="ngx_memc_module-${HTTP_MEMC_MODULE_PV}" -HTTP_MEMC_MODULE_URI="https://github.com/openresty/memc-nginx-module/archive/v${HTTP_MEMC_MODULE_PV}.tar.gz" -HTTP_MEMC_MODULE_WD="${WORKDIR}/memc-nginx-module-${HTTP_MEMC_MODULE_PV}" - -# nginx-ldap-auth-module (https://github.com/kvspb/nginx-auth-ldap, BSD-2) -HTTP_LDAP_MODULE_PV="42d195d7a7575ebab1c369ad3fc5d78dc2c2669c" -HTTP_LDAP_MODULE_P="nginx-auth-ldap-${HTTP_LDAP_MODULE_PV}" -HTTP_LDAP_MODULE_URI="https://github.com/kvspb/nginx-auth-ldap/archive/${HTTP_LDAP_MODULE_PV}.tar.gz" -HTTP_LDAP_MODULE_WD="${WORKDIR}/nginx-auth-ldap-${HTTP_LDAP_MODULE_PV}" - -# nginx-vod-module (https://github.com/kaltura/nginx-vod-module, AGPL-3+) -HTTP_VOD_MODULE_PV="1.33" -HTTP_VOD_MODULE_P="nginx-vod-module-${HTTP_VOD_MODULE_PV}" -HTTP_VOD_MODULE_URI="https://github.com/kaltura/nginx-vod-module/archive/${HTTP_VOD_MODULE_PV}.tar.gz" -HTTP_VOD_MODULE_WD="${WORKDIR}/nginx-vod-module-${HTTP_VOD_MODULE_PV}" - -# geoip2 (https://github.com/leev/ngx_http_geoip2_module, BSD-2) -GEOIP2_MODULE_PV="3.4" -GEOIP2_MODULE_P="ngx_http_geoip2_module-${GEOIP2_MODULE_PV}" -GEOIP2_MODULE_URI="https://github.com/leev/ngx_http_geoip2_module/archive/${GEOIP2_MODULE_PV}.tar.gz" -GEOIP2_MODULE_WD="${WORKDIR}/ngx_http_geoip2_module-${GEOIP2_MODULE_PV}" - -# njs-module (https://github.com/nginx/njs, as-is) -NJS_MODULE_PV="0.8.10" -NJS_MODULE_P="njs-${NJS_MODULE_PV}" -NJS_MODULE_URI="https://github.com/nginx/njs/archive/${NJS_MODULE_PV}.tar.gz" -NJS_MODULE_WD="${WORKDIR}/njs-${NJS_MODULE_PV}" - -# nginx-tests (http://hg.nginx.org/nginx-tests, BSD-2) -NGINX_TESTS_REV="0b5ec15c62ed" - -# We handle deps below ourselves -SSL_DEPS_SKIP=1 -AUTOTOOLS_AUTO_DEPEND="no" - -inherit autotools lua-single multiprocessing ssl-cert toolchain-funcs perl-module systemd pax-utils - -DESCRIPTION="Robust, small and high performance http and reverse proxy server" -HOMEPAGE="https://nginx.org" -SRC_URI="https://nginx.org/download/${P}.tar.gz - ${DEVEL_KIT_MODULE_URI} -> ${DEVEL_KIT_MODULE_P}.tar.gz - nginx_modules_http_auth_ldap? ( ${HTTP_LDAP_MODULE_URI} -> ${HTTP_LDAP_MODULE_P}.tar.gz ) - nginx_modules_http_auth_pam? ( ${HTTP_AUTH_PAM_MODULE_URI} -> ${HTTP_AUTH_PAM_MODULE_P}.tar.gz ) - nginx_modules_http_brotli? ( ${HTTP_BROTLI_MODULE_URI} -> ${HTTP_BROTLI_MODULE_P}.tar.gz ) - nginx_modules_http_cache_purge? ( ${HTTP_CACHE_PURGE_MODULE_URI} -> ${HTTP_CACHE_PURGE_MODULE_P}.tar.gz ) - nginx_modules_http_dav_ext? ( ${HTTP_DAV_EXT_MODULE_URI} -> ${HTTP_DAV_EXT_MODULE_P}.tar.gz ) - nginx_modules_http_echo? ( ${HTTP_ECHO_MODULE_URI} -> ${HTTP_ECHO_MODULE_P}.tar.gz ) - nginx_modules_http_fancyindex? ( ${HTTP_FANCYINDEX_MODULE_URI} -> ${HTTP_FANCYINDEX_MODULE_P}.tar.gz ) - nginx_modules_http_geoip2? ( ${GEOIP2_MODULE_URI} -> ${GEOIP2_MODULE_P}.tar.gz ) - nginx_modules_http_headers_more? ( ${HTTP_HEADERS_MORE_MODULE_URI} -> ${HTTP_HEADERS_MORE_MODULE_P}.tar.gz ) - nginx_modules_http_javascript? ( ${NJS_MODULE_URI} -> ${NJS_MODULE_P}.tar.gz ) - nginx_modules_http_lua? ( ${HTTP_LUA_MODULE_URI} -> ${HTTP_LUA_MODULE_P}.tar.gz ) - nginx_modules_http_memc? ( ${HTTP_MEMC_MODULE_URI} -> ${HTTP_MEMC_MODULE_P}.tar.gz ) - nginx_modules_http_metrics? ( ${HTTP_METRICS_MODULE_URI} -> ${HTTP_METRICS_MODULE_P}.tar.gz ) - nginx_modules_http_mogilefs? ( ${HTTP_MOGILEFS_MODULE_URI} -> ${HTTP_MOGILEFS_MODULE_P}.tar.gz ) - nginx_modules_http_naxsi? ( - ${HTTP_NAXSI_MODULE_URI} -> ${HTTP_NAXSI_MODULE_P}.tar.gz - ${HTTP_NAXSI_LIBINJECTION_MODULE_URI} -> ${HTTP_NAXSI_LIBINJECTION_MODULE_P}.tar.gz - ) - nginx_modules_http_push_stream? ( ${HTTP_PUSH_STREAM_MODULE_URI} -> ${HTTP_PUSH_STREAM_MODULE_P}.tar.gz ) - nginx_modules_http_security? ( ${HTTP_SECURITY_MODULE_URI} -> ${HTTP_SECURITY_MODULE_P}.tar.gz ) - nginx_modules_http_slowfs_cache? ( ${HTTP_SLOWFS_CACHE_MODULE_URI} -> ${HTTP_SLOWFS_CACHE_MODULE_P}.tar.gz ) - nginx_modules_http_sticky? ( ${HTTP_STICKY_MODULE_URI} -> ${HTTP_STICKY_MODULE_P}.tar.bz2 ) - nginx_modules_http_upload_progress? ( ${HTTP_UPLOAD_PROGRESS_MODULE_URI} -> ${HTTP_UPLOAD_PROGRESS_MODULE_P}.tar.gz ) - nginx_modules_http_upstream_check? ( ${HTTP_UPSTREAM_CHECK_MODULE_URI} -> ${HTTP_UPSTREAM_CHECK_MODULE_P}.tar.gz ) - nginx_modules_http_vhost_traffic_status? ( ${HTTP_VHOST_TRAFFIC_STATUS_MODULE_URI} -> ${HTTP_VHOST_TRAFFIC_STATUS_MODULE_P}.tar.gz ) - nginx_modules_http_vod? ( ${HTTP_VOD_MODULE_URI} -> ${HTTP_VOD_MODULE_P}.tar.gz ) - nginx_modules_stream_geoip2? ( ${GEOIP2_MODULE_URI} -> ${GEOIP2_MODULE_P}.tar.gz ) - nginx_modules_stream_javascript? ( ${NJS_MODULE_URI} -> ${NJS_MODULE_P}.tar.gz ) - rtmp? ( ${RTMP_MODULE_URI} -> ${RTMP_MODULE_P}.tar.gz ) - test? ( https://hg.nginx.org/nginx-tests/archive/${NGINX_TESTS_REV}.tar.gz -> nginx-tests-${NGINX_TESTS_REV}.tar.gz )" - -LICENSE="BSD-2 BSD SSLeay MIT GPL-2 GPL-2+ - nginx_modules_http_security? ( Apache-2.0 ) - nginx_modules_http_push_stream? ( GPL-3 )" - -SLOT="mainline" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" - -NGINX_MODULES_STD="access auth_basic autoindex browser charset empty_gif - fastcgi geo grpc gzip limit_req limit_conn map memcached mirror - proxy referer rewrite scgi ssi split_clients upstream_hash - upstream_ip_hash upstream_keepalive upstream_least_conn - upstream_zone userid uwsgi" -NGINX_MODULES_OPT="addition auth_request dav degradation flv geoip gunzip - gzip_static image_filter mp4 perl random_index realip secure_link - slice stub_status sub xslt" -NGINX_MODULES_STREAM_STD="access geo limit_conn map return split_clients - upstream_hash upstream_least_conn upstream_zone" -NGINX_MODULES_STREAM_OPT="geoip realip ssl_preread" -NGINX_MODULES_MAIL="imap pop3 smtp" -NGINX_MODULES_3RD=" - http_auth_ldap - http_auth_pam - http_brotli - http_cache_purge - http_dav_ext - http_echo - http_fancyindex - http_geoip2 - http_headers_more - http_javascript - http_lua - http_memc - http_metrics - http_mogilefs - http_naxsi - http_push_stream - http_security - http_slowfs_cache - http_sticky - http_upload_progress - http_upstream_check - http_vhost_traffic_status - http_vod - stream_geoip2 - stream_javascript -" - -RESTRICT="!test? ( test )" - -IUSE="aio debug +http +http2 http3 +http-cache ktls libatomic pcre +pcre2 pcre-jit rtmp selinux ssl test threads vim-syntax" - -for mod in $NGINX_MODULES_STD; do - IUSE="${IUSE} +nginx_modules_http_${mod}" -done - -for mod in $NGINX_MODULES_OPT; do - IUSE="${IUSE} nginx_modules_http_${mod}" -done - -for mod in $NGINX_MODULES_STREAM_STD; do - IUSE="${IUSE} nginx_modules_stream_${mod}" -done - -for mod in $NGINX_MODULES_STREAM_OPT; do - IUSE="${IUSE} nginx_modules_stream_${mod}" -done - -for mod in $NGINX_MODULES_MAIL; do - IUSE="${IUSE} nginx_modules_mail_${mod}" -done - -for mod in $NGINX_MODULES_3RD; do - IUSE="${IUSE} nginx_modules_${mod}" -done - -# Add so we can warn users updating about config changes -# @TODO: jbergstroem: remove on next release series -IUSE="${IUSE} nginx_modules_http_spdy" - -CDEPEND=" - acct-group/nginx - acct-user/nginx - virtual/libcrypt:= - pcre? ( dev-libs/libpcre:= ) - pcre2? ( dev-libs/libpcre2:= ) - pcre-jit? ( dev-libs/libpcre:=[jit] ) - ssl? ( - dev-libs/openssl:0= - ) - http2? ( - >=dev-libs/openssl-1.0.1c:0= - ) - http-cache? ( - dev-libs/openssl:0= - ) - ktls? ( - >=dev-libs/openssl-3:0=[ktls] - ) - nginx_modules_http_brotli? ( app-arch/brotli:= ) - nginx_modules_http_geoip? ( dev-libs/geoip ) - nginx_modules_http_geoip2? ( dev-libs/libmaxminddb:= ) - nginx_modules_http_gunzip? ( virtual/zlib:= ) - nginx_modules_http_gzip? ( virtual/zlib:= ) - nginx_modules_http_gzip_static? ( virtual/zlib:= ) - nginx_modules_http_image_filter? ( media-libs/gd:=[jpeg,png] ) - nginx_modules_http_perl? ( >=dev-lang/perl-5.8:= ) - nginx_modules_http_rewrite? ( dev-libs/libpcre:= ) - nginx_modules_http_secure_link? ( dev-libs/openssl:0= ) - nginx_modules_http_xslt? ( dev-libs/libxml2:= dev-libs/libxslt ) - nginx_modules_http_lua? ( ${LUA_DEPS} ) - nginx_modules_http_auth_pam? ( sys-libs/pam ) - nginx_modules_http_metrics? ( dev-libs/yajl:= ) - nginx_modules_http_dav_ext? ( dev-libs/libxml2:= ) - nginx_modules_http_security? ( dev-libs/modsecurity:= ) - nginx_modules_http_auth_ldap? ( net-nds/openldap:=[ssl?] ) - nginx_modules_http_vod? ( media-video/ffmpeg:0= ) - nginx_modules_stream_geoip? ( dev-libs/geoip ) - nginx_modules_stream_geoip2? ( dev-libs/libmaxminddb:= )" -RDEPEND="${CDEPEND} - app-misc/mime-types[nginx] - selinux? ( sec-policy/selinux-nginx ) - !www-servers/nginx:0" -DEPEND="${CDEPEND} - arm? ( dev-libs/libatomic_ops ) - libatomic? ( dev-libs/libatomic_ops )" -BDEPEND=" - nginx_modules_http_brotli? ( virtual/pkgconfig ) - test? ( - dev-lang/perl - dev-perl/Cache-Memcached - dev-perl/Cache-Memcached-Fast - dev-perl/CryptX - dev-perl/FCGI - dev-perl/GD - dev-perl/Net-SSLeay - )" -# Unpackaged perl modules which would be used by tests -# Protocol::WebSocket -# SCGI - -# Uwsgi doesn't start in tests -# www-servers/uwsgi - -PDEPEND="vim-syntax? ( app-vim/nginx-syntax )" - -REQUIRED_USE="pcre-jit? ( pcre ) - ktls? ( ssl ) - nginx_modules_http_fancyindex? ( nginx_modules_http_addition ) - nginx_modules_http_grpc? ( http2 ) - nginx_modules_http_lua? ( - ${LUA_REQUIRED_USE} - nginx_modules_http_rewrite - pcre - !pcre2 - ) - nginx_modules_http_naxsi? ( nginx_modules_http_rewrite pcre ) - nginx_modules_http_dav_ext? ( nginx_modules_http_dav nginx_modules_http_xslt ) - nginx_modules_http_metrics? ( nginx_modules_http_stub_status ) - nginx_modules_http_security? ( pcre ) - nginx_modules_http_push_stream? ( ssl ) - nginx_modules_http_vod? ( threads )" - -pkg_setup() { - NGINX_HOME="/var/lib/nginx" - NGINX_HOME_TMP="${NGINX_HOME}/tmp" - - if use libatomic; then - ewarn "GCC 4.1+ features built-in atomic operations." - ewarn "Using libatomic_ops is only needed if using" - ewarn "a different compiler or a GCC prior to 4.1" - fi - - if [[ -n $NGINX_ADD_MODULES ]]; then - ewarn "You are building custom modules via \$NGINX_ADD_MODULES!" - ewarn "This nginx installation is not supported!" - ewarn "Make sure you can reproduce the bug without those modules" - ewarn "_before_ reporting bugs." - fi - - if use !http; then - ewarn "To actually disable all http-functionality you also have to disable" - ewarn "all nginx http modules." - fi - - if use nginx_modules_http_mogilefs && use threads; then - eerror "mogilefs won't compile with threads support." - eerror "Please disable either flag and try again." - die "Can't compile mogilefs with threads support" - fi - - use nginx_modules_http_lua && lua-single_pkg_setup -} - -src_prepare() { - eapply "${FILESDIR}/${PN}-1.4.1-fix-perl-install-path.patch" - eapply "${FILESDIR}/${PN}-httpoxy-mitigation-r1.patch" - - if use nginx_modules_http_auth_ldap; then - cd "${HTTP_LDAP_MODULE_WD}" || die - eapply "${FILESDIR}/${PN}-1.23.2-mod_auth_ldap-fix.patch" - cd "${S}" || die - fi - - if use nginx_modules_http_javascript; then - cd "${NJS_MODULE_WD}" || die - sed -e 's/-Werror//g' -i auto/cc || die - cd "${S}" || die - fi - - if use nginx_modules_http_sticky; then - cd "${HTTP_STICKY_MODULE_WD}" || die - eapply "${FILESDIR}"/http_sticky-nginx-1.23.0.patch - cd "${S}" || die - fi - - if use nginx_modules_http_naxsi; then - cd "${HTTP_NAXSI_MODULE_WD}" || die - rm -r libinjection || die - mv ../../libinjection-${HTTP_NAXSI_LIBINJECTION_MODULE_PV} libinjection || die - cd "${S}" || die - fi - - if use nginx_modules_http_brotli; then - cd "${HTTP_BROTLI_MODULE_WD}" || die - eapply "${FILESDIR}"/http_brotli-detect-brotli-r3.patch - cd "${S}" || die - fi - - if use nginx_modules_http_upstream_check; then - eapply -p0 "${FILESDIR}"/http_upstream_check-nginx-1.11.5+.patch - fi - - if use nginx_modules_http_upload_progress; then - cd "${HTTP_UPLOAD_PROGRESS_MODULE_WD}" || die - eapply "${FILESDIR}"/http_uploadprogress-nginx-1.23.0.patch - cd "${S}" || die - fi - - if use nginx_modules_http_security ; then - cd "${HTTP_SECURITY_MODULE_WD}" || die - eapply "${FILESDIR}/http_security-nginx-1.26.2.patch" - cd "${S}" || die - fi - - find auto/ -type f -print0 | xargs -0 sed -i 's:\&\& make:\&\& \\$(MAKE):' || die - # We have config protection, don't rename etc files - sed -i 's:.default::' auto/install || die - # remove useless files - sed -i -e '/koi-/d' -e '/win-/d' auto/install || die - - # don't install to /etc/nginx/ if not in use - local module - for module in fastcgi scgi uwsgi ; do - if ! use nginx_modules_http_${module}; then - sed -i -e "/${module}/d" auto/install || die - fi - done - - eapply_user -} - -src_configure() { - local myconf=() http_enabled= mail_enabled= stream_enabled= - - use aio && myconf+=( --with-file-aio ) - use debug && myconf+=( --with-debug ) - use http2 && myconf+=( --with-http_v2_module ) - use http3 && myconf+=( --with-http_v3_module ) - use ktls && myconf+=( --with-openssl-opt=enable-ktls ) - use libatomic && myconf+=( --with-libatomic ) - use pcre && myconf+=( --with-pcre --without-pcre2 ) - use pcre-jit && myconf+=( --with-pcre-jit ) - use threads && myconf+=( --with-threads ) - - # HTTP modules - for mod in $NGINX_MODULES_STD; do - if use nginx_modules_http_${mod}; then - http_enabled=1 - else - myconf+=( --without-http_${mod}_module ) - fi - done - - for mod in $NGINX_MODULES_OPT; do - if use nginx_modules_http_${mod}; then - http_enabled=1 - myconf+=( --with-http_${mod}_module ) - fi - done - - if use nginx_modules_http_fastcgi; then - myconf+=( --with-http_realip_module ) - fi - - # third-party modules - if use nginx_modules_http_upload_progress; then - http_enabled=1 - myconf+=( --add-module=${HTTP_UPLOAD_PROGRESS_MODULE_WD} ) - fi - - if use nginx_modules_http_headers_more; then - http_enabled=1 - myconf+=( --add-module=${HTTP_HEADERS_MORE_MODULE_WD} ) - fi - - if use nginx_modules_http_cache_purge; then - http_enabled=1 - myconf+=( --add-module=${HTTP_CACHE_PURGE_MODULE_WD} ) - fi - - if use nginx_modules_http_slowfs_cache; then - http_enabled=1 - myconf+=( --add-module=${HTTP_SLOWFS_CACHE_MODULE_WD} ) - fi - - if use nginx_modules_http_fancyindex; then - http_enabled=1 - myconf+=( --add-module=${HTTP_FANCYINDEX_MODULE_WD} ) - fi - - if use nginx_modules_http_lua; then - http_enabled=1 - export LUAJIT_LIB=$(dirname $(lua_get_shared_lib)) - export LUAJIT_INC=$(lua_get_include_dir) - myconf+=( --add-module=${DEVEL_KIT_MODULE_WD} ) - myconf+=( --add-module=${HTTP_LUA_MODULE_WD} ) - fi - - if use nginx_modules_http_auth_pam; then - http_enabled=1 - myconf+=( --add-module=${HTTP_AUTH_PAM_MODULE_WD} ) - fi - - if use nginx_modules_http_upstream_check; then - http_enabled=1 - myconf+=( --add-module=${HTTP_UPSTREAM_CHECK_MODULE_WD} ) - fi - - if use nginx_modules_http_metrics; then - http_enabled=1 - myconf+=( --add-module=${HTTP_METRICS_MODULE_WD} ) - fi - - if use nginx_modules_http_naxsi ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_NAXSI_MODULE_WD} ) - fi - - if use rtmp ; then - http_enabled=1 - myconf+=( --add-module=${RTMP_MODULE_WD} ) - fi - - if use nginx_modules_http_dav_ext ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_DAV_EXT_MODULE_WD} ) - fi - - if use nginx_modules_http_echo ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_ECHO_MODULE_WD} ) - fi - - if use nginx_modules_http_security ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_SECURITY_MODULE_WD} ) - fi - - if use nginx_modules_http_push_stream ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_PUSH_STREAM_MODULE_WD} ) - fi - - if use nginx_modules_http_sticky ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_STICKY_MODULE_WD} ) - fi - - if use nginx_modules_http_mogilefs ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_MOGILEFS_MODULE_WD} ) - fi - - if use nginx_modules_http_memc ; then - http_enabled=1 - myconf+=( --add-module=${HTTP_MEMC_MODULE_WD} ) - fi - - if use nginx_modules_http_auth_ldap; then - http_enabled=1 - myconf+=( --add-module=${HTTP_LDAP_MODULE_WD} ) - fi - - if use nginx_modules_http_vhost_traffic_status; then - http_enabled=1 - myconf+=( --add-module=${HTTP_VHOST_TRAFFIC_STATUS_MODULE_WD} ) - fi - - if use nginx_modules_http_geoip2 || use nginx_modules_stream_geoip2; then - myconf+=( --add-module=${GEOIP2_MODULE_WD} ) - fi - - if use nginx_modules_http_javascript || use nginx_modules_stream_javascript; then - myconf+=( --add-module="${NJS_MODULE_WD}/nginx" ) - fi - - if use nginx_modules_http_brotli; then - http_enabled=1 - myconf+=( --add-module=${HTTP_BROTLI_MODULE_WD} ) - fi - - if use http || use http-cache || use http2 || use http3 || use nginx_modules_http_javascript; then - http_enabled=1 - fi - - if use nginx_modules_http_vod; then - http_enabled=1 - myconf+=( --add-module=${HTTP_VOD_MODULE_WD} ) - fi - - if [ $http_enabled ]; then - use http-cache || myconf+=( --without-http-cache ) - use ssl && myconf+=( --with-http_ssl_module ) - else - myconf+=( --without-http --without-http-cache ) - fi - - # Stream modules - for mod in $NGINX_MODULES_STREAM_STD; do - if use nginx_modules_stream_${mod}; then - stream_enabled=1 - else - myconf+=( --without-stream_${mod}_module ) - fi - done - - for mod in $NGINX_MODULES_STREAM_OPT; do - if use nginx_modules_stream_${mod}; then - stream_enabled=1 - myconf+=( --with-stream_${mod}_module ) - fi - done - - if use nginx_modules_stream_geoip2 || use nginx_modules_stream_javascript; then - stream_enabled=1 - fi - - if [ $stream_enabled ]; then - myconf+=( --with-stream ) - use ssl && myconf+=( --with-stream_ssl_module ) - fi - - # MAIL modules - for mod in $NGINX_MODULES_MAIL; do - if use nginx_modules_mail_${mod}; then - mail_enabled=1 - else - myconf+=( --without-mail_${mod}_module ) - fi - done - - if [ $mail_enabled ]; then - myconf+=( --with-mail ) - use ssl && myconf+=( --with-mail_ssl_module ) - fi - - # custom modules - for mod in $NGINX_ADD_MODULES; do - myconf+=( --add-module=${mod} ) - done - - # https://bugs.gentoo.org/286772 - export LANG=C LC_ALL=C - tc-export AR CC - - if ! use prefix; then - myconf+=( --user=${PN} ) - myconf+=( --group=${PN} ) - fi - - if [[ -n "${EXTRA_ECONF}" ]]; then - myconf+=( ${EXTRA_ECONF} ) - ewarn "EXTRA_ECONF applied. Now you are on your own, good luck!" - fi - - ./configure \ - --prefix="${EPREFIX}"/usr \ - --conf-path="${EPREFIX}"/etc/${PN}/${PN}.conf \ - --error-log-path="${EPREFIX}"/var/log/${PN}/error_log \ - --pid-path="${EPREFIX}"/run/${PN}/${PN}.pid \ - --lock-path="${EPREFIX}"/run/lock/${PN}.lock \ - --with-cc-opt="-I${ESYSROOT}/usr/include" \ - --with-ld-opt="-L${ESYSROOT}/usr/$(get_libdir)" \ - --http-log-path="${EPREFIX}"/var/log/${PN}/access_log \ - --http-client-body-temp-path="${EPREFIX}${NGINX_HOME_TMP}"/client \ - --http-proxy-temp-path="${EPREFIX}${NGINX_HOME_TMP}"/proxy \ - --http-fastcgi-temp-path="${EPREFIX}${NGINX_HOME_TMP}"/fastcgi \ - --http-scgi-temp-path="${EPREFIX}${NGINX_HOME_TMP}"/scgi \ - --http-uwsgi-temp-path="${EPREFIX}${NGINX_HOME_TMP}"/uwsgi \ - --with-compat \ - "${myconf[@]}" || die "configure failed" - - # A purely cosmetic change that makes nginx -V more readable. This can be - # good if people outside the gentoo community would troubleshoot and - # question the users setup. - sed -i -e "s|${WORKDIR}|external_module|g" objs/ngx_auto_config.h || die -} - -src_compile() { - # https://bugs.gentoo.org/286772 - export LANG=C LC_ALL=C - emake LINK="${CC} ${LDFLAGS}" OTHERLDFLAGS="${LDFLAGS}" -} - -src_install() { - emake DESTDIR="${D}" install - - cp "${FILESDIR}"/nginx.conf-r3 "${ED}"/etc/nginx/nginx.conf || die - - newinitd "${FILESDIR}"/nginx.initd-r4 nginx - newconfd "${FILESDIR}"/nginx.confd nginx - - systemd_newunit "${FILESDIR}"/nginx.service-r1 nginx.service - - doman man/nginx.8 - dodoc CHANGES* README.md - - # just keepdir. do not copy the default htdocs files (bug #449136) - keepdir /var/www/localhost - rm -rf "${ED}"/usr/html || die - - # set up a list of directories to keep - local keepdir_list="${NGINX_HOME_TMP}"/client - local module - for module in proxy fastcgi scgi uwsgi; do - use nginx_modules_http_${module} && keepdir_list+=" ${NGINX_HOME_TMP}/${module}" - done - - keepdir /var/log/nginx ${keepdir_list} - - # this solves a problem with SELinux where nginx doesn't see the directories - # as root and tries to create them as nginx - fperms 0750 "${NGINX_HOME_TMP}" - fowners ${PN}:0 "${NGINX_HOME_TMP}" - - fperms 0700 ${keepdir_list} - fowners ${PN}:${PN} ${keepdir_list} - - fperms 0710 /var/log/nginx - fowners 0:${PN} /var/log/nginx - - # logrotate - insinto /etc/logrotate.d - newins "${FILESDIR}"/nginx.logrotate-r1 nginx - - # Don't create /run - rm -rf "${ED}"/run || die - - if use lua_single_target_luajit; then - pax-mark m "${ED}/usr/sbin/nginx" - fi - - if use nginx_modules_http_perl; then - cd "${S}"/objs/src/http/modules/perl/ || die - emake DESTDIR="${D}" INSTALLDIRS=vendor - perl_delete_localpod - cd "${S}" || die - fi - - if use nginx_modules_http_cache_purge; then - docinto ${HTTP_CACHE_PURGE_MODULE_P} - dodoc "${HTTP_CACHE_PURGE_MODULE_WD}"/{CHANGES,README.md} - fi - - if use nginx_modules_http_slowfs_cache; then - docinto ${HTTP_SLOWFS_CACHE_MODULE_P} - dodoc "${HTTP_SLOWFS_CACHE_MODULE_WD}"/{CHANGES,README.md} - fi - - if use nginx_modules_http_fancyindex; then - docinto ${HTTP_FANCYINDEX_MODULE_P} - dodoc "${HTTP_FANCYINDEX_MODULE_WD}"/README.rst - fi - - if use nginx_modules_http_lua; then - docinto ${HTTP_LUA_MODULE_P} - dodoc "${HTTP_LUA_MODULE_WD}"/README.markdown - fi - - if use nginx_modules_http_auth_pam; then - docinto ${HTTP_AUTH_PAM_MODULE_P} - dodoc "${HTTP_AUTH_PAM_MODULE_WD}"/{README.md,ChangeLog} - fi - - if use nginx_modules_http_upstream_check; then - docinto ${HTTP_UPSTREAM_CHECK_MODULE_P} - dodoc "${HTTP_UPSTREAM_CHECK_MODULE_WD}"/{README,CHANGES} - fi - - if use nginx_modules_http_naxsi; then - insinto /etc/nginx/naxsi - doins "${HTTP_NAXSI_MODULE_WD}"/../distros/nginx/* - doins "${HTTP_NAXSI_MODULE_WD}"/../naxsi_rules/naxsi_core.rules - doins -r "${HTTP_NAXSI_MODULE_WD}"/../naxsi_rules/blocking - doins -r "${HTTP_NAXSI_MODULE_WD}"/../naxsi_rules/whitelists - fi - - if use rtmp; then - docinto ${RTMP_MODULE_P} - dodoc "${RTMP_MODULE_WD}"/{AUTHORS,README.md,stat.xsl} - fi - - if use nginx_modules_http_dav_ext; then - docinto ${HTTP_DAV_EXT_MODULE_P} - dodoc "${HTTP_DAV_EXT_MODULE_WD}"/README.rst - fi - - if use nginx_modules_http_echo; then - docinto ${HTTP_ECHO_MODULE_P} - dodoc "${HTTP_ECHO_MODULE_WD}"/README.markdown - fi - - if use nginx_modules_http_security; then - docinto ${HTTP_SECURITY_MODULE_P} - dodoc "${HTTP_SECURITY_MODULE_WD}"/{AUTHORS,CHANGES,README.md} - fi - - if use nginx_modules_http_push_stream; then - docinto ${HTTP_PUSH_STREAM_MODULE_P} - dodoc "${HTTP_PUSH_STREAM_MODULE_WD}"/{AUTHORS,CHANGELOG.textile,README.textile} - fi - - if use nginx_modules_http_sticky; then - docinto ${HTTP_STICKY_MODULE_P} - dodoc "${HTTP_STICKY_MODULE_WD}"/{README.md,Changelog.txt,docs/sticky.pdf} - fi - - if use nginx_modules_http_memc; then - docinto ${HTTP_MEMC_MODULE_P} - dodoc "${HTTP_MEMC_MODULE_WD}"/README.markdown - fi - - if use nginx_modules_http_auth_ldap; then - docinto ${HTTP_LDAP_MODULE_P} - dodoc "${HTTP_LDAP_MODULE_WD}"/example.conf - fi - - if use nginx_modules_http_vod; then - docinto ${HTTP_VOD_MODULE_P} - dodoc "${HTTP_VOD_MODULE_WD}"/{CHANGELOG,README}.md - fi -} - -src_test() { - pushd "${WORKDIR}"/nginx-tests-"${NGINX_TESTS_REV}" > /dev/null || die - - # FIXME: unsure why uwsgi fails to start - rm uwsgi*.t || die - - local -x TEST_NGINX_BINARY="${S}/objs/nginx" - local -x TEST_NGINX_VERBOSE=1 - - prove -v -j $(makeopts_jobs) . || die - popd > /dev/null || die -} - -pkg_postinst() { - if use ssl; then - if [[ ! -f "${EROOT}"/etc/ssl/${PN}/${PN}.key ]]; then - install_cert /etc/ssl/${PN}/${PN} - use prefix || chown ${PN}:${PN} "${EROOT}"/etc/ssl/${PN}/${PN}.{crt,csr,key,pem} - fi - fi - - if use nginx_modules_http_spdy; then - ewarn "" - ewarn "In nginx 1.9.5 the spdy module was superseded by http2." - ewarn "Update your configs and package.use accordingly." - fi - - if use nginx_modules_http_lua; then - ewarn "" - ewarn "While you can build lua 3rd party module against ${P}" - ewarn "the author warns that >=${PN}-1.11.11 is still not an" - ewarn "officially supported target yet. You are on your own." - ewarn "Expect runtime failures, memory leaks and other problems!" - fi - - if use nginx_modules_http_lua && use http2; then - ewarn "" - ewarn "Lua 3rd party module author warns against using ${P} with" - ewarn "NGINX_MODULES_HTTP=\"lua http2\". For more info, see https://git.io/OldLsg" - fi - - local _n_permission_layout_checks=0 - local _has_to_adjust_permissions=0 - local _has_to_show_permission_warning=0 - - # Defaults to 1 to inform people doing a fresh installation - # that we ship modified {scgi,uwsgi,fastcgi}_params files - local _has_to_show_httpoxy_mitigation_notice=1 - - local _replacing_version= - for _replacing_version in ${REPLACING_VERSIONS}; do - _n_permission_layout_checks=$((${_n_permission_layout_checks}+1)) - - if [[ ${_n_permission_layout_checks} -gt 1 ]]; then - # Should never happen: - # Package is abusing slots but doesn't allow multiple parallel installations. - # If we run into this situation it is unsafe to automatically adjust any - # permission... - _has_to_show_permission_warning=1 - - ewarn "Replacing multiple ${PN}' versions is unsupported! " \ - "You will have to adjust permissions on your own." - - break - fi - - local _replacing_version_branch=$(ver_cut 1-2 "${_replacing_version}") - debug-print "Updating an existing installation (v${_replacing_version}; branch '${_replacing_version_branch}') ..." - - # Do we need to adjust permissions to fix CVE-2013-0337 (bug #458726, #469094)? - # This was before we introduced multiple nginx versions so we - # do not need to distinguish between stable and mainline - local _need_to_fix_CVE2013_0337=1 - - if ver_test ${_replacing_version} -ge 1.4.1-r2; then - # We are updating an installation which should already be fixed - _need_to_fix_CVE2013_0337=0 - debug-print "Skipping CVE-2013-0337 ... existing installation should not be affected!" - else - _has_to_adjust_permissions=1 - debug-print "Need to adjust permissions to fix CVE-2013-0337!" - fi - - # Do we need to inform about HTTPoxy mitigation? - # In repository since commit 8be44f76d4ac02cebcd1e0e6e6284bb72d054b0f - if ver_test ${_replacing_version_branch} -lt 1.10; then - # Updating from <1.10 - _has_to_show_httpoxy_mitigation_notice=1 - debug-print "Need to inform about HTTPoxy mitigation!" - else - # Updating from >=1.10 - local _fixed_in_pvr= - case "${_replacing_version_branch}" in - "1.10") - _fixed_in_pvr="1.10.1-r2" - ;; - "1.11") - _fixed_in_pvr="1.11.3-r1" - ;; - *) - # This should be any future branch. - # If we run this code it is safe to assume that the user has - # already seen the HTTPoxy mitigation notice because he/she is doing - # an update from previous version where we have already shown - # the warning. Otherwise, we wouldn't hit this code path ... - _fixed_in_pvr= - esac - - if [[ -z "${_fixed_in_pvr}" ]] || ver_test ${_replacing_version} -ge ${_fixed_in_pvr}; then - # We are updating an installation where we already informed - # that we are mitigating HTTPoxy per default - _has_to_show_httpoxy_mitigation_notice=0 - debug-print "No need to inform about HTTPoxy mitigation ... information was already shown for existing installation!" - else - _has_to_show_httpoxy_mitigation_notice=1 - debug-print "Need to inform about HTTPoxy mitigation!" - fi - fi - - # Do we need to adjust permissions to fix CVE-2016-1247 (bug #605008)? - # All branches up to 1.11 are affected - local _need_to_fix_CVE2016_1247=1 - - if ver_test ${_replacing_version_branch} -lt 1.10; then - # Updating from <1.10 - _has_to_adjust_permissions=1 - debug-print "Need to adjust permissions to fix CVE-2016-1247!" - else - # Updating from >=1.10 - local _fixed_in_pvr= - case "${_replacing_version_branch}" in - "1.10") - _fixed_in_pvr="1.10.2-r3" - ;; - "1.11") - _fixed_in_pvr="1.11.6-r1" - ;; - *) - # This should be any future branch. - # If we run this code it is safe to assume that we have already - # adjusted permissions or were never affected because user is - # doing an update from previous version which was safe or did - # the adjustments. Otherwise, we wouldn't hit this code path ... - _fixed_in_pvr= - esac - - if [[ -z "${_fixed_in_pvr}" ]] || ver_test ${_replacing_version} -ge ${_fixed_in_pvr}; then - # We are updating an installation which should already be adjusted - # or which was never affected - _need_to_fix_CVE2016_1247=0 - debug-print "Skipping CVE-2016-1247 ... existing installation should not be affected!" - else - _has_to_adjust_permissions=1 - debug-print "Need to adjust permissions to fix CVE-2016-1247!" - fi - fi - done - - if [[ ${_has_to_adjust_permissions} -eq 1 ]]; then - # We do not DIE when chmod/chown commands are failing because - # package is already merged on user's system at this stage - # and we cannot retry without losing the information that - # the existing installation needs to adjust permissions. - # Instead we are going to a show a big warning ... - - if [[ ${_has_to_show_permission_warning} -eq 0 ]] && [[ ${_need_to_fix_CVE2013_0337} -eq 1 ]]; then - ewarn "" - ewarn "The world-readable bit (if set) has been removed from the" - ewarn "following directories to mitigate a security bug" - ewarn "(CVE-2013-0337, bug #458726):" - ewarn "" - ewarn " ${EPREFIX}/var/log/nginx" - ewarn " ${EPREFIX}${NGINX_HOME_TMP}/{,client,proxy,fastcgi,scgi,uwsgi}" - ewarn "" - ewarn "Check if this is correct for your setup before restarting nginx!" - ewarn "This is a one-time change and will not happen on subsequent updates." - ewarn "Furthermore nginx' temp directories got moved to '${EPREFIX}${NGINX_HOME_TMP}'" - chmod o-rwx \ - "${EPREFIX}"/var/log/nginx \ - "${EPREFIX}"${NGINX_HOME_TMP}/{,client,proxy,fastcgi,scgi,uwsgi} || \ - _has_to_show_permission_warning=1 - fi - - if [[ ${_has_to_show_permission_warning} -eq 0 ]] && [[ ${_need_to_fix_CVE2016_1247} -eq 1 ]]; then - ewarn "" - ewarn "The permissions on the following directory have been reset in" - ewarn "order to mitigate a security bug (CVE-2016-1247, bug #605008):" - ewarn "" - ewarn " ${EPREFIX}/var/log/nginx" - ewarn "" - ewarn "Check if this is correct for your setup before restarting nginx!" - ewarn "Also ensure that no other log directory used by any of your" - ewarn "vhost(s) is not writeable for nginx user. Any of your log files" - ewarn "used by nginx can be abused to escalate privileges!" - ewarn "This is a one-time change and will not happen on subsequent updates." - chown 0:nginx "${EPREFIX}"/var/log/nginx || _has_to_show_permission_warning=1 - chmod 710 "${EPREFIX}"/var/log/nginx || _has_to_show_permission_warning=1 - fi - - if [[ ${_has_to_show_permission_warning} -eq 1 ]]; then - # Should never happen ... - ewarn "" - ewarn "*************************************************************" - ewarn "*************** W A R N I N G ***************" - ewarn "*************************************************************" - ewarn "The one-time only attempt to adjust permissions of the" - ewarn "existing nginx installation failed. Be aware that we will not" - ewarn "try to adjust the same permissions again because now you are" - ewarn "using a nginx version where we expect that the permissions" - ewarn "are already adjusted or that you know what you are doing and" - ewarn "want to keep custom permissions." - ewarn "" - fi - fi - - # Sanity check for CVE-2016-1247 - # Required to warn users who received the warning above and thought - # they could fix it by unmerging and re-merging the package or have - # unmerged a affected installation on purpose in the past leaving - # /var/log/nginx on their system due to keepdir/non-empty folder - # and are now installing the package again. - local _sanity_check_testfile=$(mktemp --dry-run "${EPREFIX}"/var/log/nginx/.CVE-2016-1247.XXXXXXXXX) - su -s /bin/sh -c "touch ${_sanity_check_testfile}" nginx >&/dev/null - if [ $? -eq 0 ] ; then - # Cleanup -- no reason to die here! - rm -f "${_sanity_check_testfile}" - - ewarn "" - ewarn "*************************************************************" - ewarn "*************** W A R N I N G ***************" - ewarn "*************************************************************" - ewarn "Looks like your installation is vulnerable to CVE-2016-1247" - ewarn "(bug #605008) because nginx user is able to create files in" - ewarn "" - ewarn " ${EPREFIX}/var/log/nginx" - ewarn "" - ewarn "Also ensure that no other log directory used by any of your" - ewarn "vhost(s) is not writeable for nginx user. Any of your log files" - ewarn "used by nginx can be abused to escalate privileges!" - fi - - if [[ ${_has_to_show_httpoxy_mitigation_notice} -eq 1 ]]; then - # HTTPoxy mitigation - ewarn "" - ewarn "This nginx installation comes with a mitigation for the HTTPoxy" - ewarn "vulnerability for FastCGI, SCGI and uWSGI applications by setting" - ewarn "the HTTP_PROXY parameter to an empty string per default when you" - ewarn "are sourcing one of the default" - ewarn "" - ewarn " - 'fastcgi_params' or 'fastcgi.conf'" - ewarn " - 'scgi_params'" - ewarn " - 'uwsgi_params'" - ewarn "" - ewarn "files in your server block(s)." - ewarn "" - ewarn "If this is causing any problems for you make sure that you are sourcing the" - ewarn "default parameters _before_ you set your own values." - ewarn "If you are relying on user-supplied proxy values you have to remove the" - ewarn "correlating lines from the file(s) mentioned above." - ewarn "" - fi -} diff --git a/www-servers/nginx/nginx-1.29.5-r2.ebuild b/www-servers/nginx/nginx-1.29.5-r2.ebuild deleted file mode 100644 index 240087847cb2..000000000000 --- a/www-servers/nginx/nginx-1.29.5-r2.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -NGINX_SUBSYSTEMS=(+http stream mail) -NGINX_MODULES=( - +http_{charset,gzip,ssi,userid,access,auth_basic,mirror,autoindex,geo,map} - +http_{split_clients,referer,rewrite,proxy,fastcgi,uwsgi,scgi,grpc} - +http_{memcached,limit_conn,limit_req,empty_gif,browser,upstream_hash} - +http_{upstream_ip_hash,upstream_least_conn,upstream_random} - +http_{upstream_keepalive,upstream_zone} - http_{ssl,v2,v3,realip,addition,xslt,image_filter,geoip,sub,dav,flv,mp4} - http_{gunzip,gzip_static,auth_request,random_index,secure_link,degradation} - http_{slice,stub_status,perl} - +mail_{pop3,imap,smtp} - mail_ssl - +stream_{limit_conn,access,geo,map,split_clients,return,pass,set} - +stream_{upstream_hash,upstream_least_conn,upstream_random,upstream_zone} - stream_{ssl,realip,geoip,ssl_preread} -) -NGINX_TESTS_COMMIT=2993130953b28ff4d64ea75b5bd35c92c7e510f7 -NGINX_MISC_FILES=( - nginx-{r2.logrotate,r2.service,r4.conf,r6.initd,r1.confd,r1.tmpfiles} -) - -inherit nginx - -KEYWORDS="amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv x86" - -PATCHES=( - "${FILESDIR}/${PN}-httpoxy-mitigation-r1.patch" -) diff --git a/www-servers/nginx/nginx-1.29.7-r3.ebuild b/www-servers/nginx/nginx-1.29.7-r3.ebuild deleted file mode 100644 index 715a6bfcd781..000000000000 --- a/www-servers/nginx/nginx-1.29.7-r3.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 - -NGINX_SUBSYSTEMS=(+http stream mail) -NGINX_MODULES=( - +http_{charset,gzip,ssi,userid,access,auth_basic,mirror,autoindex,geo,map} - +http_{split_clients,referer,rewrite,proxy,fastcgi,uwsgi,scgi,grpc} - +http_{memcached,limit_conn,limit_req,empty_gif,browser,upstream_hash} - +http_{upstream_ip_hash,upstream_least_conn,upstream_random} - +http_{upstream_keepalive,upstream_zone} - http_{ssl,v2,v3,realip,addition,xslt,image_filter,geoip,sub,dav,flv,mp4} - http_{gunzip,gzip_static,auth_request,random_index,secure_link,degradation} - http_{slice,stub_status,perl} - +mail_{pop3,imap,smtp} - mail_ssl - +stream_{limit_conn,access,geo,map,split_clients,return,pass,set} - +stream_{upstream_hash,upstream_least_conn,upstream_random,upstream_zone} - stream_{ssl,realip,geoip,ssl_preread} -) -NGINX_TESTS_COMMIT=cf90a22921652731302e8a4dc2a88049c723377d -NGINX_MISC_FILES=( - nginx-{r2.logrotate,r2.service,r5.conf,r6.initd,r1.confd,r1.tmpfiles} -) -NGINX_SUPPORT_MODULE_STUBS=1 - -inherit nginx - -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" - -PATCHES=( - "${FILESDIR}/${PN}-httpoxy-mitigation-r1.patch" -) diff --git a/www-servers/nginx/nginx-1.30.0-r2.ebuild b/www-servers/nginx/nginx-1.30.0-r2.ebuild deleted file mode 100644 index 1171b19ee0ad..000000000000 --- a/www-servers/nginx/nginx-1.30.0-r2.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 - -NGINX_SUBSYSTEMS=(+http stream mail) -NGINX_MODULES=( - +http_{charset,gzip,ssi,userid,access,auth_basic,mirror,autoindex,geo,map} - +http_{split_clients,referer,rewrite,proxy,fastcgi,uwsgi,scgi,grpc} - +http_{memcached,limit_conn,limit_req,empty_gif,browser,upstream_hash} - +http_{upstream_ip_hash,upstream_least_conn,upstream_random} - +http_{upstream_keepalive,upstream_zone} - http_{ssl,v2,v3,realip,addition,xslt,image_filter,geoip,sub,dav,flv,mp4} - http_{gunzip,gzip_static,auth_request,random_index,secure_link,degradation} - http_{slice,stub_status,perl} - +mail_{pop3,imap,smtp} - mail_ssl - +stream_{limit_conn,access,geo,map,split_clients,return,pass,set} - +stream_{upstream_hash,upstream_least_conn,upstream_random,upstream_zone} - stream_{ssl,realip,geoip,ssl_preread} -) -NGINX_TESTS_COMMIT=0f72f59c40de9977bd8f3deff5d200e761b8b683 -NGINX_MISC_FILES=( - nginx-{r2.logrotate,r2.service,r5.conf,r6.initd,r1.confd,r1.tmpfiles} -) -NGINX_SUPPORT_MODULE_STUBS=1 - -inherit nginx - -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" - -PATCHES=( - "${FILESDIR}/${PN}-httpoxy-mitigation-r1.patch" -) diff --git a/www-servers/nginx/nginx-1.30.2-r2.ebuild b/www-servers/nginx/nginx-1.30.2-r2.ebuild deleted file mode 100644 index 8021ac960114..000000000000 --- a/www-servers/nginx/nginx-1.30.2-r2.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 - -NGINX_SUBSYSTEMS=(+http stream mail) -NGINX_MODULES=( - +http_{charset,gzip,ssi,userid,access,auth_basic,mirror,autoindex,geo,map} - +http_{split_clients,referer,rewrite,proxy,fastcgi,uwsgi,scgi,grpc} - +http_{memcached,limit_conn,limit_req,empty_gif,browser,upstream_hash} - +http_{upstream_ip_hash,upstream_least_conn,upstream_random} - +http_{upstream_keepalive,upstream_zone} - http_{ssl,v2,v3,realip,addition,xslt,image_filter,geoip,sub,dav,flv,mp4} - http_{gunzip,gzip_static,auth_request,random_index,secure_link,degradation} - http_{slice,stub_status,perl} - +mail_{pop3,imap,smtp} - mail_ssl - +stream_{limit_conn,access,geo,map,split_clients,return,pass,set} - +stream_{upstream_hash,upstream_least_conn,upstream_random,upstream_zone} - stream_{ssl,realip,geoip,ssl_preread} -) -NGINX_TESTS_COMMIT=0f72f59c40de9977bd8f3deff5d200e761b8b683 -NGINX_MISC_FILES=( - nginx-{r2.logrotate,r2.service,r5.conf,r6.initd,r1.confd,r1.tmpfiles} -) -NGINX_SUPPORT_MODULE_STUBS=1 - -inherit nginx - -KEYWORDS="amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv x86" - -PATCHES=( - "${FILESDIR}/${PN}-httpoxy-mitigation-r1.patch" -) diff --git a/www-servers/nginx/nginx-1.30.3-r2.ebuild b/www-servers/nginx/nginx-1.30.3-r2.ebuild deleted file mode 100644 index 8021ac960114..000000000000 --- a/www-servers/nginx/nginx-1.30.3-r2.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 - -NGINX_SUBSYSTEMS=(+http stream mail) -NGINX_MODULES=( - +http_{charset,gzip,ssi,userid,access,auth_basic,mirror,autoindex,geo,map} - +http_{split_clients,referer,rewrite,proxy,fastcgi,uwsgi,scgi,grpc} - +http_{memcached,limit_conn,limit_req,empty_gif,browser,upstream_hash} - +http_{upstream_ip_hash,upstream_least_conn,upstream_random} - +http_{upstream_keepalive,upstream_zone} - http_{ssl,v2,v3,realip,addition,xslt,image_filter,geoip,sub,dav,flv,mp4} - http_{gunzip,gzip_static,auth_request,random_index,secure_link,degradation} - http_{slice,stub_status,perl} - +mail_{pop3,imap,smtp} - mail_ssl - +stream_{limit_conn,access,geo,map,split_clients,return,pass,set} - +stream_{upstream_hash,upstream_least_conn,upstream_random,upstream_zone} - stream_{ssl,realip,geoip,ssl_preread} -) -NGINX_TESTS_COMMIT=0f72f59c40de9977bd8f3deff5d200e761b8b683 -NGINX_MISC_FILES=( - nginx-{r2.logrotate,r2.service,r5.conf,r6.initd,r1.confd,r1.tmpfiles} -) -NGINX_SUPPORT_MODULE_STUBS=1 - -inherit nginx - -KEYWORDS="amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv x86" - -PATCHES=( - "${FILESDIR}/${PN}-httpoxy-mitigation-r1.patch" -) diff --git a/www-servers/nginx/nginx-1.31.2-r2.ebuild b/www-servers/nginx/nginx-1.31.2-r2.ebuild deleted file mode 100644 index 15ee7e9939cc..000000000000 --- a/www-servers/nginx/nginx-1.31.2-r2.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -NGINX_SUBSYSTEMS=(+http stream mail) -NGINX_MODULES=( - +http_{charset,gzip,ssi,userid,access,auth_basic,mirror,autoindex,geo,map} - +http_{split_clients,referer,rewrite,proxy,fastcgi,uwsgi,scgi,grpc} - +http_{memcached,limit_conn,limit_req,empty_gif,browser,upstream_hash} - +http_{upstream_ip_hash,upstream_least_conn,upstream_random} - +http_{upstream_keepalive,upstream_zone} - http_{ssl,v2,v3,realip,addition,xslt,image_filter,geoip,sub,dav,flv,mp4} - http_{gunzip,gzip_static,auth_request,random_index,secure_link,degradation} - http_{slice,stub_status,perl} - +mail_{pop3,imap,smtp} - mail_ssl - +stream_{limit_conn,access,geo,map,split_clients,return,pass,set} - +stream_{upstream_hash,upstream_least_conn,upstream_random,upstream_zone} - stream_{ssl,realip,geoip,ssl_preread} -) -NGINX_TESTS_COMMIT=56ae49add9286d2e896a22bcfb880c7ea7c3964e -NGINX_MISC_FILES=( - nginx-{r2.logrotate,r2.service,r5.conf,r6.initd,r1.confd,r1.tmpfiles} -) -NGINX_SUPPORT_MODULE_STUBS=1 - -inherit nginx - -KEYWORDS="amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv x86" - -PATCHES=( - "${FILESDIR}/${PN}-httpoxy-mitigation-r1.patch" -) - -src_prepare() { - nginx_src_prepare - - if use test ; then - # Fails with network-sandbox (bug #976129) - rm "${NGX_TESTS_S}"/tunnel_next_upstream.t || die - fi -} diff --git a/www-servers/nginx/nginx-1.31.1-r2.ebuild b/www-servers/nginx/nginx-1.31.5.ebuild index a08001ea0e0f..97a69df54798 100644 --- a/www-servers/nginx/nginx-1.31.1-r2.ebuild +++ b/www-servers/nginx/nginx-1.31.5.ebuild @@ -19,7 +19,7 @@ NGINX_MODULES=( +stream_{upstream_hash,upstream_least_conn,upstream_random,upstream_zone} stream_{ssl,realip,geoip,ssl_preread} ) -NGINX_TESTS_COMMIT=4d1de3f357afeb91865d024b27516d6b67aad86e +NGINX_TESTS_COMMIT=9f1db4a63b14d2898652493735987d30ea61736f NGINX_MISC_FILES=( nginx-{r2.logrotate,r2.service,r5.conf,r6.initd,r1.confd,r1.tmpfiles} ) @@ -27,7 +27,7 @@ NGINX_SUPPORT_MODULE_STUBS=1 inherit nginx -KEYWORDS="amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv x86" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" PATCHES=( "${FILESDIR}/${PN}-httpoxy-mitigation-r1.patch" diff --git a/www-servers/tomcat/Manifest b/www-servers/tomcat/Manifest index 6bd594f5599f..019932e97ce5 100644 --- a/www-servers/tomcat/Manifest +++ b/www-servers/tomcat/Manifest @@ -2,11 +2,17 @@ DIST apache-tomcat-10.1.57-src.tar.gz 7606363 BLAKE2B a7c94300d0eadb9a1bf747066a DIST apache-tomcat-10.1.57-src.tar.gz.asc 833 BLAKE2B 79c1736ebb855940b292d4e299ed930ec2735b65022666e738ee99a023e9ea06941a5b675e78c84c19d65adff38c6bb304716f1eb9494117bf52c0e5570f5d6c SHA512 439173b27280dea2b09ff49556de3acc3f5195804b2ef18407dd3f2f7e1c147ac619e72513a6f96ea58d330e4c51dedfc594f8c0d813c18844f11e7abdd0d010 DIST apache-tomcat-10.1.59-src.tar.gz 7644234 BLAKE2B faf56391c6a8d1591145c492c7a2263fabcd1af64271aad07955e12c945a24fbc418fadd43dd1ed27b1b26f89a9e734374f77d7a32f51e0a7939be9a7067cb02 SHA512 19a6736b42370fb6fa64d0c4dab3f33c68b80602c45d86873f2334e42833c3e7e2364c0d34a9dbb86474d9b86640166d263838d485a5b696fd845f2d20114bea DIST apache-tomcat-10.1.59-src.tar.gz.asc 833 BLAKE2B 8ebbdf0942ccdaeb95423e31f7e4c503da294dd9810714876d61e782fbbbd8386487f5cb7c4113c11fc5b79740f7f2e0f5e7fb5c4d85488255d392295fdb7220 SHA512 287d728df23f6a4684d39f08211ea2c7865f52553fad8bd3822e1eb5840b04bb445f6dc7143b1632e8d18ecebb13667e7168cca9360226f436d9749684928b3f +DIST apache-tomcat-10.1.60-src.tar.gz 7685440 BLAKE2B 9f875afef5204156d80260cc47e3bfc566ed4edf5d54cdeb89ebd59ee5e28afc0af61bff98975eeff073e58bfeec16324bb32dd163b940210b94e868c39b0db0 SHA512 89723836d4ce641758ab291f89fb5956224d7df48339763f3174c1323ebea87fe1890bea5b722c4f3f68a9100f335a0dec12794fe4f305269b1c5f973b811fe3 +DIST apache-tomcat-10.1.60-src.tar.gz.asc 833 BLAKE2B 52c17c2c28478a6cfbdb1c653a26febd73928e39274406a4a34aa2929357f627b64d98306e2e50a0464f4b45d0af16cd0685e0216cb8e7cdbdd947e844dd0f6f SHA512 02867f485fd9b768c28d35f4ff31488288d120316e134dc9a688b8c8796d56c99206f10ebef92be2ad2b51f5fd90a352e1985c2bec20329f7a872fddd8ea252f DIST apache-tomcat-11.0.24-src.tar.gz 7533492 BLAKE2B 6ba7c73cfcc9d75dd541b0b1bbf303ed390852f4fc2cd3c5d52dc630f1367f69e85864e25efba5886c3b1e789f63ffe55e38ea288603b111e761eb7b4671e026 SHA512 7487af14b81c6f21741e44bcbeb2a63766c4e4fbba856710a3934da96432e573544ce719b56c1a8e133dcbc131f6fc3019a60a0d737ce65e2cf05d60ef11e885 DIST apache-tomcat-11.0.24-src.tar.gz.asc 849 BLAKE2B aac77fa7a2f53a2233667b6192505700dfdb913648d4a23f0fce9f826fbd57d63d39c61317545320c7c22772c675a53ddf7810a23367050b575bf11b57d92c02 SHA512 33261f4263aa3e883d01b40e1bbd450cfcaa34baa9912a4faecf0b63ae92da50a314d61e0467410bc2f419b541dc982283ca63097ec65135a8c81349c53925a2 DIST apache-tomcat-11.0.25-src.tar.gz 7566442 BLAKE2B cdc4de46e89bc6c8befd29062a845a3d555c8b0b2eb6063c70525c254acfc80018fb7fb5a3dbbc2d6680e1a1c3cdc754928170fb03ef789ce71f3b5f02d33b40 SHA512 726f68024ae3774e83441814b1bb34970b0c86754b03a2990c6f8f69c23afa985ec00fd7b0367cc855f7d8347e0b88c86be70dc1a319bc0c1874f2e00d15d073 DIST apache-tomcat-11.0.25-src.tar.gz.asc 849 BLAKE2B 4451f8b2e6a063daee9eee4cf7c35d074472d1e1f493c9b5b575666b0f52948bd89a166b89a7f4371418bbae26b6d4a1f70901e0382fd7fd5d873522b60e4ff4 SHA512 b120f69b426ef277809b0b0d85141dc75c640fd5a029e942efd53b170d5abc56e95531106342425e3d6cc6effc3ee961876b74b1110558aa5b6df8b8aa8dfe96 +DIST apache-tomcat-11.0.26-src.tar.gz 7615759 BLAKE2B c62ed9ccd4b5d1ff0b77ff90a9431c77480ba483e5c59f28a1d93b52294b7652969bdbaef9a8daa94e9093b129769a061e703a3e0f82552607e71e31fa6c01a7 SHA512 c46aa9ac4a5fd748eacb8fe12fa71fb59f2bef78e2d9aec350f70e52f674f4d6b5e8ebd589b641021a9b7ee37fec4c6fff629d5456c7391fad6ce87df0def9a8 +DIST apache-tomcat-11.0.26-src.tar.gz.asc 849 BLAKE2B 16d20e8ce01b696e5a8405dad0779bd5c0cbecd4f83ef89a5c56625c6c2883e4dc6054af430508fdef0812bd8e2c6e1cf4a9a8d70cb92161e5d76561c7298fd5 SHA512 ca14d997cabc683b9570d0725185e34742140653e77ef86dbe4aa49469ed4d967c634589b5a3429d24b77072ec81abe4a54b892ca138b9f94320ac685cb478b8 DIST apache-tomcat-9.0.120-src.tar.gz 7724604 BLAKE2B 016d3ab4cd04d57ddcdf6866012001138457072a4404e33f28ce9147561857d3ea0ed24262c104431798ffec26fc5b3159cbd7beaf9ba2ab21287ceb733e0ff7 SHA512 db8230bb08b1c33ea710b71fbba1de3d0c84c6416a784921333c03ef6526c1b022b0b2ad18686b734babba538500da795e46bf5bbbd789d8a7a251ffb3665a59 DIST apache-tomcat-9.0.120-src.tar.gz.asc 833 BLAKE2B 28423f6f7b79daf7d848b5cbc8ce8bf85197d0cd2ee91a03f9c4ffbeffda953061d394bef477a8566325fb9424c7aed45edca32335ae7466e72de9dae06a2749 SHA512 d1e30b57f108561d95eb755843a1372ad2daa33cd0eb079b4f81da62ddd89259774b7938287a0752628f332e75f4551009c2108c463220d6084be08b95530afd DIST apache-tomcat-9.0.121-src.tar.gz 7762442 BLAKE2B 63e9d94e2d2a2c7c046071376b910075c80f680ade65603d86556e46da851c83185c4a58a774dfaa0a1465a1c33acf561c11f3753c038282700bf804d2014a88 SHA512 15a2b56f5d0feb2b70ea8a1d2369ddeac027b44ad18954cedd423da4ed98b14ba20a0f1c4a857f00262763beb83693d9569764946f911a8611dc1eb179cd4609 DIST apache-tomcat-9.0.121-src.tar.gz.asc 833 BLAKE2B 7b5fc3d13f9926d63435090e303ed970a28e7153a7946a310b848c2ec189593e97c93ce3ce41e190f06f1f30b968006bfdecfb2b7090a3f55ea23a59604a0b94 SHA512 576de422d07e3ad38e0bdd396c7ab74c6cc7122bab75e1983ec11de8e4c19b68a8c4e6d685fc6769a6db6e81e7aa290a4f54dc75e784ef9430f7197e039b965c +DIST apache-tomcat-9.0.122-src.tar.gz 7806670 BLAKE2B 41082ac9fd65e1b4db11a9855096f5c3dd8032c6c8cd895ee3ab88828f779ebd21084ee4ee96b6a856d29a014dc8b64194a8bafaddb969e7d3485376168f771b SHA512 c4cd027f427c66e566be2c8c534c748dbaeb94b2aea5822cf0e61a731afd86a9b22b5a551e768e62c676c779a5d6494e784530e73b549fb49f2df47fc89e86e8 +DIST apache-tomcat-9.0.122-src.tar.gz.asc 833 BLAKE2B 8a26fc3aaaa9d8dd517373c87a598597be485c908dbb292b53a3546986710a5ea57dcbc55cb9c4c7110a0be02ac20db7a30a1e10e7e51d84359a9ebd80cee344 SHA512 3280e2b73dfe539e8777d5fc291d3adccf135a496be85159fc7e505ff69a5c5033488f96e1a13dc96e8568246f417fdd8f37a4a76d9a07ddabe5d6c262f3b165 diff --git a/www-servers/tomcat/tomcat-10.1.60.ebuild b/www-servers/tomcat/tomcat-10.1.60.ebuild new file mode 100644 index 000000000000..d23eea277c7f --- /dev/null +++ b/www-servers/tomcat/tomcat-10.1.60.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +JAVA_PKG_IUSE="doc source test" + +inherit java-pkg-2 prefix verify-sig + +MY_P="apache-${P}-src" + +DESCRIPTION="Tomcat Servlet-6.0/JSP-3.1/EL-5.0/WebSocket-2.1/JASPIC-3.0 Container" +HOMEPAGE="https://tomcat.apache.org/" +SRC_URI="mirror://apache/${PN}/tomcat-10/v${PV}/src/${MY_P}.tar.gz + verify-sig? ( https://downloads.apache.org/tomcat/tomcat-$(ver_cut 1)/v${PV}/src/${MY_P}.tar.gz.asc )" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="10.1" +KEYWORDS="~amd64 ~arm64" +IUSE="extra-webapps" + +RESTRICT="test" # can we run them on a production system? + +BND_MIN="7.2.3" +ECJ_SLOT="4.26" + +COMMON_DEP=" + >=dev-java/ant-1.10.15-r1:0 + >=dev-java/bnd-annotation-${BND_MIN}:0 + dev-java/eclipse-ecj:${ECJ_SLOT} + dev-java/jax-rpc-api:0 + >=dev-java/jakartaee-migration-1.0.10:0 + >=dev-java/wsdl4j-1.6.3-r1:0" + +# jre-17:* because of line 1081, build.xml +# <filter token="target.jdk" value="${compile.release}"/> +RDEPEND=" + ${COMMON_DEP} + acct-group/tomcat + acct-user/tomcat + >=virtual/jre-11:*" +DEPEND=" + ${COMMON_DEP} + app-admin/pwgen + >=dev-java/bnd-${BND_MIN}:0 + >=dev-java/bnd-ant-${BND_MIN}:0 + >=dev-java/bnd-util-${BND_MIN}:0 + >=dev-java/bndlib-${BND_MIN}:0 + >=dev-java/libg-${BND_MIN}:0 + dev-java/osgi-cmpn:8 + dev-java/osgi-core:0 + dev-java/slf4j-api:0 + || ( virtual/jdk:21 virtual/jdk:17 ) + test? ( + >=dev-java/ant-1.10.15:0[junit] + >=dev-java/easymock-5.7.0:0 + )" + +BDEPEND="verify-sig? ( ~sec-keys/openpgp-keys-apache-tomcat-$(ver_cut 1) )" +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/tomcat-$(ver_cut 1).apache.org.asc" + +PATCHES=( + "${FILESDIR}/tomcat-10.1.20-do-not-copy.patch" + "${FILESDIR}/tomcat-10.1.20-offline.patch" + "${FILESDIR}/tomcat-9.0.87-gentoo-bnd.patch" +) + +src_prepare() { + java-pkg-2_src_prepare + java-pkg_clean + + cat > build.properties <<-EOF || die + compile.debug=false + execute.download=false + exist=true # skip target="downloadfile-2" + version=${PV}-gentoo + version.number=${PV} + ant.jar=$(java-pkg_getjar --build-only ant ant.jar) + bnd-annotation.jar=$(java-pkg_getjars bnd-annotation) + bnd-ant.jar=$(java-pkg_getjars --build-only bnd-ant) + bnd-util.jar=$(java-pkg_getjars --build-only bnd-util) + bnd.jar=$(java-pkg_getjars --build-only bnd) + bndlib.jar=$(java-pkg_getjars --build-only bndlib) + jaxrpc-lib.jar=$(java-pkg_getjars jax-rpc-api) + jdt.jar=$(java-pkg_getjars eclipse-ecj-${ECJ_SLOT}) + libg.jar=$(java-pkg_getjars --build-only libg) + migration-lib.jar=$(java-pkg_getjars jakartaee-migration) + osgi-cmpn.jar=$(java-pkg_getjars --build-only osgi-cmpn-8) + osgi-core.jar=$(java-pkg_getjars --build-only osgi-core) + slf4j-api.jar=$(java-pkg_getjars --build-only slf4j-api) + wsdl4j-lib.jar=$(java-pkg_getjars wsdl4j) + EOF + if use test; then + echo "easymock.jar=$(java-pkg_getjars --build-only easymock-3.2)" \ + >> build.properties || die "easymock" + fi + + # For use of catalina.sh in netbeans + sed -i -e "/^# ----- Execute The Requested Command/ a\ + CLASSPATH=\`java-config --with-dependencies --classpath ${PN}-${SLOT}\`" \ + bin/catalina.sh || die +} + +# revisions of the scripts +IM_REV="-r2" +INIT_REV="-r1" + +src_compile() { + LC_ALL=C eant deploy $(usev doc javadoc) +} + +src_test() { + eant test +} + +src_install() { + local dest="/usr/share/${PN}-${SLOT}" + + java-pkg_jarinto "${dest}"/bin + java-pkg_dojar output/build/bin/*.jar + exeinto "${dest}"/bin + doexe output/build/bin/*.sh + + java-pkg_jarinto "${dest}"/lib + java-pkg_dojar output/build/lib/*.jar + + dodoc RELEASE-NOTES RUNNING.txt + use doc && java-pkg_dojavadoc output/dist/webapps/docs/api + use source && java-pkg_dosrc java/* + + ### Webapps ### + + # add missing docBase + local apps="host-manager manager" + for app in ${apps}; do + sed -i -e "s|=\"true\" >|=\"true\" docBase=\"\$\{catalina.home\}/webapps/${app}\" >|" \ + output/build/webapps/${app}/META-INF/context.xml || die + done + + insinto "${dest}"/webapps + doins -r output/build/webapps/{host-manager,manager,ROOT} + use extra-webapps && doins -r output/build/webapps/{docs,examples} + + ### Config ### + + # create "logs" directory in $CATALINA_BASE + # and set correct perms, see #458890 + dodir "${dest}"/logs + fperms 0750 "${dest}"/logs + + # replace the default pw with a random one, see #92281 + local randpw="$(pwgen -s -B 15 1)" + sed -i -e "s|SHUTDOWN|${randpw}|" output/build/conf/server.xml || die + + # prepend gentoo.classpath to common.loader, see #453212 + sed -i -e 's/^common\.loader=/\0${gentoo.classpath},/' output/build/conf/catalina.properties || die + + insinto "${dest}" + doins -r output/build/conf + + ### rc ### + + cp "${FILESDIR}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} "${T}" || die + eprefixify "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} + sed -i -e "s|@SLOT@|${SLOT}|g" "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} || die + + insinto "${dest}"/gentoo + doins "${T}"/tomcat.conf + exeinto "${dest}"/gentoo + newexe "${T}"/tomcat${INIT_REV}.init tomcat.init + newexe "${T}"/tomcat-instance-manager${IM_REV}.bash tomcat-instance-manager.bash +} + +pkg_postinst() { + einfo "Ebuilds of Tomcat support running multiple instances. To manage Tomcat instances, run:" + einfo " ${EPREFIX}/usr/share/${PN}-${SLOT}/gentoo/tomcat-instance-manager.bash --help" + + ewarn "Please note that since version 10 the primary package for all implemented APIs" + ewarn "has changed from javax.* to jakarta.*. This will almost certainly require code" + ewarn "changes to enable applications to migrate from Tomcat 9 and earlier to Tomcat 10 and later." + + einfo "Please read https://wiki.gentoo.org/wiki/Apache_Tomcat" +} diff --git a/www-servers/tomcat/tomcat-11.0.26.ebuild b/www-servers/tomcat/tomcat-11.0.26.ebuild new file mode 100644 index 000000000000..58463f9dd6c9 --- /dev/null +++ b/www-servers/tomcat/tomcat-11.0.26.ebuild @@ -0,0 +1,185 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +JAVA_PKG_IUSE="doc source test" + +inherit java-pkg-2 prefix verify-sig + +MY_P="apache-${P}-src" + +DESCRIPTION="Tomcat Servlet-6.1/JSP-4.0/EL-6.0/WebSocket-2.2/JASPIC-3.1 Container" +HOMEPAGE="https://tomcat.apache.org/" +SRC_URI="mirror://apache/${PN}/tomcat-$(ver_cut 1)/v${PV}/src/${MY_P}.tar.gz + verify-sig? ( https://downloads.apache.org/tomcat/tomcat-$(ver_cut 1)/v${PV}/src/${MY_P}.tar.gz.asc )" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="11" + +KEYWORDS="~amd64 ~arm64" +IUSE="extra-webapps" + +RESTRICT="test" # can we run them on a production system? + +BND_MIN="7.2.3" +ECJ_SLOT="4.40" + +COMMON_DEP=" + >=dev-java/ant-1.10.15-r1:0 + >=dev-java/bnd-annotation-${BND_MIN}:0 + dev-java/eclipse-ecj:${ECJ_SLOT} + dev-java/jax-rpc-api:0 + >=dev-java/jakartaee-migration-1.0.12:0 + >=dev-java/wsdl4j-1.6.3-r1:0" + +# jre-17:* because of line 1081, build.xml +# <filter token="target.jdk" value="${compile.release}"/> +RDEPEND=" + ${COMMON_DEP} + acct-group/tomcat + acct-user/tomcat + >=virtual/jre-17:*" +DEPEND=" + ${COMMON_DEP} + app-admin/pwgen + >=dev-java/bnd-${BND_MIN}:0 + >=dev-java/bnd-ant-${BND_MIN}:0 + >=dev-java/bnd-util-${BND_MIN}:0 + >=dev-java/bndlib-${BND_MIN}:0 + >=dev-java/libg-${BND_MIN}:0 + dev-java/osgi-cmpn:8 + dev-java/osgi-core:0 + dev-java/slf4j-api:0 + || ( virtual/jdk:21 virtual/jdk:17 ) + test? ( + >=dev-java/ant-1.10.15-r1:0[junit] + >=dev-java/easymock-5.7.0:0 + )" + +BDEPEND="verify-sig? ( ~sec-keys/openpgp-keys-apache-tomcat-$(ver_cut 1) )" +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/tomcat-$(ver_cut 1).apache.org.asc" + +PATCHES=( + "${FILESDIR}/tomcat-10.1.20-do-not-copy.patch" + "${FILESDIR}/tomcat-11.0.0-offline.patch" + "${FILESDIR}/tomcat-9.0.87-gentoo-bnd.patch" +) + +src_prepare() { + java-pkg-2_src_prepare + java-pkg_clean + + cat > build.properties <<-EOF || die + compile.debug=false + execute.download=false + exist=true # skip target="downloadfile-2" + version=${PV}-gentoo + version.number=${PV} + ant.jar=$(java-pkg_getjar --build-only ant ant.jar) + bnd-annotation.jar=$(java-pkg_getjars bnd-annotation) + bnd-ant.jar=$(java-pkg_getjars --build-only bnd-ant) + bnd-util.jar=$(java-pkg_getjars --build-only bnd-util) + bnd.jar=$(java-pkg_getjars --build-only bnd) + bndlib.jar=$(java-pkg_getjars --build-only bndlib) + jaxrpc-lib.jar=$(java-pkg_getjars --build-only jax-rpc-api) + jdt.jar=$(java-pkg_getjars eclipse-ecj-${ECJ_SLOT}) + libg.jar=$(java-pkg_getjars --build-only libg) + migration-lib.jar=$(java-pkg_getjars jakartaee-migration) + osgi-cmpn.jar=$(java-pkg_getjars --build-only osgi-cmpn-8) + osgi-core.jar=$(java-pkg_getjars --build-only osgi-core) + slf4j-api.jar=$(java-pkg_getjars --build-only slf4j-api) + wsdl4j-lib.jar=$(java-pkg_getjars --build-only wsdl4j) + EOF + if use test; then + echo "easymock.jar=$(java-pkg_getjars --build-only easymock-3.2)" \ + >> build.properties || die "easymock" + fi + + # For use of catalina.sh in netbeans + sed -i -e "/^# ----- Execute The Requested Command/ a\ + CLASSPATH=\`java-config --with-dependencies --classpath ${PN}-${SLOT}\`" \ + bin/catalina.sh || die +} + +# revisions of the scripts +IM_REV="-r2" +INIT_REV="-r1" + +src_compile() { + LC_ALL=C eant deploy $(usev doc javadoc) +} + +src_test() { + eant test +} + +src_install() { + local dest="/usr/share/${PN}-${SLOT}" + + java-pkg_jarinto "${dest}"/bin + java-pkg_dojar output/build/bin/*.jar + exeinto "${dest}"/bin + doexe output/build/bin/*.sh + + java-pkg_jarinto "${dest}"/lib + java-pkg_dojar output/build/lib/*.jar + + dodoc RELEASE-NOTES RUNNING.txt + use doc && java-pkg_dojavadoc output/dist/webapps/docs/api + use source && java-pkg_dosrc java/* + + ### Webapps ### + + # add missing docBase + local apps="host-manager manager" + for app in ${apps}; do + sed -i -e "s|=\"true\" >|=\"true\" docBase=\"\$\{catalina.home\}/webapps/${app}\" >|" \ + output/build/webapps/${app}/META-INF/context.xml || die + done + + insinto "${dest}"/webapps + doins -r output/build/webapps/{host-manager,manager,ROOT} + use extra-webapps && doins -r output/build/webapps/{docs,examples} + + ### Config ### + + # create "logs" directory in $CATALINA_BASE + # and set correct perms, see #458890 + dodir "${dest}"/logs + fperms 0750 "${dest}"/logs + + # replace the default pw with a random one, see #92281 + local randpw="$(pwgen -s -B 15 1)" + sed -i -e "s|SHUTDOWN|${randpw}|" output/build/conf/server.xml || die + + # prepend gentoo.classpath to common.loader, see #453212 + sed -i -e 's/^common\.loader=/\0${gentoo.classpath},/' output/build/conf/catalina.properties || die + + insinto "${dest}" + doins -r output/build/conf + + ### rc ### + + cp "${FILESDIR}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} "${T}" || die + eprefixify "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} + sed -i -e "s|@SLOT@|${SLOT}|g" "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} || die + + insinto "${dest}"/gentoo + doins "${T}"/tomcat.conf + exeinto "${dest}"/gentoo + newexe "${T}"/tomcat${INIT_REV}.init tomcat.init + newexe "${T}"/tomcat-instance-manager${IM_REV}.bash tomcat-instance-manager.bash +} + +pkg_postinst() { + einfo "Ebuilds of Tomcat support running multiple instances. To manage Tomcat instances, run:" + einfo " ${EPREFIX}/usr/share/${PN}-${SLOT}/gentoo/tomcat-instance-manager.bash --help" + + ewarn "Please note that since version 10 the primary package for all implemented APIs" + ewarn "has changed from javax.* to jakarta.*. This will almost certainly require code" + ewarn "changes to enable applications to migrate from Tomcat 9 and earlier to Tomcat 10 and later." + + einfo "Please read https://wiki.gentoo.org/wiki/Apache_Tomcat" +} diff --git a/www-servers/tomcat/tomcat-9.0.122.ebuild b/www-servers/tomcat/tomcat-9.0.122.ebuild new file mode 100644 index 000000000000..4f9f556a107d --- /dev/null +++ b/www-servers/tomcat/tomcat-9.0.122.ebuild @@ -0,0 +1,180 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +JAVA_PKG_IUSE="doc source test" + +inherit java-pkg-2 prefix verify-sig + +MY_P="apache-${P}-src" + +DESCRIPTION="Tomcat Servlet-4.0/JSP-2.3/EL-3.0/WebSocket-1.1/JASPIC-1.1 Container" +HOMEPAGE="https://tomcat.apache.org/" +SRC_URI="mirror://apache/${PN}/tomcat-9/v${PV}/src/${MY_P}.tar.gz + verify-sig? ( https://downloads.apache.org/tomcat/tomcat-$(ver_cut 1)/v${PV}/src/${MY_P}.tar.gz.asc )" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="9" +KEYWORDS="~amd64 ~arm64" +IUSE="extra-webapps" + +RESTRICT="test" # can we run them on a production system? + +BND_MIN="7.2.3" +ECJ_SLOT="4.20" + +COMMON_DEP=" + >=dev-java/bnd-annotation-${BND_MIN}:0 + dev-java/eclipse-ecj:${ECJ_SLOT} + dev-java/jax-rpc-api:0 + >=dev-java/wsdl4j-1.6.3-r1:0 +" + +RDEPEND=" + ${COMMON_DEP} + acct-group/tomcat + acct-user/tomcat + dev-java/javax-persistence-api:0 + >=virtual/jre-1.8:* +" + +DEPEND=" + ${COMMON_DEP} + app-admin/pwgen + >=dev-java/ant-1.10.15:0 + >=dev-java/bnd-${BND_MIN}:0 + >=dev-java/bnd-ant-${BND_MIN}:0 + >=dev-java/bnd-util-${BND_MIN}:0 + >=dev-java/bndlib-${BND_MIN}:0 + >=dev-java/libg-${BND_MIN}:0 + dev-java/osgi-cmpn:8 + dev-java/osgi-core:0 + dev-java/slf4j-api:0 + || ( virtual/jdk:21 virtual/jdk:17 ) + test? ( + >=dev-java/ant-1.10.15-r1:0[junit] + >=dev-java/easymock-5.7.0:0 + ) +" + +BDEPEND="verify-sig? ( ~sec-keys/openpgp-keys-apache-tomcat-$(ver_cut 1) )" +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/tomcat-$(ver_cut 1).apache.org.asc" + +PATCHES=( + "${FILESDIR}/tomcat-9.0.104-build.xml.patch" + "${FILESDIR}/tomcat-9.0.87-gentoo-bnd.patch" +) + +src_prepare() { + java-pkg-2_src_prepare + java-pkg_clean + + cat > build.properties <<-EOF || die + compile.debug=false + execute.download=false + exist=true # skip target="downloadfile-2" + version=${PV}-gentoo + version.number=${PV} + ant.jar=$(java-pkg_getjar --build-only ant ant.jar) + bnd-annotation.jar=$(java-pkg_getjars bnd-annotation) + bnd-ant.jar=$(java-pkg_getjars --build-only bnd-ant) + bnd-util.jar=$(java-pkg_getjars --build-only bnd-util) + bnd.jar=$(java-pkg_getjars --build-only bnd) + bndlib.jar=$(java-pkg_getjars --build-only bndlib) + jaxrpc-lib.jar=$(java-pkg_getjars jax-rpc-api) + jdt.jar=$(java-pkg_getjars eclipse-ecj-${ECJ_SLOT}) + libg.jar=$(java-pkg_getjars --build-only libg) + osgi-cmpn.jar=$(java-pkg_getjars --build-only osgi-cmpn-8) + osgi-core.jar=$(java-pkg_getjars --build-only osgi-core) + slf4j-api.jar=$(java-pkg_getjars --build-only slf4j-api) + wsdl4j-lib.jar=$(java-pkg_getjars wsdl4j) + EOF + if use test; then + echo "easymock.jar=$(java-pkg_getjars --build-only easymock-3.2)" \ + >> build.properties || die "easymock" + fi + + # For use of catalina.sh in netbeans + sed -i -e "/^# ----- Execute The Requested Command/ a\ + CLASSPATH=\`java-config --with-dependencies --classpath ${PN}-${SLOT}\`" \ + bin/catalina.sh || die +} + +# revisions of the scripts +IM_REV="-r2" +INIT_REV="-r1" + +src_compile() { + LC_ALL=C eant deploy $(usev doc javadoc) +} + +src_test() { + eant test +} + +src_install() { + local dest="/usr/share/${PN}-${SLOT}" + + java-pkg_jarinto "${dest}"/bin + java-pkg_dojar output/build/bin/*.jar + exeinto "${dest}"/bin + doexe output/build/bin/*.sh + + java-pkg_jarinto "${dest}"/lib + java-pkg_dojar output/build/lib/*.jar + + dodoc RELEASE-NOTES RUNNING.txt + use doc && java-pkg_dojavadoc output/dist/webapps/docs/api + use source && java-pkg_dosrc java/* + + ### Webapps ### + + # add missing docBase + local apps="host-manager manager" + for app in ${apps}; do + sed -i -e "s|=\"true\" >|=\"true\" docBase=\"\$\{catalina.home\}/webapps/${app}\" >|" \ + output/build/webapps/${app}/META-INF/context.xml || die + done + + insinto "${dest}"/webapps + doins -r output/build/webapps/{host-manager,manager,ROOT} + use extra-webapps && doins -r output/build/webapps/{docs,examples} + + ### Config ### + + # create "logs" directory in $CATALINA_BASE + # and set correct perms, see #458890 + dodir "${dest}"/logs + fperms 0750 "${dest}"/logs + + # replace the default pw with a random one, see #92281 + local randpw="$(pwgen -s -B 15 1)" + sed -i -e "s|SHUTDOWN|${randpw}|" output/build/conf/server.xml || die + + # prepend gentoo.classpath to common.loader, see #453212 + sed -i -e 's/^common\.loader=/\0${gentoo.classpath},/' output/build/conf/catalina.properties || die + + insinto "${dest}" + doins -r output/build/conf + + ### rc ### + + cp "${FILESDIR}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} "${T}" || die + eprefixify "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} + sed -i -e "s|@SLOT@|${SLOT}|g" "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} || die + + insinto "${dest}"/gentoo + doins "${T}"/tomcat.conf + exeinto "${dest}"/gentoo + newexe "${T}"/tomcat${INIT_REV}.init tomcat.init + newexe "${T}"/tomcat-instance-manager${IM_REV}.bash tomcat-instance-manager.bash +} + +pkg_postinst() { + einfo "Ebuilds of Tomcat support running multiple instances. To manage Tomcat instances, run:" + einfo " ${EPREFIX}/usr/share/${PN}-${SLOT}/gentoo/tomcat-instance-manager.bash --help" + + einfo "Please read https://wiki.gentoo.org/wiki/Apache_Tomcat" +} diff --git a/www-servers/vinyl-cache/Manifest b/www-servers/vinyl-cache/Manifest index 8dcf2a278be0..da2b78dffae9 100644 --- a/www-servers/vinyl-cache/Manifest +++ b/www-servers/vinyl-cache/Manifest @@ -1,4 +1,4 @@ -DIST varnish-8.0.1.tgz 4309436 BLAKE2B 802368affb3706968d2a5538bcf560d5875e9856046fb2a0e6cd2d110394ec6e2efd111d0284eb5f40b09eaac9686e249ae9a140b8ddea06e3e188db1842a0ec SHA512 6ca63160e068d4ae6aca9c7f2e848aabc5fe327bae18b3a008e573a27c0ed2ac958740fe129477cb384dded94b1c93cbd54efec5fd6f17098c23263d11ffc9ff DIST varnish-8.0.2.tgz 4314061 BLAKE2B df9505c54815ae86d07e997ead7af5608969dccd3b91bf154fa6fa0591a3deee94b7cf4446c4c0d1e77ed5d2cb02d9ec812046f1f6db65a9df46cde911088fd4 SHA512 2eaac96d7121a750e6f18a271728d1fc7f7e8f079af38d450c8d395d6653942ac8cf970fa3c64f2ee7ea056617ebb5092cfe58b255dece6e948ce1308f602065 -DIST vinyl-cache-9.0.0.tgz 6353519 BLAKE2B 6cf36a66e74037a9b11d5048e0797fa2b4d6665d9463363d7d9816854d2a58744c00f684f6e274600459e8c124cfeff8405015e378c7ce12497ba65051331adb SHA512 c7be55b13609a0842bb938af39203b77a1ed17257e18f7ea29b89760687317c135dee48b8b2936561c00aeabe321e503b209b5b9af876588dd824c6c6847d17e DIST vinyl-cache-9.0.1.tgz 6355153 BLAKE2B 4bb7b6003197be7e6363ae8e7523bc5242802a6a8b84a0782f7e4bea929ec8fb6c8ac5e849a717b650844a30ef446f07b3b83fca981af9c7a3a83d79eacb7ad4 SHA512 6aaa936e3bce6e195d469642949bf35a76cd04e6bcdc6ff1bc608ce2b37c871cab50f779918331658aefb853e78a71336ac5cf95e49524807a2929337940ab8e +DIST vinyl-cache-9.0.2.tgz 6361021 BLAKE2B 717b123a4196c1deff47dabdebbe2f3797e0801db3cb0d698e3bb3ffe7cedf9595fd4f4205b2c5411642814a25d15d0b382933e00edcb7bb8f7721ce017b8b28 SHA512 4fd10a899c475e7b8455a58135ece4dc773f97d2dd44de627b590d522c2ba541cb00658061bc767c4f1d1e64a2c89b9af2caa25ebabdd0471dbd0da2da072324 +DIST vinyl-cache-9.1.0.tgz 6481226 BLAKE2B 69075c8f2666526b6d9a291889261bb551c371e550aaea89519bfca0dcf4dd77c5fe266a5414ae9c2227b121f008f958249e4c8632369cc59bb0825dd45ad4d8 SHA512 5e8f715fb03dc47d3ce8fff2369f6f1625a63834661a6101057a7838a9a9e7baec93ddaa010d1fed76a90a52376c6cf25d1b7f845cc2fac034bcac823eabeafd diff --git a/www-servers/vinyl-cache/vinyl-cache-9.0.0.ebuild b/www-servers/vinyl-cache/vinyl-cache-9.0.2.ebuild index 9307254d4e77..44e7814aa543 100644 --- a/www-servers/vinyl-cache/vinyl-cache-9.0.0.ebuild +++ b/www-servers/vinyl-cache/vinyl-cache-9.0.2.ebuild @@ -13,7 +13,7 @@ SRC_URI="https://vinyl-cache.org/downloads/${P}.tgz" LICENSE="BSD-2 GPL-2" SLOT="0/9" -KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv x86" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" IUSE="jit selinux static-libs unwind" COMMON_DEPEND=" @@ -51,6 +51,7 @@ SKIP_TESTS=( "u00008.vtc" # Bug: 880627 "u00009.vtc" # Bug: 880627 "t02014.vtc" # Bug: 964041 + "r03996.vtc" # Bug: 982112 ) src_prepare() { @@ -86,6 +87,7 @@ src_configure() { $(use_enable jit pcre2-jit) $(use_with unwind) --without-jemalloc + --with-statedir="/var/lib/${PN}" ) econf "${myeconfargs[@]}" } diff --git a/www-servers/vinyl-cache/vinyl-cache-8.0.1.ebuild b/www-servers/vinyl-cache/vinyl-cache-9.1.0.ebuild index 648adb250176..44e7814aa543 100644 --- a/www-servers/vinyl-cache/vinyl-cache-8.0.1.ebuild +++ b/www-servers/vinyl-cache/vinyl-cache-9.1.0.ebuild @@ -7,14 +7,13 @@ PYTHON_COMPAT=( python3_{11..14} ) inherit autotools systemd python-r1 -DESCRIPTION="Varnish is a state-of-the-art, high-performance HTTP accelerator" +DESCRIPTION="A high-performance caching HTTP reverse proxy" HOMEPAGE="https://vinyl-cache.org/" -SRC_URI="https://vinyl-cache.org/downloads/varnish-${PV}.tgz" -S="${WORKDIR}/varnish-${PV}" +SRC_URI="https://vinyl-cache.org/downloads/${P}.tgz" LICENSE="BSD-2 GPL-2" -SLOT="0/2" -KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv x86" +SLOT="0/9" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" IUSE="jit selinux static-libs unwind" COMMON_DEPEND=" @@ -29,8 +28,8 @@ COMMON_DEPEND=" RDEPEND=" ${PYTHON_DEPS} ${COMMON_DEPEND} - acct-user/varnish - acct-group/varnish + acct-user/vinyl + acct-group/vinyl sys-devel/gcc selinux? ( sec-policy/selinux-varnishd ) " @@ -43,10 +42,6 @@ DEPEND=" REQUIRED_USE="${PYTHON_REQUIRED_USE}" -PATCHES=( - "${FILESDIR}/varnish-8.0.0-configure-make-python-output-match-autotools.patch" # Bug: 882725 -) - # Upstream acknowledge that a small number of tests fail sporadically, including on their # test boxes. We SKIP problematic tests here. Check https://vinyl-cache.org/vtest/ SKIP_TESTS=( @@ -56,6 +51,7 @@ SKIP_TESTS=( "u00008.vtc" # Bug: 880627 "u00009.vtc" # Bug: 880627 "t02014.vtc" # Bug: 964041 + "r03996.vtc" # Bug: 982112 ) src_prepare() { @@ -70,16 +66,16 @@ src_prepare() { # SKIP unreliable tests local t for t in ${SKIP_TESTS[*]}; do - sed -i -e '/^varnishtest.*$/a feature cmd false' bin/varnishtest/tests/${t} || die + sed -i -e '/^vtest.*$/a feature cmd false' bin/vinyltest/tests/${t} || die done # Remove -Werror bug #528354 sed -i -e 's/-Werror\([^=]\)/\1/g' configure.ac || die - # Upstream doesn't put varnish.m4 in the m4/ directory + # Upstream doesn't put vinyl.m4 in the m4/ directory # We link because the Makefiles look for the file in # the original location - ln -sf ../varnish.m4 m4/varnish.m4 || die + ln -sf ../vinyl.m4 m4/vinyl.m4 || die eautoreconf } @@ -91,6 +87,7 @@ src_configure() { $(use_enable jit pcre2-jit) $(use_with unwind) --without-jemalloc + --with-statedir="/var/lib/${PN}" ) econf "${myeconfargs[@]}" } @@ -98,37 +95,37 @@ src_configure() { src_install() { emake DESTDIR="${D}" install - python_replicate_script "${D}/usr/share/varnish/vmodtool.py" + python_replicate_script "${D}/usr/share/vinyl-cache/vmodtool.py" - newinitd "${FILESDIR}"/varnishlog.initd varnishlog - newconfd "${FILESDIR}"/varnishlog.confd varnishlog + newinitd "${FILESDIR}"/vinyllog.initd vinyllog + newconfd "${FILESDIR}"/vinyllog.confd vinyllog - newinitd "${FILESDIR}"/varnishncsa.initd varnishncsa - newconfd "${FILESDIR}"/varnishncsa.confd varnishncsa + newinitd "${FILESDIR}"/vinylncsa.initd vinylncsa + newconfd "${FILESDIR}"/vinylncsa.confd vinylncsa - newinitd "${FILESDIR}"/varnishd.initd-r4 varnishd - newconfd "${FILESDIR}"/varnishd.confd-r4 varnishd + newinitd "${FILESDIR}"/vinyld.initd vinyld + newconfd "${FILESDIR}"/vinyld.confd vinyld insinto /etc/logrotate.d/ - newins "${FILESDIR}/varnishd.logrotate-r2" varnishd + newins "${FILESDIR}/vinyld.logrotate" vinyld diropts -m750 - keepdir /var/lib/varnish - keepdir /var/log/varnish + keepdir /var/lib/vinyl-cache + keepdir /var/log/vinyl-cache - systemd_dounit "${FILESDIR}/varnishd.service" + systemd_dounit "${FILESDIR}/vinyld.service" - insinto /etc/varnish/ + insinto /etc/vinyl-cache/ doins vmod/vmod_*.vcc doins etc/example.vcl - dodoc README.rst + dodoc README.md dodoc doc/changes.rst - fowners root:varnish /etc/varnish/ - fowners varnish:varnish /var/lib/varnish/ - fperms 0750 /var/lib/varnish/ /etc/varnish/ + fowners root:vinyl /etc/vinyl-cache/ + fowners vinyl:vinyl /var/lib/vinyl-cache/ + fperms 0750 /var/lib/vinyl-cache/ /etc/vinyl-cache/ find "${ED}" -name "*.la" -delete || die } |
