It seems I heard that header files are not considered copyrightable since they can only be written one way (like a list of ingredients or facts). So a header file for a specific DLL will always look the same when written in a given programming language. Unfortunately I can’t find any resources to back this up.
So if a vendor provides an SDK with headers in one programming language, and then those headers are translated into another programming language by a third party. Does the 3rd party need permission from the vendor to provide the header translation? Who owns the copyright on the translation? Isn’t it a derivative work still owned by the vendor, or is there no copyright, like a list of ingredients?
Does this vary from jurisdiction to jurisdiction?
3
According to Free Software Foundation’s lawyers copyright does not apply to header files:
I’m not sure what your project is designed to do, so I don’t have an
opinion about how it stands regarding the GPL. However, I’ve talked
with our lawyer about one specific issue that you raised: that of
using simple material from header files.Someone recently made the
claim that including a header file always makes a derivative work.That’s not the FSF’s view. Our view is that just using structure
definitions, typedefs, enumeration constants, macros with simple
bodies, etc., is NOT enough to make a derivative work. It would take
a substantial amount of code (coming from inline functions or macros
with substantial bodies) to do that. (source: email by RMS on LKML)
There is legal precedence supporting that. Oracle’s lawyers attempted to claim that APIs (and header files defining the APIs) are copyrightable, yet the court has disagreed with them (emphasis mine).
However, on the primary copyright issue of the APIs, the court ruled
that “So long as the specific code used to implement a method is
different, anyone is free under the Copyright Act to write his or her
own code to carry out exactly the same function or specification of
any methods used in the Java API. It does not matter that the
declaration or method header lines are identical.” The ruling found
that the structure Oracle was claiming was not copyrightable under
section 102(b) of the Copyright Act because it was a “system or method
of operation.” (source: Oracle vs Google)
4
I am not a lawyer. I do not play one on TV. Questions of legality should be answered by someone who is capable of giving expert answers (a lawyer) rather than just some programmer who has a passing familiarity with intellectual property.
The key part of a copyright is that it requires some creative considerations. This is a very low threshold, but some amount of creative action is necessary (another resource – software freedom – originality requirements. Things that cannot be copyrighted include recipes and phone books. Fundamental facts can’t be copyrighted (from EE.SE – Avoiding copyright violations when writing header files)
There have been multiple lawsuits over minimal bits of code (SCO and errno.h, Google and Oracle over some Java code, Google and android header files (there are some bits in there linking to some legal opinions on it that are a good read)). However, I haven’t seen anything that has set precedent on if header files can be copyrighted or not, or the degree to which their material is original.
If it isn’t clear that all of this is in legal murky water, let me state that again. This isn’t a settled area of law. Ask a lawyer.