From a140924e437346ebb7cd30c6e4d316ab5d447871 Mon Sep 17 00:00:00 2001 From: Simon Deziel Date: Wed, 22 Feb 2023 19:05:17 +0900 Subject: [PATCH] src/services: use a shell exec in systemd service files exec sub-command avoids keeping the parent shell around. Refer sh(1) Fedora sh is bash. BUG=https://github.com/ibus/ibus/pull/2453 --- bus/services/org.freedesktop.IBus.session.GNOME.service.in | 2 +- bus/services/org.freedesktop.IBus.session.generic.service.in | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/bus/services/org.freedesktop.IBus.session.GNOME.service.in b/bus/services/org.freedesktop.IBus.session.GNOME.service.in index 7f718e3c..858cf10d 100644 --- a/bus/services/org.freedesktop.IBus.session.GNOME.service.in +++ b/bus/services/org.freedesktop.IBus.session.GNOME.service.in @@ -18,7 +18,7 @@ Conflicts=gnome-session@gnome-login.target [Service] Type=dbus # Only pull --xim in X11 session, it is done via Xwayland-session.d on Wayland -ExecStart=sh -c '@bindir@/ibus-daemon --panel disable $([ "$XDG_SESSION_TYPE" = "x11" ] && echo "--xim")' +ExecStart=sh -c 'exec @bindir@/ibus-daemon --panel disable $([ "$XDG_SESSION_TYPE" = "x11" ] && echo "--xim")' Restart=on-abnormal BusName=org.freedesktop.IBus TimeoutStopSec=5 diff --git a/bus/services/org.freedesktop.IBus.session.generic.service.in b/bus/services/org.freedesktop.IBus.session.generic.service.in index 9d493159..e7b7ce4f 100644 --- a/bus/services/org.freedesktop.IBus.session.generic.service.in +++ b/bus/services/org.freedesktop.IBus.session.generic.service.in @@ -7,8 +7,7 @@ Conflicts=gnome-session-initialized.target [Service] Type=dbus -# Only pull --xim in X11 session, it is done via Xwayland-session.d on Wayland -ExecStart=sh -c '@bindir@/ibus-daemon $IBUS_DAEMON_ARGS' +ExecStart=sh -c 'exec @bindir@/ibus-daemon $IBUS_DAEMON_ARGS' Restart=on-abnormal BusName=org.freedesktop.IBus TimeoutStopSec=5 -- 2.39.2 From 7da18d08ce85405e41ba7bf363661292bc97ca39 Mon Sep 17 00:00:00 2001 From: fujiwarat Date: Wed, 22 Feb 2023 23:53:35 +0900 Subject: [PATCH] src: Call IBUS_TYPE_EMOJI_DATA in ibus_init() Seems the evaluation of IBUS_EMOJI_DATA() depends on the compiler optimization. BUG=https://github.com/ibus/ibus/issues/2476 --- src/ibusshare.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ibusshare.c b/src/ibusshare.c index 340168c8..bb59f3cb 100644 --- a/src/ibusshare.c +++ b/src/ibusshare.c @@ -308,12 +308,15 @@ ibus_init (void) IBUS_TYPE_TEXT; IBUS_TYPE_ATTRIBUTE; IBUS_TYPE_ATTR_LIST; - IBUS_TYPE_LOOKUP_TABLE; IBUS_TYPE_COMPONENT; + IBUS_TYPE_EMOJI_DATA; IBUS_TYPE_ENGINE_DESC; + IBUS_TYPE_LOOKUP_TABLE; IBUS_TYPE_OBSERVED_PATH; IBUS_TYPE_REGISTRY; IBUS_TYPE_X_EVENT; + IBUS_TYPE_UNICODE_BLOCK; + IBUS_TYPE_UNICODE_DATA; _ibus_register_resource (); } -- 2.38.1 From ce5e2bb43ea4c2f5780f4a3bfd7509f812b60afa Mon Sep 17 00:00:00 2001 From: Izumi Tsutsui Date: Tue, 28 Feb 2023 18:05:29 +0900 Subject: [PATCH] src: Define X11_LOCALEDATADIR for BSD Compose data FreeBSD and NetBSD have X11 locale Compose data directories in ${X11_PREFIX}/lib/X11/locale instead of ${X11_PREFIX}/share/X11/locale: https://github.com/freedesktop/xorg-lib-libX11/blob/20a3f99/configure.ac#L336-L340 BUG=https://github.com/ibus/ibus/pull/2478 --- configure.ac | 8 ++++++++ src/Makefile.am | 2 +- src/gencomposetable.c | 6 ++---- src/ibuscomposetable.c | 5 ++--- src/ibusenginesimple.c | 5 ++--- src/tests/Makefile.am | 2 +- src/tests/ibus-compose.c | 3 +-- 7 files changed, 17 insertions(+), 14 deletions(-) diff --git a/configure.ac b/configure.ac index f446ae92..ece1d9ee 100644 --- a/configure.ac +++ b/configure.ac @@ -349,6 +349,14 @@ else fi AC_SUBST(X11_PREFIX) +# Check locale dir for Compose files. +AC_CHECK_FILE($X11_PREFIX/share/X11/locale/locale.dir, + X11_LOCALEDATADIR="$X11_PREFIX/share/X11/locale", + [AC_CHECK_FILE($X11_PREFIX/lib/X11/locale/locale.dir, + X11_LOCALEDATADIR="$X11_PREFIX/lib/X11/locale", + X11_LOCALEDATADIR="$(datadir)/X11/locale")]) +AC_SUBST(X11_LOCALEDATADIR) + if test x"$enable_wayland" = x"yes"; then # Check for wayland PKG_CHECK_MODULES(WAYLAND, [ diff --git a/src/Makefile.am b/src/Makefile.am index 426376dd..c2e8daa6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -54,7 +54,7 @@ AM_CPPFLAGS = \ -DIBUS_DISABLE_DEPRECATION_WARNINGS \ -DIBUS_COMPILATION \ -DISOCODES_PREFIX=\"$(ISOCODES_PREFIX)\" \ - -DX11_DATA_PREFIX=\"$(X11_PREFIX)\" \ + -DX11_LOCALEDATADIR=\"$(X11_LOCALEDATADIR)\" \ $(NULL) # ibus library diff --git a/src/gencomposetable.c b/src/gencomposetable.c index 3fe6ff86..6e52d6a6 100644 --- a/src/gencomposetable.c +++ b/src/gencomposetable.c @@ -28,8 +28,6 @@ #include "ibuscomposetable.h" #include "ibusenginesimpleprivate.h" -#define X11_DATADIR X11_DATA_PREFIX "/share/X11/locale" - static void save_compose_table_endianness (IBusComposeTableEx *compose_table, @@ -84,7 +82,7 @@ main (int argc, char *argv[]) if (!path || !g_file_test (path, G_FILE_TEST_EXISTS)) { g_clear_pointer (&path, g_free); for (sys_lang = sys_langs; *sys_lang; sys_lang++) { - path = g_build_filename (X11_DATADIR, *sys_lang, + path = g_build_filename (X11_LOCALEDATADIR, *sys_lang, "Compose", NULL); if (!path) continue; @@ -93,7 +91,7 @@ main (int argc, char *argv[]) } } if (!path) { - g_warning ("en_US compose file is not found in %s.", X11_DATADIR); + g_warning ("en_US compose file is not found in %s.", X11_LOCALEDATADIR); return 1; } else { g_debug ("Create a cache of %s", path); diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c index 3e7b0f41..fc486692 100644 --- a/src/ibuscomposetable.c +++ b/src/ibuscomposetable.c @@ -39,7 +39,6 @@ #define IBUS_COMPOSE_TABLE_MAGIC "IBusComposeTable" #define IBUS_COMPOSE_TABLE_VERSION (4) -#define X11_DATADIR X11_DATA_PREFIX "/share/X11/locale" #define IBUS_MAX_COMPOSE_ALGORITHM_LEN 9 typedef struct { @@ -285,7 +284,7 @@ expand_include_path (const char *include_path) { case 'S': /* system compose dir */ o = out; former = g_strndup (head, i - head); - out = g_strdup_printf ("%s%s%s", o, former, X11_DATADIR); + out = g_strdup_printf ("%s%s%s", o, former, X11_LOCALEDATADIR); head = i + 2; g_free (o); g_free (former); @@ -397,7 +396,7 @@ get_en_compose_file (void) char * const *sys_lang = NULL; char *path = NULL; for (sys_lang = sys_langs; *sys_lang; sys_lang++) { - path = g_build_filename (X11_DATADIR, *sys_lang, "Compose", NULL); + path = g_build_filename (X11_LOCALEDATADIR, *sys_lang, "Compose", NULL); if (g_file_test (path, G_FILE_TEST_EXISTS)) break; g_clear_pointer (&path, g_free); diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c index 409d5a56..585d7870 100644 --- a/src/ibusenginesimple.c +++ b/src/ibusenginesimple.c @@ -37,7 +37,6 @@ #include #include -#define X11_DATADIR X11_DATA_PREFIX "/share/X11/locale" #define IBUS_ENGINE_SIMPLE_GET_PRIVATE(o) \ ((IBusEngineSimplePrivate *)ibus_engine_simple_get_instance_private (o)) @@ -1440,7 +1439,7 @@ ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple, for (sys_lang = sys_langs; *sys_lang; sys_lang++) { if (g_ascii_strncasecmp (*lang, *sys_lang, strlen (*sys_lang)) == 0) { - path = g_build_filename (X11_DATADIR, + path = g_build_filename (X11_LOCALEDATADIR, *lang, "Compose", NULL); break; } @@ -1462,7 +1461,7 @@ ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple, ibus_engine_simple_add_compose_file (simple, path); g_clear_pointer(&path, g_free); } else { - path = g_build_filename (X11_DATADIR, locale, "Compose", NULL); + path = g_build_filename (X11_LOCALEDATADIR, locale, "Compose", NULL); do { if (g_file_test (path, G_FILE_TEST_EXISTS)) break; diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am index ca5285bd..8d1d16e3 100644 --- a/src/tests/Makefile.am +++ b/src/tests/Makefile.am @@ -30,7 +30,7 @@ AM_CPPFLAGS = \ @GLIB2_CFLAGS@ \ @GIO2_CFLAGS@ \ -DIBUS_DISABLE_DEPRECATION_WARNINGS \ - -DX11_DATA_PREFIX=\"$(X11_PREFIX)\" \ + -DX11_LOCALEDATADIR=\"$(X11_LOCALEDATADIR)\" \ -I$(top_srcdir)/src \ -I$(top_builddir)/src \ $(NULL) diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c index 0be01d27..da1a1298 100644 --- a/src/tests/ibus-compose.c +++ b/src/tests/ibus-compose.c @@ -6,7 +6,6 @@ #define GREEN "\033[0;32m" #define RED "\033[0;31m" #define NC "\033[0m" -#define X11_DATADIR X11_DATA_PREFIX "/share/X11/locale" IBusBus *m_bus; gchar *m_compose_file; @@ -36,7 +35,7 @@ get_compose_path () break; if (g_strcmp0 (*l, "C") == 0) break; - compose_path = g_build_filename (X11_DATADIR, + compose_path = g_build_filename (X11_LOCALEDATADIR, *l, "Compose", NULL); -- 2.39.2 From 9d9dca9e103e88b33e786c4a46f44123a6cf11c6 Mon Sep 17 00:00:00 2001 From: fujiwarat Date: Wed, 8 Mar 2023 19:44:16 +0900 Subject: [PATCH] client/x11: Fix Key typing order ibus-x11 now also uses the hybrid process key events with IBUS_ENABLE_SYNC_MODE=2 and it waits for the async API with GSource and g_main_context_iteration() in xim_forward_event(). But g_main_context_iteration() calls gdk_event_source_dispatch() and it can call another xim_forward_event() and the callbacks of ibus_input_context_process_key_event_async() can be nested. So if the forwarding API is called out of the callbacks of ibus_input_context_process_key_event_async(), the key events order is swapped due to the delayed return of g_main_context_iteration(). To resolve this issue, the forwarding API should be called in the callbacks of ibus_input_context_process_key_event_async(). BUG=https://github.com/ibus/ibus/issues/2480 --- client/x11/main.c | 160 ++++++++++++++++++++++++---------------------- 1 file changed, 83 insertions(+), 77 deletions(-) diff --git a/client/x11/main.c b/client/x11/main.c index 905fd251..83d95cb7 100644 --- a/client/x11/main.c +++ b/client/x11/main.c @@ -2,7 +2,7 @@ /* vim:set et sts=4: */ /* ibus * Copyright (C) 2007-2015 Peng Huang - * Copyright (C) 2015-2022 Takao Fujiwara + * Copyright (C) 2015-2023 Takao Fujiwara * Copyright (C) 2007-2015 Red Hat, Inc. * * main.c: @@ -49,6 +49,8 @@ #include #define ESC_SEQUENCE_ISO10646_1 "\033%G" +/* Wait for about 120 secs to return a key from async process-key-event. */ +#define MAX_WAIT_KEY_TIME 120000 #define LOG(level, fmt_args...) \ if (g_debug_level >= (level)) { \ @@ -461,11 +463,39 @@ xim_unset_ic_focus (XIMS xims, IMChangeFocusStruct *call_data) } +static void +_xim_forward_key_event_done (X11IC *x11ic, + XEvent *event, + gboolean processed) +{ + IMForwardEventStruct fe; + if (processed) { + if (!x11ic->has_preedit_area) { + _xim_set_cursor_location (x11ic); + } + return; + } + g_assert (x11ic); + g_assert (event); + + memset (&fe, 0, sizeof (fe)); + fe.major_code = XIM_FORWARD_EVENT; + fe.icid = x11ic->icid; + fe.connect_id = x11ic->connect_id; + fe.sync_bit = 0; + fe.serial_number = 0L; + fe.event = *event; + IMForwardEvent (_xims, (XPointer) &fe); +} + + typedef struct { - IMForwardEventStruct *pfe; int count; guint count_cb_id; gboolean retval; + X11IC *x11ic; + CARD16 connect_id; + XEvent event; } ProcessKeyEventReplyData; static void @@ -474,7 +504,7 @@ _process_key_event_done (GObject *object, gpointer user_data) { IBusInputContext *context = (IBusInputContext *)object; - IMForwardEventStruct *pfe = (IMForwardEventStruct*) user_data; + ProcessKeyEventReplyData *data = (ProcessKeyEventReplyData *)user_data; GError *error = NULL; gboolean retval = ibus_input_context_process_key_event_async_finish ( @@ -488,16 +518,15 @@ _process_key_event_done (GObject *object, } if (g_hash_table_lookup (_connections, - GINT_TO_POINTER ((gint) pfe->connect_id)) + GINT_TO_POINTER ((gint)data->connect_id)) == NULL) { - g_slice_free (IMForwardEventStruct, pfe); + g_slice_free (ProcessKeyEventReplyData, data); return; } - if (retval == FALSE) { - IMForwardEvent (_xims, (XPointer) pfe); - } - g_slice_free (IMForwardEventStruct, pfe); + if (retval == FALSE) + _xim_forward_key_event_done (data->x11ic, &data->event, retval); + g_slice_free (ProcessKeyEventReplyData, data); } static void @@ -518,6 +547,21 @@ _process_key_event_reply_done (GObject *object, } g_return_if_fail (data); data->retval = retval; + if (g_hash_table_lookup (_connections, + GINT_TO_POINTER ((gint)data->connect_id)) + == NULL) { + return; + } + /* _xim_forward_key_event_done() should be called in + * _process_key_event_reply_done() because g_main_context_iteration() + * can call another xim_forward_event() and xim_forward_event() can be + * nested and the first _process_key_event_reply_done() is returned + * at last with g_main_context_iteration() so + * if _xim_forward_key_event_done() is called out of + * _process_key_event_reply_done(), the key events order + * can be swapped. + */ + _xim_forward_key_event_done (data->x11ic, &data->event, retval); data->count = 0; g_source_remove (data->count_cb_id); } @@ -529,9 +573,8 @@ _process_key_event_count_cb (gpointer user_data) g_return_val_if_fail (data, G_SOURCE_REMOVE); if (!data->count) return G_SOURCE_REMOVE; - /* Wait for about 10 secs. */ - if (data->count++ == 10000) { - data->count = 0; + if (data->count++ == MAX_WAIT_KEY_TIME) { + g_warning ("Key event is not returned for %usecs.", MAX_WAIT_KEY_TIME); return G_SOURCE_REMOVE; } return G_SOURCE_CONTINUE; @@ -571,32 +614,13 @@ xim_forward_event (XIMS xims, IMForwardEventStruct *call_data) event.keyval, event.hardware_keycode - 8, event.state); - if (retval) { - if (!x11ic->has_preedit_area) { - _xim_set_cursor_location (x11ic); - } - return 1; - } - - IMForwardEventStruct fe; - memset (&fe, 0, sizeof (fe)); - - fe.major_code = XIM_FORWARD_EVENT; - fe.icid = x11ic->icid; - fe.connect_id = x11ic->connect_id; - fe.sync_bit = 0; - fe.serial_number = 0L; - fe.event = call_data->event; - - IMForwardEvent (_xims, (XPointer) &fe); - + _xim_forward_key_event_done (x11ic, &call_data->event, retval); retval = 1; break; } case 2: { GSource *source = g_timeout_source_new (1); ProcessKeyEventReplyData *data = NULL; - IMForwardEventStruct fe; if (source) data = g_slice_new0 (ProcessKeyEventReplyData); @@ -610,11 +634,13 @@ xim_forward_event (XIMS xims, IMForwardEventStruct *call_data) if (source) g_source_destroy (source); } else { - CARD16 connect_id = x11ic->connect_id; data->count = 1; g_source_attach (source, NULL); g_source_unref (source); data->count_cb_id = g_source_get_id (source); + data->connect_id = call_data->connect_id; + data->x11ic = x11ic; + data->event = *((XEvent*)xevent); ibus_input_context_process_key_event_async ( x11ic->context, event.keyval, @@ -626,7 +652,7 @@ xim_forward_event (XIMS xims, IMForwardEventStruct *call_data) data); g_source_set_callback (source, _process_key_event_count_cb, data, NULL); - while (data->count) + while (data->count > 0 && data->count < MAX_WAIT_KEY_TIME) g_main_context_iteration (NULL, TRUE); if (source->ref_count > 0) { /* g_source_get_id() could causes a SEGV */ @@ -634,46 +660,33 @@ xim_forward_event (XIMS xims, IMForwardEventStruct *call_data) "issue in %p.", source); } retval = data->retval; - g_slice_free (ProcessKeyEventReplyData, data); - - if (g_hash_table_lookup (_connections, - GINT_TO_POINTER ((gint)connect_id)) - == NULL) { + if (data->count == 0) { + g_slice_free (ProcessKeyEventReplyData, data); return 1; } } - if (retval) { - if (! x11ic->has_preedit_area) { - _xim_set_cursor_location (x11ic); - } - return 1; + g_slice_free (ProcessKeyEventReplyData, data); + if (g_hash_table_lookup (_connections, + GINT_TO_POINTER ((gint)call_data->connect_id)) + == NULL) { + return 1; } - - memset (&fe, 0, sizeof (fe)); - - fe.major_code = XIM_FORWARD_EVENT; - fe.icid = x11ic->icid; - fe.connect_id = x11ic->connect_id; - fe.sync_bit = 0; - fe.serial_number = 0L; - fe.event = call_data->event; - - IMForwardEvent (_xims, (XPointer) &fe); - + _xim_forward_key_event_done (x11ic, &call_data->event, retval); retval = 1; break; } default: { - IMForwardEventStruct *pfe; + ProcessKeyEventReplyData *data; - pfe = g_slice_new0 (IMForwardEventStruct); - pfe->major_code = XIM_FORWARD_EVENT; - pfe->icid = x11ic->icid; - pfe->connect_id = x11ic->connect_id; - pfe->sync_bit = 0; - pfe->serial_number = 0L; - pfe->event = call_data->event; + if (!(data = g_slice_new0 (ProcessKeyEventReplyData))) { + g_warning ("Cannot allocate async data"); + _xim_forward_key_event_done (x11ic, &call_data->event, 0); + return 1; + } + data->connect_id = call_data->connect_id; + data->x11ic = x11ic; + data->event = call_data->event; ibus_input_context_process_key_event_async ( x11ic->context, @@ -683,7 +696,7 @@ xim_forward_event (XIMS xims, IMForwardEventStruct *call_data) -1, NULL, _process_key_event_done, - pfe); + data); retval = 1; } } @@ -962,11 +975,10 @@ _xim_forward_key_event (X11IC *x11ic, guint keycode, guint state) { - g_return_if_fail (x11ic != NULL); - - IMForwardEventStruct fe = {0}; XEvent xkp = {0}; + g_return_if_fail (x11ic != NULL); + xkp.xkey.type = (state & IBUS_RELEASE_MASK) ? KeyRelease : KeyPress; xkp.xkey.serial = 0L; xkp.xkey.send_event = False; @@ -975,20 +987,14 @@ _xim_forward_key_event (X11IC *x11ic, xkp.xkey.window = x11ic->focus_window ? x11ic->focus_window : x11ic->client_window; xkp.xkey.subwindow = None; - xkp.xkey.root = DefaultRootWindow (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); + xkp.xkey.root = DefaultRootWindow ( + GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); xkp.xkey.time = 0; xkp.xkey.state = state; xkp.xkey.keycode = (keycode == 0) ? 0 : keycode + 8; - fe.major_code = XIM_FORWARD_EVENT; - fe.icid = x11ic->icid; - fe.connect_id = x11ic->connect_id; - fe.sync_bit = 0; - fe.serial_number = 0L; - fe.event = xkp; - - IMForwardEvent (_xims, (XPointer) & fe); + _xim_forward_key_event_done (x11ic, &xkp, FALSE); } static void -- 2.38.1 From 5b5d0795f297e330fdc84b6be6beab1305b0cda9 Mon Sep 17 00:00:00 2001 From: fujiwarat Date: Wed, 15 Mar 2023 10:22:05 +0900 Subject: [PATCH] util/IMdkit: Disable while loop before call ForwardEventMessageProc() Seems ProcessQueue() had a wrong XFree() with async process-key-event. Fixes: c0fec89ae76f9522319f58107ab234992b249ec6 BUG=https://github.com/ibus/ibus/issues/2484 --- util/IMdkit/i18nPtHdr.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/util/IMdkit/i18nPtHdr.c b/util/IMdkit/i18nPtHdr.c index 8dc52714..ec20e322 100644 --- a/util/IMdkit/i18nPtHdr.c +++ b/util/IMdkit/i18nPtHdr.c @@ -1747,11 +1747,13 @@ static void ProcessQueue (XIMS ims, CARD16 connect_id) XimProtoHdr *hdr = (XimProtoHdr *) client->pending->p; unsigned char *p1 = (unsigned char *) (hdr + 1); IMProtocol call_data; + XIMPending *old = client->pending; call_data.major_code = hdr->major_opcode; call_data.any.minor_code = hdr->minor_opcode; call_data.any.connect_id = connect_id; + client->pending = old->next; switch (hdr->major_opcode) { case XIM_FORWARD_EVENT: @@ -1760,12 +1762,7 @@ static void ProcessQueue (XIMS ims, CARD16 connect_id) } /*endswitch*/ XFree (hdr); - { - XIMPending *old = client->pending; - - client->pending = old->next; - XFree (old); - } + XFree (old); } /*endwhile*/ return; -- 2.39.2 From f82140b1368c5ec4c0b70e5caea2931ceed5589c Mon Sep 17 00:00:00 2001 From: Sibo Dong <46512211+dongsibo@users.noreply.github.com> Date: Tue, 21 Feb 2023 16:38:03 -0500 Subject: [PATCH] ui/gtk3: Update Emoji shortcut key in ibus-emoji(7) The default Emoji shortcut key was changed but not updated in the ibus-emoji.7 man page. Fixes: https://github.com/ibus/ibus/commit/1520c39 BUG=https://github.com/ibus/ibus/pull/2475 --- ui/gtk3/ibus-emoji.7.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/gtk3/ibus-emoji.7.in b/ui/gtk3/ibus-emoji.7.in index b4d941ec..31074300 100644 --- a/ui/gtk3/ibus-emoji.7.in +++ b/ui/gtk3/ibus-emoji.7.in @@ -51,7 +51,7 @@ E.g. "Noto Color Emoji", "Android Emoji" font. .SH "KEYBOARD OPERATIONS" .TP -\fBControl-Period or Control-Semicolon\fR +\fBSuper-Period\fR Launch IBus Emojier. The shortcut key can be customized by .B ibus\-setup (1). .TP -- 2.40.0 From 9553dbf12ec42a58beb671a7039827fbd652e14d Mon Sep 17 00:00:00 2001 From: Izumi Tsutsui Date: Mon, 27 Mar 2023 19:45:37 +0900 Subject: [PATCH] Portability fixes for preparation of NetBSD CI - Makefile: Ignore errors on $(RM) -r "`uname -i`" - autogen: Replace make with $MAKE - data/dconf: BSD does not support the --tmpdir long option in mktemp. Also add the cleanup function. BUG=https://github.com/ibus/ibus/pull/2482 --- Makefile.am | 2 +- autogen.sh | 7 ++++--- data/dconf/make-dconf-override-db.sh | 11 ++++++++--- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Makefile.am b/Makefile.am index 17e56b38..16548d25 100644 --- a/Makefile.am +++ b/Makefile.am @@ -139,7 +139,7 @@ srpm: dist @PACKAGE_NAME@.spec @PACKAGE_NAME@.spec clean-rpm: - $(RM) -r "`uname -i`" + -$(RM) -r "`uname -i`" clean-local: clean-rpm diff --git a/autogen.sh b/autogen.sh index 9b1d8342..4ea8d757 100755 --- a/autogen.sh +++ b/autogen.sh @@ -4,6 +4,7 @@ : ${srcdir=$(dirname $0)} : ${srcdir:=.} : ${SAVE_DIST_FILES:=0} +: ${MAKE:=make} olddir=$(pwd) # shellcheck disable=SC2016 @@ -73,7 +74,7 @@ cd "$olddir" (test "$1" = "--help" ) && { exit 0 } || { - echo "Now type 'make' to compile $PKG_NAME" || exit 1 + echo "Now type '$MAKE' to compile $PKG_NAME" || exit 1 } } || { echo "Skipping configure process." @@ -83,8 +84,8 @@ cd "$srcdir" (test "x$SAVE_DIST_FILES" = "x0" ) && { # rm engine/simple.xml.in src/ibusemojigen.h src/ibusunicodegen.h for d in engine src src/compose; do - echo "make -C $d maintainer-clean-generic" - make -C $d maintainer-clean-generic + echo "$MAKE -C $d maintainer-clean-generic" + $MAKE -C $d maintainer-clean-generic done } || : cd "$olddir" diff --git a/data/dconf/make-dconf-override-db.sh b/data/dconf/make-dconf-override-db.sh index 601c1c3f..32cb1530 100755 --- a/data/dconf/make-dconf-override-db.sh +++ b/data/dconf/make-dconf-override-db.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh set -e @@ -6,7 +6,7 @@ set -e # breaks dbus-launch. There's dbus-run-session which is # better, but not everyone has it yet. export DBUS_FATAL_WARNINGS=0 -export TMPDIR=$(mktemp -d --tmpdir="$PWD") +export TMPDIR=$(mktemp -d -p "$PWD") export XDG_CONFIG_HOME="$TMPDIR/config" export XDG_CACHE_HOME="$TMPDIR/cache" export GSETTINGS_SCHEMA_DIR="$TMPDIR/schemas" @@ -14,7 +14,12 @@ mkdir -p $XDG_CONFIG_HOME $XDG_CACHE_HOME $GSETTINGS_SCHEMA_DIR eval `dbus-launch --sh-syntax` -trap 'rm -rf $TMPDIR; kill $DBUS_SESSION_BUS_PID' ERR +trap cleanup EXIT + +cleanup() { + test $? -eq 0 && exit + rm -rf $TMPDIR; kill $DBUS_SESSION_BUS_PID +} # in case that schema is not installed on the system glib-compile-schemas --targetdir "$GSETTINGS_SCHEMA_DIR" "$PWD" -- 2.39.2 From 630f3f73f62a121abb1af5b215d193aec4e0053c Mon Sep 17 00:00:00 2001 From: fujiwarat Date: Wed, 5 Apr 2023 14:28:49 +0900 Subject: [PATCH] configure: Use AC_C_BIGENDIAN for BSD systems NetBSD does not define __BYTE_ORDER and use AC_C_BIGENDIAN instead. BUG=https://github.com/ibus/ibus/pull/2477 --- configure.ac | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/configure.ac b/configure.ac index ece1d9ee..b3eacbcb 100644 --- a/configure.ac +++ b/configure.ac @@ -152,35 +152,12 @@ AC_CHECK_LIB(c, dlclose, LIBDL="", [AC_CHECK_LIB(dl, dlclose, LIBDL="-ldl")]) AC_SUBST(LIBDL) # Check endianness. -AC_MSG_CHECKING([build system endianness]) -ENDIAN=unknown -AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[ - #include - #if __BYTE_ORDER != __LITTLE_ENDIAN - #error - #endif - ]] - )], - [ENDIAN=little] -) -AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[ - #include - #if __BYTE_ORDER != __BIG_ENDIAN - #error - #endif - ]] - )], - [ENDIAN=big] -) +AC_C_BIGENDIAN([ENDIAN=big], [ENDIAN=little], [ENDIAN=unknown], [ENDIAN=big]) if test x"$ENDIAN" != xlittle -a x"$ENDIAN" != xbig; then - AC_MSG_ERROR([Cannot deermine endianness without endian.h]) + AC_MSG_ERROR([Cannot determine endianness. Use ac_cv_c_bigendian to yes or no]) fi -AC_MSG_RESULT($ENDIAN) AC_SUBST(ENDIAN) +ENDIAN_MSG="$ENDIAN (ac_cv_c_bigendian=$ac_cv_c_bigendian)" # Check packages. # Check glib2. @@ -902,7 +879,7 @@ Build options: Install prefix $prefix Build shared libs $enable_shared Build static libs $enable_static - Build endianness $ENDIAN + Build endianness $ENDIAN_MSG CFLAGS $CFLAGS PYTHON $PYTHON PYTHON2 $PYTHON2 -- 2.39.2 From 67a0f36de029fe3adc21c90c7fb8669d0d68cbe2 Mon Sep 17 00:00:00 2001 From: fujiwarat Date: Thu, 13 Apr 2023 12:22:50 +0900 Subject: [PATCH] src: Generate ibusenumtypes.h for gen-internal-compose-table `make clean` deletes ibusenumtypes.h and ibus.h incudes ibusenumtypes.h and it's required by the gen-internal-compose-table build. BUG=https://github.com/ibus/ibus/issues/2501 --- src/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Makefile.am b/src/Makefile.am index c2e8daa6..adc7f04a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -194,6 +194,7 @@ gen_internal_compose_table_SOURCES = \ ibuserror.c \ ibuskeynames.c \ ibuskeyuni.c \ + ibusenumtypes.h \ $(NULL) gen_internal_compose_table_CFLAGS = $(AM_CFLAGS) gen_internal_compose_table_LDADD = \ -- 2.39.2