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

Bug#1032579: unblock: gnome-desktop/43.2-2



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: gnome-desktop@packages.debian.org, debian-japanese@lists.debian.org
Control: affects -1 + src:gnome-desktop

Please unblock package gnome-desktop

[ Reason ]
Make default input method for ja_JP match what tasksel installs
(#1029821, grave)

[ Impact ]
If not accepted, Japanese-speaking users will find that gnome-initial-setup
leaves them without a working input method, unless they happen to have
installed ibus-anthy separately. This is because GNOME upstream prefers
to default to ibus-anthy, but Japanese-speaking Debian/Ubuntu users say
that ibus-mozc is a higher-quality default on architectures where it
is built, and therefore that's what task-japanese-gnome-desktop pulls in.

If this change is not accepted, then we should change tasksel to make
task-japanese-gnome-desktop pull in ibus-anthy instead of ibus-mozc
(<https://salsa.debian.org/installer-team/tasksel/-/merge_requests/25>);
but Japanese-speaking users have told us that defaulting to ibus-anthy
would be unacceptable, so we have not gone that route.

[ Tests ]
Manually tested via the steps in debian/README.source of unstable's
gnome-initial-setup, both with ibus-mozc installed (reflecting what will
happen on x86 and ARM) and with only ibus-anthy installed (reflecting
what will happen on ppc64el and s390x, where ibus-mozc is unavailable
and ibus-anthy is the best thing available for Japanese users).

Also carried out an installation of bookworm in Japanese (using a
parallel installation in English as a reference for which button does
what) and before logging in to GNOME for the first time, logged in via
tty to upgrade gnome-initial-setup and all packages from src:gnome-desktop
to their unstable versions.

I can't read or write Japanese, so I can't tell the difference between
anthy and mozc; but in the Japanese installation,
`gsettings list-recursively` contained

    org.gnome.desktop.input-sources sources [('xkb', 'jp'), ('ibus', 'mozc-jp')]

which seems like it's probably the desired result. Also, the option
selected in GNOME's menu of input methods by default is
"日本語 (Mozc)" which again seems plausibly correct.

[ Risks ]
The core change here is trivial: it's just replacing the name of one
IBus input method with another.

The hack to fall back to ibus-anthy if ibus-mozc isn't installed is
less trivial, but still straightforward. I wish we didn't have to do this,
but from what I understand of the problem, we need this for unconventional
CPU architectures.

If the accompanying gnome-initial-setup change (see separate unblock
request) is not accepted, then the UI will be sub-optimal (the ibus-mozc
option will appear as "mozc-jp" in the UI instead of the intended
"Japanese (Mozc)"), but that's not actually a regression: the same thing
happens today for ibus-anthy.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

unblock gnome-desktop/43.2-2
diffstat for gnome-desktop-43.2 gnome-desktop-43.2

 debian/changelog                                                               |   25 ++++++
 debian/control                                                                 |    6 -
 debian/control.in                                                              |    4 -
 debian/libgnome-desktop-doc.lintian-overrides                                  |    2 
 debian/patches/Fall-back-to-ibus-anthy-if-ibus-mozc-jp-is-unavailable.patch    |   39 ++++++++++
 debian/patches/Use-mozc-as-the-default-input-source-for-Japanese.patch         |   34 ++++++++
 debian/patches/languages-Look-at-LOCPATH-before-compile-time-LIBLOCALEDI.patch |    8 +-
 debian/patches/series                                                          |    2 
 libgnome-desktop/default-input-sources.h                                       |    2 
 libgnome-desktop/gnome-languages.c                                             |    9 ++
 10 files changed, 119 insertions(+), 12 deletions(-)

diff -Nru gnome-desktop-43.2/debian/changelog gnome-desktop-43.2/debian/changelog
--- gnome-desktop-43.2/debian/changelog	2023-02-15 16:15:51.000000000 +0000
+++ gnome-desktop-43.2/debian/changelog	2023-03-05 18:11:37.000000000 +0000
@@ -1,3 +1,28 @@
+gnome-desktop (43.2-2) unstable; urgency=medium
+
+  * Team upload
+  * d/control.in: Fix Vcs-Git and Vcs-Browser syntax
+  * d/p/Use-mozc-as-the-default-input-source-for-Japanese.patch:
+    Change the default input method for Japanese to mozc-jp, matching
+    tasksel.
+    mozc is pulled in as the most-preferred input method by
+    task-japanese-desktop (uim-mozc) and task-japanese-gnome-desktop
+    (ibus-mozc) on the architectures where it is available, notably
+    x86 and ARM. There seems to be consensus among Japanese-speaking
+    Debian and Ubuntu users that mozc is the best default input method,
+    so make the default in gnome-initial-setup consistent with that.
+    Thanks to YOSHINO Yoshihito (Closes: #1029821)
+  * d/p/Fall-back-to-ibus-anthy-if-ibus-mozc-jp-is-unavailable.patch:
+    Fall back to ibus-anthy if ibus-mozc isn't available. According
+    to discussion on #1029821, mozc only supports little-endian CPU
+    architectures (for example i386 and arm64) and does not support
+    big-endian CPU architectures (for example powerpc and s390x), so we
+    need to be prepared to fall back.
+  * d/libgnome-desktop-doc.lintian-overrides: Remove unused override.
+    This is unnecessary now that #970275 was fixed.
+
+ -- Simon McVittie <smcv@debian.org>  Sun, 05 Mar 2023 18:11:37 +0000
+
 gnome-desktop (43.2-1) unstable; urgency=medium
 
   * New upstream release
diff -Nru gnome-desktop-43.2/debian/control gnome-desktop-43.2/debian/control
--- gnome-desktop-43.2/debian/control	2023-02-15 16:15:51.000000000 +0000
+++ gnome-desktop-43.2/debian/control	2023-03-05 18:11:37.000000000 +0000
@@ -6,7 +6,7 @@
 Section: gnome
 Priority: optional
 Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
-Uploaders: Jeremy Bicha <jbicha@ubuntu.com>, Sjoerd Simons <sjoerd@debian.org>
+Uploaders: Jeremy Bicha <jbicha@ubuntu.com>
 Build-Depends: debhelper-compat (= 13),
                dh-sequence-gir,
                dh-sequence-gnome (>= 0.22.7~),
@@ -34,8 +34,8 @@
                xkb-data,
                xvfb <!nocheck>
 Rules-Requires-Root: no
-Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-desktop -b debian/bookworm
-Vcs-Git: https://salsa.debian.org/gnome-team/gnome-desktop.git/tree/debian/bookworm
+Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-desktop/tree/debian/bookworm
+Vcs-Git: https://salsa.debian.org/gnome-team/gnome-desktop.git -b debian/bookworm
 Standards-Version: 4.6.1
 
 Package: gnome-desktop3-data
diff -Nru gnome-desktop-43.2/debian/control.in gnome-desktop-43.2/debian/control.in
--- gnome-desktop-43.2/debian/control.in	2023-02-15 16:15:51.000000000 +0000
+++ gnome-desktop-43.2/debian/control.in	2023-03-05 18:11:37.000000000 +0000
@@ -30,8 +30,8 @@
                xkb-data,
                xvfb <!nocheck>
 Rules-Requires-Root: no
-Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-desktop -b debian/bookworm
-Vcs-Git: https://salsa.debian.org/gnome-team/gnome-desktop.git/tree/debian/bookworm
+Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-desktop/tree/debian/bookworm
+Vcs-Git: https://salsa.debian.org/gnome-team/gnome-desktop.git -b debian/bookworm
 Standards-Version: 4.6.1
 
 Package: gnome-desktop3-data
diff -Nru gnome-desktop-43.2/debian/libgnome-desktop-doc.lintian-overrides gnome-desktop-43.2/debian/libgnome-desktop-doc.lintian-overrides
--- gnome-desktop-43.2/debian/libgnome-desktop-doc.lintian-overrides	2023-02-15 16:15:51.000000000 +0000
+++ gnome-desktop-43.2/debian/libgnome-desktop-doc.lintian-overrides	1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-# https://bugs.debian.org/970275
-package-contains-documentation-outside-usr-share-doc [usr/share/gtk-doc/html/*]
diff -Nru gnome-desktop-43.2/debian/patches/Fall-back-to-ibus-anthy-if-ibus-mozc-jp-is-unavailable.patch gnome-desktop-43.2/debian/patches/Fall-back-to-ibus-anthy-if-ibus-mozc-jp-is-unavailable.patch
--- gnome-desktop-43.2/debian/patches/Fall-back-to-ibus-anthy-if-ibus-mozc-jp-is-unavailable.patch	1970-01-01 01:00:00.000000000 +0100
+++ gnome-desktop-43.2/debian/patches/Fall-back-to-ibus-anthy-if-ibus-mozc-jp-is-unavailable.patch	2023-03-05 18:11:37.000000000 +0000
@@ -0,0 +1,39 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Sun, 5 Mar 2023 12:52:01 +0000
+Subject: Fall back to ibus:anthy if ibus:mozc-jp is unavailable
+
+According to discussion on #1029821, mozc only supports little-endian
+CPU architectures (for example i386 and arm64) and does not support
+big-endian CPU architectures (for example powerpc and s390x), which
+is why task-japanese-desktop and task-japanese-gnome-desktop have a
+fallback dependency on uim-anthy and ibus-anthy respectively. Reflect
+this by falling back to anthy if mozc doesn't appear to be installed.
+
+Bug-Debian: https://bugs.debian.org/1029821
+Origin: vendor, Debian
+Signed-off-by: Simon McVittie <smcv@debian.org>
+Forwarded: no
+---
+ libgnome-desktop/gnome-languages.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/libgnome-desktop/gnome-languages.c b/libgnome-desktop/gnome-languages.c
+index 2d25817..4d3e737 100644
+--- a/libgnome-desktop/gnome-languages.c
++++ b/libgnome-desktop/gnome-languages.c
+@@ -1448,6 +1448,15 @@ gnome_get_input_source_from_locale (const char  *locale,
+         if (dis) {
+                 *type = dis->type;
+                 *id = dis->id;
++
++                /* We default to ibus:mozc-jp for Japanese locales, but mozc
++                 * isn't available for all CPU architectures. Fall back to
++                 * ibus:anthy if necessary. */
++                if (g_strcmp0 (*type, "ibus") == 0
++                    && g_strcmp0 (*id, "mozc-jp") == 0
++                    && !g_file_test ("/usr/share/ibus/component/mozc.xml", G_FILE_TEST_EXISTS)) {
++                        *id = "anthy";
++                }
+         }
+         return dis != NULL;
+ }
diff -Nru gnome-desktop-43.2/debian/patches/languages-Look-at-LOCPATH-before-compile-time-LIBLOCALEDI.patch gnome-desktop-43.2/debian/patches/languages-Look-at-LOCPATH-before-compile-time-LIBLOCALEDI.patch
--- gnome-desktop-43.2/debian/patches/languages-Look-at-LOCPATH-before-compile-time-LIBLOCALEDI.patch	2023-02-15 16:15:51.000000000 +0000
+++ gnome-desktop-43.2/debian/patches/languages-Look-at-LOCPATH-before-compile-time-LIBLOCALEDI.patch	2023-03-05 18:11:37.000000000 +0000
@@ -11,10 +11,10 @@
  1 file changed, 16 insertions(+), 2 deletions(-)
 
 diff --git a/libgnome-desktop/gnome-languages.c b/libgnome-desktop/gnome-languages.c
-index a9b1a19..b3d6d5a 100644
+index adfc4ee..2d25817 100644
 --- a/libgnome-desktop/gnome-languages.c
 +++ b/libgnome-desktop/gnome-languages.c
-@@ -463,8 +463,15 @@ add_locale (const char *language_name,
+@@ -434,8 +434,15 @@ add_locale (const char *language_name,
  static int
  select_dirs (const struct dirent *dirent)
  {
@@ -30,7 +30,7 @@
          if (strcmp (dirent->d_name, ".") != 0 && strcmp (dirent->d_name, "..") != 0) {
                  mode_t mode = 0;
  
-@@ -477,7 +484,7 @@ select_dirs (const struct dirent *dirent)
+@@ -448,7 +455,7 @@ select_dirs (const struct dirent *dirent)
                                  struct stat st;
                                  g_autofree char *path = NULL;
  
@@ -39,7 +39,7 @@
                                  if (g_stat (path, &st) == 0) {
                                          mode = st.st_mode;
                                  }
-@@ -496,8 +503,15 @@ collect_locales_from_directory (void)
+@@ -467,8 +474,15 @@ collect_locales_from_directory (void)
          struct dirent **dirents;
          int             ndirents;
          int             cnt;
diff -Nru gnome-desktop-43.2/debian/patches/series gnome-desktop-43.2/debian/patches/series
--- gnome-desktop-43.2/debian/patches/series	2023-02-15 16:15:51.000000000 +0000
+++ gnome-desktop-43.2/debian/patches/series	2023-03-05 18:11:37.000000000 +0000
@@ -1 +1,3 @@
 languages-Look-at-LOCPATH-before-compile-time-LIBLOCALEDI.patch
+Use-mozc-as-the-default-input-source-for-Japanese.patch
+Fall-back-to-ibus-anthy-if-ibus-mozc-jp-is-unavailable.patch
diff -Nru gnome-desktop-43.2/debian/patches/Use-mozc-as-the-default-input-source-for-Japanese.patch gnome-desktop-43.2/debian/patches/Use-mozc-as-the-default-input-source-for-Japanese.patch
--- gnome-desktop-43.2/debian/patches/Use-mozc-as-the-default-input-source-for-Japanese.patch	1970-01-01 01:00:00.000000000 +0100
+++ gnome-desktop-43.2/debian/patches/Use-mozc-as-the-default-input-source-for-Japanese.patch	2023-03-05 18:11:37.000000000 +0000
@@ -0,0 +1,34 @@
+From: YOSHINO Yoshihito <yy.y.ja.jp@gmail.com>
+Date: Sat, 28 Jan 2023 16:46:35 +0900
+Subject: Use mozc as the default input source for Japanese
+
+Upstream prefers ibus-anthy for Japanese input, while Debian uses
+ibus-mozc as the default. In particular, task-japanese-gnome-desktop
+Recommends ibus-mozc on architectures where it is available.
+
+There seems to be consensus that mozc is a better default for Debian. It
+is also the default in Ubuntu since 16.04 at the request of Japanese
+Ubuntu users, according to Ubuntu developer Gunnar Hjalmarsson.
+
+[smcv: Add more context to commit message]
+
+Bug-Debian: https://bugs.debian.org/1029821
+Co-authored-by: Simon McVittie <smcv@debian.org>
+Origin: vendor, Debian
+---
+ libgnome-desktop/default-input-sources.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libgnome-desktop/default-input-sources.h b/libgnome-desktop/default-input-sources.h
+index 04ba10b..beaa80d 100644
+--- a/libgnome-desktop/default-input-sources.h
++++ b/libgnome-desktop/default-input-sources.h
+@@ -36,7 +36,7 @@ static DefaultInputSource default_input_sources[] =
+   { "hi_IN",    "ibus",         "m17n:hi:inscript" },
+   { "id_ID",    "xkb",          "us" },
+   { "it_IT",    "xkb",          "it" },
+-  { "ja_JP",    "ibus",         "anthy" },
++  { "ja_JP",    "ibus",         "mozc-jp" },
+   { "kn_IN",    "ibus",         "m17n:kn:kgp" },
+   { "ko_KR",    "ibus",         "hangul" },
+   { "mai_IN",   "ibus",         "m17n:mai:inscript" },
diff -Nru gnome-desktop-43.2/libgnome-desktop/default-input-sources.h gnome-desktop-43.2/libgnome-desktop/default-input-sources.h
--- gnome-desktop-43.2/libgnome-desktop/default-input-sources.h	2023-02-15 16:03:13.000000000 +0000
+++ gnome-desktop-43.2/libgnome-desktop/default-input-sources.h	2023-03-09 12:23:01.000000000 +0000
@@ -36,7 +36,7 @@
   { "hi_IN",    "ibus",         "m17n:hi:inscript" },
   { "id_ID",    "xkb",          "us" },
   { "it_IT",    "xkb",          "it" },
-  { "ja_JP",    "ibus",         "anthy" },
+  { "ja_JP",    "ibus",         "mozc-jp" },
   { "kn_IN",    "ibus",         "m17n:kn:kgp" },
   { "ko_KR",    "ibus",         "hangul" },
   { "mai_IN",   "ibus",         "m17n:mai:inscript" },
diff -Nru gnome-desktop-43.2/libgnome-desktop/gnome-languages.c gnome-desktop-43.2/libgnome-desktop/gnome-languages.c
--- gnome-desktop-43.2/libgnome-desktop/gnome-languages.c	2023-03-09 12:23:01.000000000 +0000
+++ gnome-desktop-43.2/libgnome-desktop/gnome-languages.c	2023-03-09 12:23:01.000000000 +0000
@@ -1448,6 +1448,15 @@
         if (dis) {
                 *type = dis->type;
                 *id = dis->id;
+
+                /* We default to ibus:mozc-jp for Japanese locales, but mozc
+                 * isn't available for all CPU architectures. Fall back to
+                 * ibus:anthy if necessary. */
+                if (g_strcmp0 (*type, "ibus") == 0
+                    && g_strcmp0 (*id, "mozc-jp") == 0
+                    && !g_file_test ("/usr/share/ibus/component/mozc.xml", G_FILE_TEST_EXISTS)) {
+                        *id = "anthy";
+                }
         }
         return dis != NULL;
 }

Reply to: