ppdi not merging common content from multiple PPDs?

Smith Kennedy smith.kennedy at hp.com
Tue Mar 3 07:49:29 PST 2009


Hello,

I had a question about how ppdi works.  Please forgive my ignorance if this is answered elsewhere.

I played with the CUPS DDK some time ago (3 years ago? pre-CUPS-1.2).  At that time it seemed that I could use ppdi to import 2 PPDs (each targeting a different model), and, after the second import, the content of ppdi.drv would have all the common elements of both PPDs at the "top level", and would have grouped the model-specific elements in indented blocks wrapped in curly braces, as shown here on the CUPS site:

http://www.cups.org/documentation.php/ppd-compiler.html#GROUPING

However, when I now try doing the same thing with ppdi, it puts each entire model description in its own block, and doesn't seem to recognize the commonalities between the files (I copied a PPD and made trivial changes to test).  What seems more confusing to me is that importing just 1 file puts that model in its own model block rather than at the top level.  If I remove that block's curly braces and de-indent it, and then import my second PPD, the content I removed from a model block is re-blocked, and the new model is still written to its own block.

If this is expected behavior (I seem to recall finding in my thrashing that it is), it isn't clear to me what value ppdi is providing.  The primary value I can see in using the CUPS DDK is the ability to inherit common elements.  But if those commonalities have to be identified by hand, because ppdi cannot do it itself, that makes it much more difficult to adopt the CUPS DDK for PPD development, particularly if there are already large numbers of existing PPDs that one might want to import.

I thought the problem might be that the files were not "normalized", so tried importing one using ppdi and then re-generating it using ppdc, and did the same thing for the second one.  Interestingly, ppdi refused to import the ppds generated by ppdc.

My questions are these:
1) did ppdi used to be able to do this inheritance analysis itself?  If so, why was it removed?

2) regardless of past history, can ppdi be fixed to do this?

3) why won't ppdi import a ppd created by ppdc from another database?

4) What workflow was envisioned for the CUPS DDK?  Am I just using it improperly?


Thanks for any help,
Smith






More information about the cups mailing list