[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#925974: unblock: im-config/0.42-1



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package im-config

(explain the reason for the unblock here)
This version should fix nasty performance bug as reported and summarized
in:
 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=925160#144

We don't want ssh into a typical system to be delayed 11 seconds.

(include/attach the debdiff against the package in testing)

I have to admit this is relatively large since it revert many previous
changes.  I have to admit this needs to be proofed by Yoshino-san who
was involved for the version in testing.  If I didn't screw-up while
cherry picking code snippets and changing glob, this should be better.

I made this in rush, so I am a bit worried.

If you go to git repo, that may be easier to see changes:
 https://salsa.debian.org/input-method-team/im-config
Please make sure to see its devel branch which is quasi-native style.
The master and upstream branches are used as gbp-style.

diff -Nru im-config-0.39/70-im-config im-config-0.42/70-im-config
--- im-config-0.39/70-im-config	2019-03-09 02:09:03.000000000 +0900
+++ im-config-0.42/70-im-config	2019-03-30 00:31:43.000000000 +0900
@@ -1,8 +1,12 @@
 #! /bin/sh
+# vim: set sts=4 expandtab:
+# systemd user-environment-generators
+#
+if ! [ -e "/usr/bin/ibus-daemon" ]; then 
+    if [ -r /etc/X11/Xsession.d/70im-config_launch ]; then
+        . /etc/X11/Xsession.d/70im-config_launch
 
-if [ -r /etc/X11/Xsession.d/70im-config_launch ]; then
-    . /etc/X11/Xsession.d/70im-config_launch
-
-    # always export variables even for manual configuration.
-    env | grep -E '^(IM_CONFIG_PHASE|XMODIFIERS|GTK_IM_MODULE|QT_IM_MODULE|QT4_IM_MODULE|CLUTTER_IM_MODULE)='
+        # always export variables even for manual configuration.
+        env | grep -E '^(IM_CONFIG_PHASE|XMODIFIERS|GTK_IM_MODULE|QT_IM_MODULE|QT4_IM_MODULE|CLUTTER_IM_MODULE|IM_CONFIG_SET_.*)='
+    fi
 fi
diff -Nru im-config-0.39/70im-config_launch im-config-0.42/70im-config_launch
--- im-config-0.39/70im-config_launch	2019-03-09 02:09:03.000000000 +0900
+++ im-config-0.42/70im-config_launch	2019-03-24 13:04:57.000000000 +0900
@@ -11,11 +11,6 @@
 
 IMLAUNCH=/usr/bin/im-launch
 
-if [ "$IM_CONFIG_PHASE" = 1 ]; then
-    IM_CONFIG_CHECK_ENV=1
-    export IM_CONFIG_CHECK_ENV
-fi
-
 # If already tweaked, keep hands off :-)
 # If im-config is removed but not purged, keep hands off :-)
 if [ -z "$XMODIFIERS" ] && \
@@ -26,6 +21,7 @@
    [ -r /usr/share/im-config/xinputrc.common ]; then
     IM_CONFIG_PHASE=1
     export IM_CONFIG_PHASE
+    if [ x != x"$ZSH_NAME" ]; then emulate -R sh ; fi
     # initialize all im-config common functions and parameters
     . /usr/share/im-config/xinputrc.common
     unset TEXTDOMAIN
@@ -42,6 +38,17 @@
     export QT_IM_MODULE
     export QT4_IM_MODULE
     export CLUTTER_IM_MODULE
+    # backup data for change check
+    IM_CONFIG_SET_XMODIFIERS="$XMODIFIERS"
+    IM_CONFIG_SET_GTK_IM_MODULE="$GTK_IM_MODULE"
+    IM_CONFIG_SET_QT_IM_MODULE="$QT_IM_MODULE"
+    IM_CONFIG_SET_QT4_IM_MODULE="$QT4_IM_MODULE"
+    IM_CONFIG_SET_CLUTTER_IM_MODULE="$CLUTTER_IM_MODULE"
+    export IM_CONFIG_SET_XMODIFIERS
+    export IM_CONFIG_SET_GTK_IM_MODULE
+    export IM_CONFIG_SET_QT_IM_MODULE
+    export IM_CONFIG_SET_QT4_IM_MODULE
+    export IM_CONFIG_SET_CLUTTER_IM_MODULE
 fi
 
 # Change $STARTUP string to im-launch while keeping the old $STARTUP string
diff -Nru im-config-0.39/data/21_ibus.rc im-config-0.42/data/21_ibus.rc
--- im-config-0.39/data/21_ibus.rc	2018-08-04 23:20:43.000000000 +0900
+++ im-config-0.42/data/21_ibus.rc	2019-03-30 01:04:29.000000000 +0900
@@ -13,50 +13,51 @@
 GTK_IM_MODULE=xim
 # use immodule only when available for both GTK 2.0 and 3.0
 IM_CONFIG_MARKER2=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-2.0/*/immodules/im-ibus.so' \
-        '/usr/lib/gtk-2.0/*/immodules/im-ibus.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER2=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-2.0/*/immodules/im-ibus.so \
+                        /usr/lib/gtk-2.0/*/immodules/im-ibus.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER2=1
+        break
+    fi
+done
 
 IM_CONFIG_MARKER3=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-3.0/*/immodules/im-ibus.so' \
-        '/usr/lib/gtk-3.0/*/immodules/im-ibus.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER3=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-3.0/*/immodules/im-ibus.so \
+                        /usr/lib/gtk-3.0/*/immodules/im-ibus.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER3=1
+        break
+    fi
+done
 if [ $IM_CONFIG_MARKER2 = 1 ] && [ $IM_CONFIG_MARKER3 = 1 ] ; then
     GTK_IM_MODULE=ibus
 fi
 
 QT4_IM_MODULE=xim
-# use immodule when available for Qt4
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt4/plugins/inputmethods/libqtim-ibus.so' \
-        '/usr/lib/qt4/plugins/inputmethods/libqtim-ibus.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT4_IM_MODULE=ibus
-fi
-
+# use immodule when available for Qt4 (Qt3 has been long dead)
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt4/plugins/inputmethods/libqtim-ibus.so\
+                        /usr/lib/qt4/plugins/inputmethods/libqtim-ibus.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT4_IM_MODULE=ibus
+        break
+    fi
+done
 QT_IM_MODULE=xim
 # use immodule when available for Qt5
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so' \
-        '/usr/lib/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT_IM_MODULE=ibus
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT_IM_MODULE=ibus
+        break
+    fi
+done
 
 CLUTTER_IM_MODULE=xim
 # use immodule when available for clutter
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/clutter-imconttext/immodules/im-ibus.so' \
-        '/usr/lib/clutter-imcontext/immodules/im-ibus.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    CLUTTER_IM_MODULE=ibus
-fi
-
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/clutter-imcontext/immodules/im-ibus.so \
+                        /usr/lib/clutter-imcontext/immodules/im-ibus.so; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        CLUTTER_IM_MODULE=ibus
+        break
+    fi
+done
 fi
diff -Nru im-config-0.39/data/22_fcitx.rc im-config-0.42/data/22_fcitx.rc
--- im-config-0.39/data/22_fcitx.rc	2018-08-04 16:53:10.000000000 +0900
+++ im-config-0.42/data/22_fcitx.rc	2019-03-30 01:05:15.000000000 +0900
@@ -6,64 +6,61 @@
     /usr/bin/fcitx -d 2> /dev/null &
 fi
 
-
 if [ "$IM_CONFIG_PHASE" = 1 ]; then
 # set variables for the plain XIM
 XMODIFIERS=@im=fcitx
 
-
 GTK_IM_MODULE=xim
 # use immodule only when available for both GTK 2.0 and 3.0
 IM_CONFIG_MARKER2=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-2.0/*/immodules/im-fcitx.so' \
-        '/usr/lib/gtk-2.0/*/immodules/im-fcitx.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER2=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-2.0/*/immodules/im-fcitx.so \
+                        /usr/lib/gtk-2.0/*/immodules/im-fcitx.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER2=1
+        break
+    fi
+done
 
 IM_CONFIG_MARKER3=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-3.0/*/immodules/im-fcitx.so' \
-        '/usr/lib/gtk-3.0/*/immodules/im-fcitx.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER3=1
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-3.0/*/immodules/im-fcitx.so \
+                        /usr/lib/gtk-3.0/*/immodules/im-fcitx.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER3=1
+        break
+    fi
+done
 if [ $IM_CONFIG_MARKER2 = 1 ] && [ $IM_CONFIG_MARKER3 = 1 ] ; then
     GTK_IM_MODULE=fcitx
 fi
 
-
 QT4_IM_MODULE=xim
 # use immodule when available for Qt4
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt4/plugins/inputmethods/qtim-fcitx.so' \
-        '/usr/lib/qt4/plugins/inputmethods/qtim-fcitx.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT4_IM_MODULE=fcitx
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt4/plugins/inputmethods/qtim-fcitx.so \
+                        /usr/lib/qt4/plugins/inputmethods/qtim-fcitx.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT4_IM_MODULE=fcitx
+        break
+    fi
+done
 
 QT_IM_MODULE=xim
 # use immodule when available for Qt5
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so' \
-        '/usr/lib/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT_IM_MODULE=fcitx
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT_IM_MODULE=fcitx
+        break
+    fi
+done
 
 
 # This is placeholder at this moment.
 CLUTTER_IM_MODULE=xim
 # use immodule when available for clutter
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/clutter-imcontext/immodules/im-fcitx.so' \
-        '/usr/lib/clutter-imconttext/immodules/im-fcitx.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    CLUTTER_IM_MODULE=fcitx
-fi
-
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/clutter-imcontext/immodules/im-fcitx.so \
+                        /usr/lib/clutter-imcontext/immodules/im-fcitx.so; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        CLUTTER_IM_MODULE=fcitx
+        break
+    fi
+done
 fi
diff -Nru im-config-0.39/data/24_uim.rc im-config-0.42/data/24_uim.rc
--- im-config-0.39/data/24_uim.rc	2019-03-09 02:09:03.000000000 +0900
+++ im-config-0.42/data/24_uim.rc	2019-03-30 01:05:24.000000000 +0900
@@ -28,45 +28,44 @@
 GTK_IM_MODULE=xim
 # use immodule only when available for both GTK 2.0 and 3.0
 IM_CONFIG_MARKER2=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-2.0/*/immodules/im-uim.so' \
-        '/usr/lib/gtk-2.0/*/immodules/im-uim.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER2=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-2.0/*/immodules/im-uim.so \
+                        /usr/lib/gtk-2.0/*/immodules/im-uim.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER2=1
+        break
+    fi
+done
 
 IM_CONFIG_MARKER3=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-3.0/*/immodules/im-uim.so' \
-        '/usr/lib/gtk-3.0/*/immodules/im-uim.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER3=1
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-3.0/*/immodules/im-uim.so \
+                        /usr/lib/gtk-3.0/*/immodules/im-uim.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER3=1
+        break
+    fi
+done
 if [ $IM_CONFIG_MARKER2 = 1 ] && [ $IM_CONFIG_MARKER3 = 1 ] ; then
     GTK_IM_MODULE=uim
 fi
 
-
 QT4_IM_MODULE=xim
 # use immodule when available for Qt4
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt4/plugins/inputmethods/libuiminputcontextplugin.so' \
-        '/usr/lib/qt4/plugins/inputmethods/libuiminputcontextplugin.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT4_IM_MODULE=uim
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt4/plugins/inputmethods/libuiminputcontextplugin.so \
+                        /usr/lib/qt4/plugins/inputmethods/libuiminputcontextplugin.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT4_IM_MODULE=uim
+        break
+    fi
+done
 QT_IM_MODULE=xim
 # use immodule when available for Qt5
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so' \
-        '/usr/lib/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT_IM_MODULE=uim
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT_IM_MODULE=uim
+        break
+    fi
+done
 
 
 CLUTTER_IM_MODULE=xim
-
 fi
diff -Nru im-config-0.39/data/25_hime.rc im-config-0.42/data/25_hime.rc
--- im-config-0.39/data/25_hime.rc	2018-08-04 16:53:10.000000000 +0900
+++ im-config-0.42/data/25_hime.rc	2019-03-30 01:05:32.000000000 +0900
@@ -14,45 +14,45 @@
 # use hime immodule only when available for both GTK 2.0 and 3.0
 
 IM_CONFIG_MARKER2=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-2.0/*/immodules/im-hime.so' \
-        '/usr/lib/gtk-2.0/*/immodules/im-hime.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER2=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-2.0/*/immodules/im-hime.so \
+                        /usr/lib/gtk-2.0/*/immodules/im-hime.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER2=1
+        break
+    fi
+done
 
 IM_CONFIG_MARKER3=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-3.0/*/immodules/im-hime.so' \
-        '/usr/lib/gtk-3.0/*/immodules/im-hime.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER3=1
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-3.0/*/immodules/im-hime.so \
+                        /usr/lib/gtk-3.0/*/immodules/im-hime.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER3=1
+        break
+    fi
+done
 if [ $IM_CONFIG_MARKER2 = 1 ] && [ $IM_CONFIG_MARKER3 = 1 ] ; then
     GTK_IM_MODULE=hime
 fi
 
-
 QT4_IM_MODULE=xim
 # use immodule when available for Qt4
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt4/plugins/inputmethods/im-hime.so' \
-        '/usr/lib/qt4/plugins/inputmethods/im-hime.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT4_IM_MODULE=hime
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt4/plugins/inputmethods/im-hime.so \
+                        /usr/lib/qt4/plugins/inputmethods/im-hime.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT4_IM_MODULE=hime
+        break
+    fi
+done
 
 QT_IM_MODULE=xim
 # use immodule when available for Qt5
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt5/plugins/platforminputcontexts/im-hime.so' \
-        '/usr/lib/qt5/plugins/platforminputcontexts/im-hime.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT_IM_MODULE=hime
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt5/plugins/platforminputcontexts/im-hime.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT_IM_MODULE=hime
+        break
+    fi
+done
 
 # hime has no clutter support, and qt3 immodule is not compiled.
 CLUTTER_IM_MODULE=xim
-
 fi
diff -Nru im-config-0.39/data/26_gcin.rc im-config-0.42/data/26_gcin.rc
--- im-config-0.39/data/26_gcin.rc	2018-08-04 16:53:10.000000000 +0900
+++ im-config-0.42/data/26_gcin.rc	2019-03-30 01:05:39.000000000 +0900
@@ -14,47 +14,45 @@
 # use gcin immodule only when available for both GTK 2.0 and 3.0
 
 IM_CONFIG_MARKER2=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-2.0/*/immodules/im-gcin.so' \
-        '/usr/lib/gtk-2.0/*/immodules/im-gcin.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER2=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-2.0/*/immodules/im-gcin.so \
+                        /usr/lib/gtk-2.0/*/immodules/im-gcin.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER2=1
+        break
+    fi
+done
 
 IM_CONFIG_MARKER3=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-3.0/*/immodules/im-gcin.so' \
-        '/usr/lib/gtk-3.0/*/immodules/im-gcin.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER3=1
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-3.0/*/immodules/im-gcin.so \
+                        /usr/lib/gtk-3.0/*/immodules/im-gcin.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER3=1
+        break
+    fi
+done
 if [ $IM_CONFIG_MARKER2 = 1 ] && [ $IM_CONFIG_MARKER3 = 1 ] ; then
     GTK_IM_MODULE=gcin
 fi
 
-
 QT4_IM_MODULE=xim
 # use immodule when available for Qt4
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt4/plugins/inputmethods/im-gcin.so' \
-        '/usr/lib/qt4/plugins/inputmethods/im-gcin.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT4_IM_MODULE=gcin
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt4/plugins/inputmethods/im-gcin.so \
+                        /usr/lib/qt4/plugins/inputmethods/im-gcin.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT4_IM_MODULE=gcin
+        break
+    fi
+done
 
 QT_IM_MODULE=xim
 # use immodule when available for Qt5
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt5/plugins/platforminputcontexts/libgcinplatforminputcontextplugin.so' \
-        '/usr/lib/qt5/plugins/platforminputcontexts/libgcinplatforminputcontextplugin.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT_IM_MODULE=gcin
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt5/plugins/platforminputcontexts/libgcinplatforminputcontextplugin.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT_IM_MODULE=gcin
+        break
+    fi
+done
 
 # gcin has no clutter support, and qt3 immodule is not compiled.
 CLUTTER_IM_MODULE=xim
-
-
 fi
diff -Nru im-config-0.39/data/48_scim.rc im-config-0.42/data/48_scim.rc
--- im-config-0.39/data/48_scim.rc	2018-08-04 16:53:10.000000000 +0900
+++ im-config-0.42/data/48_scim.rc	2019-03-30 01:05:55.000000000 +0900
@@ -14,70 +14,88 @@
 
 # use scim immodule only when available for both GTK 2.0 and 3.0
 IM_CONFIG_MARKER2=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-2.0/*/immodules/im-scim.so' \
-        '/usr/lib/gtk-2.0/*/immodules/im-scim.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER2=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-2.0/*/immodules/im-scim.so \
+                        /usr/lib/gtk-2.0/*/immodules/im-scim.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER2=1
+        break
+    fi
+done
 
 IM_CONFIG_MARKER3=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-3.0/*/immodules/im-scim.so' \
-        '/usr/lib/gtk-3.0/*/immodules/im-scim.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER3=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-3.0/*/immodules/im-scim.so \
+                        /usr/lib/gtk-3.0/*/immodules/im-scim.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER3=1
+        break
+    fi
+done
 
 if [ $IM_CONFIG_MARKER2 = 1 ] && [ $IM_CONFIG_MARKER3 = 1 ] ; then
     GTK_IM_MODULE=scim
 fi
 
-
 # Backport support
 # use scim-bridge immodule only when available for both GTK 2.0 and 3.0
 IM_CONFIG_MARKER2=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-2.0/*/immodules/im-scim-bridge.so' \
-        '/usr/lib/gtk-2.0/*/immodules/im-scim-bridge.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER2=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-2.0/*/immodules/im-scim-bridge.so \
+                        /usr/lib/gtk-2.0/*/immodules/im-scim-bridge.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER2=1
+        break
+    fi
+done
 
 IM_CONFIG_MARKER3=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-3.0/*/immodules/im-scim-bridge.so' \
-        '/usr/lib/gtk-3.0/*/immodules/im-scim-bridge.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER3=1
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-3.0/*/immodules/im-scim-bridge.so \
+                        /usr/lib/gtk-3.0/*/immodules/im-scim-bridge.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER3=1
+        break
+    fi
+done
 if [ $IM_CONFIG_MARKER2 = 1 ] && [ $IM_CONFIG_MARKER3 = 1 ] ; then
     GTK_IM_MODULE=scim-bridge
 fi
 
-
-# Qt5 support not exist yet; Qt3 support is dropped already
 QT_IM_MODULE=xim
 
+# Backport support
+# use immodule when available for Qt3
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt3/plugins/inputmethods/libqscim.so \
+                        /usr/lib/qt3/plugins/inputmethods/libqscim.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT_IM_MODULE=scim
+        break
+    fi
+done
+
+# use im-scim-bridge when available for Qt3
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt3/plugins/inputmethods/im-scim-bridge.so \
+                        /usr/lib/qt3/plugins/inputmethods/im-scim-bridge.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT_IM_MODULE=scim-bridge
+        break
+    fi
+done
 
 QT4_IM_MODULE=xim
 # use immodule when available for Qt4
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt4/plugins/inputmethods/im-scim.so' \
-        '/usr/lib/qt4/plugins/inputmethods/im-scim.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT4_IM_MODULE=scim
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt4/plugins/inputmethods/im-scim.so \
+                        /usr/lib/qt4/plugins/inputmethods/im-scim.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT4_IM_MODULE=scim
+        break
+    fi
+done
 
 CLUTTER_IM_MODULE=xim
 # use immodule when available for clutter
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/clutter-imconttext/immodules/im-scim.so' \
-        '/usr/lib/clutter-imcontext/immodules/im-scim.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    CLUTTER_IM_MODULE=scim
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/clutter-imcontext/immodules/im-scim.so \
+                        /usr/lib/clutter-imcontext/immodules/im-scim.so; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        CLUTTER_IM_MODULE=scim
+        break
+    fi
+done
 fi
diff -Nru im-config-0.39/data/50_hangul.rc im-config-0.42/data/50_hangul.rc
--- im-config-0.39/data/50_hangul.rc	2018-08-04 16:53:10.000000000 +0900
+++ im-config-0.42/data/50_hangul.rc	2019-03-30 01:06:03.000000000 +0900
@@ -12,34 +12,35 @@
 GTK_IM_MODULE=xim
 # use gtk-im-libthai only when available for both GTK 2.0 and 3.0
 IM_CONFIG_MARKER2=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-2.0/*/immodules/im-hangul.so' \
-        '/usr/lib/gtk-2.0/*/immodules/im-hangul.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER2=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-2.0/*/immodules/im-hangul.so \
+                        /usr/lib/gtk-2.0/*/immodules/im-hangul.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER2=1
+        break
+    fi
+done
 
 IM_CONFIG_MARKER3=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-3.0/*/immodules/im-hangul.so' \
-        '/usr/lib/gtk-3.0/*/immodules/im-hangul.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER3=1
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-3.0/*/immodules/im-hangul.so \
+                        /usr/lib/gtk-3.0/*/immodules/im-hangul.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER3=1
+        break
+    fi
+done
 if [ $IM_CONFIG_MARKER2 = 1 ] && [ $IM_CONFIG_MARKER3 = 1 ] ; then
     GTK_IM_MODULE=hangul2
 fi
 
 # No IM modules for Qt and Clutter for now
 QT4_IM_MODULE=xim
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/qt4/plugins/inputmethods/libqimhangul.so' \
-        '/usr/lib/qt4/plugins/inputmethods/libqimhangul.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    QT4_IM_MODULE=hangul2
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/qt4/plugins/inputmethods/libqimhangul.so \
+                        /usr/lib/qt4/plugins/inputmethods/libqimhangul.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        QT4_IM_MODULE=hangul2
+        break
+    fi
+done
 
 CLUTTER_IM_MODULE=xim
-
 fi
diff -Nru im-config-0.39/data/60_thai.rc im-config-0.42/data/60_thai.rc
--- im-config-0.39/data/60_thai.rc	2018-08-04 16:53:10.000000000 +0900
+++ im-config-0.42/data/60_thai.rc	2019-03-30 01:06:10.000000000 +0900
@@ -8,29 +8,27 @@
 GTK_IM_MODULE=xim
 # use gtk-im-libthai only when available for both GTK 2.0 and 3.0
 IM_CONFIG_MARKER2=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-2.0/*/immodules/im-thai-libthai.so' \
-        '/usr/lib/gtk-2.0/*/immodules/im-thai-libthai.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER2=1
-fi
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-2.0/*/immodules/im-thai-libthai.so \
+                        /usr/lib/gtk-2.0/*/immodules/im-thai-libthai.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER2=1
+        break
+    fi
+done
 
 IM_CONFIG_MARKER3=0
-IM_CONFIG_MARKER="$(imconfig_find_files_with_prefixpath_glob /usr/lib \
-        '/usr/lib/*/gtk-3.0/*/immodules/im-thai-libthai.so' \
-        '/usr/lib/gtk-3.0/*/immodules/im-thai-libthai.so')"
-if [ "x${IM_CONFIG_MARKER}" != "x" ]; then
-    IM_CONFIG_MARKER3=1
-fi
-
+for IM_CONFIG_MARKER in /usr/lib/*-*-*/gtk-3.0/*/immodules/im-thai-libthai.so \
+                        /usr/lib/gtk-3.0/*/immodules/im-thai-libthai.so ; do
+    if [ -e $IM_CONFIG_MARKER ]; then
+        IM_CONFIG_MARKER3=1
+        break
+    fi
+done
 if [ $IM_CONFIG_MARKER2 = 1 ] && [ $IM_CONFIG_MARKER3 = 1 ] ; then
     GTK_IM_MODULE=thai-libthai
 fi
 
-
 # No IM modules for Qt and Clutter for now
 QT_IM_MODULE=xim
 CLUTTER_IM_MODULE=xim
-
-
 fi
diff -Nru im-config-0.39/debian/changelog im-config-0.42/debian/changelog
--- im-config-0.39/debian/changelog	2019-03-09 02:09:41.000000000 +0900
+++ im-config-0.42/debian/changelog	2019-03-30 00:55:07.000000000 +0900
@@ -1,3 +1,39 @@
+im-config (0.42-1) unstable; urgency=medium
+
+  * Better fix to reopened #925160 by:
+    - Fix glob to use "*-*-*"
+    - Use "emulate -R sh" trick (not script with "find") for zsh
+    - Save environment variables to avoid running the problematic 
+      slow code twice
+    - Check the existence of ibus-daemon to disable 
+      systemd.environment-generator script.
+    - Separate wayland code from Xsession ones.
+    - Move one line code from desktop to separated wayland code.
+  * The above combination.  Closes: #925160
+
+ -- Osamu Aoki <osamu@debian.org>  Sat, 30 Mar 2019 00:55:07 +0900
+
+im-config (0.41-1) unstable; urgency=medium
+
+  * Refine environment variable handling.
+  * Add autopkgtest.
+
+ -- Osamu Aoki <osamu@debian.org>  Sun, 24 Mar 2019 11:37:32 +0900
+
+im-config (0.40-1) unstable; urgency=medium
+
+  [ YOSHINO Yoshihito ]
+  * Speed up by avoid using "find" but work around sddm+zsh
+    problem originally reported at Bug#905129.
+
+  [ Osamu Aoki ]
+  * Disable im-config for Gnome on wayland by default.
+    Closes: #925160, #877312
+  * Add im-launch-wayland to simplify code.
+  * Avoid running time consuming code section twice.
+
+ -- Osamu Aoki <osamu@debian.org>  Sun, 24 Mar 2019 05:03:35 +0900
+
 im-config (0.39-1) unstable; urgency=medium
 
   [ YOSHINO Yoshihito ]
diff -Nru im-config-0.39/debian/control im-config-0.42/debian/control
--- im-config-0.39/debian/control	2018-08-03 22:18:44.000000000 +0900
+++ im-config-0.42/debian/control	2019-03-24 13:04:57.000000000 +0900
@@ -4,7 +4,7 @@
 Maintainer: Debian Input Method Team <debian-input-method@lists.debian.org>
 Uploaders: Osamu Aoki <osamu@debian.org>
 Build-Depends: debhelper (>= 11~)
-Standards-Version: 4.2.0
+Standards-Version: 4.3.0
 Vcs-Git: https://salsa.debian.org/input-method-team/im-config.git
 Vcs-browser: https://salsa.debian.org/input-method-team/im-config
 
diff -Nru im-config-0.39/debian/install im-config-0.42/debian/install
--- im-config-0.39/debian/install	2019-03-09 02:09:03.000000000 +0900
+++ im-config-0.42/debian/install	2019-03-24 13:04:57.000000000 +0900
@@ -5,7 +5,8 @@
 im-config              usr/bin
 im-config.desktop      usr/share/applications
 im-launch              usr/bin
-im-launch.desktop      etc/xdg/autostart
+im-launch-wayland      usr/bin
+im-launch-wayland.desktop etc/xdg/autostart
 po/locale/*            usr/share/locale
 share/im-config.common usr/share/im-config
 share/xinputrc.common  usr/share/im-config
diff -Nru im-config-0.39/debian/manpages im-config-0.42/debian/manpages
--- im-config-0.39/debian/manpages	2018-08-03 22:18:44.000000000 +0900
+++ im-config-0.42/debian/manpages	2019-03-24 13:04:57.000000000 +0900
@@ -1,2 +1,3 @@
 im-config.8
+im-launch-wayland.1
 im-launch.1
diff -Nru im-config-0.39/debian/README.Debian im-config-0.42/debian/README.Debian
--- im-config-0.39/debian/README.Debian	2018-08-05 01:26:03.000000000 +0900
+++ im-config-0.42/debian/README.Debian	2019-03-30 00:22:39.000000000 +0900
@@ -1,9 +1,17 @@
 im-config for Debian                     Osamu Aoki <osamu@debian.org>
 
-If you are using systemd, relogin with GDM may not restart the X session
-to update the system with the newly set im-config parameters.  You have
-to restart the X session explicitly using the service(8) command (or
-reboot the system).
+For Gnome on wayland environment with ibus package installed, im-config
+is disabled.  Gnome supports ibus internally.  You need to enable each
+input engine via Gnome "Settings" -> "Region & Languages" --> "Input
+Sources".
+
+For Gnome on wayland environment without ibus package installed,
+im-config is enabled.  If you install uim, fcitx, or scim, you can use
+them via im-config.
+
+In order to ensure im-config settings to be updated, you should restart
+the session reboot the system.  (Yes, you should be able to use
+systemctl but it is prone for problems.)
 
 This documents only top down views of the im-config package and how it is
 used with the input method packages.  You should consult the im-config(8)
@@ -152,7 +160,8 @@
 parts:
   IM_CONFIG_PHASE = 1  : export required environment variables,
                          launched from 70im-config_launch
-  IM_CONFIG_PHASE = 2  : daemon start up code, launched via im-launch
+  IM_CONFIG_PHASE = 2  : daemon start up code, launched via
+                         im-launch or im-launch-wayland
 
 *.conf files contain the definition of following variables and functions:
 Variables:
diff -Nru im-config-0.39/debian/tests/control im-config-0.42/debian/tests/control
--- im-config-0.39/debian/tests/control	1970-01-01 09:00:00.000000000 +0900
+++ im-config-0.42/debian/tests/control	2019-03-24 13:04:57.000000000 +0900
@@ -0,0 +1,2 @@
+Test-Command: im-config -a 2>&1
+Depends: @
diff -Nru im-config-0.39/im-config im-config-0.42/im-config
--- im-config-0.39/im-config	2018-08-04 08:57:46.000000000 +0900
+++ im-config-0.42/im-config	2019-03-24 13:04:57.000000000 +0900
@@ -55,6 +55,7 @@
         set $IM_CONFIG_SETMODE
         ;;
     -a)
+        IM_CONFIG_LIST=true
         IM_CONFIG_ALL=true
         ;;
     -c)
diff -Nru im-config-0.39/im-config.8 im-config-0.42/im-config.8
--- im-config-0.39/im-config.8	2018-08-03 22:18:44.000000000 +0900
+++ im-config-0.42/im-config.8	2019-03-24 13:04:57.000000000 +0900
@@ -107,7 +107,7 @@
 Print the localized description of the input method \fI<input method name>\fP to
 STDOUT.
 .PP
-The \fB-l\fP, \fB-m\fP, \fB-n\fP, and \fB-o\fP options are meant to be API for other
+The \fB-a\fP, \fB-l\fP, \fB-m\fP, \fB-n\fP, and \fB-o\fP options are meant to be API for other
 programs to control the im-config.
 
 .SH "DESCRIPTION"
diff -Nru im-config-0.39/im-launch im-config-0.42/im-launch
--- im-config-0.39/im-launch	2019-03-09 02:09:03.000000000 +0900
+++ im-config-0.42/im-launch	2019-03-24 13:04:57.000000000 +0900
@@ -13,29 +13,23 @@
     exit 1
 fi
 
-if [ "$IM_CONFIG_CHECK_ENV" = 1 ] && \
-   [ "$IM_CONFIG_PHASE" = 1 ]; then
-    # If tweaked, keep hands off :-)
-    if ! env -i \
-        IM_CONFIG_SET_XMODIFIERS="$XMODIFIERS" \
-        IM_CONFIG_SET_GTK_IM_MODULE="$GTK_IM_MODULE" \
-        IM_CONFIG_SET_QT_IM_MODULE="$QT_IM_MODULE" \
-        IM_CONFIG_SET_QT4_IM_MODULE="$QT4_IM_MODULE" \
-        IM_CONFIG_SET_CLUTTER_IM_MODULE="$CLUTTER_IM_MODULE" \
-        sh -c '. /etc/X11/Xsession.d/70im-config_launch
-        [ "$IM_CONFIG_SET_XMODIFIERS" = "$XMODIFIERS" ] &&
-        [ "$IM_CONFIG_SET_GTK_IM_MODULE" = "$GTK_IM_MODULE" ] && \
-        [ "$IM_CONFIG_SET_QT_IM_MODULE" = "$QT_IM_MODULE" ] && \
-        [ "$IM_CONFIG_SET_QT4_IM_MODULE" = "$QT4_IM_MODULE" ] && \
-        [ "$IM_CONFIG_SET_CLUTTER_IM_MODULE" = "$CLUTTER_IM_MODULE" ]'; then
-        unset IM_CONFIG_PHASE
-    fi
-    unset IM_CONFIG_CHECK_ENV
-fi
-
 IM_START_SESSION="$@"
 
 # If already tweaked, keep hands off :-)
+# If tweaked, keep hands off :-)
+if  [ "$IM_CONFIG_SET_XMODIFIERS" != "$XMODIFIERS" ] || \
+    [ "$IM_CONFIG_SET_GTK_IM_MODULE" != "$GTK_IM_MODULE" ] || \
+    [ "$IM_CONFIG_SET_QT_IM_MODULE" != "$QT_IM_MODULE" ] || \
+    [ "$IM_CONFIG_SET_QT4_IM_MODULE" != "$QT4_IM_MODULE" ] || \
+    [ "$IM_CONFIG_SET_CLUTTER_IM_MODULE" != "$CLUTTER_IM_MODULE" ]; then
+    # don't launch daemon if tweaked
+    unset IM_CONFIG_PHASE
+fi
+unset IM_CONFIG_SET_XMODIFIERS
+unset IM_CONFIG_SET_GTK_IM_MODULE
+unset IM_CONFIG_SET_QT_IM_MODULE
+unset IM_CONFIG_SET_QT4_IM_MODULE
+unset IM_CONFIG_SET_CLUTTER_IM_MODULE
 # If im-config is removed but not purged, keep hands off :-)
 if [ "$IM_CONFIG_PHASE" = 1 ]; then
     IM_CONFIG_PHASE=2
diff -Nru im-config-0.39/im-launch.desktop im-config-0.42/im-launch.desktop
--- im-config-0.39/im-launch.desktop	2019-03-09 02:09:03.000000000 +0900
+++ im-config-0.42/im-launch.desktop	1970-01-01 09:00:00.000000000 +0900
@@ -1,5 +0,0 @@
-[Desktop Entry]
-Name=im-launch
-Exec=sh -c 'if [ "x$XDG_SESSION_TYPE" = "xwayland" ]; then exec env IM_CONFIG_CHECK_ENV=1 im-launch true; fi'
-TryExec=im-launch
-Type=Application
diff -Nru im-config-0.39/im-launch-wayland im-config-0.42/im-launch-wayland
--- im-config-0.39/im-launch-wayland	1970-01-01 09:00:00.000000000 +0900
+++ im-config-0.42/im-launch-wayland	2019-03-30 00:33:33.000000000 +0900
@@ -0,0 +1,48 @@
+#!/bin/sh
+# vim: set sts=4 expandtab:
+# Copyright (C) 2012 Osamu Aoki <osamu@debian.org>
+# Copyright (C) 2012 Aron Xu <aron@debian.org>
+# GNU General Public License version 2 or later.
+#
+# Launch input method configuration script for wayland
+# to start daemons from desktop file
+
+if ! [ -e /usr/bin/ibus-daemon ] && \ 
+   [ "x$XDG_SESSION_TYPE" = "xwayland" ] && \
+   [ $IM_CONFIG_PHASE = 1 ]; then
+    # If tweaked, keep hands off :-)
+    if  [ "$IM_CONFIG_SET_XMODIFIERS" != "$XMODIFIERS" ] || \
+        [ "$IM_CONFIG_SET_GTK_IM_MODULE" != "$GTK_IM_MODULE" ] || \
+        [ "$IM_CONFIG_SET_QT_IM_MODULE" != "$QT_IM_MODULE" ] || \
+        [ "$IM_CONFIG_SET_QT4_IM_MODULE" != "$QT4_IM_MODULE" ] || \
+        [ "$IM_CONFIG_SET_CLUTTER_IM_MODULE" != "$CLUTTER_IM_MODULE" ]; then
+        # don't launch daemon if tweaked
+        unset IM_CONFIG_PHASE
+    fi
+    unset IM_CONFIG_SET_XMODIFIERS
+    unset IM_CONFIG_SET_GTK_IM_MODULE
+    unset IM_CONFIG_SET_QT_IM_MODULE
+    unset IM_CONFIG_SET_QT4_IM_MODULE
+    unset IM_CONFIG_SET_CLUTTER_IM_MODULE
+fi
+
+# Unless requested, keep hands off :-) by IM_CONFIG_PHASE
+# If im-config is removed but not purged, keep hands off :-)
+if ! [ -e /usr/bin/ibus-daemon ] && \ 
+   [ "x$XDG_SESSION_TYPE" = "xwayland" ] && \
+   [ $IM_CONFIG_PHASE = 1 ] && \
+   [ -r /usr/share/im-config/xinputrc.common ]; then
+    IM_CONFIG_PHASE=2
+    # initialize all im-config common functions and parameters
+    . /usr/share/im-config/xinputrc.common
+    unset TEXTDOMAIN
+    unset TEXTDOMAINDIR
+    # source the first found configuration file
+    if [ -r "$IM_CONFIG_XINPUTRC_USR" ]; then
+        . $IM_CONFIG_XINPUTRC_USR
+    elif [ -r "$IM_CONFIG_XINPUTRC_SYS" ]; then
+        . $IM_CONFIG_XINPUTRC_SYS
+    fi
+    unset IM_CONFIG_PHASE
+fi
+
diff -Nru im-config-0.39/im-launch-wayland.1 im-config-0.42/im-launch-wayland.1
--- im-config-0.39/im-launch-wayland.1	1970-01-01 09:00:00.000000000 +0900
+++ im-config-0.42/im-launch-wayland.1	2019-03-24 13:04:57.000000000 +0900
@@ -0,0 +1,29 @@
+.TH IM\-LAUNCH 1
+.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection
+.\" other parms are allowed: see man(7), man(1)
+.SH NAME
+im\-launch\-wayland \- launch input method for wayland
+.SH SYNOPSIS
+.TP
+.B im\-launch\-wayland
+
+.SH DESCRIPTION
+
+The \fBim\-launch\-wayland\fP command is used to start a input method daemon
+for non-ibus input method. (If exists, ibus is started automatically 
+by gnome-session )
+
+This command is usually not invoked from the console of a normal user but
+is normally invoked by the desktop file.
+
+.SH "TROUBLESHOOT"
+If you have any problem, please file a bug report to the im\-config package
+using reportbug(1) describing your resolution experience.
+
+.SH "SEE ALSO"
+.BR im-config(8),
+.BR /usr/share/doc/im\-config/README.Debian.gz
+.SH AUTHOR
+This manual page was written by Aron Xu <aron@debian.org>, and Osamu
+Aoki <osamu@debian.org> for the Debian GNU/Linux system (but may be used
+by others).
diff -Nru im-config-0.39/im-launch-wayland.desktop im-config-0.42/im-launch-wayland.desktop
--- im-config-0.39/im-launch-wayland.desktop	1970-01-01 09:00:00.000000000 +0900
+++ im-config-0.42/im-launch-wayland.desktop	2019-03-24 13:04:57.000000000 +0900
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Name=im-launch-wayland
+Exec=im-launch-wayland
+TryExec=im-launch
+Type=Application
diff -Nru im-config-0.39/share/xinputrc.common.in im-config-0.42/share/xinputrc.common.in
--- im-config-0.39/share/xinputrc.common.in	2018-08-03 22:18:44.000000000 +0900
+++ im-config-0.42/share/xinputrc.common.in	2019-03-24 13:04:57.000000000 +0900
@@ -109,27 +109,3 @@
         autobase_im
     fi
 }
-
-# imconfig_find_files_with_prefixpath_glob
-#    check if files exist with given array of strings (shell glob acceptable)
-#    accept a prefix where "find" is executed on, with a list of strings of
-#    glob-enabled absolute file path.
-#    return a string of matched files, using absolute path, separated with
-#    newline. The string is not ended with newline.
-#
-#    Example:
-#        imconfig_find_files_with_prefixpath_glob /usr/lib \
-#            '/usr/lib/*/gtk-2.0/*/im_fcitx.so' \
-#            '/usr/lib/gtk-2.0/*/im_fcitx.so'
-imconfig_find_files_with_prefixpath_glob () {
-    _PREFIX_PATH="$1"
-    shift
-    _RESULT=""
-    for _STRING_WITH_GLOB in "$@"; do
-        _TMP_RESULT="$(find "${_PREFIX_PATH}" -path "${_STRING_WITH_GLOB}")"
-        if [ "x${_TMP_RESULT}" != "x" ]; then
-            _RESULT="$(printf '%s\n%s' "${_RESULT}" "${_TMP_RESULT}")"
-        fi
-    done
-    printf '%s' "${_RESULT}"
-}


unblock im-config/0.42-1

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (500, 'testing'), (10, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled


Reply to: