Overview of changes in GLib 2.80.4, 2024-07-08
==============================================

* Bugs fixed:
  - #3394 GLib unit tests fail on macOS runner due to localhost being out of
    addresses (Philip Withnall)
  - #3401 Random failures to build glib 2.80.3 (Philip Withnall)
  - !4112 Backport !4111 “gioerror: Map EADDRNOTAVAIL to
    G_IO_ERROR_CONNECTION_REFUSED” to glib-2-80
  - !4118 Backport !3373 and !4117 “Handle files >4GB in g_file_load_contents()“
    to glib-2-80
  - !4124 Backport !4020 and !4122: fixes to GIR install locations and build
    race fixes
  - !4141 Backport !4110 “gthreadedresolver: ref-sink returned records in
    lookup_records()” to glib-2-80


Overview of changes in GLib 2.80.3, 2024-06-10
==============================================

* Bugs fixed:
  - #3184 g_socket_client_connect_to_host_async leaks memory when target host
    doesn't respond to ARP (Philip Withnall)
  - #3303 gi_repository_find_by_gtype is nondeterministic (Philip Withnall)
  - #3366 Crash in error path of g_dbus_connection_export_menu_model() (Philip
    Withnall)
  - !4060 Backport !4057 “gdbusmessage: Clean the cached arg0 when setting the
    message body” to glib-2-80
  - !4061 Backport !4058 “Tests: Build fixes when running `meson test` without
    previous builds“ to glib-2-80
  - !4070 Partially backport !4059 “tests: Fix various memory leaks and valgrind
    / ASAN errors” to glib-2-80
  - !4072 Backport !4066 “Fix several GCC 14 warnings to please msys2-mingw32
    CI” to glib-2-80
  - !4074 Backport !4065 “girepository: Don't assume a bitfield has a fixed
    size” to glib-2-80
  - !4077 Backport !4073 “gmenuexporter: Fix a NULL pointer dereference on an
    error handling path” to glib-2-80
  - !4079 Backport !4078 “tests: Fix clang compilation failure due to
    unrecognised option in pragma” to glib-2-80
  - !4080 Backport !4033 “girepository: Keep an ordered list of the loaded
    typelibs” to glib-2-80
  - !4105 Backport !4104 “gsocketclient: Fix a leak of the task data on an error
    path” to glib-2-80

* Translation updates:
  - Catalan (Jordi Mas i Hernandez)
  - Slovak (Jose Riha)


Overview of changes in GLib 2.80.2, 2024-05-08
==============================================

* Fix a regression with IBus caused by the fix for CVE-2024-34397 (#3353,
  work by Simon McVittie)

* Fix installation directory of the GVariant specification (#3351, work by
  Michael Catanzaro)

* Bugs fixed:
  - #3351 GVariant specification installed in wrong directory (Michael
    Catanzaro)
  - #3353 Fixing CVE-2024-34397 caused regressions for ibus (Simon McVittie)
  - !4052 Backport "gdbusconnection: Fix test signal subscription ordering" to
    glib-2-80
  - !4054 Backport !4049 “Correct installation directory of GVariant
    specification” to glib-2-80
  - !4055 Backport !4053 “gdbusconnection: Allow name owners to have the syntax
    of a well-known name” to glib-2-80

Overview of changes in GLib 2.80.1, 2024-05-07
==============================================

* Fix CVE-2024-34397: GDBus signal subscriptions for well-known names are
  vulnerable to unicast spoofing (#3268, work by Simon McVittie, reported by
  Alicia Boya García)

* Bugs fixed:
  - GNOME/tracker-miners#315 3.7.0 - GLib-GIO-WARNING **: 09:27:12.186: Error
    creating IO channel for /proc/self/mountinfo: Invalid argument (g-io-error-
    quark, 13) (Ondrej Holy)
  - #3268 CVE-2024-34397: GDBus signal subscriptions for well-known names are
    vulnerable to unicast spoofing (Simon McVittie)
  - #3287 Devhelp does not show indexes for GLib, GIO, or GObject (Philip
    Withnall)
  - #3289 readlink -f fails in CI on macOS (Simon McVittie)
  - #3342 Crash in gdbus schedule_callbacks() due to missing NULL check before
    g_str_equal() (Philip Withnall)
  - !3954 [th/performance] add script for combining performance results
  - !3959 [th/gobject-toggle-refs-check] Fix critical warning for toggle
    notifications in g_object_ref()/g_object_unref()
  - !3962 meson: Fix a needless recompilation of some gdbus tests
  - !3966 girparser: Don't assume sizeof(size_t) == sizeof(void *)
  - !3967 girparser: Allow time_t, off_t, etc. to appear in GIR XML
  - !3969 Ported the first few documentation comments in `gio/gaction.c` to gi-
    docgen
  - !3970 girparser: Make sizes in integer_aliases more obviously correct
  - !3972 girparser: Adjust signedness() macro
  - !3973 glib/gvariant: fix compile error with GCC 14.0.1
  - !3974 tests: Mark several additional tests as can_fail on GNU Hurd
  - !3981 Backport !3979 "Use CPU_COUNT to get the number of set CPUs" to
    glib-2-80
  - !3992 Backport !3989 “completion: make gsettings work in nounset mode” to
    glib-2-80
  - !4004 Backport "Remove unused cmph files" for glib-2-80
  - !4021 Backport !4019 “gunixmounts: Use fallback if libmount monitoring
    fails” to glib-2-80
  - !4025 Backport !4005 “Fix various bugs found by scan-build“ to glib-2-80
  - !4029 Backport !4028 “gdbusconnection: Fix a crash on arg0 matching” to
    glib-2-80
  - !4032 Backport !4031 “gdocumentportal: Handle EROFS and similar errors more
    gracefully” to glib-2-80
  - !4039 Backport !4038 “gdbusconnection: Don't deliver signals if the sender
    doesn't match” to glib-2-80

* Translation updates:
  - Czech (Daniel Rusek)
  - Danish (Ask Hjorth Larsen)
  - French (Vincent Chatelain)
  - Galician (Fran Dieguez)
  - Georgian (Ekaterine Papava)
  - German (Christian Kirbach)
  - Indonesian (Andika Triwidada)
  - Italian (Milo Casagrande)
  - Kabyle (Athmane MOKRAOUI, Rachida SACI)
  - Korean (Changwoo Ryu)
  - Latvian (Rūdolfs Mazurs)
  - Persian (Danial Behzadi)
  - Polish (Piotr Drąg)
  - Portuguese (Hugo Carvalho)
  - Portuguese (Brazil) (Leônidas Araújo, Juliano de Souza Camargo)


Overview of changes in GLib 2.80.0, 2024-03-07
==============================================

* Bugs fixed:
  - #3271 GLib: string malformed for gettext (Philip Withnall)
  - !3940 tests: Don’t run check-missing-install-tag.py test under valgrind
    (Philip Withnall)
  - !3946 Add missing argument placeholders to several command-line tools (Simon
    McVittie)
  - !3947 docs: Fix a typo in the macros docs page (Philip Withnall)
  - !3951 g_warn_if_fail: Document as always evaluating expr (Simon McVittie)
  - !3953 docs: Specify gi-docgen as a native dependency (Bobby Rong)
  - !3955 docs: Fix building with docs enabled and introspection disabled (Bobby
    Rong)
  - !3956 docs: Minor improvements to GSignal documentation (Philip Withnall)

* Translation updates:
  - Basque (Asier Sarasua Garmendia)
  - British English (Andi Chandler, Bruce Cowan)
  - Chinese (China) (Luming Zh)
  - Czech (Daniel Rusek)
  - Georgian (Ekaterine Papava)
  - Hebrew (Yaron Shahrabani)
  - Hungarian (Balázs Úr)
  - Kazakh (Baurzhan Muftakhidinov)
  - Lithuanian (Aurimas Černius)
  - Norwegian Bokmål (Brage Fuglseth)
  - Persian (Danial Behzadi)
  - Russian (Artur S0)
  - Slovenian (Matej Urbančič)
  - Spanish (Daniel Mustieles)
  - Swedish (Anders Jonsson)
  - Turkish (Sabri Ünal)
  - Ukrainian (Yuri Chornoivan)


Overview of changes in GLib 2.79.3, 2024-02-27
==============================================

* Various consistency improvements to the command line libgirepository tools
  (!3926, !3927, !3928, !3930, work by Simon McVittie)

* Bugs fixed:
  - #3080 Gimp GTK file chooser hang when a remote file is open (Luca Bacci)
  - #3210 Critical using Open location: GWinHttpFile doesn’t set
    G_FILE_ATTRIBUTE_STANDARD_TYPE (Luca Bacci)
  - #3252 [2.79.1] gdatetime installed tests fails on s390x (Simon McVittie)
  - #3255 g_base_info_clear on zero-initialized stack-allocated introspection
    info (Philip Withnall)
  - #3258 Possible memory leak in GUnixVolumeMonitor (Ondrej Holy)
  - #3260 Add man pages for girepository tools
  - #3262 msys2-mingw32 build failing with error code 3221225785 (0xc0000139)
    (Philip Withnall)
  - #3263 Ensure girepository tools are translatable (Philip Withnall)
  - #3266 Use-after-free in gsocketclient.c:connection_attempt_remove() (Philip
    Withnall)
  - #3271 GLib: string malformed for gettext (Philip Withnall)
  - !3918 tests: Don’t run lint tests under valgrind
  - !3919 tests: Speed up threaded toggle notify test unless -m slow is passed
  - !3921 ci: Fix printing the execution environment
  - !3922 gdatetime test: Produce more helpful output on mismatches
  - !3923 girepository test: Don't assume doubles are naturally-aligned
  - !3925 girwriter: Take the GIRepository as a parameter
  - !3926 gi- tools: Remove unused options, improve --debug/--verbose
  - !3927 g-ir-compiler: Only accept one input file
  - !3928 gi-decompile-typelib: Interpret --includedir as most-important-first
  - !3930 migrating-gi: Document command-line option removals
  - !3935 Restrict macOS CI to origin
  - !3937 girepository: Fix static build under Windows
  - !3945 tests: Remove variable-length lookbehind tests for GRegex

* Translation updates:
  - Basque (Asier Sarasua Garmendia)
  - Catalan (Jordi Mas i Hernandez)
  - Chinese (China) (Boyuan Yang)
  - Czech (Daniel Rusek)
  - Galician (Fran Dieguez)
  - Georgian (Ekaterine Papava)
  - Hebrew (Yaron Shahrabani)
  - Indonesian (Andika Triwidada)
  - Kazakh (Baurzhan Muftakhidinov)
  - Latvian (Rūdolfs Mazurs)
  - Lithuanian (Aurimas Černius)
  - Persian (Danial Behzadi)
  - Russian (Artur S0)
  - Slovenian (Matej Urbančič)
  - Spanish (Daniel Mustieles)
  - Turkish (Sabri Ünal, Emin Tufan Çetin)
  - Ukrainian (Yuri Chornoivan)


Overview of changes in GLib 2.79.2, 2024-02-12
==============================================

* More work to reduce lock contention and improve performance in GObject (#743,
  !3869, !3873, work by Thomas Haller)

* More API changes to libgirepository, which is now stable as of this release
  (#3155, #3217, #3218, #3231, #3234, #3243, #3244, #3245, #3246, work by
  Philip Chimento, Evan Welsh, Philip Withnall)

* Import `g-ir-compiler`, `g-ir-generate` and `g-ir-inspect` from
  gobject-introspection.git and update them to work with girepository-2.0,
  renaming them to `gi-compile-repository`, `gi-decompile-typelib` and
  `gi-inspect-typelib` (see docs/reference/girepository/migrating-gi.md) (!3853,
  !3909, work by Evan Welsh, Philip Withnall)

* Add new `GLibUnix-2.0.gir`, `GLibWin32-2.0.gir`, `GioUnix-2.0.gir` and
  `GioWin32-2.0.gir` GIRs which contain platform specific APIs, and are the
  preferred way for third parties to access those APIs in future; although
  platform specific APIs which were already exposed in `GLib-2.0.gir` and
  `Gio-2.0.gir` continue to be listed there; the underlying `.so` files have not
  changed (!3892, work by Philip Withnall)

* Bugs fixed:
  - #743 GLib weak refs depend on cascade of locks, including global ones, which
    makes them non-scalable
  - #2887 memory-monitor-dbus.test fails in installed-tests suite (Philip
    Withnall)
  - #3198 Support --version in standard GApplication command line arguments
    (Maxim Moskalets)
  - #3217 Feedback on gobject-introspection: APIs for stack-allocated
    introspection info (Philip Withnall)
  - #3218 Segfault in gi_function_info_prep_invoker (Philip Withnall)
  - #3231 New functions in the glib introspection data (Philip Withnall)
  - #3234 Reference cycle between GIRepository and GIBaseInfos cached by it
    (Philip Withnall)
  - #3236 threaded_resolver_worker_cb leaks memory when lookup fails and
    connection is already canceled (Philip Withnall)
  - #3238 Python packaging module is missing on Hurd CI runner (Philip Withnall)
  - #3240 Missing preconditions checks in GArray (Tobias Stoeckmann)
  - #3242 Memory leak in gresources over libelf (Maxim Moskalets)
  - #3243 Feedback on girepository 2.0: Naming of get_type_info vs load_type
    (Philip Withnall)
  - #3244 Feedback on girepository 2.0: Where to find uninstalled typelibs
    (Philip Withnall)
  - #3245 Feedback on girepository 2.0: GIBoxedInfo's place in the type
    hierarchy (Philip Withnall)
  - #3246 Wrong out parameter type in
    gi_object_info_find_method_using_interfaces (Philip Withnall)
  - #3247 safe_closefrom(), safe_fdwalk_set_cloexec() as public API (Simon
    McVittie)
  - !3797 Refactor GIRepository GIR generation to avoid cyclical dependency
  - !3807 gprintf/gstrfuncs: Improve and port doc comments to gi-docgen
  - !3824 gconvert: match GNU iconv behaviour on FreeBSD
  - !3838 build: Add thorough test setup
  - !3843 Add more test coverage for girepository
  - !3845 gunixmounts: Use libmnt_monitor API for monitoring
  - !3847 ci: Add ability to run manually some specific jobs
  - !3848 Fix build with introspection on Windows
  - !3849 girepository: Remove GI_FUNCTION_THROWS and GI_VFUNC_THROWS flags
  - !3850 [th/strdup-in-ascii-strdown] glib: use g_strdup() in
    g_ascii_strdown(),g_ascii_strup()
  - !3851 ci: Fix post-merge CI pipelines
  - !3853 girepository: Update gir-compiler and use it to compile GIRs
  - !3854 girnode: Document ownership and element types of internal structs
  - !3855 gitypelib: Replace multiple constructors with
    gi_typelib_new_from_bytes()
  - !3856 girepository: Drop gi_repository_get_default()
  - !3859 [th/glib-private-const] glib: return const pointer from
    glib__private__()
  - !3860 tests: Fix typo in memory-monitor-portal.py.in
  - !3861 girepository: Fix a memory leak of a mapped file
  - !3865 [th/test-weak-notify] gobject/tests: add test checking that GWeakRef
    is cleared in GWeakNotify
  - !3866 [th/gobject-carray-comment] gobject: remove obsolete code comment
    about CArray
  - !3868 Link to the main context tutorial from the main loop docs
  - !3869 [th/optimize-weak-ref-list] rework GObject's `WeakRefData` to track
    references in an array instead of GSList
  - !3870 Revert "Don't skip dbus-codegen tests on Win32"
  - !3871 docs: Fix include path for the build
  - !3872 gio: tests: Use slightly more explicit assert functions
  - !3873 [th/datalist-shrink] shrink the interal buffer of `GData`
  - !3874 Don't skip dbus-codegen tests on Win32
  - !3876 build: Only override g-ir-compiler when GIR generation is enabled
  - !3877 Various girepository fixes
  - !3879 [th/gdataset-comment] gdataset: add code comment to
    g_datalist_get_data()
  - !3881 docs: Add migration guide for libgirepository
  - !3886 codegen: Use `-` instead of `stdout` for output to stdout
  - !3887 gtestutils: Ensure test_data is freed even if a test is skipped
  - !3888 gitypes: Fix integer values of GIInfoType and add unit tests for
    GIUnionInfo
  - !3892 introspection: Generate separate GIR files and documentation for
    platform specific APIs
  - !3893 glocalfile: Support statvfs.f_type
  - !3894 Minor fixes/docs changes to GFileDescriptorBased and GTask
  - !3895 [th/meson-werror-fixes] some fixes for meson detection failure with
    -Werror
  - !3896 reuse: Add dep5 lines for gnulib and libcharset
  - !3897 reuse: Fix screen-scraping expression for version 2.x
  - !3898 Incorporate some lint checks into `meson test`
  - !3900 gitypelib: Switch to refcounting
  - !3901 girepository: Add length ‘out’ arguments to several getter methods
  - !3902 gicallableinfo: Clarify docs for callables with no return type
  - !3903 gibaseinfo: Rename gi_info_new() to gi_base_info_new()
  - !3904 [th/meson-werror-fixes-2] more workarounds for compiler warnings in
    meson compiler checks
  - !3909 Rename g-ir-generate and g-ir-inspect and update to girepository-2.0
  - !3911 glib/tests/unix: Mostly pass O_CLOEXEC to g_unix_pipe_open()
  - !3912 glib-unix: Fix reference to FD_CLOEXEC in docs for g_unix_pipe_open()
  - !3913 cmph: Fix a typo
  - !3914 Revert "ci: Remove not-printable chars from generated junit file"
  - !3916 tests: Skip lint tests if bash is not available
  - !3917 ci: Build and tar libgirepository documentation

* Translation updates:
  - Georgian (Ekaterine Papava)
  - Russian (Artur S0)


Overview of changes in GLib 2.79.1, 2024-01-22
==============================================

* Fix a race condition in `g_object_unref()` (#3064, work by Thomas Haller)

* Various API and build changes to libgirepository as it is not yet API-stable
  (#3216, !3780, !3805, !3823, !3833, !3840)

* Build fixes on big-endian 64-bit systems and mips64el (#3225, #3226, work by
  Simon McVittie)

* Reduce contention on global locks within GObject (!3774, work by Thomas
  Haller)

* Allow building man pages without the reference documentation (!3817, work by
  Simon McVittie)

* Bugs fixed:
  - #1010 g_get_num_processor does not respect cpuset/affinity
  - #3064 Crash under g_object_unref()
  - #3093 GDBusMessage: should validate the type of all known headers (Philip
    Withnall)
  - #3207 Add support for syslog to Structured Logging
  - #3216 Feedback on gobject-introspection: Casting to and from GIBaseInfo*
    (Philip Withnall)
  - #3222 pthread_t usages lack type name (Emmanuele Bassi)
  - #3223 CLang, GMutexLocker: error: unused variable 'locker'
    [-Werror,-Wunused-variable]
  - #3225 2.79 regression: gdatetime test failing on 64-bit big-endian since
    #3119
  - #3226 resource test fails on Debian mips64el: test5.gresource is not linked
    but the test assumes it should be (Simon McVittie)
  - !3774 [th/g-object-priv] add private data to GObject and use per-object
    locking
  - !3780 girepository: Use standard types instead of glib specific
  - !3789 gdatetime: Fix title of documentation comment
  - !3792 build: Tell gi-docgen where to find the GIR files
  - !3793 Shorten the title for D-Bus interface docs
  - !3794 Add boxed GType for GRand
  - !3795 girepository: Skip GIRepository versions not matching GIRepository-3.0
  - !3798 docs: Drop outdated .gitignore files
  - !3799 tests: Fix a minor leak in the new GParamSpecPool test
  - !3800 ci: Re-enable and fix FreeBSD CI
  - !3801 gmessages: Port all doc comments to gi-docgen
  - !3802 [th/g-pointer-bit-lock-ext] glib: add g_pointer_bit_unlock_and_set()
    and g_pointer_bit_lock_mask_ptr()
  - !3803 ci: Fix tarballing the docs on dist
  - !3805 girepository: Various small API cleanups
  - !3806 gsignal.c: drop an optimization that is undefined behaviour
  - !3808 glib/deprecated: Skip all the deprecated gthread api
  - !3809 docs: Fix links to symbols outside the allowed namsepace
  - !3810 gstrfuncs: Improve and port g_set_str() docs to gi-docgen
  - !3811 gvariant-parser: Mention annotated types
  - !3812 brz.c: Use uintptr_t instead of a hardcoded list of 64-bit arches
  - !3813 gobject: define HAVE_OPTIONAL_FLAGS for sizeof(void*) > 8
  - !3814 Fix typo in GPOINTER_TO_SIZE documentation
  - !3817 docs: Allow building man pages without the reference documentation
  - !3818 docs: Clarify >=2.76 changes to g_module_open()
  - !3821 tests: Fix a minor leak in the socket test
  - !3823 girepository: Misc cleanups
  - !3826 genums: use g_once_init_enter_pointer for GType initializers
  - !3827 array-test: Don't assume sizeof(void*)==sizeof(gsize)
  - !3831 gvariant-core: Don’t call posix_memalign() with size==0
  - !3833 girepository: Change various alignments to use size_t
  - !3835 build: Ignore branches in g_clear_*() functions under lcov
  - !3837 tests: A couple of test isolation improvements
  - !3839 gvarianttype: Fix typos
  - !3840 girepository: Exclude private symbols from the ABI
  - !3841 docs: Fix member names of GLib.LogLevelFlags
  - !3842 gio, gmodule, gthread: compile windows resources only in shared build

* Translation updates:
  - Georgian (Ekaterine Papava)
  - Russian (Artur S0)


Overview of changes in GLib 2.79.0, 2023-12-22
==============================================

 * Port to gi-docgen and drop gtk-doc support — dependencies have changed, and
   Meson needs `-Ddocumentation` now rather than `-Dgtk_doc` (#3037, work by
   multiple people)

 * Move libgirepository into glib.git from gobject-introspection.git — but tools
   like `g-ir-scanner` are currently still in gobject-introspection.git. For the
   moment, glib.git needs to be built twice, once with `-Dintrospection=false`,
   then build gobject-introspection.git, then re-build glib.git with
   `-Dintrospection=true`. This process will evolve throughout the GLib 2.80
   cycle. The API and ABI of libgirepository has changed, and accordingly its
   version number has been bumped from 1.0 to 2.0 (note: the version number of
   `GIRepository-*.gir` has been bumped from 2.0 to 3.0; see !3786). The GIR and
   typelib file formats have not been changed, and are still at version 1.0.
   (#3155, work by multiple people)

 * Match behaviour for `GAppInfo` searches has changed (#3082, work by Nelson
   Benítez León)

 * Rename `GTK_USE_PORTAL` environment variable to `GIO_USE_PORTALS` (#3107,
   work by Philip Withnall)

 * Bump Meson dependency to 1.2.0 and depend on Python `packaging` module
   (!3666, !3752)

Bugs fixed:
  - #596 GApplication in Garbage Collected environments would benefit from a
    g_application_command_line_exit() to enable remote instances to exit.
    (Aleksandr Mezin)
  - #791 Wish: Add a "nodelay" property to GSocket or GTcpConnection (Philip
    Withnall)
  - #2810 thread-pool-slow intermittent assertion failure in
    test_thread_sort_entry_func() (Philip Withnall)
  - #2824 G_REGEX_OPTIMIZE causes incorrect regex behaviour
  - #2991 Drop translatable pspec nick/blurbs from properties in GIO (Sophie
    Herold)
  - #3082 Investigate prioritising prefix matches on GAppInfo keywords over
    substring matches on names (Nelson Benítez León)
  - #3087 glib doesn't cleanly unload on Windows (Luca Bacci)
  - #3098 Make invalid escape sequences in GKeyFile fatal (Philip Withnall)
  - #3103 mkenums: Can't parse an enum value with value ',' (Lukáš Tyrychtr)
  - #3105 NetworkManager 1.44.0 crashes repeatedly with glib 2.78.0 (Philip
    Withnall)
  - #3107 Rename GTK_USE_PORTAL to avoid portal services being run with portals
    force-enabled (Philip Withnall)
  - #3111 gsubprocess-testprog.c: build error with cygwin (sys/ptrace.h: No such
    file or directory) (Philip Withnall)
  - #3112 Update to Unicode 15.1 (Philip Withnall)
  - #3115 Support for additional strftime formatting capabilities
  - #3116 gio clears modification time in microseconds when setting with
    `set_modification_date_time` (Lukáš Tyrychtr)
  - #3119 Add support for `%Ey` to g_date_time_format() (Philip Withnall)
  - #3120 Build of glib 2.78.0 ignores -Dlibelf=disabled (Philip Withnall)
  - #3128 glib-2.78.0 fails at gio/tests/gsubprocess.p/gsubprocess.c.o
  - #3130 Segfault when creating GIO GPropertyAction without properties
  - #3134 glib incompatible with Python 3.12 due to distutils usage
  - #3135 Add GNU/Hurd CI
  - #3140 Add a flag to not copy modification time when copying files (Khalid
    Abu Shawarib)
  - #3144 `g_file_set_contents_full()` doesn't truncate the file (without
    `G_FILE_SET_CONTENTS_CONSISTENT`) (Philip Withnall)
  - #3156 check for #ifdef PTRACE_O_EXITKILL will always fail since it isn't a
    macro (Alessandro Bono)
  - #3157 gsubprocess build-time test intermittently timing out since 2.78.1
    (Simon McVittie)
  - #3158 "CRITICAL" log when using --attributes option for "gio info" (Philip
    Withnall)
  - #3159 glib regex test fails JIT compiler tests under musl libc (Pablo Correa
    Gómez)
  - #3161 codegen installation is broken
  - #3168 gvfs-udisks2-volume-monitor SIGSEGV in g_content_type_guess_for_tree()
    due to filename with bad encoding (Ondrej Holy)
  - #3183 g_dbus_connection_signal_subscribe with flag
    G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH doesn't work with an arg0 that is an
    object path (Philip Withnall)
  - #3185 g_utf8_collate_key() segfaults when passed an invalid length
  - #3186 [RFE] Increase gio sniff buffer for mime type magic detection to 16K
    or so (Philip Withnall)
  - #3187 g_vasprintf crashes when passed invalid UTF-8 (Philip Withnall)
  - #3191 Crash in __gio_xdg_cache_mime_type_subclass (Philip Withnall)
  - #3203 Fdo notification fails without AppID (Michael Catanzaro)
  - !3143 gatomic: Use g(u)intptr where appropriate
  - !3316 gobject: Separate GWeakRef from GWeakNotify
  - !3394 gsocketclient: Document delays/timeouts better
  - !3457 glib-unix: Add convenience API for pipes
  - !3524 add muslc ci
  - !3552 gutils: Use international symbol for bits
  - !3566 Update annotations for GAsyncQueue and GDir
  - !3567 Update annotations for GHmac
  - !3568 Update GOptionContext annotations
  - !3569 Small fixes and cleanups for Vectored Exception Handlers
  - !3571 Update GStringChunk annotations
  - !3572 Update GRand annotations
  - !3573 Update GTimer annotations
  - !3576 guniprop.c: Avoid creating (temporarily) out-of-bounds pointers
  - !3577 gthread: introduce g_once_init_{enter,leave}_pointer
  - !3578 GType: Use guintptr as the underlying storage if larger than gsize
  - !3579 Fixes for integer cast warnings when targeting CHERI
  - !3580 Fix test_find_program on FreeBSD
  - !3581 gthread: Fix optional/nullable annotations for g_once_init_*()
  - !3582 Buffer needs to be aligned correctly to receive linux_dirent64.
  - !3589 gconstructor.h: Ensure [c|d]tor prototypes are present for MSVC
    (Chun-wei Fan)
  - !3590 gtestutils.h: Fix warning with -Wsign-conversion caused by
    g_assert_cmpint
  - !3591 Switch to using gi-docgen for docs (batch 1)
  - !3594 Fix gutils-user-database test on macOS
  - !3595 gobject: cache flags needed for g_type_create_instance()
  - !3596 Add value annotation to G_TYPE_FUNDAMENTAL_MAX
  - !3597 Expand security policy to cover previous stable branch
  - !3598 Document NULL pointer pitfall in toolchain requirements
  - !3601 meson: Fix Windows build with PCRE2 as sibling subproject
  - !3603 Add GBytes variants for GSocket receive methods
  - !3605 build: Post-release version bump
  - !3607 Make sure the `GTask` is freed on a graceful disconnect
  - !3610 gdesktopappinfo: Do not search Comment field
  - !3611 tests/constructor: Fix "unknown pragma ignored" warning on clang
  - !3612 Update GStrv annotations
  - !3613 tests: Fix gdatetime test on non-UTC systems
  - !3620 gmain: avoid a GList traversal when removing source
  - !3621 wakeup: do single read when using eventfd()
  - !3623 Windows: Compile with the UNICODE / _UNICODE macros
  - !3624 wakeup: Fix g_wakeup_acknowledge if signal comes in
  - !3627 Add Hurd code owners
  - !3628 glib-unix: Use full path to gstdio.h include
  - !3629 glib/tests/meson.build: remove identical build targets
  - !3630 glib-compile-resources: ensure alignment is at least sizeof(void *)
  - !3632 Stop using enums in bitfields
  - !3633 Use g_task_return in task threads
  - !3634 Switch to using gi-docgen for docs (batch 2)
  - !3635 Fix warnings with Clang on Windows and enable --Werror in CI
  - !3636 Generate introspection data
  - !3637 gstrvbuilder: Add g_strv_builder_take
  - !3638 Cleanup and add content to glib debugging using gdb scripts
  - !3640 GIO/tests: skip test_resources_binary on MIPS platforms
  - !3641 build: Simplify MIPS test check
  - !3645 Switch to using gi-docgen for docs (batch 3)
  - !3646 ci: Update from clang-format-11 to clang-format-14
  - !3647 Switch to using gi-docgen for docs (batch 4)
  - !3652 GApplicationCommandLine: add print[err]_literal()
  - !3654 gdatetime: Fix minor leaks from strup/strdown calls
  - !3655 gdatetime: Fix incorrect alt-digits being used after changing locale
  - !3656 gmodule-dl: Use RTLD_DEFAULT on FreeBSD too
  - !3660 Switch to using gi-docgen for docs (batch 5)
  - !3661 Switch to using gi-docgen for docs (batch 6)
  - !3662 Switch to using gi-docgen for docs (batch 7)
  - !3663 gdbusconnection: don't cache G_IO_ERROR_CANCELLED errors
  - !3664 gmain: optimize "context->sources" hash table to use as set
  - !3665 ci: Remove .build-linux from Hurd CI scheduled job
  - !3666 build: Bump Meson dependency to 1.2.0
  - !3667 Switch to using gi-docgen for docs (batch 8)
  - !3668 Socket & readiness fixes
  - !3671 gio/tests: Add test generated txt as the resources test dependency
  - !3672 glib-private: Check for LSAN support at runtime when controlling it
  - !3674 gtask: Add g_task_return_prefixed_error()
  - !3677 Make GQuark register intentional leaks
  - !3678 gsignalgroup: Avoid function call with side effect in g_return_* macro
  - !3679 gmessages: fix dropping irrelevant log domains
  - !3682 tests: Fix dependency of test.gresource on test-generated.txt
  - !3683 glib: Disable dynamic asan loading on macOS
  - !3687 fix: about libproc.h and PROC_PIDLISTFD_SIZE
  - !3688 build: Fix the inclusion paths for GIR files in gi-docgen
  - !3689 meson: Add missing dependencies for utility files for gdbus-codegen
  - !3690 Switch to using gi-docgen for docs (batch 9)
  - !3695 gvalue: add "steal_string"
  - !3699 [th/prgname] use atomic pointers for g_prgname/g_application_name and
    add g_set_prgname_once()
  - !3701 tests: Fix gio-tool.py test on macOS
  - !3702 glib.supp: Suppress the global_mime_dirs allocations
  - !3703 Port GIRepository to GTypeInstance and add introspection
  - !3704 girepository: Rename symbols to the GI namespace
  - !3707 girepository: Ignore set-but-not-used warnings with G_DISABLE_ASSERT
  - !3708 Fix various leaks in cmph-bdz-test and gutils
  - !3709 Switch to using gi-docgen for docs (batch 10)
  - !3710 gmessages: introduce g_log_writer_default_set_debug_domains()
  - !3711 ghmac: Add a boxed type for GHmac and fix introspection build
    accordingly
  - !3712 Switch to using gi-docgen for docs (batch 11)
  - !3713 gfileutils: Fix g_file_get_contents() silent under-read of large files
    when off_t is wider than size_t
  - !3714 xdgmime: Handle buggy type definitions with circular inheritance
  - !3715 goption: Fix a typo
  - !3716 tests: Improve build of cmph tests in girepository
  - !3717 tests: provide reason for disabling convert test under musl
  - !3721 gtestutils: Add g_test_trap_subprocess_with_envp() for testing envs
  - !3722 gdir, gstrvbuilder: Add refcounting support and a boxed type
  - !3723 gwin32: Un-hide symbols when building GIR
  - !3726 tests: Fix fileutils build on FreeBSD and macOS
  - !3731 tests: Fix string test failure on BSDs
  - !3732 gspawn: Stop spewing debug messages
  - !3733 ci: Make the Alpine CI name more consistent
  - !3734 gdatetime: Disable ERA support on platforms which don’t support this
  - !3735 ci: Fix printing info message at end of run-style-check-diff.sh
  - !3736 build: Rename -Dgtk_doc option to -Ddocumentation and fix some
    g-ir-scanner warnings
  - !3739 Documentation only: Added clarification about GWeakNotify and removed
    ambiguous text
  - !3741 hash: Explicitly annotate key in iter_next as nullable
  - !3743 ci: Install correct version of Meson on Alpine CI image
  - !3745 tests: Assert there no errors first in gdbus-test-codegen
  - !3751 Fix generated RST anchors for methods, signals and properties
  - !3752 build: Make packaging module required
  - !3753 gobject_gdb.py: Do not break bt on optimized build
  - !3755 tests: Use textwrap.dedent to indent expected strings pleasingly
  - !3757 ci: Re-add explicit Meson version to Alpine CI image
  - !3758 docs: Add a section on version checking macros
  - !3760 girepository: Various API cleanups
  - !3761 gerror: Fix an old allow-none annotation
  - !3762 [th/notify-queue] some optimization around
    g_object_freeze_notify()/g_object_thaw_notify()
  - !3763 girepository: Drop libgio dependency from gdump.c
  - !3764 gsignal: fix reference to signals documentation page
  - !3765 gapplication: Fix minor typo in docs
  - !3767 girepository: Port documentation to gi-docgen and update
  - !3768 ci: Build docs artifacts for deployment to docs.gtk.org
  - !3770 GDateTime: Add usec precision API for unix time
  - !3771 gtask: Add g_task_return_new_error_literal()
  - !3772 gobject: Make GLib-2.0 gir build depend on GObject dependency
  - !3773 girepository: Return enumerated versions and search paths as a GStrv
  - !3776 glocalvfs: Remove unnecessary and buggy code
  - !3777 Fix detecting size_t size when `-Wmissing-prototypes` is in CFLAGS
  - !3779 gtypemodule: Add assertions in finalize()
  - !3782 docs: fix a typo
  - !3786 girepository: Re-number GIR file from 2.0 to 3.0
  - !3787 docs: Install the gi-docgen docs

* Translation updates:
  - Catalan (Jordi Mas i Hernandez)
  - Chinese (China) (Boyuan Yang)
  - Czech (Daniel Rusek)
  - Esperanto (Kristjan SCHMIDT)
  - French (Alexandre Franke)
  - Italian (Milo Casagrande)
  - Latvian (Rūdolfs Mazurs)
  - Portuguese (Brazil) (Rafael Fontenelle)
  - Romanian (Florentina Mușat)
  - Russian (Artur S0)
  - Slovenian (Matej Urbančič)
  - Spanish (Daniel Mustieles)
  - Turkish (Sabri Ünal)
  - Ukrainian (Yuri Chornoivan)


Overview of changes in GLib 2.78.0, 2023-09-08
==============================================

* Bugs fixed:
  - #3095 Error handling of invalid GKeyFile string escape sequences changed in
    GLib 2.77.3 (Philip Withnall)
  - !3559 gdb: Workaround optimized out quark_seq_id
  - !3561 meson: fix `gnetworking.h` install tag
  - !3562 gthread: Annotate g_thread_exit() with G_NORETURN
  - !3564 Fix gutils-user-database unit test

* Translation updates:
  - Basque (Asier Sarasua Garmendia)
  - Czech (Vojtěch Perník)
  - Danish (Alan Mortensen)
  - English (United Kingdom) (Bruce Cowan)
  - Galician (Fran Dieguez)
  - Georgian (Ekaterine Papava)
  - German (Philipp Kiemle, Jürgen Benvenuti)
  - Hebrew (Yosef Or Boczko)
  - Hungarian (Balázs Úr)
  - Indonesian (Andika Triwidada)
  - Korean (Changwoo Ryu)
  - Lithuanian (Aurimas Černius)
  - Persian (Danial Behzadi)
  - Polish (Piotr Drąg)
  - Swedish (Anders Jonsson)
  - Turkish (Emin Tufan Çetin)
  - Ukrainian (Yuri Chornoivan)


