Overview of changes in GLib 2.75.0, 2022-11-10
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 aGParamSpecParam
(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)Add inline optimised version of
g_str_has_{prefix,suffix}()
(work by Emmanuel Fleury) (#24)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 ing_spawn_*()
(work by Thomas Haller) (!2988)Deprecate
G_MODULE_SUFFIX
and improveg_module_open()
to automatically find
modules better on different platforms (work by Nirbheek Chauhan) (#520, #1413)Soft-deprecate sized integer types in favour of C99
stdint.h
types (work by Simon McVittie) (#1484)Correctly mark sshfs file systems as
G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE
(work by Philip Withnall) (#2726)Add
g_set_string()
function for setting strings simply (work by Christian Hergert) (#2747)Add support for
xdg-terminal-exec
for handling desktop applications using
Terminal=true
(work by Max Gautier) (!2839)Change various configure-time defaults for cast checks and related
(work by Michael Catanzaro) (!2850, !2894)Set Meson’s
install_tag
on installed files (work by Xavier Claessens) (!2905)Add
G_TYPE_FLAG_DEPRECATED
for tagging deprecatedGType
s/GObject
s
(work by Matthias Clasen) (!2993)Add
g_clear_fd()
andg_autofd
for automatically closing FDs when exiting a
scope (work by Simon McVittie) (!3007)Convert GVariant Specification to reStructuredText and host it at
https://developer.gnome.org/documentation/specifications/gvariant-specification-1.0.html
(work by Philip Withnall) (!3044)Bugs fixed:
- #16 gspawn.c file descriptor handling (Emmanuel Fleury, Ray Strode)
- #19 Workaround dlopen(NULL, 0) brokenness
- #24 inlined g_str_has optimisations (Emmanuel Fleury)
- #333 Make GLib valgrind friendly (Marco Trevisan (Treviño))
- #520 g_module_build_path builds incorrect paths on macOS and Windows (MSVC)
(Nirbheek Chauhan)
- #1211 macros: generate uniq variable name in _G_BOOLEAN_EXPR()/G_LIKELY()
(Thomas Haller)
- #1413 Meson build defines G_MODULE_SUFFIX to
dylib
on macOS but autotools
usesso
(Nirbheek Chauhan)
- #1484 Deprecate sized integer types in favour of C99 stdint.h (Simon
McVittie)
- #2622 GThreadedResolver incorrectly expands domain names in SRV records
(Philip Withnall)
- #2726 G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE not set for sshfs (Philip Withnall)
- #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))
- #2747 Add g_set_string for simplified and correct property setters
(Christian Hergert)
- #2748 construct properties always trigger the deprecated property warning
(Simon McVittie)
- #2753 Infinite recursion on ENOMEM in g_vasprintf() (Philip Withnall)
- #2754
glib / spawn-test
fails with non-English locale (Philip Withnall)
- #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)
- #2783 Enable no-interrupt close() on macOS
- #2784 Remove workaround to avoid false-positive -Werror=nonnull in
g_strhas*() macro versions
- #2785 Invalid FD assertion in g_close() triggers test failures on macOS (Ray
Strode)
- #2787 new int64, double hash functions always hash to 0 on big-endian (Simon
McVittie)
- #2791 function name typo in comment explaining the private struct memory
layout (gtype.c) (sunce)
- #2795 [regression] gnome-keyring-daemon uses 100% CPU with glib-2.74.1 (Ray
Strode)
- #2796 _g_clear_fd_ignore_error() breaks with GLIB_VERSION_MAX_ALLOWED (Simon
McVittie)
- #2798 msys2-clang64 fails to compile cxx tests on versions < 11 (Marco
Trevisan (Treviño))
- #2799 Wrong GTask tag on error return path in
g_proxy_resolver_lookup_async() (Michael Catanzaro)
- #2800 fileutils test regression on vs2017-x64 builds:
appcrt\lowio\commit.cpp(19) : Assertion failed: (_osfile(fh) & FOPEN)
- #2802 Remove G_OS_DARWIN in favour of platform-specific defines (Philip
Withnall)
- #2805 g_task_set_name() should not use g_task_set_static_name() unless
permitted by GLIB_VERSION_MAX_ALLOWED (Michael Catanzaro)
- #2807 ../glib/gstrfuncs.h:186:41: error: argument 1 null where non-null
expected -Werror=nonnull
- !2799 Use the system allocator on UNIX when creating GTypeInstances
- !2839 Add support for xdg-terminal-exec for handling desktop applications
using 'Terminal=true'
- !2848 giomodule: Automatically detect modules on macOS
- !2850 Automatically disable cast checks when building with optimization
- !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
- !2869 task: Don't overwrite source names
- !2880 gbacktrace: Don't truncate gdb output
- !2884 tests/desktop-app-info: Add tests to verify if launching with terminal
works
- !2885 tests/desktop-app-info: Use unique temporary paths for action files
- !2889 Run tests with G_ENABLE_DIAGNOSTIC=1
- !2892 tests/unix-streams: Free the cancelled error on cancelled cancellable
- !2894 Disable cast checks in plain builds
- !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 greturn() check in g_date_time_format_iso8601
- !2933 Fix style warning in gvariant.c
- !2936 Fix symbol visibility macros on Windows
- !2937 gicon: Add introspection for to_tokens / from_tokens vfunc's
- !2938 gdatetime: add NULL guard in g_date_time_new_now()
- !2939 gobject/tests/param: Add unit test for handling invalid NULL param
spec
- !2942 gbookmarkfile: Add copy function and define it as boxed type for
introspection
- !2945 gmessages: Add missing trailing newline in fallback log handler
- !2946 tests: Check the return value of fwrite() in a test
- !2947 gspawn: avoid race due to retry with EINTR on close()
- !2948 ghash: document g_hash_table_steal_extended() behavior for sets
- !2949 doc: Correctly annotate g_async_queue_push()
- !2951 meson: Don't explicitly disable mixed declarations and statements
- !2952 Various win32 test fixes
- !2953 build: Post-release version bump to 2.75.0
- !2954 tools: Fix code style warnings in gen-visibility-macros.py
- !2955 gtimezone: Reject weird /etc/localtime configurations
- !2956 gstrfuncs: Fix a compiler warning in g_strerror()
- !2957 Fix include order of glib-visibility.h
- !2959 Some leaks fixes
- !2961 tests: Remove an unnecessary sleep from desktop-app-info test
- !2963 tests: Fix race condition on cancellation in unix-streams test
- !2964 gstdio: fail assertion in g_close() for invalid file descriptor
(EBADF)
- !2965 ghash: comment g_hash_table_steal_extended() about not destroying
key/value
- !2967 Fix build when G_DISABLE_CAST_CHECKS is defined to empty string
- !2968 tests: Fix minor race in desktop-app-info terminals test
- !2969 tests/desktop-app-info: Make sure scripts writes to the right end of
the pipe
- !2970 Fix GIOModule regression from !2959
- !2972 tests: Temporarily disable desktop-app-info terminal test on FreeBSD
- !2976 Fix a couple of minor Coverity issues
- !2977 gstdio: Temporarily disable g_close() warning on macOS
- !2978 A couple of test fixes on OS X
- !2979 gtask: Use unsigned bit-field struct values to avoid warnings
- !2981 meson: Define G_OS_DARWIN when compiling under OSX or iOS
- !2984 tests: Fix code style in Python files to satisfy black and flake8
- !2985 ci: Do not store docs artifacts
- !2987 meson, ci: Support tests that can fail under certain conditions
- !2990 gio/tests/g-file-info: don't assume million-in-one events don't happen
- !2991 glib, gmodule, gobject: Add generated headers to the lib dependency
- !2993 Add G_TYPE_FLAG_DEPRECATED
- !2997 docs: Mention platform-specific predefined macros
- !2999 Soft-deprecate G_VA_COPY in favour of va_copy
- !3000 docs: Stop claiming that gsize is wide enough to hold a pointer
- !3001 Improve documentation and static assertions around g(s)size,
g(u)intptr
- !3002 docs: Soft-deprecate G_STRUCT_OFFSET in favour of offsetof
- !3003 docs: Soft-deprecate types that are just aliases for a standard C type
- !3004 build: Mark the g-file-info test as succeeding
- !3005 Fix sandbox escape in GDBusServer
- !3007 gstdio: Add g_clear_fd() and g_autofd
- !3008 gio/gdesktopappinfo: Free the wrapped argv array on launch failure
- !3009 gtimezone: Fix symlink checks on relative link targets
- !3011 meson: Cleanup and fix include files paths, using base path without
repetitions
- !3012 meson: Handle various build system FIXME's
- !3013 tests: Fix few new clang warnings
- !3015 test/meson: Add tests dependencies on built programs, libraries and
modules
- !3018 Install gversionmacros.h in the right place
- !3019 ci: Fix check for missing install tag
- !3021 Add kgx (gnome console) to known terminals lists
- !3022 Fix coding style issue in .gitlab-ci/check-missing-install-tag.py
- !3023 ci: Move shellcheck/black/flake8 checks to a new CI job which can fail
- !3025 fuzzing: Add a new fuzz test for g_variant_byteswap()
- !3027 gstdio: Preserve errno in g_autofd, document async-signal safety
- !3033 glib/gmacros: Always define NULL as nullptr in C++11 and newer
- !3034 ci: Open issues when scheduled pipelines fail
- !3035 portal: Fix broken header guard
- !3037 gio: Create a sandbox checking function
- !3040 gspawn: Provide less brute force fdwalk implementation on macOS
- !3043 glib-mkenums: feature use of previous symbols in evaluation
- !3044 docs: Convert GVariant Specification to reStructuredText
- !3048 docs: Add licensing/copyright data to GVariant specification and fix
various formatting issues
- !3049 Add a SPDX LicenseRef for the license historically used for tests
- !3050 tests: Shorten internal codegen test timeout
- !3051 ci: Add a CI check for REUSE-compliant licensing/copyright headers
- !3055 fileutils test: Use no-op invalid-parameter handler when exercising
EBADF
- !3058 ci: Build with -Wnonnull
- !3060 fuzzing: Add a fuzz test for g_utf8_validate()
- !3062 tests: Fix a small leak in the GVariant tests and some minor
documentation typos
- #16 gspawn.c file descriptor handling (Emmanuel Fleury, Ray Strode)
Translation updates:
- Abkhazian (Nart Tlisha)
- Dutch (Nathan Follens)
- Friulian (Fabio Tomat)
- German (Christian Kirbach)
- Hebrew (Yaron Shahrabani)
- Kazakh (Baurzhan Muftakhidinov)
- Occitan (post 1500) (Quentin PAGÈS)
- Abkhazian (Nart Tlisha)