Overview of changes in GLib 2.75.1, 2022-12-21 ============================================== * Add new `GFileInfo` properties for large thumbnails (work by Matthias Clasen) (#621) * Fix missing input validation in `GDBusMenuModel` (work by Lars Uebernickel) (#861) * Change default `g_desktop_app_info_search()` algorithm to include substring matches (work by Alynx Zhou) (#1152) * Various GVariant security fixes when handling untrusted data (work by William Manley, Philip Withnall, Simon McVittie) (#2121, #2540, #2794, #2797, #2839, #2840, #2841) * Add support for XDG Activation protocol in `GAppLaunchContext` (work by Ilya Fedin) (#2709) * Return `application/x-zerosize` rather than `text/plain` as content type for empty files (work by Philip Withnall) (#2777) * Deprecate `-Druntime_libdir` configure option because it was unused (work by Philip Withnall) (#2786) * Check for snap plugs when accessing portals (work by Robert Ancell) (!3020) * Add `GArray` and `GPtrArray` constructors to take or copy C arrays (work by Marco Trevisan) (!3128) * Add `GHashTable` methods to get and steal hash table keys and values as `GPtrArray`s (work by Marco Trevisan) (!3130) * Change the default D-Bus system bus socket address from `/var/run/dbus/system_bus_socket` to `/run/dbus/system_bus_socket`, in line with changes in dbus.git. This can now be overridden by passing `-Druntime_dir=/some/path` at configure time — the default is `/run`, which should work for all users except distributions where `/run` is not equivalent to `/var/run`. OS distributors should check that this configured path matches the runtime directory configured for their D-Bus daemon. (work by Roman Stratiienko, Philip Withnall) (!3095, !3101) * Bugs fixed: - #621 file-info: catch thumbnail files in large directory as well (Matthias Clasen) - #861 insufficient input validation in GDBusMenuModel (Lars Uebernickel) - #1152 Application search algorithm (g_desktop_app_info_search()) should use fuzzy matching (Alynx Zhou) - #1904 gaction: remote triggered crashes - #2121 GVariant deserialisation does not match spec for non-normal data (Philip Withnall, William Manley) - #2540 Parsing serialized GVariants can blow up run-time and memory (Philip Withnall) - #2709 Add support for XDG_ACTIVATION_TOKEN/XDG Activation protocol in GAppLaunchContext (Ilya Fedin) - #2777 Return application/x-zerosize for empty file content types rather than text/plain (Philip Withnall) - #2786 runtime_libdir and iconv options documented and exposed but not effective? (Philip Withnall) - #2793 Introspection annotations for g_clear_pointer() and g_clear_fd() might not be correct (Philip Withnall) - #2794 GVariant offset table entry size is not checked in is_normal() (Philip Withnall) - #2797 g_variant_byteswap() can take a long time with some non-normal inputs (Philip Withnall) - #2809 g_str_equal switched to stricter API (typing) (Philip Withnall) - #2811 Internal inotify symbols exposed in 2.75.0 ABI (Simon McVittie) - #2812 CI failing on macOS: -Werror,-Wmissing-field-initializers (Simon McVittie) - #2820 g_str_equal: New macro version breaks compilation in C++ projects (Philip Withnall) - #2821 GObject webpage documentation is mis-formatted during generation (Emmanuele Bassi) - #2835 gio/gapplication test fails with test_dbus_activate: assertion failed (n_activations == 2): (1 == 2) (Philip Withnall) - #2836 Conditional jump on uninitialised value in spawn-singlethread (Philip Withnall) - #2837 Assertion failure in contexts test (Philip Withnall) - #2839 [bisected] GVariant test regression on big-endian architectures (Simon McVittie) - #2840 fuzz_variant_binary_byteswap: Heap-buffer-overflow in g_variant_serialised_get_child (Philip Withnall) - #2841 fuzz_variant_text: Timeout in fuzz_variant_text (Philip Withnall) - #2845 MSVC: Build failure with g_array_append_val() in C++ mode - #2846 Follow-up from "garray: Add support adding literal values" — doesn’t work with clang (Emmanuele Bassi) - #2852 alpine/musl: catching signals from a subprocess triggers GLib:ERROR:../glib/gmain.c:5569:siginfo_t_to_wait_status: code should not be reached (Philip Withnall) - !385 gtask: Warn if a GTask is finalised without returning - !2479 glib/spawn: check user source_fds doesn't contain private fds - !2728 gtype: Speed up type checking for final types - !2764 GCancellable: Ensure it is always cancelled on connect callback - !2886 gtestutils: Use $G_TEST_TMPDIR as temporary directory when defined - !2895 Expose C and C++ standard versions and add macros to check them - !2917 meson: Use gnome.mkenum_simple() - !2992 glib/tests: Add test to check that we abort on low-memory - !3020 portal: Check for snap plugs before accessing portals - !3042 gdesktopappinfo: Fail early if trying to launch an invalid executable and always use desktop Path and context $PATH - !3064 ci: Exclude copylibs and fuzz tests from code coverage - !3065 tests: Add some trivial tests for g_thread_init() - !3067 tests/meson.build: do not use can_run_host_binaries() - !3068 gio: Fix missing visibility header dependency - !3070 type-flags test: Force G_ENABLE_DIAGNOSTIC=1 to be set - !3073 Misc docs fixes and test improvements in GAction and GNotificationBackend - !3075 gmodule: Fix redeclaration of symbol - !3076 gspawn: Ignore invalid FDs when using safe_fdwalk() - !3077 build: Bump Meson dependency to 0.64.0 - !3078 build: Move -Wnonnull flag to meson.build - !3079 giochannel: Clarify assertions in g_io_channel_write_chars() - !3080 A few test improvements for scan-build - !3081 gthreadpool: Mark an explicit leak as to be ignored - !3083 tests: Remove a manual timeout from desktop-app-info test - !3086 gmacros: Use C++ namespaces attribute specifier sequences for msvc - !3088 tests: Add G_TEST_OPTION_ISOLATE_DIRS to almost all gdbus tests - !3089 Revert dependency bump to use Meson 0.64 - !3091 Fix doc typo in g_dbus_connection_signal_subscribe - !3092 Fix gmodule/COPYING symlink path - !3095 gdbusaddress: Form default system dbus path using meson definitions - !3097 garray: Add assertions to help static analysis - !3098 gobject: Use compare and exchange full to re-read old ref value - !3099 gsocketcontrolmessage: add nullable annotation to deserialize return - !3100 gsimpleproxyresolver: Make explicit that a port is needed for HTTP/HTTPS - !3101 gdbusaddress: Use runstatedir rather than localstatedir - !3103 gclosure: Documentation improvements around floating closures - !3105 gsocket: use socklen_t in more places to fix build under cygwin - !3106 gobject: Check for valid ref counting via g_return_if_fail - !3107 gdesktopappinfo: Group search results by both categories and match types - !3108 gwakeuptest: Do not rely on alarm() to stop tests on timeout - !3112 docs: Remove a stray > in the glib-mkenums man page - !3115 ci: Don’t fail if testlog-unstable_tests.junit.xml doesn’t exist on MSVC - !3116 docs: Remove HACKING - !3117 tests: fix assert-msg-test with custom gdbinit - !3119 Improve notification queue warning - !3120 glib/gthread-posix: Conditionally use `futex` and/or `futex_time64` syscalls... - !3124 More gobject performance tests - !3127 docs: Update SECURITY to stop mentioning a deprecated mailing list - !3128 garray: Add more G(Ptr)Array constructors to take or copy C arrays - !3129 garray: Add support adding literal values - !3130 ghash: Add APIs to get (and steal) hash table keys and values as GPtrArray - !3132 gtestutils: Check for failure to setenv() and return - !3139 gtype: avoid "-Wcast-align" warning with optimized G_TYPE_CHECK_INSTANCE_CAST() - !3141 tests/slice-concurrent.c: avoid using rand() from multiple threads - !3142 tests/gdbus-method-invocation: Fix missing g_variant_new() argument - !3144 gspawn.c: prefer close_range() on FreeBSD if available - !3145 tests/gvariant.c: ensure posix_memalign alignment argument is correct - !3147 ci: Temporarily only run the FreeBSD 13 CI on a schedule - !3148 ghash: Use unsigned types for number of nodes and occupied ones - !3151 Revert "ci: Temporarily only run the FreeBSD 13 CI on a schedule" - !3152 tests: Fix stall/deadlock in slice-concurrent on macOS CI - !3156 gobject: Some GValue setting code cleanups - !3157 gthread-posix: need to #include - !3159 gmenuexporter: Fix warning of unused n_items when building with G_DISABLE_ASSERT * Translation updates: - Interlingue (Olga Smirnova) - Serbian (Мирослав Николић)