apt install --no-install-recommends fcitx-bin, breaks dead keys

Bug #1605571 reported by Alkis Georgopoulos on 2016-07-22
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ubuntu-mate
Undecided
Unassigned
im-config (Ubuntu)
Undecided
Unassigned
ubuntu-mate-meta (Ubuntu)
Undecided
Unassigned

Bug Description

Test case: remove everything related to fcitx.
Then run: apt install --no-install-recommends fcitx-bin
Then login with some locale that uses dead keys, for example the Greek locale.
Then type e.g. ";"+"a". It's supposed to show "ά", but instead it shows "´α".

At that point, fcitx isn't running, yet `im-config -a` reports that it's the selected input method.
$ env | egrep '_IM|XMOD'
CLUTTER_IM_MODULE=xim
QT_IM_MODULE=xim
XMODIFIERS=@im=fcitx
QT4_IM_MODULE=xim
GTK_IM_MODULE=xim

If fcitx-bin is installed along with all its recommended dependencies, then fcitx is running normally and the issue described above doesn't occur anymore. At that point, the environment variables are:
$ env | egrep '_IM|XMOD'
CLUTTER_IM_MODULE=xim
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
QT4_IM_MODULE=fcitx
GTK_IM_MODULE=fcitx

At present I've only tested with the MATE desktop environment.
It also happens with the MATE live CD, as fcitx-bin is indeed preinstalled there without its recommended dependencies.

Gunnar Hjalmarsson (gunnarhj) wrote :

Nice catch, Alkis!

@Martin: I suppose it's your call. As you may have seen, we started to talk at bug #1550325, but Alkis filed this bug as per my suggestion.

Aron Xu (happyaron) wrote :

This problem lives in im-config/gnome-language-selector, reassigning.

Also, fcitx developers and maintainers stand on a view that installing without Recommends enabled means people who's doing that is willing to solve any problem occurred during the process, while leaving the package split as such keeps maximum flexibility to developers and power users.

affects: fcitx (Ubuntu) → im-config (Ubuntu)
Alkis Georgopoulos (alkisg) wrote :

The following commands fix the MATE live CD session:
$ sudo apt install --no-install-recommends fcitx-data fcitx-module-x11
$ fcitx

I.e. Martin if you want, you can add those 2 packages in the seeds, and keep the --no-install-recommends to avoid installing the whole fcitx stack.
And of course it's possible to completely remove fcitx from the seeds.

Btw I was also able to reproduce it in Lubuntu, after taking care to have only fcitx-bin installed.

Gunnar Hjalmarsson (gunnarhj) wrote :

Since you mentioned Lubuntu, they have this in the desktop seed:

$ apt-cache depends lubuntu-desktop | grep fcitx
  Depends: fcitx
  Depends: fcitx-config-gtk2
  Depends: fcitx-frontend-gtk2
  Depends: fcitx-ui-classic

Without having tested, I suspect that something like that is what's needed to actually be able to use Fcitx easily in a live session.

Alkis Georgopoulos (alkisg) wrote :

Gunnar, the live CD seeds are a different thing from package dependencies.
It's a text file containing a list of packages that are preinstalled in the live CD, but the installer might decide not to include them in the installed system.

Ubuntu-mate has only fcitx-bin in its live CD seeds:
http://people.canonical.com/~ubuntu-archive/seeds/ubuntu-mate.xenial/live
Upon installation, fcitx is removed, so the problem doesn't affect the installed system.

Ubuntu has a whole lot of fcitx related packages:
http://people.canonical.com/~ubuntu-archive/seeds/ubuntu.xenial/live
Upon installation, those are removed.

Lubuntu and Xubuntu don't have fcitx in their seeds:
http://people.canonical.com/~ubuntu-archive/seeds/lubuntu.xenial/live
http://people.canonical.com/~ubuntu-archive/seeds/xubuntu.xenial/live

Yet, as you said, lubuntu-desktop depends on fcitx so it's there in both the live CD and the installed system.

On the other hand, xubuntu-desktop doesn't depend on fcitx, so it doesn't have fcitx neither in the live CD nor in the installed system.

So if Martin wants fcitx to be there in the live CD, but not in the installed system for those that don't need it, I think he can just include the packages I mentioned in the seeds file.

But whatever ubuntu-mate decides to do with its seeds, fcitx-bin shouldn't break dead keys, it's another part of this issue that needs to be fixed.
Btw, by installing only fcitx-bin in a Xubuntu live CD or installation, the problem happens there as well.

Aron Xu (happyaron) wrote :

Ubiquity removes fcitx when the selected locale isn't any of CJKV (such behavior is supported by the canonical desktop team), so I'd recommend to do the same on input methods in such a way which will not hurt users anyway...

Gunnar Hjalmarsson (gunnarhj) wrote :

On 2016-07-23 07:59, Alkis Georgopoulos wrote:
> Gunnar, the live CD seeds are a different thing from package
> dependencies.

I know that. The desktop file in the seed is reflected in the package dependencies, while the live file isn't. In the case of Lubuntu the fcitx stuff is included in the desktop file, which is why my command above works to show which packages they use.

These are two possible approaches for MATE:

1. Include the needed packages (not only fcitx-bin) in the live seed, having them removed by Ubiquity at install as Aron mentioned for non-CJKV installs, and keep "auto" in im-config/gnome-language-selector.

2. Include the needed packages in the desktop seed instead as Lubuntu does, so they are also installed by Ubiquity, and change to "cjkv" in im-config/gnome-language-selector so fcitx isn't started/configured by default for non-CJKV users.

With the latter approach the fcitx menu won't be shown in live sessions for non-CJKV users, which probably is good.

> So if Martin wants fcitx to be there in the live CD, but not in the
> installed system for those that don't need it, I think he can just
> include the packages I mentioned in the seeds file.

The reason why I showed which packages Lubuntu uses was that I think (not tested) that a couple of additional packages are needed.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers