linux-spdx.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Confusing Usage-Guide in LICENSES/exceptions/Linux-syscall-note
@ 2020-02-22  3:37 Orivej Desh
  2020-02-23 15:45 ` Greg KH
  0 siblings, 1 reply; 2+ messages in thread
From: Orivej Desh @ 2020-02-22  3:37 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-spdx, Thomas Gleixner

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!

[1] https://lore.kernel.org/patchwork/patch/851955/
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bf02d491237eea10290bd379bf7fc8c37ac6c3b4
[3] http://lkml.iu.edu/hypermail/linux/kernel/0301.1/0362.html
[4] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/Documentation/process/license-rules.rst?id=aa19a176df95d6e49295d6ff77f7967224c71761
[5] https://spdx.org/licenses/Linux-syscall-note.html

--

This is my second attempt to reach @vger, as my message from @gmx.fr seems to
have been dropped.

Please CC me in response.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Confusing Usage-Guide in LICENSES/exceptions/Linux-syscall-note
  2020-02-22  3:37 Confusing Usage-Guide in LICENSES/exceptions/Linux-syscall-note Orivej Desh
@ 2020-02-23 15:45 ` Greg KH
  0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2020-02-23 15:45 UTC (permalink / raw)
  To: Orivej Desh; +Cc: linux-kernel, linux-spdx, Thomas Gleixner

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-02-23 15:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-22  3:37 Confusing Usage-Guide in LICENSES/exceptions/Linux-syscall-note Orivej Desh
2020-02-23 15:45 ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).