The included headers are distributed verbatim. The headers are included verbatim (stored as a constant string) into the binary. The headers provide physical constants and physical concepts to a model compiler. In case the user does not have a set of headers of his own, the binary spits out the verbatim copy to allow the model to be processed. In other words, the user has rights over the LGPL portion and can bypass the non-LGPL pass if he/she wishes to. (...)

So it seems it is not an integral part of the compiler, just a handy hardcoded value. I would change the compiler (preferably at upstream) to read those entries from individual files at /usr/share/ if not provided by the user. Put a package with just those files in non-free. If the compiler AND the user didn't provide those AND those default files don't exist (non-free pkg not installed), abort with a message explaining what they need.

Note that I am not the original author of the ADMS package. I happen to maintain the latest LGPL version of it.

I just read the LGPL 2.1 a couple of times. To be compliant with Section 2 of LGPL 2.1 the headers should not be in the ADMS package in the first place. I am afraid I will have to take the headers out.

A non-free package with two header files might be a good option for Debian. Maybe it is just easier to inform users that the files need to be fetched from somewhere on the web and placed elsewhere on their system.

Next I will contact Accellera IP Committee to check if they would consider a more permissive license on future versions of their headers. That would allow them to be included in free software.

I don't have the knowledge and/or resources to argue on the claim that the headers are facts and not copyrightable.

If not I will think about ways not to anger and frustrate the users offering a tool that does not work out of the box.
As I understand it, the compiler _could_ work without those headers (assuming the unlikely case that the user had them himself). Otherwise, it can live in contrib and depend on the non-free package.

That is right, the compiler does work without the headers. If the user adds a 00-Book-VAMS.fm `include "disciplines.vams" to the model and there is no such file on the working directory the compiler assumes the user wants the LRM standard header. It dumps the stored headers from the binary as text and things work as expected. From now on it will have to warn users about missing headers and where to find them.


Reply via email to