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

Re: Request for Removal: Unmaintained libppd in Debian



On 23/12/2022 19:30, Till Kamppeter wrote:
Is the API of the legacy libppd complex? Or could one find someone who could add this API to my modern libppd to keep these users happy and give them even a maintained library.

I have downloaded the upstream source of the legacy libppd now and investigated ...

The API adaption looks like rather easy, adding only some extra *.h files to my modern libppd.

My modern libppd is a very sophisticated and complete rip-out of the PPD support functionality of CUPS, to conserve this functionality for CUPS-driver retro-fitting Printer Applications when it goes away in CUPS 3.x. The original CUPS APIs are mainly conserved, only a few functions renamed.

The legacy libppd is also a rip-out of CUPS' PPD support functionality, but not that sophisticated and done 20 years ago to make CUPS' PPD support functionality available to LPD/LPR/LPRng users. It got rarely used, probably there were more of these LPD/LPR/LPRng users using my Foomatic instead.

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 ...

So I would suggest

4. Replace the legacy libppd by my modern libppd

   As described above we add an "API adapter", some *.h files with
   macros to "translate" old names to new names and a *.c file with
   wrapper functions for changes between the APIs of CUPS 1.x and CUPS
   2.x. The user will need libppd and libcups then (some of libppd's
   functions are not actually having to do with PPDs and so in my CUPS
   setup I have left them to be supplied by libcups (but using libcups
   does not require to run a CUPS daemon).

   When packaging, my libppd will have epoch 3 and so considered newer
   than legacy libppd, so updates should simply replace the old library
   by the new one and new installations of libppd-dev grab the new
   version.

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

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

WDYT?

   Till


Reply to: