Ubuntu

language-selector-kde crashes on startup

Reported by Romain Perier on 2011-10-10
76
This bug affects 31 people
Affects Status Importance Assigned to Milestone
language-selector (Ubuntu)
High
Martin Pitt
Oneiric
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)

Romain Perier (rperier) wrote :
description: updated
Martin Pitt (pitti) on 2011-10-10
Changed in language-selector (Ubuntu):
assignee: nobody → Martin Pitt (pitti)
importance: Undecided → High
status: New → In Progress
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) on 2011-10-10
Changed in language-selector (Ubuntu Oneiric):
status: In Progress → Fix Committed
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
Coeur Noir (gerald-maruccia-e) 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  Edit
Everyone can see this information.

Other bug subscribers