OpenPrinting / libcups

OpenPrinting CUPS Library Sources
https://openprinting.github.io/cups/cups3.html
Apache License 2.0
28 stars 15 forks source link

Remove PPD API functions #41

Closed michaelrsweet closed 1 year ago

michaelrsweet commented 3 years ago

Remove all PPD API functions and test files.

surajkulriya commented 3 years ago

I was looking into this and was listing files and functions that we could remove. I was thinking of removing functions defined in file cups/ppd.h. But I noticed two functions ppdMarkDefaults, cupsMarkOptions that we are using in lpoptions. Similarly there must be some other functions as well. So isn't there any particular way to decide which functions we should remove?

michaelrsweet commented 3 years ago

@surajkulriya I haven't given this too much thought beyond creating the bug to track this work.

More than likely there will be significant code changes for 3.0 - after all, we'll have two separate spoolers (local and sharing server) and a totally IPP view of printer capabilities/job options. But right now my focus is on 2.4.0 which has more modest goals.

nielsenb-jf commented 2 years ago

I've been wondering what this means for the future of legacy printer support, in say, Gnome.

Is the thought that if a user needs to use a PPD file for their legacy device, the desktop environment would provide a means of providing a URI for the printer and selecting the appropriate PPD file, after which the desktop environment would create a service to run ippeveprinter?

For viewing printer status / capabilities there would just be the one IPP code path.

Removing a legacy printer would effectively just remove the service.

michaelrsweet commented 2 years ago

@nielsenb-jf GNOME has no need for PPD files. If you have a legacy PostScript printer, use a printer application (like the ps-printer-app that Till wrote) when setting up the printer.

noccy80 commented 1 year ago

I have a Brother QL-500 label printer that is setup from a PPD file, provided by Brother. How would I add this printer to CUPS in the future, after the removal of PPD support? What exactly is the rationale for removing something that actually works great as is? And how is removing PPD support intended to improve the usability of the devices it used to support?

zdohnal commented 1 year ago

I have a Brother QL-500 label printer that is setup from a PPD file, provided by Brother. How would I add this printer to CUPS in the future, after the removal of PPD support?

Via a printer application - see https://github.com/orgs/OpenPrinting/repositories . Some existing or new printer application can support your printer or you can load the PPD and filter into legacy printer application provided by pappl-retrofit project.

What exactly is the rationale for removing something that actually works great as is?

Users are dependent on manufacturers/community to release the driver for their operating system and keep them up to date with OS changes - rebuilding/changing dependencies/fixing bugs - and if nobody does the deed, the printer stops working. IPP support is not OS dependent - manufacturer can do only firmware updates and printer works on every system with driverless support. Device with older IPP support (even USB device can do IPP over USB these days...) or without IPP support can use printer apps or PPD via printer app.

And how is removing PPD support intended to improve the usability of the devices it used to support?

Currently most printers made since 2010 has sufficient IPP support and PPDs, where some advanced features are usually implemented in IPP but not in PPD - using IPP improves the usability for such printers, which does not mean all printers.

michaelrsweet commented 1 year ago

This is done.