Hello copyleft-next,
I apologize for the lack of clarity of my question on github. If I
may, I will try to express a few points of the meaning of the
question.
On 12/30/12, Richard Fontana <fontana(a)sharpeleven.org> wrote:
On 12/30/2012 10:33 AM, Richard Fontana wrote:
>> (iii) all relevant interface definition files;
>
> Is this intended to mean: the API?
There are one or more interesting questions implied by this one.
The reference to "interface definition files" was IIRC introduced in
GPLv2's definition of complete corresponding source code. It was
retained in GPLv3's definition of "Corresponding Source", and also in
copyleft-next (with the addition of the adjective 'relevant' which I
suppose reflected the germ of some questioning of this by me).
I do not know what the GitHub commenter means by "the API", but in a
way that itself is an interesting point. I have always assumed that
the "interface definition files" referred to in GPLv2 are .h files of
programs written in C (or C++).
I have always assumed the same on the intended meaning in GPL: that it
corresponds to .h files for C/C++. I believe I have seen this
interpretation often.
If this is the case, then they correspond, in Java, to simply .java
files, which define an interface. They're part of the source code, in
the sense covered by "Corresponding source" (i)... I'm not sure I
understand (and I never really did, for GPL), why would they be
specified separately.
Could "interface definition files" mean something other
than .h files
in any sort of foreseeable GPL compliance context?
If they mean "like .h files in C/C++", then the way I see it, they
mean a collection of function signatures, structures definitions,
which is to say: the API, application programming interface, of a
library or application. Same as for .java APIs, essentially.
In my understanding of the Oracle vs Google trial, the APIs are not
copyrightable. (ref:
http://www.groklaw.net/pdf3/OraGoogle-1211.pdf).
As such, I don't understand their place in a copyright license...
Please allow a IANAL disclaimer, for the following. I am using the
criterium: can I write this file in any essentially different way?
Answer is: no. (unless it contains original macros or abundant
documentation perhaps). Cosmetic changes, even if I fully rewrite it,
do not change that function signatures still have to be what they have
to be, to work. If they're not copyrightable, then they're not
licensable, are they?
I admit that for me, this particular issue is more due to intellectual
curiosity, than practical consequences. I am not aware of any case of
GPL enforcement issues on this. Eventually, it may be useful to
publicly (and visibly) correct the understanding on .h files, if that
isn't the intention of the term "interface definition files"?