From: Thomas Devoogdt <thomas@devoogdt.com>
To: buildroot@buildroot.org
Cc: Adrian Perez de Castro <aperez@igalia.com>,
Thomas Devoogdt <thomas@devoogdt.com>,
Eric Le Bihan <eric.le.bihan.dev@free.fr>
Subject: [Buildroot] [PATCH v2 1/3] package/libsoup3: new package
Date: Wed, 2 Aug 2023 14:01:48 +0200 [thread overview]
Message-ID: <20230802120150.564860-1-thomas@devoogdt.com> (raw)
Libsoup3 has a new API [1], packages using libsoup may not
compile with libsoup3 or may crash at runtime in unexpected
ways. So add a new package.
This replaces my original commit that was sent to the buildroot
mailing list a long time ago: [2]
Changes for libsoup3:
- "0001-meson.build-set-c_std-to-gnu99.patch" is upstream now [2].
- The "gnome" option was dropped in [3].
- A new "libnghttp2" dependency is added since libsoup 2.99.6 (HTTP2 backend) [4].
[1] https://libsoup.org/libsoup-3.0/ch02.html
[2] https://patchwork.ozlabs.org/project/buildroot/patch/20220129214235.5133-2-thomas.devoogdt@gmail.com/
[3] https://gitlab.gnome.org/GNOME/libsoup/-/commit/5c3d431bdb094c59997f2a23e31e83f815ab667c
[4] https://gitlab.gnome.org/GNOME/libsoup/-/commit/3fcaa882c4eb29fd754cdb6dd06195632cb4b52a
[5] https://gitlab.gnome.org/GNOME/libsoup/-/commit/1a1d29c3114ca86c673d0c0b02a492d0962dcfe8
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v2: no change
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/libsoup3/Config.in | 40 +++++++++++++++++++++++
package/libsoup3/libsoup3.hash | 4 +++
package/libsoup3/libsoup3.mk | 58 ++++++++++++++++++++++++++++++++++
5 files changed, 104 insertions(+)
create mode 100644 package/libsoup3/Config.in
create mode 100644 package/libsoup3/libsoup3.hash
create mode 100644 package/libsoup3/libsoup3.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 5023ecd775..700422dcfa 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2855,6 +2855,7 @@ F: toolchain/
N: Thomas Devoogdt <thomas@devoogdt.com>
F: package/fluent-bit/
+F: package/libsoup3/
N: Thomas Huth <huth@tuxfamily.org>
F: board/qemu/m68k-mcf5208/
diff --git a/package/Config.in b/package/Config.in
index 54cddc3914..e12ee34e9f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1957,6 +1957,7 @@ menu "Networking"
source "package/libshout/Config.in"
source "package/libsocketcan/Config.in"
source "package/libsoup/Config.in"
+ source "package/libsoup3/Config.in"
source "package/libsrtp/Config.in"
source "package/libstrophe/Config.in"
source "package/libteam/Config.in"
diff --git a/package/libsoup3/Config.in b/package/libsoup3/Config.in
new file mode 100644
index 0000000000..8a6cbc1e67
--- /dev/null
+++ b/package/libsoup3/Config.in
@@ -0,0 +1,40 @@
+config BR2_PACKAGE_LIBSOUP3
+ bool "libsoup3"
+ depends on BR2_USE_WCHAR # glib2, gnutls and libpsl
+ depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
+ depends on BR2_USE_MMU # glib2
+ select BR2_PACKAGE_NGHTTP2
+ select BR2_PACKAGE_LIBXML2
+ select BR2_PACKAGE_LIBGLIB2
+ select BR2_PACKAGE_LIBPSL
+ select BR2_PACKAGE_SQLITE
+ help
+ libsoup3 is an HTTP client/server library. It uses GObject
+ and the GLib main loop, to integrate well with GNOME
+ applications.
+
+ https://wiki.gnome.org/Projects/libsoup
+
+if BR2_PACKAGE_LIBSOUP3
+
+config BR2_PACKAGE_LIBSOUP3_GNOME
+ bool "libsoup3-gnome"
+ help
+ Build libsoup3-gnome library.
+
+config BR2_PACKAGE_LIBSOUP3_SSL
+ bool "https support"
+ depends on !BR2_STATIC_LIBS # glib-networking, gnutls
+ select BR2_PACKAGE_GLIB_NETWORKING # runtime
+ select BR2_PACKAGE_GNUTLS # runtime
+ help
+ Enable HTTPS (SSL) support.
+
+comment "libsoup3 https support needs a toolchain w/ dynamic library"
+ depends on BR2_STATIC_LIBS
+
+endif
+
+comment "libsoup3 needs a toolchain w/ wchar, threads"
+ depends on BR2_USE_MMU
+ depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libsoup3/libsoup3.hash b/package/libsoup3/libsoup3.hash
new file mode 100644
index 0000000000..01313b394b
--- /dev/null
+++ b/package/libsoup3/libsoup3.hash
@@ -0,0 +1,4 @@
+# From https://download.gnome.org/sources/libsoup/3.4/libsoup-3.4.2.sha256sum
+sha256 78c8fa37cb152d40ec8c4a148d6155e2f6947f3f1602a7cda3a31ad40f5ee2f3 libsoup-3.4.2.tar.xz
+# Locally calculated
+sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c COPYING
diff --git a/package/libsoup3/libsoup3.mk b/package/libsoup3/libsoup3.mk
new file mode 100644
index 0000000000..5a25e10047
--- /dev/null
+++ b/package/libsoup3/libsoup3.mk
@@ -0,0 +1,58 @@
+################################################################################
+#
+# libsoup3
+#
+################################################################################
+
+LIBSOUP3_VERSION_MAJOR = 3.4
+LIBSOUP3_VERSION = $(LIBSOUP3_VERSION_MAJOR).2
+LIBSOUP3_SOURCE = libsoup-$(LIBSOUP3_VERSION).tar.xz
+LIBSOUP3_SITE = https://download.gnome.org/sources/libsoup/$(LIBSOUP3_VERSION_MAJOR)
+LIBSOUP3_LICENSE = LGPL-2.0+
+LIBSOUP3_LICENSE_FILES = COPYING
+LIBSOUP3_CPE_ID_VENDOR = gnome
+LIBSOUP3_INSTALL_STAGING = YES
+LIBSOUP3_DEPENDENCIES = \
+ host-intltool \
+ host-libglib2 \
+ host-pkgconf \
+ libglib2 \
+ libpsl \
+ libxml2 \
+ nghttp2 \
+ sqlite \
+ $(TARGET_NLS_DEPENDENCIES)
+
+LIBSOUP3_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS)
+
+LIBSOUP3_CONF_OPTS = \
+ -Dntlm=disabled \
+ -Dsysprof=disabled \
+ -Dtests=false \
+ -Dtls_check=false \
+ -Dvapi=disabled
+
+ifeq ($(BR2_PACKAGE_BROTLI),y)
+LIBSOUP3_CONF_OPTS += -Dbrotli=enabled
+LIBSOUP3_DEPENDENCIES += brotli
+else
+LIBSOUP3_CONF_OPTS += -Dbrotli=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y)
+LIBSOUP3_CONF_OPTS += -Dintrospection=enabled
+LIBSOUP3_DEPENDENCIES += gobject-introspection
+else
+LIBSOUP3_CONF_OPTS += -Dintrospection=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_LIBKRB5),y)
+LIBSOUP3_CONF_OPTS += \
+ -Dgssapi=enabled \
+ -Dkrb5_config=$(STAGING_DIR)/usr/bin/krb5-config
+LIBSOUP3_DEPENDENCIES += libkrb5
+else
+LIBSOUP3_CONF_OPTS += -Dgssapi=disabled
+endif
+
+$(eval $(meson-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next reply other threads:[~2023-08-02 12:02 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-02 12:01 Thomas Devoogdt [this message]
2023-08-02 12:01 ` [Buildroot] [PATCH v2 2/3] package/webkitgtk: add http/2 support by using libsoup3 Thomas Devoogdt
2023-08-06 14:26 ` Thomas Petazzoni via buildroot
2023-08-02 12:01 ` [Buildroot] [PATCH v2 3/3] package/wpewebkit: " Thomas Devoogdt
2023-08-06 14:26 ` Thomas Petazzoni via buildroot
2023-08-06 14:26 ` [Buildroot] [PATCH v2 1/3] package/libsoup3: new package Thomas Petazzoni via buildroot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230802120150.564860-1-thomas@devoogdt.com \
--to=thomas@devoogdt.com \
--cc=aperez@igalia.com \
--cc=buildroot@buildroot.org \
--cc=eric.le.bihan.dev@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.