summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-admin/awscli/Manifest1
-rw-r--r--app-admin/awscli/awscli-2.36.48.ebuild113
-rw-r--r--app-misc/localsearch/files/localsearch-3.11.2-build-fix.patch11
-rw-r--r--app-misc/localsearch/localsearch-3.11.2.ebuild4
-rw-r--r--dev-debug/strace/Manifest2
-rw-r--r--dev-debug/strace/strace-7.2.ebuild129
-rw-r--r--dev-libs/elfutils/Manifest2
-rw-r--r--dev-libs/elfutils/elfutils-0.196.ebuild176
-rw-r--r--dev-libs/elfutils/elfutils-9999.ebuild14
-rw-r--r--dev-libs/elfutils/metadata.xml1
-rw-r--r--dev-libs/libdwarf/Manifest3
-rw-r--r--dev-libs/libdwarf/libdwarf-2.3.0.ebuild46
-rw-r--r--dev-libs/libdwarf/libdwarf-2.3.2.ebuild (renamed from dev-libs/libdwarf/libdwarf-2.2.0.ebuild)0
-rw-r--r--dev-libs/libmaxminddb/Manifest1
-rw-r--r--dev-libs/libmaxminddb/libmaxminddb-1.14.1.ebuild47
-rw-r--r--dev-libs/openssl/openssl-3.0.22.ebuild2
-rw-r--r--dev-libs/openssl/openssl-3.4.7.ebuild2
-rw-r--r--dev-libs/openssl/openssl-3.5.8.ebuild2
-rw-r--r--dev-perl/Authen-Libwrap/Authen-Libwrap-0.230.0-r4.ebuild3
-rw-r--r--dev-perl/Authen-Libwrap/files/Authen-Libwrap-0.23-perl-5.44.patch22
-rw-r--r--dev-perl/Coro/Coro-6.570.0-r1.ebuild50
-rw-r--r--dev-perl/Coro/files/6.570.0-FORTIFY_SOURCE.patch41
-rw-r--r--dev-perl/Coro/files/6.570.0-c23.patch51
-rw-r--r--dev-python/awkward-cpp/Manifest4
-rw-r--r--dev-python/awkward-cpp/awkward-cpp-57.ebuild (renamed from dev-python/awkward-cpp/awkward-cpp-55.ebuild)0
-rw-r--r--dev-python/awkward/Manifest4
-rw-r--r--dev-python/awkward/awkward-2.14.0.ebuild (renamed from dev-python/awkward/awkward-2.12.0.ebuild)2
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.97.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.97.ebuild80
-rw-r--r--dev-python/cfn-lint/Manifest4
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.57.0.ebuild (renamed from dev-python/cfn-lint/cfn-lint-1.54.0.ebuild)4
-rw-r--r--dev-python/google-api-core/Manifest2
-rw-r--r--dev-python/google-api-core/google-api-core-2.38.0.ebuild58
-rw-r--r--dev-python/iminuit/Manifest2
-rw-r--r--dev-python/iminuit/iminuit-2.33.0.ebuild63
-rw-r--r--dev-python/pandas/Manifest2
-rw-r--r--dev-python/pandas/pandas-3.0.4.ebuild191
-rw-r--r--dev-python/pyproject-api/Manifest2
-rw-r--r--dev-python/pyproject-api/pyproject-api-1.11.2.ebuild34
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.12.16.ebuild100
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.12.16.ebuild151
-rw-r--r--dev-python/virtualenv/Manifest4
-rw-r--r--dev-python/virtualenv/virtualenv-21.7.11.ebuild (renamed from dev-python/virtualenv/virtualenv-21.6.1.ebuild)4
-rw-r--r--dev-python/wcwidth/Manifest1
-rw-r--r--dev-python/wcwidth/wcwidth-0.8.4.ebuild32
-rw-r--r--dev-vcs/git-lfs/Manifest1
-rw-r--r--dev-vcs/git-lfs/git-lfs-3.8.0.ebuild100
-rw-r--r--dev-vcs/git-lfs/git-lfs-9999.ebuild16
-rw-r--r--media-video/pipewire/Manifest9
-rw-r--r--media-video/pipewire/files/pipewire-1.4.6-no-automagic-ebur128.patch38
-rw-r--r--media-video/pipewire/files/pipewire-1.4.6-no-automagic-fftw.patch44
-rw-r--r--media-video/pipewire/files/pipewire-1.6.4-filter-graph-sync_volume-init.patch31
-rw-r--r--media-video/pipewire/metadata.xml2
-rw-r--r--media-video/pipewire/pipewire-1.4.10.ebuild558
-rw-r--r--media-video/pipewire/pipewire-1.4.11.ebuild558
-rw-r--r--media-video/pipewire/pipewire-1.4.9999.ebuild558
-rw-r--r--media-video/pipewire/pipewire-1.6.4-r1.ebuild571
-rw-r--r--media-video/pipewire/pipewire-1.6.4.ebuild570
-rw-r--r--media-video/pipewire/pipewire-1.6.5.ebuild570
-rw-r--r--media-video/pipewire/pipewire-1.6.7.ebuild570
-rw-r--r--media-video/pipewire/pipewire-1.6.9.ebuild (renamed from media-video/pipewire/pipewire-1.6.6.ebuild)7
-rw-r--r--media-video/pipewire/pipewire-1.6.9999.ebuild2
-rw-r--r--media-video/pipewire/pipewire-9999.ebuild2
-rw-r--r--media-video/wireplumber/Manifest6
-rw-r--r--media-video/wireplumber/files/wireplumber-0.5.14-bt-autoswitch.patch38
-rw-r--r--media-video/wireplumber/wireplumber-0.5.14.ebuild175
-rw-r--r--media-video/wireplumber/wireplumber-0.5.17.ebuild (renamed from media-video/wireplumber/wireplumber-0.5.13_p20260216.ebuild)5
-rw-r--r--media-video/wireplumber/wireplumber-9999.ebuild5
-rw-r--r--net-firewall/firewalld/Manifest3
-rw-r--r--net-firewall/firewalld/files/firewalld-2.3.2-systemd-service.patch18
-rw-r--r--net-firewall/firewalld/firewalld-2.4.0.ebuild227
-rw-r--r--net-firewall/firewalld/firewalld-2.5.2.ebuild (renamed from net-firewall/firewalld/firewalld-2.4.2.ebuild)12
-rw-r--r--net-irc/hexchat/files/hexchat-2.16.2-perl-5.44.patch11
-rw-r--r--net-irc/hexchat/hexchat-2.16.2-r2.ebuild4
-rw-r--r--net-misc/stunnel/Manifest2
-rw-r--r--net-misc/stunnel/files/stunnel-5.81-respect-EPYTHON-for-tests.patch12
-rw-r--r--net-misc/stunnel/stunnel-5.75.ebuild4
-rw-r--r--net-misc/stunnel/stunnel-5.76-r1.ebuild4
-rw-r--r--net-misc/stunnel/stunnel-5.76.ebuild4
-rw-r--r--net-misc/stunnel/stunnel-5.77.ebuild4
-rw-r--r--net-misc/stunnel/stunnel-5.78.ebuild4
-rw-r--r--net-misc/stunnel/stunnel-5.79.ebuild4
-rw-r--r--net-misc/stunnel/stunnel-5.81.ebuild131
-rw-r--r--sec-keys/openpgp-keys-openssl/openpgp-keys-openssl-20260617-r1.ebuild2
-rw-r--r--sys-devel/gcc/Manifest1
-rw-r--r--sys-devel/gcc/gcc-14.4.1_p20260917.ebuild56
-rw-r--r--sys-fs/xfsprogs/Manifest1
-rw-r--r--sys-fs/xfsprogs/xfsprogs-7.2.0.ebuild112
-rw-r--r--www-apps/grafana-bin/Manifest22
-rw-r--r--www-apps/grafana-bin/grafana-bin-12.1.10.ebuild (renamed from www-apps/grafana-bin/grafana-bin-12.1.8.ebuild)0
-rw-r--r--www-apps/grafana-bin/grafana-bin-12.2.10.ebuild (renamed from www-apps/grafana-bin/grafana-bin-12.2.6.ebuild)0
-rw-r--r--www-apps/grafana-bin/grafana-bin-12.3.11.ebuild (renamed from www-apps/grafana-bin/grafana-bin-12.3.4.ebuild)0
-rw-r--r--www-apps/grafana-bin/grafana-bin-12.4.11.ebuild (renamed from www-apps/grafana-bin/grafana-bin-12.4.7.ebuild)16
-rw-r--r--www-apps/grafana-bin/grafana-bin-13.1.6.ebuild76
-rw-r--r--www-apps/grafana-bin/grafana-bin-13.2.2.ebuild (renamed from www-apps/grafana-bin/grafana-bin-13.1.2.ebuild)12
99 files changed, 1832 insertions, 4871 deletions
diff --git a/app-admin/awscli/Manifest b/app-admin/awscli/Manifest
index e6f03a03ac59..a93328a1395f 100644
--- a/app-admin/awscli/Manifest
+++ b/app-admin/awscli/Manifest
@@ -3,3 +3,4 @@ DIST aws-cli-1.46.1.gh.tar.gz 19215038 BLAKE2B 3120c6768b749a85eea847040758f6412
DIST aws-cli-2.36.45.gh.tar.gz 19279291 BLAKE2B dfd22ee621601d8cc5aa7883c08f962d7056d25e33e0bbf8184470ec53585fa9b0034dd85dce58d1ca580e95109d299e20b4a45456143ab2feac05a25b34d3f2 SHA512 db99a475f322cc1cf4bd792e67d5430c82c118c36862fa6a822b4e34ab62d92b6ed686717d80b476f36ac3414e1cf8710b18f400be73f49c7b59b0231c6ed7c0
DIST aws-cli-2.36.46.gh.tar.gz 19284758 BLAKE2B 5cd2b985e327f84c64dd1901bf282069f2d92fe03dbcac243e5e80d36f24858fd179b60aa740396377e5dff36d73c2ad56680d808faf8803d0b76eba2bcde169 SHA512 4b7816702295e8faa4ed0c0ab564df8aca288051fe24fd8e6b68f3c27a2b89274d52b251cf2771952dd17d7f42d1339dfd6c2ee7adad06f9ed9b2c6556adca44
DIST aws-cli-2.36.47.gh.tar.gz 19288749 BLAKE2B 998322f865614ff38445836c6385bbdd6d153146c0a53dc2482048d73632716191a47896517225d1e131e4389d72d6400cd357b06701f97d244dd07f16c4eab4 SHA512 3b6a05261548f82b0fc48be231055fe7d005429019bfff4f7ab574b98737891dc85add8b25e990630db30262ed220a3641f7da697a9a9f7758ca95dc991f8da9
+DIST aws-cli-2.36.48.gh.tar.gz 19323282 BLAKE2B ed808c8a253bbe65599c1dbd4415aaa930a45a2b5c8233f86a5ca5529ca7cedb0a6534125ad0258204ad61a9eb66851e865b0241f8cbfe2da208695eebf503c6 SHA512 90269562aec7886a6d99682091331be058f26a67e16a32e375d46fbf4a32c5151f874bdb85297c00557d2ef581ca2d4b77b4d7f20fde12ccd6d43c7a27f8e1f0
diff --git a/app-admin/awscli/awscli-2.36.48.ebuild b/app-admin/awscli/awscli-2.36.48.ebuild
new file mode 100644
index 000000000000..06abe1e785c5
--- /dev/null
+++ b/app-admin/awscli/awscli-2.36.48.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 shell-completion
+
+MY_P=aws-cli-${PV}
+DESCRIPTION="Universal Command Line Environment for AWS"
+HOMEPAGE="
+ https://github.com/aws/aws-cli/
+ https://pypi.org/project/awscli/
+"
+SRC_URI="
+ https://github.com/aws/aws-cli/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+RDEPEND="
+ >=dev-python/colorama-0.2.5[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.10[${PYTHON_USEDEP}]
+ >=dev-python/ruamel-yaml-0.15.0[${PYTHON_USEDEP}]
+ >=dev-python/prompt-toolkit-3.0.24[${PYTHON_USEDEP}]
+ >=dev-python/distro-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/awscrt-0.36.2[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# bundled dependencies
+RDEPEND+="
+ >=dev-python/s3transfer-0.18.0[${PYTHON_USEDEP}]
+"
+TODO="
+ dev-python/rsa[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ !app-admin/awscli-bin
+"
+BDEPEND="
+ dev-python/flit-core[${PYTHON_USEDEP}]
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # this package bundles botocore & s3transfer, but they are custom
+ # v2 branches that were never released and are incompatible with
+ # our release versions
+
+ # strip overzealous upper bounds on requirements
+ sed -i -e 's:,<[=0-9.]*::' -e 's:==:>=:' pyproject.toml || die
+ # wcwidth isn't used
+ sed -i -e '/wcwidth/d' pyproject.toml || die
+}
+
+python_test() {
+ local -x TZ=UTC
+
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/functional/autocomplete/test_main.py::test_smoke_test_completer
+ tests/unit/customizations/ec2instanceconnect/test_websocket.py::TestWebsocket::test_connect_with_proxy
+ tests/unit/customizations/ec2instanceconnect/test_websocket.py::TestWebsocket::test_connect_with_proxy_but_no_proxy_env_empty
+ tests/unit/customizations/emr/test_emr_utils.py::TestEMRutils::test_which_with_existing_command
+ tests/unit/customizations/emr/test_emr_utils.py::TestEMRutils::test_which_with_non_existing_command
+ tests/unit/customizations/wizard/test_app.py
+ tests/unit/test_compat.py::TestGetPreferredEncoding::test_getpreferredencoding_with_env_var
+ )
+
+ # Some tests take a lot of memory, so run parallel-safe tests first.
+ local awscli_parallel_tests=(
+ tests/functional/[ac-z]*/
+ tests/unit/
+ )
+ local botocore_parallel_tests=(
+ tests/functional/botocore/*/
+ tests/functional/botocore/test_[cds-z]*.py
+ )
+ #epytest "${botocore_parallel_tests[@]}"
+ epytest "${awscli_parallel_tests[@]}"
+
+ local EPYTEST_IGNORE=(
+ "${botocore_parallel_tests[@]}"
+ "${awscli_parallel_tests[@]}"
+ )
+ EPYTEST_XDIST= epytest tests/functional
+}
+
+python_install_all() {
+ newbashcomp bin/aws_bash_completer aws
+ newzshcomp bin/aws_zsh_completer.sh _aws
+
+ distutils-r1_python_install_all
+
+ rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
+}
diff --git a/app-misc/localsearch/files/localsearch-3.11.2-build-fix.patch b/app-misc/localsearch/files/localsearch-3.11.2-build-fix.patch
new file mode 100644
index 000000000000..b724ea857e08
--- /dev/null
+++ b/app-misc/localsearch/files/localsearch-3.11.2-build-fix.patch
@@ -0,0 +1,11 @@
+Bug: https://bugs.gentoo.org/982517
+--- a/src/extractor/tracker-extract-tiff.c
++++ b/src/extractor/tracker-extract-tiff.c
+@@ -34,6 +34,7 @@
+ #include <tracker-common.h>
+
+ #include "utils/tracker-extract.h"
++#include "utils/tracker-exif.h"
+
+ #ifdef HAVE_EXEMPI
+ #include "tracker-xmp.h"
diff --git a/app-misc/localsearch/localsearch-3.11.2.ebuild b/app-misc/localsearch/localsearch-3.11.2.ebuild
index 63aa5b3d1037..ff55bd3a4973 100644
--- a/app-misc/localsearch/localsearch-3.11.2.ebuild
+++ b/app-misc/localsearch/localsearch-3.11.2.ebuild
@@ -82,6 +82,10 @@ BDEPEND="
# Introduced by: https://gitlab.gnome.org/GNOME/localsearch/-/commit/4eabf225cd26d6d84ee749661f7fa131f064a305.patch
QA_FLAGS_IGNORED="usr/lib64/localsearch-3.0/extract-modules/libextract-dummy.so"
+PATCHES=(
+ "${FILESDIR}/${PN}-3.11.2-build-fix.patch"
+)
+
python_check_deps() {
python_has_version -b \
"dev-python/pygobject[${PYTHON_USEDEP}]" \
diff --git a/dev-debug/strace/Manifest b/dev-debug/strace/Manifest
index 4bce856520c5..2f9ba2e6f5de 100644
--- a/dev-debug/strace/Manifest
+++ b/dev-debug/strace/Manifest
@@ -4,3 +4,5 @@ DIST strace-7.0.tar.xz 2764808 BLAKE2B dbf95b95742e274350955fc5e59f6c3f05ca8e029
DIST strace-7.0.tar.xz.asc 833 BLAKE2B 048782b2235f9f3007b3cef2565e794cefa58fdb0d5e576e38692f442e1c5656599beb7130fb6010a83c46bad90a7f5a6085966877a91a214f1b8ff28c326d90 SHA512 c003187bf2f6f068de200af2e23000998edd07cc10774d88b2d659419d08464b997b5ad141e858adcf47f236decdddd2e7cf1d0e383e5586b8c8bee280c2dc17
DIST strace-7.1.tar.xz 2792640 BLAKE2B 755ebf184008896bbb8537918b54ca00a7206a6e553a70b19d46554cada314315d3dc92ebef53c661634bd270a7b51e2131d524134a7a76cd93e40d0ec294380 SHA512 81afed51fdb220e2fb8a83adbb0f9c1c702679955550f6a5037c56d0918ad497829274d5e5f64cfd2c3146802488f07e23f60b5590556b2d1d9b6442abe69717
DIST strace-7.1.tar.xz.asc 833 BLAKE2B c10cdd02355531a8aeea98770d93e9636a656692f2c12bfd877ad85c1520a198150d5e5e2731cab4bd2e8263d8e35ca3c12f1209acc4ab29eccfd1c3ca56114f SHA512 09001f948e59439ac2d8dba302782367fcb14ea237e9faf206656b311ca176803f7cd79c13d7e4e6d67727cb3ecb4f9bc671641007210ddd9b1ac4ff65773d5e
+DIST strace-7.2.tar.xz 2810844 BLAKE2B 3ec449829029d1c704768b066d64407f43f9498fb84f9ff7e4fe9bcbbdac17d46905be0006423184b46e8fa2b061c19549c834995978fc3deec0ddb03214adbd SHA512 219e84c0336d54977323f6abd08af98fc177034c68be15976ac7c53739833c1635c7d01ef5d8586c48895997b4bedb8b699000ccc3adf27d7d4ee06a4529d438
+DIST strace-7.2.tar.xz.asc 833 BLAKE2B 063157ab1a881e45dee0d9cf3845880499a3c7bc76f4130d5a6bbe0b42487b223908e1e1a531a726cb5fb138a492fa05ba379eb3f9e9f86979d9195811a36251 SHA512 bdb60f71dd1260ee8318a5e16bd2429a25536aef4e5263f08994a40c30db2a19bd20909b80e0d6969316cfc0df97bf4a0aa6efd299e5d2b1a11897ea9c4e0859
diff --git a/dev-debug/strace/strace-7.2.ebuild b/dev-debug/strace/strace-7.2.ebuild
new file mode 100644
index 000000000000..81359e48de5f
--- /dev/null
+++ b/dev-debug/strace/strace-7.2.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools edo flag-o-matic toolchain-funcs verify-sig
+
+DESCRIPTION="Useful diagnostic, instructional, and debugging tool"
+HOMEPAGE="https://strace.io/"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/strace/strace.git"
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz
+ verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc )
+ "
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc
+
+LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
+SLOT="0"
+IUSE="aio ncurses perl selinux static test unwind elfutils"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="?? ( unwind elfutils )"
+
+BDEPEND="
+ virtual/pkgconfig
+ verify-sig? ( >=sec-keys/openpgp-keys-strace-20251130 )
+"
+STATIC_DEPEND="
+ elfutils? ( dev-libs/elfutils[static-libs(+)] )
+ ncurses? ( sys-libs/ncurses[static-libs(+)] )
+ selinux? ( sys-libs/libselinux[static-libs(+)] )
+ unwind? ( sys-libs/libunwind[static-libs(+)] )
+"
+LIB_DEPEND="
+ elfutils? ( dev-libs/elfutils )
+ ncurses? ( sys-libs/ncurses:= )
+ selinux? ( sys-libs/libselinux )
+ unwind? ( sys-libs/libunwind:= )
+"
+# strace only uses the header from libaio to decode structs
+DEPEND="
+ static? ( ${STATIC_DEPEND} )
+ !static? ( ${LIB_DEPEND} )
+ aio? ( >=dev-libs/libaio-0.3.106 )
+"
+RDEPEND="
+ !static? ( ${LIB_DEPEND} )
+ perl? ( dev-lang/perl )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-6.5-static.patch"
+)
+
+src_prepare() {
+ default
+
+ if [[ ! -e configure ]] ; then
+ # git generation
+ sed /autoreconf/d -i bootstrap || die
+ edo ./bootstrap
+ [[ ! -e CREDITS ]] && cp CREDITS{.in,}
+ fi
+
+ eautoreconf
+
+ # Stub out the -k test since it's known to be flaky. bug #545812
+ sed -i '1iexit 77' tests*/strace-k.test || die
+}
+
+src_configure() {
+ # Set up the default build settings, and then use the names strace expects.
+ tc-export_build_env BUILD_{CC,CPP}
+ local v bv
+ for v in CC CPP {C,CPP,LD}FLAGS ; do
+ bv="BUILD_${v}"
+ export "${v}_FOR_BUILD=${!bv}"
+ done
+
+ filter-lfs-flags # configure handles this sanely
+
+ export ac_cv_header_libaio_h=$(usex aio)
+ export ac_cv_header_termcap_h=$(usex ncurses)
+ use elibc_musl && export ac_cv_header_stdc=no
+
+ local myeconfargs=(
+ --disable-gcc-Werror
+
+ # Don't require mpers support on non-multilib systems. #649560
+ --enable-mpers=check
+
+ # We don't want to pin to exact linux-headers versions (bug #950309)
+ --enable-bundled=yes
+
+ $(use_enable static)
+ $(use_with unwind libunwind)
+ $(use_with elfutils libdw)
+ $(use_with selinux libselinux)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ if has usersandbox ${FEATURES} ; then
+ # bug #643044
+ ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..."
+ return 0
+ fi
+
+ default
+}
+
+src_install() {
+ default
+
+ if use perl ; then
+ exeinto /usr/bin
+ doexe src/strace-graph
+ fi
+
+ dodoc CREDITS
+}
diff --git a/dev-libs/elfutils/Manifest b/dev-libs/elfutils/Manifest
index 275357f9584a..4fa57adbf9c7 100644
--- a/dev-libs/elfutils/Manifest
+++ b/dev-libs/elfutils/Manifest
@@ -1,2 +1,4 @@
DIST elfutils-0.195.tar.bz2 12032640 BLAKE2B 7ad84f87ba24a0edd3d1885a232e63f454509f3d229952d2c9b85dd76baa6b150e022bbce70fc3e89b57f5c606ed3862178c693e3638bf22b891c5798e7c624a SHA512 e1e1fdf4f7f72bf520deb0103bb8fd208dc247bab14af100c6fb56d38c0ef6c6d54ff5bd15b84e4f70e2b2ea481e5999fea2842360f8932a861122df79b5fc8f
DIST elfutils-0.195.tar.bz2.sig 310 BLAKE2B 6d0aef5b189ea74b9b019d8d46b565f04b4216955967515f5179e63d78259ba42badfc166ab90c7e12ee5c467f5dbdb30e8244ea5c5d4b499c927db9cf1cf761 SHA512 a5e11ce7752d0fac6e809aea61b6a5bbd1141d8c52c2f741ddd32b93af97af43aa555a99a45feac3bc34381570f2e7fb281f8aff53f74e3b5e64c56eb1d9d2c5
+DIST elfutils-0.196.tar.bz2 12165820 BLAKE2B 13e5aa27b839b02962a45cae1b9b603e7e95d428a16f9bdf15d04201529a9c714a53701cacc65c65fa32082d121a7e196bd242739d4cfd1f40a69efd0f1252f6 SHA512 02a5c1aaeefb6264dd43c52e78612864a51275becf781c309beb398267e1e12f166fd7190a0d09f16e386a5fd14116dc49d1efe5a59191d22df0f46c19a081f7
+DIST elfutils-0.196.tar.bz2.sig 310 BLAKE2B 63a67b2b7ed8093f3626e6864c414e77afa354984c4aecd5611d8b16f89835452cf4c1aca8381353251fb2178451e0b2ad97c1ac04cab6cf94892d864e8fef0a SHA512 010c92ac6f1bd6f3dee2713a96d9d7a1874f763844511da2f1787c8e8d0da556df1a8432c6d61aa25e996020d23eebcd592a78b800f0bc7e5cc4ba1ddbbc856c
diff --git a/dev-libs/elfutils/elfutils-0.196.ebuild b/dev-libs/elfutils/elfutils-0.196.ebuild
new file mode 100644
index 000000000000..f690f5b79066
--- /dev/null
+++ b/dev-libs/elfutils/elfutils-0.196.ebuild
@@ -0,0 +1,176 @@
+# Copyright 2003-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/elfutils.gpg
+inherit autotools flag-o-matic multilib-minimal
+
+DESCRIPTION="Libraries/utilities to handle ELF objects (drop in replacement for libelf)"
+HOMEPAGE="https://sourceware.org/elfutils/"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://sourceware.org/git/elfutils.git"
+ inherit git-r3
+
+ BDEPEND="
+ sys-devel/bison
+ sys-devel/flex
+ "
+else
+ inherit verify-sig
+ SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2"
+ SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.sig )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-elfutils-20240301 )"
+fi
+
+LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )"
+SLOT="0"
+IUSE="bzip2 +debuginfod +libarchive libpfm +lzma nls static-libs test +utils valgrind zstd"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="debuginfod? ( libarchive )"
+
+RDEPEND="
+ !dev-libs/libelf
+ >=virtual/zlib-1.2.8-r1:=[static-libs?,${MULTILIB_USEDEP}]
+ bzip2? ( >=app-arch/bzip2-1.0.6-r4[static-libs?,${MULTILIB_USEDEP}] )
+ debuginfod? (
+ dev-db/sqlite:3=
+ >=dev-libs/json-c-0.11:=
+ >=net-libs/libmicrohttpd-0.9.33:=
+ >=net-misc/curl-7.29.0[static-libs?]
+ )
+ libarchive? ( >=app-arch/libarchive-3.1.2:= )
+ lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] )
+ utils? ( libpfm? ( dev-libs/libpfm:= ) )
+ zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] )
+ elibc_musl? (
+ dev-libs/libbsd
+ sys-libs/argp-standalone
+ sys-libs/fts-standalone
+ sys-libs/obstack-standalone
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+BDEPEND+="
+ sys-devel/m4
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch
+ "${FILESDIR}"/${PN}-0.191-musl-macros.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+
+ if ! use static-libs; then
+ sed -i -e '/^lib_LIBRARIES/s:=.*:=:' -e '/^%.os/s:%.o$::' lib{asm,dw,elf}/Makefile.in || die
+ fi
+
+ # Fails with some CFLAGS
+ # " __divhc3: /var/tmp/portage/dev-libs/elfutils-0.193/work/elfutils-0.193-abi_x86_32.x86/tests/funcretval:
+ # dwfl_module_return_value_location: cannot handle DWARF type description"
+ printf "#!/bin/sh\nexit 77" > tests/run-native-test.sh || die
+ # Fails for abi_x86_32 w/ DT_RELR
+ # "section [14] '.rel.plt': relocation 55: relocation type invalid for the file type"
+ printf "#!/bin/sh\nexit 77" > tests/run-elflint-self.sh || die
+ printf "#!/bin/sh\nexit 77" > tests/run-reverse-sections-self.sh || die
+ # Fails with SFrames
+ printf "#!/bin/sh\nexit 77" > tests/run-strip-strmerge.sh || die
+ # Fails under sandbox
+ cat <<-EOF > tests/dwfl-proc-attach.c || die
+ int main() {
+ return 77;
+ }
+ EOF
+ # Requires static-libs
+ cat <<-EOF > tests/elf-from-memory.c || die
+ int main() {
+ return 77;
+ }
+ EOF
+
+ # https://sourceware.org/PR23914
+ sed -i 's:-Werror::' */Makefile.in || die
+}
+
+src_configure() {
+ # bug #407135
+ use test && append-flags -g
+
+ # bug 660738
+ filter-flags -fno-asynchronous-unwind-tables
+
+ use debuginfod && MULTILIB_WRAPPED_HEADERS+=( /usr/include/elfutils/debuginfod.h )
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ unset LEX YACC
+
+ export ac_cv_header_perfmon_pfmlib_perf_event_h=$(multilib_native_usex libpfm)
+ export ac_cv_lib_pfm_pfm_get_os_event_encoding=yes=$(multilib_native_usex libpfm)
+ # Only for IMA verification of RPMs
+ export ac_cv_lib_rpm_headerGet=no
+
+ local myeconfargs=(
+ $(use_enable nls)
+ $(multilib_native_use_enable debuginfod)
+ # Could do dummy if needed? We could also split libdebuginfod
+ # (client support) into its own USE if required.
+ $(multilib_native_use_enable debuginfod libdebuginfod)
+ $(multilib_native_use_enable utils stackprof)
+ $(use_enable valgrind valgrind-annotations)
+
+ # Explicitly disable thread safety, it's not recommended by upstream
+ # (marked experimental in configure) and doesn't build either on musl.
+ --disable-thread-safety
+
+ # Valgrind option is just for running tests under it; dodgy under sandbox
+ # and indeed even w/ glibc with newer instructions.
+ --disable-valgrind
+ --program-prefix="eu-"
+ --with-zlib
+ $(use_with bzip2 bzlib)
+ $(multilib_native_use_with libarchive)
+ $(use_with lzma)
+ $(use_with zstd)
+ )
+
+ [[ ${PV} == 9999 ]] && myeconfargs+=( --enable-maintainer-mode )
+
+ # Needed because sets alignment macro
+ is-flagq -fsanitize=address && myeconfargs+=( --enable-sanitize-address )
+ is-flagq -fsanitize=undefined && myeconfargs+=( --enable-sanitize-undefined )
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_test() {
+ env LD_LIBRARY_PATH="${BUILD_DIR}/libelf:${BUILD_DIR}/libebl:${BUILD_DIR}/libdw:${BUILD_DIR}/libasm" \
+ LC_ALL="C" \
+ emake check VERBOSE=1
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ dodoc NOTES
+
+ # These build quick, and are needed for most tests, so we don't
+ # disable building them when the USE flag is disabled.
+ if ! use utils; then
+ rm -rf "${ED}"/usr/bin || die
+ fi
+}
diff --git a/dev-libs/elfutils/elfutils-9999.ebuild b/dev-libs/elfutils/elfutils-9999.ebuild
index feb34a8cec4c..f690f5b79066 100644
--- a/dev-libs/elfutils/elfutils-9999.ebuild
+++ b/dev-libs/elfutils/elfutils-9999.ebuild
@@ -28,7 +28,7 @@ fi
LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )"
SLOT="0"
-IUSE="bzip2 +debuginfod +libarchive +lzma nls static-libs stacktrace test +utils valgrind zstd"
+IUSE="bzip2 +debuginfod +libarchive libpfm +lzma nls static-libs test +utils valgrind zstd"
RESTRICT="!test? ( test )"
REQUIRED_USE="debuginfod? ( libarchive )"
@@ -44,7 +44,7 @@ RDEPEND="
)
libarchive? ( >=app-arch/libarchive-3.1.2:= )
lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] )
- stacktrace? ( dev-util/sysprof )
+ utils? ( libpfm? ( dev-libs/libpfm:= ) )
zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] )
elibc_musl? (
dev-libs/libbsd
@@ -93,6 +93,12 @@ src_prepare() {
return 77;
}
EOF
+ # Requires static-libs
+ cat <<-EOF > tests/elf-from-memory.c || die
+ int main() {
+ return 77;
+ }
+ EOF
# https://sourceware.org/PR23914
sed -i 's:-Werror::' */Makefile.in || die
@@ -113,6 +119,8 @@ src_configure() {
multilib_src_configure() {
unset LEX YACC
+ export ac_cv_header_perfmon_pfmlib_perf_event_h=$(multilib_native_usex libpfm)
+ export ac_cv_lib_pfm_pfm_get_os_event_encoding=yes=$(multilib_native_usex libpfm)
# Only for IMA verification of RPMs
export ac_cv_lib_rpm_headerGet=no
@@ -122,7 +130,7 @@ multilib_src_configure() {
# Could do dummy if needed? We could also split libdebuginfod
# (client support) into its own USE if required.
$(multilib_native_use_enable debuginfod libdebuginfod)
- $(multilib_native_use_enable stacktrace)
+ $(multilib_native_use_enable utils stackprof)
$(use_enable valgrind valgrind-annotations)
# Explicitly disable thread safety, it's not recommended by upstream
diff --git a/dev-libs/elfutils/metadata.xml b/dev-libs/elfutils/metadata.xml
index 464233572a0e..ca6e83f1edce 100644
--- a/dev-libs/elfutils/metadata.xml
+++ b/dev-libs/elfutils/metadata.xml
@@ -13,6 +13,7 @@
Requires <pkg>app-arch/libarchive</pkg>.
</flag>
+ <flag name="libpfm">Enable <pkg>dev-libs/libpfm</pkg> support for hardware performance counters with eu-stackprof.</flag>
<flag name="lzma">Support automatic decompression of LZMA-compressed files and kernel images</flag>
<flag name="stacktrace">
Build experimental eu-stacktrace tool. Relies on integration with dev-util/sysprof.
diff --git a/dev-libs/libdwarf/Manifest b/dev-libs/libdwarf/Manifest
index 13ca5f5e21dc..10ee080ed5e1 100644
--- a/dev-libs/libdwarf/Manifest
+++ b/dev-libs/libdwarf/Manifest
@@ -1,3 +1,2 @@
-DIST libdwarf-2.2.0.tar.xz 3027540 BLAKE2B f7a1d28afc4ed3997432a2d5ce472d48ea18a2b8812c5c569d93b55bf39fcfa246ae749b1f1a6016c65a8497c852d7d5169652d6626cfc35ba1bee71fb339735 SHA512 1a5145b3b9bebbae6e6691590521c56327adb92c0ae95f145bcba8e4402b637d1479c2c6adad069ef9e0e36b2f7c8afc2811173f39e444418e2de7f4277ec393
-DIST libdwarf-2.3.0.tar.xz 3147992 BLAKE2B 1486cd0e9cfb56db5661dcbd9b52aaa3c1aa6f28fe69a9e8e20f9a0b714564a87ec9545208da31c27c89013c94dadcbf92e6204ba6b5d791a7d5e06a959723af SHA512 c6d91016d190af0761a3efa5ef77e8c964fcf853841b90b516294f716f50c876db73e20876db9f6ccd1888be7ffa0c0608418e52719a18e95e149d99d950b2a6
DIST libdwarf-2.3.1.tar.xz 3397452 BLAKE2B 17526b18043dedcc963885844ab2039eef82d8e1b4b43bb8fb665f1a5949db801433f724d2bce5fbb6a53fb9a93e78299cff43fa46e9f636d032056398036c2d SHA512 45489f19a0547c286a7f7606743860dd93f9feeec84bc32068c04b8a85d31c103948e044991ca89d2bb28ef56d467f1e57e2ea51d53ce86f53444ee75a6158a4
+DIST libdwarf-2.3.2.tar.xz 3678964 BLAKE2B e3cfc5687503252e42e7fef5623e7d7f627c2522a1ca47e7f7aa4c0803e8c944c382e0d1e00dabc76178f628a6f933ea5965f37bbe57a4372b922ea8d24493ef SHA512 6d53f409d96678a5a1d552dab1d77eda2233c7321cabe87f74bbc725023a5d8420771a9ee9fb6c0da2065be7811bb12822dc3f094421bb388386f075b0b018b7
diff --git a/dev-libs/libdwarf/libdwarf-2.3.0.ebuild b/dev-libs/libdwarf/libdwarf-2.3.0.ebuild
deleted file mode 100644
index 6efcd586f92c..000000000000
--- a/dev-libs/libdwarf/libdwarf-2.3.0.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake
-
-DESCRIPTION="Library intended to simplify reading (and writing) applications using DWARF"
-HOMEPAGE="
- https://www.prevanders.net/dwarf.html
- https://github.com/davea42/libdwarf-code
-"
-SRC_URI="https://www.prevanders.net/${P}.tar.xz"
-
-LICENSE="GPL-2 LGPL-2.1 BSD"
-SLOT="0/$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
-IUSE="test dwarfexample dwarfgen"
-RESTRICT="!test? ( test )"
-
-DEPEND="
- app-arch/zstd:=
- virtual/zlib:=
-"
-RDEPEND="${DEPEND}"
-
-DOCS=( AUTHORS NEWS README.md )
-
-PATCHES=( "${FILESDIR}/${PN}-0.9.2-fix-include-patch.patch" )
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_SHARED=ON
- -DBUILD_DWARFGEN=$(usex dwarfgen)
- -DBUILD_DWARFEXAMPLE=$(usex dwarfexample)
- -DDO_TESTING=$(usex test)
- )
-
- cmake_src_configure
-}
-
-src_install(){
- cmake_src_install
-
- dodoc ChangeLog* doc/*.pdf
-}
diff --git a/dev-libs/libdwarf/libdwarf-2.2.0.ebuild b/dev-libs/libdwarf/libdwarf-2.3.2.ebuild
index 6efcd586f92c..6efcd586f92c 100644
--- a/dev-libs/libdwarf/libdwarf-2.2.0.ebuild
+++ b/dev-libs/libdwarf/libdwarf-2.3.2.ebuild
diff --git a/dev-libs/libmaxminddb/Manifest b/dev-libs/libmaxminddb/Manifest
index 461863c8bc7c..c0c3198aa45c 100644
--- a/dev-libs/libmaxminddb/Manifest
+++ b/dev-libs/libmaxminddb/Manifest
@@ -1,2 +1,3 @@
DIST libmaxminddb-1.11.0.tar.gz 727863 BLAKE2B 0c32f9aa2fd21111389ff1d0a4112fc6a7f786a5592c264f4dabb6a7c43d57bc86b6a47f2557634540083a07067a57020e40ac825d5141bdca053edae28954f8 SHA512 ecb7e1d8c89f1f0f018abcfb9ac7071f36e40ab5b12ecb1ded3b66db69dbe830792f6497aca9ca8c79ecfe47db7fa5dccf20714f06c49b93a69389b91e006b46
DIST libmaxminddb-1.12.2.tar.gz 730768 BLAKE2B eb7270663b0c97c7f4acf06f197066039c1b7db5499c6281f67c51f67ded61241681473682318fa7428e0a3d793fb19dc316160ef0e29d2f901a9c334ba3a291 SHA512 263e7f7901b450ac0b7fa95887ade3b2725bc794360ce6fc27ebfe06f025b7670d9e5f9a208f99073d32b673993d810f0bcee510027e4d2e87ba3c38d75036fe
+DIST libmaxminddb-1.14.1.tar.gz 846612 BLAKE2B 8ced4fe8162f603c734a35d86f01bec4a03c6d4bca0410572f3fa201d06cbf49c0459f25320697186c9c13a11616a3b3f64819ed1b3004bc3c9b15898696ac8c SHA512 d6e5f0e7fff896ac63525bcf01b06944388c6756889ac533dfaf416fd2e494953f31ede1a2352bdcf5018e2544b65eb3328a22f9233c50e01e0809a5bc6486cc
diff --git a/dev-libs/libmaxminddb/libmaxminddb-1.14.1.ebuild b/dev-libs/libmaxminddb/libmaxminddb-1.14.1.ebuild
new file mode 100644
index 000000000000..336dc19a0f36
--- /dev/null
+++ b/dev-libs/libmaxminddb/libmaxminddb-1.14.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="C library for the MaxMind DB file format"
+HOMEPAGE="https://github.com/maxmind/libmaxminddb"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/maxmind/libmaxminddb.git"
+ inherit autotools git-r3
+else
+ SRC_URI="https://github.com/maxmind/${PN}/releases/download/${PV}/${P}.tar.gz"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0/0.0.7"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( dev-perl/IPC-Run3 )"
+
+DOCS=( Changes.md )
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == *9999 ]] ; then
+ eautoreconf
+ fi
+}
+
+src_configure() {
+ tc-export AR CC
+
+ default
+}
+
+src_install() {
+ default
+
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/dev-libs/openssl/openssl-3.0.22.ebuild b/dev-libs/openssl/openssl-3.0.22.ebuild
index 30a59319cdfa..e8af7316d425 100644
--- a/dev-libs/openssl/openssl-3.0.22.ebuild
+++ b/dev-libs/openssl/openssl-3.0.22.ebuild
@@ -27,7 +27,7 @@ else
"
if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
fi
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20260617-r1 )"
diff --git a/dev-libs/openssl/openssl-3.4.7.ebuild b/dev-libs/openssl/openssl-3.4.7.ebuild
index 6d3053e26e2e..311cc2abe4ef 100644
--- a/dev-libs/openssl/openssl-3.4.7.ebuild
+++ b/dev-libs/openssl/openssl-3.4.7.ebuild
@@ -27,7 +27,7 @@ else
"
if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
fi
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20260617-r1 )"
diff --git a/dev-libs/openssl/openssl-3.5.8.ebuild b/dev-libs/openssl/openssl-3.5.8.ebuild
index f65d8c2e572f..0479e382f85a 100644
--- a/dev-libs/openssl/openssl-3.5.8.ebuild
+++ b/dev-libs/openssl/openssl-3.5.8.ebuild
@@ -27,7 +27,7 @@ else
"
if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
fi
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20260617-r1 )"
diff --git a/dev-perl/Authen-Libwrap/Authen-Libwrap-0.230.0-r4.ebuild b/dev-perl/Authen-Libwrap/Authen-Libwrap-0.230.0-r4.ebuild
index 3c860aac2a95..a122e249e209 100644
--- a/dev-perl/Authen-Libwrap/Authen-Libwrap-0.230.0-r4.ebuild
+++ b/dev-perl/Authen-Libwrap/Authen-Libwrap-0.230.0-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -27,6 +27,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}/${PN}-0.23-inc-paths.patch"
+ "${FILESDIR}/${PN}-0.23-perl-5.44.patch"
)
PERL_RM_FILES=(
diff --git a/dev-perl/Authen-Libwrap/files/Authen-Libwrap-0.23-perl-5.44.patch b/dev-perl/Authen-Libwrap/files/Authen-Libwrap-0.23-perl-5.44.patch
new file mode 100644
index 000000000000..ff7c81e812d1
--- /dev/null
+++ b/dev-perl/Authen-Libwrap/files/Authen-Libwrap-0.23-perl-5.44.patch
@@ -0,0 +1,22 @@
+https://bugs.gentoo.org/979346
+https://github.com/drmuey/p5-Authen-Libwrap/pull/2
+
+From f9d01b8258e752776677d08272779e9d10d94dc2 Mon Sep 17 00:00:00 2001
+From: gregor herrmann <gregoa@debian.org>
+Date: Tue, 7 Jul 2026 18:03:18 +0200
+Subject: [PATCH] Fix XS comment syntax
+
+---
+ lib/Authen/Libwrap.xs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/Authen/Libwrap.xs b/lib/Authen/Libwrap.xs
+index da197df..8e50bf8 100644
+--- a/lib/Authen/Libwrap.xs
++++ b/lib/Authen/Libwrap.xs
+@@ -29,4 +29,4 @@ _hosts_ctl(daemon, client_name, client_addr, client_user)
+ XSRETURN_UNDEF;
+ }
+
+-/* EOF */
++# EOF
diff --git a/dev-perl/Coro/Coro-6.570.0-r1.ebuild b/dev-perl/Coro/Coro-6.570.0-r1.ebuild
new file mode 100644
index 000000000000..3de3eb2d2a4d
--- /dev/null
+++ b/dev-perl/Coro/Coro-6.570.0-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DIST_AUTHOR=MLEHMANN
+DIST_VERSION=6.57
+DIST_EXAMPLES=( "eg/*" )
+inherit perl-module
+
+DESCRIPTION="The only real threads in perl"
+
+LICENSE="|| ( Artistic GPL-1+ ) LGPL-2.1+ || ( BSD-2 GPL-2+ )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+ev event valgrind"
+
+RDEPEND="
+ >=dev-perl/AnyEvent-7
+ ev? ( >=dev-perl/EV-4.0.0 )
+ event? ( >=dev-perl/Event-1.80.0 )
+ >=dev-perl/Guard-0.500.0
+ virtual/perl-Scalar-List-Utils
+ >=virtual/perl-Storable-2.150.0
+ dev-perl/common-sense
+"
+DEPEND="
+ valgrind? ( dev-debug/valgrind )
+"
+BDEPEND="
+ ${RDEPEND}
+ dev-perl/Canary-Stability
+ >=virtual/perl-ExtUtils-MakeMaker-6.520.0
+"
+
+PATCHES=(
+ "${FILESDIR}/6.514.0-ev-config.patch"
+ "${FILESDIR}/6.570.0-FORTIFY_SOURCE.patch"
+ "${FILESDIR}/6.570.0-c23.patch"
+)
+
+src_configure() {
+ local myopts=()
+ use ev && myopts+=("EV")
+ use event && myopts+=( "Event" )
+
+ export CORO_USE_VALGRIND=$(usex valgrind y n)
+
+ GENTOO_OPTS="${myopts[@]}" perl-module_src_configure
+}
diff --git a/dev-perl/Coro/files/6.570.0-FORTIFY_SOURCE.patch b/dev-perl/Coro/files/6.570.0-FORTIFY_SOURCE.patch
new file mode 100644
index 000000000000..3fa136923798
--- /dev/null
+++ b/dev-perl/Coro/files/6.570.0-FORTIFY_SOURCE.patch
@@ -0,0 +1,41 @@
+https://src.fedoraproject.org/rpms/perl-Coro/blob/rawhide/f/Coro-6.512-Disable-disabling-FORTIFY_SOURCE.patch
+
+From 7accb61160334aa89bf771323c91e40f42af8574 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Fri, 14 Jul 2017 14:59:32 +0200
+Subject: [PATCH] Disable disabling FORTIFY_SOURCE
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+6.512 started to disable FORTIFY_SOURCE feature because it breaks
+jumps on some C standard libraries.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+--- a/Coro/Makefile.PL
++++ b/Coro/Makefile.PL
+@@ -219,7 +219,6 @@ if ($iface eq "u") {
+ print "\nUsing ucontext implementation\n\n";
+ conftest ("TEST_makecontext");
+ } elsif ($iface eq "s") {
+- $DEFINE .= " -D_FORTIFY_SOURCE=0";
+ $DEFINE .= " -DCORO_SJLJ";
+ print "\nUsing setjmp/longjmp/sigaltstack implementation\n\n";
+ conftest ("TEST_sigaltstack");
+--- a/Coro/libcoro/coro.h
++++ b/Coro/libcoro/coro.h
+@@ -342,12 +342,6 @@ struct coro_context
+ # define _GNU_SOURCE /* for glibc */
+ # endif
+
+-/* try to disable well-meant but buggy checks in some libcs */
+-# ifdef _FORTIFY_SOURCE
+-# undef _FORTIFY_SOURCE
+-# undef __USE_FORTIFY_LEVEL /* helps some more when too much has been included already */
+-# endif
+-
+ # if !CORO_LOSER
+ # include <unistd.h>
+ # endif
+--
+2.9.4
diff --git a/dev-perl/Coro/files/6.570.0-c23.patch b/dev-perl/Coro/files/6.570.0-c23.patch
new file mode 100644
index 000000000000..1061383e8f8c
--- /dev/null
+++ b/dev-perl/Coro/files/6.570.0-c23.patch
@@ -0,0 +1,51 @@
+https://bugs.gentoo.org/981304
+https://rt.cpan.org/Public/Bug/Display.html?id=158609
+https://src.fedoraproject.org/rpms/perl-Coro/raw/rawhide/f/Coro-6.57-c23.patch
+--- a/Coro/State.xs
++++ b/Coro/State.xs
+@@ -156,7 +156,7 @@ static void *coro_thx;
+ # include <assert.h>
+ #endif
+
+-static double (*nvtime)(); /* so why doesn't it take void? */
++static double (*nvtime)(pTHX); /* so why doesn't it take void? */
+ static void (*u2time)(pTHX_ UV ret[2]);
+
+ /* we hijack an hopefully unused CV flag for our purposes */
+@@ -391,7 +391,7 @@ coro_u2time (pTHX_ UV ret[2])
+ }
+
+ ecb_inline double
+-coro_nvtime (void)
++coro_nvtime (pTHX)
+ {
+ struct timeval tv;
+ gettimeofday (&tv, 0);
+@@ -420,7 +420,7 @@ time_init (pTHX)
+ if (!svp) croak ("Time::HiRes is required, but missing. Caught");
+ if (!SvIOK (*svp)) croak ("Time::NVtime isn't a function pointer. Caught");
+
+- nvtime = INT2PTR (double (*)(), SvIV (*svp));
++ nvtime = INT2PTR (double (*)(pTHX), SvIV (*svp));
+
+ svp = hv_fetch (PL_modglobal, "Time::U2time", 12, 0);
+ u2time = INT2PTR (void (*)(pTHX_ UV ret[2]), SvIV (*svp));
+@@ -3031,7 +3031,7 @@ PerlIOCede_pushed (pTHX_ PerlIO *f, cons
+ PerlIOCede *self = PerlIOSelf (f, PerlIOCede);
+
+ self->every = SvCUR (arg) ? SvNV (arg) : 0.01;
+- self->next = nvtime () + self->every;
++ self->next = nvtime (aTHX) + self->every;
+
+ return PerlIOBuf_pushed (aTHX_ f, mode, Nullsv, tab);
+ }
+@@ -3048,7 +3048,7 @@ static IV
+ PerlIOCede_flush (pTHX_ PerlIO *f)
+ {
+ PerlIOCede *self = PerlIOSelf (f, PerlIOCede);
+- double now = nvtime ();
++ double now = nvtime (aTHX);
+
+ if (now >= self->next)
+ {
+
diff --git a/dev-python/awkward-cpp/Manifest b/dev-python/awkward-cpp/Manifest
index 28ada959411a..7c8751c1ac81 100644
--- a/dev-python/awkward-cpp/Manifest
+++ b/dev-python/awkward-cpp/Manifest
@@ -1,4 +1,4 @@
-DIST awkward_cpp-55.tar.gz 1503409 BLAKE2B e1bc3a27e6723155411594c55eb81d7530f29022e5fc7e965717376a49ffb4383ffe898486ec58cbd678d4ce44c18ba3a1006c53ee3c7b821b27fd17a094ec72 SHA512 146ff1c3241ad2e691eca7ca505d75416de1bd932b8fbab573b5c2e1e982da4c4eea66333029ed84f78d198d08732d48473fdbd31b0d6f66ce1de4189499c478
-DIST awkward_cpp-55.tar.gz.provenance 9660 BLAKE2B a90312032f2b9a80c7e105fb1849dacdc3f6bb4da64ee21ab05e251fcb5bd7e63649be283d9bb5dd44e62380686f5a0e0523c52f9f83a807a61c7d544ef4b608 SHA512 44c5caab4101be0b2dcff1f3dfb7759451249d974c614f7e1c71fb691044659663e62a2341af78bf8ef2e907caf7e8a6bec7e8cf11c42cadcbfd36906f0953a2
DIST awkward_cpp-56.tar.gz 1501723 BLAKE2B 5cfab23715b898fbdd9c370ef6821aa606401ab187ce9ac6cd83bfec2b0dd2186ed3d0b14437c2eac6fe28922be13c8dc2e17131ff88b1a2adf2c9513756306a SHA512 6e9e11f966749fb956920c621cf32b284ce15e45f3b2701df52896a6e769376d3369f8fa4aa2b6f965f47351c8a3597c345812a21ac9bca59a92c5f1baec07cb
DIST awkward_cpp-56.tar.gz.provenance 9897 BLAKE2B 2b1c556af73d8c80bb8ecf17810c66218e3ae7343c77cdae7d78c6c9d3d8e422d90bd2577d59f3b03cf4b9cdc638db7e272b0d6df807a6287af152c34e483b8a SHA512 f783c2a2e524129495a2b49fcaf0bcdb7dfb0d0dae8e806829f783836cac5595212f1fbbed3a9335688c8b1fc5613a30ca4bcfd3f509e43124dfd6bdca4d5ae2
+DIST awkward_cpp-57.tar.gz 1502719 BLAKE2B 485fbe3a519b30f77f6dae5e3b07ec32225ac6add9a076e2af75b874ae9a0d3113d53f15845abcff4e7c3bd099646d6117e51ada078638c29d0b4080ce5ae6c9 SHA512 168e3693730944ec275115de796afcf28e44cd9b6f4594114c728fb9f247fe31ad5e68e67ec342b4ee1bfecdb657b2c45e8df21f441204e4b2931594f91d42e4
+DIST awkward_cpp-57.tar.gz.provenance 9850 BLAKE2B 1ff800e97b6562f32856b766b1a05b8d324b4bb748fe4048823d3a4f5a36c90296d96ebbbe4d23d67d9086d57e1a2a55c7ce9ea0c954bf1a910ac3fba5ee1f8a SHA512 6896906683b15dad524fa14e708a9bb77783b70f7bbd13fb800e242d997131a523e30a0923115e25dc723351481ccd55ec4f067d04b5813982d0781c8daf0265
diff --git a/dev-python/awkward-cpp/awkward-cpp-55.ebuild b/dev-python/awkward-cpp/awkward-cpp-57.ebuild
index 5ab4874ad1dc..5ab4874ad1dc 100644
--- a/dev-python/awkward-cpp/awkward-cpp-55.ebuild
+++ b/dev-python/awkward-cpp/awkward-cpp-57.ebuild
diff --git a/dev-python/awkward/Manifest b/dev-python/awkward/Manifest
index f0d8be97e1d1..c1e7503dfb34 100644
--- a/dev-python/awkward/Manifest
+++ b/dev-python/awkward/Manifest
@@ -1,4 +1,4 @@
-DIST awkward-2.12.0.tar.gz 6455141 BLAKE2B 32f3c5c59738e6403f64c901a0744cdf9bdee0791ad64462777f6fed0f99d0ef75e8d50164b72465ada8542c1bc0e6b7286b98cd3ba5aae224712f3f5087a8fe SHA512 020a1f92444d3aec1a7f4558db71c536a859cdd4f18a04e573bd9913f362be02a37b343d265ddecfeda3c73c177da5c16ac609d89592e0e0fdbd943bd5a99f16
-DIST awkward-2.12.0.tar.gz.provenance 9528 BLAKE2B 6ecd541a59ff78d31cc1fecf9233551c3b2cbe00c5c4a504aaa866f6eef2fd8e0126969e3fb815915d458cacdd699150b03afe580884ace984f465a1efab4c55 SHA512 913276ef72ac3b007c76d155ba90746b4ab6e570178692e10eeacf07721a866b40e36776a186b4ef005d38e3cd8fc5c99123579c163488b193c9ba6667978d69
DIST awkward-2.13.0.tar.gz 6479149 BLAKE2B 85592d1a29641a212cd59a1116d1f5aaebc0564739b336a8a4b30509de52a587fe4deca0c82c02b6ba593c05796a13315a1541ddb8541a613521e69c70f5e3ec SHA512 71089cb59592955245b647692f9a1dae4acba27bd433c9d1dd03caba1cf97c566681a7fa6d10030b48419909ba0baf205fb5b2e1d7b061b84978bed53e078ef2
DIST awkward-2.13.0.tar.gz.provenance 9886 BLAKE2B a43907cca46b2e2ae5396014193b27584613e2412890b5ccbcd7c41c13c3cafff446623bad1a7c7d1dee1be905ad79f39ea58c70204f9c13eba877aad6dfae1b SHA512 c8a646ded4b0fb60618e8c612eb9fc09404d75eb280a70b27a9c85693b28008367bd9ada39dfb6447c48fd818d8a93196b1e1d228a6f24f426e38a3a3c44a835
+DIST awkward-2.14.0.tar.gz 6508333 BLAKE2B bd43d13b01aad075dfa31694b51623d332f38e4a5db85eaa9c6905e0a0be40663f73bddd979223703a53a7e9a19cdc9cee7d0eb740200f623e4d0a6de642b8aa SHA512 2883175d3d480bda41757f1195c3dbe318de7b825e6b7e1944367e729d6f4d4f9fb68e52c3aae24a9e280e78892717b837770df67c955a175749a06505cf24de
+DIST awkward-2.14.0.tar.gz.provenance 9906 BLAKE2B 30b8b2b1a95a99553b0e59babc0c3b586c13c9570f05ac80145c2d87c9ca14f3c5f654e3e0aa71322bb413b33a3689bb1a0826bddb2956462873e698be0eae51 SHA512 6bb08968ba28296a897e07def4eb1d24bc4262faebe93407d1002c506c82409e3052d9d40fef1bea5cf6a9513ec34b8a6dfdbbe814ff5503c057d87596d2d8cb
diff --git a/dev-python/awkward/awkward-2.12.0.ebuild b/dev-python/awkward/awkward-2.14.0.ebuild
index ae502aa69617..10901bd7d871 100644
--- a/dev-python/awkward/awkward-2.12.0.ebuild
+++ b/dev-python/awkward/awkward-2.14.0.ebuild
@@ -21,7 +21,7 @@ SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
- ~dev-python/awkward-cpp-55[${PYTHON_USEDEP}]
+ ~dev-python/awkward-cpp-57[${PYTHON_USEDEP}]
>=dev-python/numpy-1.21.3[${PYTHON_USEDEP}]
dev-python/packaging[${PYTHON_USEDEP}]
>=dev-python/fsspec-2022.11.0[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 3c16db45d4cd..fd6b98cee83e 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -6,3 +6,4 @@ DIST boto3-1.43.93.gh.tar.gz 1230597 BLAKE2B 183d94cea0d706147a75674cb85a600ad21
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
DIST boto3-1.43.96.gh.tar.gz 1232904 BLAKE2B e040695656e1eef774e3e3832864e9e4fd68d0dd7eab2f9aacf21d1e35c381c04797a2261e88cd6a7b42b4ba665aeef7039b057810256deff06180d0b3f124e9 SHA512 afc7804b902ee8c4375a68d31a871dbd44a8571899e684dba68a181c2dfda4d83690ee0479bc5bacfca30f6909e31be3d355ff2946930ccdfe2f5801a7c123da
+DIST boto3-1.43.97.gh.tar.gz 1234481 BLAKE2B a76cbe7f12781c2b733730bfae03b14579d9a2a4972031f6a13a892523faf949f22a6387daf440072a6acecf06bab1300714ea22afedc74aaaaa92dabfee74ac SHA512 c87c69b2c73e84a731e379256b22dc00668428ed0e13921fbfcbe94d663aedf47a1ed0c59aba770444ccaa89aaa7b043913cd06f093abd9b0b9dc7b85315dfc0
diff --git a/dev-python/boto3/boto3-1.43.97.ebuild b/dev-python/boto3/boto3-1.43.97.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.97.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 3ce404ef7762..4d77db4925e7 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -6,3 +6,4 @@ DIST botocore-1.43.93.gh.tar.gz 17142451 BLAKE2B eec2955aa252ff8bc49c24095006f0c
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
DIST botocore-1.43.96.gh.tar.gz 17158154 BLAKE2B 29d6f71cec5f1d9d4be88a580aae8cfbacee15252635fafa6d82ee35e8c086bafae04de57d695c18dfa23a86da212bf88b08c4e7b108bc3c629f0830b3f2d04c SHA512 623dc3218688d78c5b9bd7542ad584394aacb82117c9e7c8abf7d2531780cd965dea451fa209ae348f189746611276f9da321805adb8833b2d61f5e2c5c1b8de
+DIST botocore-1.43.97.gh.tar.gz 17166411 BLAKE2B 267a0a411f5670c0baded3738d9cf1bdfc01549173ef83027af39db995ac19717cbb044e74d80c727344cf45e898444d72b3213da26dd385ec3bc34b25e77fcd SHA512 6fc8523f00c41b163387c14ceb1962b2fd3f5ad869c5a5d34bc00f788f1438f83904e40e0bb59a698656cf7580bdbdc16946b83db293a9a05177b2163ee116a6
diff --git a/dev-python/botocore/botocore-1.43.97.ebuild b/dev-python/botocore/botocore-1.43.97.ebuild
new file mode 100644
index 000000000000..14ad5b2d1f27
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.97.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/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 9caf20049e2d..0931a8aeef07 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,5 +1,3 @@
-DIST cfn_lint-1.54.0.tar.gz 4584764 BLAKE2B e901d2eef452cd3b059e413c0cf095b3c846adf4a07f1b32f8e04f064d7fd0dd08a23b6630d546a70d49327423524e69dd04c5a413674c2d1770a0a906aaaeee SHA512 6d64cecf3ece86a1941d0e587ee5875ceaeb84dacaed9b34dd9fab8fcfdec3f419d519b54848d5c0deb29d7e3e87f1460fd302ed7e690a2d3e979086a9b8aacc
-DIST cfn_lint-1.54.0.tar.gz.provenance 9942 BLAKE2B 33e3aab9c9812b942847e3c1e66501cb732a7c2d787e076eb0e54a1f762010a7470c679bd1b57e47f724c60b601bf29647907832cac56f23cfe2a46320e553f0 SHA512 c62230d36ceb34ecae3422d00ada9813480942db887c2ff53a5c817e07d5fc7e54b36023e334c4edfc3fee4bea1010393d81289426cf1d24acd53eb8ec5aadfa
DIST cfn_lint-1.55.1.tar.gz 4646651 BLAKE2B d3ca76fb15a3695019334345897423e26ac0341a7c352a9c4b5a0407b37f9398f1f9e37372603d0a541760eb5e1506dc4bec7a48fa3b480f17e28bf2c42bc0b9 SHA512 b3f9968911ee841322d482c83238dd157f28639dec1088141ac06be7c88d88d94e500f70b912ed72f50993bbb7236d33ed19fdd270f00cd28f16c0791d5efbca
DIST cfn_lint-1.55.1.tar.gz.provenance 10179 BLAKE2B bee20ea785698e115569fa307d03ca09f1d6e8fcacaf418dfe0fc91553f3a7be127c1bff39804930c7d900007efe4cb31f1fb943064e28fad760d38990e7c729 SHA512 c71b2a1463cd290bb0532868b7f7f0ce047a7acdf18304240a15d3b472d8926a09a58665a89cd5a70913604bf27f0d75d93a567f42c8ebf20e2dcb6e9c71337d
DIST cfn_lint-1.56.0.tar.gz 4741346 BLAKE2B 610ed9da227212846ff36caf13e01031e0dfd2021fa9a0a5e619cca7196669ad833878707016a7870e53cb18abb0d57a407b2c62e8ab0f8ebe5506667eaf8659 SHA512 d6514d0c6e0b51d0c9a24d1ecb8965c78923027529fcf964c5146c70efca493eb76ead77c633c1f9e11cf2486decc2afd4f945e64f2aacd0275714303480c6dc
@@ -8,3 +6,5 @@ DIST cfn_lint-1.56.2.tar.gz 4773622 BLAKE2B 977497b65c624b8366bcef94a9fa40185f6a
DIST cfn_lint-1.56.2.tar.gz.provenance 10128 BLAKE2B baba49ad3c761a126e8530604d67593a2ed1fc9162f0da6bf48c1e67c4193c5bcdd4d0e035384c51955d60c45f63ecc2b884f4eda227c3edb2492997a1004482 SHA512 eb8685efe89858b80d36f7e85c5bb1ad4577d7903eb9455e92da03b0b6afe1ff85261826ed3d117ff6f411186891e49ba547592523e7ad05fa01724ee45607a4
DIST cfn_lint-1.56.3.tar.gz 4782328 BLAKE2B 4428f330d2e21fefd7254c3e062b6af231874224afe96d2bd225303b590616456a1e10b2384b1fa7c1e2aac58dde3ba96707119d31b9cab75c9c32b960d76a7e SHA512 3f5a347ad05c675adbae23f2a94c63727a30a2ffe9b862d147488da990c160f86574d34812ed3936457ee506c43f28d0d5d286d11af13652ec946d8db75ec073
DIST cfn_lint-1.56.3.tar.gz.provenance 10034 BLAKE2B 40af29c8024029066a39c6dfb07380e26fedc4dd75d4a89f7e6e6edacac35a6fa6534f68a09e2b93b74ac1a1d829e4c0c14cd94ce077921b37e761f65e6097b8 SHA512 24f89afdcc5afec8a258297b474cfc5798a2c0cdeb414c5ef3cd3dad382f8606d8832501eb8042326f906dd2de46c5387a4b74159505b697ead87f2fcf60007e
+DIST cfn_lint-1.57.0.tar.gz 4865987 BLAKE2B 5d38fcc5a73abe8c28bec18d1454e681387f2fe4230605cdb982c60d8f4ddcae4755bafe0865645089f4fce1f873c2646479dd83a0645415b326483001104aca SHA512 fd5d806effdd5ca2593c208e9a50469668076a07acc183bb76441555818b9806bb0433bb196c099c2f9a9c3607dcf8a71ce144affd61c7f69eb411ce61d7981d
+DIST cfn_lint-1.57.0.tar.gz.provenance 9756 BLAKE2B 9cc8e94f7d8c31ad889576f3797beb3009d59d290522fb95ddc0c769442a6adbabc4c510ba7d8678cc35e836bfcf7dd61357d45cf79b9d740cb2d693f29e0a2b SHA512 e1f02d3246b374381d1b2789ed56e0f626f5bac8737e9ea1d0b7a4fb6e0f206123dc1652109b75ab468c7e8d78ccb7cdef8abfcc64b0fb41e3c1a3008fc2725f
diff --git a/dev-python/cfn-lint/cfn-lint-1.54.0.ebuild b/dev-python/cfn-lint/cfn-lint-1.57.0.ebuild
index 5005e0bd6fcc..60bfe8f96df0 100644
--- a/dev-python/cfn-lint/cfn-lint-1.54.0.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.57.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
RDEPEND="
dev-python/jsonpatch[${PYTHON_USEDEP}]
@@ -51,6 +51,8 @@ python_test() {
test/unit/module/test_api.py::TestLintByConfig::test_graph
# scripts missing from sdist
test/unit/module/maintenance/test_update_specs_from_pricing.py
+ # Internet
+ test/unit/module/schema/test_manager.py::TestUpdateResourceSchemas::test_update_force
)
# from tox.ini
diff --git a/dev-python/google-api-core/Manifest b/dev-python/google-api-core/Manifest
index 51463cddbe3f..45c5a2d093c6 100644
--- a/dev-python/google-api-core/Manifest
+++ b/dev-python/google-api-core/Manifest
@@ -8,3 +8,5 @@ DIST google_api_core-2.36.0.tar.gz 196879 BLAKE2B b9026e37bec28104b8104053654493
DIST google_api_core-2.36.0.tar.gz.provenance 5964 BLAKE2B ef264b3a188a19058f713cd8f83323e71734276d465b72f77b99a37c2ece8f0b9e25a70faa3879305621f84f1f99fe31029ec7c4f5c435565518c83a0ec4c17b SHA512 63ddeb9323376f41ce5368674f4a29cf5a8bfa0d9a4b60f3a469e4a11e2c8aaa3288cad03159ef4da605f93726ad1e4d46952403c2c00b90147014dc8e641835
DIST google_api_core-2.37.0.tar.gz 203563 BLAKE2B ba146807ce2492ddf6b3f20bf755bbc94d87e4954502b48eb64aa849b4903deb4f6b636d1e29490464142befe1939410b18b13459c6330187440dd3e4aaff774 SHA512 eac0fdccc3cb91f90798f24b59820c21d10e57bfdc4ef82ec99275fc5e973d97f0b8101d8cf0544f9ddf3aa31cc769d67a20f4652b45d5a90edee74b2310c413
DIST google_api_core-2.37.0.tar.gz.provenance 5874 BLAKE2B 69e200997fbface49b057ecb9a71e8e4831165a4a35f70ae9a8d47e5ed014eff9ffc8aa6e1d91babfb0f48b253b8ec2f55dbeb9f237e188a4af13a85174efbc8 SHA512 ae9e22056daf16c716651bb469c7d5429d5bae483c5dff67b063c3721fecf3b4a9f2b6f0c18256a78f8adb4563f856366826d947cb716433ddebfff3484b391f
+DIST google_api_core-2.38.0.tar.gz 206784 BLAKE2B 6ec0dbe090374c4db6e4f27dbf97120ca0b4a47d48e17a825590950bc6d6cffa5a3ba39a2e4c3f626ab4606b3519b61eac29d380fe26a3b168db242e1f12de14 SHA512 bef24488a2389a88366e8c20d927ee51b92526d781aacd284a7fe45d1861176a43ba06f0a7fade6ccc3bd5fff7fb6bb87b4f4ab6c06daf6ebc28e5de882775eb
+DIST google_api_core-2.38.0.tar.gz.provenance 6015 BLAKE2B 07b8ff1968b19edf7532b32e0aa9c8aaac7ce793cc44475928f1d87e95794c9450a51daf000fb291826de61a18609f174b3f70a287fb65a075aa95c8b49392a8 SHA512 1444bb83b4ec729503d0e5a4a0103783bf31d456614687a384096acc4fb37ff2f7f2e24be18c09772221ad11600d3921a44fa5b875c674800d9f37bdaa22f95a
diff --git a/dev-python/google-api-core/google-api-core-2.38.0.ebuild b/dev-python/google-api-core/google-api-core-2.38.0.ebuild
new file mode 100644
index 000000000000..2b11a77adbaf
--- /dev/null
+++ b/dev-python/google-api-core/google-api-core-2.38.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=gcp:google-cloud-sdk-py@oss-exit-gate-prod.iam.gserviceaccount.com
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Core Library for Google Client Libraries"
+HOMEPAGE="
+ https://github.com/googleapis/google-cloud-python/
+ https://pypi.org/project/google-api-core/
+ https://googleapis.dev/python/google-api-core/latest/index.html
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="grpc"
+
+RDEPEND="
+ >=dev-python/googleapis-common-protos-1.69.2[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-1.25.0[${PYTHON_USEDEP}]
+ <dev-python/opentelemetry-api-2[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-api-1.44.0[${PYTHON_USEDEP}]
+ >=dev-python/proto-plus-1.26.1[${PYTHON_USEDEP}]
+ >=dev-python/protobuf-6.33.5[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.33.0[${PYTHON_USEDEP}]
+ <dev-python/requests-3[${PYTHON_USEDEP}]
+ grpc? (
+ >=dev-python/grpcio-1.75.1[${PYTHON_USEDEP}]
+ >=dev-python/grpcio-status-1.75.1[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/grpcio-1.75.1[${PYTHON_USEDEP}]
+ >=dev-python/grpcio-status-1.75.1[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-sdk-1.44.0[${PYTHON_USEDEP}]
+ dev-python/rsa[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock} )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # The grpc_gcp module is missing to perform a stress test
+ tests/unit/test_grpc_helpers.py
+)
+
+python_test() {
+ rm -rf google || die
+ epytest tests
+}
diff --git a/dev-python/iminuit/Manifest b/dev-python/iminuit/Manifest
index af104939be7a..8a6788b751ec 100644
--- a/dev-python/iminuit/Manifest
+++ b/dev-python/iminuit/Manifest
@@ -1,2 +1,4 @@
DIST iminuit-2.32.0.tar.gz 1873843 BLAKE2B eaab9ca47e2a18c2fa468f6a5341d8d0797abfbfd90fb856dd53384693f22bf45eb7e9e6554566f5db21f5ea118c50cacdeb0fd0663c6286b6c2dbe937730fd1 SHA512 57cf6c4e51802042d3657628a95078477bb444d7ea26df84f5650912082716508b81f059fd2650db7eba3df410cafef7db04e8ed0c115947e81f1ffbe26cd1fe
DIST iminuit-2.32.0.tar.gz.provenance 9224 BLAKE2B 7eccba7b4ee9e18bee1ece5d30726a116d14a960fcb11f6179ed0674a4aade2193dba0901455be153219d762d4954a4446009e78fad1ce6a205f391a5496db93 SHA512 0975fb351928e3c405ef8af0b5c8167fe191fba15744f4732af512753e8c566b5603752c230668d248d25fe4f7db7fc250172c5516ca4169fe4ac967a5083ec3
+DIST iminuit-2.33.0.tar.gz 1890920 BLAKE2B 1341f1f449335ba9c4010f5f23b0f43d24dc22c1d10802f9574d16225ca4923f6139bec13d0e3ba6cf02792f0e43fb48a4ee9e5f675291a168a1b53fb18bdf1d SHA512 4623e15cc6f630632f78af1419283f2cebe77ef4abe3016df36d194dd4e62e0073fdb5ee9e11d9ef72d08505422c3eda54222d63ee192ec270770dd5ef3f74a6
+DIST iminuit-2.33.0.tar.gz.provenance 9467 BLAKE2B 7f1db00108d6c84d3ea7a33d21ac35e979cfb521cea886b79b55e07fafdfac233254c5b908fc54a550a6626f5ca54ed4c29d834ca5627cce66d8399a535b7558 SHA512 1ef76c27ba0126603355a607a0464011d5b7e184054b1c99dce6fd1e034ec9d6fe4aa3df69117dfee35e403e872e9b6156dbcfbc9fb63e7591b1889c12fe9f4a
diff --git a/dev-python/iminuit/iminuit-2.33.0.ebuild b/dev-python/iminuit/iminuit-2.33.0.ebuild
new file mode 100644
index 000000000000..d89a3927b9a4
--- /dev/null
+++ b/dev-python/iminuit/iminuit-2.33.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=scikit-build-core
+PYPI_VERIFY_REPO=https://github.com/scikit-hep/iminuit
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake distutils-r1 virtualx pypi
+
+DESCRIPTION="Minuit numerical function minimization in Python"
+HOMEPAGE="
+ https://github.com/scikit-hep/iminuit/
+ https://pypi.org/project/iminuit/
+"
+
+LICENSE="MIT LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+"
+DEPEND="
+ >=dev-python/pybind11-3.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${DEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]
+ test? (
+ dev-python/annotated-types[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/ipywidgets[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=10
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # precision error
+ tests/test_cost.py::test_Template_with_model_2D
+
+ # TODO
+ tests/test_describe.py::test_with_pydantic_types
+)
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # do not force LTO
+ sed -i -e '/INTERPROCEDURAL_OPTIMIZATION/d' CMakeLists.txt || die
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
diff --git a/dev-python/pandas/Manifest b/dev-python/pandas/Manifest
index ab17e7e8606b..343979fcee66 100644
--- a/dev-python/pandas/Manifest
+++ b/dev-python/pandas/Manifest
@@ -1,5 +1,3 @@
DIST pandas-2.3.3.tar.gz 4495223 BLAKE2B c31604617900d439020dcdd66fcbca1cf3b720b6f4dd8ea51891946ad04774754cf7636a2ffb9fe746d15911a88153d36d4033b6a0207e9c7a1653a0f677570d SHA512 4179acb9fd9d1c5d543bb19b22483b4c2b17a36d5b10270a02ff4d8370b43c16a93673bf5509a5b1d1c960c0fde9238bbbf5b309c6745d2abf3d934535f3fd85
-DIST pandas-3.0.4.tar.gz 4658146 BLAKE2B bae5091dfd7af75d2224cd5e5d0a018aa796e95f304bc6a2962ea81680b90c52e5d6f824e29b4c245508ccdd107e031e2f0e11b83f415bc99ba6cfd622b90122 SHA512 0321357d876f465d2bbfb7194e3a15242943ab37fbf8a05829cd4b87174ba56ff0991dafc86e44ec8bfb7223fbb1e1a711da866b87198ca4b61a21ebecc7143a
-DIST pandas-3.0.4.tar.gz.provenance 9953 BLAKE2B ab4e6a9db911b4ad03f6cb90f78534dee408feab2340c03e69f4175295903194c459067ba5b00ac5e318a71820b20863c621377a7df8beca17325af721169200 SHA512 893b6a9c9799625af0e58159cf1430a1242a3febeba22fb555d03e1882e82f275fa797b71a4e17fe77f80611ace4b1917c99358db72e707f37ca0a88c0c7d9b3
DIST pandas-3.0.5.tar.gz 4658219 BLAKE2B caf76801d7cac5441f7170140ccca57e3bfb808a2c361673e50c36afaf4bf4fbce1269417d80942ae1c04f3dce5b53d66d8655362ab48f10ba52b7058365bdf4 SHA512 d082483edff92dbe61143681d270cc2ae7031ed59f8851e90e69a0139f988d57dfe0ae5b32ca829cb5912fd202db7c8a3dfe59b986068a983779184b454bc5ce
DIST pandas-3.0.5.tar.gz.provenance 9718 BLAKE2B bf91942df1291d46668b5a816fadd82ac32cc6c3e2158234cea1b694c569c3d873514c77c4e43fd06ff22e2c2a60c77f6e38ab327ee798899dfa45807ebc6836 SHA512 ef940be2eba603efa97f90aefa32056a7b17fe5b572a7bccb42e553a0233afcb4b171772844ae5cef6cb5fcab28847dbf1a8360b2df8555866b7b384f9e27289
diff --git a/dev-python/pandas/pandas-3.0.4.ebuild b/dev-python/pandas/pandas-3.0.4.ebuild
deleted file mode 100644
index 71f7b4db6756..000000000000
--- a/dev-python/pandas/pandas-3.0.4.ebuild
+++ /dev/null
@@ -1,191 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=meson-python
-PYPI_VERIFY_REPO=https://github.com/pandas-dev/pandas
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="threads(+)"
-
-VIRTUALX_REQUIRED="manual"
-
-inherit distutils-r1 optfeature pypi toolchain-funcs virtualx
-
-DESCRIPTION="Powerful data structures for data analysis and statistics"
-HOMEPAGE="
- https://pandas.pydata.org/
- https://github.com/pandas-dev/pandas/
- https://pypi.org/project/pandas/
-"
-
-LICENSE="BSD"
-SLOT="0"
-if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="amd64 arm64 ~riscv ~x86"
-fi
-IUSE="big-endian full-support minimal test X"
-RESTRICT="!test? ( test )"
-
-RECOMMENDED_DEPEND="
- >=dev-python/bottleneck-1.3.4[${PYTHON_USEDEP}]
- >=dev-python/numexpr-2.8.0[${PYTHON_USEDEP}]
-"
-
-# TODO: add pandas-gbq to the tree
-# TODO: Re-add dev-python/statsmodel[python3_11] dep once it supports python3_11
-# https://github.com/statsmodels/statsmodels/issues/8287
-OPTIONAL_DEPEND="
- >=dev-python/beautifulsoup4-4.14.2[${PYTHON_USEDEP}]
- dev-python/blosc[${PYTHON_USEDEP}]
- >=dev-python/html5lib-1.1[${PYTHON_USEDEP}]
- >=dev-python/jinja2-3.1.2[${PYTHON_USEDEP}]
- >=dev-python/lxml-4.8.0[${PYTHON_USEDEP}]
- >=dev-python/matplotlib-3.6.1[${PYTHON_USEDEP}]
- >=dev-python/openpyxl-3.0.7[${PYTHON_USEDEP}]
- >=dev-python/sqlalchemy-1.4.36[${PYTHON_USEDEP}]
- >=dev-python/tabulate-0.8.10[${PYTHON_USEDEP}]
- >=dev-python/xarray-2022.3.0[${PYTHON_USEDEP}]
- >=dev-python/xlrd-2.0.1[${PYTHON_USEDEP}]
- >=dev-python/xlsxwriter-3.0.3[${PYTHON_USEDEP}]
- >=dev-python/xlwt-1.3.0[${PYTHON_USEDEP}]
- !arm? ( !hppa? ( !ppc? ( !x86? (
- >=dev-python/scipy-1.8.1[${PYTHON_USEDEP}]
- dev-python/statsmodels[${PYTHON_USEDEP}]
- ) ) ) )
- !big-endian? (
- >=dev-python/tables-3.7.0[${PYTHON_USEDEP}]
- )
- X? (
- || (
- >=dev-python/qtpy-2.2.0[${PYTHON_USEDEP}]
- x11-misc/xclip
- x11-misc/xsel
- )
- )
-"
-DEPEND="
- >=dev-python/numpy-2.3.3:=[${PYTHON_USEDEP}]
-"
-COMMON_DEPEND="
- ${DEPEND}
- >=dev-python/python-dateutil-2.8.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- ${COMMON_DEPEND}
- >=dev-build/meson-1.2.1
- >=dev-python/cython-3.1.0[${PYTHON_USEDEP}]
- >=dev-python/versioneer-0.28[${PYTHON_USEDEP}]
- test? (
- ${VIRTUALX_DEPEND}
- ${RECOMMENDED_DEPEND}
- ${OPTIONAL_DEPEND}
- dev-libs/apache-arrow[brotli,parquet,snappy]
- >=dev-python/beautifulsoup4-4.14.2[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-6.46.1[${PYTHON_USEDEP}]
- >=dev-python/openpyxl-3.0.10[${PYTHON_USEDEP}]
- >=dev-python/pyarrow-10.0.1[parquet,${PYTHON_USEDEP}]
- >=dev-python/pymysql-1.0.2[${PYTHON_USEDEP}]
- >=dev-python/xlsxwriter-3.0.3[${PYTHON_USEDEP}]
- x11-misc/xclip
- x11-misc/xsel
- )
-"
-RDEPEND="
- ${COMMON_DEPEND}
- !minimal? ( ${RECOMMENDED_DEPEND} )
- full-support? ( ${OPTIONAL_DEPEND} )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local EPYTEST_IGNORE=(
- # missing test data
- pandas/tests/io/pytables/test_compat.py
- )
- # Note; deselects relative to pandas/
- local EPYTEST_DESELECT=(
- # require -Werror
- # https://github.com/pandas-dev/pandas/pull/63436
- tests/config/test_config.py::TestConfig::test_case_insensitive
-
- # deprecation warning
- 'tests/computation/test_eval.py::TestEval::test_scalar_unary[numexpr-pandas]'
- )
-
- if ! tc-has-64bit-time_t; then
- EPYTEST_DESELECT+=(
- # Needs 64-bit time_t (TODO: split into 32-bit arch only section)
- tests/tseries/offsets/test_year.py::test_add_out_of_pydatetime_range
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessDay]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessHour]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthEnd]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthBegin]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterEnd]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterBegin]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessDay]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessHour]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthEnd]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthBegin]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthEnd]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthBegin]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthBegin]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthEnd]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-QuarterEnd]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-LastWeekOfMonth]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-WeekOfMonth]'
- 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-Week]'
- )
- fi
-
- if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- tests/plotting/test_misc.py::test_savefig
- )
- fi
-
- case ${EPYTHON} in
- python3.14)
- EPYTEST_DESELECT+=(
- # crashing
- tests/resample/test_resampler_grouper.py::test_tab_complete_ipython6_warning
- )
- ;;
- esac
-
- local -x LC_ALL=C.UTF-8
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
- "${EPYTHON}" -c "import pandas; pandas.show_versions()" || die
- # nonfatal from virtx
- # --no-strict-data-files is necessary since upstream prevents data
- # files from even being included in GitHub archives, sigh
- # https://github.com/pandas-dev/pandas/issues/54907
- nonfatal epytest pandas/tests \
- --no-strict-data-files -o xfail_strict=false \
- -m "not single_cpu and not slow and not network and not db" ||
- die "Tests failed with ${EPYTHON}"
-}
-
-pkg_postinst() {
- optfeature "accelerating certain types of NaN evaluations, using specialized cython routines to achieve large speedups." dev-python/bottleneck
- optfeature "accelerating certain numerical operations, using multiple cores as well as smart chunking and caching to achieve large speedups" ">=dev-python/numexpr-2.1"
- optfeature "needed for pandas.io.html.read_html" dev-python/beautifulsoup4 dev-python/html5lib dev-python/lxml
- optfeature "for msgpack compression using blosc" dev-python/blosc
- optfeature "Template engine for conditional HTML formatting" dev-python/jinja2
- optfeature "Plotting support" dev-python/matplotlib
- optfeature "Needed for Excel I/O" ">=dev-python/openpyxl-3.0.10" dev-python/xlsxwriter dev-python/xlrd dev-python/xlwt
- optfeature "necessary for HDF5-based storage" ">=dev-python/tables-3.7.0"
- optfeature "R I/O support" dev-python/rpy2
- optfeature "Needed for parts of pandas.stats" dev-python/statsmodels
- optfeature "SQL database support" ">=dev-python/sqlalchemy-1.4.36"
- optfeature "miscellaneous statistical functions" dev-python/scipy
- optfeature "necessary to use pandas.io.clipboard.read_clipboard support" dev-python/qtpy x11-misc/xclip x11-misc/xsel
-}
diff --git a/dev-python/pyproject-api/Manifest b/dev-python/pyproject-api/Manifest
index dc1afc4a4866..a9965e154952 100644
--- a/dev-python/pyproject-api/Manifest
+++ b/dev-python/pyproject-api/Manifest
@@ -2,3 +2,5 @@ DIST pyproject_api-1.11.0.tar.gz 23787 BLAKE2B 63846530d8299564466546f8b00bf46c3
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
+DIST pyproject_api-1.11.2.tar.gz 24445 BLAKE2B a7ed162e1550ba6a391846a70067285ff988515faaf9afc45d270b17a56deda3416c2e93aabfe2c307a1ed34ae66662c032d078ce64934cef7062c9079fc4bd4 SHA512 be8529258b135fbf51d704ad948361cef213809e9f82ffa88300eebf14ace6ff63856b4e1d3381ac6cd90dc81563f17d14986a28b27f76a3f63d7e021e218cf2
+DIST pyproject_api-1.11.2.tar.gz.provenance 9830 BLAKE2B 2629cf77430ee9e25996689915be1435cd500a8d4a9cb53e807934f93f885d4fa7ed3c35607c359ac23d401a5c687232d2ab5faaa384e61cad5272a1da080f42 SHA512 1130cb68757fa01bf6031722f8cc4a62c50077d192091c7a67bbe3ab439302212062d7cc74634f5a1b3ee28b47f8fcbc2db40b6ffa4e763bd2cdef566c1a97cd
diff --git a/dev-python/pyproject-api/pyproject-api-1.11.2.ebuild b/dev-python/pyproject-api/pyproject-api-1.11.2.ebuild
new file mode 100644
index 000000000000..81e717ad883d
--- /dev/null
+++ b/dev-python/pyproject-api/pyproject-api-1.11.2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/pyproject-api
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="API to interact with the python pyproject.toml based projects"
+HOMEPAGE="
+ https://github.com/tox-dev/pyproject-api/
+ https://pypi.org/project/pyproject-api/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-25[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/hatch-vcs-0.3.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/setuptools-70.1.0[${PYTHON_USEDEP}]
+ >=dev-python/wheel-0.40.2[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index e75ed3a8e5dd..dd86aad1fa68 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -4,6 +4,7 @@ DIST uv_build-0.12.12.tar.gz 424423 BLAKE2B c7ed255923f884467ecaf8d70be044bea5c3
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.16.tar.gz 432812 BLAKE2B 2401a3d86cef31756ae50ad6fb888b731139c18bdd9ca019ac0d2dcd8fe2debad881de41f63987347975682650e78d719f9069922d02740a1b896923591bb956 SHA512 f97ba7943f2ab91859859091f8a13a0392c86182e7ffccaf0083f48f6d158fe9fd943a667c063a07316c9026b32e93b58a6e2ecab2ed45a37809d5014495e4d3
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.16.ebuild b/dev-python/uv-build/uv-build-0.12.16.ebuild
new file mode 100644
index 000000000000..65d94f2051ae
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.12.16.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 51b06af7f5f4..574140353393 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -10,6 +10,8 @@ DIST uv-0.12.14-crates.tar.xz 44168832 BLAKE2B ad318ae7073d47eec81b715bb5461993c
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.16-crates.tar.xz 43866124 BLAKE2B 50e976af5551b92eaf2edc16b9aa6c729d767b8d4a4b3a5d272a961f3332cbc61a49173aeb0c1bf80be50ba3a223e40b57e4869c5fadb35879d9fcb200135051 SHA512 ad82b057e8a42914757130d7feb2901479132a1bb8cfecf35933b4bf6e8a019e45251fc1058b448025d3d1398d4fcabebb4ecfbf284c757cc1fe19c7e0213f6e
+DIST uv-0.12.16.gh.tar.gz 8687042 BLAKE2B 69c16bcfd99300ae8073d5f5022d4ad2a876ea989755b2e3c9ae07150bd5cb6a17ad4fffb501b353991275c79f6e0c416d17c4c66c628516869992d2d1e86a72 SHA512 2d139e609f23b584fc6942ba261d90f724c047f9fcfe0ededa235f763957ca04828b0189feb5824a732cd15c6e39e7d3d4c4e89ca895b69ea06664cd852c2ce1
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.16.ebuild b/dev-python/uv/uv-0.12.16.ebuild
new file mode 100644
index 000000000000..9826f9045941
--- /dev/null
+++ b/dev-python/uv/uv-0.12.16.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 f8e0dd7dd414..a69430242733 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -1,7 +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.11.tar.gz 5354008 BLAKE2B 166651d9ced8ac3b6bffb0330e23e140fe0a8861487ab50f2c6ebaded9b98c57103eb8a3d3f2526300f3bc1037fbea4178debc1486312daf4a90c60a7abff950 SHA512 f7befbd3c9c3b7347ca4e1ce9319854f9ad4c84b3d670415594a0c16f2c29210913751ae4e86e50c25cbc369020b1a14ac947b0595b752890a505e14024b4274
+DIST virtualenv-21.7.11.tar.gz.provenance 9765 BLAKE2B 37f1def545140512831ccddb7bd20499c4d58c5776ecc9490e898f45f5b0c44955a1c604e7be85abdb41a91955c93226bf9a8c812503906de8f03715b9fa07e9 SHA512 8b809ef182e3fd27cfeddef6e0634c15f348f034fd1693dd4660ee91af1243088f4113fe2bfe2e13194f5a5e87974ac88e74206976f05038fa98d97494e7f12b
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.6.1.ebuild b/dev-python/virtualenv/virtualenv-21.7.11.ebuild
index 5e79811206d5..b2791558c0f7 100644
--- a/dev-python/virtualenv/virtualenv-21.6.1.ebuild
+++ b/dev-python/virtualenv/virtualenv-21.7.11.ebuild
@@ -19,7 +19,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"
IUSE="test"
RESTRICT="!test? ( test )"
@@ -27,7 +27,7 @@ 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.4.2[${PYTHON_USEDEP}]
+ >=dev-python/python-discovery-1.6[${PYTHON_USEDEP}]
dev-python/ensurepip-pip
>=dev-python/ensurepip-setuptools-70.1
diff --git a/dev-python/wcwidth/Manifest b/dev-python/wcwidth/Manifest
index 73769ef4d958..3859429e7db3 100644
--- a/dev-python/wcwidth/Manifest
+++ b/dev-python/wcwidth/Manifest
@@ -1,2 +1,3 @@
DIST wcwidth-0.8.2.tar.gz 1466253 BLAKE2B d71edfcfe3c948090b2a8b454ddc9b701668076cba72fe888a79df06ae0b952d2329c75f27ed086c11c5aa02c68e1058c154d9f4b85f783e2ce5263a6355936d SHA512 5fa3741d4db553d1b06ed1310e01e8a21e696da3489d37a9f45997c279dea494c773e78c2c9d5ad2efb2c8b2e1217170eabc93c76d71167539a04a377595e84b
DIST wcwidth-0.8.3.tar.gz 1458450 BLAKE2B 19a6b8d3fcf0f1d59865860a8efaa7fa14b958ac24b79bc04f9a27988f8fde78497b3ed761e1a7f076a7ab992c71e1d45d088cbb19836d1f73abee6e2f81e5b8 SHA512 d5477dd2a1f6dc6e14dc0e5e34f08b8c78c008ee2390b670155bc163f2c67f1a58ffab2ed35bbe7434d4b4ebef0c91f02cdeae15337d380c28b94858c72692dd
+DIST wcwidth-0.8.4.tar.gz 414609 BLAKE2B 492540a34734e65266211b1412a2b6150c8598e46db05ab099e954c57af2c351ff13df09c43f79c4627060ee86c6220014b0f087a5712f3fef10eff63dca1ddb SHA512 29b89f55efc308d1b1b9dd16ef7224964c7c02aa729e2bd6779b0fa56ac2eb89054c29087a4dd410d183294d06f6217451b1ca693b549483fb0b732edb3c6f70
diff --git a/dev-python/wcwidth/wcwidth-0.8.4.ebuild b/dev-python/wcwidth/wcwidth-0.8.4.ebuild
new file mode 100644
index 000000000000..75230a0cfae8
--- /dev/null
+++ b/dev-python/wcwidth/wcwidth-0.8.4.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="Measures number of Terminal column cells of wide-character codes"
+HOMEPAGE="
+ https://pypi.org/project/wcwidth/
+ https://github.com/jquast/wcwidth/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
+
+python_install_all() {
+ docinto docs
+ dodoc docs/intro.rst
+ distutils-r1_python_install_all
+}
diff --git a/dev-vcs/git-lfs/Manifest b/dev-vcs/git-lfs/Manifest
index 0f9af4be3a28..8263b37ae6be 100644
--- a/dev-vcs/git-lfs/Manifest
+++ b/dev-vcs/git-lfs/Manifest
@@ -1,2 +1,3 @@
DIST git-lfs-3.7.1-deps.tar.xz 21418188 BLAKE2B f26ffa8956af522131384e9ad435c456e275394c47aa10770fe416e140d69393a8a7ae20d9264e4b4678b6029e87fc623a5de599535ad2598c849dbb44dff10e SHA512 9e93072ad1dfe9a8fd28f5417de6c35c2720d393fabf07d32d8e1bb63b91a5feb8163d74479db7333253d4615dafb503e2540ef3d51a9b4262709a1150336b73
DIST git-lfs-3.7.1.tar.gz 713503 BLAKE2B 94bc626888c824f30638c23d7cfe852128505e17880a8fb45499350abd3d84e75389c38638b80c5b306def8778c2cb0fd1b9f352aac06db8209848b251d325d3 SHA512 5bbf7847737a80e44295070a95e5de9f24186c9fbf58e7bda91e938af2542bcaae2ae9197b77384861d9ef6cd5ed868e9388836925ff7ab5d50157df39fc174b
+DIST git-lfs-3.8.0.tar.gz 3598783 BLAKE2B 11e947f22c66cad62875d7a436152611c81fa34c161336618b8f686cbd3b3de6c50cc7698e7f76e8cfd2cba96c9377c725ccd92fff15711fdd28a0a3b4f218d8 SHA512 f541a6f728ea4f6889cc5a05184599b582927918bf871e0d609fc9e41bf8416ff820abe3d49c041008d2abea1b3a2d0ad42fe0a925ceecf7293512a2c9fe5d90
diff --git a/dev-vcs/git-lfs/git-lfs-3.8.0.ebuild b/dev-vcs/git-lfs/git-lfs-3.8.0.ebuild
new file mode 100644
index 000000000000..e91ed1b4e766
--- /dev/null
+++ b/dev-vcs/git-lfs/git-lfs-3.8.0.ebuild
@@ -0,0 +1,100 @@
+# Copyright 2017-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+EGO_PN=github.com/git-lfs/git-lfs
+# Update the ID as it's included in each build.
+COMMIT_ID="aece9221f8c09221a14395d964806b956289bc07"
+
+inherit edo go-module shell-completion
+
+DESCRIPTION="Command line extension and specification for managing large files with git"
+HOMEPAGE="
+ https://git-lfs.com
+ https://github.com/git-lfs/git-lfs
+"
+
+if [[ "${PV}" = 9999* ]]; then
+ EGIT_REPO_URI="https://${EGO_PN}"
+ inherit git-r3
+else
+ SRC_URI="https://${EGO_PN}/releases/download/v${PV}/${PN}-vendor-v${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+LICENSE="Apache-2.0 BSD BSD-2 BSD-4 ISC MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="doc test"
+
+BDEPEND="
+ >=dev-lang/go-1.25.0
+ doc? ( dev-ruby/asciidoctor )
+"
+RDEPEND="dev-vcs/git"
+
+RESTRICT+=" !test? ( test )"
+# The golang compiler already strips.
+QA_PRESTRIPPED="/usr/bin/git-lfs"
+
+DOCS=(
+ CHANGELOG.md
+ CODE-OF-CONDUCT.md
+ CONTRIBUTING.md
+ README.md
+ SECURITY.md
+)
+
+src_compile() {
+ export CGO_ENABLED=0
+
+ # Flags -w, -s: Omit debugging information to reduce binary size,
+ # see https://golang.org/cmd/link/.
+ local mygobuildargs=(
+ -ldflags="-X ${EGO_PN}/config.GitCommit=${COMMIT_ID} -s -w"
+ -gcflags=" "
+ -trimpath
+ -v -work -x
+ )
+ ego build "${mygobuildargs[@]}" -o git-lfs git-lfs.go
+
+ if use doc; then
+ for doc in docs/man/*adoc;
+ do
+ edo asciidoctor -b manpage "${doc}"
+ done
+ fi
+
+ # Generate auto-completion scripts.
+ # bug 914542
+ ./git-lfs completion bash > "${PN}.bash" || die
+ ./git-lfs completion fish > "${PN}.fish" || die
+ ./git-lfs completion zsh > "${PN}.zsh" || die
+}
+
+src_install() {
+ dobin git-lfs
+ einstalldocs
+
+ # Install auto-completion scripts generated earlier.
+ # bug 914542
+ newbashcomp "${PN}.bash" "${PN}"
+ dofishcomp "${PN}.fish"
+ newzshcomp "${PN}.zsh" "_${PN}"
+
+ use doc && doman docs/man/*.1
+}
+
+src_test() {
+ local mygotestargs=(
+ -ldflags="-X ${EGO_PN}/config.GitCommit=${COMMIT_ID}"
+ )
+ ego test "${mygotestargs[@]}" ./...
+}
+
+pkg_postinst () {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ elog ""
+ elog "Run 'git lfs install' once for each user account manually."
+ elog "For more details see https://bugs.gentoo.org/show_bug.cgi?id=733372."
+ fi
+}
diff --git a/dev-vcs/git-lfs/git-lfs-9999.ebuild b/dev-vcs/git-lfs/git-lfs-9999.ebuild
index 98f790e69530..b1cd812be661 100644
--- a/dev-vcs/git-lfs/git-lfs-9999.ebuild
+++ b/dev-vcs/git-lfs/git-lfs-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2017-2025 Gentoo Authors
+# Copyright 2017-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -18,25 +18,17 @@ if [[ "${PV}" = 9999* ]]; then
EGIT_REPO_URI="https://${EGO_PN}"
inherit git-r3
else
- SRC_URI="https://${EGO_PN}/releases/download/v${PV}/${PN}-v${PV}.tar.gz -> ${P}.tar.gz"
- # Add the manually vendored tarball.
- # 1) Create a tar archive optimized to reproduced by other users or devs.
- # 2) Compress the archive using XZ limiting decompression memory for
- # pretty constraint systems.
- # Use something like:
- # GOMODCACHE="${PWD}"/go-mod go mod download -modcacherw
- # tar cf "${P}-deps.tar" go-mod \
- # --mtime="1970-01-01" --sort=name --owner=portage --group=portage
- # xz -k -9eT0 --memlimit-decompress=256M "${P}-deps.tar"
- SRC_URI+=" https://files.holgersson.xyz/gentoo/distfiles/golang-pkg-deps/${P}-deps.tar.xz"
+ SRC_URI="https://${EGO_PN}/releases/download/v${PV}/${PN}-vendor-v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="Apache-2.0 BSD BSD-2 BSD-4 ISC MIT"
SLOT="0"
# KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
IUSE="doc test"
BDEPEND="
+ >=dev-lang/go-1.25.0
doc? ( dev-ruby/asciidoctor )
"
RDEPEND="dev-vcs/git"
diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest
index 1af87c8401bf..1b2d8520f255 100644
--- a/media-video/pipewire/Manifest
+++ b/media-video/pipewire/Manifest
@@ -1,10 +1,3 @@
-DIST pipewire-1.4.0-docs.tar.xz 67012 BLAKE2B 5d9f7432e33c86a5172ea310742a8e50312870eabab7f4357a1234580b8258c9bb83daa73fdcc1228c61629eb8555c00b961704671e55c6ed030f6c95b043397 SHA512 33791b64a577ead6975e0a615b1e4382ecafcc6f3dd6409ebd360c533312cab5f55f92a394bc42629ec4f53f17790ddedfb26a2b35cb4aa06ea07fd30bfce3d6
-DIST pipewire-1.4.10.tar.bz2 1944899 BLAKE2B e0d71a3916863cdced316ea8d54d492a5ec5b743d049ecf10a3fded21b4a511e98a7923295a5c5990d089878e0e194cd9e53e8d2cbeb1b219cb7eee1f847e2cb SHA512 5994ff5da5227bfdd90211ebe4d5342c83480413b4973dba63350b034a010f570c2b30334e4ded2ff63227bf0b403d960d5b069646385ac012b0a02701aa76c1
-DIST pipewire-1.4.11.tar.bz2 1947498 BLAKE2B 9e540c32066b2e1930bcc2cac667913b9fb651e382d2387f654e54fae31b74e86ea4eda85823d71ab944b9ac96fd3cceb97c3772c7e2d25fe1ff7f9ff6a52c77 SHA512 a6624b9546cba5b1707acfe7f378cd1173432e3902432428437cd0b6dd4293a732afe83c25d4c16dba16dd6bc3bb0fc1b10814cd2431aa0e4493179a22d53b9d
-DIST pipewire-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch.xz 16180 BLAKE2B 96bde7ab04f6f7b6fc08f3f39d5a4202563df214440d24c24c0367ff2eb51d0d31307f9b982a8fbd9e88dd7ab1d0ad204123abe90e10ccf1479856687593a752 SHA512 fbd9644a5df81ee4bc9687f6a8b69a0bf12deef43d749c9c5cbb976f461771deeae4bd13340a6acaffae4b0187221cf734be2b3b62408a4ce79d70575a7e664b
DIST pipewire-1.6.0-docs.tar.xz 76112 BLAKE2B ce8e5307b04ecfb13ca2b7ca46385e31f50829e0270f935f437ad9b1c23d54de1709bfa03def0bb37fbf969349f2d54efe4386f59794db6d95a1c976d03b0db6 SHA512 1bc137e21c524e9f57bcc11aaac8a2fc68d46e7e38e10c387ede93deaa69ce6d93cb6b7a22128307b5aca6b58e269f42994997ae88732ef9860a83757ca809fa
-DIST pipewire-1.6.4.tar.bz2 2061919 BLAKE2B 5d708b22d1f1f8096bc439475d94448c36dce285c7fae8a2187fba8c5865feda324c03ba17bee768ba615eff46e6b2e173c5c032563f450efe1bad9e994d2b7a SHA512 31c611592580869be53b4a0e1b3836343970c765481263a83205cb61068d2b82db718d590dce51ff1a0ba86afbec04b310a5fdf148901313d0d5c90f29c66b4d
-DIST pipewire-1.6.5.tar.bz2 2061864 BLAKE2B d86cd6e810cc67d97130eca55df53aab60130001ba828497eefdd3e541b8d75c6d89d0d3b24cbbaa4d3ac8367b7ad68137e3c68a5d19a83fbdac463b82cfc166 SHA512 b98f9f9beb2a84b9cb7c7d8307a223033699c0b8f64b3b9a755290d979e3aa233c121b5c81da58a959b1c1cb6de506ccf8ee4724c418f75e2d30c3154ace2bca
-DIST pipewire-1.6.6.tar.bz2 2062360 BLAKE2B 86526b22b5632c981a7207eec7566074b1ded282290000da8fa8b0738e89e56d8e5997d50594099725726d97001dfe6e5b86b42c51be2304048c77305f95b4c5 SHA512 dc46ec9f30d4f708cd5263aa27366df1f023556126d46d96b7a6503ac342c195ad74c129fc4889c2b4f55578315aa1bf1423e56efb9aaacf1146c2aa4f0cc881
-DIST pipewire-1.6.7.tar.bz2 2062096 BLAKE2B 11b40b9da81e3f7df891a0863910945c09496682119c87d17f043b1a43cda6dc9c58ee03b4e243da63a9d62e8907a238b4ea4ddf85656920e5e0386d949c95f1 SHA512 04e10a860774de00303df2cc84fe1b5a60711ececb85ec8fe0271b016237cfbb5afd7425a0613ff9257b117221964da50f5457df5390461001b711eff3618ec0
DIST pipewire-1.6.8.tar.bz2 2062635 BLAKE2B 1b2489186f88a433e0f00b1a1e5134f35ac5e6479f186f01de38ac22bab516d64737b95c67765abf4e55ee636743f2e852a7e3f1afade1c441b9ac01760e4293 SHA512 69fdb789d992b3f4c0ff50e47e5f200869510c28edce724d2db3e6e065d04d46f7a240ea5811ac30ce1053fbb17bcb8cf4b49ac819be551c29f96aab6a9c9511
+DIST pipewire-1.6.9.tar.bz2 2065479 BLAKE2B 52f5d7b992be73a887ef08050c0b35e8e05444d951036cf5a63cdb5d05a68cf424446d1ef7f7cd03f94e3afa117baef547d926358f51c76a7fd0b72130ea3f36 SHA512 b82e156b76c47c190dd3492bcb34284e4d17e075393dde48a3402fee44b0ccb8fede4fd6d3ead75542a7d3e7596300d35abd6fb7e3fbdced9dc564f00ad0d780
diff --git a/media-video/pipewire/files/pipewire-1.4.6-no-automagic-ebur128.patch b/media-video/pipewire/files/pipewire-1.4.6-no-automagic-ebur128.patch
deleted file mode 100644
index 7b2323aae37a..000000000000
--- a/media-video/pipewire/files/pipewire-1.4.6-no-automagic-ebur128.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-https://bugs.gentoo.org/955373
-https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2420
-
-From f42786d60cf94ba76ba447c3561148ed7d6c3293 Mon Sep 17 00:00:00 2001
-Message-ID: <f42786d60cf94ba76ba447c3561148ed7d6c3293.1751075793.git.sam@gentoo.org>
-From: Sam James <sam@gentoo.org>
-Date: Sat, 28 Jun 2025 02:54:34 +0100
-Subject: [PATCH] spa: allow disabling deps via -Debur128/-Dudev
-
-With .enabled(), Meson doesn't have some magic that packagers rely on
-to explicitly disable finding a dependency if an option is off. Drop
-the unnecessary .enabled() accordingly.
----
- spa/meson.build | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/spa/meson.build b/spa/meson.build
-index 48a0000a1..637aeb8d4 100644
---- a/spa/meson.build
-+++ b/spa/meson.build
-@@ -114,7 +114,7 @@ if get_option('spa-plugins').allowed()
- cdata.set('HAVE_ALSA_COMPRESS_OFFLOAD', compress_offload_option.allowed())
-
- # common dependencies
-- libudev_dep = dependency('libudev', required: get_option('udev').enabled())
-+ libudev_dep = dependency('libudev', required: get_option('udev'))
- cdata.set('HAVE_LIBUDEV', libudev_dep.found())
- summary({'Udev': libudev_dep.found()}, bool_yn: true, section: 'Backend')
-
-@@ -124,7 +124,7 @@ if get_option('spa-plugins').allowed()
- lilv_lib = dependency('lilv-0', required: get_option('lv2'))
- summary({'lilv (for lv2 plugins)': lilv_lib.found()}, bool_yn: true, section: 'filter-graph')
-
-- ebur128_lib = dependency('libebur128', required: get_option('ebur128').enabled())
-+ ebur128_lib = dependency('libebur128', required: get_option('ebur128'))
- summary({'EBUR128': ebur128_lib.found()}, bool_yn: true, section: 'filter-graph')
-
- cdata.set('HAVE_SPA_PLUGINS', true)
diff --git a/media-video/pipewire/files/pipewire-1.4.6-no-automagic-fftw.patch b/media-video/pipewire/files/pipewire-1.4.6-no-automagic-fftw.patch
deleted file mode 100644
index 57a880bb4113..000000000000
--- a/media-video/pipewire/files/pipewire-1.4.6-no-automagic-fftw.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-https://bugs.gentoo.org/955373
-https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2421
-
-From 64b7a8990e2d6f37572d0b86c0d0847a283ba99e Mon Sep 17 00:00:00 2001
-Message-ID: <64b7a8990e2d6f37572d0b86c0d0847a283ba99e.1751075990.git.sam@gentoo.org>
-From: Sam James <sam@gentoo.org>
-Date: Sat, 28 Jun 2025 02:59:03 +0100
-Subject: [PATCH] meson: add fftw option
-
-Packagers need to have a way to control whether a dependency is used
-even if it's installed/available.
----
- meson.build | 2 +-
- meson_options.txt | 4 ++++
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 2331ac826..0ba5c57a8 100644
---- a/meson.build
-+++ b/meson.build
-@@ -321,7 +321,7 @@ cdata.set('HAVE_DBUS', dbus_dep.found())
- sdl_dep = dependency('sdl2', required : get_option('sdl2'))
- summary({'SDL2 (video examples)': sdl_dep.found()}, bool_yn: true, section: 'Misc dependencies')
- drm_dep = dependency('libdrm', required : false)
--fftw_dep = dependency('fftw3f', required : false)
-+fftw_dep = dependency('fftw3f', required : get_option('fftw'))
- summary({'fftw3f (filter-chain convolver)': fftw_dep.found()}, bool_yn: true, section: 'Misc dependencies')
- cdata.set('HAVE_FFTW', fftw_dep.found())
-
-diff --git a/meson_options.txt b/meson_options.txt
-index 74ce3fa94..cd2c839f7 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -383,3 +383,7 @@ option('ebur128',
- description: 'Enable code that depends on ebur128',
- type: 'feature',
- value: 'auto')
-+option('fftw',
-+ description: 'Enable code that depends on fftw',
-+ type: 'feature',
-+ value: 'auto')
---
-2.50.0
-
diff --git a/media-video/pipewire/files/pipewire-1.6.4-filter-graph-sync_volume-init.patch b/media-video/pipewire/files/pipewire-1.6.4-filter-graph-sync_volume-init.patch
deleted file mode 100644
index 8153ba0cc1c8..000000000000
--- a/media-video/pipewire/files/pipewire-1.6.4-filter-graph-sync_volume-init.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b09c8d79c5b868dd204b05940483b0203f1400f4 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Wed, 20 May 2026 11:32:39 +0200
-Subject: [PATCH] filter-graph: sync_volume initializes the control ports
-
-Setting the volume control ports with a volume param also initializes
-the controls. This ensures the controls are not restored to their
-default value when the graph is activated.
-
-Fixes #5192
----
- spa/plugins/filter-graph/filter-graph.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/spa/plugins/filter-graph/filter-graph.c b/spa/plugins/filter-graph/filter-graph.c
-index cd1ec7841..5df00604a 100644
---- a/spa/plugins/filter-graph/filter-graph.c
-+++ b/spa/plugins/filter-graph/filter-graph.c
-@@ -740,6 +740,9 @@ static int sync_volume(struct graph *graph, struct volume *vol)
- }
- v = v * (vol->max[n_port] - vol->min[n_port]) + vol->min[n_port];
-
-+ p->control_initialized = true;
-+ p->control_current = v;
-+
- n_hndl = SPA_MAX(1u, p->node->n_hndl);
- res += port_id_set_control_value(p, i % n_hndl, v);
- }
---
-GitLab
-
diff --git a/media-video/pipewire/metadata.xml b/media-video/pipewire/metadata.xml
index 4b0ca4bb6762..1939672f8cb3 100644
--- a/media-video/pipewire/metadata.xml
+++ b/media-video/pipewire/metadata.xml
@@ -25,8 +25,6 @@
<flag name="jack-sdk">Use PipeWire as JACK replacement</flag>
<flag name="libcamera">Enable libcamera plugin via <pkg>media-libs/libcamera</pkg>
</flag>
- <flag name="liblc3">Allow loading LC3 plugins via <pkg>media-sound/liblc3</pkg>
- </flag>
<flag name="loudness">Enable loudness normalisation according to the EBU R128 standard using <pkg>media-libs/libebur128</pkg>
</flag>
<flag name="lv2">Allow loading LV2 plugins via <pkg>media-libs/lv2</pkg>
diff --git a/media-video/pipewire/pipewire-1.4.10.ebuild b/media-video/pipewire/pipewire-1.4.10.ebuild
deleted file mode 100644
index 39d0c76f231a..000000000000
--- a/media-video/pipewire/pipewire-1.4.10.ebuild
+++ /dev/null
@@ -1,558 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# 1. Please regularly check (even at the point of bumping) Fedora's packaging
-# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
-#
-# 2. Upstream also sometimes amend release notes for the previous release to mention
-# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
-#
-# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
-# continue to move quickly. It's not uncommon for fixes to be made shortly
-# after releases.
-
-# TODO: Maybe get upstream to produce `meson dist` tarballs:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
-#
-# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
-# Set to 1 if prebuilt, 0 if not
-# (the construct below is to allow overriding from env for script)
-: ${PIPEWIRE_DOCS_PREBUILT:=1}
-
-PIPEWIRE_DOCS_PREBUILT_DEV=sam
-PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0"
-# Default to generating docs (inc. man pages) if no prebuilt; overridden later
-PIPEWIRE_DOCS_USEFLAG="+man"
-PYTHON_COMPAT=( python3_{13..14} )
-inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
-
-if [[ ${PV} == 9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- inherit git-r3
-elif [[ ${PV} == *.9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- EGIT_BRANCH="${PV%.*}"
- inherit git-r3
-else
- if [[ ${PV} == *_p* ]] ; then
- MY_COMMIT=""
- SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
- S="${WORKDIR}"/${PN}-${MY_COMMIT}
- else
- SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
- fi
-
- if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- SRC_URI+=" !man? ( https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz )"
- PIPEWIRE_DOCS_USEFLAG="man"
- fi
-
- KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
-fi
-
-DESCRIPTION="Multimedia processing graphs"
-HOMEPAGE="https://pipewire.org/"
-SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch.xz"
-
-LICENSE="MIT LGPL-2.1+ GPL-2"
-# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
-SLOT="0/0.4"
-IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra ffmpeg fftw flatpak gstreamer gsettings"
-IUSE+=" ieee1394 jack-client jack-sdk libcamera liblc3 loudness lv2 modemmanager pipewire-alsa readline roc selinux"
-IUSE+=" pulseaudio sound-server ssl system-service systemd test v4l X zeroconf"
-
-# Once replacing system JACK libraries is possible, it's likely that
-# jack-client IUSE will need blocking to avoid users accidentally
-# configuring their systems to send PW sink output to the emulated
-# JACK's sink - doing so is likely to yield no audio, cause a CPU
-# cycles consuming loop (and may even cause GUI crashes)!
-
-# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
-# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
-# which provides adequate guarantee that alsa-lib will be able to provide audio services.
-# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
-# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
-# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
-# TODO: should we add "pulseaudio? ( sound-server)"? is libpipewire-module-pulse-tunnel.so useful without sound-server?
-REQUIRED_USE="
- ffmpeg? ( extra )
- bluetooth? ( dbus )
- jack-sdk? ( !jack-client )
- modemmanager? ( bluetooth )
- system-service? ( systemd )
- !sound-server? ( !pipewire-alsa )
- jack-client? ( dbus )
-"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- >=dev-build/meson-0.59
- virtual/pkgconfig
- dbus? ( >=dev-util/gdbus-codegen-2.80.5-r1 )
- doc? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- media-gfx/graphviz
- )
- man? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- )
-"
-# * While udev could technically be optional, it's needed for a number of options,
-# and not really worth it, bug #877769.
-#
-# * Supports both new webrtc-audio-processing:2 and legacy webrtc-audio-processing:1.
-#
-# * Older Doxygen (<1.9.8) may work but inferior output is created:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
-# - https://github.com/doxygen/doxygen/issues/9254
-RDEPEND="
- acct-group/audio
- acct-group/pipewire
- media-libs/alsa-lib[${MULTILIB_USEDEP}]
- sys-libs/ncurses:=[unicode(+)]
- virtual/libintl[${MULTILIB_USEDEP}]
- virtual/libudev[${MULTILIB_USEDEP}]
- bluetooth? (
- dev-libs/glib
- media-libs/fdk-aac
- media-libs/libldac
- media-libs/libfreeaptx
- media-libs/opus
- media-libs/sbc
- >=net-wireless/bluez-4.101:=
- virtual/libusb:1
- )
- elogind? ( sys-auth/elogind )
- dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- echo-cancel? (
- media-libs/webrtc-audio-processing:=
- || (
- >=media-libs/webrtc-audio-processing-2.0:2
- >=media-libs/webrtc-audio-processing-1.2:1
- )
- )
- extra? ( >=media-libs/libsndfile-1.0.20 )
- ffmpeg? ( media-video/ffmpeg:= )
- fftw? ( sci-libs/fftw:3.0=[${MULTILIB_USEDEP}] )
- flatpak? ( dev-libs/glib )
- gstreamer? (
- >=dev-libs/glib-2.32.0:2
- >=media-libs/gstreamer-1.10.0:1.0
- media-libs/gst-plugins-base:1.0
- )
- gsettings? ( >=dev-libs/glib-2.26.0:2 )
- ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
- jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
- jack-sdk? (
- !media-sound/jack-audio-connection-kit
- !media-sound/jack2
- )
- libcamera? ( media-libs/libcamera:= )
- liblc3? ( media-sound/liblc3 )
- loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
- lv2? ( media-libs/lilv )
- modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? ( >=media-libs/alsa-lib-1.2.10[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-libs/libpulse )
- sound-server? ( !media-sound/pulseaudio-daemon )
- roc? ( >=media-libs/roc-toolkit-0.4.0:= )
- readline? ( sys-libs/readline:= )
- selinux? ( sys-libs/libselinux )
- ssl? ( dev-libs/openssl:= )
- systemd? ( sys-apps/systemd )
- system-service? ( acct-user/pipewire )
- v4l? ( media-libs/libv4l )
- X? (
- media-libs/libcanberra
- x11-libs/libX11
- x11-libs/libXfixes
- )
- zeroconf? ( net-dns/avahi )
-"
-
-DEPEND="${RDEPEND}"
-
-PDEPEND=">=media-video/wireplumber-0.5.2"
-
-# Present RDEPEND that are currently always disabled due to the PW
-# code using them being required to be disabled by Gentoo guidelines
-# (i.e. developer binaries not meant for users) and unready code
-# media-libs/libsdl2
-# >=media-libs/vulkan-loader-1.1.69
-#
-# Ditto for DEPEND
-# >=dev-util/vulkan-headers-1.1.69
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
- "${FILESDIR}"/${PN}-1.4.6-no-automagic-ebur128.patch
- "${FILESDIR}"/${PN}-1.4.6-no-automagic-fftw.patch
- "${WORKDIR}"/${PN}-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch
-)
-
-pkg_setup() {
- if use doc || use man ; then
- python-any-r1_pkg_setup
- fi
-}
-
-src_prepare() {
- default
-
- # Used for upstream backports
- if [[ ${PV} != *9999 && -d "${FILESDIR}"/${PV} ]] ; then
- eapply "${FILESDIR}"/${PV}
- fi
-}
-
-multilib_src_configure() {
- local logind=disabled
- if multilib_is_native_abi ; then
- if use systemd ; then
- logind=enabled
- elif use elogind ; then
- logind=enabled
- fi
- fi
-
- local emesonargs=(
- -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
-
- $(meson_feature dbus)
- $(meson_native_use_feature zeroconf avahi)
- $(meson_native_use_feature doc docs)
- $(meson_native_use_feature man)
- $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone
- $(meson_feature test tests)
- -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
- $(meson_feature ieee1394 libffado)
- $(meson_native_use_feature gstreamer)
- $(meson_native_use_feature gstreamer gstreamer-device-provider)
- $(meson_native_use_feature gsettings)
- $(meson_native_use_feature systemd)
- -Dlogind=${logind}
- -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind')
-
- $(meson_native_use_feature system-service systemd-system-service)
- -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
- -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
-
- $(meson_native_use_feature systemd systemd-user-service)
- $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph
- $(meson_feature selinux)
- -Dspa-plugins=enabled
- -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible)
- -Dcompress-offload=disabled # TODO: tinycompress unpackaged
- -Daudiomixer=enabled # Matches upstream
- -Daudioconvert=enabled # Matches upstream
- $(meson_native_use_feature bluetooth bluez5)
- $(meson_native_use_feature bluetooth bluez5-backend-hsp-native)
- $(meson_native_use_feature bluetooth bluez5-backend-hfp-native)
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
- $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
- $(meson_native_use_feature bluetooth bluez5-backend-ofono)
- $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd)
- $(meson_native_use_feature bluetooth bluez5-codec-aac)
- $(meson_native_use_feature bluetooth bluez5-codec-aptx)
- $(meson_native_use_feature bluetooth bluez5-codec-ldac)
- $(meson_native_use_feature bluetooth bluez5-codec-g722)
- $(meson_native_use_feature bluetooth opus)
- $(meson_native_use_feature bluetooth bluez5-codec-opus)
- $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
- $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- -Dcontrol=enabled # Matches upstream
- -Daudiotestsrc=enabled # Matches upstream
- -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
- $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
- $(meson_native_use_feature flatpak)
- -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph
- $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client
- $(meson_use jack-sdk jack-devel)
- $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '')
- -Dsupport=enabled # Miscellaneous/common plugins, such as null sink
- -Devl=disabled # Matches upstream
- -Dtest=disabled # fakesink and fakesource plugins
- -Dbluez5-codec-lc3plus=disabled # unpackaged
- $(meson_native_use_feature liblc3 bluez5-codec-lc3)
- $(meson_feature loudness ebur128)
- $(meson_feature fftw)
- $(meson_native_use_feature lv2)
- $(meson_native_use_feature v4l v4l2)
- $(meson_native_use_feature libcamera)
- $(meson_native_use_feature roc)
- $(meson_native_use_feature readline)
- $(meson_native_use_feature ssl raop)
- -Dvideoconvert=enabled # Matches upstream
- -Dvideotestsrc=enabled # Matches upstream
- -Dvolume=enabled # Matches upstream
- -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream)
- $(meson_native_use_feature extra pw-cat)
- -Dudev=enabled
- -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
- -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install)
- -Dlibmysofa=disabled # libmysofa is unpackaged
- $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat)
- -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build
-
- # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
- # just became stable, with 5.15 being the previous LTS. Many people
- # are still on it.
- -Dpam-defaults-install=true
-
- # Just for bell sounds in X11 right now.
- $(meson_native_use_feature X x11)
- $(meson_native_use_feature X x11-xfixes)
- $(meson_native_use_feature X libcanberra)
-
- $(meson_native_use_feature pulseaudio libpulse)
-
- # TODO
- -Dsnap=disabled
- )
-
- # This installs the schema file for pulseaudio-daemon, iff we are replacing
- # the official sound-server
- if use !sound-server; then
- emesonargs+=( '-Dgsettings-pulse-schema=disabled' )
- else
- emesonargs+=(
- $(meson_native_use_feature gsettings gsettings-pulse-schema)
- )
- fi
-
- meson_src_configure
-}
-
-multilib_src_test() {
- meson_src_test --timeout-multiplier 10
-}
-
-multilib_src_install() {
- # Our custom DOCS do not exist in multilib source directory
- DOCS= meson_src_install
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- doman "${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
- fi
-
- if use pipewire-alsa; then
- dodir /etc/alsa/conf.d
-
- # Install pipewire conf loader hook
- insinto /usr/share/alsa/alsa.conf.d
- doins "${FILESDIR}"/99-pipewire-default-hook.conf
- eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
-
- # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222
- # And the current dosym8 -r implementation is likely affected by the same issue, too.
- dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf
- dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
- fi
-
- exeinto /etc/user/init.d
- newexe "${FILESDIR}"/pipewire.initd pipewire
- # Enable required wireplumber alsa and bluez monitors
- if use sound-server; then
- newexe "${FILESDIR}"/pipewire-pulse.initd pipewire-pulse
-
- # Install sound-server enabler for wireplumber 0.5.0+ conf syntax
- insinto /etc/wireplumber/wireplumber.conf.d
- doins "${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf
- fi
-
- if use system-service; then
- newtmpfiles - pipewire.conf <<-EOF || die
- d /run/pipewire 0755 pipewire pipewire - -
- EOF
- fi
-
- if ! use systemd; then
- insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
-
- exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r4 gentoo-pipewire-launcher
-
- doman "${FILESDIR}"/gentoo-pipewire-launcher.1
-
- # Disable pipewire-pulse if sound-server is disabled.
- if ! use sound-server ; then
- sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
- fi
-
- eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
- fi
-}
-
-pkg_postrm() {
- udev_reload
-}
-
-pkg_preinst() {
- HAD_SOUND_SERVER=0
- HAD_SYSTEM_SERVICE=0
-
- if has_version "media-video/pipewire[sound-server(-)]" ; then
- HAD_SOUND_SERVER=1
- fi
-
- if has_version "media-video/pipewire[system-service(-)]" ; then
- HAD_SYSTEM_SERVICE=1
- fi
-}
-
-pkg_postinst() {
- udev_reload
-
- use system-service && tmpfiles_process pipewire.conf
-
- local ver
- for ver in ${REPLACING_VERSIONS} ; do
- if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
- # https://bugs.gentoo.org/908490
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
- ewarn "Please restart KWin/Mutter after upgrading PipeWire."
- ewarn "Screencasting may not work until you do."
- fi
-
- if ver_test ${ver} -le 0.3.66-r1 ; then
- elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
- elog "and limits needed to function smoothly:"
- elog
- elog "1. Please make sure your user is in the 'pipewire' group for"
- elog "the best experience with realtime scheduling (PAM limits behavior)!"
- elog "You can add your account with:"
- elog " usermod -aG pipewire <youruser>"
- elog
- elog "2. For the best experience with fast user switching, it is recommended"
- elog "that you remove your user from the 'audio' group unless you rely on the"
- elog "audio group for device access control or ACLs.:"
- elog " usermod -rG audio <youruser>"
- elog
-
- if ! use jack-sdk ; then
- elog
- elog "JACK emulation is incomplete and not all programs will work. PipeWire's"
- elog "alternative libraries have been installed to a non-default location."
- elog "To use them, put pw-jack <application> before every JACK application."
- elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack"
- elog "provider is still needed to compile the JACK applications themselves."
- elog
- fi
-
- if use systemd ; then
- ewarn
- ewarn "PipeWire daemon startup has been moved to a launcher script!"
- ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no"
- ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all"
- ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)"
- ewarn
- ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from"
- ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
- ewarn "advised that a D-Bus user session is set up before starting the script."
- ewarn
- fi
-
- if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
- elog
- elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
- elog "are recommended to edit pulseaudio client configuration files:"
- elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
- elog "if it exists, and disable autospawning of the original daemon by setting:"
- elog
- elog " autospawn = no"
- elog
- elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!"
- elog
- elog "Alternatively, if replacing PulseAudio daemon is not desired, edit"
- elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant"
- elog "command:"
- elog
- elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &"
- elog
- fi
-
- if has_version 'net-misc/ofono' ; then
- ewarn "Native backend has become default. Please disable oFono via:"
- if systemd_is_booted ; then
- ewarn "systemctl disable ofono"
- else
- ewarn "rc-update delete ofono"
- fi
- fi
- fi
- done
-
- if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- # TODO: We could drop most of this if we set up systemd presets?
- # They're worth looking into because right now, the out-of-the-box experience
- # is automatic on OpenRC, while it needs manual intervention on systemd.
- if use sound-server && use systemd ; then
- elog
- elog "When switching from PulseAudio, you may need to disable PulseAudio:"
- elog
- elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
- elog
- elog "To use PipeWire, the user units must be manually enabled"
- elog "by running this command as each user you use for desktop activities:"
- elog
- elog " systemctl --user enable pipewire.socket pipewire-pulse.socket"
- elog
- elog "A reboot is recommended to avoid interferences from still running"
- elog "PulseAudio daemon."
- elog
- elog "Both new users and those upgrading need to enable WirePlumber"
- elog "for relevant users:"
- elog
- elog " systemctl --user disable pipewire-media-session.service"
- elog " systemctl --user --force enable wireplumber.service"
- elog
- elog "Root user may replace --user with --global to change system default"
- elog "configuration for all of the above commands."
- elog
- fi
-
- if ! use sound-server ; then
- ewarn
- ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
- ewarn "your sound, please enable it. See the wiki at"
- ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
- ewarn "for more details."
- ewarn
- fi
- fi
-
- if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- ewarn
- ewarn "You have enabled the system-service USE flag, which installs"
- ewarn "the system-wide systemd units that enable PipeWire to run as a system"
- ewarn "service. This is more than likely NOT what you want. You are strongly"
- ewarn "advised not to enable this mode and instead stick with systemd user"
- ewarn "units. The default configuration files will likely not work out of the"
- ewarn "box, and you are on your own with configuration."
- ewarn
- fi
-
- elog "For latest tips and tricks, troubleshooting information, and documentation"
- elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire"
- elog
-
- optfeature_header "The following can be installed for optional runtime features:"
- optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
-
- if use sound-server && ! use pipewire-alsa; then
- optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
- fi
-}
diff --git a/media-video/pipewire/pipewire-1.4.11.ebuild b/media-video/pipewire/pipewire-1.4.11.ebuild
deleted file mode 100644
index 9be8abcf0a1d..000000000000
--- a/media-video/pipewire/pipewire-1.4.11.ebuild
+++ /dev/null
@@ -1,558 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# 1. Please regularly check (even at the point of bumping) Fedora's packaging
-# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
-#
-# 2. Upstream also sometimes amend release notes for the previous release to mention
-# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
-#
-# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
-# continue to move quickly. It's not uncommon for fixes to be made shortly
-# after releases.
-
-# TODO: Maybe get upstream to produce `meson dist` tarballs:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
-#
-# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
-# Set to 1 if prebuilt, 0 if not
-# (the construct below is to allow overriding from env for script)
-: ${PIPEWIRE_DOCS_PREBUILT:=1}
-
-PIPEWIRE_DOCS_PREBUILT_DEV=sam
-PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0"
-# Default to generating docs (inc. man pages) if no prebuilt; overridden later
-PIPEWIRE_DOCS_USEFLAG="+man"
-PYTHON_COMPAT=( python3_{13..14} )
-inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
-
-if [[ ${PV} == 9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- inherit git-r3
-elif [[ ${PV} == *.9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- EGIT_BRANCH="${PV%.*}"
- inherit git-r3
-else
- if [[ ${PV} == *_p* ]] ; then
- MY_COMMIT=""
- SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
- S="${WORKDIR}"/${PN}-${MY_COMMIT}
- else
- SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
- fi
-
- if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- SRC_URI+=" !man? ( https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz )"
- PIPEWIRE_DOCS_USEFLAG="man"
- fi
-
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
-fi
-
-DESCRIPTION="Multimedia processing graphs"
-HOMEPAGE="https://pipewire.org/"
-SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch.xz"
-
-LICENSE="MIT LGPL-2.1+ GPL-2"
-# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
-SLOT="0/0.4"
-IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra ffmpeg fftw flatpak gstreamer gsettings"
-IUSE+=" ieee1394 jack-client jack-sdk libcamera liblc3 loudness lv2 modemmanager pipewire-alsa readline roc selinux"
-IUSE+=" pulseaudio sound-server ssl system-service systemd test v4l X zeroconf"
-
-# Once replacing system JACK libraries is possible, it's likely that
-# jack-client IUSE will need blocking to avoid users accidentally
-# configuring their systems to send PW sink output to the emulated
-# JACK's sink - doing so is likely to yield no audio, cause a CPU
-# cycles consuming loop (and may even cause GUI crashes)!
-
-# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
-# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
-# which provides adequate guarantee that alsa-lib will be able to provide audio services.
-# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
-# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
-# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
-# TODO: should we add "pulseaudio? ( sound-server)"? is libpipewire-module-pulse-tunnel.so useful without sound-server?
-REQUIRED_USE="
- ffmpeg? ( extra )
- bluetooth? ( dbus )
- jack-sdk? ( !jack-client )
- modemmanager? ( bluetooth )
- system-service? ( systemd )
- !sound-server? ( !pipewire-alsa )
- jack-client? ( dbus )
-"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- >=dev-build/meson-0.59
- virtual/pkgconfig
- dbus? ( >=dev-util/gdbus-codegen-2.80.5-r1 )
- doc? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- media-gfx/graphviz
- )
- man? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- )
-"
-# * While udev could technically be optional, it's needed for a number of options,
-# and not really worth it, bug #877769.
-#
-# * Supports both new webrtc-audio-processing:2 and legacy webrtc-audio-processing:1.
-#
-# * Older Doxygen (<1.9.8) may work but inferior output is created:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
-# - https://github.com/doxygen/doxygen/issues/9254
-RDEPEND="
- acct-group/audio
- acct-group/pipewire
- media-libs/alsa-lib[${MULTILIB_USEDEP}]
- sys-libs/ncurses:=[unicode(+)]
- virtual/libintl[${MULTILIB_USEDEP}]
- virtual/libudev[${MULTILIB_USEDEP}]
- bluetooth? (
- dev-libs/glib
- media-libs/fdk-aac
- media-libs/libldac
- media-libs/libfreeaptx
- media-libs/opus
- media-libs/sbc
- >=net-wireless/bluez-4.101:=
- virtual/libusb:1
- )
- elogind? ( sys-auth/elogind )
- dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- echo-cancel? (
- media-libs/webrtc-audio-processing:=
- || (
- >=media-libs/webrtc-audio-processing-2.0:2
- >=media-libs/webrtc-audio-processing-1.2:1
- )
- )
- extra? ( >=media-libs/libsndfile-1.0.20 )
- ffmpeg? ( media-video/ffmpeg:= )
- fftw? ( sci-libs/fftw:3.0=[${MULTILIB_USEDEP}] )
- flatpak? ( dev-libs/glib )
- gstreamer? (
- >=dev-libs/glib-2.32.0:2
- >=media-libs/gstreamer-1.10.0:1.0
- media-libs/gst-plugins-base:1.0
- )
- gsettings? ( >=dev-libs/glib-2.26.0:2 )
- ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
- jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
- jack-sdk? (
- !media-sound/jack-audio-connection-kit
- !media-sound/jack2
- )
- libcamera? ( media-libs/libcamera:= )
- liblc3? ( media-sound/liblc3 )
- loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
- lv2? ( media-libs/lilv )
- modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? ( >=media-libs/alsa-lib-1.2.10[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-libs/libpulse )
- sound-server? ( !media-sound/pulseaudio-daemon )
- roc? ( >=media-libs/roc-toolkit-0.4.0:= )
- readline? ( sys-libs/readline:= )
- selinux? ( sys-libs/libselinux )
- ssl? ( dev-libs/openssl:= )
- systemd? ( sys-apps/systemd )
- system-service? ( acct-user/pipewire )
- v4l? ( media-libs/libv4l )
- X? (
- media-libs/libcanberra
- x11-libs/libX11
- x11-libs/libXfixes
- )
- zeroconf? ( net-dns/avahi )
-"
-
-DEPEND="${RDEPEND}"
-
-PDEPEND=">=media-video/wireplumber-0.5.2"
-
-# Present RDEPEND that are currently always disabled due to the PW
-# code using them being required to be disabled by Gentoo guidelines
-# (i.e. developer binaries not meant for users) and unready code
-# media-libs/libsdl2
-# >=media-libs/vulkan-loader-1.1.69
-#
-# Ditto for DEPEND
-# >=dev-util/vulkan-headers-1.1.69
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
- "${FILESDIR}"/${PN}-1.4.6-no-automagic-ebur128.patch
- "${FILESDIR}"/${PN}-1.4.6-no-automagic-fftw.patch
- "${WORKDIR}"/${PN}-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch
-)
-
-pkg_setup() {
- if use doc || use man ; then
- python-any-r1_pkg_setup
- fi
-}
-
-src_prepare() {
- default
-
- # Used for upstream backports
- if [[ ${PV} != *9999 && -d "${FILESDIR}"/${PV} ]] ; then
- eapply "${FILESDIR}"/${PV}
- fi
-}
-
-multilib_src_configure() {
- local logind=disabled
- if multilib_is_native_abi ; then
- if use systemd ; then
- logind=enabled
- elif use elogind ; then
- logind=enabled
- fi
- fi
-
- local emesonargs=(
- -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
-
- $(meson_feature dbus)
- $(meson_native_use_feature zeroconf avahi)
- $(meson_native_use_feature doc docs)
- $(meson_native_use_feature man)
- $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone
- $(meson_feature test tests)
- -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
- $(meson_feature ieee1394 libffado)
- $(meson_native_use_feature gstreamer)
- $(meson_native_use_feature gstreamer gstreamer-device-provider)
- $(meson_native_use_feature gsettings)
- $(meson_native_use_feature systemd)
- -Dlogind=${logind}
- -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind')
-
- $(meson_native_use_feature system-service systemd-system-service)
- -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
- -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
-
- $(meson_native_use_feature systemd systemd-user-service)
- $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph
- $(meson_feature selinux)
- -Dspa-plugins=enabled
- -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible)
- -Dcompress-offload=disabled # TODO: tinycompress unpackaged
- -Daudiomixer=enabled # Matches upstream
- -Daudioconvert=enabled # Matches upstream
- $(meson_native_use_feature bluetooth bluez5)
- $(meson_native_use_feature bluetooth bluez5-backend-hsp-native)
- $(meson_native_use_feature bluetooth bluez5-backend-hfp-native)
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
- $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
- $(meson_native_use_feature bluetooth bluez5-backend-ofono)
- $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd)
- $(meson_native_use_feature bluetooth bluez5-codec-aac)
- $(meson_native_use_feature bluetooth bluez5-codec-aptx)
- $(meson_native_use_feature bluetooth bluez5-codec-ldac)
- $(meson_native_use_feature bluetooth bluez5-codec-g722)
- $(meson_native_use_feature bluetooth opus)
- $(meson_native_use_feature bluetooth bluez5-codec-opus)
- $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
- $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- -Dcontrol=enabled # Matches upstream
- -Daudiotestsrc=enabled # Matches upstream
- -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
- $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
- $(meson_native_use_feature flatpak)
- -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph
- $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client
- $(meson_use jack-sdk jack-devel)
- $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '')
- -Dsupport=enabled # Miscellaneous/common plugins, such as null sink
- -Devl=disabled # Matches upstream
- -Dtest=disabled # fakesink and fakesource plugins
- -Dbluez5-codec-lc3plus=disabled # unpackaged
- $(meson_native_use_feature liblc3 bluez5-codec-lc3)
- $(meson_feature loudness ebur128)
- $(meson_feature fftw)
- $(meson_native_use_feature lv2)
- $(meson_native_use_feature v4l v4l2)
- $(meson_native_use_feature libcamera)
- $(meson_native_use_feature roc)
- $(meson_native_use_feature readline)
- $(meson_native_use_feature ssl raop)
- -Dvideoconvert=enabled # Matches upstream
- -Dvideotestsrc=enabled # Matches upstream
- -Dvolume=enabled # Matches upstream
- -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream)
- $(meson_native_use_feature extra pw-cat)
- -Dudev=enabled
- -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
- -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install)
- -Dlibmysofa=disabled # libmysofa is unpackaged
- $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat)
- -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build
-
- # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
- # just became stable, with 5.15 being the previous LTS. Many people
- # are still on it.
- -Dpam-defaults-install=true
-
- # Just for bell sounds in X11 right now.
- $(meson_native_use_feature X x11)
- $(meson_native_use_feature X x11-xfixes)
- $(meson_native_use_feature X libcanberra)
-
- $(meson_native_use_feature pulseaudio libpulse)
-
- # TODO
- -Dsnap=disabled
- )
-
- # This installs the schema file for pulseaudio-daemon, iff we are replacing
- # the official sound-server
- if use !sound-server; then
- emesonargs+=( '-Dgsettings-pulse-schema=disabled' )
- else
- emesonargs+=(
- $(meson_native_use_feature gsettings gsettings-pulse-schema)
- )
- fi
-
- meson_src_configure
-}
-
-multilib_src_test() {
- meson_src_test --timeout-multiplier 10
-}
-
-multilib_src_install() {
- # Our custom DOCS do not exist in multilib source directory
- DOCS= meson_src_install
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- doman "${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
- fi
-
- if use pipewire-alsa; then
- dodir /etc/alsa/conf.d
-
- # Install pipewire conf loader hook
- insinto /usr/share/alsa/alsa.conf.d
- doins "${FILESDIR}"/99-pipewire-default-hook.conf
- eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
-
- # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222
- # And the current dosym8 -r implementation is likely affected by the same issue, too.
- dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf
- dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
- fi
-
- exeinto /etc/user/init.d
- newexe "${FILESDIR}"/pipewire.initd pipewire
- # Enable required wireplumber alsa and bluez monitors
- if use sound-server; then
- newexe "${FILESDIR}"/pipewire-pulse.initd pipewire-pulse
-
- # Install sound-server enabler for wireplumber 0.5.0+ conf syntax
- insinto /etc/wireplumber/wireplumber.conf.d
- doins "${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf
- fi
-
- if use system-service; then
- newtmpfiles - pipewire.conf <<-EOF || die
- d /run/pipewire 0755 pipewire pipewire - -
- EOF
- fi
-
- if ! use systemd; then
- insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
-
- exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r4 gentoo-pipewire-launcher
-
- doman "${FILESDIR}"/gentoo-pipewire-launcher.1
-
- # Disable pipewire-pulse if sound-server is disabled.
- if ! use sound-server ; then
- sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
- fi
-
- eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
- fi
-}
-
-pkg_postrm() {
- udev_reload
-}
-
-pkg_preinst() {
- HAD_SOUND_SERVER=0
- HAD_SYSTEM_SERVICE=0
-
- if has_version "media-video/pipewire[sound-server(-)]" ; then
- HAD_SOUND_SERVER=1
- fi
-
- if has_version "media-video/pipewire[system-service(-)]" ; then
- HAD_SYSTEM_SERVICE=1
- fi
-}
-
-pkg_postinst() {
- udev_reload
-
- use system-service && tmpfiles_process pipewire.conf
-
- local ver
- for ver in ${REPLACING_VERSIONS} ; do
- if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
- # https://bugs.gentoo.org/908490
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
- ewarn "Please restart KWin/Mutter after upgrading PipeWire."
- ewarn "Screencasting may not work until you do."
- fi
-
- if ver_test ${ver} -le 0.3.66-r1 ; then
- elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
- elog "and limits needed to function smoothly:"
- elog
- elog "1. Please make sure your user is in the 'pipewire' group for"
- elog "the best experience with realtime scheduling (PAM limits behavior)!"
- elog "You can add your account with:"
- elog " usermod -aG pipewire <youruser>"
- elog
- elog "2. For the best experience with fast user switching, it is recommended"
- elog "that you remove your user from the 'audio' group unless you rely on the"
- elog "audio group for device access control or ACLs.:"
- elog " usermod -rG audio <youruser>"
- elog
-
- if ! use jack-sdk ; then
- elog
- elog "JACK emulation is incomplete and not all programs will work. PipeWire's"
- elog "alternative libraries have been installed to a non-default location."
- elog "To use them, put pw-jack <application> before every JACK application."
- elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack"
- elog "provider is still needed to compile the JACK applications themselves."
- elog
- fi
-
- if use systemd ; then
- ewarn
- ewarn "PipeWire daemon startup has been moved to a launcher script!"
- ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no"
- ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all"
- ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)"
- ewarn
- ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from"
- ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
- ewarn "advised that a D-Bus user session is set up before starting the script."
- ewarn
- fi
-
- if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
- elog
- elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
- elog "are recommended to edit pulseaudio client configuration files:"
- elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
- elog "if it exists, and disable autospawning of the original daemon by setting:"
- elog
- elog " autospawn = no"
- elog
- elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!"
- elog
- elog "Alternatively, if replacing PulseAudio daemon is not desired, edit"
- elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant"
- elog "command:"
- elog
- elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &"
- elog
- fi
-
- if has_version 'net-misc/ofono' ; then
- ewarn "Native backend has become default. Please disable oFono via:"
- if systemd_is_booted ; then
- ewarn "systemctl disable ofono"
- else
- ewarn "rc-update delete ofono"
- fi
- fi
- fi
- done
-
- if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- # TODO: We could drop most of this if we set up systemd presets?
- # They're worth looking into because right now, the out-of-the-box experience
- # is automatic on OpenRC, while it needs manual intervention on systemd.
- if use sound-server && use systemd ; then
- elog
- elog "When switching from PulseAudio, you may need to disable PulseAudio:"
- elog
- elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
- elog
- elog "To use PipeWire, the user units must be manually enabled"
- elog "by running this command as each user you use for desktop activities:"
- elog
- elog " systemctl --user enable pipewire.socket pipewire-pulse.socket"
- elog
- elog "A reboot is recommended to avoid interferences from still running"
- elog "PulseAudio daemon."
- elog
- elog "Both new users and those upgrading need to enable WirePlumber"
- elog "for relevant users:"
- elog
- elog " systemctl --user disable pipewire-media-session.service"
- elog " systemctl --user --force enable wireplumber.service"
- elog
- elog "Root user may replace --user with --global to change system default"
- elog "configuration for all of the above commands."
- elog
- fi
-
- if ! use sound-server ; then
- ewarn
- ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
- ewarn "your sound, please enable it. See the wiki at"
- ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
- ewarn "for more details."
- ewarn
- fi
- fi
-
- if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- ewarn
- ewarn "You have enabled the system-service USE flag, which installs"
- ewarn "the system-wide systemd units that enable PipeWire to run as a system"
- ewarn "service. This is more than likely NOT what you want. You are strongly"
- ewarn "advised not to enable this mode and instead stick with systemd user"
- ewarn "units. The default configuration files will likely not work out of the"
- ewarn "box, and you are on your own with configuration."
- ewarn
- fi
-
- elog "For latest tips and tricks, troubleshooting information, and documentation"
- elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire"
- elog
-
- optfeature_header "The following can be installed for optional runtime features:"
- optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
-
- if use sound-server && ! use pipewire-alsa; then
- optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
- fi
-}
diff --git a/media-video/pipewire/pipewire-1.4.9999.ebuild b/media-video/pipewire/pipewire-1.4.9999.ebuild
deleted file mode 100644
index 8a111594123a..000000000000
--- a/media-video/pipewire/pipewire-1.4.9999.ebuild
+++ /dev/null
@@ -1,558 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# 1. Please regularly check (even at the point of bumping) Fedora's packaging
-# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
-#
-# 2. Upstream also sometimes amend release notes for the previous release to mention
-# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
-#
-# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
-# continue to move quickly. It's not uncommon for fixes to be made shortly
-# after releases.
-
-# TODO: Maybe get upstream to produce `meson dist` tarballs:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
-#
-# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
-# Set to 1 if prebuilt, 0 if not
-# (the construct below is to allow overriding from env for script)
-: ${PIPEWIRE_DOCS_PREBUILT:=1}
-
-PIPEWIRE_DOCS_PREBUILT_DEV=sam
-PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0"
-# Default to generating docs (inc. man pages) if no prebuilt; overridden later
-PIPEWIRE_DOCS_USEFLAG="+man"
-PYTHON_COMPAT=( python3_{13..14} )
-inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
-
-if [[ ${PV} == 9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- inherit git-r3
-elif [[ ${PV} == *.9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- EGIT_BRANCH="${PV%.*}"
- inherit git-r3
-else
- if [[ ${PV} == *_p* ]] ; then
- MY_COMMIT=""
- SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
- S="${WORKDIR}"/${PN}-${MY_COMMIT}
- else
- SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
- fi
-
- if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- SRC_URI+=" !man? ( https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz )"
- PIPEWIRE_DOCS_USEFLAG="man"
- fi
-
- KEYWORDS="~amd64 ~arm64 ~loong ~mips"
-fi
-
-DESCRIPTION="Multimedia processing graphs"
-HOMEPAGE="https://pipewire.org/"
-SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch.xz"
-
-LICENSE="MIT LGPL-2.1+ GPL-2"
-# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
-SLOT="0/0.4"
-IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra ffmpeg fftw flatpak gstreamer gsettings"
-IUSE+=" ieee1394 jack-client jack-sdk libcamera liblc3 loudness lv2 modemmanager pipewire-alsa readline roc selinux"
-IUSE+=" pulseaudio sound-server ssl system-service systemd test v4l X zeroconf"
-
-# Once replacing system JACK libraries is possible, it's likely that
-# jack-client IUSE will need blocking to avoid users accidentally
-# configuring their systems to send PW sink output to the emulated
-# JACK's sink - doing so is likely to yield no audio, cause a CPU
-# cycles consuming loop (and may even cause GUI crashes)!
-
-# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
-# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
-# which provides adequate guarantee that alsa-lib will be able to provide audio services.
-# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
-# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
-# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
-# TODO: should we add "pulseaudio? ( sound-server)"? is libpipewire-module-pulse-tunnel.so useful without sound-server?
-REQUIRED_USE="
- ffmpeg? ( extra )
- bluetooth? ( dbus )
- jack-sdk? ( !jack-client )
- modemmanager? ( bluetooth )
- system-service? ( systemd )
- !sound-server? ( !pipewire-alsa )
- jack-client? ( dbus )
-"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- >=dev-build/meson-0.59
- virtual/pkgconfig
- dbus? ( >=dev-util/gdbus-codegen-2.80.5-r1 )
- doc? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- media-gfx/graphviz
- )
- man? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- )
-"
-# * While udev could technically be optional, it's needed for a number of options,
-# and not really worth it, bug #877769.
-#
-# * Supports both new webrtc-audio-processing:2 and legacy webrtc-audio-processing:1.
-#
-# * Older Doxygen (<1.9.8) may work but inferior output is created:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
-# - https://github.com/doxygen/doxygen/issues/9254
-RDEPEND="
- acct-group/audio
- acct-group/pipewire
- media-libs/alsa-lib[${MULTILIB_USEDEP}]
- sys-libs/ncurses:=[unicode(+)]
- virtual/libintl[${MULTILIB_USEDEP}]
- virtual/libudev[${MULTILIB_USEDEP}]
- bluetooth? (
- dev-libs/glib
- media-libs/fdk-aac
- media-libs/libldac
- media-libs/libfreeaptx
- media-libs/opus
- media-libs/sbc
- >=net-wireless/bluez-4.101:=
- virtual/libusb:1
- )
- elogind? ( sys-auth/elogind )
- dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- echo-cancel? (
- media-libs/webrtc-audio-processing:=
- || (
- >=media-libs/webrtc-audio-processing-2.0:2
- >=media-libs/webrtc-audio-processing-1.2:1
- )
- )
- extra? ( >=media-libs/libsndfile-1.0.20 )
- ffmpeg? ( media-video/ffmpeg:= )
- fftw? ( sci-libs/fftw:3.0=[${MULTILIB_USEDEP}] )
- flatpak? ( dev-libs/glib )
- gstreamer? (
- >=dev-libs/glib-2.32.0:2
- >=media-libs/gstreamer-1.10.0:1.0
- media-libs/gst-plugins-base:1.0
- )
- gsettings? ( >=dev-libs/glib-2.26.0:2 )
- ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
- jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
- jack-sdk? (
- !media-sound/jack-audio-connection-kit
- !media-sound/jack2
- )
- libcamera? ( media-libs/libcamera:= )
- liblc3? ( media-sound/liblc3 )
- loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
- lv2? ( media-libs/lilv )
- modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? ( >=media-libs/alsa-lib-1.2.10[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-libs/libpulse )
- sound-server? ( !media-sound/pulseaudio-daemon )
- roc? ( >=media-libs/roc-toolkit-0.4.0:= )
- readline? ( sys-libs/readline:= )
- selinux? ( sys-libs/libselinux )
- ssl? ( dev-libs/openssl:= )
- systemd? ( sys-apps/systemd )
- system-service? ( acct-user/pipewire )
- v4l? ( media-libs/libv4l )
- X? (
- media-libs/libcanberra
- x11-libs/libX11
- x11-libs/libXfixes
- )
- zeroconf? ( net-dns/avahi )
-"
-
-DEPEND="${RDEPEND}"
-
-PDEPEND=">=media-video/wireplumber-0.5.2"
-
-# Present RDEPEND that are currently always disabled due to the PW
-# code using them being required to be disabled by Gentoo guidelines
-# (i.e. developer binaries not meant for users) and unready code
-# media-libs/libsdl2
-# >=media-libs/vulkan-loader-1.1.69
-#
-# Ditto for DEPEND
-# >=dev-util/vulkan-headers-1.1.69
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
- "${FILESDIR}"/${PN}-1.4.6-no-automagic-ebur128.patch
- "${FILESDIR}"/${PN}-1.4.6-no-automagic-fftw.patch
- "${WORKDIR}"/${PN}-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch
-)
-
-pkg_setup() {
- if use doc || use man ; then
- python-any-r1_pkg_setup
- fi
-}
-
-src_prepare() {
- default
-
- # Used for upstream backports
- if [[ ${PV} != *9999 && -d "${FILESDIR}"/${PV} ]] ; then
- eapply "${FILESDIR}"/${PV}
- fi
-}
-
-multilib_src_configure() {
- local logind=disabled
- if multilib_is_native_abi ; then
- if use systemd ; then
- logind=enabled
- elif use elogind ; then
- logind=enabled
- fi
- fi
-
- local emesonargs=(
- -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
-
- $(meson_feature dbus)
- $(meson_native_use_feature zeroconf avahi)
- $(meson_native_use_feature doc docs)
- $(meson_native_use_feature man)
- $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone
- $(meson_feature test tests)
- -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
- $(meson_feature ieee1394 libffado)
- $(meson_native_use_feature gstreamer)
- $(meson_native_use_feature gstreamer gstreamer-device-provider)
- $(meson_native_use_feature gsettings)
- $(meson_native_use_feature systemd)
- -Dlogind=${logind}
- -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind')
-
- $(meson_native_use_feature system-service systemd-system-service)
- -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
- -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
-
- $(meson_native_use_feature systemd systemd-user-service)
- $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph
- $(meson_feature selinux)
- -Dspa-plugins=enabled
- -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible)
- -Dcompress-offload=disabled # TODO: tinycompress unpackaged
- -Daudiomixer=enabled # Matches upstream
- -Daudioconvert=enabled # Matches upstream
- $(meson_native_use_feature bluetooth bluez5)
- $(meson_native_use_feature bluetooth bluez5-backend-hsp-native)
- $(meson_native_use_feature bluetooth bluez5-backend-hfp-native)
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
- $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
- $(meson_native_use_feature bluetooth bluez5-backend-ofono)
- $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd)
- $(meson_native_use_feature bluetooth bluez5-codec-aac)
- $(meson_native_use_feature bluetooth bluez5-codec-aptx)
- $(meson_native_use_feature bluetooth bluez5-codec-ldac)
- $(meson_native_use_feature bluetooth bluez5-codec-g722)
- $(meson_native_use_feature bluetooth opus)
- $(meson_native_use_feature bluetooth bluez5-codec-opus)
- $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
- $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- -Dcontrol=enabled # Matches upstream
- -Daudiotestsrc=enabled # Matches upstream
- -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
- $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
- $(meson_native_use_feature flatpak)
- -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph
- $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client
- $(meson_use jack-sdk jack-devel)
- $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '')
- -Dsupport=enabled # Miscellaneous/common plugins, such as null sink
- -Devl=disabled # Matches upstream
- -Dtest=disabled # fakesink and fakesource plugins
- -Dbluez5-codec-lc3plus=disabled # unpackaged
- $(meson_native_use_feature liblc3 bluez5-codec-lc3)
- $(meson_feature loudness ebur128)
- $(meson_feature fftw)
- $(meson_native_use_feature lv2)
- $(meson_native_use_feature v4l v4l2)
- $(meson_native_use_feature libcamera)
- $(meson_native_use_feature roc)
- $(meson_native_use_feature readline)
- $(meson_native_use_feature ssl raop)
- -Dvideoconvert=enabled # Matches upstream
- -Dvideotestsrc=enabled # Matches upstream
- -Dvolume=enabled # Matches upstream
- -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream)
- $(meson_native_use_feature extra pw-cat)
- -Dudev=enabled
- -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
- -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install)
- -Dlibmysofa=disabled # libmysofa is unpackaged
- $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat)
- -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build
-
- # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
- # just became stable, with 5.15 being the previous LTS. Many people
- # are still on it.
- -Dpam-defaults-install=true
-
- # Just for bell sounds in X11 right now.
- $(meson_native_use_feature X x11)
- $(meson_native_use_feature X x11-xfixes)
- $(meson_native_use_feature X libcanberra)
-
- $(meson_native_use_feature pulseaudio libpulse)
-
- # TODO
- -Dsnap=disabled
- )
-
- # This installs the schema file for pulseaudio-daemon, iff we are replacing
- # the official sound-server
- if use !sound-server; then
- emesonargs+=( '-Dgsettings-pulse-schema=disabled' )
- else
- emesonargs+=(
- $(meson_native_use_feature gsettings gsettings-pulse-schema)
- )
- fi
-
- meson_src_configure
-}
-
-multilib_src_test() {
- meson_src_test --timeout-multiplier 10
-}
-
-multilib_src_install() {
- # Our custom DOCS do not exist in multilib source directory
- DOCS= meson_src_install
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- doman "${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
- fi
-
- if use pipewire-alsa; then
- dodir /etc/alsa/conf.d
-
- # Install pipewire conf loader hook
- insinto /usr/share/alsa/alsa.conf.d
- doins "${FILESDIR}"/99-pipewire-default-hook.conf
- eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
-
- # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222
- # And the current dosym8 -r implementation is likely affected by the same issue, too.
- dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf
- dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
- fi
-
- exeinto /etc/user/init.d
- newexe "${FILESDIR}"/pipewire.initd pipewire
- # Enable required wireplumber alsa and bluez monitors
- if use sound-server; then
- newexe "${FILESDIR}"/pipewire-pulse.initd pipewire-pulse
-
- # Install sound-server enabler for wireplumber 0.5.0+ conf syntax
- insinto /etc/wireplumber/wireplumber.conf.d
- doins "${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf
- fi
-
- if use system-service; then
- newtmpfiles - pipewire.conf <<-EOF || die
- d /run/pipewire 0755 pipewire pipewire - -
- EOF
- fi
-
- if ! use systemd; then
- insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
-
- exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r4 gentoo-pipewire-launcher
-
- doman "${FILESDIR}"/gentoo-pipewire-launcher.1
-
- # Disable pipewire-pulse if sound-server is disabled.
- if ! use sound-server ; then
- sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
- fi
-
- eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
- fi
-}
-
-pkg_postrm() {
- udev_reload
-}
-
-pkg_preinst() {
- HAD_SOUND_SERVER=0
- HAD_SYSTEM_SERVICE=0
-
- if has_version "media-video/pipewire[sound-server(-)]" ; then
- HAD_SOUND_SERVER=1
- fi
-
- if has_version "media-video/pipewire[system-service(-)]" ; then
- HAD_SYSTEM_SERVICE=1
- fi
-}
-
-pkg_postinst() {
- udev_reload
-
- use system-service && tmpfiles_process pipewire.conf
-
- local ver
- for ver in ${REPLACING_VERSIONS} ; do
- if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
- # https://bugs.gentoo.org/908490
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
- ewarn "Please restart KWin/Mutter after upgrading PipeWire."
- ewarn "Screencasting may not work until you do."
- fi
-
- if ver_test ${ver} -le 0.3.66-r1 ; then
- elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
- elog "and limits needed to function smoothly:"
- elog
- elog "1. Please make sure your user is in the 'pipewire' group for"
- elog "the best experience with realtime scheduling (PAM limits behavior)!"
- elog "You can add your account with:"
- elog " usermod -aG pipewire <youruser>"
- elog
- elog "2. For the best experience with fast user switching, it is recommended"
- elog "that you remove your user from the 'audio' group unless you rely on the"
- elog "audio group for device access control or ACLs.:"
- elog " usermod -rG audio <youruser>"
- elog
-
- if ! use jack-sdk ; then
- elog
- elog "JACK emulation is incomplete and not all programs will work. PipeWire's"
- elog "alternative libraries have been installed to a non-default location."
- elog "To use them, put pw-jack <application> before every JACK application."
- elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack"
- elog "provider is still needed to compile the JACK applications themselves."
- elog
- fi
-
- if use systemd ; then
- ewarn
- ewarn "PipeWire daemon startup has been moved to a launcher script!"
- ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no"
- ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all"
- ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)"
- ewarn
- ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from"
- ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
- ewarn "advised that a D-Bus user session is set up before starting the script."
- ewarn
- fi
-
- if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
- elog
- elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
- elog "are recommended to edit pulseaudio client configuration files:"
- elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
- elog "if it exists, and disable autospawning of the original daemon by setting:"
- elog
- elog " autospawn = no"
- elog
- elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!"
- elog
- elog "Alternatively, if replacing PulseAudio daemon is not desired, edit"
- elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant"
- elog "command:"
- elog
- elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &"
- elog
- fi
-
- if has_version 'net-misc/ofono' ; then
- ewarn "Native backend has become default. Please disable oFono via:"
- if systemd_is_booted ; then
- ewarn "systemctl disable ofono"
- else
- ewarn "rc-update delete ofono"
- fi
- fi
- fi
- done
-
- if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- # TODO: We could drop most of this if we set up systemd presets?
- # They're worth looking into because right now, the out-of-the-box experience
- # is automatic on OpenRC, while it needs manual intervention on systemd.
- if use sound-server && use systemd ; then
- elog
- elog "When switching from PulseAudio, you may need to disable PulseAudio:"
- elog
- elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
- elog
- elog "To use PipeWire, the user units must be manually enabled"
- elog "by running this command as each user you use for desktop activities:"
- elog
- elog " systemctl --user enable pipewire.socket pipewire-pulse.socket"
- elog
- elog "A reboot is recommended to avoid interferences from still running"
- elog "PulseAudio daemon."
- elog
- elog "Both new users and those upgrading need to enable WirePlumber"
- elog "for relevant users:"
- elog
- elog " systemctl --user disable pipewire-media-session.service"
- elog " systemctl --user --force enable wireplumber.service"
- elog
- elog "Root user may replace --user with --global to change system default"
- elog "configuration for all of the above commands."
- elog
- fi
-
- if ! use sound-server ; then
- ewarn
- ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
- ewarn "your sound, please enable it. See the wiki at"
- ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
- ewarn "for more details."
- ewarn
- fi
- fi
-
- if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- ewarn
- ewarn "You have enabled the system-service USE flag, which installs"
- ewarn "the system-wide systemd units that enable PipeWire to run as a system"
- ewarn "service. This is more than likely NOT what you want. You are strongly"
- ewarn "advised not to enable this mode and instead stick with systemd user"
- ewarn "units. The default configuration files will likely not work out of the"
- ewarn "box, and you are on your own with configuration."
- ewarn
- fi
-
- elog "For latest tips and tricks, troubleshooting information, and documentation"
- elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire"
- elog
-
- optfeature_header "The following can be installed for optional runtime features:"
- optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
-
- if use sound-server && ! use pipewire-alsa; then
- optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
- fi
-}
diff --git a/media-video/pipewire/pipewire-1.6.4-r1.ebuild b/media-video/pipewire/pipewire-1.6.4-r1.ebuild
deleted file mode 100644
index 6e130589e408..000000000000
--- a/media-video/pipewire/pipewire-1.6.4-r1.ebuild
+++ /dev/null
@@ -1,571 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# 1. Please regularly check (even at the point of bumping) Fedora's packaging
-# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
-#
-# 2. Upstream also sometimes amend release notes for the previous release to mention
-# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
-#
-# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
-# continue to move quickly. It's not uncommon for fixes to be made shortly
-# after releases.
-
-# TODO: Maybe get upstream to produce `meson dist` tarballs:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
-#
-# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
-# Set to 1 if prebuilt, 0 if not
-# (the construct below is to allow overriding from env for script)
-: ${PIPEWIRE_DOCS_PREBUILT:=1}
-
-PIPEWIRE_DOCS_PREBUILT_DEV=sam
-PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0"
-# Default to generating docs (inc. man pages) if no prebuilt; overridden later
-PIPEWIRE_DOCS_USEFLAG="+man"
-PYTHON_COMPAT=( python3_{13..14} )
-inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
-
-if [[ ${PV} == 9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- inherit git-r3
-elif [[ ${PV} == *.9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- EGIT_BRANCH="${PV%.*}"
- inherit git-r3
-else
- if [[ ${PV} == *_p* ]] ; then
- MY_COMMIT=""
- SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
- S="${WORKDIR}"/${PN}-${MY_COMMIT}
- else
- SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
- fi
-
- if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- SRC_URI+=" !man? ( https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz )"
- PIPEWIRE_DOCS_USEFLAG="man"
- fi
-
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
-fi
-
-DESCRIPTION="Multimedia processing graphs"
-HOMEPAGE="https://pipewire.org/"
-
-LICENSE="MIT LGPL-2.1+ GPL-2"
-# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
-SLOT="0/0.4"
-IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra ffmpeg fftw flatpak gstreamer gsettings"
-IUSE+=" ieee1394 jack-client jack-sdk libcamera loudness lv2 modemmanager pipewire-alsa readline roc selinux"
-IUSE+=" pulseaudio sound-server ssl system-service systemd test v4l X zeroconf"
-
-# Once replacing system JACK libraries is possible, it's likely that
-# jack-client IUSE will need blocking to avoid users accidentally
-# configuring their systems to send PW sink output to the emulated
-# JACK's sink - doing so is likely to yield no audio, cause a CPU
-# cycles consuming loop (and may even cause GUI crashes)!
-
-# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
-# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
-# which provides adequate guarantee that alsa-lib will be able to provide audio services.
-# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
-# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
-# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
-# TODO: should we add "pulseaudio? ( sound-server)"? is libpipewire-module-pulse-tunnel.so useful without sound-server?
-REQUIRED_USE="
- ffmpeg? ( extra )
- bluetooth? ( dbus )
- jack-sdk? ( !jack-client )
- modemmanager? ( bluetooth )
- system-service? ( systemd )
- !sound-server? ( !pipewire-alsa )
- jack-client? ( dbus )
-"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- >=dev-build/meson-0.59
- virtual/pkgconfig
- dbus? ( >=dev-util/gdbus-codegen-2.80.5-r1 )
- doc? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- media-gfx/graphviz
- )
- man? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- )
-"
-# * While udev could technically be optional, it's needed for a number of options,
-# and not really worth it, bug #877769.
-#
-# * Supports both new webrtc-audio-processing:2 and legacy webrtc-audio-processing:1.
-#
-# * Older Doxygen (<1.9.8) may work but inferior output is created:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
-# - https://github.com/doxygen/doxygen/issues/9254
-RDEPEND="
- acct-group/audio
- acct-group/pipewire
- media-libs/alsa-lib[${MULTILIB_USEDEP}]
- sys-libs/ncurses:=[unicode(+)]
- virtual/libintl[${MULTILIB_USEDEP}]
- virtual/libudev[${MULTILIB_USEDEP}]
- bluetooth? (
- dev-libs/glib
- media-libs/fdk-aac
- media-sound/liblc3
- media-libs/libldac
- media-libs/libfreeaptx
- media-libs/opus
- media-libs/sbc
- >=net-wireless/bluez-4.101:=
- virtual/libusb:1
- )
- elogind? ( sys-auth/elogind )
- dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- echo-cancel? (
- media-libs/webrtc-audio-processing:=
- || (
- >=media-libs/webrtc-audio-processing-2.0:2
- >=media-libs/webrtc-audio-processing-1.2:1
- )
- )
- extra? ( >=media-libs/libsndfile-1.0.20 )
- ffmpeg? ( media-video/ffmpeg:= )
- fftw? ( sci-libs/fftw:3.0=[${MULTILIB_USEDEP}] )
- flatpak? ( dev-libs/glib )
- gstreamer? (
- >=dev-libs/glib-2.32.0:2
- >=media-libs/gstreamer-1.10.0:1.0
- media-libs/gst-plugins-base:1.0
- )
- gsettings? ( >=dev-libs/glib-2.26.0:2 )
- ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
- jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
- jack-sdk? (
- !media-sound/jack-audio-connection-kit
- !media-sound/jack2
- )
- libcamera? ( media-libs/libcamera:= )
- loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
- lv2? ( media-libs/lilv )
- modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? ( >=media-libs/alsa-lib-1.2.10[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-libs/libpulse )
- sound-server? ( !media-sound/pulseaudio-daemon )
- roc? ( >=media-libs/roc-toolkit-0.4.0:= )
- readline? ( sys-libs/readline:= )
- selinux? ( sys-libs/libselinux )
- ssl? ( dev-libs/openssl:= )
- systemd? ( sys-apps/systemd )
- system-service? ( acct-user/pipewire )
- v4l? ( media-libs/libv4l )
- X? (
- media-libs/libcanberra
- x11-libs/libX11
- x11-libs/libXfixes
- )
- zeroconf? ( net-dns/avahi )
-"
-
-DEPEND="${RDEPEND}"
-
-PDEPEND=">=media-video/wireplumber-0.5.2"
-
-# Present RDEPEND that are currently always disabled due to the PW
-# code using them being required to be disabled by Gentoo guidelines
-# (i.e. developer binaries not meant for users) and unready code
-# media-libs/libsdl2
-# >=media-libs/vulkan-loader-1.1.69
-#
-# Ditto for DEPEND
-# >=dev-util/vulkan-headers-1.1.69
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
- "${FILESDIR}"/${PN}-1.6.4-filter-graph-sync_volume-init.patch
-)
-
-pkg_setup() {
- if use doc || use man ; then
- python-any-r1_pkg_setup
- fi
-}
-
-src_prepare() {
- default
-
- # Used for upstream backports
- if [[ ${PV} != *9999 && -d "${FILESDIR}"/${PV} ]] ; then
- eapply "${FILESDIR}"/${PV}
- fi
-}
-
-multilib_src_configure() {
- local logind=disabled
- if multilib_is_native_abi ; then
- if use systemd ; then
- logind=enabled
- elif use elogind ; then
- logind=enabled
- fi
- fi
-
- local emesonargs=(
- -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
-
- $(meson_feature dbus)
- $(meson_native_use_feature zeroconf avahi)
- $(meson_native_use_feature doc docs)
- $(meson_native_use_feature man)
- $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone
- $(meson_feature test tests)
- -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
- $(meson_feature ieee1394 libffado)
- $(meson_native_use_feature gstreamer)
- $(meson_native_use_feature gstreamer gstreamer-device-provider)
- $(meson_native_use_feature gsettings)
- $(meson_native_use_feature systemd libsystemd)
- -Dlogind=${logind}
- -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind')
-
- $(meson_native_use_feature system-service systemd-system-service)
- -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
- -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
-
- $(meson_native_use_feature systemd systemd-user-service)
- $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph
- $(meson_feature selinux)
- -Dspa-plugins=enabled
- -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible)
- -Dcompress-offload=disabled # TODO: tinycompress unpackaged
- -Daudiomixer=enabled # Matches upstream
- -Daudioconvert=enabled # Matches upstream
- $(meson_native_use_feature bluetooth bluez5)
- $(meson_native_use_feature bluetooth bluez5-backend-hsp-native)
- $(meson_native_use_feature bluetooth bluez5-backend-hfp-native)
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
- $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
- $(meson_native_use_feature bluetooth bluez5-backend-ofono)
- $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd)
- $(meson_native_use_feature bluetooth bluez5-codec-aac)
- $(meson_native_use_feature bluetooth bluez5-codec-aptx)
- $(meson_native_use_feature bluetooth bluez5-codec-lc3)
- $(meson_native_use_feature bluetooth bluez5-codec-ldac)
- $(meson_native_use_feature bluetooth bluez5-codec-g722)
- $(meson_native_use_feature bluetooth opus)
- $(meson_native_use_feature bluetooth bluez5-codec-opus)
- $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
- $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- -Dcontrol=enabled # Matches upstream
- -Daudiotestsrc=enabled # Matches upstream
- -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
- $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
- $(meson_native_use_feature flatpak)
- -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph
- $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client
- $(meson_use jack-sdk jack-devel)
- $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '')
- -Dsupport=enabled # Miscellaneous/common plugins, such as null sink
- -Devl=disabled # Matches upstream
- -Dtest=disabled # fakesink and fakesource plugins
- -Dbluez5-codec-lc3plus=disabled # unpackaged
- $(meson_feature loudness ebur128)
- $(meson_feature fftw)
- $(meson_native_use_feature lv2)
- $(meson_native_use_feature v4l v4l2)
- $(meson_native_use_feature libcamera)
- $(meson_native_use_feature roc)
- $(meson_native_use_feature readline)
- $(meson_native_use_feature ssl raop)
- -Dvideoconvert=enabled # Matches upstream
- -Dvideotestsrc=enabled # Matches upstream
- -Dvolume=enabled # Matches upstream
- -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream)
- $(meson_native_use_feature extra pw-cat)
- -Dudev=enabled
- -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
- -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install)
- -Dlibmysofa=disabled # libmysofa is unpackaged
- $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat)
- -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build
-
- # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
- # just became stable, with 5.15 being the previous LTS. Many people
- # are still on it.
- -Dpam-defaults-install=true
-
- # Just for bell sounds in X11 right now.
- $(meson_native_use_feature X x11)
- $(meson_native_use_feature X x11-xfixes)
- $(meson_native_use_feature X libcanberra)
-
- $(meson_native_use_feature pulseaudio libpulse)
-
- # TODO
- -Dsnap=disabled
- -Donnxruntime=disabled
- -Dbluez5-plc-spandsp=disabled
- -Dbluez5-codec-ldac-dec=disabled
- )
-
- # This installs the schema file for pulseaudio-daemon, iff we are replacing
- # the official sound-server
- if use !sound-server; then
- emesonargs+=( '-Dgsettings-pulse-schema=disabled' )
- else
- emesonargs+=(
- $(meson_native_use_feature gsettings gsettings-pulse-schema)
- )
- fi
-
- meson_src_configure
-}
-
-multilib_src_test() {
- meson_src_test --timeout-multiplier 10
-}
-
-multilib_src_install() {
- # Our custom DOCS do not exist in multilib source directory
- DOCS= meson_src_install
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- doman "${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
- fi
-
- if use pipewire-alsa; then
- dodir /etc/alsa/conf.d
-
- # Install pipewire conf loader hook
- insinto /usr/share/alsa/alsa.conf.d
- doins "${FILESDIR}"/99-pipewire-default-hook.conf
- eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
-
- # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222
- # And the current dosym8 -r implementation is likely affected by the same issue, too.
- dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf
- dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
- fi
-
- exeinto /etc/user/init.d
- newexe "${FILESDIR}"/pipewire.initd pipewire
- # Enable required wireplumber alsa and bluez monitors
- if use sound-server; then
- newexe "${FILESDIR}"/pipewire-pulse.initd pipewire-pulse
-
- # Install sound-server enabler for wireplumber 0.5.0+ conf syntax
- insinto /etc/wireplumber/wireplumber.conf.d
- doins "${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf
- fi
-
- if use system-service; then
- newtmpfiles - pipewire.conf <<-EOF || die
- d /run/pipewire 0755 pipewire pipewire - -
- EOF
- fi
-
- if ! use systemd; then
- insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
-
- exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r4 gentoo-pipewire-launcher
-
- doman "${FILESDIR}"/gentoo-pipewire-launcher.1
-
- # Disable pipewire-pulse if sound-server is disabled.
- if ! use sound-server ; then
- sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
- fi
-
- eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
- fi
-}
-
-pkg_postrm() {
- udev_reload
-}
-
-pkg_preinst() {
- HAD_SOUND_SERVER=0
- HAD_SYSTEM_SERVICE=0
-
- if has_version "media-video/pipewire[sound-server(-)]" ; then
- HAD_SOUND_SERVER=1
- fi
-
- if has_version "media-video/pipewire[system-service(-)]" ; then
- HAD_SYSTEM_SERVICE=1
- fi
-}
-
-pkg_postinst() {
- udev_reload
-
- use system-service && tmpfiles_process pipewire.conf
-
- local ver
- for ver in ${REPLACING_VERSIONS} ; do
- if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
- # https://bugs.gentoo.org/908490
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
- ewarn "Please restart KWin/Mutter after upgrading PipeWire."
- ewarn "Screencasting may not work until you do."
- fi
-
- # Upgrading from a previous major version may require a restart (bug #964059)
- if use sound-server && ver_test $(ver_cut 1-2 ${ver}) -lt $(ver_cut 1-2 ${PV}) ; then
- ewarn "Please restart PipeWire after upgrading to a new major version:"
- if use systemd ; then
- ewarn " $ systemctl --user daemon-reload"
- ewarn " $ systemctl restart --user pipewire.service"
- ewarn " $ systemctl restart --user pipewire-pulse.service"
- ewarn " $ systemctl restart --user wireplumber.service"
- else
- ewarn " $ gentoo-pipewire-launcher restart"
- fi
- fi
-
- if ver_test ${ver} -le 0.3.66-r1 ; then
- elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
- elog "and limits needed to function smoothly:"
- elog
- elog "1. Please make sure your user is in the 'pipewire' group for"
- elog "the best experience with realtime scheduling (PAM limits behavior)!"
- elog "You can add your account with:"
- elog " usermod -aG pipewire <youruser>"
- elog
- elog "2. For the best experience with fast user switching, it is recommended"
- elog "that you remove your user from the 'audio' group unless you rely on the"
- elog "audio group for device access control or ACLs.:"
- elog " usermod -rG audio <youruser>"
- elog
-
- if ! use jack-sdk ; then
- elog
- elog "JACK emulation is incomplete and not all programs will work. PipeWire's"
- elog "alternative libraries have been installed to a non-default location."
- elog "To use them, put pw-jack <application> before every JACK application."
- elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack"
- elog "provider is still needed to compile the JACK applications themselves."
- elog
- fi
-
- if use systemd ; then
- ewarn
- ewarn "PipeWire daemon startup has been moved to a launcher script!"
- ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no"
- ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all"
- ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)"
- ewarn
- ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from"
- ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
- ewarn "advised that a D-Bus user session is set up before starting the script."
- ewarn
- fi
-
- if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
- elog
- elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
- elog "are recommended to edit pulseaudio client configuration files:"
- elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
- elog "if it exists, and disable autospawning of the original daemon by setting:"
- elog
- elog " autospawn = no"
- elog
- elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!"
- elog
- elog "Alternatively, if replacing PulseAudio daemon is not desired, edit"
- elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant"
- elog "command:"
- elog
- elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &"
- elog
- fi
-
- if has_version 'net-misc/ofono' ; then
- ewarn "Native backend has become default. Please disable oFono via:"
- if systemd_is_booted ; then
- ewarn "systemctl disable ofono"
- else
- ewarn "rc-update delete ofono"
- fi
- fi
- fi
- done
-
- if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- # TODO: We could drop most of this if we set up systemd presets?
- # They're worth looking into because right now, the out-of-the-box experience
- # is automatic on OpenRC, while it needs manual intervention on systemd.
- if use sound-server && use systemd ; then
- elog
- elog "When switching from PulseAudio, you may need to disable PulseAudio:"
- elog
- elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
- elog
- elog "To use PipeWire, the user units must be manually enabled"
- elog "by running this command as each user you use for desktop activities:"
- elog
- elog " systemctl --user enable pipewire.socket pipewire-pulse.socket"
- elog
- elog "A reboot is recommended to avoid interferences from still running"
- elog "PulseAudio daemon."
- elog
- elog "Both new users and those upgrading need to enable WirePlumber"
- elog "for relevant users:"
- elog
- elog " systemctl --user disable pipewire-media-session.service"
- elog " systemctl --user --force enable wireplumber.service"
- elog
- elog "Root user may replace --user with --global to change system default"
- elog "configuration for all of the above commands."
- elog
- fi
-
- if ! use sound-server ; then
- ewarn
- ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
- ewarn "your sound, please enable it. See the wiki at"
- ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
- ewarn "for more details."
- ewarn
- fi
- fi
-
- if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- ewarn
- ewarn "You have enabled the system-service USE flag, which installs"
- ewarn "the system-wide systemd units that enable PipeWire to run as a system"
- ewarn "service. This is more than likely NOT what you want. You are strongly"
- ewarn "advised not to enable this mode and instead stick with systemd user"
- ewarn "units. The default configuration files will likely not work out of the"
- ewarn "box, and you are on your own with configuration."
- ewarn
- fi
-
- elog "For latest tips and tricks, troubleshooting information, and documentation"
- elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire"
- elog
-
- optfeature_header "The following can be installed for optional runtime features:"
- optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
-
- if use sound-server && ! use pipewire-alsa; then
- optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
- fi
-}
diff --git a/media-video/pipewire/pipewire-1.6.4.ebuild b/media-video/pipewire/pipewire-1.6.4.ebuild
deleted file mode 100644
index 58a0b1833c72..000000000000
--- a/media-video/pipewire/pipewire-1.6.4.ebuild
+++ /dev/null
@@ -1,570 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# 1. Please regularly check (even at the point of bumping) Fedora's packaging
-# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
-#
-# 2. Upstream also sometimes amend release notes for the previous release to mention
-# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
-#
-# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
-# continue to move quickly. It's not uncommon for fixes to be made shortly
-# after releases.
-
-# TODO: Maybe get upstream to produce `meson dist` tarballs:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
-#
-# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
-# Set to 1 if prebuilt, 0 if not
-# (the construct below is to allow overriding from env for script)
-: ${PIPEWIRE_DOCS_PREBUILT:=1}
-
-PIPEWIRE_DOCS_PREBUILT_DEV=sam
-PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0"
-# Default to generating docs (inc. man pages) if no prebuilt; overridden later
-PIPEWIRE_DOCS_USEFLAG="+man"
-PYTHON_COMPAT=( python3_{13..14} )
-inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
-
-if [[ ${PV} == 9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- inherit git-r3
-elif [[ ${PV} == *.9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- EGIT_BRANCH="${PV%.*}"
- inherit git-r3
-else
- if [[ ${PV} == *_p* ]] ; then
- MY_COMMIT=""
- SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
- S="${WORKDIR}"/${PN}-${MY_COMMIT}
- else
- SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
- fi
-
- if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- SRC_URI+=" !man? ( https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz )"
- PIPEWIRE_DOCS_USEFLAG="man"
- fi
-
- KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
-fi
-
-DESCRIPTION="Multimedia processing graphs"
-HOMEPAGE="https://pipewire.org/"
-
-LICENSE="MIT LGPL-2.1+ GPL-2"
-# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
-SLOT="0/0.4"
-IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra ffmpeg fftw flatpak gstreamer gsettings"
-IUSE+=" ieee1394 jack-client jack-sdk libcamera loudness lv2 modemmanager pipewire-alsa readline roc selinux"
-IUSE+=" pulseaudio sound-server ssl system-service systemd test v4l X zeroconf"
-
-# Once replacing system JACK libraries is possible, it's likely that
-# jack-client IUSE will need blocking to avoid users accidentally
-# configuring their systems to send PW sink output to the emulated
-# JACK's sink - doing so is likely to yield no audio, cause a CPU
-# cycles consuming loop (and may even cause GUI crashes)!
-
-# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
-# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
-# which provides adequate guarantee that alsa-lib will be able to provide audio services.
-# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
-# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
-# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
-# TODO: should we add "pulseaudio? ( sound-server)"? is libpipewire-module-pulse-tunnel.so useful without sound-server?
-REQUIRED_USE="
- ffmpeg? ( extra )
- bluetooth? ( dbus )
- jack-sdk? ( !jack-client )
- modemmanager? ( bluetooth )
- system-service? ( systemd )
- !sound-server? ( !pipewire-alsa )
- jack-client? ( dbus )
-"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- >=dev-build/meson-0.59
- virtual/pkgconfig
- dbus? ( >=dev-util/gdbus-codegen-2.80.5-r1 )
- doc? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- media-gfx/graphviz
- )
- man? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- )
-"
-# * While udev could technically be optional, it's needed for a number of options,
-# and not really worth it, bug #877769.
-#
-# * Supports both new webrtc-audio-processing:2 and legacy webrtc-audio-processing:1.
-#
-# * Older Doxygen (<1.9.8) may work but inferior output is created:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
-# - https://github.com/doxygen/doxygen/issues/9254
-RDEPEND="
- acct-group/audio
- acct-group/pipewire
- media-libs/alsa-lib[${MULTILIB_USEDEP}]
- sys-libs/ncurses:=[unicode(+)]
- virtual/libintl[${MULTILIB_USEDEP}]
- virtual/libudev[${MULTILIB_USEDEP}]
- bluetooth? (
- dev-libs/glib
- media-libs/fdk-aac
- media-sound/liblc3
- media-libs/libldac
- media-libs/libfreeaptx
- media-libs/opus
- media-libs/sbc
- >=net-wireless/bluez-4.101:=
- virtual/libusb:1
- )
- elogind? ( sys-auth/elogind )
- dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- echo-cancel? (
- media-libs/webrtc-audio-processing:=
- || (
- >=media-libs/webrtc-audio-processing-2.0:2
- >=media-libs/webrtc-audio-processing-1.2:1
- )
- )
- extra? ( >=media-libs/libsndfile-1.0.20 )
- ffmpeg? ( media-video/ffmpeg:= )
- fftw? ( sci-libs/fftw:3.0=[${MULTILIB_USEDEP}] )
- flatpak? ( dev-libs/glib )
- gstreamer? (
- >=dev-libs/glib-2.32.0:2
- >=media-libs/gstreamer-1.10.0:1.0
- media-libs/gst-plugins-base:1.0
- )
- gsettings? ( >=dev-libs/glib-2.26.0:2 )
- ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
- jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
- jack-sdk? (
- !media-sound/jack-audio-connection-kit
- !media-sound/jack2
- )
- libcamera? ( media-libs/libcamera:= )
- loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
- lv2? ( media-libs/lilv )
- modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? ( >=media-libs/alsa-lib-1.2.10[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-libs/libpulse )
- sound-server? ( !media-sound/pulseaudio-daemon )
- roc? ( >=media-libs/roc-toolkit-0.4.0:= )
- readline? ( sys-libs/readline:= )
- selinux? ( sys-libs/libselinux )
- ssl? ( dev-libs/openssl:= )
- systemd? ( sys-apps/systemd )
- system-service? ( acct-user/pipewire )
- v4l? ( media-libs/libv4l )
- X? (
- media-libs/libcanberra
- x11-libs/libX11
- x11-libs/libXfixes
- )
- zeroconf? ( net-dns/avahi )
-"
-
-DEPEND="${RDEPEND}"
-
-PDEPEND=">=media-video/wireplumber-0.5.2"
-
-# Present RDEPEND that are currently always disabled due to the PW
-# code using them being required to be disabled by Gentoo guidelines
-# (i.e. developer binaries not meant for users) and unready code
-# media-libs/libsdl2
-# >=media-libs/vulkan-loader-1.1.69
-#
-# Ditto for DEPEND
-# >=dev-util/vulkan-headers-1.1.69
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
-)
-
-pkg_setup() {
- if use doc || use man ; then
- python-any-r1_pkg_setup
- fi
-}
-
-src_prepare() {
- default
-
- # Used for upstream backports
- if [[ ${PV} != *9999 && -d "${FILESDIR}"/${PV} ]] ; then
- eapply "${FILESDIR}"/${PV}
- fi
-}
-
-multilib_src_configure() {
- local logind=disabled
- if multilib_is_native_abi ; then
- if use systemd ; then
- logind=enabled
- elif use elogind ; then
- logind=enabled
- fi
- fi
-
- local emesonargs=(
- -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
-
- $(meson_feature dbus)
- $(meson_native_use_feature zeroconf avahi)
- $(meson_native_use_feature doc docs)
- $(meson_native_use_feature man)
- $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone
- $(meson_feature test tests)
- -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
- $(meson_feature ieee1394 libffado)
- $(meson_native_use_feature gstreamer)
- $(meson_native_use_feature gstreamer gstreamer-device-provider)
- $(meson_native_use_feature gsettings)
- $(meson_native_use_feature systemd libsystemd)
- -Dlogind=${logind}
- -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind')
-
- $(meson_native_use_feature system-service systemd-system-service)
- -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
- -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
-
- $(meson_native_use_feature systemd systemd-user-service)
- $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph
- $(meson_feature selinux)
- -Dspa-plugins=enabled
- -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible)
- -Dcompress-offload=disabled # TODO: tinycompress unpackaged
- -Daudiomixer=enabled # Matches upstream
- -Daudioconvert=enabled # Matches upstream
- $(meson_native_use_feature bluetooth bluez5)
- $(meson_native_use_feature bluetooth bluez5-backend-hsp-native)
- $(meson_native_use_feature bluetooth bluez5-backend-hfp-native)
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
- $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
- $(meson_native_use_feature bluetooth bluez5-backend-ofono)
- $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd)
- $(meson_native_use_feature bluetooth bluez5-codec-aac)
- $(meson_native_use_feature bluetooth bluez5-codec-aptx)
- $(meson_native_use_feature bluetooth bluez5-codec-lc3)
- $(meson_native_use_feature bluetooth bluez5-codec-ldac)
- $(meson_native_use_feature bluetooth bluez5-codec-g722)
- $(meson_native_use_feature bluetooth opus)
- $(meson_native_use_feature bluetooth bluez5-codec-opus)
- $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
- $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- -Dcontrol=enabled # Matches upstream
- -Daudiotestsrc=enabled # Matches upstream
- -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
- $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
- $(meson_native_use_feature flatpak)
- -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph
- $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client
- $(meson_use jack-sdk jack-devel)
- $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '')
- -Dsupport=enabled # Miscellaneous/common plugins, such as null sink
- -Devl=disabled # Matches upstream
- -Dtest=disabled # fakesink and fakesource plugins
- -Dbluez5-codec-lc3plus=disabled # unpackaged
- $(meson_feature loudness ebur128)
- $(meson_feature fftw)
- $(meson_native_use_feature lv2)
- $(meson_native_use_feature v4l v4l2)
- $(meson_native_use_feature libcamera)
- $(meson_native_use_feature roc)
- $(meson_native_use_feature readline)
- $(meson_native_use_feature ssl raop)
- -Dvideoconvert=enabled # Matches upstream
- -Dvideotestsrc=enabled # Matches upstream
- -Dvolume=enabled # Matches upstream
- -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream)
- $(meson_native_use_feature extra pw-cat)
- -Dudev=enabled
- -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
- -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install)
- -Dlibmysofa=disabled # libmysofa is unpackaged
- $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat)
- -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build
-
- # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
- # just became stable, with 5.15 being the previous LTS. Many people
- # are still on it.
- -Dpam-defaults-install=true
-
- # Just for bell sounds in X11 right now.
- $(meson_native_use_feature X x11)
- $(meson_native_use_feature X x11-xfixes)
- $(meson_native_use_feature X libcanberra)
-
- $(meson_native_use_feature pulseaudio libpulse)
-
- # TODO
- -Dsnap=disabled
- -Donnxruntime=disabled
- -Dbluez5-plc-spandsp=disabled
- -Dbluez5-codec-ldac-dec=disabled
- )
-
- # This installs the schema file for pulseaudio-daemon, iff we are replacing
- # the official sound-server
- if use !sound-server; then
- emesonargs+=( '-Dgsettings-pulse-schema=disabled' )
- else
- emesonargs+=(
- $(meson_native_use_feature gsettings gsettings-pulse-schema)
- )
- fi
-
- meson_src_configure
-}
-
-multilib_src_test() {
- meson_src_test --timeout-multiplier 10
-}
-
-multilib_src_install() {
- # Our custom DOCS do not exist in multilib source directory
- DOCS= meson_src_install
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- doman "${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
- fi
-
- if use pipewire-alsa; then
- dodir /etc/alsa/conf.d
-
- # Install pipewire conf loader hook
- insinto /usr/share/alsa/alsa.conf.d
- doins "${FILESDIR}"/99-pipewire-default-hook.conf
- eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
-
- # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222
- # And the current dosym8 -r implementation is likely affected by the same issue, too.
- dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf
- dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
- fi
-
- exeinto /etc/user/init.d
- newexe "${FILESDIR}"/pipewire.initd pipewire
- # Enable required wireplumber alsa and bluez monitors
- if use sound-server; then
- newexe "${FILESDIR}"/pipewire-pulse.initd pipewire-pulse
-
- # Install sound-server enabler for wireplumber 0.5.0+ conf syntax
- insinto /etc/wireplumber/wireplumber.conf.d
- doins "${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf
- fi
-
- if use system-service; then
- newtmpfiles - pipewire.conf <<-EOF || die
- d /run/pipewire 0755 pipewire pipewire - -
- EOF
- fi
-
- if ! use systemd; then
- insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
-
- exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r4 gentoo-pipewire-launcher
-
- doman "${FILESDIR}"/gentoo-pipewire-launcher.1
-
- # Disable pipewire-pulse if sound-server is disabled.
- if ! use sound-server ; then
- sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
- fi
-
- eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
- fi
-}
-
-pkg_postrm() {
- udev_reload
-}
-
-pkg_preinst() {
- HAD_SOUND_SERVER=0
- HAD_SYSTEM_SERVICE=0
-
- if has_version "media-video/pipewire[sound-server(-)]" ; then
- HAD_SOUND_SERVER=1
- fi
-
- if has_version "media-video/pipewire[system-service(-)]" ; then
- HAD_SYSTEM_SERVICE=1
- fi
-}
-
-pkg_postinst() {
- udev_reload
-
- use system-service && tmpfiles_process pipewire.conf
-
- local ver
- for ver in ${REPLACING_VERSIONS} ; do
- if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
- # https://bugs.gentoo.org/908490
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
- ewarn "Please restart KWin/Mutter after upgrading PipeWire."
- ewarn "Screencasting may not work until you do."
- fi
-
- # Upgrading from a previous major version may require a restart (bug #964059)
- if use sound-server && ver_test $(ver_cut 1-2 ${ver}) -lt $(ver_cut 1-2 ${PV}) ; then
- ewarn "Please restart PipeWire after upgrading to a new major version:"
- if use systemd ; then
- ewarn " $ systemctl --user daemon-reload"
- ewarn " $ systemctl restart --user pipewire.service"
- ewarn " $ systemctl restart --user pipewire-pulse.service"
- ewarn " $ systemctl restart --user wireplumber.service"
- else
- ewarn " $ gentoo-pipewire-launcher restart"
- fi
- fi
-
- if ver_test ${ver} -le 0.3.66-r1 ; then
- elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
- elog "and limits needed to function smoothly:"
- elog
- elog "1. Please make sure your user is in the 'pipewire' group for"
- elog "the best experience with realtime scheduling (PAM limits behavior)!"
- elog "You can add your account with:"
- elog " usermod -aG pipewire <youruser>"
- elog
- elog "2. For the best experience with fast user switching, it is recommended"
- elog "that you remove your user from the 'audio' group unless you rely on the"
- elog "audio group for device access control or ACLs.:"
- elog " usermod -rG audio <youruser>"
- elog
-
- if ! use jack-sdk ; then
- elog
- elog "JACK emulation is incomplete and not all programs will work. PipeWire's"
- elog "alternative libraries have been installed to a non-default location."
- elog "To use them, put pw-jack <application> before every JACK application."
- elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack"
- elog "provider is still needed to compile the JACK applications themselves."
- elog
- fi
-
- if use systemd ; then
- ewarn
- ewarn "PipeWire daemon startup has been moved to a launcher script!"
- ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no"
- ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all"
- ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)"
- ewarn
- ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from"
- ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
- ewarn "advised that a D-Bus user session is set up before starting the script."
- ewarn
- fi
-
- if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
- elog
- elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
- elog "are recommended to edit pulseaudio client configuration files:"
- elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
- elog "if it exists, and disable autospawning of the original daemon by setting:"
- elog
- elog " autospawn = no"
- elog
- elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!"
- elog
- elog "Alternatively, if replacing PulseAudio daemon is not desired, edit"
- elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant"
- elog "command:"
- elog
- elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &"
- elog
- fi
-
- if has_version 'net-misc/ofono' ; then
- ewarn "Native backend has become default. Please disable oFono via:"
- if systemd_is_booted ; then
- ewarn "systemctl disable ofono"
- else
- ewarn "rc-update delete ofono"
- fi
- fi
- fi
- done
-
- if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- # TODO: We could drop most of this if we set up systemd presets?
- # They're worth looking into because right now, the out-of-the-box experience
- # is automatic on OpenRC, while it needs manual intervention on systemd.
- if use sound-server && use systemd ; then
- elog
- elog "When switching from PulseAudio, you may need to disable PulseAudio:"
- elog
- elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
- elog
- elog "To use PipeWire, the user units must be manually enabled"
- elog "by running this command as each user you use for desktop activities:"
- elog
- elog " systemctl --user enable pipewire.socket pipewire-pulse.socket"
- elog
- elog "A reboot is recommended to avoid interferences from still running"
- elog "PulseAudio daemon."
- elog
- elog "Both new users and those upgrading need to enable WirePlumber"
- elog "for relevant users:"
- elog
- elog " systemctl --user disable pipewire-media-session.service"
- elog " systemctl --user --force enable wireplumber.service"
- elog
- elog "Root user may replace --user with --global to change system default"
- elog "configuration for all of the above commands."
- elog
- fi
-
- if ! use sound-server ; then
- ewarn
- ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
- ewarn "your sound, please enable it. See the wiki at"
- ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
- ewarn "for more details."
- ewarn
- fi
- fi
-
- if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- ewarn
- ewarn "You have enabled the system-service USE flag, which installs"
- ewarn "the system-wide systemd units that enable PipeWire to run as a system"
- ewarn "service. This is more than likely NOT what you want. You are strongly"
- ewarn "advised not to enable this mode and instead stick with systemd user"
- ewarn "units. The default configuration files will likely not work out of the"
- ewarn "box, and you are on your own with configuration."
- ewarn
- fi
-
- elog "For latest tips and tricks, troubleshooting information, and documentation"
- elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire"
- elog
-
- optfeature_header "The following can be installed for optional runtime features:"
- optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
-
- if use sound-server && ! use pipewire-alsa; then
- optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
- fi
-}
diff --git a/media-video/pipewire/pipewire-1.6.5.ebuild b/media-video/pipewire/pipewire-1.6.5.ebuild
deleted file mode 100644
index 773e2bb5aa21..000000000000
--- a/media-video/pipewire/pipewire-1.6.5.ebuild
+++ /dev/null
@@ -1,570 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# 1. Please regularly check (even at the point of bumping) Fedora's packaging
-# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
-#
-# 2. Upstream also sometimes amend release notes for the previous release to mention
-# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
-#
-# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
-# continue to move quickly. It's not uncommon for fixes to be made shortly
-# after releases.
-
-# TODO: Maybe get upstream to produce `meson dist` tarballs:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
-#
-# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
-# Set to 1 if prebuilt, 0 if not
-# (the construct below is to allow overriding from env for script)
-: ${PIPEWIRE_DOCS_PREBUILT:=1}
-
-PIPEWIRE_DOCS_PREBUILT_DEV=sam
-PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0"
-# Default to generating docs (inc. man pages) if no prebuilt; overridden later
-PIPEWIRE_DOCS_USEFLAG="+man"
-PYTHON_COMPAT=( python3_{13..14} )
-inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
-
-if [[ ${PV} == 9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- inherit git-r3
-elif [[ ${PV} == *.9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- EGIT_BRANCH="${PV%.*}"
- inherit git-r3
-else
- if [[ ${PV} == *_p* ]] ; then
- MY_COMMIT=""
- SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
- S="${WORKDIR}"/${PN}-${MY_COMMIT}
- else
- SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
- fi
-
- if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- SRC_URI+=" !man? ( https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz )"
- PIPEWIRE_DOCS_USEFLAG="man"
- fi
-
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
-fi
-
-DESCRIPTION="Multimedia processing graphs"
-HOMEPAGE="https://pipewire.org/"
-
-LICENSE="MIT LGPL-2.1+ GPL-2"
-# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
-SLOT="0/0.4"
-IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra ffmpeg fftw flatpak gstreamer gsettings"
-IUSE+=" ieee1394 jack-client jack-sdk libcamera loudness lv2 modemmanager pipewire-alsa readline roc selinux"
-IUSE+=" pulseaudio sound-server ssl system-service systemd test v4l X zeroconf"
-
-# Once replacing system JACK libraries is possible, it's likely that
-# jack-client IUSE will need blocking to avoid users accidentally
-# configuring their systems to send PW sink output to the emulated
-# JACK's sink - doing so is likely to yield no audio, cause a CPU
-# cycles consuming loop (and may even cause GUI crashes)!
-
-# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
-# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
-# which provides adequate guarantee that alsa-lib will be able to provide audio services.
-# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
-# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
-# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
-# TODO: should we add "pulseaudio? ( sound-server)"? is libpipewire-module-pulse-tunnel.so useful without sound-server?
-REQUIRED_USE="
- ffmpeg? ( extra )
- bluetooth? ( dbus )
- jack-sdk? ( !jack-client )
- modemmanager? ( bluetooth )
- system-service? ( systemd )
- !sound-server? ( !pipewire-alsa )
- jack-client? ( dbus )
-"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- >=dev-build/meson-0.59
- virtual/pkgconfig
- dbus? ( >=dev-util/gdbus-codegen-2.80.5-r1 )
- doc? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- media-gfx/graphviz
- )
- man? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- )
-"
-# * While udev could technically be optional, it's needed for a number of options,
-# and not really worth it, bug #877769.
-#
-# * Supports both new webrtc-audio-processing:2 and legacy webrtc-audio-processing:1.
-#
-# * Older Doxygen (<1.9.8) may work but inferior output is created:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
-# - https://github.com/doxygen/doxygen/issues/9254
-RDEPEND="
- acct-group/audio
- acct-group/pipewire
- media-libs/alsa-lib[${MULTILIB_USEDEP}]
- sys-libs/ncurses:=[unicode(+)]
- virtual/libintl[${MULTILIB_USEDEP}]
- virtual/libudev[${MULTILIB_USEDEP}]
- bluetooth? (
- dev-libs/glib
- media-libs/fdk-aac
- media-sound/liblc3
- media-libs/libldac
- media-libs/libfreeaptx
- media-libs/opus
- media-libs/sbc
- >=net-wireless/bluez-4.101:=
- virtual/libusb:1
- )
- elogind? ( sys-auth/elogind )
- dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- echo-cancel? (
- media-libs/webrtc-audio-processing:=
- || (
- >=media-libs/webrtc-audio-processing-2.0:2
- >=media-libs/webrtc-audio-processing-1.2:1
- )
- )
- extra? ( >=media-libs/libsndfile-1.0.20 )
- ffmpeg? ( media-video/ffmpeg:= )
- fftw? ( sci-libs/fftw:3.0=[${MULTILIB_USEDEP}] )
- flatpak? ( dev-libs/glib )
- gstreamer? (
- >=dev-libs/glib-2.32.0:2
- >=media-libs/gstreamer-1.10.0:1.0
- media-libs/gst-plugins-base:1.0
- )
- gsettings? ( >=dev-libs/glib-2.26.0:2 )
- ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
- jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
- jack-sdk? (
- !media-sound/jack-audio-connection-kit
- !media-sound/jack2
- )
- libcamera? ( media-libs/libcamera:= )
- loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
- lv2? ( media-libs/lilv )
- modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? ( >=media-libs/alsa-lib-1.2.10[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-libs/libpulse )
- sound-server? ( !media-sound/pulseaudio-daemon )
- roc? ( >=media-libs/roc-toolkit-0.4.0:= )
- readline? ( sys-libs/readline:= )
- selinux? ( sys-libs/libselinux )
- ssl? ( dev-libs/openssl:= )
- systemd? ( sys-apps/systemd )
- system-service? ( acct-user/pipewire )
- v4l? ( media-libs/libv4l )
- X? (
- media-libs/libcanberra
- x11-libs/libX11
- x11-libs/libXfixes
- )
- zeroconf? ( net-dns/avahi )
-"
-
-DEPEND="${RDEPEND}"
-
-PDEPEND=">=media-video/wireplumber-0.5.2"
-
-# Present RDEPEND that are currently always disabled due to the PW
-# code using them being required to be disabled by Gentoo guidelines
-# (i.e. developer binaries not meant for users) and unready code
-# media-libs/libsdl2
-# >=media-libs/vulkan-loader-1.1.69
-#
-# Ditto for DEPEND
-# >=dev-util/vulkan-headers-1.1.69
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
-)
-
-pkg_setup() {
- if use doc || use man ; then
- python-any-r1_pkg_setup
- fi
-}
-
-src_prepare() {
- default
-
- # Used for upstream backports
- if [[ ${PV} != *9999 && -d "${FILESDIR}"/${PV} ]] ; then
- eapply "${FILESDIR}"/${PV}
- fi
-}
-
-multilib_src_configure() {
- local logind=disabled
- if multilib_is_native_abi ; then
- if use systemd ; then
- logind=enabled
- elif use elogind ; then
- logind=enabled
- fi
- fi
-
- local emesonargs=(
- -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
-
- $(meson_feature dbus)
- $(meson_native_use_feature zeroconf avahi)
- $(meson_native_use_feature doc docs)
- $(meson_native_use_feature man)
- $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone
- $(meson_feature test tests)
- -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
- $(meson_feature ieee1394 libffado)
- $(meson_native_use_feature gstreamer)
- $(meson_native_use_feature gstreamer gstreamer-device-provider)
- $(meson_native_use_feature gsettings)
- $(meson_native_use_feature systemd libsystemd)
- -Dlogind=${logind}
- -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind')
-
- $(meson_native_use_feature system-service systemd-system-service)
- -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
- -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
-
- $(meson_native_use_feature systemd systemd-user-service)
- $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph
- $(meson_feature selinux)
- -Dspa-plugins=enabled
- -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible)
- -Dcompress-offload=disabled # TODO: tinycompress unpackaged
- -Daudiomixer=enabled # Matches upstream
- -Daudioconvert=enabled # Matches upstream
- $(meson_native_use_feature bluetooth bluez5)
- $(meson_native_use_feature bluetooth bluez5-backend-hsp-native)
- $(meson_native_use_feature bluetooth bluez5-backend-hfp-native)
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
- $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
- $(meson_native_use_feature bluetooth bluez5-backend-ofono)
- $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd)
- $(meson_native_use_feature bluetooth bluez5-codec-aac)
- $(meson_native_use_feature bluetooth bluez5-codec-aptx)
- $(meson_native_use_feature bluetooth bluez5-codec-lc3)
- $(meson_native_use_feature bluetooth bluez5-codec-ldac)
- $(meson_native_use_feature bluetooth bluez5-codec-g722)
- $(meson_native_use_feature bluetooth opus)
- $(meson_native_use_feature bluetooth bluez5-codec-opus)
- $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
- $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- -Dcontrol=enabled # Matches upstream
- -Daudiotestsrc=enabled # Matches upstream
- -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
- $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
- $(meson_native_use_feature flatpak)
- -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph
- $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client
- $(meson_use jack-sdk jack-devel)
- $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '')
- -Dsupport=enabled # Miscellaneous/common plugins, such as null sink
- -Devl=disabled # Matches upstream
- -Dtest=disabled # fakesink and fakesource plugins
- -Dbluez5-codec-lc3plus=disabled # unpackaged
- $(meson_feature loudness ebur128)
- $(meson_feature fftw)
- $(meson_native_use_feature lv2)
- $(meson_native_use_feature v4l v4l2)
- $(meson_native_use_feature libcamera)
- $(meson_native_use_feature roc)
- $(meson_native_use_feature readline)
- $(meson_native_use_feature ssl raop)
- -Dvideoconvert=enabled # Matches upstream
- -Dvideotestsrc=enabled # Matches upstream
- -Dvolume=enabled # Matches upstream
- -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream)
- $(meson_native_use_feature extra pw-cat)
- -Dudev=enabled
- -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
- -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install)
- -Dlibmysofa=disabled # libmysofa is unpackaged
- $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat)
- -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build
-
- # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
- # just became stable, with 5.15 being the previous LTS. Many people
- # are still on it.
- -Dpam-defaults-install=true
-
- # Just for bell sounds in X11 right now.
- $(meson_native_use_feature X x11)
- $(meson_native_use_feature X x11-xfixes)
- $(meson_native_use_feature X libcanberra)
-
- $(meson_native_use_feature pulseaudio libpulse)
-
- # TODO
- -Dsnap=disabled
- -Donnxruntime=disabled
- -Dbluez5-plc-spandsp=disabled
- -Dbluez5-codec-ldac-dec=disabled
- )
-
- # This installs the schema file for pulseaudio-daemon, iff we are replacing
- # the official sound-server
- if use !sound-server; then
- emesonargs+=( '-Dgsettings-pulse-schema=disabled' )
- else
- emesonargs+=(
- $(meson_native_use_feature gsettings gsettings-pulse-schema)
- )
- fi
-
- meson_src_configure
-}
-
-multilib_src_test() {
- meson_src_test --timeout-multiplier 10
-}
-
-multilib_src_install() {
- # Our custom DOCS do not exist in multilib source directory
- DOCS= meson_src_install
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- doman "${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
- fi
-
- if use pipewire-alsa; then
- dodir /etc/alsa/conf.d
-
- # Install pipewire conf loader hook
- insinto /usr/share/alsa/alsa.conf.d
- doins "${FILESDIR}"/99-pipewire-default-hook.conf
- eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
-
- # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222
- # And the current dosym8 -r implementation is likely affected by the same issue, too.
- dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf
- dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
- fi
-
- exeinto /etc/user/init.d
- newexe "${FILESDIR}"/pipewire.initd pipewire
- # Enable required wireplumber alsa and bluez monitors
- if use sound-server; then
- newexe "${FILESDIR}"/pipewire-pulse.initd pipewire-pulse
-
- # Install sound-server enabler for wireplumber 0.5.0+ conf syntax
- insinto /etc/wireplumber/wireplumber.conf.d
- doins "${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf
- fi
-
- if use system-service; then
- newtmpfiles - pipewire.conf <<-EOF || die
- d /run/pipewire 0755 pipewire pipewire - -
- EOF
- fi
-
- if ! use systemd; then
- insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
-
- exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r4 gentoo-pipewire-launcher
-
- doman "${FILESDIR}"/gentoo-pipewire-launcher.1
-
- # Disable pipewire-pulse if sound-server is disabled.
- if ! use sound-server ; then
- sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
- fi
-
- eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
- fi
-}
-
-pkg_postrm() {
- udev_reload
-}
-
-pkg_preinst() {
- HAD_SOUND_SERVER=0
- HAD_SYSTEM_SERVICE=0
-
- if has_version "media-video/pipewire[sound-server(-)]" ; then
- HAD_SOUND_SERVER=1
- fi
-
- if has_version "media-video/pipewire[system-service(-)]" ; then
- HAD_SYSTEM_SERVICE=1
- fi
-}
-
-pkg_postinst() {
- udev_reload
-
- use system-service && tmpfiles_process pipewire.conf
-
- local ver
- for ver in ${REPLACING_VERSIONS} ; do
- if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
- # https://bugs.gentoo.org/908490
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
- ewarn "Please restart KWin/Mutter after upgrading PipeWire."
- ewarn "Screencasting may not work until you do."
- fi
-
- # Upgrading from a previous major version may require a restart (bug #964059)
- if use sound-server && ver_test $(ver_cut 1-2 ${ver}) -lt $(ver_cut 1-2 ${PV}) ; then
- ewarn "Please restart PipeWire after upgrading to a new major version:"
- if use systemd ; then
- ewarn " $ systemctl --user daemon-reload"
- ewarn " $ systemctl restart --user pipewire.service"
- ewarn " $ systemctl restart --user pipewire-pulse.service"
- ewarn " $ systemctl restart --user wireplumber.service"
- else
- ewarn " $ gentoo-pipewire-launcher restart"
- fi
- fi
-
- if ver_test ${ver} -le 0.3.66-r1 ; then
- elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
- elog "and limits needed to function smoothly:"
- elog
- elog "1. Please make sure your user is in the 'pipewire' group for"
- elog "the best experience with realtime scheduling (PAM limits behavior)!"
- elog "You can add your account with:"
- elog " usermod -aG pipewire <youruser>"
- elog
- elog "2. For the best experience with fast user switching, it is recommended"
- elog "that you remove your user from the 'audio' group unless you rely on the"
- elog "audio group for device access control or ACLs.:"
- elog " usermod -rG audio <youruser>"
- elog
-
- if ! use jack-sdk ; then
- elog
- elog "JACK emulation is incomplete and not all programs will work. PipeWire's"
- elog "alternative libraries have been installed to a non-default location."
- elog "To use them, put pw-jack <application> before every JACK application."
- elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack"
- elog "provider is still needed to compile the JACK applications themselves."
- elog
- fi
-
- if use systemd ; then
- ewarn
- ewarn "PipeWire daemon startup has been moved to a launcher script!"
- ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no"
- ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all"
- ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)"
- ewarn
- ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from"
- ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
- ewarn "advised that a D-Bus user session is set up before starting the script."
- ewarn
- fi
-
- if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
- elog
- elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
- elog "are recommended to edit pulseaudio client configuration files:"
- elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
- elog "if it exists, and disable autospawning of the original daemon by setting:"
- elog
- elog " autospawn = no"
- elog
- elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!"
- elog
- elog "Alternatively, if replacing PulseAudio daemon is not desired, edit"
- elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant"
- elog "command:"
- elog
- elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &"
- elog
- fi
-
- if has_version 'net-misc/ofono' ; then
- ewarn "Native backend has become default. Please disable oFono via:"
- if systemd_is_booted ; then
- ewarn "systemctl disable ofono"
- else
- ewarn "rc-update delete ofono"
- fi
- fi
- fi
- done
-
- if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- # TODO: We could drop most of this if we set up systemd presets?
- # They're worth looking into because right now, the out-of-the-box experience
- # is automatic on OpenRC, while it needs manual intervention on systemd.
- if use sound-server && use systemd ; then
- elog
- elog "When switching from PulseAudio, you may need to disable PulseAudio:"
- elog
- elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
- elog
- elog "To use PipeWire, the user units must be manually enabled"
- elog "by running this command as each user you use for desktop activities:"
- elog
- elog " systemctl --user enable pipewire.socket pipewire-pulse.socket"
- elog
- elog "A reboot is recommended to avoid interferences from still running"
- elog "PulseAudio daemon."
- elog
- elog "Both new users and those upgrading need to enable WirePlumber"
- elog "for relevant users:"
- elog
- elog " systemctl --user disable pipewire-media-session.service"
- elog " systemctl --user --force enable wireplumber.service"
- elog
- elog "Root user may replace --user with --global to change system default"
- elog "configuration for all of the above commands."
- elog
- fi
-
- if ! use sound-server ; then
- ewarn
- ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
- ewarn "your sound, please enable it. See the wiki at"
- ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
- ewarn "for more details."
- ewarn
- fi
- fi
-
- if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- ewarn
- ewarn "You have enabled the system-service USE flag, which installs"
- ewarn "the system-wide systemd units that enable PipeWire to run as a system"
- ewarn "service. This is more than likely NOT what you want. You are strongly"
- ewarn "advised not to enable this mode and instead stick with systemd user"
- ewarn "units. The default configuration files will likely not work out of the"
- ewarn "box, and you are on your own with configuration."
- ewarn
- fi
-
- elog "For latest tips and tricks, troubleshooting information, and documentation"
- elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire"
- elog
-
- optfeature_header "The following can be installed for optional runtime features:"
- optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
-
- if use sound-server && ! use pipewire-alsa; then
- optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
- fi
-}
diff --git a/media-video/pipewire/pipewire-1.6.7.ebuild b/media-video/pipewire/pipewire-1.6.7.ebuild
deleted file mode 100644
index 58a0b1833c72..000000000000
--- a/media-video/pipewire/pipewire-1.6.7.ebuild
+++ /dev/null
@@ -1,570 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# 1. Please regularly check (even at the point of bumping) Fedora's packaging
-# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
-#
-# 2. Upstream also sometimes amend release notes for the previous release to mention
-# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
-#
-# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
-# continue to move quickly. It's not uncommon for fixes to be made shortly
-# after releases.
-
-# TODO: Maybe get upstream to produce `meson dist` tarballs:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
-#
-# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
-# Set to 1 if prebuilt, 0 if not
-# (the construct below is to allow overriding from env for script)
-: ${PIPEWIRE_DOCS_PREBUILT:=1}
-
-PIPEWIRE_DOCS_PREBUILT_DEV=sam
-PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0"
-# Default to generating docs (inc. man pages) if no prebuilt; overridden later
-PIPEWIRE_DOCS_USEFLAG="+man"
-PYTHON_COMPAT=( python3_{13..14} )
-inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
-
-if [[ ${PV} == 9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- inherit git-r3
-elif [[ ${PV} == *.9999 ]] ; then
- PIPEWIRE_DOCS_PREBUILT=0
- EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
- EGIT_BRANCH="${PV%.*}"
- inherit git-r3
-else
- if [[ ${PV} == *_p* ]] ; then
- MY_COMMIT=""
- SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
- S="${WORKDIR}"/${PN}-${MY_COMMIT}
- else
- SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
- fi
-
- if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- SRC_URI+=" !man? ( https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz )"
- PIPEWIRE_DOCS_USEFLAG="man"
- fi
-
- KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
-fi
-
-DESCRIPTION="Multimedia processing graphs"
-HOMEPAGE="https://pipewire.org/"
-
-LICENSE="MIT LGPL-2.1+ GPL-2"
-# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
-SLOT="0/0.4"
-IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra ffmpeg fftw flatpak gstreamer gsettings"
-IUSE+=" ieee1394 jack-client jack-sdk libcamera loudness lv2 modemmanager pipewire-alsa readline roc selinux"
-IUSE+=" pulseaudio sound-server ssl system-service systemd test v4l X zeroconf"
-
-# Once replacing system JACK libraries is possible, it's likely that
-# jack-client IUSE will need blocking to avoid users accidentally
-# configuring their systems to send PW sink output to the emulated
-# JACK's sink - doing so is likely to yield no audio, cause a CPU
-# cycles consuming loop (and may even cause GUI crashes)!
-
-# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
-# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
-# which provides adequate guarantee that alsa-lib will be able to provide audio services.
-# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
-# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
-# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
-# TODO: should we add "pulseaudio? ( sound-server)"? is libpipewire-module-pulse-tunnel.so useful without sound-server?
-REQUIRED_USE="
- ffmpeg? ( extra )
- bluetooth? ( dbus )
- jack-sdk? ( !jack-client )
- modemmanager? ( bluetooth )
- system-service? ( systemd )
- !sound-server? ( !pipewire-alsa )
- jack-client? ( dbus )
-"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- >=dev-build/meson-0.59
- virtual/pkgconfig
- dbus? ( >=dev-util/gdbus-codegen-2.80.5-r1 )
- doc? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- media-gfx/graphviz
- )
- man? (
- ${PYTHON_DEPS}
- >=app-text/doxygen-1.9.8
- )
-"
-# * While udev could technically be optional, it's needed for a number of options,
-# and not really worth it, bug #877769.
-#
-# * Supports both new webrtc-audio-processing:2 and legacy webrtc-audio-processing:1.
-#
-# * Older Doxygen (<1.9.8) may work but inferior output is created:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
-# - https://github.com/doxygen/doxygen/issues/9254
-RDEPEND="
- acct-group/audio
- acct-group/pipewire
- media-libs/alsa-lib[${MULTILIB_USEDEP}]
- sys-libs/ncurses:=[unicode(+)]
- virtual/libintl[${MULTILIB_USEDEP}]
- virtual/libudev[${MULTILIB_USEDEP}]
- bluetooth? (
- dev-libs/glib
- media-libs/fdk-aac
- media-sound/liblc3
- media-libs/libldac
- media-libs/libfreeaptx
- media-libs/opus
- media-libs/sbc
- >=net-wireless/bluez-4.101:=
- virtual/libusb:1
- )
- elogind? ( sys-auth/elogind )
- dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- echo-cancel? (
- media-libs/webrtc-audio-processing:=
- || (
- >=media-libs/webrtc-audio-processing-2.0:2
- >=media-libs/webrtc-audio-processing-1.2:1
- )
- )
- extra? ( >=media-libs/libsndfile-1.0.20 )
- ffmpeg? ( media-video/ffmpeg:= )
- fftw? ( sci-libs/fftw:3.0=[${MULTILIB_USEDEP}] )
- flatpak? ( dev-libs/glib )
- gstreamer? (
- >=dev-libs/glib-2.32.0:2
- >=media-libs/gstreamer-1.10.0:1.0
- media-libs/gst-plugins-base:1.0
- )
- gsettings? ( >=dev-libs/glib-2.26.0:2 )
- ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
- jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
- jack-sdk? (
- !media-sound/jack-audio-connection-kit
- !media-sound/jack2
- )
- libcamera? ( media-libs/libcamera:= )
- loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
- lv2? ( media-libs/lilv )
- modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? ( >=media-libs/alsa-lib-1.2.10[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-libs/libpulse )
- sound-server? ( !media-sound/pulseaudio-daemon )
- roc? ( >=media-libs/roc-toolkit-0.4.0:= )
- readline? ( sys-libs/readline:= )
- selinux? ( sys-libs/libselinux )
- ssl? ( dev-libs/openssl:= )
- systemd? ( sys-apps/systemd )
- system-service? ( acct-user/pipewire )
- v4l? ( media-libs/libv4l )
- X? (
- media-libs/libcanberra
- x11-libs/libX11
- x11-libs/libXfixes
- )
- zeroconf? ( net-dns/avahi )
-"
-
-DEPEND="${RDEPEND}"
-
-PDEPEND=">=media-video/wireplumber-0.5.2"
-
-# Present RDEPEND that are currently always disabled due to the PW
-# code using them being required to be disabled by Gentoo guidelines
-# (i.e. developer binaries not meant for users) and unready code
-# media-libs/libsdl2
-# >=media-libs/vulkan-loader-1.1.69
-#
-# Ditto for DEPEND
-# >=dev-util/vulkan-headers-1.1.69
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
-)
-
-pkg_setup() {
- if use doc || use man ; then
- python-any-r1_pkg_setup
- fi
-}
-
-src_prepare() {
- default
-
- # Used for upstream backports
- if [[ ${PV} != *9999 && -d "${FILESDIR}"/${PV} ]] ; then
- eapply "${FILESDIR}"/${PV}
- fi
-}
-
-multilib_src_configure() {
- local logind=disabled
- if multilib_is_native_abi ; then
- if use systemd ; then
- logind=enabled
- elif use elogind ; then
- logind=enabled
- fi
- fi
-
- local emesonargs=(
- -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
-
- $(meson_feature dbus)
- $(meson_native_use_feature zeroconf avahi)
- $(meson_native_use_feature doc docs)
- $(meson_native_use_feature man)
- $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone
- $(meson_feature test tests)
- -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
- $(meson_feature ieee1394 libffado)
- $(meson_native_use_feature gstreamer)
- $(meson_native_use_feature gstreamer gstreamer-device-provider)
- $(meson_native_use_feature gsettings)
- $(meson_native_use_feature systemd libsystemd)
- -Dlogind=${logind}
- -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind')
-
- $(meson_native_use_feature system-service systemd-system-service)
- -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
- -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
-
- $(meson_native_use_feature systemd systemd-user-service)
- $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph
- $(meson_feature selinux)
- -Dspa-plugins=enabled
- -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible)
- -Dcompress-offload=disabled # TODO: tinycompress unpackaged
- -Daudiomixer=enabled # Matches upstream
- -Daudioconvert=enabled # Matches upstream
- $(meson_native_use_feature bluetooth bluez5)
- $(meson_native_use_feature bluetooth bluez5-backend-hsp-native)
- $(meson_native_use_feature bluetooth bluez5-backend-hfp-native)
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
- $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
- $(meson_native_use_feature bluetooth bluez5-backend-ofono)
- $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd)
- $(meson_native_use_feature bluetooth bluez5-codec-aac)
- $(meson_native_use_feature bluetooth bluez5-codec-aptx)
- $(meson_native_use_feature bluetooth bluez5-codec-lc3)
- $(meson_native_use_feature bluetooth bluez5-codec-ldac)
- $(meson_native_use_feature bluetooth bluez5-codec-g722)
- $(meson_native_use_feature bluetooth opus)
- $(meson_native_use_feature bluetooth bluez5-codec-opus)
- $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
- $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- -Dcontrol=enabled # Matches upstream
- -Daudiotestsrc=enabled # Matches upstream
- -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
- $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
- $(meson_native_use_feature flatpak)
- -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph
- $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client
- $(meson_use jack-sdk jack-devel)
- $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '')
- -Dsupport=enabled # Miscellaneous/common plugins, such as null sink
- -Devl=disabled # Matches upstream
- -Dtest=disabled # fakesink and fakesource plugins
- -Dbluez5-codec-lc3plus=disabled # unpackaged
- $(meson_feature loudness ebur128)
- $(meson_feature fftw)
- $(meson_native_use_feature lv2)
- $(meson_native_use_feature v4l v4l2)
- $(meson_native_use_feature libcamera)
- $(meson_native_use_feature roc)
- $(meson_native_use_feature readline)
- $(meson_native_use_feature ssl raop)
- -Dvideoconvert=enabled # Matches upstream
- -Dvideotestsrc=enabled # Matches upstream
- -Dvolume=enabled # Matches upstream
- -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream)
- $(meson_native_use_feature extra pw-cat)
- -Dudev=enabled
- -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
- -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install)
- -Dlibmysofa=disabled # libmysofa is unpackaged
- $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat)
- -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build
-
- # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
- # just became stable, with 5.15 being the previous LTS. Many people
- # are still on it.
- -Dpam-defaults-install=true
-
- # Just for bell sounds in X11 right now.
- $(meson_native_use_feature X x11)
- $(meson_native_use_feature X x11-xfixes)
- $(meson_native_use_feature X libcanberra)
-
- $(meson_native_use_feature pulseaudio libpulse)
-
- # TODO
- -Dsnap=disabled
- -Donnxruntime=disabled
- -Dbluez5-plc-spandsp=disabled
- -Dbluez5-codec-ldac-dec=disabled
- )
-
- # This installs the schema file for pulseaudio-daemon, iff we are replacing
- # the official sound-server
- if use !sound-server; then
- emesonargs+=( '-Dgsettings-pulse-schema=disabled' )
- else
- emesonargs+=(
- $(meson_native_use_feature gsettings gsettings-pulse-schema)
- )
- fi
-
- meson_src_configure
-}
-
-multilib_src_test() {
- meson_src_test --timeout-multiplier 10
-}
-
-multilib_src_install() {
- # Our custom DOCS do not exist in multilib source directory
- DOCS= meson_src_install
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
- doman "${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
- fi
-
- if use pipewire-alsa; then
- dodir /etc/alsa/conf.d
-
- # Install pipewire conf loader hook
- insinto /usr/share/alsa/alsa.conf.d
- doins "${FILESDIR}"/99-pipewire-default-hook.conf
- eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
-
- # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222
- # And the current dosym8 -r implementation is likely affected by the same issue, too.
- dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf
- dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
- fi
-
- exeinto /etc/user/init.d
- newexe "${FILESDIR}"/pipewire.initd pipewire
- # Enable required wireplumber alsa and bluez monitors
- if use sound-server; then
- newexe "${FILESDIR}"/pipewire-pulse.initd pipewire-pulse
-
- # Install sound-server enabler for wireplumber 0.5.0+ conf syntax
- insinto /etc/wireplumber/wireplumber.conf.d
- doins "${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf
- fi
-
- if use system-service; then
- newtmpfiles - pipewire.conf <<-EOF || die
- d /run/pipewire 0755 pipewire pipewire - -
- EOF
- fi
-
- if ! use systemd; then
- insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
-
- exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r4 gentoo-pipewire-launcher
-
- doman "${FILESDIR}"/gentoo-pipewire-launcher.1
-
- # Disable pipewire-pulse if sound-server is disabled.
- if ! use sound-server ; then
- sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
- fi
-
- eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
- fi
-}
-
-pkg_postrm() {
- udev_reload
-}
-
-pkg_preinst() {
- HAD_SOUND_SERVER=0
- HAD_SYSTEM_SERVICE=0
-
- if has_version "media-video/pipewire[sound-server(-)]" ; then
- HAD_SOUND_SERVER=1
- fi
-
- if has_version "media-video/pipewire[system-service(-)]" ; then
- HAD_SYSTEM_SERVICE=1
- fi
-}
-
-pkg_postinst() {
- udev_reload
-
- use system-service && tmpfiles_process pipewire.conf
-
- local ver
- for ver in ${REPLACING_VERSIONS} ; do
- if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
- # https://bugs.gentoo.org/908490
- # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
- ewarn "Please restart KWin/Mutter after upgrading PipeWire."
- ewarn "Screencasting may not work until you do."
- fi
-
- # Upgrading from a previous major version may require a restart (bug #964059)
- if use sound-server && ver_test $(ver_cut 1-2 ${ver}) -lt $(ver_cut 1-2 ${PV}) ; then
- ewarn "Please restart PipeWire after upgrading to a new major version:"
- if use systemd ; then
- ewarn " $ systemctl --user daemon-reload"
- ewarn " $ systemctl restart --user pipewire.service"
- ewarn " $ systemctl restart --user pipewire-pulse.service"
- ewarn " $ systemctl restart --user wireplumber.service"
- else
- ewarn " $ gentoo-pipewire-launcher restart"
- fi
- fi
-
- if ver_test ${ver} -le 0.3.66-r1 ; then
- elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
- elog "and limits needed to function smoothly:"
- elog
- elog "1. Please make sure your user is in the 'pipewire' group for"
- elog "the best experience with realtime scheduling (PAM limits behavior)!"
- elog "You can add your account with:"
- elog " usermod -aG pipewire <youruser>"
- elog
- elog "2. For the best experience with fast user switching, it is recommended"
- elog "that you remove your user from the 'audio' group unless you rely on the"
- elog "audio group for device access control or ACLs.:"
- elog " usermod -rG audio <youruser>"
- elog
-
- if ! use jack-sdk ; then
- elog
- elog "JACK emulation is incomplete and not all programs will work. PipeWire's"
- elog "alternative libraries have been installed to a non-default location."
- elog "To use them, put pw-jack <application> before every JACK application."
- elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack"
- elog "provider is still needed to compile the JACK applications themselves."
- elog
- fi
-
- if use systemd ; then
- ewarn
- ewarn "PipeWire daemon startup has been moved to a launcher script!"
- ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no"
- ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all"
- ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)"
- ewarn
- ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from"
- ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
- ewarn "advised that a D-Bus user session is set up before starting the script."
- ewarn
- fi
-
- if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
- elog
- elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
- elog "are recommended to edit pulseaudio client configuration files:"
- elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
- elog "if it exists, and disable autospawning of the original daemon by setting:"
- elog
- elog " autospawn = no"
- elog
- elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!"
- elog
- elog "Alternatively, if replacing PulseAudio daemon is not desired, edit"
- elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant"
- elog "command:"
- elog
- elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &"
- elog
- fi
-
- if has_version 'net-misc/ofono' ; then
- ewarn "Native backend has become default. Please disable oFono via:"
- if systemd_is_booted ; then
- ewarn "systemctl disable ofono"
- else
- ewarn "rc-update delete ofono"
- fi
- fi
- fi
- done
-
- if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- # TODO: We could drop most of this if we set up systemd presets?
- # They're worth looking into because right now, the out-of-the-box experience
- # is automatic on OpenRC, while it needs manual intervention on systemd.
- if use sound-server && use systemd ; then
- elog
- elog "When switching from PulseAudio, you may need to disable PulseAudio:"
- elog
- elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
- elog
- elog "To use PipeWire, the user units must be manually enabled"
- elog "by running this command as each user you use for desktop activities:"
- elog
- elog " systemctl --user enable pipewire.socket pipewire-pulse.socket"
- elog
- elog "A reboot is recommended to avoid interferences from still running"
- elog "PulseAudio daemon."
- elog
- elog "Both new users and those upgrading need to enable WirePlumber"
- elog "for relevant users:"
- elog
- elog " systemctl --user disable pipewire-media-session.service"
- elog " systemctl --user --force enable wireplumber.service"
- elog
- elog "Root user may replace --user with --global to change system default"
- elog "configuration for all of the above commands."
- elog
- fi
-
- if ! use sound-server ; then
- ewarn
- ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
- ewarn "your sound, please enable it. See the wiki at"
- ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
- ewarn "for more details."
- ewarn
- fi
- fi
-
- if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
- ewarn
- ewarn "You have enabled the system-service USE flag, which installs"
- ewarn "the system-wide systemd units that enable PipeWire to run as a system"
- ewarn "service. This is more than likely NOT what you want. You are strongly"
- ewarn "advised not to enable this mode and instead stick with systemd user"
- ewarn "units. The default configuration files will likely not work out of the"
- ewarn "box, and you are on your own with configuration."
- ewarn
- fi
-
- elog "For latest tips and tricks, troubleshooting information, and documentation"
- elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire"
- elog
-
- optfeature_header "The following can be installed for optional runtime features:"
- optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
-
- if use sound-server && ! use pipewire-alsa; then
- optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
- fi
-}
diff --git a/media-video/pipewire/pipewire-1.6.6.ebuild b/media-video/pipewire/pipewire-1.6.9.ebuild
index 773e2bb5aa21..8a3555ca6e47 100644
--- a/media-video/pipewire/pipewire-1.6.6.ebuild
+++ b/media-video/pipewire/pipewire-1.6.9.ebuild
@@ -63,7 +63,7 @@ LICENSE="MIT LGPL-2.1+ GPL-2"
SLOT="0/0.4"
IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra ffmpeg fftw flatpak gstreamer gsettings"
IUSE+=" ieee1394 jack-client jack-sdk libcamera loudness lv2 modemmanager pipewire-alsa readline roc selinux"
-IUSE+=" pulseaudio sound-server ssl system-service systemd test v4l X zeroconf"
+IUSE+=" pulseaudio sound-server sofa ssl system-service systemd test v4l X zeroconf"
# Once replacing system JACK libraries is possible, it's likely that
# jack-client IUSE will need blocking to avoid users accidentally
@@ -155,7 +155,7 @@ RDEPEND="
!media-sound/jack-audio-connection-kit
!media-sound/jack2
)
- libcamera? ( media-libs/libcamera:= )
+ libcamera? ( >=media-libs/libcamera-0.6.0:= )
loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
lv2? ( media-libs/lilv )
modemmanager? ( >=net-misc/modemmanager-1.10.0 )
@@ -165,6 +165,7 @@ RDEPEND="
roc? ( >=media-libs/roc-toolkit-0.4.0:= )
readline? ( sys-libs/readline:= )
selinux? ( sys-libs/libselinux )
+ sofa? ( media-libs/libmysofa )
ssl? ( dev-libs/openssl:= )
systemd? ( sys-apps/systemd )
system-service? ( acct-user/pipewire )
@@ -294,7 +295,7 @@ multilib_src_configure() {
-Dudev=enabled
-Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
-Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install)
- -Dlibmysofa=disabled # libmysofa is unpackaged
+ $(meson_native_use_feature sofa libmysofa)
$(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat)
-Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build
diff --git a/media-video/pipewire/pipewire-1.6.9999.ebuild b/media-video/pipewire/pipewire-1.6.9999.ebuild
index 606bb4131b8d..8a3555ca6e47 100644
--- a/media-video/pipewire/pipewire-1.6.9999.ebuild
+++ b/media-video/pipewire/pipewire-1.6.9999.ebuild
@@ -155,7 +155,7 @@ RDEPEND="
!media-sound/jack-audio-connection-kit
!media-sound/jack2
)
- libcamera? ( media-libs/libcamera:= )
+ libcamera? ( >=media-libs/libcamera-0.6.0:= )
loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
lv2? ( media-libs/lilv )
modemmanager? ( >=net-misc/modemmanager-1.10.0 )
diff --git a/media-video/pipewire/pipewire-9999.ebuild b/media-video/pipewire/pipewire-9999.ebuild
index 606bb4131b8d..8a3555ca6e47 100644
--- a/media-video/pipewire/pipewire-9999.ebuild
+++ b/media-video/pipewire/pipewire-9999.ebuild
@@ -155,7 +155,7 @@ RDEPEND="
!media-sound/jack-audio-connection-kit
!media-sound/jack2
)
- libcamera? ( media-libs/libcamera:= )
+ libcamera? ( >=media-libs/libcamera-0.6.0:= )
loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
lv2? ( media-libs/lilv )
modemmanager? ( >=net-misc/modemmanager-1.10.0 )
diff --git a/media-video/wireplumber/Manifest b/media-video/wireplumber/Manifest
index a2a7cebc9a56..63af330cf7ed 100644
--- a/media-video/wireplumber/Manifest
+++ b/media-video/wireplumber/Manifest
@@ -1,6 +1,4 @@
-DIST wireplumber-0.5.13-docs.tar.xz 4772 BLAKE2B 09a5ea2b7b3886f11829e94446bcbf35e1c0fa514398d0b1f8d1a2a1d52764f35adad561f815031eca8e12444ae16eb60a59c81fd5ff08b1d7a601374dfe74ab SHA512 a764f71f33fe377b16ad572325885df26b99ba107201960d5f4a606d893b3a80d3a002650d23df0aab81fd5ef339ea2ee8e6d3963decb392994f19a1aa01dc24
-DIST wireplumber-0.5.14-docs.tar.xz 4772 BLAKE2B d620955580834188b44064692e49ba991c14d3834a291a5e3cbd94e58694a4eb677735eccc3d1d41b3754ad7213e9709abf148d703ea20699b0dc83e3a1def5f SHA512 76eb42ec3409ba8ae5f7e1ae76052a52da46a078ce39b2b0f97603f0208197d34d4c954f1ed8f7a160f831cb0c3c6d62f392230a41396cb8785f74af291161f5
-DIST wireplumber-0.5.14.tar.bz2 454730 BLAKE2B 07500cf16a7a1ad57b937e7ff8970541178f201adff04ff35f666cf6ce5a96d34bd24779b9400006b3b50ad874d3164109483f055bb4fa822d6988cba661e4e6 SHA512 49c2813b6374a327e1d15b79a56aa8a0f31049f4b7f13cc3cc85858dc498099556928d8347080ad3135c7b0575334deeaf343cdec6ecfe6a7734f442b97d4b40
DIST wireplumber-0.5.15-docs.tar.xz 4772 BLAKE2B 5e84c40043d7bd634e9b73a490f992a311da8a90647ad9049e75b38b9726b629d9be03db59361f01e12147d05e14fd5f242d3d1f5cac3bd369d17c807f48cb5f SHA512 a8483c3f1b1a0aaae9a57d0ab9c074f10ace170528ab201699c69c1091c46741428ae33b49e46b8cf264258361ef9f1cacac08542475a92e2e2b41c0e03c0b66
DIST wireplumber-0.5.15.tar.bz2 472690 BLAKE2B fad2209355ac353416b89d31c5e6a42a37b3a5c0dc7f4daa90ad4608a2d542f98dc9124b1fd3b456928f18a4dc3ef0a2850abc9fae171feeeaf9ebb69f872887 SHA512 2923a5269bfe3656eba9905f569b73ae36f821417ea8d3807523f17346ccaffe14b243618ae3b55a087b22fb04745967cb4e348d38ebd82e0a73615f17db3d3c
-DIST wireplumber-83d08dfa437095373f9e4e156b6ca4f9e0567585.tar.bz2 449265 BLAKE2B e0fe603c1c60f43bdabcf6d60dd1861c36258c2d833ea5176b572139d78f52a9f9b8e53a68adff61fe55e2be54bceec61443b003a57a174fea1bcb9dc27837b6 SHA512 6e30bdaaa88ec5ae3399393d79129585267bf04407c59b3fa528bb72c1780f4d8e9933b3ee368ab443a86061a73d10f9dc03c5c2ad46205c80effa370346cd52
+DIST wireplumber-0.5.17-docs.tar.xz 7868 BLAKE2B df02f072c71a21322e508f95ac299a5351b7f5a73b928bdaa53b904ce88bea63e197bbf1ec321b30cf675487c7df0e7a9756719a237c73f1f2953aafb2f40271 SHA512 7c538105fc0459fdae1177fbc748a90077b4a64a60c55ddcd7b761a1e61fee414f23fdcc0b8d25188e1b5484ce4135f595253c3f7c92dd4c7a19decb51ad717e
+DIST wireplumber-0.5.17.tar.bz2 533495 BLAKE2B 121d4d60c481c1bd87151ffa4be88a4f85c566967dd4d531fa8796dc0e0c9b25caa8316f722d62967de8b21c20ed0ebfa979f48f808413dfde4a35390b995ffc SHA512 ef795532a51e39aa86f40874e15d6216664255e7a9b64ced7bf54711a531e8bf0ee77907dc5868b64765b95a7f4ecc3ba73593590ed407ca4ecbf18e0e3d1e66
diff --git a/media-video/wireplumber/files/wireplumber-0.5.14-bt-autoswitch.patch b/media-video/wireplumber/files/wireplumber-0.5.14-bt-autoswitch.patch
deleted file mode 100644
index 2a37c3b8641b..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.5.14-bt-autoswitch.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/wireplumber/-/work_items/932
-https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/78bd42cad84f9cd174616a98aecbc78dbe67d121
-
-From 78bd42cad84f9cd174616a98aecbc78dbe67d121 Mon Sep 17 00:00:00 2001
-From: Julian Bouzas <julian.bouzas@collabora.com>
-Date: Mon, 30 Mar 2026 07:33:44 -0400
-Subject: [PATCH] bluez: Don't set bluez5.autoswitch-routes on BT devices
-
-This seems to cause some issues with BT profile autoswitch.
-
-See #932
----
- src/scripts/monitors/bluez.lua | 10 ----------
- 1 file changed, 10 deletions(-)
-
-diff --git a/src/scripts/monitors/bluez.lua b/src/scripts/monitors/bluez.lua
-index 347e1bc7..5ba70eb2 100644
---- a/src/scripts/monitors/bluez.lua
-+++ b/src/scripts/monitors/bluez.lua
-@@ -474,16 +474,6 @@ function checkProfiles (dev)
- end
- end
-
-- -- Setup Route/Port correctly for loopback nodes
-- if has_headset_profile then
-- local param = Pod.Object ({
-- "Spa:Pod:Object:Param:Props",
-- "Props",
-- params = Pod.Struct ({ "bluez5.autoswitch-routes", true })
-- })
-- dev:set_param("Props", param)
-- end
--
- if has_headset_profile then
- -- Always create the source loopback device if autoswitch is enabled.
- -- Otherwise, only create the source loopback device if the current profile
---
-GitLab
diff --git a/media-video/wireplumber/wireplumber-0.5.14.ebuild b/media-video/wireplumber/wireplumber-0.5.14.ebuild
deleted file mode 100644
index 65809a46f9dc..000000000000
--- a/media-video/wireplumber/wireplumber-0.5.14.ebuild
+++ /dev/null
@@ -1,175 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# 1. Please regularly check (even at the point of bumping) Fedora's packaging
-# for needed backports at https://src.fedoraproject.org/rpms/wireplumber/tree/rawhide
-#
-# 2. Keep an eye on git master (for both PipeWire and WirePlumber) as things
-# continue to move quickly. It's not uncommon for fixes to be made shortly
-# after releases.
-
-# TODO: Maybe get upstream to produce `meson dist` tarballs:
-# - https://gitlab.freedesktop.org/wireplumber/wireplumber/-/issues/3663
-# - https://gitlab.freedesktop.org/wireplumber/wireplumber/-/merge_requests/1788
-#
-# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-wireplumber-docs
-# Set to 1 if prebuilt, 0 if not
-# (the construct below is to allow overriding from env for script)
-: ${WIREPLUMBER_DOCS_PREBUILT:=1}
-
-WIREPLUMBER_DOCS_PREBUILT_DEV=sam
-WIREPLUMBER_DOCS_VERSION="$(ver_cut 1-3)"
-# Default to generating docs (inc. man pages) if no prebuilt; overridden later
-WIREPLUMBER_DOCS_USEFLAG="+doc"
-
-LUA_COMPAT=( lua5-{1,3,4} luajit )
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit lua-single meson python-any-r1 systemd
-
-DESCRIPTION="Replacement for pipewire-media-session"
-HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber"
-
-if [[ ${PV} == 9999 ]]; then
- EGIT_REPO_URI="https://gitlab.freedesktop.org/pipewire/${PN}.git"
- EGIT_BRANCH="master"
- inherit git-r3
-else
- if [[ ${PV} == *_p* ]] ; then
- WIREPLUMBER_COMMIT="83d08dfa437095373f9e4e156b6ca4f9e0567585"
- SRC_URI="https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/${WIREPLUMBER_COMMIT}/wireplumber-${WIREPLUMBER_COMMIT}.tar.bz2"
- S="${WORKDIR}"/${PN}-${WIREPLUMBER_COMMIT}
- else
- SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.bz2"
- fi
-
- if [[ ${WIREPLUMBER_DOCS_PREBUILT} == 1 ]] ; then
- SRC_URI+=" !doc? ( https://dev.gentoo.org/~${WIREPLUMBER_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${WIREPLUMBER_DOCS_VERSION}-docs.tar.xz )"
- WIREPLUMBER_DOCS_USEFLAG="doc"
- fi
-
- KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86"
-fi
-
-LICENSE="MIT"
-SLOT="0/0.5"
-IUSE="${WIREPLUMBER_DOCS_USEFLAG} doc elogind system-service systemd test"
-
-REQUIRED_USE="
- ${LUA_REQUIRED_USE}
- ?? ( elogind systemd )
- system-service? ( systemd )
-"
-
-RESTRICT="!test? ( test )"
-
-# introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2 ) is valid but likely only used for doc building
-BDEPEND="
- ${PYTHON_DEPS}
- dev-libs/glib
- >=dev-util/gdbus-codegen-2.80.5-r1
- dev-util/glib-utils
- sys-devel/gettext
- doc? (
- $(python_gen_any_dep '
- dev-python/breathe[${PYTHON_USEDEP}]
- dev-python/sphinx[${PYTHON_USEDEP}]
- dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
- ')
- )
- test? ( sys-apps/dbus )
-"
-DEPEND="
- ${LUA_DEPS}
- >=dev-libs/glib-2.68
- >=media-video/pipewire-1.0.5-r1:=
- virtual/libintl
- elogind? ( sys-auth/elogind )
- systemd? ( sys-apps/systemd )
-"
-RDEPEND="
- ${DEPEND}
- system-service? (
- acct-user/pipewire
- acct-group/pipewire
- )
-"
-
-DOCS=( {NEWS,README}.rst )
-
-PATCHES=(
- # Defer enabling sound server parts to media-video/pipewire
- # TODO: Soon, we should be able to migrate to just a dropin at
- # /usr/share. See https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/652#note_2399735.
- "${FILESDIR}"/${PN}-0.5.6-config-disable-sound-server-parts.patch
-
- "${FILESDIR}"/${P}-bt-autoswitch.patch
-)
-
-python_check_deps() {
- if use doc; then
- python_has_version \
- "dev-python/sphinx[${PYTHON_USEDEP}]" \
- "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" \
- "dev-python/breathe[${PYTHON_USEDEP}]" || return 1
- else
- return 0
- fi
-}
-
-pkg_setup() {
- lua-single_pkg_setup
- python-any-r1_pkg_setup
-}
-
-src_configure() {
- local emesonargs=(
- -Ddaemon=true
- -Dtools=true
- -Dmodules=true
- $(meson_feature doc)
- # Only used for Sphinx doc generation
- -Dintrospection=disabled
- -Dsystem-lua=true
- -Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version))
- $(meson_feature elogind)
- $(meson_feature systemd)
- $(meson_use system-service systemd-system-service)
- $(meson_use systemd systemd-user-service)
- -Dsystemd-system-unit-dir=$(systemd_get_systemunitdir)
- -Dsystemd-user-unit-dir=$(systemd_get_userunitdir)
- $(meson_use test tests)
- $(meson_use test dbus-tests)
- )
-
- meson_src_configure
-}
-
-src_install() {
- meson_src_install
-
- if ! use doc && [[ ${WIREPLUMBER_DOCS_PREBUILT} == 1 ]] ; then
- doman "${WORKDIR}"/${PN}-${WIREPLUMBER_DOCS_VERSION}-docs/man/*/*.[0-8]
- fi
-
- exeinto /etc/user/init.d
- newexe "${FILESDIR}"/wireplumber.initd wireplumber
-
- mv "${ED}"/usr/share/doc/wireplumber/* "${ED}"/usr/share/doc/${PF} || die
- rmdir "${ED}"/usr/share/doc/wireplumber || die
-}
-
-pkg_postinst() {
- if use system-service; then
- ewarn
- ewarn "WARNING: you have enabled the system-service USE flag, which installs"
- ewarn "the system-wide systemd units that enable WirePlumber to run as a system"
- ewarn "service. This is more than likely NOT what you want. You are strongly"
- ewarn "advised not to enable this mode and instead stick with systemd user"
- ewarn "units. The default configuration files will likely not work out of"
- ewarn "box, and you are on your own with configuration."
- ewarn
- fi
-}
diff --git a/media-video/wireplumber/wireplumber-0.5.13_p20260216.ebuild b/media-video/wireplumber/wireplumber-0.5.17.ebuild
index 68d370758cc9..b4872b2c6c21 100644
--- a/media-video/wireplumber/wireplumber-0.5.13_p20260216.ebuild
+++ b/media-video/wireplumber/wireplumber-0.5.17.ebuild
@@ -19,7 +19,6 @@ EAPI=8
# (the construct below is to allow overriding from env for script)
: ${WIREPLUMBER_DOCS_PREBUILT:=1}
-WIREPLUMBER_DOCS_PREBUILT_DEV=sam
WIREPLUMBER_DOCS_VERSION="$(ver_cut 1-3)"
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
WIREPLUMBER_DOCS_USEFLAG="+doc"
@@ -46,11 +45,11 @@ else
fi
if [[ ${WIREPLUMBER_DOCS_PREBUILT} == 1 ]] ; then
- SRC_URI+=" !doc? ( https://dev.gentoo.org/~${WIREPLUMBER_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${WIREPLUMBER_DOCS_VERSION}-docs.tar.xz )"
+ SRC_URI+=" !doc? ( https://distfiles.gentoo.org/pub/dev/sam@gentoo.org/${CATEGORY}/${PN}/${PN}-${WIREPLUMBER_DOCS_VERSION}-docs.tar.xz )"
WIREPLUMBER_DOCS_USEFLAG="doc"
fi
- KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
LICENSE="MIT"
diff --git a/media-video/wireplumber/wireplumber-9999.ebuild b/media-video/wireplumber/wireplumber-9999.ebuild
index 0c3b8bd19085..b4872b2c6c21 100644
--- a/media-video/wireplumber/wireplumber-9999.ebuild
+++ b/media-video/wireplumber/wireplumber-9999.ebuild
@@ -17,9 +17,8 @@ EAPI=8
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-wireplumber-docs
# Set to 1 if prebuilt, 0 if not
# (the construct below is to allow overriding from env for script)
-: ${WIREPLUMBER_DOCS_PREBUILT:=0}
+: ${WIREPLUMBER_DOCS_PREBUILT:=1}
-WIREPLUMBER_DOCS_PREBUILT_DEV=sam
WIREPLUMBER_DOCS_VERSION="$(ver_cut 1-3)"
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
WIREPLUMBER_DOCS_USEFLAG="+doc"
@@ -46,7 +45,7 @@ else
fi
if [[ ${WIREPLUMBER_DOCS_PREBUILT} == 1 ]] ; then
- SRC_URI+=" !doc? ( https://dev.gentoo.org/~${WIREPLUMBER_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${WIREPLUMBER_DOCS_VERSION}-docs.tar.xz )"
+ SRC_URI+=" !doc? ( https://distfiles.gentoo.org/pub/dev/sam@gentoo.org/${CATEGORY}/${PN}/${PN}-${WIREPLUMBER_DOCS_VERSION}-docs.tar.xz )"
WIREPLUMBER_DOCS_USEFLAG="doc"
fi
diff --git a/net-firewall/firewalld/Manifest b/net-firewall/firewalld/Manifest
index 7ed5c4788459..282c793b15e4 100644
--- a/net-firewall/firewalld/Manifest
+++ b/net-firewall/firewalld/Manifest
@@ -1,4 +1,3 @@
-DIST firewalld-2.4.0.tar.bz2 1342244 BLAKE2B 8e878eefe9b458e2c9b742b55268839e746cfa5c8f4460df17fff74c4f6b03bad64981ec530565d6746fca05a797dcd82f3af99a3cb64dfbe98be6f7d6c38f41 SHA512 24071b2f0a2d5acf41430e41238480d78b1f758bceb493b44dba89dbc02a73f6adfc47359d108d502c41ac2b1ac8302bbda426d7f89095b44240c98739f58ae8
-DIST firewalld-2.4.2.tar.bz2 1366993 BLAKE2B add319d100c01e6431e3a416ba802827c762f0882869f1a3a6e5fd49016c193050f73c5c520ebc82e967516d782cc802738048b30e2a0592e2e8849dcc18b96b SHA512 725fb01c5982e1e824fddb18ccb5ffe95a74c3b1d04a406e08f7aa93d1d6b7b8e8f3eabd7bd3b7e15112c876a9b07cf4fce0effeb091a1ccf00c481706faac02
DIST firewalld-2.4.4.tar.bz2 1389273 BLAKE2B e7054580bf587c28b982548c831936694f32d7a94a8438f282e0bb983997aac1518db3303fe9816e5cc28679003ef6f35876c6a4e6a8ead48ac4d8a24782d782 SHA512 b28649cdb6b63117380d6d5ac93fecce12e617d36bdb5e4bbb15a72110305fc06ec73ca63f885d782ade67e7d43ad660356ac89fbbee74a58e048492a0e5dae7
DIST firewalld-2.5.1.tar.bz2 1467099 BLAKE2B afa8929f6c1cd053bd7ce56f8f8b1f053b3e147cd02e7f8dc1c44ef7b9638a0dd0c0d5b9423cf751c5a1eb6a7dd7389f76a5695767cbcb551433818c5e176cad SHA512 9b7d61cef7dc016e55ea3493c2566cb516f40446029a1d74805411e1a91d15848d69740d5d2182ea5448118ec59ebc20c78c941fdb4c003628769cb0f0976114
+DIST firewalld-2.5.2.tar.bz2 1447960 BLAKE2B 618dba90b7625c69d042af229a0f01597cef715ecc62a66187df84c361b34e64735c2a9dff2b14a72061032a61be6927f51e1e26e5686250b92941794e3b0714 SHA512 70f9dea048f36ed0b7d99b5c36933d1d6b40306f8348c860fb7de5313977cb40ed291b066fd839eb6aba79f366b8047f9734553636ff4a0c23bfdf05ac16b594
diff --git a/net-firewall/firewalld/files/firewalld-2.3.2-systemd-service.patch b/net-firewall/firewalld/files/firewalld-2.3.2-systemd-service.patch
deleted file mode 100644
index 3390b78d1d5c..000000000000
--- a/net-firewall/firewalld/files/firewalld-2.3.2-systemd-service.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Drops the/an obsolete 'conflicts' line with old iptables services bug #833506
-Removes EnvironmentFile and FIREWALLD_ARGS variable
---- a/config/firewalld.service.in
-+++ b/config/firewalld.service.in
-@@ -5,12 +5,10 @@ Wants=network-pre.target
- Requires=dbus.service
- After=dbus.service
- After=polkit.service
--Conflicts=iptables.service ip6tables.service ebtables.service ipset.service
- Documentation=man:firewalld(1)
-
- [Service]
--EnvironmentFile=-/etc/sysconfig/firewalld
--ExecStart=@sbindir@/firewalld --nofork --nopid $FIREWALLD_ARGS
-+ExecStart=@sbindir@/firewalld --nofork --nopid
- ExecReload=/bin/kill -HUP $MAINPID
- StandardOutput=null
- StandardError=null
diff --git a/net-firewall/firewalld/firewalld-2.4.0.ebuild b/net-firewall/firewalld/firewalld-2.4.0.ebuild
deleted file mode 100644
index 86d1ec60e178..000000000000
--- a/net-firewall/firewalld/firewalld-2.4.0.ebuild
+++ /dev/null
@@ -1,227 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{13..14} )
-inherit bash-completion-r1 gnome2-utils linux-info optfeature
-inherit plocale python-single-r1 systemd xdg-utils
-
-DESCRIPTION="Firewall daemon with D-Bus interface providing a dynamic firewall"
-HOMEPAGE="https://firewalld.org/"
-SRC_URI="https://github.com/firewalld/firewalld/releases/download/v${PV}/${P}.tar.bz2"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
-IUSE="gui selinux test"
-# Tests are too unreliable in sandbox environment
-RESTRICT="!test? ( test ) test"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="
- ${PYTHON_DEPS}
- || ( >=sys-apps/openrc-0.11.5 sys-apps/systemd )
- $(python_gen_cond_dep '
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- >=net-firewall/nftables-0.9.4[python,json,${PYTHON_USEDEP}]
- gui? (
- dev-python/pyqt6[gui,widgets,${PYTHON_USEDEP}]
- x11-libs/gtk+:3
- x11-libs/libnotify[introspection]
- )
- ')
- net-firewall/ipset
- net-firewall/nftables[xtables(+)]
- selinux? ( sec-policy/selinux-firewalld )
-"
-DEPEND="
- ${RDEPEND}
- dev-libs/glib:2
-"
-BDEPEND="
- app-text/docbook-xml-dtd
- >=dev-util/intltool-0.35
- sys-devel/gettext
-"
-
-# Testsuite's Makefile.am calls missing(!)
-# ... but this seems to be consistent with the autoconf docs?
-# Needs more investigation: https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/autom4te-Invocation.html
-QA_AM_MAINTAINER_MODE=".*--run autom4te --language=autotest.*"
-
-PLOCALES="ar as ast bg bn_IN ca cs da de el en_GB en_US es et eu fa fi fr gl gu hi hr hu ia id it ja ka kn ko lt ml mr nl or pa pl pt pt_BR ro ru si sk sl sq sr sr@latin sv ta te tr uk zh_CN zh_TW"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.3.2-systemd-service.patch
-)
-
-pkg_setup() {
- # See bug #830132 for the huge list
- # We can probably narrow it down a bit but it's rather fragile
- local CONFIG_CHECK="
- ~NF_CONNTRACK ~NETFILTER_XT_MATCH_CONNTRACK
- ~NETFILTER
- ~NETFILTER_ADVANCED
- ~NETFILTER_INGRESS
- ~NF_NAT_MASQUERADE
- ~NF_NAT_REDIRECT
- ~NF_TABLES_INET
- ~NF_TABLES_IPV4
- ~NF_TABLES_IPV6
- ~NF_CONNTRACK
- ~NF_CONNTRACK_BROADCAST
- ~NF_CONNTRACK_NETBIOS_NS
- ~NF_CONNTRACK_TFTP
- ~NF_CT_NETLINK
- ~NF_CT_NETLINK_HELPER
- ~NF_DEFRAG_IPV4
- ~NF_DEFRAG_IPV6
- ~NF_NAT
- ~NF_NAT_TFTP
- ~NF_REJECT_IPV4
- ~NF_REJECT_IPV6
- ~NF_SOCKET_IPV4
- ~NF_SOCKET_IPV6
- ~NF_TABLES
- ~NF_TPROXY_IPV4
- ~NF_TPROXY_IPV6
- ~IP_NF_FILTER
- ~IP_NF_IPTABLES
- ~IP_NF_MANGLE
- ~IP_NF_NAT
- ~IP_NF_RAW
- ~IP_NF_SECURITY
- ~IP_NF_TARGET_MASQUERADE
- ~IP_NF_TARGET_REJECT
- ~IP6_NF_FILTER
- ~IP6_NF_IPTABLES
- ~IP6_NF_MANGLE
- ~IP6_NF_NAT
- ~IP6_NF_RAW
- ~IP6_NF_SECURITY
- ~IP6_NF_TARGET_MASQUERADE
- ~IP6_NF_TARGET_REJECT
- ~IP_SET
- ~NETFILTER_CONNCOUNT
- ~NETFILTER_NETLINK
- ~NETFILTER_NETLINK_OSF
- ~NETFILTER_NETLINK_QUEUE
- ~NETFILTER_SYNPROXY
- ~NETFILTER_XTABLES
- ~NETFILTER_XT_CONNMARK
- ~NETFILTER_XT_MATCH_CONNTRACK
- ~NETFILTER_XT_MATCH_MULTIPORT
- ~NETFILTER_XT_MATCH_STATE
- ~NETFILTER_XT_NAT
- ~NETFILTER_XT_TARGET_MASQUERADE
- ~NFT_COMPAT
- ~NFT_CT
- ~NFT_FIB
- ~NFT_FIB_INET
- ~NFT_FIB_IPV4
- ~NFT_FIB_IPV6
- ~NFT_HASH
- ~NFT_LIMIT
- ~NFT_LOG
- ~NFT_MASQ
- ~NFT_NAT
- ~NFT_QUEUE
- ~NFT_QUOTA
- ~NFT_REDIR
- ~NFT_REJECT
- ~NFT_REJECT_INET
- ~NFT_REJECT_IPV4
- ~NFT_REJECT_IPV6
- ~NFT_SOCKET
- ~NFT_SYNPROXY
- ~NFT_TPROXY
- ~NFT_TUNNEL
- ~NFT_XFRM
- "
-
- # kernel >= 4.19 has a unified NF_CONNTRACK module, bug #692944
- if kernel_is -lt 4 19; then
- CONFIG_CHECK+=" ~NF_CONNTRACK_IPV4 ~NF_CONNTRACK_IPV6"
- fi
-
- # bug #831259
- if kernel_is -le 5 4 ; then
- CONFIG_CHECK+=" ~NF_TABLES_SET"
- fi
-
- # bug #853055
- if kernel_is -lt 5 18 ; then
- CONFIG_CHECK+=" ~NFT_COUNTER"
- fi
-
- # bug #926685
- if kernel_is -le 6 1 ; then
- CONFIG_CHECK+=" ~NFT_OBJREF"
- fi
-
- linux-info_pkg_setup
-}
-
-src_prepare() {
- default
-
- # Skip XML schema verification for tests
- cat <<-EOF > config/xmlschema/check.sh || die
- #!/bin/sh
- exit 0
- EOF
- chmod +x config/xmlschema/check.sh || die
-
- plocale_find_changes "po" "" ".po" || die
- plocale_get_locales | sed -e 's/ /\n/g' > po/LINGUAS
-}
-
-src_configure() {
- python_setup
-
- local myeconfargs=(
- --enable-systemd
- --with-systemd-unitdir="$(systemd_get_systemunitdir)"
- --with-bashcompletiondir="$(get_bashcompdir)"
- )
-
- econf "${myeconfargs[@]}"
-}
-
-src_install() {
- default
- python_optimize
-
- # Get rid of junk
- rm -rf "${ED}"/etc/sysconfig/ || die
-
- # For non-gui installs we need to remove GUI bits
- if ! use gui; then
- rm -rf "${ED}"/etc/xdg/autostart || die
- rm -f "${ED}"/usr/bin/firewall-applet || die
- rm -f "${ED}"/usr/bin/firewall-config || die
- rm -rf "${ED}"/usr/share/applications || die
- rm -rf "${ED}"/usr/share/icons || die
- fi
-
- newinitd "${FILESDIR}"/firewalld.init firewalld
-}
-
-pkg_preinst() {
- gnome2_schemas_savelist
-}
-
-pkg_postinst() {
- xdg_icon_cache_update
- gnome2_schemas_update
-
- # bug #833569
- optfeature "changing zones with NetworkManager" gnome-extra/nm-applet
-}
-
-pkg_postrm() {
- xdg_icon_cache_update
- gnome2_schemas_update
-}
diff --git a/net-firewall/firewalld/firewalld-2.4.2.ebuild b/net-firewall/firewalld/firewalld-2.5.2.ebuild
index 403e695ab2e6..92650865261d 100644
--- a/net-firewall/firewalld/firewalld-2.4.2.ebuild
+++ b/net-firewall/firewalld/firewalld-2.5.2.ebuild
@@ -4,8 +4,8 @@
EAPI=8
PYTHON_COMPAT=( python3_{13..14} )
-inherit bash-completion-r1 gnome2-utils linux-info optfeature
-inherit plocale python-single-r1 systemd xdg-utils
+inherit autotools gnome2-utils linux-info optfeature plocale python-single-r1
+inherit shell-completion systemd xdg-utils
DESCRIPTION="Firewall daemon with D-Bus interface providing a dynamic firewall"
HOMEPAGE="https://firewalld.org/"
@@ -13,7 +13,7 @@ SRC_URI="https://github.com/firewalld/firewalld/releases/download/v${PV}/${P}.ta
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="gui selinux test"
# Tests are too unreliable in sandbox environment
RESTRICT="!test? ( test ) test"
@@ -51,10 +51,11 @@ BDEPEND="
# Needs more investigation: https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/autom4te-Invocation.html
QA_AM_MAINTAINER_MODE=".*--run autom4te --language=autotest.*"
-PLOCALES="ar as ast bg bn_IN ca cs da de el en_GB en_US es et eu fa fi fr gl gu hi hr hu ia id it ja ka kn ko lt ml mr nl or pa pl pt pt_BR ro ru si sk sl sq sr sr@latin sv ta te tr uk zh_CN zh_TW"
+PLOCALES="ar as ast bg bn_IN ca cs da de el en_GB en_US es et eu fa fi fr gl gu he hi hr hu ia id it ja ka kk kn ko lt ml mr nl or pa pl pt_BR pt ro ru si sk sl sq sr@latin sr sv ta te tr uk zh_CN zh_TW"
PATCHES=(
"${FILESDIR}"/${PN}-2.4.2-systemd-service.patch
+ "${FILESDIR}"/${PN}-2.5.1-autoconf.patch
)
pkg_setup() {
@@ -174,6 +175,9 @@ src_prepare() {
EOF
chmod +x config/xmlschema/check.sh || die
+ # for autotools patch
+ eautoreconf
+
plocale_find_changes "po" "" ".po" || die
plocale_get_locales | sed -e 's/ /\n/g' > po/LINGUAS
}
diff --git a/net-irc/hexchat/files/hexchat-2.16.2-perl-5.44.patch b/net-irc/hexchat/files/hexchat-2.16.2-perl-5.44.patch
new file mode 100644
index 000000000000..9a27683abc1c
--- /dev/null
+++ b/net-irc/hexchat/files/hexchat-2.16.2-perl-5.44.patch
@@ -0,0 +1,11 @@
+https://bugs.gentoo.org/979428
+--- a/plugins/perl/meson.build
++++ b/plugins/perl/meson.build
+@@ -83,6 +83,7 @@ perl_dep = declare_dependency(
+
+ shared_module('perl',
+ sources: ['perl.c', hexchat_perl_module, irc_perl_module],
++ c_args: ['-std=gnu99'],
+ dependencies: [libgio_dep, hexchat_plugin_dep, perl_dep],
+ install: true,
+ install_dir: plugindir,
diff --git a/net-irc/hexchat/hexchat-2.16.2-r2.ebuild b/net-irc/hexchat/hexchat-2.16.2-r2.ebuild
index c68516762562..455405365666 100644
--- a/net-irc/hexchat/hexchat-2.16.2-r2.ebuild
+++ b/net-irc/hexchat/hexchat-2.16.2-r2.ebuild
@@ -73,6 +73,10 @@ BDEPEND="
virtual/pkgconfig
"
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.16.2-perl-5.44.patch
+)
+
pkg_setup() {
use lua && lua-single_pkg_setup
use python && python-single-r1_pkg_setup
diff --git a/net-misc/stunnel/Manifest b/net-misc/stunnel/Manifest
index b7ccc7323ee9..ce9137d5b9b7 100644
--- a/net-misc/stunnel/Manifest
+++ b/net-misc/stunnel/Manifest
@@ -7,3 +7,5 @@ DIST stunnel-5.78.tar.gz 929224 BLAKE2B 44538336d9f7075ebead1ae85c8c8609b5404156
DIST stunnel-5.78.tar.gz.asc 833 BLAKE2B 68812bbddea921d797d599b50868ea1d368662f6c2ad1b9ae042465f6430233756df016ffa42891e59feb01f2a545d7d06e807a2b08259da5cb7265e37591fd0 SHA512 10c82ab9c56977a26b2c3d9b4e88c310bcd90116363573c86970aa94ea8ddd0692905abfb4b1fff83e3654a098075d4f7c669b5cf6e26fa01e4c161c927e98ca
DIST stunnel-5.79.tar.gz 927184 BLAKE2B 431229af003c562e7dc439e19c59c9b83b0cde386ae983c35b1b934c7b8672da96e6abaf0ae76b19bec66d7b80c61b8ca89ba27fea7a9ee3aed276ae9da15c5d SHA512 0f8c0de6b655a5ff849f6f31d530863ea10769733615459abd7081b87822aba7d728728dee8ea685598b5ef5228996163b9c27f3efd7b8d5f7836e6eefe25f9a
DIST stunnel-5.79.tar.gz.asc 833 BLAKE2B d2675cea414fb45b044dd00cc4341ee2d9fcb9991533b914193dfe78b77c1eb83ad92b6cdc9808b2d85956e52aed58c1ea9200af1ddd84f5c4c886eb91141972 SHA512 e2698c8ba01cb5ded9db2e943e029f1f4ab72cc7a37a2bc0c46455c96c88eeb11d2e579fb4ef361156507c0aff409973537b8de8990af4c532f2f1d45c620cd2
+DIST stunnel-5.81.tar.gz 961068 BLAKE2B 94f025793aae897ad5a84572aa48337a6e020ce9a848579076025f9285abe58c9a1040ee77ad163f15cdf4c78d08fbbd00b18e613f95103cc8d69e5e79be3777 SHA512 bbe19dd98652754ee01506793b7e55f662d4cbd734b12cd0a8531cafcea7d38eed3fdbcbd562f471c667cb4434095a89ac0d6f6548913a94a4cce4e4659e13b1
+DIST stunnel-5.81.tar.gz.asc 833 BLAKE2B 2bf3a9d573d72529e614cd0d888cc88bc102420b178e9b13568b8d65763798cb57d4a44b0b5606688d3a9e4450effb87bc1ff5e146f837eb0847efd78372ce17 SHA512 f5794ffe4459391a06f96e737e7585d8a798a92813cd3f814518e79876525779115c39de1f1cb7b30d3d24a5b46b8fa6cbdf9a17ecc39eff924bda4d2c1f5447
diff --git a/net-misc/stunnel/files/stunnel-5.81-respect-EPYTHON-for-tests.patch b/net-misc/stunnel/files/stunnel-5.81-respect-EPYTHON-for-tests.patch
new file mode 100644
index 000000000000..c9fa8f10c591
--- /dev/null
+++ b/net-misc/stunnel/files/stunnel-5.81-respect-EPYTHON-for-tests.patch
@@ -0,0 +1,12 @@
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -14,8 +14,7 @@ fd_limits_select_test_CPPFLAGS = $(fd_limits_test_CPPFLAGS) -DTEST_SELECT
+
+ # try to find a supported python version (>= 3.7) that works
+ check-local: $(check_PROGRAMS)
+- for v in $$(seq 20 -1 7); do command -v python3.$$v && break; done || ( echo "Python 3.7 or later not found" && false )
+- for v in $$(seq 20 -1 7); do command -v python3.$$v && python3.$$v $(srcdir)/maketest.py --debug=10 --libs=$(SSLDIR)/lib64:$(SSLDIR)/lib && break; done
++ ${EPYTHON} $(srcdir)/maketest.py --debug=10 --libs=$(SSLDIR)/lib64:$(SSLDIR)/lib
+
+ dist-hook:
+ rm -rf $(distdir)/__pycache__ $(distdir)/plugins/__pycache__
diff --git a/net-misc/stunnel/stunnel-5.75.ebuild b/net-misc/stunnel/stunnel-5.75.ebuild
index 304d921f4a05..2e8806670faa 100644
--- a/net-misc/stunnel/stunnel-5.75.ebuild
+++ b/net-misc/stunnel/stunnel-5.75.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
@@ -10,7 +10,7 @@ DESCRIPTION="TLS/SSL - Port Wrapper"
HOMEPAGE="https://www.stunnel.org/index.html"
SRC_URI="
https://www.stunnel.org/downloads/${P}.tar.gz
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz
"
LICENSE="GPL-2"
diff --git a/net-misc/stunnel/stunnel-5.76-r1.ebuild b/net-misc/stunnel/stunnel-5.76-r1.ebuild
index d1334c0b29c5..da7ea0781045 100644
--- a/net-misc/stunnel/stunnel-5.76-r1.ebuild
+++ b/net-misc/stunnel/stunnel-5.76-r1.ebuild
@@ -11,10 +11,10 @@ DESCRIPTION="TLS/SSL - Port Wrapper"
HOMEPAGE="https://www.stunnel.org/index.html"
SRC_URI="
https://www.stunnel.org/downloads/${P}.tar.gz
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz
verify-sig? (
https://www.stunnel.org/downloads/${P}.tar.gz.asc
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz.asc
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz.asc
)
"
diff --git a/net-misc/stunnel/stunnel-5.76.ebuild b/net-misc/stunnel/stunnel-5.76.ebuild
index 3db8c7b6d8df..bac92a55ce2b 100644
--- a/net-misc/stunnel/stunnel-5.76.ebuild
+++ b/net-misc/stunnel/stunnel-5.76.ebuild
@@ -11,10 +11,10 @@ DESCRIPTION="TLS/SSL - Port Wrapper"
HOMEPAGE="https://www.stunnel.org/index.html"
SRC_URI="
https://www.stunnel.org/downloads/${P}.tar.gz
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz
verify-sig? (
https://www.stunnel.org/downloads/${P}.tar.gz.asc
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz.asc
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz.asc
)
"
diff --git a/net-misc/stunnel/stunnel-5.77.ebuild b/net-misc/stunnel/stunnel-5.77.ebuild
index d1334c0b29c5..da7ea0781045 100644
--- a/net-misc/stunnel/stunnel-5.77.ebuild
+++ b/net-misc/stunnel/stunnel-5.77.ebuild
@@ -11,10 +11,10 @@ DESCRIPTION="TLS/SSL - Port Wrapper"
HOMEPAGE="https://www.stunnel.org/index.html"
SRC_URI="
https://www.stunnel.org/downloads/${P}.tar.gz
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz
verify-sig? (
https://www.stunnel.org/downloads/${P}.tar.gz.asc
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz.asc
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz.asc
)
"
diff --git a/net-misc/stunnel/stunnel-5.78.ebuild b/net-misc/stunnel/stunnel-5.78.ebuild
index 2bcf5dee9723..318c7e169a7d 100644
--- a/net-misc/stunnel/stunnel-5.78.ebuild
+++ b/net-misc/stunnel/stunnel-5.78.ebuild
@@ -11,10 +11,10 @@ DESCRIPTION="TLS/SSL - Port Wrapper"
HOMEPAGE="https://www.stunnel.org/index.html"
SRC_URI="
https://www.stunnel.org/downloads/${P}.tar.gz
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz
verify-sig? (
https://www.stunnel.org/downloads/${P}.tar.gz.asc
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz.asc
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz.asc
)
"
diff --git a/net-misc/stunnel/stunnel-5.79.ebuild b/net-misc/stunnel/stunnel-5.79.ebuild
index f6a627b1fc5c..c7a5827229e5 100644
--- a/net-misc/stunnel/stunnel-5.79.ebuild
+++ b/net-misc/stunnel/stunnel-5.79.ebuild
@@ -11,10 +11,10 @@ DESCRIPTION="TLS/SSL - Port Wrapper"
HOMEPAGE="https://www.stunnel.org/index.html"
SRC_URI="
https://www.stunnel.org/downloads/${P}.tar.gz
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz
verify-sig? (
https://www.stunnel.org/downloads/${P}.tar.gz.asc
- https://www.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz.asc
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz.asc
)
"
diff --git a/net-misc/stunnel/stunnel-5.81.ebuild b/net-misc/stunnel/stunnel-5.81.ebuild
new file mode 100644
index 000000000000..a67de149aec9
--- /dev/null
+++ b/net-misc/stunnel/stunnel-5.81.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/stunnel.asc
+inherit autotools python-any-r1 ssl-cert systemd tmpfiles verify-sig
+
+DESCRIPTION="TLS/SSL - Port Wrapper"
+HOMEPAGE="https://www.stunnel.org/index.html"
+SRC_URI="
+ https://www.stunnel.org/downloads/${P}.tar.gz
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz
+ verify-sig? (
+ https://www.stunnel.org/downloads/${P}.tar.gz.asc
+ https://www.stunnel.org/archive/${PV%%.*}.x/${P}.tar.gz.asc
+ )
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="selinux stunnel3 systemd tcpd test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ dev-libs/openssl:=
+ tcpd? ( sys-apps/tcp-wrappers )
+ systemd? ( sys-apps/systemd:= )
+"
+RDEPEND="
+ ${DEPEND}
+ acct-user/stunnel
+ acct-group/stunnel
+ selinux? ( sec-policy/selinux-stunnel )
+ stunnel3? ( dev-lang/perl )
+"
+# autoconf-archive for F_S patch
+BDEPEND="
+ dev-build/autoconf-archive
+ test? (
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/cryptography[${PYTHON_USEDEP}]')
+ )
+ verify-sig? ( sec-keys/openpgp-keys-stunnel )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.71-dont-clobber-fortify-source.patch
+ "${FILESDIR}"/${PN}-5.81-respect-EPYTHON-for-tests.patch
+)
+
+python_check_deps() {
+ python_has_version "dev-python/cryptography[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Hack away generation of certificate
+ sed -i -e "s/^install-data-local:/do-not-run-this:/" \
+ tools/Makefile.am || die "sed failed"
+
+ # We pass --disable-fips to configure, so avoid spurious test failures
+ rm tests/plugins/p10_fips.py tests/plugins/p11_fips_cipher.py || die
+
+ # Needed for FORTIFY_SOURCE patch
+ eautoreconf
+}
+
+src_configure() {
+ # No automagic mimalloc use
+ export ac_cv_header_mimalloc_h=no ac_cv_search_mi_malloc=no
+
+ local myeconfargs=(
+ --libdir="${EPREFIX}/usr/$(get_libdir)"
+ --with-ssl="${EPREFIX}"/usr
+ --disable-fips
+ $(use_enable tcpd libwrap)
+ $(use_enable systemd)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ rm -rf "${ED}"/usr/share/doc/${PN} || die
+ rm -f "${ED}"/etc/stunnel/stunnel.conf-sample \
+ "${ED}"/usr/share/man/man8/stunnel.{fr,pl}.8 || die
+
+ if ! use stunnel3 ; then
+ rm -f "${ED}"/usr/bin/stunnel3 || die
+ fi
+
+ dodoc AUTHORS.md BUGS.md CREDITS.md PORTS.md README.md TODO.md
+ docinto html
+ dodoc doc/stunnel.html doc/en/VNC_StunnelHOWTO.html tools/ca.html \
+ tools/importCA.html
+
+ insinto /etc/stunnel
+ doins "${FILESDIR}"/stunnel.conf
+ newinitd "${FILESDIR}"/stunnel-r2 stunnel
+
+ systemd_dounit "${S}/tools/stunnel.service"
+ newtmpfiles "${FILESDIR}"/stunnel.tmpfiles.conf stunnel.conf
+
+ find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+ if [[ ! -f "${EROOT}"/etc/stunnel/stunnel.key ]]; then
+ install_cert /etc/stunnel/stunnel
+ chown stunnel:stunnel "${EROOT}"/etc/stunnel/stunnel.{crt,csr,key,pem}
+ chmod 0640 "${EROOT}"/etc/stunnel/stunnel.{crt,csr,key,pem}
+ fi
+
+ tmpfiles_process stunnel.conf
+
+ einfo "If you want to run multiple instances of stunnel, create a new config"
+ einfo "file ending with .conf in /etc/stunnel/. **Make sure** you change "
+ einfo "\'pid= \' with a unique filename. For openrc make a symlink from the"
+ einfo "stunnel init script to \'stunnel.name\' and use that to start|stop"
+ einfo "your custom instance"
+}
diff --git a/sec-keys/openpgp-keys-openssl/openpgp-keys-openssl-20260617-r1.ebuild b/sec-keys/openpgp-keys-openssl/openpgp-keys-openssl-20260617-r1.ebuild
index f4f996d13fe0..ca0c2214a2a9 100644
--- a/sec-keys/openpgp-keys-openssl/openpgp-keys-openssl-20260617-r1.ebuild
+++ b/sec-keys/openpgp-keys-openssl/openpgp-keys-openssl-20260617-r1.ebuild
@@ -58,7 +58,7 @@ done
unset ossl_key
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"
src_install() {
sec-keys_src_install
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index 33d8fdc4a982..667f01021667 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -17,6 +17,7 @@ DIST gcc-13.5.0.tar.xz 90977816 BLAKE2B 76080f85e48559264e0e2e9794654df4750ee5c5
DIST gcc-14-20260604.tar.xz 88473776 BLAKE2B 0d022d76185b04d314b05ee0e7906b030df6ca13efa254e5c64e625286af6e361659a359406bc90658b3d3e5379f0408500dda86a0af0aad3df88193ebe736dc SHA512 654e5484fe25986f51a55b12a959fa6c36d3640cbb8f62c63adda3e7222224048ddfd3cb87cac081759e1a2cd3732cdf17af9e6a3948aba227ddd3a4c0c2e72f
DIST gcc-14-20260716.tar.xz 88509636 BLAKE2B 1e31c1c969a3ee7184d6e466dc9bf627e67e98f2c61fc4d34a74b02d7128718f7e8d0eb3a178b4e9734665fe93eeccf42e9bf5ba80e62b583044dab93b7939b1 SHA512 c587f5568ae6e8b9089dcb5e4753ad3ef5d807c3c30d329407e6be093e0a0ef26906c8dbc33a5aef20168371c10ded69c067e05acf42696eee45ade981ade321
DIST gcc-14-20260903.tar.xz 88538140 BLAKE2B b5fd80fd8addf04d296f12c26f4ce1feb7c223f0389534d02af0f303cded7f0380b12d64c7fb31f49b6a57fe21fa7721a604ad6448931624dddcdc69f9a87bb0 SHA512 5704a3edd2594a38f090a85675f51106a80472d375cd67f57fa3f644bfc5111ed43c45a64a3c158de68741b0c7ff90f4dc9017d27fe71378648f94232a3d4eeb
+DIST gcc-14-20260917.tar.xz 88546212 BLAKE2B 74daba98307cd5c1d1941e5ac4c9e7aa169935a5363c6d3cbbc833906977ca8f43f8aef4a6388e867c9b886860aaa976e9b12139828a8023d5aa1fb9d991a4e3 SHA512 e4532c9447db2c044bbee715170a5a48c17478b3404fc283fe5bf13454d91f166b7fe424670c33e3735cf23738fb1f7c49b70c15e285df106e446da45d53831f
DIST gcc-14.3.0-musl-patches-2.tar.xz 6888 BLAKE2B e2f9ce6d445b7ced8f78c18585887422ffdd32356368a456a7cfde5a1854515b32546c1d25a2ab8637ee62d04a2c0bda1afc8d53c44e5c80c12499918c3c18fc SHA512 0b59d228213024cd93d9ffbd4ae5947021db2dc71bd320cc0e4ccf523d39f72e61be25c1a49a343729fe7b9abf7181503de3e650b255d80ab6d969d0de317d19
DIST gcc-14.3.0-patches-6.tar.xz 28148 BLAKE2B ba80a00289da26d3b5a813a9878aae6b34640e5cf8f37431ef846894087096dc84869e120ed17f23062bd2702a8059d73ead3ba28115e9c3bad55f46e7f474ee SHA512 7ee900f327bd92484ffba03ff80827b42ffba75d7527e26e09ea07e6d61622d812e1a00f77f3d669d7bde0366bab43085552d6140b28bc319edab9eb0e9a73f5
DIST gcc-14.4.0.tar.xz 91586872 BLAKE2B 10a512f9f95fcc70a13f4eb2142927277d2e6c0a16bad76f01078dc0d7e5cb6831204f8beec22c83c1ff2d0ed1d9df8c8d0a4118ba657d1aefef2a6f15636a28 SHA512 725ed8bdd43ef1726ffe8b5e8615a13e247fac9575b7626ae013a2975d000ea213212dc414b2f2631ac4785c1c8beca85555222faf9904d3b2fa6a3807a83a15
diff --git a/sys-devel/gcc/gcc-14.4.1_p20260917.ebuild b/sys-devel/gcc/gcc-14.4.1_p20260917.ebuild
new file mode 100644
index 000000000000..b4578274f0d3
--- /dev/null
+++ b/sys-devel/gcc/gcc-14.4.1_p20260917.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Maintenance notes and explanations of GCC handling are on the wiki:
+# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc
+
+TOOLCHAIN_HAS_TESTS=1
+PATCH_GCC_VER="14.3.0"
+PATCH_VER="6"
+MUSL_VER="2"
+MUSL_GCC_VER="14.3.0"
+PYTHON_COMPAT=( python3_{13..14} )
+
+if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+ # Cheesy hack for RCs
+ MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+ MY_P=${PN}-${MY_PV}
+ GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
+ TOOLCHAIN_SET_S=no
+ S="${WORKDIR}"/${MY_P}
+fi
+
+inherit toolchain
+
+if tc_is_live ; then
+ # Needs to be after inherit (for now?), bug #830908
+ EGIT_BRANCH=releases/gcc-$(ver_cut 1)
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+ # m68k doesnt build (ICE, bug 932733)
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ :;
+fi
+
+if [[ ${CATEGORY} != cross-* ]] ; then
+ # Technically only if USE=hardened *too* right now, but no point in complicating it further.
+ # If GCC is enabling CET by default, we need glibc to be built with support for it.
+ # bug #830454
+ RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
+ DEPEND="${RDEPEND}"
+fi
+
+src_prepare() {
+ local p upstreamed_patches=(
+ # add them here
+ )
+ for p in "${upstreamed_patches[@]}"; do
+ rm -v "${WORKDIR}/patch/${p}" || die
+ done
+
+ toolchain_src_prepare
+
+ eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+ eapply_user
+}
diff --git a/sys-fs/xfsprogs/Manifest b/sys-fs/xfsprogs/Manifest
index e385b97073b6..ef79fbb35303 100644
--- a/sys-fs/xfsprogs/Manifest
+++ b/sys-fs/xfsprogs/Manifest
@@ -3,3 +3,4 @@ DIST xfsprogs-6.18.0.tar.xz 1563944 BLAKE2B 225cb49a39a2539e48513985d72602c0c067
DIST xfsprogs-6.19.0.tar.xz 1564764 BLAKE2B 30ef424589e96175aa38776d809c7a0e1ce2d74ba3ccfca83c00bf102836f93f131afd63e5be8d639aee4e3c8831f6d536029b4e7d6dd44b9297426d6c028d2c SHA512 9ca8ba19a3cc3a4e8a03ca4fe641ae958eb5fd9c4a8b09430a9fa4891d27f63506acd543c061887fec5ba22d2883c69f8c52a155f4f58af96206999725e25bf7
DIST xfsprogs-7.0.1.tar.xz 1591728 BLAKE2B 0834beee30b6f4d6cf16c4e34d2daff0720d1f620d75f1794eb8c8f8d822768f48e8d6d51e51ec8c1eeb73a0e3123a8baa6647cf3215f9d25254cc13d6cf02ba SHA512 21c235bb48f3b8e43a7cda3968e28ecb0333a28db9f2beac77acb9eebc476decdd5119d55230d44ac11734d9d0d7a88f66a74677cd25fe128fea7e0464083665
DIST xfsprogs-7.1.1.tar.xz 1595568 BLAKE2B 7c3f6f4802cb32bb88cf9f439f73aeff4ebf495ff6928c0fe6da977c96256b7fa84e1f71c370ef3e1532a8534709acfc0d3c8e1d404543c6bb0f5c9a9235ba5a SHA512 5c6e2a57a8f2e04a50cf5a085509a229f7a858a5807d85d807deeef1013d6dbbc1d701da4adb010dec5e251774b6b32e28496309bd11b4e6ebcbc09999f04cd5
+DIST xfsprogs-7.2.0.tar.xz 1599484 BLAKE2B 925583bb3477744daedff4a6382885aec44096994d79b5a17e525b1bc44832660f1f5c3dba9837ffa62d1659df5217b426cc0d358ddc83cd6a63aeee0df98c5f SHA512 3a7e3f4582c44a94a4b8fa8b8b795f0018207d92df3a9ff8334e7300307ddd293c4caaed8c7c4061b6b9d7c626b0e0d9da03a53fac029433444deaf4b6abd144
diff --git a/sys-fs/xfsprogs/xfsprogs-7.2.0.ebuild b/sys-fs/xfsprogs/xfsprogs-7.2.0.ebuild
new file mode 100644
index 000000000000..96bc0f73ce7d
--- /dev/null
+++ b/sys-fs/xfsprogs/xfsprogs-7.2.0.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic systemd udev
+
+DESCRIPTION="XFS filesystem utilities"
+HOMEPAGE="https://xfs.wiki.kernel.org/ https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/"
+SRC_URI="https://www.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="icu libedit nls selinux static-libs"
+
+RDEPEND="
+ dev-libs/inih
+ dev-libs/userspace-rcu:=
+ >=sys-apps/util-linux-2.17.2
+ icu? ( dev-libs/icu:= )
+ libedit? ( dev-libs/libedit )
+"
+DEPEND="
+ ${RDEPEND}
+ >=sys-kernel/linux-headers-6.18
+"
+BDEPEND="nls? ( sys-devel/gettext )"
+RDEPEND+=" selinux? ( sec-policy/selinux-xfs )"
+
+src_prepare() {
+ default
+
+ # Fix doc dir
+ sed -i \
+ -e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \
+ include/builddefs.in || die
+
+ # Don't install compressed docs
+ sed 's@\(CHANGES\)\.gz[[:space:]]@\1 @' -i doc/Makefile || die
+}
+
+src_configure() {
+ # include/builddefs.in will add FCFLAGS to CFLAGS which will
+ # unnecessarily clutter CFLAGS (and fortran isn't used)
+ unset FCFLAGS
+
+ # If set in user env, this breaks configure
+ unset PLATFORM
+
+ export DEBUG=-DNDEBUG
+
+ # Package is honoring CFLAGS; No need to use OPTIMIZER anymore.
+ # However, we have to provide an empty value to avoid default
+ # flags.
+ export OPTIMIZER=" "
+
+ # Avoid automagic on libdevmapper (bug #709694)
+ export ac_cv_search_dm_task_create=no
+
+ # bug 903611
+ use elibc_musl && append-flags -D_LARGEFILE64_SOURCE
+
+ # Upstream does NOT support --disable-static anymore,
+ # https://www.spinics.net/lists/linux-xfs/msg30185.html
+ # https://www.spinics.net/lists/linux-xfs/msg30272.html
+ local myconf=(
+ --enable-static
+ # Doesn't do anything beyond adding -flto (bug #930947).
+ --disable-lto
+ # The default value causes double 'lib'
+ --localstatedir="${EPREFIX}/var"
+ --with-crond-dir="${EPREFIX}/etc/cron.d"
+ # TODO: Write equivalent OpenRC init scripts for installed systemd units
+ # Possibly document timer equivalents too for cron
+ --with-systemd-unit-dir="$(systemd_get_systemunitdir)"
+ --with-udev-rule-dir="$(get_udevdir)/rules.d"
+ $(use_enable icu libicu)
+ $(use_enable nls gettext)
+ $(use_enable libedit editline)
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ # XXX: There's a missing dep in the install-dev target, so split it
+ emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install
+ emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install-dev
+
+ # Not actually used but --localstatedir causes this empty dir
+ # to be installed.
+ rmdir "${ED}"/var/lib/xfsprogs "${ED}"/var/lib || die
+
+ if ! use static-libs; then
+ rm "${ED}/usr/$(get_libdir)/libhandle.a" || die
+ fi
+
+ find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postrm() {
+ udev_reload
+}
+
+pkg_postinst() {
+ udev_reload
+}
diff --git a/www-apps/grafana-bin/Manifest b/www-apps/grafana-bin/Manifest
index a55aeb701da3..9ab570876e3f 100644
--- a/www-apps/grafana-bin/Manifest
+++ b/www-apps/grafana-bin/Manifest
@@ -1,14 +1,16 @@
-DIST grafana-bin-12.1.8.amd64.tar.gz 198645871 BLAKE2B 859d4d17a6e1c9de202ad67586cfc411eafd90f45415ed53cf9f52caad5f5dc370eb892febfb03c38111c8d6a7745d60c5276832226338314480f522e58607ad SHA512 aba22c26e57d41dd7221057ef9911be37dc46af27c375ae64f6fd7005bd53b0f7049fb4ccb5e14d13e059b5c646f98fe36b9831cfaf3c76b9920590915869631
-DIST grafana-bin-12.1.8.arm64.tar.gz 189548504 BLAKE2B 79d74eb3acfd966d0fa72ae59631d48f61e52965e29d578147422a0f3532b59afc8e9a2e2e4c9f89bb7e5f92f509d0265e44afb3d360e329c470b7ede84219ca SHA512 5660519bbdeed69aa1d21eb2f76bfcc3672e176ebe83edde3291b6f99f76ce5b7771f71e07939076dcd37cf30eb89a080a101e3b13817eeea13525a223bf7867
-DIST grafana-bin-12.2.6.amd64.tar.gz 188709618 BLAKE2B 407645642264c13b005cdc4e9f12dc87098b010dfe21f6aa838c199f5e9a11c280f4749886aa9960e5fdaf304fb64270b7bae3723c385a48728e0f76e57fd600 SHA512 ed49311b541468bc4e70e7371a15a8c3b88c1c8536547d0b71c3fd29777906f542250e4bccb6aa08a04eb8c1a5ef65b9518f7691ab7601b21e54f1e3bf0e3df7
-DIST grafana-bin-12.2.6.arm64.tar.gz 179528432 BLAKE2B ff452e4bfed0087735bbaea81518d3d00c082b689b6ba470d8f0c456f2ff79d08e30dbb87a90e43f44c02a40ea89cd26af42a552c112c78e12b6ce63e1dd7ea6 SHA512 8879a31b713c092aaf57d0aba849e09683c3a874ac27b065210ed25c0fd37812f4f7f9d5935f951a0ed3b938d70d68b2e4f5d306cfda26c6a23e7be14e67b05b
-DIST grafana-bin-12.3.4.amd64.tar.gz 194490663 BLAKE2B 42f2465eeb36914941b60c2b722fb6edb007d61642ebc3b94024c90893ea60be8cca635443ca6674ce54c6bbbfafaed2258b23163007741f78090a31a0581fc1 SHA512 8602c7a47c43aa39278981c6fdc150e6205a3110bdaa159d3d82de4dac8e45a0f26471f2c45f8aacf6aa6ac953e0258752f168046880b260662a7141fe03e660
-DIST grafana-bin-12.3.4.arm64.tar.gz 185140268 BLAKE2B bd9e4a00a66d887ce6ca4893da9073abf81b1b13ebc02679d0de6418f60c59aaad0270a5d282a90727ef912fb7633b6380a9d989f526098406ea84fede4b3f36 SHA512 2fa860742fe00c6554979c6ffa2bebab2b5c0da0b02f5bae44ea67e4de01ecc7473a663190ccffe6491d99ce5fd49aad08582f1770978322655d9711e5449208
+DIST grafana-bin-12.1.10.amd64.tar.gz 197856726 BLAKE2B 30b58e7bc5a5f2417f7eacc73afd3d2137a9cec57789a9624aa6b3c7d784e3cf71ea8e6c84b0f4c68a682ec7198f6070679a3dc67a33d28035b061c5041a405e SHA512 b720b4d616b1c0c5cca99fc36565c9b838703e442839f8671aa67e9b659550875aff0a38310e2d1a0c2f7f416e94888a581877d205bad0cb94e7427bb72cc34d
+DIST grafana-bin-12.1.10.arm64.tar.gz 188770279 BLAKE2B 09c71994ab2a0c27bca631a09c19c3b144b9bf8a3ad1888156defb03681fefcf62b9e420f78f92994b26009b78a743b96e0dc67af232bf91e17f8ee5d1c70a81 SHA512 88845992e0d1e780df2878199aae0c08ff2d2dae6443e7c7a5ef248708cba159042f933632c34ab63219b9bab848e6874f1a0a537e00a57e2822cf2c79a69284
+DIST grafana-bin-12.2.10.amd64.tar.gz 189823840 BLAKE2B 3473e64d098d9958f8f65c985e8680f42d378688e6edcb6be793276efd2e24c756d2f8e1960db92b67d0fb0edae37e2c0f603cd22f83980ae12a828b309e0e53 SHA512 745774eab24e3b44aa491058dbdaa4bf66e0eefce62294b799f7caefb68fc707286b5d4f6ce9248f7102c7b41f547b302c8dd075cc9267a38c74835b4fb79321
+DIST grafana-bin-12.2.10.arm64.tar.gz 179983791 BLAKE2B ceab99a260bf7b45ffeb559adc9485d37db978b5bb0c93f2b6c4865662f741148467a0ab3c57dcd21f45a79463cf210a7c3f1e6373a056091e88d584d6c562d0 SHA512 609c74afd85c7be8d6336bd830edc126c3cfa094a96aef79a8da0895acf21b80cabd577292eb01900d7264223c1009ff11b14e7d8f3efb6d1f6d6ebe8dc1a3a5
+DIST grafana-bin-12.3.11.amd64.tar.gz 271367322 BLAKE2B 582562b6db05f4a3c877916fde24513cda329efd2a0baf7cf8b1bcdde316dcbdc5428e5de655a3014b797e4d813e86edf3db4863bf790ea344fa76bb6efb0e22 SHA512 7750d3729ed22f4d34c5ac1cb594b18ae867b69230a33ebc6796b841de6efb7c9d921aea6657a938a0613c3c1ec2065dc65df9b347261ac6af657342ba68f134
+DIST grafana-bin-12.3.11.arm64.tar.gz 256219666 BLAKE2B 16c69a19e31d8cb3b7c6752e8dcc4a17b46c6945abc4e8e0c26eb0f842d0a3e5a5d20972eebda7a375ba3a82b87f05cd4c9193e0be61c4d4c7bbd2d0ab36f5c0 SHA512 c2db1baff009b13728e29afb77ca746b2cf0533826bcb79aca25369e3576c893e31bae1f63cc0444865c48d95b4afb7e2ffe4e5e3c07310588d2b2a1de19f3d5
DIST grafana-bin-12.4.0.amd64.tar.gz 198219983 BLAKE2B aaa608b477a307d41a28bba5e477bd66a7c954f6d16629ba1960ac26b5a69e129b3e76cf9839f19eda3c06a8c178e1e78b7a17b1f368e77df405aee9d88ec0f9 SHA512 0d0f573b22d8839943c6a346f429dd1db43d676e62460e53f041335500f671371f9cebd015b2197ecc87e4d8b1381fadc7a0d4ee49a7e5259f6b83ce6b46a33f
DIST grafana-bin-12.4.0.arm64.tar.gz 188539753 BLAKE2B adcc241566a2b1b75823a18247b3c5b44d1f33de5744f60e86a407d5205e786f6c2c9f84635f7555e283d80f76df7c6eb7f9233777d449cc7f19e4f5029411a4 SHA512 3888c531bbce11ddd5293219f72a880d7bcf9b0eedc0e1ea8502782fc3971723e83ed2317be4bc9771a9aa807e22255e0778dc97993bdc9a75840bb0219ab263
+DIST grafana-bin-12.4.11.amd64.tar.gz 278432937 BLAKE2B 942ba92666f8759ebd4ab14b92cf8c3db6c2a01913341c2eb9952f2a4f32505fc7dc2ba9069f5712d6e937ac6934fcce1b1b2f0c9658bbe3a994eee126fda6c7 SHA512 30e9bf73cde8a7a69e0612b6ff646fb7eaf357595affabac32f1ae28d4cdfc843ebd68feb0852d87ccd0a77527692083807c5466f94247184b812ceb810fb146
+DIST grafana-bin-12.4.11.arm64.tar.gz 263008442 BLAKE2B 98ac04442d1d1113b2d4e20117e66889d4709fc69a7207408388e1eef339557d180c85d52a386f795b91aa29fdb0b3118fd51621daf50bb85ede449d586c8933 SHA512 8b8120c07835dee50856ce276c9f2fccce927998f84a3c67df4691abc560776bf18ca40f02e738afa8ed0a94a17256b2d55c55adcb5cb1d6257c2a2d75623e51
+DIST grafana-bin-13.1.6.amd64.tar.gz 363471255 BLAKE2B 25dbefa82469294e2637d4faa68f499312e1257d0375990b9b053fdf5c2680a028ac675e51fa85bf7f0bc34470126fd02a1686f919f1df4b2de3674511d24528 SHA512 e2e9f00ec6570c5610b80942da0a8ba4559af6a4433cbc0442c7362189dc0d4406d8d808438b100a87ea571fe9e1ec02ebe11aedf01e331fd3bc053de0d6a495
+DIST grafana-bin-13.1.6.arm64.tar.gz 345423792 BLAKE2B e135c92fcaf32709c1e62dd30d821b565fe8c01fdfbd0756a011739e3060d73a48fae4c8665b1d15ed314c5b5913354081b8b6ca89ea7d0ec350f4a850f4e0b0 SHA512 652ea87690f7f10efc5656e7459bf131d152f3567043edc40097a369ce502bc665a29798a4691f0db24fbf2e666e804a42b9515b76ee585802984cc5345a4629
+DIST grafana-bin-13.2.2.amd64.tar.gz 457508545 BLAKE2B cca133113773ca99da2e1abe91aefc688bb2d49baf38891e3fb2a260efd50417deb4d9b5ddf0e49d94da798d727184e58428f42ed99af7a5b0a30bff82948a25 SHA512 b10c597076a2ed1c8a7e1404860204f00841dc5ff800b2ce89309150a82143fe7e2795409bb4c58a65c4af751c4817e3bb771fefa6a839a202cf2a529191f6d6
+DIST grafana-bin-13.2.2.arm64.tar.gz 427194660 BLAKE2B fd3fc111085c85cc7d957e32d0294c32e932cc4ac569b8d9ae83a132383f2535008eb0c66037157eb54946443c984740cbad39ed402606537387bb929f540cff SHA512 b221d7214cceb962d6c25259d81af73fa92b4161d730c3ae1f70bfd405ced00c28d8502380b5616bdb3700350ba2f5e2b447e964ef310a46fe4bb7df8d1a266c
DIST grafana_12.4.3+security-02_25720634919_linux_amd64.tar.gz 271616696 BLAKE2B 58a7cb2a7c480f538a172b5b562dd43cba4dac52043749264c3adee7852b9d848a1ba309dc5a16ce513e8e3c073e308f7c43b0432715e3784e1a2494397c9549 SHA512 e185a116d902b4ea54474614078ece0d002a1ff3b8629359b8c12929c2ed285b32a9143d60dea5a243bef54c34b74a757c9630f9700e3107a3d7bd3bd9053d7d
DIST grafana_12.4.3+security-02_25720634919_linux_arm64.tar.gz 256899119 BLAKE2B b2b367a1e83376bd2470b691a25572858ceba2ad95ea741aabbfeeb8bcf9ab0b20570179c4399cf9bd7e3c815bd2134f0a5fd28a61bf8349be3a4ebfdddee341 SHA512 91a457d187010866bb332705a9505fef580a83c3be1745093ceadc155d7c9b93c9024e4d048df5a815281f8d86debc643b9a50069cd7c992d5e334121d0ba816
-DIST grafana_12.4.7_30647961040_linux_amd64.tar.gz 276364750 BLAKE2B 2776d21cf2f95d4e966f9c7d945c7489c9880b2cc51b36970ad316d365b871c32ac7142e54a7d560c98cd35b8913a60044c76eb2437786d1d70cf08b5a474f25 SHA512 c0385d5f17a0e4db9379e6138b6946282e2fd4508ae1e607152b964f7dbc8a1a56bf7f5a1e8a5f802c00efed6b42741b44deff1a9ca556402784a2211497e37e
-DIST grafana_12.4.7_30647961040_linux_arm64.tar.gz 261028431 BLAKE2B 793ad9e4e05ffeb66a46ee382dbc8bf3d4bcaf53de75028f1da6363cf6ee2d91b3bc165414e8d08c730ec5a7f169de61f0cd5070b806dcc5cd984100c998d34c SHA512 a4dfd232d743e9004db0b5a43cdc80238cdee4c816f7ce4aa198a711e45de322a666dde6e3407c1eb37324a133b512fc10f700ecb4ad98503f25b9b121beec62
-DIST grafana_13.1.2_30900078095_linux_amd64.tar.gz 363415655 BLAKE2B e8daf2f2624d7ae66a24ebecd6d6bcce1dc1bed5e7a8ac73c76443dfeaaa0f3c28e7ba254fe203dc9100db79e0359134c02c55aaec18a6676f4e619fd58ca45a SHA512 14660284886da303db4fc694911f2ea5594c7f4330a9a467b87094c9ca75f194153b0a6508fedf60d7c012115e74b208b5daa4f6d900d046ee82ac1b3e54ba12
-DIST grafana_13.1.2_30900078095_linux_arm64.tar.gz 345280204 BLAKE2B 73e032cbd2c6d0b19d82877cb50a49ae033f8957bc94b294841b92b758222b66c9495aa0139c3e53184a24fdf4be4887ac744a319c4ef1ac8c49b3f2ca9b1917 SHA512 736eb2ba285afbec74d10ba003e0b7cd7a02d9620783347d0133b1eda9a7e4ad5c72d2d3f66011cbd5bfa6e20dd9162b0f31e5c4673fe4896e7a09d696713894
diff --git a/www-apps/grafana-bin/grafana-bin-12.1.8.ebuild b/www-apps/grafana-bin/grafana-bin-12.1.10.ebuild
index aec5fcec180c..aec5fcec180c 100644
--- a/www-apps/grafana-bin/grafana-bin-12.1.8.ebuild
+++ b/www-apps/grafana-bin/grafana-bin-12.1.10.ebuild
diff --git a/www-apps/grafana-bin/grafana-bin-12.2.6.ebuild b/www-apps/grafana-bin/grafana-bin-12.2.10.ebuild
index aec5fcec180c..aec5fcec180c 100644
--- a/www-apps/grafana-bin/grafana-bin-12.2.6.ebuild
+++ b/www-apps/grafana-bin/grafana-bin-12.2.10.ebuild
diff --git a/www-apps/grafana-bin/grafana-bin-12.3.4.ebuild b/www-apps/grafana-bin/grafana-bin-12.3.11.ebuild
index aec5fcec180c..aec5fcec180c 100644
--- a/www-apps/grafana-bin/grafana-bin-12.3.4.ebuild
+++ b/www-apps/grafana-bin/grafana-bin-12.3.11.ebuild
diff --git a/www-apps/grafana-bin/grafana-bin-12.4.7.ebuild b/www-apps/grafana-bin/grafana-bin-12.4.11.ebuild
index 75c21c3952a4..041649aafa2a 100644
--- a/www-apps/grafana-bin/grafana-bin-12.4.7.ebuild
+++ b/www-apps/grafana-bin/grafana-bin-12.4.11.ebuild
@@ -11,22 +11,18 @@ MY_PV=${PV/_beta/-beta}
DESCRIPTION="Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB"
HOMEPAGE="https://grafana.org"
-REAL_PV="12.4.7"
-REAL_PVR="12.4.7_30647961040"
-
-BASE_A_ARM64="grafana_${REAL_PVR}_linux_arm64.tar.gz"
-BASE_A_AMD64="grafana_${REAL_PVR}_linux_amd64.tar.gz"
-BASE_URL="https://dl.grafana.com/grafana/release/${REAL_PV}"
-MY_PATCH="" # leading zero means we cannot use plain $PV
+BASE_A_ARM64="grafana_${PVR}_linux_arm64.tar.gz"
+BASE_A_AMD64="grafana_${PVR}_linux_amd64.tar.gz"
+BASE_URL="https://dl.grafana.com/grafana/release/${PV}"
SRC_URI="
amd64? (
- ${BASE_URL}/${BASE_A_AMD64}
+ https://dl.grafana.com/oss/release/grafana-${PV}.linux-amd64.tar.gz -> ${P}.amd64.tar.gz
)
arm64? (
- ${BASE_URL}/${BASE_A_ARM64}
+ https://dl.grafana.com/oss/release/grafana-${PV}.linux-arm64.tar.gz -> ${P}.arm64.tar.gz
)
"
-S=${WORKDIR}/${MY_PN}-${REAL_PV}
+S=${WORKDIR}/${MY_PN}-${MY_PV}
LICENSE="AGPL-3"
SLOT="0"
diff --git a/www-apps/grafana-bin/grafana-bin-13.1.6.ebuild b/www-apps/grafana-bin/grafana-bin-13.1.6.ebuild
new file mode 100644
index 000000000000..67b97cf6f568
--- /dev/null
+++ b/www-apps/grafana-bin/grafana-bin-13.1.6.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd
+
+MY_PN=${PN/-bin/}
+MY_PV=${PV/_beta/-beta}
+
+DESCRIPTION="Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB"
+HOMEPAGE="https://grafana.org"
+
+SRC_URI="
+amd64? (
+ https://dl.grafana.com/oss/release/grafana-${PV}.linux-amd64.tar.gz -> ${P}.amd64.tar.gz
+)
+arm64? (
+ https://dl.grafana.com/oss/release/grafana-${PV}.linux-arm64.tar.gz -> ${P}.arm64.tar.gz
+)
+"
+S=${WORKDIR}/${MY_PN}-${MY_PV}
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~arm64"
+RESTRICT="mirror"
+
+DEPEND="acct-group/grafana
+ acct-user/grafana"
+RDEPEND="${DEPEND}
+ media-libs/fontconfig"
+
+QA_PREBUILT="usr/bin/grafana*"
+QA_PRESTRIPPED=${QA_PREBUILT}
+
+src_install() {
+ keepdir /etc/grafana
+ insinto /etc/grafana
+ newins "${S}"/conf/sample.ini grafana.ini
+ rm "${S}"/conf/sample.ini || die
+
+ # Frontend assets
+ insinto /usr/share/${MY_PN}
+ doins -r public conf
+
+ # Upstream packaging changes in v13; "cli" and "server" are commands ideally
+ exeinto /usr/share/grafana/bin
+ doexe bin/grafana
+ dobin packaging/wrappers/grafana-cli
+ dobin packaging/wrappers/grafana
+ dobin packaging/wrappers/grafana-server
+
+ newconfd "${FILESDIR}"/grafana-r1.confd grafana
+ newinitd "${FILESDIR}"/grafana.initd2 grafana
+ systemd_newunit "${FILESDIR}"/grafana.service grafana.service
+
+ keepdir /var/{lib,log}/grafana
+ keepdir /var/lib/grafana/{dashboards,plugins}
+ fowners grafana:grafana /var/{lib,log}/grafana
+ fowners grafana:grafana /var/lib/grafana/{dashboards,plugins}
+ fperms 0750 /var/{lib,log}/grafana
+ fperms 0750 /var/lib/grafana/{dashboards,plugins}
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ # This is a new installation
+
+ elog "${PN} has built-in log rotation. Please see [log.file] section of"
+ elog "/etc/grafana/grafana.ini for related settings."
+ elog
+ elog "You may add your own custom configuration for app-admin/logrotate if you"
+ elog "wish to use external rotation of logs. In this case, you also need to make"
+ elog "sure the built-in rotation is turned off."
+ fi
+}
diff --git a/www-apps/grafana-bin/grafana-bin-13.1.2.ebuild b/www-apps/grafana-bin/grafana-bin-13.2.2.ebuild
index 0ea0357f3699..ccf099e3ffec 100644
--- a/www-apps/grafana-bin/grafana-bin-13.1.2.ebuild
+++ b/www-apps/grafana-bin/grafana-bin-13.2.2.ebuild
@@ -11,21 +11,15 @@ MY_PV=${PV/_beta/-beta}
DESCRIPTION="Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB"
HOMEPAGE="https://grafana.org"
-REAL_PV="13.1.2"
-REAL_PVR="13.1.2_30900078095"
-BASE_A_ARM64="grafana_${REAL_PVR}_linux_arm64.tar.gz"
-BASE_A_AMD64="grafana_${REAL_PVR}_linux_amd64.tar.gz"
-BASE_URL="https://dl.grafana.com/grafana/release/${REAL_PV}"
-MY_PATCH="" # leading zero means we cannot use plain $PV
SRC_URI="
amd64? (
- ${BASE_URL}/${BASE_A_AMD64}
+ https://dl.grafana.com/oss/release/grafana-${PV}.linux-amd64.tar.gz -> ${P}.amd64.tar.gz
)
arm64? (
- ${BASE_URL}/${BASE_A_ARM64}
+ https://dl.grafana.com/oss/release/grafana-${PV}.linux-arm64.tar.gz -> ${P}.arm64.tar.gz
)
"
-S=${WORKDIR}/${MY_PN}-${REAL_PV}
+S=${WORKDIR}/${MY_PN}-${MY_PV}
LICENSE="AGPL-3"
SLOT="0"