Retiring lpr and lpd

Dag-Erling Smørgrav <[email protected]> Fri, 20 Feb 2026 19:40:54 +0100
Newsgroups gmane.os.freebsd.architechture
Message-ID <[email protected]>
Hi,

The lp* family of printing utilities have received practically no
maintenance in two decades and are showing their age.  What's worse,
most of them are setugid, and lpd(8) is a network-facing daemon with
IP-based authentication and little to no input validation.  Furthermore,
better-maintained alternatives are available from ports: print/lprng is
a drop-in replacement derived from the same code base, while print/cups
provides far more functionality and a compatible command-line interface.

Unless someone steps up and does a credible job of modernizing these
utilities, we have no other choice than to retire lp(1), lpc(8), lpd(8),
lpq(1), lpr(1), lprm(1), lptest(1), and pac(8) from base.

In the next few days, I will commit patches to add deprecation notices
to all relevant manual pages (D55381) and switch the LPR build option
from default-on to default-off (D55380).  The code will remain in the
tree, and remain buildable, but unless the situation changes, it will be
removed from the tree no later than shortly before stable/16 is branched
in the fall of 2027.

DES
-- 
Dag-Erling Smørgrav - [email protected]