5

A 3rd-party Hardware manufacturing company is willing to sell me a Linux Driver for one of their products. The third-party company claims that the Linux Driver is derivative work of the driver they previously developed for OSX, so they say GPL does not apply here.

If I want to sell systems which include this linux driver, do I have to disclose the source code of this third-party driver if any of my customers asks for it?

  • We would get the source code of the driver, but they do not want to allow us to publish it if any of our customers asks for it – configg Aug 12 '15 at 7:15
3

The third-party company claims that the Linux Driver is derivative work of the driver they previously developed for OSX, so they say GPL does not apply here.

If they link to the Linux-kernel, they link against GPL-software, so they are obliged to respect the terms of the GPL. It doesn't matter if the software was previously developed for OSX. In the worst case the licenses conflict and the Linux version is therefore illegal to distribute. Generally, all licenses of products combined here are to respect. If they aren't compatible, you cannot distribute this derivate.

But, if the driver doesn't directly link to the kernel, that may not apply. I remember in the past some graphics drivers (I think NVidia, but aren't sure) had two parts. One GPL-part included in the kernel and offering an interface for the second part, that was proprietary. I don't know how legally stable this construct is, but it may work.

As I don't know in which way the driver you talk about works, I cannot say which applies here.

But even if case 1 applies, you cannot release the source code of others without their consent. If case 1 applies, you simply cannot distribute this solution.

As a side-note: the GPL always allows you to use such software internally without releasing the source, but as you talk about customers it isn't limited to internal use.

  • If case 1 applies and they sell you the software, they would have to provide you the source code! – Josef Aug 10 '15 at 11:46
  • @Josef: Yes, right. They already violate the GPL in that case. But that doesn't mean the company of the OP should make things worse. – Mnementh Aug 10 '15 at 12:09
  • Well, if they sell him a driver that's partly stolen code, they either have to make it legal by complying with the GPL or at least refund OP the money he paid. – Josef Aug 10 '15 at 12:12
6

Provided it is a real clean room Linux Driver (i.e. it is not adapted from a GPL-licensed Linux Driver), then the company that owns its copyright does not have to respect the GPL. Having the potential to be linked to the Linux-kernel, or to Linux system libraries, or using some Linux API in the manner it is supposed to be used, does not trigger the GPL.

So the company can sell you and everybody else this Linux Driver as a binary component. They're not distributing anything derived from anything under GPL, so they can do as they please.

Now, if you buy this binary, integrate it with your system, and want to distribute the result, then this may or may not allowed.

  1. If the Linux Driver is designed to meet the requirements of the Linux Kernel exception or the GNU GPL system library exception, then it is excepted from the GPL, and can you go ahead and distribute your Linux-based hardware without providing the source code for this component.

  2. If the Linux Driver does not meet the criteria for being excepted from GPL when integrated in your system, then GPL requires you to deliver its source code when you distribute your Linux-based hardware. If you're unable to meet this requirement, then you're not allowed to distrubute your hardware at all.

  • But if they provide that driver as a binary component, they almost surely have linked in part of the Linux kernel sources. Otherwise, how would they be able to use the kernel interfaces? And then, they would have to provide the source to everyone they give the binary. – Josef Aug 10 '15 at 11:48
  • As far as I can understand the kernel copyright, the kernel devs interpret normal system calls as usage and thus not creating a derivate. A driver usually is more integrated with kernel code, although we don't know how it is in this case. Also the usual confusion about creating derivates apply. – Mnementh Aug 10 '15 at 12:14

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.