[ibus] Updated ibus-HEAD.patch for dconf 0.13.4

Takao Fujiwara fujiwara at fedoraproject.org
Thu Jul 19 06:54:09 UTC 2012


commit 2e84674b35d9a9c1d1f28673c3b9c7f8e95d3c16
Author: Takao Fujiwara <tfujiwar at redhat.com>
Date:   Thu Jul 19 15:52:49 2012 +0900

    Updated ibus-HEAD.patch for dconf 0.13.4

 ibus-HEAD.patch |  264 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 ibus.spec       |    6 +-
 2 files changed, 269 insertions(+), 1 deletions(-)
---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index 3f6deb4..ff4a8eb 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -273,6 +273,270 @@ index fc3c11b..9118020 100644
 -- 
 1.7.10.4
 
+From a454448111650c3e92fc9ba65c26a57adc9c3c6c Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1 at gmail.com>
+Date: Thu, 19 Jul 2012 09:57:01 +0900
+Subject: [PATCH] Support dconf 0.13.4
+
+TEST=Manually
+
+Review URL: https://codereview.appspot.com/6426044
+---
+ conf/dconf/Makefile.am      |    2 +-
+ conf/dconf/config-private.h |   56 +++++++++++++++++++++++++++++++++++++++++++
+ conf/dconf/config.c         |   26 +++++++++++++++++++-
+ conf/dconf/config.h         |   47 ------------------------------------
+ conf/dconf/main.c           |    2 +-
+ configure.ac                |    3 +++
+ 6 files changed, 86 insertions(+), 50 deletions(-)
+ create mode 100644 conf/dconf/config-private.h
+ delete mode 100644 conf/dconf/config.h
+
+diff --git a/conf/dconf/Makefile.am b/conf/dconf/Makefile.am
+index 148ba62..f0e24b0 100644
+--- a/conf/dconf/Makefile.am
++++ b/conf/dconf/Makefile.am
+@@ -29,7 +29,7 @@ libexec_PROGRAMS = \
+ ibus_dconf_SOURCES = \
+ 	main.c \
+ 	config.c \
+-	config.h \
++	config-private.h \
+ 	$(NULL)
+ ibus_dconf_CFLAGS = \
+ 	@GLIB2_CFLAGS@ \
+diff --git a/conf/dconf/config-private.h b/conf/dconf/config-private.h
+new file mode 100644
+index 0000000..9ba4fd5
+--- /dev/null
++++ b/conf/dconf/config-private.h
+@@ -0,0 +1,56 @@
++/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
++/* vim:set et sts=4: */
++/* ibus - The Input Bus
++ * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang at gmail.com>
++ * Copyright (C) 2008-2010 Red Hat, Inc.
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ * Boston, MA 02111-1307, USA.
++ */
++#ifndef __CONFIG_DCONF_H__
++#define __CONFIG_DCONF_H__
++
++#ifdef HAVE_CONFIG_H
++#  include <config.h>
++#endif
++
++#include <ibus.h>
++#ifdef DCONF_0_13_4
++#  include <client/dconf-client.h>
++#  include <common/dconf-paths.h>
++#else
++#  include <dconf/dconf.h>
++#endif
++
++#define IBUS_TYPE_CONFIG_DCONF            \
++    (ibus_config_dconf_get_type ())
++#define IBUS_CONFIG_DCONF(obj)            \
++    (G_TYPE_CHECK_INSTANCE_CAST ((obj), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConf))
++#define IBUS_CONFIG_DCONF_CLASS(klass)     \
++    (G_TYPE_CHECK_CLASS_CAST ((klass), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConfClass))
++#define IBUS_IS_CONFIG_DCONF(obj)          \
++    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IBUS_TYPE_CONFIG_DCONF))
++#define IBUS_IS_CONFIG_DCONF_CLASS(klass)  \
++    (G_TYPE_CHECK_CLASS_TYPE ((klass), IBUS_TYPE_CONFIG_DCONF))
++#define IBUS_CONFIG_DCONF_GET_CLASS(obj)   \
++    (G_TYPE_INSTANCE_GET_CLASS ((obj), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConfClass))
++
++typedef struct _IBusConfigDConf IBusConfigDConf;
++typedef struct _IBusConfigDConfClass IBusConfigDConfClass;
++
++GType            ibus_config_dconf_get_type (void);
++IBusConfigDConf *ibus_config_dconf_new      (GDBusConnection *connection);
++
++#endif
+diff --git a/conf/dconf/config.c b/conf/dconf/config.c
+index faca932..44d7031 100644
+--- a/conf/dconf/config.c
++++ b/conf/dconf/config.c
+@@ -23,7 +23,7 @@
+ 
+ #include <string.h>
+ #include <ibus.h>
+-#include "config.h"
++#include "config-private.h"
+ 
+ #define DCONF_PREFIX "/desktop/ibus"
+ #define DCONF_PRESERVE_NAME_PREFIXES_KEY \
+@@ -159,12 +159,19 @@ static void
+ _watch_func (DConfClient         *client,
+              const gchar         *gpath,
+              const gchar * const *items,
++#ifndef DCONF_0_13_4
+              gint                 n_items,
++#endif
+              const gchar         *tag,
+              IBusConfigDConf     *config)
+ {
+     gchar **gkeys = NULL;
+     gint i;
++#ifdef DCONF_0_13_4
++    gint n_items;
++
++    n_items = g_strv_length ((gchar **)items);
++#endif
+ 
+     g_return_if_fail (gpath != NULL);
+     g_return_if_fail (n_items >= 0);
+@@ -231,6 +238,14 @@ static void
+ ibus_config_dconf_init (IBusConfigDConf *config)
+ {
+     GVariant *variant;
++#ifdef DCONF_0_13_4
++    config->client = dconf_client_new ();
++
++    g_signal_connect (config->client, "changed",
++                      G_CALLBACK (_watch_func), config);
++
++    dconf_client_watch_fast (config->client, DCONF_PREFIX"/");
++#else
+     GError *error;
+ 
+     config->client = dconf_client_new ("ibus",
+@@ -241,6 +256,7 @@ ibus_config_dconf_init (IBusConfigDConf *config)
+     error = NULL;
+     if (!dconf_client_watch (config->client, DCONF_PREFIX"/", NULL, &error))
+         g_warning ("Can not watch dconf path %s", DCONF_PREFIX"/");
++#endif
+ 
+     config->preserve_name_prefixes = NULL;
+     variant = dconf_client_read (config->client,
+@@ -265,9 +281,13 @@ static void
+ ibus_config_dconf_destroy (IBusConfigDConf *config)
+ {
+     if (config->client) {
++#ifdef DCONF_0_13_4
++        dconf_client_unwatch_fast (config->client, DCONF_PREFIX"/");
++#else
+         GError *error = NULL;
+         if (!dconf_client_unwatch (config->client, DCONF_PREFIX"/", NULL, &error))
+             g_warning ("Can not unwatch dconf path %s", DCONF_PREFIX"/");
++#endif
+ 
+         g_object_unref (config->client);
+         config->client = NULL;
+@@ -307,12 +327,16 @@ ibus_config_dconf_set_value (IBusConfigService *config,
+         g_free (gname);
+     }
+ 
++#ifdef DCONF_0_13_4
++    retval = dconf_client_write_fast (client, gkey, value, error);
++#else
+     retval = dconf_client_write (client,
+                                  gkey,
+                                  value,
+                                  NULL,   /* tag */
+                                  NULL,   /* cancellable */
+                                  error);
++#endif
+     g_free (gkey);
+ 
+     return retval;
+diff --git a/conf/dconf/config.h b/conf/dconf/config.h
+deleted file mode 100644
+index 9f602d6..0000000
+--- a/conf/dconf/config.h
++++ /dev/null
+@@ -1,47 +0,0 @@
+-/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+-/* vim:set et sts=4: */
+-/* ibus - The Input Bus
+- * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang at gmail.com>
+- * Copyright (C) 2008-2010 Red Hat, Inc.
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser General Public
+- * License as published by the Free Software Foundation; either
+- * version 2 of the License, or (at your option) any later version.
+- *
+- * This library is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- * Lesser General Public License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+- * Boston, MA 02111-1307, USA.
+- */
+-#ifndef __CONFIG_DCONF_H__
+-#define __CONFIG_DCONF_H__
+-
+-#include <ibus.h>
+-#include <dconf/dconf.h>
+-
+-#define IBUS_TYPE_CONFIG_DCONF            \
+-    (ibus_config_dconf_get_type ())
+-#define IBUS_CONFIG_DCONF(obj)            \
+-    (G_TYPE_CHECK_INSTANCE_CAST ((obj), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConf))
+-#define IBUS_CONFIG_DCONF_CLASS(klass)     \
+-    (G_TYPE_CHECK_CLASS_CAST ((klass), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConfClass))
+-#define IBUS_IS_CONFIG_DCONF(obj)          \
+-    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IBUS_TYPE_CONFIG_DCONF))
+-#define IBUS_IS_CONFIG_DCONF_CLASS(klass)  \
+-    (G_TYPE_CHECK_CLASS_TYPE ((klass), IBUS_TYPE_CONFIG_DCONF))
+-#define IBUS_CONFIG_DCONF_GET_CLASS(obj)   \
+-    (G_TYPE_INSTANCE_GET_CLASS ((obj), IBUS_TYPE_CONFIG_DCONF, IBusConfigDConfClass))
+-
+-typedef struct _IBusConfigDConf IBusConfigDConf;
+-typedef struct _IBusConfigDConfClass IBusConfigDConfClass;
+-
+-GType            ibus_config_dconf_get_type (void);
+-IBusConfigDConf *ibus_config_dconf_new      (GDBusConnection *connection);
+-
+-#endif
+diff --git a/conf/dconf/main.c b/conf/dconf/main.c
+index 1b69baa..bffe983 100644
+--- a/conf/dconf/main.c
++++ b/conf/dconf/main.c
+@@ -23,7 +23,7 @@
+ #include <ibus.h>
+ #include <stdlib.h>
+ #include <locale.h>
+-#include "config.h"
++#include "config-private.h"
+ 
+ static IBusBus *bus = NULL;
+ static IBusConfigDConf *config = NULL;
+diff --git a/configure.ac b/configure.ac
+index 8498efe..cc7d0e0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -327,6 +327,9 @@ if test x"$enable_dconf" = x"yes"; then
+         [dconf >= 0.7.5], ,
+         enable_dconf=no
+     )
++    PKG_CHECK_EXISTS([dconf >= 0.13.4],
++        [AC_DEFINE(DCONF_0_13_4, TRUE, [dconf is 0.13.4 or later])],
++        [])
+     # check glib-compile-schemas
+     GLIB_GSETTINGS
+ fi
+-- 
+1.7.10.4
+
 From 52fbf82dd1babc0d8de7be0f5bb6de622c069b4d Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1 at gmail.com>
 Date: Tue, 12 Jun 2012 11:53:29 +0900
diff --git a/ibus.spec b/ibus.spec
index e585dc6..3820c08 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -30,7 +30,7 @@
 
 Name:       ibus
 Version:    1.4.99.20120712
-Release:    1%{?dist}
+Release:    2%{?dist}
 Summary:    Intelligent Input Bus for Linux OS
 License:    LGPLv2+
 Group:      System Environment/Libraries
@@ -473,6 +473,10 @@ dconf update
 %{_datadir}/gtk-doc/html/*
 
 %changelog
+* Thu Jul 19 2012 Takao Fujiwara <tfujiwar at redhat.com> - 1.4.99.20120712-2
+- Updated ibus-HEAD.patch
+  Support dconf 0.13.4
+
 * Tue Jul 17 2012 Takao Fujiwara <tfujiwar at redhat.com> - 1.4.99.20120712-1
 - Bumped to 1.4.99.20120712
 - Removed ibus-xx-branding-switcher-ui.patch as upstreamed.


More information about the scm-commits mailing list