The Common Unix Printing System (CUPS) is a modular printing system for Unix-like computer operating systems that allows a computer to act as a powerful print server. A computer running CUPS is a host which can accept print jobs from client computers, process them, and send them to the appropriate printer. More information regarding the architecture of CUPS can be found [here](http://en.wikipedia.org/wiki/Common_Unix_Printing_System).
To check whether your printer works with CUPS and to what extent, you may visit the [OpenPrinting database](http://www.linuxprinting.org/printer_list.cgi).
# Install CUPS
Assuming your [pkgsrc](https://pkgsrc.org) tree lies at `/usr/pkgsrc`, type:
# cd /usr/pkgsrc/print/cups
# make install
# Modify rc.conf
Next copy cupsd startup script at /etc/rc.d:
# cp /usr/pkg/share/examples/rc.d/cupsd /etc/rc.d
Then add the following line to your /etc/rc.conf file:
And start the CUPS daemon, with:
# /etc/rc.d/cupsd start
# Install Foomatic PPD collection
The Foomatic PPD collection includes suitable PPDs for printers listed in the Foomatic printer/driver database. Together with the foomatic-filters package, this collection of PPDs allows many non-PostScript printers to function as if they were [PostScript](http://en.wikipedia.org/wiki/PostScript) printers:
# cd /usr/pkgsrc/print/foomatic-ppds
# make install
The following package adds Foomatic PPDs to the CUPS PPD database:
# cd /usr/pkgsrc/print/foomatic-ppds-cups
# make install
# Setup CUPS
Open a web browser and type in the address/location bar:
You will enter a web-based interface where you can manage your printing system (add printers, etc).
To print using cups from the command line without further modifications you have to use **/usr/pkg/bin/lpr**. Using simply **lpr** will not print using cups but the default NetBSD printing system. The same apply to the spool queue examination command **lpq**.
# Network configuration
## Server side
## Client side
* [OpenPrinting CUPS Quick Start](http://www.linux-foundation.org/en/OpenPrinting/Database/CUPSDocumentation)
* [BSDnexus forums / CUPS Howto](http://forums.bsdnexus.com/viewtopic.php?id=36)
Just for the record (I'm not sure where this fits in): To make it print, I had to
chown lp /dev/ulpt0 # usb
and install print/hpijs for my Deskjet (it is used by gs via the foomatic thing), then set some additional options in the web interface, e.g. a4 paper size. Conclusion: The web interface sucks, looking into the logs is indispensable.
## BSD lpr
I think I no longer need the BSD lpr, so i just did this to avoid confusion:
# chmod -x /usr/bin/lp*
# chmod -x /usr/sbin/lp*
## HP Printer
To use HP printers (like DeskJet, OfficeJet, PhotoSmart, Business InkJet, and some LaserJet models) and to not have this kind of error **/usr/pkg/libexec/cups/filter/foomatic-rip failed**, you need to install another package named hpijs :
# cd /usr/pkgsrc/print/hpijs
# make install clean clean-depends
# See also
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb