[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Request for Removal: Unmaintained libppd in Debian



On 25/12/2022 10:20, Christoph Biedl wrote:
Till Kamppeter wrote...

As both libppd are rip-outs from CUPS, their APIs are very similar, so one
could add some *.h file (and perhaps one *.c file with simple wrapper
functions) to make my modern libppd replacing the legacy one so that we can
ditch it for good, and continue gpr ...

That's pretty exciting, and I didn't dare to think this was an option.
So if this works ...


Unfortunately, it is not that simple but also not over-complicated. The developers had ripped the code for PPD handling from libcups, but they did not like Michael Sweet's original API. They replaced the API by a glib-based one. To keep gpr happy one would need to create wrapper functions with the new API to the outside and calling the original functions in libppd. One would use the code of the legacy libppd, remove each API-function's (there are ~20 API functions) inner workings and replace them by calls of functions in the current libppd. The resulting code could be put together all into one pp/ppd-legacy.c file.

I do not actually know how much work this would be and whether it is worthwhile for the actual number of users of gpr or ppdfilt to do this work.

So I would suggest

4. Replace the legacy libppd by my modern libppd

... certainly put that in front of the list.


Still not sure, see above.

    The gpr Debian package only needs a no-change rebuild to use libppd2
    instead of libppd0.

That I can do.

    In Debian we have to remove the legacy libppd then and put the modern
    one into its place.

Agreed on libppd-dev and libppd0.

However, src:libppd also ships

| Package: ppdfilt
| Architecture: any
| Depends: ${misc:Depends}, ${shlibs:Depends},
| Section: utils
| Description: filter that inserts printer specific commands into print jobs
|  ppdfilt is a filter program designed to be used within a filter
|  script or from the command line tool to insert printer specific
|  commands to a PostScript print job. This can be used to tell the printer
|  to duplex or staple the print job, or tell it what paper tray to draw
|  paper from. In the GNULpr printing environment, users do not call ppdfilt
|  directly, but its features are accessed by using 'lpr' or 'gpr' (see)

and I was wondering where your toolset will provide an replacement as
well. While I could continue to ship legacy libppd with only this binary
package, it might be a good opportunity to drop this one and therefore
complete libppd as well. It seems ppdfilt is used by gpr and
printfilters-ppd ("filters from the GNUlpr printing system"), another
thing from old times. Both are maintained by A Mennucc1, we should take
them into the loop at some time.


One would treat ppdfilt the same way as the legacy libppd, replace the core functionality of the executable by calling a function in the current libppd, in this case ppdFilterPSToPS() and include this executable in the libppd package.

For these changes I have put the priority low, as I want to get the new cups-filters into Ubuntu at first (see my roadmap in my earlier mail). I have also already put ab a request for Ubuntu removing the legacy libppd and gpr:

https://bugs.launchpad.net/ubuntu/+source/gpr/+bug/2000411

Probably your (2) could perhaps be the way to go?

   Till


Reply to: