summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew White <mehw.is.me@inventati.org>2025-01-05 23:49:37 +0000
committerSam James <sam@gentoo.org>2025-01-06 01:21:41 +0000
commit4d8eb78f4426a397464e69d91903a154630c54af (patch)
tree597f967fba269df6e1527127cfdc62093717309a /media-plugins/gst-plugins-webrtc
parentdev-games/godot: define mbedtls slot (diff)
downloadgentoo-4d8eb78f4426a397464e69d91903a154630c54af.tar.gz
gentoo-4d8eb78f4426a397464e69d91903a154630c54af.tar.bz2
gentoo-4d8eb78f4426a397464e69d91903a154630c54af.zip
media-plugins/gst-plugins-webrtc: fix compilation
Upstream decided to auto-enable srtp, sctp and dtls options, when the webrtc option is enabled: fd4828bafe613eec33e8f3faef5ab5181a73c8b6. This adds a patch to partially revert the upstream commit in order to allow the stand-alone compilation of webrtc. Fixes the following: 'ERROR: Feature ... cannot be disabled: webrtc option is enabled' Closes: https://bugs.gentoo.org/947523 Package-Manager: portage-3.0.66.1-r1 Signed-off-by: Matthew White <mehw.is.me@inventati.org> Closes: https://github.com/gentoo/gentoo/pull/39996 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-plugins/gst-plugins-webrtc')
-rw-r--r--media-plugins/gst-plugins-webrtc/files/gst-plugins-webrtc-1.24.10-disable-srtp-sctp-dtls-options.patch82
-rw-r--r--media-plugins/gst-plugins-webrtc/gst-plugins-webrtc-1.24.10-r1.ebuild42
2 files changed, 124 insertions, 0 deletions
diff --git a/media-plugins/gst-plugins-webrtc/files/gst-plugins-webrtc-1.24.10-disable-srtp-sctp-dtls-options.patch b/media-plugins/gst-plugins-webrtc/files/gst-plugins-webrtc-1.24.10-disable-srtp-sctp-dtls-options.patch
new file mode 100644
index 000000000000..d3386feb7d1f
--- /dev/null
+++ b/media-plugins/gst-plugins-webrtc/files/gst-plugins-webrtc-1.24.10-disable-srtp-sctp-dtls-options.patch
@@ -0,0 +1,82 @@
+Upstream decided to auto-enable srtp, sctp and dtls options, when the
+webrtc option is enabled. This is going to partially revert upstream
+fd4828bafe613eec33e8f3faef5ab5181a73c8b6 to fix webrtc compilation.
+
+https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/fd4828bafe613eec33e8f3faef5ab5181a73c8b6
+
+../gst-plugins-bad-1.24.10/ext/dtls/meson.build:15:33: ERROR: Feature dtls cannot be disabled: webrtc option is enabled
+
+../gst-plugins-bad-1.24.10/ext/sctp/meson.build:8:33: ERROR: Feature sctp cannot be disabled: webrtc option is enabled
+
+../gst-plugins-bad-1.24.10/ext/srtp/meson.build:10:33: ERROR: Feature srtp cannot be disabled: webrtc option is enabled
+
+diff -Nuar a/ext/dtls/meson.build b/ext/dtls/meson.build
+--- a/ext/dtls/meson.build 2025-01-05 20:40:34.043318811 +0000
++++ b/ext/dtls/meson.build 2025-01-05 20:41:23.503318674 +0000
+@@ -12,9 +12,8 @@
+ 'gstdtlselement.c',
+ ]
+
+-dtls_option = get_option('dtls').enable_if(get_option('webrtc').enabled(), error_message: 'webrtc option is enabled')
+-openssl_dep = dependency('openssl', version: '>= 1.0.1', required: dtls_option)
+-libcrypto_dep = dependency('libcrypto', required: dtls_option)
++openssl_dep = dependency('openssl', version : '>= 1.0.1', required : get_option('dtls'))
++libcrypto_dep = dependency('libcrypto', required : get_option('dtls'))
+
+ if openssl_dep.found() and libcrypto_dep.found()
+ gstdtls = library('gstdtls',
+
+diff -Nuar a/ext/sctp/meson.build b/ext/sctp/meson.build
+--- a/ext/sctp/meson.build 2025-01-05 20:48:48.867317441 +0000
++++ b/ext/sctp/meson.build 2025-01-05 20:50:03.807317233 +0000
+@@ -5,8 +5,7 @@
+ 'sctpassociation.c'
+ ]
+
+-sctp_option = get_option('sctp').enable_if(get_option('webrtc').enabled(), error_message: 'webrtc option is enabled')
+-if sctp_option.disabled()
++if get_option('sctp').disabled()
+ subdir_done()
+ endif
+
+@@ -24,7 +23,7 @@
+ found_system_usrsctp = sctp_dep.found() and sctp_header
+
+ if get_option('sctp-internal-usrsctp').disabled() and not found_system_usrsctp
+- if sctp_option.enabled()
++ if get_option('sctp').enabled()
+ error('sctp plugin enabled but could not find libusrsctp or usrsctp.h, and internal libusrsctp disabled')
+ else
+ message('Could not find libusrsctp or usrsctp.h, and internal libusrsctp disabled - not building sctp plugin')
+@@ -38,7 +37,7 @@
+ subdir('usrsctp')
+ sctp_dep = usrsctp_dep
+ sctp_header = true
+- if sctp_option.enabled() and not sctp_dep.found()
++ if get_option('sctp').enabled() and not sctp_dep.found()
+ error('sctp plugin enabled but could not find system libusrsctp or configure internal libusrsctp')
+ endif
+ endif
+
+diff -Nuar a/ext/srtp/meson.build b/ext/srtp/meson.build
+--- a/ext/srtp/meson.build 2025-01-05 20:53:34.863316649 +0000
++++ b/ext/srtp/meson.build 2025-01-05 20:54:09.979316551 +0000
+@@ -7,8 +7,7 @@
+ ]
+
+ srtp_cargs = []
+-srtp_option = get_option('srtp').enable_if(get_option('webrtc').enabled(), error_message: 'webrtc option is enabled')
+-if srtp_option.disabled()
++if get_option('srtp').disabled()
+ srtp_dep = dependency('', required : false)
+ subdir_done()
+ endif
+@@ -22,7 +21,7 @@
+ srtp_dep = cc.find_library('srtp', required : false)
+ endif
+ endif
+-if not srtp_dep.found() and srtp_option.enabled()
++if not srtp_dep.found() and get_option('srtp').enabled()
+ error('srtp plugin enabled but libsrtp not found')
+ endif
+
diff --git a/media-plugins/gst-plugins-webrtc/gst-plugins-webrtc-1.24.10-r1.ebuild b/media-plugins/gst-plugins-webrtc/gst-plugins-webrtc-1.24.10-r1.ebuild
new file mode 100644
index 000000000000..c5366a1409a3
--- /dev/null
+++ b/media-plugins/gst-plugins-webrtc/gst-plugins-webrtc-1.24.10-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+GST_ORG_MODULE=gst-plugins-bad
+
+inherit gstreamer-meson
+
+DESCRIPTION="WebRTC plugins for GStreamer"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=media-plugins/gst-plugins-sctp-${PV}:1.0[${MULTILIB_USEDEP}]
+ >=media-libs/webrtc-audio-processing-1.0:1[${MULTILIB_USEDEP}]
+ >=net-libs/libnice-0.1.21[${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+
+GST_PLUGINS_ENABLED="webrtc webrtcdsp"
+GST_PLUGINS_BUILD_DIR="webrtc webrtcdsp"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.24.10-disable-srtp-sctp-dtls-options.patch"
+)
+
+src_prepare() {
+ default
+ gstreamer_system_package \
+ gstwebrtc_dep:gstreamer-webrtc \
+ gstsctp_dep:gstreamer-sctp \
+ gstbadaudio_dep:gstreamer-bad-audio
+}
+
+multilib_src_install() {
+ # TODO: Fix this properly, see bug #907470 and bug #909079.
+ insinto /usr/$(get_libdir)
+ doins "${BUILD_DIR}"/ext/webrtc/libgstwebrtc.so
+ doins "${BUILD_DIR}"/gst-libs/gst/webrtc/nice/libgstwebrtcnice-1.0.so*
+ insinto /usr/include/gstreamer-1.0/gst/webrtc/nice
+ doins "${S}"/gst-libs/gst/webrtc/nice/*.h
+ gstreamer_multilib_src_install
+}