soup: Runtime compatibility support for libsoup2 and libsoup3
authorPhilippe Normand <philn@igalia.com>
Mon, 4 Oct 2021 08:31:02 +0000 (09:31 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 13 Oct 2021 08:32:25 +0000 (08:32 +0000)
commitc3455def2e7bd09a7c3806283ceb69d0bef24869
tree4a06457236217145caac97675ee82277b76c1ed8
parent0a94da96119910940e5d6105858dfb0a377f3334
soup: Runtime compatibility support for libsoup2 and libsoup3

The src and sink elements no longer link against libsoup. It is now loaded at
runtime. If any version is resident already, it is used. Otherwise we first try
to load libsoup3 and if it's not found we fallback to libsoup2.

For the unit-tests, we now build one version of the test unit file per libsoup
version found. So if both libsoup2 and libsoup3 are available on the host, the
CI will cover them both.

Based on initial patch by Daniel Kolesa <dkolesa@igalia.com> and
Patrick Griffis <pgriffis@igalia.com>.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1044>
14 files changed:
subprojects/gst-plugins-good/ext/soup/gstsoup.c
subprojects/gst-plugins-good/ext/soup/gstsouphttpclientsink.c
subprojects/gst-plugins-good/ext/soup/gstsouphttpclientsink.h
subprojects/gst-plugins-good/ext/soup/gstsouphttpsrc.c
subprojects/gst-plugins-good/ext/soup/gstsouphttpsrc.h
subprojects/gst-plugins-good/ext/soup/gstsouploader.c [new file with mode: 0644]
subprojects/gst-plugins-good/ext/soup/gstsouploader.h [new file with mode: 0644]
subprojects/gst-plugins-good/ext/soup/gstsouputils.c
subprojects/gst-plugins-good/ext/soup/gstsouputils.h
subprojects/gst-plugins-good/ext/soup/meson.build
subprojects/gst-plugins-good/ext/soup/stub/soup.h [new file with mode: 0644]
subprojects/gst-plugins-good/meson.build
subprojects/gst-plugins-good/tests/check/elements/souphttpsrc.c
subprojects/gst-plugins-good/tests/check/meson.build