[arch-commits] Commit in gstreamer/trunk (5 files)

Jan Steffens heftig at gemini.archlinux.org
Sun Jun 5 23:51:26 UTC 2022


    Date: Sunday, June 5, 2022 @ 23:51:26
  Author: heftig
Revision: 447602

1.20.2-2: opencv rebuild

Added:
  gstreamer/trunk/0001-meson-Allow-building-with-system-orc.patch
  gstreamer/trunk/0002-HACK-meson-Disable-broken-tests.patch
  gstreamer/trunk/0003-HACK-meson-Work-around-broken-detection-of-underscor.patch
  gstreamer/trunk/0004-opencv-Allow-building-against-4.6.x.patch
Modified:
  gstreamer/trunk/PKGBUILD

-----------------------------------------------------------------+
 0001-meson-Allow-building-with-system-orc.patch                 |   22 +
 0002-HACK-meson-Disable-broken-tests.patch                      |   58 ++++
 0003-HACK-meson-Work-around-broken-detection-of-underscor.patch |   24 +
 0004-opencv-Allow-building-against-4.6.x.patch                  |  135 ++++++++++
 PKGBUILD                                                        |   26 +
 5 files changed, 257 insertions(+), 8 deletions(-)

Added: 0001-meson-Allow-building-with-system-orc.patch
===================================================================
--- 0001-meson-Allow-building-with-system-orc.patch	                        (rev 0)
+++ 0001-meson-Allow-building-with-system-orc.patch	2022-06-05 23:51:26 UTC (rev 447602)
@@ -0,0 +1,22 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <heftig at archlinux.org>
+Date: Mon, 6 Jun 2022 00:30:08 +0200
+Subject: [PATCH] meson: Allow building with system orc
+
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 9ea00429bcb5..0481dbcbe512 100644
+--- a/meson.build
++++ b/meson.build
+@@ -112,7 +112,7 @@ elif build_system == 'darwin'
+   subproject('macos-bison-binary')
+ endif
+ 
+-orc_subproject = subproject('orc', required: get_option('orc'))
++orc_subproject = subproject('orc', required: false)
+ 
+ foreach custom_subproj: get_option('custom_subprojects').split(',')
+     if custom_subproj != ''

