cups-lpd(8)
๐ cups-lpd โ the manual page, but make it cute ๐
okay bestie, so this is cups-lpd(8) from the OpenPrinting gang, and it's the little LPD mini-server. yes she's deprecated. yes we're still gonna read the whole thing together. sit down, grab a boba ๐ง
โจ NAME โจ
cups-lpd โ receive print jobs and report printer status to lpd clients (deprecated)
like. that's the whole job description. she receives print jobs and tells lpd clients what's up with the printer. but also she's deprecated so. ๐ซ
๐ SYNOPSIS ๐
cups-lpd [ -h hostname[:port] ] [ -n ] [ -o option=value ]
three little optional flags, that's it, she's low-maintenance ๐
๐ธ DESCRIPTION ๐ธ
So cups-lpd is the CUPS Line Printer Daemon โ the "LPD" mini-server โ and her whole personality is supporting legacy client systems that still speak the LPD protocol. old-school besties, we see you ๐ซถ
here's the thing tho: cups-lpd does not act as a standalone network daemon. she does not stand alone. she does not do the solo main character thing. instead she operates through any of the Internet "super-servers" like inetd(8), launchd(8), and systemd(8). she needs a friend to hold the door open for her. iconic behavior honestly ๐ชโจ
โจ OPTIONS โจ
-h hostname[:port]โ sets the CUPS server (and port) to use. you're telling her where to go, and optionally which door to knock on.-nโ disables reverse address lookups. normallycups-lpdwill try to discover the hostname of the client via a reverse DNS lookup, but with-nshe's like "no thank you, I don't need to know who you are" ๐-o name=valueโ inserts options for all print queues. most often this is used to disable the "l" filter so that remote print jobs are filtered as needed for printing. theinetd(8)example further down sets the"document-format"option to"application/octet-stream", which forces autodetection of the print file format. so she sniffs the file and figures it out herself. detective energy ๐
๐ CONFORMING TO ๐
okay so this is the part where we get real for a sec:
cups-lpd does not enforce the restricted source port number specified in RFC 1179. why? because using restricted ports does not prevent users from submitting print jobs. so it's pointless, bestie. while this behavior is different than standard Berkeley LPD implementations, it should not affect normal client operations. no cap.
also: the output of the status requests follows RFC 2569, Mapping between LPD and IPP Protocols. BUT โ since many LPD implementations stray from this definition, remote status reporting to LPD clients may be unreliable. she's doing her best but the other implementations are not beating the allegations ๐ญ
๐ ERRORS ๐
Errors are sent to the system log.
that's it. that's the section. she's not dramatic about it, she just logs it and moves on. periodt. ๐
๐ FILES ๐
/etc/inetd.conf/etc/xinetd.d/cups-lpd/System/Library/LaunchDaemons/org.cups.cups-lpd.plist
these are the places she hangs out. know them, love them. ๐
๐ NOTES ๐
so. the tea. โ
The cups-lpd program is deprecated and will no longer be supported in a future feature release of CUPS.
bestie she is literally on the way out. do not build your whole life around her. plan accordingly!! ๐ญ
๐ฅ PERFORMANCE ๐ฅ
cups-lpd performs well with small numbers of clients and printers. cute, cozy, intimate. ๐ฅฐ
However โ since a new process is created for each connection, and since each process must query the printing system before each job submission, it does not scale to larger configurations. she's a small-party girl, not a festival headliner.
We highly recommend that large configurations use the native IPP support provided by CUPS instead. okurrr ๐ข
๐จ SECURITY ๐จ
okay this one is the serious one, stay with me:
cups-lpd currently does not perform any access control based on the settings in cupsd.conf(5) or in the hosts.allow(5) or hosts.deny(5) files used by TCP wrappers. Therefore, running cups-lpd on your server will allow any computer on your network (and perhaps the entire Internet) to print to your server.
NOT ME LEAVING THE PRINTER DOOR WIDE OPEN ๐๐๐ this is not a vibe check, this is a vibe fail
While xinetd(8) has built-in access control support, you should use the TCP wrappers package with inetd(8) to limit access to only those computers that should be able to print through your server.
Also! cups-lpd is not enabled by the standard CUPS distribution. Please consult with your operating system vendor to determine whether it is enabled by default on your system. don't just assume she's running, go ask somebody ๐ซถ
๐ EXAMPLE ๐
If you are using inetd(8), add the following line to the inetd.conf file to enable the cups-lpd mini-server:
printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd \
-o document-format=application/octet-stream
copy it exactly bestie, character for character, do not freestyle this one ๐
CUPS includes configuration files for launchd(8), systemd(8), and xinetd(8). Simply enable the cups-lpd service using the corresponding control program. pick your favorite super-server and let her cook ๐
๐ฆ SEE ALSO ๐ฆ
cups(1), cupsd(8), inetd(8), launchd(8), xinetd(8), CUPS Online Help (http://localhost:631/help), RFC 2569
go read those too, iykyk ๐โจ
๐ COPYRIGHT ๐
Copyright ยฉ 2020-2024 by OpenPrinting.
and that's the whole page bestie!! ๐ this was cups-lpd(8) from the CUPS fam, dated 2021-02-28. she's deprecated, she's insecure, she doesn't scale, and honestly? we still love her. go use native IPP. mwah ๐โจ
๐ฆ where this page comes from
- alpine 3.22: cups-doc 2.4.18-r0 ยท Apache-2.0
- alpine 3.23: cups-doc 2.4.18-r0 ยท Apache-2.0
- alpine 3.24: cups-doc 2.4.19-r1 ยท Apache-2.0
- centos-stream 10: cups-lpd 1:2.4.10-18.el10 ยท Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- debian trixie: cups 2.4.10-3+deb13u1 ยท Apache-2.0-with-GPL2-LGPL2-Exception
- debian trixie: cups 2.4.10-3+deb13u2 ยท Apache-2.0-with-GPL2-LGPL2-Exception
- fedora 43: cups-lpd 1:2.4.14-2.fc43 ยท Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- fedora 43: cups-lpd 1:2.4.19-3.fc43 ยท Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- fedora 44: cups-lpd 1:2.4.16-7.fc44 ยท Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- fedora 44: cups-lpd 1:2.4.19-3.fc44 ยท Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- nixpkgs unstable: cups 2.4.19
- opensuse-leap 16.0: cups 2.4.19-160000.2.1 ยท Apache-2.0
- opensuse-leap 16.0: cups 2.4.19-160000.2.1 ยท Apache-2.0
- opensuse-leap 16.0: cups 2.4.19-160000.2.1 ยท Apache-2.0
- opensuse-leap 16.0: cups 2.4.19-160000.2.1 ยท Apache-2.0
- ubuntu questing: cups 2.4.12-0ubuntu3
- ubuntu questing: cups 2.4.12-0ubuntu3.10
- ubuntu resolute: cups 2.4.16-1ubuntu1 ยท Apache-2.0-with-GPL2-LGPL2-Exception
- ubuntu resolute: cups 2.4.16-1ubuntu1.3 ยท Apache-2.0-with-GPL2-LGPL2-Exception
- ubuntu stonking: cups 2.4.16-1ubuntu3 ยท Apache-2.0-with-GPL2-LGPL2-Exception
- Copyright ยฉ 2020-2024 by OpenPrinting
- Copyright ยฉ 2007-2019 by Apple Inc
- Copyright ยฉ 1997-2006 by Easy Software Products
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms