glib 2.39.0



About GLib
==========

GLib is the low-level core library that forms the basis for projects
such as GTK+ and GNOME. It provides data structure handling for C,
portability wrappers, and interfaces for such runtime functionality as
an event loop, threads, dynamic loading, and an object system.

News
====

 * prep for the 2.40 series (version macros, docs index, etc.)

 * GNotification

   - new API for sending persistent notifications via the desktop shell

   - notifications persist when the application has quit and clicking on
     them can restart the application with an action (via
     DBusActivatable)

 * GSubprocess

   - new API for launching subprocesses

   - nice GIO integration like async functions, cancellability, etc.

   - a convenient communicate() API inspired by the same API in Python

   - related: the gspawn API now has a CLOEXEC flag for the created
     pipes for stdin/stdout/stderr

 * New gapplication(1) commandline tool

   - intended to be used with DBusActivatable apps

   - can be used for launching apps, opening files, invoking application
     actions and listing apps and actions

   - bash tab completion is supported

 * GDesktopAppInfo changes:

   - g_file_get_path() can implicitly cause a FUSE mount so don't call
     it until we know we need it (for an app that doesn't support URIs)

   - don't crash when trying to load from a keyfile with
     DBusActivatable=true

   - remove some dead code, refactor the search path handling a bit and
     do a large-scale whitespace cleanup (prep work for the pending
     desktop file index)

 * File monitors

   - fix broken handling of mount point monitoring

   - remove some strange use of GObject::constructor() from the base
     class and inotify backend

   - fix GFileMonitor to work in the non-default main context even when
     the main context is not running (or is blocked)

   - add internal private API for easily creating a file monitor in the
     GLib worker thread

 * GSettings

   - g_settings_list_children: only list viable schemas.  This fixes a
     longstanding issue where 'gsettings list-recursively' will crash
     when there are invalid schemas installed

   - don't accept invalid paths on g_settings_new_with_path, etc.

 * GIO

   - GFile now has a thumbnail::is-valid attribute to check if the
     thumbnail in thumbnail::path needs to be regenerated

   - GDBusProxy now has a flag to control autostarting of services at
     construction time

   - for GSeekable, properly introduce the concept of "resizable" vs.
     "fixed-sized" streams in the docs, explaining the expected
     semantics of the interface in each case

   - fix some cases in GMemoryOutputStream that were violating the above
     expectations (which may cause a slight API incompatibility)

   - clean up GCredentials code and add support for Hurd and Solaris

   - improve splicing by using different codepaths for the case where we
     have real _read_async() and _write_async() implementations on the
     stream vs. the case where they are internally emulated (via
     dispatching the sync variant of the call in a thread)

 * GKeyFile

   - fix a leak in g_key_file_get_(u)int64 when we fail to parse the
     value as an integer

   - add long-requested API g_key_file_save_to_file()

 * Portability improvements

   - avoid using O_DIRECTORY on platforms that don't have it

   - be careful about systems that define SOCK_CLOEXEC but don't
     actually support it (like Hurd)

   - only use SA_RESTART if it exists

 * Other small API changes/additions

   - a pair of functions to support matching strings for the type of
     search functionality that you'd expect to have with things like
     GtkSearchBar.  This will also be used by the desktop file index.

   - g_str_is_ascii() with obvious purpose

   - g_test_expect_message() no longer appears to allow you to catch
     G_LOG_ERROR messages

 * GMainContext/GSource

   - fix handling of overflowing the 'next source id' counter

   - g_source_remove() will not throw a critical in the case that you
     try to remove a non-existent source.  We expect that there is some
     code in the wild that will fall afoul of this new critical but
     considering that we now reuse source IDs, this code is already
     broken and should probably be fixed.

   - simplify handling of the 'current dispatching source' to not
     require use of a linked list

 * GObject

   - the long-broken (and leaky) pattern of destroying a just-allocated
     object from inside of a custom GObject::constructor is now
     officially completely illegal and will abort the program

 * Unicode: update to 6.3.0

 * Bug fixes

   - g_file_copy() now falls back to pathname queryinfo.  This should
     clear up the bugs with copying from some GVfs backends (afp,
     gphoto, archive, at least).

   - fix an out-of-bounds read in the xdgmime code

   - fix a typo in the /org/freedesktop/DBus path on the object manager
     client

   - skip emitting path_namespace='/' in match rules in order to
     workaround a bug in the D-Bus daemon and fix our own implementation
     (which shared exactly the same bug)

   - fix crashes on precondition violations for GParamSpec constructors

   - many other small fixups (see bug list)

  * Many documentation improvements

Bugs fixed:
 309224 g_key_file_save_to_file missing
 583321 QNX: no SA_RESTART
 661576 fix handling of constructors that destroy half-constructed objects
 672102 GSubprocess class
 684842 Seeks on GMemoryOutputStream don't have opaque semantics
 688492 Add a notification API
 691581 g_output_stream_real_splice_async doesn't use overriden read/write_async functions
 702516 gfileutils: Make -Werror=format-nonliteral happy
 704218 New gapplication(1) tool
 704593 g_setenv: on some systems (BSD, OSX…), setting a variable to NULL crashes the system
 704882 GLocalDirectoryMonitorClass mount_notify field is useless
 704887 file monitoring improvements
 705029 Support for Solaris credentials
 705688 g_settings_list_children: only list viable schemas
 706254 Afp backend cannot copy files
 707887 Attempting to create GObject Property with underscore prefix segfaults
 708042 gapplication: don't rely on cmdline being finalized immediately
 708265 add support for GNU/Hurd in GLib D-Bus Library
 708266 fix error code checks when SOCK_CLOEXEC is defined but not supported
 708529 xdgmime: valgrind warns about invalid reads
 708677 incorrect object path 'deskop' used in gio/gdbusobjectmanagerclient.c
 708714 Typo in docs of GLIB_VERSION_2_40 macro.
 708753 gdesktopappinfo: Call g_file_get_path() on demand
 708793 glib build fails with clang < 3.1: error: expected ';' after top level declarator
 708828 GDBusProxy: add the ability to call methods on non autostarted proxies
 708860 glib-2.38.0 doesn't build on Solaris 10
 708972 gnetworking.h in tarball screws up out-of-source builds
 709113 [PATCH] Main loop dispatch path has needless linked list
 709227 Update to unicode 6.3.0
 709301 goutputstream: Add clear warning about short writes to _write_bytes() and async version
 709326 GDesktopAppInfo crashes creating a DBusActivatable app without a filename
 709440 Fix overloading of "source" and "target" terminology in GBinding
 709615 Cannot use g_test_expect_message with g_error
 709753 Add helpers for string matches when using GtkSearchBar-like widget
 709898 Expose thumbnail validity in GFile attributes
 709966 Remove outdated documentation
 709994 Minor fix for HACKERS doc to direct hackers to proper help file
 709995 Obsolete makefile rules
 710002 G_MAXUINT may be assigned as duplicate source id
 710313 Memory leak in g_key_file_get_(u)int64 with invalid integer values
 710345 [Patches] Fix some redundant-decls
 710496 g_locale_to/from_utf8() doc updated.
 710625 g_file_error_from_errno: Remove unneeded breaks
 710666 Frame clock related bug fixes
 710724 gmain: Warn when g_source_remove() fails
 710726 Work around D-Bus bug with path_namespace='/' match rules

ChangeLog
=========
https://download.gnome.org/sources/glib/2.39/glib-2.39.0.changes  (43.8K)

Download
========
https://download.gnome.org/sources/glib/2.39/glib-2.39.0.tar.xz (6.45M)
  sha256sum: 4fb3e3e5288dc8ed55cb7581f9b1b715886b4a30bedb19a9b96b09528e412ab6



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]