summaryrefslogtreecommitdiff
path: root/dev-cpp/gstreamermm
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/gstreamermm')
-rw-r--r--dev-cpp/gstreamermm/Manifest3
-rw-r--r--dev-cpp/gstreamermm/files/gstreamermm-1.10.0-no-volatile.patch17
-rw-r--r--dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild4
3 files changed, 23 insertions, 1 deletions
diff --git a/dev-cpp/gstreamermm/Manifest b/dev-cpp/gstreamermm/Manifest
index b239f1457553..c43bfee7955b 100644
--- a/dev-cpp/gstreamermm/Manifest
+++ b/dev-cpp/gstreamermm/Manifest
@@ -1,3 +1,4 @@
+AUX gstreamermm-1.10.0-no-volatile.patch 856 BLAKE2B 40e2735424873d2dedda0a8ee2fcac848362741a08acb291ffe532e3b6a1d9af8967345f535148692b7322ecc74fb94a244c0841a57f571e6d6a37eda095c1fe SHA512 6babe0b607646c77850512df029be989256403e86010bcc198f782a04f357fbb3580c1015924b46af0ec2f3b9bb3c5b2f96b8a21befba8ee24c877dc32f59660
DIST gstreamermm-1.10.0.tar.xz 3529640 BLAKE2B 29b99928cd1b21fd295683b4a1ad0a1b0f8ae959237fcbfef7d5a9296a70a140a04fa390fbbcb8d3151d28239f281e72feb30a0466478e38dfb4e172beaf21f1 SHA512 34eeb9eec5958c96acf7c7791eef80138e5d55fea6ddf1bf9ace6b1ec7f052da2abf04d87089e4c9ead51c631ef7afceaf9fceb946ec3d105da522187c69e429
-EBUILD gstreamermm-1.10.0.ebuild 1459 BLAKE2B a3863c41352bac5560958f6077dcbf86824f5fd82c60f022598a05dcfcfd2042d74f37acfb8a0a827e47853a53b598dc94cc267f5122f7004293717d4d288f6f SHA512 2f6e6f1c1554d4d46358e35d3ed6ae69413c70d82212e4674f5c97e8b8464dfe0fb1ab23ea988f09cce485c2fbbe9f9d5df390d764c7036ce4c264cd85228c5e
+EBUILD gstreamermm-1.10.0.ebuild 1510 BLAKE2B 6c6e75c2c7653ede07d0b169fbfe2e55adb638dc446a08d5b5aae35f5c18d7bb622da2ff95ce931e75434e2b2c7dc46e9ccdf9cb646d6859105ad702e3b33533 SHA512 c47f97f245c78b7a9660c44dbc7bf0e6109765439ed332b951d94e1500d1ba596d96784a7be5454f93cb1036412ad30280bc7f095e80f7cfa7ad17ba416ee698
MISC metadata.xml 259 BLAKE2B 32f8c5208a55a1dda504b7df969127393a2c70e672aba383fcdc870de8fe778366d3dde3c3313bd043068d2e7831d1e18bad6fb428e82266fc2a630104e0a193 SHA512 fbef629394690b3a5608abc6344816f6acf1e8e2663f29949fd14a662c628f16fee77a1ec1641066806d143fb94c1571bc5b46b829dc53620af6956377fe15cc
diff --git a/dev-cpp/gstreamermm/files/gstreamermm-1.10.0-no-volatile.patch b/dev-cpp/gstreamermm/files/gstreamermm-1.10.0-no-volatile.patch
new file mode 100644
index 000000000000..ede9f910ae14
--- /dev/null
+++ b/dev-cpp/gstreamermm/files/gstreamermm-1.10.0-no-volatile.patch
@@ -0,0 +1,17 @@
+https://bugs.gentoo.org/786444
+
+g_once_init_enter(void*) should NOT be passed a volatile argument:
+https://developer.gnome.org/glib/stable/glib-Threads.html#g-once-init-enter
+"While location has a volatile qualifier, this is a historical
+artifact and the pointer passed to it should not be volatile."
+--- gstreamermm-1.10.0/gstreamer/gstreamermm/register.h.orig 2017-10-20 12:26:46.000000000 +0300
++++ gstreamermm-1.10.0/gstreamer/gstreamermm/register.h 2021-05-25 17:52:13.031337753 +0300
+@@ -110,7 +110,7 @@
+ /* 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/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild b/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild
index 6fdef7109be2..fced073bba0a 100644
--- a/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild
+++ b/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild
@@ -40,6 +40,10 @@ DEPEND="${RDEPEND}
# Installs reference docs into /usr/share/doc/gstreamermm-1.0/
# but that's okay, because the rest of dev-cpp/*mm stuff does the same
+PATCHES=(
+ "${FILESDIR}"/${P}-no-volatile.patch
+)
+
src_prepare() {
if ! use examples; then
# don't waste time building examples