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.