summaryrefslogtreecommitdiff
path: root/glib/README.in
diff options
context:
space:
mode:
Diffstat (limited to 'glib/README.in')
-rw-r--r--glib/README.in288
1 files changed, 288 insertions, 0 deletions
diff --git a/glib/README.in b/glib/README.in
new file mode 100644
index 0000000..03fa8c3
--- /dev/null
+++ b/glib/README.in
@@ -0,0 +1,288 @@
+General Information
+===================
+
+This is GLib version @GLIB_VERSION@. 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.
+
+The official download locations are:
+ ftp://ftp.gtk.org/pub/glib
+ http://download.gnome.org/sources/glib
+
+The official web site is:
+ http://www.gtk.org/
+
+Information about mailing lists can be found at
+ http://www.gtk.org/mailing-lists.html
+
+To subscribe, send mail to gtk-list-request@gnome.org
+with the subject "subscribe".
+
+Installation
+============
+
+See the file 'INSTALL'
+
+How to report bugs
+==================
+
+Bugs should be reported to the GNOME bug tracking system.
+(http://bugzilla.gnome.org, product glib.) You will need
+to create an account for yourself.
+
+In the bug report please include:
+
+* Information about your system. For instance:
+
+ - What operating system and version
+ - For Linux, what version of the C library
+
+ And anything else you think is relevant.
+
+* How to reproduce the bug.
+
+ If you can reproduce it with one of the test programs that are built
+ in the tests/ subdirectory, that will be most convenient. Otherwise,
+ please include a short test program that exhibits the behavior.
+ As a last resort, you can also provide a pointer to a larger piece
+ of software that can be downloaded.
+
+* If the bug was a crash, the exact text that was printed out
+ when the crash occured.
+
+* Further information such as stack traces may be useful, but
+ is not necessary.
+
+Patches
+=======
+
+Patches should also be submitted to bugzilla.gnome.org. If the
+patch fixes an existing bug, add the patch as an attachment
+to that bug report.
+
+Otherwise, enter a new bug report that describes the patch,
+and attach the patch to that bug report.
+
+Patches should be in unified diff form. (The -up option to GNU diff.)
+
+Notes about GLib 2.32
+=====================
+
+* It is no longer necessary to use g_thread_init() or to link against
+ libgthread. libglib is now always thread-enabled. Custom thread
+ system implementations are no longer supported (including errorcheck
+ mutexes).
+
+* The thread and synchronisation APIs have been updated.
+ GMutex and GCond can be statically allocated without explicit
+ initialisation, as can new types GRWLock and GRecMutex. The
+ GStatic_______ variants of these types have been deprecated. GPrivate
+ can also be statically allocated and has a nicer API (deprecating
+ GStaticPrivate). Finally, g_thread_create() has been replaced with a
+ substantially simplified g_thread_new().
+
+* The g_once_init_enter()/_leave() functions have been replaced with
+ macros that allow for a pointer to any gsize-sized object, not just a
+ gsize*. The assertions to ensure that a pointer to a correctly-sized
+ object is being used will not work with generic pointers (ie: (void*)
+ and (gpointer) casts) which would have worked with the old version.
+
+* It is now mandatory to include glib.h instead of individual headers.
+
+* The -uninstalled variants of the pkg-config files have been dropped.
+
+* For a long time, gobject-2.0.pc mistakenly declared a public
+ dependency on gthread-2.0.pc (when the dependency should have been
+ private). This means that programs got away with calling
+ g_thread_init() without explicitly listing gthread-2.0.pc among their
+ dependencies.
+
+ gthread has now been removed as a gobject dependency, which will cause
+ such programs to break.
+
+ The fix for this problem is either to declare an explicit dependency
+ on gthread-2.0.pc (if you care about compatibility with older GLib
+ versions) or to stop calling g_thread_init().
+
+* g_debug() output is no longer enabled by default. It can be enabled
+ on a per-domain basis with the G_MESSAGES_DEBUG environment variable
+ like
+ G_MESSAGES_DEBUG=domain1,domain2
+ or
+ G_MESSAGES_DEBUG=all
+
+Notes about GLib 2.30
+=====================
+
+* GObject includes a generic marshaller, g_cclosure_marshal_generic.
+ To use it, simply specify NULL as the marshaller in g_signal_new().
+ The generic marshaller is implemented with libffi, and consequently
+ GObject depends on libffi now.
+
+Notes about GLib 2.28
+=====================
+
+* The GApplication API has changed compared to the version that was
+ included in the 2.25 development snapshots. Existing users will need
+ adjustments.
+
+Notes about GLib 2.26
+=====================
+
+* Nothing noteworthy.
+
+Notes about GLib 2.24
+=====================
+
+* It is now allowed to call g_thread_init(NULL) multiple times, and
+ to call glib functions before g_thread_init(NULL) is called
+ (although the later is mainly a change in docs as this worked before
+ too). See the GThread reference documentation for the details.
+
+* GObject now links to GThread and threads are enabled automatically
+ when g_type_init() is called.
+
+* GObject no longer allows to call g_object_set() on construct-only properties
+ while an object is being initialized. If this behavior is needed, setting a
+ custom constructor that just chains up will re-enable this functionality.
+
+* GMappedFile on an empty file now returns NULL for the contents instead of
+ returning an empty string. The documentation specifically states that code
+ may not rely on nul-termination here so any breakage caused by this change
+ is a bug in application code.
+
+Notes about GLib 2.22
+=====================
+
+* Repeated calls to g_simple_async_result_set_op_res_gpointer used
+ to leak the data. This has been fixed to always call the provided
+ destroy notify.
+
+Notes about GLib 2.20
+=====================
+
+* The functions for launching applications (e.g. g_app_info_launch() +
+ friends) now passes a FUSE file:// URI if possible (requires gvfs
+ with the FUSE daemon to be running and operational). With gvfs 2.26,
+ FUSE file:// URIs will be mapped back to gio URIs in the GFile
+ constructors. The intent of this change is to better integrate
+ POSIX-only applications, see bug #528670 for the rationale. The
+ only user-visible change is when an application needs to examine an
+ URI passed to it (e.g. as a positional parameter). Instead of
+ looking at the given URI, the application will now need to look at
+ the result of g_file_get_uri() after having constructed a GFile
+ object with the given URI.
+
+Notes about GLib 2.18
+=====================
+
+* The recommended way of using GLib has always been to only include the
+ toplevel headers glib.h, glib-object.h and gio.h. GLib enforces this by
+ generating an error when individual headers are directly included.
+ To help with the transition, the enforcement is not turned on by
+ default for GLib headers (it is turned on for GObject and GIO).
+ To turn it on, define the preprocessor symbol G_DISABLE_SINGLE_INCLUDES.
+
+Notes about GLib 2.16
+=====================
+
+* GLib now includes GIO, which adds optional dependencies against libattr
+ and libselinux for extended attribute and SELinux support. Use
+ --disable-xattr and --disable-selinux to build without these.
+
+Notes about GLib 2.10
+=====================
+
+* The functions g_snprintf() and g_vsnprintf() have been removed from
+ the gprintf.h header, since they are already declared in glib.h. This
+ doesn't break documented use of gprintf.h, but people have been known
+ to include gprintf.h without including glib.h.
+
+* The Unicode support has been updated to Unicode 4.1. This adds several
+ new members to the GUnicodeBreakType enumeration.
+
+* The support for Solaris threads has been retired. Solaris has provided
+ POSIX threads for long enough now to have them available on every
+ Solaris platform.
+
+* 'make check' has been changed to validate translations by calling
+ msgfmt with the -c option. As a result, it may fail on systems with
+ older gettext implementations (GNU gettext < 0.14.1, or Solaris gettext).
+ 'make check' will also fail on systems where the C compiler does not
+ support ELF visibility attributes.
+
+* The GMemChunk API has been deprecated in favour of a new 'slice
+ allocator'. See the g_slice documentation for more details.
+
+* A new type, GInitiallyUnowned, has been introduced, which is
+ intended to serve as a common implementation of the 'floating reference'
+ concept that is e.g. used by GtkObject. Note that changing the
+ inheritance hierarchy of a type can cause problems for language
+ bindings and other code which needs to work closely with the type
+ system. Therefore, switching to GInitiallyUnowned should be done
+ carefully. g_object_compat_control() has been added to GLib 2.8.5
+ to help with the transition.
+
+Notes about GLib 2.6.0
+======================
+
+* GLib 2.6 introduces the concept of 'GLib filename encoding', which is the
+ on-disk encoding on Unix, but UTF-8 on Windows. All GLib functions
+ returning or accepting pathnames have been changed to expect
+ filenames in this encoding, and the common POSIX functions dealing
+ with pathnames have been wrapped. These wrappers are declared in the
+ header <glib/gstdio.h> which must be included explicitly; it is not
+ included through <glib.h>.
+
+ On current (NT-based) Windows versions, where the on-disk file names
+ are Unicode, these wrappers use the wide-character API in the C
+ library. Thus applications can handle file names containing any
+ Unicode characters through GLib's own API and its POSIX wrappers,
+ not just file names restricted to characters in the system codepage.
+
+ To keep binary compatibility with applications compiled against
+ older versions of GLib, the Windows DLL still provides entry points
+ with the old semantics using the old names, and applications
+ compiled against GLib 2.6 will actually use new names for the
+ functions. This is transparent to the programmer.
+
+ When compiling against GLib 2.6, applications intended to be
+ portable to Windows must take the UTF-8 file name encoding into
+ consideration, and use the gstdio wrappers to access files whose
+ names have been constructed from strings returned from GLib.
+
+* Likewise, g_get_user_name() and g_get_real_name() have been changed
+ to return UTF-8 on Windows, while keeping the old semantics for
+ applications compiled against older versions of GLib.
+
+* The GLib uses an '_' prefix to indicate private symbols that
+ must not be used by applications. On some platforms, symbols beginning
+ with prefixes such as _g will be exported from the library, on others not.
+ In no case can applications use these private symbols. In addition to that,
+ GLib+ 2.6 makes several symbols private which were not in any installed
+ header files and were never intended to be exported.
+
+* To reduce code size and improve efficiency, GLib, when compiled
+ with the GNU toolchain, has separate internal and external entry
+ points for exported functions. The internal names, which begin with
+ IA__, may be seen when debugging a GLib program.
+
+* On Windows, GLib no longer opens a console window when printing
+ warning messages if stdout or stderr are invalid, as they are in
+ "Windows subsystem" (GUI) applications. Simply redirect stdout or
+ stderr if you need to see them.
+
+* The child watch functionality tends to reveal a bug in many
+ thread implementations (in particular the older LinuxThreads
+ implementation on Linux) where it's not possible to call waitpid()
+ for a child created in a different thread. For this reason, for
+ maximum portability, you should structure your code to fork all
+ child processes that you want to wait for from the main thread.
+
+* A problem was recently discovered with g_signal_connect_object();
+ it doesn't actually disconnect the signal handler once the object being
+ connected to dies, just disables it. See the API docs for the function
+ for further details and the correct workaround that will continue to
+ work with future versions of GLib.