On Mon, Jan 25, 2021 at 6:55 AM Kent Gibson <warthog618@xxxxxxxxx> wrote: > [snip!] > > > > 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? Best Regards, Bartosz Golaszewski