svn commit: r460371 - in branches/2018Q1/devel/glib20: . files
Koop Mast
kwm at FreeBSD.org
Tue Jan 30 07:04:22 UTC 2018
Author: kwm
Date: Tue Jan 30 07:04:21 2018
New Revision: 460371
URL: https://svnweb.freebsd.org/changeset/ports/460371
Log:
MFH: r460052 r460230
Update glib to 2.50.3.
Also redo the kqueue patches. Now we patch files only once, and add some
bits that got lost somewhere (which is probably my fault). Which where
causing crashes when for example nautilus or thundar where monitoring
directories and files where added/removed.
PR: 199872
Fix another crash bug in the kqueue backend.
PR: 199872 217946
Approved by: ports-secteam (swills@)
Added:
branches/2018Q1/devel/glib20/files/patch-gio_kqueue_gkqueuefilemonitor.c
- copied unchanged from r460052, head/devel/glib20/files/patch-gio_kqueue_gkqueuefilemonitor.c
branches/2018Q1/devel/glib20/files/patch-gio_kqueue_kqueue-helper.c
- copied, changed from r460052, head/devel/glib20/files/patch-gio_kqueue_kqueue-helper.c
Deleted:
branches/2018Q1/devel/glib20/files/patch-bug739424
branches/2018Q1/devel/glib20/files/patch-bug778515
Modified:
branches/2018Q1/devel/glib20/Makefile
branches/2018Q1/devel/glib20/distinfo
Directory Properties:
branches/2018Q1/ (props changed)
Modified: branches/2018Q1/devel/glib20/Makefile
==============================================================================
--- branches/2018Q1/devel/glib20/Makefile Tue Jan 30 06:16:02 2018 (r460370)
+++ branches/2018Q1/devel/glib20/Makefile Tue Jan 30 07:04:21 2018 (r460371)
@@ -2,8 +2,8 @@
# $FreeBSD$
PORTNAME= glib
-PORTVERSION= 2.50.2
-PORTREVISION= 7
+PORTVERSION= 2.50.3
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= GNOME
@@ -39,7 +39,7 @@ INSTALL_TARGET= install-strip
SHEBANG_FILES= */*.pl
-LIBVERSION= 0.5000.2
+LIBVERSION= 0.5000.3
PLIST_SUB+= LIBVERSION=${LIBVERSION}
glib_MAN= gtester.1 gtester-report.1 glib-gettextize.1
Modified: branches/2018Q1/devel/glib20/distinfo
==============================================================================
--- branches/2018Q1/devel/glib20/distinfo Tue Jan 30 06:16:02 2018 (r460370)
+++ branches/2018Q1/devel/glib20/distinfo Tue Jan 30 07:04:21 2018 (r460371)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1491129093
-SHA256 (gnome2/glib-2.50.2.tar.xz) = be68737c1f268c05493e503b3b654d2b7f43d7d0b8c5556f7e4651b870acfbf5
-SIZE (gnome2/glib-2.50.2.tar.xz) = 7582312
+TIMESTAMP = 1516046336
+SHA256 (gnome2/glib-2.50.3.tar.xz) = 82ee94bf4c01459b6b00cb9db0545c2237921e3060c0b74cff13fbc020cfd999
+SIZE (gnome2/glib-2.50.3.tar.xz) = 7589284
Copied: branches/2018Q1/devel/glib20/files/patch-gio_kqueue_gkqueuefilemonitor.c (from r460052, head/devel/glib20/files/patch-gio_kqueue_gkqueuefilemonitor.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2018Q1/devel/glib20/files/patch-gio_kqueue_gkqueuefilemonitor.c Tue Jan 30 07:04:21 2018 (r460371, copy of r460052, head/devel/glib20/files/patch-gio_kqueue_gkqueuefilemonitor.c)
@@ -0,0 +1,45 @@
+https://bugzilla.gnome.org/show_bug.cgi?id=739424
+https://bug739424.bugzilla-attachments.gnome.org/attachment.cgi?id=351191
+
+--- gio/kqueue/gkqueuefilemonitor.c.orig 2018-01-15 21:00:32.535064000 +0100
++++ gio/kqueue/gkqueuefilemonitor.c 2018-01-15 21:07:20.920334000 +0100
+@@ -29,6 +29,15 @@
+ #include <gio/gfile.h>
+ #include <gio/giomodule.h>
+
++/*
++ * Because ``kqueue_sub'' are not refcounted, we need
++ * ensure no other thread is getting a reference to
++ * the element we want to free.
++ *
++ * That's why _kh_cancel_sub() must be called with
++ * this lock held to prevent a race.
++ */
++G_LOCK_EXTERN (hash_lock);
+
+ struct _GKqueueFileMonitor
+ {
+@@ -80,9 +89,11 @@ g_kqueue_file_monitor_finalize (GObject *object)
+
+ if (kqueue_monitor->sub)
+ {
++ G_LOCK (hash_lock);
+ _kh_cancel_sub (kqueue_monitor->sub);
+ _kh_sub_free (kqueue_monitor->sub);
+ kqueue_monitor->sub = NULL;
++ G_UNLOCK (hash_lock);
+ }
+
+ if (kqueue_monitor->fallback)
+@@ -181,9 +192,11 @@ g_kqueue_file_monitor_cancel (GFileMonitor *monitor)
+
+ if (kqueue_monitor->sub)
+ {
++ G_LOCK (hash_lock);
+ _kh_cancel_sub (kqueue_monitor->sub);
+ _kh_sub_free (kqueue_monitor->sub);
+ kqueue_monitor->sub = NULL;
++ G_UNLOCK (hash_lock);
+ }
+ else if (kqueue_monitor->fallback)
+ {
Copied and modified: branches/2018Q1/devel/glib20/files/patch-gio_kqueue_kqueue-helper.c (from r460052, head/devel/glib20/files/patch-gio_kqueue_kqueue-helper.c)
==============================================================================
--- head/devel/glib20/files/patch-gio_kqueue_kqueue-helper.c Fri Jan 26 21:26:57 2018 (r460052, copy source)
+++ branches/2018Q1/devel/glib20/files/patch-gio_kqueue_kqueue-helper.c Tue Jan 30 07:04:21 2018 (r460371)
@@ -4,8 +4,11 @@ and
https://bugzilla.gnome.org/show_bug.cgi?id=739424
https://bug739424.bugzilla-attachments.gnome.org/attachment.cgi?id=351191
---- gio/kqueue/kqueue-helper.c.orig 2018-01-15 21:22:08.234860000 +0100
-+++ gio/kqueue/kqueue-helper.c 2018-01-15 21:21:54.143656000 +0100
+https://bugzilla.gnome.org/show_bug.cgi?id=776147
+https://git.gnome.org/browse/glib/commit/?id=76072a2dde4a4acc8be8d3c47efbc6811ebe0c1e
+
+--- gio/kqueue/kqueue-helper.c.orig 2018-01-28 21:18:25.213606000 +0100
++++ gio/kqueue/kqueue-helper.c 2018-01-28 21:18:34.964780000 +0100
@@ -43,7 +43,7 @@ static gboolean kh_debug_enabled = FALSE;
#define KH_W if (kh_debug_enabled) g_warning
@@ -15,7 +18,19 @@ https://bug739424.bugzilla-attachments.gnome.org/attac
static int kqueue_descriptor = -1;
static int kqueue_socket_pair[] = {-1, -1};
-@@ -291,10 +291,10 @@ process_kqueue_notifications (GIOChannel *gioc,
+@@ -97,8 +97,10 @@ convert_kqueue_events_to_gio (uint32_t flags, gboolean
+ }
+ 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_MOVED;
++ return G_FILE_MONITOR_EVENT_DELETED;
+ }
+ if (flags & NOTE_REVOKE)
+ {
+@@ -291,10 +293,10 @@ process_kqueue_notifications (GIOChannel *gioc,
G_LOCK (hash_lock);
sub = (kqueue_sub *) g_hash_table_lookup (subs_hash_table, GINT_TO_POINTER (n.fd));
@@ -27,7 +42,7 @@ https://bug739424.bugzilla-attachments.gnome.org/attac
KH_W ("Got a notification for a deleted or non-existing subscription %d",
n.fd);
return TRUE;
-@@ -336,6 +336,7 @@ process_kqueue_notifications (GIOChannel *gioc,
+@@ -336,6 +338,7 @@ process_kqueue_notifications (GIOChannel *gioc,
g_file_monitor_source_handle_event (source, mask, NULL, NULL, NULL, g_get_monotonic_time ());
}
@@ -35,7 +50,7 @@ https://bug739424.bugzilla-attachments.gnome.org/attac
return TRUE;
}
-@@ -451,13 +452,14 @@ _kh_start_watching (kqueue_sub *sub)
+@@ -451,13 +454,14 @@ _kh_start_watching (kqueue_sub *sub)
G_LOCK (hash_lock);
g_hash_table_insert (subs_hash_table, GINT_TO_POINTER (sub->fd), sub);
@@ -51,7 +66,7 @@ https://bug739424.bugzilla-attachments.gnome.org/attac
return TRUE;
}
-@@ -498,22 +500,15 @@ _kh_add_sub (kqueue_sub *sub)
+@@ -498,22 +502,15 @@ _kh_add_sub (kqueue_sub *sub)
gboolean
_kh_cancel_sub (kqueue_sub *sub)
{
More information about the svn-ports-branches
mailing list