Overview of changes in GLib 2.74.3
==================================

* Fix regression in type checking `g_str_equal()` from C++ projects (#2820)

* Bugs fixed:
  - #2820 g_str_equal: New macro version breaks compilation in C++ projects
    (Philip Withnall)
  - !3096 Backport !3094 “gstrfuncs: Fix regression in C++ types accepted by
    g_str_equal()” to glib-2-74


Overview of changes in GLib 2.74.2
==================================

* Fix `GVariant` type depths checks on text format variants (work by Philip Withnall) (#2782)

* Fix an obscure corner case with FD handling in `g_spawn_*()` when a process
  has already closed the standard I/O FDs (work by Ray Strode) (#2795)

* Fix regression in type checking on `const` arguments to `g_str_equal()` (#2809)

* Bugs fixed:
  - #2782 GVariant type depth not checked on typedecls in text format variants
    (Philip Withnall)
  - #2795 [regression] gnome-keyring-daemon uses 100% CPU with glib-2.74.1 (Ray
    Strode)
  - #2799 Wrong GTask tag on error return path in
    g_proxy_resolver_lookup_async() (Michael Catanzaro)
  - #2809 g_str_equal switched to stricter API (typing) (Philip Withnall)
  - !3017 Backport !3008 “gio/gdesktopappinfo: Free the wrapped argv array on
    launch failure” to glib-2-74
  - !3038 Backport !3035 “portal: Fix broken header guard” to glib-2-74
  - !3039 Backport !3029 “Revert "Handling collision between standard i/o file
    descriptors and newly created ones" ” to glib-2-74
  - !3046 Backport !3045 “gproxyresolver: lookup_finish() should better parallel
    lookup_async()” to glib-2-74
  - !3063 Backport !3061 “gvariant-parser: Speed up maybe_wrapper() by an order
    of magnitude” to glib-2-74
  - !3084 Backport !3082 “gstrfuncs: Fix regression in types accepted by
    g_str_equal()” to glib-2-74

* Translation updates:
  - Abkhazian (Nart Tlisha)
  - Dutch (Nathan Follens)
  - Serbian (Мирослав Николић)


Overview of changes in GLib 2.74.1
==================================

* Update Unicode data to version 15 (work by Marco Trevisan) (#2735)

* Fix various build failures in different situations
  (work by Kjell Ahlstedt, Marco Trevisan (Treviño)) (#2740, #2758, #2759, #2766)

* Fix over-eager deprecated property warnings for construct properties
  (work by Simon McVittie) (#2748)

* Fix a crash calling `g_param_value_is_valid()` on a `GParamSpecParam` (work by
  Emmanuele Bassi) (#2770)

* Fix floating `GVariant` leaks with GObject properties (work by Matthias Clasen) (#2774)

* Add inline optimised version of `g_str_equal()` (work by Xavier Claessens) (#2775)

* Fix `GVariant` type depths checks on text format variants (work by Philip Withnall) (#2782)

* Fix regression with int64 and double hashing functions on big-endian architectures
  (work by Simon McVittie) (#2787)

* Build the API documentation only when building GLib as a shared library (work
  by Emmanuele Bassi) (!2896)

* Ignore weird `/etc/localtime` configurations generated by toolbx (work by Ray Strode) (!2973)

* Avoid `EINTR` races when closing FDs in `g_spawn_*()` (work by Thomas Haller) (!2988)

* Bugs fixed:
  - #16 gspawn.c file descriptor handling (Emmanuel Fleury)
  - #333 Make GLib valgrind friendly (Marco Trevisan (Treviño))
  - #2735 Update unicode data to version 15
  - #2740 gio-launch-desktop: clang compiler can't compile with commit 813ce7f0b
    (Kjell Ahlstedt)
  - #2742 glib:gio / file test fails after update to 2.73.3. (Marco Trevisan
    (Treviño))
  - #2748 construct properties always trigger the deprecated property warning
  - #2758 gmessages.c compile failure with -Werror=unused-result (Marco Trevisan
    (Treviño))
  - #2759 gosxcontenttype.m compile failure with -Werror=declaration-after-
    statement (Marco Trevisan (Treviño))
  - #2766 glocalfileinfo.c compile failure when utimensat() not available (=
    MacOS)
  - #2767 GFileInfo fails to find x-large and xx-large thumbnail paths (Marco
    Trevisan (Treviño))
  - #2770 Random crashes with GLib 2.74.0 (Emmanuele Bassi)
  - #2774 Floating GVariant leaks since 2.73.1 in g_object_set() (Matthias
    Clasen)
  - #2775 Add an inline version of g_str_equal (Xavier Claessens)
  - #2782 GVariant type depth not checked on typedecls in text format variants
    (Philip Withnall)
  - #2787 new int64, double hash functions always hash to 0 on big-endian (Simon
    McVittie)
  - #2788 GObject warnings: keep or revert warning -> critical change in 2.74.x
    branch? (Philip Withnall)
  - !2852 Replace most GObject warnings with criticals
  - !2857 glib-mkenums: Specify output encoding as UTF-8 explicitly for non-
    English locale
  - !2864 gatomic: fix the atomic compare_and_exchange macros on older C++
    standard versions
  - !2866 tests: skip g-file-info test if atime unsupported
  - !2867 tests: skip shared libs if default_library=static
  - !2880 gbacktrace: Don't truncate gdb output
  - !2885 tests/desktop-app-info: Use unique temporary paths for action files
  - !2892 tests/unix-streams: Free the cancelled error on cancelled cancellable
  - !2896 Build API docs only with shared libraries
  - !2899 gio: make g_task_get_cancellable return value (nullable)
  - !2901 glocalfileoutputstream: Do not double-close an fd on unlink error
  - !2903 docs: Fix markup error in code blocks for "DEPRECATED" macros
  - !2904 tests: Only run g_error_new_valist() programmer error test on glibc
  - !2905 meson: Set install_tag remaining installed files
  - !2907 gthread-win32: Fix conversion error from pointer to integer
  - !2911 glocalfileinfo: In set_mtime_atime(), don't use utimensat() if it's
    not available
  - !2913 gregex: Use pcre2 error messages if we don't provide a specific one
  - !2915 Consider the GLogField.length of "MESSAGE"/"GLIB_DOMAIN" fields in
    g_log_writer_format_fields()
  - !2916 Update version in the docs to 2.74.1 for the fixed handling of...
  - !2920 gregex: Allow G_REGEX_JAVASCRIPT_COMPAT in compile mask
  - !2922 ci: Conform to Python's coding style
  - !2924 Optimize the implementation of `g_double_hash`
  - !2928 build: Let Meson figure out Python installation
  - !2931 gdatetime: add missing g_return_() check in g_date_time_format_iso8601
  - !2933 Fix style warning in gvariant.c
  - !2938 gdatetime: add NULL guard in g_date_time_new_now()
  - !2939 gobject/tests/param: Add unit test for handling invalid NULL param
    spec
  - !2946 tests: Check the return value of fwrite() in a test
  - !2948 ghash: document g_hash_table_steal_extended() behavior for sets
  - !2949 doc: Correctly annotate g_async_queue_push()
  - !2958 Backport !2952 “Various win32 test fixes” to glib-2-74
  - !2960 Backport !2959 “Some leaks fixes” to glib-2-74
  - !2973 Backport !2955 “gtimezone: Reject weird /etc/localtime configurations”
    to glib-2-74
  - !2975 Backport !2974 “gvariant-parser: Reject deeply-nested typedecls in
    text form variants” to glib-2-74
  - !2982 Backport !2887 “glocalfileinfo: Ensure we always sniff some data to
    get the content type” to glib-2-74
  - !2983 Backport !2910 “gmessages: Handle unused results from fputs and
    fwrite” to glib-2-74
  - !2988 Backport !2947 “gspawn: avoid race due to retry with EINTR on close()”
    to glib-2-74
  - !2989 Backport !2978 “A couple of test fixes on OS X” to glib-2-74
  - !2995 Revert !2924 in 2.74.x branch
  - !2996 Revert "Replace most GObject warnings with criticals" on glib-2-74
  - !2998 Backport !2934 “gobject: Always ref-sink variants in g_object_set” to
    glib-2-74
  - !3010 Backport !3009 “gtimezone: Fix symlink checks on relative link
    targets” to glib-2-74

* Translation updates:
  - Abkhazian (Nart Tlisha)
  - Friulian (Fabio Tomat)
  - German (Christian Kirbach)
  - Hebrew (Yaron Shahrabani)
  - Kazakh (Baurzhan Muftakhidinov)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Turkish (Sabri Ünal)


Overview of changes in GLib 2.74.0, 17-09-2022
==============================================

* Use EPOLL_CLOEXEC by default (Colin Walters)

* Fixed various regression on GRegex as per the PCRE2 porting (Marco Trevisan)

* Fixed various memory leaks (Sebastian Keller, Marco Trevisan)

* Bugs fixed:
 - GNOME/gtksourceview#278 Failed to load html.lang after GLib switched to PCRE2
   (Marco Trevisan (Treviño))
 - GNOME/gtksourceview#283 GRegex-on-PCRE2 regressions (Marco Trevisan)
 - #2688 Follow-up from "replace pcre1 with pcre2" (Marco Trevisan (Treviño))
 - #2713 static_assert is undefined in C99 (wen Rafferty)
 - #2719 GParamSpec constructors should have nullable annotation on nick/blurb
   (Andy Holmes)
 - #2729 GRegex/GMatchInfo related crashes after upgrade to 2.73.2 (Marco
   Trevisan)
 - #2733 gio: GVariantBuilder builder leaked in g_document_portal_add_documents
   when URI list is empty (Sebastian Keller)
 - #2737 gio mount coredumps on prompt exit since 2.73 (Marco Trevisan)
 - #2741 Memory errors on GRegex (Marco Trevisan (Treviño))
 - GNOME/gtk#4400 gtk_show_uri can't open browser on MSYS2 on Windows (Luca
   Bacci)
 - !2820 ci: Expose the coverage report and docs as links in the MR's (Marco)
 - !2855 gtlscertificate: Update reference to G_TLS_CERTIFICATE_NO_FLAGS
 - !2861 mem: Document OOM behavior for allocations (Matthias Clasen)
 - !2868 gio-unix: Use EPOLL_CLOEXEC by default (Colin Walters)
 - !2873 Fix array-bounds compiler warnings with GCC 12 (Emmanuele Bassi)
 - !2874 tests, GDesktopAppInfo: Fix various GVariant leaks (Marco Trevisan)
 - !2875 g_strsplit: Use a pre-allocated GArray when max_tokens is provided
   (Marco Trevisan)
 - !2876 GActionGroup: Fix ownership transfer annotation for query_action()
   (Andy Holmes)
 - !2879 gioenumtypes: Only define GLIB_DISABLE_DEPRECATION_WARNINGS if needed
   (Marco Trevisan)
 - !2881 GWin32AppInfo: Add missing g_spawn_close_pid (Luca Bacci)
 - !2882 meson: Set install_tag on all tools (Xavier Claessens)
 - !2883 ci: Improve style check script (Matthias Clasen)
 - !2900 docs: Improve wording in documentation of g_unix_signal_source_new()
   (Tom Levy)

* Translation updates:
 - Abkhazian (Nart Tlisha)
 - Basque (Asier Sarasua Garmendia)
 - Bulgarian (Alexander Shopov)
 - Catalan (Jordi Mas)
 - Chinese (China) (Luming Zh, Boyuan Yang)
 - Croatian (Goran Vidović)
 - Czech (Marek Černocký)
 - Danish (Alan Mortensen)
 - Finnish (Jiri Grönroos)
 - French (Claude Paroz)
 - Galician (Fran Dieguez)
 - Hungarian (Balázs Úr)
 - Indonesian (Kukuh Syafaat)
 - Korean (Changwoo Ryu)
 - Lithuanian (Aurimas Černius)
 - Persian (Danial Behzadi)
 - Polish (Piotr Drąg)
 - Portuguese (Hugo Carvalho)
 - Portuguese (Brazil) (Leônidas Araújo)
 - Russian (Aleksandr Melman)
 - Slovenian (Matej Urbančič)
 - Spanish (Daniel Mustieles)
 - Swedish (Luna Jernberg)
 - Turkish (Emin Tufan Çetin)
 - Ukrainian (Yuri Chornoivan)

Overview of changes in GLib 2.73.3, 05-08-2022
==============================================

* Revitalize G_REGEX_OPTIMIZE flag and use it to enable PCRE JIT compiler (work
  by Aleksei Rybalkin) (!2817)

* Fix some regressions due to the PCRE2 port (work
  by Aleksei Rybalkin, Mamoru TASAKA and Marco Trevisan) (!2814, !2827, #2694,
  #2699, #2700)

* Fix a pidfd leak that was introduced in the previous release (work by
  Christian Hergert) (#2708)

* Support compilation without a C++ toolchain (work by James Hilliard) (!2822)

* GDBus: Use namespace-friendly protocol for Linux message buses, and optionally
  other connections (work by Simon McVittie) (!2832)

* Fix potential races in multi-threaded signal connections handling (work by
  Marco Trevisan) (!2823)

* Add back gio-launch-desktop to redirect stdout/stderr of launched
  GDesktopAppInfo's to the journal with proper parent (work by Simon McVittie)
  (!2818, !2819, #2682)

* Executables that are invoked when installing other software, typically
  from packaging system triggers, can now be installed into
  architecture-dependent locations. Unix OS distributors who install
  GLib for more than one architecture in parallel (multiarch or multilib
  installations) should consider building with -Dmultiarch=true, installing
  the bin/glib-compile-schemas and bin/gio-querymodules symbolic links in
  packages for the primary architecture, and omitting those symlinks from
  packages for secondary architectures. (work by Simon McVittie) (!2818)

* Some enumerators introduced in previous releases have been changed, for better
  introspection results:
  - G_MARKUP_PARSE_FLAGS_NONE renamed to G_MARKUP_DEFAULT_FLAGS
  - G_TLS_CERTIFICATE_FLAGS_NONE renamed to G_TLS_CERTIFICATE_NO_FLAGS
  - G_APPLICATION_FLAGS_NONE was deprecated, use G_APPLICATION_DEFAULT_FLAGS now
  (work by Emmanuele Bassi) (!2835)

* gfileinfo: Implement xattr attribute removal (work by madmurphy) (#1187)

* Add support to --delete option to gio set, to unset a file attribute (work by
  codeboybebop) (#2588)

* Improve default value of glib_debug option: G_ENABLE_DEBUG will be defined
  only if using `--buildtype=debug` or enabled via `-Dglib_debug`, but it
  won't ever be set if an optimized build is requested (specifically if the
  optimization level is not `0` or `g`) as it may be the case when using
  `--buildtype=debugoptimized` (work by Michael Catanzaro) (!2851)

* Probably the first revision of any GNOME module ever released from Cuba :)

* Bugs fixed:
 - #566 support using the PCRE JIT
 - #1187 xattr add possibility to remove an extended attribute
 - #2509 g_spawn_*() is not thread-safe on Windows when an environment table is
   provided
 - #2542 Flatten line breaks in filenames printed by gio-tool
 - #2588 gio-tool: -d option to delete attribute
 - #2682 Launching a GDesktopAppInfo "blames" parent process for its output
 - #2692 2.73.2: build failure on musl >= 1.2.0
 - #2694 Recent GRegex changes break vala-language-server compilation
 - #2699 g_regex_match_all fails on s390x with Fedora glib2-2.73.2-4.fc37
 - #2700 g_regex_match fails on multiple archs (including x86_64) with Fedora
 - #2703 Fix GCancellable tests for Windows 64bit
   glib2-2.73.2-4.fc37
 - #2705 GResourceFile crashes on `g_file_set_display_name()`
 - #2708 pidfd leak causes processes to run out of file-descriptors
 - !2299 GWin32AppInfo: Fix PID reporting in launched signal
 - !2759 Use atomic exchange operations more
 - !2812 ci: Setup submodules and subprojects before building on dist
 - !2813 Add missing extension point register for various settings backends
 - !2814 gregex: use %s format specifier for localized error message
 - !2815 giomodule: Use g_once_init_enter/leave to register extensions and load dirs
 - !2818 gio: Optionally install trigger executables to architecture-specific paths
 - !2822 meson: fix build without cpp toolchain
 - !2823 gsignal: Perform signal unlocked handlers block, unblock and disconnect ops
 - !2825 gioenums: G_IO_ERROR_NO_SUCH_DEVICE is new in 2.74
 - !2826 GDBus: improve interoperability of SASL handshake
 - !2827 gregex: Free match info if offset matching recalc failed
 - !2829 gregex: use g_debug instead of g_warning in case JIT is not available
 - !2830 goption: Slightly improve the documentation for G_OPTION_FLAG_REVERSE
 - !2832 GDBus: Use namespace-friendly protocol for Linux message buses, and
   optionally other connections
 - !2833 Fix installed-tests failures
 - !2835 Introduce G_APPLICATION_DEFAULT_FLAGS
 - !2836 gio-launch-desktop: Only replace fds that point to the Journal
 - !2851 Improve default value of glib_debug option
 - !2853 Expose tls-exporter channel binding
 - !2854 docs: Add --delete option to gio-tool attributes documentation

* Translation updates:
 - Abkhazian
 - Basque
 - Georgian
 - Hebrew
 - Persian
 - Portuguese
 - Russian
 - Turkish
 - Ukrainian

* Contributors:
  Aleksandr Melman, Aleksei Rybalkin, Asier Sarasua Garmendia, Christian Hergert,
  codeboybebop, Danial Behzadi, Emin Tufan Çetin, Emmanuele Bassi,
  Giuseppe Scrivano, Hugo Carvalho, James Hilliard, Luca Bacci, madmurphy,
  Mamoru TASAKA, Marco Trevisan, Matthias Clasen, Michael Catanzaro,
  Nart Tlisha, Owen Rafferty, Philip Withnall, Ryan Hope, Simon McVittie,
  Yosef Or Boczko, Yuri Chornoivan, Zurab Kargareteli.

Overview of changes in GLib 2.73.2, 12-07-2022
==============================================

* Replace PCRE1 with PCRE2: This is a major change to drop the libpcre1
  dependency and use libpcre2 instead, while preserving the behaviour and API of
  GRegex. G_REGEX_OPTIMIZE and G_REGEX_JAVASCRIPT_COMPAT are now deprecated
  and became a no-op, while other flags are adapted accordingly to the new API
  (work by Aleksei Rybalkin, Philipp Withnall) (!2529, #1085)

* Preserve destruction order in gdataset, fixing various crashes during
  objects disposal (work by Peter Bloomfield) (!2776, #2672, #2676)

* Require C99 __VA_ARGS__ (work by Emmanuele Bassi) (!2791, #2681)

* Add NONE or DEFAULT members to most flags types (work by Simon McVittie) (!2576)

* GFile: Add some missing async APIs (work by Marco Trevisan) (!2717)

* Improve internal and process documentation (work by Philipp Withnall) (!2763)

* Add atomic compare-and-exchange APIs returning previous value (work by Marco
  Trevisan) (!2766)

* Add G_DEFINE_ENUM_TYPE and G_DEFINE_ENUM_VALUE macros (work by Emmanuele Bassi)
  (!2788)

* Add platform-independent G_ALWAYS_INLINE and G_NO_INLINE (work by Marco Trevisan)
  (!2781)

* Use waitid() on pidfds rather than a global SIGCHLD handler (work by Philip
  Withnall) (!2408)

* Bugs fixed:
 - #1434 Move tests/* into */tests/
 - #2216 Chain signal handlers for SIGCHLD
 - #2597 Crash in g_socket_client_enumerator_callback when proxy resolving
 - #2659 /maincontext/timeout-once randomly fails
 - #2681 Set C99's `__VA_ARGS__` as a toolchain hard requirement
 - #2672 Finalization speedup (commit fa8c7c0da) causes crash in gtk3 demo
 - #2676 gnome-shell assertion failure with GLib 2.73.1 while
         g_object_real_dispose() cleans up weak refs
 - #2687 Regression: in GLib 2.72.3, in gsocketclient/cancellable
 - !1717 Add lock in _g_get_unix_mount_points() around *fsent() functions
 - !2408 gmain: Use waitid() on pidfds rather than a global SIGCHLD handler
 - !2529 gregex: replace pcre1 with pcre2
 - !2576 Add a NONE or DEFAULT member to most flags-sets
 - !2667 test: Potentially fix a race in thread-pool-slow test
 - !2706 Add more SPDX license headers
 - !2717 gfile (and GAppInfo): Add some missing async APIs and ensure async calls
         always use them
 - !2744 fuzzing: Add fuzz test for g_uuid_string_is_valid()
 - !2748 docs: Add a testing policy
 - !2749 tests: Various fixes for TAP output of tests
 - !2755 docs: Sync glib.doap to set of users listed in CODEOWNERS
 - !2763 docs: Document the release process
 - !2766 gatomic: Add Compare and Exchange functions that returns the previous value
 - !2770 Correct documentation of g_atomic_pointer_exchange
 - !2771 use gvdb as a subproject
 - !2772 gobject/tests/performance: fix leaks
 - !2773 gdatetime test: Consistently expect %k to generate a figure space
 - !2774 tests: Fix type mismatches in new atomic tests when compiling with clang
 - !2775 gthread: Some code cleanups and fixes
 - !2776 gdataset: Preserve destruction order
 - !2779 tests: Fix macOS failures in the file tests
 - !2781 gmacros: Provide platform-independent G_ALWAYS_INLINE and G_NO_INLINE
 - !2782 ci: Update CI images to add gdb and pcre2
 - !2783 _g_get_unix_mount_points(): reduce syscalls inside loop
 - !2784 Revert "gobject: Use g_datalist_id_remove_multiple"
 - !2785 tests: Fix incorrect basename comparison in gsubprocess test
 - !2786 gcontenttype: Fix a potential use-after-free of xdgmime data
 - !2788 Add G_DEFINE macros for enum and flags types
 - !2789 gdate: Fix a typo in a code comment
 - !2790 tests: Skip assert-msg-test.py if gdb is non-functional
 - !2791 Require C99's __VA_ARGS__
 - !2792 ci: Ensure git submodules are updated before running macOS CI
 - !2794 gobject: Don't skip custom dispatch_properties_changed
 - !2795 gkeyfile: Remove some unreachable code
 - !2796 gmodule: Improve error handling for invalid .la files
 - !2797 gio: Add some missing license and copyright headers
 - !2798 Remove occurrences of unused-results warnings and mark them as errors
 - !2800 gbacktrace: Handle case of strerror_r returning an int value
 - !2801 gobject: Small speedup in weak-ref-set
 - !2802 gobject/tests/custom-dispatch: Add few more tests
 - !2804 gthreadpool: Ensure all unused threads are really counted as stopped
 - !2805 gthread-posix: Do not do unguarded and non-atomic assignment of an atomic
 - !2807 ci: Specify -Wno-overlength-strings on macOS
         build: Specify -Werror=pointer-sign
 - !2808 gsocketclient: Fix passing NULL to g_task_get_cancellable()
 - !2809 gio/tests/desktop-app-info: Wait until the callback is called

* Translation updates:
 - Lithuanian
 - Persian
 - Portuguese
 - Russian
 - Serbian
 - Ukrainian

* Contributors:
  Aleksandr Melman, Aleksei Rybalkin, Aurimas Černius, Danial Behzadi,
  Emmanuele Bassi, Emmanuel Fleury, ericLemanissier, Hugo Carvalho,
  Marc-André Lureau, Marco Trevisan (Treviño), Matthias Clasen,
  Michael Catanzaro, Michael Vetter, Peter Bloomfield, Philip Withnall,
  Rozhuk Ivan, Simon McVittie, Yuri Chornoivan, Мирослав Николић

Overview of changes in GLib 2.73.1
==================================

* Remove the `-Diconv` configure option, as GLib now uses Meson’s built-in logic for
  finding which iconv implementation to use (work by Eli Schwartz) (!2734)

* Move gvdb to a Meson subproject and git submodule to avoid duplicating its
  source (work by Philip Withnall) (!2733)

* Add `add_test_setup()` in Meson to allow GLib tests to be run under valgrind
  with correct settings easily, using `meson test --setup=valgrind` (work by
  Philip Withnall) (!2752)

* Fix deadlocks when disposing non-cancelled inotify `GFileMonitor`s (work by
  Benjamin Berg) (#1941)

* Fix `file://` requests in webkit2gtk due to incorrect xdgmime update (work by
  Stephen Jung, Michael Catanzaro, Philip Withnall) (#2639)

* Fix build errors on macOS ≤10.7 for `LOCAL_PEERPID` (work by Christopher Nielsen) (!2707)

* Add new `g_atomic_int_exchange()` and `g_atomic_pointer_exchange()` APIs (work
  by Marco Trevisan) (!2726)

* Add new `GListStore:n-items` property to allow easy binding in UIs (work by
  Benjamin Otte) (!2738)

* Performance improvements for GObject construction and destruction (work by
  Matthias Clasen) (#2661, #2665, #2666, !2678, !2700, !2705, !2712, !2713,
  !2714, !2715, !2716, !2721, !2722, !2723, !2724, !2725, !2756)

* Use a numeric space (U+2007) for padding with some `g_date_time_format()`
  placeholders (work by Maksym Hazevych) (#2655)

* Fix a slow memory leak in `GSocketClient` when using long-lived `GCancellable`s
  (work by Jens Georg) (#2670)

* Bugs fixed:
 - #1941 disposing a non-cancelled inotify GFileMonitor causes deadlocks
 - #2639 xdgmime update breaks webkit2gtk file:// requests
 - #2655 Use the numeric space for the DateTime.format()'s `\%l` specifier
 - #2656 2.73.0: test suite is failing in `glib:gobject / object` unit
 - #2661 Speeding up type checks for final types (commit 0ddea2d8e) breaks C++ bindings
 - #2665 GObject speed up causes gtk3 apps to crash :(
 - #2666 GObject speedup causes warnings with custom constructors
 - #2670 Growing memory when using cancellable in g_socket_client_connect_async
 - !2670 docs: Add a backports policy
 - !2678 Speed up property lookup
 - !2681 docs: Add a roadmap policy
 - !2692 tests: Drop redundant collate test data files
 - !2694 Restore macOS CI
 - !2696 Move tests/gobject/testgobject.c to gobject/tests/basics-gobject.c
 - !2697 Delete tests/gobject/timeloop-closure.c
 - !2700 gtype: Speed up type checks for final types
 - !2701 gsocketaddressenumerator: add nullable annotation to the result of `next`
 - !2702 tests: Fix a potential race condition in pollable test
 - !2704 tests: Remove various bits of overly-verbose test output
 - !2705 gobject: Drop an unused quark
 - !2707 credentials: macos: check for existence of LOCAL_PEERPID
 - !2710 ci: Try reducing FD soft limit to fix valgrind tests
 - !2711 tests: Various small test fixes for valgrind
 - !2712 Improve the GObject performance test
 - !2713 Simplify g_object_new_with_properties
 - !2714 Simplify g_object_notify_by_pspec
 - !2715 Don't inline deprecation warnings
 - !2716 Don't copy values in g_object_new
 - !2719 Add nullable annotation to return value of `g_variant_dict_lookup_value`.
 - !2721 Avoid g_object_ref/unref in some cases
 - !2722 Avoid g_param_spec_get_redirect_target
 - !2723 Avoid g_type_class_peek
 - !2724 gobject: Avoid redundant atomics
 - !2725 Keep a separate flag for notify handlers
 - !2726 gatomic: Add APIs to perform atomic int / pointer exchanges
 - !2729 tests: Reduce number of threads in once test under valgrind
 - !2730 garray: Fix NULL-termination of GPtrArray copies
 - !2731 tests: Various static analysis fixes
 - !2732 gobject: Sink floating pspecs if adding them to a class fails
 - !2733 build: Move gvdb to a subproject
 - !2734 meson: simplify iconv/intl lookups using Meson's builtin dependency lookup
 - !2735 tests: Move GObject performance tests to gobject/tests/performance/
 - !2738 liststore: add n-items property
 - !2739 gobject-query: Minor cleanups and add unit tests
 - !2740 gbinding: Remove some duplicated code for checking property names and improve tests slightly
 - !2747 gobject: Change GObject notify semantics under static analysis
 - !2751 glib-unix: Mark GLib.unix_open_pipe fds input array as fixed-size
 - !2752 build: Use add_test_setup() to allow tests to be run under valgrind
 - !2753 xdgmime: fix double free
 - !2754 docs: Add Marco Trevisan as a co-maintainer
 - !2756 gobject: Fix crash when disposing a GtkAccelGroup
 - !2758 gio: Don't bundle gtrace in static builds
 - !2761 gtlscertificate: Hold a ref on the root certificate when building chains
 - !2762 gsignal: Change signal instance ref semantics under static analysis

* Translation updates:
 - Georgian
 - Hebrew


Overview of changes in GLib 2.73.0
==================================

* Support nanosecond time precision in file attributes (work by Nitin Wartkar) (#369)

* Add `g_list_store_find_with_equal_func_full()` API to make `GListStore` more
  introspection friendly (work by Jason Francis) (#2447)

* Document some GLib maintenance policies a bit better (work by
  Nirbheek Chauhan, Philip Withnall) (#2596, !2648, !2649, !2664)

* Remove FAM/gamin file monitor and `-Dfam` meson option, as libgamin was last
  released in 2007 and is dead upstream (work by Emmanuele Bassi) (#2605)

* Fix futex timespec type on 32-bit kernels with 64-bit userspace (#2634)

* Deprecate g_dtls_client_connection_set_validation_flags() (work by Michael Catanzaro) (#2646)

* Add support for automatically `NULL`-terminated `GPtrArray`s (work by Thomas Haller) (!1485)

* A lot of cleanup of warnings and old tests (work by Emmanuel Fleury)

* Various compilation and test fixes on Windows (work by Marc-André Lureau)
  (!2499, !2540, !2569, !2582, !2592, !2599, !2600, !2656)

* Fix detection of broken `poll()` implementation on macOS, broken since the
  port to Meson (work by Haruka Ma) (!2571)

* Add additional flags to `g_spawn_async_with_pipes_and_fds()` to make it more
  easily introspectable (work by Nicola Fontana) (!2632)

* Initial (incomplete) support for REUSE licensing (work by Philip Withnall) (!2663, !2665, !2666)

* GObject construction performance improvements (work by Matthias Clasen) (!2672, !2673, !2674, !2677, !2680, !2690)

* Add `g_idle_add_once()` and `g_timeout_add_once()` for one-shot sources (work by Emmanuele Bassi) (!2684, !2693)

* Simplify zlib dependency resolution using new built-in Meson support for it (work by Eli Schwartz) (!2685)

* Bugs fixed:
 - #369 file copy doesn't preserve nanosecond timestamps
 - #2312 gdbus-test-codegen tests leak GWeakRef objects
 - #2447 g_list_store_find_with_equal_func is not binding friendly
 - #2596 Policy on meson requirement bumping
 - #2605 Update Android CI to support API level 31
 - #2614 Remove FAM/gamin file monitor
 - #2625 g_warning_once fails to build with clang++
 - #2629 g_file_trash() does not work on directories inside a sandbox
 - #2633 Recent updates in gstdio.h breaks ABI on 64-bit MSVC builds
 - #2634 g_cond_wait_until: returning FALSE immediately on mips24
 - #2640 UWP warnings about extensions and verbs with glib 2.72.1
 - #2646 Should g_dtls_client_connection_set_validation_flags etc. be deprecated?
 - #2653 pango fails to build against glib main
 - !1485 array: add support for g_ptr_array_null_terminated()
 - !2449 Fix test suite on Windows
 - !2494 Cleanup warnings split 5
 - !2495 Cleanup warnings split 6
 - !2496 Cleanup warnings split 7
 - !2497 Cleanup warnings split 8
 - !2498 Cleanup warnings split 9
 - !2499 Various contenttype-related test fixes on win32
 - !2521 gobject: Add g_signal_group_connect_closure
 - !2534 gpowerprofilemonitor: Tweak wording of documentation to make more sense
 - !2539 Convert tests/gio-test.c to g_test framework
 - !2540 Various win32 tests skip & fixes
 - !2541 meson: simplify lookup of python command
 - !2543 ci: Update the Fedora CI image to Fedora 34
 - !2545 gutils: Add flags to g_format_size_full() to return only value or only units
 - !2550 Moving gobject tests from tests/gobjects to gobjects/tests
 - !2553 Moving tests/refcount/ directory to gobject/tests/
 - !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
 - !2562 tests: Call openpty (if available) without using dlsym
 - !2563 glib: Format GDateTime ISO8601 years as %C%y
 - !2564 Move test files on slices from tests/ to glib/tests/
 - !2565 Revert "meson: simplify lookup of python command"
 - !2566 tests: Add more tests for GResolver response parsing
 - !2567 tests: Fix compilation when GLIB_DISABLE_DEPRECATION_WARNINGS is defined
 - !2569 Various win32 tests fixes
 - !2571 meson: Set BROKEN_POLL in macOS builds
 - !2572 gversionmacros: Add version macros for GLib 2.74
 - !2575 Move tests/spawn-test.c -> glib/tests/spawn-test.c
 - !2577 build: Post-release version bump to 2.73.0
 - !2579 Slice test
 - !2580 Moving slice-threadinit.c test to glib/tests/
 - !2581 Move tests/unicode-encoding.c to glib/tests/unicode-encoding.c
 - !2582 glib/win32: fix spawn from GUI regression
 - !2584 Move msvc warnings in meson.build file
 - !2585 GUnixFDList: Include only in unix build
 - !2586 Move test tests/unicode-normalize.c to glib/tests/
 - !2589 tests: Don’t exit gdbus-method-invocation test early on connection close
 - !2591 tests: Remove an incorrect assertion in converter-stream
 - !2592 gio/tests: DuplicateHandle() is inappropriate for SOCKET
 - !2594 ci: Expire CI artifacts after 1 week
 - !2597 tests: Make a string comparison on an error string more relaxed
 - !2598 ci: Combine style-check-diff and check-todos jobs into one
 - !2599 Various socket-related fixes for win32
 - !2600 GDate: Fix tests on Windows on certain locales
 - !2601 Move tests/onceinit.c to glib/tests/onceinit.c
 - !2602 tests: Ensure NormalizationTest.txt is installed for installed-tests
 - !2603 tests: Use G_TEST_OPTION_ISOLATE_DIRS in gdbus-peer-object-manager
 - !2604 tests: Reduce wakeup interval in gdbus-threading
 - !2606 tests: Fix a minor leak in the unicode-normalize test
 - !2607 Moving tests/mapping-test.c to glib/test/mapping.c
 - !2608 Fixes in tests
 - !2609 Remove tests/timeloop.c and tests/timeloopbasic.c
 - !2610 Expand tests on gbookmark file API
 - !2612 docs: Expand G_DEFINE_BOXED_TYPE docs with more detailed example
 - !2613 gtestutils: Include stdlib.h for exit function
 - !2614 Add inout annotations for g_iconv
 - !2615 Meson: Fix gio-windows-2.0 override name
 - !2617 gmessages: Error if g_log_set_writer_func() is called multiple times
 - !2619 gversion: Clarify that GLIB_CHECK_VERSION is a >= check
 - !2621 Fix the annotation of g_utf8_strncpy()
 - !2624 Expand ghook unit tests for a better coverage and add more checks
 - !2625 gsocket: Add assertions about socket address sizes for memcpy()
 - !2626 gio-tool: Fix a minor memory leak when using gio-set with bytestrings
 - !2627 gopenuriportal: Fix a use-after-free on an error path
 - !2628 Fix various scan-build warnings
 - !2630 build: Move lcovrc file to root so it’s picked up by Meson
 - !2631 Cast to ptrdiff_t instead of subtracting by null
 - !2632 g_spawn_async_with_pipes_and_fds uses out parameters as inputs
 - !2633 Fix closure annotations in callbacks' user data parameters
 - !2634 Move tests/threadpool-test.c to glib/test/thread-pool-slow.c
 - !2635 Add a couple of assertions to help with static analysis
 - !2636 ghmac: Fix some signed/unsigned issues with g_checksum_update()
 - !2637 guri: Preallocate a buffer for building URIs
 - !2638 fuzzing: Only set the writer function once
 - !2639 Move tests/thread-test.c to glib/tests/thread-deprecated.c
 - !2642 meson: Check rres.compiled() before calling rres.returncode()
 - !2645 Remove unnecessary test tests/mainloop-test.c duplicated in glib/tests/mainloop.c
 - !2646 Add some more assertions to help scan-build out
 - !2648 docs: Add a code of conduct document
 - !2649 Various updates to documentation and misc files in the root directory
 - !2650 meson: Use range() instead of listing all stable versions
 - !2651 Replace single quotes in gio/tests/codegen.py
 - !2652 resources: Hide external data symbol
 - !2653 build: Remove a few Meson workarounds and FIXMEs
 - !2654 gtask: use g_strconcat() in g_task_return() only if needed
 - !2655 Fix typo in gio/meson.build
 - !2656 gio: various unix/fd-related enablement on win32
 - !2657 ci: Temporarily allow failure of macOS CI runner until it’s fixed
 - !2658 tests: Fix a double-close of a GSource in tests
 - !2659 Cleaning a file left behind by glib/tests/bookmarkfile.c test case
 - !2660 Move tests/module-test.c to gmodules/tests/
 - !2663 docs: Initial REUSE licensing support
 - !2664 docs: Add compiler and toolchain requirements from the wiki
 - !2665 glib/gio/tests: Add SPDX license headers automatically
 - !2666 fuzzing: Add copyright/licensing headers to fuzzing files
 - !2669 Add a Unicode testcase
 - !2671 Add another Unicode testcase
 - !2672 gtype: small optimization
 - !2673 param: Avoid strcmps
 - !2674 Avoid g_type_peek_value_table
 - !2675 docs: Use G_PARAM_STATIC_STRINGS in examples and explain it more
 - !2677 param: Add a value_is_valid vfunc
 - !2679 Rename user data parameters to user_data
 - !2680 Speed up object finalization
 - !2684 Add one-shot idle and timeout functions
 - !2685 meson: use builtin dependency lookups for zlib
 - !2686 gitlab-ci: remove meson-junit-report.py conversion
 - !2687 gitlab-ci: left-over from junit cleanup
 - !2688 gparamspecs: Remove redundant NULL checks
 - !2689 build: update sysprof configuration options
 - !2690 gobject: Keep a count of construct params
 - !2693 gmain: Refactor idle-once and timeout-once to avoid a closure allocation

* Translation updates:
 - Basque
 - Bulgarian
 - Catalan
 - Croatian
 - Czech
 - Danish
 - English (United Kingdom)
 - French
 - Galician
 - German
 - Hungarian
 - Indonesian
 - Italian
 - Lithuanian
 - Nepali
 - Polish
 - Portuguese
 - Portuguese (Brazil)
 - Russian
 - Slovenian
 - Spanish
 - 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
