diff options
| author | root <root@alpha.trunkmasters.com> | 2026-09-16 03:04:44 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-09-16 03:04:44 -0500 |
| commit | 687a263b5212436c1ced6387f36d785b0a34599f (patch) | |
| tree | 0196c232ff96b66c09be11acb466add8ce44899e | |
| parent | afe8b68a6636c2d8e95d0710f831470d59ab2790 (diff) | |
| download | srcux-687a263b5212436c1ced6387f36d785b0a34599f.tar.gz srcux-687a263b5212436c1ced6387f36d785b0a34599f.tar.xz srcux-687a263b5212436c1ced6387f36d785b0a34599f.zip | |
Adding metadata
277 files changed, 6649 insertions, 16506 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..07338f505e30 --- /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_{13..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-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-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..8922f63951f2 --- /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_{13..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 09dc294ff85c..6483774a7861 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-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 3b82fa1aa1f0..b91699f79387 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-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 5fea32bca2cd..8e97000d992a 100644 --- a/app-text/poppler/poppler-26.03.0.ebuild +++ b/app-text/poppler/poppler-26.03.0.ebuild @@ -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 e57d1f4199a4..6c012bd1a5f4 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 8514c67ce262..3ab56464ddfb 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/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 57e12534fa36..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_{13..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 d9444866a930..d9444866a930 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/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.ebuild index 7babf0e72620..12dffc25c65b 100644 --- a/dev-db/mariadb/mariadb-11.4.8-r1.ebuild +++ b/dev-db/mariadb/mariadb-11.4.13.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 @@ -323,6 +314,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 +348,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 +395,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 +576,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 +588,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.ebuild index adffd7a97005..59176bb870bc 100644 --- a/dev-db/mariadb/mariadb-11.8.5-r2.ebuild +++ b/dev-db/mariadb/mariadb-11.8.9.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 @@ -576,6 +577,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 +586,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.ebuild index 49dc1232b1f9..51de5a98e628 100644 --- a/dev-db/mariadb/mariadb-11.8.3-r5.ebuild +++ b/dev-db/mariadb/mariadb-12.3.3.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 @@ -348,7 +349,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 @@ -574,11 +575,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/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-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..22b115f6ca1e --- /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_{13..14} ) +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/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-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/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-lang/jsonnet/jsonnet-0.22.0.ebuild b/dev-lang/jsonnet/jsonnet-0.22.0.ebuild index adbef0ba20d7..cbb8bad542b9 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/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-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..e5f01dea4d44 --- /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 ~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..a805af7b61b9 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_{13..14} ) +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/libpeas/libpeas-2.2.1.ebuild b/dev-libs/libpeas/libpeas-2.2.1.ebuild index e901c27b5c8a..f4a83e15ffa5 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-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 01d810a1ca6a..3374314287ab 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..93fbbe6dd59b --- /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_{13..14} ) + +inherit distutils-r1 + +DESCRIPTION="The AWS SDK for Python" +HOMEPAGE=" + https://github.com/boto/boto3/ + https://pypi.org/project/boto3/ +" +SRC_URI=" + https://github.com/boto/boto3/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + >=dev-python/botocore-${PV}[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + # don't lock versions to narrow ranges + sed -e '/botocore/ d' \ + -e '/jmespath/ d' \ + -e '/s3transfer/ d' \ + -i setup.py || die + + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_python_prepare_all +} + +python_test() { + epytest tests/{functional,unit} +} diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest index 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.95.ebuild b/dev-python/botocore/botocore-1.43.95.ebuild new file mode 100644 index 000000000000..14ad5b2d1f27 --- /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_{13..14} ) + +inherit distutils-r1 + +DESCRIPTION="Low-level, data-driven core of boto 3" +HOMEPAGE=" + https://github.com/boto/botocore/ + https://pypi.org/project/botocore/ +" +SRC_URI=" + https://github.com/boto/botocore/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + <dev-python/jmespath-2[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +# unbundled packages +RDEPEND+=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # unpin deps + sed -i -e "s:>=.*':':" setup.py || die + + # unbundle deps + rm -r botocore/vendored || die + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # rely on bundled six + tests/functional/test_six_imports.py::test_no_bare_six_imports + tests/functional/test_six_threading.py::test_six_thread_safety + ) + + # 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/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..48ae86528e95 --- /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_{13..14} ) + +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..ce623b75b477 --- /dev/null +++ b/dev-python/esp-pylib/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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 /> + <origin>baldeagleos-repo</origin> +</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 0c8f0c0c6c99..1f38026c0588 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 d3ee3dbcae69..a7db65c93fca 100644 --- a/dev-python/flask-compress/flask-compress-1.23.ebuild +++ b/dev-python/flask-compress/flask-compress-1.25.ebuild @@ -5,6 +5,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools PYPI_PN="Flask-Compress" +PYPI_VERIFY_REPO=https://github.com/colour-science/flask-compress PYTHON_COMPAT=( python3_{13..14} ) 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/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..0321dafd4aab --- /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_{13..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/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..1befd595f58c --- /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_{13..14} ) + +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 d38436112d50..abaf49c3f064 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/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..bf6b2e18e7e7 --- /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_{13..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/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 ab56c16f27b2..ab56c16f27b2 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..b7f6c241980e --- /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_{13..14} ) + +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/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..1c6dfb8c42e4 --- /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_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Extensions for Python Markdown" +HOMEPAGE=" + https://github.com/facelessuser/pymdown-extensions/ + https://pypi.org/project/pymdown-extensions/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" + +RDEPEND=" + >=dev-python/markdown-3.6[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] +" + +BDEPEND=" + test? ( + >=dev-python/pygments-2.19.1[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/dev-python/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 3c1ce09fd2b8..81e717ad883d 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..d68373bb12cf --- /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_{13..14} ) + +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..b46152f6c679 --- /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_{13..14} ) +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..008367aebffe --- /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_{13..14} ) + +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 49630e1bd1b8..49630e1bd1b8 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..68d483b79d3a --- /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_{13..14} ) +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 91f8db29b4f6..a7e48a7a0afc 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_{13..14} ) 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..34f352fc9aa7 --- /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_{13..14} ) +PYTHON_COMPAT=( python3_{13..14} ) +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..65d94f2051ae --- /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_{13..14} ) + +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..b2791558c0f7 --- /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_{13..14} ) +PYTHON_COMPAT=( python3_{13..14} ) + +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/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..787856574075 --- /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_{13..14} ) + +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 977ab5b19ce1..b378da5d9b45 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/glslang-1.4.350.0.ebuild b/dev-util/glslang/glslang-1.4.350.0.ebuild index 20e1f894271d..5ad96dfcd022 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 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 f966eefe6d86..ef85590530a0 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 9b64e6bcea22..67683324df93 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 0a87a78f123e..b1314156e105 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 3c0a8a4f4e28..7cbecdefb768 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 69428941ddd0..c70f239d03d5 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 ad2cf864410b..7269b0513f28 100644 --- a/dev-util/redo/redo-0.42d-r1.ebuild +++ b/dev-util/redo/redo-0.42d-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 2018-2024 Gentoo Authors +# Copyright 2018-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 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/spirv-tools-1.4.350.0.ebuild b/dev-util/spirv-tools/spirv-tools-1.4.350.0.ebuild index 15eb25852961..d6d74cc9d5f8 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/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/vulkan-tools-1.4.350.0.ebuild b/dev-util/vulkan-tools/vulkan-tools-1.4.350.0.ebuild index 173f16fc3e36..c5fc791bd1f5 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/vulkan-utility-libraries-1.4.350.0.ebuild b/dev-util/vulkan-utility-libraries/vulkan-utility-libraries-1.4.350.0.ebuild index c133f060d13f..beb1208d1649 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/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/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/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/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/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..6e4fa31965ab --- /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=( lua5-{1,3,4} luajit ) +PYTHON_COMPAT=( python3_{13..14} ) +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 d5a2af0f8bd8..6e4fa31965ab 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-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..634686082fb0 --- /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_{13..14} ) +# 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 8df26a41ed52..634686082fb0 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 06bc5316ac88..c71f5f6ed8d3 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/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..3cd6499a8be2 --- /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_{13..14} ) +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 09acedda3e85..3cd6499a8be2 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_{13..14} ) -inherit cmake-multilib flag-o-matic multiprocessing python-any-r1 +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/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/opensubdiv/Manifest b/media-libs/opensubdiv/Manifest index 8554674e2594..521100337f28 100644 --- a/media-libs/opensubdiv/Manifest +++ b/media-libs/opensubdiv/Manifest @@ -1,2 +1,3 @@ DIST opensubdiv-3.6.0.tar.gz 40746688 BLAKE2B 23f92fa028ae32b430350998299dab3fbb87b8530755abd435ce059223998a8f3d48de17c746028362fd1d2eee33e8a4c7a55b8cf4083202cfd0b6d27de008c7 SHA512 a976733a26e2c0f6510f59d4372b1b33f5404a9d536bcbd6ae3a1a0ffd1bba5495df7108bebc854d5c069575772c97c0d00f0f16f79e87611376ba84e9ae7a4b DIST opensubdiv-3.6.1.tar.gz 40745394 BLAKE2B 1dfb24b22ddc3874e4aaf03feb1944cf91008b52bfcf44f039831f2945f58f9a777903d073748ecc477a2fda0cb46b2f79045489fc0aee77acbcfceb011e1c06 SHA512 afc30951642d978c7fd82549f0b03eae7dbf4f28642cf7e42e4a09ac550e111555c391f21dee239d5ee5522b758038d2cc7553fe2db818dad6dcf2ab5fd22358 +DIST opensubdiv-3.7.0.tar.gz 40736075 BLAKE2B a9b84c593fcf4bfa1d61bb4b5b0ca4996b11226251a2707b9da92ac9e8ece3839a48d6fe2924545c05cd8a4f3520ddddb6a76b94d372c9031eddc05098552d25 SHA512 947ec6312c224fba3da7dffa863cabb252493c38f22c516ba16b7523883f8ac8cbf353cbc502d406064db71c561e7b1abaff8c0485f4cbb54b182bd871ab0ea0 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 b64425264c7c..64e6aa3a6a0b 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/opensubdiv/opensubdiv-3.7.0.ebuild b/media-libs/opensubdiv/opensubdiv-3.7.0.ebuild new file mode 100644 index 000000000000..81279c27d1ea --- /dev/null +++ b/media-libs/opensubdiv/opensubdiv-3.7.0.ebuild @@ -0,0 +1,255 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit cmake cuda flag-o-matic python-any-r1 toolchain-funcs virtualx xdg + +MY_PV="$(ver_rs "1-3" '_')" + +DESCRIPTION="An Open-Source subdivision surface library" +HOMEPAGE="https://graphics.pixar.com/opensubdiv/docs/intro.html" +SRC_URI="https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/OpenSubdiv-${MY_PV}" + +# Modfied Apache-2.0 license, where section 6 has been replaced. +# See for example CMakeLists.txt for details. +LICENSE="Apache-2.0" +# MATCHES SONAME +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="X cuda doc examples glfw opencl +opengl openmp ptex python tbb test tutorials" +RESTRICT="!test? ( test )" + +# TODO needed for stringify due to unwrapped KERNEL_FILES in opensubdiv/{far,osd}/CMakeLists.txt +REQUIRED_USE=" + || ( opencl opengl ) + ptex? ( glfw ) +" + +BDEPEND=" + doc? ( + app-text/doxygen + dev-python/docutils + ) + python? ( ${PYTHON_DEPS} ) +" + +# opengl requires GLX, libglvnd[X] +RDEPEND=" + examples? ( + opengl? ( + glfw? ( + >=media-libs/glfw-3.4[X?] + ) + ) + ) + opengl? ( media-libs/libglvnd[X] ) + opencl? ( virtual/opencl ) + openmp? ( || ( + sys-devel/gcc:*[openmp] + llvm-runtimes/openmp + ) ) + ptex? ( media-libs/ptex ) + tbb? ( dev-cpp/tbb:= ) + test? ( >=media-libs/glfw-3.4[X] ) +" + +# CUDA_RUNTIME is statically linked +DEPEND=" + ${RDEPEND} + test? ( + glfw? ( + >=media-libs/glfw-3.4[X?] + ) + ) + cuda? ( dev-util/nvidia-cuda-toolkit:= ) +" + +PATCHES=( + "${FILESDIR}/${PN}-3.6.0-use-gnuinstalldirs.patch" + "${FILESDIR}/${PN}-3.6.0-cudaflags.patch" + "${FILESDIR}/${PN}-3.6.1-cuda-13.patch" +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + + if use cuda; then + # When building binary packages we build all major targets unless specified otherwise + if [[ -z "${CUDAARCHS+x}" ]]; then + case ${MERGE_TYPE} in + source) CUDAARCHS="native" ;; + # buildonly) CUDAARCHS="all" ;; + buildonly) CUDAARCHS="all-major" ;; + esac + fi + + # check if user provided --gpu-architecture/-arch flag instead of CUDAARCHS + for f in ${NVCCFLAGS}; do + if [[ ${f} == -arch* || ${f} == --gpu-architecture* ]]; then + CUDAARCHS="NVCC" + break + fi + done + + if [[ "${CUDAARCHS}" == "NVCC" ]]; then + unset CUDAARCHS + else + export CUDAARCHS + fi + fi +} + +src_prepare() { + cmake_src_prepare + + sed \ + -e "/install(/s/^/#DONOTINSTALL /g" \ + -i \ + regression/*/CMakeLists.txt \ + tools/stringify/CMakeLists.txt \ + || die + + sed \ + -e "/install( TARGETS osd_static_[cg]pu/s/^/#DONOTINSTALL /g" \ + -i \ + opensubdiv/CMakeLists.txt \ + || die + + if use cuda; then + # do this little headstand to filter out lto from NVCCFLAGS + local CFLAGS_orig="${CFLAGS}" CXXFLAGS_orig="${CXXFLAGS}" + filter-lto + + cuda_src_prepare + + CFLAGS="${CFLAGS_orig}" + CXXFLAGS="${CXXFLAGS_orig}" + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_INSTALL_BINDIR="share/${PN}/bin" + + # DirectX + -DNO_DX="yes" + + # MacOS + -DNO_MACOS_FRAMEWORK="yes" + -DNO_METAL="yes" + + -DNO_DOC="$(usex !doc)" + -DNO_EXAMPLES="$(usex !examples)" + -DNO_TUTORIALS="$(usex !tutorials)" + -DNO_REGRESSION="$(usex !test)" + -DNO_TESTS="$(usex !test)" + + -DNO_PTEX="$(usex !ptex)" + + # GUI + -DNO_OPENGL="$(usex !opengl)" + + # Backends + -DNO_CUDA="$(usex !cuda)" + -DNO_OMP="$(usex !openmp)" + -DNO_TBB="$(usex !tbb)" + -DNO_OPENCL="$(usex !opencl)" + ) + + if use cuda; then + # The old cmake CUDA module doesn't use environment variable to initialize flags + mycmakeargs+=( + -DCUDA_PROPAGATE_HOST_FLAGS="no" + -DCUDA_NVCC_FLAGS="-forward-unknown-opts ${NVCCFLAGS}" + ) + fi + + if use opencl; then + mycmakeargs+=( + # not packaged https://github.com/martijnberger/clew + -DNO_CLEW="yes" + ) + fi + + if use opengl; then + mycmakeargs+=( + -DNO_GLTESTS="$(usex !test)" + # GLEW support is unmaintained in favour of their own GL handler code. + # Turning this on will lead to crashes when using their GPU backend. + -DNO_GLEW="yes" + -DNO_GLFW="$(usex !glfw)" + ) + if use glfw; then + mycmakeargs+=( + -DGLFW_LOCATION="${ESYSROOT}/usr/$(get_libdir)" + -DNO_GLFW_X11="$(usex !X)" + ) + fi + fi + + if use ptex; then + mycmakeargs+=( + -DPTEX_LOCATION="${ESYSROOT}/usr/$(get_libdir)" + ) + fi + + if ! use python; then + mycmakeargs+=( + -DCMAKE_DISABLE_FIND_PACKAGE_Python="yes" + ) + fi + + cmake_src_configure +} + +src_test() { + xdg_environment_reset + + CMAKE_SKIP_TESTS=( + # Fails due to CL & CUDA kernels, works outside + "glImaging" + ) + + if ! test -w /dev/dri/card0; then + CMAKE_SKIP_TESTS+=( + "osd_regression" + ) + fi + + # "far_tutorial_1_2 breaks with gcc and > -O1" + tc-is-gcc && is-flagq '-O@(2|3|fast)' && CMAKE_SKIP_TESTS+=( "far_tutorial_1_2" ) + + if use cuda; then + cuda_add_sandbox -w + addpredict /dev/char/ + addwrite /dev/dri/card0 + addwrite /dev/dri/renderD128 + addwrite /dev/udmabuf + fi + + virtx cmake_src_test + + if use examples && use opengl && use glfw; then + + local KERNELS=( CPU ) + use openmp && KERNELS+=( OPENMP ) + use tbb && KERNELS+=( TBB ) + + # use cuda && KERNELS+=( CUDA ) + # use opencl && KERNELS+=( CL ) + + use opengl && use X && KERNELS+=( XFB ) + use opengl && KERNELS+=( GLSL ) + + #Bug https://bugs.gentoo.org/924516 + virtx "${BUILD_DIR}/bin/glImaging" -w test -l 3 -s 256 256 -a -k "$(IFS=","; echo "${KERNELS[*]}")" + fi +} diff --git a/media-libs/shaderc/shaderc-2026.2.ebuild b/media-libs/shaderc/shaderc-2026.2.ebuild index 78eb91a4b42a..3b5b33fd9989 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/vulkan-layers/vulkan-layers-1.4.350.0.ebuild b/media-libs/vulkan-layers/vulkan-layers-1.4.350.0.ebuild index ed2d4ffe5d63..0fa0a9f0f022 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/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..2d17257fab29 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 ~riscv ~x86" IUSE="gui png test" 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..e7c37776bc20 --- /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_{13..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 479d742282ba..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_{13..14} ) -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 ffd8a1d23cf6..f63ab207706d 100644 --- a/net-dialup/ppp/Manifest +++ b/net-dialup/ppp/Manifest @@ -1,3 +1 @@ -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 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/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-dns/bind/bind-9.20.27.ebuild b/net-dns/bind/bind-9.20.27.ebuild index 127a82589b3b..05d9bc344f59 100644 --- a/net-dns/bind/bind-9.20.27.ebuild +++ b/net-dns/bind/bind-9.20.27.ebuild @@ -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 )" 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..7ec7d5f42f2c --- /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,3,4} luajit ) +PYTHON_COMPAT=( python3_{13..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 d79fc5a64df9..054e9dbe68bf 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 f37972bb4b67..4d29c908a763 100644 --- a/net-dns/dnsdist/metadata.xml +++ b/net-dns/dnsdist/metadata.xml @@ -24,6 +24,7 @@ </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> diff --git a/net-dns/dnsmasq/dnsmasq-2.93.ebuild b/net-dns/dnsmasq/dnsmasq-2.93.ebuild index 79a6aaf2a478..f07b5a0b819c 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..a398ce493c10 --- /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_{13..14} ) +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-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/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..e33e61a66ae2 --- /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_{13..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/profiles/package.mask/00-gentoo b/profiles/package.mask/00-gentoo index 295306acaf9d..9e98cbc8e5aa 100644 --- a/profiles/package.mask/00-gentoo +++ b/profiles/package.mask/00-gentoo @@ -36,6 +36,11 @@ #--- END OF EXAMPLES --- +# 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 +456,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/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 995ad38e3f58..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_{13..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/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 186dd6aa4323..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_{13..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/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 0fc970724500..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_{13..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 02c67e8444ca..698174ef9d09 100644 --- a/sci-libs/cantera/cantera-3.1.0.ebuild +++ b/sci-libs/cantera/cantera-3.2.0-r1.ebuild @@ -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 a039c7321082..59367dd6d172 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.3.ebuild b/sci-libs/gdal/gdal-3.13.3.ebuild new file mode 100644 index 000000000000..a09accb85816 --- /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_{13..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-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-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-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..cfca17fd76a3 --- /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_{13..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/www-nginx/ngx-lua-upstream/ngx-lua-upstream-0.07.ebuild b/www-nginx/ngx-lua-upstream/ngx-lua-upstream-0.07.ebuild index e45a9748167f..d47d4e6abf7c 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 3daca06282e5..0de0911ef53c 100644 --- a/www-servers/nginx/metadata.xml +++ b/www-servers/nginx/metadata.xml @@ -25,16 +25,6 @@ <flag name="stream"> Enable generic TCP/UDP proxying and load balancing </flag> - <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="cpe">cpe:/a:f5: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 90a8eb479812..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=( lua5-{1,3,4} 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 a5ac25de4edd..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=( lua5-{1,3,4} 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" |
