GLib 2.24.0 released

GLib 2.22 is a stable release adding an incremental improvement in functionality over GLib 2.20 while maintaining binary and source compatibility. Major changes include:

  • The requirements for g_thread_init() have been relaxed slightly, it can be called multiple times, and does not have to be the first call. GObject now links to GThread and threads are enabled automatically when g_type_init() is called. Thread-safety issuesvwith boxed types in GObject have been fixed. The -pthread flag has been added to all gmodule .pc files, because it is not generally permissible to load modules that are linked against libpthread if the program has not been compiled with threading support.
  • GType now has a G_DEFINE_INTERFACE convenience macro
  • GIO supports lazy loading of GIO modules, and there is a new gio-querymodule utility that goes along with this. Packagers will need to adapt to this.
  • GIO uses splice(2) to transfer data between file descriptors without extraneous copies.
  • The GVariant variant datatype has been added.

GLib 2.21.3 unstable release

This is a development release leading up to GLib 2.22.

Overview of Changes from GLib 2.21.2

  • GMappedFile is refcounted now
  • Mainloop: It is now possible to set per-thread default contexts, with g_main_context_push_thread_default.
  • glib-mkenums supports a @basename@ substitution, in addition to @filename
    • GIO:

    • Vfs implementations can support storing of per-file metadata.
    • GCancellable can now be subclassed.
    • Unmount and eject methods now optionally allow interaction, via variants that take a GMountOperation object.

11 bugs fixed in this release!

See the original announcement for more info and downloads.