Added: 0002-HACK-meson-Disable-broken-tests.patch
===================================================================
--- 0002-HACK-meson-Disable-broken-tests.patch	                        (rev 0)
+++ 0002-HACK-meson-Disable-broken-tests.patch	2022-06-05 23:51:26 UTC (rev 447602)
@@ -0,0 +1,58 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <heftig at archlinux.org>
+Date: Mon, 6 Jun 2022 00:30:08 +0200
+Subject: [PATCH] HACK: meson: Disable broken tests
+
+---
+ subprojects/gst-editing-services/meson.build        | 1 -
+ subprojects/gst-python/meson.build                  | 1 -
+ subprojects/gst-rtsp-server/tests/check/meson.build | 1 -
+ subprojects/gstreamer-vaapi/meson.build             | 1 -
+ 4 files changed, 4 deletions(-)
+
+diff --git a/subprojects/gst-editing-services/meson.build b/subprojects/gst-editing-services/meson.build
+index 04373faa0df3..c4ef81439052 100644
+--- a/subprojects/gst-editing-services/meson.build
++++ b/subprojects/gst-editing-services/meson.build
+@@ -274,7 +274,6 @@ subdir('plugins')
+ if not get_option('tools').disabled()
+   subdir('tools')
+ endif
+-subdir('tests')
+ if not get_option('examples').disabled()
+   subdir('examples')
+ endif
+diff --git a/subprojects/gst-python/meson.build b/subprojects/gst-python/meson.build
+index 707bde7d96ea..e1fd643e5cd6 100644
+--- a/subprojects/gst-python/meson.build
++++ b/subprojects/gst-python/meson.build
+@@ -104,5 +104,4 @@ if not get_option('plugin').disabled()
+   endif
+ endif
+ if not get_option('tests').disabled()
+-  subdir('testsuite')
+ endif
+diff --git a/subprojects/gst-rtsp-server/tests/check/meson.build b/subprojects/gst-rtsp-server/tests/check/meson.build
+index 229af32f8117..b9372c125d77 100644
+--- a/subprojects/gst-rtsp-server/tests/check/meson.build
++++ b/subprojects/gst-rtsp-server/tests/check/meson.build
+@@ -27,7 +27,6 @@ rtsp_server_tests = [
+   'gst/mediafactory',
+   'gst/media',
+   'gst/permissions',
+-  'gst/rtspserver',
+   'gst/sessionmedia',
+   'gst/sessionpool',
+   'gst/stream',
+diff --git a/subprojects/gstreamer-vaapi/meson.build b/subprojects/gstreamer-vaapi/meson.build
+index 61ddc86f5dbe..8732d714abe8 100644
+--- a/subprojects/gstreamer-vaapi/meson.build
++++ b/subprojects/gstreamer-vaapi/meson.build
+@@ -202,7 +202,6 @@ plugins = []
+ 
+ subdir('gst-libs')
+ subdir('gst')
+-subdir('tests')
+ subdir('docs')
+ 
+ # Set release date

Added: 0003-HACK-meson-Work-around-broken-detection-of-underscor.patch
===================================================================
--- 0003-HACK-meson-Work-around-broken-detection-of-underscor.patch	                        (rev 0)
+++ 0003-HACK-meson-Work-around-broken-detection-of-underscor.patch	2022-06-05 23:51:26 UTC (rev 447602)
@@ -0,0 +1,24 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <heftig at archlinux.org>
+Date: Mon, 6 Jun 2022 00:30:08 +0200
+Subject: [PATCH] HACK: meson: Work around broken detection of underscore
+ prefixes
+
+See: https://github.com/mesonbuild/meson/issues/5482
+---
+ subprojects/gst-plugins-good/gst/deinterlace/meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/subprojects/gst-plugins-good/gst/deinterlace/meson.build b/subprojects/gst-plugins-good/gst/deinterlace/meson.build
+index e86bebe613fc..96a961107ab6 100644
+--- a/subprojects/gst-plugins-good/gst/deinterlace/meson.build
++++ b/subprojects/gst-plugins-good/gst/deinterlace/meson.build
+@@ -54,8 +54,6 @@ if have_nasm and host_cpu == 'x86_64'
+   # https://github.com/mesonbuild/meson/issues/5482
+   if ['darwin', 'ios'].contains(host_system)
+     asm_prefix_def = '-DPREFIX'
+-  elif cc.symbols_have_underscore_prefix()
+-    asm_prefix_def = '-DPREFIX'
+   else
+     asm_prefix_def = '-UPREFIX'
+   endif

Added: 0004-opencv-Allow-building-against-4.6.x.patch
===================================================================
--- 0004-opencv-Allow-building-against-4.6.x.patch	                        (rev 0)
+++ 0004-opencv-Allow-building-against-4.6.x.patch	2022-06-05 23:51:26 UTC (rev 447602)
@@ -0,0 +1,135 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <heftig at archlinux.org>
+Date: Mon, 6 Jun 2022 00:30:08 +0200
+Subject: [PATCH] opencv: Allow building against 4.6.x
+
+Replace the broken version checks with one modeled after
+`GLIB_CHECK_VERSION`.
+---
+ .../gst-plugins-bad/ext/opencv/gstcvtracker.cpp    | 14 +++++++-------
+ .../gst-plugins-bad/ext/opencv/gstcvtracker.h      | 11 +++++++++--
+ subprojects/gst-plugins-bad/ext/opencv/meson.build |  2 +-
+ 3 files changed, 17 insertions(+), 10 deletions(-)
+
+diff --git a/subprojects/gst-plugins-bad/ext/opencv/gstcvtracker.cpp b/subprojects/gst-plugins-bad/ext/opencv/gstcvtracker.cpp
+index 492c9cf9b877..0c5dfda35f0a 100644
+--- a/subprojects/gst-plugins-bad/ext/opencv/gstcvtracker.cpp
++++ b/subprojects/gst-plugins-bad/ext/opencv/gstcvtracker.cpp
+@@ -233,7 +233,7 @@ gst_cvtracker_init (GstCVTracker * filter)
+   filter->y = DEFAULT_PROP_INITIAL_Y;
+   filter->width = DEFAULT_PROP_INITIAL_WIDTH;
+   filter->height = DEFAULT_PROP_INITIAL_HEIGHT;
+-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
++#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
+   filter->tracker = cv::legacy::upgradeTrackingAPI(
+       cv::legacy::TrackerMedianFlow::create());
+ #else
+@@ -283,40 +283,40 @@ create_cvtracker (GstCVTracker * filter)
+ {
+   switch (filter->algorithm) {
+     case GST_OPENCV_TRACKER_ALGORITHM_BOOSTING:
+-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
++#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
+       filter->tracker = cv::legacy::upgradeTrackingAPI(
+           cv::legacy::TrackerBoosting::create());
+ #else
+       filter->tracker = cv::TrackerBoosting::create();
+ #endif
+       break;
+     case GST_OPENCV_TRACKER_ALGORITHM_CSRT:
+       filter->tracker = cv::TrackerCSRT::create ();
+       break;
+     case GST_OPENCV_TRACKER_ALGORITHM_KCF:
+       filter->tracker = cv::TrackerKCF::create ();
+       break;
+     case GST_OPENCV_TRACKER_ALGORITHM_MEDIANFLOW:
+-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
++#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
+       filter->tracker = cv::legacy::upgradeTrackingAPI(
+           cv::legacy::TrackerMedianFlow::create());
+ #else
+       filter->tracker = cv::TrackerMedianFlow::create();
+ #endif
+       break;
+     case GST_OPENCV_TRACKER_ALGORITHM_MIL:
+       filter->tracker = cv::TrackerMIL::create ();
+       break;
+     case GST_OPENCV_TRACKER_ALGORITHM_MOSSE:
+-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
++#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
+       filter->tracker = cv::legacy::upgradeTrackingAPI(
+           cv::legacy::TrackerMOSSE::create());
+ #else
+       filter->tracker = cv::TrackerMOSSE::create ();
+ #endif
+       break;
+     case GST_OPENCV_TRACKER_ALGORITHM_TLD:
+-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
++#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
+       filter->tracker = cv::legacy::upgradeTrackingAPI(
+           cv::legacy::TrackerTLD::create());
+ #else
+@@ -366,19 +366,19 @@ gst_cvtracker_transform_ip (GstOpencvVideoFilter * base,
+   GstMessage *msg;
+ 
+   if (filter->roi.empty ()) {
+-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
++#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
+     filter->roi = new (cv::Rect);
+ #else
+     filter->roi = new (cv::Rect2d);
+ #endif
+     filter->roi->x = filter->x;
+     filter->roi->y = filter->y;
+     filter->roi->width = filter->width;
+     filter->roi->height = filter->height;
+     create_cvtracker (filter);
+     filter->tracker->init (img, *filter->roi);
+   } else if (filter->tracker->update (img, *filter->roi)) {
+-#if (!(CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1))
++#if !GST_OPENCV_CHECK_VERSION(4, 5, 1)
+     /* Round values to avoid inconsistencies depending on the OpenCV version. */
+     filter->roi->x = cvRound (filter->roi->x);
+     filter->roi->y = cvRound (filter->roi->y);
+diff --git a/subprojects/gst-plugins-bad/ext/opencv/gstcvtracker.h b/subprojects/gst-plugins-bad/ext/opencv/gstcvtracker.h
+index d3531efbc593..1a06111d8b03 100644
+--- a/subprojects/gst-plugins-bad/ext/opencv/gstcvtracker.h
++++ b/subprojects/gst-plugins-bad/ext/opencv/gstcvtracker.h
+@@ -50,7 +50,14 @@
+ #include <opencv2/core.hpp>
+ #include <opencv2/imgproc.hpp>
+ #include <opencv2/tracking.hpp>
+-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
++
++#define GST_OPENCV_CHECK_VERSION(major,minor,revision) \
++  (CV_VERSION_MAJOR > (major) || \
++   (CV_VERSION_MAJOR == (major) && CV_VERSION_MINOR > (minor)) || \
++   (CV_VERSION_MAJOR == (major) && CV_VERSION_MINOR == (minor) && \
++    CV_VERSION_REVISION >= (revision)))
++
++#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
+ #include <opencv2/tracking/tracking_legacy.hpp>
+ #endif
+ 
+@@ -84,7 +91,7 @@ struct _GstCVTracker
+   gboolean post_debug_info;
+ 
+   cv::Ptr<cv::Tracker> tracker;
+-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
++#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
+   cv::Ptr<cv::Rect> roi;
+ #else
+   cv::Ptr<cv::Rect2d> roi;
+diff --git a/subprojects/gst-plugins-bad/ext/opencv/meson.build b/subprojects/gst-plugins-bad/ext/opencv/meson.build
+index 1d86b9092d9d..3962cff90a55 100644
+--- a/subprojects/gst-plugins-bad/ext/opencv/meson.build
++++ b/subprojects/gst-plugins-bad/ext/opencv/meson.build
+@@ -71,7 +71,7 @@ if opencv_found
+ endif
+ 
+ if not opencv_found
+-  opencv_dep = dependency('opencv4', version : ['>= 4.0.0', '< 4.6.0'], required : false)
++  opencv_dep = dependency('opencv4', version : ['>= 4.0.0', '< 4.7.0'], required : false)
+   opencv_found = opencv_dep.found()
+   if opencv_found
+     foreach h : libopencv4_headers

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-06-05 23:13:28 UTC (rev 447601)
+++ PKGBUILD	2022-06-05 23:51:26 UTC (rev 447602)
@@ -24,7 +24,7 @@
   gstreamer-docs
 )
 pkgver=1.20.2
-pkgrel=1
+pkgrel=2
 pkgdesc="Multimedia graph framework"
 url="https://gstreamer.freedesktop.org/"
 arch=(x86_64)
@@ -68,13 +68,22 @@
 )
 checkdepends=(xorg-server-xvfb)
 options=(debug)
+_commit=8dbfc89a850d484a27937eb882978251bfce06b3  # tags/1.20.2^0
 source=(
-  "git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git?signed#tag=$pkgver"
+  "git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git#commit=$_commit"
   "https://gstreamer.freedesktop.org/src/gstreamer-docs/gstreamer-docs-$pkgver.tar.xz"{,.asc}
+  0001-meson-Allow-building-with-system-orc.patch
+  0002-HACK-meson-Disable-broken-tests.patch
+  0003-HACK-meson-Work-around-broken-detection-of-underscor.patch
+  0004-opencv-Allow-building-against-4.6.x.patch
 )
 sha256sums=('SKIP'
             'ca70d921cbbba9fe17679b47d2e0db886e0422d37652837a170d76c3f2b4bc53'
-            'SKIP')
+            'SKIP'
+            'de7ae4a8d38be56a2079a0a64d84281758f7aaa3918cd57376dd0c244574cf10'
+            'a88d22b06b8d09f5d7111465c41bbabe13df97d41c1216fc3338ecf4bd13d8d9'
+            '79d3038a0ba0c3958ffa8b5aec8431336b372906c07c0c878c3767bec0acb46f'
+            'd06d390787e8b54dba04f1988af88c9e64e91b25e136559f6651268685f7b906')
 validpgpkeys=(D637032E45B8C6585B9456565D2EEE6F6F349D7C) # Tim Müller <tim at gstreamer-foundation.org>
 
 pkgver() {
@@ -86,16 +95,17 @@
   cd gstreamer
 
   # Fix linking with system orc
-  sed -i "s/get_option('orc')/false/" meson.build
+  git apply -3 ../0001-meson-Allow-building-with-system-orc.patch
 
   # Disable broken tests
-  sed -i "/subdir('tests')/d" subprojects/{gst-editing-services,gstreamer-vaapi}/meson.build
-  sed -i "/subdir('testsuite')/d" subprojects/gst-python/meson.build
-  sed -i "/'gst\/rtspserver'/d" subprojects/gst-rtsp-server/tests/check/meson.build
+  git apply -3 ../0002-HACK-meson-Disable-broken-tests.patch
   
   # Workaround broken detection of underscore prefixes
   # https://github.com/mesonbuild/meson/issues/5482
-  sed -i 's/-DPREFIX/-UPREFIX/' subprojects/gst-plugins-good/gst/deinterlace/meson.build
+  git apply -3 ../0003-HACK-meson-Work-around-broken-detection-of-underscor.patch
+
+  # Fix building against opencv 4.6
+  git apply -3 ../0004-opencv-Allow-building-against-4.6.x.patch
 }
 
 build() {



More information about the arch-commits mailing list