Thread (22 messages) 22 messages, 5 authors, 2021-01-28

Re: [libgpiod][PATCH 6/6] core: add the kernel uapi header to the repository

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2021-01-27 10:07:13

On Tue, Jan 26, 2021 at 04:07:47PM +0100, Bartosz Golaszewski wrote:
On Mon, Jan 25, 2021 at 6:55 AM Kent Gibson [off-list ref] wrote:
quoted
[snip!]
quoted
quoted
I don't like the ifdef hell so I prefer to bundle the header. I'm open
to other suggestions, although I can't come up with anything else.
Going off on a bit of a tangent, but I'm trying to add support for
decoding the GPIO ioctls into strace and am running up against a similar
issue.

The way strace does it is to check the uAPI header on the host and use
it if possible.  To handle where it may be stale, local types are
defined that mirror any types that may have been added since the header
was originally released.  If the corresponding type is available in the
linux header then it is used, else the local type.

This obviously creates a lot of pointless boilerplate code and
preprocessor chicanery so I floated the idea of just including the latest
header in the strace tree, as you are doing here for libgpiod.
But that raised the issue of licencing, specifically if you copy the
linux/gpio.h into a source tree does that mean that the whole project
becomes GPL 2.0?  That is an issue for strace as it is LGPL 2.1 - as is
libgpiod.

The Linux uAPI headers are under the GPL-2.0 WITH Linux-syscall-note,
which is also not totally clear on this point[1].

My gut feeling was that using and even copying API headers doesn't
constitute a derived work, as per the FSF view quoted in [1], and
ethically might even be less of a violation than copying and re-defining
individual types, but I'd rather not rely on a gut feeling.

Is there some clear opinion or precedent on this point?
i.e. are libgpiod and strace in legal licence jeopardy if they include
gpio.h in their source tree?

Cheers,
Kent.

[1] https://lkml.org/lkml/2020/2/21/2193
Thanks for pointing that out. I lack the legal knowledge to have an
opinion of my own on this.

Cc'ing Greg KH for help.

Greg: do you know if it's fine to bundle a 'GPL-2.0 WITH
Linux-syscall-note' uAPI header together with an LGPL-v2.1-or-later
user-space shared library?
How would you "bundle" such a thing as that is not what is in the kernel
source tree?  If you are going to copy files out of the kernel and do
other things with them, well, I recommend asking a lawyer as I am not
one :)

good luck!

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help