foundation icon indicating copy to clipboard operation
foundation copied to clipboard

License exception for `GPL-2.0 WITH Linux-syscall-note` file in containerd/btrfs

Open AkihiroSuda opened this issue 4 years ago • 10 comments

EDIT (March 28, 2023): See https://github.com/cncf/foundation/issues/174#issuecomment-1485584856 for the current situation


(Original post on Aug 2021)

We containerd maintainers would like to include a file that is machine-translated from a GPL-2.0 WITH Linux-syscall-note file, for the sake of calling btrfs-related ioctl syscalls.

https://github.com/torvalds/linux/blob/v5.13/LICENSES/exceptions/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".
 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

We interpret that containerd/btrfs is a user programs that use kernel services by normal system calls mentioned in the Linux-syscall-note, and does not fall under the heading of "derived work" of the GPL-2.0 code.

  • Original C source, with GPL-2.0 WITH Linux-syscall-note: https://github.com/torvalds/linux/blob/v5.13/include/uapi/linux/btrfs_tree.h
  • Translated Go source, to be included in https://github.com/containerd/btrfs : https://github.com/AkihiroSuda/go-btrfs/blob/btrfs-v2.20210701/btrfs_tree_hc.go
  • Translator, to be included in https://github.com/containerd/btrfs : https://github.com/AkihiroSuda/go-btrfs/blob/btrfs-v2.20210701/headers.go

AkihiroSuda avatar Aug 08 '21 08:08 AkihiroSuda

cc @swinslow @caniszczyk

dims avatar Aug 08 '21 10:08 dims

@swinslow @caniszczyk @amye Could you take a look?

AkihiroSuda avatar Sep 14 '21 08:09 AkihiroSuda

@stevvooe Do we still need to keep this open, or do you find a way to avoid cgo without importing GPL-2.0 WITH Linux-syscall-note header?

AkihiroSuda avatar Sep 27 '21 19:09 AkihiroSuda

@AkihiroSuda - connecting back in here, I'm getting a process set up for our next board meeting.

For all license exception requests, we need the following information in order to help make a decision to grant an exception.

  • [ ] What is the alternative license?
  • [ ] If this is newly created code, why can't it be under Apache-2.0?
  • [ ] Is this an existing 3rd party open source project?
  • [ ] How does this code integrate with or interact with, if at all, other components of CNCF?
  • [ ] How will the code be maintained? Who is responsible?
  • [ ] How will the code be kept up to date with security patches?

amye avatar Mar 10 '22 23:03 amye