public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: media-plugins/gst-plugins-webrtc/, media-plugins/gst-plugins-webrtc/files/
@ 2025-01-06  1:22 Sam James
  0 siblings, 0 replies; only message in thread
From: Sam James @ 2025-01-06  1:22 UTC (permalink / raw
  To: gentoo-commits

commit:     4d8eb78f4426a397464e69d91903a154630c54af
Author:     Matthew White <mehw.is.me <AT> inventati <DOT> org>
AuthorDate: Sun Jan  5 23:49:37 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jan  6 01:21:41 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4d8eb78f

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 <AT> inventati.org>
Closes: https://github.com/gentoo/gentoo/pull/39996
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...tc-1.24.10-disable-srtp-sctp-dtls-options.patch | 82 ++++++++++++++++++++++
 .../gst-plugins-webrtc-1.24.10-r1.ebuild           | 42 +++++++++++
 2 files changed, 124 insertions(+)

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
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2025-01-06  1:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-06  1:22 [gentoo-commits] repo/gentoo:master commit in: media-plugins/gst-plugins-webrtc/, media-plugins/gst-plugins-webrtc/files/ Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox