summaryrefslogtreecommitdiffstats
path: root/devel/glib20/files
diff options
context:
space:
mode:
authorkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2010-12-01 06:38:13 +0800
committerkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2010-12-01 06:38:13 +0800
commit764ba499ef3e17e0aecc018262c36e06e305fdb3 (patch)
tree458563e43c045159e934552c758e98bc938e45f0 /devel/glib20/files
parent2e4d2e942a99fbc51adebabc4cd543a91491ba37 (diff)
downloadmarcuscom-ports-764ba499ef3e17e0aecc018262c36e06e305fdb3.tar
marcuscom-ports-764ba499ef3e17e0aecc018262c36e06e305fdb3.tar.gz
marcuscom-ports-764ba499ef3e17e0aecc018262c36e06e305fdb3.tar.bz2
marcuscom-ports-764ba499ef3e17e0aecc018262c36e06e305fdb3.tar.lz
marcuscom-ports-764ba499ef3e17e0aecc018262c36e06e305fdb3.tar.xz
marcuscom-ports-764ba499ef3e17e0aecc018262c36e06e305fdb3.tar.zst
marcuscom-ports-764ba499ef3e17e0aecc018262c36e06e305fdb3.zip
Update to 2.27.4.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@14917 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'devel/glib20/files')
-rw-r--r--devel/glib20/files/extra-arch-powerpc6423
-rw-r--r--devel/glib20/files/extra-patch-glib_Makefile.in11
-rw-r--r--devel/glib20/files/extra-patch-glib_gunicollate.c123
-rw-r--r--devel/glib20/files/patch-ae48
-rw-r--r--devel/glib20/files/patch-ag11
-rw-r--r--devel/glib20/files/patch-ah11
-rw-r--r--devel/glib20/files/patch-config.h.in12
-rw-r--r--devel/glib20/files/patch-gio_gunixmount.c21
-rw-r--r--devel/glib20/files/patch-gio_gunixmounts.c148
-rw-r--r--devel/glib20/files/patch-gio_gunixvolume.c17
-rw-r--r--devel/glib20/files/patch-gio_libasyncns_asyncns.c11
-rw-r--r--devel/glib20/files/patch-gio_tests_gdbus-peer.c11
-rw-r--r--devel/glib20/files/patch-gio_xdgmime_xdgmime.c11
-rw-r--r--devel/glib20/files/patch-gio_xdgmime_xdgmimecache.h12
-rw-r--r--devel/glib20/files/patch-glib::libcharset::Makefile.in31
-rw-r--r--devel/glib20/files/patch-glib_Makefile.in31
-rw-r--r--devel/glib20/files/patch-glib_gregex.c13
-rw-r--r--devel/glib20/files/patch-glib_gutils.c20
-rw-r--r--devel/glib20/files/patch-gmodule::gmodule-dl.c20
-rw-r--r--devel/glib20/files/patch-gobject_Makefile.in22
-rw-r--r--devel/glib20/files/patch-gthread_gthread-posix.c21
21 files changed, 628 insertions, 0 deletions
diff --git a/devel/glib20/files/extra-arch-powerpc64 b/devel/glib20/files/extra-arch-powerpc64
new file mode 100644
index 000000000..d774ebd6b
--- /dev/null
+++ b/devel/glib20/files/extra-arch-powerpc64
@@ -0,0 +1,23 @@
+
+--- gio/glib-compile-schemas.c.orig 2010-11-24 21:32:15.000000000 +0100
++++ gio/glib-compile-schemas.c 2010-11-24 21:33:42.000000000 +0100
+@@ -1458,7 +1458,7 @@
+ }
+ /* Text {{{2 */
+ static void
+-text (GMarkupParseContext *context,
++XXXtext (GMarkupParseContext *context,
+ const gchar *text,
+ gsize text_len,
+ gpointer user_data,
+@@ -1590,7 +1590,7 @@
+ parse_gschema_files (gchar **files,
+ gboolean strict)
+ {
+- GMarkupParser parser = { start_element, end_element, text };
++ GMarkupParser parser = { start_element, end_element, XXXtext };
+ ParseState state = { 0, };
+ const gchar *filename;
+ GError *error = NULL;
+
+
diff --git a/devel/glib20/files/extra-patch-glib_Makefile.in b/devel/glib20/files/extra-patch-glib_Makefile.in
new file mode 100644
index 000000000..01f856f74
--- /dev/null
+++ b/devel/glib20/files/extra-patch-glib_Makefile.in
@@ -0,0 +1,11 @@
+--- glib/Makefile.in.orig 2009-05-31 13:14:18.000000000 +0200
++++ glib/Makefile.in 2009-05-31 13:15:08.000000000 +0200
+@@ -272,7 +272,7 @@
+ INSTOBJEXT = @INSTOBJEXT@
+ INTLLIBS = @INTLLIBS@
+ LD = @LD@
+-LDFLAGS = @LDFLAGS@
++LDFLAGS = @LDFLAGS@ -licui18n
+ LIBASYNCNS_LIBADD = @LIBASYNCNS_LIBADD@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
diff --git a/devel/glib20/files/extra-patch-glib_gunicollate.c b/devel/glib20/files/extra-patch-glib_gunicollate.c
new file mode 100644
index 000000000..e2edc6938
--- /dev/null
+++ b/devel/glib20/files/extra-patch-glib_gunicollate.c
@@ -0,0 +1,123 @@
+--- glib/gunicollate.c.orig
++++ glib/gunicollate.c
+@@ -26,6 +26,10 @@
+ #include <wchar.h>
+ #endif
+
++#include <unicode/umachine.h>
++#include <unicode/ustring.h>
++#include <unicode/ucol.h>
++
+ #ifdef HAVE_CARBON
+ #include <CoreServices/CoreServices.h>
+ #endif
+@@ -36,10 +40,53 @@
+ #include "gstring.h"
+ #include "gstrfuncs.h"
+ #include "gtestutils.h"
++#include "gthread.h"
+ #ifndef __STDC_ISO_10646__
+ #include "gconvert.h"
+ #endif
+
++static gboolean icu_collator_initialized = FALSE;
++static UCollator *icu_collator = NULL;
++G_LOCK_DEFINE_STATIC(icu_collator);
++
++static void
++init_icu_collator (void)
++{
++ G_LOCK(icu_collator);
++ if (! icu_collator_initialized)
++ {
++ UErrorCode error = U_ZERO_ERROR;
++
++ icu_collator = ucol_open(NULL, &error);
++ if (icu_collator == NULL)
++ g_warning("unable to initialize the ICU collator (%s), FreeBSD collation routines will be used", u_errorName(error));
++
++ icu_collator_initialized = TRUE;
++ }
++ G_UNLOCK(icu_collator);
++}
++
++static UChar *
++utf8_to_uchar (const char *str, int32_t len, int32_t *result_len)
++{
++ UErrorCode error = U_ZERO_ERROR;
++ UChar *result = NULL;
++
++ u_strFromUTF8(NULL, 0, result_len, str, len, &error);
++ if (error <= U_ZERO_ERROR || error == U_BUFFER_OVERFLOW_ERROR)
++ {
++ error = U_ZERO_ERROR;
++ result = g_new(UChar, *result_len);
++ u_strFromUTF8(result, *result_len, NULL, str, len, &error);
++ if (error > U_ZERO_ERROR)
++ {
++ g_free(result);
++ result = NULL;
++ }
++ }
++
++ return result;
++}
+
+ #ifdef _MSC_VER
+ /* Workaround for bug in MSVCR80.DLL */
+@@ -127,6 +174,28 @@
+ g_return_val_if_fail (str1 != NULL, 0);
+ g_return_val_if_fail (str2 != NULL, 0);
+
++ init_icu_collator();
++ if (icu_collator != NULL)
++ {
++ int32_t wstr1_len;
++ UChar *wstr1 = utf8_to_uchar(str1, -1, &wstr1_len);
++ if (wstr1 != NULL)
++ {
++ int32_t wstr2_len;
++ UChar *wstr2 = utf8_to_uchar(str2, -1, &wstr2_len);
++ if (wstr2 != NULL)
++ {
++ result = ucol_strcoll(icu_collator, wstr1, wstr1_len, wstr2, wstr2_len);
++
++ g_free(wstr1);
++ g_free(wstr2);
++
++ return result;
++ }
++ g_free(wstr1);
++ }
++ }
++
+ str1_norm = g_utf8_normalize (str1, -1, G_NORMALIZE_ALL_COMPOSE);
+ str2_norm = g_utf8_normalize (str2, -1, G_NORMALIZE_ALL_COMPOSE);
+
+@@ -419,6 +488,26 @@
+
+ g_return_val_if_fail (str != NULL, NULL);
+
++ init_icu_collator();
++ if (icu_collator != NULL)
++ {
++ int32_t wstr_len;
++ UChar *wstr = utf8_to_uchar(str, len, &wstr_len);
++ if (wstr != NULL)
++ {
++ int32_t result_len;
++
++ /* get size of result */
++ result_len = ucol_getSortKey(icu_collator, wstr, wstr_len, NULL, 0);
++
++ result = g_new(char, result_len);
++ ucol_getSortKey(icu_collator, wstr, wstr_len, result, result_len);
++ g_free(wstr);
++
++ return result;
++ }
++ }
++
+ str_norm = g_utf8_normalize (str, len, G_NORMALIZE_ALL_COMPOSE);
+
+ result = NULL;
diff --git a/devel/glib20/files/patch-ae b/devel/glib20/files/patch-ae
new file mode 100644
index 000000000..80fcb92b2
--- /dev/null
+++ b/devel/glib20/files/patch-ae
@@ -0,0 +1,48 @@
+--- configure.orig 2010-09-09 12:18:43.000000000 +0200
++++ configure 2010-09-09 12:20:56.000000000 +0200
+@@ -575,6 +575,9 @@
+ #ifdef HAVE_SYS_TYPES_H
+ # include <sys/types.h>
+ #endif
++#ifdef HAVE_SYS_PARAM_H
++# include <sys/param.h>
++#endif
+ #ifdef HAVE_SYS_STAT_H
+ # include <sys/stat.h>
+ #endif
+@@ -5187,7 +5190,7 @@
+ fi
+
+ GLIB_RUNTIME_LIBDIR="$with_runtime_libdir"
+-ABS_GLIB_RUNTIME_LIBDIR="`readlink -f $libdir/$with_runtime_libdir`"
++ABS_GLIB_RUNTIME_LIBDIR="`readlink $libdir/$with_runtime_libdir`"
+
+
+ if test "x$with_runtime_libdir" != "x"; then
+@@ -22212,7 +22215,7 @@
+ fi
+ done
+
+-for ac_func in chown lchmod lchown fchmod fchown link statvfs statfs utimes getgrgid getpwuid
++for ac_func in chown lchmod lchown fchmod fchown link statvfs statfs utimes getgrgid getpwuid sysctlbyname
+ do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+@@ -24815,6 +24818,8 @@
+ ;;
+ esac
+ fi
++ G_THREAD_CFLAGS="${PTHREAD_CFLAGS}"
++ G_THREAD_LIBS="${PTHREAD_LIBS}"
+
+ if test x"$G_THREAD_CFLAGS" = x; then
+
+@@ -27415,7 +27420,7 @@
+ fi
+
+
+-if test "x${enable_Bsymbolic}" == "xyes"; then
++if test "x${enable_Bsymbolic}" = "xyes"; then
+ GLIB_LINK_FLAGS=-Wl,-Bsymbolic-functions
+ fi
+
diff --git a/devel/glib20/files/patch-ag b/devel/glib20/files/patch-ag
new file mode 100644
index 000000000..289bc3381
--- /dev/null
+++ b/devel/glib20/files/patch-ag
@@ -0,0 +1,11 @@
+--- Makefile.in.orig 2010-08-08 12:14:27.000000000 +0200
++++ Makefile.in 2010-08-08 12:15:40.000000000 +0200
+@@ -418,7 +418,7 @@
+ gio-2.0-uninstalled.pc.in gio-unix-2.0-uninstalled.pc.in
+ TEST_PROGS =
+ ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS}
+-SUBDIRS = . m4macros glib gmodule gthread gobject gio tests po docs
++SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs
+ DIST_SUBDIRS = $(SUBDIRS) build
+ bin_SCRIPTS = glib-gettextize
+ AM_CPPFLAGS = \
diff --git a/devel/glib20/files/patch-ah b/devel/glib20/files/patch-ah
new file mode 100644
index 000000000..3784d16b8
--- /dev/null
+++ b/devel/glib20/files/patch-ah
@@ -0,0 +1,11 @@
+--- docs/reference/Makefile.in.orig 2007-12-21 16:54:10.000000000 -0500
++++ docs/reference/Makefile.in 2007-12-21 16:54:40.000000000 -0500
+@@ -268,7 +268,7 @@ GTESTER_REPORT = $(top_builddir)/glib/gt
+ # initialize variables for unconditional += appending
+ EXTRA_DIST =
+ TEST_PROGS =
+-SUBDIRS = glib gobject gio
++SUBDIRS = #glib gobject gio
+ all: all-recursive
+
+ .SUFFIXES:
diff --git a/devel/glib20/files/patch-config.h.in b/devel/glib20/files/patch-config.h.in
new file mode 100644
index 000000000..3c2bc5d26
--- /dev/null
+++ b/devel/glib20/files/patch-config.h.in
@@ -0,0 +1,12 @@
+--- config.h.in.orig 2008-03-18 18:24:24.000000000 -0400
++++ config.h.in 2008-03-18 18:24:59.000000000 -0400
+@@ -197,6 +197,9 @@
+ /* Define to 1 if you have the `getpwuid' function. */
+ #undef HAVE_GETPWUID
+
++/* Define to 1 if you have the `sysctlbyname' function. */
++#undef HAVE_SYSCTLBYNAME
++
+ /* Define if the GNU gettext() function is already present or preinstalled. */
+ #undef HAVE_GETTEXT
+
diff --git a/devel/glib20/files/patch-gio_gunixmount.c b/devel/glib20/files/patch-gio_gunixmount.c
new file mode 100644
index 000000000..b9bfe143e
--- /dev/null
+++ b/devel/glib20/files/patch-gio_gunixmount.c
@@ -0,0 +1,21 @@
+--- gio/gunixmount.c.orig 2007-12-23 15:53:50.000000000 -0500
++++ gio/gunixmount.c 2007-12-23 15:52:52.000000000 -0500
+@@ -372,12 +372,18 @@ g_unix_mount_eject (GMount *
+ gpointer user_data)
+ {
+ GUnixMount *unix_mount = G_UNIX_MOUNT (mount);
++#ifndef __FreeBSD__
+ char *argv[] = {"eject", NULL, NULL};
+
+ if (unix_mount->mount_path != NULL)
+ argv[1] = unix_mount->mount_path;
+ else
+ argv[1] = unix_mount->device_path;
++#else
++ char *argv[] = {"cdcontrol", "-f", NULL, "eject", NULL};
++
++ argv[2] = unix_mount->device_path;
++#endif
+
+ return eject_unmount_do (mount, cancellable, callback, user_data, argv);
+ }
diff --git a/devel/glib20/files/patch-gio_gunixmounts.c b/devel/glib20/files/patch-gio_gunixmounts.c
new file mode 100644
index 000000000..9b6fa2df3
--- /dev/null
+++ b/devel/glib20/files/patch-gio_gunixmounts.c
@@ -0,0 +1,148 @@
+--- ggio/unixmounts.c.orig 2008-03-10 20:31:58.000000000 -0400
++++ gio/gunixmounts.c 2008-03-19 22:31:23.000000000 -0400
+@@ -128,6 +128,9 @@ struct _GUnixMountMonitor {
+
+ GFileMonitor *fstab_monitor;
+ GFileMonitor *mtab_monitor;
++
++ guint mount_poller_source;
++ GList *mount_poller_mounts;
+ };
+
+ struct _GUnixMountMonitorClass {
+@@ -139,6 +142,8 @@ static GUnixMountMonitor *the_mount_moni
+ static GList *_g_get_unix_mounts (void);
+ static GList *_g_get_unix_mount_points (void);
+
++static guint64 mount_poller_time = 0;
++
+ G_DEFINE_TYPE (GUnixMountMonitor, g_unix_mount_monitor, G_TYPE_OBJECT);
+
+ #define MOUNT_POLL_INTERVAL 4000
+@@ -165,6 +170,7 @@ G_DEFINE_TYPE (GUnixMountMonitor, g_unix
+ #endif
+
+ #if defined(HAVE_GETMNTINFO) && defined(HAVE_FSTAB_H) && defined(HAVE_SYS_MOUNT_H)
++#include <sys/param.h>
+ #include <sys/ucred.h>
+ #include <sys/mount.h>
+ #include <fstab.h>
+@@ -215,20 +221,28 @@ g_unix_is_mount_path_system_internal (co
+ "/", /* we already have "Filesystem root" in Nautilus */
+ "/bin",
+ "/boot",
++ "/compat/linux/proc",
++ "/compat/linux/sys",
+ "/dev",
+ "/etc",
+ "/home",
+ "/lib",
+ "/lib64",
++ "/libexec",
+ "/media",
+ "/mnt",
+ "/opt",
++ "/rescue",
+ "/root",
+ "/sbin",
+ "/srv",
+ "/tmp",
+ "/usr",
++ "/usr/X11R6",
+ "/usr/local",
++ "/usr/obj",
++ "/usr/ports",
++ "/usr/src",
+ "/var",
+ "/var/log/audit", /* https://bugzilla.redhat.com/show_bug.cgi?id=333041 */
+ "/var/tmp", /* https://bugzilla.redhat.com/show_bug.cgi?id=335241 */
+@@ -988,6 +1002,10 @@ get_mounts_timestamp (void)
+ if (stat (monitor_file, &buf) == 0)
+ return (guint64)buf.st_mtime;
+ }
++ else
++ {
++ return mount_poller_time;
++ }
+ return 0;
+ }
+
+@@ -1129,6 +1147,13 @@ g_unix_mount_monitor_finalize (GObject *
+ g_object_unref (monitor->mtab_monitor);
+ }
+
++ if (monitor->mount_poller_source > 0)
++ {
++ g_source_remove (monitor->mount_poller_source);
++ g_list_foreach (monitor->mount_poller_mounts, (GFunc)g_unix_mount_free, NULL);
++ g_list_free (monitor->mount_poller_mounts);
++ }
++
+ the_mount_monitor = NULL;
+
+ if (G_OBJECT_CLASS (g_unix_mount_monitor_parent_class)->finalize)
+@@ -1206,6 +1231,51 @@ mtab_file_changed (GFileMonitor *mo
+ g_signal_emit (mount_monitor, signals[MOUNTS_CHANGED], 0);
+ }
+
++static gboolean
++mount_change_poller (gpointer user_data)
++{
++ GUnixMountMonitor *mount_monitor;
++ GList *current_mounts;
++ gboolean has_changed = FALSE;
++
++ mount_monitor = user_data;
++ current_mounts = _g_get_unix_mounts ();
++
++ if (g_list_length (current_mounts) != g_list_length (mount_monitor->mount_poller_mounts))
++ {
++ g_list_foreach (mount_monitor->mount_poller_mounts, (GFunc)g_unix_mount_free, NULL);
++ has_changed = TRUE;
++ }
++ else
++ {
++ int i;
++
++ for (i = 0; i < g_list_length (current_mounts); i++)
++ {
++ GUnixMountEntry *m1;
++ GUnixMountEntry *m2;
++
++ m1 = (GUnixMountEntry *)g_list_nth_data (current_mounts, i);
++ m2 = (GUnixMountEntry *)g_list_nth_data (mount_monitor->mount_poller_mounts, i);
++ if (! has_changed && g_unix_mount_compare (m1, m2) != 0)
++ has_changed = TRUE;
++
++ g_unix_mount_free (m2);
++ }
++ }
++
++ g_list_free (mount_monitor->mount_poller_mounts);
++ mount_monitor->mount_poller_mounts = current_mounts;
++
++ if (has_changed)
++ {
++ mount_poller_time = (guint64)time (NULL);
++ g_signal_emit (mount_monitor, signals[MOUNTS_CHANGED], 0);
++ }
++
++ return TRUE;
++}
++
+ static void
+ g_unix_mount_monitor_init (GUnixMountMonitor *monitor)
+ {
+@@ -1228,6 +1298,12 @@ g_unix_mount_monitor_init (GUnixMountMon
+
+ g_signal_connect (monitor->mtab_monitor, "changed", (GCallback)mtab_file_changed, monitor);
+ }
++ else
++ {
++ monitor->mount_poller_mounts = _g_get_unix_mounts ();
++ mount_poller_time = (guint64)time (NULL);
++ monitor->mount_poller_source = g_timeout_add_seconds (3, (GSourceFunc)mount_change_poller, monitor);
++ }
+ }
+
+ /**
diff --git a/devel/glib20/files/patch-gio_gunixvolume.c b/devel/glib20/files/patch-gio_gunixvolume.c
new file mode 100644
index 000000000..b22563047
--- /dev/null
+++ b/devel/glib20/files/patch-gio_gunixvolume.c
@@ -0,0 +1,17 @@
+--- gio/gunixvolume.c.orig 2009-11-30 04:35:27.000000000 +0100
++++ gio/gunixvolume.c 2009-12-08 19:32:03.000000000 +0100
+@@ -465,9 +465,14 @@ g_unix_volume_eject (GVolume
+ gpointer user_data)
+ {
+ GUnixVolume *unix_volume = G_UNIX_VOLUME (volume);
++#ifdef __FreeBSD__
++ char *argv[] = {"cdcontrol", "-f", NULL, "eject", NULL};
++ argv[2] = unix_volume->device_path;
++#else
+ char *argv[] = { "eject", NULL, NULL };
+
+ argv[1] = unix_volume->device_path;
++#endif
+
+ eject_mount_do (volume, cancellable, callback, user_data, argv);
+ }
diff --git a/devel/glib20/files/patch-gio_libasyncns_asyncns.c b/devel/glib20/files/patch-gio_libasyncns_asyncns.c
new file mode 100644
index 000000000..966dd27a6
--- /dev/null
+++ b/devel/glib20/files/patch-gio_libasyncns_asyncns.c
@@ -0,0 +1,11 @@
+--- gio/libasyncns/asyncns.c.orig 2009-05-05 15:25:10.000000000 -0400
++++ gio/libasyncns/asyncns.c 2009-05-05 15:25:51.000000000 -0400
+@@ -35,6 +35,8 @@
+ #include <errno.h>
+ #include <sys/wait.h>
+ #include <sys/types.h>
++#include <sys/time.h>
++#include <sys/resource.h>
+ #include <pwd.h>
+ #include <netinet/in.h>
+ #include <arpa/nameser.h>
diff --git a/devel/glib20/files/patch-gio_tests_gdbus-peer.c b/devel/glib20/files/patch-gio_tests_gdbus-peer.c
new file mode 100644
index 000000000..1ab76dc8c
--- /dev/null
+++ b/devel/glib20/files/patch-gio_tests_gdbus-peer.c
@@ -0,0 +1,11 @@
+--- gio/tests/gdbus-peer.c.orig 2010-08-16 21:30:03.000000000 +0200
++++ gio/tests/gdbus-peer.c 2010-08-16 23:13:32.000000000 +0200
+@@ -42,6 +42,8 @@
+ #include <sys/socket.h>
+ #endif
+
++#include <sys/socket.h>
++
+ /* used in test_overflow */
+ #ifdef G_OS_UNIX
+ #include <gio/gunixconnection.h>
diff --git a/devel/glib20/files/patch-gio_xdgmime_xdgmime.c b/devel/glib20/files/patch-gio_xdgmime_xdgmime.c
new file mode 100644
index 000000000..8c36dc5d8
--- /dev/null
+++ b/devel/glib20/files/patch-gio_xdgmime_xdgmime.c
@@ -0,0 +1,11 @@
+--- gio/xdgmime/xdgmime.c.orig Mon Nov 8 22:25:27 2004
++++ gio/xdgmime/xdgmime.c Sat Nov 13 10:27:22 2004
+@@ -204,7 +204,7 @@
+
+ xdg_data_dirs = getenv ("XDG_DATA_DIRS");
+ if (xdg_data_dirs == NULL)
+- xdg_data_dirs = "/usr/local/share/:/usr/share/";
++ xdg_data_dirs = "/usr/local/share/";
+
+ ptr = xdg_data_dirs;
+
diff --git a/devel/glib20/files/patch-gio_xdgmime_xdgmimecache.h b/devel/glib20/files/patch-gio_xdgmime_xdgmimecache.h
new file mode 100644
index 000000000..039571d8b
--- /dev/null
+++ b/devel/glib20/files/patch-gio_xdgmime_xdgmimecache.h
@@ -0,0 +1,12 @@
+--- gio/xdgmime/xdgmimecache.h.orig 2008-06-12 10:25:40.000000000 -0400
++++ gio/xdgmime/xdgmimecache.h 2008-06-14 00:49:59.000000000 -0400
+@@ -46,6 +46,9 @@ typedef struct _XdgMimeCache XdgMimeCach
+ #define _xdg_mime_cache_get_icon XDG_RESERVED_ENTRY(cache_get_icon)
+ #define _xdg_mime_cache_get_generic_icon XDG_RESERVED_ENTRY(cache_get_generic_icon)
+ #define _xdg_mime_cache_glob_dump XDG_RESERVED_ENTRY(cache_glob_dump)
++#define _xdg_mime_cache_is_valid_mime_type XDG_RESERVED_ENTRY(cache_is_valid_mime_type)
++#define _xdg_mime_cache_mime_type_equal XDG_RESERVED_ENTRY(cache_mime_type_equal)
++#define _xdg_mime_cache_media_type_equal XDG_RESERVED_ENTRY(cache_media_type_equal)
+ #endif
+
+ extern XdgMimeCache **_caches;
diff --git a/devel/glib20/files/patch-glib::libcharset::Makefile.in b/devel/glib20/files/patch-glib::libcharset::Makefile.in
new file mode 100644
index 000000000..7175b8581
--- /dev/null
+++ b/devel/glib20/files/patch-glib::libcharset::Makefile.in
@@ -0,0 +1,31 @@
+--- glib/libcharset/Makefile.in.orig 2010-08-08 12:46:01.000000000 +0200
++++ glib/libcharset/Makefile.in 2010-08-08 12:46:01.000000000 +0200
+@@ -328,7 +328,7 @@ EXTRA_DIST = README config.charset ref-a
+ codeset.m4 update.sh make-patch.sh libcharset-glib.patch
+ TEST_PROGS =
+ INCLUDES = \
+- -DLIBDIR=\"$(libdir)\" $(config_h_INCLUDES)
++ -DLIBDIR=\"$(prefix)/libdata\" $(config_h_INCLUDES)
+
+ noinst_LTLIBRARIES = libcharset.la
+ libcharset_la_SOURCES = \
+@@ -336,8 +336,8 @@ libcharset_la_SOURCES = \
+ localcharset.h \
+ localcharset.c
+
+-charset_alias = $(DESTDIR)$(libdir)/charset.alias
+-charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
++charset_alias = $(DESTDIR)$(prefix)/libdata/charset.alias
++charset_tmp = $(DESTDIR)$(prefix)/libdata/charset.tmp
+ SUFFIXES = .sed .sin
+ CLEANFILES = charset.alias ref-add.sed ref-del.sed
+ all: all-am
+@@ -566,7 +566,7 @@ install-dvi: install-dvi-am
+
+ install-dvi-am:
+
+-install-exec-am: install-exec-local
++install-exec-am: # install-exec-local
+
+ install-html: install-html-am
+
diff --git a/devel/glib20/files/patch-glib_Makefile.in b/devel/glib20/files/patch-glib_Makefile.in
new file mode 100644
index 000000000..d58efb723
--- /dev/null
+++ b/devel/glib20/files/patch-glib_Makefile.in
@@ -0,0 +1,31 @@
+--- glib/Makefile.in.orig 2010-08-08 12:46:01.000000000 +0200
++++ glib/Makefile.in 2010-08-08 12:46:01.000000000 +0200
+@@ -529,7 +529,7 @@ BUILT_SOURCES = glibconfig-stamp $(am__a
+ #
+ DISTCLEANFILES = glibconfig-stamp glibconfig.h
+ CLEANFILES = $(am__append_2)
+-configexecincludedir = $(libdir)/glib-2.0/include
++configexecincludedir = $(includedir)/glib-2.0
+ nodist_configexecinclude_HEADERS = glibconfig.h
+ @HAVE_GOOD_PRINTF_FALSE@PRINTF_SUBDIR = gnulib
+ @HAVE_GOOD_PRINTF_FALSE@printf_la = gnulib/libgnulib.la
+@@ -1530,7 +1530,7 @@ info: info-recursive
+
+ info-am:
+
+-install-data-am: install-data-local install-dist_gdbSCRIPTS \
++install-data-am: install-data-local \
+ install-glibincludeHEADERS install-glibsubincludeHEADERS \
+ install-tapsetDATA
+ @$(NORMAL_INSTALL)
+@@ -1786,9 +1786,7 @@ distclean-local:
+ libglib-gdb.py: libglib-gdb.py.in
+ $(AM_V_GEN) $(SED) -e "s|\@datadir\@|$(datadir)|" $(srcdir)/libglib-gdb.py.in > libglib-gdb.py
+
+-install-data-hook: libglib-gdb.py
+- mkdir -p $(DESTDIR)$(datadir)/gdb/auto-load$(ABS_GLIB_RUNTIME_LIBDIR)
+- $(INSTALL) libglib-gdb.py $(DESTDIR)$(datadir)/gdb/auto-load$(ABS_GLIB_RUNTIME_LIBDIR)/libglib-2.0.so.0.$(LT_CURRENT).$(LT_REVISION)-gdb.py
++install-data-hook:
+ @HAVE_GLIB_RUNTIME_LIBDIR_TRUE@ mkdir -p $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+ @HAVE_GLIB_RUNTIME_LIBDIR_TRUE@ mv $(DESTDIR)$(libdir)/libglib-2.0.so.0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+ @HAVE_GLIB_RUNTIME_LIBDIR_TRUE@ mv $(DESTDIR)$(libdir)/libglib-2.0.so.0.$(LT_CURRENT).$(LT_REVISION) $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
diff --git a/devel/glib20/files/patch-glib_gregex.c b/devel/glib20/files/patch-glib_gregex.c
new file mode 100644
index 000000000..ef7f0a87b
--- /dev/null
+++ b/devel/glib20/files/patch-glib_gregex.c
@@ -0,0 +1,13 @@
+--- glib/gregex.c.orig 2007-09-09 18:35:32.000000000 -0400
++++ glib/gregex.c 2007-09-09 18:36:05.000000000 -0400
+@@ -164,8 +164,10 @@ match_error (gint errcode)
+ case PCRE_ERROR_DFA_RECURSE:
+ case PCRE_ERROR_RECURSIONLIMIT:
+ return _("recursion limit reached");
++#ifdef PCRE_ERROR_NULLWSLIMIT
+ case PCRE_ERROR_NULLWSLIMIT:
+ return _("workspace limit for empty substrings reached");
++#endif
+ case PCRE_ERROR_BADNEWLINE:
+ return _("invalid combination of newline flags");
+ default:
diff --git a/devel/glib20/files/patch-glib_gutils.c b/devel/glib20/files/patch-glib_gutils.c
new file mode 100644
index 000000000..95a02e475
--- /dev/null
+++ b/devel/glib20/files/patch-glib_gutils.c
@@ -0,0 +1,20 @@
+--- glib/gutils.c.orig Wed Mar 23 09:55:02 2005
++++ glib/gutils.c Thu Apr 7 01:06:16 2005
+@@ -1929,7 +1929,7 @@ g_get_system_data_dirs (void)
+ data_dirs = (gchar *) g_getenv ("XDG_DATA_DIRS");
+
+ if (!data_dirs || !data_dirs[0])
+- data_dirs = "/usr/local/share/:/usr/share/";
++ data_dirs = "/usr/local/share/";
+
+ data_dir_vector = g_strsplit (data_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
+ #endif
+@@ -1983,7 +1983,7 @@ g_get_system_config_dirs (void)
+ conf_dirs = (gchar *) g_getenv ("XDG_CONFIG_DIRS");
+
+ if (!conf_dirs || !conf_dirs[0])
+- conf_dirs = "/etc/xdg";
++ conf_dirs = "/usr/local/etc/xdg:/etc/xdg";
+
+ conf_dir_vector = g_strsplit (conf_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
+ #endif
diff --git a/devel/glib20/files/patch-gmodule::gmodule-dl.c b/devel/glib20/files/patch-gmodule::gmodule-dl.c
new file mode 100644
index 000000000..586d7f80b
--- /dev/null
+++ b/devel/glib20/files/patch-gmodule::gmodule-dl.c
@@ -0,0 +1,20 @@
+--- gmodule/gmodule-dl.c.orig Sat Feb 17 08:28:07 2001
++++ gmodule/gmodule-dl.c Fri Jan 18 09:48:45 2002
+@@ -104,6 +104,7 @@
+ static gpointer
+ _g_module_self (void)
+ {
++#ifndef __FreeBSD__
+ gpointer handle;
+
+ /* to query symbols from the program itself, special link options
+@@ -115,6 +116,9 @@
+ g_module_set_error (fetch_dlerror (TRUE));
+
+ return handle;
++#else
++ return RTLD_DEFAULT;
++#endif
+ }
+
+ static void
diff --git a/devel/glib20/files/patch-gobject_Makefile.in b/devel/glib20/files/patch-gobject_Makefile.in
new file mode 100644
index 000000000..12a20215a
--- /dev/null
+++ b/devel/glib20/files/patch-gobject_Makefile.in
@@ -0,0 +1,22 @@
+--- gobject/Makefile.in.orig 2010-06-08 09:19:51.000000000 +0200
++++ gobject/Makefile.in 2010-06-08 09:20:41.000000000 +0200
+@@ -1236,7 +1236,7 @@ info: info-recursive
+
+ info-am:
+
+-install-data-am: install-data-local install-dist_gdbSCRIPTS \
++install-data-am: install-data-local \
+ install-libgobjectincludeHEADERS install-tapsetDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+@@ -1460,9 +1460,7 @@ libgobject-gdb.py: libgobject-gdb.py.in
+ uninstall-gdb:
+ -rm -r $(DESTDIR)$(datadir)/gdb
+
+-install-data-hook: libgobject-gdb.py
+- mkdir -p $(DESTDIR)$(datadir)/gdb/auto-load/$(ABS_GLIB_RUNTIME_LIBDIR)
+- $(INSTALL) libgobject-gdb.py $(DESTDIR)$(datadir)/gdb/auto-load/$(ABS_GLIB_RUNTIME_LIBDIR)/libgobject-2.0.so.0.$(LT_CURRENT).$(LT_REVISION)-gdb.py
++install-data-hook:
+ @HAVE_GLIB_RUNTIME_LIBDIR_TRUE@ mkdir -p $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+ @HAVE_GLIB_RUNTIME_LIBDIR_TRUE@ mv $(DESTDIR)$(libdir)/libgobject-2.0.so.0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+ @HAVE_GLIB_RUNTIME_LIBDIR_TRUE@ mv $(DESTDIR)$(libdir)/libgobject-2.0.so.0.$(LT_CURRENT).$(LT_REVISION) $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
diff --git a/devel/glib20/files/patch-gthread_gthread-posix.c b/devel/glib20/files/patch-gthread_gthread-posix.c
new file mode 100644
index 000000000..47c5ab8f1
--- /dev/null
+++ b/devel/glib20/files/patch-gthread_gthread-posix.c
@@ -0,0 +1,21 @@
+--- gthread/gthread-posix.c.orig Mon Nov 1 13:47:12 2004
++++ gthread/gthread-posix.c Wed Mar 9 14:21:20 2005
+@@ -125,7 +129,8 @@
+ g_thread_impl_init(void)
+ {
+ #ifdef _SC_THREAD_STACK_MIN
+- g_thread_min_stack_size = MAX (sysconf (_SC_THREAD_STACK_MIN), 0);
++ g_thread_min_stack_size = MAX (sysconf (_SC_THREAD_STACK_MIN),
++ g_thread_min_stack_size);
+ #endif /* _SC_THREAD_STACK_MIN */
+ #ifdef HAVE_PRIORITIES
+ # ifdef G_THREADS_IMPL_POSIX
+@@ -176,7 +181,7 @@
+ result = pthread_mutex_trylock ((pthread_mutex_t *) mutex);
+
+ #ifdef G_THREADS_IMPL_POSIX
+- if (result == EBUSY)
++ if ((result == EBUSY) || (result == EDEADLK))
+ return FALSE;
+ #else /* G_THREADS_IMPL_DCE */
+ if (result == 0)