summaryrefslogtreecommitdiffstats
path: root/devel/glib20/files
diff options
context:
space:
mode:
authorkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2013-03-29 02:25:49 +0800
committerkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2013-03-29 02:25:49 +0800
commit4ea63f9b79c97f1540f3dd6d066d076352bf76c9 (patch)
tree8d58e58e09cde22418974687c4731d5186d8b2cd /devel/glib20/files
parent46a0076fda91811ae449419936ef753bf1e767a7 (diff)
downloadmarcuscom-ports-4ea63f9b79c97f1540f3dd6d066d076352bf76c9.tar
marcuscom-ports-4ea63f9b79c97f1540f3dd6d066d076352bf76c9.tar.gz
marcuscom-ports-4ea63f9b79c97f1540f3dd6d066d076352bf76c9.tar.bz2
marcuscom-ports-4ea63f9b79c97f1540f3dd6d066d076352bf76c9.tar.lz
marcuscom-ports-4ea63f9b79c97f1540f3dd6d066d076352bf76c9.tar.xz
marcuscom-ports-4ea63f9b79c97f1540f3dd6d066d076352bf76c9.tar.zst
marcuscom-ports-4ea63f9b79c97f1540f3dd6d066d076352bf76c9.zip
Welkom Glib 2.36.0. Now with 100% less gio-fam-backend. Replaced with
kqueue backend written part of a NetBSD Google code of summer. git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@17242 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.c124
-rw-r--r--devel/glib20/files/patch-ae43
-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_fam_Makefile.in35
-rw-r--r--devel/glib20/files/patch-gio_glib-compile-schemas.c16
-rw-r--r--devel/glib20/files/patch-gio_gunixmount.c21
-rw-r--r--devel/glib20/files/patch-gio_gunixmounts.c158
-rw-r--r--devel/glib20/files/patch-gio_gunixvolume.c17
-rw-r--r--devel/glib20/files/patch-gio_tests_gdbus-peer.c11
-rw-r--r--devel/glib20/files/patch-gio_tests_include.c10
-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-2.0.pc.in8
-rw-r--r--devel/glib20/files/patch-glib::libcharset::Makefile.in11
-rw-r--r--devel/glib20/files/patch-glib_Makefile.in31
-rw-r--r--devel/glib20/files/patch-glib_deprecated_gthread.h10
-rw-r--r--devel/glib20/files/patch-glib_fix_hidden10
-rw-r--r--devel/glib20/files/patch-glib_gthread-posix.c20
-rw-r--r--devel/glib20/files/patch-glib_gutils.c20
-rw-r--r--devel/glib20/files/patch-glib_tests_gdatetime.c20
-rw-r--r--devel/glib20/files/patch-glib_tests_utils.c11
-rw-r--r--devel/glib20/files/patch-gmodule::gmodule-dl.c20
-rw-r--r--devel/glib20/files/patch-gobject_Makefile.in22
26 files changed, 698 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..04e45460c
--- /dev/null
+++ b/devel/glib20/files/extra-patch-glib_Makefile.in
@@ -0,0 +1,11 @@
+--- glib/Makefile.in.orig 2012-09-27 15:07:28.000000000 +0000
++++ glib/Makefile.in 2012-09-27 15:08:02.000000000 +0000
+@@ -415,7 +415,7 @@
+ INSTOBJEXT = @INSTOBJEXT@
+ INTLLIBS = @INTLLIBS@
+ LD = @LD@
+-LDFLAGS = @LDFLAGS@
++LDFLAGS = @LDFLAGS@ -licui18n
+ LIBELF_CFLAGS = @LIBELF_CFLAGS@
+ LIBELF_LIBS = @LIBELF_LIBS@
+ LIBFFI_CFLAGS = @LIBFFI_CFLAGS@
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..1d9af5fa7
--- /dev/null
+++ b/devel/glib20/files/extra-patch-glib_gunicollate.c
@@ -0,0 +1,124 @@
+--- glib/gunicollate.c.orig 2012-11-24 20:50:39.000000000 +0000
++++ glib/gunicollate.c 2013-03-08 12:16:59.000000000 +0000
+@@ -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,11 +40,54 @@
+ #include "gstring.h"
+ #include "gstrfuncs.h"
+ #include "gtestutils.h"
++#include "gthread.h"
+ #include "gcharset.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 */
+@@ -128,6 +175,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..e62156bf5
--- /dev/null
+++ b/devel/glib20/files/patch-ae
@@ -0,0 +1,43 @@
+--- configure.orig 2013-03-28 02:59:16.000000000 +0000
++++ configure 2013-03-28 03:00:20.000000000 +0000
+@@ -603,6 +603,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
+@@ -5699,7 +5702,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
+@@ -23089,7 +23092,7 @@
+ fi
+ done
+
+-for ac_func in chown lchmod lchown fchmod fchown link utimes getgrgid getpwuid getresuid
++for ac_func in chown lchmod lchown fchmod fchown link utimes getgrgid getpwuid getresuid 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"
+@@ -26629,10 +26632,10 @@
+ # b) FreeBSD doesn't do this either.
+ #
+ case $host in
+- *-*-freebsd*|*-*-linux*)
++ *-*-linux*)
+ G_THREAD_LIBS_FOR_GTHREAD="`echo $G_THREAD_LIBS | sed s/-pthread/-lpthread/`"
+ ;;
+- *-*-openbsd*)
++ *-*-openbsd*|*-*-freebsd*)
+ LDFLAGS="$LDFLAGS -pthread"
+ ;;
+ *)
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_fam_Makefile.in b/devel/glib20/files/patch-gio_fam_Makefile.in
new file mode 100644
index 000000000..033ff3f5d
--- /dev/null
+++ b/devel/glib20/files/patch-gio_fam_Makefile.in
@@ -0,0 +1,35 @@
+--- gio/fam/Makefile.in.orig 2012-03-07 21:07:42.000000000 +0100
++++ gio/fam/Makefile.in 2012-03-07 21:08:30.000000000 +0100
+@@ -87,9 +87,7 @@
+ am__installdirs = "$(DESTDIR)$(giomoduledir)"
+ LTLIBRARIES = $(giomodule_LTLIBRARIES)
+ am__DEPENDENCIES_1 =
+-libgiofam_la_DEPENDENCIES = $(top_builddir)/gio/libgio-2.0.la \
+- $(top_builddir)/gobject/libgobject-2.0.la \
+- $(top_builddir)/glib/libglib-2.0.la $(am__DEPENDENCIES_1) \
++libgiofam_la_DEPENDENCIES = \
+ $(am__DEPENDENCIES_1)
+ am__objects_1 =
+ am_libgiofam_la_OBJECTS = libgiofam_la-fam-helper.lo \
+@@ -402,9 +400,9 @@
+
+ libgiofam_la_LDFLAGS = $(module_flags)
+ libgiofam_la_LIBADD = \
+- $(top_builddir)/gio/libgio-2.0.la \
+- $(top_builddir)/gobject/libgobject-2.0.la \
+- $(top_builddir)/glib/libglib-2.0.la \
++ -lgio-2.0 \
++ -lgobject-2.0 \
++ -lglib-2.0 \
+ $(GLIB_LIBS) \
+ $(FAM_LIBS) \
+ $(NULL)
+@@ -843,7 +841,7 @@
+
+ install-data-hook:
+ if $(RUN_QUERY_MODULES) && test -z "$(DESTDIR)" ; then \
+- $(top_builddir)/gio/gio-querymodules$(EXEEXT) $(DESTDIR)$(GIO_MODULE_DIR) ; \
++ gio-querymodules$(EXEEXT) $(DESTDIR)$(GIO_MODULE_DIR) ; \
+ fi
+
+ uninstall-local:
diff --git a/devel/glib20/files/patch-gio_glib-compile-schemas.c b/devel/glib20/files/patch-gio_glib-compile-schemas.c
new file mode 100644
index 000000000..e92fac5ba
--- /dev/null
+++ b/devel/glib20/files/patch-gio_glib-compile-schemas.c
@@ -0,0 +1,16 @@
+--- gio/glib-compile-schemas.c.orig 2012-06-14 16:39:22.000000000 +0200
++++ gio/glib-compile-schemas.c 2012-06-14 16:39:55.000000000 +0200
+@@ -1204,11 +1204,13 @@
+ return;
+ }
+
++#if 0
+ if (path && (g_str_has_prefix (path, "/apps/") ||
+ g_str_has_prefix (path, "/desktop/") ||
+ g_str_has_prefix (path, "/system/")))
+ g_printerr ("warning: Schema '%s' has path '%s'. Paths starting with "
+ "'/apps/', '/desktop/' or '/system/' are deprecated.\n", id, path);
++#endif
+
+ state->schema_state = schema_state_new (path, gettext_domain,
+ extends, extends_name, list_of);
diff --git a/devel/glib20/files/patch-gio_gunixmount.c b/devel/glib20/files/patch-gio_gunixmount.c
new file mode 100644
index 000000000..e0b3caa37
--- /dev/null
+++ b/devel/glib20/files/patch-gio_gunixmount.c
@@ -0,0 +1,21 @@
+--- gio/gunixmount.c.orig 2011-08-31 19:47:35.000000000 +0200
++++ gio/gunixmount.c 2011-09-15 17:50:24.000000000 +0200
+@@ -449,12 +449,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
+
+ 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..608bd95a3
--- /dev/null
+++ b/devel/glib20/files/patch-gio_gunixmounts.c
@@ -0,0 +1,158 @@
+--- gio/gunixmounts.c.orig 2012-05-02 22:02:54.000000000 -0500
++++ gio/gunixmounts.c 2012-05-02 22:15:35.000000000 -0500
+@@ -155,6 +155,9 @@
+ GFileMonitor *fstab_monitor;
+ GFileMonitor *mtab_monitor;
+
++ guint mount_poller_source;
++ GList *mount_poller_mounts;
++
+ GSource *proc_mounts_watch_source;
+ };
+
+@@ -167,6 +170,8 @@
+ 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
+@@ -193,6 +198,7 @@
+ #endif
+
+ #if (defined(HAVE_GETVFSSTAT) || defined(HAVE_GETFSSTAT)) && defined(HAVE_FSTAB_H) && defined(HAVE_SYS_MOUNT_H)
++#include <sys/param.h>
+ #include <sys/ucred.h>
+ #include <sys/mount.h>
+ #include <fstab.h>
+@@ -243,22 +249,29 @@
+ "/", /* we already have "Filesystem root" in Nautilus */
+ "/bin",
+ "/boot",
++ "/compat/linux/proc",
++ "/compat/linux/sys",
+ "/dev",
+ "/etc",
+ "/home",
+ "/lib",
+ "/lib64",
++ "/libexec",
+ "/live/cow",
+ "/live/image",
+ "/media",
+ "/mnt",
+ "/opt",
++ "/rescue",
+ "/root",
+ "/sbin",
+ "/srv",
+ "/tmp",
+ "/usr",
+ "/usr/local",
++ "/usr/obj",
++ "/usr/ports",
++ "/usr/src",
+ "/var",
+ "/var/crash",
+ "/var/local",
+@@ -299,6 +312,7 @@
+ "devfs",
+ "devpts",
+ "ecryptfs",
++ "fdescfs",
+ "kernfs",
+ "linprocfs",
+ "proc",
+@@ -1122,6 +1136,10 @@
+ if (stat (monitor_file, &buf) == 0)
+ return (guint64)buf.st_mtime;
+ }
++ else
++ {
++ return mount_poller_time;
++ }
+ return 0;
+ }
+
+@@ -1267,6 +1285,13 @@
+ 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;
+
+ G_OBJECT_CLASS (g_unix_mount_monitor_parent_class)->finalize (object);
+@@ -1348,6 +1373,52 @@
+ }
+
+ 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 gboolean
+ proc_mounts_changed (GIOChannel *channel,
+ GIOCondition cond,
+ gpointer user_data)
+@@ -1412,6 +1483,12 @@
+ 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_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_tests_include.c b/devel/glib20/files/patch-gio_tests_include.c
new file mode 100644
index 000000000..165c97b38
--- /dev/null
+++ b/devel/glib20/files/patch-gio_tests_include.c
@@ -0,0 +1,10 @@
+--- glib/tests/include.c.orig 2012-03-06 12:11:39.000000000 +0100
++++ glib/tests/include.c 2012-03-06 12:13:17.000000000 +0100
+@@ -3,6 +3,7 @@
+ #define _POSIX_C_SOURCE 0
+ #undef _GNU_SOURCE
+ #undef _XOPEN_SOURCE
++#include <sys/types.h>
+ #include <pthread.h>
+ #include <glib.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-2.0.pc.in b/devel/glib20/files/patch-glib-2.0.pc.in
new file mode 100644
index 000000000..9bd74ad43
--- /dev/null
+++ b/devel/glib20/files/patch-glib-2.0.pc.in
@@ -0,0 +1,8 @@
+--- glib-2.0.pc.in.orig 2012-01-16 04:12:06.000000000 +0100
++++ glib-2.0.pc.in 2012-03-06 12:30:11.000000000 +0100
+@@ -13,4 +13,4 @@
+ Requires.private: @PCRE_REQUIRES@
+ Libs: -L${libdir} -lglib-2.0 @INTLLIBS@
+ Libs.private: @G_THREAD_LIBS@ @G_LIBS_EXTRA@ @PCRE_LIBS@ @INTLLIBS@ @ICONV_LIBS@
+-Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include @GLIB_EXTRA_CFLAGS@
++Cflags: -I${includedir}/glib-2.0 @GLIB_EXTRA_CFLAGS@
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..b3589ad59
--- /dev/null
+++ b/devel/glib20/files/patch-glib::libcharset::Makefile.in
@@ -0,0 +1,11 @@
+--- 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
+@@ -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..30d6f1be8
--- /dev/null
+++ b/devel/glib20/files/patch-glib_Makefile.in
@@ -0,0 +1,31 @@
+--- glib/Makefile.in.orig 2012-09-24 01:59:13.000000000 +0000
++++ glib/Makefile.in 2012-09-24 02:02:07.000000000 +0000
+@@ -585,7 +585,7 @@
+ #
+ DISTCLEANFILES = glibconfig-stamp glibconfig.h
+ CLEANFILES = libglib-gdb.py glib-public-headers.txt $(am__append_6)
+-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
+@@ -1617,7 +1617,7 @@
+ info-am:
+
+ install-data-am: install-data-local install-deprecatedincludeHEADERS \
+- install-dist_gdbSCRIPTS install-glibincludeHEADERS \
++ install-glibincludeHEADERS \
+ install-glibsubincludeHEADERS install-tapsetDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+@@ -1906,9 +1906,7 @@
+ libglib-gdb.py: libglib-gdb.py.in
+ $(AM_V_GEN) $(SED) -e "s|\@datadir\@|$(datadir)|" $(srcdir)/libglib-gdb.py.in > $(builddir)/libglib-gdb.py
+
+-install-data-hook: libglib-gdb.py
+- mkdir -p $(DESTDIR)$(datadir)/gdb/auto-load$(ABS_GLIB_RUNTIME_LIBDIR)
+- $(INSTALL) $(builddir)/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_deprecated_gthread.h b/devel/glib20/files/patch-glib_deprecated_gthread.h
new file mode 100644
index 000000000..889976f1f
--- /dev/null
+++ b/devel/glib20/files/patch-glib_deprecated_gthread.h
@@ -0,0 +1,10 @@
+--- ./glib/deprecated/gthread.h.orig 2012-05-27 17:07:04.000000000 +0200
++++ ./glib/deprecated/gthread.h 2012-05-27 17:07:19.000000000 +0200
+@@ -120,6 +120,7 @@
+ gpointer user_data);
+
+ #ifndef G_OS_WIN32
++#include <sys/types.h>
+ #include <pthread.h>
+ #endif
+
diff --git a/devel/glib20/files/patch-glib_fix_hidden b/devel/glib20/files/patch-glib_fix_hidden
new file mode 100644
index 000000000..813c49808
--- /dev/null
+++ b/devel/glib20/files/patch-glib_fix_hidden
@@ -0,0 +1,10 @@
+--- glib/gmem.c.orig 2011-02-10 00:31:42.000000000 +0100
++++ glib/gmem.c 2011-12-07 00:21:38.000000000 +0100
+@@ -39,6 +39,7 @@
+ #include "gbacktrace.h"
+ #include "gtestutils.h"
+ #include "gthread.h"
++#include "gthreadprivate.h"
+ #include "glib_trace.h"
+
+
diff --git a/devel/glib20/files/patch-glib_gthread-posix.c b/devel/glib20/files/patch-glib_gthread-posix.c
new file mode 100644
index 000000000..f19007f8c
--- /dev/null
+++ b/devel/glib20/files/patch-glib_gthread-posix.c
@@ -0,0 +1,20 @@
+--- glib/gthread-posix.c.orig 2012-11-10 03:24:06.000000000 +0000
++++ glib/gthread-posix.c 2012-11-12 18:06:36.000000000 +0000
+@@ -89,7 +89,7 @@
+ if G_UNLIKELY (mutex == NULL)
+ g_thread_abort (errno, "malloc");
+
+-#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
++#if defined(PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP) && !defined(__FreeBSD__)
+ {
+ pthread_mutexattr_t attr;
+ pthread_mutexattr_init (&attr);
+@@ -101,7 +101,7 @@
+ if G_UNLIKELY ((status = pthread_mutex_init (mutex, pattr)) != 0)
+ g_thread_abort (status, "pthread_mutex_init");
+
+-#ifdef PTHREAD_ADAPTIVE_MUTEX_NP
++#if defined(PTHREAD_ADAPTIVE_MUTEX_NP) && !defined(__FreeBSD__)
+ pthread_mutexattr_destroy (&attr);
+ #endif
+
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-glib_tests_gdatetime.c b/devel/glib20/files/patch-glib_tests_gdatetime.c
new file mode 100644
index 000000000..e86fb7ffd
--- /dev/null
+++ b/devel/glib20/files/patch-glib_tests_gdatetime.c
@@ -0,0 +1,20 @@
+--- glib/tests/gdatetime.c.orig 2013-03-13 13:39:09.000000000 +0000
++++ glib/tests/gdatetime.c 2013-03-28 10:15:49.000000000 +0000
+@@ -1276,7 +1276,7 @@
+ gint i1, i2;
+
+ #ifdef G_OS_UNIX
+- tz = g_time_zone_new ("Canada/Eastern");
++ tz = g_time_zone_new ("America/Montreal");
+ #elif defined G_OS_WIN32
+ tz = g_time_zone_new ("Eastern Standard Time");
+ #endif
+@@ -1309,7 +1309,7 @@
+ gint i1, i2;
+
+ #ifdef G_OS_UNIX
+- tz = g_time_zone_new ("Canada/Eastern");
++ tz = g_time_zone_new ("America/Montreal");
+ #elif defined G_OS_WIN32
+ tz = g_time_zone_new ("Eastern Standard Time");
+ #endif
diff --git a/devel/glib20/files/patch-glib_tests_utils.c b/devel/glib20/files/patch-glib_tests_utils.c
new file mode 100644
index 000000000..0f7544cc4
--- /dev/null
+++ b/devel/glib20/files/patch-glib_tests_utils.c
@@ -0,0 +1,11 @@
+--- glib/tests/utils.c.orig 2012-09-24 02:19:54.000000000 +0000
++++ glib/tests/utils.c 2012-09-24 02:20:48.000000000 +0000
+@@ -416,7 +416,7 @@
+
+ xdg = (gchar *)g_getenv ("XDG_CONFIG_DIRS");
+ if (!xdg)
+- xdg = "/etc/xdg";
++ xdg = "/usr/local/etc/xdg:/etc/xdg";
+
+ dirs = g_get_system_config_dirs ();
+
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..f99ec4a97
--- /dev/null
+++ b/devel/glib20/files/patch-gobject_Makefile.in
@@ -0,0 +1,22 @@
+--- gobject/Makefile.in.orig 2012-05-03 11:42:11.000000000 +0200
++++ gobject/Makefile.in 2012-05-03 11:42:51.000000000 +0200
+@@ -1381,7 +1381,7 @@
+
+ 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
+@@ -1649,9 +1649,7 @@
+ 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) $(builddir)/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)