glfs/pst/printing/cups.xml
DJ Lucas a217f28c38 Added note to cups page about the new CUPS USB backend and usblp driver being incompatible.
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@8616 af4574ff-66df-0310-9fd7-8a98e5e911e0
2010-09-26 04:24:42 +00:00

474 lines
17 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY cups-download-http "http://ftp.easysw.com/pub/cups/&cups-version;/cups-&cups-version;-source.tar.bz2">
<!ENTITY cups-download-ftp "ftp://ftp.easysw.com/pub/cups/&cups-version;/cups-&cups-version;-source.tar.bz2">
<!ENTITY cups-md5sum "8776403ad60fea9e85eab9c04d88560d">
<!ENTITY cups-size "4.3 MB">
<!ENTITY cups-buildsize "79 MB">
<!ENTITY cups-time "0.7 SBU">
]>
<sect1 id="cups" xreflabel="CUPS-&cups-version;">
<?dbhtml filename="cups.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>CUPS-&cups-version;</title>
<indexterm zone="cups">
<primary sortas="a-CUPS">CUPS</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to CUPS</title>
<para>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.</para>
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Download (HTTP): <ulink url="&cups-download-http;"/></para>
</listitem>
<listitem>
<para>Download (FTP): <ulink url="&cups-download-ftp;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum: &cups-md5sum;</para>
</listitem>
<listitem>
<para>Download size: &cups-size;</para>
</listitem>
<listitem>
<para>Estimated disk space required: &cups-buildsize;</para>
</listitem>
<listitem>
<para>Estimated build time: &cups-time;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Required patch: <ulink
url="&patch-root;/cups-&cups-version;-fix_broken_locking-1.patch"/></para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">CUPS Dependencies</bridgehead>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended"><xref linkend="libjpeg"/>,
<xref linkend="libpng"/>, and
<xref linkend="libtiff"/></para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional"><!-- <xref linkend="pkgconfig"/>, -->
<xref linkend="tcpwrappers"/>,
<xref linkend="dbus"/>,
<xref linkend="acl"/>,
<xref linkend="linux-pam"/>,
<xref linkend="openldap"/>,
<xref linkend="gnutls"/> or <xref linkend="openssl"/> (looked for in that order),
<xref linkend="heimdal"/> or <xref linkend="mitkrb"/>,
<xref linkend="php"/>,
<xref linkend="python"/>,
<xref linkend="icedtea6"/> or <xref linkend="jdk"/>,
<ulink url="http://www.openslp.org/">OpenSLP</ulink>,
<ulink url="http://packages.debian.org/unstable/source/libpaper">libpaper</ulink>,
<ulink url="http://www.easysw.com/htmldoc/">HTMLDOC</ulink>, and
<ulink url="http://valgrind.org/">Valgrind</ulink> (optionally used if
running the test suites)</para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/cups"/></para>
</sect2>
<sect2 role="installation">
<title>Installation of CUPS</title>
<para>Create an <systemitem class="username">lp</systemitem> user, as
<application>CUPS</application> will create some files owned by this user.
(The <systemitem class="username">lp</systemitem> user is the default used
by <application>CUPS</application>, but may be changed to a different user
by passing a parameter to the <command>configure</command> script.) Use the
following command as the <systemitem class="username">root</systemitem>
user:</para>
<screen role="root"><userinput>useradd -c "Print Service User" -d /dev/null -g lp -s /bin/false -u 9 lp</userinput></screen>
<note>
<para>If you plan to use a USB printer with
<application>CUPS</application>, do not enable the
<quote>usblp</quote> driver as either built-in or as a module in
your kernel configuration as it will cause the new
<application>CUPS</application> USB backend to fail.
<filename>/var/log/sys.log</filename> will contain entries similar to the
following:</para>
<screen>kernel: [54631.796465] usb 4-1: usbfs: interface 0 claimed by usblp while 'usb' sets config #1</screen>
<para>The kernel config option is
<parameter>CONFIG_USB_PRINTER</parameter>
and can be found in menuconfig under
<quote>Device Drivers ---> USB support --->
USB Printer support</quote>.</para>
</note>
<para>Install <application>CUPS</application> by running the
following commands:</para>
<screen><userinput>patch -Np1 -i ../cups-&cups-version;-fix_broken_locking-1.patch &amp;&amp;
./configure &amp;&amp;
make</userinput></screen>
<para>To test the results, issue: <command>make check</command>. This will
run a basic test suite without any load testing. If you wish to run the
tests specifying non-default parameters, issue: <command>make test</command>.
Note that the <quote>torture load testing</quote> test uses more resources
than those displayed in the prompt.</para>
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>make install</userinput></screen>
<para>The <application>man</application> files are installed in compressed
(<filename class='extension'>.gz</filename>) format. If desired, use the
following commands to uncompress them:</para>
<screen role="root"><userinput>gunzip -v /usr/share/man/man{\
1/{ppd{po,merge,html,c,i},cancel,cups{-config,test{dsc,ppd}},\
lp{,options,passwd,q,rm,r,stat}}.1,\
5/{{classes,client,cups-snmp,cupsd,printers,subscriptions,mailto}.conf,\
mime.{convs,types},ppdcfile}.5,\
7/{backend,filter,notifier,drv}.7,\
8/{accept,cups{ctl,accept,filter,d,addsmb,enable,\
-{deviced,driverd,lpd,polld}},lp{admin,info,move,c}}.8}.gz &amp;&amp;
rm -v /usr/share/man/man8/{{,cups}reject,accept,cupsdisable}.8.gz &amp;&amp;
ln -v -s cupsaccept.8 /usr/share/man/man8/reject.8 &amp;&amp;
ln -v -s cupsaccept.8 /usr/share/man/man8/cupsreject.8 &amp;&amp;
ln -v -s cupsaccept.8 /usr/share/man/man8/accept.8 &amp;&amp;
ln -v -s cupsenable.8 /usr/share/man/man8/cupsdisable.8</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>The basic default behavior of the installation is appropriate for
LFS systems. <application>CUPS</application> files are placed in
<filename class="directory">/usr/{bin,include,lib,sbin,share/cups}</filename>,
<filename class="directory">/var/{cache,log,run,spool}</filename>, and
<filename class="directory">/etc/{cups,pam.d,dbus-1/system.d</filename></para>
</sect2>
<sect2 role="configuration">
<title>Configuring CUPS</title>
<para>Configuration of <application>CUPS</application> is dependent on
the type of printer and can be complex. Generally, PostScript printers
are easier. For detailed instructions on configuration and use of
<application>CUPS</application>, see <ulink
url="http://www.cups.org/documentation.php"/>. The Software Administrators
Manual and Software Users Manual are particularly useful.</para>
<para>For non-PostScript printers to print with
<application>CUPS</application>, you need to install
<xref linkend="gs"/> to convert PostScript to raster images
and a driver (e.g., from <xref linkend="gutenprint"/>) to convert
the resulting raster images to a form that the printer understands.
<ulink url="http://www.linuxprinting.org/foomatic.html">Foomatic</ulink>
drivers use Ghostscript to convert PostScript to a printable form directly,
but this is considered to be a hack by
<application>CUPS</application> developers.</para>
<!-- This should be obvious, not to mention the new problem with usblp.
Omitting completely for now.
<sect3 role="kernel" id="cups-kernel">
<title>Kernel Configuration</title>
<para>To use your printer you will likely need the appropriate drivers
enabled in the kernel &mdash; for example, <quote>Parallel printer
support</quote> if you have a parallel port printer, or <quote>USB Printer
support</quote> for a USB printer.</para>
</sect3>
-->
<sect3 id="cups-init">
<title>Boot Script</title>
<para>During the installation, <application>CUPS</application> added
startup files in <filename class="directory">/etc/rc.d</filename>.
These scripts will work in most cases, but will fail if you provide
printers to <application>Samba</application> clients. Additionally,
they are not consistent with standard LFS style scripts. Replace the
installed scripts with the scripts and symlinks included in the
<xref linkend="bootscripts"/> package:</para>
<indexterm zone="cups cups-init">
<primary sortas="f-cups">cups</primary>
</indexterm>
<screen role="root"><userinput>make install-cups</userinput></screen>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>accept, cancel, cups-config, cupsaccept, cupsaddsmb, cupsctl,
cupsd, cupsdisable, cupsenable, cupsfilter, cupsreject, cupstestdsc,
cupstestppd, lp, lpadmin, lpc, lpinfo, lpmove, lpoptions, lppasswd,
lpq, lpr, lprm, lpstat, ppdc, ppdhtml, ppdi, ppdmerge, ppdpo, reject</seg>
<seg>libcups.{so,a}, libcupscgi.{so,a}, libcupsdriver.{so,a},
libcupsimage.{so,a}, libcupsmime.{so,a}, libcupsppdc.{so,a}, and
various filters and backend drivers</seg>
<seg>/etc/cups, /usr/include/cups, /usr/lib/cups, /usr/share/cups,
/usr/share/doc/cups-&cups-version;, and
/var/{cache,log,run,spool}/cups</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="accept">
<term><command>accept</command></term>
<listitem>
<para>instructs the printing system to accept print jobs to the
specified destinations.</para>
<indexterm zone="cups accept">
<primary sortas="b-accept">accept</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="cancel-cups">
<term><command>cancel</command></term>
<listitem>
<para>cancels existing print jobs from the print queues.</para>
<indexterm zone="cups cancel-cups">
<primary sortas="b-cancel">cancel</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="cups-config">
<term><command>cups-config</command></term>
<listitem>
<para>is a <application>CUPS</application>
program configuration utility.</para>
<indexterm zone="cups cups-config">
<primary sortas="b-cups-config">cups-config</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="cupsaddsmb">
<term><command>cupsaddsmb</command></term>
<listitem>
<para>exports printers to the <application>Samba</application>
software for use with Windows clients.</para>
<indexterm zone="cups cupsaddsmb">
<primary sortas="b-cupsaddsmb">cupsaddsmb</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="cupsd">
<term><command>cupsd</command></term>
<listitem>
<para>is the scheduler for the Common Unix Printing System.</para>
<indexterm zone="cups cupsd">
<primary sortas="b-cupsd">cupsd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="cupstestppd">
<term><command>cupstestppd</command></term>
<listitem>
<para>tests the conformance of PPD files.</para>
<indexterm zone="cups cupstestppd">
<primary sortas="b-cupstestppd">cupstestppd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="disable">
<term><command>disable</command></term>
<listitem>
<para>stops the named printers or classes.</para>
<indexterm zone="cups disable">
<primary sortas="b-disable">disable</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="enable">
<term><command>enable</command></term>
<listitem>
<para>starts the named printers or classes.</para>
<indexterm zone="cups enable">
<primary sortas="b-enable">enable</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lp-cups">
<term><command>lp</command></term>
<listitem>
<para>submits files for printing or alters a pending job.</para>
<indexterm zone="cups lp-cups">
<primary sortas="b-lp">lp</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lpadmin">
<term><command>lpadmin</command></term>
<listitem>
<para>configures printer and class queues provided by
<application>CUPS</application>.</para>
<indexterm zone="cups lpadmin">
<primary sortas="b-lpadmin">lpadmin</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lpc-cups">
<term><command>lpc</command></term>
<listitem>
<para> provides limited control over printer and class queues
provided by <application>CUPS</application>.</para>
<indexterm zone="cups lpc-cups">
<primary sortas="b-lpc">lpc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lpinfo">
<term><command>lpinfo</command></term>
<listitem>
<para>lists the available devices or drivers known to the
<application>CUPS</application> server.</para>
<indexterm zone="cups lpinfo">
<primary sortas="b-lpinfo">lpinfo</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lpmove">
<term><command>lpmove</command></term>
<listitem>
<para>moves the specified job to a new destination.</para>
<indexterm zone="cups lpmove">
<primary sortas="b-lpmove">lpmove</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lpoptions">
<term><command>lpoptions</command></term>
<listitem>
<para>displays or sets printer options and defaults.</para>
<indexterm zone="cups lpoptions">
<primary sortas="b-lpoptions">lpoptions</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lppasswd">
<term><command>lppasswd</command></term>
<listitem>
<para>adds, changes or deletes passwords in the
<application>CUPS</application> digest password file
<filename>passwd.md5</filename>.</para>
<indexterm zone="cups lppasswd">
<primary sortas="b-lppasswd">lppasswd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lpq-cups">
<term><command>lpq</command></term>
<listitem>
<para>shows the current print queue status on the named printer.</para>
<indexterm zone="cups lpq-cups">
<primary sortas="b-lpq">lpq</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lpr-cups">
<term><command>lpr</command></term>
<listitem>
<para>submits files for printing.</para>
<indexterm zone="cups lpr-cups">
<primary sortas="b-lpr">lpr</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lprm-cups">
<term><command>lprm</command></term>
<listitem>
<para>cancels print jobs that have been queued for printing.</para>
<indexterm zone="cups lprm-cups">
<primary sortas="b-lprm">lprm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lpstat-cups">
<term><command>lpstat</command></term>
<listitem>
<para>displays status information about the current classes, jobs,
and printers.</para>
<indexterm zone="cups lpstat-cups">
<primary sortas="b-lpstat">lpstat</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="reject">
<term><command>reject</command></term>
<listitem>
<para>instructs the printing system to reject print jobs to the
specified destinations.</para>
<indexterm zone="cups reject">
<primary sortas="b-reject">reject</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>