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.

Please note that I no longer maintain system-config-printer. Please visit its new home at GitHub.

Download

Download older 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 GitHub.

Translations

Language translations should be submitted through Zanata.

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 at GitHubThis 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

Comments

363 responses to “system-config-printer”

  1. Tom Stocker avatar
    Tom Stocker

    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

  2. tim avatar

    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.

  3. […] 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 […]

  4. Horacio avatar
    Horacio

    Epson Stylus color 600
    Not working in mandriva linux 2009.1 in both GNOME and KDE4

  5. tim avatar

    Horacio: Report it to Mandriva.

  6. […] 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 […]

  7. anarcho_syndicalist avatar
    anarcho_syndicalist

    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.

  8. tim avatar

    Please file a bug report. Not sure what you mean by “let them go”.

  9. Dennis Mendelson avatar
    Dennis Mendelson

    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

  10. Dennis Mendelson avatar
    Dennis Mendelson

    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.

  11. tim avatar

    Dennis: the field you want to change is ‘Device URI’. Just highlight the existing URI, replace it, then click OK.

  12. K.r.b.brandao avatar
    K.r.b.brandao

    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!!!

  13. K.r.b.brandao avatar
    K.r.b.brandao

    ANd before all, how to updating system-config-printer 0.7.81 to 1.1.13???

  14. miky avatar

    how do you download the printer manager for pardus 08?
    thanks

  15. tim avatar

    Miky: I think Pardus 08 already comes with system-config-printer.

  16. Sergey avatar
    Sergey

    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?

  17. tim avatar

    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.

  18. Sergey avatar
    Sergey

    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.

  19. tim avatar

    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.

  20. catherine avatar
    catherine

    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

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.