lpadmin options are deprecated

tcandela
Valued Contributor II

I see that people are still using the -P option so it still works. When it's finally deprecated what would replace that setting?
here is a sample that I have that I currently use,

lpadmin -p MAC_LAB_Color -L "ROOM 801" -o printer-is-shared=false -v * -E -P /Library/Printers/PPDs/Contents/Resources/Xerox WorkCentre 6655.gz

The following lpadmin options are deprecated:

-P ppd-file Specifies a PostScript Printer Description (PPD) file to use with the printer. Note: PPD files and printer drivers are deprecated and will not be supported in a future version of CUPS.

13 REPLIES 13

Mauricio
Contributor III

From the local CUPS

http://localhost:631/help/man-ppdc.html?TOPIC=Man+Pages&QUERY=

"PPD files are deprecated and will no longer be supported in a future feature release of CUPS. Printers that do not support IPP can be supported using applications such as ippeveprinter(1)"

man ippeveprinter

-P filename.ppd Load printer attributes from the specified PPD file. This option is typically used in conjunction with the ippeveps(7) printer com- mand ("-c ippeveps").

All theoretical here of course.

tcandela
Valued Contributor II

I'm trying to use the -m option (description below of the option), but confused on how to add the model name of the printer to the lpadmin command. So my take is that with the printer drivers installed the -m option will set the necessary PPD file information from the model directory, so no need to add the -P option to the lpadmin command.

so if i'm setting up a Xerox Phaser 3610 i'm not sure how to correctly add this to the lpadmin command.

-m model
Sets a standard PPD file for the printer from the model directory or using one of the driver interfaces. Use the -m option with the lpinfo(8) command to get a list of supported models. The model "raw" clears any existing PPD file and the model "everywhere" queries the printer referred to by the specified IPP device-uri. Note: Models other than "everywhere" are deprecated and will not be supported in a future version of CUPS.

tcandela
Valued Contributor II

I used the -m option instead of the -P option and adding via self service was good and so was a printout.

lpadmin -p LAB_BW -L "Room 109" -D "Xerox Phaser 3610" -o printer-is-shared=false -E -v lpd://... -m /Library/Printers/PPDs/Contents/Resources/Xerox Phaser 3610.gz

TeamOC
New Contributor II

Just spent the last few weeks on and off with this stuff..
The "-m everywhere" option is there to use the CUPS built-in stuff, and uses the IPP(2.x) protocol that you use it in lieu of the external .ppd file, which is what is deprecated. The LPD file protocol is also pretty old, and if I understand So for yours, assuming the printer is online and reachable (you're not able to add printers using the 'everywhere' driver unless its on):

lpadmin -p LAB_BW -L "Room 109" -D "Xerox Phaser 3610" -o printer-is-shared=false -E -v ipp://192.168.50.21 -m everywhere

We've just moved almost all of our printers over to this method, the ones that support it anyway. Seems to be printers manufactured within the last 10 years or so. We've made a list of models that do support it, and others that still rely on a driver file. We did have to create a new Ubuntu server to host printing, as this all isn't supported by Windows Print Server. LEt me know if you use a printeserver and I can go into more details. Then, for the models that don't support 'everywhere' driver (Really unfortunately named imo) you can use the CUPS built-in sample files, instead of manufacturer-specific ppd files. This is still deprecated, but it can cut out needing custom driver files. That would look like (assuming its an HP Laserjet, there are different samples listed in the link below)"

lpadmin -p LAB_BW -L "Room 109" -D "HP 4350" -o printer-is-shared=false -E -v ipp://192.168.50.21 -m drv:///sample.drv/laserjet.ppd

This page was a lot more help to me than I thought it would: https://github.com/apple/cups
Let me know if you had any more questions.

tcandela
Valued Contributor II

@TeamOC hey, i originally had that ipp -m everywhere and it didnt work, the printer kept going jnto paused state. When i changed to lpd -m .ppd it worked, no pausing of printer. Im gonna add this to the ipp line after the ip address ipp://11.22.33.44/ipp/print and see what happens.

Does the specific printer driver still need to be installed when using -m everywhere?

TeamOC
New Contributor II

You may want to check if the IPP protocol is enabled on the printer itself.

Does that command add the printer without issue, but its just a paused printer when it does add? Or is the printer itself in a paused state?

Maybe unrelated, the HP printers add fine when doing ex: ipp://192.168.50.21 but our Ricoh printers require that extra "/printer" at the end. So that mat help, but usually the issue occurs when adding the printer to the computer, I've never seen an issue where it pauses it. There is no print server used in this instance, right?

No specific drivers required when using the -m everywhere option, in facts it replacing them.

tcandela
Valued Contributor II

@TeamOC when i initially set it up with 'ipp://11.11.11.11 -m everywhere' the printer was added the test computer. I then went to the test computer and to system preferences clicked on the printer and went print a test page. Before I clicked to print the test page the printer was in normal print mode then I clicked print test page and then after a few seconds the printer went in to pause.

Tomorrow Im going to try appending to the ipp command /ipp/print and see what happens.

Alsonwill enter lpinfo -m to see if everywhere ipp Everywhere gets listed.

No print server currently but might have one in a month or two, so im just testing without ine.

tcandela
Valued Contributor II

@TeamOC I just tried this new command, and it doesn't work. Printer gets added and in system preferences it has a default icon that doesn't resemble the printer and it's in a 'pause' state. Also when I do lpinfo -m it does not list the 'everywhere' driver

lpadmin -E -p Xerox_Phaser_3610 -L "Room 200" -D "LAB BW" -o printer-is-shared=false -v ipp://10.176.0.26/ipp/print -m everywhere

ipp is enabled

fe0edbdfd33c49b789e57b340bfe934b

TeamOC
New Contributor II

Just did a little more digging, and it looks like your printer is from ~2013, at least started selling on amazon then, and that was also the same year IPP Everywhere was introduced. Taking a look here, they don't even have Xerox printers in their list at all, I'm inclined to say maybe it isn't supported for your 3610 and you might need to stick with the ppd files. Do you have any, much newer printers to test on, perhaps non-Xerox?

Interesting the everywhere driver doesn't show for you in lpinfo -m; its the very last entry for me. Can't say I would know why it wouldn't be in that list.

tcandela
Valued Contributor II

@TeamOC I just ran the lpinfo -m command from each system running 10.13, 10.14, 10.15 11.x

and everywhere IPP Everywhere showed up for 10.14, 10.15, 11.x

I was testing on 10.13 so I'll test on 10.14 and up. with the -v ipp://

tcandela
Valued Contributor II

@TeamOC it worked on 10.14 with the -m everywhere.

Does your printer icons show just as a default generic looking deskjet printer? Mine does. Doesnt look anything like the xerox phaser 3610 .
When using the ppd the printer icon resembles the actual printer installed

TeamOC
New Contributor II

Ah glad to hear, I hadn't considered something recent like 10.13.x wouldn't have had it.

Mine show as generic printers too. Since they are usually selected from a list, I didn't mind pushing it out to users like this. Though I agree it would be a lot nicer with them. I have noticed though, adding printers via AirPrint (which uses IPP and mDNS) DOES give an icon. I have a feeling Apple likes one method a little more. Unfortunately there is no central management when using AirPrint.

tcandela
Valued Contributor II

@TeamOC hopefully using this -m everywhere doesnt cause xerox to lose its printer features auch as 'secure print'. I gotta check that