[OE-core] [PATCH] matchbox-desktop: sync with gio for the inotify-sub

jackie.huang at windriver.com jackie.huang at windriver.com
Tue Dec 1 05:47:10 UTC 2015


From: Jackie Huang <jackie.huang at windriver.com>

matchbox-desktop builds with included libinotify which
is very old (last sync was in 2008), if we compile glib-2.0
with -fvisibility=default (the default is hidden for libglib
and libgio), it will crash because of inconsistency of
inotify-sub, so port the related parts to fix the issue.

Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
---
 .../files/gio-sync-for-the-inotify-sub.patch       | 112 +++++++++++++++++++++
 .../matchbox-desktop/matchbox-desktop_git.bb       |   4 +-
 2 files changed, 115 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-sato/matchbox-desktop/files/gio-sync-for-the-inotify-sub.patch

diff --git a/meta/recipes-sato/matchbox-desktop/files/gio-sync-for-the-inotify-sub.patch b/meta/recipes-sato/matchbox-desktop/files/gio-sync-for-the-inotify-sub.patch
new file mode 100644
index 0000000..a9367e9
--- /dev/null
+++ b/meta/recipes-sato/matchbox-desktop/files/gio-sync-for-the-inotify-sub.patch
@@ -0,0 +1,112 @@
+From 84b7272c446cea5c6ae185548de0c6cad3a42355 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang at windriver.com>
+Date: Sat, 28 Nov 2015 07:53:38 +0000
+Subject: [PATCH] gio: sync for the inotify-sub
+
+This only sync for the inotify-sub with glib-2.44
+to keep _ih_sub_new consistent.
+
+Upstream-Status: Pending
+
+Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
+---
+ libtaku/inotify/inotify-sub.c | 15 +++++++++------
+ libtaku/inotify/inotify-sub.h | 13 +++++++++----
+ libtaku/taku-menu-desktop.c   |  2 +-
+ 3 files changed, 19 insertions(+), 11 deletions(-)
+
+diff --git a/libtaku/inotify/inotify-sub.c b/libtaku/inotify/inotify-sub.c
+index 404dc20..85b3411 100644
+--- a/libtaku/inotify/inotify-sub.c
++++ b/libtaku/inotify/inotify-sub.c
+@@ -16,8 +16,7 @@
+ 
+    You should have received a copy of the GNU Library General Public
+    License along with the Gnome Library; see the file COPYING.LIB.  If not,
+-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+-   Boston, MA 02111-1307, USA.
++   see <http://www.gnu.org/licenses/>.
+ 
+    Authors: 
+ 		 John McCutchan <john at johnmccutchan.com>
+@@ -38,15 +37,17 @@ dup_dirname (const gchar *dirname)
+   gchar *d_dirname = g_strdup (dirname);
+   size_t len = strlen (d_dirname);
+   
+-  if (d_dirname[len] == '/')
+-    d_dirname[len] = '\0';
++  if (len && d_dirname[len - 1] == '/')
++    d_dirname[len - 1] = '\0';
+   
+   return d_dirname;
+ }
+ 
+ inotify_sub*
+ _ih_sub_new (const gchar *dirname, 
+-             const gchar *filename, 
++             const gchar *filename,
++             gboolean     pair_moves,
++             gboolean     watch_hardlinks,
+              gpointer     user_data)
+ {
+   inotify_sub *sub = NULL;
+@@ -54,8 +55,10 @@ _ih_sub_new (const gchar *dirname,
+   sub = g_new0 (inotify_sub, 1);
+   sub->dirname = dup_dirname (dirname);
+   sub->filename = g_strdup (filename);
++  sub->pair_moves = pair_moves;
++  sub->hardlinks = watch_hardlinks;
+   sub->user_data = user_data;
+-  
++
+   IS_W ("new subscription for %s being setup\n", sub->dirname);
+   
+   return sub;
+diff --git a/libtaku/inotify/inotify-sub.h b/libtaku/inotify/inotify-sub.h
+index 36561e7..ff37567 100644
+--- a/libtaku/inotify/inotify-sub.h
++++ b/libtaku/inotify/inotify-sub.h
+@@ -14,8 +14,7 @@
+ 
+    You should have received a copy of the GNU Library General Public
+    License along with the Gnome Library; see the file COPYING.LIB.  If not,
+-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+-   Boston, MA 02111-1307, USA.
++   see <http://www.gnu.org/licenses/>.
+ 
+    Author: John McCutchan <john at johnmccutchan.com>
+ */
+@@ -30,9 +29,15 @@ typedef struct
+ 	gchar*   filename;
+ 	gboolean cancelled;
+ 	gpointer user_data;
++	gboolean pair_moves;
++	gboolean hardlinks;
+ } inotify_sub;
+ 
+-inotify_sub* _ih_sub_new (const gchar* dirname, const gchar* filename, gpointer user_data);
+-void         _ih_sub_free (inotify_sub* sub);
++inotify_sub *_ih_sub_new (const gchar  *dirname,
++			  const gchar  *filename,
++			  gboolean      pair_moves,
++			  gboolean      watch_hardlinks,
++			  gpointer      user_data);
++void         _ih_sub_free (inotify_sub *sub);
+ 
+ #endif /* __INOTIFY_SUB_H */
+diff --git a/libtaku/taku-menu-desktop.c b/libtaku/taku-menu-desktop.c
+index 34b10d9..ef88421 100644
+--- a/libtaku/taku-menu-desktop.c
++++ b/libtaku/taku-menu-desktop.c
+@@ -415,7 +415,7 @@ monitor (const char *directory)
+   if (!with_inotify)
+     return;
+ 
+-  sub = _ih_sub_new (directory, NULL, NULL);
++  sub = _ih_sub_new (directory, NULL, FALSE, FALSE, NULL);
+   _ip_start_watching (sub);
+ }
+ 
+-- 
+2.5.0
+
diff --git a/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb b/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb
index 318d2e0..4fcc69e 100644
--- a/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb
+++ b/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb
@@ -13,7 +13,9 @@ SECTION = "x11/wm"
 SRCREV = "71e3e6e04271e9d5a14f1c231ef100c7f320134d"
 PV = "2.0+git${SRCPV}"
 
-SRC_URI = "git://git.yoctoproject.org/${BPN}-2"
+SRC_URI = "git://git.yoctoproject.org/${BPN}-2 \
+           file://gio-sync-for-the-inotify-sub.patch \
+"
 
 EXTRA_OECONF = "--enable-startup-notification --with-dbus"
 
-- 
1.9.1




More information about the Openembedded-core mailing list