commit 90bb8778f2eabf00bee5bff1259c48f1e7b791b8 Author: Matthias Clasen Date: Thu Jun 22 09:15:23 2017 -0400 2.52.3 NEWS | 11 +++++++++++ configure.ac | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) commit 373fda6809e50703fcd85c8ece26bd710d89bfdf Author: Matthias Clasen Date: Fri Jun 2 11:42:42 2017 -0700 appinfo: Fix the build on windows The previous commit forgot to protect some unix-only calls by an ifdef. Pointed out by John Emmas. gio/gappinfo.c | 4 ++++ 1 file changed, 4 insertions(+) commit 098f9c6088ff7d9aad5199294f0b2fc70604eec0 Author: Matthias Clasen Date: Wed May 31 12:10:25 2017 -0400 OpenFile support: Handle open failing This can happen, report it as an error when it does. gio/gopenuriportal.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 7cb7967cf563a57e7d2012088403ac29fad436eb Author: Matthias Clasen Date: Sat May 20 16:21:14 2017 -0400 Use OpenFile for local files The OpenURI portal has a separate method to handle local files now. Use it. At the same time, split out the openuri helpers into separate files, and generate code for the OpenURI portal. https://bugzilla.gnome.org/show_bug.cgi?id=783193 gio/Makefile.am | 4 + gio/gappinfo.c | 269 +++-------------------------- gio/gopenuriportal.c | 302 +++++++++++++++++++++++++++++++++ gio/gopenuriportal.h | 41 +++++ gio/org.freedesktop.portal.OpenURI.xml | 105 ++++++++++++ 5 files changed, 476 insertions(+), 245 deletions(-) commit 2026cb7498cb1687e2458a622d17169240914247 Author: Florian Müllner Date: Mon May 29 00:38:19 2017 +0200 gdbus-codegen: Apply --output-directory to generated docs as well In addition to code, gdbus-codegen can also generate docbook documentation for DBus interfaces. There's no good reason why the newly added --output-directory option shouldn't apply to those generated files as well. https://bugzilla.gnome.org/show_bug.cgi?id=783201 gio/gdbus-2.0/codegen/codegen_docbook.py | 6 ++++-- gio/gdbus-2.0/codegen/codegen_main.py | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) commit 169c7f1d57591e1d3de6909920025ea16caa1da6 Author: Matthias Clasen Date: Sat May 6 14:22:38 2017 -0400 Make dbus activation sandbox-aware When we call org.freedesktop.Application.Open to activate an application and pass file uris, the application may not be able to see the files due to a flatpak sandbox. Flatpak puts the flatpak app-id in the X-Flatpak key in desktop files that it exports, so we can easily recognize applications that may be affected by this. In this case, call the document portal to export the files and pass the resulting uri's instead of the original ones. https://bugzilla.gnome.org/show_bug.cgi?id=783130 gio/gdesktopappinfo.c | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) commit 05cc4048bb20ca4bae429a692e8d4204ccd8a854 Author: Matthias Clasen Date: Tue May 23 22:08:01 2017 -0400 Add a wrapper for the AddFull document portal api This is a wrapper which takes a list of uris and rewrites them by calling AddFull with the file:// uris. https://bugzilla.gnome.org/show_bug.cgi?id=783130 gio/gdocumentportal.c | 126 +++++++++++++++++++++++++++++++++++++++++++++++++- gio/gdocumentportal.h | 4 ++ 2 files changed, 129 insertions(+), 1 deletion(-) commit ba984abddc4402f5b55b5a4303f615478ca9cfd8 Author: Matthias Clasen Date: Tue May 23 21:54:39 2017 -0400 Update flatpak document portal interface This api has been changed upstream, recently. A new AddFull method has been added in this commit: https://github.com/flatpak/flatpak/commit/6ce8521b640c7a69f97a2fd7c96de94eb9a83125 https://bugzilla.gnome.org/show_bug.cgi?id=783130 gio/Makefile.am | 1 + gio/org.freedesktop.portal.Documents.xml | 161 ++++++++++++++++++++++++++++++- 2 files changed, 160 insertions(+), 2 deletions(-) commit 87c928f39cd68f42907911347f48b0980320f473 Author: Chun-wei Fan Date: Wed Jun 14 11:48:27 2017 +0800 Visual Studio builds: Visual Studio 2013 and later has va_copy() Update config.h.win32.in and glib/glibconfig.h.win32.in to indicate so. config.h.win32.in | 4 ++-- glib/glibconfig.h.win32.in | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 3245eba169c439180cc13ed3c76f47298d723031 Author: Руслан Ижбулатов Date: Fri Apr 14 07:29:05 2017 +0000 GetTickCount64 is a __stdcall function https://bugzilla.gnome.org/show_bug.cgi?id=781301 glib/gmain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e517df7d42fc06a1997f66a5271d35336759b4f Author: John Lindgren Date: Fri Apr 14 02:09:35 2017 -0400 NtNotifyChangeMultipleKeys is a __stdcall function. https://bugzilla.gnome.org/show_bug.cgi?id=781301 gio/gwin32registrykey.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 958902ed9ae2f3fee7cdc038f9a25ed02ee952ec Author: Chun-wei Fan Date: Wed May 24 15:43:59 2017 +0800 Visual Studio builds: Redo utility script generation Use the new gen_util_scripts.py script to generate the glib-mkenums and gdbus-codegen scripts with the proper info in them so that they can be used properly by other build systems such as Meson, during "install". win32/vs10/glib-gen-srcs.props | 4 -- win32/vs10/glib-install.propsin | 14 ++++++- win32/vs10/glib-install.vcxproj | 22 +++++++++-- win32/vs10/glib-install.vcxproj.filters | 4 +- win32/vs10/gobject.vcxproj.filtersin | 7 +--- win32/vs10/gobject.vcxprojin | 18 ++------- win32/vs9/glib-gen-srcs.vsprops | 4 -- win32/vs9/glib-install.vcproj | 68 +++++++++++++++++++++++++++++++++ win32/vs9/glib-install.vspropsin | 10 ++++- win32/vs9/gobject.vcprojin | 42 ++------------------ 10 files changed, 121 insertions(+), 72 deletions(-) commit b095df45658d17af38d7b75c10d68270585e4584 Author: Chun-wei Fan Date: Wed May 24 12:55:37 2017 +0800 Visual Studio builds: Add script to generate utility scripts This will allow the utility scripts glib-mkenums and gdbus-codegen be generated with the proper info in them, as build systems such as Meson might look for shebang lines to determine the commands that need to be called to invoke the scripts (which is necessary for calling these scripts on standard Windows cmd.exe) win32/Makefile.am | 3 ++- win32/gen_util_scripts.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) commit bae70d74825a61e7df58c10ea540f4cb1c1cf6aa Author: Ignacio Casal Quinteiro Date: Thu May 11 17:51:56 2017 +0200 Revert "GSocket: Fix race conditions on Win32 if multiple threads are waiting on conditions for the same socket" This reverts commit 799f8dcd46fb40ea206d9f1b5468db62cc00a72e. This patch seems to break applications that use GTask specific operations with GSocket. We will need to investigate a bit more on this issue but for now we revert it and leave it for the next major release. gio/gsocket.c | 94 +++++++++++++++++------------------------------------------ 1 file changed, 26 insertions(+), 68 deletions(-) commit c589084003aadb2cd17d45160a1e46a40f4a3716 Author: Philip Withnall Date: Mon Apr 24 21:38:59 2017 +0100 gmain: Allow GSource methods to be called from a finalize() callback Temporarily increase the ref count of a GSource to 1 while calling its finalize() callback, so that the finalize() implementation can call GSource methods (like g_source_set_ready_time()) without causing critical warnings. It’s safe to call those methods at this point, as the source has been destroyed, but nothing has been freed. This is an indirect way of fixing a race between GCancellable and GCancellableSource, whereby the GCancellable::cancelled callback for the GCancellableSource is not disconnected until the GCancellableSource’s finalize() function is called. Previously, this meant there was a window in which the GCancellableSource’s ref count was 0, but the ::cancelled callback was still connected, and could legitimately be called as a result of another thread calling g_cancellable_cancel() on the GCancellable. The callback calls g_source_set_ready_time() on the GSource, and there’s no thread-safe way of checking whether the GSource has been destroyed. Instead, we have to change GSource so its ref count is only decremented to 0 inside the locked section in g_source_unref_internal() *after* the finalize() function has been called, and hence after the GCancellable::cancelled callback has been disconnected. The use of g_cancellable_disconnect() ensures that the callback disconnection is thread safe. Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=781601 glib/gmain.c | 4 ++++ glib/gmain.h | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) commit 5d74233476d61771b4d67d50bec5420f551ef922 Author: Paolo Bonzini Date: Tue Apr 4 09:56:47 2017 +0200 gmain: only signal GWakeup right before or during a blocking poll Since commit e4ee307 ("Do not wake up main loop if change is from same thread", bug 761102), GMainContext uses context->owner to decide if the event loop is being run in the current thread. However, what really matters is the phase in the prepare/query/poll/check/dispatch sequence. Wakeups are only needed between the end of prepare and the end of poll, and then only if prepare found that no sources were ready. There is no need to take threads into account, because prepare, check and all callers of conditional_wakeup all look at the new need_wakeup flag inside LOCK_CONTEXT/UNLOCK_CONTEXT. With this change, g_main_context_is_owner and g_main_context_wait are the only functions for which acquire/release matters, just like before commit e4ee307. Signed-off-by: Paolo Bonzini glib/gmain.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) commit 21be268a308fef2535612ac8c11a956f2c055240 Author: Chun-wei Fan Date: Tue May 9 18:17:29 2017 -0700 win32/replace.py: Fix replacing items in files with UTF-8 content Some files that this script will process might have UTF-8 items in there, which can cause problems on Python 3.x as it is more strict and careful on unicode issues. Fix this by: -Doing what we did before on Python 2.x -Open the file with encoding='utf-8' on Python 3.x win32/replace.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit b8bd46bc862598db41013f4b56b0d74126e25c52 Author: Ondrej Holy Date: Fri May 5 12:42:39 2017 +0200 gunixmounts: Prevent unwanted automount requests mnt_table_is_fs_mounted causes unwanted automount requests due to canonicalization of source and target. It might be replaced by mnt_table_find_source as per the documentation in order to prevent the automounts, but it is redundant. All mtab entries should be already mounted and thus mnt_table_is_fs_mounted result is always true (it basically checks that the fs from mtab is in mtab). Let's remove the check at all. https://bugzilla.gnome.org/show_bug.cgi?id=781867 gio/gunixmounts.c | 3 --- 1 file changed, 3 deletions(-)