%general-entities; ]> $LastChangedBy$ $Date$ Cups-&cups-version; Cups Introduction to Cups The Common Unix Printing System (CUPS) is a print spooler and associated utilities. It is based on the "Internet Printing Protocol" and provides printing services to most PostScript and raster printers. &lfs71_checked; Package Information Download (HTTP): Download (FTP): Download MD5 sum: &cups-md5sum; Download size: &cups-size; Estimated disk space required: &cups-buildsize; Estimated build time: &cups-time; Cups Dependencies Recommended , and Optional , , or , libpaper, , , , , , and User Notes: Kernel Configuration There is a conflict between the Cups libusb backend and the usblp kernel driver. If you want to use Cups with libusb do not enable USB Printer support in your kernel. If you want to use the kernel usblp driver enable the following options in your kernel configuration and recompile the kernel: Device Drivers ---> [*] USB support ---> ... Enable support for either UHCI or OHCI, not both: [*] OHCI HCD support [*] UHCI HCD (most Intel and VIA) support ... [*] USB Printer support If you have a parallel printer enable the following options in your kernel configuration and recompile the kernel: Device Drivers ---> [*] Parallel port support ---> [*] PC-style hardware ... Character devices ---> [*] Parallel printer support cups Installation of Cups You will need to add the lp user, as Cups will create some files owned by this user. (The lp user is the default used by Cups, but may be changed to a different user by passing a parameter to the configure script.) Use the following command as the root user: useradd -c "Print Service User" -d /var/spool/cups -g lp -s /bin/false -u 9 lp You will also need dedicated group that will contain users allowed to do Cups administrative tasks. Add the group by running the following command as the root user: groupadd -g 19 lpadmin If you want to add an user to the Cups administrative group, run the following command as the root user: usermod -a -G lpadmin <username> If you didn't install , use the following sed to change the default browser that will be used to access the Cups web interface: sed -i 's#@CUPS_HTMLVIEW@#firefox#' desktop/cups.desktop.in Replace firefox with the web browser of your choice. Install Cups by running the following commands: ./configure --with-rcdir=/tmp/cupsinit \ --with-docdir=/usr/share/cups/doc \ --with-system-groups=lpadmin && make This package does not have working testsuite. Now, as the root user: make install && rm -rf /tmp/cupsinit && ln -sv ../cups/doc /usr/share/doc/cups-&cups-version; If you have built Cups with libusb support, fix the backend permissions so that it will be executed as the root user. Run the following command as the root user: chmod -v 744 /usr/lib/cups/backend/usb The man files are installed in compressed (.gz) format. If desired, use the following commands to uncompress them as the root user: pushd /usr/share/man/ && find -name cups\*gz -type l -print -delete && find -name \*gz -exec gunzip -v {} \; && popd && ln -v -s cupsaccept.8 /usr/share/man/man8/reject.8 && ln -v -s cupsaccept.8 /usr/share/man/man8/cupsreject.8 && ln -v -s cupsaccept.8 /usr/share/man/man8/accept.8 && ln -v -s cupsenable.8 /usr/share/man/man8/cupsdisable.8 Command Explanations --with-rcdir=/tmp/cupsinit: This switch tells build process to install the shipped bootscript into /tmp instead of /etc/rc.d. --with-system-groups=lpadmin: This switch ensures that only lpadmin will be used as the Cups administrative group. : Use this switch if you have installed , but wish to use the kernel usblp driver. : Use this switch if you have installed libpaper and wish to use it with Cups. : This switch tells build process to use instead of . Current version of GnuTLS might produce lot of warnings during the Cups build. Configuring Cups Configuration of Cups is dependent on the type of printer and can be complex. Generally, PostScript printers are easier. For detailed instructions on configuration and use of Cups, see . The Software Administrators Manual and Software Users Manual are particularly useful. For non-PostScript printers to print with Cups, you need to install to convert PostScript to raster images and a driver (e.g., from ) to convert the resulting raster images to a form that the printer understands. Foomatic drivers use Ghostscript to convert PostScript to a printable form directly, but this is considered to be a hack by Cups developers. Linux PAM Configuration The default Cups PAM configuration file should work by default. However, it does not make use of the BLFS specific PAM configuration files. If you have built Cups with PAM support, create BLFS specific PAM configuration file by running the following command as the root user: cat >> /etc/pam.d/cups << "EOF" # Begin /etc/pam.d/cups auth include system-auth account include system-account session include system-session # End /etc/pam.d/cups EOF Boot Script If you want the Cups to start automatically when the system is booted, install the init script included in the package: cups make install-cups Contents Installed Programs Installed Libraries Installed Directories accept, cancel, cupsaccept, cupsaddsmb, cups-config, cupsctl, cupsd, cupsdisable, cupsenable, cupsfilter, cupsreject, cupstestdsc, cupstestppd, ipptool, lp, lpadmin, lpc, lpinfo, lpmove, lpoptions, lppasswd, lpq, lpr, lprm, lpstat, ppdc, ppdhtml, ppdi, ppdmerge, ppdpo and reject libcupscgi.so, libcupsimage.so, libcupsmime.so, libcupsppdc.so and libcups.so /etc/cups, /usr/include/cups, /usr/lib/cups, /usr/share/cups, /usr/share/doc/cups-&cups-version;, /var/cache/cups, /var/log/cups, /var/run/cups and /var/spool/cups Short Descriptions accept instructs the printing system to accept print jobs to the specified destinations. accept cancel cancels existing print jobs from the print queues. cancel cupsaddsmb exports printers to the Samba software for use with Windows clients. cupsaddsmb cups-config is a Cups program configuration utility. cups-config cupsctl updates or queries the cupsd.conf file for a server. cupsctl cupsd is the scheduler for the Common Unix Printing System. cupsd cupsfilter is a front-end to the Cups filter subsystem which allows you to convert a file to a specific format. cupsfilter cupstestdsc tests the conformance of PostScript files. cupstestdsc cupstestppd tests the conformance of PPD files. cupstestppd ipptool sends IPP requests to the specified URI and tests and/or displays the results. ipptool lp submits files for printing or alters a pending job. lp lpadmin configures printer and class queues provided by Cups. lpadmin lpc provides limited control over printer and class queues provided by Cups. lpc lpinfo lists the available devices or drivers known to the Cups server. lpinfo lpmove moves the specified job to a new destination. lpmove lpoptions displays or sets printer options and defaults. lpoptions lppasswd adds, changes or deletes passwords in the Cups digest password file passwd.md5. lppasswd lpq shows the current print queue status on the named printer. lpq lpr submits files for printing. lpr lprm cancels print jobs that have been queued for printing. lprm lpstat displays status information about the current classes, jobs, and printers. lpstat ppdc compiles PPDC source files into one or more PPD files. ppdc ppdhtml reads a driver information file and produces a HTML summary page that lists all of the drivers in a file and the supported options. ppdhtml ppdi imports one or more PPD files into a PPD compiler source file. ppdi ppdmerge merges two or more PPD files into a single, multi-language PPD file. ppdmerge ppdpo extracts UI strings from PPDC source files and updates either a GNU gettext or Mac OS X strings format message catalog source file for translation. ppdpo reject instructs the printing system to reject print jobs to the specified destinations. reject libcups.so contains the Cups API functions. libcups.so