more NEWS
[platform/upstream/glib.git] / NEWS
diff --git a/NEWS b/NEWS
index 53ffb49..5b19a59 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,543 @@
+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
+===============================================
+
+* New features:
+ - g_desktop_app_info_get_nodisplay: a function that is required
+   to port gnome-menus to GDesktopAppInfo
+ - g_hash_Table_iter_replace: new function to replace a value
+   while iterating over a hash table
+ - g_utf8_substring: convenience API to extract substrings from
+   UTF-8 strings
+ - g_action_group_add_entries: convenience API for creating lots
+   of actions quickly
+ - Use eventfd instead of pipes for waking up main contexts and
+   for cancellation when available
+ - GMatchInfo is now a refcounted boxed type
+
+* API changes in GAction:
+ - the 'set_state' entry in the GActionInterface vtable has been
+   renamed to 'change_state
+ - g_action_set_state has been renamed to g_action_change_state
+ - the 'state' property has been changed to read-only
+ - GSimpleAction can no longer be subclassed
+
+* Bug fixes
+ 647796 g_variant_new_variant is not marked as constructor
+ 652072 gmain: make use of signalfd()
+ 652168 Crosscompiling Fails if build<=2.24 and host >2.24
+ 652750 make dist fails
+ 652758 GDataInputStream: Clarify g_data_input_stream_read_line docs...
+ 652822 Add a g_hash_table_iter_replace
+ 652897 tiny docs clarification for g_utf8_to_ucs4_fast
+ 653140 gmain: use Linux eventfd() for main context wake up
+ 653429 drop AM_MAINTAINER_MODE or enable it by default
+ 653484 GAsyncCallbacks should default to allow-none
+        Add missing fundamental types to the generic marshaller
+
+* Translation updates
+ Belarusian
+ Galician
+ Russian
+
+Overview of changes from GLib 2.29.6 to 2.29.8
+==============================================
+
+* Bug fixes
+ 646608 export_symbols variable for gio dynamic library is wrong
+ 646635 Fix introspection of GLib
+ 647930 Documentation: GDataInputStream _read_upto() version
+ 651745 Switch to _ prefixing rather than G_GNUC_INTERNAL
+ 651920 Improve qsort_r detection
+ 651959 gbitlock: "asm goto" is not available in gcc < 4.5
+ 651998 gdbus-codegen: Use relative Python imports
+ 652000 Fix for gatomic.c on Windows/MSVC
+ 652002 Proposal to clean up gvaluetransform.c for MSVC
+ 652025 g_dbus_connection_register_object: error is not set...
+ 652081 Typos in a GBinding warning message
+ 652197 Improper handling of double values in GDBusMessage
+        Fix a deadlock in gobject finalization
+
+* Translation updates:
+ Czech
+ Galician
+ German
+ Hebrew
+ Norwegian bokmål
+ Spanish
+ Uighur
+
+
 Overview of changes from GLib 2.29.4 to 2.29.6
 ==============================================