Overview of changes in GLib 2.77.3, 2023-08-31
==============================================

* Bugs fixed:
  - #2575 GSettings schemas default value translations don't work when using
    l10n=time (Michael Catanzaro)
  - #3032 gdbus-codegen eats indentation in RST in XML comments (André)
  - #3051 g_dbus_connection_export_menu_model() is not thread_safe
  - #3061 Possible SEGV (null pointer deref) in distribute_method_call() (Philip
    Withnall)
  - #3083 `arg_data`  in GOptionEntry is not a list (Philip Withnall)
  - #3090 Possible SEGV (null pointer deref) in _g_resource_file_new() (Philip
    Withnall)
  - !3459 glib-unix: Clean up use of O_NONBLOCK
  - !3503 interim solution for macOS CI
  - !3519 meson: warn if -mms-bitfields is necessary
  - !3526 gnetworkaddress: use reentrant getservbyname_r() if available
  - !3527 tests: Use g_assert_*() rather than g_assert() in tree tests
  - !3528 gio-tool-info: Move translator comments so they’re visible
  - !3530 gregex: set default max stack size for PCRE2 JIT compiler to 512KiB
  - !3532 tests: Disable use of ptrace() in tests on BSD and macOS
  - !3533 ci: Only run pages CI job on scheduled job runs
  - !3534 ci: Further fix to pages CI job
  - !3535 Use 'meson setup' to configure
  - !3538 glib-unix: Accept O_CLOEXEC as well as FD_CLOEXEC in
    g_unix_open_pipe()
  - !3540 gio: Add gresource.dtd
  - !3541 gtestutils: Mention not ignoring SIGCHLD in g_test_trap_subprocess()
    docs
  - !3542 [th/gchildwatch-fail-message] gmain: improve g_warning() for failure
    in g_child_watch_dispatch()
  - !3543 [th/use-localtime-r] use localtime_r() in g_log_writer_format_fields()
  - !3545 gregex: if JIT stack limit is reached, fall back to interpretive
    matching
  - !3547 glib/gfileutils.c: use 64 bits for value in get_tmp_file()
  - !3550 glib/tests/asyncqueue.c: skip test_async_queue_timed in 2038 or later
  - !3553 Generate missing docs for out arguments
  - !3555 gkeyfile: Fix overwriting of GError

* Translation updates:
  - Basque (Asier Sarasua Garmendia)
  - Kazakh (Baurzhan Muftakhidinov)
  - Panjabi (Amn Alam)
  - Persian (Danial Behzadi)
  - Swedish (Anders Jonsson)


Overview of changes in GLib 2.77.2, 2023-08-12
==============================================

