language-selector should not uninstall packages without a warning (allow opt-out)

Bug #37707 reported by Henrik on 2006-04-02
50
This bug affects 6 people
Affects Status Importance Assigned to Milestone
language-selector (Ubuntu)
High
Gunnar Hjalmarsson
Precise
Undecided
Gunnar Hjalmarsson

Bug Description

Precise SRU proposal
====================

[Impact]
When removing a language, not language specific packages are removed as well, some of which you may not want to be deleted. I (gunnarhj) have occationally experienced that e.g. evince and gimp - packages I often use - are suddenly gone. Very annoying!

[Test Case]
Steps to reproduce with version 0.79:
- Install a random language.
- Launch gnome-language-selector from a terminal window.
- Start removing the language, but interrupt by clicking "Cancel" when asked to authenticate.
- Make a note of the list of packages that were about to be removed.

After installing version 0.79.2 (will be available in precise-proposed):
- Launch gnome-language-selector from a terminal window.
- Remove the previously installed language.
- Note that the list of removed packages is shorter than before.

[Regression Potential]
The fix simply restricts which packages are removed. Besides the intentional and harmless effect that some redundant packages are kept when a language is removed, the regression risk is low.

[Original description]
After upgrading a recently-installed xubuntu-desktop from breezy to dapper, I ran gnome-language-selector for the first time.

I selected Norwegian bokmål as my supported (and default) language, and pressed apply. As I watched the debug log, I discovered that language-selector removed the xubuntu-desktop, firefox and mozilla-mplayer packages _without warning_.

My language-selector package is version 0.1.15

Michael Vogt (mvo) wrote :

Thanks for your bugreport.

Language-selectors installs will be in the synaptic history. Could you please have a look there and paste the releavant history entries here?

Thanks,
 Michael

Changed in language-selector:
assignee: nobody → mvo
status: Unconfirmed → Needs Info

This is the content of /root/.synaptic/log/2006-04-02.002505.log:

Commit Log for Sun Apr 2 00:25:05 2006

Removed the following packages:
firefox
mozilla-mplayer
xubuntu-desktop

Installed the following packages:
language-pack-gnome-nb (20051011)
language-pack-gnome-nb-base (20051011)
language-pack-nb (20051011)
language-pack-nb-base (20051011)
language-support-nb (20051010)
mozilla-firefox-locale-nb (1.0-1ubuntu3)
mozilla-firefox-locale-nb-no (1.5.0.1ubuntu-1)
myspell-nb (2.0-20ubuntu1)
openoffice.org-l10n-common (2.0.2-1ubuntu5)
openoffice.org-l10n-nb (1.1.5-0ubuntu1)
openoffice.org2-help-nb (1.9.129-0.1ubuntu5)
openoffice.org2-l10n-nb (1.9.129-0.1ubuntu3)
thunderbird-locale-nb-no (1:1.5ubuntu20060309)

Michael Vogt (mvo) wrote :

The most important part of this is fixed in current dapper. It will not work on caches that have inital install/remove requirements. A additional savety check would be good but is not essential for dapper (because we have a pretty good idea of the affected dependencies).

Changed in language-selector:
status: Needs Info → Confirmed
Miłosz Kosobucki (mikom) wrote :

I'm just installing xubuntu 7.04 beta and because I selected polish language in the first page of the installer it is downloading openoffice. The same occurred in Edgy. Probably language-selector has preset list of packages to install regardless of the system type (xubuntu, ubuntu, kubuntu). Probably there should be diffrent lists for diffrent systems.

Miłosz Kosobucki (mikom) wrote :

I've also noticed one thing. Even that I selected polish language at install, not everything is in polish. GDM is still in english, gksudo frontend is also in english when I start some administrative application. AFAIR the situation was the same in edgy. Should I file a new bug about it?

Rolf Leggewie (r0lf) wrote :

I agree that language-selector should *never* uninstall packages without giving a warning and the admin a possibility to opt out at that point. Language-selector just removed openoffice.org for me because the localization files for the version I'm running weren't available (see attached log)! I am running Openoffice.org3 which is from my PPA and thus not official. language-selector still has no business at all to just remove it.

Alexander Bürger (acfb) wrote :

I think that this is a very strange bug and that it should have higher priority than "medium".

On my karmic beta, every time I install a language via language-selector, ubuntu-desktop is removed. This is only visible if one clicks on the "details" button. While ubuntu-desktop is not important by itself, it is nevertheless one of the most important packages in the upgrading process between different ubuntu versions.

