Name: qt6-qtmultimedia Version: 6.10.3 Release: 3%{?dist} Summary: Qt6 - QtMultimedia component License: LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only URL: https://www.qt.io Source0: https://download.qt.io/official_releases/qt/6.10/%{version}/submodules/qtmultimedia-everywhere-src-%{version}.tar.xz BuildRequires: qt6-rpm-macros BuildRequires: cmake BuildRequires: ninja-build BuildRequires: gcc-c++ BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtbase-private-devel BuildRequires: qt6-qtdeclarative-devel BuildRequires: qt6-qtshadertools-devel BuildRequires: mesa-libEGL-devel BuildRequires: libX11-devel BuildRequires: libXext-devel BuildRequires: libXrandr-devel BuildRequires: pkgconfig(libva) BuildRequires: pkgconfig(libva-drm) BuildRequires: pkgconfig(libavcodec) BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libswresample) BuildRequires: pkgconfig(libswscale) BuildRequires: pkgconfig(libpipewire-0.3) BuildRequires: alsa-lib-devel %description QtMultimedia is a Qt6 module providing camera, audio, and video capture/playback APIs -- the sixth package in the Wayland stack being built to unblock Spectacle, needed specifically because KF6Prison's PrisonScanner subcomponent (Spectacle's hard requirement for QR/ barcode scanning) is gated behind `if(TARGET Qt6::Multimedia AND TARGET ZXing::ZXing)`. Confirmed genuinely absent from this distro (unlike Qt6WaylandClient, which turned out to already be bundled inside qt6-qtbase-devel -- this one really does need building as a full Qt module from Qt's own official release tarball, matching qtwayland's build pattern via the real %%cmake_qt6 macro this distro's own qt6-rpm-macros package provides). Its own configure.cmake has a real native FFmpeg backend (qt_feature("ffmpeg", CONDITION ... AND (... OR QT_FEATURE_pipewire))) -- since real FFmpeg and real PipeWire are both already built earlier in this chain, camera/audio/video support routes entirely through those rather than needing GStreamer or its Qt-specific plugin glue. EGL, VAAPI (via libva/libva-drm), and Qt6ShaderTools (confirmed a real, separate Azure Linux package: qt6-qtshadertools-devel) round out the real hard deps found via qt_find_package()/pkg_check_modules() calls across configure.cmake and src/multimedia/, src/plugins/ multimedia/ffmpeg/ (the only two subdirectory CMakeLists.txt files with real find calls beyond top-level and configure.cmake -- verified via a full recursive scan; everything else is examples/tests/manual, which aren't built by default). %prep %autosetup -p1 -n qtmultimedia-everywhere-src-%{version} %build %cmake_qt6 -DFEATURE_ffmpeg=ON -DFEATURE_pipewire=ON -DFEATURE_alsa=ON -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF %cmake_build %install %cmake_install %files %license LICENSES/* %{_qt6_libdir}/libQt6Multimedia.so.* %{_qt6_libdir}/libQt6MultimediaQuick.so.* %{_qt6_libdir}/libQt6MultimediaQuickPrivate.so.* %{_qt6_plugindir}/multimedia/ %{_qt6_qmldir}/QtMultimedia/ %{_qt6_includedir}/QtMultimedia/ %{_libdir}/cmake/Qt6Multimedia*/ %{_libdir}/pkgconfig/Qt6Multimedia*.pc %{_qt6_mkspecsdir}/modules/qt_lib_multimedia*.pri %changelog * Sun Aug 30 2026 Smech - 6.10.3-3 - R2 fixed XShm.h but hit a second missing X11 header in the same file: X11/extensions/Xrandr.h. Read the real source (qx11surfacecapture.cpp) directly this time to enumerate every X11 include across the whole ffmpeg plugin directory rather than fixing one header per round -- confirmed exactly four headers used (Xlib.h, XShm.h, Xutil.h, Xrandr.h) across the two files that reference X11 at all. Added libX11-devel explicitly too (was resolving transitively before, made it a direct BuildRequires for clarity) and libXrandr-devel. * Sun Aug 30 2026 Smech - 6.10.3-2 - R1 failed compiling the ffmpeg X11 screen-capture plugin (qx11surfacecapture.cpp): "X11/extensions/XShm.h: No such file or directory" -- a real missing header from the X11 shared-memory extension, needed for the legacy X11 (non-Wayland) capture fallback path in the FFmpeg multimedia backend. Added libXext-devel. The various "Could NOT find GLIB2/git/WrapPulseAudio/MMRenderer" notices earlier in the log are all genuinely non-fatal soft optional finds (no REQUIRED, feature-summary notices only), not the real blocker. * Sun Aug 30 2026 Smech - 6.10.3-1 - Real upstream source (Qt's official release matching the exact qt6-qtbase version already on this distro, 6.10.3 -- same version- matching discipline established during the qtwayland investigation earlier this chain). Sixth package in the Wayland stack being built to unblock Spectacle, specifically for KF6Prison's PrisonScanner requirement. Steered toward the FFmpeg+PipeWire backend combo via explicit -DFEATURE_ffmpeg=ON -DFEATURE_pipewire=ON since both real dependencies are already built in this repo, avoiding the need to also wire up GStreamer's Qt Multimedia plugin glue. %%files is a first-pass estimate based on standard Qt6 module install conventions (matching the real paths already confirmed for Qt6WaylandClient/qtwaylandscanner during the earlier investigation); not yet verified against a real build log for this specific module -- expect a real-error correction round given the scale of this build.