Imported Upstream version 2.67.2
[platform/upstream/glib.git] / NEWS
diff --git a/NEWS b/NEWS
index 0f0a6a2..d0b8258 100644 (file)
--- a/NEWS
+++ b/NEWS
-Overview of changes in GLib 2.66.7
+Overview of changes in GLib 2.67.2
 ==================================
 
-* Fix various regressions caused by rushed security fixes in 2.66.6
-  (work by Simon McVittie and Jan Alexander Steffens) (!1933, !1943)
+* Add `gio launch` command to execute programs (work by Frederic Martinsons) (#54)
 
-* Fix a silent integer truncation when calling `g_byte_array_new_take()` for
-  byte arrays bigger than `G_MAXUINT` (work by Krzesimir Nowak) (!1944)
+* Fix unused parameter warnings in code generated by `gdbus-codegen` (work by Frederic Martinsons) (#1105)
 
-* Disallow using currently-undefined D-Bus connection or server flags to prevent
-  forward-compatibility problems with new security-sensitive flags likely to be
-  released in GLib 2.68 (work by Simon McVittie) (!1945)
+* Officially deprecate `to-pixdata` option for `glib-compile-resources`, in favour
+  of simply embedding more modern image formats in linked-in `GResource` files (#1281)
 
-* Bugs fixed:
- - !1933 [2.66] Fix regressions in 2.66.6 where negative gssize indicates strlen()
- - !1943 Backport !1941 “gkeyfilesettingsbackend: Fix basename handling when group is unset” to glib-2-66
- - !1944 Backport !1942 “gbytearray: Do not accept too large byte arrays” to glib-2-66
- - !1945 Backport !1934 “gdbus: Reject attempts to set future connection or server flags” to glib-2-66
+* 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)
 
-Overview of changes in GLib 2.66.6
-==================================
+* No longer read environment variables for GIO module locations when running as setuid (#2168)
 
-* Fix various instances within GLib where `g_memdup()` was vulnerable to a
-  silent integer truncation and heap overflow problem (discovered by
-  Kevin Backhouse, work by Philip Withnall) (#2319)
+* More progress on fixing compiler warnings (work by Emmanuel Fleury) (!1773 and others)
 
-* Bugs fixed:
- - !1927 Backport !1926 “Add g_memdup2()” to glib-2-66
+* `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)
 
-Overview of changes in GLib 2.66.5
-==================================
+* Add `-Dtests` meson configure option for disabling tests entirely (work by Ole André Vadla Ravnås) (!1850)
 
-* Fix some issues with handling over-long (invalid) input when parsing for `GDate` (!1824)
+* 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
 
-* Don’t load GIO modules or parse other GIO environment variables when `AT_SECURE`
-  is set (i.e. in a setuid/setgid/setcap process). GIO has always been
-  documented as not being safe to use in privileged processes, but people persist
-  in using it unsafely, so these changes should harden things against potential
-  attacks at least a little. Unfortunately they break a couple of projects which
-  were relying on reading `DBUS_SESSION_BUS_ADDRESS`, so GIO continues to read
-  that for setgid/setcap (but not setuid) processes. This loophole will be closed
-  in GLib 2.70 (see issue #2316), which should give modules 6 months to change
-  their behaviour. (Work by Simon McVittie and Philip Withnall) (#2168, #2305)
+* Translation updates:
+ - Catalan
+ - Galician
+ - German
+ - Lithuanian
+ - Romanian
+ - Spanish
+ - Ukrainian
 
-* Fix `g_spawn()` searching `PATH` when it wasn’t meant to (work by
-  Simon McVittie and Thomas Haller) (!1913)
 
-* Bugs fixed:
- - #2168 giomodule: Loads GIO modules even if setuid, etc.
- - #2210 g_private_replace ordering issue
- - #2305 GIO security hardening causing gnome-keyring to regress when session bus is provided by dbus-launch (dbus-x11)
- - !1820 gthread: Destroy value after replacing it in g_private_replace()
- - !1824 Backport !1821 “gdate: Limit length of dates which can be parsed as valid” to glib-2-66
- - !1831 gdatetime.c: Fix MSVC builds for lack of NAN items
- - !1836 Backport !1827 “Windows: fix FD_READ condition flag still set on recoverable UDP socket errors.” to glib-2-66
- - !1864 Backport !1862 “gio: Ignore various environment variables when running as setuid” to glib-2-66
- - !1872 Backport !1868 “gdesktopappinfo: Fix validation of XDG_CURRENT_DESKTOP” to glib-2-66
- - !1913 Backport !1902 “spawn: Don't set a search path if we don't want to search PATH” to glib-2-66
- - !1922 Backport !1920 “Resolve GDBus regressions in setcap/setgid programs” to glib-2-66
-
-
-Overview of changes in GLib 2.66.4
+Overview of changes in GLib 2.67.1
 ==================================
 
-* Fix some issues in parsing floating point seconds in `GDateTime` (!1791, !1797)
+* Deprecate `g_time_zone_new()` in favour of `g_time_zone_new_identifier()`,
+  which makes error checking easier (#553)
 
-* Fix some issues in handling invalid UTF-8 when parsing for `GDate` (!1788)
+* 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)
 
-* Bugs fixed:
- - #2264 GPtrArray might call qsort() with NULL data
- - !1774 Backport !1771 “macos: fix frexpl checks in cross-compilation” to glib-2-66
- - !1790 Backport !1788 “gdate: Validate input as UTF-8 before parsing” to glib-2-66
- - !1793 Backport !1791 “gdatetime: Disallow NAN as a number of seconds in a GDateTime” to glib-2-66
- - !1799 Backport !1794 “gio-tool-info: Prevent criticals if mount options are not available” to glib-2-66
- - !1805 Backport !1797 “gdatetime: Improve ISO 8601 parsing to avoid floating point checks” to glib-2-66
+* 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)
 
-Overview of changes in GLib 2.66.3
-==================================
+* Changes to the behaviour of the `G_URI_FLAGS_SCHEME_NORMALIZE` scheme
+  normalization flag in `GUri` (work by Carlos Garcia Campos) (#2257, !1716)
 
-* Fix awkward bug with `GPollFD` handling in some situations (work by Claudio
-  Saavedra and Eugene M) (#1592)
+* 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 sending FDs attached to very large D-Bus messages (work by Simon McVittie
-  and Giovanni Campagna) (#2074)
+* 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
- - !1720 Backport !1718 “gtrace: Add G_GNUC_PRINTF annotation” to glib-2-66
- - !1721 Backport !1713 “gmain: g_main_context_check() can skip updating polled FD sources” to glib-2-66
- - !1723 Backport !1711 “Fix race in socketclient-slow test” to glib-2-66
- - !1727 Backport !1725 “gdbus: Cope with sending fds in a message that takes multiple writes” to glib-2-66
- - !1736 Backport !1734 “glocalfileinfo: Use a single timeout source at a time for hidden file cache” to glib-2-66
+ - #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.66.2
+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 restore support for changing the timezone
-  when `/etc/localtime/` changes (work by António Fernandes, Sebastian Keller) (#2204)
+* 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)
 
-* Bugs fixed:
- - #2203 fstatat is available only on macOS 10.10+
- - #2224 top bar time is incorrect, timezone map in control center is broken
- - #2225 Setting G_SLICE makes Windows programs hang since 2.66
- - !1682 Backport !1680 “guri: Fix UTF-8 validation when escaping URI components” to glib-2-66
- - !1685 Backport !1684 “glocalfileinfo: Fix use of fstatat() on macOS < 10.10” to glib-2-66
- - !1689 uri: add missing (not)nullable annotations
- - !1693 Backport !1691 “gmain: Fix possible locking issue in source unref” to glib-2-66
- - !1694 Backport !1692 “gsignal: Plug g_signal_connect_object leak” to glib-2-66
- - !1700 Backport !1661 “Lookup fallback time zones in the cache to improve performance” to glib-2-66
- - !1702 Backport !1698 “gslice: Inline win32 implementation of g_getenv() to avoid deadlock” to glib-2-66
- - !1705 Backport !1683 “Fix the 6-days-until-the-end-of-the-month bug” to glib-2-66
- - !1710 Backport !1706 “Add various missing nullable annotations” to glib-2-66
+* Security fix for incorrect scope/zone ID parsing in URIs (!1669)
 
-* Translation updates:
- - Chinese (Taiwan)
- - Portuguese
- - Slovak
+* 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)
 
-Overview of changes in GLib 2.66.1
-==================================
+* Fix definition of `G_MSVC_SYMBOL_PREFIX` for ARM (work by Wolfgang Stöggl) (!1187)
 
-* A performance problem where timezones were reloaded from disk every time a
-  `GTimeZone` was created has been fixed (#2204), but this means that changes to
-  `/etc/localtime` will not take effect until a process restarts; future changes
-  in a subsequent 2.66.x release will improve this
+* Add `GStrvBuilder` convenience API for building `NULL`-terminated string arrays (work by Robert Ancell) (!1417)
 
-* Security fix for incorrect scope/zone ID parsing in URIs (!1669)
+* 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