On December 9, 2021 11:08:31 PM GMT+01:00, Joshua Watt <jpewhac...@gmail.com> 
wrote:
>On Thu, Dec 9, 2021 at 3:55 PM Quentin Schulz <foss+yo...@0leil.net> wrote:
>>
>> Hi Joshua,
>>
>> On December 9, 2021 9:44:17 PM GMT+01:00, Joshua Watt <jpewhac...@gmail.com> 
>> wrote:
>> >Adds a PACKAGECONFIG option to use libsoup2 instead of libsoup3.
>> >Including libsoup2 and libsoup3 in the same process can cause strange
>> >runtime failures, and the latest release of each major version will
>> >cause the process to exit if either if both are detected on process
>> >startup.
>> >
>> >The default is changed from libsoup3 back to libsoup2. Most GNOME
>> >packages are still using libsoup2, and a large number of these pull in
>> >webkitgtk either directly or indirectly. If webkitgtk uses libsoup3,
>> >this causes all of these packages to fail at startup. It appears that
>> >most GNOME packages will have to switch to libsoup3 when they transition
>> >to GTK4.
>> >
>> >Signed-off-by: Joshua Watt <jpewhac...@gmail.com>
>> >---
>> > meta/recipes-sato/webkit/webkitgtk_2.34.2.bb | 6 ++++--
>> > 1 file changed, 4 insertions(+), 2 deletions(-)
>> >
>> >diff --git a/meta/recipes-sato/webkit/webkitgtk_2.34.2.bb 
>> >b/meta/recipes-sato/webkit/webkitgtk_2.34.2.bb
>> >index 413e0cdf92..279e260441 100644
>> >--- a/meta/recipes-sato/webkit/webkitgtk_2.34.2.bb
>> >+++ b/meta/recipes-sato/webkit/webkitgtk_2.34.2.bb
>> >@@ -38,12 +38,12 @@ DEPENDS = " \
>> >           atk \
>> >           libwebp \
>> >           gtk+3 \
>> >-          libsoup \
>> >           libxslt \
>> >           libtasn1 \
>> >           libnotify \
>> >           gstreamer1.0 \
>> >           gstreamer1.0-plugins-base \
>> >+          ${@bb.utils.contains("PACKAGECONFIG", "soup2", "libsoup-2.4", 
>> >"libsoup", d)} \
>> >           "
>> >
>> > PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd wayland 
>> > x11', d)} \
>> >@@ -52,6 +52,7 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 
>> >'systemd wayland x11',
>> >                    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 
>> > 'opengl-or-es', '', d)} \
>> >                    enchant \
>> >                    libsecret \
>> >+                   soup2 \
>> >                   "
>> >
>> > PACKAGECONFIG[wayland] = 
>> > "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe 
>> > wpebackend-fdo wayland-native"
>> >@@ -70,6 +71,7 @@ PACKAGECONFIG[openjpeg] = 
>> >"-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg"
>> > PACKAGECONFIG[systemd] = "-DUSE_SYSTEMD=ON,-DUSE_SYSTEMD=off,systemd"
>> > PACKAGECONFIG[reduce-size] = 
>> > "-DCMAKE_BUILD_TYPE=MinSizeRel,-DCMAKE_BUILD_TYPE=Release,,"
>> > PACKAGECONFIG[lcms] = "-DUSE_LCMS=ON,-DUSE_LCMS=OFF,lcms"
>> >+PACKAGECONFIG[soup2] = "-DUSE_SOUP2=ON,-DUSE_SOUP2=OFF,,"
>> >
>>
>> What about leveraging package conflicts in PACKAGECONFIG?
>>
>> e.g.:
>> PACKAGECONFIG[soup2] = "-DUSE_SOUP2=ON,-DUSE_SOUP2=OFF,libsoup-2.4,,,soup"
>> PACKAGECONFIG[soup] = ",,libsoup,,,soup2"
>> ?
>> No need for the check on PACKAGECONFIG in depends then.
>
>Ya, the weird part there is that if you want libsoup3, you *must* put
>"soup" in PACKAGECONFIG *and* remove soup2, otherwise libsoup won't be
>added to DEPENDS and the build fails.
>

I can suggest a solution à la qt package from meta-qt5:
PACKAGECONFIG_LIBSOUP ?= "soup2"
PACKAGECONFIG ??= "[...] ${PACKAGECONFIG_LIBSOUP}"

If you want to make really sure one or the other is selected, you can add a 
check in an anonymous Python function?

This should tackle the "must" part and also allow easy swap in bbappends in 
addition of making sure libsoup and libsoup-2.4 can't be selected at the same 
time?

What do you think?

On a side note, I feel like this patch could be split in two. One for the 
libsoup switch mechanism and one for switching the default to libsoup-2.4? I 
don't think Richard care usually though, so no biggie :)

Cheers,
Quentin

>>
>> > # webkitgtk is full of /usr/bin/env python, particular for generating docs
>> > do_configure[postfuncs] += "setup_python_link"
>> >@@ -124,7 +126,7 @@ EXTRA_OECMAKE:append:x86-x32 = " -DENABLE_JIT=OFF "
>> > SECURITY_CFLAGS:remove:aarch64 = "-fpie"
>> > SECURITY_CFLAGS:append:aarch64 = " -fPIE"
>> >
>> >-FILES:${PN} += 
>> >"${libdir}/webkit2gtk-4.1/injected-bundle/libwebkit2gtkinjectedbundle.so"
>> >+FILES:${PN} += 
>> >"${libdir}/webkit2gtk-4.*/injected-bundle/libwebkit2gtkinjectedbundle.so"
>> >
>>
>> Was this change suppose to make it in this commit?
>
>Yes. The minor version of the library changes based on libsoup3 (4.1)
>vs. libsoup2 (4.0)
>
>>
>> Cheers,
>> Quentin
>>
>> > RRECOMMENDS:${PN} += "ca-certificates shared-mime-info"
>> >
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#159491): 
https://lists.openembedded.org/g/openembedded-core/message/159491
Mute This Topic: https://lists.openembedded.org/mt/87621243/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to