Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 907470 - media-plugins/gst-plugins-webrtc-1.22.3 installs files with unresolved SONAME dependencies
Summary: media-plugins/gst-plugins-webrtc-1.22.3 installs files with unresolved SONAME...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: GStreamer package maintainers
URL:
Whiteboard:
Keywords:
: 909079 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-05-31 06:53 UTC by Agostino Sarubbo
Modified: 2023-07-27 14:24 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,123.11 KB, text/plain)
2023-05-31 06:53 UTC, Agostino Sarubbo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Agostino Sarubbo gentoo-dev 2023-05-31 06:53:38 UTC
https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/

Issue: media-plugins/gst-plugins-webrtc-1.22.3 installs files with unresolved SONAME dependencies.
Discovered on: amd64 (internal ref: ci)
Comment 1 Agostino Sarubbo gentoo-dev 2023-05-31 06:53:40 UTC
Created attachment 862952 [details]
build.log

build log and emerge --info
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-05-31 19:46:13 UTC
Dumping here as a note to self:

[14:12:56]  <@leio> sam_: I think this was improperly split by me long ago in the first place; it should be separate for the dsp stuff and the libnice stuff iirc
[14:13:04]  <@leio> not lumped into one
[14:13:49]  <@leio> so there should be a dsp package that deps on webrtc-audio-processing, and a webrtc package that depends on libnice and gst-plugins-sctp stuff
[14:14:22]  <@leio> the details are in some ancient backlog with nirbheek from this channel, though might have been freenode
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-06-10 14:25:11 UTC
[13:24:12]  <+sam_> so webrtc is split properly in the sense that libgstwebrtcnice is in gst-libs/gst/webrtc, while there's also ext/webrtc
[13:32:25]  <+sam_> not sure how to persuade media-plugins/gst-plugins-webrtc to actually install it
[13:32:33]  <+sam_> (i'm not worrying about the further split for a moment)
[13:33:08]  <+sam_> maybe i'm not getting how we normally handle such gst-libs
[14:04:53]  <@leio> helper libs on top of external dependencies and helper libs that depend on external dependencies isn't something we had to deal with much in earlier versions
Comment 4 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-13 00:28:01 UTC
*** Bug 909079 has been marked as a duplicate of this bug. ***
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-13 00:28:14 UTC
See also e.g. https://bugs.gentoo.org/909079#c2.
Comment 6 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-13 00:28:32 UTC
See also e.g. https://bugs.gentoo.org/909079#c2.
Comment 7 Bas Nedermeijer 2023-07-19 20:11:11 UTC
Thanks to the previous comment I am now able to at least have the webrtc plugin installed again.

What I did

emerge --unmerge media-plugins/gst-plugins-webrtc

MYMESONARGS="-Dwebrtc=enabled -Dwebrtcdsp=enabled" emerge gst-plugins-bad


This results in

$ gst-inspect-1.0  | grep webrtc
webrtc:  webrtcbin: WebRTC Bin
webrtcdsp:  webrtcdsp: Voice Processor (AGC, AEC, filters, etc.)
webrtcdsp:  webrtcechoprobe: Acoustic Echo Canceller probe
Comment 8 Mart Raudsepp gentoo-dev 2023-07-23 19:42:33 UTC
There's a bunch to fix for webrtc and webrtcdsp stuff (really they should be separate split packages, dsp is very useful outside webrtc), but for the immediate problem at hand:

From the build.log it seems that libgstwebrtcnice-1.0.so.0 is already built in the compilation process, but the eclass installs just via this:

local plugin_dir plugin

for plugin_dir in ${GST_PLUGINS_BUILD_DIR} ; do
        for plugin in $(_gstreamer_get_target_filename $(gstreamer_get_plugin_dir ${plugin_dir})); do
                local install_filename="${plugin##*:}"
                insinto "${install_filename%/*}"
                doins "${plugin%%:*}"
        done
done


Thus we need to install it separately as well.
Something like this (untested) added at the end of the ebuild might do:

multilib_src_install() {
	DESTDIR="${D}" eninja install
}

But this needs to be checked that all it really installs are the things it already installs before this, and just libgstwebrtcnice-1.0.so.0* and its headers into /usr/include/gstreamer-1.0/gst/webrtc/nice/ - if not, might need to filter something out from $ED.

If that doesn't work out, we might need to hack it up until a full solution with something like this:

multilib_src_install() {
	insinto /usr/$(get_libdir)
	doins "${BUILD_DIR}"/ext/webrtc/libgstwebrtc.so
	insinto /usr/include/gstreamer-1.0/gst/webrtc/nice
	doins "${S}"/gst-libs/gst/webrtc/nice/*.h
	gstreamer_multilib_src_install
}
Comment 9 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-27 12:58:21 UTC
(In reply to Mart Raudsepp from comment #8)

Thank you! Sorry, I'd got sort of stuck in a loop on this and kept putting it off.

The second option works (the first doesn't b/c there's no split up ninja targets AFAICT, so it installs all of bad).

 * CMP: =media-plugins/gst-plugins-webrtc-1.22.3 with media-plugins/gst-plugins-webrtc-1.22.3/image
 *  FILES:+usr/include/gstreamer-1.0/gst/webrtc/nice/nice.h
 *  FILES:+usr/include/gstreamer-1.0/gst/webrtc/nice/nice_fwd.h
 *  FILES:+usr/include/gstreamer-1.0/gst/webrtc/nice/nicestream.h
 *  FILES:+usr/include/gstreamer-1.0/gst/webrtc/nice/nicetransport.h
 *  FILES:+usr/lib/libgstwebrtc.so
 *  FILES:+usr/lib64/libgstwebrtc.so
 *   SIZE: 4.45MiB -> 7.49MiB, 4 -> 10 files
 * ------> FILES(+6) SIZE(+68.19%)
Comment 10 Larry the Git Cow gentoo-dev 2023-07-27 13:00:40 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7dbf45f208afd99b435049a366f4a9a5308d1f18

commit 7dbf45f208afd99b435049a366f4a9a5308d1f18
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-07-27 12:59:35 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-27 13:00:00 +0000

    media-plugins/gst-plugins-webrtc: fix plugin installation via manual install
    
    Thanks to leio for the suggestion.
    
    Closes: https://bugs.gentoo.org/907470
    Signed-off-by: Sam James <sam@gentoo.org>

 ...-webrtc-1.22.3.ebuild => gst-plugins-webrtc-1.22.3-r1.ebuild} | 9 +++++++++
 1 file changed, 9 insertions(+)