+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
================================================