diff --git a/backport-fix-SSL-test.patch b/backport-fix-SSL-test.patch new file mode 100644 index 0000000..f0add66 --- /dev/null +++ b/backport-fix-SSL-test.patch @@ -0,0 +1,85 @@ +From af574cf8bebbcb234b05a2919cad53f8d7c8c645 Mon Sep 17 00:00:00 2001 +From: Carlos Garcia Campos +Date: Wed, 9 Sep 2020 14:44:25 +0200 +Subject: [PATCH] tests: fix SSL test with glib-networking >= 2.65.90 + +To make SSL tests fail with our testing certificate we create and empty +GTlsDatabase passing /dev/null to g_tls_file_database_new(). This no +longer works with newer glib-networking, since an empty file is +considered an error by gnutls and +g_tls_file_database_gnutls_populate_trust_list() now handles gnutls +errors properly. Instead, we can just use the system CA file that won't +contain our testing certificate for sure. + +Fixes #201 +--- + tests/ssl-test.c | 12 +++--------- + 1 file changed, 3 insertions(+), 9 deletions(-) + +diff --git a/tests/ssl-test.c b/tests/ssl-test.c +index 735ba416..2c93ca85 100644 +--- a/tests/ssl-test.c ++++ b/tests/ssl-test.c +@@ -3,7 +3,6 @@ + #include "test-utils.h" + + SoupURI *uri; +-GTlsDatabase *null_tlsdb; + + static void + do_properties_test_for_session (SoupSession *session) +@@ -37,7 +36,7 @@ do_async_properties_tests (void) + + session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL); + g_object_set (G_OBJECT (session), +- SOUP_SESSION_TLS_DATABASE, null_tlsdb, ++ SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE, TRUE, + SOUP_SESSION_SSL_STRICT, FALSE, + NULL); + do_properties_test_for_session (session); +@@ -53,7 +52,7 @@ do_sync_properties_tests (void) + + session = soup_test_session_new (SOUP_TYPE_SESSION_SYNC, NULL); + g_object_set (G_OBJECT (session), +- SOUP_SESSION_TLS_DATABASE, null_tlsdb, ++ SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE, TRUE, + SOUP_SESSION_SSL_STRICT, FALSE, + NULL); + do_properties_test_for_session (session); +@@ -106,7 +105,7 @@ do_strictness_test (gconstpointer data) + } + if (!test->with_ca_list) { + g_object_set (G_OBJECT (session), +- SOUP_SESSION_TLS_DATABASE, null_tlsdb, ++ SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE, TRUE, + NULL); + } + +@@ -433,7 +432,6 @@ main (int argc, char **argv) + { + SoupServer *server = NULL; + int i, ret; +- GError *error = NULL; + + test_init (argc, argv, NULL); + +@@ -441,9 +439,6 @@ main (int argc, char **argv) + server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD); + soup_server_add_handler (server, NULL, server_handler, NULL, NULL); + uri = soup_test_server_get_uri (server, "https", "127.0.0.1"); +- +- null_tlsdb = g_tls_file_database_new ("/dev/null", &error); +- g_assert_no_error (error); + } else + uri = NULL; + +@@ -463,7 +458,6 @@ main (int argc, char **argv) + if (tls_available) { + soup_uri_free (uri); + soup_test_server_quit_unref (server); +- g_object_unref (null_tlsdb); + } + + test_cleanup (); +-- +GitLab diff --git a/backport-skip-tls_interaction-test.patch b/backport-skip-tls_interaction-test.patch new file mode 100644 index 0000000..ee4103c --- /dev/null +++ b/backport-skip-tls_interaction-test.patch @@ -0,0 +1,15 @@ +Index: libsoup-2.72.0/tests/ssl-test.c +=================================================================== +--- libsoup-2.72.0.orig/tests/ssl-test.c ++++ libsoup-2.72.0/tests/ssl-test.c +@@ -370,6 +370,9 @@ do_tls_interaction_test (void) + + SOUP_TEST_SKIP_IF_NO_TLS; + ++ g_test_skip ("Not reliable? See https://gitlab.gnome.org/GNOME/libsoup/issues/120"); ++ return; ++ + service = g_threaded_socket_service_new (1); + address = g_inet_socket_address_new_from_string ("127.0.0.1", 0); + g_socket_listener_add_address (G_SOCKET_LISTENER (service), address, + diff --git a/libsoup.spec b/libsoup.spec index e143a40..b97eb88 100644 --- a/libsoup.spec +++ b/libsoup.spec @@ -1,6 +1,6 @@ Name: libsoup Version: 2.72.0 -Release: 2 +Release: 3 Summary: An HTTP library implementation License: LGPLv2 URL: https://wiki.gnome.org/Projects/libsoup @@ -12,6 +12,11 @@ BuildRequires: pkgconfig(sysprof-capture-4) Requires: glib2 glib-networking +# PATCH-FIX-UPSTREAM tests: fix SSL test with glib-networking >= 2.65.90 +Patch6000: backport-fix-SSL-test.patch +# PATCH-FIX-OPENSUSE disable tls_interaction-test https://gitlab.gnome.org/GNOME/libsoup/issues/120 +Patch6001: backport-skip-tls_interaction-test.patch + %description libsoup is an HTTP client/server library for GNOME. It uses GObjects and the glib main loop, to integrate well with GNOME applications, and also has a synchronous API, @@ -62,6 +67,9 @@ sed -i 's/idm[0-9]\{5,32\}/idm12345678912345/g' %{buildroot}%{_datadir}/gtk-doc/ %{_datadir}/gtk-doc/html/libsoup-2.4/* %changelog +* Mon Apr 19 2021 zhanzhimin - 2.72.0-3 +- DESC:fix the complie failure due to glib-networking upgrade + * Mon Apr 19 2021 zhanzhimin - 2.72.0-2 - Type:bugfix - CVE:NA