Date: Tue, 30 Jan 2018 07:04:21 +0000 (UTC) From: Koop Mast <kwm@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r460371 - in branches/2018Q1/devel/glib20: . files Message-ID: <201801300704.w0U74L3i085400@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801300704.w0U74L3i085400>