commit:     552c98e4e933c0d0d3c334e22059538eb3594111
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 28 01:08:09 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jul 28 01:08:26 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=552c98e4

media-plugins/gst-plugins-libnice: add 0.1.21

Thanks to Joseph McElroy for the assistance.

Closes: https://bugs.gentoo.org/910434
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-plugins/gst-plugins-libnice/Manifest         |  1 +
 ...plugins-libnice-0.1.21-no-install-version.patch | 84 ++++++++++++++++++++++
 ...gins-libnice-0.1.21-use-installed-libnice.patch | 46 ++++++++++++
 .../gst-plugins-libnice-0.1.21.ebuild              | 43 +++++++++++
 4 files changed, 174 insertions(+)

diff --git a/media-plugins/gst-plugins-libnice/Manifest 
b/media-plugins/gst-plugins-libnice/Manifest
index 7bfe013e0ae3..c97d1852cce6 100644
--- a/media-plugins/gst-plugins-libnice/Manifest
+++ b/media-plugins/gst-plugins-libnice/Manifest
@@ -1 +1,2 @@
 DIST libnice-0.1.19.tar.gz 453407 BLAKE2B 
7bffde82a3e55d9aeeaadd159d944346a5192871e7f574e278dc43e8171e5fde472cd28186777a0b6cddd8bde34e035794b1c6b8f152c7fb4fae5202025bfdac
 SHA512 
1c63cc0b7655186fd6f83da4dd607183d6ccfab9b7ad7189c1bea2ba7413183f24076aba5d6c7231d2ab3fbd471827256729a8a0c0d1bda48803586e68b3778b
+DIST libnice-0.1.21.tar.gz 460086 BLAKE2B 
61f0807ad0d959ffbaf8dce7b0321a19ae42e4c57cc6ac9b8f39bd27645ef60bb342f4105b6ce4c4c82573592a52388888d72031033e9e7368f8b5d53afa37d6
 SHA512 
acbd1e0e8aacb0a65cad5b70b470a74a7c4a4f1306bc4e17cd4fd899f2fae2bb538bd099e6c0f9cba6bb9a38e95bc14087aa4f77f6aa5b70d6398179783c6e26

diff --git 
a/media-plugins/gst-plugins-libnice/files/gst-plugins-libnice-0.1.21-no-install-version.patch
 
b/media-plugins/gst-plugins-libnice/files/gst-plugins-libnice-0.1.21-no-install-version.patch
new file mode 100644
index 000000000000..2602a31f97dd
--- /dev/null
+++ 
b/media-plugins/gst-plugins-libnice/files/gst-plugins-libnice-0.1.21-no-install-version.patch
@@ -0,0 +1,84 @@
+https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/259
+
+From a34623e08e368d56fe6c7fcb7a1f87ea59ad5094 Mon Sep 17 00:00:00 2001
+From: Nirbheek Chauhan <[email protected]>
+Date: Wed, 31 May 2023 18:34:11 +0530
+Subject: [PATCH] meson: Generate nice-version.h in the right builddir
+
+We want it in the `nice/` subdir so that it gets picked up correctly
+during uninstalled builds, such as in the gstreamer monorepo.
+
+The `NICE_CHECK_VERSION` macro was non-functional in the monorepo
+because of this.
+---
+ gst/meson.build  |  3 +--
+ meson.build      |  9 ---------
+ nice/meson.build | 12 +++++++++++-
+ 3 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/gst/meson.build b/gst/meson.build
+index 572c6abc..4ed4794f 100644
+--- a/gst/meson.build
++++ b/gst/meson.build
+@@ -12,8 +12,7 @@ libgstnice = library('gstnice',
+   gst_nice_sources,
+   c_args : gst_nice_args,
+   include_directories: nice_incs,
+-  dependencies: [nice_deps, gst_dep],
+-  link_with: libnice,
++  dependencies: [libnice_dep, gst_dep],
+   install_dir: gst_plugins_install_dir,
+   install: true)
+ plugins = [libgstnice]
+diff --git a/meson.build b/meson.build
+index 6a733b73..4faffb40 100644
+--- a/meson.build
++++ b/meson.build
+@@ -85,15 +85,6 @@ add_project_arguments('-D_GNU_SOURCE',
+   '-DNICE_VERSION_NANO=' + version_nano,
+   language: 'c')
+ 
+-version_conf = configuration_data()
+-version_conf.set('NICE_VERSION_MAJOR', version_major)
+-version_conf.set('NICE_VERSION_MINOR', version_minor)
+-version_conf.set('NICE_VERSION_MICRO', version_micro)
+-version_conf.set('NICE_VERSION_NANO', version_nano)
+-nice_version_h = configure_file(output: 'nice-version.h',
+-  install_dir: get_option('includedir') / 'nice',
+-  configuration: version_conf)
+-
+ cdata = configuration_data()
+ 
+ cdata.set_quoted('PACKAGE_STRING', meson.project_name())
+diff --git a/nice/meson.build b/nice/meson.build
+index 6916781d..4f826d81 100644
+--- a/nice/meson.build
++++ b/nice/meson.build
+@@ -1,4 +1,3 @@
+-nice_gen_sources = [nice_version_h]
+ nice_link_args = []
+ 
+ # libnice.def
+@@ -31,9 +30,20 @@ libnice = library('nice',
+   link_depends: mapfile,
+   install: true)
+ 
++version_conf = configuration_data()
++version_conf.set('NICE_VERSION_MAJOR', version_major)
++version_conf.set('NICE_VERSION_MINOR', version_minor)
++version_conf.set('NICE_VERSION_MICRO', version_micro)
++version_conf.set('NICE_VERSION_NANO', version_nano)
++nice_version_h = configure_file(output: 'nice-version.h',
++  install_dir: get_option('includedir') / 'nice',
++  configuration: version_conf)
++
+ install_headers('nice.h', subdir: 'nice')
+ nice_include = include_directories('.')
+ 
++nice_gen_sources = [nice_version_h]
++
+ # introspection
+ build_gir = gir.found() and not get_option('introspection').disabled()
+ if build_gir
+-- 
+GitLab

diff --git 
a/media-plugins/gst-plugins-libnice/files/gst-plugins-libnice-0.1.21-use-installed-libnice.patch
 
b/media-plugins/gst-plugins-libnice/files/gst-plugins-libnice-0.1.21-use-installed-libnice.patch
new file mode 100644
index 000000000000..1f8adae219ec
--- /dev/null
+++ 
b/media-plugins/gst-plugins-libnice/files/gst-plugins-libnice-0.1.21-use-installed-libnice.patch
@@ -0,0 +1,46 @@
+Carve out everything but gstreamer plugin part, libnice-0.1.21
+
+Signed-off-by: Igor V. Kovalenko <[email protected]>
+
+diff -udBbr libnice-0.1.21-original/meson.build libnice-0.1.21/meson.build
+--- libnice-0.1.21-original/meson.build        2020-10-21 04:03:07.272845300 
+0300
++++ libnice-0.1.21/meson.build 2022-03-20 23:38:05.116302874 +0300
+@@ -263,9 +263,7 @@
+ 
+ libm = cc.find_library('m', required: false)
+ 
+-nice_incs = include_directories('.', 'agent', 'random', 'socket', 'stun')
+-
+-nice_deps = gio_deps + [gthread_dep, crypto_dep, gupnp_igd_dep] + syslibs
++nice_incs = include_directories('.')
+
+ ignored_iface_prefix = get_option('ignored-network-interface-prefix')
+ if ignored_iface_prefix != []
+@@ -278,11 +276,7 @@
+ 
+ gir = find_program('g-ir-scanner', required : get_option('introspection'))
+ 
+-subdir('agent')
+-subdir('stun')
+-subdir('socket')
+-subdir('random')
+-subdir('nice')
++libnice_dep = dependency('nice', version: nice_version, required: true)
+ 
+ if gst_dep.found()
+   subdir('gst')
+@@ -298,14 +292,6 @@
+   endif
+ endif
+ 
+-if not get_option('tests').disabled()
+-  subdir('tests')
+-endif
+-
+-if not get_option('examples').disabled()
+-  subdir('examples')
+-endif
+-
+ add_test_setup('valgrind',
+              exe_wrapper: ['valgrind',
+                            '--leak-check=full',

diff --git 
a/media-plugins/gst-plugins-libnice/gst-plugins-libnice-0.1.21.ebuild 
b/media-plugins/gst-plugins-libnice/gst-plugins-libnice-0.1.21.ebuild
new file mode 100644
index 000000000000..42845cd1e6ed
--- /dev/null
+++ b/media-plugins/gst-plugins-libnice/gst-plugins-libnice-0.1.21.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit meson-multilib
+
+DESCRIPTION="GStreamer plugin for ICE (RFC 5245) support"
+HOMEPAGE="https://libnice.freedesktop.org/";
+MY_P=libnice-${PV}
+SRC_URI="https://nice.freedesktop.org/releases/${MY_P}.tar.gz";
+
+LICENSE="|| ( MPL-1.1 LGPL-2.1 )"
+SLOT="1.0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv 
~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE=""
+
+RDEPEND="
+       ~net-libs/libnice-${PV}[${MULTILIB_USEDEP}]
+       media-libs/gstreamer:${SLOT}[${MULTILIB_USEDEP}]
+       media-libs/gst-plugins-base:${SLOT}[${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+       "${FILESDIR}"/gst-plugins-libnice-0.1.21-no-install-version.patch
+       "${FILESDIR}"/gst-plugins-libnice-0.1.21-use-installed-libnice.patch
+)
+
+S=${WORKDIR}/${MY_P}
+
+multilib_src_configure() {
+       # gnutls vs openssl left intentionally automagic here - the chosen USE 
flag configuration of libnice will ensure
+       # one of them is present, configure will be happy, but gstreamer bits 
don't use it, so it doesn't matter.
+       # gupnp is not used in the gst plugin.
+       local emesonargs=(
+               -Dgstreamer=enabled
+               -Dcrypto-library=auto
+               -Dintrospection=disabled
+               -Dgupnp=disabled
+       )
+       meson_src_configure
+}

Reply via email to