Add dev-qt from an older version of the gentoo repo

Qt5 has been removed, we restore it since we still use it.
This commit is contained in:
2026-07-03 09:45:00 +02:00
parent 2247967dd3
commit d5c461ec31
587 changed files with 30457 additions and 0 deletions

View File

@ -0,0 +1,7 @@
DIST qtmultimedia-5.15.16-gentoo-kde-1.tar.xz 1496 BLAKE2B 760f0ee32f353849c0e826622fea0e744ceb4e96d3ae3a6e903b32e7e5211d803e29761538c45797f61f0766ae726206fd799fc4d2fa094f46176ee0d6d5a0fb SHA512 97b161727450864643c0c2d395757d3f78503c02d26151017bdbebfd55e7ffeeffc63e530baecdba4a43dc364dad614dd893278eb84e89587c8ac51f89e14f87
DIST qtmultimedia-5.15.17-gentoo-kde-1.tar.xz 1496 BLAKE2B dccdf66e3c1447ed50f492f8ddd8fc1464932c97b31564197f228baf6c279b51029e9244cd6c13d6a1bd313caea97a6fbe84dc5df5d98b6921ae72c3564b19e4 SHA512 4b124981981d7c9a40d549e89decaac9ae6b3b034f186697accc4fb44fd5851ec178d96789305f00b7be8de2b59198933d8b37f1ee18f051c66a11f81ba01220
DIST qtmultimedia-everywhere-opensource-src-5.15.16.tar.xz 3824912 BLAKE2B d98fcc82164d36f2bc21769796ce69c4b0aff57295795004cc609662a10fa80ecf8709c39ed53f96576071fd9e1e2d6eaadcc4eeb97c3fa6406ca7e2f8dcafe7 SHA512 a848affbc38a532455a34bdf887948210ff9794dae312115be0622246993324902b81209c2cac89ca5db63e6fcc29690f47c1255b1b7c4de68bf6ad5a6ecc5e7
DIST qtmultimedia-everywhere-opensource-src-5.15.17.tar.xz 3825964 BLAKE2B e1e24c2a93ebd75e20e7fe14256d1c8c40bd17767f0936256c8b3b926bfe4f3d5725ddc90c24af42274e4d2c0bb776981e746d8059cae4b874317c9ebcd826d4 SHA512 50679719d500abd32e66d957b1cede6f49de9b4170b4da527cc49715bae5048b68f6e9c0e4e83c01b63350816ef1b02b329233321dfed858ee5806fafb233a52
DIST qtmultimedia-everywhere-src-6.8.2.tar.xz 9646120 BLAKE2B 14651f1f116e462449678c8c566aaac20356b61b73b023b3aa3e0199b1f44844fb76da82406d653c004a104abd48db6bf8d8d67a3a5216e33447f3505f2fbdfa SHA512 557017faec2596368a453adfee284d88cd83033e73e78b01a6d1918cdf86a283e0a8bfd8a211b31591a7d69fde130528b7a266213460ca37647b13f90b4e22f3
DIST qtmultimedia-everywhere-src-6.8.3.tar.xz 9705340 BLAKE2B 2098bb150ab8be751e359762a42d1c1429fe49b619dc5d7ebc31d7f366c5880d5d5536c576e24d2a19b61ec08d6bbddf69268f72965599d520465e8b65dc6c41 SHA512 2f001888b44274583dcd5bc6f467cf18efbb1a711f29d6baf354071199772ee49d835922f2fa0e9770898d42decddf04b379d8f05d1dfd923c5f9d58e3c7fcd8
DIST qtmultimedia-everywhere-src-6.9.0.tar.xz 9745024 BLAKE2B af9ae04218ad397406deb79d5c46f5a33a303c21ade2fb86420f75cb3d8bb02eb539e2aedb4dcaa678015bf690d3cb127bada9262c3891007ce392907ba93e6e SHA512 0fb5e1ae3286a903dce225aa81033a3036d5c6457e6704b4265cd9c3e3a47fca6c0ff8cdb004e5c563c5b2a5a91e217733299a8ed8dec951a0fb9c30a2edd52a

View File

@ -0,0 +1,152 @@
Imported from dev-cpp/eigen to use with bundled's (ideally would
unbundle but rather not w/ Qt unless there is an upstream-supported
cmake switch, is likely broken w/ the upcoming eigen version too).
This is a backport from eigen upstream, so should no longer be needed
whenever there is a bump (not in a release as of the writing of this)
and it is updated here.
https://bugs.gentoo.org/943402
https://bugs.gentoo.org/936107
https://gitlab.com/libeigen/eigen/-/merge_requests/1028
--- a/src/3rdparty/eigen/Eigen/Core
+++ b/src/3rdparty/eigen/Eigen/Core
@@ -348,3 +348,3 @@
-#if defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX)
+#if defined(EIGEN_VECTORIZE_VSX)
#include "src/Core/arch/AltiVec/MatrixProduct.h"
--- a/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/Complex.h
+++ b/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/Complex.h
@@ -102,2 +102,3 @@
HasMax = 0,
+ HasSqrt = 1,
#ifdef __VSX__
@@ -322,2 +323,3 @@
HasMax = 0,
+ HasSqrt = 1,
HasSetLinear = 0
--- a/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+++ b/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h
@@ -42,2 +42,3 @@
+#ifdef __VSX__
#ifndef EIGEN_COMP_CLANG
@@ -48,6 +49,3 @@
}
-#endif
-#ifdef __VSX__
-#ifndef EIGEN_COMP_CLANG
template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
@@ -76,2 +74,22 @@
}
+
+template<> EIGEN_STRONG_INLINE Packet8bf psqrt<Packet8bf> (const Packet8bf& a){
+ BF16_TO_F32_UNARY_OP_WRAPPER(psqrt<Packet4f>, a);
+}
+
+#ifndef EIGEN_COMP_CLANG
+template<> EIGEN_STRONG_INLINE Packet8bf prsqrt<Packet8bf> (const Packet8bf& a){
+ BF16_TO_F32_UNARY_OP_WRAPPER(prsqrt<Packet4f>, a);
+}
+#endif
+#else
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet4f psqrt<Packet4f>(const Packet4f& x)
+{
+ Packet4f a;
+ for (Index i = 0; i < packet_traits<float>::size; i++) {
+ a[i] = numext::sqrt(x[i]);
+ }
+ return a;
+}
#endif
--- a/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h
+++ b/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h
@@ -177,2 +177,5 @@
#endif
+ HasTanh = EIGEN_FAST_MATH,
+ HasErf = EIGEN_FAST_MATH,
+ HasRint = 1,
#else
@@ -180,4 +183,5 @@
HasRsqrt = 0,
- HasTanh = EIGEN_FAST_MATH,
- HasErf = EIGEN_FAST_MATH,
+ HasTanh = 0,
+ HasErf = 0,
+ HasRint = 0,
#endif
@@ -186,3 +190,2 @@
HasCeil = 1,
- HasRint = 1,
HasNegate = 1,
@@ -219,2 +222,3 @@
#endif
+ HasRint = 1,
#else
@@ -222,5 +226,6 @@
HasRsqrt = 0,
- HasTanh = EIGEN_FAST_MATH,
- HasErf = EIGEN_FAST_MATH,
+ HasRint = 0,
#endif
+ HasTanh = 0,
+ HasErf = 0,
HasRound = 1,
@@ -228,3 +233,2 @@
HasCeil = 1,
- HasRint = 1,
HasNegate = 1,
@@ -874,15 +878,25 @@
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet4i pcmp_le(const Packet4i& a, const Packet4i& b) { return reinterpret_cast<Packet4i>(vec_cmple(a,b)); }
+#endif
template<> EIGEN_STRONG_INLINE Packet4i pcmp_lt(const Packet4i& a, const Packet4i& b) { return reinterpret_cast<Packet4i>(vec_cmplt(a,b)); }
template<> EIGEN_STRONG_INLINE Packet4i pcmp_eq(const Packet4i& a, const Packet4i& b) { return reinterpret_cast<Packet4i>(vec_cmpeq(a,b)); }
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet8s pcmp_le(const Packet8s& a, const Packet8s& b) { return reinterpret_cast<Packet8s>(vec_cmple(a,b)); }
+#endif
template<> EIGEN_STRONG_INLINE Packet8s pcmp_lt(const Packet8s& a, const Packet8s& b) { return reinterpret_cast<Packet8s>(vec_cmplt(a,b)); }
template<> EIGEN_STRONG_INLINE Packet8s pcmp_eq(const Packet8s& a, const Packet8s& b) { return reinterpret_cast<Packet8s>(vec_cmpeq(a,b)); }
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet8us pcmp_le(const Packet8us& a, const Packet8us& b) { return reinterpret_cast<Packet8us>(vec_cmple(a,b)); }
+#endif
template<> EIGEN_STRONG_INLINE Packet8us pcmp_lt(const Packet8us& a, const Packet8us& b) { return reinterpret_cast<Packet8us>(vec_cmplt(a,b)); }
template<> EIGEN_STRONG_INLINE Packet8us pcmp_eq(const Packet8us& a, const Packet8us& b) { return reinterpret_cast<Packet8us>(vec_cmpeq(a,b)); }
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet16c pcmp_le(const Packet16c& a, const Packet16c& b) { return reinterpret_cast<Packet16c>(vec_cmple(a,b)); }
+#endif
template<> EIGEN_STRONG_INLINE Packet16c pcmp_lt(const Packet16c& a, const Packet16c& b) { return reinterpret_cast<Packet16c>(vec_cmplt(a,b)); }
template<> EIGEN_STRONG_INLINE Packet16c pcmp_eq(const Packet16c& a, const Packet16c& b) { return reinterpret_cast<Packet16c>(vec_cmpeq(a,b)); }
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet16uc pcmp_le(const Packet16uc& a, const Packet16uc& b) { return reinterpret_cast<Packet16uc>(vec_cmple(a,b)); }
+#endif
template<> EIGEN_STRONG_INLINE Packet16uc pcmp_lt(const Packet16uc& a, const Packet16uc& b) { return reinterpret_cast<Packet16uc>(vec_cmplt(a,b)); }
@@ -939,2 +953,3 @@
template<> EIGEN_STRONG_INLINE Packet4f pfloor<Packet4f>(const Packet4f& a) { return vec_floor(a); }
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet4f print<Packet4f>(const Packet4f& a)
@@ -949,2 +964,3 @@
}
+#endif
@@ -1343,8 +1359,2 @@
-template<> EIGEN_STRONG_INLINE Packet8bf psqrt<Packet8bf> (const Packet8bf& a){
- BF16_TO_F32_UNARY_OP_WRAPPER(vec_sqrt, a);
-}
-template<> EIGEN_STRONG_INLINE Packet8bf prsqrt<Packet8bf> (const Packet8bf& a){
- BF16_TO_F32_UNARY_OP_WRAPPER(prsqrt<Packet4f>, a);
-}
template<> EIGEN_STRONG_INLINE Packet8bf pexp<Packet8bf> (const Packet8bf& a){
@@ -1392,2 +1402,3 @@
}
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet8bf print<Packet8bf> (const Packet8bf& a){
@@ -1395,2 +1406,3 @@
}
+#endif
template<> EIGEN_STRONG_INLINE Packet8bf pmadd(const Packet8bf& a, const Packet8bf& b, const Packet8bf& c) {

View File

@ -0,0 +1,8 @@
https://bugs.gentoo.org/947606
TODO: needs upstreaming
--- a/src/plugins/multimedia/gstreamer/common/qgstreameraudiooutput.cpp
+++ b/src/plugins/multimedia/gstreamer/common/qgstreameraudiooutput.cpp
@@ -13,2 +13,3 @@
#if QT_CONFIG(pulseaudio)
+# include <QVersionNumber>
# include <pulse/version.h>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>qt@gentoo.org</email>
<name>Gentoo Qt Project</name>
</maintainer>
<use>
<flag name="eglfs">Enable screen capture support with Qt's EGL Full Screen/Single Surface platform plugin</flag>
<flag name="gstreamer">Enable <pkg>media-libs/gstreamer</pkg> support</flag>
<flag name="pipewire">Enable <pkg>media-video/pipewire</pkg> support</flag>
<flag name="qml">Build QML/QtQuick bindings and imports</flag>
<flag name="widgets">Build the QtMultimediaWidgets module</flag>
</use>
<upstream>
<bugs-to>https://bugreports.qt.io/</bugs-to>
<doc>https://doc.qt.io/</doc>
<remote-id type="github">qt/qtmultimedia</remote-id>
</upstream>
<slots>
<subslots>
Must only be used by packages that are known to use private parts of the Qt API.
</subslots>
</slots>
</pkgmetadata>

View File

@ -0,0 +1,70 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
if [[ ${PV} != *9999* ]]; then
QT5_KDEPATCHSET_REV=1
KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86"
fi
inherit qt5-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt5 framework"
IUSE="alsa gles2-only gstreamer openal pulseaudio qml widgets"
RDEPEND="
=dev-qt/qtcore-${QT5_PV}*
=dev-qt/qtgui-${QT5_PV}*[gles2-only=]
=dev-qt/qtnetwork-${QT5_PV}*
alsa? ( media-libs/alsa-lib )
gstreamer? (
dev-libs/glib:2
media-libs/gstreamer:1.0
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
)
pulseaudio? ( media-libs/libpulse[glib] )
qml? (
=dev-qt/qtdeclarative-${QT5_PV}*
gles2-only? ( =dev-qt/qtgui-${QT5_PV}*[egl] )
openal? ( media-libs/openal )
)
widgets? (
=dev-qt/qtwidgets-${QT5_PV}*[gles2-only=]
media-libs/libglvnd
)
"
DEPEND="${RDEPEND}
gstreamer? ( x11-base/xorg-proto )
"
src_prepare() {
sed -i -e '/CONFIG\s*+=/ s/optimize_full//' \
src/multimedia/multimedia.pro || die
qt_use_disable_config openal openal \
src/imports/imports.pro
qt_use_disable_mod qml quick \
src/src.pro \
src/plugins/plugins.pro
qt_use_disable_mod widgets widgets \
src/src.pro \
src/gsttools/gsttools.pro \
src/plugins/gstreamer/common.pri
qt5-build_src_prepare
}
src_configure() {
local myqmakeargs=(
--
$(qt_use alsa)
$(qt_use gstreamer)
$(qt_use pulseaudio)
)
qt5-build_src_configure
}

View File

@ -0,0 +1,70 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
if [[ ${PV} != *9999* ]]; then
QT5_KDEPATCHSET_REV=1
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
inherit qt5-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt5 framework"
IUSE="alsa gles2-only gstreamer openal pulseaudio qml widgets"
RDEPEND="
=dev-qt/qtcore-${QT5_PV}*
=dev-qt/qtgui-${QT5_PV}*[gles2-only=]
=dev-qt/qtnetwork-${QT5_PV}*
alsa? ( media-libs/alsa-lib )
gstreamer? (
dev-libs/glib:2
media-libs/gstreamer:1.0
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
)
pulseaudio? ( media-libs/libpulse[glib] )
qml? (
=dev-qt/qtdeclarative-${QT5_PV}*
gles2-only? ( =dev-qt/qtgui-${QT5_PV}*[egl] )
openal? ( media-libs/openal )
)
widgets? (
=dev-qt/qtwidgets-${QT5_PV}*[gles2-only=]
media-libs/libglvnd
)
"
DEPEND="${RDEPEND}
gstreamer? ( x11-base/xorg-proto )
"
src_prepare() {
sed -i -e '/CONFIG\s*+=/ s/optimize_full//' \
src/multimedia/multimedia.pro || die
qt_use_disable_config openal openal \
src/imports/imports.pro
qt_use_disable_mod qml quick \
src/src.pro \
src/plugins/plugins.pro
qt_use_disable_mod widgets widgets \
src/src.pro \
src/gsttools/gsttools.pro \
src/plugins/gstreamer/common.pri
qt5-build_src_prepare
}
src_configure() {
local myqmakeargs=(
--
$(qt_use alsa)
$(qt_use gstreamer)
$(qt_use pulseaudio)
)
qt5-build_src_configure
}

View File

@ -0,0 +1,70 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
if [[ ${PV} != *9999* ]]; then
QT5_KDEPATCHSET_REV=1
KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86"
fi
inherit qt5-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt5 framework"
IUSE="alsa gles2-only gstreamer openal pulseaudio qml widgets"
RDEPEND="
=dev-qt/qtcore-${QT5_PV}*
=dev-qt/qtgui-${QT5_PV}*[gles2-only=]
=dev-qt/qtnetwork-${QT5_PV}*
alsa? ( media-libs/alsa-lib )
gstreamer? (
dev-libs/glib:2
media-libs/gstreamer:1.0
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
)
pulseaudio? ( media-libs/libpulse[glib] )
qml? (
=dev-qt/qtdeclarative-${QT5_PV}*
gles2-only? ( =dev-qt/qtgui-${QT5_PV}*[egl] )
openal? ( media-libs/openal )
)
widgets? (
=dev-qt/qtwidgets-${QT5_PV}*[gles2-only=]
media-libs/libglvnd
)
"
DEPEND="${RDEPEND}
gstreamer? ( x11-base/xorg-proto )
"
src_prepare() {
sed -i -e '/CONFIG\s*+=/ s/optimize_full//' \
src/multimedia/multimedia.pro || die
qt_use_disable_config openal openal \
src/imports/imports.pro
qt_use_disable_mod qml quick \
src/src.pro \
src/plugins/plugins.pro
qt_use_disable_mod widgets widgets \
src/src.pro \
src/gsttools/gsttools.pro \
src/plugins/gstreamer/common.pri
qt5-build_src_prepare
}
src_configure() {
local myqmakeargs=(
--
$(qt_use alsa)
$(qt_use gstreamer)
$(qt_use pulseaudio)
)
qt5-build_src_configure
}

View File

@ -0,0 +1,153 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
QT6_HAS_STATIC_LIBS=1
inherit flag-o-matic qt6-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc64 ~riscv x86"
fi
IUSE="
+X alsa +dbus eglfs +ffmpeg gstreamer opengl pipewire pulseaudio
qml +v4l vaapi vulkan wayland
"
REQUIRED_USE="
|| ( ffmpeg gstreamer )
eglfs? ( ffmpeg opengl qml )
vaapi? ( ffmpeg opengl )
"
# dlopen/dbus: pipewire
RDEPEND="
~dev-qt/qtbase-${PV}:6[concurrent,gui,network,opengl=,vulkan=,widgets]
alsa? (
!pulseaudio? ( media-libs/alsa-lib )
)
ffmpeg? (
~dev-qt/qtbase-${PV}:6[X=,concurrent,eglfs=]
media-video/ffmpeg:=[vaapi?]
X? (
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
)
)
gstreamer? (
dev-libs/glib:2
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
media-libs/gstreamer:1.0
opengl? (
~dev-qt/qtbase-${PV}:6[X?,wayland?]
media-libs/gst-plugins-base:1.0[X?,egl,opengl,wayland?]
)
)
opengl? ( media-libs/libglvnd )
pipewire? (
~dev-qt/qtbase-${PV}:6[dbus?]
media-video/pipewire:=
)
pulseaudio? ( media-libs/libpulse )
qml? (
~dev-qt/qtdeclarative-${PV}:6
~dev-qt/qtquick3d-${PV}:6
)
"
DEPEND="
${RDEPEND}
X? ( x11-base/xorg-proto )
v4l? ( sys-kernel/linux-headers )
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="~dev-qt/qtshadertools-${PV}:6"
CMAKE_SKIP_TESTS=(
# unimportant and expects all backends to be available (bug #928420)
tst_backends
# tries to use real alsa or pulseaudio and fails in sandbox
tst_qaudiosink
tst_qaudiosource
tst_qmediacapture_gstreamer
tst_qmediacapturesession
tst_qmediaframeinputsbackend
tst_qmediaplayer_gstreamer
tst_qmediaplayerbackend
tst_qsoundeffect
# may try to use v4l2 or hardware acceleration depending on availability
tst_qcamerabackend #972689
tst_qmediarecorderbackend
tst_qscreencapture_integration
tst_qscreencapturebackend
tst_qvideoframebackend
# seems flaky depending on what codecs system libraries support or not
tst_qmediaformatbackend
# fails with offscreen rendering
tst_qvideoframecolormanagement
tst_qwindowcapturebackend
)
src_prepare() {
qt6-build_src_prepare
# test expects GStreamer to report an exact bitrate value, but
# this varies depending on version and Qt updates it only now
# and then (disabling permanently with a sed to avoid rebases)
sed -e '/bool validateBitRates = GST_CHECK_VERSION/s/= .*/= false;/' \
-i tests/auto/unit/plugins/multimedia/gstreamer/gstreamer_backend/tst_gstreamer_backend.cpp || die
}
src_configure() {
# normally passed by the build system, but needed for 32-on-64 chroots
use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Qml)
$(qt_feature ffmpeg)
$(qt_feature gstreamer)
$(usev gstreamer "
$(qt_feature opengl gstreamer_gl)
$(usev opengl "
$(qt_feature X gstreamer_gl_x11)
$(qt_feature wayland gstreamer_gl_wayland)
")
")
$(qt_feature pipewire)
$(usev pipewire $(qt_feature dbus pipewire_screencapture))
$(qt_feature pulseaudio)
$(qt_feature v4l linux_v4l)
$(qt_feature vaapi)
)
# ALSA backend is experimental off-by-default and can take priority
# causing problems (bug #935146), disable if USE=pulseaudio is set
# (also do not want unnecessary usage of ALSA plugins -> pulse)
if use alsa && use pulseaudio; then
# einfo should be enough given pure-ALSA users tend to disable pulse
einfo "Warning: USE=alsa is ignored when USE=pulseaudio is set"
mycmakeargs+=( -DQT_FEATURE_alsa=OFF )
else
mycmakeargs+=( $(qt_feature alsa) )
fi
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if use test; then
local delete=( # sigh
"${D}${QT6_LIBDIR}"/cmake/Qt6Multimedia/Qt6MockMultimediaPlugin*.cmake
"${D}${QT6_MKSPECSDIR}"/modules/qt_plugin_mockmultimediaplugin.pri
"${D}${QT6_PLUGINDIR}"/multimedia/libmockmultimediaplugin.*
"${D}${QT6_PLUGINDIR}"/multimedia/objects-*
)
# using -f given not tracking which tests may be skipped or not
rm -rf -- "${delete[@]}" || die
fi
}

View File

@ -0,0 +1,154 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
QT6_HAS_STATIC_LIBS=1
inherit flag-o-matic qt6-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc64 ~riscv x86"
fi
IUSE="
+X alsa +dbus eglfs +ffmpeg gstreamer opengl pipewire pulseaudio
qml +v4l vaapi vulkan wayland
"
REQUIRED_USE="
|| ( ffmpeg gstreamer )
eglfs? ( ffmpeg opengl qml )
vaapi? ( ffmpeg opengl )
"
# dlopen/dbus: pipewire
RDEPEND="
~dev-qt/qtbase-${PV}:6[concurrent,gui,network,opengl=,vulkan=,widgets]
alsa? (
!pulseaudio? ( media-libs/alsa-lib )
)
ffmpeg? (
~dev-qt/qtbase-${PV}:6[X=,concurrent,eglfs=]
media-video/ffmpeg:=[vaapi?]
X? (
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
)
)
gstreamer? (
dev-libs/glib:2
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
media-libs/gstreamer:1.0
opengl? (
~dev-qt/qtbase-${PV}:6[X?,wayland?]
media-libs/gst-plugins-base:1.0[X?,egl,opengl,wayland?]
)
)
opengl? ( media-libs/libglvnd )
pipewire? (
~dev-qt/qtbase-${PV}:6[dbus?]
media-video/pipewire:=
)
pulseaudio? ( media-libs/libpulse )
qml? (
~dev-qt/qtdeclarative-${PV}:6
~dev-qt/qtquick3d-${PV}:6
)
vaapi? ( media-libs/libva:= )
"
DEPEND="
${RDEPEND}
X? ( x11-base/xorg-proto )
v4l? ( sys-kernel/linux-headers )
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="~dev-qt/qtshadertools-${PV}:6"
CMAKE_SKIP_TESTS=(
# unimportant and expects all backends to be available (bug #928420)
tst_backends
# tries to use real alsa or pulseaudio and fails in sandbox
tst_qaudiosink
tst_qaudiosource
tst_qmediacapture_gstreamer
tst_qmediacapturesession
tst_qmediaframeinputsbackend
tst_qmediaplayer_gstreamer
tst_qmediaplayerbackend
tst_qsoundeffect
# may try to use v4l2 or hardware acceleration depending on availability
tst_qcamerabackend #972689
tst_qmediarecorderbackend
tst_qscreencapture_integration
tst_qscreencapturebackend
tst_qvideoframebackend
# seems flaky depending on what codecs system libraries support or not
tst_qmediaformatbackend
# fails with offscreen rendering
tst_qvideoframecolormanagement
tst_qwindowcapturebackend
)
src_prepare() {
qt6-build_src_prepare
# test expects GStreamer to report an exact bitrate value, but
# this varies depending on version and Qt updates it only now
# and then (disabling permanently with a sed to avoid rebases)
sed -e '/bool validateBitRates = GST_CHECK_VERSION/s/= .*/= false;/' \
-i tests/auto/unit/plugins/multimedia/gstreamer/gstreamer_backend/tst_gstreamer_backend.cpp || die
}
src_configure() {
# normally passed by the build system, but needed for 32-on-64 chroots
use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Qml)
$(qt_feature ffmpeg)
$(qt_feature gstreamer)
$(usev gstreamer "
$(qt_feature opengl gstreamer_gl)
$(usev opengl "
$(qt_feature X gstreamer_gl_x11)
$(qt_feature wayland gstreamer_gl_wayland)
")
")
$(qt_feature pipewire)
$(usev pipewire $(qt_feature dbus pipewire_screencapture))
$(qt_feature pulseaudio)
$(qt_feature v4l linux_v4l)
$(qt_feature vaapi)
)
# ALSA backend is experimental off-by-default and can take priority
# causing problems (bug #935146), disable if USE=pulseaudio is set
# (also do not want unnecessary usage of ALSA plugins -> pulse)
if use alsa && use pulseaudio; then
# einfo should be enough given pure-ALSA users tend to disable pulse
einfo "Warning: USE=alsa is ignored when USE=pulseaudio is set"
mycmakeargs+=( -DQT_FEATURE_alsa=OFF )
else
mycmakeargs+=( $(qt_feature alsa) )
fi
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if use test; then
local delete=( # sigh
"${D}${QT6_LIBDIR}"/cmake/Qt6Multimedia/Qt6MockMultimediaPlugin*.cmake
"${D}${QT6_MKSPECSDIR}"/modules/qt_plugin_mockmultimediaplugin.pri
"${D}${QT6_PLUGINDIR}"/multimedia/libmockmultimediaplugin.*
"${D}${QT6_PLUGINDIR}"/multimedia/objects-*
)
# using -f given not tracking which tests may be skipped or not
rm -rf -- "${delete[@]}" || die
fi
}

View File

@ -0,0 +1,154 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
QT6_HAS_STATIC_LIBS=1
inherit flag-o-matic qt6-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~x86"
fi
IUSE="
+X alsa +dbus eglfs +ffmpeg gstreamer opengl pipewire pulseaudio
qml +v4l vaapi vulkan wayland
"
REQUIRED_USE="
|| ( ffmpeg gstreamer )
eglfs? ( ffmpeg opengl qml )
vaapi? ( ffmpeg opengl )
"
# dlopen/dbus: pipewire
RDEPEND="
~dev-qt/qtbase-${PV}:6[concurrent,gui,network,opengl=,vulkan=,widgets]
alsa? (
!pulseaudio? ( media-libs/alsa-lib )
)
ffmpeg? (
~dev-qt/qtbase-${PV}:6[X=,concurrent,eglfs=]
media-video/ffmpeg:=[vaapi?]
X? (
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
)
)
gstreamer? (
dev-libs/glib:2
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
media-libs/gstreamer:1.0
opengl? (
~dev-qt/qtbase-${PV}:6[X?,wayland?]
media-libs/gst-plugins-base:1.0[X?,egl,opengl,wayland?]
)
)
opengl? ( media-libs/libglvnd )
pipewire? (
~dev-qt/qtbase-${PV}:6[dbus?]
media-video/pipewire:=
)
pulseaudio? ( media-libs/libpulse )
qml? (
~dev-qt/qtdeclarative-${PV}:6
~dev-qt/qtquick3d-${PV}:6
)
vaapi? ( media-libs/libva:= )
"
DEPEND="
${RDEPEND}
X? ( x11-base/xorg-proto )
v4l? ( sys-kernel/linux-headers )
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="~dev-qt/qtshadertools-${PV}:6"
CMAKE_SKIP_TESTS=(
# unimportant and expects all backends to be available (bug #928420)
tst_backends
# tries to use real alsa or pulseaudio and fails in sandbox
tst_qaudiosink
tst_qaudiosource
tst_qmediacapture_gstreamer
tst_qmediacapturesession
tst_qmediaframeinputsbackend
tst_qmediaplayer_gstreamer
tst_qmediaplayerbackend
tst_qsoundeffect
# may try to use v4l2 or hardware acceleration depending on availability
tst_qcamerabackend #972689
tst_qmediarecorderbackend
tst_qscreencapture_integration
tst_qscreencapturebackend
tst_qvideoframebackend
# seems flaky depending on what codecs system libraries support or not
tst_qmediaformatbackend
# fails with offscreen rendering
tst_qvideoframecolormanagement
tst_qwindowcapturebackend
)
src_prepare() {
qt6-build_src_prepare
# test expects GStreamer to report an exact bitrate value, but
# this varies depending on version and Qt updates it only now
# and then (disabling permanently with a sed to avoid rebases)
sed -e '/bool validateBitRates = GST_CHECK_VERSION/s/= .*/= false;/' \
-i tests/auto/unit/plugins/multimedia/gstreamer/gstreamer_backend/tst_gstreamer_backend.cpp || die
}
src_configure() {
# normally passed by the build system, but needed for 32-on-64 chroots
use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Qml)
$(qt_feature ffmpeg)
$(qt_feature gstreamer)
$(usev gstreamer "
$(qt_feature opengl gstreamer_gl)
$(usev opengl "
$(qt_feature X gstreamer_gl_x11)
$(qt_feature wayland gstreamer_gl_wayland)
")
")
$(qt_feature pipewire)
$(usev pipewire $(qt_feature dbus pipewire_screencapture))
$(qt_feature pulseaudio)
$(qt_feature v4l linux_v4l)
$(qt_feature vaapi)
)
# ALSA backend is experimental off-by-default and can take priority
# causing problems (bug #935146), disable if USE=pulseaudio is set
# (also do not want unnecessary usage of ALSA plugins -> pulse)
if use alsa && use pulseaudio; then
# einfo should be enough given pure-ALSA users tend to disable pulse
einfo "Warning: USE=alsa is ignored when USE=pulseaudio is set"
mycmakeargs+=( -DQT_FEATURE_alsa=OFF )
else
mycmakeargs+=( $(qt_feature alsa) )
fi
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if use test; then
local delete=( # sigh
"${D}${QT6_LIBDIR}"/cmake/Qt6Multimedia/Qt6MockMultimediaPlugin*.cmake
"${D}${QT6_MKSPECSDIR}"/modules/qt_plugin_mockmultimediaplugin.pri
"${D}${QT6_PLUGINDIR}"/multimedia/libmockmultimediaplugin.*
"${D}${QT6_PLUGINDIR}"/multimedia/objects-*
)
# using -f given not tracking which tests may be skipped or not
rm -rf -- "${delete[@]}" || die
fi
}

View File

@ -0,0 +1,154 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
QT6_HAS_STATIC_LIBS=1
inherit flag-o-matic qt6-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~x86"
fi
IUSE="
+X alsa +dbus eglfs +ffmpeg gstreamer opengl pipewire pulseaudio
qml +v4l vaapi vulkan wayland
"
REQUIRED_USE="
|| ( ffmpeg gstreamer )
eglfs? ( ffmpeg opengl qml )
vaapi? ( ffmpeg opengl )
"
# dlopen/dbus: pipewire
RDEPEND="
~dev-qt/qtbase-${PV}:6[concurrent,gui,network,opengl=,vulkan=,widgets]
alsa? (
!pulseaudio? ( media-libs/alsa-lib )
)
ffmpeg? (
~dev-qt/qtbase-${PV}:6[X=,concurrent,eglfs=]
media-video/ffmpeg:=[vaapi?]
X? (
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
)
)
gstreamer? (
dev-libs/glib:2
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
media-libs/gstreamer:1.0
opengl? (
~dev-qt/qtbase-${PV}:6[X?,wayland?]
media-libs/gst-plugins-base:1.0[X?,egl,opengl,wayland?]
)
)
opengl? ( media-libs/libglvnd )
pipewire? (
~dev-qt/qtbase-${PV}:6[dbus?]
media-video/pipewire:=
)
pulseaudio? ( media-libs/libpulse )
qml? (
~dev-qt/qtdeclarative-${PV}:6
~dev-qt/qtquick3d-${PV}:6
)
vaapi? ( media-libs/libva:= )
"
DEPEND="
${RDEPEND}
X? ( x11-base/xorg-proto )
v4l? ( sys-kernel/linux-headers )
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="~dev-qt/qtshadertools-${PV}:6"
CMAKE_SKIP_TESTS=(
# unimportant and expects all backends to be available (bug #928420)
tst_backends
# tries to use real alsa or pulseaudio and fails in sandbox
tst_qaudiosink
tst_qaudiosource
tst_qmediacapture_gstreamer
tst_qmediacapturesession
tst_qmediaframeinputsbackend
tst_qmediaplayer_gstreamer
tst_qmediaplayerbackend
tst_qsoundeffect
# may try to use v4l2 or hardware acceleration depending on availability
tst_qcamerabackend #972689
tst_qmediarecorderbackend
tst_qscreencapture_integration
tst_qscreencapturebackend
tst_qvideoframebackend
# seems flaky depending on what codecs system libraries support or not
tst_qmediaformatbackend
# fails with offscreen rendering
tst_qvideoframecolormanagement
tst_qwindowcapturebackend
)
src_prepare() {
qt6-build_src_prepare
# test expects GStreamer to report an exact bitrate value, but
# this varies depending on version and Qt updates it only now
# and then (disabling permanently with a sed to avoid rebases)
sed -e '/bool validateBitRates = GST_CHECK_VERSION/s/= .*/= false;/' \
-i tests/auto/unit/plugins/multimedia/gstreamer/gstreamer_backend/tst_gstreamer_backend.cpp || die
}
src_configure() {
# normally passed by the build system, but needed for 32-on-64 chroots
use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Qml)
$(qt_feature ffmpeg)
$(qt_feature gstreamer)
$(usev gstreamer "
$(qt_feature opengl gstreamer_gl)
$(usev opengl "
$(qt_feature X gstreamer_gl_x11)
$(qt_feature wayland gstreamer_gl_wayland)
")
")
$(qt_feature pipewire)
$(usev pipewire $(qt_feature dbus pipewire_screencapture))
$(qt_feature pulseaudio)
$(qt_feature v4l linux_v4l)
$(qt_feature vaapi)
)
# ALSA backend is experimental off-by-default and can take priority
# causing problems (bug #935146), disable if USE=pulseaudio is set
# (also do not want unnecessary usage of ALSA plugins -> pulse)
if use alsa && use pulseaudio; then
# einfo should be enough given pure-ALSA users tend to disable pulse
einfo "Warning: USE=alsa is ignored when USE=pulseaudio is set"
mycmakeargs+=( -DQT_FEATURE_alsa=OFF )
else
mycmakeargs+=( $(qt_feature alsa) )
fi
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if use test; then
local delete=( # sigh
"${D}${QT6_LIBDIR}"/cmake/Qt6Multimedia/Qt6MockMultimediaPlugin*.cmake
"${D}${QT6_MKSPECSDIR}"/modules/qt_plugin_mockmultimediaplugin.pri
"${D}${QT6_PLUGINDIR}"/multimedia/libmockmultimediaplugin.*
"${D}${QT6_PLUGINDIR}"/multimedia/objects-*
)
# using -f given not tracking which tests may be skipped or not
rm -rf -- "${delete[@]}" || die
fi
}

View File

@ -0,0 +1,153 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic qt6-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86"
fi
IUSE="
+X alsa eglfs +ffmpeg gstreamer opengl pulseaudio
qml screencast v4l vaapi vulkan wayland
"
# tst_qmediaplayerbackend hard requires qml, review in case becomes optional
REQUIRED_USE="
|| ( ffmpeg gstreamer )
eglfs? ( ffmpeg opengl qml )
screencast? ( ffmpeg )
test? ( qml )
vaapi? ( ffmpeg opengl )
"
# gstreamer[X=] is to avoid broken gst detect if -X w/ gst[X] w/o xorg-proto
# (*could* be removed if gst-plugins-base[X] RDEPENDs on xorg-proto)
# := skipped on pipewire due to only being used through dbus
RDEPEND="
~dev-qt/qtbase-${PV}:6[gui,network,opengl=,vulkan=,widgets]
alsa? (
!pulseaudio? ( media-libs/alsa-lib )
)
ffmpeg? (
~dev-qt/qtbase-${PV}:6[X=,concurrent,eglfs=]
media-video/ffmpeg:=[vaapi?]
X? (
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
)
)
gstreamer? (
dev-libs/glib:2
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0[X=]
media-libs/gstreamer:1.0
opengl? (
~dev-qt/qtbase-${PV}:6[X?,wayland?]
media-libs/gst-plugins-base:1.0[X?,egl,opengl,wayland?]
)
)
opengl? ( media-libs/libglvnd )
pulseaudio? ( media-libs/libpulse )
qml? (
~dev-qt/qtdeclarative-${PV}:6
~dev-qt/qtquick3d-${PV}:6
)
screencast? (
~dev-qt/qtbase-${PV}:6[dbus]
media-video/pipewire
)
"
DEPEND="
${RDEPEND}
X? ( x11-base/xorg-proto )
v4l? ( sys-kernel/linux-headers )
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="~dev-qt/qtshadertools-${PV}:6"
CMAKE_SKIP_TESTS=(
# unimportant and expects all backends to be available (bug #928420)
tst_backends
# tries to use real alsa or pulseaudio and fails in sandbox
tst_qaudiosink
tst_qaudiosource
tst_qmediacapture_gstreamer
tst_qmediacapturesession
tst_qmediaframeinputsbackend
tst_qmediaplayer_gstreamer
tst_qmediaplayerbackend
tst_qsoundeffect
# may try to use v4l2 or hardware acceleration depending on availability
tst_qmediarecorderbackend
tst_qscreencapture_integration
tst_qscreencapturebackend
tst_qvideoframebackend
# seems flaky depending on what codecs system libraries support or not
tst_qmediaformatbackend
# fails with offscreen rendering
tst_qvideoframecolormanagement
tst_qwindowcapturebackend
)
PATCHES=(
"${FILESDIR}"/${PN}-6.7.3-eigen-ppc-no-vsx.patch
"${FILESDIR}"/${PN}-6.8.1-qversionnumber.patch
)
src_configure() {
# eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402)
use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE
# normally passed by the build system, but needed for 32-on-64 chroots
use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Qml)
$(qt_feature ffmpeg)
$(qt_feature gstreamer)
$(usev gstreamer "
$(qt_feature opengl gstreamer_gl)
$(usev opengl "
$(qt_feature X gstreamer_gl_x11)
$(qt_feature wayland gstreamer_gl_wayland)
")
")
$(qt_feature pulseaudio)
$(qt_feature screencast pipewire)
$(qt_feature v4l linux_v4l)
$(qt_feature vaapi)
)
# ALSA backend is experimental off-by-default and can take priority
# causing problems (bug #935146), disable if USE=pulseaudio is set
# (also do not want unnecessary usage of ALSA plugins -> pulse)
if use alsa && use pulseaudio; then
# einfo should be enough given pure-ALSA users tend to disable pulse
einfo "Warning: USE=alsa is ignored when USE=pulseaudio is set"
mycmakeargs+=( -DQT_FEATURE_alsa=OFF )
else
mycmakeargs+=( $(qt_feature alsa) )
fi
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if use test; then
local delete=( # sigh
"${D}${QT6_LIBDIR}"/cmake/Qt6Multimedia/Qt6MockMultimediaPlugin*.cmake
"${D}${QT6_MKSPECSDIR}"/modules/qt_plugin_mockmultimediaplugin.pri
"${D}${QT6_PLUGINDIR}"/multimedia/libmockmultimediaplugin.*
"${D}${QT6_PLUGINDIR}"/multimedia/objects-*
)
# using -f given not tracking which tests may be skipped or not
rm -rf -- "${delete[@]}" || die
fi
}

View File

@ -0,0 +1,151 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic qt6-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv x86"
fi
IUSE="
+X alsa +dbus eglfs +ffmpeg gstreamer opengl pipewire pulseaudio
qml v4l vaapi vulkan wayland
"
# tst_qmediaplayerbackend hard requires qml, review in case becomes optional
REQUIRED_USE="
|| ( ffmpeg gstreamer )
eglfs? ( ffmpeg opengl qml )
test? ( qml )
vaapi? ( ffmpeg opengl )
"
# dlopen/dbus: pipewire
RDEPEND="
~dev-qt/qtbase-${PV}:6[gui,network,opengl=,vulkan=,widgets]
alsa? (
!pulseaudio? ( media-libs/alsa-lib )
)
ffmpeg? (
~dev-qt/qtbase-${PV}:6[X=,concurrent,eglfs=]
media-video/ffmpeg:=[vaapi?]
X? (
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
)
)
gstreamer? (
dev-libs/glib:2
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
media-libs/gstreamer:1.0
opengl? (
~dev-qt/qtbase-${PV}:6[X?,wayland?]
media-libs/gst-plugins-base:1.0[X?,egl,opengl,wayland?]
)
)
opengl? ( media-libs/libglvnd )
pipewire? (
~dev-qt/qtbase-${PV}:6[dbus?]
media-video/pipewire:=
)
pulseaudio? ( media-libs/libpulse )
qml? (
~dev-qt/qtdeclarative-${PV}:6
~dev-qt/qtquick3d-${PV}:6
)
"
DEPEND="
${RDEPEND}
X? ( x11-base/xorg-proto )
v4l? ( sys-kernel/linux-headers )
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="~dev-qt/qtshadertools-${PV}:6"
CMAKE_SKIP_TESTS=(
# unimportant and expects all backends to be available (bug #928420)
tst_backends
# tries to use real alsa or pulseaudio and fails in sandbox
tst_qaudiosink
tst_qaudiosource
tst_qmediacapture_gstreamer
tst_qmediacapturesession
tst_qmediaframeinputsbackend
tst_qmediaplayer_gstreamer
tst_qmediaplayerbackend
tst_qsoundeffect
# may try to use v4l2 or hardware acceleration depending on availability
tst_qmediarecorderbackend
tst_qscreencapture_integration
tst_qscreencapturebackend
tst_qvideoframebackend
# seems flaky depending on what codecs system libraries support or not
tst_qmediaformatbackend
# fails with offscreen rendering
tst_qvideoframecolormanagement
tst_qwindowcapturebackend
)
PATCHES=(
"${FILESDIR}"/${PN}-6.7.3-eigen-ppc-no-vsx.patch
"${FILESDIR}"/${PN}-6.8.1-qversionnumber.patch
)
src_configure() {
# eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402)
use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE
# normally passed by the build system, but needed for 32-on-64 chroots
use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Qml)
$(qt_feature ffmpeg)
$(qt_feature gstreamer)
$(usev gstreamer "
$(qt_feature opengl gstreamer_gl)
$(usev opengl "
$(qt_feature X gstreamer_gl_x11)
$(qt_feature wayland gstreamer_gl_wayland)
")
")
$(qt_feature pipewire)
$(usev pipewire $(qt_feature dbus pipewire_screencapture))
$(qt_feature pulseaudio)
$(qt_feature v4l linux_v4l)
$(qt_feature vaapi)
)
# ALSA backend is experimental off-by-default and can take priority
# causing problems (bug #935146), disable if USE=pulseaudio is set
# (also do not want unnecessary usage of ALSA plugins -> pulse)
if use alsa && use pulseaudio; then
# einfo should be enough given pure-ALSA users tend to disable pulse
einfo "Warning: USE=alsa is ignored when USE=pulseaudio is set"
mycmakeargs+=( -DQT_FEATURE_alsa=OFF )
else
mycmakeargs+=( $(qt_feature alsa) )
fi
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if use test; then
local delete=( # sigh
"${D}${QT6_LIBDIR}"/cmake/Qt6Multimedia/Qt6MockMultimediaPlugin*.cmake
"${D}${QT6_MKSPECSDIR}"/modules/qt_plugin_mockmultimediaplugin.pri
"${D}${QT6_PLUGINDIR}"/multimedia/libmockmultimediaplugin.*
"${D}${QT6_PLUGINDIR}"/multimedia/objects-*
)
# using -f given not tracking which tests may be skipped or not
rm -rf -- "${delete[@]}" || die
fi
}

View File

@ -0,0 +1,151 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic qt6-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="
+X alsa +dbus eglfs +ffmpeg gstreamer opengl pipewire pulseaudio
qml v4l vaapi vulkan wayland
"
# tst_qmediaplayerbackend hard requires qml, review in case becomes optional
REQUIRED_USE="
|| ( ffmpeg gstreamer )
eglfs? ( ffmpeg opengl qml )
test? ( qml )
vaapi? ( ffmpeg opengl )
"
# dlopen/dbus: pipewire
RDEPEND="
~dev-qt/qtbase-${PV}:6[gui,network,opengl=,vulkan=,widgets]
alsa? (
!pulseaudio? ( media-libs/alsa-lib )
)
ffmpeg? (
~dev-qt/qtbase-${PV}:6[X=,concurrent,eglfs=]
media-video/ffmpeg:=[vaapi?]
X? (
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
)
)
gstreamer? (
dev-libs/glib:2
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
media-libs/gstreamer:1.0
opengl? (
~dev-qt/qtbase-${PV}:6[X?,wayland?]
media-libs/gst-plugins-base:1.0[X?,egl,opengl,wayland?]
)
)
opengl? ( media-libs/libglvnd )
pipewire? (
~dev-qt/qtbase-${PV}:6[dbus?]
media-video/pipewire:=
)
pulseaudio? ( media-libs/libpulse )
qml? (
~dev-qt/qtdeclarative-${PV}:6
~dev-qt/qtquick3d-${PV}:6
)
"
DEPEND="
${RDEPEND}
X? ( x11-base/xorg-proto )
v4l? ( sys-kernel/linux-headers )
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="~dev-qt/qtshadertools-${PV}:6"
CMAKE_SKIP_TESTS=(
# unimportant and expects all backends to be available (bug #928420)
tst_backends
# tries to use real alsa or pulseaudio and fails in sandbox
tst_qaudiosink
tst_qaudiosource
tst_qmediacapture_gstreamer
tst_qmediacapturesession
tst_qmediaframeinputsbackend
tst_qmediaplayer_gstreamer
tst_qmediaplayerbackend
tst_qsoundeffect
# may try to use v4l2 or hardware acceleration depending on availability
tst_qmediarecorderbackend
tst_qscreencapture_integration
tst_qscreencapturebackend
tst_qvideoframebackend
# seems flaky depending on what codecs system libraries support or not
tst_qmediaformatbackend
# fails with offscreen rendering
tst_qvideoframecolormanagement
tst_qwindowcapturebackend
)
PATCHES=(
"${FILESDIR}"/${PN}-6.7.3-eigen-ppc-no-vsx.patch
"${FILESDIR}"/${PN}-6.8.1-qversionnumber.patch
)
src_configure() {
# eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402)
use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE
# normally passed by the build system, but needed for 32-on-64 chroots
use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Qml)
$(qt_feature ffmpeg)
$(qt_feature gstreamer)
$(usev gstreamer "
$(qt_feature opengl gstreamer_gl)
$(usev opengl "
$(qt_feature X gstreamer_gl_x11)
$(qt_feature wayland gstreamer_gl_wayland)
")
")
$(qt_feature pipewire)
$(usev pipewire $(qt_feature dbus pipewire_screencapture))
$(qt_feature pulseaudio)
$(qt_feature v4l linux_v4l)
$(qt_feature vaapi)
)
# ALSA backend is experimental off-by-default and can take priority
# causing problems (bug #935146), disable if USE=pulseaudio is set
# (also do not want unnecessary usage of ALSA plugins -> pulse)
if use alsa && use pulseaudio; then
# einfo should be enough given pure-ALSA users tend to disable pulse
einfo "Warning: USE=alsa is ignored when USE=pulseaudio is set"
mycmakeargs+=( -DQT_FEATURE_alsa=OFF )
else
mycmakeargs+=( $(qt_feature alsa) )
fi
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if use test; then
local delete=( # sigh
"${D}${QT6_LIBDIR}"/cmake/Qt6Multimedia/Qt6MockMultimediaPlugin*.cmake
"${D}${QT6_MKSPECSDIR}"/modules/qt_plugin_mockmultimediaplugin.pri
"${D}${QT6_PLUGINDIR}"/multimedia/libmockmultimediaplugin.*
"${D}${QT6_PLUGINDIR}"/multimedia/objects-*
)
# using -f given not tracking which tests may be skipped or not
rm -rf -- "${delete[@]}" || die
fi
}

View File

@ -0,0 +1,152 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
QT6_HAS_STATIC_LIBS=1
inherit flag-o-matic qt6-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="
+X alsa +dbus eglfs +ffmpeg gstreamer opengl pipewire pulseaudio
qml v4l vaapi vulkan wayland
"
# tst_qmediaplayerbackend hard requires qml, review in case becomes optional
REQUIRED_USE="
|| ( ffmpeg gstreamer )
eglfs? ( ffmpeg opengl qml )
test? ( qml )
vaapi? ( ffmpeg opengl )
"
# dlopen/dbus: pipewire
RDEPEND="
~dev-qt/qtbase-${PV}:6[gui,network,opengl=,vulkan=,widgets]
alsa? (
!pulseaudio? ( media-libs/alsa-lib )
)
ffmpeg? (
~dev-qt/qtbase-${PV}:6[X=,concurrent,eglfs=]
media-video/ffmpeg:=[vaapi?]
X? (
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
)
)
gstreamer? (
dev-libs/glib:2
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
media-libs/gstreamer:1.0
opengl? (
~dev-qt/qtbase-${PV}:6[X?,wayland?]
media-libs/gst-plugins-base:1.0[X?,egl,opengl,wayland?]
)
)
opengl? ( media-libs/libglvnd )
pipewire? (
~dev-qt/qtbase-${PV}:6[dbus?]
media-video/pipewire:=
)
pulseaudio? ( media-libs/libpulse )
qml? (
~dev-qt/qtdeclarative-${PV}:6
~dev-qt/qtquick3d-${PV}:6
)
"
DEPEND="
${RDEPEND}
X? ( x11-base/xorg-proto )
v4l? ( sys-kernel/linux-headers )
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="~dev-qt/qtshadertools-${PV}:6"
CMAKE_SKIP_TESTS=(
# unimportant and expects all backends to be available (bug #928420)
tst_backends
# tries to use real alsa or pulseaudio and fails in sandbox
tst_qaudiosink
tst_qaudiosource
tst_qmediacapture_gstreamer
tst_qmediacapturesession
tst_qmediaframeinputsbackend
tst_qmediaplayer_gstreamer
tst_qmediaplayerbackend
tst_qsoundeffect
# may try to use v4l2 or hardware acceleration depending on availability
tst_qmediarecorderbackend
tst_qscreencapture_integration
tst_qscreencapturebackend
tst_qvideoframebackend
# seems flaky depending on what codecs system libraries support or not
tst_qmediaformatbackend
# fails with offscreen rendering
tst_qvideoframecolormanagement
tst_qwindowcapturebackend
)
PATCHES=(
"${FILESDIR}"/${PN}-6.7.3-eigen-ppc-no-vsx.patch
"${FILESDIR}"/${PN}-6.8.1-qversionnumber.patch
)
src_configure() {
# eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402)
use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE
# normally passed by the build system, but needed for 32-on-64 chroots
use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Qml)
$(qt_feature ffmpeg)
$(qt_feature gstreamer)
$(usev gstreamer "
$(qt_feature opengl gstreamer_gl)
$(usev opengl "
$(qt_feature X gstreamer_gl_x11)
$(qt_feature wayland gstreamer_gl_wayland)
")
")
$(qt_feature pipewire)
$(usev pipewire $(qt_feature dbus pipewire_screencapture))
$(qt_feature pulseaudio)
$(qt_feature v4l linux_v4l)
$(qt_feature vaapi)
)
# ALSA backend is experimental off-by-default and can take priority
# causing problems (bug #935146), disable if USE=pulseaudio is set
# (also do not want unnecessary usage of ALSA plugins -> pulse)
if use alsa && use pulseaudio; then
# einfo should be enough given pure-ALSA users tend to disable pulse
einfo "Warning: USE=alsa is ignored when USE=pulseaudio is set"
mycmakeargs+=( -DQT_FEATURE_alsa=OFF )
else
mycmakeargs+=( $(qt_feature alsa) )
fi
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if use test; then
local delete=( # sigh
"${D}${QT6_LIBDIR}"/cmake/Qt6Multimedia/Qt6MockMultimediaPlugin*.cmake
"${D}${QT6_MKSPECSDIR}"/modules/qt_plugin_mockmultimediaplugin.pri
"${D}${QT6_PLUGINDIR}"/multimedia/libmockmultimediaplugin.*
"${D}${QT6_PLUGINDIR}"/multimedia/objects-*
)
# using -f given not tracking which tests may be skipped or not
rm -rf -- "${delete[@]}" || die
fi
}

View File

@ -0,0 +1,152 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
QT6_HAS_STATIC_LIBS=1
inherit flag-o-matic qt6-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="
+X alsa +dbus eglfs +ffmpeg gstreamer opengl pipewire pulseaudio
qml v4l vaapi vulkan wayland
"
# tst_qmediaplayerbackend hard requires qml, review in case becomes optional
REQUIRED_USE="
|| ( ffmpeg gstreamer )
eglfs? ( ffmpeg opengl qml )
test? ( qml )
vaapi? ( ffmpeg opengl )
"
# dlopen/dbus: pipewire
RDEPEND="
~dev-qt/qtbase-${PV}:6[gui,network,opengl=,vulkan=,widgets]
alsa? (
!pulseaudio? ( media-libs/alsa-lib )
)
ffmpeg? (
~dev-qt/qtbase-${PV}:6[X=,concurrent,eglfs=]
media-video/ffmpeg:=[vaapi?]
X? (
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
)
)
gstreamer? (
dev-libs/glib:2
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
media-libs/gstreamer:1.0
opengl? (
~dev-qt/qtbase-${PV}:6[X?,wayland?]
media-libs/gst-plugins-base:1.0[X?,egl,opengl,wayland?]
)
)
opengl? ( media-libs/libglvnd )
pipewire? (
~dev-qt/qtbase-${PV}:6[dbus?]
media-video/pipewire:=
)
pulseaudio? ( media-libs/libpulse )
qml? (
~dev-qt/qtdeclarative-${PV}:6
~dev-qt/qtquick3d-${PV}:6
)
"
DEPEND="
${RDEPEND}
X? ( x11-base/xorg-proto )
v4l? ( sys-kernel/linux-headers )
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="~dev-qt/qtshadertools-${PV}:6"
CMAKE_SKIP_TESTS=(
# unimportant and expects all backends to be available (bug #928420)
tst_backends
# tries to use real alsa or pulseaudio and fails in sandbox
tst_qaudiosink
tst_qaudiosource
tst_qmediacapture_gstreamer
tst_qmediacapturesession
tst_qmediaframeinputsbackend
tst_qmediaplayer_gstreamer
tst_qmediaplayerbackend
tst_qsoundeffect
# may try to use v4l2 or hardware acceleration depending on availability
tst_qmediarecorderbackend
tst_qscreencapture_integration
tst_qscreencapturebackend
tst_qvideoframebackend
# seems flaky depending on what codecs system libraries support or not
tst_qmediaformatbackend
# fails with offscreen rendering
tst_qvideoframecolormanagement
tst_qwindowcapturebackend
)
PATCHES=(
"${FILESDIR}"/${PN}-6.7.3-eigen-ppc-no-vsx.patch
"${FILESDIR}"/${PN}-6.8.1-qversionnumber.patch
)
src_configure() {
# eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402)
use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE
# normally passed by the build system, but needed for 32-on-64 chroots
use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Qml)
$(qt_feature ffmpeg)
$(qt_feature gstreamer)
$(usev gstreamer "
$(qt_feature opengl gstreamer_gl)
$(usev opengl "
$(qt_feature X gstreamer_gl_x11)
$(qt_feature wayland gstreamer_gl_wayland)
")
")
$(qt_feature pipewire)
$(usev pipewire $(qt_feature dbus pipewire_screencapture))
$(qt_feature pulseaudio)
$(qt_feature v4l linux_v4l)
$(qt_feature vaapi)
)
# ALSA backend is experimental off-by-default and can take priority
# causing problems (bug #935146), disable if USE=pulseaudio is set
# (also do not want unnecessary usage of ALSA plugins -> pulse)
if use alsa && use pulseaudio; then
# einfo should be enough given pure-ALSA users tend to disable pulse
einfo "Warning: USE=alsa is ignored when USE=pulseaudio is set"
mycmakeargs+=( -DQT_FEATURE_alsa=OFF )
else
mycmakeargs+=( $(qt_feature alsa) )
fi
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if use test; then
local delete=( # sigh
"${D}${QT6_LIBDIR}"/cmake/Qt6Multimedia/Qt6MockMultimediaPlugin*.cmake
"${D}${QT6_MKSPECSDIR}"/modules/qt_plugin_mockmultimediaplugin.pri
"${D}${QT6_PLUGINDIR}"/multimedia/libmockmultimediaplugin.*
"${D}${QT6_PLUGINDIR}"/multimedia/objects-*
)
# using -f given not tracking which tests may be skipped or not
rm -rf -- "${delete[@]}" || die
fi
}