diff -Nru --exclude configure --exclude po --exclude reference glib2.0-2.16.4/ChangeLog glib2.0-2.16.6/ChangeLog --- glib2.0-2.16.4/ChangeLog 2008-07-02 03:47:45.000000000 +0200 +++ glib2.0-2.16.6/ChangeLog 2008-09-12 21:22:58.000000000 +0200 @@ -1,4 +1,73 @@ +2008-09-12 Matthias Clasen + + * === Released 2.16.6 === + +2008-09-11 Matthias Clasen + + * NEWS: Updates + +2008-09-11 Matthias Clasen + + Bug 548321 – is not included in gi18n-lib.h + + * glib/gi18n.h: + * glib/gi18n-lib.h: Include string.h, since strlen is used in + the macros. Pointed out by Ignacio Casal Quinteiro + +2008-09-11 Matthias Clasen + + Merge from trunk + + * configure.in: Fix detection of struct statfs fields. + Accept lesser mmaps. + Change libselinux detection to not link libglib against it. + +2008-08-31 Emmanuele Bassi + + * glib/gbookmarkfile.c: + (parse_bookmark_element), (parse_application_element), + (parse_mime_type_element), (parse_icon_element): Relax the + attributes checking of the GBookmarkFile parser for the + attributes that the desktop bookmark file specification + defines and controls. (See bug 550096) + +2008-07-19 Matthias Clasen + + * configure.in: Bump version + + * === Released 2.16.5 === + +2008-07-19 Matthias Clasen + + * NEWS: Updates + +2008-07-19 Matthias Clasen + + Merge from trunk: + + Bug 528317 – GRegex does not allow recursion limit + + * glib/pcre/Makefile.am: Set a sane default recursion limit + of 8192 instead of 1000000. + Patch by Mart Raudsepp. + +2008-07-19 Matthias Clasen + + Merge from trunk: + + * configure.in: Workaround AC_C_BIGENDIAN breakage in autoconf 2.61. + Patch by Tomas Mraz. + +2008-07-11 Tor Lillqvist + + Merge from trunk: + + * glib-zip.in: Include also lib/gio-2.0.{lib,def} in the developer + zipfile. + 2008-07-01 Matthias Clasen + + * configure.in: Bump version * === Released 2.16.4 === diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/config.h.in /tmp/53mnjcHeo0/glib2.0-2.16.6/config.h.in --- glib2.0-2.16.4/config.h.in 2008-07-02 03:31:15.000000000 +0200 +++ glib2.0-2.16.6/config.h.in 2008-09-12 20:01:26.000000000 +0200 @@ -191,9 +191,6 @@ /* Define to 1 if you have the `getmntinfo' function. */ #undef HAVE_GETMNTINFO -/* Define to 1 if you have the `getpagesize' function. */ -#undef HAVE_GETPAGESIZE - /* Define to 1 if you have the `getpwuid' function. */ #undef HAVE_GETPWUID @@ -273,7 +270,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H -/* Define to 1 if you have a working `mmap' system call. */ +/* Define to 1 if you have the `mmap' function. */ #undef HAVE_MMAP /* Define to 1 if you have the header file. */ diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/config.h.win32 /tmp/53mnjcHeo0/glib2.0-2.16.6/config.h.win32 --- glib2.0-2.16.4/config.h.win32 2008-07-02 03:49:01.000000000 +0200 +++ glib2.0-2.16.6/config.h.win32 2008-09-13 00:17:54.000000000 +0200 @@ -29,13 +29,13 @@ #define GETTEXT_PACKAGE "glib20" /* Define to the GLIB binary age */ -#define GLIB_BINARY_AGE 1604 +#define GLIB_BINARY_AGE 1606 /* Byte contents of gmutex */ /* #undef GLIB_BYTE_CONTENTS_GMUTEX */ /* Define to the GLIB interface age */ -#define GLIB_INTERFACE_AGE 4 +#define GLIB_INTERFACE_AGE 6 /* Define the location where the catalogs will be installed */ #define GLIB_LOCALE_DIR "NONE/share/locale" @@ -44,7 +44,7 @@ #define GLIB_MAJOR_VERSION 2 /* Define to the GLIB micro version */ -#define GLIB_MICRO_VERSION 4 +#define GLIB_MICRO_VERSION 6 /* Define to the GLIB minor version */ #define GLIB_MINOR_VERSION 16 @@ -632,13 +632,13 @@ #define PACKAGE_NAME "glib" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "glib 2.16.4" +#define PACKAGE_STRING "glib 2.16.6" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "glib" /* Define to the version of this package. */ -#define PACKAGE_VERSION "2.16.4" +#define PACKAGE_VERSION "2.16.6" /* Maximum POSIX RT priority */ /* #undef POSIX_MAX_PRIORITY */ diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/configure.in /tmp/53mnjcHeo0/glib2.0-2.16.6/configure.in --- glib2.0-2.16.4/configure.in 2008-07-02 00:30:18.000000000 +0200 +++ glib2.0-2.16.6/configure.in 2008-09-12 19:55:53.000000000 +0200 @@ -23,8 +23,8 @@ # m4_define([glib_major_version], [2]) m4_define([glib_minor_version], [16]) -m4_define([glib_micro_version], [4]) -m4_define([glib_interface_age], [4]) +m4_define([glib_micro_version], [6]) +m4_define([glib_interface_age], [6]) m4_define([glib_binary_age], [m4_eval(100 * glib_minor_version + glib_micro_version)]) m4_define([glib_version], @@ -554,8 +554,8 @@ # Checks for library functions. AC_FUNC_VPRINTF -AC_FUNC_MMAP AC_FUNC_ALLOCA +AC_CHECK_FUNCS(mmap) AC_CHECK_FUNCS(posix_memalign) AC_CHECK_FUNCS(memalign) AC_CHECK_FUNCS(valloc) @@ -831,6 +831,19 @@ # check for bytesex stuff AC_C_BIGENDIAN +if test x$ac_cv_c_bigendian = xuniversal ; then +AC_TRY_COMPILE([#include ], [#if __BYTE_ORDER == __BIG_ENDIAN +#else +#error Not a big endian. +#endif], + ac_cv_c_bigendian=yes + ,AC_TRY_COMPILE([#include ], [#if __BYTE_ORDER == __LITTLE_ENDIAN +#else +#error Not a little endian. +#endif], + ac_cv_c_bigendian=no + ,AC_MSG_WARN([Could not determine endianness.]))) +fi # check for header files AC_CHECK_HEADERS([dirent.h float.h limits.h pwd.h grp.h sys/param.h sys/poll.h sys/resource.h]) @@ -844,6 +857,9 @@ AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_blocks, struct statfs.f_fstypename],,, [#include #include #include +#ifdef HAVE_SYS_STATFS_H +#include +#endif #ifdef HAVE_SYS_PARAM_H #include #endif @@ -1489,7 +1505,7 @@ AC_CHECK_LIB(selinux, is_selinux_enabled, [AC_CHECK_HEADERS(selinux/selinux.h, - [AC_SEARCH_LIBS(lgetfilecon_raw, selinux, + [AC_CHECK_LIB(selinux, lgetfilecon_raw, [AC_DEFINE(HAVE_SELINUX, 1, [Define to 1 if libselinux is available]) SELINUX_LIBS="-lselinux" msg_selinux=yes]) diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/debian/changelog /tmp/53mnjcHeo0/glib2.0-2.16.6/debian/changelog --- glib2.0-2.16.4/debian/changelog 2008-09-17 15:43:36.000000000 +0200 +++ glib2.0-2.16.6/debian/changelog 2008-09-17 15:43:38.000000000 +0200 @@ -1,3 +1,38 @@ +glib2.0 (2.16.6-0ubuntu1) hardy-proposed; urgency=low + + * New stable updates (lp: #271329): + - GBookmarkFile: Make the parser less strict about unknown attributes + - Bugs fixed: + 547832 gtk+-2.12.11 fails to build - AC_PROG_MMAP too strict, + and unnecessary + 548321 is not included in gi18n-lib.h + 535124 umask 002 not being applied for new directories, + new files get the correct umask + 544140 fam-helper 64-bit issue + 545157 wrong/no list of "open with" applications for .cc and .cpp files + (lp: #239692) + 545457 gdmsetup crashed with SIGSEGV in g_unix_mount_guess_should_display + (lp: #252942) + 546079 leak in xdgmime + 546017 Don't copy attributes when copying a symlink + 547080 g_file_copy leaks expected errors + 542156 zfs mount in home directory shown on nautilus desktop + 551149 xdgmime mem leak + 550647 synchronous pipe I/O when reading mount reply + - Work around AC_C_BIGENDIAN breakage in autoconf 2.61 + - Bugs fixed: + 528317 GRegex does not allow recursion limit + 540616 mem leak in filechooser button + 543040 async reading on dummy file will crash on GIO_USE_VFS=local + 543504 crash in Epiphany Web Browser: Opening local file + * debian/patches/04_big-endian.patch, + debian/patches/99_autoconf.patch: + - the change is in the new version + * debian/patches/92_upstream_bugzilla_correct_umask_use.patch: + - the change is in the new version + + -- Sebastien Bacher Wed, 17 Sep 2008 13:54:46 +0200 + glib2.0 (2.16.4-0ubuntu3) hardy-proposed; urgency=low * debian/patches/92_upstream_bugzilla_correct_umask_use.patch: diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/debian/patches/04_big-endian.patch /tmp/53mnjcHeo0/glib2.0-2.16.6/debian/patches/04_big-endian.patch --- glib2.0-2.16.4/debian/patches/04_big-endian.patch 2008-09-17 15:43:36.000000000 +0200 +++ glib2.0-2.16.6/debian/patches/04_big-endian.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,44 +0,0 @@ ---- glib-2.16.4/configure.in.old 2008-07-14 14:39:51.000000000 +0200 -+++ glib-2.16.4/configure.in 2008-07-14 14:40:33.000000000 +0200 -@@ -831,6 +831,19 @@ - - # check for bytesex stuff - AC_C_BIGENDIAN -+if test x$ac_cv_c_bigendian = xuniversal ; then -+AC_TRY_COMPILE([#include ], [#if __BYTE_ORDER == __BIG_ENDIAN -+#else -+#error Not a big endian. -+#endif], -+ ac_cv_c_bigendian=yes -+ ,AC_TRY_COMPILE([#include ], [#if __BYTE_ORDER == __LITTLE_ENDIAN -+#else -+#error Not a little endian. -+#endif], -+ ac_cv_c_bigendian=no -+ ,AC_MSG_WARN([Could not determine endianness.]))) -+fi - - # check for header files - AC_CHECK_HEADERS([dirent.h float.h limits.h pwd.h grp.h sys/param.h sys/poll.h sys/resource.h]) -@@ -3137,18 +3150,15 @@ - g_have_gnuc_visibility=$g_have_gnuc_visibility - g_have_sunstudio_visibility=$g_have_sunstudio_visibility - --case xyes in --x$ac_cv_c_bigendian) -+if test x$ac_cv_c_bigendian = xyes; then - g_byte_order=G_BIG_ENDIAN - g_bs_native=BE - g_bs_alien=LE -- ;; --*) -+else - g_byte_order=G_LITTLE_ENDIAN - g_bs_native=LE - g_bs_alien=BE -- ;; --esac -+fi - - g_pollin=$glib_cv_value_POLLIN - g_pollout=$glib_cv_value_POLLOUT diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/debian/patches/92_upstream_bugzilla_correct_umask_use.patch /tmp/53mnjcHeo0/glib2.0-2.16.6/debian/patches/92_upstream_bugzilla_correct_umask_use.patch --- glib2.0-2.16.4/debian/patches/92_upstream_bugzilla_correct_umask_use.patch 2008-09-17 15:43:36.000000000 +0200 +++ glib2.0-2.16.6/debian/patches/92_upstream_bugzilla_correct_umask_use.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,13 +0,0 @@ -Index: glib2.0-2.16.4/gio/glocalfile.c -=================================================================== ---- glib2.0-2.16.4.orig/gio/glocalfile.c 2008-08-08 10:23:32.000000000 +0200 -+++ glib2.0-2.16.4/gio/glocalfile.c 2008-08-08 10:24:02.000000000 +0200 -@@ -1985,7 +1985,7 @@ - { - GLocalFile *local = G_LOCAL_FILE (file); - -- if (g_mkdir (local->filename, 0755) == -1) -+ if (g_mkdir (local->filename, 0777) == -1) - { - int errsv = errno; - diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/debian/patches/99_autoconf.patch /tmp/53mnjcHeo0/glib2.0-2.16.6/debian/patches/99_autoconf.patch --- glib2.0-2.16.4/debian/patches/99_autoconf.patch 2008-09-17 15:43:36.000000000 +0200 +++ glib2.0-2.16.6/debian/patches/99_autoconf.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,145 +0,0 @@ ---- glib-2.16.4/configure.old 2008-07-14 14:42:13.000000000 +0200 -+++ glib-2.16.4/configure 2008-07-14 14:42:43.000000000 +0200 -@@ -31836,6 +31836,100 @@ - { (exit 1); exit 1; }; } ;; - esac - -+if test x$ac_cv_c_bigendian = xuniversal ; then -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+int -+main () -+{ -+#if __BYTE_ORDER == __BIG_ENDIAN -+#else -+#error Not a big endian. -+#endif -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { -+ test -z "$ac_c_werror_flag" || -+ test ! -s conftest.err -+ } && test -s conftest.$ac_objext; then -+ ac_cv_c_bigendian=yes -+ -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+int -+main () -+{ -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+#else -+#error Not a little endian. -+#endif -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { -+ test -z "$ac_c_werror_flag" || -+ test ! -s conftest.err -+ } && test -s conftest.$ac_objext; then -+ ac_cv_c_bigendian=no -+ -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ { $as_echo "$as_me:$LINENO: WARNING: Could not determine endianness." >&5 -+$as_echo "$as_me: WARNING: Could not determine endianness." >&2;} -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi - - # check for header files - -@@ -47144,18 +47238,15 @@ - g_have_gnuc_visibility=$g_have_gnuc_visibility - g_have_sunstudio_visibility=$g_have_sunstudio_visibility - --case xyes in --x$ac_cv_c_bigendian) -+if test x$ac_cv_c_bigendian = xyes; then - g_byte_order=G_BIG_ENDIAN - g_bs_native=BE - g_bs_alien=LE -- ;; --*) -+else - g_byte_order=G_LITTLE_ENDIAN - g_bs_native=LE - g_bs_alien=BE -- ;; --esac -+fi - - g_pollin=$glib_cv_value_POLLIN - g_pollout=$glib_cv_value_POLLOUT -@@ -47568,9 +47659,9 @@ - } - split(mac1, mac2, "(") #) - macro = mac2[1] -- prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". -+ prefix = substr(line, 1, index(line, defundef) - 1) - print prefix "define", macro P[macro] D[macro] - next - } else { -@@ -47578,7 +47669,7 @@ - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { -- print "/*", prefix defundef, macro, "*/" -+ print "/*", line, "*/" - next - } - } diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/debian/patches/series /tmp/53mnjcHeo0/glib2.0-2.16.6/debian/patches/series --- glib2.0-2.16.4/debian/patches/series 2008-09-17 15:43:36.000000000 +0200 +++ glib2.0-2.16.6/debian/patches/series 2008-09-17 15:43:38.000000000 +0200 @@ -1,9 +1,6 @@ 01_gettext-desktopfiles.patch 02_usr_share_gnome_applications.patch 03_blacklist-directories.patch -04_big-endian.patch 60_wait-longer-for-threads-to-die.patch -99_autoconf.patch 80_from_bugzilla_nautilus_no_timestamp_change.patch 91_from_svn_fix_ncpfs_free_space.patch -92_upstream_bugzilla_correct_umask_use.patch diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/ChangeLog /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/ChangeLog --- glib2.0-2.16.4/gio/ChangeLog 2008-07-02 03:48:03.000000000 +0200 +++ glib2.0-2.16.6/gio/ChangeLog 2008-09-12 21:23:02.000000000 +0200 @@ -1,3 +1,144 @@ +2008-09-12 Matthias Clasen + + * === Released 2.16.6 === + +2008-09-11 Matthias Clasen + + Merge from trunk + + * gunixmount.c (eject_unmount_read_error), (eject_unmount_do): + * gunixvolume.c (eject_mount_read_error), (eject_mount_do): + Use non-blocking pipe for mount helper I/O. Fixes #550647. + Patch by Christian Neumair + +2008-09-11 Matthias Clasen + + Merge from trunk + + Bug 551149 – xdgmime mem leak + + * xdgmime/xdgmime.c (xdg_mime_init_from_directory): Plug + a memory leak. Patch by Christian Persch + +2008-09-11 Matthias Clasen + + Merge from trunk + + * gunixmounts.c: Add zfs to ignore_fs array in guess_system_internal: + Fix for #542156. Patch by Padraig O'Briain + +2008-09-11 Matthias Clasen + + Merge from trunk + + Bug 547080 – g_file_copy leaks expected errors + + * gfile.c: (g_file_copy): Clear G_IO_ERROR_NOT_SUPPORTED + errors before trying the next fallback routine. Patch by + Felix Riemann + +2008-09-11 Matthias Clasen + + Merge from trunk + + Bug 546017 – Don't copy attributes when copying a symlink + + * gfile.c (g_file_copy_attributes): Specify + G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS in the call to + g_file_set_attributes_from_info. Patch by Christian Kellner + +2008-09-11 Matthias Clasen + + Merge from trunk + + Bug 546079 – leak in xdgmime + + * xdgmime/xdgmime.c (xdg_mime_shutdown): Fix memory leak. + Patch by Carlos Garcia Campos + +2008-09-11 Matthias Clasen + + Merge from trunk + + Bug 545457 – gdmsetup crashed with SIGSEGV in + g_unix_mount_guess_should_display() + + * gunixvolumemonitor.c (get_mount_for_mount_path): Don't + crash if no mount is found. + +2008-09-11 Matthias Clasen + + Merge from trunk + + Bug 545157 – wrong/no list of "open with" applications for .cc and + .cpp files + + * gdesktopappinfo.c (get_all_desktop_entries_for_mime_type): + Collect all ancestors, not just direct parents. Pointed + out by Bastien Nocera + +2008-09-11 Matthias Clasen + + Merge from trunk + + Bug 544140 - fam-helper 64-bit issue? + + * fam/fam-helper.c: Added missing include so compiler doesn't complain. + Patch by Priit Laes + +2008-08-08 Loïc Minier + + Bug 535124 – umask 002 not being applied for new directories, new + files get the correct umask + + * glocalfile.c: (g_local_file_make_directory): Use 0777 instead of + 0755 as umask + +2008-07-19 Matthias Clasen + + * === Released 2.16.5 === + +2008-07-19 Matthias Clasen + + * gfile.c: Make it compile. + +2008-07-19 Matthias Clasen + + Merge from trunk: + + 543504 – crash in Epiphany Web Browser: Opening local file + + * gappinfo.c: + * gasyncresult.c: + * gdesktopappinfo.c: + * gdrive.c: + * gfile.c: + * gicon.c: + * gloadableicon.c: + * gmount.c: + * gseekable.c: + * gvolume.c: Register types thread-safely. + Patch by Christian Persch + +2008-07-19 Matthias Clasen + + Merge from trunk: + + Bug 543040 – async reading on dummy file will crash on + GIO_USE_VFS=local + + * gfile.c (open_read_async_thread): Cope with read_fn being + NULL. Reported by Lin Ma. + +2008-07-19 Matthias Clasen + + Merge from trunk: + + Bug 540616 – mem leak in filechooser button + + * gunixvolumemonitor.c (get_mount_for_mount_path): Free + the mount entry. Reported by Chrisitan Persch + 2008-07-01 Matthias Clasen * === Released 2.16.4 === diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/fam/fam-helper.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/fam/fam-helper.c --- glib2.0-2.16.4/gio/fam/fam-helper.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/fam/fam-helper.c 2008-09-12 19:55:52.000000000 +0200 @@ -26,6 +26,7 @@ #include #include +#include "gfile.h" #include "fam-helper.h" static FAMConnection* fam_connection = NULL; diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gappinfo.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gappinfo.c --- glib2.0-2.16.4/gio/gappinfo.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gappinfo.c 2008-09-12 19:55:52.000000000 +0200 @@ -46,11 +46,11 @@ GType g_app_info_get_type (void) { - static GType app_info_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (! app_info_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo app_info_info = + const GTypeInfo app_info_info = { sizeof (GAppInfoIface), /* class_size */ g_app_info_base_init, /* base_init */ @@ -62,15 +62,16 @@ 0, /* n_preallocs */ NULL }; - - app_info_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GAppInfo"), &app_info_info, 0); - g_type_interface_add_prerequisite (app_info_type, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return app_info_type; + return g_define_type_id__volatile; } static void diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gasyncresult.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gasyncresult.c --- glib2.0-2.16.4/gio/gasyncresult.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gasyncresult.c 2008-09-12 19:55:52.000000000 +0200 @@ -115,11 +115,11 @@ GType g_async_result_get_type (void) { - static GType async_result_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (! async_result_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo async_result_info = + const GTypeInfo async_result_info = { sizeof (GAsyncResultIface), /* class_size */ g_async_result_base_init, /* base_init */ @@ -131,15 +131,16 @@ 0, /* n_preallocs */ NULL }; - - async_result_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GAsyncResult"), &async_result_info, 0); - g_type_interface_add_prerequisite (async_result_type, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return async_result_type; + return g_define_type_id__volatile; } static void diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gdesktopappinfo.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gdesktopappinfo.c --- glib2.0-2.16.4/gio/gdesktopappinfo.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gdesktopappinfo.c 2008-09-12 20:57:43.000000000 +0200 @@ -2415,11 +2415,36 @@ char **mime_types; char **default_entries; char **removed_associations; - int i,j; + int i, j, k; + GPtrArray *array; + char **anc; mime_info_cache_init (); + /* collect all ancestors */ mime_types = _g_unix_content_type_get_parents (base_mime_type); + array = g_ptr_array_new (); + for (i = 0; mime_types[i]; i++) + g_ptr_array_add (array, mime_types[i]); + g_free (mime_types); + for (i = 0; i < array->len; i++) + { + anc = _g_unix_content_type_get_parents (g_ptr_array_index (array, i)); + for (j = 0; anc[j]; j++) + { + for (k = 0; k < array->len; k++) + { + if (strcmp (anc[j], g_ptr_array_index (array, k)) == 0) + break; + } + if (k == array->len) /* not found */ + g_ptr_array_add (array, g_strdup (anc[j])); + } + g_strfreev (anc); + } + g_ptr_array_add (array, NULL); + mime_types = g_ptr_array_free (array, FALSE); + G_LOCK (mime_info_cache); removed_entries = NULL; @@ -2440,7 +2465,7 @@ for (j = 0; default_entries != NULL && default_entries[j] != NULL; j++) desktop_entries = append_desktop_entry (desktop_entries, default_entries[j], removed_entries); - /* Then removed assiciations from mimeapps.list */ + /* Then removed associations from mimeapps.list */ removed_associations = g_hash_table_lookup (dir->mimeapps_list_removed_map, mime_type); for (j = 0; removed_associations != NULL && removed_associations[j] != NULL; j++) removed_entries = append_desktop_entry (removed_entries, removed_associations[j], NULL); @@ -2484,11 +2509,11 @@ GType g_desktop_app_info_lookup_get_type (void) { - static GType desktop_app_info_lookup_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (! desktop_app_info_lookup_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo desktop_app_info_lookup_info = + const GTypeInfo desktop_app_info_lookup_info = { sizeof (GDesktopAppInfoLookupIface), /* class_size */ g_desktop_app_info_lookup_base_init, /* base_init */ @@ -2500,15 +2525,16 @@ 0, /* n_preallocs */ NULL }; - - desktop_app_info_lookup_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GDesktopAppInfoLookup"), &desktop_app_info_lookup_info, 0); - g_type_interface_add_prerequisite (desktop_app_info_lookup_type, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return desktop_app_info_lookup_type; + return g_define_type_id__volatile; } static void diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gdrive.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gdrive.c --- glib2.0-2.16.4/gio/gdrive.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gdrive.c 2008-09-12 19:55:52.000000000 +0200 @@ -59,11 +59,11 @@ GType g_drive_get_type (void) { - static GType drive_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (! drive_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo drive_info = + const GTypeInfo drive_info = { sizeof (GDriveIface), /* class_size */ g_drive_base_init, /* base_init */ @@ -75,15 +75,16 @@ 0, /* n_preallocs */ NULL }; - - drive_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GDrive"), &drive_info, 0); - g_type_interface_add_prerequisite (drive_type, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return drive_type; + return g_define_type_id__volatile; } static void diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gfile.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gfile.c --- glib2.0-2.16.4/gio/gfile.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gfile.c 2008-09-12 19:55:52.000000000 +0200 @@ -236,11 +236,11 @@ GType g_file_get_type (void) { - static GType file_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (! file_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo file_info = + const GTypeInfo file_info = { sizeof (GFileIface), /* class_size */ g_file_base_init, /* base_init */ @@ -252,15 +252,16 @@ 0, /* n_preallocs */ NULL }; - - file_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GFile"), &file_info, 0); - g_type_interface_add_prerequisite (file_type, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return file_type; + return g_define_type_id__volatile; } static void @@ -2102,7 +2103,8 @@ if (info) { res = g_file_set_attributes_from_info (destination, - info, 0, + info, + G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, cancellable, error); g_object_unref (info); @@ -2379,6 +2381,8 @@ g_propagate_error (error, my_error); return FALSE; } + else + g_clear_error (&my_error); } /* If the types are different, and the destination method failed @@ -2403,6 +2407,8 @@ g_propagate_error (error, my_error); return FALSE; } + else + g_clear_error (&my_error); } } @@ -4012,6 +4018,18 @@ iface = G_FILE_GET_IFACE (object); + if (iface->read_fn == NULL) + { + g_set_error (error, G_IO_ERROR, + G_IO_ERROR_NOT_SUPPORTED, + _("Operation not supported")); + + g_simple_async_result_set_from_error (res, error); + g_error_free (error); + + return; + } + stream = iface->read_fn (G_FILE (object), cancellable, &error); if (stream == NULL) diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gicon.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gicon.c --- glib2.0-2.16.4/gio/gicon.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gicon.c 2008-09-12 19:55:52.000000000 +0200 @@ -51,11 +51,11 @@ GType g_icon_get_type (void) { - static GType icon_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (! icon_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo icon_info = + const GTypeInfo icon_info = { sizeof (GIconIface), /* class_size */ g_icon_base_init, /* base_init */ @@ -67,15 +67,16 @@ 0, /* n_preallocs */ NULL }; - - icon_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GIcon"), &icon_info, 0); - g_type_interface_add_prerequisite (icon_type, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return icon_type; + return g_define_type_id__volatile; } static void diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gloadableicon.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gloadableicon.c --- glib2.0-2.16.4/gio/gloadableicon.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gloadableicon.c 2008-09-12 19:55:52.000000000 +0200 @@ -53,11 +53,11 @@ GType g_loadable_icon_get_type (void) { - static GType loadable_icon_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (! loadable_icon_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo loadable_icon_info = + const GTypeInfo loadable_icon_info = { sizeof (GLoadableIconIface), /* class_size */ g_loadable_icon_base_init, /* base_init */ @@ -69,15 +69,16 @@ 0, /* n_preallocs */ NULL }; - - loadable_icon_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GLoadableIcon"), &loadable_icon_info, 0); - g_type_interface_add_prerequisite (loadable_icon_type, G_TYPE_ICON); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_ICON); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return loadable_icon_type; + return g_define_type_id__volatile; } static void diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/glocalfile.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/glocalfile.c --- glib2.0-2.16.4/gio/glocalfile.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/glocalfile.c 2008-09-12 19:55:52.000000000 +0200 @@ -1978,7 +1978,7 @@ { GLocalFile *local = G_LOCAL_FILE (file); - if (g_mkdir (local->filename, 0755) == -1) + if (g_mkdir (local->filename, 0777) == -1) { int errsv = errno; diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gmount.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gmount.c --- glib2.0-2.16.4/gio/gmount.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gmount.c 2008-09-12 19:55:52.000000000 +0200 @@ -68,11 +68,11 @@ GType g_mount_get_type (void) { - static GType mount_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (! mount_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo mount_info = + const GTypeInfo mount_info = { sizeof (GMountIface), /* class_size */ g_mount_base_init, /* base_init */ @@ -84,15 +84,16 @@ 0, /* n_preallocs */ NULL }; - - mount_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GMount"), &mount_info, 0); - g_type_interface_add_prerequisite (mount_type, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return mount_type; + return g_define_type_id__volatile; } static void diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gseekable.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gseekable.c --- glib2.0-2.16.4/gio/gseekable.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gseekable.c 2008-09-12 19:55:52.000000000 +0200 @@ -44,11 +44,11 @@ GType g_seekable_get_type (void) { - static GType seekable_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (!seekable_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo seekable_info = + const GTypeInfo seekable_info = { sizeof (GSeekableIface), /* class_size */ g_seekable_base_init, /* base_init */ @@ -60,15 +60,16 @@ 0, /* n_preallocs */ NULL }; - - seekable_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GSeekable"), &seekable_info, 0); - g_type_interface_add_prerequisite (seekable_type, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return seekable_type; + return g_define_type_id__volatile; } static void diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gunixmount.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gunixmount.c --- glib2.0-2.16.4/gio/gunixmount.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gunixmount.c 2008-09-12 19:55:52.000000000 +0200 @@ -38,6 +38,8 @@ #include "gthemedicon.h" #include "gsimpleasyncresult.h" #include "glibintl.h" +/* for BUFSIZ */ +#include #include "gioalias.h" @@ -281,13 +283,33 @@ GIOCondition condition, gpointer user_data) { - char *str; - gsize str_len; UnmountEjectOp *data = user_data; + char buf[BUFSIZ]; + gsize bytes_read; + GError *error; + GIOStatus status; + + error = NULL; +read: + status = g_io_channel_read_chars (channel, buf, sizeof (buf), &bytes_read, &error); + if (status == G_IO_STATUS_NORMAL) + { + g_string_append_len (data->error_string, buf, bytes_read); + if (bytes_read == sizeof (buf)) + goto read; + } + else if (status == G_IO_STATUS_EOF) + g_string_append_len (data->error_string, buf, bytes_read); + else if (status == G_IO_STATUS_ERROR) + { + if (data->error_string->len > 0) + g_string_append (data->error_string, "\n"); + + g_string_append (data->error_string, error->message); + g_error_free (error); + return FALSE; + } - g_io_channel_read_to_end (channel, &str, &str_len, NULL); - g_string_append (data->error_string, str); - g_free (str); return TRUE; } @@ -321,6 +343,22 @@ NULL, /* standard_output */ &(data->error_fd), &error)) { + g_assert (error != NULL); + goto handle_error; + } + + data->error_string = g_string_new (""); + + data->error_channel = g_io_channel_unix_new (data->error_fd); + g_io_channel_set_flags (data->error_channel, G_IO_FLAG_NONBLOCK, &error); + if (error != NULL) + goto handle_error; + + data->error_channel_source_id = g_io_add_watch (data->error_channel, G_IO_IN, eject_unmount_read_error, data); + g_child_watch_add (child_pid, eject_unmount_cb, data); + +handle_error: + if (error != NULL) { GSimpleAsyncResult *simple; simple = g_simple_async_result_new_from_error (G_OBJECT (data->unix_mount), data->callback, @@ -328,14 +366,16 @@ error); g_simple_async_result_complete (simple); g_object_unref (simple); + + if (data->error_string != NULL) + g_string_free (data->error_string, TRUE); + + if (data->error_channel != NULL) + g_io_channel_unref (data->error_channel); + g_error_free (error); g_free (data); - return; } - data->error_string = g_string_new (""); - data->error_channel = g_io_channel_unix_new (data->error_fd); - data->error_channel_source_id = g_io_add_watch (data->error_channel, G_IO_IN, eject_unmount_read_error, data); - g_child_watch_add (child_pid, eject_unmount_cb, data); } static void diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gunixmounts.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gunixmounts.c --- glib2.0-2.16.4/gio/gunixmounts.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gunixmounts.c 2008-09-12 19:55:52.000000000 +0200 @@ -275,6 +275,7 @@ "usbfs", "nfsd", "rpc_pipefs", + "zfs", NULL }; const char *ignore_devices[] = { diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gunixvolume.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gunixvolume.c --- glib2.0-2.16.4/gio/gunixvolume.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gunixvolume.c 2008-09-12 19:55:52.000000000 +0200 @@ -36,6 +36,8 @@ #include "gvolumemonitor.h" #include "gsimpleasyncresult.h" #include "glibintl.h" +/* for BUFSIZ */ +#include #include "gioalias.h" @@ -331,13 +333,33 @@ GIOCondition condition, gpointer user_data) { - char *str; - gsize str_len; EjectMountOp *data = user_data; + char buf[BUFSIZ]; + gsize bytes_read; + GError *error; + GIOStatus status; + + error = NULL; +read: + status = g_io_channel_read_chars (channel, buf, sizeof (buf), &bytes_read, &error); + if (status == G_IO_STATUS_NORMAL) + { + g_string_append_len (data->error_string, buf, bytes_read); + if (bytes_read == sizeof (buf)) + goto read; + } + else if (status == G_IO_STATUS_EOF) + g_string_append_len (data->error_string, buf, bytes_read); + else if (status == G_IO_STATUS_ERROR) + { + if (data->error_string->len > 0) + g_string_append (data->error_string, "\n"); + + g_string_append (data->error_string, error->message); + g_error_free (error); + return FALSE; + } - g_io_channel_read_to_end (channel, &str, &str_len, NULL); - g_string_append (data->error_string, str); - g_free (str); return TRUE; } @@ -371,6 +393,22 @@ NULL, /* standard_output */ &(data->error_fd), &error)) { + g_assert (error != NULL); + goto handle_error; + } + + data->error_string = g_string_new (""); + + data->error_channel = g_io_channel_unix_new (data->error_fd); + g_io_channel_set_flags (data->error_channel, G_IO_FLAG_NONBLOCK, &error); + if (error != NULL) + goto handle_error; + + data->error_channel_source_id = g_io_add_watch (data->error_channel, G_IO_IN, eject_mount_read_error, data); + g_child_watch_add (child_pid, eject_mount_cb, data); + +handle_error: + if (error != NULL) { GSimpleAsyncResult *simple; simple = g_simple_async_result_new_from_error (G_OBJECT (data->unix_volume), data->callback, @@ -378,14 +416,16 @@ error); g_simple_async_result_complete (simple); g_object_unref (simple); + + if (data->error_string != NULL) + g_string_free (data->error_string, TRUE); + + if (data->error_channel != NULL) + g_io_channel_unref (data->error_channel); + g_error_free (error); g_free (data); - return; } - data->error_string = g_string_new (""); - data->error_channel = g_io_channel_unix_new (data->error_fd); - data->error_channel_source_id = g_io_add_watch (data->error_channel, G_IO_IN, eject_mount_read_error, data); - g_child_watch_add (child_pid, eject_mount_cb, data); } diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gunixvolumemonitor.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gunixvolumemonitor.c --- glib2.0-2.16.4/gio/gunixvolumemonitor.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gunixvolumemonitor.c 2008-09-12 19:55:52.000000000 +0200 @@ -149,10 +149,15 @@ GUnixMount *mount; mount_entry = g_unix_mount_at (mount_path, NULL); - + + if (!mount_entry) + return NULL; + /* TODO: Set mountable volume? */ mount = _g_unix_mount_new (NULL, mount_entry, NULL); + g_unix_mount_free (mount_entry); + return G_MOUNT (mount); } diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/gvolume.c /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/gvolume.c --- glib2.0-2.16.4/gio/gvolume.c 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/gvolume.c 2008-09-12 19:55:52.000000000 +0200 @@ -78,11 +78,11 @@ GType g_volume_get_type (void) { - static GType volume_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (! volume_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo volume_info = + const GTypeInfo volume_info = { sizeof (GVolumeIface), /* class_size */ g_volume_base_init, /* base_init */ @@ -94,15 +94,16 @@ 0, /* n_preallocs */ NULL }; - - volume_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GVolume"), &volume_info, 0); - g_type_interface_add_prerequisite (volume_type, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return volume_type; + return g_define_type_id__volatile; } static void diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gio/pltcheck.sh /tmp/53mnjcHeo0/glib2.0-2.16.6/gio/pltcheck.sh --- glib2.0-2.16.4/gio/pltcheck.sh 2008-07-02 00:30:15.000000000 +0200 +++ glib2.0-2.16.6/gio/pltcheck.sh 2008-09-12 20:56:45.000000000 +0200 @@ -9,7 +9,7 @@ exit 0 fi -SKIP='\next) { - if (strcmp (list->directory_name, file_name) == 0) - return; + if (strcmp (list->directory_name, file_name) == 0) + { + free (file_name); + return; + } } list = calloc (1, sizeof (XdgDirTimeList)); @@ -601,7 +604,7 @@ _xdg_mime_parent_list_free (parent_list); parent_list = NULL; } - + if (_caches) { int i; diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/glib/gbookmarkfile.c /tmp/53mnjcHeo0/glib2.0-2.16.6/glib/gbookmarkfile.c --- glib2.0-2.16.4/glib/gbookmarkfile.c 2008-07-02 00:30:13.000000000 +0200 +++ glib2.0-2.16.6/glib/gbookmarkfile.c 2008-09-12 19:55:51.000000000 +0200 @@ -700,6 +700,10 @@ visited = attribute_values[i]; else { + /* bookmark is defined by the XBEL spec, so we need + * to error out if the element has different or + * missing attributes + */ g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _("Unexpected attribute '%s' for element '%s'"), @@ -775,17 +779,9 @@ count = attribute_values[i]; else if (IS_ATTRIBUTE (attr, BOOKMARK_TIMESTAMP_ATTRIBUTE)) stamp = attribute_values[i]; - else - { - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, - _("Unexpected attribute '%s' for element '%s'"), - attr, - BOOKMARK_APPLICATION_ELEMENT); - return; - } } + /* the "name" and "exec" attributes are mandatory */ if (!name) { g_set_error (error, G_MARKUP_ERROR, @@ -854,15 +850,6 @@ { if (IS_ATTRIBUTE (attr, MIME_TYPE_ATTRIBUTE)) type = attribute_values[i]; - else - { - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, - _("Unexpected attribute '%s' for element '%s'"), - attr, - MIME_TYPE_ELEMENT); - return; - } } if (!type) @@ -901,17 +888,9 @@ href = attribute_values[i]; else if (IS_ATTRIBUTE (attr, BOOKMARK_TYPE_ATTRIBUTE)) type = attribute_values[i]; - else - { - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, - _("Unexpected attribute '%s' for element '%s'"), - attr, - BOOKMARK_ICON_ELEMENT); - return; - } } + /* the "href" attribute is mandatory */ if (!href) { g_set_error (error, G_MARKUP_ERROR, diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/glib/gi18n.h /tmp/53mnjcHeo0/glib2.0-2.16.6/glib/gi18n.h --- glib2.0-2.16.4/glib/gi18n.h 2008-07-02 00:30:13.000000000 +0200 +++ glib2.0-2.16.6/glib/gi18n.h 2008-09-12 19:55:51.000000000 +0200 @@ -21,6 +21,7 @@ #include #include +#include #define _(String) gettext (String) #define Q_(String) g_dpgettext (NULL, String, 0) diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/glib/gi18n-lib.h /tmp/53mnjcHeo0/glib2.0-2.16.6/glib/gi18n-lib.h --- glib2.0-2.16.4/glib/gi18n-lib.h 2008-07-02 00:30:13.000000000 +0200 +++ glib2.0-2.16.6/glib/gi18n-lib.h 2008-09-12 19:55:51.000000000 +0200 @@ -22,6 +22,7 @@ #include #include +#include #ifndef GETTEXT_PACKAGE #error You must define GETTEXT_PACKAGE before including gi18n-lib.h. diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/glib/glib.rc /tmp/53mnjcHeo0/glib2.0-2.16.6/glib/glib.rc --- glib2.0-2.16.4/glib/glib.rc 2008-07-02 03:48:40.000000000 +0200 +++ glib2.0-2.16.6/glib/glib.rc 2008-09-13 00:17:40.000000000 +0200 @@ -1,8 +1,8 @@ #include VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,16,4,0 - PRODUCTVERSION 2,16,4,0 + FILEVERSION 2,16,6,0 + PRODUCTVERSION 2,16,6,0 FILEFLAGSMASK 0 FILEFLAGS 0 FILEOS VOS__WINDOWS32 @@ -15,12 +15,12 @@ BEGIN VALUE "CompanyName", "The GLib developer community" VALUE "FileDescription", "GLib" - VALUE "FileVersion", "2.16.4.0" + VALUE "FileVersion", "2.16.6.0" VALUE "InternalName", "libglib-2.0-0" VALUE "LegalCopyright", "Copyright © 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Modified by the GLib Team and others 1997-2004." VALUE "OriginalFilename", "libglib-2.0-0.dll" VALUE "ProductName", "GLib" - VALUE "ProductVersion", "2.16.4" + VALUE "ProductVersion", "2.16.6" END END BLOCK "VarFileInfo" diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/glib/pcre/Makefile.am /tmp/53mnjcHeo0/glib2.0-2.16.6/glib/pcre/Makefile.am --- glib2.0-2.16.4/glib/pcre/Makefile.am 2008-07-02 00:30:11.000000000 +0200 +++ glib2.0-2.16.6/glib/pcre/Makefile.am 2008-09-12 19:55:50.000000000 +0200 @@ -6,7 +6,7 @@ -DSUPPORT_UTF8 \ -DNEWLINE=-1 \ -DMATCH_LIMIT=10000000 \ - -DMATCH_LIMIT_RECURSION=10000000 \ + -DMATCH_LIMIT_RECURSION=8192 \ -DMAX_NAME_SIZE=32 \ -DMAX_NAME_COUNT=10000 \ -DMAX_DUPLENGTH=30000 \ diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/glib/pcre/Makefile.in /tmp/53mnjcHeo0/glib2.0-2.16.6/glib/pcre/Makefile.in --- glib2.0-2.16.4/glib/pcre/Makefile.in 2008-07-02 03:31:20.000000000 +0200 +++ glib2.0-2.16.6/glib/pcre/Makefile.in 2008-09-12 20:01:29.000000000 +0200 @@ -297,7 +297,7 @@ -DSUPPORT_UTF8 \ -DNEWLINE=-1 \ -DMATCH_LIMIT=10000000 \ - -DMATCH_LIMIT_RECURSION=10000000 \ + -DMATCH_LIMIT_RECURSION=8192 \ -DMAX_NAME_SIZE=32 \ -DMAX_NAME_COUNT=10000 \ -DMAX_DUPLENGTH=30000 \ diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/glibconfig.h.win32 /tmp/53mnjcHeo0/glib2.0-2.16.6/glibconfig.h.win32 --- glib2.0-2.16.4/glibconfig.h.win32 2008-07-02 03:49:01.000000000 +0200 +++ glib2.0-2.16.6/glibconfig.h.win32 2008-09-13 00:17:54.000000000 +0200 @@ -99,7 +99,7 @@ #define GLIB_MAJOR_VERSION 2 #define GLIB_MINOR_VERSION 16 -#define GLIB_MICRO_VERSION 4 +#define GLIB_MICRO_VERSION 6 #define G_OS_WIN32 #define G_PLATFORM_WIN32 diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/glib-zip.in /tmp/53mnjcHeo0/glib2.0-2.16.6/glib-zip.in --- glib2.0-2.16.4/glib-zip.in 2008-07-02 00:30:18.000000000 +0200 +++ glib2.0-2.16.6/glib-zip.in 2008-09-12 19:55:53.000000000 +0200 @@ -59,6 +59,8 @@ lib/gthread-2.0.lib lib/gthread-2.0.def lib/libgio-2.0.dll.a +lib/gio-2.0.lib +lib/gio-2.0.def lib/glib-2.0 lib/pkgconfig/glib-2.0.pc lib/pkgconfig/gmodule-2.0.pc diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gmodule/ChangeLog /tmp/53mnjcHeo0/glib2.0-2.16.6/gmodule/ChangeLog --- glib2.0-2.16.4/gmodule/ChangeLog 2008-07-02 03:48:07.000000000 +0200 +++ glib2.0-2.16.6/gmodule/ChangeLog 2008-09-12 21:23:05.000000000 +0200 @@ -1,3 +1,11 @@ +2008-09-12 Matthias Clasen + + * === Released 2.16.6 === + +2008-07-19 Matthias Clasen + + * === Released 2.16.5 === + 2008-07-01 Matthias Clasen * === Released 2.16.4 === diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gmodule/gmodule.rc /tmp/53mnjcHeo0/glib2.0-2.16.6/gmodule/gmodule.rc --- glib2.0-2.16.4/gmodule/gmodule.rc 2008-07-02 03:48:41.000000000 +0200 +++ glib2.0-2.16.6/gmodule/gmodule.rc 2008-09-13 00:17:40.000000000 +0200 @@ -1,8 +1,8 @@ #include VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,16,4,0 - PRODUCTVERSION 2,16,4,0 + FILEVERSION 2,16,6,0 + PRODUCTVERSION 2,16,6,0 FILEFLAGSMASK 0 FILEFLAGS 0 FILEOS VOS__WINDOWS32 @@ -15,12 +15,12 @@ BEGIN VALUE "CompanyName", "The GLib developer community" VALUE "FileDescription", "GModule" - VALUE "FileVersion", "2.16.4.0" + VALUE "FileVersion", "2.16.6.0" VALUE "InternalName", "libgmodule-2.0-0" VALUE "LegalCopyright", "Copyright © 1998-2000 Tim Janik. Modified by the GLib Team and others 1998-2004." VALUE "OriginalFilename", "libgmodule-2.0-0.dll" VALUE "ProductName", "GLib" - VALUE "ProductVersion", "2.16.4" + VALUE "ProductVersion", "2.16.6" END END BLOCK "VarFileInfo" diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gobject/ChangeLog /tmp/53mnjcHeo0/glib2.0-2.16.6/gobject/ChangeLog --- glib2.0-2.16.4/gobject/ChangeLog 2008-07-02 03:48:11.000000000 +0200 +++ glib2.0-2.16.6/gobject/ChangeLog 2008-09-12 21:23:07.000000000 +0200 @@ -1,3 +1,11 @@ +2008-09-12 Matthias Clasen + + * === Released 2.16.6 === + +2008-07-19 Matthias Clasen + + * === Released 2.16.5 === + 2008-07-01 Matthias Clasen * === Released 2.16.4 === diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gobject/gobject.rc /tmp/53mnjcHeo0/glib2.0-2.16.6/gobject/gobject.rc --- glib2.0-2.16.4/gobject/gobject.rc 2008-07-02 03:48:43.000000000 +0200 +++ glib2.0-2.16.6/gobject/gobject.rc 2008-09-13 00:17:41.000000000 +0200 @@ -1,8 +1,8 @@ #include VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,16,4,0 - PRODUCTVERSION 2,16,4,0 + FILEVERSION 2,16,6,0 + PRODUCTVERSION 2,16,6,0 FILEFLAGSMASK 0 FILEFLAGS 0 FILEOS VOS__WINDOWS32 @@ -15,12 +15,12 @@ BEGIN VALUE "CompanyName", "The GLib developer community" VALUE "FileDescription", "GObject" - VALUE "FileVersion", "2.16.4.0" + VALUE "FileVersion", "2.16.6.0" VALUE "InternalName", "libgobject-2.0-0" VALUE "LegalCopyright", "Copyright © 1998-2004 Tim Janik and Red Hat, Inc." VALUE "OriginalFilename", "libgobject-2.0-0.dll" VALUE "ProductName", "GLib" - VALUE "ProductVersion", "2.16.4" + VALUE "ProductVersion", "2.16.6" END END BLOCK "VarFileInfo" diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gthread/ChangeLog /tmp/53mnjcHeo0/glib2.0-2.16.6/gthread/ChangeLog --- glib2.0-2.16.4/gthread/ChangeLog 2008-07-02 03:48:14.000000000 +0200 +++ glib2.0-2.16.6/gthread/ChangeLog 2008-09-12 21:23:10.000000000 +0200 @@ -1,3 +1,11 @@ +2008-09-12 Matthias Clasen + + * === Released 2.16.6 === + +2008-07-19 Matthias Clasen + + * === Released 2.16.5 === + 2008-07-01 Matthias Clasen * === Released 2.16.4 === diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/gthread/gthread.rc /tmp/53mnjcHeo0/glib2.0-2.16.6/gthread/gthread.rc --- glib2.0-2.16.4/gthread/gthread.rc 2008-07-02 03:48:42.000000000 +0200 +++ glib2.0-2.16.6/gthread/gthread.rc 2008-09-13 00:17:40.000000000 +0200 @@ -1,8 +1,8 @@ #include VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,16,4,0 - PRODUCTVERSION 2,16,4,0 + FILEVERSION 2,16,6,0 + PRODUCTVERSION 2,16,6,0 FILEFLAGSMASK 0 FILEFLAGS 0 FILEOS VOS__WINDOWS32 @@ -15,12 +15,12 @@ BEGIN VALUE "CompanyName", "The GLib developer community" VALUE "FileDescription", "GThread" - VALUE "FileVersion", "2.16.4.0" + VALUE "FileVersion", "2.16.6.0" VALUE "InternalName", "libgthread-2.0-0" VALUE "LegalCopyright", "Copyright © 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Copyright © 1998 Sebastian Wilhelmi. Modified by the GLib Team and others 1997-2004." VALUE "OriginalFilename", "libgthread-2.0-0.dll" VALUE "ProductName", "GLib" - VALUE "ProductVersion", "2.16.4" + VALUE "ProductVersion", "2.16.6" END END BLOCK "VarFileInfo" diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/INSTALL /tmp/53mnjcHeo0/glib2.0-2.16.6/INSTALL --- glib2.0-2.16.4/INSTALL 2008-07-02 03:49:01.000000000 +0200 +++ glib2.0-2.16.6/INSTALL 2008-09-13 00:17:54.000000000 +0200 @@ -1,8 +1,8 @@ Simple install procedure ======================== - % gzip -cd glib-2.16.4.tar.gz | tar xvf - # unpack the sources - % cd glib-2.16.4 # change to the toplevel directory + % gzip -cd glib-2.16.6.tar.gz | tar xvf - # unpack the sources + % cd glib-2.16.6 # change to the toplevel directory % ./configure # run the `configure' script % make # build GLIB diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/NEWS /tmp/53mnjcHeo0/glib2.0-2.16.6/NEWS --- glib2.0-2.16.4/NEWS 2008-07-02 00:30:18.000000000 +0200 +++ glib2.0-2.16.6/NEWS 2008-09-12 19:55:53.000000000 +0200 @@ -1,3 +1,39 @@ +Overview of Changes from GLib 2.16.5 to GLib 2.16.6 +=================================================== + +* GBookmarkFile: Make the parser less strict about unknown attributes + +* Bugs fixed: + 547832 gtk+-2.12.11 fails to build - AC_PROG_MMAP too strict, and unnecessary + 548321 is not included in gi18n-lib.h + 535124 umask 002 not being applied for new directories, new files get the correct umask + 544140 fam-helper 64-bit issue + 545157 wrong/no list of "open with" applications for .cc and .cpp files + 545457 gdmsetup crashed with SIGSEGV in g_unix_mount_guess_should_display + 546079 leak in xdgmime + 546017 Don't copy attributes when copying a symlink + 547080 g_file_copy leaks expected errors + 542156 zfs mount in home directory shown on nautilus desktop + 551149 xdgmime mem leak + 550647 synchronous pipe I/O when reading mount reply + + +Overview of Changes from GLib 2.16.4 to GLib 2.16.5 +=================================================== + +* Work around AC_C_BIGENDIAN breakage in autoconf 2.61 + +* Bugs fixed: + 528317 GRegex does not allow recursion limit + 540616 mem leak in filechooser button + 543040 async reading on dummy file will crash on GIO_USE_VFS=local + 543504 crash in Epiphany Web Browser: Opening local file + +* Updated translations: + Traditional Chinese (zh_HK) + Traditional Chinese (zh_TW) + + Overview of Changes from GLib 2.16.3 to GLib 2.16.4 =================================================== diff -Nru --exclude configure --exclude po --exclude reference /tmp/ZvEhIxDBjk/glib2.0-2.16.4/README /tmp/53mnjcHeo0/glib2.0-2.16.6/README --- glib2.0-2.16.4/README 2008-07-02 03:49:01.000000000 +0200 +++ glib2.0-2.16.6/README 2008-09-13 00:17:54.000000000 +0200 @@ -1,7 +1,7 @@ General Information =================== -This is GLib version 2.16.4. GLib is the low-level core +This is GLib version 2.16.6. 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,