For testing purposes, I installed Afrikaans. Then, synaptic is run like this:

/usr/sbin/synaptic --hide-main-window --non-interactive --parent-window-id ..... --finish-str "The list of available languages on the system has been updated." --set-selections-file /tmp/tmp...

Where the tmp file looks like this (second install, see below):

language-support-writing-af install
ubuntu-desktop deinstall

I do not see any reason why ubuntu-desktop should be mentioned at all. Unfortunately I do not find the reason from reading the LanguagSelector code either.

Another problem is that when the language is de-installed, not all packages are removed again. This is the output of dpkg -l "*-af" | grep ^.[ih] after removing the Afrikaans support in language-selector.

ii myspell-af 1:3.0.1-8ubuntu1 Afrikaans dictionary for myspell
ii openoffice.org-hyphenation-af 1:3.0.1-8ubuntu1 Afrikaans hyphenation patterns for OpenOffic

Maybe there should be some dependency handling?

sampula (samuli-kaipiainen) wrote :

I have a similar one (duplicate maybe) in Lucid alpha 2. For me, adding Finnish to language support, removed OpenOffice.

https://bugs.launchpad.net/ubuntu/+source/language-selector/+bug/525727

Conscious User (conscioususer) wrote :

The problem still exists in Lucid Alpha 3. I installed Ubuntu in French, and then when I installed support for Portuguese it removed ubufox, firefox-gnome-support and ubuntu-desktop. The removal is a problem by itself and it shouldn't be done, but even worse is how it is done in a completely silent way unless the user clicks on "details".

I only discovered it by chance when peeking at the apt logs because of another issue. Hadn't I discovered it, I wouldn't receive updates to ubuntu-desktop, which is particularly important during the alpha testing.

Conscious User (conscioususer) wrote :

Testing Lucid Beta 1. No removal of packages happened when I installed other languages, but I don't know if this means the bug is fixed or if the language package sets are simply more complete now.

Arne Goetje (arnegoetje) wrote :

l-s needs to run a check when installing or removing packages:
 * if a package is going to be removed, which is not in self.pkg_translations, self.pkg_writing or self.item: bail out with error message -> archive is inconsistent, try again later or try to resolve manually with synaptic or update-manager

Changed in language-selector (Ubuntu):
status: Confirmed → Triaged
Arne Goetje (arnegoetje) on 2010-05-27
Changed in language-selector (Ubuntu):
assignee: Michael Vogt (mvo) → nobody
milestone: later → maverick-alpha-3
Changed in language-selector (Ubuntu):
milestone: maverick-alpha-3 → ubuntu-10.10-beta
Thibault D (thibdrev) wrote :

Hi, I am seeing the same issue with a daily build of Raring Ringtail (13.04) :

1/ Install a daily build on a USB disk and test it in French with persistent data on.

2/ Launch gnome-language-selector, it will ask you to download the remaining files to get a proper translated version.

3/ Accept that and discover that it downloads many files for languages other than English (en) or French (fr).

In fact, when you try Ubuntu in French, the gnome-language-selector also has (at least) Brazilian, Portuguese, Chinese-simplified and German selected by default.

I have seen the following files being downloaded for example :

    hunspell-de-ch
    hunspell-de-de
    hunspell-en-ca
    hunspell-fr

    hyphen-de
    hyphen-en-us
    hyphen-fr

    libreoffice-l10n-de
    libreoffice-l10n-en-gb
    libreoffice-l10n-es
    libreoffice-l10n-fr
    libreoffice-l10n-pt
    libreoffice-l10n-pt-br

    libreoffice-help-de
    libreoffice-help-en-gb
    libreoffice-help-es
    libreoffice-help-fr
    libreoffice-help-pt
    libreoffice-help-pt-br

4/ So then, uncheck all languages other than French and English, and discover that - without any warning - it will remove a lot of programs that are not language files.

I have seen for example :

    Removing bluez-cups
    Removing printer-driver-postscript-hp
    Removing hplip
    Removing printer-driver-hpcups
    Removing printer-driver-gutenprint
    Removing indicator-printers
    Removing cups-browsed
    Removing cups
    Removing cups-filters
    Removing ubuntu-desktop
    Removing evince
    Removing fonts-arphic-uming
    Removing printer-driver-sag-gdi
    Removing printer-driver-ptouch
    Removing printer-driver-pnm2ppa
    Removing ghostscript-x
    Removing printer-driver-splix
    Removing ghostscript-cups
    Removing ghostscript
    Removing ibus-sunpinyin
    Removing ibus-table-wubi
    Removing libevview3-3
    Removing libevdocument3-4
    Removing libspectre1:i386
    Removing libgs9
    Removing openoffice.org-hyphenation
    Removing poppler-data

It's pretty strange and probably not very "clean"...

Changed in language-selector (Ubuntu):
importance: Medium → High
milestone: ubuntu-10.10-beta → ubuntu-13.04-feature-freeze
Gunnar Hjalmarsson (gunnarhj) wrote :

This bug report is a very old one, and I'm going to assume that the older reported issues are solved.

In the linked merge proposal I have made an adjustment aiming to fix the issue with unrelated packages being removed when a language is removed, as reported in comment #12. It's not a perfect fix, since it means that some packages that could well be removed will be kept. OTOH, those redundant packages will probably not hurt.

A language-selector build for Raring, including the proposed fix, is available in my PPA at https://launchpad.net/~gunnarhj/+archive/misc
It would be great if you could install and test it to evaluate if there are any undesired side effects caused by the fix.

Changed in language-selector (Ubuntu):
assignee: nobody → Gunnar Hjalmarsson (gunnarhj)
status: Triaged → In Progress
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package language-selector - 0.104

---------------
language-selector (0.104) raring; urgency=low

  * data/pkg_depends:
    List of input methods for traditional Chinese modified. Thanks to
    Ma Xiaojun for the proposal (LP: #1120833).
  * LanguageSelector/LangCache.py:
    When a language is removed, don't remove packages that are not
    language specific (LP: #37707).
 -- Gunnar Hjalmarsson <email address hidden> Tue, 12 Feb 2013 05:25:22 +0100

Changed in language-selector (Ubuntu):
status: In Progress → Fix Released
Martin Pitt (pitti) on 2013-02-13
Changed in language-selector (Ubuntu Precise):
status: New → Triaged
description: updated
Changed in language-selector (Ubuntu Precise):
assignee: nobody → Gunnar Hjalmarsson (gunnarhj)
status: Triaged → In Progress
description: updated
Martin Pitt (pitti) wrote :

Gunnar, thanks for preparing the branch! Do you want me to upload this now, or are you planning to do more changes?

Henrik (neu242) wrote :

Wow, we're seeing a fix, after only 7 years :)

Great work, Gunnar!

Gunnar Hjalmarsson (gunnarhj) wrote :

On 2013-02-14 10:48, Martin Pitt wrote:
> Do you want me to upload this now, or are you planning to do more
> changes?

No more Precise SRUs in my mind now, so I'd appreciate if you upload it. Please note that Colin came in and uploaded 0.79.1 but bypassed Bazaar... Unlike me you know how to best handle that.

@neu: Thanks for being patient. ;-)

Martin Pitt (pitti) wrote :

Indeed the package importer seems to have forgotten to create a precise-updates branch.. Well, I'll deal with it.

Martin Pitt (pitti) wrote :

Uploaded, now waiting for ubuntu-sru review.

Hello neu, or anyone else affected,

Accepted language-selector into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/language-selector/0.79.2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in language-selector (Ubuntu Precise):
status: In Progress → Fix Committed
tags: added: verification-needed
Gunnar Hjalmarsson (gunnarhj) wrote :

I have successfully installed and run language-selector 0.79.2 from precise-proposed. When I removed a language (French), no undesired package removals took place.

tags: added: verification-done
removed: verification-needed

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package language-selector - 0.79.2

---------------
language-selector (0.79.2) precise-proposed; urgency=low

  * LanguageSelector/LanguageSelector.py:
    Call missing() in language_support_pkgs.py instead of
    by_locale(), so the check for missing language support packages
    is carried out for all the installed languages, not only for the
    current system language (LP: #1134364).
  * language_support_pkgs.py:
    - Hack to prevent that users are prompted to install hunspell-de-xx
      when the enhanced (and conflicting) hunspell-de-xx-frami is
      installed (LP: #1103547).
    - Changes in available_languages() to avoid that users are prompted
      to install language support for non-installed languages. That
      could happen if there were other locales on the system but the
      locales representing the installed languages (LP: #1134364).
  * LanguageSelector/LangCache.py:
    When a language is removed, don't remove packages that are not
    language specific (LP: #37707).
  * debian/control:
    Bump the accountsservice dependency.
 -- Gunnar Hjalmarsson <email address hidden> Wed, 27 Feb 2013 16:44:00 +0100

Changed in language-selector (Ubuntu Precise):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Bug attachments