Using GPLed headers in LGPLed library

For a specific device there exists a Linux kernel module. This module only initialized the device and provides control mechanisms to user land via ioctls and mmap. To use this the device properly one must use the proprietary library from the hardware vendor.

So the source code of the kernel module is available and licensed under the terms of GPL but with the copyright of the hardware vendor. With a quick reverse engineering via LD_PRELOAD I figured out that the communication between the kernel module and the proprietary library is not really complicated.

Now I would like to make a basic open source library to replace the proprietary one. The problem is that the ioctl definitions and structures are from the header file from the kernel module which is GPL licensed. I would like to release my library under LGPL or even BSD/MIT license.

As the needed header file only contains ioctl definitions and structure I’m unsure if I would violate the GPL if I would include it in a LGPLed library. Or is there another way to include the informations from the header and use it in an LGPLed library?


Your library can #include the GPLed header but if you don’t distribute a copy of that file with your library, you can compliantly distribute your source code under the LGPL. I’m not certain what the license situation would be for the compiled result. Since the LGPL allows upgrade to GPL perhaps that’s what would need to happen there.

But really, why bring upon yourself all this legal complexity. If you just distribute the library as GPL you don’t have a problem.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *