language-selector-kde crashes on startup

Bug #871922 reported by Romain Perier
76
This bug affects 31 people
Affects Status Importance Assigned to Milestone
language-selector (Ubuntu)
Fix Released
High
Martin Pitt
Oneiric
Fix Released
High
Martin Pitt

Bug Description

Hello,

Since language-selector 0.54, language-selector-kde crashes all the time on startup.

[linux-EX58-UD4P] bambi ~ $ kcmshell4 language-selector
kcmshell(5732)/python (plugin): Error while running factory function for Python plugin: "language-selector/language-selector.py"
Traceback (most recent call last):
  File "<string>", line 18, in kpythonpluginfactory_bridge
  File "/usr/share/kde4/apps/language-selector/language-selector.py", line 9, in CreatePlugin
    return QtLanguageSelector("/usr/share/language-selector/", component_data, widget_parent)
  File "/usr/lib/python2.7/dist-packages/LanguageSelector/qt/QtLanguageSelector.py", line 51, in __init__
    self.init()
  File "/usr/lib/python2.7/dist-packages/LanguageSelector/qt/QtLanguageSelector.py", line 75, in init
    self.updateLanguagesList()
  File "/usr/lib/python2.7/dist-packages/LanguageSelector/qt/QtLanguageSelector.py", line 187, in updateLanguagesList
    languageList = self._cache.getLanguageInformation()
  File "/usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.py", line 376, in getLanguageInformation
    li = LanguageInformation(self, code, lang)
  File "/usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.py", line 41, in __init__
    if 'gnome-' not in sys.argv[0]:
AttributeError: 'module' object has no attribute 'argv'
kcmshell(5732)/python (plugin): Failed to import module
kcmshell(5732)/kcontrol KCModuleLoader::loadModule: This module has no valid entry symbol at all. The reason could be that it's still using K_EXPORT_COMPONENT_FACTORY with a custom X-KDE-FactoryName which is not supported anymore

The fix "LanguageSelector/LangCache.py [change not affecting KDE]" breaks language-selector-kde, mainly because it uses "sys.argv" -> systemsettings does not use the python interpreter to load the script but a plugin wrapper . This plugin wrapper uses libpython and sip to load the code, which means that sys.argv is not defined at all (because it's defined by the interpreter itself). See pykde4/KPythonPluginFactory.cpp .

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: language-selector-kde 0.55
ProcVersionSignature: Ubuntu 3.0.0-12.20-generic 3.0.4
Uname: Linux 3.0.0-12-generic x86_64
ApportVersion: 1.23-0ubuntu3
Architecture: amd64
Date: Mon Oct 10 19:44:00 2011
InstallationMedia: Kubuntu 10.10 "Maverick Meerkat" - Release amd64 (20101007)
PackageArchitecture: all
ProcEnviron:
 LANGUAGE=fr_FR:en
 PATH=(custom, user)
 LANG=fr_FR.UTF-8
 LC_MESSAGES=fr_FR.utf8
 SHELL=/bin/bash
SourcePackage: language-selector
UpgradeStatus: Upgraded to oneiric on 2011-02-07 (245 days ago)

Revision history for this message
Romain Perier (rperier) wrote :
description: updated
Martin Pitt (pitti)
Changed in language-selector (Ubuntu):
assignee: nobody → Martin Pitt (pitti)
importance: Undecided → High
status: New → In Progress
Revision history for this message
Romain Perier (rperier) wrote :

* Solution 1)° Define sys.argv to [ "language-selector-kde"] in language-selector-kde.py
* Solution 2)° Don't use sys.argv in LanguageSelector/LangCache.py

Martin Pitt (pitti)
Changed in language-selector (Ubuntu Oneiric):
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

---------------
language-selector (0.56) oneiric; urgency=low

  * LanguageSelector/LangCache.py: Fix crash when "sys.argv" does not exist,
    which happens when being called from the KDE control center.
    (LP: #871922)
 -- Martin Pitt <email address hidden> Mon, 10 Oct 2011 20:03:34 +0200

Changed in language-selector (Ubuntu Oneiric):
status: Fix Committed → Fix Released
Revision history for this message
Coeur Noir (coeur-noir) wrote :

Affects me on Kubuntu 12.04 newly installed :
____________________________________________________________________________________________

kcmshell4 language-selector
kcmshell(2047)/python (plugin): Error while running factory function for Python plugin: "language-selector/language-selector.py"
Traceback (most recent call last):
  File "<string>", line 18, in kpythonpluginfactory_bridge
  File "/usr/share/kde4/apps/language-selector/language-selector.py", line 9, in CreatePlugin
    return QtLanguageSelector("/usr/share/language-selector/", component_data, widget_parent)
  File "/usr/lib/python2.7/dist-packages/LanguageSelector/qt/QtLanguageSelector.py", line 52, in __init__
    self.init()
  File "/usr/lib/python2.7/dist-packages/LanguageSelector/qt/QtLanguageSelector.py", line 67, in init
    self.openCache(apt.progress.OpProgress())
  File "/usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.py", line 31, in openCache
    self._cache = LangCache.LanguageSelectorPkgCache(self._localeinfo, progress)
  File "/usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.py", line 74, in __init__
    apt.Cache.__init__(self, progress)
  File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 102, in __init__
    self.open(progress)
  File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 149, in open
    self._list.read_main_list()
kcmshell(2047)/python (plugin): Failed to import module
kcmshell(2047)/kcontrol KCModuleLoader::loadModule: This module has no valid entry symbol at all. The reason could be that it's still using K_EXPORT_COMPONENT_FACTORY with a custom X-KDE-FactoryName which is not supported anymore
___________________________________________________________________________________________

language-selector-common and language-selector-kde are both installed on my system, and both in version 0.79

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.