* Bugs fixed:
  - #3071 g_test_trap_subprocess and g_test_subprocess broken in 2.77.1 (Jonas
    Ådahl)
  - !3432 ci: Don’t run pipeline after merging a MR
  - !3520 Fix typos
  - !3521 GTree: Handle node counter overflow and return it as an unsigned value
  - !3523 gspawn, gdataset: Restore nullable callback functions

* Translation updates:
  - Chinese (China) (Luming Zh)
  - Galician (Fran Dieguez)
  - Indonesian (Kukuh Syafaat)
  - Polish (Piotr Drąg)
  - Portuguese (Hugo Carvalho)
  - Russian (Artur So)
  - Spanish (Daniel Mustieles)
  - Turkish (Sabri Ünal)


Overview of changes in GLib 2.77.1, 2023-07-30
==============================================

* Fix some regressions with `GKeyFile` comment handling (#3047, work by Gaël Bonithon)

* Improve handling of query and fragment components in `file:` URIs (#3050, work by Lukáš Tyrychtr)

* Bugs fixed:
  - #473 systemtap probes for gvariant (Allison Karlitskaya)
  - #623 g_type_query() doesn't work for dynamic types (Philip Withnall)
  - #931 Optimise GPrivate by removing one malloc (Allison Karlitskaya)
  - #2929 gio: Failing build due to race generating glib/gversionmacros.h (Eric
    van Gyzen)
  - #3045 2.77.0: gio pkg-config test has incorrect install location for gio-
    querymodules & glib-compile-schemas (Philip Withnall)
  - #3047 2.77.0 changes formatting of keyfiles (Gaël Bonithon)
  - #3048 Forcing fallback for libintl does not work (Brendan Shanks)
  - #3050 g_file_new_for_uri() handles query strings incorrectly ("?") (Lukáš
    Tyrychtr)
  - #3054 Fedora installer (anaconda) crashes early with glib 2.77.0 due to
    "Attempt to unlock mutex that was not locked", when it runs `hwclock` and
    changes the system time (Thomas Haller, Philip Withnall)
  - !3287 Audit and fix incorrect use of (closure) in glib
  - !3461 gfileinfo: add file_path methods for language bindings
  - !3485 docs: Expand supported platforms documentation a little
  - !3494 ci: Manually fetch submodules for style-check CI jobs
  - !3495 gdbus-codegen: Error on invalid dbus types
  - !3496 garray: Fix typo in doc comment of g_ptr_array_sort[_with_data]()
  - !3499 strfuncs: Add missing ownership annotations for returned string
    vectors
  - !3504 Revert "build/gmodule-2.0.pc: Move compiler flags from Libs to Cflags"
  - !3505 meson: help gobject-introspection locate source and build dirs
  - !3509 build-sys: drop -mms-bitfields GCC flag
  - !3510 testutils: Use prctl PR_SET_DUMPABLE to silence core dumps on Linux
  - !3514 Revert "build-sys: drop -mms-bitfields GCC flag"
  - !3515 gnetworkmonitor: Expand guidelines for metered data use
  - !3517 tests: Add some more tests for g_type_query()
  - !3518 m4macros: drop unused m4 files

* Translation updates:
  - Georgian (Ekaterine Papava)
  - Hebrew (Yosef Or Boczko)
  - Hungarian (Balázs Úr)
  - Persian (Danial Behzadi)
  - Slovenian (Matej Urbančič)
  - Ukrainian (Yuri Chornoivan)


Overview of changes in GLib 2.77.0, 2023-07-06
==============================================

