Re: Include pieces of internal kernel header in GPL-3 project
* Jan Luca Naumann:
> the problem is that this structure was in a uapi header until Linux 4.4
> but it was replaced by a new header file in this kernel version. I'm not
> the upstream author of the code so I'm not sure if there is another way
> to access the functionality used in the software project. Of course you
> are right that it is a good idea to look for another kernel interface
> instead of copy the necessary structure to an own header file...
> Anyway, it would be interesting for me if this usage of pieces of a
> kernel header file is possible in GPL-3 project?
I can't comment on whether this is a licensing problem, but the
definitions were deliberately dropped:
Author: Christoph Hellwig <email@example.com>
Date: Fri Oct 2 15:25:49 2015 +0200
nvme: move hardware structures out of the uapi version of nvme.h
Currently all NVMe command and completion structures are exposed to userspac
through the uapi version of nvme.h. They are not an ABI between the kernel
and userspace, and will change in C-incompatible way for future versions of
the spec. Move them to the kernel version of the file and rename the uapi
header to nvme_ioctl.h so that userspace can easily detect the presence of
the new clean header. Nvme-cli already carries a local copy of the header,
so it won't be affected by this move.
Signed-off-by: Christoph Hellwig <firstname.lastname@example.org>
Acked-by: Keith Busch <email@example.com>
Signed-off-by: Jens Axboe <firstname.lastname@example.org>
Is the tool you are interested in very low-level? If not, per the
commit above, you really shouldn't need those struct definitions.
It may make sense to contact Keith Busch <email@example.com> for
advice what to do here. If the definitions are part of the de-facto
kernel ABI, the kernel people should know about this.