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: