header files and LGPLv2.1 license

I have a question regarding the license. If I use a closed source application in RIOT and I also use a RIOT specific API, does my application also become LGPLv2.1? I see the issue here in the header files. If I include them in my application, the code will be placed in my application before I compile everything. If the header files would be MIT, my code could still be closed, as long as I deliver my binaries with the open sourced RIOT code changed I made. I am right or do I miss something?

Hi Philipp,

I have a question regarding the license. If I use a closed source application in RIOT and I also use a RIOT specific API, does my application also become LGPLv2.1? I see the issue here in the header files. If I include them in my application, the code will be placed in my application before I compile everything. If the header files would be MIT, my code could still be closed, as long as I deliver my binaries with the open sourced RIOT code changed I made. I am right or do I miss something?

I would refer to the LGPL license text itself here which seems to answer this question as exact as possible:

"When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself." (https://github.com/RIOT-OS/RIOT/blob/master/LICENSE)

As far as I know most (if not all headers) in RIOT should match the requirements stated in the second paragraph quoted above.

Cheers Oleg

Okay, thanks. Sounds good. But this is not a requirement for the PRs, right? So, one need to check the header files, before including them, right?