* Fix `GSocketClient` connecting to a proxy if the port is not specified
  (#2832, work by Michael Catanzaro)

* Support using `copy_file_range()` in `g_file_copy()`, if available (#2863,
  work by Philip Withnall)

* Improve handling of comments above groups in key files (#2927,
  work by Gaël Bonithon)

* Re-upgrade missing attribute debugs to criticals in `GFileInfo` (#2951,
  work by Philip Withnall)

* Do not redefine NULL on C++ (#2973, work by Marco Trevisan)

* Make `g_signal_handlers_block_matched()` work for `G_SIGNAL_MATCH_ID`
  (#2980, work by Przemyslaw Gorszkowski)

* Fixes to support building with bionic libc better (#3008, work by Øyvind Kolås)

* Fix potential stack overflow in gspawn on macOS if open file limit is very
  high (#3024, work by Dario Saccavino)

* Fix support for `--force-fallback-for libpcre` in meson configuration (#3025,
  work by Marius Kintel)

* Generate specific marshallers in `gdbus-codegen` (#3028, work by Marco Trevisan)

* Fix build failure on Android with `statx()` support (#3039, work by Philip Withnall)

* Improve locking performance of `GSignal` (!2824, work by Marco Trevisan)

* Improve locking performance of `g_main_context_iterate()` (!3235, work by
  Marco Trevisan)

* Add an inline definition of `g_free()` to automatically use `g_free_sized()`
  if available (!3252, work by Marco Trevisan)

* Fix race with `waitpid()` and `GChildWatchSource` (!3353, work by Thomas Haller)

* Add `glib_valgrind_suppressions` variable to glib pkg-config file (!3361, work
  by Marco Trevisan)

* Fix build on macOS SDK 10.11 (!3385, work by Peter Williams)

* Switch to using a separate thread pool and support timeouts in
  `GThreadedResolver` (!3397, work by Philip Withnall)

* Track pending `GTask`s if `G_ENABLE_DEBUG` is defined (!3404, work by Philip Withnall)

* Support GSignal fast path and more marshallers in `gobject_gdb.py` (!3437,
  work by Nelson Ben)

* Disable the macOS CI because it’s too unreliable — if you rely on GLib working
  on macOS, please get in touch and do something to help! (!3463, decision taken
  by Philip Withnall)

* Bugs fixed:
  - #65 glib-mkenums: parse_trigraph() chokes on quoted commas (Emmanuel Fleury)
  - #95 GMarkupParser documentation completion (David King)
  - #98 g_get_current_dir SIGSEGV on long path (Philip Withnall)
  - #104 Invocation of the interface "g_key_file_remove_comment" does not remove
    comment in specific case (Gaël Bonithon)
  - #116 Document UTF-8 behaviour and requirements throughout GLib (Philip
    Withnall)
  - #252 Disagreement between runtime and docs on whether interfaces are
    "classed" (Philip Withnall)
  - #322 gdbus-example-proxy-subclass.c is not complete. (Colin Walters)
  - #799 GAppInfoMonitor documentation deficiencies (Philip Withnall)
  - #1264 Use-after-free under
    send_message_with_reply_cleanup():gdbusconnection.c:1792 (Philip Withnall)
  - #2289 Document clearly that libgio is not guaranteed to be safe to use in
    setuid processes (Philip Withnall)
  - #2307 mainloop test leaks a GMainLoop object (Philip Withnall)
  - #2829 "glib-compile-resources --dependency-file=DEPFILE" creates wrong set
    of dependencies (Michael Catanzaro)
  - #2832 GSocketClient cannot proxy connect unless default port is explicitly
    specified in proxy URL (Michael Catanzaro)
  - #2855 gio/tests/socket-client.c name is too confusing because it does not
    use GSocketClient (Mike Salmela)
  - #2861 Check for __kernel_long_t when enabling futex()
  - #2863 Use copy_file_range() whenever possible in g_file_copy (Philip
    Withnall)
  - #2864 Documentation mentions non-existing function `g_value_free` (Philip
    Withnall)
  - #2879 Job #2498619 failed: gio/tests/socket.c:1654:test_reuse_tcp: assertion
    failed (error == (g-io-error-quark, 33)): error is NULL (Philip Withnall)
  - #2927 GKeyFile: Inconsistent behavior of comment writing above a group (Gaël
    Bonithon)
  - #2939 mkenums.py test fails on FreeBSD (Philip Withnall)
  - #2951 Re-upgrade missing attribute debugs to criticals in GFileInfo (Philip
    Withnall)
  - #2952 Not clear that GPollableInputStream methods are undefined if
    can_poll() returns FALSE (Philip Withnall)
  - #2953 Missing docs for GOption (commandline parser) (Sam Thursfield)
  - #2958 nbd server fails with glib 2.76.0
  - #2960 GDebugControllerDBus wrong default in documentation (Philip Withnall)
  - #2963 Probably wrong information regarding G_PLATFORM_WIN32 in
    README.win32.md
  - #2965 test_measure fails with coreutils 9.2 (Joan Bruguera)
  - #2966 Multiple Definition Error When Generating gio/tests/test5.gresource
    (Dan Yeaw)
  - #2969 user docs: GLib.DateTime.format: broken highlighting (Philip Withnall)
  - #2972 GtkFileLauncher: generated paths not recognized on Win32 (Luca Bacci)
  - #2973 Build failed due to NULL pointer redefinition in C++ (Marco Trevisan
    (Treviño))
  - #2980 g_signal_handlers_block_matched does not work for G_SIGNAL_MATCH_ID
    (Przemyslaw Gorszkowski)
  - #2982 Build randomly fails with: 'gmodule/gmodule-visibility.h' file not
    found (Marco Trevisan (Treviño))
  - #2993 g_dbus_interface_skeleton_get_vtable misses transfer annotation and is
    not introspectable
  - #2997 g_assert_cmpuint() should display positive, not negative values (Eric
    Blake)
  - #3003 glib-compile-schemas failed on directory name with no Latin symbols
    (Daniyar Tleulin)
  - #3007 GOptionContext group headings missing colon at the end (Philip
    Withnall)
  - #3008 Adaptations for building with bionic libc under termux (Øyvind Kolås)
  - #3020 Races in gio/tests/portal-support-snap* tests
  - #3024 Possible stack overflow in gspawn on MacOS
  - #3025 libpcre and libintl cannot be chosen to use the builtins
  - #3027 action exporter fails in the presence of actions with maybe parameter
    types (Matthias Clasen)
  - #3028 gdbus-codegen should generate marshallers (Marco Trevisan (Treviño))
  - #3030 Document GListModel requiring unique instance pointers from
    GListModelInterface.get_item (Christian Hergert)
  - #3034 futex based g_mutex_lock sometimes splatters errno with EAGAIN on
    contended locks
  - #3039 Build failure due to statx fields with NDK r25.c (Philip Withnall)
  - #3040 gtester in custom_target() run against system rather than built
    libglib during build
  - !2824 gsignal: Reduce lock/unlock pairs and ensure we always work on valid
    signal nodes
  - !3146 Make GVariant/GHash opaque types compatible with CHERI
  - !3235 gmain: Avoid some lock/unlock dance during g_main_context_iterate
  - !3252 gmem: Add an inline definition of g_free() to automatically use
    g_free_sized()
  - !3289 Work around an UCRT issue with _wspawn() functions taking an envp
    block
  - !3306 gregistrysettingsbackend: Allow a different root key path
  - !3308 doc: Workaround missing API index
  - !3314 gmain: More explicitly document g_main_context_release() prereqs
  - !3326 unicode: add tests for g_utf8_normalize() and empty strings
  - !3333 build: Drop old .gitignore files from test directories
  - !3335 meson: allow -Dlibelf=enabled without pkg-config
  - !3337 gio-tool-info: Fix a duplicate attribute name in the UI
  - !3340 meson: Move msvc_recommended_pragmas.h to a subdirectory
  - !3341 g_utf8_normalize: don't read past the end of the buffer
  - !3342 Add fuzzing harness for g_utf8_normalize()
  - !3344 tools: Drop check-abis.sh script
  - !3345 docs: Drop section about default branch renaming from README.md
  - !3347 gsocket/inotify/gwakeup: Use SOCK_NONBLOCK and O_NONBLOCK to avoid
    fcntl() syscalls where possible
  - !3351 tests: Update Unicode normalisation tests from Unicode 15
  - !3352 meson: Fix detection of a system-provided proxy-libintl
  - !3353 [th/child-watch-waitpid] fix race with waitpid() and child watcher
    sources
  - !3356 build/gmodule-2.0.pc: Move compiler flags from Libs to Cflags
  - !3357 Make clang++ happier when using G_STATIC_ASSERT
  - !3361 meson: Add glib_valgrind_suppressions variable to glib pkg-config file
  - !3365 gwin32: Avoid use of function call with side effect in g_return_*
    macro
  - !3366 Add init macros for refcounting types
  - !3367 actiongroup: Add a compiler warning
  - !3371 Explicitly mark size parameter as (in)
  - !3377 gsignal: Clarify documentation for GSignalMatchType matching
  - !3378 build: Post-release version bump
  - !3381 gtimer: Avoid doing anything on g_usleep (0)
  - !3382 gsocket: Explicitly mark size parameter as (in)
  - !3383 add g_timeout_add_seconds_once
  - !3384 Test g_signal_handlers_disconnect_matched for G_SIGNAL_MATCH_ID match
  - !3385 gio: fix build on older macOS SDKs
  - !3388 appmonitor: Skip the test under OSX
  - !3389 glib/tests/[rec-]mutex: Allow each thread to work
  - !3390 Fix error format in gio/gunixconnection.c (part 2)
  - !3392 gvariant: Fix doc for g_variant_new_object_path
  - !3393 Fix small issues in docs
  - !3395 gtask: Document that g_task_run_in_thread() uses a shared resource
  - !3396 glib-unix: Improve documentation for g_unix_fd_source_new()
  - !3397 gthreadedresolver: Switch to using a separate thread pool and support
    timeouts
  - !3398 Avoid having g_futex_simple() inadvertently modify errno
  - !3399 meson: wrap html documentation generation with gtk_doc option
