Re: Retiring lpr and lpd

Shawn Webb <[email protected]> Thu, 26 Feb 2026 20:21:52 +0000
Newsgroups gmane.os.freebsd.architechture
Message-ID <6y2qs4mhfdqgfsj4niklkuohx4anscvelf5vt72r4hocvhem5z@5r7pitfhkuyp>
--o2abac2bknx74lyl
Content-Type: text/plain; protected-headers=v1; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Subject: Re: Retiring lpr and lpd
MIME-Version: 1.0

On Fri, Feb 20, 2026 at 07:40:54PM +0100, Dag-Erling Sm=F8rgrav wrote:
> Hi,
>=20
> 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.
>=20
> 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.
>=20
> 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.

I should prefix this with a note: I really don't care what happens
here. I lean towards removal of bit rot in a more general sense, but I
have no strong opinions.

With that said, a random idea poppped in my head. I'm not advocating
for the idea, I'm simply hoping to convey the idea.

What if the lpr/lpd (and related?) components (I'm just gonna say lpr
=66rom now on to be brief, but please understand I mean any/all
components involved) are separated out to a wholly separate git repo
(specific to lpr).

This repo would be self-contained and buildable as an out-of-tree
component. So you'd have your BSD-flavor Makefiles that use the normal
bsd.lib.mk, bsd.prog.mk, (and bsd.*.mk, ...).

Then, a separate discussion can be held whether to generate a new
ports entry. This at least gets the components out of base, but usable
for those users who need ;it. Users could clone the repo, cd to it,
and `make install` it).

This would provide a middle-ground, where a piece of software that is
known to be problematic is still useable, but not via normal channels.
Operators would be explicitly opting into lpr.

Thanks,

--=20
Shawn Webb
Cofounder / Security Engineer
HardenedBSD

Signal Username:  shawn_webb.74
Tor-ified Signal: +1 303-901-1600 / shawn_webb_opsec.50
https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A=
4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc

--o2abac2bknx74lyl
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEA6TL67gupaZ9nzhT/y5nonf44foFAmmgq1gACgkQ/y5nonf4
4frkaQ/+KffP14f1/gz0BygzIokZxviL4T7WGZoR1obD0eIJmjstMe2FV69Eq92r
eYFOhtD8RnuDOnFVmNs+7gJiQQmgy63Z7D+s11SAWDKT8wqfNmwTZ0VJAq1ofmNZ
za8VPn39nXIj6dP01bX9wmjgtdNgOYptLE9E1kPgHLPVzlFvXw8q3x0cWwUM5Yr5
kInNyrwtzVb6Is4m4TUNWetNtufZ13YpLA95QRSV99CunZCod6ArgaswmzURZU87
1eUyngvBxivGx9ijsoUQ5g/RHWjZUfQsBe8REhLuNjQSL/YhZx8jsxXB1O6cvZn2
lvxOa/3pgpv/uRHm+eZPFkPgWJuFzbeQlHQjW2JZENtTJQRzeS1AFUvDgfsQhkR4
2BR/NiWU6mwC4eiCNTLZR23oxv8ryiO8r+Qyc5d5mAuqChe24FlKkkz6HuJwJ4C1
9NR8Yepb98WRuWqzKewf11kR8Zgcwb+PqDztAReDtAlRvGKXrtXGwdtg5HXLNOvn
U2vDV+uBaTdfjJKhzv/hbUPjKeWJCej68PnXPg2Zd85XYlHor2cE3ahxPiG89G0N
V7M82GGT6NA6kCQ06Uf383bniQMArvljqEwW0nNI97icyyL1Icy0UFSevHr0//eN
vcS2DZB68ZWJb3ElsLZ/7PyZfT5v28bZ3EYLSs5ReS9B/nLpal8=
=PJ3i
-----END PGP SIGNATURE-----

--o2abac2bknx74lyl--