system-config-printer
This page is about the printer administration tool system-config-printer, which first appeared in Fedora (as part of my work at Red Hat), and later Ubuntu and other operating systems.
The purpose of the tool is to configure a CUPS server (often the local machine) using the CUPS API. The tool is written in Python, using pygtk for the graphical parts and with some Python bindings (pycups) for the CUPS API.
It is largely the same as using the CUPS web interface for configuring printers, but has the advantage of being a native application rather than a web page. It appears in the Fedora menu under System ▸ Administration ▸ Printing.
As a result of using the CUPS API the tool is able to configure remote CUPS instances and is not limited to configuring CUPS on the local machine. The CUPS library providing the API uses HTTP and IPP to communicate with the CUPS server.
I work on this application as part of my job at Red Hat.
Download
Download tarball releases from:
http://cyberelk.net/tim/data/system-config-printer/
You will also require pycups from:
http://cyberelk.net/tim/software/pycups/
Source Code
The git repository is available at fedorahosted.org:
git clone git://git.fedorahosted.org/git/system-config-printer.git
or browse using gitweb.
New releases are announced at freshmeat.
Translations
Language translations should be submitted through Fedora Transifex.
Reporting bugs
If you have found a bug in system-config-printer, please report it. If system-config-printer came with your operating system, report the bug to the operating system vendor:
- Packagers, or people who have installed system-config-printer from source themselves, should report the bug in the fedorahosted trac instance for system-config-printer. This is the “upstream” bug tracker.
- Red Hat Enterprise Linux and Fedora users should use Red Hat Bugzilla
- Ubuntu users should use launchpad
- Mandriva users should use Mandriva Bugzilla




Yai cool, I got it now compiled against python2.6. The only thing that lacks now are obviously cupshelpers, options
Traceback (most recent call last):
File “/usr/share/system-config-printer/system-config-printer.py”, line 87, in ?
import cupshelpers, options
but I don’t see any make options to build them directly… is there another way to get them built? And, do I have to take the permissive tree from dbus or the other one?
a make check yields the following:
jack@cupssrv:~/soft/system-config-printer-1.1.8$ pfexec make check
Making check in po
make[1]: Entering directory `/export/home/jack/soft/system-config-printer-1.1.8/po’
rm -f missing notexist
srcdir=. /opt/csw/bin//intltool-update -m
mismatched quotes at line 114 in ../options.py
mismatched quotes at line 116 in ../options.py
mismatched quotes at line 190 in ../gtk_treeviewtooltips.py
mismatched quotes at line 195 in ../gtk_treeviewtooltips.py
mismatched quotes at line 338 in ../cupspk.py
mismatched quotes at line 359 in ../cupspk.py
mismatched quotes at line 35 in ../build/lib/cupshelpers/ppds.py
[lots of above]
mismatched quotes at line 36 in ../build/lib/cupshelpers/__init__.py
mismatched quotes at line 41 in ../build/lib/cupshelpers/__init__.py
mismatched quotes at line 29 in ../build/lib/cupshelpers/cupshelpers.py
[lots of above]
mismatched quotes at line 35 in ../cupshelpers/ppds.py
[lots of above]
mismatched quotes at line 36 in ../cupshelpers/__init__.py
mismatched quotes at line 41 in ../cupshelpers/__init__.py
mismatched quotes at line 81 in ../cupshelpers/openprinting.py
[lots of above]
if [ -r missing -o -r notexist ]; then \
exit 1; \
fi
make[1]: Leaving directory `/export/home/jack/soft/system-config-printer-1.1.8/po’
make[1]: Entering directory `/export/home/jack/soft/system-config-printer-1.1.8′
/usr/bin/python2.6 setup.py build
running build
running build_py
make check-TESTS
make[2]: Entering directory `/export/home/jack/soft/system-config-printer-1.1.8′
Traceback (most recent call last):
File “./test-ppd-module.sh”, line 3, in ?
from cupshelpers.ppds import _self_test
File “/export/home/jack/soft/system-config-printer-1.1.8/cupshelpers/__init__.py”, line 45, in ?
from cupshelpers import \
File “/export/home/jack/soft/system-config-printer-1.1.8/cupshelpers/cupshelpers.py”, line 23
from . import _debugprint
^
SyntaxError: invalid syntax
FAIL: test-ppd-module.sh
==================
1 of 1 test failed
==================
make[2]: *** [check-TESTS] Error 1
make[2]: Leaving directory `/export/home/jack/soft/system-config-printer-1.1.8′
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/export/home/jack/soft/system-config-printer-1.1.8′
make: *** [check-recursive] Error 1
—– Qs —–
x must the default SUNWpycups bindings be installed or not before the build?
do you have a quick idea?
Thanks
Tom
Tom: it was just that it had hard-coded the program name “python” into some of the Makefile rules. I’ve checked in a fix to that now.
The main problem you are having is that either the “cupshelpers” module, or “options”, or both (you don’t give an error message…) is failing to get imported. You don’t have to “build” anything for this (Python is an interpreted language), but it sounds like you have them in the wrong places, or else your Python installation is expecting them to be in places other than where they are.
It’s most likely just running the wrong version of python. Try changing the ‘#!/usr/bin/env python” lines at the beginning of the executable Python scripts so that they run the version you want.
[...] I spent a little bit of time improving the speed of adding a new printer using system-config-printer. The main problem was that several bugs had conspired to make it search for all printer drivers [...]
Epson Stylus color 600
Not working in mandriva linux 2009.1 in both GNOME and KDE4
Horacio: Report it to Mandriva.
[...] using a fairly easy to use list of check-boxes (available in both the CUPS web interface and via System→Administration→Printing), it is not fine-grained enough to be as useful as PolicyKit can be. The CUPS policy itself is [...]
System-config-printer prevents me from pinting in a virtualbox. It autoconfigures usb printers and does not “let them go”. The only way I have found to disable this unwanted behavior is to uninstall the package.
Please file a bug report. Not sure what you mean by “let them go”.
Hello,
I’m trying to translate the following printer config instructions into changes I can make via system-config-printer: “For the queue, specify /dev/null instead of /dev/usb/lp0.”
system-config-printer makes no explicit mention of queue config. Which field should I modify to comply with the instructions, please?
Thanks,
Dennis
OK, I think I have done the necessary config via system-config-printer, by first modifying my ppd file to make /dev/null available as a device option.
Dennis: the field you want to change is ‘Device URI’. Just highlight the existing URI, replace it, then click OK.
Dear Tim,
How to install pycups-1.9.46 and system-config-printer-1.1.13 on ubuntu 8.04.
PS.: I am inexperient user.
Please help me!!!
ANd before all, how to updating system-config-printer 0.7.81 to 1.1.13???
how do you download the printer manager for pardus 08?
thanks
Miky: I think Pardus 08 already comes with system-config-printer.
Hi. Fine tool.
But i have some problems with my unusual configuration.
I’m using system-config-printer to access remote printers via samba. It asks for authentication each time i’m trying to print something. I can freely access resources of remote computers using active directory through my configured winbind pam module. Can this autentication be automatic? Or is it a CUPS problem wich should be fixed by CUPS team?
Perhaps you are using a newer version of GTK+ (e.g. 2.18.3), which prompts for authentication when required? Unfortunately it does not yet use gnome-keyring to cache it.
I’m using gtk-2.16.1. But, i mean that i want it to authenticate directly through pam using kerberos ticket as nautilus does. Saving a password is a worst solution.
CUPS can only currently authenticate with Kerberos directly between the client and the protected resource, i.e. no local scheduler. So it’s a question of configuring CUPS to do what you want, or else adding the needed support if it doesn’t yet do it.
we just bough a new printer – Canon ImageClass MF 4370 DN but we cannot find the driver to support this printer and currently our DOS is Ubuntu 8.10.
Can you help us urgently where to find and how to install the driver !!
Rgds
Catherine
Singapore