Updated to 1.3.99.20110419

- Updated ibus-541492-xkb.patch
  Updated ibus-1.0.pc for ibus-xkb
This commit is contained in:
Takao Fujiwara 2011-06-02 03:07:41 +09:00
parent edef368983
commit 84d8da5428
5 changed files with 257 additions and 29 deletions

2
.gitignore vendored
View File

@ -12,3 +12,5 @@ ibus-1.3.6.tar.gz
/ibus-1.3.99.20110408.tar.gz /ibus-1.3.99.20110408.tar.gz
/gnome-shell-ibus-plugins-20110317.tar.bz2 /gnome-shell-ibus-plugins-20110317.tar.bz2
/ibus_master_da.po /ibus_master_da.po
/ibus-1.3.99.20110419.tar.gz
/gnome-shell-ibus-plugins-20110601.tar.bz2

View File

@ -1,12 +1,13 @@
From 63051a74572fcd4caf496c87a3eebb058ba93bc0 Mon Sep 17 00:00:00 2001 From b6b83e9484abad910271b15222d3f76f206a1ff6 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com> From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Thu, 26 May 2011 14:55:31 +0900 Date: Wed, 1 Jun 2011 18:24:10 +0900
Subject: [PATCH] Add XKB layouts Subject: [PATCH] Add XKB layouts
--- ---
Makefile.am | 7 + Makefile.am | 7 +
configure.ac | 53 ++++ configure.ac | 56 ++++
data/ibus.schemas.in | 36 +++ data/ibus.schemas.in | 36 +++
ibus-1.0.pc.in | 2 +
ibus/Makefile.am | 26 ++ ibus/Makefile.am | 26 ++
ibus/__init__.py | 2 + ibus/__init__.py | 2 +
ibus/bus.py | 3 + ibus/bus.py | 3 +
@ -31,7 +32,7 @@ Subject: [PATCH] Add XKB layouts
xkb/xkblib.h | 40 +++ xkb/xkblib.h | 40 +++
xkb/xkbxml.c | 696 ++++++++++++++++++++++++++++++++++++++++++++ xkb/xkbxml.c | 696 ++++++++++++++++++++++++++++++++++++++++++++
xkb/xkbxml.h | 189 ++++++++++++ xkb/xkbxml.h | 189 ++++++++++++
27 files changed, 3803 insertions(+), 6 deletions(-) 28 files changed, 3808 insertions(+), 6 deletions(-)
create mode 100644 ibus/xkblayout.py.in create mode 100644 ibus/xkblayout.py.in
create mode 100644 ibus/xkbxml.py.in create mode 100644 ibus/xkbxml.py.in
create mode 100644 setup/xkbsetup.py create mode 100644 setup/xkbsetup.py
@ -72,10 +73,10 @@ index 29c57e1..dbe0b6b 100644
$(NULL) $(NULL)
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index 8da8c6e..b3cdb0b 100644 index 8da8c6e..ce1526c 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -185,6 +185,57 @@ else @@ -185,6 +185,60 @@ else
enable_xim="no (disabled, use --enable-xim to enable)" enable_xim="no (disabled, use --enable-xim to enable)"
fi fi
@ -96,9 +97,12 @@ index 8da8c6e..b3cdb0b 100644
+ [XKB_LIBS="-lxkbfile"] + [XKB_LIBS="-lxkbfile"]
+ ) + )
+ AC_DEFINE(HAVE_XKB, 1, [define to 1 if you have xkbfile]) + AC_DEFINE(HAVE_XKB, 1, [define to 1 if you have xkbfile])
+ HAVE_IBUS_XKB=true
+else +else
+ enable_xkb="no (disabled, use --enable-xkb to enable)" + enable_xkb="no (disabled, use --enable-xkb to enable)"
+ HAVE_IBUS_XKB=false
+fi +fi
+AC_SUBST(HAVE_IBUS_XKB)
+ +
+# define XKB rules file +# define XKB rules file
+AC_ARG_WITH(xkb-rules-xml, +AC_ARG_WITH(xkb-rules-xml,
@ -133,7 +137,7 @@ index 8da8c6e..b3cdb0b 100644
# GObject introspection # GObject introspection
GOBJECT_INTROSPECTION_CHECK([0.6.8]) GOBJECT_INTROSPECTION_CHECK([0.6.8])
@@ -430,6 +481,7 @@ gconf/Makefile @@ -430,6 +484,7 @@ gconf/Makefile
gconf/gconf.xml.in gconf/gconf.xml.in
bindings/Makefile bindings/Makefile
bindings/vala/Makefile bindings/vala/Makefile
@ -141,7 +145,7 @@ index 8da8c6e..b3cdb0b 100644
]) ])
AC_OUTPUT AC_OUTPUT
@@ -445,6 +497,7 @@ Build options: @@ -445,6 +500,7 @@ Build options:
Build gtk2 immodule $enable_gtk2 Build gtk2 immodule $enable_gtk2
Build gtk3 immodule $enable_gtk3 Build gtk3 immodule $enable_gtk3
Build XIM agent server $enable_xim Build XIM agent server $enable_xim
@ -196,6 +200,19 @@ index b75295e..7ca4899 100644
<key>/schemas/desktop/ibus/panel/use_custom_font</key> <key>/schemas/desktop/ibus/panel/use_custom_font</key>
<applyto>/desktop/ibus/panel/use_custom_font</applyto> <applyto>/desktop/ibus/panel/use_custom_font</applyto>
<owner>ibus</owner> <owner>ibus</owner>
diff --git a/ibus-1.0.pc.in b/ibus-1.0.pc.in
index 9f593ab..51eb67a 100644
--- a/ibus-1.0.pc.in
+++ b/ibus-1.0.pc.in
@@ -4,6 +4,8 @@ libdir=@libdir@
includedir=@includedir@
datadir=@datadir@
pkgdatadir=@datadir@/ibus
+have_ibus_xkb=@HAVE_IBUS_XKB@
+ibus_xkb=@libexecdir@/ibus-xkb
Name: IBus
Description: IBus Library
diff --git a/ibus/Makefile.am b/ibus/Makefile.am diff --git a/ibus/Makefile.am b/ibus/Makefile.am
index c71df1b..508c98f 100644 index c71df1b..508c98f 100644
--- a/ibus/Makefile.am --- a/ibus/Makefile.am
@ -280,7 +297,7 @@ index 678d517..7de56fc 100644
diff --git a/ibus/xkblayout.py.in b/ibus/xkblayout.py.in diff --git a/ibus/xkblayout.py.in b/ibus/xkblayout.py.in
new file mode 100644 new file mode 100644
index 0000000..7685776 index 0000000..6097ed1
--- /dev/null --- /dev/null
+++ b/ibus/xkblayout.py.in +++ b/ibus/xkblayout.py.in
@@ -0,0 +1,225 @@ @@ -0,0 +1,225 @@
@ -416,7 +433,7 @@ index 0000000..7685776
+ self.__default_option = self.get_option() + self.__default_option = self.get_option()
+ if (self.__time_lag_session_xkb_layout == True or \ + if (self.__time_lag_session_xkb_layout == True or \
+ self.__time_lag_session_xkb_option == True ) and \ + self.__time_lag_session_xkb_option == True ) and \
+ (self.__time_lag_session_xkb_timer - time.time() \ + (time.time() - self.__time_lag_session_xkb_timer \
+ > XKB_SESSION_TIME_OUT): + > XKB_SESSION_TIME_OUT):
+ self.__time_lag_session_xkb_layout = False + self.__time_lag_session_xkb_layout = False
+ self.__time_lag_session_xkb_option = False + self.__time_lag_session_xkb_option = False

