oneiric kubuntu printer configuration fails

Bug #814770 reported by Dale Trombley
24
This bug affects 4 people
Affects Status Importance Assigned to Milestone
system-config-printer-kde (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

kubuntu oneiric,
reproduceable every time
system settings>printer configuration

fails with "the service 'Printer Configuration' does not provide an interface 'KCModule' with keyword 'system-config-printer-kde/system-config-printer-kde.py'The factory does not support creating components of the specified type"

running systemsettings from konsole and trying the printer configuration causes this:
buzzmandt@buzzmandt-Compaq-Presario-CQ60-Notebook-PC:~$ systemsettings
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory
QFileSystemWatcher: failed to add paths: /home/buzzmandt/.config/ibus/bus
buzzmandt@buzzmandt-Compaq-Presario-CQ60-Notebook-PC:~$ systemsettings(5534)/python (plugin): Error while running factory function for Python plugin: "system-config-printer-kde/system-config-printer-kde.py"
Traceback (most recent call last):
  File "<string>", line 18, in kpythonpluginfactory_bridge
  File "/usr/share/kde4/apps/system-config-printer-kde/system-config-printer-kde.py", line 4398, in CreatePlugin
    kcm = u.makeui(component_data, widget_parent)
  File "/usr/share/kde4/apps/system-config-printer-kde/system-config-printer-kde.py", line 135, in makeui
    self.ui = PyKcm(component_data, parent, self)
  File "/usr/share/kde4/apps/system-config-printer-kde/system-config-printer-kde.py", line 111, in __init__
    uic.loadUi(unicode(APPDIR + "/" + "system-config-printer.ui"), self)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/__init__.py", line 221, in loadUi
    return DynamicUILoader().loadUi(uifile, baseinstance)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/Loader/loader.py", line 71, in loadUi
    return self.parse(filename, basedir)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 886, in parse
    actor(elem)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 729, in createUserInterface
    self.traverseWidgetTree(elem)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 707, in traverseWidgetTree
    handler(self, child)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 449, in createLayout
    self.traverseWidgetTree(elem)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 707, in traverseWidgetTree
    handler(self, child)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 486, in handleItem
    self.traverseWidgetTree(elem)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 707, in traverseWidgetTree
    handler(self, child)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 214, in createWidget
    self.traverseWidgetTree(elem)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 707, in traverseWidgetTree
    handler(self, child)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 214, in createWidget
    self.traverseWidgetTree(elem)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 707, in traverseWidgetTree
    handler(self, child)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 449, in createLayout
    self.traverseWidgetTree(elem)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 707, in traverseWidgetTree
    handler(self, child)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 486, in handleItem
    self.traverseWidgetTree(elem)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 707, in traverseWidgetTree
    handler(self, child)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 449, in createLayout
    self.traverseWidgetTree(elem)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 707, in traverseWidgetTree
    handler(self, child)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 486, in handleItem
    self.traverseWidgetTree(elem)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 707, in traverseWidgetTree
    handler(self, child)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 208, in createWidget
    self.stack.push(self.setupObject(widget_class, parent, elem))
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/uiparser.py", line 176, in setupObject
    obj = self.factory.createQObject(clsname, name, args, is_attribute)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/objcreator.py", line 105, in createQObject
    classType = self.findQObjectType(classname)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/objcreator.py", line 115, in findQObjectType
    w = module.search(classname)
  File "/usr/lib/pymodules/python2.7/PyQt4/uic/Loader/qobjectcreator.py", line 92, in search
    self._modules[module] = __import__(module, {}, {}, (cls,))
ImportError: No module named kpushbutton
systemsettings(5534)/python (plugin): Failed to import module
systemsettings(5534)/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

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: system-config-printer-kde 4:4.6.90-0ubuntu1
ProcVersionSignature: Ubuntu 3.0.0-6.7-generic 3.0.0-rc7
Uname: Linux 3.0.0-6-generic x86_64
Architecture: amd64
Date: Fri Jul 22 14:19:36 2011
InstallationMedia: Kubuntu 11.10 "Oneiric Ocelot" - Alpha amd64 (20110626)
PackageArchitecture: all
ProcEnviron:
 LANGUAGE=
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: kdeadmin
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Dale Trombley (buzzmandt) wrote :
Revision history for this message
Mark Schmidt (schmidtm) wrote :

i can confirm this bug on oneiric with kde 4.6.95. However the version of system-config-printer-kde still is 4:4.6.90-0ubuntu1. Anyway this bug seems to appear and disappear with different versions of kde. see also bugs at https://bugs.launchpad.net/ubuntu/+source/kdeadmin/+bug/383517 and http://bugs.kde.org/198632

Changed in system-config-printer-kde (Ubuntu):
status: New → Confirmed
Revision history for this message
Chopstick (a-r-erler) wrote :

I also have this problem on Natty with KDE 4.6.2 (kubuntu 11.04, 64bit).
Is there any known workaround that does not involve opening CUPS config in a browser? (I'm using a network printer and CUPS config is not accessible on the print server.)

Revision history for this message
steveb (tniagcpm) wrote :

I have this problem on Oneiric, using package system-config-printer-kde 4:4.7.2-0ubuntu1~ppa2

The console error from systemsettings ends with:
  File "/usr/share/kde4/apps/system-config-printer-kde/system-config-printer-kde.py", line 1311, in fillPrinterOptions
    ppd.markDefaults()
AttributeError: 'bool' object has no attribute 'markDefaults'

My limited Python tells me that object "ppd" is set to a boolean, instead of a printer object.
The code has places where "ppd = False" is used upon errors, which would lead to this message.

Revision history for this message
steveb (tniagcpm) wrote :

I also looked at other systems with Oneiric installed.
a) an upgrade from Natty - works correctly
b) a new Oneiric install - works correctly

I found that my problem was caused by an entry in /etc/cups/printers.conf for a printer that no longer exists.
The entry was for the <DefaultPrinter> section.
I fixed it by these steps:

Stop CUPS, so we can edit the conf file safely
> /etc/init.d/cups stop

Edit /etc/cups/printers.conf
from:
> <DefaultPrinter>
> ...the non-existent printer entries...
> </Printer>
> <Printer>
> ...a valid printers entries...
> </Printer>
to:
> <DefaultPrinter>
> ...a valid printers entries...
> </Printer>

Restart CUPS
> /etc/init.d/cups start

I can only assume that system-config-printer-kde needs better error handling.

prudentior (prudentior)
Changed in system-config-printer-kde (Ubuntu):
status: Confirmed → Fix Released
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.