• Stars
    star
    160
  • Rank 234,703 (Top 5 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 9 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Graphical user interface for CUPS administration

system-config-printer

It uses IPP to configure a CUPS server. Additionally it provides dBUS interface for several operations which aren't directly available in cupsd, and automatic USB printer installation daemon for non-IPP-over-USB printers.

The alternatives for the graphical configuration tool are CUPS Web interface, desktop control-center or lpadmin command line tool if you need to install printer manually which may not be needed in recent cases.

When I do not need printer setup tool as S-C-P?

If the application where you print from has an up-to-date print dialog (uses the current CUPS API) and your printer is set up for driverless printing (has AirPrint/IPP Everywhere/IPP-over-USB support, opened port 631, lies in your local network and Avahi is running, IPP and mDNS is enabled in your firewall, ipp-usb is installed if your printer is connected by USB), you don't to install the printer at all. The dialog is able to pick up the printer right before you open the dialog and it disappears once you don't need it (reappearing next time you open the dialog again). This appearing and disappearing printer is called CUPS temporary queue.

The devices supporting AirPrint/IPP Everywhere appear since 2010 (IPP-over-USB devices a bit later), so if your device was made after 2010, there is a great chance it supports the standards.

From the dialogs I'm aware of the temporary queues are currently supported in any GTK3 based application (evince, gvim, gedit, firefox if you are on GNOME and choose system dialog for printing...) and in Libreoffice.

Future with CUPS 3.0:

CUPS 3.0 will divide the current CUPS in several modules - command line tools, library, CUPS Local server and CUPS Sharing server. CUPS Local server will be designed as lightweight for desktop usage, supporting only CUPS temporary queues. CUPS Sharing server will be more like the current cupsd, supporting permanent driverless queues, suited for servers.

system-config-printer is often used on desktops where will be CUPS Local server installed by default. Since the server will support only CUPS temporary queues, system-config-printer will need to work with IPP services which are on localhost (USB devices, printer applications and permanent driverless queues from CUPS Sharing server if installed as well), in local network or defined by printer profiles, if system-config-printer should work with CUPS 3.0.

Is S-C-P required in system with CUPS 3.0?

Regarding printer setup tools OpenPrinting current plans are to integrate printer setup dialog into common print dialog, which would enable non-driverless printer installation (via printer application) right when user needs it - right before the printing.

dBUS interface (but probably not the same methods) will be available in CUPS 3.0 project and since non-driverless devices are less common with time OpenPrinting group agreed there won't be an automatic installation mechanism for them.

So the standalone configuration tool like system-config-printer isn't a priority in system with CUPS 3.0, but it can exist together with CUPS 3.0 if updated. The next point is connected to the matter.

NEW DEVELOPER OR CO-MAINTAINER WANTED:

I'm looking for a new developer or co-maintainer for system-config-printer and pycups, who would update/help to update them to the current standards.

In case of system-config-printer it consists:

  • migration to GTK 4,
  • migration of dbus code because dbus-python is deprecated,
  • support for installing printer applications from various sources (.rpm, .deb, snap, flatpak),
  • support for managing IPP services instead of permanent CUPS queues.
  • implementation of unit tests and overall updating the python code to current PEPs

The project is kept in maintenance mode (accepting and testing sent patches, limited new development) until there is such a person.

Build requirements:

  • development packages for:
    • cups
    • gettext
    • glib2
    • libusb
    • python3
    • systemd
  • tools:
    • autoconf
    • autoconf-archives
    • automake
    • desktop-file-install
    • intltool
    • xmlto

Runtime requirements:

  • any desktop notification daemon
  • dbus-x11
  • gobject-introspection
  • gtk3
  • libnotify
  • python3-cairo
  • python3-cups
  • python3-dbus
  • python3-firewall
  • python3-gobject
  • python3-pycurl
  • (optional) python3-smbc

How to compile and install:

$ ./bootstrap
$ ./configure
$ make
$ sudo make install

How to uninstall:

$ sudo make uninstall

Translations:

Translations are available at Fedora Weblate. If you want to update translations, please update it in Weblate. The Weblate then creates automatic PR, which keeps upstream project and Weblate project in synch.

More Repositories

1

cups

OpenPrinting CUPS Sources
C
1,040
star
2

cups-filters

filters, backends, driverless utility, ... - Everything which CUPS 2.x needs to be used on non-Mac systems
C
153
star
3

ipp-usb

ipp-usb -- HTTP reverse proxy, backed by IPP-over-USB connection to device
Go
133
star
4

ps-printer-app

PostScript Printer Application
PostScript
37
star
5

hplip-printer-app

HPLIP Printer Application
C
37
star
6

libcups

OpenPrinting CUPS Library Sources
C
36
star
7

ghostscript-printer-app

Ghostscript Printer Application
PostScript
28
star
8

goipp

Package goipp implements the IPP core protocol in pure Go (RFC 8010)
Go
27
star
9

cups-snap

Complete CUPS printing stack in a snap
C
23
star
10

gutenprint-printer-app

Gutenprint Printer Application
PostScript
18
star
11

openprinting.github.io

Organization Pages for OpenPrinting
HTML
12
star
12

foomatic-db

OpenPrinting printer support database
HTML
10
star
13

cups-browsed

C
7
star
14

pappl-retrofit

PPD/Classic CUPS driver retro-fit Printer Application Library
C
7
star
15

pyppd

A CUPS PostScript Printer Driver's compressor and generator
Python
6
star
16

foomatic-db-engine

OpenPrinting printer support database - database engine
Perl
6
star
17

cups-sharing

Sharing server for CUPS 3.0
M4
6
star
18

foomatic-db-webapp

OpenPrinting printer support database - web app of OpenPrinting web site
PHP
5
star
19

cups-local

Local server for CUPS 3.0
C
5
star
20

cups-commands

CUPS commands
C
3
star
21

printer-application-framework

C
3
star
22

libcupsfilters

C
2
star
23

braille-printer-app

Shell
2
star
24

foomatic-db-engine-4

OpenPrinting printer support database - database engine, 4.0.x series
Perl
2
star
25

libppd

C
2
star
26

foomatic-db-nonfree

OpenPrinting printer support database - non-free PPD files
Shell
2
star
27

fuzzing

Fuzzing for OpenPrinting
C
1
star