diff --git a/extra/gstreamer/0001-HACK-meson-Disable-broken-tests.patch b/extra/gstreamer/0001-HACK-meson-Disable-broken-tests.patch index 267b823f6..e8d06c156 100644 --- a/extra/gstreamer/0001-HACK-meson-Disable-broken-tests.patch +++ b/extra/gstreamer/0001-HACK-meson-Disable-broken-tests.patch @@ -12,7 +12,7 @@ Subject: [PATCH] HACK: meson: Disable broken tests 5 files changed, 5 deletions(-) diff --git a/subprojects/gst-editing-services/meson.build b/subprojects/gst-editing-services/meson.build -index 565ea72f3fd6..49f3328e79c7 100644 +index 48c6fed5fc2e..35714bee4a66 100644 --- a/subprojects/gst-editing-services/meson.build +++ b/subprojects/gst-editing-services/meson.build @@ -270,7 +270,6 @@ subdir('ges') @@ -36,7 +36,7 @@ index 53a8e634e41a..f270c1d11bfb 100644 tcase_add_test (tc_chain, test_video_caps_change_streamable); tcase_add_test (tc_chain, test_audio_caps_change_streamable_single); diff --git a/subprojects/gst-python/meson.build b/subprojects/gst-python/meson.build -index 62ac4add2f00..8a364ba16cc6 100644 +index 4c41baad2fc8..8a91267fc8fe 100644 --- a/subprojects/gst-python/meson.build +++ b/subprojects/gst-python/meson.build @@ -107,5 +107,4 @@ if not get_option('plugin').disabled() @@ -58,7 +58,7 @@ index 229af32f8117..b9372c125d77 100644 'gst/sessionpool', 'gst/stream', diff --git a/subprojects/gstreamer-vaapi/meson.build b/subprojects/gstreamer-vaapi/meson.build -index 7596818ee70e..0d6c5d86c3d5 100644 +index 654b7e3fd2be..035e8e2c1cf0 100644 --- a/subprojects/gstreamer-vaapi/meson.build +++ b/subprojects/gstreamer-vaapi/meson.build @@ -219,7 +219,6 @@ plugins = [] diff --git a/extra/gstreamer/0002-qt-Unbreak-build-with-qt-egl-enabled-but-viv_fb-miss.patch b/extra/gstreamer/0002-qt-Unbreak-build-with-qt-egl-enabled-but-viv_fb-miss.patch new file mode 100644 index 000000000..70c23614b --- /dev/null +++ b/extra/gstreamer/0002-qt-Unbreak-build-with-qt-egl-enabled-but-viv_fb-miss.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Thu, 20 Jul 2023 19:13:36 +0200 +Subject: [PATCH] qt: Unbreak build with qt-egl enabled but viv_fb missing + +Avoid an error message when the feature is explicitly enabled: + + ERROR: Feature qt-egl cannot be enabled: gstreamer-gl-viv_fb-1.0 is required +--- + subprojects/gst-plugins-good/ext/qt/meson.build | 17 ++++++----------- + 1 file changed, 6 insertions(+), 11 deletions(-) + +diff --git a/subprojects/gst-plugins-good/ext/qt/meson.build b/subprojects/gst-plugins-good/ext/qt/meson.build +index 442b7d5870e1..d1db2514653e 100644 +--- a/subprojects/gst-plugins-good/ext/qt/meson.build ++++ b/subprojects/gst-plugins-good/ext/qt/meson.build +@@ -120,6 +120,12 @@ if qt5_egl.allowed() + qt_defines += ['-DHAVE_QT_EGLFS'] + optional_deps += gstglegl_dep + have_qt_windowing = true ++ ++ # EGL windowing for Vivante Framebuffer (e.g. i.MX6) ++ if gstglviv_fb_dep.found() ++ qt_defines += ['-DHAVE_QT_VIV_FB'] ++ optional_deps += gstglviv_fb_dep ++ endif + endif + + # Android windowing +@@ -184,17 +190,6 @@ if host_system == 'ios' + endif + endif + +-# EGL windowing for Vivante Framebuffer (e.g. i.MX6) +-qt5_viv_fb = qt5_egl \ +- .require(host_system == 'linux') \ +- .require(gstglviv_fb_dep.found(), error_message: 'gstreamer-gl-viv_fb-1.0 is required') \ +- .require(gst_gl_have_platform_egl, error_message: 'egl platform support in gstreamer-gl is required') +-if qt5_viv_fb.allowed() +- qt_defines += ['-DHAVE_QT_VIV_FB'] +- optional_deps += gstglviv_fb_dep +- have_qt_windowing = true +-endif +- + if qt5_option.require(have_qt_windowing).allowed() + # rpath is needed to be able to load the plugin on macOS inside the devenv + qmlgl_kwargs = {} diff --git a/extra/gstreamer/PKGBUILD b/extra/gstreamer/PKGBUILD index 2d70b03a2..6231fab52 100644 --- a/extra/gstreamer/PKGBUILD +++ b/extra/gstreamer/PKGBUILD @@ -31,8 +31,8 @@ pkgname=( gst-python gstreamer-docs ) -pkgver=1.22.4 -pkgrel=2 +pkgver=1.22.5 +pkgrel=1 pkgdesc="Multimedia graph framework" url="https://gstreamer.freedesktop.org/" arch=(x86_64) @@ -43,29 +43,29 @@ makedepends=( git meson # gstreamer - valgrind libunwind gobject-introspection bash-completion gtk3 libcap python + bash-completion gobject-introspection gtk3 libcap libunwind python valgrind # gst-plugins-base - cdparanoia graphene opus libtheora libxv sdl2 qt5-base qt5-tools zlib libglvnd - wayland wayland-protocols libx11 libgudev libdrm mesa orc libxi + cdparanoia graphene libdrm libglvnd libgudev libtheora libx11 libxi libxv mesa + opus orc qt5-base qt5-tools sdl2 wayland wayland-protocols zlib # gst-plugins-good - nasm v4l-utils aalib flac jack2 lame libcaca libdv mpg123 libraw1394 - libavc1394 libiec61883 qt5-declarative qt5-x11extras qt5-wayland libpulse - libshout taglib twolame libvpx wavpack cairo libsoup3 qt6-declarative - qt6-wayland qt6-tools nettle + aalib cairo flac jack2 lame libavc1394 libcaca libdv libiec61883 libpulse + libraw1394 libshout libsoup3 libvpx mpg123 nasm nettle qt5-declarative + qt5-wayland qt5-x11extras qt6-declarative qt6-tools qt6-wayland taglib twolame + v4l-utils wavpack # gst-plugins-bad - opencv vulkan-icd-loader vulkan-headers vulkan-validation-layers shaderc - libltc bluez-libs libavtp libbs2b bzip2 chromaprint libdca faac faad2 - libfdk-aac fluidsynth libgme libkate liblrdf ladspa libde265 lilv libmodplug - lv2 libmicrodns mjpegtools libmpcdec neon openal libdvdnav rtmpdump sbc - soundtouch spandsp libsrtp zvbi libnice webrtc-audio-processing - wildmidi zxing-cpp zbar libxml2 gsm libopenmpt wpewebkit libldac libfreeaptx - qrencode json-glib libva libxkbcommon-x11 + bluez-libs bzip2 chromaprint faac faad2 fluidsynth gsm json-glib ladspa + libavtp libbs2b libdca libde265 libdvdnav libfdk-aac libfreeaptx libgme + libkate libldac liblrdf libltc libmicrodns libmodplug libmpcdec libnice + libopenmpt libsrtp libva libxkbcommon-x11 libxml2 lilv lv2 mjpegtools neon + openal opencv qrencode rtmpdump sbc shaderc soundtouch spandsp + vulkan-headers vulkan-icd-loader vulkan-validation-layers + webrtc-audio-processing wildmidi wpewebkit zbar zvbi zxing-cpp # gst-plugins-ugly - a52dec opencore-amr libcdio libdvdread libmpeg2 x264 + a52dec libcdio libdvdread libmpeg2 opencore-amr x264 # gst-libav ffmpeg @@ -81,11 +81,13 @@ source=( "git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git?signed#tag=$pkgver" "https://gstreamer.freedesktop.org/src/gstreamer-docs/gstreamer-docs-$pkgver.tar.xz"{,.asc} 0001-HACK-meson-Disable-broken-tests.patch + 0002-qt-Unbreak-build-with-qt-egl-enabled-but-viv_fb-miss.patch ) b2sums=('SKIP' - '17360d92e2bb37b26fbe49016bbfaece839ef02c4ebf6e7ef24aff9f1e85929cab6380177df3276a792532a32a87724353cb197d6329fd2d89ed247f5924b141' + 'c35189d49f6091392ac368c848dfca47b185420f850c77ef145c8a9275123c920d5098ba7e75d302e5f278a8fd12197fd625c4aa755c9c17a98f595a533b78a8' 'SKIP' - '09b41d9d8067d28456c6c6178db0fb465075d908eb2302eb5ae9d1a212676a0568ce737e780b17f6831a42dac82e04503107ac5fa868c4c929b5ad53a2753a77') + 'c64482a040ada8c2ba6433b6d9aa8619e53866b2d9b512cc91dff2e32d6c405339ec22e909dbce197595521c014b1bdad661e92b9d092f8e14c51c9cde7a74da' + '829686c230d75bf4124366162c754ddc37d7ed49fb797e504ca5cf3e9a5db621d15911d9c8db3439348f442fb873c1c3e29683cfe9f47c1a0b00e7e48c4db21f') validpgpkeys=( D637032E45B8C6585B9456565D2EEE6F6F349D7C # Tim Müller ) @@ -93,11 +95,11 @@ validpgpkeys=( prepare() { cd gstreamer - # OpenCV 4.8+ - git cherry-pick -n 8d5ac30955cf052a12ef8c87c0cae6d124d4d7b6 - # Disable broken tests git apply -3 ../0001-HACK-meson-Disable-broken-tests.patch + + # Unbreak qt-egl build + git apply -3 ../0002-qt-Unbreak-build-with-qt-egl-enabled-but-viv_fb-miss.patch } build() { @@ -181,7 +183,9 @@ _install() { package_gstreamer() { pkgdesc+=" - core" - depends=(libxml2 glib2 libunwind libcap libelf) + depends=( + glib2 libcap libelf libunwind libxml2 + ) optdepends=('python: gst-plugins-doc-cache-generator') install=gstreamer.install @@ -220,7 +224,7 @@ package_gst-plugins-bad-libs() { pkgdesc+=" - bad" depends=( "gst-plugins-base-libs=$pkgver" - orc libdrm libx11 libgudev libusb libxkbcommon-x11 libva libnice + libdrm libgudev libnice libusb libva libx11 libxkbcommon-x11 orc vulkan-icd-loader wayland wayland-protocols ) @@ -326,7 +330,7 @@ package_gst-plugins-base-libs() { pkgdesc+=" - base" depends=( "gstreamer=$pkgver" - orc libxv iso-codes libgudev libgl mesa libxi wayland + iso-codes libgl libgudev libxi libxv mesa orc wayland ) cd root; local files=( @@ -375,7 +379,7 @@ package_gst-plugins-base() { pkgdesc+=" - base plugins" depends=( "gst-plugins-base-libs=$pkgver" - alsa-lib cdparanoia libvorbis libtheora pango opus graphene libpng libjpeg + alsa-lib cdparanoia graphene libjpeg libpng libtheora libvorbis opus pango ) cd root; local files=( @@ -394,9 +398,9 @@ package_gst-plugins-good() { pkgdesc+=" - good plugins" depends=( "gst-plugins-base-libs=$pkgver" - libpulse libsoup3 gst-plugins-base-libs wavpack aalib taglib libdv libshout - libvpx gdk-pixbuf2 libcaca libavc1394 libiec61883 libxdamage v4l-utils cairo - libgudev speex flac libraw1394 lame mpg123 twolame nettle + aalib cairo flac gdk-pixbuf2 gst-plugins-base-libs lame libavc1394 libcaca + libdv libgudev libiec61883 libpulse libraw1394 libshout libsoup3 libvpx + libxdamage mpg123 nettle speex taglib twolame v4l-utils wavpack libjack.so ) @@ -485,13 +489,13 @@ package_gst-plugins-bad() { pkgdesc+=" - bad plugins" depends=( "gst-plugins-bad-libs=$pkgver" - aom libass libbs2b bzip2 chromaprint pango lcms2 curl libxml2 libdc1394 - libde265 openssl libdca faac faad2 libfdk-aac fluidsynth libgme nettle - libkate liblrdf lilv libmodplug mjpegtools libmpcdec neon openal openexr - openjpeg2 opus libdvdnav libdvdread librsvg rtmpdump sbc libsndfile libltc - soundtouch spandsp srt libsrtp zvbi libwebp webrtc-audio-processing wildmidi - x265 zbar gsm libopenmpt libldac libfreeaptx qrencode json-glib libavtp - libmicrodns zxing-cpp + aom bzip2 chromaprint curl faac faad2 fluidsynth gsm json-glib lcms2 libass + libavtp libbs2b libdc1394 libdca libde265 libdvdnav libdvdread libfdk-aac + libfreeaptx libgme libkate libldac liblrdf libltc libmicrodns libmodplug + libmpcdec libopenmpt librsvg libsndfile libsrtp libwebp libxml2 lilv + mjpegtools neon nettle openal openexr openjpeg2 openssl opus pango qrencode + rtmpdump sbc soundtouch spandsp srt webrtc-audio-processing + wildmidi x265 zbar zvbi zxing-cpp ) cd root; local files=( @@ -560,7 +564,10 @@ package_gst-plugins-bad() { package_gst-plugin-gtk() { pkgdesc+=" - gtk plugin" - depends=("gst-plugins-bad-libs=$pkgver" gtk3) + depends=( + "gst-plugins-bad-libs=$pkgver" + gtk3 + ) cd root; local files=( usr/lib/gstreamer-1.0/libgstgtk.so @@ -570,7 +577,10 @@ package_gst-plugin-gtk() { package_gst-plugin-opencv() { pkgdesc+=" - opencv plugin" - depends=("gst-plugins-base-libs=$pkgver" opencv) + depends=( + "gst-plugins-base-libs=$pkgver" + opencv + ) cd root; local files=( usr/include/gstreamer-1.0/gst/opencv @@ -596,7 +606,7 @@ package_gst-plugin-qmlgl() { pkgdesc+=" - qmlgl plugin" depends=( "gst-plugins-base-libs=$pkgver" - qt5-declarative qt5-x11extras qt5-wayland + qt5-declarative qt5-wayland qt5-x11extras ) cd root; local files=( @@ -615,7 +625,10 @@ package_gst-plugin-va() { package_gst-plugin-wpe() { pkgdesc+=" - wpe plugin" - depends=("gst-plugins-base-libs=$pkgver" wpewebkit) + depends=( + "gst-plugins-base-libs=$pkgver" + wpewebkit + ) cd root; local files=( usr/lib/gstreamer-1.0/libgstwpe.so @@ -627,7 +640,7 @@ package_gst-plugins-ugly() { pkgdesc+=" - ugly plugins" depends=( "gst-plugins-base-libs=$pkgver" - libdvdread libmpeg2 a52dec libcdio x264 opencore-amr + a52dec libcdio libdvdread libmpeg2 opencore-amr x264 ) cd root; local files=( @@ -651,7 +664,10 @@ package_gst-plugins-ugly() { package_gst-libav() { pkgdesc+=" - libav plugin" - depends=("gst-plugins-base-libs=$pkgver" bzip2 ffmpeg) + depends=( + "gst-plugins-base-libs=$pkgver" + bzip2 ffmpeg + ) provides=("gst-ffmpeg=$pkgver") cd root; local files=( @@ -676,7 +692,10 @@ package_gst-rtsp-server() { package_gst-editing-services() { pkgdesc+=" - editing services" - depends=("gst-plugins-base-libs=$pkgver" python) + depends=( + "gst-plugins-base-libs=$pkgver" + python + ) cd root; local files=( usr/include/gstreamer-1.0/ges @@ -689,20 +708,21 @@ package_gst-editing-services() { usr/lib/gstreamer-1.0/libgstnle.so usr/lib/python*/site-packages/gi/overrides/GES.py + usr/lib/python*/site-packages/gi/overrides/__pycache__/GES.*.pyc usr/bin/ges-launch-1.0 usr/share/man/man1/ges-launch-1.0.1 usr/share/bash-completion/completions/ges-launch-1.0 ); _install - - python -m compileall -d /usr/lib "$pkgdir/usr/lib" - python -O -m compileall -d /usr/lib "$pkgdir/usr/lib" } package_gstreamer-vaapi() { pkgdesc+=" - vaapi plugin" - depends=("gst-plugins-bad-libs=$pkgver" libxrandr) + depends=( + "gst-plugins-bad-libs=$pkgver" + libxrandr + ) cd root; local files=( usr/lib/gstreamer-1.0/libgstvaapi.so @@ -711,20 +731,27 @@ package_gstreamer-vaapi() { package_gst-python() { pkgdesc+=" - python plugin" - depends=("gst-plugins-base-libs=$pkgver" python-gobject) + depends=( + "gst-plugins-base-libs=$pkgver" + python-gobject + ) cd root; local files=( usr/lib/gstreamer-1.0/libgstpython.so usr/lib/python*/site-packages/gi/overrides ); _install - - python -m compileall -d /usr/lib "$pkgdir/usr/lib" - python -O -m compileall -d /usr/lib "$pkgdir/usr/lib" } package_gstreamer-docs() { pkgdesc+=" - documentation" - license=(GPL3 LGPL custom:BSD custom:CC-BY-SA-4.0 custom:MIT custom:OPL) + license=( + GPL3 + LGPL + custom:BSD + custom:CC-BY-SA-4.0 + custom:MIT + custom:OPL + ) # make sure there are no files left to install find root -depth ! -type d @@ -738,4 +765,4 @@ package_gstreamer-docs() { install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 COPYING LICENSE* } -# vim:set sw=2 sts=-1 et: +# vim:set sw=2 sts=-1 et tw=80: