Re: Retiring lpr and lpd
"Enji Cooper (yaneurabeya)" <[email protected]> Fri, 20 Feb 2026 16:10:50 -0800
| Newsgroups | gmane.os.freebsd.architechture |
|---|---|
| Message-ID | <[email protected]> |
> On Feb 20, 2026, at 10:40 AM, Dag-Erling Smørgrav <[email protected]> wrote: > > 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. How hard would it be to remove the set*uid bit and just require the process be run as a non-root user/the cdevs be writable to a printer group using devfs rules and devd? I’m not a fan of lpd either for the reasons you cite, but just like running nfsv3, security’s a bit “Wild West” compared to what it used to be like back in the day and it’s reflected in some software like this (as well as rsh, etc). Nuking lpr from the tree seems a bit non-ideal though as it’s still somewhat functional. Thanks, -Enji PS This is coming from someone who wrote a hacky appliance back in the day that leveraged lpr — it would have been a mess with cups.
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEkHfexGRJ3gYRdA2gGpE5DjPsNJgFAmmY+AoACgkQGpE5DjPs NJhV5w/+Mwg+8rd3fFu+Yp0G6SSeFztNYxXNO5Utj0nI8yclYIuVkTcNTtmwFnWO mSZeM6v2rEwbdFbndyJ5JQl8ZlwctuOvT9JwH6rEbqRziauvz14VqMCyBoi9jhNs PDhIkzBsz2/KfH8mgi7BWhtkEh5imAH4XWz6jmhbFfJauNYNOkpxgNizYI5eyrWM wk/urPctTlLkfeDgEogaiDawQ+MllDbgjSkDqxaABnPTQh6zBKFM72MSRx9M8+IH pskN8W0J6d5qBar8bmLOmlpS2cTu/lQ9fU8dtmvMxR1f18SMDxk5jk4FprSl6GTW U2RduS3//yMHMrpoKiuxP6bhpTXhXYsMFrFHS3pnPsMZjmAADbH7B5csT8GRg8QX Ovf5zvLY7hYnd0hMQaFb54ORu/qK1Zz/AQnMI7+V7S5cWlkl7T38DRns9fxC3c7n 4gDwk4kd37SSooxT/W+id/yPrN2TVjnuu1HmHrlJsyRzjv0IUgzyKbHNXWY/Q4cF 3y+rL0JVAd2LrlDnSdUitBk3xw1YGEr2iCSXH+QX7DqyVvT2XRTXqeaoMs4IQjQg avCi/XXkQMuvKR7uN/PoayFR2Qhuu6ZDMb8SvoOgpSVAhjb+iwQfTipNPcwcBwW9 CwkQvdkG7enwSEvX42+SZw0C64tiBMEQwMhv2esaNp/yBkRP494= =1hP3 -----END PGP SIGNATURE-----