Message ID | 20230113225155.1730922-1-tom.hochstein@nxp.com |
---|---|
State | New |
Headers | show |
Series | gstreamer1.0-plugins-good: Fix libsoup runtime dependency | expand |
On Fri, 2023-01-13 at 16:51 -0600, Tom Hochstein wrote: > The runtime dependency on libsoup set via PACKAGECONFIG does not work. > The problem is the dependency is placed on the main package, but the > soup package has no dependency on the main package. > > I considered modifying the call to do_split_packages from > gstreamer1.0-plugins-packaging.inc, changing extra_depends from '' to > None: > > ``` > extra_depends -- extra runtime dependencies (RDEPENDS) to be set for > all packages. The default value of None causes a > dependency on the main package (${PN}) - if you do > not want this, pass '' for this parameter. > ``` > > However, the problem with this solution is that it does add the runtime > dependency to _all_ such split packages. > > So, fix the problem with an explicit runtime dependency. > > Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> > --- > .../gstreamer/gstreamer1.0-plugins-good_1.20.5.bb | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) This threw a load of warnings/errors, see: https://autobuilder.yoctoproject.org/typhoon/#/builders/83/builds/4792 Cheers, Richard
Thanks. An earlier commit [1] did add libsoup back to the DEPENDS list, though it was not mentioned in the commit message, and I overlooked it in the code what with the dropping of the -Dsoup=disabled. [1] https://github.com/openembedded/openembedded-core/commit/88d30848981db2cb7b1f2021ba07e40976cd789f V2 coming. -----Original Message----- From: Richard Purdie <richard.purdie@linuxfoundation.org> Sent: Saturday, January 14, 2023 11:02 AM To: Tom Hochstein <tom.hochstein@nxp.com>; openembedded-core@lists.openembedded.org Subject: Re: [OE-core] [PATCH] gstreamer1.0-plugins-good: Fix libsoup runtime dependency On Fri, 2023-01-13 at 16:51 -0600, Tom Hochstein wrote: > The runtime dependency on libsoup set via PACKAGECONFIG does not work. > The problem is the dependency is placed on the main package, but the > soup package has no dependency on the main package. > > I considered modifying the call to do_split_packages from > gstreamer1.0-plugins-packaging.inc, changing extra_depends from '' to > None: > > ``` > extra_depends -- extra runtime dependencies (RDEPENDS) to be set for > all packages. The default value of None causes a > dependency on the main package (${PN}) - if you do > not want this, pass '' for this parameter. > ``` > > However, the problem with this solution is that it does add the runtime > dependency to _all_ such split packages. > > So, fix the problem with an explicit runtime dependency. > > Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> > --- > .../gstreamer/gstreamer1.0-plugins-good_1.20.5.bb | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) This threw a load of warnings/errors, see: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fautobuilder.yoctoproject.org%2Ftyphoon%2F%23%2Fbuilders%2F83%2Fbuilds%2F4792&data=05%7C01%7Ctom.hochstein%40nxp.com%7C2a738415ebef4c494dd108daf6511d1f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C638093125482952300%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=cfdxmtUBAwPNqIcKtqSxdABCkPq6O6S42ZEkn1CrDAg%3D&reserved=0 Cheers, Richard
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.5.bb index f7ade89ef8..ed48c57311 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.5.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.5.bb @@ -19,6 +19,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ DEPENDS += "gstreamer1.0-plugins-base libcap zlib" RPROVIDES:${PN}-pulseaudio += "${PN}-pulse" RPROVIDES:${PN}-soup += "${PN}-souphttpsrc" +RDEPENDS:${PN}-soup += "${@bb.utils.contains('PACKAGECONFIG', 'soup2', 'libsoup-2.4', 'libsoup', d)}" PACKAGECONFIG_SOUP ?= "soup3" @@ -52,13 +53,8 @@ PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l- PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123" PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio" PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native ${QT5WAYLANDDEPENDS}" -# Starting with version 1.20, the GStreamer soup plugin loads libsoup with dlopen() -# instead of linking to it. And instead of using the default libsoup C headers, it -# uses its own stub header. Consequently, objdump will not show the libsoup .so as -# a dependency, and libsoup won't be added to an image. Fix this by setting libsoup -# as RDEPEND. -PACKAGECONFIG[soup2] = "-Dsoup=enabled,,libsoup-2.4,libsoup-2.4,,soup3" -PACKAGECONFIG[soup3] = "-Dsoup=enabled,,libsoup,libsoup,,soup2" +PACKAGECONFIG[soup2] = "-Dsoup=enabled,,,,,soup3" +PACKAGECONFIG[soup3] = "-Dsoup=enabled,,,,,soup2" PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex" PACKAGECONFIG[rpi] = "-Drpicamsrc=enabled,-Drpicamsrc=disabled,userland" PACKAGECONFIG[taglib] = "-Dtaglib=enabled,-Dtaglib=disabled,taglib"
The runtime dependency on libsoup set via PACKAGECONFIG does not work. The problem is the dependency is placed on the main package, but the soup package has no dependency on the main package. I considered modifying the call to do_split_packages from gstreamer1.0-plugins-packaging.inc, changing extra_depends from '' to None: ``` extra_depends -- extra runtime dependencies (RDEPENDS) to be set for all packages. The default value of None causes a dependency on the main package (${PN}) - if you do not want this, pass '' for this parameter. ``` However, the problem with this solution is that it does add the runtime dependency to _all_ such split packages. So, fix the problem with an explicit runtime dependency. Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> --- .../gstreamer/gstreamer1.0-plugins-good_1.20.5.bb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)