update to 1.5.23
This commit is contained in:
parent
5e124a9981
commit
167d1b74e4
@ -1,23 +0,0 @@
|
|||||||
diff --git a/docs/reference/ibus/Makefile.am b/docs/reference/ibus/Makefile.am
|
|
||||||
index 1ece234c1..0f307bbdc 100644
|
|
||||||
--- a/docs/reference/ibus/Makefile.am
|
|
||||||
+++ b/docs/reference/ibus/Makefile.am
|
|
||||||
@@ -3,8 +3,8 @@
|
|
||||||
# ibus - The Input Bus
|
|
||||||
#
|
|
||||||
# Copyright (c) 2007-2015 Peng Huang <shawn.p.huang@gmail.com>
|
|
||||||
-# Copyright (c) 2007-2015 Red Hat, Inc.
|
|
||||||
-# Copyright (c) 2015 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
|
||||||
+# Copyright (c) 2007-2020 Red Hat, Inc.
|
|
||||||
+# Copyright (c) 2015-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
|
||||||
#
|
|
||||||
# This library is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
|
||||||
@@ -147,6 +147,6 @@ tmpl-build.stamp: trim-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DO
|
|
||||||
# clean-local:
|
|
||||||
# rm -rf tmpl ${DOC_MODULE)
|
|
||||||
|
|
||||||
-CLEANFILES+= *.stamp
|
|
||||||
+CLEANFILES+= *actions *.stamp
|
|
||||||
|
|
||||||
-include $(top_srcdir)/git.mk
|
|
||||||
76
30a3641e19c541924959a5770dd784b4424288d4.patch
Normal file
76
30a3641e19c541924959a5770dd784b4424288d4.patch
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
diff --git a/.travis.yml b/.travis.yml
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..e90dc230c
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/.travis.yml
|
||||||
|
@@ -0,0 +1,70 @@
|
||||||
|
+language: c
|
||||||
|
+compiler: gcc
|
||||||
|
+os: linux
|
||||||
|
+
|
||||||
|
+# Require gettext-0.19.8
|
||||||
|
+dist: focal
|
||||||
|
+
|
||||||
|
+branches:
|
||||||
|
+ only:
|
||||||
|
+ - master
|
||||||
|
+
|
||||||
|
+# FIXME: Run script in every arch
|
||||||
|
+arch:
|
||||||
|
+ - amd64
|
||||||
|
+ #- ppc64le
|
||||||
|
+ #- s390x
|
||||||
|
+ #- arm64
|
||||||
|
+
|
||||||
|
+addons:
|
||||||
|
+ apt:
|
||||||
|
+ packages:
|
||||||
|
+ # For autogen.sh
|
||||||
|
+ - gnome-common
|
||||||
|
+ - gtk-doc-tools
|
||||||
|
+ # For make from
|
||||||
|
+ # https://packages.ubuntu.com/search?searchon=sourcenames&keywords=ibus
|
||||||
|
+ - desktop-file-utils
|
||||||
|
+ - gobject-introspection
|
||||||
|
+ - iso-codes
|
||||||
|
+ - libdconf-dev
|
||||||
|
+ - libgirepository1.0-dev
|
||||||
|
+ - libglib2.0-dev
|
||||||
|
+ - libgtk-3-bin
|
||||||
|
+ - libgtk-3-dev
|
||||||
|
+ - libgtk2.0-dev
|
||||||
|
+ - libtool
|
||||||
|
+ - libwayland-dev
|
||||||
|
+ - python-gi-dev
|
||||||
|
+ - python3-all
|
||||||
|
+ - unicode-cldr-core
|
||||||
|
+ - unicode-data
|
||||||
|
+ - valac
|
||||||
|
+
|
||||||
|
+jobs:
|
||||||
|
+ include:
|
||||||
|
+ - name: Build in Ubuntu
|
||||||
|
+ before_script:
|
||||||
|
+ - sudo apt-get -qq update
|
||||||
|
+ script:
|
||||||
|
+ - set -e
|
||||||
|
+ - git pull --depth=200
|
||||||
|
+ # configure options from
|
||||||
|
+ # https://salsa.debian.org/debian/ibus/-/blob/master/debian/rules
|
||||||
|
+ - >
|
||||||
|
+ ./autogen.sh
|
||||||
|
+ --with-ucd-dir='/usr/share/unicode'
|
||||||
|
+ # Set the cutom DESTDIR because the default DESTDIR
|
||||||
|
+ # /home/travis/bulid/fujiwarat/$PKG/ibus/ibus-$VERSION/_inst seems to be
|
||||||
|
+ # too long and failed to set DESTDIR to install bindings/pygobject/IBus.py
|
||||||
|
+ - >
|
||||||
|
+ make distcheck
|
||||||
|
+ DISTCHECK_CONFIGURE_FLAGS="
|
||||||
|
+ --enable-gtk-doc
|
||||||
|
+ --disable-schemas-install
|
||||||
|
+ --enable-memconf
|
||||||
|
+ --with-ucd-dir='/usr/share/unicode'
|
||||||
|
+ "
|
||||||
|
+ DISABLE_GUI_TESTS="ibus-compose ibus-keypress test-stress"
|
||||||
|
+ VERBOSE=1
|
||||||
|
+ DESTDIR="$HOME/build/$USER/dest"
|
||||||
@ -1,126 +0,0 @@
|
|||||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
|
||||||
index 99de1ab7c..742ee7d78 100644
|
|
||||||
--- a/src/Makefile.am
|
|
||||||
+++ b/src/Makefile.am
|
|
||||||
@@ -3,7 +3,7 @@
|
|
||||||
# ibus - The Input Bus
|
|
||||||
#
|
|
||||||
# Copyright (c) 2007-2015 Peng Huang <shawn.p.huang@gmail.com>
|
|
||||||
-# Copyright (c) 2015-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
|
||||||
+# Copyright (c) 2015-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
|
||||||
# Copyright (c) 2007-2017 Red Hat, Inc.
|
|
||||||
#
|
|
||||||
# This library is free software; you can redistribute it and/or
|
|
||||||
@@ -248,6 +248,7 @@ AM_CPPFLAGS += -DENABLE_EMOJI_DICT
|
|
||||||
dictdir = $(pkgdatadir)/dicts
|
|
||||||
LANG_FILES = $(basename $(notdir $(wildcard $(EMOJI_ANNOTATION_DIR)/*.xml)))
|
|
||||||
EMOJI_DICT_FILES = $(patsubst %,dicts/emoji-%.dict,$(LANG_FILES))
|
|
||||||
+# emoji-root.dict, emoji-sr_Cyrl.dict have no contents.
|
|
||||||
dict_DATA = $(EMOJI_DICT_FILES)
|
|
||||||
|
|
||||||
noinst_PROGRAMS += emoji-parser
|
|
||||||
@@ -265,6 +266,7 @@ dicts/emoji-%.dict: emoji-parser
|
|
||||||
xml_derived_option="--xml-derived $(EMOJI_ANNOTATION_DIR)/../annotationsDerived/$*.xml"; \
|
|
||||||
plus_comment="derived"; \
|
|
||||||
fi; \
|
|
||||||
+ is_skip=0; \
|
|
||||||
if test x"$*" = xen ; then \
|
|
||||||
$(builddir)/emoji-parser \
|
|
||||||
--unicode-emoji-dir $(UNICODE_EMOJI_DIR) \
|
|
||||||
@@ -279,48 +281,43 @@ dicts/emoji-%.dict: emoji-parser
|
|
||||||
--xml $(EMOJI_ANNOTATION_DIR)/$*.xml \
|
|
||||||
$$xml_derived_option \
|
|
||||||
--out $@; \
|
|
||||||
+ retval=$$?; \
|
|
||||||
+ if test $$retval -eq 99 ; then \
|
|
||||||
+ is_skip=1; \
|
|
||||||
+ touch $@; \
|
|
||||||
+ elif test $$retval -ne 0 ; then \
|
|
||||||
+ echo "Fail to generate $@"; \
|
|
||||||
+ abrt; \
|
|
||||||
+ fi; \
|
|
||||||
fi; \
|
|
||||||
- echo "Generated $$plus_comment $@"
|
|
||||||
+ if test $$is_skip -eq 0 ; then \
|
|
||||||
+ echo "Generated $$plus_comment $@"; \
|
|
||||||
+ else \
|
|
||||||
+ echo "Skip $$plus_comment $@"; \
|
|
||||||
+ fi;
|
|
||||||
|
|
||||||
ibusemojigen.h: dicts/emoji-en.dict
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
-install-data-hook: $(dict_DATA)
|
|
||||||
- @$(NORMAL_INSTALL)
|
|
||||||
+# We put dicts/emoji-%.dict as the make target for the parallel build
|
|
||||||
+# and the make target has to be genarated even if the file size is zero.
|
|
||||||
+# But we don't want to install the zero size files and delete them
|
|
||||||
+# in install-data-hook.
|
|
||||||
+install-data-hook:
|
|
||||||
$(AM_V_at)list='$(wildcard dicts/*.dict)'; \
|
|
||||||
test -n "$(dictdir)" || list=; \
|
|
||||||
- if test -n "$$list"; then \
|
|
||||||
- echo " $(MKDIR_P) '$(DESTDIR)$(dictdir)'"; \
|
|
||||||
- $(MKDIR_P) "$(DESTDIR)$(dictdir)" || exit 1; \
|
|
||||||
- fi; \
|
|
||||||
for p in $$list; do \
|
|
||||||
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
|
||||||
- echo "$$d$$p"; \
|
|
||||||
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
|
||||||
+ if test -s "$$d$$p"; then continue; fi; \
|
|
||||||
+ basename "$$p"; \
|
|
||||||
done | \
|
|
||||||
- while read files; do \
|
|
||||||
- if [ x$(AM_DEFAULT_VERBOSITY) = x1 ] ; then \
|
|
||||||
- echo "$(INSTALL_DATA) $$files '$(DESTDIR)$(dictdir)'"; \
|
|
||||||
- else \
|
|
||||||
- echo "Installing $$files"; \
|
|
||||||
- fi; \
|
|
||||||
- $(INSTALL_DATA) $$files "$(DESTDIR)$(dictdir)" || exit $$?; \
|
|
||||||
+ while read file; do \
|
|
||||||
+ if test -f "$(DESTDIR)$(dictdir)/$$file"; then \
|
|
||||||
+ echo "Delete $(DESTDIR)$(dictdir)/$$file"; \
|
|
||||||
+ rm "$(DESTDIR)$(dictdir)/$$file" || exit $$?; \
|
|
||||||
+ fi; \
|
|
||||||
done
|
|
||||||
|
|
||||||
-dict__uninstall_files_from_dir = { \
|
|
||||||
- test -z "$$files" \
|
|
||||||
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
|
||||||
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
|
||||||
- cd "$$dir" && rm -f $$files; }; \
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
-# for make dist
|
|
||||||
-uninstall-hook:
|
|
||||||
- @$(NORMAL_UNINSTALL)
|
|
||||||
- $(AM_V_at)list='$(wildcard dicts/*.dict)'; \
|
|
||||||
- test -n "$(dictdir)" || list=; \
|
|
||||||
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
|
||||||
- dir='$(DESTDIR)$(dictdir)'; $(dict__uninstall_files_from_dir)
|
|
||||||
-
|
|
||||||
emoji_parser_SOURCES = \
|
|
||||||
emoji-parser.c \
|
|
||||||
$(NULL)
|
|
||||||
diff --git a/src/emoji-parser.c b/src/emoji-parser.c
|
|
||||||
index 96a779c65..b117b1b41 100644
|
|
||||||
--- a/src/emoji-parser.c
|
|
||||||
+++ b/src/emoji-parser.c
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
|
|
||||||
/* vim:set et sts=4: */
|
|
||||||
/* ibus - The Input Bus
|
|
||||||
- * Copyright (C) 2016-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
|
||||||
+ * Copyright (C) 2016-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
|
||||||
* Copyright (C) 2016 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
@@ -1294,6 +1294,8 @@ main (int argc, char *argv[])
|
|
||||||
category_file_save (output_category, list);
|
|
||||||
if (list)
|
|
||||||
g_slist_free (list);
|
|
||||||
+ else
|
|
||||||
+ return 99;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@ -1,120 +0,0 @@
|
|||||||
diff --git a/src/ibustypes.h b/src/ibustypes.h
|
|
||||||
index 06370a277..798ad04d9 100644
|
|
||||||
--- a/src/ibustypes.h
|
|
||||||
+++ b/src/ibustypes.h
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
/* vim:set et sts=4: */
|
|
||||||
/* ibus - The Input Bus
|
|
||||||
* Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>
|
|
||||||
- * Copyright (C) 2008-2015 Red Hat, Inc.
|
|
||||||
+ * Copyright (C) 2008-2020 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
|
|
||||||
@@ -241,29 +241,46 @@ typedef void (* IBusFreeFunc) (gpointer object);
|
|
||||||
* @IBUS_INPUT_PURPOSE_EMAIL: Edited field expects email address
|
|
||||||
* @IBUS_INPUT_PURPOSE_NAME: Edited field expects the name of a person
|
|
||||||
* @IBUS_INPUT_PURPOSE_PASSWORD: Like @IBUS_INPUT_PURPOSE_FREE_FORM,
|
|
||||||
- * but characters are hidden
|
|
||||||
+ * but characters are hidden
|
|
||||||
* @IBUS_INPUT_PURPOSE_PIN: Like @IBUS_INPUT_PURPOSE_DIGITS, but
|
|
||||||
- * characters are hidden
|
|
||||||
+ * characters are hidden
|
|
||||||
+ * @IBUS_INPUT_PURPOSE_TERMINAL: Allow any character, in addition to control
|
|
||||||
+ * codes. Since 1.5.24
|
|
||||||
*
|
|
||||||
* Describes primary purpose of the input context. This information
|
|
||||||
* is particularly useful to implement intelligent behavior in
|
|
||||||
* engines, such as automatic input-mode switch and text prediction.
|
|
||||||
*
|
|
||||||
+ * Note that the purpose is not meant to impose a totally strict rule
|
|
||||||
+ * about allowed characters, and does not replace input validation.
|
|
||||||
+ * It is fine for an on-screen keyboard to let the user override the
|
|
||||||
+ * character set restriction that is expressed by the purpose. The
|
|
||||||
+ * application is expected to validate the entry contents, even if
|
|
||||||
+ * it specified a purpose.
|
|
||||||
+ *
|
|
||||||
+ * The difference between @IBUS_INPUT_PURPOSE_DIGITS and
|
|
||||||
+ * @IBUS_INPUT_PURPOSE_NUMBER is that the former accepts only digits
|
|
||||||
+ * while the latter also some punctuation (like commas or points, plus,
|
|
||||||
+ * minus) and “e” or “E” as in 3.14E+000.
|
|
||||||
+ *
|
|
||||||
* This enumeration may be extended in the future; engines should
|
|
||||||
* interpret unknown values as 'free form'.
|
|
||||||
+ *
|
|
||||||
+ * Since: 1.5.4
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
- IBUS_INPUT_PURPOSE_FREE_FORM,
|
|
||||||
- IBUS_INPUT_PURPOSE_ALPHA,
|
|
||||||
- IBUS_INPUT_PURPOSE_DIGITS,
|
|
||||||
- IBUS_INPUT_PURPOSE_NUMBER,
|
|
||||||
- IBUS_INPUT_PURPOSE_PHONE,
|
|
||||||
- IBUS_INPUT_PURPOSE_URL,
|
|
||||||
- IBUS_INPUT_PURPOSE_EMAIL,
|
|
||||||
- IBUS_INPUT_PURPOSE_NAME,
|
|
||||||
- IBUS_INPUT_PURPOSE_PASSWORD,
|
|
||||||
- IBUS_INPUT_PURPOSE_PIN
|
|
||||||
+ IBUS_INPUT_PURPOSE_FREE_FORM,
|
|
||||||
+ IBUS_INPUT_PURPOSE_ALPHA,
|
|
||||||
+ IBUS_INPUT_PURPOSE_DIGITS,
|
|
||||||
+ IBUS_INPUT_PURPOSE_NUMBER,
|
|
||||||
+ IBUS_INPUT_PURPOSE_PHONE,
|
|
||||||
+ IBUS_INPUT_PURPOSE_URL,
|
|
||||||
+ IBUS_INPUT_PURPOSE_EMAIL,
|
|
||||||
+ IBUS_INPUT_PURPOSE_NAME,
|
|
||||||
+ IBUS_INPUT_PURPOSE_PASSWORD,
|
|
||||||
+ IBUS_INPUT_PURPOSE_PIN,
|
|
||||||
+ IBUS_INPUT_PURPOSE_TERMINAL
|
|
||||||
} IBusInputPurpose;
|
|
||||||
|
|
||||||
/**
|
|
||||||
@@ -280,24 +297,36 @@ typedef enum
|
|
||||||
* first word of each sentence
|
|
||||||
* @IBUS_INPUT_HINT_INHIBIT_OSK: Suggest to not show an onscreen keyboard
|
|
||||||
* (e.g for a calculator that already has all the keys).
|
|
||||||
- * @IBUS_INPUT_HINT_VERTICAL_WRITING: The text is vertical.
|
|
||||||
+ * @IBUS_INPUT_HINT_VERTICAL_WRITING: The text is vertical. Since 1.5.11
|
|
||||||
+ * @IBUS_INPUT_HINT_EMOJI: Suggest offering Emoji support. Since 1.5.24
|
|
||||||
+ * @IBUS_INPUT_HINT_NO_EMOJI: Suggest not offering Emoji support. Since 1.5.24
|
|
||||||
*
|
|
||||||
* Describes hints that might be taken into account by engines. Note
|
|
||||||
* that engines may already tailor their behaviour according to the
|
|
||||||
* #IBusInputPurpose of the entry.
|
|
||||||
+ *
|
|
||||||
+ * Some common sense is expected when using these flags - mixing
|
|
||||||
+ * @IBUS_INPUT_HINT_LOWERCASE with any of the uppercase hints makes no sense.
|
|
||||||
+ *
|
|
||||||
+ * This enumeration may be extended in the future; engines should
|
|
||||||
+ * ignore unknown values.
|
|
||||||
+ *
|
|
||||||
+ * Since: 1.5.4
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
- IBUS_INPUT_HINT_NONE = 0,
|
|
||||||
- IBUS_INPUT_HINT_SPELLCHECK = 1 << 0,
|
|
||||||
- IBUS_INPUT_HINT_NO_SPELLCHECK = 1 << 1,
|
|
||||||
- IBUS_INPUT_HINT_WORD_COMPLETION = 1 << 2,
|
|
||||||
- IBUS_INPUT_HINT_LOWERCASE = 1 << 3,
|
|
||||||
- IBUS_INPUT_HINT_UPPERCASE_CHARS = 1 << 4,
|
|
||||||
- IBUS_INPUT_HINT_UPPERCASE_WORDS = 1 << 5,
|
|
||||||
- IBUS_INPUT_HINT_UPPERCASE_SENTENCES = 1 << 6,
|
|
||||||
- IBUS_INPUT_HINT_INHIBIT_OSK = 1 << 7,
|
|
||||||
- IBUS_INPUT_HINT_VERTICAL_WRITING = 1 << 8
|
|
||||||
+ IBUS_INPUT_HINT_NONE = 0,
|
|
||||||
+ IBUS_INPUT_HINT_SPELLCHECK = 1 << 0,
|
|
||||||
+ IBUS_INPUT_HINT_NO_SPELLCHECK = 1 << 1,
|
|
||||||
+ IBUS_INPUT_HINT_WORD_COMPLETION = 1 << 2,
|
|
||||||
+ IBUS_INPUT_HINT_LOWERCASE = 1 << 3,
|
|
||||||
+ IBUS_INPUT_HINT_UPPERCASE_CHARS = 1 << 4,
|
|
||||||
+ IBUS_INPUT_HINT_UPPERCASE_WORDS = 1 << 5,
|
|
||||||
+ IBUS_INPUT_HINT_UPPERCASE_SENTENCES = 1 << 6,
|
|
||||||
+ IBUS_INPUT_HINT_INHIBIT_OSK = 1 << 7,
|
|
||||||
+ IBUS_INPUT_HINT_VERTICAL_WRITING = 1 << 8,
|
|
||||||
+ IBUS_INPUT_HINT_EMOJI = 1 << 9,
|
|
||||||
+ IBUS_INPUT_HINT_NO_EMOJI = 1 << 10
|
|
||||||
} IBusInputHints;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
Binary file not shown.
BIN
ibus-1.5.23.tar.gz
Normal file
BIN
ibus-1.5.23.tar.gz
Normal file
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
From 023d50db40912e4f7ee333543e05995a9c730bae Mon Sep 17 00:00:00 2001
|
From 41c325dfb32269c9aadfeedb4df44656aac4d883 Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Fri, 15 May 2020 21:44:16 +0900
|
Date: Fri, 20 Nov 2020 09:53:54 +0900
|
||||||
Subject: [PATCH] Fix SEGV in bus_panel_proxy_focus_in()
|
Subject: [PATCH] Fix SEGV in bus_panel_proxy_focus_in()
|
||||||
|
|
||||||
rhbz#1350291 SEGV in BUS_IS_CONNECTION(skip_connection) in
|
rhbz#1350291 SEGV in BUS_IS_CONNECTION(skip_connection) in
|
||||||
@ -280,12 +280,12 @@ index b7ffbb47..668c8a26 100644
|
|||||||
bus->priv->monitor = NULL;
|
bus->priv->monitor = NULL;
|
||||||
}
|
}
|
||||||
diff --git a/ui/gtk3/extension.vala b/ui/gtk3/extension.vala
|
diff --git a/ui/gtk3/extension.vala b/ui/gtk3/extension.vala
|
||||||
index ea3cd464..57ed1357 100644
|
index a6f2e8e6..b7a04081 100644
|
||||||
--- a/ui/gtk3/extension.vala
|
--- a/ui/gtk3/extension.vala
|
||||||
+++ b/ui/gtk3/extension.vala
|
+++ b/ui/gtk3/extension.vala
|
||||||
@@ -73,6 +73,10 @@ class ExtensionGtk : Gtk.Application {
|
@@ -73,6 +73,10 @@ class ExtensionGtk : Gtk.Application {
|
||||||
string signal_name,
|
string signal_name,
|
||||||
Variant parameters) {
|
Variant parameters) {
|
||||||
debug("signal_name = %s", signal_name);
|
debug("signal_name = %s", signal_name);
|
||||||
+ /* rhbz#1797120 Fix assert(bus.is_connected()) in
|
+ /* rhbz#1797120 Fix assert(bus.is_connected()) in
|
||||||
+ * panel_binding_construct()
|
+ * panel_binding_construct()
|
||||||
|
|||||||
912
ibus-HEAD.patch
912
ibus-HEAD.patch
@ -1,599 +1,423 @@
|
|||||||
From 7b0d091839a4f1315ba216175fb2787e86f7fa31 Mon Sep 17 00:00:00 2001
|
From dd4cc5b028c35f9bb8fa9d3bdc8f26bcdfc43d40 Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Tue, 3 Mar 2020 17:08:30 +0900
|
Date: Wed, 30 Sep 2020 20:35:23 +0900
|
||||||
Subject: [PATCH] src/tests: Delete graves in substitution in
|
Subject: [PATCH] ui/gtk3: Fix arguments in GLib.DBusSignalCallback for Vala
|
||||||
ibus-desktop-testing-runner
|
0.50
|
||||||
|
|
||||||
Delete the single quotations to enclose grave chracters because
|
BUG=https://github.com/ibus/ibus/issues/2265
|
||||||
DASH saves the single quoted '`id -u`' as the raw string in the command
|
|
||||||
substitution not to be extracted.
|
|
||||||
|
|
||||||
BUG=https://github.com/ibus/ibus/issues/2189
|
|
||||||
---
|
---
|
||||||
src/tests/ibus-desktop-testing-runner.in | 7 ++++---
|
ui/gtk3/application.vala | 22 +++++++++++-----------
|
||||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
ui/gtk3/extension.vala | 22 +++++++++++-----------
|
||||||
|
2 files changed, 22 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
|
diff --git a/ui/gtk3/application.vala b/ui/gtk3/application.vala
|
||||||
index 0d9a847c..f9238e69 100755
|
index cc9ee54c..da65301b 100644
|
||||||
--- a/src/tests/ibus-desktop-testing-runner.in
|
--- a/ui/gtk3/application.vala
|
||||||
+++ b/src/tests/ibus-desktop-testing-runner.in
|
+++ b/ui/gtk3/application.vala
|
||||||
@@ -4,7 +4,7 @@
|
@@ -3,7 +3,7 @@
|
||||||
#
|
* ibus - The Input Bus
|
||||||
# ibus - The Input Bus
|
*
|
||||||
#
|
* Copyright(c) 2011 Peng Huang <shawn.p.huang@gmail.com>
|
||||||
-# Copyright (c) 2018-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
- * Copyright(c) 2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
||||||
+# Copyright (c) 2018-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
+ * Copyright(c) 2017-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
||||||
# Copyright (c) 2018 Red Hat, Inc.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
@@ -31,7 +31,8 @@
|
|
||||||
# POSIX sh has no 'echo -e'
|
|
||||||
: ${ECHO:='/usr/bin/echo'}
|
|
||||||
# POSIX sh has $UID
|
|
||||||
-: ${UID:='`id -u`'}
|
|
||||||
+# DASH saves the graves in '``' as characters not to be extracted
|
|
||||||
+: ${UID:=`id -u`}
|
|
||||||
|
|
||||||
|
|
||||||
PROGNAME=`basename $0`
|
|
||||||
@@ -170,7 +171,7 @@ _EOF
|
|
||||||
run_dbus_daemon()
|
|
||||||
{
|
|
||||||
# Use dbus-launch --exit-with-session later instead of --sh-syntax
|
|
||||||
- export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus
|
|
||||||
+ export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus"
|
|
||||||
}
|
|
||||||
|
|
||||||
run_desktop()
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
From 8ce25208c3f4adfd290a032c6aa739d2b7580eb1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Carlos Garnacho <carlosg@gnome.org>
|
|
||||||
Date: Thu, 12 Mar 2020 16:02:16 +0900
|
|
||||||
Subject: [PATCH] src: Use WAYLAND_DISPLAY on Wayland sessions to make up
|
|
||||||
IBus socket name
|
|
||||||
|
|
||||||
In Wayland sessions, GNOME Shell 3.36 is leveraging 2 X11 Display
|
|
||||||
connections so one is used to set up all services for a "X11 session"
|
|
||||||
before user applications connected to the other display might require it.
|
|
||||||
This allows seamlessly starting Xwayland on demand to X11 user applications.
|
|
||||||
|
|
||||||
IBus here belongs to the first described connection, it is started
|
|
||||||
explicitly on that display by GNOME Shell as it is necessary to set up
|
|
||||||
ibus-x11 before any other X11 client might want to use it.
|
|
||||||
|
|
||||||
However the use of this "secondary" display results in IBus daemon left
|
|
||||||
unable to talk to applications, as the socket name is dependent on the
|
|
||||||
DISPLAY envvar and ibus/applications don't agree on its content.
|
|
||||||
|
|
||||||
For wayland sessions, make it look for WAYLAND_DISPLAY, as that'll have
|
|
||||||
the similar "per session bus" behavior that this seems to look after.
|
|
||||||
|
|
||||||
BUG=https://gitlab.gnome.org/GNOME/gnome-shell/issues/2341
|
|
||||||
---
|
|
||||||
src/ibusshare.c | 11 +++++++++--
|
|
||||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/ibusshare.c b/src/ibusshare.c
|
|
||||||
index 0d50d3f5..e0ef2ce0 100644
|
|
||||||
--- a/src/ibusshare.c
|
|
||||||
+++ b/src/ibusshare.c
|
|
||||||
@@ -100,6 +100,7 @@ ibus_get_socket_path (void)
|
|
||||||
gchar *display;
|
|
||||||
gchar *displaynumber = "0";
|
|
||||||
/* gchar *screennumber = "0"; */
|
|
||||||
+ gboolean is_wayland = FALSE;
|
|
||||||
gchar *p;
|
|
||||||
|
|
||||||
path = g_strdup (g_getenv ("IBUS_ADDRESS_FILE"));
|
|
||||||
@@ -108,13 +109,19 @@ ibus_get_socket_path (void)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_display == NULL) {
|
|
||||||
- display = g_strdup (g_getenv ("DISPLAY"));
|
|
||||||
+ display = g_strdup (g_getenv ("WAYLAND_DISPLAY"));
|
|
||||||
+ if (display)
|
|
||||||
+ is_wayland = TRUE;
|
|
||||||
+ else
|
|
||||||
+ display = g_strdup (g_getenv ("DISPLAY"));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
display = g_strdup (_display);
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (display) {
|
|
||||||
+ if (is_wayland) {
|
|
||||||
+ displaynumber = display;
|
|
||||||
+ } else if (display) {
|
|
||||||
p = display;
|
|
||||||
hostname = display;
|
|
||||||
for (; *p != ':' && *p != '\0'; p++);
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
From 5765bfd69fb2ab1174378fbb0d8cac7f2bd2610f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Changwoo Ryu <cwryu@debian.org>
|
|
||||||
Date: Wed, 15 Apr 2020 17:43:14 +0900
|
|
||||||
Subject: [PATCH] client/gtk2: Remove glib_check_version() in gtk immodule
|
|
||||||
|
|
||||||
In the gtk2/gtk3 immodule, glib_check_version() is being used to make sure
|
|
||||||
that the installed glib version is not older than the glib version which ibus
|
|
||||||
is built with.
|
|
||||||
|
|
||||||
But there is no reason why glib version is checked in runtime. Library
|
|
||||||
compatibility is already being checked more precisely by packaging systems and
|
|
||||||
linkers.
|
|
||||||
|
|
||||||
This version check can break the ibus gtk immodule when used with an older but
|
|
||||||
compatible version of glib, such as glib 2.62.x which is compatible with
|
|
||||||
2.64.x.
|
|
||||||
|
|
||||||
BUG=https://github.com/ibus/ibus/issues/2200
|
|
||||||
---
|
|
||||||
client/gtk2/ibusim.c | 4 +---
|
|
||||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/client/gtk2/ibusim.c b/client/gtk2/ibusim.c
|
|
||||||
index bfacd0f0..d70800d3 100644
|
|
||||||
--- a/client/gtk2/ibusim.c
|
|
||||||
+++ b/client/gtk2/ibusim.c
|
|
||||||
@@ -41,9 +41,7 @@ static const GtkIMContextInfo *info_list[] = {
|
|
||||||
G_MODULE_EXPORT const gchar*
|
|
||||||
g_module_check_init (GModule *module)
|
|
||||||
{
|
|
||||||
- return glib_check_version (GLIB_MAJOR_VERSION,
|
|
||||||
- GLIB_MINOR_VERSION,
|
|
||||||
- 0);
|
|
||||||
+ return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
G_MODULE_EXPORT void
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
From 8da016764cee9616cca4658d1fb311d6b3bfc0df Mon Sep 17 00:00:00 2001
|
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
|
||||||
Date: Wed, 15 Apr 2020 17:55:03 +0900
|
|
||||||
Subject: [PATCH] src/tests: Fix to get focus events with su in
|
|
||||||
ibus-desktop-testing-runner
|
|
||||||
|
|
||||||
GtkWindow haven't received focus events in any test cases since Fedora 31
|
|
||||||
whenever Ansible runs ibus-desktop-testing-runner after `su root`.
|
|
||||||
Seems su command does not run systemd automatically and now systemd
|
|
||||||
requires XDG_RUNTIME_DIR and Ansible requires root access with ssh.
|
|
||||||
This fix requires to restart sshd with modified /etc/ssh/sshd_config
|
|
||||||
with "PermitRootLogin yes" in order to run with su command.
|
|
||||||
|
|
||||||
Ansible with ibus-desktop-testin-runner has worked fine if root console
|
|
||||||
login is used without this patch because PAM runs systemd by login.
|
|
||||||
---
|
|
||||||
src/tests/ibus-desktop-testing-runner.in | 36 ++++++++++++++++++++++--
|
|
||||||
1 file changed, 33 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
|
|
||||||
index f9238e69..f760fd5b 100755
|
|
||||||
--- a/src/tests/ibus-desktop-testing-runner.in
|
|
||||||
+++ b/src/tests/ibus-desktop-testing-runner.in
|
|
||||||
@@ -49,6 +49,7 @@ PID_XORG=0
|
|
||||||
PID_GNOME_SESSION=0
|
|
||||||
TESTING_RUNNER="default"
|
|
||||||
TESTS=""
|
|
||||||
+TIMEOUT=300
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
RED='\033[0;31m'
|
|
||||||
NC='\033[0m'
|
|
||||||
@@ -84,6 +85,7 @@ usage()
|
|
||||||
"-r, --runner=RUNNER Run TESTS programs with a test RUNNER.\n" \
|
|
||||||
" RUNNDER = gnome or default.\n" \
|
|
||||||
" default is an embedded runner.\n" \
|
|
||||||
+"-T, --timeout=TIMEOUT Set timeout (default TIMEOUT is 300 sec).\n" \
|
|
||||||
"-o, --output=OUTPUT_FILE OUtput the log to OUTPUT_FILE\n" \
|
|
||||||
"-O, --result=RESULT_FILE OUtput the result to RESULT_FILE\n" \
|
|
||||||
""
|
|
||||||
@@ -92,8 +94,8 @@ usage()
|
|
||||||
parse_args()
|
|
||||||
{
|
|
||||||
# This is GNU getopt. "sudo port getopt" in BSD?
|
|
||||||
- ARGS=`getopt -o hvb:s:cd:t:r:o:O: --long \
|
|
||||||
- help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,output:,result:\
|
|
||||||
+ ARGS=`getopt -o hvb:s:cd:t:r:T:o:O: --long \
|
|
||||||
+ help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,timeout:,output:,result:\
|
|
||||||
-- "$@"`;
|
|
||||||
eval set -- "$ARGS"
|
|
||||||
while [ 1 ] ; do
|
|
||||||
@@ -106,6 +108,7 @@ parse_args()
|
|
||||||
-d | --desktop ) DESKTOP_COMMAND="$2"; shift 2;;
|
|
||||||
-t | --tests ) TESTS="$2"; shift 2;;
|
|
||||||
-r | --runner ) TESTING_RUNNER="$2"; shift 2;;
|
|
||||||
+ -T | --timeout ) TIMEOUT="$2"; shift 2;;
|
|
||||||
-o | --output ) TEST_LOG="$2"; shift 2;;
|
|
||||||
-O | --result ) RESULT_LOG="$2"; shift 2;;
|
|
||||||
-- ) shift; break;;
|
|
||||||
@@ -166,11 +169,37 @@ _EOF
|
|
||||||
fi
|
|
||||||
# `su` command does not run loginctl
|
|
||||||
export XDG_SESSION_TYPE='x11'
|
|
||||||
+ export XDG_SESSION_CLASS=user
|
|
||||||
+ # `su` command does not get focus in events without this variable.
|
|
||||||
+ # Need to restart sshd after set "PermitRootLogin yes" in sshd_config
|
|
||||||
+ if [ "x$XDG_RUNTIME_DIR" = x ] ; then
|
|
||||||
+ export XDG_RUNTIME_DIR=/run/user/$UID
|
|
||||||
+ is_root_login=`grep "^PermitRootLogin" /etc/ssh/sshd_config | grep yes`
|
|
||||||
+ if [ "x$ANSIBLE" != x ] && [ "x$is_root_login" = x ] ; then
|
|
||||||
+ print_log -e "${RED}FAIL${NC}: No permission to get focus-in events in GtkWindow with ansible"
|
|
||||||
+ echo "su command does not configure necessary login info " \
|
|
||||||
+ "with systemd and GtkWindow cannot receive focus-events " \
|
|
||||||
+ "when ibus-desktop-testing-runner is executed by " \
|
|
||||||
+ "ansible-playbook." >> $TEST_LOG
|
|
||||||
+ echo "Enabling root login via sshd, restarting sshd, set " \
|
|
||||||
+ "XDG_RUNTIME_DIR can resolve the problem under " \
|
|
||||||
+ "ansible-playbook." >> $TEST_LOG
|
|
||||||
+ exit 255
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
+ # Do we need XDG_SESSION_ID and XDG_SEAT?
|
|
||||||
+ #export XDG_CONFIG_DIRS=/etc/xdg
|
|
||||||
+ #export XDG_SESSION_ID=10
|
|
||||||
+ #export XDG_SESSION_DESKTOP=gnome
|
|
||||||
+ #export XDG_SEAT=seat0
|
|
||||||
}
|
|
||||||
|
|
||||||
run_dbus_daemon()
|
|
||||||
{
|
|
||||||
# Use dbus-launch --exit-with-session later instead of --sh-syntax
|
|
||||||
+ # GNOME uses a unix:abstract address and it effects gsettings set values
|
|
||||||
+ # in each test case.
|
|
||||||
+ # TODO: Should we comment out this line?
|
|
||||||
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus"
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -288,7 +317,8 @@ run_gnome_desktop_testing_runner()
|
|
||||||
fail=1
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
- gnome-desktop-testing-runner $tst 2>>$TEST_LOG 1>>$TEST_LOG
|
|
||||||
+ gnome-desktop-testing-runner --timeout=$TIMEOUT $tst \
|
|
||||||
+ 2>>$TEST_LOG 1>>$TEST_LOG
|
|
||||||
retval=$?
|
|
||||||
read pass fail << EOF
|
|
||||||
`count_case_result $retval $pass $fail`
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
From 0b9d9365988a96a2bc31c48624f9c2b8081601b6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
|
||||||
Date: Wed, 22 Apr 2020 20:17:12 +0900
|
|
||||||
Subject: [PATCH] client/gtk2: Fix typo
|
|
||||||
|
|
||||||
---
|
|
||||||
client/gtk2/ibusim.c | 4 ++--
|
|
||||||
src/tests/ibus-desktop-testing-runner.in | 2 +-
|
|
||||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/client/gtk2/ibusim.c b/client/gtk2/ibusim.c
|
|
||||||
index d70800d3..55609ce7 100644
|
|
||||||
--- a/client/gtk2/ibusim.c
|
|
||||||
+++ b/client/gtk2/ibusim.c
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
/* vim:set et ts=4: */
|
|
||||||
/* ibus - The Input Bus
|
|
||||||
* Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
|
|
||||||
- * Copyright (C) 2008-2010 Red Hat, Inc.
|
|
||||||
+ * Copyright (C) 2008-2020 Red Hat, Inc.
|
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@@ -41,7 +41,7 @@ static const GtkIMContextInfo *info_list[] = {
|
@@ -69,22 +69,22 @@ class Application {
|
||||||
G_MODULE_EXPORT const gchar*
|
}
|
||||||
g_module_check_init (GModule *module)
|
|
||||||
{
|
|
||||||
- return null;
|
|
||||||
+ return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
G_MODULE_EXPORT void
|
private void bus_name_acquired_cb(DBusConnection connection,
|
||||||
diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
|
- string sender_name,
|
||||||
index f760fd5b..4232c549 100755
|
- string object_path,
|
||||||
--- a/src/tests/ibus-desktop-testing-runner.in
|
- string interface_name,
|
||||||
+++ b/src/tests/ibus-desktop-testing-runner.in
|
- string signal_name,
|
||||||
@@ -173,7 +173,7 @@ _EOF
|
- Variant parameters) {
|
||||||
# `su` command does not get focus in events without this variable.
|
+ string? sender_name,
|
||||||
# Need to restart sshd after set "PermitRootLogin yes" in sshd_config
|
+ string object_path,
|
||||||
if [ "x$XDG_RUNTIME_DIR" = x ] ; then
|
+ string interface_name,
|
||||||
- export XDG_RUNTIME_DIR=/run/user/$UID
|
+ string signal_name,
|
||||||
+ export XDG_RUNTIME_DIR="/run/user/$UID"
|
+ Variant parameters) {
|
||||||
is_root_login=`grep "^PermitRootLogin" /etc/ssh/sshd_config | grep yes`
|
debug("signal_name = %s", signal_name);
|
||||||
if [ "x$ANSIBLE" != x ] && [ "x$is_root_login" = x ] ; then
|
m_panel = new Panel(m_bus);
|
||||||
print_log -e "${RED}FAIL${NC}: No permission to get focus-in events in GtkWindow with ansible"
|
m_panel.load_settings();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bus_name_lost_cb(DBusConnection connection,
|
||||||
|
- string sender_name,
|
||||||
|
- string object_path,
|
||||||
|
- string interface_name,
|
||||||
|
- string signal_name,
|
||||||
|
- Variant parameters) {
|
||||||
|
+ string? sender_name,
|
||||||
|
+ string object_path,
|
||||||
|
+ string interface_name,
|
||||||
|
+ string signal_name,
|
||||||
|
+ Variant parameters) {
|
||||||
|
// "Destroy" dbus method was called before this callback is called.
|
||||||
|
// "Destroy" dbus method -> ibus_service_destroy()
|
||||||
|
// -> g_dbus_connection_unregister_object()
|
||||||
|
diff --git a/ui/gtk3/extension.vala b/ui/gtk3/extension.vala
|
||||||
|
index ea3cd464..a6f2e8e6 100644
|
||||||
|
--- a/ui/gtk3/extension.vala
|
||||||
|
+++ b/ui/gtk3/extension.vala
|
||||||
|
@@ -3,7 +3,7 @@
|
||||||
|
* ibus - The Input Bus
|
||||||
|
*
|
||||||
|
* Copyright(c) 2018 Peng Huang <shawn.p.huang@gmail.com>
|
||||||
|
- * Copyright(c) 2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
||||||
|
+ * Copyright(c) 2018-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
@@ -67,22 +67,22 @@ class ExtensionGtk : Gtk.Application {
|
||||||
|
|
||||||
|
|
||||||
|
private void bus_name_acquired_cb(DBusConnection connection,
|
||||||
|
- string sender_name,
|
||||||
|
- string object_path,
|
||||||
|
- string interface_name,
|
||||||
|
- string signal_name,
|
||||||
|
- Variant parameters) {
|
||||||
|
+ string? sender_name,
|
||||||
|
+ string object_path,
|
||||||
|
+ string interface_name,
|
||||||
|
+ string signal_name,
|
||||||
|
+ Variant parameters) {
|
||||||
|
debug("signal_name = %s", signal_name);
|
||||||
|
m_panel = new PanelBinding(m_bus, this);
|
||||||
|
m_panel.load_settings();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bus_name_lost_cb(DBusConnection connection,
|
||||||
|
- string sender_name,
|
||||||
|
- string object_path,
|
||||||
|
- string interface_name,
|
||||||
|
- string signal_name,
|
||||||
|
- Variant parameters) {
|
||||||
|
+ string? sender_name,
|
||||||
|
+ string object_path,
|
||||||
|
+ string interface_name,
|
||||||
|
+ string signal_name,
|
||||||
|
+ Variant parameters) {
|
||||||
|
// "Destroy" dbus method was called before this callback is called.
|
||||||
|
// "Destroy" dbus method -> ibus_service_destroy()
|
||||||
|
// -> g_dbus_connection_unregister_object()
|
||||||
--
|
--
|
||||||
2.24.1
|
2.24.1
|
||||||
|
|
||||||
From 8c4125bc78ce3502b5aeb053e7029cc2594f83f2 Mon Sep 17 00:00:00 2001
|
From 02338ce751a1ed5b9b892fba530ec2fe211d314e Mon Sep 17 00:00:00 2001
|
||||||
From: Changwoo Ryu <cwryu@debian.org>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Sun, 12 Apr 2020 05:28:15 +0900
|
Date: Fri, 20 Nov 2020 08:58:52 +0900
|
||||||
Subject: [PATCH] src: Build the Emoji dictionaries in parallel
|
Subject: [PATCH] docs: Fix make dist
|
||||||
|
|
||||||
Instead of building Emoji dictionaries src/dicts/emoji-*.dict in sequence, a
|
|
||||||
pattern rule is specified for them. The make -jN option builds the
|
|
||||||
dictionaries in parallel.
|
|
||||||
|
|
||||||
The GNU make extensions like pattern rule and patsubst function are used for
|
|
||||||
it. But src/Makefile.am has had other GNU make extensions for a while, so
|
|
||||||
using more extensions should not make portability worse.
|
|
||||||
|
|
||||||
BUG=https://github.com/ibus/ibus/pull/2209
|
|
||||||
---
|
---
|
||||||
src/Makefile.am | 55 ++++++++++++++++++++++++-------------------------
|
docs/reference/ibus/Makefile.am | 6 +++---
|
||||||
1 file changed, 27 insertions(+), 28 deletions(-)
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/docs/reference/ibus/Makefile.am b/docs/reference/ibus/Makefile.am
|
||||||
|
index 1ece234c..0f307bbd 100644
|
||||||
|
--- a/docs/reference/ibus/Makefile.am
|
||||||
|
+++ b/docs/reference/ibus/Makefile.am
|
||||||
|
@@ -3,8 +3,8 @@
|
||||||
|
# ibus - The Input Bus
|
||||||
|
#
|
||||||
|
# Copyright (c) 2007-2015 Peng Huang <shawn.p.huang@gmail.com>
|
||||||
|
-# Copyright (c) 2007-2015 Red Hat, Inc.
|
||||||
|
-# Copyright (c) 2015 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
||||||
|
+# Copyright (c) 2007-2020 Red Hat, Inc.
|
||||||
|
+# Copyright (c) 2015-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@@ -147,6 +147,6 @@ tmpl-build.stamp: trim-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DO
|
||||||
|
# clean-local:
|
||||||
|
# rm -rf tmpl ${DOC_MODULE)
|
||||||
|
|
||||||
|
-CLEANFILES+= *.stamp
|
||||||
|
+CLEANFILES+= *actions *.stamp
|
||||||
|
|
||||||
|
-include $(top_srcdir)/git.mk
|
||||||
|
--
|
||||||
|
2.24.1
|
||||||
|
|
||||||
|
From aa558de80c224921753990806cf553428fbe7057 Mon Sep 17 00:00:00 2001
|
||||||
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
|
Date: Fri, 20 Nov 2020 09:03:32 +0900
|
||||||
|
Subject: [PATCH] src: Fix to build emoji-*.dict in CLDR 38
|
||||||
|
|
||||||
|
root.xml and sr_Cyrl.xml have included no contents since
|
||||||
|
cldr-emoji-annotation-38 and make install failed because of no
|
||||||
|
emoji-root.dict and emoji-sr.Cyrl.dict.
|
||||||
|
Now the build creates the no content files but remove those files
|
||||||
|
in the install hook.
|
||||||
|
|
||||||
|
BUG=rhbz#1898065
|
||||||
|
---
|
||||||
|
src/Makefile.am | 61 ++++++++++++++++++++++------------------------
|
||||||
|
src/emoji-parser.c | 4 ++-
|
||||||
|
2 files changed, 32 insertions(+), 33 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
index a8e3d07d..99de1ab7 100644
|
index 99de1ab7..742ee7d7 100644
|
||||||
--- a/src/Makefile.am
|
--- a/src/Makefile.am
|
||||||
+++ b/src/Makefile.am
|
+++ b/src/Makefile.am
|
||||||
@@ -246,42 +246,41 @@ if ENABLE_EMOJI_DICT
|
@@ -3,7 +3,7 @@
|
||||||
AM_CPPFLAGS += -DENABLE_EMOJI_DICT
|
# ibus - The Input Bus
|
||||||
|
#
|
||||||
|
# Copyright (c) 2007-2015 Peng Huang <shawn.p.huang@gmail.com>
|
||||||
|
-# Copyright (c) 2015-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
||||||
|
+# Copyright (c) 2015-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
||||||
|
# Copyright (c) 2007-2017 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
@@ -248,6 +248,7 @@ AM_CPPFLAGS += -DENABLE_EMOJI_DICT
|
||||||
dictdir = $(pkgdatadir)/dicts
|
dictdir = $(pkgdatadir)/dicts
|
||||||
-dict_DATA = dicts/emoji-en.dict
|
|
||||||
LANG_FILES = $(basename $(notdir $(wildcard $(EMOJI_ANNOTATION_DIR)/*.xml)))
|
LANG_FILES = $(basename $(notdir $(wildcard $(EMOJI_ANNOTATION_DIR)/*.xml)))
|
||||||
+EMOJI_DICT_FILES = $(patsubst %,dicts/emoji-%.dict,$(LANG_FILES))
|
EMOJI_DICT_FILES = $(patsubst %,dicts/emoji-%.dict,$(LANG_FILES))
|
||||||
+dict_DATA = $(EMOJI_DICT_FILES)
|
+# emoji-root.dict, emoji-sr_Cyrl.dict have no contents.
|
||||||
|
dict_DATA = $(EMOJI_DICT_FILES)
|
||||||
|
|
||||||
noinst_PROGRAMS += emoji-parser
|
noinst_PROGRAMS += emoji-parser
|
||||||
|
@@ -265,6 +266,7 @@ dicts/emoji-%.dict: emoji-parser
|
||||||
-dicts/emoji-en.dict: emoji-parser
|
xml_derived_option="--xml-derived $(EMOJI_ANNOTATION_DIR)/../annotationsDerived/$*.xml"; \
|
||||||
+dicts/emoji-%.dict: emoji-parser
|
|
||||||
$(AM_V_at)if test x"$(LANG_FILES)" = x ; then \
|
|
||||||
echo "WARNING: Not found $(EMOJI_ANNOTATION_DIR)/en.xml" 1>&2; \
|
|
||||||
fi; \
|
|
||||||
- for f in $(LANG_FILES) ; do \
|
|
||||||
- if test -f dicts/emoji-$$f.dict; then \
|
|
||||||
- echo "Already exists dicts/emoji-$$f.dict"; \
|
|
||||||
- continue; \
|
|
||||||
- fi; \
|
|
||||||
- if test -f \
|
|
||||||
- "$(EMOJI_ANNOTATION_DIR)/../annotationsDerived/$$f.xml" ; then \
|
|
||||||
- xml_derived_option="--xml-derived $(EMOJI_ANNOTATION_DIR)/../annotationsDerived/$$f.xml"; \
|
|
||||||
+ if test -f $@; then \
|
|
||||||
+ echo "Already exists $@"; \
|
|
||||||
+ exit 0; \
|
|
||||||
+ fi; \
|
|
||||||
+ if test -f \
|
|
||||||
+ "$(EMOJI_ANNOTATION_DIR)/../annotationsDerived/$*.xml" ; then \
|
|
||||||
+ xml_derived_option="--xml-derived $(EMOJI_ANNOTATION_DIR)/../annotationsDerived/$*.xml"; \
|
|
||||||
plus_comment="derived"; \
|
plus_comment="derived"; \
|
||||||
- fi; \
|
fi; \
|
||||||
- if test x"$$f" = xen ; then \
|
+ is_skip=0; \
|
||||||
- $(builddir)/emoji-parser \
|
if test x"$*" = xen ; then \
|
||||||
- --unicode-emoji-dir $(UNICODE_EMOJI_DIR) \
|
$(builddir)/emoji-parser \
|
||||||
- --xml $(EMOJI_ANNOTATION_DIR)/$$f.xml \
|
--unicode-emoji-dir $(UNICODE_EMOJI_DIR) \
|
||||||
- $$xml_derived_option \
|
@@ -279,48 +281,43 @@ dicts/emoji-%.dict: emoji-parser
|
||||||
- --xml-ascii $(top_srcdir)/data/annotations/en_ascii.xml \
|
--xml $(EMOJI_ANNOTATION_DIR)/$*.xml \
|
||||||
- --out-category ibusemojigen.h \
|
$$xml_derived_option \
|
||||||
- --out $@; \
|
--out $@; \
|
||||||
- else \
|
+ retval=$$?; \
|
||||||
- $(builddir)/emoji-parser \
|
+ if test $$retval -eq 99 ; then \
|
||||||
- --unicode-emoji-dir $(UNICODE_EMOJI_DIR) \
|
+ is_skip=1; \
|
||||||
- --xml $(EMOJI_ANNOTATION_DIR)/$$f.xml \
|
+ touch $@; \
|
||||||
- $$xml_derived_option \
|
+ elif test $$retval -ne 0 ; then \
|
||||||
- --out dicts/emoji-$$f.dict; \
|
+ echo "Fail to generate $@"; \
|
||||||
- fi; \
|
+ abrt; \
|
||||||
- echo "Generated $$plus_comment dicts/emoji-$$f.dict"; \
|
+ fi; \
|
||||||
- done
|
fi; \
|
||||||
+ fi; \
|
- echo "Generated $$plus_comment $@"
|
||||||
+ if test x"$*" = xen ; then \
|
+ if test $$is_skip -eq 0 ; then \
|
||||||
+ $(builddir)/emoji-parser \
|
+ echo "Generated $$plus_comment $@"; \
|
||||||
+ --unicode-emoji-dir $(UNICODE_EMOJI_DIR) \
|
|
||||||
+ --xml $(EMOJI_ANNOTATION_DIR)/$*.xml \
|
|
||||||
+ $$xml_derived_option \
|
|
||||||
+ --xml-ascii $(top_srcdir)/data/annotations/en_ascii.xml \
|
|
||||||
+ --out-category ibusemojigen.h \
|
|
||||||
+ --out $@; \
|
|
||||||
+ else \
|
+ else \
|
||||||
+ $(builddir)/emoji-parser \
|
+ echo "Skip $$plus_comment $@"; \
|
||||||
+ --unicode-emoji-dir $(UNICODE_EMOJI_DIR) \
|
+ fi;
|
||||||
+ --xml $(EMOJI_ANNOTATION_DIR)/$*.xml \
|
|
||||||
+ $$xml_derived_option \
|
|
||||||
+ --out $@; \
|
|
||||||
+ fi; \
|
|
||||||
+ echo "Generated $$plus_comment $@"
|
|
||||||
|
|
||||||
ibusemojigen.h: dicts/emoji-en.dict
|
ibusemojigen.h: dicts/emoji-en.dict
|
||||||
$(NULL)
|
$(NULL)
|
||||||
--
|
|
||||||
2.23.0.rc1
|
|
||||||
|
|
||||||
From 02105c4d486283e6b561181d9c934d4d23f2d65e Mon Sep 17 00:00:00 2001
|
-install-data-hook: $(dict_DATA)
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
- @$(NORMAL_INSTALL)
|
||||||
Date: Thu, 14 May 2020 15:48:34 +0900
|
+# We put dicts/emoji-%.dict as the make target for the parallel build
|
||||||
Subject: [PATCH] bus: Fix SEGV in bus_panel_proxy_focus_in()
|
+# and the make target has to be genarated even if the file size is zero.
|
||||||
|
+# But we don't want to install the zero size files and delete them
|
||||||
|
+# in install-data-hook.
|
||||||
|
+install-data-hook:
|
||||||
|
$(AM_V_at)list='$(wildcard dicts/*.dict)'; \
|
||||||
|
test -n "$(dictdir)" || list=; \
|
||||||
|
- if test -n "$$list"; then \
|
||||||
|
- echo " $(MKDIR_P) '$(DESTDIR)$(dictdir)'"; \
|
||||||
|
- $(MKDIR_P) "$(DESTDIR)$(dictdir)" || exit 1; \
|
||||||
|
- fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
- echo "$$d$$p"; \
|
||||||
|
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
+ if test -s "$$d$$p"; then continue; fi; \
|
||||||
|
+ basename "$$p"; \
|
||||||
|
done | \
|
||||||
|
- while read files; do \
|
||||||
|
- if [ x$(AM_DEFAULT_VERBOSITY) = x1 ] ; then \
|
||||||
|
- echo "$(INSTALL_DATA) $$files '$(DESTDIR)$(dictdir)'"; \
|
||||||
|
- else \
|
||||||
|
- echo "Installing $$files"; \
|
||||||
|
- fi; \
|
||||||
|
- $(INSTALL_DATA) $$files "$(DESTDIR)$(dictdir)" || exit $$?; \
|
||||||
|
+ while read file; do \
|
||||||
|
+ if test -f "$(DESTDIR)$(dictdir)/$$file"; then \
|
||||||
|
+ echo "Delete $(DESTDIR)$(dictdir)/$$file"; \
|
||||||
|
+ rm "$(DESTDIR)$(dictdir)/$$file" || exit $$?; \
|
||||||
|
+ fi; \
|
||||||
|
done
|
||||||
|
|
||||||
SEGV in BUS_IS_PANEL_PROXY() in bus_panel_proxy_focus_in()
|
-dict__uninstall_files_from_dir = { \
|
||||||
Check if GDBusConnect is closed before bus_panel_proxy_new() is called.
|
- test -z "$$files" \
|
||||||
|
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||||
BUG=rhbz#1349148
|
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||||
BUG=rhbz#1385349
|
- cd "$$dir" && rm -f $$files; }; \
|
||||||
---
|
- }
|
||||||
bus/ibusimpl.c | 25 ++++++++++++++++++++-----
|
-
|
||||||
1 file changed, 20 insertions(+), 5 deletions(-)
|
-# for make dist
|
||||||
|
-uninstall-hook:
|
||||||
diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
|
- @$(NORMAL_UNINSTALL)
|
||||||
index 85761d30..e432e849 100644
|
- $(AM_V_at)list='$(wildcard dicts/*.dict)'; \
|
||||||
--- a/bus/ibusimpl.c
|
- test -n "$(dictdir)" || list=; \
|
||||||
+++ b/bus/ibusimpl.c
|
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
@@ -2,8 +2,8 @@
|
- dir='$(DESTDIR)$(dictdir)'; $(dict__uninstall_files_from_dir)
|
||||||
|
-
|
||||||
|
emoji_parser_SOURCES = \
|
||||||
|
emoji-parser.c \
|
||||||
|
$(NULL)
|
||||||
|
diff --git a/src/emoji-parser.c b/src/emoji-parser.c
|
||||||
|
index 96a779c6..b117b1b4 100644
|
||||||
|
--- a/src/emoji-parser.c
|
||||||
|
+++ b/src/emoji-parser.c
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
|
||||||
/* vim:set et sts=4: */
|
/* vim:set et sts=4: */
|
||||||
/* ibus - The Input Bus
|
/* ibus - The Input Bus
|
||||||
* Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>
|
- * Copyright (C) 2016-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
||||||
- * Copyright (C) 2011-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
+ * Copyright (C) 2016-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
||||||
- * Copyright (C) 2008-2019 Red Hat, Inc.
|
* Copyright (C) 2016 Red Hat, Inc.
|
||||||
+ * Copyright (C) 2011-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
|
||||||
+ * Copyright (C) 2008-2020 Red Hat, Inc.
|
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
@@ -1294,6 +1294,8 @@ main (int argc, char *argv[])
|
||||||
@@ -464,13 +464,16 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
|
category_file_save (output_category, list);
|
||||||
else if (!g_strcmp0 (name, IBUS_SERVICE_PANEL_EXTENSION_EMOJI))
|
if (list)
|
||||||
panel_type = PANEL_TYPE_EXTENSION_EMOJI;
|
g_slist_free (list);
|
||||||
|
+ else
|
||||||
|
+ return 99;
|
||||||
|
|
||||||
- if (panel_type != PANEL_TYPE_NONE) {
|
return 0;
|
||||||
+ do {
|
|
||||||
+ if (panel_type == PANEL_TYPE_NONE)
|
|
||||||
+ break;
|
|
||||||
if (g_strcmp0 (new_name, "") != 0) {
|
|
||||||
/* a Panel process is started. */
|
|
||||||
BusConnection *connection;
|
|
||||||
BusInputContext *context = NULL;
|
|
||||||
BusPanelProxy **panel = (panel_type == PANEL_TYPE_PANEL) ?
|
|
||||||
&ibus->panel : &ibus->emoji_extension;
|
|
||||||
+ GDBusConnection *dbus_connection = NULL;
|
|
||||||
|
|
||||||
if (*panel != NULL) {
|
|
||||||
ibus_proxy_destroy ((IBusProxy *)(*panel));
|
|
||||||
@@ -479,9 +482,21 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
|
|
||||||
g_assert (*panel == NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
- connection = bus_dbus_impl_get_connection_by_name (BUS_DEFAULT_DBUS, new_name);
|
|
||||||
+ connection = bus_dbus_impl_get_connection_by_name (BUS_DEFAULT_DBUS,
|
|
||||||
+ new_name);
|
|
||||||
g_return_if_fail (connection != NULL);
|
|
||||||
|
|
||||||
+ dbus_connection = bus_connection_get_dbus_connection (connection);
|
|
||||||
+ /* rhbz#1349148 rhbz#1385349
|
|
||||||
+ * Avoid SEGV of BUS_IS_PANEL_PROXY (ibus->panel)
|
|
||||||
+ * This function is called during destroying the connection
|
|
||||||
+ * in this case? */
|
|
||||||
+ if (dbus_connection == NULL ||
|
|
||||||
+ g_dbus_connection_is_closed (dbus_connection)) {
|
|
||||||
+ new_name = "";
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
*panel = bus_panel_proxy_new (connection, panel_type);
|
|
||||||
if (panel_type == PANEL_TYPE_EXTENSION_EMOJI)
|
|
||||||
ibus->enable_emoji_extension = FALSE;
|
|
||||||
@@ -535,7 +550,7 @@ _dbus_name_owner_changed_cb (BusDBusImpl *dbus,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- }
|
|
||||||
+ } while (0);
|
|
||||||
|
|
||||||
bus_ibus_impl_component_name_owner_changed (ibus, name, old_name, new_name);
|
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.24.1
|
2.24.1
|
||||||
|
|
||||||
From f591381e3c892947ecaffe9131b9039ab9014498 Mon Sep 17 00:00:00 2001
|
From b72efea42d5f72e08e2774ae03027c246d41cab7 Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Thu, 14 May 2020 16:02:00 +0900
|
Date: Fri, 20 Nov 2020 10:56:11 +0900
|
||||||
Subject: [PATCH] bus: Fix SEGV in bus_dbus_impl_name_owner_changed()
|
Subject: [PATCH] src: Update IBusInputPurpose and IBusInputHints in
|
||||||
|
ibustypes.h
|
||||||
|
|
||||||
rhbz#1406699 SEGV in new_owner!=NULL in bus_dbus_impl_name_owner_changed()
|
Copy IBUS_INPUT_PURPOSE_TERMINAL, IBUS_INPUT_PURPOSE_PIN,
|
||||||
which is called by bus_name_service_remove_owner()
|
IBUS_INPUT_PURPOSE_TERMINAL from GTK 3.24.14
|
||||||
If bus_connection_get_unique_name()==NULL, set new_owner="" in
|
|
||||||
bus_name_service_remove_owner()
|
|
||||||
|
|
||||||
rhbz#1432252 SEGV in old_owner!=NULL in bus_dbus_impl_name_owner_changed()
|
|
||||||
which is called by bus_name_service_set_primary_owner()
|
|
||||||
If bus_connection_get_unique_name()==NULL, set old_owner="" in
|
|
||||||
bus_name_service_set_primary_owner()
|
|
||||||
|
|
||||||
BUG=rhbz#1406699
|
|
||||||
BUG=rhbz#1432252
|
|
||||||
---
|
---
|
||||||
bus/dbusimpl.c | 27 +++++++++++++++++++++++----
|
src/ibustypes.h | 77 ++++++++++++++++++++++++++++++++++---------------
|
||||||
1 file changed, 23 insertions(+), 4 deletions(-)
|
1 file changed, 53 insertions(+), 24 deletions(-)
|
||||||
|
|
||||||
diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c
|
diff --git a/src/ibustypes.h b/src/ibustypes.h
|
||||||
index b54ef817..59787a80 100644
|
index 06370a27..798ad04d 100644
|
||||||
--- a/bus/dbusimpl.c
|
--- a/src/ibustypes.h
|
||||||
+++ b/bus/dbusimpl.c
|
+++ b/src/ibustypes.h
|
||||||
@@ -2,7 +2,8 @@
|
@@ -2,7 +2,7 @@
|
||||||
/* vim:set et sts=4: */
|
/* vim:set et sts=4: */
|
||||||
/* ibus - The Input Bus
|
/* ibus - The Input Bus
|
||||||
* Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>
|
* Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>
|
||||||
- * Copyright (C) 2008-2013 Red Hat, Inc.
|
- * Copyright (C) 2008-2015 Red Hat, Inc.
|
||||||
+ * Copyright (C) 2015-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
|
||||||
+ * Copyright (C) 2008-2020 Red Hat, Inc.
|
+ * Copyright (C) 2008-2020 Red Hat, Inc.
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@@ -344,6 +345,8 @@ bus_name_service_set_primary_owner (BusNameService *service,
|
@@ -241,29 +241,46 @@ typedef void (* IBusFreeFunc) (gpointer object);
|
||||||
BusConnectionOwner *owner,
|
* @IBUS_INPUT_PURPOSE_EMAIL: Edited field expects email address
|
||||||
BusDBusImpl *dbus)
|
* @IBUS_INPUT_PURPOSE_NAME: Edited field expects the name of a person
|
||||||
|
* @IBUS_INPUT_PURPOSE_PASSWORD: Like @IBUS_INPUT_PURPOSE_FREE_FORM,
|
||||||
|
- * but characters are hidden
|
||||||
|
+ * but characters are hidden
|
||||||
|
* @IBUS_INPUT_PURPOSE_PIN: Like @IBUS_INPUT_PURPOSE_DIGITS, but
|
||||||
|
- * characters are hidden
|
||||||
|
+ * characters are hidden
|
||||||
|
+ * @IBUS_INPUT_PURPOSE_TERMINAL: Allow any character, in addition to control
|
||||||
|
+ * codes. Since 1.5.24
|
||||||
|
*
|
||||||
|
* Describes primary purpose of the input context. This information
|
||||||
|
* is particularly useful to implement intelligent behavior in
|
||||||
|
* engines, such as automatic input-mode switch and text prediction.
|
||||||
|
*
|
||||||
|
+ * Note that the purpose is not meant to impose a totally strict rule
|
||||||
|
+ * about allowed characters, and does not replace input validation.
|
||||||
|
+ * It is fine for an on-screen keyboard to let the user override the
|
||||||
|
+ * character set restriction that is expressed by the purpose. The
|
||||||
|
+ * application is expected to validate the entry contents, even if
|
||||||
|
+ * it specified a purpose.
|
||||||
|
+ *
|
||||||
|
+ * The difference between @IBUS_INPUT_PURPOSE_DIGITS and
|
||||||
|
+ * @IBUS_INPUT_PURPOSE_NUMBER is that the former accepts only digits
|
||||||
|
+ * while the latter also some punctuation (like commas or points, plus,
|
||||||
|
+ * minus) and “e” or “E” as in 3.14E+000.
|
||||||
|
+ *
|
||||||
|
* This enumeration may be extended in the future; engines should
|
||||||
|
* interpret unknown values as 'free form'.
|
||||||
|
+ *
|
||||||
|
+ * Since: 1.5.4
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
{
|
{
|
||||||
+ gboolean has_old_owner = FALSE;
|
- IBUS_INPUT_PURPOSE_FREE_FORM,
|
||||||
+
|
- IBUS_INPUT_PURPOSE_ALPHA,
|
||||||
g_assert (service != NULL);
|
- IBUS_INPUT_PURPOSE_DIGITS,
|
||||||
g_assert (owner != NULL);
|
- IBUS_INPUT_PURPOSE_NUMBER,
|
||||||
g_assert (dbus != NULL);
|
- IBUS_INPUT_PURPOSE_PHONE,
|
||||||
@@ -351,6 +354,13 @@ bus_name_service_set_primary_owner (BusNameService *service,
|
- IBUS_INPUT_PURPOSE_URL,
|
||||||
BusConnectionOwner *old = service->owners != NULL ?
|
- IBUS_INPUT_PURPOSE_EMAIL,
|
||||||
(BusConnectionOwner *)service->owners->data : NULL;
|
- IBUS_INPUT_PURPOSE_NAME,
|
||||||
|
- IBUS_INPUT_PURPOSE_PASSWORD,
|
||||||
|
- IBUS_INPUT_PURPOSE_PIN
|
||||||
|
+ IBUS_INPUT_PURPOSE_FREE_FORM,
|
||||||
|
+ IBUS_INPUT_PURPOSE_ALPHA,
|
||||||
|
+ IBUS_INPUT_PURPOSE_DIGITS,
|
||||||
|
+ IBUS_INPUT_PURPOSE_NUMBER,
|
||||||
|
+ IBUS_INPUT_PURPOSE_PHONE,
|
||||||
|
+ IBUS_INPUT_PURPOSE_URL,
|
||||||
|
+ IBUS_INPUT_PURPOSE_EMAIL,
|
||||||
|
+ IBUS_INPUT_PURPOSE_NAME,
|
||||||
|
+ IBUS_INPUT_PURPOSE_PASSWORD,
|
||||||
|
+ IBUS_INPUT_PURPOSE_PIN,
|
||||||
|
+ IBUS_INPUT_PURPOSE_TERMINAL
|
||||||
|
} IBusInputPurpose;
|
||||||
|
|
||||||
+ /* rhbz#1432252 If bus_connection_get_unique_name() == NULL,
|
/**
|
||||||
+ * "Hello" method is not received yet.
|
@@ -280,24 +297,36 @@ typedef enum
|
||||||
+ */
|
* first word of each sentence
|
||||||
+ if (old != NULL && bus_connection_get_unique_name (old->conn) != NULL) {
|
* @IBUS_INPUT_HINT_INHIBIT_OSK: Suggest to not show an onscreen keyboard
|
||||||
+ has_old_owner = TRUE;
|
* (e.g for a calculator that already has all the keys).
|
||||||
+ }
|
- * @IBUS_INPUT_HINT_VERTICAL_WRITING: The text is vertical.
|
||||||
+
|
+ * @IBUS_INPUT_HINT_VERTICAL_WRITING: The text is vertical. Since 1.5.11
|
||||||
if (old != NULL) {
|
+ * @IBUS_INPUT_HINT_EMOJI: Suggest offering Emoji support. Since 1.5.24
|
||||||
g_signal_emit (dbus,
|
+ * @IBUS_INPUT_HINT_NO_EMOJI: Suggest not offering Emoji support. Since 1.5.24
|
||||||
dbus_signals[NAME_LOST],
|
*
|
||||||
@@ -370,7 +380,8 @@ bus_name_service_set_primary_owner (BusNameService *service,
|
* Describes hints that might be taken into account by engines. Note
|
||||||
0,
|
* that engines may already tailor their behaviour according to the
|
||||||
owner->conn,
|
* #IBusInputPurpose of the entry.
|
||||||
service->name,
|
+ *
|
||||||
- old != NULL ? bus_connection_get_unique_name (old->conn) : "",
|
+ * Some common sense is expected when using these flags - mixing
|
||||||
+ has_old_owner ? bus_connection_get_unique_name (old->conn) :
|
+ * @IBUS_INPUT_HINT_LOWERCASE with any of the uppercase hints makes no sense.
|
||||||
+ "",
|
+ *
|
||||||
bus_connection_get_unique_name (owner->conn));
|
+ * This enumeration may be extended in the future; engines should
|
||||||
|
+ * ignore unknown values.
|
||||||
if (old != NULL && old->do_not_queue != 0) {
|
+ *
|
||||||
@@ -427,6 +438,7 @@ bus_name_service_remove_owner (BusNameService *service,
|
+ * Since: 1.5.4
|
||||||
BusDBusImpl *dbus)
|
*/
|
||||||
|
typedef enum
|
||||||
{
|
{
|
||||||
GSList *owners;
|
- IBUS_INPUT_HINT_NONE = 0,
|
||||||
+ gboolean has_new_owner = FALSE;
|
- IBUS_INPUT_HINT_SPELLCHECK = 1 << 0,
|
||||||
|
- IBUS_INPUT_HINT_NO_SPELLCHECK = 1 << 1,
|
||||||
|
- IBUS_INPUT_HINT_WORD_COMPLETION = 1 << 2,
|
||||||
|
- IBUS_INPUT_HINT_LOWERCASE = 1 << 3,
|
||||||
|
- IBUS_INPUT_HINT_UPPERCASE_CHARS = 1 << 4,
|
||||||
|
- IBUS_INPUT_HINT_UPPERCASE_WORDS = 1 << 5,
|
||||||
|
- IBUS_INPUT_HINT_UPPERCASE_SENTENCES = 1 << 6,
|
||||||
|
- IBUS_INPUT_HINT_INHIBIT_OSK = 1 << 7,
|
||||||
|
- IBUS_INPUT_HINT_VERTICAL_WRITING = 1 << 8
|
||||||
|
+ IBUS_INPUT_HINT_NONE = 0,
|
||||||
|
+ IBUS_INPUT_HINT_SPELLCHECK = 1 << 0,
|
||||||
|
+ IBUS_INPUT_HINT_NO_SPELLCHECK = 1 << 1,
|
||||||
|
+ IBUS_INPUT_HINT_WORD_COMPLETION = 1 << 2,
|
||||||
|
+ IBUS_INPUT_HINT_LOWERCASE = 1 << 3,
|
||||||
|
+ IBUS_INPUT_HINT_UPPERCASE_CHARS = 1 << 4,
|
||||||
|
+ IBUS_INPUT_HINT_UPPERCASE_WORDS = 1 << 5,
|
||||||
|
+ IBUS_INPUT_HINT_UPPERCASE_SENTENCES = 1 << 6,
|
||||||
|
+ IBUS_INPUT_HINT_INHIBIT_OSK = 1 << 7,
|
||||||
|
+ IBUS_INPUT_HINT_VERTICAL_WRITING = 1 << 8,
|
||||||
|
+ IBUS_INPUT_HINT_EMOJI = 1 << 9,
|
||||||
|
+ IBUS_INPUT_HINT_NO_EMOJI = 1 << 10
|
||||||
|
} IBusInputHints;
|
||||||
|
|
||||||
g_assert (service != NULL);
|
#endif
|
||||||
g_assert (owner != NULL);
|
|
||||||
@@ -439,6 +451,13 @@ bus_name_service_remove_owner (BusNameService *service,
|
|
||||||
BusConnectionOwner *_new = NULL;
|
|
||||||
if (owners->next != NULL) {
|
|
||||||
_new = (BusConnectionOwner *)owners->next->data;
|
|
||||||
+ /* rhbz#1406699 If bus_connection_get_unique_name() == NULL,
|
|
||||||
+ * "Hello" method is not received yet.
|
|
||||||
+ */
|
|
||||||
+ if (_new != NULL &&
|
|
||||||
+ bus_connection_get_unique_name (_new->conn) != NULL) {
|
|
||||||
+ has_new_owner = TRUE;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dbus != NULL) {
|
|
||||||
@@ -447,7 +466,7 @@ bus_name_service_remove_owner (BusNameService *service,
|
|
||||||
0,
|
|
||||||
owner->conn,
|
|
||||||
service->name);
|
|
||||||
- if (_new != NULL) {
|
|
||||||
+ if (has_new_owner) {
|
|
||||||
g_signal_emit (dbus,
|
|
||||||
dbus_signals[NAME_ACQUIRED],
|
|
||||||
0,
|
|
||||||
@@ -460,7 +479,7 @@ bus_name_service_remove_owner (BusNameService *service,
|
|
||||||
_new != NULL ? _new->conn : NULL,
|
|
||||||
service->name,
|
|
||||||
bus_connection_get_unique_name (owner->conn),
|
|
||||||
- _new != NULL ? bus_connection_get_unique_name (_new->conn) : "");
|
|
||||||
+ has_new_owner ? bus_connection_get_unique_name (_new->conn) : "");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--
|
--
|
||||||
2.24.1
|
2.24.1
|
||||||
|
|
||||||
|
|||||||
19
ibus.spec
19
ibus.spec
@ -5,8 +5,8 @@
|
|||||||
%global dbus_python_version 0.83.0
|
%global dbus_python_version 0.83.0
|
||||||
|
|
||||||
Name: ibus
|
Name: ibus
|
||||||
Version: 1.5.22
|
Version: 1.5.23
|
||||||
Release: 3
|
Release: 1
|
||||||
Summary: Intelligent Input Bus for Linux OS
|
Summary: Intelligent Input Bus for Linux OS
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
URL: https://github.com/ibus/%name/wiki
|
URL: https://github.com/ibus/%name/wiki
|
||||||
@ -16,9 +16,7 @@ Source1: %{name}-xinput
|
|||||||
Source2: %{name}.conf.5
|
Source2: %{name}.conf.5
|
||||||
Patch0: %{name}-HEAD.patch
|
Patch0: %{name}-HEAD.patch
|
||||||
Patch1: %{name}-1385349-segv-bus-proxy.patch
|
Patch1: %{name}-1385349-segv-bus-proxy.patch
|
||||||
Patch6000: 02338ce751a1ed5b9b892fba530ec2fe211d314e.patch
|
Patch2: 30a3641e19c541924959a5770dd784b4424288d4.patch
|
||||||
Patch6001: aa558de80c224921753990806cf553428fbe7057.patch
|
|
||||||
Patch6002: b72efea42d5f72e08e2774ae03027c246d41cab7.patch
|
|
||||||
|
|
||||||
BuildRequires: gettext-devel libtool glib2-doc gtk2-devel gtk3-devel dbus-glib-devel gtk-doc dconf-devel dbus-x11 python3-devel
|
BuildRequires: gettext-devel libtool glib2-doc gtk2-devel gtk3-devel dbus-glib-devel gtk-doc dconf-devel dbus-x11 python3-devel
|
||||||
BuildRequires: dbus-python-devel >= %{dbus_python_version} desktop-file-utils python3-gobject vala vala-devel vala-tools
|
BuildRequires: dbus-python-devel >= %{dbus_python_version} desktop-file-utils python3-gobject vala vala-devel vala-tools
|
||||||
@ -42,8 +40,8 @@ Requires(postun): %{_sbindir}/alternatives
|
|||||||
|
|
||||||
Provides: ibus-gtk = %{version}-%{release}
|
Provides: ibus-gtk = %{version}-%{release}
|
||||||
Obsoletes: ibus-gtk < %{version}-%{release}
|
Obsoletes: ibus-gtk < %{version}-%{release}
|
||||||
Provides: ibus-gtk2 ibus-gtk3 ibus-setup ibus-wayland
|
Provides: ibus-gtk2 = %{version}-%{release} ibus-gtk3 = %{version}-%{release} ibus-setup = %{version}-%{release} ibus-wayland = %{version}-%{release}
|
||||||
Obsoletes: ibus-gtk2 ibus-gtk3 ibus-setup ibus-wayland
|
Obsoletes: ibus-gtk2 < %{version}-%{release} ibus-gtk3 < %{version}-%{release} ibus-setup < %{version}-%{release} ibus-wayland < %{version}-%{release}
|
||||||
|
|
||||||
%global _xinputconf %{_sysconfdir}/X11/xinit/xinput.d/ibus.conf
|
%global _xinputconf %{_sysconfdir}/X11/xinit/xinput.d/ibus.conf
|
||||||
|
|
||||||
@ -62,8 +60,8 @@ This package contains the libraries for IBus
|
|||||||
Summary: Development tools for ibus
|
Summary: Development tools for ibus
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
Requires: dbus-devel glib2-devel gobject-introspection-devel vala
|
Requires: dbus-devel glib2-devel gobject-introspection-devel vala
|
||||||
Provides: ibus-devel-docs
|
Provides: ibus-devel-docs = %{version}-%{release}
|
||||||
Obsoletes: ibus-devel-docs
|
Obsoletes: ibus-devel-docs < %{version}-%{release}
|
||||||
|
|
||||||
%package_help
|
%package_help
|
||||||
|
|
||||||
@ -183,6 +181,9 @@ dconf update || :
|
|||||||
%{_datadir}/gtk-doc/html/*
|
%{_datadir}/gtk-doc/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 29 2021 zhanzhimin <zhanzhimin@huawei.com> - 1.5.23-1
|
||||||
|
- update to 1.5.23
|
||||||
|
|
||||||
* 20201121063007667187 patch-tracking 1.5.22-3
|
* 20201121063007667187 patch-tracking 1.5.22-3
|
||||||
- append patch file of upstream repository from <02338ce751a1ed5b9b892fba530ec2fe211d314e> to <b72efea42d5f72e08e2774ae03027c246d41cab7>
|
- append patch file of upstream repository from <02338ce751a1ed5b9b892fba530ec2fe211d314e> to <b72efea42d5f72e08e2774ae03027c246d41cab7>
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user