View File

@ -1,25 +1,228 @@
From 92246e8ffd4d1f4534ac7b487d599e3b2fa30fc0 Mon Sep 17 00:00:00 2001 From 80e5bd0785ca91a70f0b5fe511a3bd8e143d8d05 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com> From: Takao Fujiwara <takao.fujiwara1@gmail.com>
Date: Tue, 19 Apr 2011 14:22:04 +0900 Date: Wed, 27 Apr 2011 07:48:50 -0400
Subject: [PATCH] Call waitpid when ibus-daemon restarts. Subject: [PATCH] Fix the zombie process of ibus-gconf when ibus-daemon
restarts.
- Fix the typo in bus_dbus_impl_destroy() (dbusimpl.c)
- Modify bus_server_run() and _ibus_exit() (ibusimpl.c, server.c)
bus_ibus_impl_destroy() needs to be called so that waitpid()
prevents processes from becoming zombie.
- Change the declaration of bus_server_quit(). (server.h)
BUG=redhat#697471
TEST=Linux desktop
Review URL: http://codereview.appspot.com/4440059
Patch from Takao Fujiwara <takao.fujiwara1@gmail.com>.
--- ---
bus/ibusimpl.c | 2 ++ bus/dbusimpl.c | 5 ++---
1 files changed, 2 insertions(+), 0 deletions(-) bus/ibusimpl.c | 40 +---------------------------------------
bus/server.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
bus/server.h | 3 ++-
src/ibusbus.c | 8 +++++++-
5 files changed, 61 insertions(+), 45 deletions(-)
diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c
index d67a3ce..5616222 100644
--- a/bus/dbusimpl.c
+++ b/bus/dbusimpl.c
@@ -577,11 +577,10 @@ bus_dbus_impl_destroy (BusDBusImpl *dbus)
dbus->rules = NULL;
for (p = dbus->connections; p != NULL; p = p->next) {
- GDBusConnection *connection = G_DBUS_CONNECTION (p->data);
+ BusConnection *connection = BUS_CONNECTION (p->data);
g_signal_handlers_disconnect_by_func (connection,
bus_dbus_impl_connection_destroy_cb, dbus);
- /* FIXME should handle result? */
- g_dbus_connection_close (connection, NULL, NULL, NULL);
+ ibus_object_destroy (IBUS_OBJECT (connection));
g_object_unref (connection);
}
g_list_free (dbus->connections);
diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
index a7ae52b..0b3e90e 100644 index a7ae52b..b356b2c 100644
--- a/bus/ibusimpl.c --- a/bus/ibusimpl.c
+++ b/bus/ibusimpl.c +++ b/bus/ibusimpl.c
@@ -1678,6 +1678,8 @@ _ibus_exit (BusIBusImpl *ibus, @@ -24,9 +24,7 @@
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
-#include <stdlib.h>
#include <locale.h>
-#include <string.h>
#include <strings.h>
#include "types.h"
#include "ibusimpl.h"
@@ -937,7 +935,6 @@ bus_ibus_impl_destroy (BusIBusImpl *ibus)
ibus->fake_context = NULL;
}
g_dbus_method_invocation_return_value (invocation, NULL); - bus_server_quit ();
IBUS_OBJECT_CLASS (bus_ibus_impl_parent_class)->destroy (IBUS_OBJECT (ibus));
}
+ bus_ibus_impl_destroy (ibus); @@ -1682,43 +1679,8 @@ _ibus_exit (BusIBusImpl *ibus,
+
/* Make sure the reply has been sent out before exit */
g_dbus_connection_flush_sync (g_dbus_method_invocation_get_connection (invocation), g_dbus_connection_flush_sync (g_dbus_method_invocation_get_connection (invocation),
NULL, NULL,
NULL);
- bus_server_quit ();
- if (!restart) {
- exit (0);
- }
- else {
- extern gchar **g_argv;
- gchar *exe;
- gint fd;
-
- exe = g_strdup_printf ("/proc/%d/exe", getpid ());
- exe = g_file_read_link (exe, NULL);
-
- if (exe == NULL)
- exe = BINDIR "/ibus-daemon";
-
- /* close all fds except stdin, stdout, stderr */
- for (fd = 3; fd <= sysconf (_SC_OPEN_MAX); fd ++) {
- close (fd);
- }
-
- execv (exe, g_argv);
-
- /* If the server binary is replaced while the server is running,
- * "readlink /proc/[pid]/exe" might return a path with " (deleted)"
- * suffix. */
- const gchar suffix[] = " (deleted)";
- if (g_str_has_suffix (exe, suffix)) {
- exe [strlen (exe) - sizeof (suffix) + 1] = '\0';
- execv (exe, g_argv);
- }
- g_warning ("execv %s failed!", g_argv[0]);
- exit (-1);
- }
-
- /* should not reach here */
- g_assert_not_reached ();
+ bus_server_quit (restart);
}
/**
diff --git a/bus/server.c b/bus/server.c
index d180513..c2ab9a4 100644
--- a/bus/server.c
+++ b/bus/server.c
@@ -21,6 +21,8 @@
*/
#include "server.h"
#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
#include "dbusimpl.h"
#include "ibusimpl.h"
#include "option.h"
@@ -30,6 +32,40 @@ static GMainLoop *mainloop = NULL;
static BusDBusImpl *dbus = NULL;
static BusIBusImpl *ibus = NULL;
static gchar *address = NULL;
+static gboolean _restart = FALSE;
+
+static void
+_restart_server (void)
+{
+ extern gchar **g_argv;
+ gchar *exe;
+ gint fd;
+
+ exe = g_strdup_printf ("/proc/%d/exe", getpid ());
+ exe = g_file_read_link (exe, NULL);
+
+ if (exe == NULL)
+ exe = BINDIR "/ibus-daemon";
+
+ /* close all fds except stdin, stdout, stderr */
+ for (fd = 3; fd <= sysconf (_SC_OPEN_MAX); fd ++) {
+ close (fd);
+ }
+
+ _restart = FALSE;
+ execv (exe, g_argv);
+
+ /* If the server binary is replaced while the server is running,
+ * "readlink /proc/[pid]/exe" might return a path with " (deleted)"
+ * suffix. */
+ const gchar suffix[] = " (deleted)";
+ if (g_str_has_suffix (exe, suffix)) {
+ exe [strlen (exe) - sizeof (suffix) + 1] = '\0';
+ execv (exe, g_argv);
+ }
+ g_warning ("execv %s failed!", g_argv[0]);
+ exit (-1);
+}
/**
* bus_new_connection_cb:
@@ -112,11 +148,23 @@ bus_server_run (void)
mainloop = NULL;
g_free (address);
address = NULL;
+
+ /* When _ibus_exit() is called, bus_ibus_impl_destroy() needs
+ * to be called so that waitpid() prevents the processes from
+ * becoming the daemons. So we run execv() after
+ * ibus_object_destroy(ibus) is called here. */
+ if (_restart) {
+ _restart_server ();
+
+ /* should not reach here */
+ g_assert_not_reached ();
+ }
}
void
-bus_server_quit (void)
+bus_server_quit (gboolean restart)
{
+ _restart = restart;
if (mainloop)
g_main_loop_quit (mainloop);
}
diff --git a/bus/server.h b/bus/server.h
index 6dfd79a..e1cb3ec 100644
--- a/bus/server.h
+++ b/bus/server.h
@@ -43,10 +43,11 @@ void bus_server_run (void);
/**
* bus_server_quit:
+ * @restart: TRUE if ibus-daemon restarts.
*
* Quit the glib main loop.
*/
-void bus_server_quit (void);
+void bus_server_quit (gboolean restart);
/**
* bus_server_get_address:
diff --git a/src/ibusbus.c b/src/ibusbus.c
index 0e9418e..39ad784 100644
--- a/src/ibusbus.c
+++ b/src/ibusbus.c
@@ -236,7 +236,13 @@ _connection_closed_cb (GDBusConnection *connection,
IBusBus *bus)
{
if (error) {
- g_warning ("_connection_closed_cb: %s", error->message);
+ /* We replaced g_warning with g_debug here because
+ * currently when ibus-daemon restarts, GTK client calls this and
+ * _g_dbus_worker_do_read_cb() sets the error message:
+ * "Underlying GIOStream returned 0 bytes on an async read"
+ * http://git.gnome.org/browse/glib/tree/gio/gdbusprivate.c#n693
+ * However we think the error message is almost harmless. */
+ g_debug ("_connection_closed_cb: %s", error->message);
}
g_assert (bus->priv->connection == connection);
-- --
1.7.4.2 1.7.4.4

