libsoup.org (#4058)

* new file:   projects/gnome.org/libsoup/package.yml
	new file:   projects/gnome.org/libsoup/test.c

* maybe gcc

* test flags

* modified:   projects/gnome.org/libsoup/test.c

* let's print error msg

* openssl

* SOUP_SSL_STRICT

* .

* +curl.se/ca-certs

* deps

* .

* modified:   projects/gnome.org/libsoup/package.yml

* rename & test

---------

Co-authored-by: Jacob Heider <jacob@pkgx.dev>
This commit is contained in:
Andrew 2023-11-17 19:07:39 +02:00 committed by GitHub
parent 0d86d4eac8
commit ba54f0718a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 74 additions and 0 deletions

View file

@ -0,0 +1,49 @@
distributable:
url: https://download.gnome.org/sources/libsoup/{{version.marketing}}/libsoup-{{version}}.tar.xz
strip-components: 1
versions:
url: https://download.gnome.org/sources/libsoup/cache.json
match: /libsoup-\d+\.\d+\.\d+\.tar\.xz/
strip:
- /^libsoup-/
- /\.tar\.xz/
dependencies:
gnome.org/glib-networking: '*'
gnutls.org: '*'
rockdaboot.github.io/libpsl: '*'
kerberos.org: '*'
gnome.org/libxml2: '*'
sqlite.org: '*'
nghttp2.org: '*'
linux:
gnu.org/gettext: '*'
gnome.org/glib: '*'
github.com/google/brotli: '*'
build:
dependencies:
gnome.org/gobject-introspection: '*'
mesonbuild.com: '*'
ninja-build.org: '*'
freedesktop.org/pkg-config: '*'
python.org: ~3.11
gnome.org/vala: '*'
script:
- meson setup build $MESON_ARGS
- meson compile -C build --verbose
- meson install -C build
- run: |
d=$(ls)
ln -s $d/libsoup libsoup
working-directory: "{{prefix}}/include"
env:
MESON_ARGS:
- --prefix="{{prefix}}"
- --libdir="{{prefix}}/lib"
- --buildtype=release
- --wrap-mode=nofallback
test:
dependencies:
freedesktop.org/pkg-config: '*'
script:
- cc test.c $(pkg-config --libs --cflags libsoup-3.0) -o test
- ./test

View file

@ -0,0 +1,25 @@
#include <libsoup/soup.h>
static gboolean
accept_certificate_callback(SoupMessage *msg, GTlsCertificate *certificate,
GTlsCertificateFlags tls_errors, gpointer user_data)
{
// Here you can inspect @certificate or compare it against a trusted one
// and you can see what is considered invalid by @tls_errors.
// Returning TRUE trusts it anyway.
return TRUE;
}
int main(int argc, char *argv[])
{
SoupMessage *msg = soup_message_new(SOUP_METHOD_GET, "https://tea.xyz/");
SoupSession *session = soup_session_new();
g_signal_connect(msg, "accept-certificate", G_CALLBACK(accept_certificate_callback), NULL);
GInputStream *in_stream = soup_session_send(session, msg, NULL, NULL);
if (in_stream)
{
g_object_unref(in_stream);
}
return 0;
}