Overview of changes in GLib 2.72.3
==================================

* Bugs fixed:
 - #1941 disposing a non-cancelled inotify GFileMonitor causes deadlocks
 - #2597 Crash in g_socket_client_enumerator_callback when proxy resolving
 - #2639 xdgmime update breaks webkit2gtk file:// requests
 - #2670 Growing memory when using cancellable in g_socket_client_connect_async
 - !2703 glocalfilemonitor: Avoid file monitor destruction from event thread
 - !2709 Backport !2707 “credentials: macos: check for existence of LOCAL_PEERPID” to glib-2-72
 - !2720 Backport !2708 “xdgmime: Fix broken file:// content type lookups for webkitgtk” to glib-2-72
 - !2750 Backport !2745 “gsocketclient: Fix still-reachable references to cancellables” to glib-2-72
 - !2787 Backport !2742 “proxyaddressenumerator: set error parameter more thoughtfully” to glib-2-72


Overview of changes in GLib 2.72.2
==================================

* Bugs fixed:
 - #2640 UWP warnings about extensions and verbs with glib 2.72.1
 - !2605 Backport !2449 and !2600 mingw test fixes to glib-2-72
 - !2616 Backport !2615 “Meson: Fix gio-windows-2.0 override name” to glib-2-72
 - !2629 Backport !2626, !2627 minor leak fixes to glib-2-72
 - !2643 Backport !2642 “meson: Check rres.compiled() before calling rres.returncode()” to glib-2-72
 - !2644 Backport !2631 “Cast to guintptr instead of subtracting by null” to glib-2-72
 - !2662 Backport !2654 “gtask: use g_strconcat() in g_task_return() only if needed” to glib-2-72
 - !2691 Backport !2661 “win32appinfo: change log level from warning to debug” to glib-2-72

* Translation updates:
 - Croatian
 - Danish
 - English (United Kingdom)
 - French
 - Galician
 - German
 - Nepali
 - Portuguese (Brazil)


Overview of changes in GLib 2.72.1
==================================