View File

@ -12,8 +12,8 @@
%define gnome_icon_theme_legacy_version 2.91.6 %define gnome_icon_theme_legacy_version 2.91.6
Name: ibus Name: ibus
Version: 1.3.99.20110408 Version: 1.3.99.20110419
Release: 5%{?dist} Release: 1%{?dist}
Summary: Intelligent Input Bus for Linux OS Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+ License: LGPLv2+
Group: System Environment/Libraries Group: System Environment/Libraries
@ -21,7 +21,7 @@ URL: http://code.google.com/p/ibus/
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
Source1: xinput-ibus Source1: xinput-ibus
%if %have_gjsfile %if %have_gjsfile
Source2: http://fujiwara.fedorapeople.org/ibus/gnome-shell/gnome-shell-ibus-plugins-20110317.tar.bz2 Source2: http://fujiwara.fedorapeople.org/ibus/gnome-shell/gnome-shell-ibus-plugins-20110601.tar.bz2
%endif %endif
Source3: https://www.transifex.net/projects/p/ibus/resource/master/l/da/download/ibus_master_da.po Source3: https://www.transifex.net/projects/p/ibus/resource/master/l/da/download/ibus_master_da.po
Patch0: ibus-HEAD.patch Patch0: ibus-HEAD.patch
@ -143,6 +143,10 @@ The ibus-devel-docs package contains developer documentation for ibus
%setup -q %setup -q
%if %have_gjsfile %if %have_gjsfile
bzcat %SOURCE2 | tar xf - bzcat %SOURCE2 | tar xf -
sed -i \
-e "s|Config.IBUS_XKB|'/usr/libexec/ibus-xkb'|" \
-e "s|Config.HAVE_IBUS_XKB|true|" \
js/ui/status/ibus/xkbLayout.js
%endif %endif
cp %SOURCE3 po/da.po cp %SOURCE3 po/da.po
%patch0 -p1 %patch0 -p1
@ -328,11 +332,13 @@ fi
%{_datadir}/gtk-doc/html/* %{_datadir}/gtk-doc/html/*
%changelog %changelog
* Thu May 26 2011 Takao Fujiwara <tfujiwar@redhat.com> - 1.3.99.20110408-5 * Thu May 26 2011 Takao Fujiwara <tfujiwar@redhat.com> - 1.3.99.20110419-1
- Updated to 1.3.99.20110419
- Added ibus-HEAD.patch - Added ibus-HEAD.patch
Fixed Bug 697471 - ibus-gconf zombie when restart ibus from ibus panel. Fixed Bug 697471 - ibus-gconf zombie when restart ibus from ibus panel.
- Updated ibus-541492-xkb.patch - Updated ibus-541492-xkb.patch
Fixed Bug 701202 - us(dvorak) does not show up in list Fixed Bug 701202 - us(dvorak) does not show up in list
Updated ibus-1.0.pc for ibus-xkb
Showed XKB variant descriptions only without layout descriptions. Showed XKB variant descriptions only without layout descriptions.
- Updated ibus-xx-setup-frequent-lang.patch - Updated ibus-xx-setup-frequent-lang.patch
Updated UI strings Updated UI strings

View File

@ -1,3 +1,3 @@
6ce34da8e9283d6df076bf6af9bbf815 ibus-1.3.99.20110408.tar.gz d4f2729fecb92ae6b41f26c770b1a772 ibus-1.3.99.20110419.tar.gz
2d6991ca7d3147aa486b6297872bed5f gnome-shell-ibus-plugins-20110317.tar.bz2 64e556364ee619d51e80397086b1d244 gnome-shell-ibus-plugins-20110601.tar.bz2
698c90edf0f037488e1aa969804e891f ibus_master_da.po 698c90edf0f037488e1aa969804e891f ibus_master_da.po