Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143818190
D25279.id73135.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
64 KB
Referenced Files
None
Subscribers
None
D25279.id73135.diff
View Options
Index: devel/glib20/Makefile
===================================================================
--- devel/glib20/Makefile
+++ devel/glib20/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= glib
-PORTVERSION= 2.56.3
-PORTREVISION= 7
+PORTVERSION= 2.64.3
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= GNOME
@@ -22,24 +21,20 @@
LIB_DEPENDS+= libpcre.so:devel/pcre \
libffi.so:devel/libffi
-GNU_CONFIGURE= yes
USE_LDCONFIG= yes
# iconv:wchar_t - our iconv in base doesn't support utf-8 -> wchar_t (boooo)
# (wchar_t is used by glibmm, rawtherapee triggered this)
-USES+= compiler:c11 gettext gmake gnome iconv:wchar_t libtool \
- localbase pathfix perl5 pkgconfig python shebangfix
-USE_PYTHON= py3kplist
-USE_PERL5= build
-CONFIGURE_ARGS= --disable-gtk-doc --with-html-dir=${PREFIX}/share/doc \
- --enable-static=yes \
- --with-pcre=system \
- --disable-fam
-CONFIGURE_ENV= ac_cv_header_sys_inotify_h=
-INSTALL_TARGET= install-strip
+USES+= compiler:c11 gettext gnome iconv:wchar_t libtool \
+ localbase:ldflags meson pathfix pkgconfig python shebangfix
+MESON_ARGS= -Diconv=external
-SHEBANG_FILES= */*.pl
+MESON_ARGS+= -Dselinux=disabled \
+ -Dlibmount=disabled \
+ -Dgtk_doc=false \
+ -Dxattr=false \
+ -Dfam=false
-LIBVERSION= 0.5600.3
+LIBVERSION= 0.6400.3
PLIST_SUB+= LIBVERSION=${LIBVERSION}
glib_MAN= gtester.1 gtester-report.1 glib-gettextize.1
@@ -48,67 +43,47 @@
glib-compile-resources.1 gresource.1 gdbus-codegen.1
gobject_MAN= glib-genmarshal.1 glib-mkenums.1 gobject-query.1
-OPTIONS_DEFINE= DEBUG MANPAGES NLS
+OPTIONS_DEFINE= MANPAGES NLS
OPTIONS_DEFAULT= MANPAGES
OPTIONS_SUB= yes
-DEBUG_CONFIGURE_ON= --enable-debug=yes
-
MANPAGES_BUILD_DEPENDS= docbook-xml>4.1.2:textproc/docbook-xml \
docbook-xsl>0:textproc/docbook-xsl
MANPAGES_USE= GNOME=libxslt:build
-MANPAGES_CONFIGURE_ENABLE= man
-MANPAGES_CONFIGURE_ON= --with-xml-catalog=${LOCALBASE}/share/xml/catalog
+MANPAGES_MESON_TRUE= man
.include <bsd.port.pre.mk>
# doesn't build yet
-CONFIGURE_ARGS+=--disable-dtrace
+MESON_ARGS+= -Ddtrace=false
-.if empty(ICONV_LIB)
-CONFIGURE_ARGS+= --with-libiconv=no
-.else
-CONFIGURE_ARGS+= --with-libiconv=gnu
-.endif
-
.if ${ARCH} == powerpc64
EXTRA_PATCHES+= ${FILESDIR}/extra-arch-powerpc64
.endif
-# Let glib use asm code for implementing atomic ops on i386 and amd64.
-.if ${ARCH} == "i386"
-GLIB_ARCH= i486
-.elif ${ARCH} == "amd64"
-GLIB_ARCH= x86_64
-.else
-GLIB_ARCH= ${ARCH}
-.endif
-CONFIGURE_TARGET=${GLIB_ARCH}-portbld-freebsd${OSREL}
+# -Wl,--no-undefined seems to be causing issues: undefined reference to environ
+# both with lld and newer binutils
+#
+post-configure:
+ @${REINPLACE_CMD} -e 's/-Wl,--no-undefined//g' ${WRKSRC}/_build/build.ninja
post-patch:
- @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g ; \
- s|/usr/share/locale/locale|${LOCALBASE}/share/locale/locale|g' \
- ${WRKSRC}/glib/gutils.c
- @${REINPLACE_CMD} -e 's|inotify_support=yes|inotify_support=no| ; \
- s|-Werror|| ; \
- s|#define HAVE_SYS_INOTIFY_H 1||' ${WRKSRC}/configure
+ @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
+ ${WRKSRC}/glib/gutils.c \
+ ${WRKSRC}/gio/xdgmime/xdgmime.c \
+ ${WRKSRC}/glib/gcharset.c \
+ ${WRKSRC}/gio/tests/desktop-app-info.c
+ @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
+ ${WRKSRC}/docs/reference/gio/glib-compile-schemas.xml
+ @${REINPLACE_CMD} -e "s|'python3'|'${PYTHON_CMD}'|g" \
+ ${WRKSRC}/meson.build
-do-build-MANPAGES-on:
-.for m in glib gio gobject
-. for file in ${${m}_MAN}
- cd ${WRKSRC}/docs/reference/${m} && ${GMAKE} ${file}
-. endfor
-.endfor
-
post-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/share/GConf/gsettings
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/gio/modules
-
-post-install-MANPAGES-on:
-.for m in glib gio gobject
- ${INSTALL_MAN} ${${m}_MAN:S|^|${WRKSRC}/docs/reference/${m}/|} \
- ${STAGEDIR}${PREFIX}/man/man1
-.endfor
+ # Do not build depend on bash
+ @${MKDIR} ${STAGEDIR}${PREFIX}/share/bash-completion/completions
+ ${INSTALL_SCRIPT} ${WRKSRC}/gio/completion/* ${STAGEDIR}${PREFIX}/share/bash-completion/completions
.include <bsd.port.post.mk>
Index: devel/glib20/distinfo
===================================================================
--- devel/glib20/distinfo
+++ devel/glib20/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1538415400
-SHA256 (gnome2/glib-2.56.3.tar.xz) = a9a4c5b4c81b6c75bc140bdf5e32120ef3ce841b7413214ecf5f987acec74cb2
-SIZE (gnome2/glib-2.56.3.tar.xz) = 7009912
+TIMESTAMP = 1592207103
+SHA256 (gnome2/glib-2.64.3.tar.xz) = fe9cbc97925d14c804935f067a3ad77ef55c0bbe9befe68962318f5a767ceb22
+SIZE (gnome2/glib-2.64.3.tar.xz) = 4778964
Index: devel/glib20/files/extra-gobject_gdbscripts
===================================================================
--- devel/glib20/files/extra-gobject_gdbscripts
+++ /dev/null
@@ -1,22 +0,0 @@
---- gobject/Makefile.in.orig 2014-03-09 10:09:41.628312066 +0000
-+++ gobject/Makefile.in 2014-03-09 10:09:48.181311433 +0000
-@@ -2003,7 +2003,7 @@
-
- info-am:
-
--install-data-am: install-data-local install-dist_gdbSCRIPTS \
-+install-data-am: install-data-local \
- install-installed_testLTLIBRARIES \
- install-installed_testPROGRAMS install-installed_testSCRIPTS \
- install-installed_test_metaDATA \
-@@ -2230,9 +2230,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)
Index: devel/glib20/files/patch-config.h.in
===================================================================
--- devel/glib20/files/patch-config.h.in
+++ /dev/null
@@ -1,12 +0,0 @@
---- 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
-
Index: devel/glib20/files/patch-configure
===================================================================
--- devel/glib20/files/patch-configure
+++ /dev/null
@@ -1,16 +0,0 @@
---- configure.orig 2014-09-28 09:31:41.079343419 +0200
-+++ configure 2014-09-28 09:31:41.243342071 +0200
-@@ -26730,9 +26728,12 @@
- *android*)
- G_THREAD_LIBS_FOR_GTHREAD="$G_THREAD_LIBS"
- ;;
-- *-*-freebsd*|*-*-linux*)
-+ *-*-linux*)
- G_THREAD_LIBS_FOR_GTHREAD="`echo $G_THREAD_LIBS | sed s/-pthread/-lpthread/`"
- ;;
-+ *-*-freebsd*)
-+ LDFLAGS="$LDFLAGS -pthread"
-+ ;;
- *)
- G_THREAD_LIBS_FOR_GTHREAD="$G_THREAD_LIBS"
- ;;
Index: devel/glib20/files/patch-docs_reference_Makefile.in
===================================================================
--- devel/glib20/files/patch-docs_reference_Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- docs/reference/Makefile.in.orig 2013-09-26 18:08:36.000000000 +0200
-+++ docs/reference/Makefile.in 2013-09-26 18:08:53.000000000 +0200
-@@ -422,7 +422,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--SUBDIRS = glib gobject gio
-+SUBDIRS = #glib gobject gio
- all: all-recursive
-
- .SUFFIXES:
Index: devel/glib20/files/patch-docs_reference_gio_glib-compile-schemas.xml
===================================================================
--- /dev/null
+++ devel/glib20/files/patch-docs_reference_gio_glib-compile-schemas.xml
@@ -0,0 +1,11 @@
+--- docs/reference/gio/glib-compile-schemas.xml.orig 2020-05-20 10:46:43 UTC
++++ docs/reference/gio/glib-compile-schemas.xml
+@@ -45,7 +45,7 @@ At runtime, GSettings looks for schemas in the
+ <filename>glib-2.0/schemas</filename> subdirectories of all directories
+ specified in the <envar>XDG_DATA_DIRS</envar> environment variable. The
+ usual location to install schema files is
+-<filename>/usr/share/glib-2.0/schemas</filename>.
++<filename>%%PREFIX%%/share/glib-2.0/schemas</filename>.
+ </para>
+ <para>
+ In addition to schema files, glib-compile-schemas reads 'vendor override'
Index: devel/glib20/files/patch-gio_glib-compile-schemas.c
===================================================================
--- devel/glib20/files/patch-gio_glib-compile-schemas.c
+++ devel/glib20/files/patch-gio_glib-compile-schemas.c
@@ -1,6 +1,6 @@
---- gio/glib-compile-schemas.c.orig 2017-08-07 16:58:31.000000000 +0200
-+++ gio/glib-compile-schemas.c 2017-09-15 09:25:19.746310000 +0200
-@@ -1219,6 +1219,7 @@ parse_state_start_schema (ParseState *state,
+--- gio/glib-compile-schemas.c.orig 2020-05-20 10:46:43 UTC
++++ gio/glib-compile-schemas.c
+@@ -1232,6 +1232,7 @@ parse_state_start_schema (ParseState *state,
return;
}
@@ -8,7 +8,7 @@
if (path && (g_str_has_prefix (path, "/apps/") ||
g_str_has_prefix (path, "/desktop/") ||
g_str_has_prefix (path, "/system/")))
-@@ -1231,6 +1232,7 @@ parse_state_start_schema (ParseState *state,
+@@ -1244,6 +1245,7 @@ parse_state_start_schema (ParseState *state,
g_printerr ("%s\n", message);
g_free (message);
}
Index: devel/glib20/files/patch-gio_gthreadedresolver.c
===================================================================
--- devel/glib20/files/patch-gio_gthreadedresolver.c
+++ /dev/null
@@ -1,12 +0,0 @@
-Upstream bug: https://gitlab.gnome.org/GNOME/glib/issues/1697
-
---- gio/gthreadedresolver.c.orig
-+++ gio/gthreadedresolver.c
-@@ -836,6 +836,7 @@
- * worker thread. (Although the workers would get reused by the
- * #GThreadPool.) */
- struct __res_state res;
-+ memset( &res, 0, sizeof( res ));
- if (res_ninit (&res) != 0)
- {
- g_task_return_new_error (task, G_RESOLVER_ERROR, G_RESOLVER_ERROR_INTERNAL,
Index: devel/glib20/files/patch-gio_gunixmount.c
===================================================================
--- devel/glib20/files/patch-gio_gunixmount.c
+++ devel/glib20/files/patch-gio_gunixmount.c
@@ -1,19 +1,24 @@
---- gio/gunixmount.c.orig 2014-09-21 13:00:08.875162804 +0200
-+++ gio/gunixmount.c 2014-09-21 13:00:14.327163623 +0200
-@@ -353,12 +353,17 @@
+--- gio/gunixmount.c.orig 2020-05-20 10:46:43 UTC
++++ gio/gunixmount.c
+@@ -356,12 +356,22 @@ g_unix_mount_eject (GMount *mount,
gpointer user_data)
{
GUnixMount *unix_mount = G_UNIX_MOUNT (mount);
-+#ifndef __FreeBSD__
++#ifdef __FreeBSD__
++ char *argv[] = {"cdcontrol", "-f", NULL, "eject", NULL};
++
++ if (unix_mount->mount_path != NULL)
++ argv[2] = unix_mount->mount_path;
++ else
++ argv[2] = unix_mount->device_path;
++#else
++
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);
Index: devel/glib20/files/patch-gio_gunixvolume.c
===================================================================
--- devel/glib20/files/patch-gio_gunixvolume.c
+++ devel/glib20/files/patch-gio_gunixvolume.c
@@ -1,11 +1,12 @@
---- gio/gunixvolume.c.orig 2014-03-20 04:50:45.000000000 +0100
-+++ gio/gunixvolume.c 2014-03-24 20:44:40.000000000 +0100
-@@ -356,9 +356,14 @@
+--- gio/gunixvolume.c.orig 2020-06-15 12:26:27 UTC
++++ gio/gunixvolume.c
+@@ -365,9 +365,15 @@ g_unix_volume_eject (GVolume *volume,
gpointer user_data)
{
GUnixVolume *unix_volume = G_UNIX_VOLUME (volume);
+#ifdef __FreeBSD__
-+ const gchar *argv[] = {"cdcontrol", "-f", NULL, "eject", NULL};
++ const gchar *argv[] = { "cdcontrol", "-f", NULL, NULL };
++
+ argv[2] = unix_volume->device_path;
+#else
const gchar *argv[] = { "eject", NULL, NULL };
Index: devel/glib20/files/patch-gio_kqueue-kqueue-missing.c
===================================================================
--- devel/glib20/files/patch-gio_kqueue-kqueue-missing.c
+++ /dev/null
@@ -1,93 +0,0 @@
---- gio/kqueue/kqueue-missing.c.orig 2018-04-09 22:48:45.637366000 +0200
-+++ gio/kqueue/kqueue-missing.c 2018-04-09 22:48:55.840341000 +0200
-@@ -23,12 +23,12 @@
- #include <glib.h>
-
- #include "kqueue-helper.h"
--#include "kqueue-sub.h"
--#include "kqueue-missing.h"
-
-
- #define SCAN_MISSING_TIME 4 /* 1/4 Hz */
-
-+void _kh_file_appeared_cb (kqueue_sub *sub);
-+
- static gboolean km_scan_missing (gpointer user_data);
-
- static gboolean km_debug_enabled = FALSE;
-@@ -38,24 +38,9 @@ static GSList *missing_subs_list = NULL;
- G_LOCK_DEFINE_STATIC (missing_lock);
-
- static volatile gboolean scan_missing_running = FALSE;
--static on_create_cb file_appeared_callback;
-
-
- /**
-- * _km_init:
-- * @cb: a callback function. It will be called when a watched file
-- * will appear.
-- *
-- * Initialize the kqueue-missing module (optional).
-- **/
--void
--_km_init (on_create_cb cb)
--{
-- file_appeared_callback = cb;
--}
--
--
--/**
- * _km_add_missing:
- * @sub: a #kqueue_sub
- *
-@@ -83,7 +68,36 @@ _km_add_missing (kqueue_sub *sub)
- }
- }
-
-+/**
-+ * _kh_file_appeared_cb:
-+ * @sub: a #kqueue_sub
-+ *
-+ * A callback function for kqueue-missing subsystem.
-+ *
-+ * Signals that a missing file has finally appeared in the filesystem.
-+ * Emits %G_FILE_MONITOR_EVENT_CREATED.
-+ **/
-+void
-+_kh_file_appeared_cb (kqueue_sub *sub)
-+{
-+ GFile *child;
-
-+ g_assert (sub != NULL);
-+ g_assert (sub->filename);
-+
-+ if (!g_file_test (sub->filename, G_FILE_TEST_EXISTS))
-+ return;
-+
-+ child = g_file_new_for_path (sub->filename);
-+
-+ g_file_monitor_emit_event (G_FILE_MONITOR (sub->mon),
-+ child,
-+ NULL,
-+ G_FILE_MONITOR_EVENT_CREATED);
-+
-+ g_object_unref (child);
-+}
-+
- /**
- * km_scan_missing:
- * @user_data: unused
-@@ -114,11 +128,10 @@ km_scan_missing (gpointer user_data)
- g_assert (sub != NULL);
- g_assert (sub->filename != NULL);
-
-- if (_kh_start_watching (sub))
-+ if (_kqsub_start_watching (sub))
- {
- KM_W ("file %s now exists, starting watching", sub->filename);
-- if (file_appeared_callback)
-- file_appeared_callback (sub);
-+ _kh_file_appeared_cb (sub);
- not_missing = g_slist_prepend (not_missing, head);
- }
- }
Index: devel/glib20/files/patch-gio_kqueue_Makefile.in
===================================================================
--- devel/glib20/files/patch-gio_kqueue_Makefile.in
+++ /dev/null
@@ -1,87 +0,0 @@
---- gio/kqueue/Makefile.in.orig 2018-10-01 19:39:31.421019000 +0200
-+++ gio/kqueue/Makefile.in 2018-10-01 19:43:01.841725000 +0200
-@@ -187,9 +187,7 @@ LTLIBRARIES = $(installed_test_LTLIBRARIES) $(noinst_L
- libkqueue_la_LIBADD =
- am__objects_1 =
- am_libkqueue_la_OBJECTS = libkqueue_la-gkqueuefilemonitor.lo \
-- libkqueue_la-kqueue-helper.lo libkqueue_la-kqueue-thread.lo \
-- libkqueue_la-kqueue-sub.lo libkqueue_la-kqueue-missing.lo \
-- libkqueue_la-kqueue-utils.lo libkqueue_la-kqueue-exclusions.lo \
-+ libkqueue_la-kqueue-helper.lo libkqueue_la-kqueue-missing.lo \
- libkqueue_la-dep-list.lo $(am__objects_1)
- libkqueue_la_OBJECTS = $(am_libkqueue_la_OBJECTS)
- AM_V_lt = $(am__v_lt_@AM_V@)
-@@ -785,19 +783,9 @@ all_test_ltlibs = $(test_ltlibraries) $(uninstalled_te
- @ENABLE_INSTALLED_TESTS_TRUE@installed_test_meta_DATA = $(installed_testcases:=.test)
- libkqueue_la_SOURCES = \
- gkqueuefilemonitor.c \
-- gkqueuefilemonitor.h \
- kqueue-helper.c \
- kqueue-helper.h \
-- kqueue-thread.c \
-- kqueue-thread.h \
-- kqueue-sub.c \
-- kqueue-sub.h \
- kqueue-missing.c \
-- kqueue-missing.h \
-- kqueue-utils.c \
-- kqueue-utils.h \
-- kqueue-exclusions.c \
-- kqueue-exclusions.h \
- dep-list.c \
- dep-list.h \
- $(NULL)
-@@ -1017,12 +1005,8 @@ distclean-compile:
-
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkqueue_la-dep-list.Plo@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkqueue_la-gkqueuefilemonitor.Plo@am__quote@ # am--include-marker
--@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkqueue_la-kqueue-exclusions.Plo@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkqueue_la-kqueue-helper.Plo@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkqueue_la-kqueue-missing.Plo@am__quote@ # am--include-marker
--@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkqueue_la-kqueue-sub.Plo@am__quote@ # am--include-marker
--@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkqueue_la-kqueue-thread.Plo@am__quote@ # am--include-marker
--@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkqueue_la-kqueue-utils.Plo@am__quote@ # am--include-marker
-
- $(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
-@@ -1068,40 +1052,12 @@ libkqueue_la-kqueue-helper.lo: kqueue-helper.c
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -c -o libkqueue_la-kqueue-helper.lo `test -f 'kqueue-helper.c' || echo '$(srcdir)/'`kqueue-helper.c
-
--libkqueue_la-kqueue-thread.lo: kqueue-thread.c
--@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -MT libkqueue_la-kqueue-thread.lo -MD -MP -MF $(DEPDIR)/libkqueue_la-kqueue-thread.Tpo -c -o libkqueue_la-kqueue-thread.lo `test -f 'kqueue-thread.c' || echo '$(srcdir)/'`kqueue-thread.c
--@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libkqueue_la-kqueue-thread.Tpo $(DEPDIR)/libkqueue_la-kqueue-thread.Plo
--@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kqueue-thread.c' object='libkqueue_la-kqueue-thread.lo' libtool=yes @AMDEPBACKSLASH@
--@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
--@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -c -o libkqueue_la-kqueue-thread.lo `test -f 'kqueue-thread.c' || echo '$(srcdir)/'`kqueue-thread.c
--
--libkqueue_la-kqueue-sub.lo: kqueue-sub.c
--@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -MT libkqueue_la-kqueue-sub.lo -MD -MP -MF $(DEPDIR)/libkqueue_la-kqueue-sub.Tpo -c -o libkqueue_la-kqueue-sub.lo `test -f 'kqueue-sub.c' || echo '$(srcdir)/'`kqueue-sub.c
--@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libkqueue_la-kqueue-sub.Tpo $(DEPDIR)/libkqueue_la-kqueue-sub.Plo
--@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kqueue-sub.c' object='libkqueue_la-kqueue-sub.lo' libtool=yes @AMDEPBACKSLASH@
--@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
--@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -c -o libkqueue_la-kqueue-sub.lo `test -f 'kqueue-sub.c' || echo '$(srcdir)/'`kqueue-sub.c
--
- libkqueue_la-kqueue-missing.lo: kqueue-missing.c
- @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -MT libkqueue_la-kqueue-missing.lo -MD -MP -MF $(DEPDIR)/libkqueue_la-kqueue-missing.Tpo -c -o libkqueue_la-kqueue-missing.lo `test -f 'kqueue-missing.c' || echo '$(srcdir)/'`kqueue-missing.c
- @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libkqueue_la-kqueue-missing.Tpo $(DEPDIR)/libkqueue_la-kqueue-missing.Plo
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kqueue-missing.c' object='libkqueue_la-kqueue-missing.lo' libtool=yes @AMDEPBACKSLASH@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -c -o libkqueue_la-kqueue-missing.lo `test -f 'kqueue-missing.c' || echo '$(srcdir)/'`kqueue-missing.c
--
--libkqueue_la-kqueue-utils.lo: kqueue-utils.c
--@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -MT libkqueue_la-kqueue-utils.lo -MD -MP -MF $(DEPDIR)/libkqueue_la-kqueue-utils.Tpo -c -o libkqueue_la-kqueue-utils.lo `test -f 'kqueue-utils.c' || echo '$(srcdir)/'`kqueue-utils.c
--@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libkqueue_la-kqueue-utils.Tpo $(DEPDIR)/libkqueue_la-kqueue-utils.Plo
--@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kqueue-utils.c' object='libkqueue_la-kqueue-utils.lo' libtool=yes @AMDEPBACKSLASH@
--@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
--@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -c -o libkqueue_la-kqueue-utils.lo `test -f 'kqueue-utils.c' || echo '$(srcdir)/'`kqueue-utils.c
--
--libkqueue_la-kqueue-exclusions.lo: kqueue-exclusions.c
--@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -MT libkqueue_la-kqueue-exclusions.lo -MD -MP -MF $(DEPDIR)/libkqueue_la-kqueue-exclusions.Tpo -c -o libkqueue_la-kqueue-exclusions.lo `test -f 'kqueue-exclusions.c' || echo '$(srcdir)/'`kqueue-exclusions.c
--@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libkqueue_la-kqueue-exclusions.Tpo $(DEPDIR)/libkqueue_la-kqueue-exclusions.Plo
--@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kqueue-exclusions.c' object='libkqueue_la-kqueue-exclusions.lo' libtool=yes @AMDEPBACKSLASH@
--@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
--@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -c -o libkqueue_la-kqueue-exclusions.lo `test -f 'kqueue-exclusions.c' || echo '$(srcdir)/'`kqueue-exclusions.c
-
- libkqueue_la-dep-list.lo: dep-list.c
- @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkqueue_la_CFLAGS) $(CFLAGS) -MT libkqueue_la-dep-list.lo -MD -MP -MF $(DEPDIR)/libkqueue_la-dep-list.Tpo -c -o libkqueue_la-dep-list.lo `test -f 'dep-list.c' || echo '$(srcdir)/'`dep-list.c
Index: devel/glib20/files/patch-gio_kqueue_gkqueuefilemonitor.c
===================================================================
--- devel/glib20/files/patch-gio_kqueue_gkqueuefilemonitor.c
+++ /dev/null
@@ -1,463 +0,0 @@
---- gio/kqueue/gkqueuefilemonitor.c.orig 2018-04-07 04:10:22.000000000 +0200
-+++ gio/kqueue/gkqueuefilemonitor.c 2018-05-03 20:21:55.830634000 +0200
-@@ -22,33 +22,73 @@
-
- #include "config.h"
-
--#include "gkqueuefilemonitor.h"
--#include "kqueue-helper.h"
--#include "kqueue-exclusions.h"
-+#include <sys/types.h>
-+#include <sys/event.h>
-+#include <sys/time.h>
-+#include <sys/socket.h>
-+#include <sys/stat.h>
-+
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <string.h>
-+
-+#include <glib-object.h>
-+#include <gio/gfilemonitor.h>
-+#include <gio/glocalfilemonitor.h>
-+#include <gio/giomodule.h>
- #include <gio/gpollfilemonitor.h>
- #include <gio/gfile.h>
--#include <gio/giomodule.h>
-+#include <glib-unix.h>
-+#include "glib-private.h"
-
-+#include "kqueue-helper.h"
-+#include "dep-list.h"
-
--struct _GKqueueFileMonitor
-+G_LOCK_DEFINE_STATIC (kq_lock);
-+static GSource *kq_source;
-+static int kq_queue = -1;
-+
-+#define G_TYPE_KQUEUE_FILE_MONITOR (g_kqueue_file_monitor_get_type ())
-+#define G_KQUEUE_FILE_MONITOR(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
-+ G_TYPE_KQUEUE_FILE_MONITOR, GKqueueFileMonitor))
-+
-+typedef GLocalFileMonitorClass GKqueueFileMonitorClass;
-+
-+typedef struct
- {
- GLocalFileMonitor parent_instance;
-
- kqueue_sub *sub;
--
-+#ifndef O_EVTONLY
- GFileMonitor *fallback;
- GFile *fbfile;
--};
-+#endif
-+} GKqueueFileMonitor;
-
-+GType g_kqueue_file_monitor_get_type (void);
-+G_DEFINE_TYPE_WITH_CODE (GKqueueFileMonitor, g_kqueue_file_monitor, G_TYPE_LOCAL_FILE_MONITOR,
-+ g_io_extension_point_implement (G_LOCAL_FILE_MONITOR_EXTENSION_POINT_NAME,
-+ g_define_type_id,
-+ "kqueue",
-+ 20))
-+
-+#ifndef O_EVTONLY
-+#define O_KQFLAG O_RDONLY
-+#else
-+#define O_KQFLAG O_EVTONLY
-+#endif
-+
-+#define NOTE_ALL (NOTE_DELETE|NOTE_WRITE|NOTE_EXTEND|NOTE_ATTRIB|NOTE_RENAME)
-+
- static gboolean g_kqueue_file_monitor_cancel (GFileMonitor* monitor);
-+static gboolean g_kqueue_file_monitor_is_supported (void);
-
--G_DEFINE_TYPE_WITH_CODE (GKqueueFileMonitor, g_kqueue_file_monitor, G_TYPE_LOCAL_FILE_MONITOR,
-- g_io_extension_point_implement (G_LOCAL_FILE_MONITOR_EXTENSION_POINT_NAME,
-- g_define_type_id,
-- "kqueue",
-- 20))
-+static kqueue_sub *_kqsub_new (const gchar *, GLocalFileMonitor *, GFileMonitorSource *);
-+static void _kqsub_free (kqueue_sub *);
-+static gboolean _kqsub_cancel (kqueue_sub *);
-
-
-+#ifndef O_EVTONLY
- static void
- _fallback_callback (GFileMonitor *unused,
- GFile *first,
-@@ -57,22 +97,42 @@ _fallback_callback (GFileMonitor *unused,
- gpointer udata)
- {
- GKqueueFileMonitor *kq_mon = G_KQUEUE_FILE_MONITOR (udata);
-- GFileMonitor *mon = G_FILE_MONITOR (kq_mon);
-- g_assert (kq_mon != NULL);
-- g_assert (mon != NULL);
-- (void) unused;
-
-- if (event == G_FILE_MONITOR_EVENT_CHANGED)
-- {
-- GLocalFileMonitor *local_monitor = G_LOCAL_FILE_MONITOR (kq_mon);
--
-- _kh_dir_diff (kq_mon->sub, local_monitor->source);
-- }
-- else
-- g_file_monitor_emit_event (mon, first, second, event);
-+ g_file_monitor_emit_event (G_FILE_MONITOR (kq_mon), first, second, event);
- }
-
-+/*
-+ * _ke_is_excluded:
-+ * @full_path - a path to file to check.
-+ *
-+ * Returns: TRUE if the file should be excluded from the kqueue-powered
-+ * monitoring, FALSE otherwise.
-+ **/
-+gboolean
-+_ke_is_excluded (const char *full_path)
-+{
-+ GFile *f = NULL;
-+ GMount *mount = NULL;
-
-+ f = g_file_new_for_path (full_path);
-+
-+ if (f != NULL) {
-+ mount = g_file_find_enclosing_mount (f, NULL, NULL);
-+ g_object_unref (f);
-+ }
-+
-+ if ((mount != NULL && (g_mount_can_unmount (mount))) || g_str_has_prefix (full_path, "/mnt/"))
-+ {
-+ g_warning ("Excluding %s from kernel notification, falling back to poll", full_path);
-+ if (mount)
-+ g_object_unref (mount);
-+ return TRUE;
-+ }
-+
-+ return FALSE;
-+}
-+#endif /* !O_EVTONLY */
-+
- static void
- g_kqueue_file_monitor_finalize (GObject *object)
- {
-@@ -80,16 +140,18 @@ g_kqueue_file_monitor_finalize (GObject *object)
-
- if (kqueue_monitor->sub)
- {
-- _kh_cancel_sub (kqueue_monitor->sub);
-- _kh_sub_free (kqueue_monitor->sub);
-+ _kqsub_cancel (kqueue_monitor->sub);
-+ _kqsub_free (kqueue_monitor->sub);
- kqueue_monitor->sub = NULL;
- }
-
-+#ifndef O_EVTONLY
- if (kqueue_monitor->fallback)
- g_object_unref (kqueue_monitor->fallback);
-
- if (kqueue_monitor->fbfile)
- g_object_unref (kqueue_monitor->fbfile);
-+#endif
-
- if (G_OBJECT_CLASS (g_kqueue_file_monitor_parent_class)->finalize)
- (*G_OBJECT_CLASS (g_kqueue_file_monitor_parent_class)->finalize) (object);
-@@ -103,21 +165,25 @@ g_kqueue_file_monitor_start (GLocalFileMonitor *local_
- GFileMonitorSource *source)
- {
- GKqueueFileMonitor *kqueue_monitor = G_KQUEUE_FILE_MONITOR (local_monitor);
-- GObject *obj;
-- GKqueueFileMonitorClass *klass;
-- GObjectClass *parent_class;
-- kqueue_sub *sub = NULL;
-- gboolean ret_kh_startup = FALSE;
-- const gchar *path = NULL;
-+ kqueue_sub *sub;
-+ const gchar *path;
-
--
-- ret_kh_startup = _kh_startup ();
-- g_assert (ret_kh_startup);
--
- path = filename;
-- if (!path)
-+ if (path == NULL)
- path = dirname;
-
-+#ifndef O_EVTONLY
-+ if (_ke_is_excluded (path))
-+ {
-+ GFile *file = g_file_new_for_path (path);
-+ kqueue_monitor->fbfile = file;
-+ kqueue_monitor->fallback = _g_poll_file_monitor_new (file);
-+ g_signal_connect (kqueue_monitor->fallback, "changed",
-+ G_CALLBACK (_fallback_callback), kqueue_monitor);
-+ return;
-+ }
-+#endif
-+
- /* For a directory monitor, create a subscription object anyway.
- * It will be used for directory diff calculation routines.
- * Wait, directory diff in a GKqueueFileMonitor?
-@@ -125,35 +191,15 @@ g_kqueue_file_monitor_start (GLocalFileMonitor *local_
- * file, GIO uses a GKqueueFileMonitor object for that. If a directory
- * will be created under that path, GKqueueFileMonitor will have to
- * handle the directory notifications. */
-+ sub = _kqsub_new (path, local_monitor, source);
-+ if (sub == NULL)
-+ return;
-
-- sub = _kh_sub_new (path, TRUE, source);
--
-- /* FIXME: what to do about errors here? we can't return NULL or another
-- * kind of error and an assertion is probably too hard (same issue as in
-- * the inotify backend) */
-- g_assert (sub != NULL);
- kqueue_monitor->sub = sub;
--
-- if (!_ke_is_excluded (path))
-- _kh_add_sub (sub);
-- else
-- {
-- GFile *file = g_file_new_for_path (path);
-- kqueue_monitor->fbfile = file;
-- kqueue_monitor->fallback = _g_poll_file_monitor_new (file);
-- g_signal_connect (kqueue_monitor->fallback,
-- "changed",
-- G_CALLBACK (_fallback_callback),
-- kqueue_monitor);
-- }
-+ if (!_kqsub_start_watching (sub))
-+ _km_add_missing (sub);
- }
-
--static gboolean
--g_kqueue_file_monitor_is_supported (void)
--{
-- return _kh_startup ();
--}
--
- static void
- g_kqueue_file_monitor_class_init (GKqueueFileMonitorClass *klass)
- {
-@@ -175,24 +221,218 @@ g_kqueue_file_monitor_init (GKqueueFileMonitor *monito
- }
-
- static gboolean
-+g_kqueue_file_monitor_callback (gint fd, GIOCondition condition, gpointer user_data)
-+{
-+ gint64 now = g_source_get_time (kq_source);
-+ kqueue_sub *sub;
-+ GFileMonitorSource *source;
-+ struct kevent ev;
-+ struct timespec ts;
-+
-+ memset (&ts, 0, sizeof(ts));
-+ while (kevent(fd, NULL, 0, &ev, 1, &ts) > 0)
-+ {
-+ GFileMonitorEvent mask = 0;
-+
-+ if (ev.filter != EVFILT_VNODE || ev.udata == NULL)
-+ continue;
-+
-+ sub = ev.udata;
-+ source = sub->source;
-+
-+ if (ev.flags & EV_ERROR)
-+ ev.fflags = NOTE_REVOKE;
-+
-+ if (ev.fflags & (NOTE_DELETE | NOTE_REVOKE))
-+ {
-+ _kqsub_cancel (sub);
-+ _km_add_missing (sub);
-+ }
-+
-+ if (sub->is_dir && ev.fflags & (NOTE_WRITE | NOTE_EXTEND))
-+ {
-+ _kh_dir_diff (sub);
-+ ev.fflags &= ~(NOTE_WRITE | NOTE_EXTEND);
-+ }
-+
-+ if (ev.fflags & NOTE_DELETE)
-+ {
-+ mask = G_FILE_MONITOR_EVENT_DELETED;
-+ }
-+ else if (ev.fflags & NOTE_ATTRIB)
-+ {
-+ mask = G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED;
-+ }
-+ else if (ev.fflags & (NOTE_WRITE | NOTE_EXTEND))
-+ {
-+ mask = G_FILE_MONITOR_EVENT_CHANGED;
-+ }
-+ else if (ev.fflags & NOTE_RENAME)
-+ {
-+ /* Since there’s apparently no way to get the new name of the
-+ * file out of kqueue(), all we can do is say that this one has
-+ * been deleted. */
-+ mask = G_FILE_MONITOR_EVENT_DELETED;
-+ }
-+ else if (ev.fflags & NOTE_REVOKE)
-+ {
-+ mask = G_FILE_MONITOR_EVENT_UNMOUNTED;
-+ }
-+
-+ if (mask)
-+ g_file_monitor_source_handle_event (source, mask, NULL, NULL, NULL, now);
-+ }
-+
-+ return TRUE;
-+}
-+
-+static gboolean
-+g_kqueue_file_monitor_is_supported (void)
-+{
-+ int errsv;
-+
-+ G_LOCK (kq_lock);
-+
-+ if (kq_queue == -1)
-+ {
-+ kq_queue = kqueue ();
-+ errsv = errno;
-+
-+ if (kq_queue == -1)
-+ {
-+ g_warning ("Unable to create a kqueue: %s", g_strerror (errsv));
-+ G_UNLOCK (kq_lock);
-+ return FALSE;
-+ }
-+
-+ kq_source = g_unix_fd_source_new (kq_queue, G_IO_IN);
-+ g_source_set_callback (kq_source, (GSourceFunc) g_kqueue_file_monitor_callback, NULL, NULL);
-+ g_source_attach (kq_source, GLIB_PRIVATE_CALL (g_get_worker_context) ());
-+ }
-+
-+ G_UNLOCK (kq_lock);
-+
-+ return TRUE;
-+}
-+
-+static gboolean
- g_kqueue_file_monitor_cancel (GFileMonitor *monitor)
- {
- GKqueueFileMonitor *kqueue_monitor = G_KQUEUE_FILE_MONITOR (monitor);
-
- if (kqueue_monitor->sub)
- {
-- _kh_cancel_sub (kqueue_monitor->sub);
-- _kh_sub_free (kqueue_monitor->sub);
-+ _kqsub_cancel (kqueue_monitor->sub);
-+ _kqsub_free (kqueue_monitor->sub);
- kqueue_monitor->sub = NULL;
- }
-+#ifndef O_EVTONLY
- else if (kqueue_monitor->fallback)
- {
- g_signal_handlers_disconnect_by_func (kqueue_monitor->fallback, _fallback_callback, kqueue_monitor);
- g_file_monitor_cancel (kqueue_monitor->fallback);
- }
-+#endif
-
- if (G_FILE_MONITOR_CLASS (g_kqueue_file_monitor_parent_class)->cancel)
- (*G_FILE_MONITOR_CLASS (g_kqueue_file_monitor_parent_class)->cancel) (monitor);
-+
-+ return TRUE;
-+}
-+
-+static kqueue_sub *
-+_kqsub_new (const gchar *filename, GLocalFileMonitor *mon, GFileMonitorSource *source)
-+{
-+ kqueue_sub *sub;
-+
-+ sub = g_slice_new (kqueue_sub);
-+ sub->filename = g_strdup (filename);
-+ sub->mon = mon;
-+ g_source_ref ((GSource *) source);
-+ sub->source = source;
-+ sub->fd = -1;
-+ sub->deps = NULL;
-+ sub->is_dir = 0;
-+
-+ return sub;
-+}
-+
-+static void
-+_kqsub_free (kqueue_sub *sub)
-+{
-+ g_assert (sub->deps == NULL);
-+ g_assert (sub->fd == -1);
-+
-+ g_source_unref ((GSource *) sub->source);
-+ g_free (sub->filename);
-+ g_slice_free (kqueue_sub, sub);
-+}
-+
-+static gboolean
-+_kqsub_cancel (kqueue_sub *sub)
-+{
-+ struct kevent ev;
-+
-+ /* Remove the event and close the file descriptor to automatically
-+ * delete pending events. */
-+ if (sub->fd != -1)
-+ {
-+ EV_SET (&ev, sub->fd, EVFILT_VNODE, EV_DELETE, NOTE_ALL, 0, sub);
-+ if (kevent (kq_queue, &ev, 1, NULL, 0, NULL) == -1)
-+ {
-+ g_warning ("Unable to remove event for %s: %s", sub->filename, g_strerror (errno));
-+ return FALSE;
-+ }
-+ close (sub->fd);
-+ sub->fd = -1;
-+ }
-+
-+ _km_remove (sub);
-+
-+ if (sub->deps)
-+ {
-+ dl_free (sub->deps);
-+ sub->deps = NULL;
-+ }
-+
-+ return TRUE;
-+}
-+
-+gboolean
-+_kqsub_start_watching (kqueue_sub *sub)
-+{
-+ struct stat st;
-+ struct kevent ev;
-+
-+ sub->fd = open (sub->filename, O_KQFLAG);
-+ if (sub->fd == -1)
-+ return FALSE;
-+
-+ if (fstat (sub->fd, &st) == -1)
-+ {
-+ g_warning ("fstat failed for %s: %s", sub->filename, g_strerror (errno));
-+ close (sub->fd);
-+ sub->fd = -1;
-+ return FALSE;
-+ }
-+
-+ sub->is_dir = (st.st_mode & S_IFDIR) ? 1 : 0;
-+ if (sub->is_dir)
-+ {
-+ if (sub->deps)
-+ dl_free (sub->deps);
-+
-+ sub->deps = dl_listing (sub->filename);
-+ }
-+
-+ EV_SET (&ev, sub->fd, EVFILT_VNODE, EV_ADD | EV_CLEAR, NOTE_ALL, 0, sub);
-+ if (kevent (kq_queue, &ev, 1, NULL, 0, NULL) == -1)
-+ {
-+ g_warning ("Unable to add event for %s: %s", sub->filename, g_strerror (errno));
-+ close (sub->fd);
-+ sub->fd = -1;
-+ return FALSE;
-+ }
-
- return TRUE;
- }
Index: devel/glib20/files/patch-gio_kqueue_kqueue-helper.h
===================================================================
--- devel/glib20/files/patch-gio_kqueue_kqueue-helper.h
+++ /dev/null
@@ -1,40 +0,0 @@
---- gio/kqueue/kqueue-helper.h.orig 2018-04-09 22:47:22.070991000 +0200
-+++ gio/kqueue/kqueue-helper.h 2018-04-09 22:47:44.329479000 +0200
-@@ -23,16 +23,31 @@
- #ifndef __KQUEUE_HELPER_H
- #define __KQUEUE_HELPER_H
-
--#include "kqueue-sub.h"
- #include <gio/glocalfilemonitor.h>
- #include <gio/gfilemonitor.h>
-
--gboolean _kh_startup (void);
--gboolean _kh_add_sub (kqueue_sub *sub);
--gboolean _kh_cancel_sub (kqueue_sub *sub);
-+#include "dep-list.h"
-
--gboolean _kh_start_watching (kqueue_sub *sub);
-+/**
-+ * kqueue_sub:
-+ * @filename: a name of the file to monitor
-+ * @fd: the associated file descriptor (used by kqueue)
-+ *
-+ * Represents a subscription on a file or directory.
-+ */
-+typedef struct
-+{
-+ GLocalFileMonitor *mon;
-+ GFileMonitorSource *source;
-+ gchar* filename;
-+ int fd;
-+ dep_list* deps;
-+ int is_dir;
-+} kqueue_sub;
-
--void _kh_dir_diff (kqueue_sub *sub, GFileMonitorSource *source);
-+gboolean _kqsub_start_watching (kqueue_sub *sub);
-+void _kh_dir_diff (kqueue_sub *sub);
-+void _km_add_missing (kqueue_sub *sub);
-+void _km_remove (kqueue_sub *sub);
-
- #endif /* __KQUEUE_HELPER_H */
Index: devel/glib20/files/patch-gio_kqueue_kqueue-helper.c
===================================================================
--- devel/glib20/files/patch-gio_kqueue_kqueue-helper.c
+++ /dev/null
@@ -1,409 +0,0 @@
---- gio/kqueue/kqueue-helper.c.orig 2018-01-08 21:00:49.000000000 +0100
-+++ gio/kqueue/kqueue-helper.c 2018-04-09 22:46:58.181986000 +0200
-@@ -34,84 +34,7 @@
- #include <errno.h>
- #include <pthread.h>
- #include "kqueue-helper.h"
--#include "kqueue-utils.h"
--#include "kqueue-thread.h"
--#include "kqueue-missing.h"
--#include "kqueue-exclusions.h"
-
--static gboolean kh_debug_enabled = FALSE;
--#define KH_W if (kh_debug_enabled) g_warning
--
--static GHashTable *subs_hash_table = NULL;
--G_LOCK_DEFINE_STATIC (hash_lock);
--
--static int kqueue_descriptor = -1;
--static int kqueue_socket_pair[] = {-1, -1};
--static pthread_t kqueue_thread;
--
--
--void _kh_file_appeared_cb (kqueue_sub *sub);
--
--/**
-- * accessor function for kqueue_descriptor
-- **/
--int
--get_kqueue_descriptor()
--{
-- return kqueue_descriptor;
--}
--
--/**
-- * convert_kqueue_events_to_gio:
-- * @flags: a set of kqueue filter flags
-- * @done: a pointer to #gboolean indicating that the
-- * conversion has been done (out)
-- *
-- * Translates kqueue filter flags into GIO event flags.
-- *
-- * Returns: a #GFileMonitorEvent
-- **/
--static GFileMonitorEvent
--convert_kqueue_events_to_gio (uint32_t flags, gboolean *done)
--{
-- g_assert (done != NULL);
-- *done = FALSE;
--
-- /* TODO: The following notifications should be emulated, if possible:
-- * - G_FILE_MONITOR_EVENT_PRE_UNMOUNT
-- */
-- if (flags & NOTE_DELETE)
-- {
-- *done = TRUE;
-- return G_FILE_MONITOR_EVENT_DELETED;
-- }
-- if (flags & NOTE_ATTRIB)
-- {
-- *done = TRUE;
-- return G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED;
-- }
-- if (flags & (NOTE_WRITE | NOTE_EXTEND))
-- {
-- *done = TRUE;
-- return G_FILE_MONITOR_EVENT_CHANGED;
-- }
-- if (flags & NOTE_RENAME)
-- {
-- /* Since there’s apparently no way to get the new name of the file out of
-- * kqueue(), all we can do is say that this one has been deleted. */
-- *done = TRUE;
-- return G_FILE_MONITOR_EVENT_DELETED;
-- }
-- if (flags & NOTE_REVOKE)
-- {
-- *done = TRUE;
-- return G_FILE_MONITOR_EVENT_UNMOUNTED;
-- }
--
-- /* done is FALSE */
-- return 0;
--}
--
- typedef struct {
- kqueue_sub *sub;
- GFileMonitorSource *source;
-@@ -238,318 +161,21 @@ static const traverse_cbs cbs = {
-
-
- void
--_kh_dir_diff (kqueue_sub *sub, GFileMonitorSource *source)
-+_kh_dir_diff (kqueue_sub *sub)
- {
- dep_list *was;
- handle_ctx ctx;
-
-- g_assert (sub != NULL);
-- g_assert (source != NULL);
--
- memset (&ctx, 0, sizeof (handle_ctx));
- ctx.sub = sub;
-- ctx.source = source;
-+ ctx.source = sub->source;
-
- was = sub->deps;
- sub->deps = dl_listing (sub->filename);
--
-+
- dl_calculate (was, sub->deps, &cbs, &ctx);
-
- dl_free (was);
- }
-
-
--/**
-- * process_kqueue_notifications:
-- * @gioc: unused.
-- * @cond: unused.
-- * @data: unused.
-- *
-- * Processes notifications, coming from the kqueue thread.
-- *
-- * Reads notifications from the command file descriptor, emits the
-- * "changed" event on the appropriate monitor.
-- *
-- * A typical GIO Channel callback function.
-- *
-- * Returns: %TRUE
-- **/
--static gboolean
--process_kqueue_notifications (GIOChannel *gioc,
-- GIOCondition cond,
-- gpointer data)
--{
-- struct kqueue_notification n;
-- kqueue_sub *sub = NULL;
-- GFileMonitorSource *source = NULL;
-- GFileMonitorEvent mask = 0;
--
-- g_assert (kqueue_socket_pair[0] != -1);
-- if (!_ku_read (kqueue_socket_pair[0], &n, sizeof (struct kqueue_notification)))
-- {
-- KH_W ("Failed to read a kqueue notification, error %d", errno);
-- return TRUE;
-- }
--
-- G_LOCK (hash_lock);
-- sub = (kqueue_sub *) g_hash_table_lookup (subs_hash_table, GINT_TO_POINTER (n.fd));
-- G_UNLOCK (hash_lock);
--
-- if (sub == NULL)
-- {
-- KH_W ("Got a notification for a deleted or non-existing subscription %d",
-- n.fd);
-- return TRUE;
-- }
--
-- source = sub->user_data;
-- g_assert (source != NULL);
--
-- if (n.flags & (NOTE_DELETE | NOTE_REVOKE))
-- {
-- if (sub->deps)
-- {
-- dl_free (sub->deps);
-- sub->deps = NULL;
-- }
-- _km_add_missing (sub);
--
-- if (!(n.flags & NOTE_REVOKE))
-- {
-- /* Note that NOTE_REVOKE is issued by the kqueue thread
-- * on EV_ERROR kevent. In this case, a file descriptor is
-- * already closed from the kqueue thread, no need to close
-- * it manually */
-- _kh_cancel_sub (sub);
-- }
-- }
--
-- if (sub->is_dir && n.flags & (NOTE_WRITE | NOTE_EXTEND))
-- {
-- _kh_dir_diff (sub, source);
-- n.flags &= ~(NOTE_WRITE | NOTE_EXTEND);
-- }
--
-- if (n.flags)
-- {
-- gboolean done = FALSE;
-- mask = convert_kqueue_events_to_gio (n.flags, &done);
-- if (done == TRUE)
-- g_file_monitor_source_handle_event (source, mask, NULL, NULL, NULL, g_get_monotonic_time ());
-- }
--
-- return TRUE;
--}
--
--
--/*
-- * _kh_startup_impl:
-- * @unused: unused
-- *
-- * Kqueue backend startup code. Should be called only once.
-- *
-- * Returns: %TRUE on success, %FALSE otherwise.
-- **/
--static gpointer
--_kh_startup_impl (gpointer unused)
--{
-- GIOChannel *channel = NULL;
-- gboolean result = FALSE;
--
-- kqueue_descriptor = kqueue ();
-- result = (kqueue_descriptor != -1);
-- if (!result)
-- {
-- KH_W ("Failed to initialize kqueue\n!");
-- return GINT_TO_POINTER (FALSE);
-- }
--
-- result = socketpair (AF_UNIX, SOCK_STREAM, 0, kqueue_socket_pair);
-- if (result != 0)
-- {
-- KH_W ("Failed to create socket pair\n!");
-- return GINT_TO_POINTER (FALSE) ;
-- }
--
-- result = pthread_create (&kqueue_thread,
-- NULL,
-- _kqueue_thread_func,
-- &kqueue_socket_pair[1]);
-- if (result != 0)
-- {
-- KH_W ("Failed to run kqueue thread\n!");
-- return GINT_TO_POINTER (FALSE);
-- }
--
-- _km_init (_kh_file_appeared_cb);
--
-- channel = g_io_channel_unix_new (kqueue_socket_pair[0]);
-- g_io_add_watch (channel, G_IO_IN, process_kqueue_notifications, NULL);
--
-- subs_hash_table = g_hash_table_new (g_direct_hash, g_direct_equal);
--
-- KH_W ("started gio kqueue backend\n");
-- return GINT_TO_POINTER (TRUE);
--}
--
--
--/*
-- * _kh_startup:
-- * Kqueue backend initialization.
-- *
-- * Returns: %TRUE on success, %FALSE otherwise.
-- **/
--gboolean
--_kh_startup (void)
--{
-- static GOnce init_once = G_ONCE_INIT;
-- g_once (&init_once, _kh_startup_impl, NULL);
-- return GPOINTER_TO_INT (init_once.retval);
--}
--
--
--/**
-- * _kh_start_watching:
-- * @sub: a #kqueue_sub
-- *
-- * Starts watching on a subscription.
-- *
-- * Returns: %TRUE on success, %FALSE otherwise.
-- **/
--gboolean
--_kh_start_watching (kqueue_sub *sub)
--{
-- g_assert (kqueue_socket_pair[0] != -1);
-- g_assert (sub != NULL);
-- g_assert (sub->filename != NULL);
--
-- /* kqueue requires a file descriptor to monitor. Sad but true */
--#if defined (O_EVTONLY)
-- sub->fd = open (sub->filename, O_EVTONLY);
--#else
-- sub->fd = open (sub->filename, O_RDONLY);
--#endif
--
-- if (sub->fd == -1)
-- {
-- KH_W ("failed to open file %s (error %d)", sub->filename, errno);
-- return FALSE;
-- }
--
-- _ku_file_information (sub->fd, &sub->is_dir, NULL);
-- if (sub->is_dir)
-- {
-- /* I know, it is very bad to make such decisions in this way and here.
-- * We already do have an user_data at the #kqueue_sub, and it may point to
-- * GKqueueFileMonitor or GKqueueDirectoryMonitor. For a directory case,
-- * we need to scan in contents for the further diffs. Ideally this process
-- * should be delegated to the GKqueueDirectoryMonitor, but for now I will
-- * do it in a dirty way right here. */
-- if (sub->deps)
-- dl_free (sub->deps);
--
-- sub->deps = dl_listing (sub->filename);
-- }
--
-- G_LOCK (hash_lock);
-- g_hash_table_insert (subs_hash_table, GINT_TO_POINTER (sub->fd), sub);
-- G_UNLOCK (hash_lock);
--
-- _kqueue_thread_push_fd (sub->fd);
--
-- /* Bump the kqueue thread. It will pick up a new sub entry to monitor */
-- if (!_ku_write (kqueue_socket_pair[0], "A", 1))
-- KH_W ("Failed to bump the kqueue thread (add fd, error %d)", errno);
-- return TRUE;
--}
--
--
--/**
-- * _kh_add_sub:
-- * @sub: a #kqueue_sub
-- *
-- * Adds a subscription for monitoring.
-- *
-- * This funciton tries to start watching a subscription with
-- * _kh_start_watching(). On failure, i.e. when a file does not exist yet,
-- * the subscription will be added to a list of missing files to continue
-- * watching when the file will appear.
-- *
-- * Returns: %TRUE
-- **/
--gboolean
--_kh_add_sub (kqueue_sub *sub)
--{
-- g_assert (sub != NULL);
--
-- if (!_kh_start_watching (sub))
-- _km_add_missing (sub);
--
-- return TRUE;
--}
--
--
--/**
-- * _kh_cancel_sub:
-- * @sub a #kqueue_sub
-- *
-- * Stops monitoring on a subscription.
-- *
-- * Returns: %TRUE
-- **/
--gboolean
--_kh_cancel_sub (kqueue_sub *sub)
--{
-- gboolean removed = FALSE;
-- g_assert (kqueue_socket_pair[0] != -1);
-- g_assert (sub != NULL);
--
-- _km_remove (sub);
--
-- G_LOCK (hash_lock);
-- removed = g_hash_table_remove (subs_hash_table, GINT_TO_POINTER (sub->fd));
-- G_UNLOCK (hash_lock);
--
-- if (removed)
-- {
-- /* fd will be closed in the kqueue thread */
-- _kqueue_thread_remove_fd (sub->fd);
--
-- /* Bump the kqueue thread. It will pick up a new sub entry to remove*/
-- if (!_ku_write (kqueue_socket_pair[0], "R", 1))
-- KH_W ("Failed to bump the kqueue thread (remove fd, error %d)", errno);
-- }
--
-- return TRUE;
--}
--
--
--/**
-- * _kh_file_appeared_cb:
-- * @sub: a #kqueue_sub
-- *
-- * A callback function for kqueue-missing subsystem.
-- *
-- * Signals that a missing file has finally appeared in the filesystem.
-- * Emits %G_FILE_MONITOR_EVENT_CREATED.
-- **/
--void
--_kh_file_appeared_cb (kqueue_sub *sub)
--{
-- GFile* child;
--
-- g_assert (sub != NULL);
-- g_assert (sub->filename);
--
-- if (!g_file_test (sub->filename, G_FILE_TEST_EXISTS))
-- return;
--
-- child = g_file_new_for_path (sub->filename);
--
-- g_file_monitor_emit_event (G_FILE_MONITOR (sub->user_data),
-- child,
-- NULL,
-- G_FILE_MONITOR_EVENT_CREATED);
--
-- g_object_unref (child);
--}
Index: devel/glib20/files/patch-gio_tests_desktop-app-info.c
===================================================================
--- /dev/null
+++ devel/glib20/files/patch-gio_tests_desktop-app-info.c
@@ -0,0 +1,14 @@
+--- gio/tests/desktop-app-info.c.orig 2020-05-20 10:46:43 UTC
++++ gio/tests/desktop-app-info.c
+@@ -80,9 +80,9 @@ test_delete (void)
+
+ g_object_unref (info);
+
+- if (g_file_test ("/usr/share/applications/gedit.desktop", G_FILE_TEST_EXISTS))
++ if (g_file_test ("%%LOCALBASE%%/applications/gedit.desktop", G_FILE_TEST_EXISTS))
+ {
+- info = (GAppInfo*)g_desktop_app_info_new_from_filename ("/usr/share/applications/gedit.desktop");
++ info = (GAppInfo*)g_desktop_app_info_new_from_filename ("%%LOCALBASE%%/share/applications/gedit.desktop");
+ g_assert_nonnull (info);
+
+ res = g_app_info_can_delete (info);
Index: devel/glib20/files/patch-gio_tests_include.c
===================================================================
--- devel/glib20/files/patch-gio_tests_include.c
+++ /dev/null
@@ -1,10 +0,0 @@
---- 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>
-
Index: devel/glib20/files/patch-gio_xdgmime_xdgmime.c
===================================================================
--- devel/glib20/files/patch-gio_xdgmime_xdgmime.c
+++ devel/glib20/files/patch-gio_xdgmime_xdgmime.c
@@ -1,11 +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 @@
-
+--- gio/xdgmime/xdgmime.c.orig 2020-05-20 10:46:43 UTC
++++ gio/xdgmime/xdgmime.c
+@@ -235,7 +235,7 @@ xdg_init_dirs (void)
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/";
++ xdg_data_dirs = "%%LOCALBASE%%/share/:/usr/share/";
- ptr = xdg_data_dirs;
-
+ /* Work out how many dirs we’re dealing with. */
+ if (xdg_data_home != NULL || home != NULL)
Index: devel/glib20/files/patch-gio_xdgmime_xdgmimecache.h
===================================================================
--- devel/glib20/files/patch-gio_xdgmime_xdgmimecache.h
+++ /dev/null
@@ -1,12 +0,0 @@
---- 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;
Index: devel/glib20/files/patch-glib_fix_hidden
===================================================================
--- devel/glib20/files/patch-glib_fix_hidden
+++ /dev/null
@@ -1,10 +0,0 @@
---- 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"
-
-
Index: devel/glib20/files/patch-glib_gcharset.c
===================================================================
--- /dev/null
+++ devel/glib20/files/patch-glib_gcharset.c
@@ -0,0 +1,11 @@
+--- glib/gcharset.c.orig 2020-05-20 10:46:43 UTC
++++ glib/gcharset.c
+@@ -407,7 +407,7 @@ unalias_lang (char *lang)
+ if (g_once_init_enter (&alias_table))
+ {
+ GHashTable *table = g_hash_table_new (g_str_hash, g_str_equal);
+- read_aliases ("/usr/share/locale/locale.alias", table);
++ read_aliases ("%%LOCALBASE%%/share/locale/locale.alias", table);
+ g_once_init_leave (&alias_table, table);
+ }
+
Index: devel/glib20/files/patch-glib_gconvert.c
===================================================================
--- devel/glib20/files/patch-glib_gconvert.c
+++ /dev/null
@@ -1,14 +0,0 @@
-Work around our situation of having both libiconv in libc and libiconv from
-ports installed.
-
---- glib/gconvert.c.orig 2014-02-08 10:15:50.000000000 +0100
-+++ glib/gconvert.c 2014-02-08 10:16:52.000000000 +0100
-@@ -62,7 +62,7 @@
- #error GNU libiconv in use but included iconv.h not from libiconv
- #endif
- #if !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H) \
-- && !defined (__APPLE_CC__) && !defined (__LP_64__)
-+ && !defined (LIBICONV_PLUG) && !defined (__APPLE_CC__) && !defined (__LP_64__)
- #error GNU libiconv not in use but included iconv.h is from libiconv
- #endif
-
Index: devel/glib20/files/patch-glib_gfileutils_c
===================================================================
--- /dev/null
+++ devel/glib20/files/patch-glib_gfileutils_c
@@ -0,0 +1,14 @@
+https://gitlab.gnome.org/GNOME/glib/merge_requests/832
+
+Index: glib/gfileutils.c
+--- glib/gfileutils.c.orig
++++ glib/gfileutils.c
+@@ -259,7 +259,7 @@ g_mkdir_with_parents (const gchar *pathname,
+
+ if (!g_file_test (fn, G_FILE_TEST_EXISTS))
+ {
+- if (g_mkdir (fn, mode) == -1 && errno != EEXIST)
++ if (g_mkdir (fn, mode) == -1 && errno != EEXIST && (p ? (errno != ENOENT) : (-1)))
+ {
+ int errno_save = errno;
+ if (errno != ENOENT || !p)
Index: devel/glib20/files/patch-glib_gutils.c
===================================================================
--- devel/glib20/files/patch-glib_gutils.c
+++ devel/glib20/files/patch-glib_gutils.c
@@ -1,20 +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");
+--- glib/gutils.c.orig 2020-05-20 10:46:43 UTC
++++ glib/gutils.c
+@@ -2497,7 +2497,7 @@ g_build_system_data_dirs (void)
+ */
+ #ifndef G_OS_WIN32
+ if (!data_dirs || !data_dirs[0])
+- data_dirs = "/usr/local/share/:/usr/share/";
++ data_dirs = "%%LOCALBASE%%/share/:/usr/share/";
- 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);
+ #else
+@@ -2591,7 +2591,7 @@ g_build_system_config_dirs (void)
+ }
+ #else
+ if (!conf_dirs || !conf_dirs[0])
+- conf_dirs = "/etc/xdg";
++ conf_dirs = "%%LOCALBASE%%/etc/xdg";
- 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);
+ conf_dir_vector = g_strsplit (conf_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
#endif
Index: devel/glib20/files/patch-glib_libcharset_Makefile.in
===================================================================
--- devel/glib20/files/patch-glib_libcharset_Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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
-
Index: devel/glib20/files/patch-glib_tests_gdatetime.c
===================================================================
--- devel/glib20/files/patch-glib_tests_gdatetime.c
+++ /dev/null
@@ -1,20 +0,0 @@
---- glib/tests/gdatetime.c.orig 2014-03-09 10:29:13.925231275 +0000
-+++ glib/tests/gdatetime.c 2014-03-09 10:30:18.235227107 +0000
-@@ -1322,7 +1322,7 @@
- gint i1, i2;
-
- #ifdef G_OS_UNIX
-- tz = g_time_zone_new ("America/Toronto");
-+ tz = g_time_zone_new ("America/Toronto Eastern");
- #elif defined G_OS_WIN32
- tz = g_time_zone_new ("Eastern Standard Time");
- #endif
-@@ -1355,7 +1355,7 @@
- gint i1, i2;
-
- #ifdef G_OS_UNIX
-- tz = g_time_zone_new ("America/Toronto");
-+ tz = g_time_zone_new ("America/Toronto Eastern");
- #elif defined G_OS_WIN32
- tz = g_time_zone_new ("Eastern Standard Time");
- #endif
Index: devel/glib20/files/patch-glib_tests_utils.c
===================================================================
--- devel/glib20/files/patch-glib_tests_utils.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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 ();
-
Index: devel/glib20/files/patch-gmodule_gmodule-dl.c
===================================================================
--- devel/glib20/files/patch-gmodule_gmodule-dl.c
+++ /dev/null
@@ -1,20 +0,0 @@
---- 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
Index: devel/glib20/files/patch-revert-8abf3a0
===================================================================
--- devel/glib20/files/patch-revert-8abf3a0
+++ /dev/null
@@ -1,61 +0,0 @@
-Revert https://gitlab.gnome.org/GNOME/glib/commit/8abf3a04e699 for
-breaking at least graphics/inkscape as wchar_t is locale-dependent.
-
---- glib/gconvert.c.orig 2018-03-12 16:23:37 UTC
-+++ glib/gconvert.c
-@@ -264,13 +264,6 @@ g_iconv_open (const gchar *to_codeset,
- * GLib provides g_convert() and g_locale_to_utf8() which are likely
- * more convenient than the raw iconv wrappers.
- *
-- * Note that the behaviour of iconv() for characters which are valid in the
-- * input character set, but which have no representation in the output character
-- * set, is implementation defined. This function may return success (with a
-- * positive number of non-reversible conversions as replacement characters were
-- * used), or it may return -1 and set an error such as %EILSEQ, in such a
-- * situation.
-- *
- * Returns: count of non-reversible conversions, or -1 on error
- **/
- gsize
-@@ -379,14 +372,6 @@ close_converter (GIConv cd)
- * character until it knows that the next character is not a mark that
- * could combine with the base character.)
- *
-- * Characters which are valid in the input character set, but which have no
-- * representation in the output character set will result in a
-- * %G_CONVERT_ERROR_ILLEGAL_SEQUENCE error. This is in contrast to the iconv()
-- * specification, which leaves this behaviour implementation defined. Note that
-- * this is the same error code as is returned for an invalid byte sequence in
-- * the input character set. To get defined behaviour for conversion of
-- * unrepresentable characters, use g_convert_with_fallback().
-- *
- * Returns: (array length=bytes_written) (element-type guint8) (transfer full):
- * If the conversion was successful, a newly allocated buffer
- * containing the converted string, which must be freed with
-@@ -466,13 +451,6 @@ g_convert_with_iconv (const gchar *str,
- break;
- }
- }
-- else if (err > 0)
-- {
-- /* @err gives the number of replacement characters used. */
-- g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
-- _("Unrepresentable character in conversion input"));
-- have_error = TRUE;
-- }
- else
- {
- if (!reset)
---- glib/gconvert.h.orig 2018-02-06 15:44:20 UTC
-+++ glib/gconvert.h
-@@ -37,9 +37,7 @@ G_BEGIN_DECLS
- * GConvertError:
- * @G_CONVERT_ERROR_NO_CONVERSION: Conversion between the requested character
- * sets is not supported.
-- * @G_CONVERT_ERROR_ILLEGAL_SEQUENCE: Invalid byte sequence in conversion input;
-- * or the character sequence could not be represented in the target
-- * character set.
-+ * @G_CONVERT_ERROR_ILLEGAL_SEQUENCE: Invalid byte sequence in conversion input.
- * @G_CONVERT_ERROR_FAILED: Conversion failed for some reason.
- * @G_CONVERT_ERROR_PARTIAL_INPUT: Partial character sequence at end of input.
- * @G_CONVERT_ERROR_BAD_URI: URI is invalid.
Index: devel/glib20/pkg-plist
===================================================================
--- devel/glib20/pkg-plist
+++ devel/glib20/pkg-plist
@@ -23,6 +23,12 @@
include/gio-unix-2.0/gio/gunixmounts.h
include/gio-unix-2.0/gio/gunixoutputstream.h
include/gio-unix-2.0/gio/gunixsocketaddress.h
+include/glib-2.0/gio/gmemorymonitor.h
+include/glib-2.0/gio/gnativesocketaddress.h
+include/glib-2.0/glib/grcbox.h
+include/glib-2.0/glib/grefcount.h
+include/glib-2.0/glib/grefstring.h
+include/glib-2.0/gobject/glib-enumtypes.h
include/glib-2.0/gio/gaction.h
include/glib-2.0/gio/gactiongroup.h
include/glib-2.0/gio/gactiongroupexporter.h
@@ -276,23 +282,18 @@
include/glib-2.0/gobject/gvaluecollector.h
include/glib-2.0/gobject/gvaluetypes.h
lib/glib-2.0/include/glibconfig.h
-lib/libgio-2.0.a
lib/libgio-2.0.so
lib/libgio-2.0.so.0
lib/libgio-2.0.so.%%LIBVERSION%%
-lib/libglib-2.0.a
lib/libglib-2.0.so
lib/libglib-2.0.so.0
lib/libglib-2.0.so.%%LIBVERSION%%
-lib/libgmodule-2.0.a
lib/libgmodule-2.0.so
lib/libgmodule-2.0.so.0
lib/libgmodule-2.0.so.%%LIBVERSION%%
-lib/libgobject-2.0.a
lib/libgobject-2.0.so
lib/libgobject-2.0.so.0
lib/libgobject-2.0.so.%%LIBVERSION%%
-lib/libgthread-2.0.a
lib/libgthread-2.0.so
lib/libgthread-2.0.so.0
lib/libgthread-2.0.so.%%LIBVERSION%%
@@ -324,6 +325,7 @@
share/aclocal/gsettings.m4
share/bash-completion/completions/gapplication
share/bash-completion/completions/gdbus
+share/bash-completion/completions/gio
share/bash-completion/completions/gresource
share/bash-completion/completions/gsettings
share/gdb/auto-load%%RESETPREFIX%%/lib/libglib-2.0.so.%%LIBVERSION%%-gdb.py
@@ -331,29 +333,13 @@
share/gettext/its/gschema.its
share/gettext/its/gschema.loc
%%DATADIR%%-2.0/codegen/__init__.py
-%%DATADIR%%-2.0/codegen/__init__.pyc
-%%DATADIR%%-2.0/codegen/__init__.pyo
%%DATADIR%%-2.0/codegen/codegen.py
-%%DATADIR%%-2.0/codegen/codegen.pyc
-%%DATADIR%%-2.0/codegen/codegen.pyo
%%DATADIR%%-2.0/codegen/codegen_docbook.py
-%%DATADIR%%-2.0/codegen/codegen_docbook.pyc
-%%DATADIR%%-2.0/codegen/codegen_docbook.pyo
%%DATADIR%%-2.0/codegen/codegen_main.py
-%%DATADIR%%-2.0/codegen/codegen_main.pyc
-%%DATADIR%%-2.0/codegen/codegen_main.pyo
%%DATADIR%%-2.0/codegen/config.py
-%%DATADIR%%-2.0/codegen/config.pyc
-%%DATADIR%%-2.0/codegen/config.pyo
%%DATADIR%%-2.0/codegen/dbustypes.py
-%%DATADIR%%-2.0/codegen/dbustypes.pyc
-%%DATADIR%%-2.0/codegen/dbustypes.pyo
%%DATADIR%%-2.0/codegen/parser.py
-%%DATADIR%%-2.0/codegen/parser.pyc
-%%DATADIR%%-2.0/codegen/parser.pyo
%%DATADIR%%-2.0/codegen/utils.py
-%%DATADIR%%-2.0/codegen/utils.pyc
-%%DATADIR%%-2.0/codegen/utils.pyo
%%DATADIR%%-2.0/gdb/glib_gdb.py
%%DATADIR%%-2.0/gdb/gobject_gdb.py
%%DATADIR%%-2.0/gettext/po/Makefile.in.in
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Feb 1, 3:25 PM (5 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28399802
Default Alt Text
D25279.id73135.diff (64 KB)
Attached To
Mode
D25279: Update devel/glib20 to 2.66.0
Attached
Detach File
Event Timeline
Log In to Comment