commit 5a650925899c7aae62e9ff79e405e72a6adc981c Author: Matthias Clasen Date: Mon Jan 8 15:19:34 2018 -0500 2.54.3 NEWS | 33 +++++++++++++++++++++++++++++++++ configure.ac | 4 ++-- meson.build | 2 +- 3 files changed, 36 insertions(+), 3 deletions(-) commit 692c8d179f6a68bfc65c5bb62979a1238c1ea99f Author: Philip Withnall Date: Mon Dec 18 19:05:57 2017 +0000 gopenuriportal: Fix mismatched types in callback The source object for this asynchronous operation is the GXdpOpenURI, not a GDBusConnection. This was causing crashes in method calls on the connection, unsurprisingly. Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=791720 gio/gopenuriportal.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ffb606466403d2f65dd4194c1116efa3413924b6 Author: Simon McVittie Date: Tue Dec 19 10:58:32 2017 +0000 cancellable: Don't assert if finalization races with cancellation Commit 281e3010 narrowed the race between GCancellable::cancelled and GCancellableSource's finalize(), but did not prevent it: there was nothing to stop cancellation from occurring after the refcount drops to 0, but before g_source_unref_internal() bumps it back up to 1 to run finalize(). GCancellable cannot be expected to detect that situation, because the only way it has to detect last-unref is finalize(), but in that situation finalize() hasn't happened yet. Instead of detecting last-unref, relax the precondition a little to make it detect finalization: priv is only poisoned (set to NULL) after the finalize() function has been called, so we can assume that GCancellable has already seen finalize() by then. Signed-off-by: Simon McVittie Bug: https://bugzilla.gnome.org/show_bug.cgi?id=791754 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=884654 (cherry picked from commit 7f3bfcb8912e9b8b2e73520857690356d91869b9) gio/gcancellable.c | 12 ++++++++++++ glib/gmain.c | 10 +++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) commit b6629ef8501ada783e770aa191a5a05dd1c8f259 Author: Simon McVittie Date: Sun Dec 24 15:19:31 2017 +0000 g_source_set_ready_time: Move no-op fast-path under the lock If we don't take the lock, then we don't have the necessary "happens before" relationships to avoid this situation: * source->priv->ready_time was equal to ready_time until recently * another thread has set source->priv->ready_time to a different value * that write hasn't become visible to this thread yet * result: we should reset the ready_time, but we don't Signed-off-by: Simon McVittie Bug: https://bugzilla.gnome.org/show_bug.cgi?id=791754 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=884654 (cherry picked from commit a4686b8ea18c585666edece7b92147a92fcfb841) glib/gmain.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 4976e8109045b8aa72598668b809418d13e1f031 Author: Philip Withnall Date: Wed Jan 3 11:25:52 2018 +0000 Revert "gmain: only signal GWakeup right before or during a blocking poll" This reverts commit 9ba95e25b74adf8d62effeaf6567074ac932811c. It is causing undiagnosed problems with WebKit and other users of GLib. See https://bugzilla.gnome.org/show_bug.cgi?id=761102#c44 and https://bugzilla.gnome.org/show_bug.cgi?id=761102#c46. Reverting it until someone works out what the problem is. https://bugzilla.gnome.org/show_bug.cgi?id=761102 glib/gmain.c | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) commit e9757096c27ca5c5a1fd558b01cd6b17f5f95a06 Author: Emmanuele Bassi Date: Mon Jan 1 21:28:03 2018 +0000 Keep the version in sync between Meson and Autotools As long as we have both build systems, we're going to need to keep this manually synchronised. meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 42ef8e9d32c387b94c275346657840870e80bf37 Author: Christian Hergert Date: Sat Dec 23 18:50:50 2017 -0800 socketlistener: fix event signature in vfunc The GSocketListener::event signal has a type of GSocketListenerEvent, which is an enum. However, the vfunc signature had a pointer, with different sizing requirements. Given the alignment and prompostion of some systems, you may still get the same call-site layout, but that is not guaranteed. This fixes the parameter to have the proper enumeration. https://bugzilla.gnome.org/show_bug.cgi?id=791906 gio/gsocketlistener.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b661ad222c7fd960af7d7d2bb496e34f6275642 Author: Emmanuele Bassi Date: Tue Nov 28 15:05:16 2017 +0000 Do not generate marshaller aliases in source files When generating the body of the marshallers, we need to skip aliases to standard marshallers provided by GLib itself. https://bugzilla.gnome.org/show_bug.cgi?id=790829 Signed-off-by: Emmanuele Bassi gobject/glib-genmarshal.in | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit da4cdc6890152a45ca2a207c6ffa42337371299b Author: Simon McVittie Date: Tue Dec 19 12:53:00 2017 +0000 gmenumodel test: Wait for the expected events to happen Previously, we waited an arbitrary 100ms or 200ms and then asserted that the events had happened, but that might fail if the machine is slow or heavily loaded. We still wait for an arbitrary time for negative tests (asserting that no more signals are received) because we don't have any way to do better here. Signed-off-by: Simon McVittie Bug: https://bugzilla.gnome.org/show_bug.cgi?id=791744 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=884661 gio/tests/gmenumodel.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 003c392a3befe761a79eba169b3d2be65c6404b7 Author: Simon McVittie Date: Tue Dec 19 12:52:00 2017 +0000 gmenumodel test: If something goes wrong, don't wait forever I'm about to add some loops that would otherwise wait indefinitely. Signed-off-by: Simon McVittie Bug: https://bugzilla.gnome.org/show_bug.cgi?id=791744 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=884661 gio/tests/gmenumodel.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 2fc3948ba777d650833fc5ae3a9ee5f0ddb4e173 Author: Patrick Welche Date: Mon Oct 23 13:59:58 2017 +0100 glib-mkenums: best effort attempt on non-utf8 encoded files. Some source files aren't valid utf-8 containing for example iso8859-1 accented characters in author's names. Replace invalid data with a replacement '?' character and print a warning to keep things working. Based on a patch from Christoph Reiter in https://bugzilla.gnome.org/show_bug.cgi?id=785113#c20 gobject/glib-mkenums.in | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) commit b6d4edbae88d430d83fec8cf3924fa39a027e056 Author: Sam Spilsbury Date: Fri Oct 27 21:42:46 2017 +0800 mkenums: Don't raise when unlinking a file that does not exist Fixes https://bugzilla.gnome.org/show_bug.cgi?id=789637 gobject/glib-mkenums.in | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit f5d8956ec3a53b7827aa68a9e8698af6552ac932 Author: Philip Withnall Date: Thu Oct 19 10:16:51 2017 +0100 glib-genmarshal/glib-mkenums: Add comment clarifying licensing Clarify the licensing of the code generated by the two scripts in a comment in the header of each generated file. The intention is that the license of GLib does *not* apply to the generated files; but that they are subject to the linking restrictions of the LGPL, since they link to GLib and GLib is licensed under the LGPL. The generated files themselves are under the license of whatever project they’re generated for. Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=788990 gobject/glib-genmarshal.in | 12 +++++++++++- gobject/glib-mkenums.in | 7 ++++++- 2 files changed, 17 insertions(+), 2 deletions(-) commit 5fe01f182db12adcbcb37b6d4d3620a186f29e40 Author: Emmanuele Bassi Date: Tue Oct 24 13:22:40 2017 +0100 Sort the list of files being processed by glib-mkenums We should ensure a stable order when processing the files, regardless of the order they were submitted on the command line, to increase the chances of a reproducible build. The old Perl-based version of glib-mkenums was fixed in commit 8686e430 to do the same. https://bugzilla.gnome.org/show_bug.cgi?id=691436 gobject/glib-mkenums.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0c7d52ba22ae04945b58f9a70e2de5df3733fc92 Author: Philip Withnall Date: Thu Oct 19 10:15:49 2017 +0100 glib-mkenums: Add default comment template if none is provided The fallback code for providing a default comment template only worked if a template file was provided. It didn’t work if individual templates were provided on the command line (and --comment wasn’t). Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=788990 gobject/glib-mkenums.in | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 1d4afde2f1702fd1c0fa9d9b7c73937ba5ce290d Author: Philip Withnall Date: Tue Oct 17 14:02:27 2017 +0100 glib-mkenums: Fix typo in version string This is glib-mkenums, not glib-genmarshal. Signed-off-by: Philip Withnall gobject/glib-mkenums.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 08a8138934e9885ddfcb25e659666aa042787ccc Author: Philip Withnall Date: Tue Dec 12 11:42:45 2017 +0000 docs: Split GSocketConnectable/GProxyAddressEnumerator documentation Putting them in the same section causes gtk-doc to mix their properties together in a single listing, which is confusing. Since having them in a single section doesn’t really add anything, split them out to one class per section. Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=791334 docs/reference/gio/gio-docs.xml | 2 ++ docs/reference/gio/gio-sections.txt | 30 +++++++++++++++++++++--------- 2 files changed, 23 insertions(+), 9 deletions(-) commit 620c50ba1ef663462e8d250e66f4c5df7bb580f2 Author: Mario Sanchez Prada Date: Thu Dec 7 22:10:58 2017 +0000 gio/tests/appinfo: New test for launch with "appId-less" applications New test to make sure we exercise the code paths in gdesktopappinfo.c that get triggered when g_desktop_app_info_launch_uris_with_spawn() is used (i.e. unknown app ID, no session bus), both for when either a single URI or multiple ones are expected by the application. https://bugzilla.gnome.org/show_bug.cgi?id=791337 gio/tests/appinfo.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 77 insertions(+), 6 deletions(-) commit 75681a8778dd12e7d5e7d422f64958f1ebcc0dc0 Author: Mario Sanchez Prada Date: Thu Dec 7 13:33:47 2017 +0000 gdesktopappinfo: Gracefully handle NULL URIs when passed to expand_macro() If an application calls g_app_info_launch_uris() with a GList that includes NULL values in some of its data members, and GIO ends up internally calling g_desktop_app_info_launch_uris_with_spawn() for whatever reason (e.g. no D-Bus session available), expand_macro() will crash due to the invalid data. As this is considered a programmer error, use g_return_val_if_fail() in those situations to prevent the crash from happening, but printing a warning anyway. https://bugzilla.gnome.org/show_bug.cgi?id=791337 gio/gdesktopappinfo.c | 60 +++++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) commit d42115b0136193251a4e5d059aa4619a3f98a8ea Author: Mario Sanchez Prada Date: Thu Dec 7 13:33:20 2017 +0000 gdesktopappinfo: Pass a copy of the URIs list to expand_application_parameters() This list will be modified in-place when calling expand_macro(), so pass a copy of it instead the original pointer, that is supposed to be an input parameter only for g_desktop_app_info_launch_uris_with_spawn(). https://bugzilla.gnome.org/show_bug.cgi?id=791337 gio/gdesktopappinfo.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 2c066d5d3904532596a7970ced5490819f201af9 Author: Philip Withnall Date: Thu Dec 7 10:21:35 2017 +0000 gio: Fix querying of thumbnail attributes other than thumbnail::path The thumbnail attributes would previously only be set if thumbnail::path was included in the query — so querying for just thumbnail::is-valid would return no results. This fixes the behaviour of gio info -a thumbnail::is-valid ./some-file.png vs gio info -a thumbnail ./some-file.png The first command would previously list nothing. The second would previously list a thumbnail::path and thumbnail::is-valid. Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=791325 gio/glocalfileinfo.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 5f3f830fc6dff2b9d4f949da14b72e9bfc5f32b9 Author: Arnaud Bonatti Date: Tue Dec 5 15:34:56 2017 +0100 gio: Remove stray ‘<’ from gschema.dtd The mathematical operator was making the DTD unusable. Also, min and max can be equal with current parser. https://bugzilla.gnome.org/show_bug.cgi?id=791267 gio/gschema.dtd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a434d020b4751f038ad10c5dbca38f54ea4cb8ad Author: Dominique Leuenberger Date: Wed Dec 6 08:58:41 2017 +0100 gtester-report: fix range usage when running as python3 app When using python3 as interpreter, range only takes integer arguments or it results in errors like: File "/usr/bin/gtester-report", line 78, in html_indent_string for i in range (0, (n + 1) / 2): TypeError: 'float' object cannot be interpreted as an integer https://bugzilla.gnome.org/show_bug.cgi?id=791296 glib/gtester-report | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4bbfb963ab569aabff2225c3aad99e98c46548e8 Author: Arnaud Bonatti Date: Tue Dec 5 05:49:43 2017 +0100 Fix gschema.dtd regarding flags https://bugzilla.gnome.org/show_bug.cgi?id=791235 gio/gschema.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c124fcf11255b89afd623f5d89882f1a655b84b2 Author: Philip Withnall Date: Fri Dec 1 10:02:21 2017 +0000 goutputstream: Fix pre-condition Spotted by Izak van Langevelde. Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=791036 gio/goutputstream.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ebe3fc2af80bc73210d001c92a4db19d6e8d298f Author: Philip Withnall Date: Tue Nov 28 14:25:34 2017 +0000 inotify: Add missing commas These were accidentally omitted from commit 748bb24985419d54812f31f549e042dad8619084. My fault. Signed-off-by: Philip Withnall gio/inotify/inotify-helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9b8f4faa4b64a86be60410a25e8d8a27fc258688 Author: Carlos Garcia Campos Date: Tue Nov 28 12:31:19 2017 +0100 gtester: do not consider skipped tests as failures This is happening since f591366eee341f2c40516821e8a5a0bc7a9bd288, that changed the way tests were skipped to use g_test_skip() instead of just ignoring them. They are now reported to the log with G_TEST_RUN_SKIPPED as result. https://bugzilla.gnome.org/show_bug.cgi?id=790934 glib/gtester.c | 26 +++++++++++++++++++++----- glib/gtestutils.c | 6 ------ glib/gtestutils.h | 7 +++++++ 3 files changed, 28 insertions(+), 11 deletions(-) commit 3246f1df993dc34200f6a263ba3395e58b2866a4 Author: Philip Withnall Date: Fri Nov 24 20:02:43 2017 +0000 inotify: Don’t propagate unrecognised events to GLocalFileMonitor If we can’t convert the inotify event mask into a GFileMonitorEvent enum value, don’t propagate it to GLocalFileMonitor, since it hits an assertion failure in that case. This should no longer be possible since the previous commit to ignore IN_Q_OVERFLOW events, but we might as well change this just in case other bugs crop up in event mask handling. Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=776147 gio/inotify/inotify-helper.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit d97e0770903b1bbda980882d888a1447ed2fb481 Author: Philip Withnall Date: Fri Nov 24 20:00:38 2017 +0000 inotify: Ignore IN_Q_OVERFLOW events There’s not much we can do about them, and if they go unhandled, they can propagate through to g_file_monitor_source_handle_event() and cause assertion failures due to not mapping to a GFileMonitorEvent. Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=776147 gio/inotify/inotify-path.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 38ec9c6da3c0140a10f0b89ddd127a4b4eb5b828 Author: Philip Withnall Date: Fri Nov 10 15:10:26 2017 +0000 kqueue: Fix invalid emission of G_FILE_MONITOR_EVENT_MOVED event That event is deprecated, and the kqueue backend can’t provide enough information to go alongside the event (i.e. the name of the new file). Use G_FILE_MONITOR_EVENT_DELETED instead. Quite disappointed in the kqueue documentation for this: I cannot find a single piece of documentation or example about how NOTE_RENAME is supposed to communicate the new name of the file. If it turns out that this is possible, the code can be amended again in future. At least now it doesn’t abort. Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=776147 gio/kqueue/kqueue-helper.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 20648cdc29ec8e45bd16cdb2f8c726f5bd5604cf Author: Philip Withnall Date: Mon Nov 27 11:29:15 2017 +0000 tests: Work around a gdb bug in assert-msg-test It seems that when GLib is compiled without CFLAGS=-g, gdb can’t work out the size of __glib_assert_msg, so assumes it’s 4 bytes — even on 64-bit systems. This causes it to not read the most significant 4 bytes of the assertion message pointer, and hence it can’t print the stored assertion message. This causes assert-msg-test to fail. The upstream gdb bug is https://sourceware.org/bugzilla/show_bug.cgi?id=22501. Work around that by referencing and dereferencing __glib_assert_msg so that gdb treats it as a pointer of sizeof(char*) rather than of the size it incorrectly calculated from the library’s symbol table (or through some other mystical process). Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=782057 tests/assert-msg-test.gdb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 23373d7f7e0b4041fc4bf18f1e9fffe666eac9c0 Author: Sebastian Dröge Date: Mon Nov 13 11:43:09 2017 +0100 GResource – Add note to documentation that the memory must be at least pointer aligned https://bugzilla.gnome.org/show_bug.cgi?id=790030 gio/gresource.c | 3 +++ 1 file changed, 3 insertions(+) commit 97293636afb1133a19c4011860460b336945e2c3 Author: Tim-Philipp Müller Date: Fri Nov 10 01:01:46 2017 +0100 meson: dist python script used also in autotools-generated tarball https://bugzilla.gnome.org/show_bug.cgi?id=790126 Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 5be7554a6591bfae9d86ee6ad35bc3ef75eda5e5 Author: Christian Kellner Date: Wed Nov 8 21:16:37 2017 +0100 gio-tool: fix inverted logic in monitor tool The tool should refuse to work if none of the locations to watch are set, not if *any* of them are unset. https://bugzilla.gnome.org/show_bug.cgi?id=790093 gio/gio-tool-monitor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fe620e5def7b519acd27796ca90995b5dd14e26c Author: Ondrej Holy Date: Fri Feb 24 15:33:11 2017 +0100 gio-tool: Do not alter uris before use Uris may be altered by the following code, which breaks xdg-open: file = g_file_new_for_commandline_arg (arg[i]) uri = g_file_get_uri (file); Examples of possible uri changes: mailto:email -> mailto:///email magnet:?xt=urn:hash -> magnet:///?xt=urn:hash ssh://user@host -> sftp://user@host This patch causes that uris aren't preprocessed for locations with scheme, however absolute and relative paths are still preprocessed. https://bugzilla.gnome.org/show_bug.cgi?id=779182 gio/gio-tool-open.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit f064be099861ff8d2e9d6a01211c07d45c85a780 Author: Kjartan Maraas Date: Mon Nov 6 13:56:13 2017 +0100 Updated Norwegian bokmål translation. po/nb.po | 1951 ++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 1075 insertions(+), 876 deletions(-) commit d74a69826ffc5591a7eeea61ca25f66f48fcf939 Author: John Ralls Date: Wed Nov 1 18:00:49 2017 -0700 Revert "[MacOS] Fallback to CFStringGetCSTring if CFStringGetCStringPtr fails." This reverts commit d5a9ce69c46a907af8ed3af0020d2a409faa3751. Partial resolution of bug 789894 gio/gosxappinfo.c | 34 ++-------------------------------- gio/gosxcontenttype.c | 34 ++-------------------------------- 2 files changed, 4 insertions(+), 64 deletions(-)