Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libsoup for openSUSE:Factory checked in at 2022-01-09 22:50:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libsoup (Old) and /work/SRC/openSUSE:Factory/.libsoup.new.1892 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsoup" Sun Jan 9 22:50:00 2022 rev:132 rq:944776 version:3.0.4 Changes: -------- --- /work/SRC/openSUSE:Factory/libsoup/libsoup.changes 2021-12-02 02:17:11.498295186 +0100 +++ /work/SRC/openSUSE:Factory/.libsoup.new.1892/libsoup.changes 2022-01-09 22:50:10.711284281 +0100 @@ -1,0 +2,10 @@ +Fri Jan 7 14:57:23 UTC 2022 - Dominique Leuenberger <dims...@opensuse.org> + +- Update to version 3.0.4: + + Fix HTTP/2 not properly handling socket timeouts. + + Improvements to test reliablity. + + Fix cross-compiling to Windows. + + Fix tests with development glib-networking. + + Expose soup_uri_copy() to Vala. + +------------------------------------------------------------------- Old: ---- libsoup-3.0.3.tar.xz New: ---- libsoup-3.0.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libsoup.spec ++++++ --- /var/tmp/diff_new_pack.RM3S19/_old 2022-01-09 22:50:11.159284682 +0100 +++ /var/tmp/diff_new_pack.RM3S19/_new 2022-01-09 22:50:11.167284689 +0100 @@ -1,7 +1,7 @@ # # spec file for package libsoup # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define api_version 3.0 Name: libsoup -Version: 3.0.3 +Version: 3.0.4 Release: 0 Summary: HTTP client/server library for GNOME License: LGPL-2.1-or-later ++++++ libsoup-3.0.3.tar.xz -> libsoup-3.0.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/NEWS new/libsoup-3.0.4/NEWS --- old/libsoup-3.0.3/NEWS 2021-11-24 19:15:58.554374000 +0100 +++ new/libsoup-3.0.4/NEWS 2022-01-06 03:48:16.191508000 +0100 @@ -1,3 +1,11 @@ +Changes in libsoup from 3.0.3 to 3.0.4: + +* Fix HTTP/2 not properly handling socket timeouts [Carlos Garcia Campos] +* Improvements to test reliablity [Simon McVittie] +* Fix cross-compiling to Windows [Melroy van den Berg] +* Fix tests with development glib-networking [Patrick Griffis] +* Expose soup_uri_copy() to Vala [Jens Georg] + Changes in libsoup from 3.0.2 to 3.0.3: * Fix various HTTP/2 issues [Carlos Garcia Campos] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/docs/reference/migrating-from-libsoup-2.xml new/libsoup-3.0.4/docs/reference/migrating-from-libsoup-2.xml --- old/libsoup-3.0.3/docs/reference/migrating-from-libsoup-2.xml 2021-11-24 19:15:58.555374000 +0100 +++ new/libsoup-3.0.4/docs/reference/migrating-from-libsoup-2.xml 2022-01-06 03:48:16.192508000 +0100 @@ -177,7 +177,7 @@ <para>If you want to simply request a buffer and nothing more you can use the <link linkend="soup_session_send_and_read"><function>soup_session_send_and_read()</function></link> or <link linkend="soup_session_send_and_read_async"><function>soup_session_send_and_read_async()</function></link> APIs.</para> - <para>This also applies to writing data where you can set a <link linkend="GOutputStream"><type>GOutputStream</type></link> using + <para>This also applies to writing data where you can set a <link linkend="GInputStream"><type>GInputStream</type></link> using <link linkend="soup_message_set_request_body"><function>soup_message_set_request_body()</function></link> or use the convenience API <link linkend="soup_message_set_request_body_from_bytes"><function>soup_message_set_request_body_from_bytes()</function></link> to use a GBytes buffer.</para> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/libsoup/Soup-3.0.metadata new/libsoup-3.0.4/libsoup/Soup-3.0.metadata --- old/libsoup-3.0.3/libsoup/Soup-3.0.metadata 2021-11-24 19:15:58.556374000 +0100 +++ new/libsoup-3.0.4/libsoup/Soup-3.0.metadata 2022-01-06 03:48:16.193508000 +0100 @@ -27,3 +27,5 @@ // Simplify memory management MessageBody.append deprecated_since="2.32" replacement="MessageBody.append_take" + +uri_copy skip=false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/libsoup/http2/soup-client-message-io-http2.c new/libsoup-3.0.4/libsoup/http2/soup-client-message-io-http2.c --- old/libsoup-3.0.3/libsoup/http2/soup-client-message-io-http2.c 2021-11-24 19:15:58.559374000 +0100 +++ new/libsoup-3.0.4/libsoup/http2/soup-client-message-io-http2.c 2022-01-06 03:48:16.200507900 +0100 @@ -477,8 +477,12 @@ return G_SOURCE_CONTINUE; } - if (error) + if (error) { set_io_error (io, error); + g_list_foreach (io->pending_io_messages, + (GFunc)soup_http2_message_data_check_status, + NULL); + } io->is_shutdown = TRUE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/libsoup/soup-version.h.in new/libsoup-3.0.4/libsoup/soup-version.h.in --- old/libsoup-3.0.3/libsoup/soup-version.h.in 2021-11-24 19:15:58.563374000 +0100 +++ new/libsoup-3.0.4/libsoup/soup-version.h.in 2022-01-06 03:48:16.210507900 +0100 @@ -32,7 +32,7 @@ # ifdef G_PLATFORM_WIN32 # ifdef LIBSOUP_COMPILATION # ifdef DLL_EXPORT -# define SOUP_VAR __declspec(dllexport) +# define SOUP_VAR extern __declspec(dllexport) # else /* !DLL_EXPORT */ # define SOUP_VAR extern # endif /* !DLL_EXPORT */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/meson.build new/libsoup-3.0.4/meson.build --- old/libsoup-3.0.3/meson.build 2021-11-24 19:15:58.564374000 +0100 +++ new/libsoup-3.0.4/meson.build 2022-01-06 03:48:16.211507800 +0100 @@ -1,5 +1,5 @@ project('libsoup', 'c', - version: '3.0.3', + version: '3.0.4', meson_version : '>= 0.53', license : 'LGPL2', default_options : [ @@ -19,7 +19,7 @@ # # When bumping the first component version, set the second and third components # to 0. When bumping the second version, set the third one to zero. -libversion = '0.0.3' +libversion = '0.0.4' apiversion = '3.0' soversion = libversion.split('.')[0] libsoup_api_name = '@0@-@1@'.format(meson.project_name(), apiversion) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/po/de.po new/libsoup-3.0.4/po/de.po --- old/libsoup-3.0.3/po/de.po 2021-11-24 19:15:58.565374100 +0100 +++ new/libsoup-3.0.4/po/de.po 2022-01-06 03:48:16.212508000 +0100 @@ -11,195 +11,200 @@ msgstr "" "Project-Id-Version: libsoup master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libsoup/issues\n" -"POT-Creation-Date: 2020-11-19 20:03+0000\n" -"PO-Revision-Date: 2020-12-13 13:11+0100\n" -"Last-Translator: Philipp Kiemle <philipp.kie...@gmail.com>\n" +"POT-Creation-Date: 2021-10-24 16:26+0000\n" +"PO-Revision-Date: 2021-11-19 22:21+0100\n" +"Last-Translator: Christian Kirbach <christian.kirb...@gmail.com>\n" "Language-Team: Deutsch <gnome...@gnome.org>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0\n" -#: libsoup/cache/soup-cache-input-stream.c:79 +#: libsoup/cache/soup-cache-input-stream.c:70 msgid "Network stream unexpectedly closed" msgstr "Netzwerk-Stream wurde unerwartet geschlossen" -#: libsoup/cache/soup-cache-input-stream.c:295 +#: libsoup/cache/soup-cache-input-stream.c:252 msgid "Failed to completely cache the resource" msgstr "Das vollst??ndige Zwischenspeichern der Ressource ist fehlgeschlagen" -#: libsoup/content-decoder/soup-converter-wrapper.c:193 +#: libsoup/content-decoder/soup-converter-wrapper.c:197 #, c-format msgid "Output buffer is too small" msgstr "Der Ausgabe-Zwischenspeicher ist zu klein" -#: libsoup/server/soup-server.c:1180 -msgid "Can???t create a TLS server without a TLS certificate" -msgstr "TLS-Server kann nicht ohne TLS-Zertifikat erstellt werden" - -#: libsoup/server/soup-server.c:1199 -#, c-format -msgid "Could not listen on address %s, port %d: " -msgstr "Auf Adresse %s, Port %d kann nicht geh??rt werden: " - -#: libsoup/server/soup-server-io.c:344 libsoup/server/soup-server-io.c:809 -#: libsoup/soup-message-io.c:342 libsoup/soup-message-io.c:741 -msgid "Operation would block" -msgstr "Der Vorgang w??rde gestoppt werden" - -#: libsoup/server/soup-socket.c:116 -msgid "Could not import existing socket: " -msgstr "Bestehendes Socket konnte nicht importieren werden: " - -#: libsoup/server/soup-socket.c:125 -msgid "Can???t import unconnected socket" -msgstr "Unverbundenes Socket kann nicht importiert werden" - -#: libsoup/soup-body-input-stream.c:148 libsoup/soup-body-input-stream.c:180 -#: libsoup/soup-body-input-stream.c:213 libsoup/soup-message-io-data.c:76 +#: libsoup/http1/soup-body-input-stream.c:155 +#: libsoup/http1/soup-body-input-stream.c:187 +#: libsoup/http1/soup-body-input-stream.c:220 +#: libsoup/http1/soup-message-io-data.c:77 msgid "Connection terminated unexpectedly" msgstr "Die Verbindung wurde unerwartet beendet" -#: libsoup/soup-body-input-stream.c:474 +#: libsoup/http1/soup-body-input-stream.c:471 msgid "Invalid seek request" msgstr "Ung??ltige Suchanfrage" -#: libsoup/soup-body-input-stream.c:502 +#: libsoup/http1/soup-body-input-stream.c:499 msgid "Cannot truncate SoupBodyInputStream" msgstr "SoupBodyInputStream konnte nicht abgeschnitten werden" -#: libsoup/soup-message-io.c:482 +#: libsoup/http1/soup-client-message-io-http1.c:312 +#: libsoup/http1/soup-client-message-io-http1.c:756 +#: libsoup/http2/soup-body-input-stream-http2.c:221 +#: libsoup/server/soup-server-io.c:363 libsoup/server/soup-server-io.c:828 +msgid "Operation would block" +msgstr "Der Vorgang w??rde gestoppt werden" + +#: libsoup/http1/soup-client-message-io-http1.c:456 msgid "Could not parse HTTP response" msgstr "HTTP-Antwort konnte nicht verarbeitet werden" -#: libsoup/soup-message-io.c:505 +#: libsoup/http1/soup-client-message-io-http1.c:479 msgid "Unrecognized HTTP response encoding" msgstr "Unbekannte Kodierung der HTTP-Antwort" -#: libsoup/soup-message-io.c:702 libsoup/soup-message-io.c:726 +#: libsoup/http1/soup-client-message-io-http1.c:715 +#: libsoup/http1/soup-client-message-io-http1.c:741 +#: libsoup/http2/soup-client-message-io-http2.c:1456 +#: libsoup/http2/soup-client-message-io-http2.c:1480 msgid "Operation was cancelled" msgstr "Der Vorgang wurde abgebrochen" -#: libsoup/soup-message-io-data.c:100 +#: libsoup/http1/soup-message-io-data.c:105 msgid "Header too big" msgstr "Kopf ist zu gro??" -#: libsoup/soup-session.c:803 +#: libsoup/server/soup-server.c:1201 +msgid "Can???t create a TLS server without a TLS certificate" +msgstr "TLS-Server kann nicht ohne TLS-Zertifikat erstellt werden" + +#: libsoup/server/soup-server.c:1223 +#, c-format +msgid "Could not listen on address %s, port %d: " +msgstr "Auf Adresse %s, Port %d kann nicht geh??rt werden: " + +#: libsoup/server/soup-socket.c:121 +msgid "Could not import existing socket: " +msgstr "Bestehendes Socket konnte nicht importieren werden: " + +#: libsoup/server/soup-socket.c:130 +msgid "Can???t import unconnected socket" +msgstr "Unverbundenes Socket kann nicht importiert werden" + +#: libsoup/soup-session.c:1166 msgid "Location header is missing or empty in response headers" -msgstr "" +msgstr "Der Ortsangabe-Kopf fehlt oder ist im Antwort-Kopf leer" -#: libsoup/soup-session.c:819 +#: libsoup/soup-session.c:1180 #, c-format msgid "Invalid URI ???%s??? in Location response header" -msgstr "" +msgstr "Ung??ltige Adresse ???%s??? im Ortsangabe-Antwort-Kopf" -#: libsoup/soup-session.c:873 +#: libsoup/soup-session.c:1200 msgid "Too many redirects" -msgstr "" +msgstr "Zu viele Umleitungen" -#: libsoup/soup-session.c:878 +#: libsoup/soup-session.c:1205 msgid "Message was restarted too many times" msgstr "Nachricht wurde zu oft neu gestartet" -#: libsoup/soup-session.c:3292 libsoup/soup-session.c:3427 -#, c-format -msgid "Could not parse URI ???%s???: %s" -msgstr "Die Adresse ??%s?? konnte nicht verarbeitet werden: %s" - -#: libsoup/soup-session.c:3307 libsoup/soup-session.c:3442 -#, c-format -msgid "Unsupported URI scheme ???%s???" -msgstr "Nicht unterst??tztes Adressenschema ??%s??" - -#: libsoup/soup-session.c:3318 libsoup/soup-session.c:3453 -#, c-format -msgid "Invalid ???%s??? URI: %s" -msgstr "Ung??ltige ??%s??-Adresse: %s" +#: libsoup/soup-session.c:3317 libsoup/soup-session.c:3466 +msgid "Message is already in session queue" +msgstr "Diese Nachricht ist bereits in der Warteschlange der Sitzung" -#: libsoup/soup-session.c:3762 +#: libsoup/soup-session.c:3827 msgid "The server did not accept the WebSocket handshake." msgstr "Der Server hat den WebSocket-Handshake nicht angenommen." -#: libsoup/soup-tld.c:146 +#: libsoup/soup-tld.c:142 msgid "No public-suffix list available." msgstr "Keine Public-Suffix-Liste verf??gbar." -#: libsoup/soup-tld.c:156 libsoup/soup-tld.c:172 +#: libsoup/soup-tld.c:152 libsoup/soup-tld.c:168 msgid "Invalid hostname" msgstr "Ung??ltiger Rechnername" -#: libsoup/soup-tld.c:163 +#: libsoup/soup-tld.c:159 msgid "Hostname is an IP address" msgstr "Der Rechnername ist eine IP-Adresse" -#: libsoup/soup-tld.c:184 +#: libsoup/soup-tld.c:180 msgid "Hostname has no base domain" msgstr "Der Rechnername hat keine Hauptdom??ne" -#: libsoup/soup-tld.c:192 +#: libsoup/soup-tld.c:188 msgid "Not enough domains" msgstr "Nicht genug Dom??nen" -#: libsoup/websocket/soup-websocket.c:405 -#: libsoup/websocket/soup-websocket.c:449 -#: libsoup/websocket/soup-websocket.c:465 +#: libsoup/websocket/soup-websocket.c:399 +#: libsoup/websocket/soup-websocket.c:443 +#: libsoup/websocket/soup-websocket.c:459 msgid "Server requested unsupported extension" msgstr "Server forderte nicht unterst??tzte Erweiterung an" -#: libsoup/websocket/soup-websocket.c:428 -#: libsoup/websocket/soup-websocket.c:620 +#: libsoup/websocket/soup-websocket.c:422 +#: libsoup/websocket/soup-websocket.c:614 #, c-format msgid "Incorrect WebSocket ???%s??? header" msgstr "Falscher WebSocket ??%s??-Kopf" -#: libsoup/websocket/soup-websocket.c:429 -#: libsoup/websocket/soup-websocket.c:884 +#: libsoup/websocket/soup-websocket.c:423 +#: libsoup/websocket/soup-websocket.c:878 #, c-format msgid "Server returned incorrect ???%s??? key" msgstr "Server gab falschen ??%s??-Schl??ssel zur??ck" -#: libsoup/websocket/soup-websocket.c:492 +#: libsoup/websocket/soup-websocket.c:486 #, c-format msgid "Duplicated parameter in ???%s??? WebSocket extension header" msgstr "Duplizierter Parameter im ??%s?? Websocket-Erweiterungskopf" -#: libsoup/websocket/soup-websocket.c:493 +#: libsoup/websocket/soup-websocket.c:487 #, c-format msgid "Server returned a duplicated parameter in ???%s??? WebSocket extension header" msgstr "Server gab duplizierten Parameter im ??%s?? Websocket-Erweiterungskopf zur??ck" -#: libsoup/websocket/soup-websocket.c:583 -#: libsoup/websocket/soup-websocket.c:593 +#: libsoup/websocket/soup-websocket.c:577 +#: libsoup/websocket/soup-websocket.c:587 msgid "WebSocket handshake expected" msgstr "WebSocket-Handshake erwartet" -#: libsoup/websocket/soup-websocket.c:601 +#: libsoup/websocket/soup-websocket.c:595 msgid "Unsupported WebSocket version" msgstr "Nicht unterst??tze WebSocket-Version" -#: libsoup/websocket/soup-websocket.c:610 +#: libsoup/websocket/soup-websocket.c:604 msgid "Invalid WebSocket key" msgstr "Ung??ltiger WebSocket-Schl??ssel" -#: libsoup/websocket/soup-websocket.c:629 +#: libsoup/websocket/soup-websocket.c:623 msgid "Unsupported WebSocket subprotocol" msgstr "Nicht unterst??tztes WebSocket-Subprotokoll" -#: libsoup/websocket/soup-websocket.c:835 +#: libsoup/websocket/soup-websocket.c:829 msgid "Server rejected WebSocket handshake" msgstr "Server lehnte WebSocket-Handshake ab" -#: libsoup/websocket/soup-websocket.c:843 -#: libsoup/websocket/soup-websocket.c:852 +#: libsoup/websocket/soup-websocket.c:837 +#: libsoup/websocket/soup-websocket.c:846 msgid "Server ignored WebSocket handshake" msgstr "Server ignorierte WebSocket-Handshake" -#: libsoup/websocket/soup-websocket.c:864 +#: libsoup/websocket/soup-websocket.c:858 msgid "Server requested unsupported protocol" msgstr "Server forderte nicht unterst??tztes Protokoll an" +#~ msgid "Could not parse URI ???%s???: %s" +#~ msgstr "Die Adresse ??%s?? konnte nicht verarbeitet werden: %s" + +#~ msgid "Unsupported URI scheme ???%s???" +#~ msgstr "Nicht unterst??tztes Adressenschema ??%s??" + +#~ msgid "Invalid ???%s??? URI: %s" +#~ msgstr "Ung??ltige ??%s??-Adresse: %s" + #~ msgid "Name" #~ msgstr "Name" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/tests/http2-server.py new/libsoup-3.0.4/tests/http2-server.py --- old/libsoup-3.0.3/tests/http2-server.py 2021-11-24 19:15:58.569374000 +0100 +++ new/libsoup-3.0.4/tests/http2-server.py 2022-01-06 03:48:16.222507700 +0100 @@ -44,6 +44,12 @@ await asyncio.sleep(1) return 'Hello world' +@app.route('/timeout') +async def timeout(): + set_timeout() + await asyncio.sleep(4) + return 'Hello world' + @app.route('/no-content') async def no_content(): set_timeout() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/tests/http2-test.c new/libsoup-3.0.4/tests/http2-test.c --- old/libsoup-3.0.3/tests/http2-test.c 2021-11-24 19:15:58.569374000 +0100 +++ new/libsoup-3.0.4/tests/http2-test.c 2022-01-06 03:48:16.222507700 +0100 @@ -994,6 +994,25 @@ do_one_sniffer_test (test->session, "https://127.0.0.1:5000/no-content", 0, FALSE, NULL); } +static void +do_timeout_test (Test *test, gconstpointer data) +{ + SoupMessage *msg; + GBytes *response; + GError *error = NULL; + + soup_session_set_timeout (test->session, 2); + + msg = soup_message_new (SOUP_METHOD_GET, "https://127.0.0.1:5000/timeout"); + response = soup_test_session_async_send (test->session, msg, NULL, &error); + g_assert_null (response); + g_assert_error (error, G_IO_ERROR, G_IO_ERROR_TIMED_OUT); + g_object_unref (msg); + + while (g_main_context_pending (NULL)) + g_main_context_iteration (NULL, FALSE); +} + int main (int argc, char **argv) { @@ -1102,6 +1121,10 @@ setup_session, do_sniffer_sync_test, teardown_session); + g_test_add ("/http2/timeout", Test, NULL, + setup_session, + do_timeout_test, + teardown_session); ret = g_test_run (); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/tests/ssl-test.c new/libsoup-3.0.4/tests/ssl-test.c --- old/libsoup-3.0.3/tests/ssl-test.c 2021-11-24 19:15:58.574374000 +0100 +++ new/libsoup-3.0.4/tests/ssl-test.c 2022-01-06 03:48:16.230507900 +0100 @@ -73,8 +73,11 @@ flags = soup_message_get_tls_peer_certificate_errors (msg); if (test->expected_status == SOUP_STATUS_OK) { + const char *ciphersuite_name = soup_message_get_tls_ciphersuite_name (msg); + /* Format changed in https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/194 */ + g_assert_true (!g_strcmp0 (ciphersuite_name, "TLS_AES-256-GCM_SHA384") + || !g_strcmp0 (ciphersuite_name, "TLS_AES_256_GCM_SHA384")); g_assert_cmpuint (soup_message_get_tls_protocol_version (msg), ==, G_TLS_PROTOCOL_VERSION_TLS_1_3); - g_assert_cmpstr (soup_message_get_tls_ciphersuite_name (msg), ==, "TLS_AES-256-GCM_SHA384"); } else { g_assert_cmpuint (soup_message_get_tls_protocol_version (msg), ==, G_TLS_PROTOCOL_VERSION_UNKNOWN); g_assert_null (soup_message_get_tls_ciphersuite_name (msg)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsoup-3.0.3/tests/test-utils.c new/libsoup-3.0.4/tests/test-utils.c --- old/libsoup-3.0.3/tests/test-utils.c 2021-11-24 19:15:58.575374100 +0100 +++ new/libsoup-3.0.4/tests/test-utils.c 2022-01-06 03:48:16.230507900 +0100 @@ -14,6 +14,7 @@ #ifdef HAVE_APACHE static gboolean apache_running; +static char *server_root = NULL; #endif static SoupLogger *logger; @@ -164,14 +165,19 @@ apache_cmd (const char *cmd) { GPtrArray *argv; - char *server_root, *cwd, *pid_file; + char *cwd, *pid_file; #ifdef HAVE_APACHE_2_4 char *default_runtime_dir; #endif int status; gboolean ok; + GString *str; + guint i; - server_root = soup_test_build_filename_abs (G_TEST_BUILT, "", NULL); + if (server_root == NULL) { + g_test_message ("Server root not initialized"); + return FALSE; + } cwd = g_get_current_dir (); #ifdef HAVE_APACHE_2_4 @@ -197,12 +203,23 @@ g_ptr_array_add (argv, (char *)cmd); g_ptr_array_add (argv, NULL); + str = g_string_new ("Apache command:"); + + for (i = 0; i < argv->len - 1; i++) { + char *escaped = g_shell_quote (argv->pdata[i]); + g_string_append_c (str, ' '); + g_string_append (str, escaped); + g_free (escaped); + } + + g_test_message ("%s", str->str); + g_string_free (str, TRUE); + ok = g_spawn_sync (cwd, (char **)argv->pdata, NULL, 0, NULL, NULL, NULL, NULL, &status, NULL); if (ok) ok = (status == 0); - g_free (server_root); g_free (cwd); g_free (pid_file); #ifdef HAVE_APACHE_2_4 @@ -210,6 +227,7 @@ #endif g_ptr_array_free (argv, TRUE); + g_test_message (ok ? "-> success" : "-> failed"); return ok; } @@ -221,6 +239,8 @@ if (g_getenv ("SOUP_TESTS_ALREADY_RUNNING_APACHE")) return; + server_root = soup_test_build_filename_abs (G_TEST_BUILT, "", NULL); + if (!apache_cmd ("start")) { g_printerr ("Could not start apache\n"); exit (1); @@ -248,6 +268,8 @@ while (kill (pid, 0) == 0) g_usleep (100); } + + g_clear_pointer (&server_root, g_free); } #endif /* HAVE_APACHE */