X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=NEWS;h=4b61a4a4dd09ec229e2eb35871f587f13b25d3de;hb=7aeea53a95c4f3688b9ad6b6cf3375e100132653;hp=d2b586c4de269f9bc28745b8c139096d5005051e;hpb=1c4dade78f9548bba798e75546a877cb6cd0b4da;p=platform%2Fupstream%2Fglib.git diff --git a/NEWS b/NEWS index d2b586c..4b61a4a 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,4843 @@ +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 tag in generated files + - !2235 Add GBindingGroup and GSignalGroup + - !2378 gtestutils: Mention the unit used for the test timer + - !2404 File tests + - !2433 Remove tests/testgdate.c from tests + - !2458 Implement fd passing for Windows spawn + - !2464 Amend g_bus_get* documentation regarding private connection + - !2465 gi: expose some files as variable for gobject-introspection + - !2467 ci: Add link to Coverage output at end of coverage job + - !2468 gfile: resolve_relative_path isn't nullable + - !2469 Implement async file movement + - !2471 Fix test on the date format for FreeBSD and MacOS X. + - !2472 Fix test date (again)... + - !2473 Fix glib/test/date.c for FreeBSD/OpenBSD/MacOS X + - !2476 Add G_UNICODE_SCRIPT_MATH to GUnicodeScript + - !2477 Improve coverage of two digit years in gdate tests + - !2481 Fix glib/tests/fileutils on win32 + - !2482 Fix unit test on date format '%Z' which is too versatile to be trustable + - !2483 Fix glib/tests/gdatetime on win32 + - !2484 tests: Use g_test_skip() to skip a test on Windows + - !2487 gconstructor.h: Visual Studio: Only include gslist.h if needed + - !2488 Fix some problems with g_aligned_alloc() tests + +* Translation updates: + - Basque + - Catalan + - Chinese (China) + - Czech + - French + - Galician + - Indonesian + - Japanese + - Polish + - Portuguese + - Portuguese (Brazil) + - Russian + - Slovenian + - Spanish + - Ukrainian + + +Overview of changes in GLib 2.71.1 +================================== + +* Basic support for static builds on Windows (work by Loïc Le Page, + Marc-André Lureau, with contributions from Xavier Claessens, Nirbheek Chauhan, + Charlie Barto, Luca Bacci, Amos Wenger) (#692, #2585, !2442) + +* Add `GDebugController` and a D-Bus implementation which exposes whether + debug output is enabled in a process using the `org.gtk.Debugging` D-Bus + interface (work by Philip Withnall) (#1190) + +* Support for `AF_UNIX` sockets on Windows 10 (and later) (work by Marc-André Lureau) (#2487) + +* Several important fixes to GDBus message and GVariant parsing of invalid data (work by Sebastian Wilhelmi) (#2557, #2572) + +* Fix potential data loss due to missing fsync when saving files on btrfs (work by Sebastian Keller) (!2425) + +* Fix potential buffer overflows in `garray.c` for very large `GArray`s and `GPtrArray`s (work by Tobias Stoeckmann) (#2578) + +* Fix FDs in gspawn not being closed and causing process hangs if `close_range()` fails unexpectedly (work by Dan Nicholson) (#2580) + +* Fix `g_find_program_in_path()` not returning an absolute path if `$PATH` is relative (work by Christoph Niethammer) (#2586) + +* Add support for loading PKCS#12 encrypted files in `GTlsCertificate` (work by Patrick Griffis) (!2239) + +* A number of improvements to unit tests (work by Emmanuel Fleury, Charlie Barto) (!2399, !2400, !2402, !2403, !2428, !2431, !2432, !2434) + +* Support `LOCAL_PEERPID` on macOS, giving partial support for PIDs in + `GCredentials` on that platform (work by Ignacio Casal Quinteiro) (!2362) + +* Add `g_get_user_state_dir()` to support `XDG_STATE_HOME` (work by Sophie Herold) (!2395) + +* Add `g_hash_table_new_similar()` to copy a hash table and its hash/equal functions without its data (work by Jonas Ådahl) (!2405) + +* Support D-Bus client authentication with `EXTERNAL` on Windows (work by Marc-André Lureau) (!2429) + +* Add a reStructuredText documentation generator to `gdbus-codegen` (work by Emmanuele Bassi) (!2448) + +* Add a Windows implementation of `GMemoryMonitor` (work by Marc-André Lureau) (!2452) + +* Bugs fixed: + - #692 meta: Fix static build on Windows + - #1190 gapplication: Add an org.gtk.Debugging interface + - #2487 Add support for native unix domain sockets on WIN32 to GLib.Socket and related classes + - #2550 possible GDateTime issue with localtime on Illumos/Solaris + - #2557 Arrays of zero-element tuples with non-zero length lead to infinite loops in g_dbus_message_new_from_blob + - #2559 2.71.0: compile and link time warnings + - #2560 Link error xdgmime.c: unresolved external symbol S_ISREG when building with VS2022 + - #2564 Hangul Jamo Extended-B should be 0-width + - #2565 Build glib-2.71.0 failed in Windows using MSYS2-MINGW64 + - #2571 Cross build error "undefined reference to `_g_binary_test1_resource_data'" when building tests for Windows on openSUSE Leap + - #2572 Check for GVariant recursion depth before recursing + - #2578 buffer overflows in garray.c + - #2579 Outdated paths in INSTALL.in + - #2580 gspawn doesn't set CLOEXEC if close_range fails unexpectedly + - #2582 glib 2.71.0 muslc - build error missing sentinel in function call + - #2585 Static link issue on Windows due to resource files being linked in twice + - #2586 g_find_program_in_path not returning an absolute path + - !2239 gtlscertificate: Add ability to load PKCS#12 encrypted files + - !2362 credentials: support the local peerpid on macos + - !2384 meson: Fix linking with static library in Windows + - !2395 utils: Add XDG_STATE_HOME support + - !2399 Move tests/env-test.c into glib/tests/environment.c + - !2400 Prevent gtest tests from popping up dialog boxes + - !2402 Improving glib/tests/environment.c + - !2403 Improve test coverage of glib/tests/asyncqueue.c + - !2405 ghash: Add g_hash_table_new_similar + - !2407 tests: Fix environment test on FreeBSD + - !2411 annotate `g_content_type_guess` parameter as filename + - !2412 paramspec: fix unref annotation + - !2413 Use meson dependency to link against apple framework + - !2414 docs: Improve docs for gdbusutils.c + - !2417 gtestutils: Fix minor typos in the g_test_get_filename() docs + - !2423 Make clear in doc that signals are emitted synchroniously + - !2425 gfileutils: Remove outdated BTRFS fsync optimization from set_contents + - !2426 gdbus-codegen: Fix a typo in a comment + - !2428 Merge tests/gobject/gvalue-test.c with gobject/tests/value.c + - !2429 gdbus: make client work with EXTERNAL on Windows + - !2431 Merge tests/gobject/paramspec-test.c into gobject/tests/param.c + - !2432 Merge test/unicode-caseconv.c into glib/tests/unicode.c + - !2434 Remove a disabled test case that was covered by glib/tests/collate.c + - !2440 Improve g_ascii_formatd docs and preconditions + - !2441 Reduce the amount of compile-time warnings + - !2442 Fix tests with static build on Windows + - !2447 giowin32: use gint64 and _lseeki64 + - !2448 Add reStructuredText documentation generator for gdbus-codegen + - !2452 gio/win32: add GMemoryMonitorWin32 + - !2453 Add `(array length)` annotation to `g_tls_certificate_new_from_pkcs12()` + - !2454 gdbusmessage, gvariant and garray fixes + - !2456 tests: Pass --internal and -z noexecstack to glib-compile-resources tests + - !2459 gio: add missing zlib dependency in gio-windows-2.0.pc + - !2461 Fix memory leak in gio/gdbusauthmechanismsha1.c + - !2463 Revert "Merge branch 'fix-windows-pc' into 'main'" + +* Translation updates: + - Catalan + - Chinese (China) + - Czech + - Galician + - Hebrew + - Indonesian + - Lithuanian + - Polish + - Portuguese + - Portuguese (Brazil) + - Russian + - Spanish + - Ukrainian + + +Overview of changes in GLib 2.71.0 +================================== + +* Fix network changes not being signalled from NetworkManager (work by + Julian Andres Klode) (#2505) + +* Fix build when building with --fatal-meson-warnings (work by Eli Schwartz) (!2304) + +* Fix use of the default log writer with journald namespaces (diagnosis by Ilya Basin) (#2530) + +* Fix hang in `dbus-daemon` under `GTestDBus` when `G_MESSAGES_DEBUG=all` is set (work by Marco Trevisan) (#2537) + +* Speed up `g_canonicalize_filename()` to avoid pathogenic cases with `..` (work by Sebastian Wilhelmi) (#2541) + +* Fix URI for pcre subproject as it’s moved upstream (work by Albert Astals Cid) (!2324) + +* Fix storing GSettings dictionaries on macOS (work by Maurice) (#2527) + +* Speed up ‘remove dot segments’ algorithm in `GUri` to avoid pathogenic cases with `..` (work by Sebastian Wilhelmi) (#2526) + +* Fix infinite loops in D-Bus message parsing for truncated inputs (work by Sebastian Wilhelmi) (#2528) + +* Improve correctness of version information returned by `g_get_os_info()` for Windows 10/Server 2019+ (work by Chun-wei Fan) (#2443) + +* Various fixes to GWeakRef cleanup (#865, #2390) and toggle refs (#2394) (work by Marco Trevisan) + +* Add `G_DBUS_PROXY_FLAGS_NO_MATCH_RULE` flag for disabling match rules when creating a `GDBusProxy` (#1109) + +* Fix FD remapping in `g_spawn_async_with_pipes_and_fds()` with certain values of target FDs (#2503, #2506) (work by Michael Catanzaro) + +* Make `GDBusProxy::g-signal` signal detailed with D-Bus signal names (#2536) (work by Aleksandr Mezin) + +* Emit `launched` signal for D-Bus activation of apps with `GDesktopAppInfo` (!2227) (work by Guido Günther) + +* Fix IDs of `GDesktopAppInfo`s which are constructed from a `.desktop` file in a subdirectory (!2283) (work by Ivalyo Dimitrov) + +* Add `--interactive` option to `gdbus call` (!2329) + +* Add `G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP` to `GSubprocess` (!2333) (work by Hristo Venev) + +* Bugs fixed: + - #475 Add g_alloca0() and g_newa0() + - #847 g_set_prgname() should be thread-safe + - #865 GWeakRefs not cleared by g_object_run_dispose() + - #1109 [PATCH] GDBusProxy: add G_DBUS_PROXY_FLAGS_NO_MATCH_RULE flag + - #1231 gobject declare macros cause alignment warnings on armhf/armhf/mipsel + - #1331 GArray with 10 million items overflows index arithmetic + - #1735 Get back to a -werror build + - #1781 Sort output of gsettings command-line tool + - #2310 contenttype test leaks xdg-mime internal data + - #2390 GWeakRef's aren't cleared again on finalization (and not fully thread-safe) + - #2394 Toggle refs notification may not handle multiple threads correctly + - #2400 Use-after-free in invoke_set_property_in_idle_cb() + - #2401 GDBus runtime warning from remove_interfaces() + - #2404 GTask: clarify that GTask assumes are running mainloop + - #2426 GSettings delayed apply generates runtime warnings + - #2443 Add Windows 11 support to get_windows_version() + - #2468 GSequence pessimizes itself and slows down + - #2471 g_output_stream_write_all_async prints error when count == 0 and content == NULL + - #2488 Unix password unit test fails on FreeBSD 13 + - #2489 Add a (diagnostic) warning for finalized objects with floating refs + - #2490 Upgrade to Unicode Character Database 14.0 + - #2496 Wrong parameter type for g_simple_proxy_resolver_set_ignore_hosts + - #2498 GIR: Remove non-existing IOModule methods `load`, `unload` + - #2500 Able to export object manager and object on root path, but not other paths + - #2503 gspawn.c may clobber target fds + - #2505 g_network_monitor_nm never updates on connection change (listens for signal on wrong dbus interface) + - #2506 gspawn.c fails to close child_err_report_fd if it is duped to avoid conflation with one of the target_fds + - #2507 Strange behavior of GFileEnumerator with GVfs locations + - #2514 test suite failure in glib/tests/gdatetime.c if German locale de_DE.ISO-8859-1 is available + - #2518 Misleading message when privileged program starts G_BUS_TYPE_SESSION + - #2520 g_date_new_ functions return NULL on invalid input + - #2523 MacOS generates warnings for g_size_checked_mul() + - #2526 fuzz_uri_parse failure + - #2527 Error storing dictionary with string keys as GSettings on macOS + - #2528 g_dbus_message_new_from_blob goes into infinite loop for certain inputs + - #2529 load_user_special_dirs returns NULL in certain cases + - #2530 g_log_writer_is_journald fails if a Journal Namespace is used + - #2536 GDBusProxy: make g-signal detailed + - #2537 GTestDBus dbus daemon causes child process to hang when using verbose output + - #2541 g_canonicalize_filename should work in linear time complexity + - #2553 Consider not depending on strtoull_l and strtoll_l as much + - !1960 Add g_main_context_new_with_flags() and ownerless polling option + - !1968 gspawn: Implement fd remapping for posix_spawn codepath, and fix file descriptor conflation issues + - !1991 Keyfile parsing performance improvements + - !2029 Updating xdgmime + - !2064 gobject: Cleanup GWeakRef locations on object finalization + - !2114 Coerce type cast to void* because it causes compiler warnings + - !2191 docs: Add .editorconfig file + - !2214 Document potential footgun with GTlsCertificateFlags and deprecate certain usages + - !2223 Better detection of the cleanup attribute. + - !2227 gdesktopappinfo: Emit "launched" signal for D-Bus activation too + - !2242 gsettings: Add various missing (nullable) or (not nullable) annotations + - !2244 gutils: Avoid segfault in g_get_user_database_entry + - !2245 gdesktopappinfo: Do not call xterm when it does not exist, inform the caller the launch failed + - !2246 gobject: Document it’s unsafe to call g_object_ref() from GWeakNotify + - !2249 Add version macros for GLib 2.72 and bump version to 2.71.0 + - !2251 GString: Bump minimum size + - !2254 Small optimization for g_object_set + - !2255 gobject: Clarify behaviour of adding weak refs during disposal + - !2257 Fix documentation for g_dbus_object_manager_get_object(). + - !2260 GWin32AppInfo: Do not assert about successful open'ing of registry keys + - !2261 Provide built DLLs as Gitlab-CI artifacts + - !2266 fix uninitial variable + - !2273 Fix more (Windows) warnings + - !2277 Revert "Don't compile some unused functions in gio/xdgmime/" + - !2283 GDesktopAppInfo: Try to always correctly set id + - !2284 update the proxy-libintl subproject to the latest release + - !2285 fix issues found by svace static code analyzer + - !2286 meson: fix warnings for extract_all_objects function + - !2287 ci: Update CI images to latest stable Debian and Fedora, bump Meson dependency to 0.52 + - !2288 Update g_source_remove doc comment: the function doesn't always return TRUE + - !2289 Update g_source_remove documentation for the returned value + - !2290 mkdir path specified by XDG_RUNTIME_DIR + - !2292 Fix cast from pointer to integer of different size warning in gio/gwin32appinfo.c + - !2293 glib-private: Fix MSVC build with AddressSanitizer + - !2294 Fix windows warnings + - !2295 gutf8: Document that out args from g_utf16_to_utf8() are non-negative + - !2303 Fix more windows warnings + - !2305 gio: document GFile API when relative path is absolute + - !2306 gunixmounts: Drop references to pamconsole mount option + - !2308 gthread-win32: Remove an unnecessary volatile qualifier + - !2309 Rename libpcre.wrap to pcre.wrap + - !2310 tests: Fix a typo in a test message in gdatetime.c + - !2311 Fix always true comparison warning in glib/garray.c + - !2319 docs: Fix the GListModel description + - !2323 Fix final warnings in Windows code + - !2324 Fix link to pcre-8.37.tar.bz2 + - !2326 Improve some documentation related to GTlsDatabase + - !2328 gutf8: add string length check when ending character offset is -1 + - !2329 gdbus: Add --interactive option to `gdbus call` + - !2332 Changed gendered terms to be gender-neutral + - !2333 gsubprocess: Add G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP + - !2336 tests: Drop arbitrary and flaky waits from actions tests + - !2339 ci: Bump Meson version to 0.60.1 on macOS + - !2341 tests: Wait for gdbus-testserver to die when killing it + - !2342 tests: Reformat mkenums.py slightly to make run-black.sh happy + - !2345 gutils: Disable some dead code on macOS + - !2347 Removing tests/asyncqueue-test.c from tests/ + - !2348 gio/tests/codegen.py: bump timeout to 100 seconds + - !2349 Annotate `g_getenv()` and `g_environ_getenv()` return value as `nullable` + - !2352 tests: Fix a flaky wait in converter-stream + - !2353 Address some oddities around GResolver::reload + - !2357 ci: Upgrade to clang-format-11 from clang-format-7 + - !2360 meson: specify when commands need to succeed in run_command + - !2364 tests: Allow `objcopy --help` to fail, because it fails on FreeBSD + - !2365 Add vfunc checks in gappinfo.c + - !2368 De-duplicate g_nearest_pow() implementation and add some overflow protections to g_ptr_array_maybe_expand(), g_string_maybe_expand() and g_string_chunk_insert_len() + - !2370 gqsort: Move test to glib/tests/ + - !2371 Freeze notification during object destruction + - !2372 docs: Improve GVariant docs + - !2373 glib.supp: Suppress one-time allocation in g_get_home_dir() + - !2376 GSource: move test to glib/tests/ + - !2379 Merging tests/bit-test.c into glib/tests/utils.c + - !2381 tests: Test the function forms of g_bit_*() APIs too + - !2382 gfileutils: Correctly reset start value when canonicalising paths + - !2385 gfileutils: Fix transfer annotation and whitespace issues + - !2386 docs: Add API documentation links to the README + - !2387 docs: Update the README a little + - !2390 Merging tests/child-test.c into glib/tests/spawn-multithreaded.c + - !2391 Removing redundant cxx test tests/cxx-test.cpp + - !2392 Move tests/completion-test.c to glib/tests/completion.c + - !2393 Removing unnecessary test on gdatetime.c + - !2396 fuzzing: Add a fuzz test for parsing DNS records + - !2397 Moving tests/dirname-test.c to glib/tests/fileutils.c + - !2398 fix /list/position test + +* Translation updates: + - Croatian + - Friulian + - Galician + - Hebrew + - Indonesian + - Italian + - Latvian + - Lithuanian + - Occitan (post 1500) + - Persian + - Polish + - Portuguese + - Portuguese (Brazil) + - Romanian + - Russian + - Serbian + - Slovak + - Spanish + - Swedish + - Ukrainian + + +Overview of changes in GLib 2.70.0 +================================== + +* Bugs fixed: + - !2248 ci: Replace FreeBSD 11 with FreeBSD 13 + +* Translation updates: + - Croatian + - Danish + - English (United Kingdom) + - French + - German + - Hungarian + - Polish + - Swedish + - Turkish + + +Overview of changes in GLib 2.69.3 +================================== + +* Bugs fixed: + - #2425 g_settings_schema_key_range_check() misbehaves for int versus bool + - #2472 Compiling anything with GCC <4.6 spews deprecation warnings + - #2477 `g_invoke_closure` bindings API break. + - #2481 GPowerProfileMonitorPortal does not notice initial power-saver-enabled status + - !2219 doc: Explicitly said, that no null term. is needed + - !2238 ci: Use C.UTF-8 locale on FreeBSD 12 + - !2240 gio: Fix conditions in memory-monitor test + +* Translation updates: + - Basque + - Catalan + - Chinese (China) + - Galician + - Kazakh + - Korean + - Lithuanian + - Romanian + + +Overview of changes in GLib 2.69.2 +================================== + +* The `DBUS_SESSION_BUS_ADDRESS` environment variable is once more not used if + the process is `AT_SECURE` (setuid/setgid/setcap); this change was previously + applied and then reverted because it broke gnome-keyring (#2316) + +* Add `g_test_fail_printf()`, `g_test_skip_printf()`, + `g_test_incomplete_printf()` helper functions for printing messages when tests + end prematurely (work by Simon McVittie) (!2215) + +* Add portal implementation of `GPowerProfileMonitor` (work by + Bastien Nocera) (!2222) + +* Bugs fixed: + - #2316 Re-harden DBUS_SESSION_BUS_ADDRESS for AT_SECURE processes in GLib 2.70 + - #2343 Document explicitly refcount mgmt of source-object during GAsyncReadyCallbacks + - #2454 Read past the end of buffer in g_win32_package_parser_enum_packages + - #2456 Frequent test failure on FreeBSD: glib/tests/thread-pool.c:197:test_thread_pool_full: 'free_func_called' should be TRUE + - !2157 tests: Add missing wakeup calls to gdbus-names test + - !2165 docs: Mention the stable/unstable support version in README.md + - !2211 Improve documentation of various TLS stuff + - !2215 gtestutils: Add more convenience functions + - !2216 tests: Fix error handling when testing gtestutils + - !2222 gio: Add portal version of GPowerProfileMonitor + - !2224 Docs: Mention that G_VA_COPY() must be followed by `va_end()` + - !2225 build: Fix implicit declaration of function errors + - !2226 Annotate the GString constructors + +* Translation updates: + - Czech + - Hebrew + - Slovenian + - Spanish + - Swedish + + +Overview of changes in GLib 2.69.1 +================================== + +* Support categories in desktop notifications (`GNotification`) + (work by Guido Günther) (#2446) + +* Add `GPowerProfileMonitor` for monitoring when to use less power (due to being + on battery power, electricity being expensive or high-carbon, etc.) + (work by Patrick Griffis, Bastien Nocera) (#2444) + +* Allow static names to be set for `GSource`s to avoid unnecessary string copies + (work by Matthias Clasen) (!2196) + +* Bugs fixed: + - #203 API: need g_module_open() variant with GError + - #2058 win32: GPrivate can leak some objects + - #2321 Add a GTypeFlag for final types + - #2429 safe_fdwalk/safe_closefrom for Solaris 11.3/11.4 + - #2439 gio trash doesn't recognize existing trash directory in non-fs-root mount + - #2446 Support `categories` for notifications + - #2452 g_string_replace() loops 2**32 times when replacing empty string + - !2177 gio/tests/g-file-info: don't assume million-in-one events don't happen + - !2178 Clarify GValue documentation + - !2179 Update GValue doc: How to use GBoxed with GValue + - !2180 correctly use 3 parameters for close_range + - !2181 gclosure: Fix the invoke() return_value annotation + - !2182 glocalfileinfo: Fix usec/nsec confusion with filetimes on Windows + - !2184 gspawn: Use CLOSE_RANGE_CLOEXEC if available + - !2188 g_boxed_type_register_static, G_DEFINE_BOXED_TYPE: added correlating information + - !2192 Fix more warnings + - !2193 glib.supp: Expand match kinds for g_get_language_names() suppressions + - !2194 Add GPowerProfileMonitor + - !2195 Fix some test suite memory leaks + - !2196 mainloop: Add g_source_set_static_name + - !2197 GResource compiler: Prefix static [con|de]strutors with c_name + - !2198 Port internal uses to use g_source_set_static_name() + - !2200 Fix doc stanzas for GDataInputStream properties + - !2201 Fix a Unicode typo + - !2202 Document the stance on ID-based mainloop APIs + - !2204 tests: Add a test for Unicode normalization + - !2205 GWin32RegistryKey / GWin32AppInfo registry watch fixes + - !2206 Adapt documentation to gi-docgen + - !2210 GWin32AppInfo: Fix missing initialization + +* Translation updates: + - Indonesian + - Portuguese + - Portuguese (Brazil) + - Russian + - Ukrainian + + +Overview of changes in GLib 2.69.0 +================================== + +* Fix a crash in `GKeyFile` when parsing a file which contains translations + using a `GKeyFile` instance which has loaded another file previously (#2361) + +* Pin GIO DLL in memory on Windows (!2016) + +* Fix building third-party projects against GLib on CentOS 7 (work by + Ignacio Casal Quinteiro) (#2387) + +* Add `g_thread_pool_new_full()` API to allow queued `GThreadPool` data to be + freed if the pool is freed early (work by Nitin Wartkar) (#121) + +* Ensure `dlerror()` is used with locking as it’s not thread-safe in some libc + implementations (#399) + +* Add `g_dbus_is_error_name()` and `g_dbus_is_interface_name()` convenience + functions (work by Nitin Wartkar) (#402) + +* Drop internal libpcre copy in favour of a subproject from wrapdb (#962, #642) + +* Add `g_prefix_error_literal()` helper function (work by Emmanuel Fleury, + building on work by Dan Williams) (#663) + +* Add `g_bytes_get_region()` to get data from a `GBytes` with range checks + (work by Nitin Wartkar, building on work by Allison Karlitskaya) (#1098) + +* Add `g_object_take_ref()` to sink a floating ref (work by Nitin Wartkar, + building on work by Allison Karlitskaya) (#1112) + +* Optimise grefcount atomic operations (work by Nishal Kulkarni) (#1583) + +* Fix resolving child GSettings schemas from the parent’s schema source (work + by Christian Persch) (#1884) + +* Fix `g_date_time_format()` return value encoding if `LC_TIME` is not a UTF-8 + locale but other locale settings are (work by Frederic Martinsons) (#2055) + +* Set app name in freedesktop.org notifications with `GNotification` (work + by André Apitzsch) (#2069) + +* Significantly improve retrieval of mount data on Windows (work by LRN based + on initial analysis by Jehan Pagès) (#2096) + +* Add `g_file_info_get_(access|creation)_date_time()` accessors (work + by Abanoub Ghadban) (#2281) + +* Always apply the remove_dot_segments algorithm to URIs in `g_uri_parse()`; + previously it was only applied to relative URIs (work + by Carlos Garcia Campos) (#2342) + +* Rename git `master` branch to `main` (#2348) + +* Various macro and version check cleanup (work by Gaël Bonithon, + Robin Verdenal-Tallieux, Nishal Kulkarni) (#2376, #2388, #2389) + +* Add a `GTlsConnectionClass.get_negotiated_protocol` vfunc so that + `g_tls_connection_get_negotiated_protocol()` can be made thread-safe + (work by Michael Catanzaro) (#2393) + +* Improve guess about whether a Windows process is a console process + (work by Princeton Ferro with input from LRN) (!1662) + +* Add `g_steal_fd()` function (work by Simon McVittie) (!1966) + +* Add `g_spawn_check_wait_status()` and distinguish more carefully between + wait status and exit status in the `GSpawn` API (work by Simon McVittie) (!1967) + +* Document GLib’s security policy; see + https://gitlab.gnome.org/GNOME/glib/-/blob/main/SECURITY.md (!1985) + +* Add `g_tree_remove_all()` (work by Lighto-Ku) (!1986) + +* Simplify exception handling on Windows to eliminate risk of it failing due + to prior heap corruption (work by LRN) (!2031) + +* Fix handling EOF when reading from SOCKS5 proxy stream (work + by Benjamin Berg) (!2032) + +* Unset the registered state of a `GApplication` after it has shut down (work + by Marco Trevisan) (!2056) + +* Support `GPattern` as a boxed type (work by Marco Trevisan) (!2066) + +* Add `g_tls_connection_get_protocol_version()` and + `g_tls_connection_get_ciphersuite_name()` to get TLS connection information + (work by Michael Catanzaro) (!2077) + +* Make TLS private key properties readable in `GTlsCertificate` (work + by Michael Catanzaro) (!2087) + +* Fix detection of static libintl when building on macOS (work + by Jonas Hahnfeld) (!2109) + +* Add `g_strv_builder_addv()` and `g_strv_builder_add_many()` to the + `GStrvBuilder` API (work by Alexandros Theodotou) (!2112) + +* Add `not-valid-before`, `not-valid-after`, `subject-name`, `issuer-name`, + `dns-names`, `ip-addresses` properties to `GTlsCertificate` + (work by Ross Wollman) (!2113, !2142) + +* Add PKCS#11 flags to `GTlsPasswordFlags` (work by Patrick Griffis) (!2126) + +* Bugs fixed: + - #121 GThreadPool and the ability to free data waiting to be handled + - #229 g_match_info_fetch_named not return empty string as expected + - #310 ref doc doesn't talk about "helper getters" optimization in g_file_info.c + - #399 dlerror() not thread-safe in all libc, making gmodule-dl.c's fetch_dlerror fail sometimes + - #402 please consider: #define g_dbus_is_error_name(x) g_dbus_is_interface_name (x) + - #626 Add documentation example for GArray and g_array_set_clear_func() + - #642 update to pcre 8.35+ + - #663 [patch] add g_prefix_error_literal() + - #793 Potentially confusing error message when object doesn't exist + - #817 gobject: Allow passing %NULL for @data in g_object_remove_toggle_ref + - #962 drop embedded pcre copy + - #1036 gdbusproxy stops tracking if dbus service restarts + - #1098 GBytes: add range-checked pointer getter + - #1112 GObject: add g_object_take_ref() + - #1583 Optimise gatomicrefcount operations + - #1864 Somewhat misleading documentation of GSourceFuncs + - #1884 `g_settings_get_child` not compatible with `g_settings_schema_source_new_from_directory` + - #2011 Add additional unit tests for D-Bus name watching + - #2055 g_date_time_format() does not return UTF-8 if LC_TIME is not UTF8 but other locale settings are UTF-8 + - #2069 FreedesktopNotification fails to set app_name + - #2096 SHGetFileInfoW() is not reliable (time-wise) + - #2281 Add g_file_info_get_(access|creation)_date_time() + - #2300 Crash on Windows MSVC build around gio + - #2311 testfilemonitor test leaks ip_watched_file_t struct + - #2340 GIO tests fail to build with clang-cl + - #2342 g_uri_parse doesn't apply the remove_dot_segments algorithm to the path + - #2348 Investigate renaming master git branch to main + - #2352 RUN_FIRST | RUN_CLEANUP signals with a default handler ignore return values from user handlers + - #2359 GLib 2.68.0: gio-querymodules segfaults on Windows + - #2361 g_key_file_load_from_file segfaults on "Key[*]="like lines + - #2363 g_newa() doesn’t check for multiplication overflow + - #2368 g_task_run_in_thread () limits are not clear + - #2369 glocalfile: Add native exfat magic number to filesystem list + - #2376 GLIB_VERSION_MAX_ALLOWED < 2.60 does not warn when using G_GNUC_FALLTHROUGH + - #2387 json-glib does not build with glib 2.68.1 + - #2388 Pixman compilation error due to glib + - #2389 Use G_GNUC_CHECK_VERSION to check the GNUC version + - #2393 g_tls_connection_get_negotiated_protocol() is not threadsafe + - #2397 Slow to list device in windows + - #2399 Change spelling of ‘serialise’ to ‘serialize’ in documentation + - #2405 Mention that GNotification requires an installed .desktop file to work + - #2409 Project crashes when executing g_application_mark_busy + - #2414 Devhelp: Glib Reference Manual/Glib Overview/Running Glib Applications formatting issue. + - #2416 certificate: g_tls_certificate_new_from_pem invalid read on non null terminated data + - #2417 GFile: `g_file_replace_contents()` reports `G_IO_ERROR_WRONG_ETAG` when saving from a symlink + - #2418 gatomic: __atomic functions are called for CV-qualified output variables + - #2423 resources.c:656:test_resource_binary_linked: 'found' should be TRUE + - !1514 gbookmarkfile: Don't crash if we're not visited + - !1662 gspawn-win32: improve guess whether process is console process + - !1812 docs: Expand documentation about D-Bus GUIDs + - !1957 Fix more warnings + - !1965 gversionmacros: Add version macros for GLib 2.70 + - !1966 Add g_steal_fd() to API + - !1967 Distinguish more clearly between wait status and exit status + - !1969 glib_typeof: Move definition to its own header + - !1985 docs: Add a policy for handling security issues + - !1986 make g_tree_remove_all public + - !1996 Include glibconfig.h to get the G_OS_UNIX token + - !1998 gpollableinputstream: Add missing annotation + - !1999 goption.c: Simplfy parse_short_option() + - !2004 Some improvements to clang-cl builds + - !2005 introspection: Remove 'caller-allocates' from POD types + - !2006 fuzzing: Add fuzz tests for functions which parse paths + - !2008 tests: Deactivate tls-bindings test suite for windows + - !2011 docs: Fix example program link + - !2012 docs: Replace git.gnome.org with gitlab.gnome.org urls + - !2013 fuzzing: Fix assertion failure in fuzz_paths.c + - !2016 GIO W32: Pin gio DLL + - !2023 gtlspassword: Fix g-i annotation of return for g_tls_password_get_value + - !2025 [th/gdbus-cleanup] two minor cleanup patches for gdbusconnection.c + - !2026 Split g_test_log() messages that contain multiple lines + - !2027 Fix a handful of minor leaks found by Coverity + - !2030 Fix more warnings + - !2031 Re-simplify exception handling on Windows + - !2032 gsocks5proxy: Handle EOF when reading from a stream + - !2033 Fix annotation of count arguments + - !2036 gmacros.h: use G_GNUC_CHECK_VERSION + - !2038 Fix more warnings + - !2039 Implement G_ANALYZER_NORETURN for Coverity + - !2040 Fix more warnings + - !2041 refcount: Clarify when the ref count ends up undefined + - !2042 grefcount: Clarify that the initial reference count is 1 + - !2043 gmacros.h: use g_macro__has_attribute() where possible + - !2046 gerror: Clarify docs around message requirements + - !2047 Fix more warnings + - !2048 Fix more warnings + - !2049 Fix typo in g_socket_listener_accept_async()'s comment + - !2050 gdbus: document completion after idle action for g_dbus_connection_signal_unsubscribe() + - !2051 Add nullable annotations in GUnixMountEntry + - !2052 g_string_replace(): Fix documentation of 'limit' parameter + - !2054 docs: Fix formatting of code block + - !2055 Improve handling of FILENAME_MAX + - !2056 application: Unset the registered state after shutting down + - !2063 Fix more warnings + - !2066 gpattern: Register as Boxed type and support introspection for it + - !2067 gmacros: missing check if __STDC_VERSION__ is defined + - !2069 gdbus-tool: Actually use argv[0] basename as program name + - !2071 gstring: Cleanup documentation of g_string_replace + - !2074 Fix more warnings + - !2075 gdtlsconnection: Fix a check for a vfunc being implemented + - !2077 tls: add functions to get protocol version and ciphersuite name + - !2078 gthreadedresolver: don't ignore flags in lookup_by_name_with_flags + - !2080 guuid: fix shift operation to parse hex string in uuid_parse_string() + - !2081 Fix more warnings + - !2085 gcredentials.h: Fix comment typo + - !2087 gtlscertificate: make private key properties readable + - !2088 Fix more warnings + - !2090 docs: Standardize spelling of serializ* + - !2091 Fix more warnings (clang) + - !2098 grefcount: Optimise g_atomic_ref_count_dec + - !2099 gmacros.h: G_NORETURN: remove useless checks + - !2100 tests: Add missing return value check in string test + - !2101 Fix more warnings + - !2104 tests: Drop use of g_test_bug_base() + - !2105 tests: Use a temporary file in the bookmarkfile tests + - !2106 Fix more warnings + - !2108 glib spawn-singlethread test only if F_DUPFD_CLOEXEC is defined + - !2109 meson: Fix detection of static libintl on macOS + - !2112 gstrvbuilder: add addv and add_many to the API + - !2113 tls: expose cert details on GTlsCertificate + - !2119 Fix more warnings + - !2120 gdbusobjectmanagerclient: Call GetManagedObjects async + - !2123 gdbus: Add various missing (nullable) or (not nullable) annotations + - !2126 gtlspassword: Add flags signifying PIN type for PKCS#11 + - !2127 gutils: ensure g_find_program_in_path() return an absolute path + - !2130 Revert "tests: Deactivate tls-bindings test suite for windows" + - !2139 gdbus, win32: Fix accidental dllexport in static builds + - !2142 tls: expose SAN details on GTlsCertificate + - !2143 compiling.xml: Don't recommend backticks + - !2144 pcre: Drop internal libpcre copy + - !2145 gunixmounts: Document NULL return value for g_unix_mount_for() + - !2152 tests: A few small improvements to GBytes tests + - !2153 docs: Fix annotations for optional arguments + - !2155 glocalfilemonitor: Avoid a deadlock on finalization + - !2162 testgdate: fix -Wmisleading-indentation warning + - !2166 gtlscertificate: Add more annotations to new properties + - !2167 g_value_set_string description: clarified (unified), that v_string is a copy. + - !2173 gasyncqueue: Add missing (nullable) annotation to free function + - !2174 data-to-c.py: generate new-line at the end of the file + +* Translation updates: + - Chinese (China) + - English (United Kingdom) + - Hebrew + - Nepali + - Occitan (post 1500) + - Serbian + + +Overview of changes in GLib 2.68.0 +================================== + +* Bugs fixed: + - !1987 build: Drop gconstructor_as_data_h usage from glib-compile-schemas + - !1989 glib.supp: Generalize some suppressions + - !1992 gbytesicon: Fix error in g_bytes_icon_new() documentation + - !1994 glocalfileoutputstream: Tidy up error handling + - !1995 tests: Fix copy/paste error in queue test + +* Translation updates: + - Czech + - Finnish + - Italian + - Korean + - Lithuanian + - Polish + - Romanian + - Slovenian + - Turkish + + +Overview of changes in GLib 2.67.6 +================================== + +* Fix a security issue when using `g_file_replace()` with + `G_FILE_CREATE_REPLACE_DESTINATION` (#2325) + +* Disallow operations on the empty path with `g_file_new_from_path()` (#2328) + +* Various fixes for GLib when building with clang-cl on Windows (work by + Aleksandr Mezin) (#2341, #2344) + +* Bugs fixed: + - #2325 file-roller symlink attack + - #2327 Teach glib-mkenums about GLIB_AVAILABLE_ENUMERATOR_IN_2_68, and start using it + - #2328 g_file_new_for_path("") yields CWD, which seems wrong + - #2341 glib-genmarshal output is sometimes empty because output file is not closed + - #2344 c_std=c11: gbitlock.c: ‘asm’ undeclared + - !1962 Validate D-Bus machine ID after loading + - !1976 Use the right permissions for directory watching on Win32 + - !1977 gio/tests/{meson.build,pollable.c}: Determine libutil SONAME at build time + - !1980 glib.supp: Add another system thread suppression + +* Translation updates: + - Basque + - Catalan + - Czech + - French + - Galician + - German + - Hungarian + - Indonesian + - Korean + - Latvian + - Portuguese + - Portuguese (Brazil) + - Serbian + - Spanish + - Swedish + - Ukrainian + + +Overview of changes in GLib 2.67.5 +================================== + +* Fix more issues with `glib_typeof` macro from 2.67.3–2.67.4 (work by + Iain Lane, Simon McVittie) (#2331, !1975) + +* Fix regression with some FD mappings passed to `g_subprocess_launcher_spawnv()` + caused by changes for #2097 in GLib 2.67.4 (work by Olivier Fourdan, + Philip Withnall) (#2332) + +* Fix detection of `str[n]casecmp()` when building with `clang-cl` (work by + Aleksandr Mezin) (#2337) + +* Use zlib from subproject if configured with `wrap_mode=forcefallback` (work by + Seungha Yang) (!1959) + +* Bump Visual Studio compilation requirement to VS 2012, and Windows 8 SDK for + GLib 2.67.x onwards (work by Chun-wei Fan) (!1970) + +* Bugs fixed: + - #832 Some tweaks re: GRWLock + - #2331 glib 2.67.3: can no longer be included in extern "C" blocks + - #2332 Glib 2.67.4 causes gnome-shell to exit when spawning Xwayland on demand + - #2333 Missing relation between g_file_info_get_size() and G_FILE_ATTRIBUTE_STANDARD_SIZE attribute in documentation + - #2337 Linking fails when building with clang-cl because of str[n]casecmp + - !1936 tests: Fix leak of dlopened module in pollable test + - !1954 Change SkipAsyncData fields to be gsize (and not gssize) + - !1956 The ETag returned by various GFile functions is nullable + - !1959 meson: Use subproject zlib if "wrap_mode=forcefallback" was specified + - !1961 gkeyfilesettingsbackend: check for errors when creating file monitors + - !1970 README.win32.md: Mention about Window 8+ SDK requirement + - !1971 gio/tests/pollable.c: Fix build on non-Linux UNIX + - !1975 gatomic.h: Make `glib_typeof` API break opt in. + +* Translation updates: + - Basque + - Danish + - English (United Kingdom) + - Galician + - German + - Indonesian + - Lithuanian + - Portuguese + - Portuguese (Brazil) + - Slovenian + + +Overview of changes in GLib 2.67.4 +================================== + +* Add a `g_string_replace()` function (work by Joshua Lee) (#225) + +* Add `G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER` flag to simplify + the common case for writing a D-Bus authentication observer, allowing most + uses of `GDBusAuthObserver` to be dropped (#1804) + +* Add a new `g_spawn_with_pipes_and_fds()` variant which supports renumbering + FDs (#2097) + +* Add new g_memdup2() API to replace g_memdup(), which is vulnerable to a + silent integer truncation and heap overflow problem if not used carefully + (discovered by Kevin Backhouse, work by Philip Withnall) (#2319) + +* Fix various regressions caused by rushed security fixes in 2.66.6 (work by + Simon McVittie and Jan Alexander Steffens) (!1932, !1941, #2323) + +* Fix a silent integer truncation when calling g_byte_array_new_take() for + byte arrays bigger than G_MAXUINT (work by Krzesimir Nowak) (!1942) + +* Fix `g_utf8_strdown()` to fix some issues in Turkish + (work by Kjell Ahlstedt) (!1930) + +* Bugs fixed: + - #225 GString doesn't have a g_string_replace() function + - #587 g_input_stream_skip() out-of-bounds behavior is inconsistent between implementations + - #1804 Add G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER flag + - #2097 GSubprocessLauncher with FD assignment can clash with g_spawn_async internal pipe + - #2315 httpproxy: Need overflow protection when reading response during connection establishment + - #2319 CVE-2021-27219 (GHSL-2021-045): integer overflow in g_bytes_new/g_memdup + - #2322 g_test_dbus: double output when piping + - #2323 [GLIB 2.66.6] g_io_channel_set_line_term() stopped working with null terminated strings and length -1 + - !1917 Adding a missing test on integer overflow within g_http_proxy_connect() + - !1918 Fix more warnings + - !1923 Add support for Tilix and Konsole + - !1930 guniprop: Fix g_utf8_strdown() for Turkish locale + - !1932 gtlspassword: Fix inverted assertion + - !1934 gdbus: Reject attempts to set future connection or server flags + - !1938 Fix more warnings + - !1939 ci: Temporarily disable macOS CI job as runner is offline + - !1940 Fix more warnings + - !1941 gkeyfilesettingsbackend: Fix basename handling when group is unset + - !1942 CVE-2021-27218: gbytearray: Do not accept too large byte arrays + - !1947 Revert "Merge branch 'wip/pwithnall/macos-ci-disable' into 'master'" + - !1948 tests: Use a more realistic language code than sv_SV + - !1949 gatomic: Make fallback g_atomic_pointer_get type-safe + - !1951 Add a test for parsing 0 as double + - !1955 tests: Add missing NULL terminator to spawn-singlethread test + +* Translation updates: + - Catalan + - Galician + - Hungarian + - Portuguese + - Romanian + - Slovenian + - Spanish + - Swedish + - Turkish + - Ukrainian + + +Overview of changes in GLib 2.67.3 +================================== + +* Add new `g_memdup2()` API to replace `g_memdup()`, which is vulnerable to a + silent integer truncation and heap overflow problem if not used carefully + (discovered by Kevin Backhouse, work by Philip Withnall) (#2319) + +* Add new `g_dbus_object_path_escape()` and `g_dbus_object_path_unescape()` APIs + to provide one way of escaping arbitrary bytestrings for use in D-Bus object + paths (work by Lars Karlitski and Frederic Martinsons) (#968) + +* Use `bash-completion.pc` (if available) to provide the path to install + completion files into (work by Frederic Martinsons) (#1054) + +* Fix support for public/private trigraphs in `glib-mkenums` (work by Matthias Klumpp) (!1870) + +* Add `glib_debug` configure option to allow disabling debug infrastructure in + builds with debug symbols enabled (work by Ole André Vadla Ravnås) (!1889) + +* Fix a regression where `PATH` would always be searched when using `g_spawn()`, + even when it wasn’t supposed to (work by Simon McVittie and Thomas Haller) (!1902) + +* Override `gio-querymodules` in Meson when used as a submodule (work by Xavier Claessens) (!1909) + +* Bugs fixed: + - #344 gdbus(1) command-line completion issues + - #968 gdbus: add g_dbus_object_path_{un,}escape + - #1054 Use pkg-config to get path for bash-completion file installation + - #1180 GUnixInputStream and GUnixOutputStream don't consider TTYs pollable + - #2011 Add additional unit tests for D-Bus name watching + - #2226 clang++ compilation fails on clusterfuzz + - #2292 Cannot find a common ancestor when running CI style check jobs + - #2299 GObject introspection annotation of g_closure_new_object() is wrong + - #2305 GIO security hardening causing gnome-keyring to regress when session bus is provided by dbus-launch (dbus-x11) + - #2314 gdatetime: math library link issue + - #2319 GHSL-2021-045: integer overflow in g_bytes_new/g_memdup + - !610 Various memory leak cleanups to GSettings tests + - !1804 Add more GIR annotations to gparam.c and gsignal.c + - !1823 Fix more warnings + - !1843 gfile: Add Linux kernel headers compatibility kludge + - !1847 Port to QNX + - !1853 ginetaddress: Handle systems without IPv6 support + - !1859 docs: update g_action_group_activate_action() remote activation semantics + - !1860 glocalfile: Fix an uninitialized variable + - !1865 tests: Add more debug information to gdbus-connection-slow + - !1868 gdesktopappinfo: Fix validation of XDG_CURRENT_DESKTOP + - !1870 mkenums: Support public/private trigraph again + - !1873 Fix possible integer overflow of g_socket_send_message() + - !1876 Fixing g_socket_send_message() documentation to make it clearer + - !1877 Fix more warnings + - !1878 Another fix on g_socket_send_message() + - !1879 Fix more warnings + - !1880 GError documentation tweaks + - !1881 docs: Move ‘Notes’ section from README to NEWS + - !1883 gutils: Document caching of XDG directory variables + - !1884 gthread-win32: Use SetThreadDescription Win32 API for setting thread name + - !1887 ci: Fix msys-mingw32 CI builds due to package rename + - !1888 docs: Add documentation for GLIB_VERSION_CUR_STABLE and PREV_STABLE + - !1889 build: Add glib_debug option + - !1890 gtype: Improve formatting of GType documentation + - !1891 Fix more warnings + - !1893 gwin32appinfo: Fix printf length sub-specifier + - !1894 gsocket: Fix SO_NOSIGPIPE regression on Darwin + - !1898 gtestutils: Add g_test_get_path() API + - !1899 m4macros: replace obsolete macros AC_TRY_RUN and AC_TRY_LINK in glib-2.0.m4 + - !1900 [th/gsignal-cleanup] minor changes to GSignal related code + - !1901 Check if the remote already exists before adding it. + - !1902 spawn: Don't set a search path if we don't want to search PATH + - !1903 m4macros: Increment serial number of glib-2.0.m4 + - !1905 Start to ignore known leaks under AddressSanitizer + - !1906 gdbus-serialization: Don't leak string containing first serialization + - !1908 Fix straightforward memory leaks in tests + - !1909 Meson: override gio-querymodules program + - !1910 gio: Add explicit virtual g-i annotations for undiscovered invoker relationship + - !1911 Fix more warnings + - !1915 Mark g_key_file_get_comment() key parameter as nullable + - !1919 atomic: Fix type check of g_atomic_pointer_compare_and_exchange() + - !1921 guri: Mark g_uri_get_host as nullable + - !1925 gapplication: Fix a memory leak + +* Translation updates: + - Czech + - Friulian + - Galician + - Hungarian + - Portuguese + - Portuguese (Brazil) + - Romanian + - Spanish + - Ukrainian + + +Overview of changes in GLib 2.67.2 +================================== + +* Add `gio launch` command to execute programs (work by Frederic Martinsons) (#54) + +* Fix unused parameter warnings in code generated by `gdbus-codegen` (work by Frederic Martinsons) (#1105) + +* Officially deprecate `to-pixdata` option for `glib-compile-resources`, in favour + of simply embedding more modern image formats in linked-in `GResource` files (#1281) + +* Support querying and running UWP applications on Windows (work by LRN) (#1991) + +* Support `gio trash --restore` and `gio trash --list` commands (work by Frederic Martinsons) (#2098) + +* No longer read environment variables for GIO module locations when running as setuid (#2168) + +* More progress on fixing compiler warnings (work by Emmanuel Fleury) (!1773 and others) + +* `GKeyFile` performance improvements (work by Timm Bäder) (!1829, !1832) + +* Improve UDP socket behaviour on Windows (work by Marco Mastropaolo and Ole André Vadla Ravnås) (!1827, !1844) + +* Add `-Dtests` meson configure option for disabling tests entirely (work by Ole André Vadla Ravnås) (!1850) + +* Bugs fixed: + - #54 Add `gio launch` command to execute .desktop files + - #513 GSignal: Impossible to have return values in signals which are G_SIGNAL_RUN_FIRST only + - #514 GSignal: Only limited usage of accumulator function possible + - #1105 gdbus-codegen: fix some unused parameter warnings + - #1188 Crash in gapplication.c:1014 when reading error message if dbus_register returns false without setting error + - #1281 Update glib-compile-resources and GResource docs to deprecate/remove to-pixdata in stable/master resp. + - #1283 gvfs-trash error message when unable to create trash directory is unhelpful + - #1568 GObject tutorial does not mention floating references + - #1991 W32: Glib cannot run UWP applications + - #2098 gio trash: restore trashed files to their original location + - #2168 giomodule: Loads GIO modules even if setuid, etc. + - #2264 GPtrArray might call qsort() with NULL data + - #2265 2.67.1 regression: assertion failure starting gnome-terminal + - #2275 gio/completion/gio: Some variables are not localized + - #2279 g_source_is_destroyed example uses deprecated GDK API + - !1304 Extended error + - !1773 Fix more warnings + - !1783 gtlsdatabase: remove duplicate precondition check + - !1784 fuzzing: Add more fuzzing tests for various string parsing functions + - !1785 glocalfile: Add an assertion to help static analysis + - !1787 Debuggability improvements in gosxappinfo.m + - !1788 gdate: Validate input as UTF-8 before parsing + - !1791 gdatetime: Disallow NAN as a number of seconds in a GDateTime + - !1794 gio-tool-info: Prevent criticals if mount options are not available + - !1796 gfileutils: Fix typo in docs + - !1797 gdatetime: Improve ISO 8601 parsing to avoid floating point checks + - !1801 glib: Add more missing return value annotations + - !1802 gobject: More missing return value annotations + - !1806 tests: Add some rounding tolerance in timeout test + - !1807 python: Reformat some files to keep style-check-diff happy + - !1808 tests: Be more lenient with timing checks on asyncqueue pops + - !1810 gfileinfo: Add missing preconditions to g_file_info_get_attribute_data() + - !1811 Add more missing nullable annotations + - !1813 gdbus-codegen: Ignore some flake8 warnings + - !1815 Fix more warnings + - !1816 fuzzing: Add more GUriFlags to the URI parsing test + - !1817 fuzzing: Add more parsing flags to the GKeyFile test + - !1818 Fix more warnings + - !1819 Fix more warnings + - !1821 gdate: Limit length of dates which can be parsed as valid + - !1822 Fix more warnings + - !1827 Windows: fix FD_READ condition flag still set on recoverable UDP socket errors. + - !1829 keyfile: Delay calling g_get_language_names() until it's needed + - !1830 gsocket: Fix credentials error-handling on Apple OSes + - !1832 More small GKeyFile performance improvements + - !1834 Update gvdb + - !1837 gdatetime.c: Fix MSVC builds for lack of NAN items + - !1838 Minor improvements to GError documentation + - !1840 Add nullable annotation for g_file_get_uri_scheme + - !1841 gthread: Fix incorrect cast + - !1842 gthread: Port native mutex to Clang + - !1844 gsocket: Improve default UDP behavior on Windows + - !1845 gsocket: Fix use-after-close + - !1848 gwin32: Always use unicode APIs + - !1850 build: Add option for disabling tests + - !1855 build: Fix ssize_t detection on older versions of glibc + - !1856 build: Fix Android system checks + - !1857 gtestutils: Fix g_assert_not_reached() on MSVC + - !1861 More GError tests + - !1863 tests: Ignore -Wformat-nonliteral warning in new GError tests + +* Translation updates: + - Catalan + - Galician + - German + - Lithuanian + - Romanian + - Spanish + - Ukrainian + + +Overview of changes in GLib 2.67.1 +================================== + +* Deprecate `g_time_zone_new()` in favour of `g_time_zone_new_identifier()`, + which makes error checking easier (#553) + +* Remove `volatile` from various public APIs, including `G_DEFINE_*`. You should + adjust your code to not use `volatile` for atomic variables, `GOnce` + variables, or mostly anything else (see + http://isvolatileusefulwiththreads.in/c/). (#600) + +* Support passing file handles to `gdbus` command line tool (work by + Norbert Pocs and Tim Waugh) (#961) + +* Add `g_assert_cmpstrv()` test convenience function (work by Niels De Graef) (#2015) + +* Changes to the behaviour of the `G_URI_FLAGS_SCHEME_NORMALIZE` scheme + normalization flag in `GUri` (work by Carlos Garcia Campos) (#2257, !1716) + +* Add new `--run-prefix` and `--skip-prefix` options to GTest, to allow running + or skipping test suites by prefix (work by Frederic Martinsons) (!1738) + +* Fix thread-safety of `GBinding`; see the updated documentation for + `g_object_bind_property()` for full details — if your code uses `GBinding` + across threads, you should re-check it against the latest documentation, use + `g_binding_unbind()` rather than implicitly dropping the binding with your + last `g_object_unref()` call, and use `g_binding_dup_source()`/`g_binding_dup_target()` + instead of `g_binding_get_source()`/`g_binding_get_target()` + (work by Sebastian Dröge) (!1745) + +* Bugs fixed: + - #553 Improved error-handling when timezone lookup fails + - #600 Remove "volatile" from G_DEFINE_* + - #961 gdbus tool: file handle passing doesn't work + - #994 mark g_assert_* as "noreturn" also on MSVC + - #1560 Can't get data for empty compressed resources + - #1592 Main loop ignores GPollFD sources when there is at least one source ready with priority higher than default one + - #1833 meson: reconsider G_DISABLE_CAST_CHECKS handling + - #1849 Documentation of g_set_object(): can object_ptr be null? + - #1963 Follow-up from "gdbusmessage: Limit recursion of variants in D-Bus messages" + - #2015 Add g_assert_cmpstrv() test utility + - #2046 Add pylint and shellcheck CI checks + - #2074 Big dbus writes with a FD list fail + - #2076 g_type_register_fundamental() and g_type_add_interface_static() should not trigger valgrind leak warnings + - #2150 Add URI parsing tests from GstURI to GUri + - #2221 GLib-GIO:ERROR:../gio/tests/gsocketclient-slow.c:99:on_event: 'connection' should be NULL + - #2223 Documentation of g_strrstr_len is misleading; suggested fix + - #2233 GSocketClient crashes on connection failure + - #2236 Docs: gdbus-codegen example links broken + - #2253 In gspawn.c, use sysconf() system call on Mac OS, instead of default maxfiles limit of 4096 + - #2257 GUri: apply scheme normalization flag consistently + - !1251 Improve support for interface types + - !1385 gobject: allocate parameter list for g_object_new_valist() entirely on stack + - !1629 Add some tracing to GTask + - !1699 Fix signedness warnings + - !1701 gio: Fix some remaining DocBook syntax in a documentation comment + - !1708 gio: Add missing nullable annotations + - !1716 guri: Normalize uri segments if they are encoded and add a flag to do scheme-based normalization + - !1722 gio: Fix various typos of the name ‘D-Bus’ + - !1724 glib/tests/fileutils: Fix expectations when running as root + - !1726 gdbus: Document the intended semantics of handles and fdsTim Waugh + - !1731 Make more use of g_assert_no_errno() + - !1733 gdbusauthmechanismsha1: Don’t create keyring dir when running as setuid + - !1734 glocalfileinfo: Use a single timeout source at a time for hidden file cache + - !1735 gobject: Standardise on the term ‘instantiatable’ + - !1737 gscanner: Avoid undefined behaviour copying between union members + - !1738 Extend the usage of -p option for glib test framework + - !1740 Fix more warnings + - !1745 Make GBinding thread-safe (alternative approach) + - !1746 gkeyfilesettingsbackend: improve error-checking + - !1747 Fix broken link syntax in g_vasprintf docs + - !1748 Fix minor Coverity return value warnings + - !1750 Fix warnings + - !1754 GWin32AppInfo: Use a thread pool for async appinfo tree rebuilds + - !1755 Minor Coverity fixes + - !1756 shellcheck fixes + - !1757 Python formatting improvements + - !1758 Fix warnings + - !1765 Fix more warnings + - !1766 Fix some gdatetime annotations + - !1767 tests: Fix GDateTime tests on FreeBSD + - !1769 gfileicon: Fix unused-but-set variable with G_DISABLE_ASSERT + - !1770 Minor scan-build fixes + - !1771 macos: fix frexpl checks in cross-compilation + - !1776 gio: ‘security_context_t’ is deprecated + - !1780 Minor Coverity fixes + - !1781 gspawn: Handle ENOSYS from close_range() + - !1782 ghostutils: Abandon hostname conversion early if it’s too long + +* Translation updates: + - Czech + - Spanish + - Ukrainian + + +Overview of changes in GLib 2.67.0 +================================== + +* Important and time-critical fix to DST transitions which will happen in Europe + on 2020-10-25 on distributions which use the ‘slim’ tzdata format (which is + now the default in tzdata/tzcode 2020b) (work by Claudi M., LRN) (#2224) + +* Further timezone handling changes to improve performance of `GTimeZone` (work + by António Fernandes, Sebastian Keller) (#2204) + +* Fix deadlock on Windows when `G_SLICE` is set in the environment (diagnosis by + Christoph Reiter) (#2225) + +* Fix UTF-8 validation when escaping URI components (thanks to Marc-André Lureau) (!1680) + +* Security fix for incorrect scope/zone ID parsing in URIs (!1669) + +* Add `g_log_writer_default_set_use_stderr()` API for printing log messages to stderr (work by Simon McVittie) (#2087) + +* Improve connection error reporting when IPv6 is available and disabled (work by Michael Catanzaro, debugging by Konstantin Kharlamov and Milan Crha) (#2211) + +* Fix definition of `G_MSVC_SYMBOL_PREFIX` for ARM (work by Wolfgang Stöggl) (!1187) + +* Add `GStrvBuilder` convenience API for building `NULL`-terminated string arrays (work by Robert Ancell) (!1417) + +* Support appinfo verbs other than ‘open’ on Windows (work by LRN) (!1502) + +* Expose node-based `GTree` APIs (work by Maciej S. Szmigiero) (!1509) + +* Add `G_DBUS_METHOD_INVOCATION_HANDLED`/`_UNHANDLED` convenience constants (work by Simon McVittie) (!1603) + +* Set `IP_BIND_ADDRESS_NO_PORT` on sockets when binding to local addresses (work by Cristian Rodríguez) (!1598) + +* Add Meson option for libelf support (work by Niklas Gürtler) (!1650) + +* Add support for PKCS #11-backed TLS certificates (work by Patrick Griffis) (!1663) + +* Add `g_subprocess_launcher_close()` API to make `GSubprocessLauncher` more usable in bindings (work by Sergio Costas) (!1677) + +* Bugs fixed: + - #1233 GType for GTree + - #2077 Invalid Pointer Arithmetic in g_path_get_basename + - #2087 Respecting G_MESSAGES_DEBUG in a custom log writer should be easy to do + - #2164 GDBus DBUS_COOKIE_SHA1 mechanism may use too old a key + - #2194 gtk3/glib crash on gimp + - #2203 fstatat is available only on macOS 10.10+ + - #2204 Time zone cache is constantly invalidated if TZ is NULL + - #2209 gthreadedresolver: faulty logic in parse_res_txt + - #2210 g_private_replace ordering issue + - #2211 "Network is unreachable" error returned when IPv6 is disabled and network is reachable using IPv4 + - #2215 DST incorrectly ends on wrong dates + - #2224 top bar time is incorrect, timezone map in control center is broken + - #2225 Setting G_SLICE makes Windows programs hang since 2.66 + - !1187 Define G_MSVC_SYMBOL_PREFIX correctly for ARM + - !1417 gstrvbuilder: Add a new object to make NULL-terminated string arrays. + - !1449 gio: Expose g_file_query_info_for_copy() + - !1502 GWin32AppInfo: Support verbs other than "open" + - !1509 GTree: add an ability to iterate over a tree and a node-based API + - !1575 Use C++11 decltype where possible + - !1598 gsocketclient: set IP_BIND_ADDRESS_NO_PORT if binding to local address + - !1603 GDBus: Add G_DBUS_METHOD_INVOCATION_HANDLED, _UNHANDLED + - !1643 Minor Coverity fixes + - !1645 Fix various signedness warnings + - !1647 Fix warnings (keep going) + - !1648 glocalfile: Never require G_LOCAL_FILE_STAT_FIELD_ATIME + - !1650 Make libelf dependency optional via meson feature + - !1652 trash portal: Handle portal failures + - !1654 gio-tool-trash: Prevent recursion to speed up emptying trash + - !1657 glist: Clarify that g_list_free() and friends only free an entire list + - !1658 utils: Limit the scope of the variable `max` + - !1661 Lookup fallback time zones in the cache to improve performance + - !1663 gtlscertificate: Add support for PKCS #11 backed certificates + - !1665 Fix g_module_symbol() under Windows sometimes not succeeding + - !1669 guri: Fix URI scope parsing + - !1670 GSubprocessLauncher: Move cleanup to dispose() + - !1671 gdatetime: Avoid integer overflow creating dates too far in the past + - !1673 CI: Re-enable code coverage reporting for MSYS2 builds + - !1674 Add version macros for 2.68 + - !1675 Make static assertions about standard types + - !1677 gsubprocesslauncher: Allow to close FDs + - !1678 gmessages: Document that using a custom log writer basically disables fatal handling + - !1679 gmain: Fix minor typo in documentation + - !1680 guri: Fix UTF-8 validation when escaping URI components + - !1681 gspawn: Handle error opening /dev/null + - !1686 Various improvements in GSocketClient + - !1687 uri: add missing (not)nullable annotations + - !1688 gspawn: Use close_range() if available to close FDs between fork/exec + - !1691 gmain: Fix possible locking issue in source unref + - !1692 gsignal: Plug g_signal_connect_object leak + - !1695 gfile: Clarify refcount handling for g_file_replace_contents_bytes_async() + - !1696 Fix various minor scan build warnings + - !1706 Add various missing nullable annotations + - !1712 Revert "Use C++11 decltype where possible" + - !1714 gmacros: Use __typeof__ when compiling with Clang + - !1718 gtrace: Add G_GNUC_PRINTF annotation + +* Translation updates: + - Chinese (Taiwan) + - Danish + - Greek, Modern (1453-) + - Hebrew + - Latvian + - Portuguese + - Russian + - Slovak + - Ukrainian + + +Overview of changes in GLib 2.66.0 +================================== + +* Bugs fixed: + - #2200 missing tab in makefile rule + - !1639 guri: Fix user passed to g_uri_split_with_user() not being NULL'd + +* Translation updates: + - Croatian + - Hungarian + - Italian + - Serbian + - Slovak + - Swedish + + +Overview of changes in GLib 2.65.3 +================================== + +* Fixes to the new `statx()` calls — note that since GLib 2.65.2 uses `statx()` + (if available) instead of `stat()`/`fstat()`/`lstat()`/`fstatat()`, syscall + sandboxing for third party applications might need to be updated + +* Bugs fixed: + - #2189 g_file_query_info on ro file system: Numerical result out of range + - #2191 Calling nice(20) can lead to thread related warnings + - #2197 Segfaulting Integer Overflow in g_option_group_add_entries + - !1025 Big o notations + - !1626 gio: Document g_settings_new() missing schema behaviour + - !1627 gthread: Add a sysprof mark for thread creation + - !1628 Replace a bunch of fallthrough comments with an attribute + - !1631 Fix splice behavior on cancellation + - !1632 Fixing signedness warning in glib/gfileutils.c + - !1635 gcancellable: Mark a variable as unused if built with G_DISABLE_ASSERT + +* Translation updates: + - Basque + - Catalan + - Chinese (China) + - Czech + - English (United Kingdom) + - Friulian + - German + - Japanese + - Kazakh + - Korean + - Lithuanian + - Polish + - Portuguese (Brazil) + - Slovenian + + +Overview of changes in GLib 2.65.2 +================================== + +* Support `statx()` and `G_FILE_ATTRIBUTE_TIME_CREATED` (work by Andre Miranda) (#1970) + +* Fix deadlock in `g_subprocess_communicate_async()` (work by Alexander Larsson) (#2182) + +* Add `%f`/microsecond placeholder support to `g_date_time_format()` (work by Johan Bjäreholt) (!1605) + +* Bugs fixed: + - #5 g_new0 performance + - #1970 Make G_FILE_ATTRIBUTE_TIME_CREATED support stx_btime + - #2176 Inconsistent introspection annotations for g_input_stream_read and g_socket_receive + - #2182 g_subprocess_communicate_async() can deadlock when writing + - !1593 CI support for Coverity Scan + - !1605 gdatetime: Add %f format specifier and microsecond precision to g_date_time_format_iso8601 + - !1613 gfile: Document TOCTTOU avoidance using g_file_delete() + - !1615 docs: glib-compile-resources: json-stripblanks + - !1616 gioerror: Map WSAENETRESET on Windows to G_IO_ERROR_CONNECTION_CLOSED + - !1619 Minor Coverity fixes + - !1620 gvariant: Ensure GVS.depth is initialised + - !1622 gdatetime: Widen a variable before multiplication + - !1623 gcancellable: Assert that make_pollfd() call succeeds + - !1624 gdbusaddress: Drop an unnecessary NULL check + - !1625 gdbusmessage: Drop redundant uint ≥ 0 checks + +* Translation updates: + - French + - Galician + - Greek, Modern (1453-) + - Indonesian + - Romanian + - Spanish + - Turkish + - Ukrainian + + +Overview of changes in GLib 2.65.1 +================================== + +* Add `GUri` API for parsing, building and representing URIs according to + [RFC 3986](https://tools.ietf.org/html/rfc3986) (work by Marc-André Lureau) (#110) + +* Fix handling of xattr data with embedded nuls (#422) + +* Add `g_file_set_contents_full()` which gives more control over fsyncs (#1302) + +* Fix cross-compilation on iOS (work by Nirbheek Chauhan) (#1868) + +* Add a `x-gvfs-notrash` option to disable trash on certain mounts (work by Ondrej Holy) (!1549) + +* Support ‘slim’ TZif files generated with `zic -b slim` (work by Paul Eggert) (#2129) + +* Support emitting profiling marks from `GMainContext` to sysprof capture files (!1551) + +* Accept IPv6 zone IDs in `g_hostname_is_ip_address()` (work by Marc-André Lureau) (!1604) + +* Bugs fixed: + - #4 Include a UTF-8 safe escaping function + - #110 Basic URI operations + - #137 display_name should be always available + - #250 GTestCase's setup/teardown functions appear pointless + - #272 allow thread pools to adjust the number of threads to the number of cpu's/cores + - #422 Wrong assumption in libgio GFileInfo on xattr/acl string: it may contain binary data. + - #858 glib2 @2.40.0 issues a "Got weird mach timebase info" error (Macports, PPC) + - #1022 g_object_new Should Mention That it Zeroes Out Private Struct + - #1200 Make g_assert_null/nonnull clang static analyzer friendly + - #1203 Add a variant of g_file_set_contents() which accepts file mode + - #1288 gmacros: Introduce non-public G_CLANG_ANALYZER_NORETURN macro + - #1302 g_file_set_contents() can fill target with NUL bytes if it did not previously exist + - #1670 ThreadSanitizer data races + - #1764 cancellable test: on_mock_operation_ready: assertion failed (iterations_requested > iterations_done): (10 > 10) + - #1868 iOS cross compile impossible due to frexpl check not supporting cross compilation + - #1869 iOS doesn't have Cocoa, which thankfully isn't a requirement of this code that supposedly requires it + - #1982 GSocketAddressEnumerator documentation is inconsistent with existing usage + - #2127 Spurious GIO module initialization on Fedora Silverblue (and other ostree-based systems?) + - #2129 date_time bugs after 2038, or with today's date and 'zic -b slim' TZif files + - #2132 Valgrind reports "still reachable" after g_thread_pool_new/free + - #2136 Valgrind reports "still reachable" after g_option_context_parse + - #2140 calling malloc in fork child is undefined-behaviour + - #2141 g_value_copy is was recently broken + - #2149 Make G_URI_FLAGS_PARSE_STRICT the default + - #2156 Merge _g_uri_parse_authority() into GUri + - #2159 Thread-unsafe initialization in gportalsupport.c + - #2160 More guri regressions + - #2165 More guri breakage + - #2166 g_uri_build() functions should accept a NULL scheme + - !1328 guri: new URI parsing and generating functions + - !1527 Add g_tls_connection_get_channel_binding_data call and enums + - !1534 Various GLocalFile fixes related to the filesystem::remote attribute + - !1546 tree: Fix various ableist language + - !1549 Add support to ignore trash for certain mounts + - !1551 Add initial sysprof support + - !1553 gtestutils: Mark that g_assert_whatever() macros do not normally return + - !1554 GUri build fixes + - !1555 Remove c-format from the string that is not c-formatted + - !1556 fuzzing: Another fix for g_uri_parse() test + - !1557 A few g_uri_parse_params() improvements + - !1559 Fix buffer read overflows in GUri + - !1561 gconvert: Use a pointer array in extract_uris + - !1563 gdesktopappinfo: Fix unnecessarily copied and leaked URI list + - !1564 tests: limit number of threads to something reasonable. + - !1570 Reduce CI bandwidth requirements + - !1572 Add GUriParamsIter + - !1576 gtask: Only override g_task_set_source_tag() for GLib ≥ 2.60 + - !1577 uri: add illegal_characters argument to unescape_bytes + - !1578 tests: Add tests for RFC 8536 v3 parsing of time zones + - !1579 glib: Use g_getenv everywhere instead of getenv + - !1582 appinfo: Add properties + - !1583 gio: Remove broken support for XP + - !1590 Use CI schedules and DAGs + - !1591 gfileutils: Fix O_NOFOLLOW handling on BSD systems + - !1594 GFile: Document that G_FILE_CREATE_REPLACE_DESTINATION can only be used with... + - !1595 uri: add ENCODED_PATH & ENCODED_FRAGMENT flags + - !1599 uri: do not add ipv6 brackets on non-ip host + - !1600 uri: do not encode ':' and ';' from userinfo + - !1601 timezone: Fix an uninitialized use + - !1602 Revert "Merge branch 'appinfo-properties' into 'master'" + - !1604 Make g_hostname_is_ip_address() accept ipv6 zoneid + - !1609 Fix multiple typos in guri.c + - !1611 guri: Always prepend `//` to the host when building a URI + - !1612 guri: Document and check restrictions on path prefixes + +* Translation updates: + - Catalan + - Kazakh + - Lithuanian + - Romanian + - Slovenian + - Spanish + - Ukrainian + + +Overview of changes in GLib 2.65.0 +================================== + +* Fix memory monitor tests to only be installed if installed-tests are enabled, + and to be skipped if GObject-Introspection is too old (!1407) + +* Stability improvements for various unit tests + +* D-Bus credentials support on macOS (#507) + +* MSVC support for the files generated by `glib-compile-resource` and `gdbus-codegen` (#1215, !1452) + +* Year 2038 fixes involving new API in `GBookmarkFile` (#1931) + +* SOCKS5 proxy authentication fixes (#1986, #1988) + +* Support for more than `MAXIMUM_WAIT_OBJECTS` FDs for `g_poll()` on Windows (#2107) + +* Add `g_assert_no_errno()` test macro for testing POSIX-style functions (!1204) + +* Update Unicode Character Database to version 13.0.0 (!1422) + +* Support storing interned strings in `GValue`s efficiently, via `g_value_set_interned_string()` (#2109) + +* Bugs fixed: + - #2 g_filename_from_utf8() should normalize? + - #176 the behaviour of constructors for GLib data types is not specified if memory allocation fails + - #480 /gdbus/connection/signals test intermittently fails: assertion failed (count_name_owner_changed == 2): (1 == 2) + - #507 GDBus credentials don’t work on OS X + - #602 GLib.Thread not usable from GObject-Introspection + - #1154 Missing documentation how to set a value in a GArray + - #1215 MSVC cannot build glib-compile-resource's output resource file + - #1323 meson, autotools: figure out if mem barrier is needed for arm64 host variant aarch64 + - #1398 gdate: Add error handling for GetDateFormatW calls + - #1841 Signal handler disconnection race when finalising GCancellableSource + - #1851 Meson Build Failure on Windows: Undefined Reference to libiconv + - #1911 Memory leak in g_param_spec_flags and/or g_param_spec_enum + - #1931 GBookmarkFile API involves time_t + - #1954 gdbus-server-auth intermittent failure + - #1957 gdbus-connection test failure on FreeBSD + - #1986 Socks5 Proxy: Authentication seems broken + - #1988 Socks5 Proxy: Wrong error returned when using no authentication + - #2038 Bindings: g_tls_connection_set_database() does not allow None as argument + - #2051 GUnixOutputStream can block on close() + - #2057 Call malloc_trim() under memory pressure + - #2067 Glib uses _Static_assert in C++17 mode + - #2081 gdbus error messages contains mixed up body and head signatures + - #2082 AM/PM - specific variation support needed to Hebrew language + - #2083 Memory monitor tests fail if dbusmock isn't installed + - #2092 FreeBSD CI timing out in gdbus-connection filter test + - #2094 Deprecation warnings when compiling with -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_28 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_28 + - #2106 Duplicated if - else if conditions in gtranslit.c + - #2107 g_poll() implementation on Windows stall when more than MAXIMUM_WAIT_OBJECTS FDs have passed + - #2109 GValue: Add support for interned string + - #2124 g_file_info_get_content_type() may return NULL + - #2132 Valgrind reports "still reachable" after g_thread_pool_new/free + - #2134 Valgrind reports "still reachable" after `g_uuid_string_random()`. + - #2135 Valgrind reports "still reachable" after g_key_file_new/free + - #2136 Valgrind reports "still reachable" after g_option_context_parse + - !1204 gtestutils: Add a new g_assert_no_errno() test macro + - !1302 gobject: new g_param_is_valid_property_name() function. + - !1329 Support nanoseconds in stat timestamps on Windows + - !1341 MUI capabilities for GWin32RegistryKey + - !1360 CI: Show execution environment before we start + - !1395 tests: Move memory_monitor_tests under installed_tests_enabled + - !1396 macros: Define G_GNUC_FALLTHROUGH for more compilers + - !1397 tests: Skip MemoryMonitor test if GObject-Introspection is too old + - !1398 gcontenttype: Fix crash in _get_generic_icon_name() + - !1402 ci: Update Android Docker image for aarch64 CPU naming change + - !1405 tests: Disable link-time warning for mem-overflow + - !1406 Replace fallthrough comments with G_GNUC_FALLTHROUGH + - !1408 tests: Don't compare strings by pointer + - !1409 gdummytlsconnection: Add missing overrides for ALPN properties + - !1413 gapplication: Fix a minor typo in the documentation + - !1414 gstrutils: Set locale explicitly for search-utils test + - !1415 meson: Don't use assert in test code + - !1418 ginetaddress, ginetsocketaddress: Add missing (nullable) annotations + - !1422 glib: Update Unicode Character Database to version 13.0.0 + - !1423 gobject: Clarify assertion failure on ref-after-finalize + - !1424 docs: Fix configuration with gtk_doc=true and installed_tests=false + - !1425 gdbusconnection: GDBusSignalCallback can have a NULL sender_name + - !1426 gunidecomp: Update and reformat Unicode version support history + - !1427 gicon: Clarify GVariant refcounting in docs + - !1428 Add missing 'extern' to the dllexport version of GLIB_VAR/GOBJECT_VAR + - !1429 Fix arch detection ifdefs in glib/valgrind.h + - !1430 Use __builtin_trap() on Clang on any platform + - !1431 glib-unix.c: fix heap corruption in g_unix_get_passwd_entry + - !1432 docs: Mention new gio tool options + - !1433 meson: Fix buildtype usage + - !1434 gdbusconnection: Clarify nullability of SignalInstance.sender + - !1436 glib: Update internal copy of valgrind.h from Valgrind 3.15 release + - !1437 gmarkup tests: tab character escape/unescape + - !1439 Don't misdetect stpcpy on windows platforms on clang + - !1440 Silence clang errors about -Wformat-nonliteral due to missing intermediate attributes + - !1441 Meson: Override every dependency glib provides + - !1442 gfile: Fallback to fast-content-type if content-type is not set + - !1443 gio: use TAPTestRunner in the memory monitor tests + - !1444 Meson: Add glib-checks and glib-asserts options + - !1452 Make symbols generated by gdbus-codegen exportable on Visual Studio-style builds + - !1455 gdesktopappinfo: Note that search results are not filtered + - !1456 GCredentials documentation fixes + - !1458 meson: Exclude gosxutils.m when building for iOS + - !1459 meson: Fix the gnulib checks for isnan* functions + - !1460 glib: Sync the local modification to glib/valgrind.h to what was upstreamed + - !1462 gvariant-core: Add a note about memory safety of children + - !1463 gdesktopappinfo: Add several nullable annotation to GAppInfo getters + - !1464 Update Fedora CI + - !1466 CI: Switch to new Windows runners + - !1469 goption: Treat an empty option context parameter string as NULL + - !1475 Improve documentation of g_tls_database_verify_chain() + - !1476 tests: Fix remaining race in gdbus-connection filter test + - !1479 Improve documentation of client connection validation flags + - !1480 CI: Make sure we use meson 0.49.2 in MSYS2 + - !1481 array: fix corrupt state of GPtrArray after g_ptr_array_extend_and_steal() + - !1482 [th/g-ptr-array-variable-cleanups] minor cleanup of variables for GPtrArray + - !1487 glib: annotate static inline functions with G_AVAILABLE-type macros + - !1488 Rebuild Fedora CI image + - !1491 gdatetime: update annotations + - !1492 glib-mkenums: allow optional 'since' tag + - !1493 meson: Remove stray ] in O_DIRECTORY check + - !1496 Fix GLIB_UNAVAILABLE_STATIC_INLINE declaration + - !1498 array: add internal ptr_array_new() helper for creating GPtrArray + - !1503 docs: Add indexes for symbols added in 2.66 + - !1505 gobject: Handle runtime checks as such + - !1506 tests: Speed up the cancellable test + - !1508 tests: Speed up the file test and make it more reliable + - !1512 Various fixes when building for iOS + - !1513 Initialize the visited time of a new GBookmarkFile + - !1515 meson: check for stpcpy using cc.links() + - !1516 gthreadedsocketservice: Mark source_object of run signal as nullable + - !1517 GWin32RegistryKey: Move assertions + - !1518 strfuncs: Use a GPtrArray in strsplit() + - !1522 meson: Fix gnulib printf checks + - !1524 meson: Fix gnulib build where isnan*() is needed + - !1525 Normalize C source files to end with exactly one newline + - !1528 gtlsconnection: Improve documentation of peer-certificate[-errors] + - !1530 tree: Fix various typos and outdated terminology + - !1531 gvariant: Fix documentation for g_variant_get_string() to match reality + - !1532 win32: spelling fix + - !1535 glib.supp improvements + +* Translation updates: + - Bokmål, Norwegian + - Catalan + - Catalan (Valencia) + - Chinese (Taiwan) + - Dutch + - French + - Galician + - German + - Hebrew + - Indonesian + - Italian + - Japanese + - Latvian + - Lithuanian + - Malay + - Romanian + - Serbian + - Slovak + - Slovenian + - Spanish + - Turkish + - Ukrainian + + +Overview of changes in GLib 2.64.0 +================================== + +* Use `posix_spawn()` to speed up launching test D-Bus instances (!1388) + +* Bugs fixed: + - #1783 Document using glib-mkenums with meson + - #2049 Crash in g_array_copy + - !1384 Some minor clang warning fixes + - !1386 docs: Document generated headers caveats for genmarshal + - !1387 ci: Correctly propagate exit status in run-style-check-diff.sh + - !1388 gtestdbus: Use posix_spawn() to spawn dbus-daemon + - !1389 Update GError docs to use G_DEFINE_QUARK + +* Translation updates: + - Czech + - Danish + + +Overview of changes in GLib 2.63.6 +================================== + +* Fix potential relative read when calling g_printerr(), which could lead to a + denial of service from a setuid-root process being used to block access to the + TTY for another user (#1919) + +* Fix SOCKS proxy resolver sometimes not being used when resolving addresses + via Happy Eyeballs (CVE-2020-6750) (#1989) + +* Several other Happy Eyeballs fixes for address resolution (#1871, #1872, #1902) + +* Various race fixes in `GDBusConnection` and its unit tests (#1515) + +* Fix a race condition with D-Bus name ownership (#1517) + +* Drop `gio-launch-desktop` helper application in favour of calling `sh` directly (#1633) + +* Fix win32 exception handling with C# exceptions (#2025) + +* Fix thread safety of `GUnixMountMonitor` (#2030) + +* Additional fixes to new thread pool attribute behaviour from GLib 2.63.4 to + check if sched_setattr() is allowed by system policies before depending on it (#2039, !1356) + +* Fix memory leaks and corruption when freeing `GSource`s while freeing a `GMainContext` (!1353) + +* Drop inappropriate installation of object manager example documentation (!1359) + +* Bugs fixed: + - #938 gdbus call -a doesn't support message bus connections + - #1515 gio/gdbus-threading test sometimes fails in CI + - #1517 g_bus_own_name does not always call name_lost_handler when _REPLACE and _ALLOW_REPLACEMENT are set + - #1633 should not install gio-launch-desktop into PATH + - #1919 read from relative path in g_printerr() in 2.58.3 + - #1995 Tracker issue for Happy Eyeballs regressions + - #2002 g_io_channel_read_line does not honour the line_term symbols set + - #2025 W32 exception handling misbehaves when C# exceptions are thrown when running inside the Visual Studio debugger + - #2030 Random nautilus test suite failures involving GUnixMountMonitor + - #2039 sched_setattr() still can cause EPERM through natural causes + - #2043 Low memory monitor test failed in CI + - #2044 GApplication docs suggest invalid GVariant type + - !1185 gtimezone: Tidy up UTC timezone creation + - !1281 ci: Update Docker packages + - !1283 gmodule: change _g_module_close to only take a handle. + - !1298 tests: Speed up the GIO actions test + - !1299 gapplication: Fix a minor typo in the documentation + - !1339 gsocketclient: Refactor g_socket_client_connect_async() + - !1353 GMainContext - Fix memory leaks and memory corruption when freeing sources while freeing a context + - !1354 GThreadPool - Add test for !1340 + - !1355 glist: Add docs examples of how to combine with g_steal_pointer() + - !1356 GThread - Check if sched_setattr is allowed by the system policies before depending on it + - !1359 docs: Don’t install object manager example separately + - !1363 Make tests pass if we are euid != 0 with capabilities + - !1366 Fix oss-fuzz coverage link + - !1372 gobject: Fix strict aliasing warnings with g_set_object() + - !1376 gitlab-ci: 64-bit ARM is aarch64, not arm64 + - !1381 ghash: Document the iteration order over a hash table is not defined + - !1382 tests: Bump the refcount timeout in gdbus-threading + - !1383 ci: Enable parallelisation when running installed tests + +* Translation updates: + - Basque + - English (United Kingdom) + - French + - Galician + - German + - Greek, Modern (1453-) + - Hungarian + - Indonesian + - Japanese + - Korean + - Lithuanian + - Polish + - Portuguese (Brazil) + - Spanish + - Swedish + - Turkish + + +Overview of changes in GLib 2.63.5 +================================== + +* Fix behaviour of `g_file_move()` fallback code to not follow symlinks (#986) + +* Rename `--glib-min-version` argument of `gdbus-codegen` to `--glib-min-required` + (this is not an API break as `--glib-min-version` was added earlier in the + 2.63 cycle) (#1993) + +* Add gtk-doc checks to CI and fix a number of documentation issues + (thanks to Xavier Claessens) (!978) + +* Add `G_SIZEOF_MEMBER()` macro (!1333) + +* Add a debug message if `g_setenv()` or `g_unsetenv()` are used after any + threads have been spawned — this will be upgraded to a warning in future (!1337, #715) + +* Skip memory monitor tests if xdg-desktop-portal or dbusmock are not available (!1296, !1338) + +* Change the `libmount` configure option from a boolean to a Meson `feature` (!1344) + +* Do not return `target-uri` from `g_file_peek_path()` when called on trash/recent files (!1346) + +* Drop new TLS certificate API for PKCS #11 backed certificates, as the implementation + is not ready yet (this is not an API break as the API was added earlier in the + 2.63 cycle) (!1347) + +* Bugs fixed: + - #986 g_file_move: remove G_FILE_COPY_NOFOLLOW_SYMLINKS section + - #1551 CI: Add checks for `TODO` in MRs + - #1925 Large number of routes installed into kernel cause high cpu usage + - #1993 Rename gdbus-codegen --glib-min-version argument to --glib-min-required and add --glib-max-allowed + - #2012 spawn_thread_queue not initialised in GThreadPool + - #2020 g_network_monitor_base_add_network() improperly unrefs GInetAddressMask + - !978 Various fixes to make gtkdoc-check pass on glib + - !1018 docs: tag enclose 'all' and 'help' values + - !1170 Avoid C++20 deprecated assignment to volatile + - !1296 tests: Skip GMemoryMonitor tests if the dbusmock template is not available + - !1307 Remove global declaration of GMemoryMonitor + - !1322 gmain: Mark G_SOURCE_FUNC as available in 2.58 + - !1333 Add and use G_SIZEOF_MEMBER() macro + - !1337 genviron: Message if g_setenv()/g_unsetenv() are used after threads spawned + - !1338 tests: Skip GMemoryMonitor tests if xdg-desktop-portal is not available + - !1344 meson: libmount autodectection + - !1345 gio-tool-info: Print unix mount information where available + - !1346 gfile: Do not return target-uri from g_file_peek_path() + - !1347 Revert "gtlscertificate: Add support for PKCS #11 backed certificates" + - !1348 ghash: Clarify that g_hash_table_add() always consumes the key + - !1349 doc: Clarify that _locker_new() does not actually allocate memory + - !1351 glib.supp: update g-threaded-resolver-getaddrinfo-config + +* Translation updates: + - Japanese + - Lithuanian + - Malay + - Portuguese (Brazil) + - Swedish + + +Overview of changes in GLib 2.63.4 +================================== + +* Fix various race conditions on signal emission in GDBus (#604, #978, #1232) + +* Change thread pools so that thread attributes (in particular, priority) are + inherited from the thread which created the `GThreadPool` initially, rather + than from the thread which is pushing a new job into the pool (#1834, #2007) + +* Expand support for running Windows apps with + `g_app_info_launch_default_for_uri()` using rundll32 on Windows (#1932) + +* Support multiple directories in `GSETTINGS_SCHEMA_DIR` environment variable (#1998) + +* Support full Julian day range in `TZ` environment variable (#1999) + +* Apply recursion depth limits to variants in D-Bus messages (!1201) + +* Support adding call flags and timeouts to method calls generated by + `gdbus-codegen` through the new `--glib-min-version` option (!1286) + +* Fully deprecate TLS rehandshakes; they are now ignored due to TLS protocol + changes (!1305) + +* Bugs fixed: + - #198 g_fopen and friends: should also state how to close a stream + - #604 GDBus name watching dispatch is buggy/excessively-complicated + - #833 g_object_set: document the need to cast varargs + - #978 SIGSEGV in on_name_lost_or_acquired + - #1232 Insufficient thread safety around GDBusObjectManagerClient + - #1416 Re-add macOS CI + - #1834 Unwanted priority/etc inheritance with GThreadPool and GThread and the POSIX implementation + - #1932 Windows: Gio.AppInfo.launch_default_for_uri seems not to work for local files/folders + - #1983 glib:gio / dbus-appinfo test fails: GLib-GIO:ERROR:../../../../Projects/glib/gio/tests/dbus-appinfo.c:326:on_flatpak_open: 'g_file_equal (files[0], f)' should be TRUE + - #1997 Base64 encoding with "break_lines" claims to wrap at 72 characters but seems to wrap at 76 + - #1998 support multiple directories in GSETTINGS_SCHEMA_DIR + - #1999 GTimeZone fails to accept full Julian day range when parsing the direct $TZ string format + - #2007 Thread scheduler attributes fail under valgrind + - !388 ci: Avoid downloading subprojects for each job + - !1111 gio: test that launch_uris() exports files with the document portal when launching a flatpak + - !1201 gdbusmessage: Limit recursion of variants in D-Bus messages + - !1279 tests: Fix an error message set by foo_set_property() + - !1286 gdbus-codegen: Add a GDBusCallFlags arg to method calls + - !1291 gio-tool-list: Add an option to print display names + - !1294 GMemoryMonitor docs fixes + - !1295 gio: Fix socket test + - !1301 GThread - Inherit parent thread priority by default for new Win32 threads + - !1303 gvariant-core: Don't pass NULL second argument to memcpy + - !1305 Fully deprecate TLS rehandshakes + - !1308 gsocketclient: run timeout source on the task's main context + - !1309 Fix crash in gutils when application is prevented access to passwd file + - !1317 gfdonotificationbackend: remove notifications when bus name vanishes + - !1320 subprojects: Temporarily avoid using wrapdb while it’s down + - !1324 ci: Add some documentation to the style check CI test + - !1325 Check for SYS_sched_getattr before using it unconditionally + - !1330 W32: Correctly set st_ino when doing private stat() + - !1334 gthread: Ensure GThreadSchedulerSettings is always defined + +* Translation updates: + - Catalan + - Galician + - Hungarian + - Indonesian + - Polish + - Portuguese (Brazil) + - Spanish + + +Overview of changes in GLib 2.63.3 +================================== + +* Add a `--glib-min-version` argument to `gdbus-codegen` which controls breaks in the API of generated code (#1726) + +* Add `g_clear_list()` API to clear `GList`s to `NULL` (#1943) + +* Add a `GMemoryMonitor` API to be notified of memory pressure situations using the low-memory-monitor project (!1005) + +* Add support for dispose functions for `GSource` implementations (!1175) + +* Tighten up validation of GObject signal and property names, allowing performance improvements (!1224) + +* Fix installation path of GIO modules on MSVC to be the bindir (!1254) + +* Bugs fixed: + - #650 g_signal_lookup gives too many warnings + - #1011 GListStore, easily find if the item is already inserted + - #1130 gdbus-codegen: Add an option to strictly generate markdown in source comments + - #1687 glocalvfs.c uses non-thread-safe getpwnam() + - #1726 Warn when method/signal uses type 'h' but lacks GDBus.C.UnixFD annotation + - #1935 Assert in _kqsub_free seems to be too strict + - #1943 Consider g_clear_list() + - #1947 Documentation clarification for g_uuid_string_random() + - #1953 Documentation for g_type_init() and others missing from online gtk-doc documentation + - #1961 A typo in the comment of `g_settings_schema_get_path`: threfore -> therefore + - !1005 gio: Add GMemoryMonitor to monitor for low-memory + - !1172 gptrarray: Add an example to the g_ptr_array_steal() docs + - !1175 Implement a dispose function for GSource + - !1223 Add additional valgrind suppressions + - !1224 Signal name handling improvements + - !1230 ci: Run installed-tests on Fedora + - !1235 Add sudo to Fedora docker image + - !1239 tests: Run "timeout tests" sequentially + - !1248 ci: Update all Debian CI runners to use v5 of the Dockerfile + - !1249 gio-tool-mount: Allow mounting by the given UUID + - !1252 ci: Fix running all jobs on merge requests + - !1253 gthread: Fix "zero as null pointer" warning + - !1254 giomodule: gio modules are no longer installed in bindir on MSVC + - !1255 ci: Build Docker images rather than OCI images if using podman + - !1256 gdate: Add autoptr support + - !1258 Minor CI fixups + - !1261 gtk-doc: Ensure we have recent enough version + - !1262 tests: Add tests for the gdbus-codegen executable + - !1265 build: don't check for protected visibility + - !1267 Revert "doc: Workaround gtkdoc-scan bug leading to undocumented symbols" + - !1268 ci: Work-around successful installed tests having no logs + - !1269 gvariant: Add guard to g_variant_get() + - !1271 tests: Enable GDBus debug for a number of unreliable tests + - !1274 trash portal: Don't follow symlinks + - !1275 Small doc correction + - !1277 Various gtk-doc improvements + - !1278 Update installed tests CI + - !1280 clang-format-diff: Output diff for multiple files, not just one + - !1282 Revert "Revert "docs: remove GDBusObjectManager example"" + - !1284 Update POTFILES.in 191212 + - !1287 atomic/tests: test g_atomic_pointer_compare_and_exchange() with const pointers + - !1289 gtype: Define auto-cleanup functions for Module class + +* Translation updates: + - Spanish + + +Overview of changes in GLib 2.63.2 +================================== + +* Use `lldb` rather than `gdb` on macOS for debugging (#1004) + +* Switch the atomic builtins from `__sync_fetch_*()` to the slightly more modern + `__atomic_*()` (#1750) + +* Fix calculation of `gsize` width on various platforms (including OpenBSD) (#1777) + +* Fix undefined behaviour causing brokenness in `g_utf8_find_prev_char()` when + compiling with GCC ≥ 8 (#1917) + +* Revert UNIX mode changes in `G_FILE_ATTRIBUTE_ID_UNIX_MODE` which broke OSTree (#1934) + +* Slightly improve performance for signal emissions when no handlers are connected (!1083) + +* Add `g_task_return_value()` and `g_task_propagate_value()` APIs to allow + `GTask` to be used from language bindings more easily (!1216) + +* Fix a file monitoring crash on kqueue-based systems (BSD) (!1221) + +* Bugs fixed: + - #1004 [PATCH] Make gbacktrace use lldb on Mac OS X + - #1552 CI: Add code style checks + - #1750 Switch from __sync_fetch_*() to __atomic_*() in glib/gatomic.h + - #1777 gsize: improper typedef on (at least) OpenBSD + - #1895 Regression: glib does not compile on centos 6: "objcopy: unrecognized option '--add-symbol'" + - #1917 Test utf8-pointer fails with static build, LTO, optimisations, and new GCC + - #1930 glib/tests/bookmarkfile.c:385:test_modify: assertion failed: (stamp == now) + - #1934 ostree tests broken since bfdc5fc4fc84ef8518d2d1a328c8482cf5a38e98: File '/tmp/test-tmp-libostree_test-basic-user.sh.test-QB4SA0/diff-test2' is not empty + - #1938 GDateTime doesn't support leap seconds + - #1940 atomics test fails on FreeBSD CI since !1123 + - !1039 Improve documentation for footgun function g_tls_client_connection_copy_session_state() + - !1083 Use the GObject hole on 64bit arches for some flags to improve performance + - !1202 CI updates after !1177 + - !1208 gutils: Slightly improve docs formatting for g_get_os_info() + - !1209 Make ld executable configurable + - !1210 gdbus-server-auth test: Include gcredentialsprivate.h + - !1213 gsocket: Improve diagnostics on bind() failure + - !1214 gvariant, gbytes: Avoid memcmp (NULL, ., 0) or memcmp (., NULL, 0) + - !1216 Make GTask more binding-friendly + - !1218 gdb: Fix GHashTable pretty printer off-by-one error + - !1220 gparam: fix memory leak in g_param_value_defaults() + - !1221 Add NOTE_REVOKE to the list of the monitoring events + - !1225 gtlsconnection: clarify handshake() documentation + - !1227 Deprecate old GTlsConnection functionality even harder! + - !1231 Fix build on old libc that does not define _SC_HOST_NAME_MAX + - !1238 gstrfuncs: use gsize type internally for strv functions + - !1242 gfileinfo: Clarify the documentation for G_FILE_ATTRIBUTE_UNIX_MODE + - !1243 docs: Fix "occurred" typos in API documentation + +* Translation updates: + - Spanish + + +Overview of changes in GLib 2.63.1 +================================== + +* Several usability improvements to command line `gio` tool (!1153) + +* Add `g_array_steal()`, `g_ptr_array_steal()` and `g_byte_array_steal()` APIs (#285) + +* Add `g_get_os_info()` API (!1063, !1160) + +* Add `g_warning_once()` API (!1028) + +* Always resolve `localhost` to loopback address in `GResolver` (!616) + +* Add `GMainContextPusher` API (!983) + +* Limit recursion in `g_variant_parse()` (!1173) + +* Fix crash in `g_spawn()` with high FD numbers due to use of `select()` rather + than `poll()` (#954) + +* Allow passing empty `GValue`s to `g_param_value_set_default()` (!1186) + +* Escape header guards generated by `gdbus-codegen` better (#1379) + +* Bugs fixed: + - #285 [PATCH] add array steal and memdup functions + - #954 The g_spawn_sync() function uses select() which has limitations + - #1318 rare failure in gdbus-peer test: invalid uninstantiatable type '(null)' in cast to 'GDBusServer' + - #1379 gdbus-codegen generates invalid header guards when build directory contains a + character + - #1622 NULL pointer derefs on g_vasprintf() failure + - #1813 g_option_context_add_main_entries() is missing array annotation for entries parameter + - #1831 No reply on private socket due to auth problem + - #1836 gobject.c uses undefined annotation “(not optional)” + - #1858 docs/reference/gobject/tut_gobject.xml: object properties example uses deprecated API + - #1877 g_cancellable_source_new annotated with 'skip' + - #1896 Use after free when calling g_dbus_connection_flush_sync() in a dedicated thread + - #1897 glib 2.62.0 fails test 'test_writev_no_vectors' wih gcc7 + - #1903 use-after-free in mimeapps test causes intermittent segfault during testing + - #1906 test_os_info fails on FreeBSD + - #1916 objcopy not used from cross-compilation file in GIO tests + - #1923 Recent Versions of GLib Break Dolphin File-Manager's Thumbnailing when Using 'gtk2' Style + - !616 Always resolve localhost to loopback address + - !983 gmain: Add GMainContextPusher convenience API + - !1014 tests: Add a test for g_assert_finalize_object() + - !1028 gmessages: Add g_warning_once() + - !1035 Switching from C gnu89 to C gnu99 standard + - !1063 gutils: Add g_get_os_info() + - !1082 gdatetime: Document RFC 3339 extensions when parsing ISO 8601 + - !1105 syscall flood on every time*() function call + - !1120 Update documentation with FreeBSD build instructions + - !1135 gmain: use atomic operation instead of GMutex to access g_main_context_default() + - !1146 Solaris build fixes + - !1147 gmodule: fix typo in doc comment + - !1148 gio/gfileinfo: fix parameter references + - !1149 gio/gfile: fix parameter reference for value_p + - !1150 gio/gfile: fix parameter references to @contents + - !1151 gio/gfile: fix typo in doc comment + - !1152 gwinhttpvfs: Handle g_get_prgname() returning NULL + - !1153 Several gio-tool bash completion fixes and improvements + - !1155 Strict-aliasing fixes to new atomic built-ins + - !1157 Fix various compiler warnings on Android + - !1160 Add Windows support to g_get_os_info() + - !1161 hash: Remove an assertion from the hot path + - !1163 gcharset: Expand the documentation for g_get_locale_variants() + - !1165 Use uname as a fallback to get OS info + - !1167 Fix some minor leaks in testfilemonitor + - !1168 Fix gdatetime tests on toolbox + - !1171 Revert "gdbus-codegen: emit GUnixFDLists if an arg has type 'h'" + - !1173 gvariant: Limit recursion in g_variant_parse() + - !1177 ci: Add libdbus development files to CI Docker images + - !1179 Improve GPtrArray doc-comments + - !1180 array: Avoid use of memcpy(dest, NULL, 0) + - !1181 gmain: Clarify thread safety of some common GSource functions + - !1182 gio: Fix typo in URL + - !1186 Allow using an empty GValue with g_param_value_set_default() + - !1189 gparamspecs: Fix type class leaks on error handling paths + - !1197 Fix GDBus test failures on non-Linux (in particular FreeBSD) + - !1200 Minor fixes from a scan-build run + +* Translation updates: + - Catalan + - Chinese (Taiwan) + - Spanish + + +Overview of changes in GLib 2.63.0 +================================== + +* Add g_fsync() API (#35) + +* Fix regression in g_file_copy() when passing + `G_FILE_COPY_TARGET_DEFAULT_PERMS` flag; the destination permissions would be + private rather than following the process’ umask (!1142) + +* Several `GDateTime` parsing fixes (!1127) + +* Always build the tests if installed-tests are enabled, so that the tests can + actually be installed (!1141) + +* Rework atomic function implementations to use memory barrier in the correct + place (when compiler intrinsics aren’t providing the atomics), and fix + signedness issues (#1449, #1565) + +* Use the OS’ `fdwalk()` function (if safe) to speed up `g_spawn_*()` on BSD (#1638) + +* Remove the macOS `dyld` `GModule` implementation in favour of `dl` instead (!1093) + +* Bump Python requirement to ≥ 3.5, which we implicitly relied on anyway through + our Meson dependency (!1132) + +* Bugs fixed: + - #35 add g_fsync to API + - #174 g_file_copy always preserves permissions, even if G_FILE_COPY_ALL_METADATA flag is not set + - #259 docs: fix a misunderstanding in g_type_add_interface_* + - #767 g_signal_lookup fails if class is not referenced + - #1052 g_io_write_chars calls abort when given a null byte as input + - #1449 glib fallback atomic int/ptr get/set have memory barrier in wrong place + - #1565 Signedness of atomic operations + - #1638 g_spawn_*() is extremely slow under certain circumstances + - #1809 Provide API for working with PKCS11 backed certificates + - #1843 TSAN false positive with g_atomic_pointer_get/g_atomic_pointer_set under Clang + - #1865 g_variant_get_data_as_bytes fails after serializing a variant + - #1875 Segfault and Overflow in __gio_xdg_cache_mime_type_subclass() with Wps-Office installed + - #1887 glib 2.62.0 breaks loading dylibs as modules + - #1888 2.62: docs build on Windows broken + - #1897 glib 2.62.0 fails test 'test_writev_no_vectors' wih gcc7 + - !1020 docs: Remove priv pointers from the tutorial example + - !1062 gtype: mark the inline functions in G_DECLARE_*_TYPE() as UNUSED + - !1080 tests: Fix skipping mkdir-with-parents-permission test + - !1088 Various small scan-build fixes + - !1090 giochannel: Clarify type of GSource callback in documentation + - !1093 gmodule: remove macOS dyld implementation + - !1095 Define G_IOV_MAX to 512 on macOS/iOS + - !1099 gmem: clarify that g_malloc always uses the system allocator + - !1109 doc: fix typo in gio/gsettings.c + - !1110 gio: Add missing "gio remove" option to bash completion script + - !1112 Add version macros for GLib 2.64 + - !1115 gdatetime: Fix error handling in g_date_time_new_ordinal() + - !1116 gmarkup: Add a limit on the number of attributes in an element + - !1119 Annotate the return value of various utility functions + - !1124 docs: Fix typo in GConverter{Input,Output}Stream section titles + - !1125 gdatetime: Fix error handling in g_date_time_new_week() + - !1126 fileinfo: Mention that usec mtimes are set + - !1129 gdate: Fix tautological comparison warnings on Android + - !1130 Improve GLIB_DEPRECATED_MACRO_FOR output + - !1131 gio/gfileinfo: fix param reference in doc comment + - !1132 build: Bump Python requirement to ≥ 3.5 + - !1137 gregistrysettings: bump key name length to 2048 + - !1138 Always build tests if we enabled installed-tests + - !1139 g_file_info_get_modification_date_time: Calculate in integer domain + +* Translation updates: + - Danish + - Italian + - Panjabi + - Serbian + - Turkish + + +Overview of changes in GLib 2.62.0 +================================== + +* Fix new `GFileInfo` APIs to work when `G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC` + was not queried (!1087) + +* Bugs fixed: + - #487 Add valgrind test runs to CI + - !1084 garray: Fix reference to GLIB_SIZEOF_INT + - !1086 glib.supp: make gobject_init() calloc also of the possible kind + - !1087 fileinfo: ignore USEC if not available + +* Translation updates: + - Friulian + - Portuguese (Brazil) + + +Overview of changes in GLib 2.61.3 +================================== + +* Support setting thread name on BSD systems (#1761) + +* Install previously-uninstalled headers for public `GNativeSocketAddress` + object (#1854) + +* Very initial support for Windows apps (UWP) (!1057) + +* Add various new valgrind suppressions to `glib.supp` (#1879, !1075) + +* Bugs fixed: + - #83 Optimisation for g_nearest_pow() in garray.c + - #512 GSignal: accumulator function not called to accumulate G_SIGNAL_RUN_CLEANUP object handler return values + - #873 allow NULL arguments to parse_strv + - #905 Patches from static analysis run on 2.40 + - #1057 goption: add sanity check to input parameters + - #1309 GSettings object stops emitting "changed" signal on g_settings_reset after call to g_settings_delay + - #1620 GDBus criticals from GVfs with GLib master + - #1761 Setting thread-name on BSD systems + - #1803 GDK_SCALE=X is not respected when using "gio open" + - #1819 Invalid characters in Open Location dialog crashes GIMP + - #1852 Regression: g_mkdir_with_parents() returns 0 on failure + - #1854 glib/gio: GNativeSocketAddress headers not installed. + - #1860 g_clear_handle_id does not trigger GLIB_VERSION_MAX_ALLOWED warning + - #1863 Potential invalid writes on g_utf8_strreverse + - #1867 A couple of en_GBisms + - #1870 GSettingsBackend watches not thread-safe + - #1879 Incomplete valgrind suppressions - 16 KiB leak reported by valgrind from loading libglib-2.0.so + - #1880 glib/gbacktrace.c: If dup2 happened to return -1, don't call dup2 with same value + - #1881 GIO_USE_VOLUME_MONITOR and GIO_USE_FILE_MONITOR do not work as documented + - !1002 Remove mentions of mailing lists from the documentation + - !1011 gapplication: Fix a leaking GRemoteActionGroup member + - !1015 Post-release version bump + - !1016 gnetworkmonitornm fixups + - !1017 Improve ISO 8601 parsing by GDateTime + - !1023 g_object_get_property: Improve documentation for use of G_VALUE_INIT + - !1026 gutf8: Assert that written memory stays in bounds + - !1027 gfileutils: Fix error propagation for other than ENOENT + - !1031 meson: build gnulib if printf isn't good enough + - !1032 meson: small printf check cleanups + - !1033 win32: don't assume the format specifier for the stdlib printf/scanf like functions + - !1034 glib/tests/fileutils: Add a reproducer for #1852 + - !1036 cond test: Don't make assumptions about struct sigaction member order + - !1037 Meson: Override glib-compile-resources/schemas + - !1044 Relax use of g_test_bug() to not require g_test_bug_base() to be called first + - !1049 minor typos in the documentation + - !1050 tests: Fix a pragma warning on FreeBSD + - !1054 gerror: Add a docs paragraph about not displaying errors verbatim in UI + - !1057 Some (probably) easy uwp patches + - !1059 Update win32 readme, add myself to codeowners + - !1066 libffi.wrap: Meson port has moved to FDO gitlab + - !1068 gsubprocesslauncher.c: fix documentation + - !1071 meson: Move libdl_dep to the top level + - !1074 Adjust README formatting + - !1075 glib.supp: add suppression for g_type_class_ref() + +* Translation updates: + - Basque + - Catalan + - Czech + - English (United Kingdom) + - French + - Galician + - German + - Hungarian + - Indonesian + - Korean + - Lithuanian + - Polish + - Romanian + - Spanish + - Swedish + + +Overview of changes in GLib 2.61.2 +================================== + +* Add various new array functions (#236, #269, #373) + - `g_array_copy()` + - `g_ptr_array_copy()` + - `g_ptr_array_extend()` + - `g_ptr_array_extend_and_steal()` + - `g_array_binary_search()` + +* Add `g_assert_finalize_object()` helper function for writing tests (#488) + +* Rework how D-Bus connections are closed/unreffed when `g_test_dbus_down()` is + called. Tests which leak a `GDBusConnection` may now time out and abort, + rather than silently leaking. (#787) + +* Add a deprecation macro for GLib macros, and use it; third-party uses of + long-deprecated GLib macros may now start causing warnings. (#1060) + +* Deprecate `GTime` and `GTimeVal`, and various functions which use them. + Use `GDateTime` and `guint64` UNIX timestamps instead. (#1438) + +* Stop using `G_DISABLE_DEPRECATED` to allow disabling deprecation warnings; + third-party code should now be using + `GLIB_VERSION_{MIN_REQUIRED, MAX_ALLOWED}` to control symbol usage (!871) + +* Improve support for running `ninja test` when GLib is built statically (#1648) + +* Improve `GNetworkMonitor` detection of offline states (#1788) + +* Fix build failure on macOS related to missing `_g_content_type_get_mime_dirs` + function (#1791) + +* Add various installed utilities’ paths to `gio-2.0.pc` (#1796) + +* Fix keyfile `GSettings` backend and portal (especially relevant to any version + of GLib included in a flatpak runtime) (#1822, !985) + +* More IPv6 ‘Happy Eyeballs’ fixes in `GNetworkAddress` (!865) + +* Fix CVE-2019-12450, wide permissions of files when copying using GIO (!876) + +* Bump the Meson dependency from 0.48.0 to 0.49.2; we won’t depend on anything + higher than this for a while, as Debian 10 ships 0.49 (!924) + +* Various test fixes for Windows (!930, !931) + +* Initial support for Universal Windows Platform (UWP): certification, and use + of packaged libraries (!951) + +* Add experimental clang-cl support on Windows, allowing `g_autoptr()` support + on Windows (!979) + +* Bugs fixed: + - #77 G_STDIO_NO_WRAP_ON_UNIX wraps + - #236 Add a function to copy an array + - #269 Additional convenience functions for g_ptr_array + - #373 GArray could use a binary search function + - #436 running tests leaves lots of coredumps + - #453 find-enclosing-mount docs confusing + - #488 Add g_object_assert_last_unref() helper macro to detect object leaks in tests + - #590 A reader lock can be obtained even if a writer is already waiting for a lock + - #638 g_atexit is defined when not declared + - #737 Initialize GValue in g_object_get_property() + - #787 gtestdbus: Properly close server connections + - #804 gdbusproxy prefixes unstripped error + - #870 Fix and enhance GDatetime for Windows + - #872 ucs4 functions have wrong return transfer + - #887 gdusmessage.c mishandles bounds of GDBusMessageType and related enums + - #894 gvalue: Avoid expensive checks where possible + - #940 Docs for g_socket_listener_set_backlog are not very helpful + - #943 G_DEFINE_TYPE_WITH_PRIVATE docs not helpful + - #1018 Allow guid key in dbus addresses + - #1060 Add deprecation macro for macros + - #1169 Tools can display gibberish messages from translations + - #1270 g_get_charset always returns 8-bit codepage on Windows, crippling UTF-8 output + - #1438 Deprecate GTimeVal- and GTime-based APIs + - #1635 g_socket_join_multicast_group iface parameter fails on win32/64 + - #1648 2.58.2: Assorted asserts fail in Arch Linux when built statically + - #1729 g_content_type_guess segfaults when passed an empty data buffer on Mac OS + - #1788 GNetworkMonitor claims I am offline + - #1790 documentation on g_file_info_get_attribute_as_string + - #1791 _g_content_type_get_mime_dirs missing from libgio-2.0.0.dylib on MacOS + - #1792 glib-genmarshal generated valist marshal does not respect static scope for some types + - #1793 glib-genmarshal generates wrong code for va marshaler for VARIANT type + - #1794 API Proposal: g_timer_is_active + - #1796 Add gio-querymodules variable to pkg-config file + - #1797 glib/tests/win32 test failing on 64-bit Visual Studio builds + - #1798 /contenttype/tree reliably fails on FreeBSD since !863 + - #1807 g_dbus_server_new_sync() documentation references nonexistent function + - #1808 Stopping a GDBusServer should clean up Unix socket paths (if not abstract) and nonce-tcp nonce files + - #1811 Introspection info for g_unichar_compose's 3rd arg should be OUT + - #1822 keyfile gsettings backend not loading + - #1823 Documentation for disabling selinux is incorrect + - #1825 GKeyFileSettingsBackend created without filename construct property and unchecked assertion + - #1828 Small typo in gio manpage + - #1837 Specify for each (optional) parameter, whether it is OUT or INOUT + - #1838 Reword documentation for G_DECLARE_FINAL_TYPE + - #1847 Setting GLIB_VERSION_{MIN_REQUIRED, MAX_ALLOWED} to before 2.56 triggers warnings + - !533 docs: Document pitfall of deprecation pragmas + - !563 ci: Add scan-build job in a new ‘analysis’ pipeline stage + - !678 glib-compile-schemas: Improve translatable strings + - !817 gdate: Officially mark GTime as deprecated + - !851 gsettings: Document that lists are returned in no defined order + - !853 gobject: Fix apostrophe usage in a few small bits of documentation + - !859 gobject: Add a g_assert_finalize_object() macro + - !863 gunicollate/cygwin: Don't use __STDC_ISO_10646__ for wchar_t related checks + - !865 gnetworkaddress: fix "happy eyeballs" logic + - !867 Post-release version bump + - !871 Drop G_DISABLE_DEPRECATED + - !873 Use atomic reference counting for GSource + - !874 Clamp number of vectors to IOV_MAX / UIO_MAXIOV for GOutputStream writev()... + - !875 CI/msys2: disable coverage reporting, lcov doesn't support gcc9 yet + - !876 CVE-2019-12450: gfile: Limit access to files when copying + - !877 gio: specify proper c_marshaller and va_marshallers + - !883 tests: Fix small race in GSubprocess tests + - !884 garcbox.c: Fix typo atomit => atomic + - !885 goption: Clarify G_OPTION_ARG_FILENAME documentation + - !889 Include for FIONREAD + - !901 gmain: Clarify that g_source_destroy() doesn’t drop a reference + - !904 Add glib-genmarshal tests and fix some valist marshaller bugs + - !906 property action: Add state hints + - !908 Improve testfilemonitor test repeatability and debuggability + - !909 D-Bus auth mechanism improvements + - !914 ci: Run scan-build in a different build directory + - !915 docs: fix typo on arrays examples in gvariant-text + - !917 docs: Fix name of IRC channel in CONTRIBUTING.md + - !919 glib/tests/refcount.c: Fix tests on non-GCC-isque compilers + - !920 gmacros: Only use deprecated attributes on enumerators with GCC ≥ 6.5 + - !923 Check if compiler symbols are defined before using them + - !924 Bump the required version of Meson + - !930 glib/tests/convert.c: Skip tests that aren't meaningful for Windows + - !931 glib/tests/fileutils.c: Fix stdio Wrapper Test on Windows + - !934 build: Increase the slow test timeout to 180s + - !935 Ignore */__pycache__/* directories + - !937 Fix module tests on Visual Studio builds + - !939 gstdio: minor cleanups + - !941 list model: Expand items-changed docs + - !944 gutils: Don't limit the length of the host name to 99 + - !945 Avoid overrunning stack at the end of the varargs. + - !947 gobject/tests/signals.c: Fix tests on Windows + - !948 GObject: Fix mkenums.py and genmarshal.py tests on Windows + - !950 ci: Enable CI on FreeBSD 12 + - !951 Preliminary patches for Universal Windows Platform support + - !952 gio: Make minor docs improvements + - !953 g_utf8_normalize: Doc comment return missing nullable annotation + - !954 Fix the ISO 15924 code for Manichaean + - !955 gmacros: Use _Static_assert when C11 is available + - !958 gthread: fix minor errno problem in GCond + - !961 gmain: Fix g_main_context_prepare priority annotation + - !962 gmacros: Use _Static_assert only for non-expr static assert + - !964 gmacros.h: Use static_assert on MSVC if possible + - !968 Fix typo in request handle + - !970 gdatetime: Unset LC_ALL for the test as well + - !971 docs.c: Forward link from g_auto* → G_DEFINE_AUTO* + - !973 doc: fix typo in gio/gresource.c + - !979 Experimental clang-cl support + - !980 gmacros.h: Add better support for clang-cl + - !981 gio: fix typo in g_settings_reset documentation + - !982 Various doc fixes + - !985 Keyfile portal fixes + - !987 gio/tests: Remove code and comments referring to libtool + - !991 fix atomic detection on older gcc versions + - !992 docs: Add example to g_test_summary() documentation + - !994 gio: Fix minor docs mistakes + - !996 Small array test fixes + - !997 gdbusaddress: Add missing transfer annotation + - !1007 Resubmission of !832 “Try to create the complete path right away and fall back” + - !1009 gapplication: remove inactivity_timeout source on finalize + +* Translation updates: + - Hungarian + - Indonesian + - Portuguese (Brazil) + - Spanish + + +Overview of changes in GLib 2.61.1 +================================== + +* `g_unichar_isxdigit()` and `g_unichar_xdigit_value()` now handle full-width + characters (U+FF21–U+FF26 and U+FF41–U+FF46) (#58) + +* Deprecate `gtester` utility and its test reporting format and enable TAP + output by default instead — the `--tap` option to tests is now a no-op + (#1441, #1619) + +* Add `g_test_summary()` to allow test authors to programmatically summarise + what each unit test in a test suite does (#1450) + +* Upgrade to Unicode Character Database v12.1 (#1713, !822) + +* More IPv6 Happy Eyeballs fixes to `GNetworkAddress` and `GSocketClient` + (#1747, #1771, #1774) + +* Fix valgrind and gdb support for the new `GHashTable` changes (#1749, #1780) + +* Fix GTask wait times growing faster than the number of task threads (#1683) + +* Change `GApplication` to ignore `-psn_*` arguments on the macOS command line, + as they are irrelevant (#1784) + +* Add `g_autoqueue()` helper macros, similar to `g_autolist()` (!474) + +* Add pre-allocated link helpers for `GList` and `GQueue`: + - `g_list_insert_before_link()` + - `g_queue_insert_before_link()` + - `g_queue_insert_after_link()` + +* Improve network availability detection with NetworkManager to treat lower + levels of connectivity as having reduced availability (!781) + +* Add `g_clear_signal_handler()` to allow disconnecting from a `GObject` signal + and clearing the signal handler ID to zero in a single call (!819) + +* Add `g_autoptr()` support for `GRWLock` (!825) + +* Define `G_OS_UNIX`, not `G_OS_WIN32`, when GLib is built agains Cygwin (!862) + +* Bugs fixed: + - #29 GScanner: should explicitly document modifiable fields (value, next_value, ...) + - #58 g_unichar_isxdigit() and g_unichar_xdigit_value() should deal with full-width a-fA-F + - #106 Boxed types should be documented better + - #135 g_unichar_totitle(0) returns 0x00001F88 instead of 0 + - #429 g_format_size() is broken on Windows + - #1441 Deprecate gtester + - #1450 Add API for tests to describe what they're checking + - #1619 GTest should have a way to default to TAP + - #1683 GTask: task_wait_time is increased constantly when the number of running thread is greather than 10 + - #1713 Upgrade to Unicode Character Database v12 + - #1739 meson build failure libdl + - #1747 Critical in g_socket_client_async_connect_complete + - #1749 New GHashTable implementation confuses valgrind + - #1753 Remove memory leaks from gio/test/resolver.c + - #1755 Please revert #535 gmacros: Try to use the standard __func__ first in G_STRFUNC + - #1759 test_month_names: assertion failed + - #1760 Document for g_resolver_lookup_records why it returns a list of list of gchar*. + - #1763 tests: -p runs tests in the reverse of the specified order + - #1768 g_strlcat(): Possible buffer overflow in implementation + - #1771 GNetworkAddressAddressEnumerator unsafely modifies cache in GNetworkAddress + - #1774 Leaks in gsocketclient.c connection code + - #1776 glib/date test fails + - #1780 GDB pretty-printer for GHashTable no longer works + - #1782 Error in documentation for cross-compile. + - #1784 MacOS adds a -psn_X_XXXXXX parameter to the command line + - !474 Add g_autoqueue + - !476 Add pre-allocated link helpers for GList and GQueue + - !556 gtestutils: Make --tap compatible with -p and --GTestSkipCount + - !732 gsocket: Clarify in docs that `flags` arguments can be platform specific + - !766 W32: swap special g_get_prgname() for platform_get_argv0() + - !774 Only build tests if certain conditions are met. + - !780 Add copyright and licensing terms to test report generator + - !781 gnetworkmonitornm: Fix network available detection + - !782 build: Fix check for RTLD_NEXT + - !785 Remove monitor test + - !787 build: Remove */.gitignore files + - !791 glib/gconstructor.h: Include stdlib.h for MSVC builds + - !792 general: Remove a few unhelpful references to ‘master’ + - !795 gdesktopappinfo: Add support for MATE and Xfce4 terminals + - !802 gio: tests, don't check for libdl on OpenBSD + - !806 Get to 100% coverage on GQueue tests + - !808 Update the Docker images used for CI + - !809 Modified version of !784 — Adding tests cases for a better coverage of glib/tests/strfuncs.c + - !813 gappinfo: Add precondition checks to GAppLaunchContext env methods + - !814 gschema.dtd: Add target attribute to alias + - !819 Clear signal handler + - !820 ci: Keep JUnit report script working on Debian stable + - !821 Various minor cleanups to autoptrs + - !822 glib: Update Unicode Character Database to version 12.1.0 + - !825 Add autoptr support for GRWLock + - !831 build: (Long time after) post-release version bump + - !835 Fix typo in German translation + - !836 Document the best practices for binding GInitiallyUnowned + - !862 build: define G_OS_UNIX, not G_OS_WIN32 under cygwin + +* Translation updates: + - Basque + - Catalan + - German + - Indonesian + - Spanish + + +Overview of changes in GLib 2.61.0 +================================== + +* Changes to `iconv` configure options, including the default iconv + implementation on macOS — distributors may need to check their configure + scripts (#1557) + +* Build fixes when building GLib with `G_DISABLE_ASSERT` defined (#1708) + +* Fix documentation for `gdbus-tool wait` to use correct units (#1737) + +* Improvements to symlink handling on Windows (!269) + +* Add exception handling for crashes on Windows (!582) + +* Set `G_WITH_CYGWIN` again when GLib is built on Cygwin (this was a regression + from the autotools build) (!736) + +* Use `GCocoaNotificationBackend` by default on macOS, rather than + `GGtkNotificationBackend` (!745) + +* Use Windows symbol visibility when GLib is built on Cygwin, as PE binaries + are subject to W32 visibility mechanics — this affects the definition of + `_GLIB_EXTERN` (!752) + +* Add coloured output support to `gdbus introspect` (!761) + +* Bugs fixed: + - #682 docs: advise not to use non-literal strings as qdata keys + - #1177 gparted crashes due to g_quark_from_static_string used in global initialization + - #1258 the buffer written to by g_input_stream_read is not marked as an out parameter + - #1557 By default glib tries to use libc instead of native iconv on OSX + - #1566 Meld Windows shows error on startup "There was a problem starting c:\Program" + - #1614 GIO tests fail on FreeBSD CI with: Unexpected error from C library during 'pthread_mutex_lock': Invalid argument + - #1708 Building GLib with G_DISABLE_ASSERT fails + - #1709 GResource generation test incompatible with stable LLVM on Linux + - #1710 Crash in g_cancellable_cancel + - #1712 gdbus-proxy test is flaky + - #1724 unconditional check in fuzzing/meson.build + - #1725 gosxappinfo.h is not installed on macOS + - #1727 Cannot use trash folder with an NFS mount using automount / autofs + - #1728 GSocket does not support ENOTSOCK + - #1732 Win32: lookup_by_name_async segfaults for not available domains + - #1737 gdbus-tool wait command timeout argument incorrect unit reference + - !67 glib: update internal gnulib from upstream + - !269 Win32 symlink code refactoring + - !493 tests: Check that cancelling g_file_replace don't overwrite existing file + - !582 Basic W32 exception handling for glib + - !680 Fix warnings glib + - !690 Fix thread safety issues + - !694 gvariant-parser: Fix pattern coalesce of M and * + - !706 Fix data races in task test and gmenumodel test + - !709 Bump release version for 2.62 series + - !710 socket: Fix annotation for flags in g_socket_receive_message + - !712 gwin32: Fix comment for g_win32_veh_handler + - !716 Various minor documentation fixes + - !717 Improve formatting of GCC attribute documentation + - !718 GSocketClient - Free last error if a connection attempt fails and on retry the... + - !719 Handle an UNKNOWN NetworkManager connectivity as NONE + - !721 codegen: Fix use of uninitialised variable + - !723 Provide examples for GNUC attribute macros + - !724 meson: do a build-time check for strlcpy before attempting runtime check + - !728 gsocket: Remove (type) annotation from flags arguments + - !730 Improve gdbus-address parsing tests + - !735 docs: Use the right g_autoptr function when using an auxiliary function + - !736 Set G_WITH_CYGWIN again + - !737 gresolver: Don’t use gai_strerror() on Windows, as it isn’t threadsafe + - !741 Fix use-after-free triggered by gnome-session-binary + - !745 gcocoanotificationbackend: give more priority than the gtk one + - !749 gio: Add missing autocleanup definition for GSettingsSchema{Key,Source} + - !750 Check for RTLD_NEXT + - !752 Use W32 visibility for Cygwin + - !754 Check for /proc/self/cmdline + - !757 Fix gnulib build on older Visual Studio builds + - !760 Properly ensure the cocoa notification backend type + - !761 RFC: gdbus-tool: Add --color option for introspect + - !762 gutils: Add (nullable) annotation to g_get_prgname() + - !765 gslice: Use a convenience macro + - !769 ci: Generate a cover report for the test suite + - !772 tests: Check that option-argv0 test succeeds on Linux + - !776 tests: Only run --external-data test on GNU ld/objcopy + - !779 Fix 2.62 documentation symbols + +* Translation updates: + - Dutch + + +Overview of changes in GLib 2.60.0 +================================== + +* Further fixes to the Happy Eyeballs (RFC 8305) implementation (#1653, #1679, #1693) + +* Add support for the XDG trash portal (#1676, !276) + +* Bugs fixed: + - #1653 gsocketclient-slow test is flaky + - #1658 keyfile settings backend: Consider tightening permissions + - #1668 Fill in CODE-OWNERS file + - #1675 glib-compile-resources: c_name generation issue + - #1676 Trash portal tries to open files as read-only but D-Bus API documents against that + - #1679 socket-service test is flaky + - #1693 Happy Eyeballs failure in gsocketclient-slow test + - #1697 gthreadresolver: do_lookup_records does res_ninit with an uninitialized state + - #1698 g_base64_encode(NULL, 0) causes critical warnings + - !276 Support the trash portal + - !639 gvariant-parser: Fix error handling when type coalescing fails + - !666 Socket fixes to W32 test suite + - !674 Update gvdb submodule + - !676 Initialize a variable + - !677 gerror: Add a missing precondition assertion in documentation + - !686 gio: Also support modules built with MSVC + - !688 gsocketclient: Fix critical on cancellation + - !689 glib-compile-resources: Fix a minor leak + - !691 gtask: Separate GTask fields memory locations to avoid data races + - !692 glib.supp: Add more variations of existing suppressions + - !696 Move closures refcount test to gobject/tests/ + - !698 gthreadedresolver: Remove unused thread pool + - !699 tests: Fix closure-refcount to preserve old semantics + - !702 Rename gobjectenumtypes.[ch] to glib-enumtypes.[ch] + - !703 Clean up gmarshal.[ch] + +* Translation updates: + - Catalan + - Czech + - French + - Friulian + - German + - Italian + - Korean + - Romanian + - Serbian + + +Overview of changes in GLib 2.59.3 +================================== + +* Fix support for g_get_user_special_dir() on macOS, including support for the Downloads directory (#1048) + +* Ensure that cancelling a GTask cannot cause its callback to be called synchronously (in the same call chain as the original *_async() call) (#1608) + +* Further fixes to the Happy Eyeballs (RFC 8305) implementation (#1644, #1680) + +* Various fixes for installation of installed tests (thanks to Iain Lane) (!649, !651) + +* Various fixes for tests when run on Windows (thanks to LRN) (!665, !667) + +* Bugs fixed: + - #535 gmacros: Try to use the standard __func__ first in G_STRFUNC + - #875 gio-gvfs on Windows: Don't mishandle other non-native URIs in gwinhttpvfs.c + - #1048 "Desktop" shortcut appears twice in file chooser sidebar on OSX + - #1608 Cancellation might not be asynchronous under certain circumstances + - #1644 network-address test failure in CI: IPv6 Broken (g-io-error-quark, 24) + - #1680 Regression: g_socket_client_connect_to_host_async() sometimes gets "Connection refused" when connecting to localhost + - #1686 gdbus-peer test is sometimes timing out + - !613 Use win32 io channel on windows for the protocol test + - !634 Win32: gio/gsocket.c: Set WSAEWOULDBLOCK on G_POLLABLE_RETURN_WOULD_BLOCK + - !638 gvariant-parser: Fix parsing of G_MININT* values in GVariant text format + - !640 tests: Tag socket-service test as ‘flaky’ + - !641 Minor typo fixes to GSpawn documentation + - !645 gsocketlistener: Fix multiple returns of GTask when accepting sockets + - !647 gsocketclient: Ensure task is always returned on cancel + - !648 gio/tests/task: Run the worker indefinitely until it's cancelled + - !649 gio tests: Install test1.overlay file when building installed tests + - !650 gstring: fully document semantics of @len for g_string_insert_len + - !651 tests: Install the slow-connect-preload.so library and use it + - !667 GSubprocess fixes for W32 test suite + - !668 tests: Mark gdbus-peer test as flaky + - !669 GWin32VolumeMonitor: Sort the volumes correctly + - !670 gpollableoutputstream: Fix the description of the interface + - !672 Fix some tests when running as root + +* Translation updates: + - Catalan + - Danish + - French + - Indonesian + - Kazakh + - Portuguese (Brazil) + - Slovenian + - Turkish + + +Overview of changes in GLib 2.59.2 +================================== + +* Fix check on GDBusMessage size when reading it. (#1642) + +* Add async GIO API: g_file_query_default_handler_async(), g_app_info_launch_uris_async() (#1249, #1347) + +* Fix some bugs in the Happy Eyeballs implementation. (#1646, #1649) + +* Install a new generated header with enum types for Unicode enums. (!481) + +* Support the XDG trash portal. (!276) + +* Bugs fixed: + - #1224 TSAN patches + - #1249 xdg-open/gnome-open doesn't work if service isn't started + - #1347 g_app_info_launch_default_for_uri_async is not really async + - #1376 gmarkup: Optimize g_markup_escape_text() + - #1642 minor mismatch between error and code in g_dbus_message_bytes_needed + - #1646 Criticals in g_socket_client_enumerator_callback() + - #1649 Critical in g_socket_client_connected_callback + - #1673 G_MININT constants broken in g-i + - !276 Support the trash portal + - !481 Define enum types for Unicode enums + - !585 gio: do not pass O_PATH file descriptors to portal APIs + - !593 Don't fail trash test if ~/.local doesn't exist or mount points can't be determined (master) + - !609 Make `g_app_info_launch_uris_async()` really asynchronous + - !619 gvariant: Fix a mistake in docs + - !622 Fixing warnings + - !626 gdbus: Avoid printing null strings + - !627 gsocketclient: Fix criticals + - !629 Various memory leak cleanups to GSettings tests (subset) + - !630 docs: Ignore more version macros + +* Translation updates: + - Galician + - Hungarian + - Lithuanian + - Polish + - Spanish + + +Overview of changes in GLib 2.59.1 +================================== + +* Autotools support is gone. (!580) + +* g_format_size() now uses a no-break space to separate digits and units; + translations will need to be updated accordingly. (#1625) + +* New g_queue_clear_full() API. (#1464) + +* Fix argument quoting on win32 when spawning subprocesses. (!419) + +* Allow polling more than 64 handles on win32 using g_poll(). (#1071) + +* Tag various tests as ‘flaky’. These are no longer run routinely on our + upstream CI machines, and downstream packagers may want to not run them (or + not treat those test failures as package build failures) on their test + machines either. They are in the `flaky` test suite. (!579) + +* Add overlay support to g_resources_get_info(). (#1445) + +* Support defaults and locks in the keyfile GSettings backend. This will be + used for flatpaks. (!450) + +* Accept unquoted strings in the keyfile GSettings backend to simplify things + for sysadmins. (!603) + +* Update our contribution guidelines (`CONTRIBUTING.md`). (!590) + +* Add writev() and writev_all() APIs to GOutputStream and GPollableOutputStream, + and provide implementations of them for many subclasses. (#1431) + +* Bugs fixed: + - #424 Add 'proxy' debugging support + - #1055 Provide alignment macros + - #1071 Eliminate MAXIMUM_WAIT_OBJECTS limitation in g_poll() on Windows + - #1445 g_resources_get_info doesn't respect resource overlays + - #1464 Add g_queue_clear_full() API + - #1500 GListStore needs double checking on some warnings + - #1623 xdg-open: file with colon results in “The specified location is not supported” + - #1625 Unbreakable space needed when showing size of folder/file + - #1636 GTask getters don’t return TRUE/FALSE after bitfield changes + - #1637 EXCEPTION_ACCESS_VIOLATION in g_clear_pointer + - #1639 GListStore implementation of g_list_model_get_item() returns wrong results on integer overflow + - #1655 gvariant-parser warnings + - #1663 G_MININT32 triggers compiler warning C4146 with Visual C++ + - #1666 `G_DEFINE_DYNAMIC_TYPE_EXTENDED` causes warnings with -Wcast-function-type + - !319 giomodule: Print the type of each default GIO module + - !333 Add writev() API to GOutputStream and GPollableOutputStream + - !419 gspawn, win32: qouted args - escape end backslash + - !450 Settings portal + - !512 gtype: Clarify type of GInterfaceInitFunc + - !516 gthread: Add g_private_set_alloc0() convenience API + - !535 win32 gpoll: overcome the 64 handles limit + - !545 goption: Fix an annotation on g_option_context_parse_strv() + - !560 docs: Fix dconf GSETTINGS_BACKEND name in gio overview + - !564 gtype: Document type for iface_default_init() function + - !568 Add separate definitions of g_assert_[non]null() for C++ + - !571 docs: Add note on how to check a gboolean condition + - !575 gio: Update bad cert error in accept-certificate and GTlsError docs + - !579 Temporarily disable flaky tests + - !580 Drop autotools support + - !583 gmacros: MSVC supports the noreturn function attribute + - !587 Remove unused .pc.in files + - !588 MSVC: Move dirent implementation to glib/dirent/ + - !590 Update contribution documentation + - !591 gfileinfo: Fix annotation for g_file_info_set_attribute_stringv + - !592 Remove leftover build/ directory + - !595 gtestutils: pass open file descriptors to subprocess + - !597 tests: Tag gsocketclient-slow test as ‘flaky’ + - !598 gdbus-proxy test fails with GLib-GIO:ERROR:glib/gio/tests/gdbus-proxy.c:832:fail_test: code should not be reached + - !599 gdtlsconnection: do not return on a void method + - !601 gio: Support "help" in extension point env vars + - !602 Update POTFILES.in + - !603 keyfile settings: Accept unquoted strings + - !608 build: Add -Wno-pedantic flag to compiler arguments + - !611 gnetworkaddress: fix use-after-free for network address + - !612 gdir: shutup a warning when building with msvc + - !615 Fix a couple of wrong compiler warnings + +* Translation updates: + - Spanish + - Swedish + + +Overview of changes in GLib 2.59.0 +================================== + +* This will be the last development release with autotools support. As our + Meson support has been around since 2.56.x, and was used to release tarballs + in 2.58.x, the next development release (2.59.1) will drop autotools as used + to build GLib. The macros installed for other packages to use will remain. + +* Add `G_TEST_OPTION_ISOLATE_DIRS` to redirect `XDG_*_HOME` to a temporary + directory for each unit test. (#538) + +* Support `Property.EmitsChangedSignal` annotations in `gdbus-codegen`. (#542) + +* Add `g_assert_cmpvariant()` API for unit tests. (#1191) + +* Hide bind mounts from GIO mount listings. (#1271) + +* Automatically realign data passed to `g_variant_new_from_bytes()` or + `g_variant_new_from_data()` if it is not correctly aligned. This prevents + misaligned accesses on architectures which don’t support them. Callers should + still aim to correctly align data to get higher performance. (#1342) + +* Support `ld -b binary` (on platforms which support it; i.e. Linux) to provide + large pre-compiled `GResource` resources with a fast compilation time. (#1489) + +* Unconditionally install GLib m4 macros, so that projects which depend on GLib + and which still build using autotools can continue to build even once GLib has + ported entirely to Meson. (#1520) + +* Various fixes to the Meson build. + +* Drop Python 2 support and require Python 3.4+. See discussion on + https://mail.gnome.org/archives/desktop-devel-list/2018-July/msg00004.html. + (!196) + +* `GHashTable` performance and memory improvements for common cases. See + https://hpjansson.org/blag/2018/07/24/a-hash-table-re-hash/. (!208) + +* Add flags that allow a `GApplication` to signal and replace a currently + running other instance of the same `GApplication`. This will be used for app + upgrades with flatpak. (!250) + +* Autostart xdg-desktop-portal when using the network monitor and proxy monitor + portal backends. (!317) + +* Add a g_task_set_name() API to allow `GTask`s to be described; useful for + debugging. (!384) + +* Enable FreeBSD CI on every commit for upstream GLib. (!387) + +* Various GVariant, GMarkup and GDBus fuzzing fixes, including buffer overflow + fixes. (!411) + +* Various fixes to eliminate thread races, found by thread sanitizer (tsan). + +* Deprecate TLS/DTLS rehandshaking, as it has been removed from the protocol in + TLS 1.3. (!478) + +* Support reading arguments from a file with `glib-mkenums`, which is useful + for long argument lists due to having deeply nested build directories, on + systems with a low limit on the command line length. (!489) + +* Make `g_environ_*()` case-insensitive on Windows, as the environment itself + is case-insensitive on Windows. (!500) + +* Add Application Layer Protocol Negotiation (ALPN) support to `GTlsConnection` + and `GDtlsConnection`, so that higher layer protocols can be negotiated when + setting up a TLS connection, without additional round trips and latency. This + is needed for eventual HTTP/2 support. (!520) + +* Add support for TPM keys in PEM files when loading TLS certificates. (!522) + +* Add a `GRecMutexLocker` auto-pointer wrapper for `GRecMutex`. (!528) + +* Bugs fixed: + - #107 The "g_key_file_get_comment" interface returns comment with unexpected new line symbol at the end + - #179 g_object_unref assert in debug code + - #277 'destroy_data' in g_cclosure_new is registered as finalize notifier instread invalidate. + - #538 Add helpers to redirect XDG_*_HOME to a temp dir for unit tests + - #542 gdbus-codegen does not honor "Property.EmitsChangedSignal" annotations + - #656 check for -Werror=format-security broken + - #734 Provide a way to instantiate a GDBusProxy-derived class from a GDBusConnection and a object path without blocking + - #827 gmain: Clarify that g_source_set_callback() is safe on attached sources + - #1055 Provide alignment macros + - #1119 GVolumeMonitor: Results don't reflect current state but state when application was launched + - #1191 add g_assert_equal_variants + - #1261 Add option to leave in gschema empty + - #1271 fstab binds appear as mounts (x-gvfs-hide is being ignored) + - #1310 gdbusproxy: make g-name-owner property useful with unique names + - #1313 Meson: Rework the config.h generation + - #1342 Automatically realign data passed to g_variant_new_from_bytes() or g_variant_new_from_data() + - #1343 g_date_set_parse: Parses "September" in Polish incorrectly + - #1362 Incorrect documentation about GSettings child add/remove notifications + - #1452 GFileInfo: unable to retrieve correct modification time of links and mounted volumes on Windows + - #1471 Incorporate oss-fuzz fuzz targets into GLib + - #1489 Use `ld -b binary` to speed up GResource generation for linking + - #1498 distcheck fails in distclean + - #1506 error: redefinition of typedef 'GKqueueFileMonitor' + - #1509 test_timeval_to_iso8601_overflow: 'out' should be NULL + - #1513 GIcon regression? + - #1514 gio/appinfo test sometimes fails in CI + - #1518 /network-monitor/create-in-thread fails in (LXC) containers on glib-2-56 + - #1520 Change conditions for installing m4 macros + - #1522 Trash not working on NTFS folder accessed from symlink + - #1523 GIO NetworkMonitor doesn't reflect the current network state + - #1525 GTask allows (buggy) application code to cause callback to be called twice, without warning + - #1527 Meson doesn't install data for installed-tests + - #1528 Meson tests are hard to debug in an autobuilder environment + - #1530 tests/mainloop-test appears to be flaky + - #1535 meson: installed-test metadata not run in TAP mode + - #1536 meson: spurious dependencies on convenience libraries in .pc files + - #1537 meson: absolute paths to ${builddir} included in gtk-doc HTML + - #1538 meson: G_HAVE_GROWING_STACK defined differently + - #1539 meson: Some files are unnecessarily installed executable + - #1541 meson: timeloop-closure test not installed + - #1542 meson: /usr/lib/glib2.0/installed-tests/glib/gdbus-peer: error while loading shared libraries: libgdbus-example-objectmanager.so: cannot open shared object file: No such file or directory + - #1544 meson: gtester-report #! not replaced with ${PYTHON} + - #1546 Cross-compilation fails in 2.58 + - #1556 build: Too long file path issue with meson on Windows + - #1562 GDate test suite fails with latest glibc + - #1570 ghash.c:694:27: left shift of 1 by 31 places cannot be represented in type 'int' + - #1572 Flags validation fails + - #1575 g_date_time_format() should have format attribute + - #1576 Fails to build with Meson on Debian armel (armv5te EABI softfloat little-endian) + - #1580 glib-compile-resources using strings breaks building e.g. GTK+ on MS Visual C, which limits strings to 65535 chars + - #1581 Memory used for reference counted data might be misaligned. + - #1588 Moving a bookmark item to the same URI causes a crash + - #1589 g_log_writer_is_journald memoizes a single result, even though it accepts a parameter + - #1590 tests: g-file-info-filesystem-readonly fails if run more than once with fuse & bindfs installed + - #1594 Return value of g_dbus_connection_get_unique_name not annotated as nullable + - #1600 g_timeout_source_new_seconds overflows when given interval > (G_MAXUINT / 1000) + - #1601 appinfo test fix is defective + - #1605 g_date_time_format fails when used with non ASCII format string on POSIX locale + - #1615 gdbus-codegen not generating nullable annotation + - !196 [RFC] build: Drop Python 2 support and require Python 3.4+ + - !200 Add a new GTlsError to indicate protocol downgrade attacks + - !208 GHashTable improvements + - !219 glocalfilemonitor: Fallback to poll file monitor for NFS + - !238 W32 GFileInfo improvements + - !250 Application replace + - !264 glib-compile-resources: encode data as string + - !268 build: simplify alloca checks. See #1313 + - !272 dtrace: Add missing const attributes to types in glib_probes.d + - !273 gtlsbackend: add support for setting the default TLS database + - !277 Use "command -v" instead of "which" + - !282 meson: Add macOS libtool versioning for ABI compatibility + - !286 gspawn: Fix build on systems without O_CLOEXEC + - !287 glib-compile-resources: Fix generated code compiling with C++ compilers + - !289 tests: Add more tests to finish branch coverage of GHashTable + - !290 build: fix installation dir of glib-gettextize + - !292 Remove all ChangeLog files + - !293 Document new volume class `loop` + - !294 portal network monitor: Always emit changed signal on changed + - !295 meson: fix typo + - !296 Add G_GNUC_FALLTHROUGH for __attribute__(fallthrough)) + - !297 build: Drop AC_C_CONST from configure.ac + - !302 Document that GTimeVal is subject to the year 2038 problem on 32-bit systems + - !303 liststore: Simplify code + - !304 Add more GListStore/GListModel tests + - !309 codegen: Change pointer casting to remove type-punning warnings + - !312 Enable GIO tests on Windows + - !316 gdbus: Improve error when well-known name is unowned + - !317 Autostart xdg-desktop-portal if needed + - !322 gnetworkmonitornm: Set a GError properly on an error handling path + - !332 gmarkup: Make the documentation even more explicit about untrusted input + - !334 gio: automake: Add libgmodule dependency + - !338 gcharset: fix leaking g_get_language_names_with_category + - !339 Add g_desktop_app_info_get_string_list(); fix g_key_file_free() + - !340 tests: Mark two more tests as slow + - !345 Fix build failure on systems without POSIX spawn + - !347 Use Meson 0.48.0 for CI + - !348 Documentation tweaks for g_array_free + - !353 Meson: Do not run tests/refcount with --tap + - !354 Fix spelling mistakes detected by Debian's Lintian tool + - !358 Autotools: Move libmount from Libs.private to Requires.private + - !360 CI: Test static build on installed glib + - !363 Tests: Mark printf wrappers with G_GNUC_PRINTF + - !364 ci: Enable FreeBSD CI + - !366 gunixmounts: Mark mounts as system internal instead of filtering out + - !372 gmacros: Fix G_[UN]LIKELY to not mask -Wparentheses + - !374 gthreadpool: Include prgname in thread name + - !375 m4macros: Allow information from pkg-config to be overridden + - !376 gthread: Clarify priority handling in GRWLock + - !379 Ignore g_return_*if_fail() branches in lcov coverage report + - !381 Add UTF-8 communication tests for GSubprocess + - !384 gtask: Add a g_task_set_name() method + - !387 ci: Enable FreeBSD CI in the official repository + - !396 m4: Fix AM_PATH_GLIB_2_0 macro + - !400 grefcount: add missing gatomic.h + - !403 build-sys: Pass CFLAGS to $(DTRACE) + - !405 ci/msys2: fix path to the lcov config file + - !406 meson: Mark 1bit-emufutex test as slow + - !407 meson: Increase test timeouts + - !410 gfileutils: Add examples to g_path_get_dirname() documentation + - !411 Various GVariant, GMarkup and GDBus fuzzing fixes + - !412 Enable compile time check of g_date_time_format() format + - !413 Add support for g_auto(s)list to G_DECLARE'd types + - !414 gio, tests: ensure objectmanager sources are generated + - !415 gseekable: fix 'attmepting' typo + - !416 gdbus-peer: Make sure to not include objectmanager-gen.c source + - !417 Fix ^*ay handling in g_variant_iter_loop() + - !418 Meson: Cleanup a FIXME now that we have dict addition + - !420 gdbus-codegen: add autocleanup for FooObject + - !422 GMarkup buffer overflow fixes for error handling, round 2 + - !423 gutils: Check whether getauxval function exists + - !424 ci: Fix Docker image version + - !425 gdate: Reinitialize using_twodigit_years and locale_era_adjust. + - !435 gdatetime: Fix formatting of time zones offsets in range -01:00 to +00:00 + - !436 valgrind: Add glib_init()-related suppressions + - !440 Fix minor memory leaks in tests + - !443 tests: Avoid multithreaded use of g_test_rand_int_range + - !444 gvarianttypeinfo: Consistently use atomics to access ref_count + - !446 gmain: Fix data races in GUnixSignalWatchSource and GChildWatchSource + - !451 closures test: Avoid timeout on ARM64 CPUs + - !452 Atomic reference count in GVariant, ContainerInfo and GDBus introspection + - !453 tests: Fix some data races in tests + - !454 gdbusproxy: make g-name-owner property useful with unique names + - !458 glib-compile-resources: Fix size allocation for compressed streams + - !460 gatomicrefcount: Make g_atomic_ref_count_init non-atomic + - !461 Meson: Fix build error in gdbus-example-objectmanager + - !462 meson: add aarch64 memory barrier handling + - !463 gio, tests: fix leak of dbus connection. + - !467 Update documentation of g_tls_connection_handshake() again + - !469 docs: add index of new symbols for gio > 2.52 + - !470 docs: Clarify return/error behaviour of D-Bus signal subscriptions + - !472 gdbusmessage: Gracefully handle message signatures with invalid types + - !477 gthread: Remove unsynchronized access to g_once_init_list from assertion + - !478 Deprecate TLS rehandshaking + - !480 docs: add a missing semicolon + - !482 Check for 'z' library before fallbacking to subproject + - !483 meson: Turn selinux into a meson feature and make it auto by default + - !484 Meson: Add 'nls' option to disable translation + - !485 gdbus-codegen: Tag interfaces and properties so annotated with G_PARAM_DEPRECATED + - !486 Check for zlib header + - !489 glib-mkenums: Support reading @rspfiles for arguments + - !490 gspawn: Fix g_spawn deadlock in a multi-threaded program on Linux + - !491 Meson: Add missing include_directories when using glib as subproject + - !492 g_value_get_variant: return value is transfer-none not transfer-full + - !494 Resolve "Follow-up from "gunixmounts: Stop considering cifs/nfs as system file systems"" + - !500 genviron: make g_environ_* case-insensitive on Windows + - !504 tests: Unset LANGUAGE when running gdatetime tests + - !505 Support isolating directories for unit tests + - !508 ci: Install additional locales used during tests + - !510 Add new Linux Testing project version number to configure script + - !511 gvariant: Fix error handling for parsing Unicode escapes + - !514 fix gdbus-codegen --interface-info-{header,body} + - !515 binding: Clarify the use of g_object_unref() to remove a binding + - !517 Meson: Fix deprecation warning with upcoming 0.49.0 release + - !518 Meson: Fix declare_dependency() calls + - !520 GTlsConnection: add ALPN support + - !521 tests: Rename macro to avoid conflict with encoding prefix + - !522 gtlscertificate: Add support for TPM keys in PEM files + - !524 gdatetime: Fix typo in the comment + - !528 Add GRecMutexLocker + - !530 tests: Minor improvements to mkenums.py and taptestrunner.py used by it + - !534 gtlscertificate: Fix bug in PEM private key parser + - !536 Various minor docs fixes + - !541 gtimezone: Fallback to /etc/timezone on Gentoo + - !546 spawn: add shebang line to script + - !547 Do not check for NULL when calling free() + - !549 Improve documentation of g_assert_error() + - !551 Revert "tests: Fix GOptionContext leak in GSubprocess tests" + - !554 Only subscribe to owner-changed signals on message bus connections + - !555 Suppress -Wint-in-bool-context warning with G_DEFINE_INTERFACE and g++ + +* Translation updates: + - Brazilian Portuguese + - Czech + - Danish + - Greek + - Hungarian + - Lithuanian + - Norwegian bokmål + - Polish + - Slovak + - Slovenian + - Spanish + - Swedish + - Turkish + + +Overview of changes in GLib 2.58.0 +================================== + +* Tarball built with `ninja dist`, so if you want to build this release with + autotools (which is supported), you will need to re-run autogen.sh. This + release, and all micro releases in the 2.58.x series, support being built + with Meson or autotools. See: + https://mail.gnome.org/archives/gtk-devel-list/2018-June/msg00012.html + +* Fix cancellation of g_subprocess_communicate_async() calls. See !266. + +* Drop support for the __int64 type, which further breaks compilation on old + MSVC versions (before VS2013). See #1313. + +* Expose GSettings schema directory in gio-2.0.pc as `schemasdir`. See !274. + +* Support v3 of the xdg-desktop-portal network monitor API. See !265, !279. + +* Fix G_MODULE_SUFFIX on macOS when GLib is built with Meson — it should be `so` + rather than `dylib`. Projects that use Meson and the `g_module_build_path()` + API such as glib-networking should pass `name_suffix:` to `shared_module()` to + ensure that plugins continue to be called libfoo.so on macOS. See !280. + +Bugs fixed: + !280 meson: Always set G_MODULE_SUFFIX to `so` on macOS + !266 subprocess: Fix communicate_cancelled signature + !279 Revert "Add a gnet utility" (see !265) + !265 Network monitor again + !274 gio: Provide schemas directory information in pkg-config file + !239 gvariant: Fix more bounds checking in GVariant text format parser + !195 garray: add overflow checks before expanding array + #1497 g_strdup_printf warns on invalid format specifier with G_GUINT64_FORMAT on Win32 + !270 autotools: remove support for the __int64 type. See #1313 + !267 ci: Add an autotools job + +* Translation updates: + Czech + Galician + Indonesian + Italian + Kazakh + Korean + Turkish + + +Overview of changes in GLib 2.57.3 +================================== + +* G_GNUC_MALLOC’s definition has been tightened up to match an updated + definition from GCC. Many uses of G_GNUC_MALLOC which were previously + appropriate may cause miscompilation with newer GCC versions. Check your uses + of it against the updated documentation. See #1465. + +* Many minor documentation fixes. + +* Fix for gint64 and int64_t compatibility on macOS and BSD. See #972. + +* Fix free space metadata on some file systems (notably FAT). See #328. + +* Support installed-tests with our Meson build system. See #1444. + +* Forbid @filename@/@basename@ in glib-mkenums templates, which is a change to + its long-standing behaviour (which was long-standing nonsensical). See !241. + +* Various stat() fixes on Windows. See #1452, #1476. + +* MinGW-w64 ABI warning: In case you build 64 bit glib without LFS support by + passing --disable-largefile (not the default) and use GStatBuf, you need to + rebuild your application as the size of GStatBuf has changed for this case. + See #1476. + +* Improve TAP compatibility of g_test_incomplete(). See #1474. + +* Change fallback preferences when loading icons. See !72. + +Bugs fixed: + !263 build: Clean files left behind after gio/tests/gresource.c test + !262 gmem: Only evaluate pointer argument to g_clear_pointer() once + #1465 Many uses of G_GNUC_MALLOC are incorrect + #1448 g_error does not abort() as documented + #1494 g_clear_pointer may not use the correct calling convention with its callback + #972 Mismatch between gint64 and int64_t on 64-bit macOS/BSD + !251 gtestdbus: Fix watcher crash on FreeBSD + #1492 gcc-8: -Wcast-function-type: new warnings for g_list_copy_deep() + !252 tests: fix gnotification tests broken due to the recent icon name fallback changes + #328 filesystem::{free,size,used} not set for full FAT fs + !248 network monitor portal: update properties initially + #1373 Incorrect transfer annotation for g_binding_unbind. + #1444 the meson build doesn't support installed tests + #1027 Fix trashing on overlayfs + #1454 gvdb does not treat corrupt files as empty as promised; dconf suffers + !243 tests: Explicitly set TZ=UTC for g_time_val_from_iso8601() testing + #1488 ‘O_CLOEXEC’ undeclared (first use in this function) + !241 glib-mkenums: forbid @filename@/@basename@ in fhead and ftail + !240 gtimer: Ensure arithmetic is correctly signed for ISO 8601 parsing + #1452 GFileInfo: unable to retrieve correct modification time of links and mounted volumes on Windows + !234 DOC: Documentation fix in GTask description + #1363 Meson: Review cross compilation properties + !225 gtimer: Add overflow checks to g_time_val_from_iso8601() + !230 gbookmarkfile: Fix some more minor leaks when metadata elements are repeated + !229 Fix up g_bytes_compare() documentation + #1476 g_stat - possbile memory corruption causing SEGFAULT + !199 Update TLS documentation + #1474 g_test_incomplete() makes test_case_run() return FALSE + #1475 glib/tests/atomic.c test_types() trips -Werror=bad-function-cast on Debian armel + #1472 Test for BROKEN_IP_MREQ_SOURCE_STRUCT is broken on Windows / Mingw + !220 date test: Use g_test_skip(), not g_test_incomplete() + #1467 malloc difference causes refstring test to fail on FreeBSD + !230 gbookmarkfile: Fix some more minor leaks when metadata elements are repeated + #1466 Not Able to Build glib 2.57.2 in Mingw-w64 x64 bits + #1433 test_posix_parse: assertion failed (g_time_zone_get_abbreviation (tz, 0) == "UTC"): ("LMT" == "UTC") + #1446 Follow-up from "Document difference between g_assert() and g_assert_*() wrt G_DISABLE_ASSERT" + !206 grefstring: Avoid an unnecessary NUL assignment + #1458 g_volume_get_mount returns NULL value after g_volume_mount_finish is called with no error + !72 gio: icons should fallback to non-preferred style appropriately. + +* Translation updates: + Brazilian + Chinese (Taiwan) + French + German + Lithuanian + Polish + Romanian + Turkish + + +Overview of changes in GLib 2.57.2 +================================== + +* Require pcre 8.31 +* Require meson 0.47.0 + +* Bugs fixed: + 742456 Add g_steal_pointer() convenience function to mark ownership... + 795569 MinGW CI: fix tests + 796341 gmem.h: Use typeof() in g_steal_pointer() macro + #1013 Support for per-session overrides + #1360 glib-mkenums breaks if option specified but no nick + #1175 Add names and tags to various GSources and GTasks constructed in GLib + #903 g_main_context_wait() not deprecated in API, but emits a g_critical()... + #786 Fix memory leaks in libgio tests + #927 gio/gresource.c:do_lookup check for terminating "/" + #976 Document difference between g_assert() and g_assert_*()... + #1447 glib 2.57.1: test_month_names: assertion failed... + #1407 Update to Unicode Character Database 11 + #1455 glib python tools have full python path in shebang, limits to 128 characters + #1459 Missing g_return_val_if_fail in g_async_queue_timeout_pop + +* Translation updates: + Friulian + German + Romanian + Spanish + + +Overview of changes in GLib 2.57.1 +================================== + +* New api: + - g_hash_table_steal_extended + - G_GNUC_NO_INLINE + +* Bug fixes: + 668132 Use libmount and expose mount options on GUnixMountEntry type + 736741 Update private copy of valgrind.h + 748620 g_regex_* utf-8 validity requirements are not stated clearly + 784995 meson: some Windows improvements + 788771 NODELETE missing when built with meson + 788773 meson does not install correct pc files + 789968 Add g_autoptr() support for GTypeClass + 794325 Various fixes to compile on OSX + 795152 gdesktopappinfo: Mark GDesktopAppInfo constructors as nullable. + 795165 Add g_date_time_get_timezone() and g_time_zone_get_identifier() + 795180 Investigate performance impacts of recent compiler features on hot functions + 795302 Add g_hash_table_steal_extended() API + 795376 Add g_ptr_array_steal() + 795544 Add binary/textfile/zero size detection + 795569 MinGW CI: fix tests + 795636 gitlab-ci: generate test coverage reports + 795735 Fix comparison for GVariant property values + 795802 gdbus-codegen doesn't accept --output-directory with --output for --body and --header + 795849 gwin32: Fix detection of MinGW32 vs MinGW-w64 + 795876 meson: Fix checks for posix_memalign and stpcpy + 795960 g_format_size_for_display() is deprecated since 2.30 + 796085 Meson: Many apps breaks on non-glibc because of missing libintl + 796138 Fix typo in g_file_info_set_attribute docs + 796139 Add g_autoptr() support for GParamSpec + 796164 Fix atomic ops check in meson.build + 796186 Typo: "instead off" in gsignal.c + 796213 Meson: Fail to build on macosx + 796220 meson: do not run atomic test with msvc + 796264 Add android CI + 796325 meson: Add exception for atomic ops test for Android + 796328 gengiotypefuncs.py: Read and parse files in binary mode + +* Translation updates: + Czech + Indonesian + + +Overview of changes in GLib 2.57.0 +================================== + +* Bug fixes: + 739424 Rewrite kqueue GFileMonitor backend to drop threading + 751826 Use g_get_language_names() for other locale categories + 788773 meson does not install correct pc files + 793400 g_application_id_is_valid() not strict enough + 793578 gdatetime tests depend on Japanese translation of month names + 793645 test_month_names: Updated translations needed for el_GR, hr_HR, ru_RU + 793729 gitlab-ci: Add Windows MinGW support + 793994 GUnixVolumeMonitor doesn’t show user mounts when run as root + 794170 gdbus: hexdecode() and hexencode() do not return/use decoded/encoded s... + 794194 gobject_gdb.py: 'address' is a property of gdb.Value not a function + 794207 leak: g_socket_listener_add_inet_port increases ref-count on socket-li... + 794284 Support whitespace stripping for JSON resources + 794285 glib-compile-resources should not noisily g_printerr() when xmllint is... + 794473 Remove duplicated option in gio.xml + 794506 glib-mkenums: Enters infinite loop if using typedef enum SomeIdentifier + 794528 Fix segfault caused by use-after-free in GPollFileMonitor + 794555 glib meson build fails on MinGW due to misdetected functions + 794557 gtkdoc-scangobj fails on gio in meson builds + 794606 glib-2.56.0 fails to compile when res_nquery is not available + 794635 gmacros: Don't define bogus __has_* macros + 794636 G_HAVE_GNUC_VISIBILITY is defined in meson MinGW builds + 794686 Date (except weekday) displayed in English + 794732 Fix various compiler warnings + +* Translation updates + Hungarian + Slowak + Slovenian + Spanish + + +Overview of changes in GLib 2.56.0 +================================== + +* Bugs fixed: + 672777 Error in gdummyfile.c + 732184 GObject: warn on use of deprecated properties + 733338 Don't segfault in GNetworkMonitor when IPv6 support is unavailable + 742124 g_data_input_stream_read_upto()'s documentation should say that the... + 749206 GDateTime: month names in the genitive case + 768507 simplify qguark functions + 791457 Slow transfer rate when writing to smb/cifs + 793272 fix GCC 8.0's -Wcast-function-type warnings + 793300 g_hash_table_add() return value change in 2.40 not mentioned in docs + 793399 Fix some cases of -Wduplicated-branches + 793555 -Wimplicit-function-declaration when using g_abort() + 793565 GLib does not compile on macOS 10.13 due to .m file naming + 793597 gdbus-tool: Make --dest optional for emit again + 793635 Enable CI for GLib + 793880 gnetworkmonitor: Minor fixes based on code review + 793578 gdatetime tests depend on Japanese translation of month names + 794180 test_month_names fails unless installed + +* Translation updates: + Brazilian Portuguese + British English + Catalan + Czech + Danish + Dutch + Finnish + French + Friulian + Galician + German + Hungarian + Indonesian + Italian + Kazakh + Korean + Lithuanian + Polish + Scottish Gaelic + Serbian + Serbian Latin + Spanish + Swedish + Turkish + + +Overview of changes in GLib 2.55.2 +================================== + +* GFile now has API to get the path without copying + +* A network monitor implementation for Windows has been added + +* Bugs fixed: + 520116 g_utf8_strlcpy() + 584284 g_data_input_stream_read_until_async behaves confusingly different f... + 605700 request for g_key_file_get_locale() + 658713 ngettext (plural forms) needed for "Message has %d file descriptors ... + 685442 windows GNetworkMonitor implementation + 723003 gsettings list-recursively reports some keys multiple times + 749583 GSequence performance improvements + 757284 Move G_DIR_SEPARATOR* and G_SEARCHPATH_SEPARATOR* into glibconfig.h + 760324 [PATCH] gkeyfile.c: find_file_in_data_dirs fails to return the path ... + 761102 Increase performance for main loop + 767976 GFile: Add g_file_peek_path() + 770335 gdbus-codegen: generated getter for 'ao' property is actually (trans... + 772989 Totem allows invalid urls that might cause segfault that's irrecover... + 790698 convert: test failure on NetBSD + 791015 gdbus-codegen: Split generation of header and source + 791622 Disable strict-aliasing in GLib + 792050 GResolver is not thread-safe + 792217 Deprecate GTlsClientConnection:use-ssl3 + 792338 meson, autotools: figure out if mem barrier is needed for arm64 host... + 792351 gbookmarkfile: check length before dereferencing groups + 792364 gdbus-threading test method-calls-in-thread: assertion failed (elaps... + 792370 GNetworkMonitor: Rename "network-changed" signal argument + 792410 GDateTime new_from_iso8601 test broken in 2.55 on i386 + 792432 flush stdout after logging (debug) messages + 792455 Improve docs of GSequence + 792499 deadlock on startup with TCP session bus + 792516 gconvert: More consistent handling of embedded NUL bytes + 792777 g_notification_set_urgent() unconditionally sets G_NOTIFICATION_PRIO... + 792780 gbytes should reference toplevel bytes when slicing with g_bytes_new... + 792856 off64_t isn't a part of C standard + 792862 gpollableoutputstream: document side effects of WOULD_BLOCK on D/TLS + 792903 Clarification between g_try_.. functions and their counterparts + 793006 High CPU load for GUnixMountsMonitor consumers + 793026 possible mem leak in g_mutex_impl_new + 793074 g_message() does not get -Wformat warnings when compiling with G_LOG... + +* Translation updates: + Hungarian + Indonesian + Polish + + +Overview of changes in GLib 2.55.1 +================================== + +* Build: + - The --enable-rebuilds configure option has been removed + - The --with-charsetalias-dir configure option has been added + +* GList and GSList now have autoptr support + +* The gsettings list-schemas command has gained a --print-paths option + +* Bugs fixed: + 346816 Refactor LIBDIR in libcharset Makefile + 508976 Does g_slist_sort preserve the order of equal elements? + 562334 2.18.2 break libglade on Solaris + 662802 systemtap multiarch issue + 684282 Add support static link of GIO modules + 692034 Install an invalidation notifier for GClosure in g_source_set_closure() + 694723 Get rid of REBUILD stuff in configure.ac + 697715 floating point precision problem in check test gst/gstvalue + 701156 testgobject assumes that the priv data follows the instance data + 720380 Segfault when using GDBusMenuModel on a peer-to-peer connection + 724383 glib: document restrictions on various foreach() functions + 724412 GLib mappedfile.c test uses g_get_user_runtime_dir instead of a tempo... + 724794 Fix "on on" typo in tap-driver.sh comment + 732003 gnode: Eliminate implicit signed-to-unsigned integer conversion + 734479 G_VALUE_HOLDS etc. cause -Wcast-qual warnings for a const GValue * + 737677 gmain: Make GSourceCallback thread-safe + 741167 gdbus-codegen fix for boxed out parameters + 748534 gtest: if a subprocess assertion fails, print its stdout and stderr + 749527 add weak pointer helpers similar to g_set_object + 749652 compilation errors with gcc 4.8 + 754634 Update the list of Linux filesystem magic numbers used in get_fs_type + 756011 Fix up annotations for GBookmarkFile + 761102 Increase performance for main loop + 773980 GIR scanner doesn't interpret array type properly + 776147 gio/glocalfilemonitor.c doesn't handle case G_FILE_MONITOR_EVENT_MOVE... + 776195 -z nodelete configure check does not work on Solaris + 777075 Potential leak of memory pointed to by 'list' + 779413 Translated X-Geoclue-Reason string not used in a dialog window + 780309 gio/tests/appinfo build fails: gdesktopappinfo.c skipped on OS X + 780893 Reword licensing header for gdbus-codegen + 782057 Unit tests fail in run-assert-msg-test.sh + 784995 meson: some Windows improvements + 786796 gtk-doc build fails with meson + 788806 Impossible to build static glib via meson + 788936 Show mime type icons on OS X + 790416 g_date_time_format returns empty string on %r with German locale + 790588 Generated file missing from .gitignore + 790697 g_object_ref API should propagate parameter type + 790785 glib-tap: Add missing mkdir for .test generation rule + 790829 glib-genmarshal --body must not generate alias implementations + 790830 Mismatch between number of interface methods in text and example code + 790837 Meson: missing many configure options + 790839 GApplication command line: lacks parameter_string, summary and descri... + 790877 fix non-portable check in G_GNUC_CHECK_VERSION + 790894 Do not connect to the session bus when trying GProxyResolverPortal io... + 790896 docs/reference/README has broken link to http://www.gtk.org/rdp/ + 790914 gdesktopappinfo: Downgrade a warning to a debug message + 790934 gtester doesn't handle skipped tests + 790948 GSourceFuncs documentation is confusing: when will dispatch be called? + 791036 Guard for g_output_stream_vprintf makes no sense + 791128 C runtime complains about bad arguments on each g_log() call + 791221 po/README.translators has no useful information in 2017 + 791235 Fix gschema.dtd regarding flags. + 791267 Make gschema.dtd usable. + 791296 gtester-report: fix range usage when running as python3 app + 791318 GBytes: Improve documentation + 791325 Gio handling of thumbnail:: attribute namespace causes inconsistent b... + 791334 gbinding.c:898: The target object of type GNetworkAddress has no prop... + 791337 Crash opening URIs with g_desktop_app_info_launch_uris_with_spawn() + 791342 Add autoptr support for lists + 791460 meson: fixes for OSX + 791532 Implicit declaration of function ‘memcmp’ in gtestutils.h + 791622 Disable strict-aliasing in GLib + 791720 Criticals in gio/xdp-dbus.h leading to crash under flatpak + 791744 gmenumodel test sometimes fails: assertion failed (items_changed_coun... + 791745 not immediately clear whether g_test_slow() is in effect by default + 791906 GSocketListenerClass.event has wrong signature + 792064 gsettings list-schemas --print-paths + 792098 Binding: bind_property’s @notify func is nullable + 792099 gdbus-test-codegen: Cast to void* to printf "%p" + 792129 meson: skip optional linux/unix deps that default to true when buildi... + 792322 GLib-GIO:ERROR:gschema-compile.c:51:test_schema: child process (/gsch... + 792324 gkeyfile: Document need for KEEP_TRANSLATIONS with get_locale_string() + +* Translation updates + Hebrew + Indonesian + + +Overview of changes in GLib 2.55.0 +================================== + +* New API: + - g_clear_handle_id, to simplify removing sources from the default mainloop + - g_file_load_bytes, to make it more convenient to load files into GBytes + +* Bugs fixed: + 330458 Sample code for the GLib Key-value parser + 483341 g_error and friends create warnings when not used in MSVC + 569375 g[u]intptr undocumented + 573251 documentation for g_seekable_truncate() needs some love + 629347 Missing annotations in GFile (was: Perf throws an exception in cur... + 630983 [PATCH] Type accuracy for result of strlen() in string utilities. + 632953 Clarify documentation of GValueTransform. + 636210 Document that pre-unmount is not guaranteed and backend-dependant + 656502 type information for GSettings::backend missing from .gir + 661442 Nautilus crashes when refreshing home folder after modifying ~/.co... + 668035 gtester-report broken with python 2.7.2 and glib 2.30.1 + 670139 gbytes.c:try_steal_and_unref nit + 677233 (transfer full) annotation not correct for g_closure_new_simple re... + 679347 glocalfile seems to leak 'fstype' + 679467 Mention translation in g_warning() documentation + 689323 Variable scoping in gunixmounts.c + 691436 glib-mkenums output arch dependent + 695681 gsettings bash completion put error messages + 705331 AM_PATH_GLIB_2_0 macro fails with -Wstrict-prototypes -Werror + 706667 Fix permission denied error when installing from an nfs directory + 711809 gdbus-proxy: Fix erroneous timeout during following tests + 722256 gslist: Simplified node removal and got rid of some code duplication + 723655 Socket source is left in the poll after the socket is closed + 723743 g_child_watch_add() doesn't check for non-pids + 725014 g_settings_schema_source_ref should check for NULL pointer + 727346 docs: Escape some backslashes for markdown + 730296 gsignal: Fix a potential NULL pointer dereference + 731625 Improve test for darwin printf format-strings + 731705 gio/tests/desktop-app-info assumes /bin/true + 737278 Clarify relationship of g_application_quit() to hold count + 738176 Skip GSpawnChildSetupFunc closures in introspection + 740223 source_object for GAsyncResult should be nullable + 740791 gio: cannot specify the source when joining a multicast group (IGM... + 740826 glib doesn't know fuse filesystems + 742548 configure.ac: stay out of autoconf's namespace + 742997 Don't skip invalid enum values in schemas + 745723 -Wunused-but-set-variable work-around no longer sufficient + 749371 Use a GHashTable as a set when possible + 751738 Unused-variable warnings in glib/tests/autoptr.c + 752239 Missing dependency for python files in build file + 752240 Add DTLS support to GIO + 753459 GDateTime: Add conversion functions from/to ISO 8601 strings + 753521 g_subprocess_launcher_set_environ misses argument annotations + 754026 gfileutils: add some sanity checks + 756009 'const gchar* const *' gets incorrectly defaulted to utf8 + 756103 Skip g_base64_decode_step() in introspection + 756128 Fix up annotations in gconvert + 756430 g_rw_lock_reader_lock() can return without locking, or error + 756470 Fix up annotations in gdataset.c + 756588 Fix up annotations on data/qdata API of GObject + 760022 Memory leak in gvariant-parser.c + 760109 [PATCH] Invalid GDate can't be g_boxed_copy()'d + 760716 Fix documentation regarding + 765063 Update annotations for gio + 765552 Please set serial in .m4 files to prevent autoreconf failure on up... + 767215 GCC version number is interpreted as start of a list in docs for g... + 767239 Tautological comparisons in convert tests + 769674 some GIO tests' arbitrary timeouts are too short + 769846 gmessages: Add timestamp to g_log_writer_format_fields() + 770459 Tutorial article is slightly wrong + 773355 Incorrect documentation about stopping a signal emission from a hook + 774083 spelling mistakes in glib: charater + 776562 Add Intel C Compiler support for G_GNUC_BEGIN/END_IGNORE_DEPRECATI... + 777308 GModule win32: disable error dialog popup + 777310 gio/gasynchelper.c: fix cast from pointer to smaller int type on w... + 777956 gmessages: Update advice for G_LOG_DOMAIN + 779182 xdg-open fails with gio open for some uris + 779501 Type of GIConv given wrongly on web + 780202 introspection: Don't expose GValueArray.free + 780296 xdg-open/gnome-open doesn't work if service isn't started + 781598 gstdio.h should #include what it needs to work + 781867 various gvfsd-* wants to look in /boot/efi, causes unnecessary/ina... + 783210 build: Switch to sassc for generating style + 783270 Improve Visual Studio support for Meson builds + 783825 Suggest that asynchronous operations should invoke the callback in... + 786737 No g_variant_get() example for dicts + 786785 Commit #fe2a9887a8 breaks gdbus-codegen, cannot find its module so... + 787271 Make GListModel usable from G-I bindings + 787485 g_tls_backend_supports_dtls () returns true when the backend doesn't + 787551 Factor out some duplicated code in GParamSpec validation + 787581 tests: Add tests for g_slist_copy() and g_slist_copy_deep() + 787671 meson: Fix permissions of installed scripts + 787731 g_file_query_filesystem_info() wrongly reports "filesystem::readon... + 788138 glib-compile-resources: Fix leak of a GHashTable + 788180 G_FILE_ATTRIBUTE_ID_FILE is useless on W32 + 788270 gmodule - failed to load symbol on Android 64bit + 788368 Race condition in GDbusObjectManagerClient + 788384 gtypes: Fix signedness of __builtin_bswap() usage + 788385 gtestutils: Explicitly cast args to g_assertion_message_cmpnum() + 788401 PATCH: MacOS build cannot detect content type from content - xdgmi... + 788467 Fatal errors and warnings should be reported as TAP + 788488 GFile-based API for g_build_filename() + 788489 gmain: add g_clear_source API + 788561 Document how to integrate GTest into your project + 788594 gdbus-tool doesn’t handle non-message-bus connections correctly + 788705 Allow building GLib on older Linux platforms + 788766 fixed a doc-typo in socket_get_remote_address + 788772 meson installs gdb scripts incorrectly + 788863 Add more filename type annotations for strings which can contain f... + 788880 gunixmounts: Update list of virtual file systems to ignore + 788927 Expose better API for detecting ‘system’ mounts + 788936 Show mime type icons on OS X + 788948 Document Autotools best practices for genmarshal/mkenums + 788975 Meson + Visual Studio: Can't find zlib.h with subprojects/zlib + 788978 Document XML has a syntax error + 788989 Use subdir-objects with Autotools + 788990 Include licensing information in output from glib-mkenums, glib-ge... + 789087 gint and guint misrepresented as functions + 789170 GFormatSizeFlags should have a value for bits + 789245 g_settings_bind() not conforming to lifecycle specification + 789444 Fix handling of length in g_utf8_make_valid + 789637 glib-mkenums: Fails when --ouput file does not exist + 789681 meson: Libmount support not built + 789723 [PATCH] gdbus-codegen: Call abspath() earlier + 789755 g_get_host_name: ensure return value is always UTF8 encoded + 789820 GPollFileMonitor is not cleaning up correctly + 790015 docs: Various linking and syntax fixes + 790030 GResource/GVariant fails to load from non-pointer aligned memory + 790093 gio-tool: fix inverted logic in monitor tool + 790126 gengiotypefuncs.py is missing from tarballs + 790147 build: Drop data-to-c.pl in favour of data-to-c.py + 790157 gmessages: Give examples of G_DEBUG with gdb in the documentation + 790272 file: add g_file_load_bytes() + 790275 avoid temporary string allocations in g_resources_enumerate_children + 790310 speedup path canonicalization in GResourceFile + +* Translation updates: + Catalan (Valencian) + Czech + German + Nepali + Norwegian bokmål + Slovak + Slovenian + Spanish + + +Overview of changes in GLib 2.54.0 +================================== + +* Bugs fixed: + 780861 Crash in GnomeWallClock + 786983 Please make the output of gio-querymodules deterministic + 787109 Valgrind false positive in ioctl() in btrfs file copy + 787123 glib: Slighty update GIOChannel documentation + 787146 GMainLoop: match of parameter pair of LOCK_CONTEXT/UNLOCK_CONTEXT + +* Translation updates: + Basque + Catalan + Romanian + Swedish + + +Overview of changes in GLib 2.53.7 +================================== + +* Bugs fixed: + 736710 remove unnecessary executions of libtool from configure + 785260 gio/tests/appmonitor fails if local dir not writeable + 786456 g_subprocess_wait[_check]_async() breaks when cancelled... + 786555 g_array_free() is not thread safe w.r.t. g_array_unref() + 786580 gdesktopappinfo.c: Add Tilix as a fallback terminal + 786807 g_uuid_string_random undefined when built with meson + +* Translation updates: + Brazilian Portuguese + Catalan + Czech + Danish + Finnish + French + Friulian + German + Italian + Kazakh + Korean + Latvian + Nepali + Polish + Spanish + Turkish + + +Overview of changes in GLib 2.53.6 +================================== + +* Bugs fixed: + 766358 glib doesn't respect XDG_* envvars on W32, ever + 783270 Improve Visual Studio support for Meson builds + 785955 pthread_setname_np misdetected with meson + 786060 Sequences documentation does not make it clear... + 786360 gobject: add autoptr support for GClosure + 786452 crash on Linux without stderr stream + 786460 gio-tool: Unify buffer sizes + 786462 Use g_output_stream_write_all instead of while + 786463 gio-tool-save: Prevent overwriting error + +* Translation updates: + Catalan + Galician + Hungarian + Indonesian + Lithuanian + Nepali + Serbian + + +Overview of changes in GLib 2.53.5 +================================== + +* Bugs fixed: + 695573 Untranslatable strings in glib-compile-schemas + 725950 GApplication: call dbus_unregister only once, and before destruction + 731703 giomodule test misbuilds its test modules as libraries + 769135 External control for g_test_add/g_test_run + 779332 Rewrite mkenums in Python + 779607 Race between mounts-changed signal and g_unix_mounts_get() function + 784000 Improve strerror_r() detection + 784815 Map G_NOTIFICATION_PRIORITY_HIGH to NOTIFY_URGENCY_NORMAL + 784965 Use the glib preset for i18n in Meson + 784995 meson: some Windows improvements + 785113 glib-mkenums Python port fixes + 785130 G_LOG_DOMAIN shouldn't be left undefined for applications + 785438 Spurious -Wmaybe-uninitialized in gdatetime.c + 785468 glib/gpoll: Unnecessary if conditional included in the poll_rest() function + 785520 Replace advice to use removed gdk_spawn functions + 785577 clobbers errno while setting GError + +* Translation updates: + Slovenian + Spanish + + +Overview of changes in GLib 2.53.4 +================================== + +* Unicode support has been updated to Unicode 10.0.0 + +* glib-genmarshal and glib-mkenums have been rewritten in python. + Every effort has been made to keep compatibility. Please report + problems related to these tools + +* GLib can now be built with meson. autotools are still supported + +* Bugs fixed: + 722047 drop makefile.msc? + 733821 g_strerror() uses strerror(3) instead of strerror_r(3) + 773842 g_utf8_find_next_char() won't signal the end of a NUL-terminated string + 779332 Rewrite mkenums in Python + 780095 g_utf8_get_char_validated() stopping at nul byte even for length specified... + 780634 Remove remaining old codepage ABI comapt code + 783841 test_GDateTime_new_from_timeval_overflow fails on 32 bit systems + 784000 Improve strerror_r() detection + 784020 GKeyFile – Add array length annotations to to_data(), get_keys() and get_g... + 784037 gio: Mention the ALL_METADATA flag in g_file_copy() + 784433 gdbus-codegen with variant type parameters result in nested variant + 784456 Update to Unicode 10.0.0 + 784528 Rewrite glib-genmarshal in Python + 784579 Calling g_dir_open on Missing Directory When Executable File Path Contains... + 784581 docs: Fix cut'n'paste error in g_resources_get_info() doc + 784739 Minor typo in configure error message + 784792 Just fixing a little typo in comments + +* Translation updates: + Hebrew + + +Overview of changes in GLib 2.53.3 +================================== + +* Bugs fixed: + 658446 Add translation comment for wrong password notice string + 661926 Improve the default logging setup in GLib + 674885 type initialisation deadlock in GObject + 775593 GIO cannot write symlinks on FreeBSD and NetBSD + 776169 Various gio-tool fixes + 776333 Fix annotation on g_file_copy_async() + 776504 Upgrade license from LGPLv2+ to LGPLv2.1+ + 777307 race condition between gdbus signal callback and g_bus_unwatch_name... + 778422 gsubprocesslauncher: Clarify the behavior of set_environ() + 781301 Stack pointer corrupted by incorrect call of NtNotifyChangeMultipleKeys + 782336 Add additional documentation of the GResource XML format + 782996 build: Use AM_TESTS_ENVIRONMENT rather than TESTS_ENVIRONMENT + 783061 GApplication: Remove some unused members + 783130 Make dbus activation sandbox-aware + 783193 Adapt to OpenURI api change + 783201 gdbus-codegen: Apply --output-directory to generated docs as well + 783340 win32: port monotonic times to use QPC + 783350 length parameter can be NULL g_data_input_stream_read_line + 783392 incorrect (out) annotation for g_dbus_interface_info_generate_xml + 783593 GGtkNotificationBackend should use /org/freedesktop/DBus to call Ge... + +* Translation updates: + Esperanto + German + Indonesian + Kazakh + Spanish + + +Overview of changes in GLib 2.53.2 +================================== + +* A few new number parsing functions have been added: + - g_ascii_string_to_signed + - g_ascii_string_to_unsigned + These have better error handling than the existing ones. + +* glib-mkenums now supports /*< private >*/ and /*< public >*/ + +* GSettings now consider XDG_DATA_HOME in addition to XDG_DATA_DIRS. + +* Bugs fixed: + 674885 type initialisation deadlock in GObject + 698064 Add g_ptr_array_contains() + 732000 gdatetime: Remove an unnecessary NULL pointer check + 734946 Implement GContentType on OSX + 741335 Possible differences in use of XDG_DATA_DIRS versus XDG base directory specification + 748263 Use-after-free in g_dbus_connection_call_internal() + 776876 gmodule – Various Android bug-fixes + 777030 build error where minor() and major() cant be resolved in gio/gdbusmessage.c + 780300 gio/gosxappinfo.c uses deprecated LSFindApplicationForInfo + 780309 gio/tests/appinfo build fails: gdesktopappinfo.c skipped on OS X + 781755 Avoid compiler warnings in generated marshallers code + 781826 portal support: Read /.flatpak-info + 781830 Fix some typos and errors in GVariant documentation + 781847 Use-after-free under send_message_with_reply_cleanup():gdbusconnection.c:1792 + 781867 various gvfsd-* wants to look in /boot/efi, causes unnecessary/inappropriate auto... + 782068 doc: Trivial typo fixes + 782075 gtimer: Handle gmtime() failure in g_time_val_to_iso8601() + 782089 gdatetime: Fix overflow checks when constructing from timestamps + 782162 Support public/private trigraph in glib-mkenums + 782237 make check error + 782311 inode/directory is treated as a subclass of application/octet-stream + 782628 libmount build dependency check not requiring the right version? + +* Translation updates: + Hungarian + Indonesian + Spanish + + +Overview of changes in GLib 2.53.1 +================================== + +* The gdbus tool gained a wait command + +* g_unix_signal_source_new support SIGWINCH now + +* There are now g_enum_to_string and g_flags_to_string functions + +* A new function to instantiate objects: g_objet_new_with_properties + +* GParameter and related APIs have been deprecated + +* Bug fixes + 447907 enum/flags from string + type transform + tests + 668962 GUnixMountPoint/GUnixMountEntry not usable through gobject-introspection + 669355 gdbus-codegen output contains stray semicolons at file scope (forbidden in C99) + 674885 type initialisation deadlock in GObject + 698064 Add g_ptr_array_contains() + 709865 Add boxing to GParameter + 725894 build: Include gettext libraries for static compilation on Mac OS X + 734946 Implement GContentType on OSX + 741229 gio: Handle NULL cached properties in NetworkManager monitor + 745971 gdbus-tool: Add a command to wait for a well-known name on the bus + 755046 gfileutils: Add precondition checks to g_file_test() + 761102 Increase performance for main loop + 761889 GDateTime: %p does not always print AM/PM string + 766660 Please clarify the extent to which GInitable, GAsyncInitable must be idempotent + 769534 g_unix_signal_source_new does not support SIGWINCH + 772221 Take advantage of Unicode + 775879 g_log_default_handler should not check G_MESSAGES_DEBUG + 776169 various gio-tool fixes + 777961 Documentation for g_app_info_equals() could be clearer + 778049 race in gsource detected by TSan + 778207 gio-querymodules: fix memory leak + 778287 G_MODULE_EXPORT and -fvisibility=hidden + 779409 Fix false positive g_warning() in remove_filter() + 780066 g_base64_encode_close() in glib/gbase64.c produces invalid base64 encoding + 780095 g_utf8_get_char_validated() stopping at nul byte even for length specified buffers + 780306 Unused function in gunicollate.c for CARBON + 780310 g_tls_database_verify_chain doesn't set the GError for failures other than cancell... + 780384 gio/tests/contenttype fails on OS X: "public.directory" != "public.folder" + 780441 Make the portal implementation of g_app_info_launch() synchronous + 780634 Remove remaining old codepage ABI comapt code + 780908 gobject: remove duplicate GType sanity check + 780924 Memory leak in gdbusmethodinvocation.c + 781125 gio-tool: Fix errors format string + 781234 the buffer written to by g_input_stream_read is not marked as an out parameter + 781298 gfileutils.c:330:3: error: ISO C90 forbids mixed declarations and code + +* Translation updates + Catalan + Friulian + German + Hebrew + Indonesian + Polish + Russian + + +Overview of changes in GLib 2.52.0 +================================== + +* Bug fixes: + 779799 gdatetime test fails with tzdata 2017a + 780032 Add missing attributes to two functions + 780144 gio/fam: Remove leftover debug print + +* Translation updates: + French + Friulian + Latvian + + +Overview of changes in GLib 2.51.5 +================================== + +* OS X implementations of GContentType and GAppInfo + have been added + +* Bugs fixed: + 673047 gunicollate is broken on OS X (patch included!) + 734946 Implement GContentType on OSX + 747146 Implement GNotification on OSX + 769983 glib-mkenums generates non-reproducible Makefile snippets + 777203 gnulib license information is not correct in glib2.0 + 778515 Crash in the gio kqueue backend + 779456 Make g_utf8_make_valid optionally take a length + +* Translation updates: + Danish + Friulian + German + Hungarian + Korean + Lithuanian + + +Overview of changes in GLib 2.51.4 +================================== + +* Memory leak fixes +* Fix the released tarball + + +Overview of changes in GLib 2.51.3 +================================== + +* Bugs fixed: + 771997 gchecksum: Add SHA-384 support + 778422 gsubprocesslauncher: Clarify the behavior of set_environ() + 778581 gdbus-codegen: Fix -Wconversion warning + 778801 gdbus-codegen: Add --outdir flag + 778991 Plug a mem leak in gdbusauth + 779183 g_io_extension_point_get_extensions should check for NULL pointer + +* Translation updates: + Basque + Chinese (Taiwan) + Danish + Indonesian + Italian + Serbian + + Overview of changes in GLib 2.51.2 ================================== @@ -414,6 +5254,10 @@ Translation updates: Overview of changes in GLib 2.48.0 ================================== + * The system copy of PCRE is now used by default to implement GRegex. + Configure with --with-pcre=internal if a system PCRE version + is unavailable or undesired. + * a minor build fix in the name of determinism * a few coverity fixes @@ -687,6 +5531,21 @@ Overview of changes in GLib 2.47.1 Overview of changes in GLib 2.46.0 ================================== +* GTask no longer imposes a fixed limit on the number of tasks that + can be run_in_thread() simultaneously, since doing this inevitably + results in deadlocks in some use cases. Instead, it now has a base + number of threads that can be used "for free", but will gradually + add more threads to the pool if too much time passes without any + tasks completing. + + The exact behavior may continue to change in the future, and it's + possible that some future version of GLib may not do any + rate-limiting at all. As a result, you should no longer assume that + GTask will rate-limit tasks itself (or, by extension, that calls to + certain async gio methods will automatically be rate-limited for + you). If you have a very large number of tasks to run, and don't + want them to all run at once, you should rate-limit them yourself. + * Disable runtime-deprecation warnings * Fix marshalling of flags on bigendian 64bit architectures @@ -1602,6 +6461,21 @@ Overview of changes from GLib 2.39.91 to GLib 2.39.92 This is a release candidate for 2.40.0. +* g_test_run() no longer runs tests in exactly the order they are + registered; instead, it groups them according to test suites (ie, + path components) like the documentation always claimed it did. In + some cases, this can result in a sub-optimal ordering of tests, + relative to the old behavior. The fix is to change the test paths to + properly group together the tests that should run together. (eg, if + you want to run test_foo_simple(), test_bar_simple(), and + test_foo_using_bar() in that order, they should have test paths like + "/simple/foo", "/simple/bar", "/complex/foo-using-bar", not + "/foo/simple", "/bar/simple", "/foo/using-bar" (which would result + in test_foo_using_bar() running before test_bar_simple()). + + (The behavior actually changed in GLib 2.36, but it was not + documented at the time, since we didn't realize it mattered.) + There are no major changes in this release, but a few serious bugs have been fixed. @@ -2729,6 +7603,28 @@ Overview of changes fron GLib 2.36.0 to 2.37.0 Overview of changes fron GLib 2.35.9 to 2.36.0 ============================================== +* It is no longer necessary to call g_type_init(). If you are + loading GLib as a dynamic module, you should be careful to avoid + unloading it, then subsequently loading it again. This never + really worked before, but it is now explicitly undefined behavior. + Note that if g_type_init() was the only explicit use of a GObject + API and you are using linker flags such as --no-add-needed, then + you may have to artificially use some GObject call to keep the + linker from optimizing away -lgobject. We recommend to use + g_type_ensure (G_TYPE_OBJECT) for this purpose. + +* This release contains an incompatible change to the g_get_home_dir() + function. Previously, this function would effectively ignore the HOME + environment variable and always return the value from /etc/password. + As of this version, the HOME variable is used if it is set and the + value from /etc/passwd is only used as a fallback. + +* The 'flowinfo' and 'scope_id' fields of GInetSocketAddress + (introduced in GLib 2.32) have been fixed to be in host byte order + rather than network byte order. This is an incompatible change, but + the previous behavior was clearly broken, so it seems unlikely that + anyone was using it. + This release contains only small bugfixes and translations updates. - g_file_copy(): fix bug where attributes were not applied properly to @@ -3212,6 +8108,13 @@ The remaining changes should not cause problems. Overview of changes from GLib 2.33.14 to 2.34.0 =============================================== +* GIO now looks for thumbnails in XDG_CACHE_HOME, following a + recent alignment of the thumbnail spec with the basedir spec. + +* The default values for GThreadPools max_unused_threads and + max_idle_time settings have been changed to 2 and 15*1000, + respectively. + * Bug fixes: 654239 g_type_init()'s docs have no statement about how to... 674620 Update GSettings migration guide for intltool updates @@ -3732,6 +8635,49 @@ Overview of changes from GLib 2.32.0 to 2.32.1 Overview of changes from GLib 2.31.22 to 2.32.0 =============================================== +* It is no longer necessary to use g_thread_init() or to link against + libgthread. libglib is now always thread-enabled. Custom thread + system implementations are no longer supported (including errorcheck + mutexes). + +* The thread and synchronisation APIs have been updated. + GMutex and GCond can be statically allocated without explicit + initialisation, as can new types GRWLock and GRecMutex. The + GStatic_______ variants of these types have been deprecated. GPrivate + can also be statically allocated and has a nicer API (deprecating + GStaticPrivate). Finally, g_thread_create() has been replaced with a + substantially simplified g_thread_new(). + +* The g_once_init_enter()/_leave() functions have been replaced with + macros that allow for a pointer to any gsize-sized object, not just a + gsize*. The assertions to ensure that a pointer to a correctly-sized + object is being used will not work with generic pointers (ie: (void*) + and (gpointer) casts) which would have worked with the old version. + +* It is now mandatory to include glib.h instead of individual headers. + +* The -uninstalled variants of the pkg-config files have been dropped. + +* For a long time, gobject-2.0.pc mistakenly declared a public + dependency on gthread-2.0.pc (when the dependency should have been + private). This means that programs got away with calling + g_thread_init() without explicitly listing gthread-2.0.pc among their + dependencies. + + gthread has now been removed as a gobject dependency, which will cause + such programs to break. + + The fix for this problem is either to declare an explicit dependency + on gthread-2.0.pc (if you care about compatibility with older GLib + versions) or to stop calling g_thread_init(). + +* g_debug() output is no longer enabled by default. It can be enabled + on a per-domain basis with the G_MESSAGES_DEBUG environment variable + like + G_MESSAGES_DEBUG=domain1,domain2 + or + G_MESSAGES_DEBUG=all + * Bugs fixed: 671988 Quickly registering / unregistering objects on bus... 672095 glib needs stable sort function @@ -4409,6 +9355,11 @@ list below attempts to summarise, but not every change is listed. Overview of changes from GLib 2.29.18 to 2.29.90 ================================================ +* GObject includes a generic marshaller, g_cclosure_marshal_generic. + To use it, simply specify NULL as the marshaller in g_signal_new(). + The generic marshaller is implemented with libffi, and consequently + GObject depends on libffi now. + * API/ABI changes: - unix signal watches now match the API of all of the other sources - revert the addition of g_date_time_source_new () from last release @@ -4974,6 +9925,10 @@ Overview of Changes from GLib 2.28.0 to 2.29.2 Overview of Changes from GLib 2.27.93 to 2.28.0 =============================================== +* The GApplication API has changed compared to the version that was + included in the 2.25 development snapshots. Existing users will need + adjustments. + * Bugs fixed: 641363 GInitable documentation isn't clear about that finalize... 641395 Add more data about the origin application to the "Lau... @@ -6229,6 +11184,23 @@ Overview of Changes from GLib 2.24.0 to GLib 2.25.0 Overview of Changes from GLib 2.23.6 to GLib 2.24.0 =================================================== +* It is now allowed to call g_thread_init(NULL) multiple times, and + to call glib functions before g_thread_init(NULL) is called + (although the later is mainly a change in docs as this worked before + too). See the GThread reference documentation for the details. + +* GObject now links to GThread and threads are enabled automatically + when g_type_init() is called. + +* GObject no longer allows to call g_object_set() on construct-only properties + while an object is being initialized. If this behavior is needed, setting a + custom constructor that just chains up will re-enable this functionality. + +* GMappedFile on an empty file now returns NULL for the contents instead of + returning an empty string. The documentation specifically states that code + may not rely on nul-termination here so any breakage caused by this change + is a bug in application code. + * Bug fixes: 613601 buglet in dup_close_on_exec_fd 584284 g_data_input_stream_read_until_async behaves confusingly @@ -6590,6 +11562,10 @@ Overview of Changes from GLib 2.22.0 to GLib 2.22.1 Overview of Changes from GLib 2.21.6 to GLib 2.22.0 =================================================== +* Repeated calls to g_simple_async_result_set_op_res_gpointer used + to leak the data. This has been fixed to always call the provided + destroy notify. + * Add gdb python macros to make gobject debugging more pleasant * Bugs fixed: @@ -6949,6 +11925,18 @@ Overview of Changes from GLib 2.20.0 to GLib 2.20.1 Overview of Changes from GLib 2.19.9 to GLib 2.20.0 =================================================== +* The functions for launching applications (e.g. g_app_info_launch() + + friends) now passes a FUSE file:// URI if possible (requires gvfs + with the FUSE daemon to be running and operational). With gvfs 2.26, + FUSE file:// URIs will be mapped back to gio URIs in the GFile + constructors. The intent of this change is to better integrate + POSIX-only applications, see bug #528670 for the rationale. The + only user-visible change is when an application needs to examine an + URI passed to it (e.g. as a positional parameter). Instead of + looking at the given URI, the application will now need to look at + the result of g_file_get_uri() after having constructed a GFile + object with the given URI. + * Base64 support: Avoid integer overflows. CVE-2008-4316 * Bugs fixed: @@ -7328,6 +12316,13 @@ Overview of Changes from GLib 2.18.0 to GLib 2.18.1 Overview of Changes from GLib 2.17.7 to GLib 2.18.0 =================================================== +* The recommended way of using GLib has always been to only include the + toplevel headers glib.h, glib-object.h and gio.h. GLib enforces this by + generating an error when individual headers are directly included. + To help with the transition, the enforcement is not turned on by + default for GLib headers (it is turned on for GObject and GIO). + To turn it on, define the preprocessor symbol G_DISABLE_SINGLE_INCLUDES. + * Win32: - rework the g_poll() implementation to match poll() semantics more closely @@ -7742,6 +12737,10 @@ Overview of Changes from GLib 2.16.0 to GLib 2.16.1 Overview of Changes from GLib 2.15.6 to GLib 2.16.0 =================================================== +* GLib now includes GIO, which adds optional dependencies against libattr + and libselinux for extended attribute and SELinux support. Use + --disable-xattr and --disable-selinux to build without these. + * Fix the definition of G_INLINE_FUNC to work with gcc 4.3.0 * GIO: @@ -8663,6 +13662,36 @@ Overview of Changes from GLib 2.10.0 to GLib 2.10.1 Overview of Changes from GLib 2.9.6 to GLib 2.10.0 ================================================== +* The functions g_snprintf() and g_vsnprintf() have been removed from + the gprintf.h header, since they are already declared in glib.h. This + doesn't break documented use of gprintf.h, but people have been known + to include gprintf.h without including glib.h. + +* The Unicode support has been updated to Unicode 4.1. This adds several + new members to the GUnicodeBreakType enumeration. + +* The support for Solaris threads has been retired. Solaris has provided + POSIX threads for long enough now to have them available on every + Solaris platform. + +* 'make check' has been changed to validate translations by calling + msgfmt with the -c option. As a result, it may fail on systems with + older gettext implementations (GNU gettext < 0.14.1, or Solaris gettext). + 'make check' will also fail on systems where the C compiler does not + support ELF visibility attributes. + +* The GMemChunk API has been deprecated in favour of a new 'slice + allocator'. See the g_slice documentation for more details. + +* A new type, GInitiallyUnowned, has been introduced, which is + intended to serve as a common implementation of the 'floating reference' + concept that is e.g. used by GtkObject. Note that changing the + inheritance hierarchy of a type can cause problems for language + bindings and other code which needs to work closely with the type + system. Therefore, switching to GInitiallyUnowned should be done + carefully. g_object_compat_control() has been added to GLib 2.8.5 + to help with the transition. + * Bugs fixed: 328997 64bit pointer trunction in glib slab-allocator [Pascal Hofstee] @@ -9097,6 +14126,65 @@ Overview of Changes from GLib 2.6.0 to GLib 2.6.1 Overview of Changes from GLib 2.4.x to GLib 2.6.0 ================================================= +* GLib 2.6 introduces the concept of 'GLib filename encoding', which is the + on-disk encoding on Unix, but UTF-8 on Windows. All GLib functions + returning or accepting pathnames have been changed to expect + filenames in this encoding, and the common POSIX functions dealing + with pathnames have been wrapped. These wrappers are declared in the + header which must be included explicitly; it is not + included through . + + On current (NT-based) Windows versions, where the on-disk file names + are Unicode, these wrappers use the wide-character API in the C + library. Thus applications can handle file names containing any + Unicode characters through GLib's own API and its POSIX wrappers, + not just file names restricted to characters in the system codepage. + + To keep binary compatibility with applications compiled against + older versions of GLib, the Windows DLL still provides entry points + with the old semantics using the old names, and applications + compiled against GLib 2.6 will actually use new names for the + functions. This is transparent to the programmer. + + When compiling against GLib 2.6, applications intended to be + portable to Windows must take the UTF-8 file name encoding into + consideration, and use the gstdio wrappers to access files whose + names have been constructed from strings returned from GLib. + +* Likewise, g_get_user_name() and g_get_real_name() have been changed + to return UTF-8 on Windows, while keeping the old semantics for + applications compiled against older versions of GLib. + +* The GLib uses an '_' prefix to indicate private symbols that + must not be used by applications. On some platforms, symbols beginning + with prefixes such as _g will be exported from the library, on others not. + In no case can applications use these private symbols. In addition to that, + GLib+ 2.6 makes several symbols private which were not in any installed + header files and were never intended to be exported. + +* To reduce code size and improve efficiency, GLib, when compiled + with the GNU toolchain, has separate internal and external entry + points for exported functions. The internal names, which begin with + IA__, may be seen when debugging a GLib program. + +* On Windows, GLib no longer opens a console window when printing + warning messages if stdout or stderr are invalid, as they are in + "Windows subsystem" (GUI) applications. Simply redirect stdout or + stderr if you need to see them. + +* The child watch functionality tends to reveal a bug in many + thread implementations (in particular the older LinuxThreads + implementation on Linux) where it's not possible to call waitpid() + for a child created in a different thread. For this reason, for + maximum portability, you should structure your code to fork all + child processes that you want to wait for from the main thread. + +* A problem was recently discovered with g_signal_connect_object(); + it doesn't actually disconnect the signal handler once the object being + connected to dies, just disables it. See the API docs for the function + for further details and the correct workaround that will continue to + work with future versions of GLib. + * Major new APIs - GOption, a commandline option parser - GKeyFile, a parser/editor for the .ini like files @@ -9920,3 +15008,250 @@ What's new in GLib 1.3.1: * the g_string(x) macro has been removed, #x may be used instead. + +Overview of changes in GLib 1.2.1 +================================= + +* g_realloc() fix for SunOS (please report further problems). +* Continued the never ending fix vendetta regarding getpwuid(), + this time AIX has been the culprit. +* Upgrade to libtool 1.2f +* Miscellaneous other buglets fixed. + + +Overview of changes in GLib 1.2.0 +================================= + +* GLib is distributed seperatedly from Gtk+ +* Win32 Portability +* Threading support +* GModule mechanism (implemented in an extra library) which wraps dynamic + object code loading facilities in a portable manner +* GIOChannel structure to encapsulate the IPC mechanism +* GQuarks and datasets +* GRelations for n-way mapping of certain data +* An n-way tree implementation +* GDate functionality for calendar date manipulations +* GAllocator type and associated functions +* Added generic callback maintenance functions (ghook) +* Generic functions for TAB completions +* Endian defines (G_*_ENDIAN) +* g_log() mechanism for logging of messages at different log levels +* Generic main-loop mechanism +* New glib-config helper script +* Many more API extensions + + +Overview of changes in GLib 1.1.16 +================================== + +* Allocate smaller pools of memory for glists, gslists, gnodes +* Bug Fixes + + +Overview of changes in GLib 1.1.15 +================================== + +* HPUX 11 thread system detection should now work +* Release the main loop lock around calls to prepare() and + check() so it is not held over user code +* A few Win32 fixups + + +Overview of changes in GLib 1.1.14 +================================== + +* Check for dlsym() in system libraries and -dl +* FreeBSD portability fixes +* Random bug fixes and autoconf/automake changes + + +Overview of changes in GLib 1.1.13 +================================== + +* Removed alloca() based function and macro variants again. +* Improved thread related configure tests. +* GSource destruction fixups. +* Fixed up idle function removal based on user_data pointer. +* Advanced Win32 portability. +* Enforced GSource's check(), prepare() and dispatch() constrains, + loop recursions may only happen from dispatch(), and check() as well + as prepare() are called while the main_loop lock is being held. +* GLib development now requires GNU autoconf 2.13, GNU automake 1.4 + and GNU libtool 1.2d. +* Lots of random portability and bug fixes. + + +Overview of changes in GLib 1.1.12 +================================== + +* Added alloca functions/macros: g_strdup_a, g_strconcat3_a, g_alloca, + g_new_a, g_new0_a +* New tests structure. Type 'make check' on your system to run them. +* Avoid unnecessary extra hook referencing in g_hook_list_marshal + + +Overview of changes in GLib 1.1.11 +================================== + +* provide defaults for POLL sysdefs +* g_main_is_running: new function to check whether a main loop has been quitted +* a few other enhancement/fixes + + +Overview of changes in GLib 1.1.9 +================================= + +* Check for pthread_attr_init in all cases, Digital Unix 4 requires this +* For G_LOCK_DECLARE_*, if !G_THREADS_ENABLED, eat trailing semicolon better +* Changed g_main_poll_(add|remove) to g_main_(add|remove)_poll + + +Overview of changes in GLib 1.1.8 +================================= + +* Added threading support + - The ability to specify a set of functions to be used for + locking at runtime. + - Default implementations of locking functions for pthreads, + Solaris threads, and (experimentally) NSPR. + - All static variables should now properly locked. + - Enhancements to the generic main-loop mechanism to be thread-safe. + (It is used for the main-loop in GTK+ as of GTK+-1.1.8) +* Portability fixes. + + +Overview of changes in GLib 1.1.7 +================================= + +* Removed multiple define from glibconfig.h + + +Overview of changes in GLib 1.1.6 +================================= + +* New GDate functionality for calendar date manipulations (g_date_*) +* New GAllocator type and associated functions +* New functions g_slist_copy and g_list_copy to duplicate a list with all + its data pointers. +* New function g_array_insert_vals and new macro g_array_insert_val to + insert elements at an arbitrary index +* GAllocators used for glist, gslist, gnode node allocations +* Incremental freezing in ghash +* New function g_hook_list_marshal_check to eventually destroy hooks after + they got marshalled +* Revised GIOChannel to provide generic virtual-function based interface +* Added generic main-loop abstraction +* Removed GListAllocator type and its g_*_allocator_*() function variants +* Bug fixes + + +Overview of changes in GLib 1.1.5 +================================= + +* Win32 portability +* GIOChannel structure to encapsulate the IPC mechanism +* Reimplemented endian stuff, using inline asm for x86 +* New functions: + - g_strescape: escapes backslashes + - g_path_is_absolute and g_path_skip_root + - g_getenv: expands environment variables that contain references + to other environment variables + - g_scanner_sync_file_offset: rewind the filedescriptor to the current + buffer position and blow the file read ahead buffer + - g_array_remove_index: remove an entry, preserving the order + - g_array_remove_index_fast: remove an entry, order might be distorted + - g_ptr_array_remove: remove an entry, preserving the order + - g_ptr_array_remove_fast: remove an entry, order might be distorted + - g_byte_array_remove_index: wrapper for g_array_remove_index + - g_byte_array_remove_index_fast: wrapper for g_array_remove_index_fast + - g_strncasecmp: modeled closely after g_strcasecmp + - g_list_sort, g_slist_sort: to merge sort GLists and GSLists +* New macros: + - G_DIR_SEPARATOR, G_DIR_SEPARATOR_S: platform-dependant file name + syntax elements + - G_SEARCHPATH_SEPARATOR, G_SEARCHPATH_SEPARATOR_S: platform-dependant + search path syntax conventions + - G_STRUCT_OFFSET, G_STRUCT_MEMBER_P, G_STRUCT_MEMBER: for handling + structure fields through their offsets +* Removed G_ENUM, G_FLAGS, G_NV, and G_SV macros +* Bug fixes + + +Overview of changes in GLib 1.1.4 +================================= + +* Added generic callback maintenance functions (ghook) +* New endian defines (G_*_ENDIAN) +* New string join/split/free routines +* Fixes + + +Overview of changes in GLib 1.1.3 +================================= + +* New GModule mechanism (implemented in an extra library) which wraps dynamic + object code loading facilities in a portable manner. +* glib-config features extra "glib" (old behaviour remains) and "gmodule" + (add libgmodule.so to the --libs output) arguments now. this can also + be specified as fourth argument to the AM_PATH_GLIB() macro. +* Overhaul of the `inline' autoconfiguration stuff, so inlining should be + sufficiently supported on all systems that allow inlining now. +* New g_log() mechanism for logging of messages at different log levels, + associated with certain log domains (define -DG_LOG_DOMAIN for your library). +* New inline functions for bit masks tests. +* GNode macros (and functions) now return the newly allocated node. +* New macro G_VA_COPY() to work around va_list copying oddities on some + platforms. the non-static g_vsprintf() function vanished in favour of + a publically exported g_strdup_vprintf(). + People that used the former g_vsprintf() would definitely want to read the + associated ChangeLog entries (grep for printf). +* New utility functions: + g_strndup(), g_on_error_query(), g_on_error_stack_trace(), g_strdup_printf(), + g_strdup_vprintf(), g_printf_string_upper_bound(), g_spaced_primes_closest(), + g_strnfill(), g_memdup(). +* Overhaul of the array implementations, this contains some source incompatible + changes. Again, the ChangeLog is much more informative (grep for garray.c). +* The internals of the g_dataset mechanism are now exported through the + new g_datalist_* API (this is also the underlying implementation for the + keyed data of GtkObjects). +* New function g_atexit(), use of the ATEXIT() macro is discouraged. +* Better configure checks for ansi compliance. +* Libtool update to version 1.2b. +* Lotsa bug fixes and cleanups as always ;) + + +Overview of changes in GLib 1.1.2 +================================= + +* Fixed packaging mistake which occured in 1.1.1 +* fix 64-bitness in g_prints in glibtest + + +Overview of changes in GLib 1.1.1 +================================= + +* An n-way tree implementation is provided now, based on the GNode structure. +* Bugfix for pointer arrays. + + +Overview of changes in GLib 1.1.0 +================================= + +* GLib is distributed seperatedly from Gtk+ now and uses a sophisticated + shared library versioning scheme to deal with interface and binary + incompatibilities. +* There is a glib-config helper script installed now. +* Fixups all over the place. +* gboolean is now a gint, not a gchar anymore. +* API extensions for GList and GSList. +* New g_str*() functions for simple string handling. +* GScanner extensions for scope, warning and error handling. +* Minor performance improvements for GMemChunks. +* Implementations of GQuarks and datasets (similar to GtkObjects data + mechansim, but works for generic memory locations). +* More convenience macros for GNU C function arguments. +* Const correction all over the place, including a new pointer type + gconstpointer. +* Generic functions for TAB completions. +* GRelations for n-way mapping of certain data.