* Fix building projects which use g_warning_once() with clang++ (#2625)

* Fix `g_file_trash()` not deleting directories via the portals backend (work by Matthias Clasen) (#2629)

* A number more compiler warnings fixed for MSVC (work by Loïc Le Page) (!2495)

* Fix detection of broken `poll()` function on macOS (work by Haruka Ma) (!2571)

* Fix spawning subprocesses from GUI programs on Windows (work by Marc-André Lureau) (!2582)

* Bugs fixed:
 - #2312 gdbus-test-codegen tests leak GWeakRef objects
 - #2625 g_warning_once fails to build with clang++
 - #2629 g_file_trash() does not work on directories inside a sandbox
 - !2495 Cleanup warnings split 6
 - !2499 Various contenttype-related test fixes on win32
 - !2534 gpowerprofilemonitor: Tweak wording of documentation to make more sense
 - !2540 Various win32 tests skip & fixes
 - !2541 meson: simplify lookup of python command
 - !2543 ci: Update the Fedora CI image to Fedora 34
 - !2556 gdbusconnection: Use g_strv_contains() rather than a home-grown version
 - !2557 gdbusmethodinvocation: Fix a leak on an early return path
 - !2558 Move unit test on g_basename() function to glib/tests/fileutils.c
 - !2559 Move tests/relation-test.c to glib/tests/relation.c
 - !2560 ci: Update Coverity, mingw and Android CI images to Fedora 34
 - !2563 glib: Format GDateTime ISO8601 years as %C%y
 - !2564 Move test files on slices from tests/ to glib/tests/
 - !2566 tests: Add more tests for GResolver response parsing
 - !2573 Backport translation fixes and !2571 “meson: Set BROKEN_POLL in macOS builds” to glib-2-72
 - !2574 Backport !2565 “Revert "meson: simplify lookup of python command"” to glib-2-72
 - !2587 Backport !2583 “Fix trashing sandboxed directories” to glib-2-72
 - !2588 Backport !2582 “glib/win32: fix spawn from GUI regression” to glib-2-72
 - !2590 Backport !2589 “tests: Don’t exit gdbus-method-invocation test early on connection close” to glib-2-72
 - !2593 Backport !2578 “gatomic: Add a C++ variant of g_atomic_int_compare_and_exchange()” to glib-2-72

* Translation updates:
 - Bulgarian
 - Catalan
 - Indonesian
 - Italian
 - Lithuanian
 - Polish
 - Portuguese
 - Russian
 - Slovenian
 - Swedish
 - Turkish
 - Ukrainian


Overview of changes in GLib 2.72.0
==================================

* Bugs fixed:
 - #2620 g_time_zone_new_offset() assertion failure if offset >= 25 hours
 - !2538 Various unit test fixes
 - !2542 fuzzing: Fix test failure with G_DISABLE_ASSERT
 - !2547 gprintf: Fix a memory leak with an invalid format in g_vasprintf()
 - !2548 tests: Various fixes to gdbus-auth, gdbus-non-socket, gdbus-connection-flush, spawn-multithreaded tests
 - !2551 tests: More flaky test fixes to converter-stream and test-printf
 - !2552 gtlsconnection: fix typo in docs

* Translation updates:
 - Czech
 - French
 - Friulian
 - Hebrew
 - Hungarian
 - Italian
 - Kazakh
 - Polish
 - Romanian
 - Serbian
 - Swedish


Overview of changes in GLib 2.71.3
==================================

* Fix flaky `GDebugController` tests (!2504)

* Numerous small documentation updates

* Bugs fixed:
 - #517 g_utf8_collate returns 0 on U+C5D0 vs U+CD94
 - #1929 gdbus-connection-flush: setup_client_cb: Exhausted all available authentication mechanisms (tried: EXTERNAL, DBUS_COOKIE_SHA1)
 - #2589 Hash sign misinterpreted as heading
 - #2598 g_main_loop_run() may leak a GMainLoop reference
 - #2609 Clarify documentation for g_log_set_debug_enabled()
 - #2611 Unspecified options considered present
 - #2612 side effects of ensure_valid_dict result used in g_return_if_fail macro
 - #2613 Naked magic literal in gvariant.h
 - !1707 Add cache to g_unix_mount_points_get()
 - !2424 Remove old test file tests/testglib.c
 - !2451 glib: fix buffer overflow in g_canonicalize_filename()
 - !2466 Various minor fixes for empty argv handling
 - !2480 Various glib/tests/date fixes on win32
 - !2485 Various spawn-related test fixes on win32
 - !2490 Cleanup warnings split 1
 - !2491 Cleanup warnings split 2
 - !2492 Cleanup warnings split 3
 - !2493 Cleanup warnings split 4
 - !2501 glib-compile-resources: Fix a memory leak of the compiler option
 - !2502 tests: Merge iochannel-test into io-channel tests in glib directory
 - !2503 gbacktrace: Fix a set-but-not-used variable
 - !2504 gdebugcontrollerdbus: Track pending tasks with weak refs
 - !2505 tests: Stop ignoring test failures on macOS
 - !2506 gresource-tool: Fix unused-but-set-variable warn with G_DISABLE_ASSERT
 - !2507 ci: Drop custom dependency builds from installed-tests
 - !2508 codegen: Reformat parser.py according to black
 - !2509 tests: Fix various small memory leaks
 - !2510 gdesktopappinfo: Fix a leak when launching URIs over D-Bus
 - !2512 doc: Extend a bit G_DECLARE_* documentation example
 - !2513 gmain: Expand documentation about GSource priorities a little
 - !2514 ci: Various cleanups and moving Android API 21 and FreeBSD 12 to scheduled run
 - !2515 gmessages: Fix typo in docs
 - !2516 glocalfileinfo: Always define _g_stat_mtim_nsec, etc.
 - !2517 meson: Add schemasdir and giomoduledir to gio dependency
 - !2518 meson: Set GIO_EXTRA_MODULES in devenv
 - !2519 gdebugcontrollerdbus: Mark a variable as G_GNUC_UNUSED
 - !2520 tests: Remove threads from mock-resolver/network-address test
 - !2523 Add handling of NULL time_t* pointer as argument
 - !2524 Revert "meson: Add schemasdir and giomoduledir to gio dependency"
 - !2525 meson: Add schemasdir and giomoduledir to gio dependency
 - !2526 Remove unused test tests/testgdateparser.c
 - !2527 Move tests/type-test.c to glib/tests/types.c
 - !2528 meson: Add PYTHONPATH to load GDB helper module
 - !2531 gtask: Document that task name is set by g_task_set_source_tag()

* Translation updates:
 - Basque
 - Catalan
 - Chinese (China)
 - Croatian
 - Danish
 - German
 - Hebrew
 - Indonesian
 - Korean
 - Lithuanian
 - Romanian
 - Russian
 - Spanish
 - Turkish


Overview of changes in GLib 2.71.2
==================================

* Rework `glib-compile-resources` to output compiler-specific files to reduce
  compilation time; see the new `--compiler` option (work by Emmanuele Bassi) (#2492)

* Add a cross-platform API for aligned memory allocations (`g_aligned_alloc()`,
  `g_aligned_alloc0()` and `g_aligned_free()`) (work by Emmanuele Bassi) (#2574)

* Deprecate `force_posix_threads` configure option, since it was a workaround
  for static linking on Windows (#2592)

* Add `GBindingGroup` and `GSignalGroup` APIs (work by Christian Hergert and
  Garrett Regier) (!2235)

* Implement FD remapping support for `g_spawn_async_with_pipes_and_fds()` on
  Windows (work by Marc-André Lureau) (!2458)

* Add an async file move API, `g_file_move_async()` (work by Lucas Schwiderski) (!2469)

* Bugs fixed:
 - #1190 gapplication: Add an org.gtk.Debugging interface
 - #2329 GApplication CLI parsing of DOUBLE type failure
 - #2492 glib-compile-resources contains resource data twice and creates large output files
 - #2563 g_test_build_filename and friends not safe to call after g_test_run() has finished
 - #2574 Add API for aligned allocations
 - #2592 Consider deprecating 'force_posix_threads' build option
 - #2601 Missing <para> tag in generated files
 - !2235 Add GBindingGroup and GSignalGroup
 - !2378 gtestutils: Mention the unit used for the test timer
 - !2404 File tests
 - !2433 Remove tests/testgdate.c from tests
 - !2458 Implement fd passing for Windows spawn
 - !2464 Amend g_bus_get* documentation regarding private connection
 - !2465 gi: expose some files as variable for gobject-introspection
 - !2467 ci: Add link to Coverage output at end of coverage job
 - !2468 gfile: resolve_relative_path isn't nullable
 - !2469 Implement async file movement
 - !2471 Fix test on the date format for FreeBSD and MacOS X.
 - !2472 Fix test date (again)...
 - !2473 Fix glib/test/date.c for FreeBSD/OpenBSD/MacOS X
 - !2476 Add G_UNICODE_SCRIPT_MATH to GUnicodeScript
 - !2477 Improve coverage of two digit years in gdate tests
 - !2481 Fix glib/tests/fileutils on win32
 - !2482 Fix unit test on date format '%Z' which is too versatile to be trustable
 - !2483 Fix glib/tests/gdatetime on win32
 - !2484 tests: Use g_test_skip() to skip a test on Windows
 - !2487 gconstructor.h: Visual Studio: Only include gslist.h if needed
 - !2488 Fix some problems with g_aligned_alloc() tests

* Translation updates:
 - Basque
 - Catalan
 - Chinese (China)
 - Czech
 - French
 - Galician
 - Indonesian
 - Japanese
 - Polish
 - Portuguese
 - Portuguese (Brazil)
 - Russian
 - Slovenian
 - Spanish
 - Ukrainian


Overview of changes in GLib 2.71.1
==================================

* Basic support for static builds on Windows (work by Loïc Le Page,
  Marc-André Lureau, with contributions from Xavier Claessens, Nirbheek Chauhan,
  Charlie Barto, Luca Bacci, Amos Wenger) (#692, #2585, !2442)

* Add `GDebugController` and a D-Bus implementation which exposes whether
  debug output is enabled in a process using the `org.gtk.Debugging` D-Bus
  interface (work by Philip Withnall) (#1190)

* Support for `AF_UNIX` sockets on Windows 10 (and later) (work by Marc-André Lureau) (#2487)

* Several important fixes to GDBus message and GVariant parsing of invalid data (work by Sebastian Wilhelmi) (#2557, #2572)

* Fix potential data loss due to missing fsync when saving files on btrfs (work by Sebastian Keller) (!2425)

* Fix potential buffer overflows in `garray.c` for very large `GArray`s and `GPtrArray`s (work by Tobias Stoeckmann) (#2578)

* Fix FDs in gspawn not being closed and causing process hangs if `close_range()` fails unexpectedly (work by Dan Nicholson) (#2580)

* Fix `g_find_program_in_path()` not returning an absolute path if `$PATH` is relative (work by Christoph Niethammer) (#2586)

* Add support for loading PKCS#12 encrypted files in `GTlsCertificate` (work by Patrick Griffis) (!2239)

* A number of improvements to unit tests (work by Emmanuel Fleury, Charlie Barto) (!2399, !2400, !2402, !2403, !2428, !2431, !2432, !2434)

* Support `LOCAL_PEERPID` on macOS, giving partial support for PIDs in
  `GCredentials` on that platform (work by Ignacio Casal Quinteiro) (!2362)

* Add `g_get_user_state_dir()` to support `XDG_STATE_HOME` (work by Sophie Herold) (!2395)

* Add `g_hash_table_new_similar()` to copy a hash table and its hash/equal functions without its data (work by Jonas Ådahl) (!2405)

* Support D-Bus client authentication with `EXTERNAL` on Windows (work by Marc-André Lureau) (!2429)

* Add a reStructuredText documentation generator to `gdbus-codegen` (work by Emmanuele Bassi) (!2448)

* Add a Windows implementation of `GMemoryMonitor` (work by Marc-André Lureau) (!2452)

* Bugs fixed:
 - #692 meta: Fix static build on Windows
 - #1190 gapplication: Add an org.gtk.Debugging interface
 - #2487 Add support for native unix domain sockets on WIN32 to GLib.Socket and related classes
 - #2550 possible GDateTime issue with localtime on Illumos/Solaris
 - #2557 Arrays of zero-element tuples with non-zero length lead to infinite loops in g_dbus_message_new_from_blob
 - #2559 2.71.0: compile and link time warnings
 - #2560 Link error xdgmime.c: unresolved external symbol S_ISREG when building with VS2022
 - #2564 Hangul Jamo Extended-B should be 0-width
 - #2565 Build glib-2.71.0 failed in Windows using MSYS2-MINGW64
 - #2571 Cross build error "undefined reference to `_g_binary_test1_resource_data'" when building tests for Windows on openSUSE Leap
 - #2572 Check for GVariant recursion depth before recursing
 - #2578 buffer overflows in garray.c
 - #2579 Outdated paths in INSTALL.in
 - #2580 gspawn doesn't set CLOEXEC if close_range fails unexpectedly
 - #2582 glib 2.71.0 muslc - build error missing sentinel in function call
 - #2585 Static link issue on Windows due to resource files being linked in twice
 - #2586 g_find_program_in_path not returning an absolute path
 - !2239 gtlscertificate: Add ability to load PKCS#12 encrypted files
 - !2362 credentials: support the local peerpid on macos
 - !2384 meson: Fix linking with static library in Windows
 - !2395 utils: Add XDG_STATE_HOME support
 - !2399 Move tests/env-test.c into glib/tests/environment.c
 - !2400 Prevent gtest tests from popping up dialog boxes
 - !2402 Improving glib/tests/environment.c
 - !2403 Improve test coverage of glib/tests/asyncqueue.c
 - !2405 ghash: Add g_hash_table_new_similar
 - !2407 tests: Fix environment test on FreeBSD
 - !2411 annotate `g_content_type_guess` parameter as filename
 - !2412 paramspec: fix unref annotation
 - !2413 Use meson dependency to link against apple framework
 - !2414 docs: Improve docs for gdbusutils.c
 - !2417 gtestutils: Fix minor typos in the g_test_get_filename() docs
 - !2423 Make clear in doc that signals are emitted synchroniously
 - !2425 gfileutils: Remove outdated BTRFS fsync optimization from set_contents
 - !2426 gdbus-codegen: Fix a typo in a comment
 - !2428 Merge tests/gobject/gvalue-test.c with gobject/tests/value.c
 - !2429 gdbus: make client work with EXTERNAL on Windows
 - !2431 Merge tests/gobject/paramspec-test.c into gobject/tests/param.c
 - !2432 Merge test/unicode-caseconv.c into glib/tests/unicode.c
 - !2434 Remove a disabled test case that was covered by glib/tests/collate.c
 - !2440 Improve g_ascii_formatd docs and preconditions
 - !2441 Reduce the amount of compile-time warnings
 - !2442 Fix tests with static build on Windows
 - !2447 giowin32: use gint64 and _lseeki64
 - !2448 Add reStructuredText documentation generator for gdbus-codegen
 - !2452 gio/win32: add GMemoryMonitorWin32
 - !2453 Add `(array length)` annotation to `g_tls_certificate_new_from_pkcs12()`
 - !2454 gdbusmessage, gvariant and garray fixes
 - !2456 tests: Pass --internal and -z noexecstack to glib-compile-resources tests
 - !2459 gio: add missing zlib dependency in gio-windows-2.0.pc
 - !2461 Fix memory leak in gio/gdbusauthmechanismsha1.c
 - !2463 Revert "Merge branch 'fix-windows-pc' into 'main'"

* Translation updates:
 - Catalan
 - Chinese (China)
 - Czech
 - Galician
 - Hebrew
 - Indonesian
 - Lithuanian
 - Polish
 - Portuguese
 - Portuguese (Brazil)
 - Russian
 - Spanish
 - Ukrainian


Overview of changes in GLib 2.71.0
==================================

* Fix network changes not being signalled from NetworkManager (work by
  Julian Andres Klode) (#2505)

* Fix build when building with --fatal-meson-warnings (work by Eli Schwartz) (!2304)

* Fix use of the default log writer with journald namespaces (diagnosis by Ilya Basin) (#2530)

* Fix hang in `dbus-daemon` under `GTestDBus` when `G_MESSAGES_DEBUG=all` is set (work by Marco Trevisan) (#2537)

* Speed up `g_canonicalize_filename()` to avoid pathogenic cases with `..` (work by Sebastian Wilhelmi) (#2541)

* Fix URI for pcre subproject as it’s moved upstream (work by Albert Astals Cid) (!2324)

* Fix storing GSettings dictionaries on macOS (work by Maurice) (#2527)

* Speed up ‘remove dot segments’ algorithm in `GUri` to avoid pathogenic cases with `..` (work by Sebastian Wilhelmi) (#2526)

* Fix infinite loops in D-Bus message parsing for truncated inputs (work by Sebastian Wilhelmi) (#2528)

* Improve correctness of version information returned by `g_get_os_info()` for Windows 10/Server 2019+ (work by Chun-wei Fan) (#2443)

* Various fixes to GWeakRef cleanup (#865, #2390) and toggle refs (#2394) (work by Marco Trevisan)

* Add `G_DBUS_PROXY_FLAGS_NO_MATCH_RULE` flag for disabling match rules when creating a `GDBusProxy` (#1109)

* Fix FD remapping in `g_spawn_async_with_pipes_and_fds()` with certain values of target FDs (#2503, #2506) (work by Michael Catanzaro)

* Make `GDBusProxy::g-signal` signal detailed with D-Bus signal names (#2536) (work by Aleksandr Mezin)

* Emit `launched` signal for D-Bus activation of apps with `GDesktopAppInfo` (!2227) (work by Guido Günther)

* Fix IDs of `GDesktopAppInfo`s which are constructed from a `.desktop` file in a subdirectory (!2283) (work by Ivalyo Dimitrov)

* Add `--interactive` option to `gdbus call` (!2329)

* Add `G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP` to `GSubprocess` (!2333) (work by Hristo Venev)

* Bugs fixed:
 - #475 Add g_alloca0() and g_newa0()
 - #847 g_set_prgname() should be thread-safe
 - #865 GWeakRefs not cleared by g_object_run_dispose()
 - #1109 [PATCH] GDBusProxy: add G_DBUS_PROXY_FLAGS_NO_MATCH_RULE flag
 - #1231 gobject declare macros cause alignment warnings on armhf/armhf/mipsel
 - #1331 GArray with 10 million items overflows index arithmetic
 - #1735 Get back to a -werror build
 - #1781 Sort output of gsettings command-line tool
 - #2310 contenttype test leaks xdg-mime internal data
 - #2390 GWeakRef's aren't cleared again on finalization (and not fully thread-safe)
 - #2394 Toggle refs notification may not handle multiple threads correctly
 - #2400 Use-after-free in invoke_set_property_in_idle_cb()
 - #2401 GDBus runtime warning from remove_interfaces()
 - #2404 GTask: clarify that GTask assumes are running mainloop
 - #2426 GSettings delayed apply generates runtime warnings
 - #2443 Add Windows 11 support to get_windows_version()
 - #2468 GSequence pessimizes itself and slows down
 - #2471 g_output_stream_write_all_async prints error when count == 0 and content == NULL
 - #2488 Unix password unit test fails on FreeBSD 13
 - #2489 Add a (diagnostic) warning for finalized objects with floating refs
 - #2490 Upgrade to Unicode Character Database 14.0
 - #2496 Wrong parameter type for g_simple_proxy_resolver_set_ignore_hosts
 - #2498 GIR: Remove non-existing IOModule methods `load`, `unload`
 - #2500 Able to export object manager and object on root path, but not other paths
 - #2503 gspawn.c may clobber target fds
 - #2505 g_network_monitor_nm never updates on connection change (listens for signal on wrong dbus interface)
 - #2506 gspawn.c fails to close child_err_report_fd if it is duped to avoid conflation with one of the target_fds
 - #2507 Strange behavior of GFileEnumerator with GVfs locations
 - #2514 test suite failure in glib/tests/gdatetime.c if German locale de_DE.ISO-8859-1 is available
 - #2518 Misleading message when privileged program starts G_BUS_TYPE_SESSION
 - #2520 g_date_new_ functions return NULL on invalid input
 - #2523 MacOS generates warnings for g_size_checked_mul()
 - #2526 fuzz_uri_parse failure
 - #2527 Error storing dictionary with string keys as GSettings on macOS
 - #2528 g_dbus_message_new_from_blob goes into infinite loop for certain inputs
 - #2529 load_user_special_dirs returns NULL in certain cases
 - #2530 g_log_writer_is_journald fails if a Journal Namespace is used
 - #2536 GDBusProxy: make g-signal detailed
 - #2537 GTestDBus dbus daemon causes child process to hang when using verbose output
 - #2541 g_canonicalize_filename should work in linear time complexity
 - #2553 Consider not depending on strtoull_l and strtoll_l as much
 - !1960 Add g_main_context_new_with_flags() and ownerless polling option
 - !1968 gspawn: Implement fd remapping for posix_spawn codepath, and fix file descriptor conflation issues
 - !1991 Keyfile parsing performance improvements
 - !2029 Updating xdgmime
 - !2064 gobject: Cleanup GWeakRef locations on object finalization
 - !2114 Coerce type cast to void* because it causes compiler warnings
 - !2191 docs: Add .editorconfig file
 - !2214 Document potential footgun with GTlsCertificateFlags and deprecate certain usages
 - !2223 Better detection of the cleanup attribute.
 - !2227 gdesktopappinfo: Emit "launched" signal for D-Bus activation too
 - !2242 gsettings: Add various missing (nullable) or (not nullable) annotations
 - !2244 gutils: Avoid segfault in g_get_user_database_entry
 - !2245 gdesktopappinfo: Do not call xterm when it does not exist, inform the caller the launch failed
 - !2246 gobject: Document it’s unsafe to call g_object_ref() from GWeakNotify
 - !2249 Add version macros for GLib 2.72 and bump version to 2.71.0
 - !2251 GString: Bump minimum size
 - !2254 Small optimization for g_object_set
 - !2255 gobject: Clarify behaviour of adding weak refs during disposal
 - !2257 Fix documentation for g_dbus_object_manager_get_object().
 - !2260 GWin32AppInfo: Do not assert about successful open'ing of registry keys
 - !2261 Provide built DLLs as Gitlab-CI artifacts
 - !2266 fix uninitial variable
 - !2273 Fix more (Windows) warnings
 - !2277 Revert "Don't compile some unused functions in gio/xdgmime/"
 - !2283 GDesktopAppInfo: Try to always correctly set id
 - !2284 update the proxy-libintl subproject to the latest release
 - !2285 fix issues found by svace static code analyzer
 - !2286 meson: fix warnings for extract_all_objects function
 - !2287 ci: Update CI images to latest stable Debian and Fedora, bump Meson dependency to 0.52
 - !2288 Update g_source_remove doc comment: the function doesn't always return TRUE
 - !2289 Update g_source_remove documentation for the returned value
 - !2290 mkdir path specified by XDG_RUNTIME_DIR
 - !2292 Fix cast from pointer to integer of different size warning in gio/gwin32appinfo.c
 - !2293 glib-private: Fix MSVC build with AddressSanitizer
 - !2294 Fix windows warnings
 - !2295 gutf8: Document that out args from g_utf16_to_utf8() are non-negative
 - !2303 Fix more windows warnings
 - !2305 gio: document GFile API when relative path is absolute
 - !2306 gunixmounts: Drop references to pamconsole mount option
 - !2308 gthread-win32: Remove an unnecessary volatile qualifier
 - !2309 Rename libpcre.wrap to pcre.wrap
 - !2310 tests: Fix a typo in a test message in gdatetime.c
 - !2311 Fix always true comparison warning in glib/garray.c
 - !2319 docs: Fix the GListModel description
 - !2323 Fix final warnings in Windows code
 - !2324 Fix link to pcre-8.37.tar.bz2
 - !2326 Improve some documentation related to GTlsDatabase
 - !2328 gutf8: add string length check when ending character offset is -1
 - !2329 gdbus: Add --interactive option to `gdbus call`
 - !2332 Changed gendered terms to be gender-neutral
 - !2333 gsubprocess: Add G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP
 - !2336 tests: Drop arbitrary and flaky waits from actions tests
 - !2339 ci: Bump Meson version to 0.60.1 on macOS
 - !2341 tests: Wait for gdbus-testserver to die when killing it
 - !2342 tests: Reformat mkenums.py slightly to make run-black.sh happy
 - !2345 gutils: Disable some dead code on macOS
 - !2347 Removing tests/asyncqueue-test.c from tests/
 - !2348 gio/tests/codegen.py: bump timeout to 100 seconds
 - !2349 Annotate `g_getenv()` and `g_environ_getenv()` return value as `nullable`
 - !2352 tests: Fix a flaky wait in converter-stream
 - !2353 Address some oddities around GResolver::reload
 - !2357 ci: Upgrade to clang-format-11 from clang-format-7
 - !2360 meson: specify when commands need to succeed in run_command
 - !2364 tests: Allow `objcopy --help` to fail, because it fails on FreeBSD
 - !2365 Add vfunc checks in gappinfo.c
 - !2368 De-duplicate g_nearest_pow() implementation and add some overflow protections to g_ptr_array_maybe_expand(), g_string_maybe_expand() and g_string_chunk_insert_len()
 - !2370 gqsort: Move test to glib/tests/
 - !2371 Freeze notification during object destruction
 - !2372 docs: Improve GVariant docs
 - !2373 glib.supp: Suppress one-time allocation in g_get_home_dir()
 - !2376 GSource: move test to glib/tests/
 - !2379 Merging tests/bit-test.c into glib/tests/utils.c
 - !2381 tests: Test the function forms of g_bit_*() APIs too
 - !2382 gfileutils: Correctly reset start value when canonicalising paths
 - !2385 gfileutils: Fix transfer annotation and whitespace issues
 - !2386 docs: Add API documentation links to the README
 - !2387 docs: Update the README a little
 - !2390 Merging tests/child-test.c into glib/tests/spawn-multithreaded.c
 - !2391 Removing redundant cxx test tests/cxx-test.cpp
 - !2392 Move tests/completion-test.c to glib/tests/completion.c
 - !2393 Removing unnecessary test on gdatetime.c
 - !2396 fuzzing: Add a fuzz test for parsing DNS records
 - !2397 Moving tests/dirname-test.c to glib/tests/fileutils.c
 - !2398 fix /list/position test

* Translation updates:
 - Croatian
 - Friulian
 - Galician
 - Hebrew
 - Indonesian
 - Italian
 - Latvian
 - Lithuanian
 - Occitan (post 1500)
 - Persian
 - Polish
 - Portuguese
 - Portuguese (Brazil)
 - Romanian
 - Russian
 - Serbian
 - Slovak
 - Spanish
 - Swedish
 - Ukrainian


Overview of changes in GLib 2.70.0
==================================

* Bugs fixed:
 - !2248 ci: Replace FreeBSD 11 with FreeBSD 13

* Translation updates:
 - Croatian
 - Danish
 - English (United Kingdom)
 - French
 - German
 - Hungarian
 - Polish
 - Swedish
 - Turkish


Overview of changes in GLib 2.69.3
==================================

* Bugs fixed:
 - #2425 g_settings_schema_key_range_check() misbehaves for int versus bool
 - #2472 Compiling anything with GCC <4.6 spews deprecation warnings
 - #2477 `g_invoke_closure` bindings API break.
 - #2481 GPowerProfileMonitorPortal does not notice initial power-saver-enabled status
 - !2219 doc: Explicitly said, that no null term. is needed
 - !2238 ci: Use C.UTF-8 locale on FreeBSD 12
 - !2240 gio: Fix conditions in memory-monitor test

* Translation updates:
 - Basque
 - Catalan
 - Chinese (China)
 - Galician
 - Kazakh
 - Korean
 - Lithuanian
 - Romanian


Overview of changes in GLib 2.69.2
==================================

* The `DBUS_SESSION_BUS_ADDRESS` environment variable is once more not used if
  the process is `AT_SECURE` (setuid/setgid/setcap); this change was previously
  applied and then reverted because it broke gnome-keyring (#2316)

* Add `g_test_fail_printf()`, `g_test_skip_printf()`,
  `g_test_incomplete_printf()` helper functions for printing messages when tests
  end prematurely (work by Simon McVittie) (!2215)

* Add portal implementation of `GPowerProfileMonitor` (work by
  Bastien Nocera) (!2222)

* Bugs fixed:
 - #2316 Re-harden DBUS_SESSION_BUS_ADDRESS for AT_SECURE processes in GLib 2.70
 - #2343 Document explicitly refcount mgmt of source-object during GAsyncReadyCallbacks
 - #2454 Read past the end of buffer in g_win32_package_parser_enum_packages
 - #2456 Frequent test failure on FreeBSD: glib/tests/thread-pool.c:197:test_thread_pool_full: 'free_func_called' should be TRUE
 - !2157 tests: Add missing wakeup calls to gdbus-names test
 - !2165 docs: Mention the stable/unstable support version in README.md
 - !2211 Improve documentation of various TLS stuff
 - !2215 gtestutils: Add more convenience functions
 - !2216 tests: Fix error handling when testing gtestutils
 - !2222 gio: Add portal version of GPowerProfileMonitor
 - !2224 Docs: Mention that G_VA_COPY() must be followed by `va_end()`
 - !2225 build: Fix implicit declaration of function errors
 - !2226 Annotate the GString constructors

* Translation updates:
 - Czech
 - Hebrew
 - Slovenian
 - Spanish
 - Swedish


Overview of changes in GLib 2.69.1
==================================

* Support categories in desktop notifications (`GNotification`)
  (work by Guido Günther) (#2446)

* Add `GPowerProfileMonitor` for monitoring when to use less power (due to being
  on battery power, electricity being expensive or high-carbon, etc.)
  (work by Patrick Griffis, Bastien Nocera) (#2444)

* Allow static names to be set for `GSource`s to avoid unnecessary string copies
  (work by Matthias Clasen) (!2196)

* Bugs fixed:
 - #203 API: need g_module_open() variant with GError
 - #2058 win32: GPrivate can leak some objects
 - #2321 Add a GTypeFlag for final types
 - #2429 safe_fdwalk/safe_closefrom for Solaris 11.3/11.4
 - #2439 gio trash doesn't recognize existing trash directory in non-fs-root mount
 - #2446 Support `categories` for notifications
 - #2452 g_string_replace() loops 2**32 times when replacing empty string
 - !2177 gio/tests/g-file-info: don't assume million-in-one events don't happen
 - !2178 Clarify GValue documentation
 - !2179 Update GValue doc: How to use GBoxed with GValue
 - !2180 correctly use 3 parameters for close_range
 - !2181 gclosure: Fix the invoke() return_value annotation
 - !2182 glocalfileinfo: Fix usec/nsec confusion with filetimes on Windows
 - !2184 gspawn: Use CLOSE_RANGE_CLOEXEC if available
 - !2188 g_boxed_type_register_static, G_DEFINE_BOXED_TYPE: added correlating information
 - !2192 Fix more warnings
 - !2193 glib.supp: Expand match kinds for g_get_language_names() suppressions
 - !2194 Add GPowerProfileMonitor
 - !2195 Fix some test suite memory leaks
 - !2196 mainloop: Add g_source_set_static_name
 - !2197 GResource compiler: Prefix static [con|de]strutors with c_name
 - !2198 Port internal uses to use g_source_set_static_name()
 - !2200 Fix doc stanzas for GDataInputStream properties
 - !2201 Fix a Unicode typo
 - !2202 Document the stance on ID-based mainloop APIs
 - !2204 tests: Add a test for Unicode normalization
 - !2205 GWin32RegistryKey / GWin32AppInfo registry watch fixes
 - !2206 Adapt documentation to gi-docgen
 - !2210 GWin32AppInfo: Fix missing initialization

* Translation updates:
 - Indonesian
 - Portuguese
 - Portuguese (Brazil)
 - Russian
 - Ukrainian


Overview of changes in GLib 2.69.0
==================================

* Fix a crash in `GKeyFile` when parsing a file which contains translations
  using a `GKeyFile` instance which has loaded another file previously (#2361)

* Pin GIO DLL in memory on Windows (!2016)

* Fix building third-party projects against GLib on CentOS 7 (work by
  Ignacio Casal Quinteiro) (#2387)

* Add `g_thread_pool_new_full()` API to allow queued `GThreadPool` data to be
  freed if the pool is freed early (work by Nitin Wartkar) (#121)

* Ensure `dlerror()` is used with locking as it’s not thread-safe in some libc
  implementations (#399)

* Add `g_dbus_is_error_name()` and `g_dbus_is_interface_name()` convenience
  functions (work by Nitin Wartkar) (#402)

* Drop internal libpcre copy in favour of a subproject from wrapdb (#962, #642)

* Add `g_prefix_error_literal()` helper function (work by Emmanuel Fleury,
  building on work by Dan Williams) (#663)

* Add `g_bytes_get_region()` to get data from a `GBytes` with range checks
  (work by Nitin Wartkar, building on work by Allison Karlitskaya) (#1098)

* Add `g_object_take_ref()` to sink a floating ref (work by Nitin Wartkar,
  building on work by Allison Karlitskaya) (#1112)

* Optimise grefcount atomic operations (work by Nishal Kulkarni) (#1583)

* Fix resolving child GSettings schemas from the parent’s schema source (work
  by Christian Persch) (#1884)

* Fix `g_date_time_format()` return value encoding if `LC_TIME` is not a UTF-8
  locale but other locale settings are (work by Frederic Martinsons) (#2055)

* Set app name in freedesktop.org notifications with `GNotification` (work
  by André Apitzsch) (#2069)

* Significantly improve retrieval of mount data on Windows (work by LRN based
  on initial analysis by Jehan Pagès) (#2096)

* Add `g_file_info_get_(access|creation)_date_time()` accessors (work
  by Abanoub Ghadban) (#2281)

* Always apply the remove_dot_segments algorithm to URIs in `g_uri_parse()`;
  previously it was only applied to relative URIs (work
  by Carlos Garcia Campos) (#2342)

* Rename git `master` branch to `main` (#2348)

* Various macro and version check cleanup (work by Gaël Bonithon,
  Robin Verdenal-Tallieux, Nishal Kulkarni) (#2376, #2388, #2389)

* Add a `GTlsConnectionClass.get_negotiated_protocol` vfunc so that
  `g_tls_connection_get_negotiated_protocol()` can be made thread-safe
  (work by Michael Catanzaro) (#2393)

* Improve guess about whether a Windows process is a console process
  (work by Princeton Ferro with input from LRN) (!1662)

* Add `g_steal_fd()` function (work by Simon McVittie) (!1966)

* Add `g_spawn_check_wait_status()` and distinguish more carefully between
  wait status and exit status in the `GSpawn` API (work by Simon McVittie) (!1967)

* Document GLib’s security policy; see
  https://gitlab.gnome.org/GNOME/glib/-/blob/main/SECURITY.md (!1985)

* Add `g_tree_remove_all()` (work by Lighto-Ku) (!1986)

* Simplify exception handling on Windows to eliminate risk of it failing due
  to prior heap corruption (work by LRN) (!2031)

* Fix handling EOF when reading from SOCKS5 proxy stream (work
  by Benjamin Berg) (!2032)

* Unset the registered state of a `GApplication` after it has shut down (work
  by Marco Trevisan) (!2056)

* Support `GPattern` as a boxed type (work by Marco Trevisan) (!2066)

* Add `g_tls_connection_get_protocol_version()` and
  `g_tls_connection_get_ciphersuite_name()` to get TLS connection information
  (work by Michael Catanzaro) (!2077)

* Make TLS private key properties readable in `GTlsCertificate` (work
  by Michael Catanzaro) (!2087)

* Fix detection of static libintl when building on macOS (work
  by Jonas Hahnfeld) (!2109)

* Add `g_strv_builder_addv()` and `g_strv_builder_add_many()` to the
  `GStrvBuilder` API (work by Alexandros Theodotou) (!2112)

* Add `not-valid-before`, `not-valid-after`, `subject-name`, `issuer-name`,
  `dns-names`, `ip-addresses` properties to `GTlsCertificate`
  (work by Ross Wollman) (!2113, !2142)

* Add PKCS#11 flags to `GTlsPasswordFlags` (work by Patrick Griffis) (!2126)

* Bugs fixed:
 - #121 GThreadPool and the ability to free data waiting to be handled
 - #229 g_match_info_fetch_named not return empty string as expected
 - #310 ref doc doesn't talk about "helper getters" optimization in g_file_info.c
 - #399 dlerror() not thread-safe in all libc, making gmodule-dl.c's fetch_dlerror fail sometimes
 - #402 please consider: #define g_dbus_is_error_name(x) g_dbus_is_interface_name (x)
 - #626 Add documentation example for GArray and g_array_set_clear_func()
 - #642 update to pcre 8.35+
 - #663 [patch] add g_prefix_error_literal()
 - #793 Potentially confusing error message when object doesn't exist
 - #817 gobject: Allow passing %NULL for @data in g_object_remove_toggle_ref
 - #962 drop embedded pcre copy
 - #1036 gdbusproxy stops tracking if dbus service restarts
 - #1098 GBytes: add range-checked pointer getter
 - #1112 GObject: add g_object_take_ref()
 - #1583 Optimise gatomicrefcount operations
 - #1864 Somewhat misleading documentation of GSourceFuncs
 - #1884 `g_settings_get_child` not compatible with `g_settings_schema_source_new_from_directory`
 - #2011 Add additional unit tests for D-Bus name watching
 - #2055 g_date_time_format() does not return UTF-8 if LC_TIME is not UTF8 but other locale settings are UTF-8
 - #2069 FreedesktopNotification fails to set app_name
 - #2096 SHGetFileInfoW() is not reliable (time-wise)
 - #2281 Add g_file_info_get_(access|creation)_date_time()
 - #2300 Crash on Windows MSVC build around gio
 - #2311 testfilemonitor test leaks ip_watched_file_t struct
 - #2340 GIO tests fail to build with clang-cl
 - #2342 g_uri_parse doesn't apply the remove_dot_segments algorithm to the path
 - #2348 Investigate renaming master git branch to main
 - #2352 RUN_FIRST | RUN_CLEANUP signals with a default handler ignore return values from user handlers
 - #2359 GLib 2.68.0: gio-querymodules segfaults on Windows
 - #2361 g_key_file_load_from_file segfaults on "Key[*]="like lines
 - #2363 g_newa() doesn’t check for multiplication overflow
 - #2368 g_task_run_in_thread () limits are not clear
 - #2369 glocalfile: Add native exfat magic number to  filesystem list
 - #2376 GLIB_VERSION_MAX_ALLOWED < 2.60 does not warn when using G_GNUC_FALLTHROUGH
 - #2387 json-glib does not build with glib 2.68.1
 - #2388 Pixman compilation error due to glib
 - #2389 Use G_GNUC_CHECK_VERSION to check the GNUC version
 - #2393 g_tls_connection_get_negotiated_protocol() is not threadsafe
 - #2397 Slow to list device in windows
 - #2399 Change spelling of ‘serialise’ to ‘serialize’ in documentation
 - #2405 Mention that GNotification requires an installed .desktop file to work
 - #2409 Project crashes when executing g_application_mark_busy
 - #2414 Devhelp: Glib Reference Manual/Glib Overview/Running Glib Applications formatting issue.
 - #2416 certificate: g_tls_certificate_new_from_pem invalid read on non null terminated data
 - #2417 GFile: `g_file_replace_contents()` reports `G_IO_ERROR_WRONG_ETAG` when saving from a symlink
 - #2418 gatomic: __atomic functions are called for CV-qualified output variables
 - #2423 resources.c:656:test_resource_binary_linked: 'found' should be TRUE
 - !1514 gbookmarkfile: Don't crash if we're not visited
 - !1662 gspawn-win32: improve guess whether process is console process
 - !1812 docs: Expand documentation about D-Bus GUIDs
 - !1957 Fix more warnings
 - !1965 gversionmacros: Add version macros for GLib 2.70
 - !1966 Add g_steal_fd() to API
 - !1967 Distinguish more clearly between wait status and exit status
 - !1969 glib_typeof: Move definition to its own header
 - !1985 docs: Add a policy for handling security issues
 - !1986 make g_tree_remove_all public
 - !1996 Include glibconfig.h to get the G_OS_UNIX token
 - !1998 gpollableinputstream: Add missing annotation
 - !1999 goption.c: Simplfy parse_short_option()
 - !2004 Some improvements to clang-cl builds
 - !2005 introspection: Remove 'caller-allocates' from POD types
 - !2006 fuzzing: Add fuzz tests for functions which parse paths
 - !2008 tests: Deactivate tls-bindings test suite for windows
 - !2011 docs: Fix example program link
 - !2012 docs: Replace git.gnome.org with gitlab.gnome.org urls
 - !2013 fuzzing: Fix assertion failure in fuzz_paths.c
 - !2016 GIO W32: Pin gio DLL
 - !2023 gtlspassword: Fix g-i annotation of return for g_tls_password_get_value
 - !2025 [th/gdbus-cleanup] two minor cleanup patches for gdbusconnection.c
 - !2026 Split g_test_log() messages that contain multiple lines
 - !2027 Fix a handful of minor leaks found by Coverity
 - !2030 Fix more warnings
 - !2031 Re-simplify exception handling on Windows
 - !2032 gsocks5proxy: Handle EOF when reading from a stream
 - !2033 Fix annotation of count arguments
 - !2036 gmacros.h: use G_GNUC_CHECK_VERSION
 - !2038 Fix more warnings
 - !2039 Implement G_ANALYZER_NORETURN for Coverity
 - !2040 Fix more warnings
 - !2041 refcount: Clarify when the ref count ends up undefined
 - !2042 grefcount: Clarify that the initial reference count is 1
 - !2043 gmacros.h: use g_macro__has_attribute() where possible
 - !2046 gerror: Clarify docs around message requirements
 - !2047 Fix more warnings
 - !2048 Fix more warnings
 - !2049 Fix typo in g_socket_listener_accept_async()'s comment
 - !2050 gdbus: document completion after idle action for g_dbus_connection_signal_unsubscribe()
 - !2051 Add nullable annotations in GUnixMountEntry
 - !2052 g_string_replace(): Fix documentation of 'limit' parameter
 - !2054 docs: Fix formatting of code block
 - !2055 Improve handling of FILENAME_MAX
 - !2056 application: Unset the registered state after shutting down
 - !2063 Fix more warnings
 - !2066 gpattern: Register as Boxed type and support introspection for it
 - !2067 gmacros: missing check if __STDC_VERSION__ is defined
 - !2069 gdbus-tool: Actually use argv[0] basename as program name
 - !2071 gstring: Cleanup documentation of g_string_replace
 - !2074 Fix more warnings
 - !2075 gdtlsconnection: Fix a check for a vfunc being implemented
 - !2077 tls: add functions to get protocol version and ciphersuite name
 - !2078 gthreadedresolver: don't ignore flags in lookup_by_name_with_flags
 - !2080 guuid: fix shift operation to parse hex string in uuid_parse_string()
 - !2081 Fix more warnings
 - !2085 gcredentials.h: Fix comment typo
 - !2087 gtlscertificate: make private key properties readable
 - !2088 Fix more warnings
 - !2090 docs: Standardize spelling of serializ*
 - !2091 Fix more warnings (clang)
 - !2098 grefcount: Optimise g_atomic_ref_count_dec
 - !2099 gmacros.h: G_NORETURN: remove useless checks
 - !2100 tests: Add missing return value check in string test
 - !2101 Fix more warnings
 - !2104 tests: Drop use of g_test_bug_base()
 - !2105 tests: Use a temporary file in the bookmarkfile tests
 - !2106 Fix more warnings
 - !2108 glib spawn-singlethread test only if F_DUPFD_CLOEXEC is defined
 - !2109 meson: Fix detection of static libintl on macOS
 - !2112 gstrvbuilder: add addv and add_many to the API
 - !2113 tls: expose cert details on GTlsCertificate
 - !2119 Fix more warnings
 - !2120 gdbusobjectmanagerclient: Call GetManagedObjects async
 - !2123 gdbus: Add various missing (nullable) or (not nullable) annotations
 - !2126 gtlspassword: Add flags signifying PIN type for PKCS#11
 - !2127 gutils: ensure g_find_program_in_path() return an absolute path
 - !2130 Revert "tests: Deactivate tls-bindings test suite for windows"
 - !2139 gdbus, win32: Fix accidental dllexport in static builds
 - !2142 tls: expose SAN details on GTlsCertificate
 - !2143 compiling.xml: Don't recommend backticks
 - !2144 pcre: Drop internal libpcre copy
 - !2145 gunixmounts: Document NULL return value for g_unix_mount_for()
 - !2152 tests: A few small improvements to GBytes tests
 - !2153 docs: Fix annotations for optional arguments
 - !2155 glocalfilemonitor: Avoid a deadlock on finalization
 - !2162 testgdate: fix -Wmisleading-indentation warning
 - !2166 gtlscertificate: Add more annotations to new properties
 - !2167 g_value_set_string description: clarified (unified), that v_string is a copy.
 - !2173 gasyncqueue: Add missing (nullable) annotation to free function
 - !2174 data-to-c.py: generate new-line at the end of the file

* Translation updates:
 - Chinese (China)
 - English (United Kingdom)
 - Hebrew
 - Nepali
 - Occitan (post 1500)
 - Serbian


Overview of changes in GLib 2.68.0
==================================

* Bugs fixed:
 - !1987 build: Drop gconstructor_as_data_h usage from glib-compile-schemas
 - !1989 glib.supp: Generalize some suppressions
 - !1992 gbytesicon: Fix error in g_bytes_icon_new() documentation
 - !1994 glocalfileoutputstream: Tidy up error handling
 - !1995 tests: Fix copy/paste error in queue test

* Translation updates:
 - Czech
 - Finnish
 - Italian
 - Korean
 - Lithuanian
 - Polish
 - Romanian
 - Slovenian
 - Turkish


Overview of changes in GLib 2.67.6
==================================

* Fix a security issue when using `g_file_replace()` with
  `G_FILE_CREATE_REPLACE_DESTINATION` (#2325)

* Disallow operations on the empty path with `g_file_new_from_path()` (#2328)

* Various fixes for GLib when building with clang-cl on Windows (work by
  Aleksandr Mezin) (#2341, #2344)

* Bugs fixed:
 - #2325 file-roller symlink attack
 - #2327 Teach glib-mkenums about GLIB_AVAILABLE_ENUMERATOR_IN_2_68, and start using it
 - #2328 g_file_new_for_path("") yields CWD, which seems wrong
 - #2341 glib-genmarshal output is sometimes empty because output file is not closed
 - #2344 c_std=c11: gbitlock.c: ‘asm’ undeclared
 - !1962 Validate D-Bus machine ID after loading
 - !1976 Use the right permissions for directory watching on Win32
 - !1977 gio/tests/{meson.build,pollable.c}: Determine libutil SONAME at build time
 - !1980 glib.supp: Add another system thread suppression

* Translation updates:
 - Basque
 - Catalan
 - Czech
 - French
 - Galician
 - German
 - Hungarian
 - Indonesian
 - Korean
 - Latvian
 - Portuguese
 - Portuguese (Brazil)
 - Serbian
 - Spanish
 - Swedish
