On Sat, 23 Oct 2021 at 21:53:34 +0100, Simon McVittie wrote:
> I suspect that applying the change from
> https://gitlab.gnome.org/GNOME/gstreamermm/-/merge_requests/4 in
> gstreamermm-1.0 would allow lordsawar to be built successfully against it
> (test-builds in progress).
Yes, confirmed via a test-build of lordsawar. Please consider the attached
patch.
smcv
>From 699d47eb51831b207a749e4351e3ebc7285a749b Mon Sep 17 00:00:00 2001
From: Simon McVittie <[email protected]>
Date: Sat, 23 Oct 2021 21:51:27 +0100
Subject: [PATCH] Add patch from upstream to fix FTBFS of dependent packages
This misuse of 'volatile' caused build failures triggered by gcc 11
and/or GLib 2.68.
Closes: #997238
---
.../patches/Fix-build-against-glib-2.68.patch | 41 +++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 42 insertions(+)
create mode 100644 debian/patches/Fix-build-against-glib-2.68.patch
diff --git a/debian/patches/Fix-build-against-glib-2.68.patch b/debian/patches/Fix-build-against-glib-2.68.patch
new file mode 100644
index 0000000..2048840
--- /dev/null
+++ b/debian/patches/Fix-build-against-glib-2.68.patch
@@ -0,0 +1,41 @@
+From: Dominique Leuenberger <[email protected]>
+Date: Tue, 13 Jul 2021 10:32:30 +0000
+Subject: Fix build against glib 2.68
+
+volatile has been misused in the past
+
+Bug: https://gitlab.gnome.org/GNOME/gstreamermm/-/issues/11
+Bug-Debian: https://bugs.debian.org/997238
+Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/600
+Reference: http://c.isvolatileusefulwiththreads.com/
+---
+ gstreamer/gstreamermm/register.h | 2 +-
+ tests/integration/test-integration-seekonstartup.cc | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gstreamer/gstreamermm/register.h b/gstreamer/gstreamermm/register.h
+index db66d17..a7ab3a6 100644
+--- a/gstreamer/gstreamermm/register.h
++++ b/gstreamer/gstreamermm/register.h
+@@ -110,7 +110,7 @@ register_mm_type(const gchar * type_name)
+ /* The typedef for GType may be gulong or gsize, depending on the
+ * system and whether the compiler is c++ or not. The g_once_init_*
+ * functions always take a gsize * though ... */
+- static volatile gsize gonce_data = 0;
++ static gsize gonce_data = 0;
+ if (g_once_init_enter (&gonce_data)) {
+ GTypeInfo info;
+
+diff --git a/tests/integration/test-integration-seekonstartup.cc b/tests/integration/test-integration-seekonstartup.cc
+index 247ac49..cd43a12 100644
+--- a/tests/integration/test-integration-seekonstartup.cc
++++ b/tests/integration/test-integration-seekonstartup.cc
+@@ -18,7 +18,7 @@ RefPtr<Glib::MainLoop> mainloop;
+ RefPtr<Bus> bus;
+ RefPtr<Pipeline> pipeline;
+ RefPtr<Pad> sink_pad;
+-static volatile gint counter;
++static gint counter;
+ bool prerolled = false;
+ gboolean was_check = 0;
+
diff --git a/debian/patches/series b/debian/patches/series
index 9a0a29d..3c80c41 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
01-disable-tests.patch
02-do-not-compile-examples.patch
+Fix-build-against-glib-2.68.patch
--
2.33.0