Updates
[platform/upstream/glib.git] / NEWS
diff --git a/NEWS b/NEWS
index b577304..2dc2d17 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,553 @@
+Overview of changes from GLib 2.31.2 to 2.31.4
+==============================================
+
+* Menu support has been added to GApplication. Menus
+  are exported on the bus, alongside the actions that are
+  already there.
+
+* Clean up Requires in pc files. Linking against GIO no
+  longer drags in gmodule. This may require dependency
+  fixes here and there.
+
+* Introduce GBytes, a data type for immutable, fixed-size
+  byte sequences. This makes the pre-existing GBuffer
+  API available outside GLib
+
+* GDBusInterfaceSkeleton can now be exported on multiple
+  connections
+
+* Bugs fixed:
+ 600161 Do not use static GTypeInfo and GInterfaceInfo
+ 640077 GFileMonitor: Always send CHANGES_DONE_HINT after a move...
+ 641720 Misleading definition for local_command_line() in GApplic...
+ 648516 Little comment error and 2 useless lines of code
+ 651997 Dummy backend for gapplication
+ 652560 Test for g_ascii_strtod is failing
+ 662208 failure to initialize a GInitable should be considered...
+ 662718 GDBusInterfaceSkeleton should be able to export on multi...
+ 663291 GBytes: Immutable, refcounted sequence of bytes
+ 664406 Need context for a proper translation
+ 664455 Build fixes for GLib GIT master (2.31.x)
+ 664558 GDBusWorker.frozen has a value > 1 in a gboolean
+ 664559 sys/wait.h not available on windows
+ 664617 gdbus segfault error 4 in libgio-2.0.so.0.3102.0
+ 664635 GMemory{Out,In}putStream _async functions break sub-class...
+ 664809 Add command line option to gtester to allow skipping tests
+ 665067 cryptic assertion failure if nonsensical flag combinations...
+ 665184 Check ref. count before reffing/unreffing
+ 665298 Add 'Requires.private: libpcre' to glib-2.0.pc
+ 665391 update documentation around mainloops
+ 665607 ./configure is there for fiddling with cross-compile enviro...
+ 665634 g_dbus_node_info_new_for_xml() errors on unknown attributes...
+ 665685 Add a #define for the max length of a Unicode decomposition
+ 665733 GDBusConnection holds lock while calling destroynotify
+
+* Translation updates:
+ Norwegian bokmål
+ Spanish
+
+
+Overview of changes from GLib 2.31.0 to 2.31.2
+==============================================
+
+* Monotonic time is now properly supported on Windows
+
+* glib-mkenums: fix @ENUMPREFIX@ with /*< underscore_name=... >*/
+
+* EXPERIMENTAL: introduce new GSettingsSchema and GSettingsSchemaSource
+  APIs for the convenience of plugin system authors and those who wish
+  to introspect the contents of schemas.  This API may change.
+
+* Improve the performance of GObject property notifies.
+
+* GDBus:
+ - fix a race when unowning a name immediately after owning it
+ - thread safety improvements on GDBusConnection
+ - fixes for exit-on-close functionality
+
+* Deprecations:
+ - add G_SIGNAL_DEPRECATED
+ - don't use G_DISABLE_DEPRECATED masking for functions anymore
+
+* docs
+ - tmpl/ is finally dead for glib
+
+* GIO:
+ - GInetAddressMask: new type for internet address range matching
+ - various GIO file and stream fixes
+ - improvements to attribute and fileinfo handling
+
+Overview of changes from GLib 2.29/2.30 to 2.31.0
+=================================================
+
+This release contains a huge number of changes (500 commits worth).  The
+list below attempts to summarise, but not every change is listed.
+
+* Major changes to threading and synchronisation
+ - threading is now always enabled in GLib
+ - support for custom thread implementations (including our own internal
+   support for errorcheck mutexes) has been removed
+ - a whole lot of dead code (to deal with the non-threaded case) has
+   been ripped out.  This includes the racy path of GMainContext that
+   caused deadlocks with respect to child process exits in
+   single-threaded programs (such as gtester).
+ - libgthread is now an empty shell and g_thread_init() is no longer
+   required (and has been deprecated)
+ - GMutex and GCond can now be statically allocated without explicit
+   initialisation.  Dynamic allocation for these types is deprecated.
+ - new types GRecMutex and GRWLock can also be statically allocated
+   without explicit initialisation.
+ - GPrivate can now be statically allocated and has an improved API.
+   Dynamic allocation of GPrivate is deprecated.
+ - GStaticMutex, GStaticRecMutex, GStaticRwLock, GStaticPrivate are
+   deprecated.
+ - GCond now uses monotonic time internally and a new API takes
+   monotonic time for timed waits, deprecating the wallclock API
+ - removal of the insane macro indirection used in the previous
+   implementation of threading and synchronisation APIs
+ - use SRWLock and CONDITION_VARIABLE APIs when available on Windows
+   (Vista and later) and emulate them on XP
+ - leaks of G(Static)Private-allocated data on some cases of thread exit
+   have been fixed
+ - simplified new thread creation API with the old API deprecated.  The
+   concept of joinability has disappeared (all threads are joinable) as
+   have priority levels, 'bound'ness (ie: kernel vs. userspace threads)
+   and ability to manipulate the stack size.
+ - GThread is now a refcounted type
+ - other implementation details changed
+
+* Move headers for some deprecated functionality to a separate
+  deprecated/ directory.
+
+* New support for attribute-based deprecations to issue compiler
+  warnings instead of breaking the build and/or giving warnings about
+  implicit declarations (and possibly miscompiling).
+
+* GCache has been deprecated (after its last use was removed from our
+  platform over a year ago).
+
+* It is no longer possible to include individual headers (like
+  "ghash.h") -- you must #include <glib.h>.
+
+* The misguided experiment of allowing the program to stumble along with
+  missing GSettings schemas is now over -- the abort is back.
+
+* Clarify that fork() is not valid while using GMainContext.  This is
+  because the internal resources of the GMainContext end up being shared
+  by both processes.  We had an assert here but it was breaking existing
+  (valid) use cases as well, so it has been removed for now.
+
+* GApplication
+  - add ::shutdown signal as logical dual to ::startup
+  - don't use a GMainLoop: iterate the GMainContext directly (improves
+    quit logic)
+
+* Several portability fixes for Windows, OpenBSD, Solaris
+
+* Add new GValue API to specifically deal in signed chars (in case the
+  platform defines 'char' as unsigned)
+
+* some new API to mitigate the problems associated with calling setenv()
+  in a multi-threaded program
+
+* Use CLOCK_MONOTONIC unconditionally if the libc has support at compile
+  time (ie: stop checking for kernel support at runtime).
+
+* pkg-config files:
+  - drop -uninstalled variants
+  - remove gobject dependency on gthread
+
+* New macro G_ATOMIC_LOCK_FREE is defined if the atomic operations are
+  implemented without use of a mutex.  Cleaned up atomic-related
+  compilation issues with mingw compilers on win32 systems.
+
+* SOCKS proxy and resolver improvements
+
+* Fix the spelling of G_IO_FLAG_IS_WRITABLE (was WRITEABLE) and
+  introduce a macro for backwards compatibility.
+
+* GDBus:
+  - many code generation updates and improvements
+  - some race condition fixes, including testcase hangs
+
+* GVariant:
+  - new g_variant_new_from_fixed_array() API
+  - substantial docs improvements/clarifications
+
+* GKeyFile is now refcounted and boxed
+
+* mount monitoring is now based on /proc/mounts (where available)
+  instead of mtab
+
+* new macros G_SOURCE_CONTINUE and G_SOURCE_REMOVE for returning from
+  GSourceFunc (so you don't have to remember what TRUE and FALSE mean)
+
+* use xlocale functions where available to avoid too much heavy lifting
+  in functions like g_ascii_strtod()
+
+* GMappedFile can now be created from an fd
+
+* error message strings grammar/i18n fixes
+
+* many docs updates
+
+* Partial list of bugs closed:
+ 70598  Unify GStaticMutex and GMutex.
+ 320888 optimization for g_main_context_wakeup
+ 398418 GChildWatch race condition?
+ 527214 g_timer_elapsed() returns random values
+ 580505 add a way to set/get name for a thread
+ 583511 race condition means g_main_loop_quit() does not work
+ 590808 GKeyFile should have a refcount and a boxed type in GObject
+ 592715 Document that g_str_hash() and g_int_hash() are not NULL safe
+ 631413 Add macros for GSourceFunc return values
+ 632049 not immediately clear what g_variant_get_fixed_array expects
+ 640212 "Error stating file" is not a friendly message
+ 640293 Use xlocale functions to implement g_ascii_strtod()
+ 640975 Check that error exists before trying to set it
+ 643934 GApplication lacking a logical dual for the ::startup signal
+ 651268 assertion failed in GDBus worker thread
+ 653987 g_key_file_get_integer cannot interpret trailing spaces
+ 654412 Documentation for g_variant_get_child_value unclear
+ 654563 info capplet: Failed to calculate disk space
+ 655366 missing GSettings schemas lead to obscure crashes
+ 656621 g_spawn_*() calls executables in current directory
+ 656679 [gi] Add two annotations to gio
+ 657992 Add glib__private__() API to share between glib,gio
+ 658188 _set_as_last_used_for_type generates a broken mimeapps.list
+ 658206 gsocks5proxy.c has invalid gettext use
+ 658207 glib-compile-schemas says "can not"
+ 658558 simpleaction: Fix documentation of :enabled
+ 658683 clean up charset/language threading issues
+ 658692 add introspection annotations to g_time_val_from_iso8601()
+ 658715 Duplicite strings
+ 658769 Invalid reuse of GError in GThreadedResolver
+ 658806 sign error in string hash implementation
+ 658976 gdbus-codegen's C namespace option needs to support Ugly_Case
+ 659070 gdbus-codegen generated code segfaults when property changes
+ 659082 gdbus-codegen: Single letter namespaces get dropped from names
+ 659212 GMappedFile should fail on non-regular files
+ 659324 _SPLICE_CLOSE_TARGET doesn't mark the output stream as closed
+ 659423 Use adaptive mutexes when available
+ 659427 Move deprecated code to a separate directory
+ 659646 gdbus-codegen produce code that warnings at build
+ 659690 Possible build warning in code generated by gdbus-codegen
+ 659699 property name collision when generating code for "Connection"
+ 659754 Add API to GMappedFile that allows to pass FD
+ 659838 incorrect types in introspection for g_object_bind_property
+ 659866 pthread_rwlock_t requires defined __USE_UNIX98
+ 659870 gvalue: Fix signedness of g_value_get_char()
+ 659889 glib-2.29.92/gio-2.0.pc.in has a wrong line.
+ 659916 GObject size of 64K is not actively enforced
+ 659920 Missing setter for read/write property 'closed' of GIOStream
+ 659923 Add g_variant_new_fixed_array() function
+ 660013 Remove old g_atomic configure cruft
+ 660096 glib/rwlock tests failure (tests asserted)
+ 660130 Possible loss of user data when updating mimeapps.list
+ 660147 tracker causes g_critical in "gsettings list-recursively"
+ 660413 Make G_ASSERT_STATIC work with clang
+ 660498 Generated test code fails when the codegen changes
+ 660511 Use /proc/mounts for monitoring mounts, not /etc/mtab
+ 660536 Expose options for /etc/fstab entries
+ 660635 Deprecate g_thread_foreach
+ 660637 Pending dbus method calls not canceled on connection loss
+ 660739 kill off g_{mutex,cond}_{new,free}()
+ 660740 make GThread more standard
+ 660741 g_cond_timedwait is a disaster
+ 660743 macro wrappers for g_once_init_enter/leave
+ 660744 finish killing g_thread_init()
+ 660745 GPrivate leaks on Windows
+ 660791 [gio] Improve doc for g_file_make_directory_with_parents()
+ 660843 asyncqueue-test is broken
+ 660849 Remove cruft from g_strerror and g_strsignal
+ 660886 GDBusProxy: don't drop/complain about unknown props/signals
+ 660887 g_slice_set_config() is broken
+ 660994 Add g_main_context_ref_thread_default()
+ 661255 gio: enable test_peer regression test for OpenBSD
+ 661257 giomodules.c uses ":" instead of G_SEARCHPATH_SEPARATOR_S
+ 661318 tests use pthread without appropriate compiler/linker flags
+ 661421 Applications fail to initialize on GNU Hurd - commit
+ 661438 Implement G_GNUC_DEPRECATED/G_GNUC_DEPRECATED_FOR on Visual C++
+ 661711 Sorting keys for GDrive, GVolume and GMount instances
+ 661763 desktop-app-info: Add support for X-GNOME-Keywords
+ 661896 /gdbus/connection/life-cycle is racy
+ 661914 Gstreamer/Totem locks up
+ 662100 regression: g_dbus_connection_close() triggers exit-on-close logic
+
+* Translations updates:
+ Belarusian 
+ Brazilian Portuguese
+ British English 
+ Bulgarian 
+ Catalan 
+ Catalan (Valencian)
+ Czech 
+ Danish 
+ Esperanto
+ French 
+ Gujarati
+ Hebrew 
+ Hungarian 
+ Italian 
+ Japanese
+ Lithuanian
+ Norwegian bokmål
+ Oriya
+ Polish 
+ Russian 
+ Serbian
+ Simplified Chinese
+ Slovak 
+ Slovenian
+ Spanish 
+ Tamil
+ Vietnamese
+
+Overview of changes from GLib 2.29.18 to 2.29.90
+================================================
+
+* 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
+
+* networking and other fixes for Solaris
+ - we no longer support symbolic port names (ie: from /etc/services)
+ - check if -lsocket is needed
+ - fix g_socket_details_from_fd()
+ - avoid getmntinfo
+ - fix some harmless warnings
+
+* GDateTime improvements:
+ - generally improved standards compliance (with C99)
+ - support C99-specified format strings: %g, %G, %V, %c, %C, %w
+ - consult the locale for the preferred 12-hour time format (%r)
+ - drop support for non-standard %N and broken %W
+ - better support for formatting non-POSIX (eg: Arabic) numerals
+ - locale-related test case fixups, and fix some leaks
+
+* GTlsInteraction: add interaction method invocation guarantees
+
+* gdbus-codegen: post-process all interfaces when parsing >1 file
+
+* make GMainLoop, GMainContext and GSource boxed types
+
+* fix a race condition in the first use of g_get_monotonic_time()
+
+* lots gtk-doc cleanups
+
+* better intltool compatibility when generating pot file
+
+* avoid GCC-specific compiler options when not using GCC
+
+* Translation updates:
+ Belarusian
+ Brazilian Portuguese
+ Canadian English
+ Galician
+ Indonesian
+ Korean
+ Lithuanian
+ Norwegian bokmål
+ Portuguese
+ Spanish
+ Swedish
+
+Overview of changes from GLib 2.29.16 to 2.29.18
+================================================
+
+* GDateTime is now respecting LC_TIME when formatting
+
+* GTimeZoneMonitor has been removed again
+
+* A new API for wallclock functionality has been added:
+  g_date_time_source_new(). This API is still experimental
+  and may be changed or removed before 2.30.
+
+* Bugs fixed:
+ 628904 Add credential support for FreeBSD and fix a socket issue
+ 650763 gdbus-codegen is broken with python 2.7
+ 655129 GDateTime could provide api for implementing wall clocks
+ 656341 gtlsconsoleinteraction.c uses getpass() which isn't avail...
+ 656387 GCancellable can be used concurrently
+ 656443 Make GTlsInteraction ask_password cancellable
+ 656675 void functions should not return in glib 2.29.16
+ 656772 g_variant_compare for uint64 incorrect
+ 656914 Load GIO_EXTRA_MODULES first, and ignore duplicates
+ 657083 The header langinfo.h is not available on all systems
+ 657084 gfileutils: fix docs/annotations for temp file methods
+ 657138 Some files missing in POTFILES.in
+ 657206 GInputStream leaked in g_file_icon_load_async()
+ 657243 g_cancellable_set_error_if_cancelled() documentation
+ 657274 Use detected PYTHON variable as shebang for gdbus-codegen
+ 657336 Speling fixes for glib found with codespell
+ 657452 plural forms needed
+ 657454 Translation comment needed
+ 657540 Print out file:// URL to coverage HTML report after building
+ 657593 g_test_trap_fork calls close(-1)
+ 646082 Addresses from GSocket should be normalized before returning
+ 657517 fix gio/tests/gdbus-peer on bsd
+
+* Translation updates:
+ Brazilian Portuguese
+ Galician
+ Norwegian bokmål
+ Punjabi
+ Russian
+ Serbian
+ Spanish
+ Swedish
+ Traditional Chinese
+ Uighur
+
+
+Overview of changes from GLib 2.29.14 to 2.29.16
+================================================
+
+* GTlsDatabase: an abstract class that provides support
+  or certificate and key lookup. An implementation will
+  be provided in glib-networking
+
+* GHmac: Support or HMAC digests
+
+* Misc new API:
+ - g_ptr_array_add_full: creates a GPtrArray with
+   a preallocated size and a destroy function
+ - g_desktop_app_info_get_show_in: checks if a GDesktopAppInfo
+   should be shown in a given desktop environment
+ - g_mkdtemp, g_mkdtemp_full, g_dir_make_tmp: create
+   temporary directories
+
+* Unify thread wakeup implementations of GMainContext
+  and GCancellable, and use eventfd for it when available
+
+* Show mounts in $XDG_USER_DIR in addition to /media and $HOME
+
+* Bugs fixed:
+ 636572 GTlsCertificateDB
+ 644601 Some tests need a running dbus session
+ 652284 deal with small key lengths
+ 652827 glib-2.29.8 no longer builds with mingw.org's toolchain
+ 653063 PEM parser fails parsing private key when put first
+ 654078 Fail to static linking with Glib library
+ 654450 New functions: g_ptr_array_new_full()
+ 654793 Add G_VALUE_INIT
+ 655044 GDesktopAppInfo: Add g_desktop_app_info_get_show_in()
+ 655148 gdbusconnection is broken when compiling with mingw
+ 655241 glocalfile.c no longer compiles with MinGW GCC
+ 655598 g_cancellable_get_fd: silently return -1 for NULL cancellable
+ 655664 gdbus should not abort if no dbus session is available
+ 655769 Use ZLIB_CFLAGS when compiling gio
+ 656031 Improve GVariant annotations
+ 656048 glib-codegen requires Python >= 2.5
+ 656151 configure test logic inverted, doesn't match comments
+ 656152 GCC only syntax used, yet other compilers allowed by configure.
+ 656162 allow use of lcov 1.9 for coverage
+ 656282 GDBusProxy: uninitialized local variables can be freed
+ 656283 Failing tls connection cause assertion
+ 118563 Add g_mkdtemp in the spirit of g_mkstemp
+ 636405 Add g_return_if_fail() to g_settings_bind_with_mapping()
+ 656039 race condition between GDBusProxy signals and public API
+ 656492 g_io_channel_new_file failure (open(2) behavior wrt POSIX)
+
+* Translation updates:
+ Bulgarian
+ Esperanto
+ French
+ Galician
+ German
+ Hebrew
+ Indonesian
+ Italian
+ Norwegian bokmål
+ Russian
+ Spanish
+ Swedish
+
+
+Overview of changes from GLib 2.29.12 to 2.29.14
+================================================
+
+* Unicode improvements
+ - add g_unicode_script_{to,from}_iso15924
+ - add G_UNICODE_SPACING_MARK define
+ - more normalisation improvements
+ - stop using deprecated g_unicode_canonical_decomposition()
+
+* GParamSpec:
+ - mark the 'name' field as 'const' and add a comment to the header to
+   help avoid future problems caused by bad hacks
+
+* Merge some (modified) patches from Debian:
+ - 03_blacklist-directories.patch
+   - add some blacklisted mount directories
+ - 60_wait-longer-for-threads-to-die.patch
+   - sleep longer in a test case, if needed to avoid failing
+
+* Units policy change: prefer use of SI units
+ - deprecate g_format_size_for_display, add g_format_size(_full)
+
+* GSettings: don't call g_error() when the schema is missing
+
+* GVariant support for arrays of object paths:
+ - new g_variant_{new,get,dup}_objv API
+ - support for g_variant_{new,get} '^ao' and '^a&o' similar to '^as'
+
+* GDBus:
+ - use new improved array-of-objects support and pass 'ao' as char**
+   instead of GVariant*
+ - improve handling of 'h' type (Unix file descriptor index)
+
+* GIO:
+ - fix compilation without USE_STATFS and USE_STATVFS
+
+* Documentation fixes
+
+* Bugs fixed:
+ 622921 Migrate from dbus-glib to glib's GDBus
+ 648271 Add g_unicode_script_to_iso15924()
+ 654948 Stop using deprecated g_unicode_canonical_decomposition()
+ 654988 g_atomic_int_add should document behaviour change
+ 655025 #define G_UNICODE_SPACING_MARK G_UNICODE_COMBINING_MARK
+ 655076 normalization misses some Full_Composition_Exclusion=True. 
+
+* Translations updated:
+ Spanish
+
+Overview of changes from GLib 2.29.10 to 2.29.12
+================================================
+
+* Add new API to do Unicode (de-)composition in atomic steps,
+  for use in Harfbuzz.
+
+* Bugs fixed:
+ 615895 (indirectly) support non-NULL-terminated regexes in GRegex
+ 617949 glib trunk fails to compile on Solaris w/ Studio 12...
+ 620423 Document the possibility to unset attributes
+ 627974 Floating reference headaches
+ 644687 Not finding cross-links in current doc set
+ 649246 g_output_stream_splice() cannot be used on 32-bit machines...
+ 653841 a helper script to build glib from git master on win32
+ 653935 g_slist_free_full/g_list_free_full iterates twice in the list
+ 654017 tests: fix glib_translations_work() in gsettings unit test
+ 654085 Don't needlessly use "echo -e" when creating .def files
+ 654195 Add g_unichar_compose() and g_unichar_decompose()
+ 654232 GCancellable eventfd problems
+ 654394 suspicious use of floating references in GDBusInterfaceSkeleton
+ 654536 GSettings: lift key name length restriction to 64
+ 654627 GParamSpec: intern property names
+ 654651 Better g_unicode_canonical_decomposition()
+ 654917 Make g_cclosure_marshal_generic the default signal handler
+
+* Translation updates:
+ Belarusian
+ Finnish
+ Korean
+ Latvian
+ Lithuanian
+ Norwegian bokmål
+ Turkish
+
+
 Overview of changes from GLib 2.29.8 to 2.29.10
 ===============================================