On Wed, Sep 20, 2006 at 08:55:24AM -0000, Enrico Zini wrote:
> After a chat with Andrew Lee (upstream maintainer of scim-chewing), I'll
> try to summarise the situation as concisely as I can:

Thank you so much.  Your explanation has helped me to reach a breakthrough
understanding of the situation.

> Finding the bug:
> 
>   The bug has been found right after the release of Dapper, when skype stopped
>   accepting chinese input right after the upgrade from Hoary.

I assume you mean 'from Breezy' here.

>   It has not been reported right away because Andrew Lee was trying to
>   investigate what was wrong.
> 
>   As to why more people didn't report this bug, I have a few ideas which I
>   think are not much relevant to the discussion.
> 
> Cause of the bug:
> 
>   The cause of the bug is that Dapper uses scim-qtimm, which requires a patch
>   to libqt in order to work.  The patch changes the API/ABI of libqt.
> 
>   Applications built with the patched libqt work fine with scimm-qtimm, but 
> all
>   3rd-party applications that weren't built with the patched libqt do not work
>   with scimm-qtimm.

OK, so our libqt includes said patch, and this problem is limited to
third-party Qt applications not distributed with Ubuntu?

> Proposed work-around:
> 
>   The work around is not use scim-qtimm in the im-switch configuration file,
>   but use xim instead.
> 
> Further issues:
> 
>   scim-0.2.1 in dapper has a nasty bug: the user's phrase database file gets
>   corrupted when scim does not exit gracefully.  After this happens, it's
>   impossible to input Chinese.
> 
>   The bug is fixed on 0.3.1.  It's unfortunately hard to backport the patch,
>   because the fix consisted in rewriting the code that handles the user
>   database.

My input method vocabulary is a bit limited; here is what I think I
know:

scim - input method platform used in Ubuntu
scim-qtimm - input method plugin for Qt which talks to SCIM
scim-chewing - the default Chinese input method used in Ubuntu
xim - an X protocol for input methods, used by SCIM
im-switch - a framework which selects input methods at login, based on locale

If I apply these definitions to what you've said, here's my current
understanding:

- Most programs talk to SCIM via the X server's XIM protocol

- GTK and Qt programs may instead use a plugin which talks to SCIM by some
  other means

- In Dapper, scim-chewing instructs im-switch to select the following input
  method settings for Chinese:

  - Run SCIM in the user's session
  - Tell GTK to use the native SCIM input method module (scim-gtk2-immodule)
  - Tell Qt to use the native SCIM input method module (scim-qtimm)
  - X programs not using GTK or Qt will use XIM, which should still reach
        SCIM (right?)

- scim can't be used with Qt applications unless a patched Qt and scim-qtimm
  are used, so this configuration doesn't work with those.  This applies to
  all Qt applications when SCIM is in use, and this is the bug described in
  the original report here.

- Ubuntu does not ship with scim-qtimm, so even if the previous problem were
  fixed, Chinese input in Qt programs in Ubuntu doesn't work.

- Kubuntu does not ship with scim-gtk2-immodule, so Chinese input in GTK
  programs in Kubuntu doesn't work.

- Furthermore, the scim-chewing 0.2.1 in Dapper has a nasty bug where, under
  some circumstances, scim-chewing breaks entirely and becomes unusable for
  all programs.

Therefore it is proposed that we should do the following:

- Tell im-switch to use XIM instead of SCIM in Qt programs, by changing the
  im-switch configuration file provided by scim-chewing.

- Update scim-chewing to a new upstream version which fixes the critical bug
  which makes it unusable

Things I still don't understand:

- How is scim-pinyin relevant to this discussion?

- How will the user experience change when XIM is used instead of
  scim-qtimm?  Does the user still get the same functionality?  If so, what
  purpose does this module (and the corresponding GTK module) serve?

- Why is it the scim-chewing package which controls which input methods are
  selected for Chinese?  Shouldn't this be done at a higher level?

- It seems to be implied that our Qt is API/ABI incompatible with other
  platforms due to the patch to support scim-qtimm.  Is that true?

Reasons why it took so long to get to this point:

- The email I received did not refer to this bug report at all, so I didn't
  see it until much later

- There are at least four distinct problems with Chinese input in Dapper,
  and both this bug report and the email I received conflated these issues
  in a most confusing way.

What we do now:

1. File separate bug reports for each of the four issues described above

   (this bug report should be used only for the "scim-chewing 0.2.1 can
   break in such a way that Chinese input is impossible" issue)

2. Discuss in those bug reports what to do about each one for Edgy

3. For each bug, implement and test a solution in Edgy (in some cases this
   has already been done)

4. For each bug, determine whether it is feasible to backport the solution
   to Dapper to correct its problems with Chinese input.

Does this sound OK to everyone?

If anyone can enlighten me regarding the questions under "Things I still
don't understand", that would also help.

-- 
 - mdz

-- 
scim-chewing cannot enter any Chinese character
https://launchpad.net/bugs/57081

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to