Re: Confusing Usage-Guide in LICENSES/exceptions/Linux-syscall-note

Greg KH <[email protected]>
Newsgroups org.kernel.vger.linux-spdx,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Sat, Feb 22, 2020 at 03:37:09AM +0000, Orivej Desh wrote:
> For the reference, here is the Linux syscall note:
> 
>      NOTE! This copyright does *not* cover user programs that use kernel
>      services by normal system calls - this is merely considered normal use
>      of the kernel, and does *not* fall under the heading of "derived work".
> 
> When Linux-syscall-note was split from the COPYING file [1] [2], it
> added a Usage-Guide section that says that "This exception" marks
> "user space API (uapi) header files so they can be included into non
> GPL compliant user space application code". However, the License-Text
> extracted from the COPYING does not say anything about including
> headers; instead it says that programs that make system calls to the
> kernel are not considered derived from the kernel.
> 
> I think that Linus shares the view expressed by Stallman [3]:
> 
>      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.
> 
> and wrote the syscall note as something to be added on top of this
> view, while Thomas Gleixner took the note as a relaxation of GPL that
> allows the use of the headers in non-GPL programs when he wrote the
> Usage-Guide and Documentation/process/license-rules.rst that says:
> 
>      The User-space API (UAPI) header files, which describe the
>      interface of user-space programs to the kernel are a special
>      case. According to the note in the kernel COPYING file, the
>      syscall interface is a clear boundary, which does not extend the
>      GPL requirements to any software which uses it to communicate
>      with the kernel. Because the UAPI headers must be includable into
>      any source files which create an executable running on the Linux
>      kernel, the exception must be documented by a special license
>      expression.
> 
> I think that the lawyers should review whether the syscall note grants
> anything not already granted by GPL-2.0. If it unambiguously does not
> than the note could be deleted, overwise the following mistakes should
> be corrected:
> 
> 1. Since the note declares user programs to not be considered derived
>    from the running kernel, it applies to the kernel as a whole. It
>    does not make sense to restrict Linux-syscall-note to UAPI headers
>    only (in their SPDX-License-Identifier) and not to apply it to the
>    whole kernel. "WITH Linux-syscall-note" should be deleted from all
>    sources; the link to the note from the root COPYING is enough.
> 
> 2. Linux-syscall-note should be cleared from these parts of the old
>    COPYING unrelated to the note:
> 
>       Also note that the GPL below is copyrighted by the Free Software
>       Foundation, but the instance of code that it refers to (the Linux
>       kernel) is copyrighted by me and others who actually wrote it.
> 
>       Also note that the only valid version of the GPL as far as the kernel
>       is concerned is _this_ particular version of the license (ie v2, not
>       v2.2 or v3.x or whatever), unless explicitly otherwise stated.
> 
>                              Linus Torvalds
> 
>    Note that there is no GPL text below.
> 
> 3. Linux-syscall-note Usage-Guide could be deleted (does a three line
>    note need a guide?), or it may say something like this:
> 
>      This exception allows non-GPL programs to run on Linux.
> 
> 4. Documentation/process/license-rules.rst should be updated
>    accordingly. Something like the Stallman explanation of derived
>    works would be useful.
> 
> 5. SPDX license list maintainers should be notified to update [5]. Its
>    current Note about the exception is unclear and mistaken:
> 
>      This note is used with the Linux kernel to clarify how user space
>      API files should be treated.
> 
> The people seem easily confused by the Usage-Guide: they believe that
> the syscall exception does what it does not (allowing uapi includes in
> user programs), and do not understand what it does (allowing making
> system calls). Please correct it!

Thanks for the report.  A few of us have slowly been working on making
this all a lot more obvious as to what this means for things.

Give us some time, it's a low-priority issue at the moment, but it will
be taken care of eventually.

thanks,

greg k-h
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.