cupsys for Debian ---------------------- This package contains the Common UNIX Printing System(tm), or CUPS(tm) for short. CUPS is a new printing system for Unix that acts as a substitute for System V or BSD printing systems; it supports a more comprehensive driver model, more protocols, and Web administration, among other things. Internally, CUPS uses the new Internet Printing Protocol (IPP) described in RFCs 2565 through 2569. The terms "CUPS" and "Common UNIX Printing System" are trademarks of Easy Software Products, the author of the system. This package is a derivative of the CUPS system, modified for Debian and possibly containing modifications and fixes that are not present in the standard CUPS package. For a comprehensive list of changes from the original source, see the diff file from the source package. For more information about the legal stuff surrounding this package, see the Debian copyright file or the CUPS Web site (www.cups.org). After installation, CUPS is pretty close to being ready to go. The last step is to add administrative access; the "lpadmin" group has been created and granted administrative rights to CUPS. You may need to add users to this group in order to add printers, modify settings, etc. The printers can be added with either the lpadmin program or the web interface, which is located at http://localhost:631/admin by default. Important Security Notes ------------------------ - By default, cupsys is configured to only allow connections to printers from localhost, effectively disabling network printing. The previous default was to allow anyone to connect to printers from any location - definitely not a smart move. You can change these defaults by editing /etc/cups/cupsd.conf; the access controls are at the end of the file. Be sure you only allow access from the locations you trust, or require authentication. - CUPS used to support a file backend that was handled internally by cupsd. This was only intended to be used for testing filters, and not in production use, as it can be a security risk and will drop jobs under certain circumstances. In keeping with that, the file "backend" has been renamed to "test", and the lpadmin command no longer rewrites bare path URIs (either to "file:" or "test:"). If you need a backend that dumps a completed job to a file on the filesystem, you should write a separate backend and put it in /usr/lib/cups/backend. See the CUPS documentation for information on how to do this. Drivers ------- The CUPS software includes generic drivers for several brands of printers. At the moment, this includes HP LaserJets and DeskJets, various Epson and Okidata printers, and Dymo label printers. There are also other packages containing CUPS printer drivers. If any of those were written explicitly for your printer, chances are that it will support your printer better than the generic drivers that ship with CUPS. PostScript printers often ship with PPD files supplied by the printer manufacturer. Any valid PPD for a PostScript printer is a valid CUPS driver. To enable them for use with CUPS, copy the PPDs into /usr/share/cups/model; they should then be available for use with lpadmin -m and the Web interface for adding printers. If you find a CUPS driver that isn't packaged for Debian and you'd like it to be, you can contact me and let me know where the driver is, and I'll get to it as soon as I can. Or, you can package them yourself. See below for details. Packaging --------- There are six packages provided by CUPS: the server, the GhostScript-based PostScript translator included with CUPS, the primary command-line client programs, the BSD client and server compatibility programs, and the library and development packages. The CUPS BSD commands and cups-lpd daemon are separated into their own package (cupsys-bsd); the hope is to make it possible to run CUPS and some other BSD-style printing system (such as lpr) side-by-side for testing purposes. If you encounter any trouble doing this, file a bug. It's known that CUPS conflicts with LPRng, since LPRng provides some System V printing commands as well; this problem will (hopefully) be dealt with in time. Add-ons for CUPS (such as drivers, backends, clients, etc.) should depend on the proper packages. If your package is CUPS-specific, you should name it so it can be easily identified as a CUPS package, with names such as: cupsys-driver-foo(for a driver for Foo printers) cupsys-backend-bar(for a backend to print to Bar printers) cupsys-client-baz(for a client module to hook Baz into CUPS) Integration with Samba ---------------------- It is possible to configure Samba to share CUPS printers to Microsoft clients. There are two ways to do this: 1. Configure Samba to use System V printing. This can be done by adding the following information to Samba's smb.conf (/etc/samba/smb.conf on Debian): [global] printing = sysv printcap name = lpstat [printers] lpq command = /usr/bin/lpstat %p lprm command = /usr/bin/cancel %p-%j print command = /usr/bin/lp -d%p -oraw %s ; /bin/rm -f %s This method will require installation of the cupsys-client package. 2. Recent versions of Samba have direct CUPS support. Check the Samba documentation for the status of this support in Debian's packages. If this is present, you can configure Samba as follows: [global] printing = cups printcap name = cups For more tips on integration with Samba, check out the man page for cupsaddsmb, which is part of the cupsys-client package. Miscellaneous Tips ------------------ - CUPS has support for browsing, which uses broadcast traffic to auto-discover other CUPS servers and printers and make them available to clients. This is turned off in the default configuration. If it is turned on, it may trigger demand dialers and increase traffic on the network. To help prevent this, set the BrowseAddress parameter to only advertise CUPS printers on specific interfaces. As a potentially more robust option, CUPS also supports SLP (Service Location Protocol). - You may encounter some problems using the "enable" command under bash, as "enable" is a builtin there. As a workaround, I've created the "cupsenable" command, which acts exactly as "enable" does. There are also "cupsdisable", "cupsaccept", and "cupsreject" commands for consistency. - There is an online database with PPDs for lots of different printers at http://www.linuxprinting.org/. These will often require the "cupsomatic" utility; this can be found in the foomatic-bin package. Enjoy! -- Jeff Licquia <licquia@debian.org>