FPGARelated.com
Forums

practical experience with GPL IP core in commercial product

Started by Unknown November 4, 2014
Hi DJ,

DJ Delorie <dj@delorie.com> wrote:
> > rickman <gnuarm@gmail.com> writes: >> I think you have mixed up something about this and lost the point of >> the issue. If you share a software design, you still need a hardware >> platform to run it on. I can't run lots of open source software >> because it is for hardware that I don't have. If you share a hardware >> design someone will need to build the hardware. I can't see how open >> source hardware is fundamentally different from open source software. > > If you look at it that way, there's no difference. But if you look at > it that way, you're still licensing the data and requiring [relatively] > costly hardware to use it with.
IMO your statement is partially incorrect. The GPL allows you to copy, modify, distribute the 'source' code and you can do all of them without the need to manufacture anything. What the GPL states as well is the freedom to 'run' the program. Now if we want to continue with the parallelism hardware/software, than it would not be possible to 'run' the hardware unless you build it. For the specific case treated in this thread, the assumption that the underlying hardware to run the IP is /accessible/ to the user is very similar to the assumption that a computer is accessible to the software user as well. The copyright protects the 'original work of authorship', not necessarily the mean it comes with. And the license grants certain rights on the original work, not necessarily the physical mean. You can easily grab a piece of the schematics and embedded it into your design, provided you distribute under GPL.
> The difference in the FSF's case is that "pure software" needs only > standard computing machines (pcs, workstations, embedded linux devices, > etc) to run. One can treat the software independently of the hardware > it runs on, but still fully protect it. The GPL is a license for that > kind of software, where the issue of obtaining suitable hardware can be > essentially ignored. The software's preferred source format and binary > format are both just data, and the GPL protects the freedom of both the > source and binary formats.
There are software that runs on cluster of computers and are licensed with GPL and is certainly legitimate to do so, I doubt that John Doe will have the capability to run the software 'as is' but he can certainly read it, modify it and distribute it.
> In the case of open hardware, the hardware can't be ignored, because > it's effectively the "binary form" of the design. The license can't > just ignore the hardware, else it wouldn't be able to protect the > freedom of the hardware's design. But, the hardware can't be trivially > copied - it has to be manufactured instead.
GPL came to protect freedoms which are not at all linked to the cost of production. Yes you are free to produce a hardware artifact and this freedom does not contraddict any of the GPL statements. Whether it costs too much for you to produce is another story and has nothing to do with the license which remains valid. Al
rickman <gnuarm@gmail.com> writes:
>> The license can't just ignore the hardware, else it wouldn't be able >> to protect the freedom of the hardware's design. > > This is not at all clear to me. Please explain. The license covers > use and propagation of the design. Why is that different if it is for > a PCB or for code burned into a Flash ROM? You keep saying the same > things without explaining them.
For example, you take a GPL'd schematic and make a PCB out of it. You give the PCB to someone else. Does that new person have the right to copy it? Do they have the ability to copy it? If the GPL doesn't apply to the PCB itself, how does that new person GET the right to copy? They never got a copy of the schematics... So to truly do open hardware, the hardware itself has to come with some sort of license that says "anyone who possesses this hardware, has a right to the design files". But now you have to enfoce compliance of that right across all manufacturers. *Now* you're messing with real money, since anyone who makes a copy of the PCB - and spends real money doing so - has obligations to anyone who gets those PCBs.
> You state that a hardware license has to "apply" to a manufacturing > scenario without explaining what that means.
The GPL requires that, in addition to the source code, you have to provide any Makefiles, build scripts or non-standard tools required to produce the binaries. If turning a schematic into a PCB, or turning a 3D model into a physical device, requires some non-standard manufacturing technique or tooling... (basically, anything that's not commonly available could be used to "lock you out" of copying by making it essentially impractical to copy it even though you have the design files; the GPL has clauses to prevent this)
> I don't see anything in your argument that is different between > hardware designs and software designs. It is the design that is > licensed and the embodiment is irrelevant.
The embodiment of a design is the "binary" of the design, and the GPL does apply to software binaries. Why shouldn't it apply to hardware "binaries"? Remember, the purpose of the GPL is not to provide a way to let people copy a design, it's to prevent people from hiding a design from its users. To meet that purpose, they need to control the binaries as much as the sources. The GPL equivalent here is "you may not distribute this hardware, unless you give each recipient the design files."
al.basili@gmail.com (alb) writes:
>> If you look at it that way, there's no difference. But if you look at >> it that way, you're still licensing the data and requiring [relatively] >> costly hardware to use it with. > > IMO your statement is partially incorrect. The GPL allows you to copy, > modify, distribute the 'source' code and you can do all of them without > the need to manufacture anything.
True, but it's useless to you in that form. You need to compile/manufacture it to make it usable. Heck, in the case or pure data, it can't even *exist* without some hardware to store it on.
> What the GPL states as well is the freedom to 'run' the program. Now if > we want to continue with the parallelism hardware/software, than it > would not be possible to 'run' the hardware unless you build it.
Yup. You can do whatever you want in the privacy of your own domain, it's just redistribution that's limited. But, we're talking about a hardware product that's being redistributed.
> For the specific case treated in this thread, the assumption that the > underlying hardware to run the IP is /accessible/ to the user is very > similar to the assumption that a computer is accessible to the software > user as well.
But there's a difference between commodity hardware (i.e. a PC or Mac) and custom hardware (which I think is what we're talking about). You can run Linux on *any* pc, without regard for which PC. You can't run a compiled verilog bitstream on *any* pcb, only the pcb for which the design was intended. Sadly, the line between the two cases is a legal definition (what is a combined work, vs what is a mere aggregate).
> The copyright protects the 'original work of authorship', not > necessarily the mean it comes with. And the license grants certain > rights on the original work, not necessarily the physical mean.
Copyright grants you *no* rights other than what the holder allows, that includes reproduction and usage rights, including derivative works. If a copyright holder chooses to require redistribution only along with the means to do so, that's their choice.
> You can easily grab a piece of the schematics and embedded it into your > design, provided you distribute under GPL.
Ah, but how do you distribute hardware under the GPL? The FSF declined to try to cover this case, because IIRC they didn't want to try to figure out how to apply it to things that cost real money.
> There are software that runs on cluster of computers and are licensed > with GPL and is certainly legitimate to do so, I doubt that John Doe > will have the capability to run the software 'as is' but he can > certainly read it, modify it and distribute it.
The GPL doesn't concern itself with hardware at all, so this is rather pointless wrt the GPL. In this thread, we're trying to apply the GPL to hardware, and I've already said that the FSF did not intend the GPL to be applied to hardware. That's why we're having problems discussing it.
> GPL came to protect freedoms which are not at all linked to the cost of > production.
GPL came to protect freedoms which do not have a significant cost to enforce. Copying software binaries is essentially free. The GPL was not intended to apply to hardware, which costs significant money to copy.
DJ Delorie <dj@delorie.com> wrote:

(snip)

> For example, you take a GPL'd schematic and make a PCB out of it. You > give the PCB to someone else. Does that new person have the right to > copy it? Do they have the ability to copy it? If the GPL doesn't apply > to the PCB itself, how does that new person GET the right to copy? They > never got a copy of the schematics...
How about a different question: Has anyone ever been successfully prosecuted for PCB copying? -- glen
On 11/10/2014 3:20 PM, DJ Delorie wrote:
> > rickman <gnuarm@gmail.com> writes: >>> The license can't just ignore the hardware, else it wouldn't be able >>> to protect the freedom of the hardware's design. >> >> This is not at all clear to me. Please explain. The license covers >> use and propagation of the design. Why is that different if it is for >> a PCB or for code burned into a Flash ROM? You keep saying the same >> things without explaining them. > > For example, you take a GPL'd schematic and make a PCB out of it. You > give the PCB to someone else. Does that new person have the right to > copy it? Do they have the ability to copy it? If the GPL doesn't apply > to the PCB itself, how does that new person GET the right to copy? They > never got a copy of the schematics...
That is the equivalent of giving the embodiment of software, no? If you give someone a device with the OSS embedded in Flash you are obligated to provide the source code. If you give someone an FOSH PCB you are obligated to give them the schematic and most likely the Gerber files.
> So to truly do open hardware, the hardware itself has to come with some > sort of license that says "anyone who possesses this hardware, has a > right to the design files". But now you have to enfoce compliance of > that right across all manufacturers. *Now* you're messing with real > money, since anyone who makes a copy of the PCB - and spends real money > doing so - has obligations to anyone who gets those PCBs.
I can't follow this part. I don't see how it is any different than Cisco selling units with FOSS embedded. That took *real* money to enforce and *real* money made by Cisco was at stake.
>> You state that a hardware license has to "apply" to a manufacturing >> scenario without explaining what that means. > > The GPL requires that, in addition to the source code, you have to > provide any Makefiles, build scripts or non-standard tools required to > produce the binaries. If turning a schematic into a PCB, or turning a > 3D model into a physical device, requires some non-standard > manufacturing technique or tooling...
Wow, you are really going out on a limb. The makefile is required to be distributed if it was provided as part of the FOSS package. Likewise any essential manufacturing info would be part of the original FOSH package. But that is very uncommon. There are a small number of files ordinarily used to convey manufacturing info, assembly diagram, drill file, Gerber files, XYRS file and parts list (BOM). Not significantly different from building software from .c, .h, .rc, et. al.
> (basically, anything that's not commonly available could be used to > "lock you out" of copying by making it essentially impractical to copy > it even though you have the design files; the GPL has clauses to prevent > this)
Who is doing the locking out? 1st party, 2nd party???
>> I don't see anything in your argument that is different between >> hardware designs and software designs. It is the design that is >> licensed and the embodiment is irrelevant. > > The embodiment of a design is the "binary" of the design, and the GPL > does apply to software binaries. Why shouldn't it apply to hardware > "binaries"?
Yes, why not?
> Remember, the purpose of the GPL is not to provide a way to let people > copy a design, it's to prevent people from hiding a design from its > users. To meet that purpose, they need to control the binaries as much > as the sources.
Control? How does FOSS "control" binaries?
> The GPL equivalent here is "you may not distribute this hardware, unless > you give each recipient the design files."
Yes! Exactly!!! Well, almost. I don't beleve FOSS requires you *give* the sources, it requires they be available such as a download. -- Rick
rickman <gnuarm@gmail.com> writes:
>> (basically, anything that's not commonly available could be used to >> "lock you out" of copying by making it essentially impractical to copy >> it even though you have the design files; the GPL has clauses to prevent >> this) > > Who is doing the locking out? 1st party, 2nd party???
Consider that the GPLv3 now has anti-lockout clauses as the GPLv2 allowed you to distribute the sources but require that any binaries be cryptographically signed before the device would load them (*cough* Tivo *cough*). "You have the sources but they'll do you no good! HA HA HA!" - I.e. the vendor tried to lock their device to one of their binaries, taking away your right to use a modified GPL'd binary instead.
>>> I don't see anything in your argument that is different between >>> hardware designs and software designs. It is the design that is >>> licensed and the embodiment is irrelevant. >> >> The embodiment of a design is the "binary" of the design, and the GPL >> does apply to software binaries. Why shouldn't it apply to hardware >> "binaries"? > > Yes, why not?
As opposed to applying to the hardware design files, and not the hardware itself.
>> Remember, the purpose of the GPL is not to provide a way to let people >> copy a design, it's to prevent people from hiding a design from its >> users. To meet that purpose, they need to control the binaries as much >> as the sources. > > Control? How does FOSS "control" binaries?
By preventing you from legally redistributing them except under the license terms.
>> The GPL equivalent here is "you may not distribute this hardware, unless >> you give each recipient the design files." > > Yes! Exactly!!! Well, almost. I don't beleve FOSS requires you > *give* the sources, it requires they be available such as a download.
It depends on which GPL clause you choose; one option is to make them available for download, another is to include a written promise to give the source later. I include either of these in "give" above, for brevity.
On 11/11/2014 8:57 PM, DJ Delorie wrote:
> > rickman <gnuarm@gmail.com> writes: >>> (basically, anything that's not commonly available could be used to >>> "lock you out" of copying by making it essentially impractical to copy >>> it even though you have the design files; the GPL has clauses to prevent >>> this) >> >> Who is doing the locking out? 1st party, 2nd party??? > > Consider that the GPLv3 now has anti-lockout clauses as the GPLv2 > allowed you to distribute the sources but require that any binaries be > cryptographically signed before the device would load them (*cough* Tivo > *cough*). "You have the sources but they'll do you no good! HA HA HA!" > - I.e. the vendor tried to lock their device to one of their binaries, > taking away your right to use a modified GPL'd binary instead. > >>>> I don't see anything in your argument that is different between >>>> hardware designs and software designs. It is the design that is >>>> licensed and the embodiment is irrelevant. >>> >>> The embodiment of a design is the "binary" of the design, and the GPL >>> does apply to software binaries. Why shouldn't it apply to hardware >>> "binaries"? >> >> Yes, why not? > > As opposed to applying to the hardware design files, and not the > hardware itself. > >>> Remember, the purpose of the GPL is not to provide a way to let people >>> copy a design, it's to prevent people from hiding a design from its >>> users. To meet that purpose, they need to control the binaries as much >>> as the sources. >> >> Control? How does FOSS "control" binaries? > > By preventing you from legally redistributing them except under the > license terms. > >>> The GPL equivalent here is "you may not distribute this hardware, unless >>> you give each recipient the design files." >> >> Yes! Exactly!!! Well, almost. I don't beleve FOSS requires you >> *give* the sources, it requires they be available such as a download. > > It depends on which GPL clause you choose; one option is to make them > available for download, another is to include a written promise to give > the source later. I include either of these in "give" above, for > brevity.
I really have no idea what point you are trying to make with all this. You go around and around without making anything clear. Instead of discussing this in tiny paragraphs, perhaps you could make a single post that actually explains your thoughts? -- Rick
rickman <gnuarm@gmail.com> writes:
> I really have no idea what point you are trying to make with all > this. You go around and around without making anything clear. Instead > of discussing this in tiny paragraphs, perhaps you could make a single > post that actually explains your thoughts?
Because each time I make a statement, someone picks it apart from a different direction. That led to "clarifications" that weren't relevent to my original point. My point is that the FSF chose not to try to cover hardware with the GPL, because hardware is a tangible good that costs time and money to replicate, whereas software (either in source or binary format) is intangible and thus effectively cost-free to copy. A correlary to this point is that you can't say "the GPL only applies to the design files" because if the GPL doesn't apply to the physical hardware, there's no way to ensure the recipient of that hardware has the rights to its design files. But, applying a copyright license to physical hardware is both legally and philosophically difficult. As far as the OP is concerned, my only point was that the definition of "work" is a legal one, and that - in general - attempts to circumvent the GPL typically imply that the GPL does apply to the whole you're trying to split up. This is hard enough to work through for software, adding a hardware element to it makes it much harder.
On 11/12/2014 5:49 PM, DJ Delorie wrote:
> > rickman <gnuarm@gmail.com> writes: >> I really have no idea what point you are trying to make with all >> this. You go around and around without making anything clear. Instead >> of discussing this in tiny paragraphs, perhaps you could make a single >> post that actually explains your thoughts? > > Because each time I make a statement, someone picks it apart from a > different direction. That led to "clarifications" that weren't relevent > to my original point. > > My point is that the FSF chose not to try to cover hardware with the > GPL, because hardware is a tangible good that costs time and money to > replicate, whereas software (either in source or binary format) is > intangible and thus effectively cost-free to copy. > > A correlary to this point is that you can't say "the GPL only applies to > the design files" because if the GPL doesn't apply to the physical > hardware, there's no way to ensure the recipient of that hardware has > the rights to its design files. But, applying a copyright license to > physical hardware is both legally and philosophically difficult. > > As far as the OP is concerned, my only point was that the definition of > "work" is a legal one, and that - in general - attempts to circumvent > the GPL typically imply that the GPL does apply to the whole you're > trying to split up. This is hard enough to work through for software, > adding a hardware element to it makes it much harder.
Ok, this is where we started I believe. You have stated that it is "hard" to apply GPL to hardware. But I don't follow your reasoning in that regard. I don't see how it is any different from software. The fact that it costs more to replicate hardware than it does to replicate software doesn't seem relevant to me. I don't see any reason why "applying a copyright license to physical hardware is both legally and philosophically difficult." It is done all the time. All of my products are copyrighted hardware. A recipient of GPLed hardware has the same rights as a recipient of a GPLed binary with the same level of effort required to enforce the GPL on those products. -- Rick
rickman <gnuarm@gmail.com> wrote:

(snip, someone wrote)

>> As far as the OP is concerned, my only point was that the definition of >> "work" is a legal one, and that - in general - attempts to circumvent >> the GPL typically imply that the GPL does apply to the whole you're >> trying to split up. This is hard enough to work through for software, >> adding a hardware element to it makes it much harder.
> Ok, this is where we started I believe. You have stated that it is > "hard" to apply GPL to hardware. But I don't follow your reasoning in > that regard. I don't see how it is any different from software. The > fact that it costs more to replicate hardware than it does to replicate > software doesn't seem relevant to me.
Well, one reason relates to what copyright protects. It protects the expression of the idea. In both cases, one can make a new expression and avoid the copyright. In the case of a large software project, that isn't likely. It would take a very long time to generate a different expression of linux to get around its copyright. But in the case of hardware, reasonably often that isn't true. Consider a PC board as an example hardware. I can redo the layout, with exactly the same components wired up the same way, but with completely different placement. IANAL, but I suspect that would get around any copyright. Seems to me that if you take the netlist and run it through a different PC board router, that would probably be enough. That makes me wonder how hard it would be to write a program that would generate a new expression of a software idea. Change it in enough ways to avoid copyright, but such that the function was guaranteed (as well as software can) to be the same. That is, no human in the loop to make human errors. Not quite the same, but the usual way to get around drug patents is to modify the molecule in some way. Add a methyl group onto one ond, or hydroxyl on the other. Away from the active site, but that is usually enough to get around a patent. You can trademark the name, and often enough that will discourage any copying. People who like Coke won't necessarily switch to Pepsi, even if they did believe it was pretty much the same formula. (Well, Pepsi is doing well enough, but even so, some like Coke more.)
> I don't see any reason why "applying a copyright license to physical > hardware is both legally and philosophically difficult." It is done all > the time. All of my products are copyrighted hardware. A recipient of > GPLed hardware has the same rights as a recipient of a GPLed binary with > the same level of effort required to enforce the GPL on those products.
Have you tried suing anyone for illegally copying it? -- glen