Re: Genode FPGA graphics project launched



Jon Beniston wrote:
The GPL says (roughly) that any code that is directly linked to the
GPL'ed code must also be GPL'ed. You can't use GPL'ed IP and non-GPL'ed
IP in the same FPGA.

Ok, I think we agree here.

The LGPL is a little lighter - it allows you to link the LGPL'ed code
with non-GPL'ed code as long as anyone with the binary is able to get
the source code to the LGPL part, modify it, re-link it, and use the new
version. This is fine for things like dynamically linked libraries on a
desktop OS (that's what it was designed for), but hardly practical for
FPGA IP!

You don't have to supply the modified code with the FPGA though. I'm
sure a web download would be suitable.


Technically, according to the letter of the GPL 2, a web download alone is not enough (it was considered too unreliable at the time the GPL2 was written), but the GPL 3 allows it. It's a minor quibble, of course.

But what is important for using the LGPL is that the user (or anyone who legally acquires the binary) must have access to everything they need to modify the LGPL'ed code and produce a new binary, or exactly the same binary as the original. In the software world, this means that the rest of the program must be available as a linkable object - easy if you have an OS and the LGPL'ed code is a dynamic library. It must also be possible for the user to download their binary into the system. It's okay if the tools to do this cost money, as long as the user is free to buy them - I don't think you'd have to provide any Microblaize IP, as that's a standard library with the tools. But you'd have to include compiled versions of all your own IP, possibly also third party IP, and things like pin layout files. And if the bitstream is to be encrypted, you have a new set of issues...

All in all, the LGPL is very impractical for embedded systems.

A better choice of license would be what is known as a "modified GPL" or
"GPL with exception" license (or the very similar Mozilla Public
License). Here the GPL is explicitly modified to apply only to the
source files provided

What happens if someone modifies a file to use a function that is in a
new file though? Do they have to provide this?


I don't think so - there is no requirement that your modified m-GPL'ed code can work without the rest of your system. The aim is to codify the idea that the package you got under the m-GPL is a community effort - you can use it as you want, but can't claim you wrote it, and if you extend or improve it, these changes must be available to others. It has always struck me as a very fair license giving the best of both worlds (it can be used freely even in commercial systems, but enforces more "freeness" than BSD-style licenses).

.



Relevant Pages

  • [PATCH] change libata license from OSL+GPL to GPL
    ... - changes license of all code from OSL+GPL to plain ole GPL ... indicate your decision by deleting the provisions above and ...
    (Linux-Kernel)
  • Re: Copyleft and embedded Forth
    ... rights of another. ... Developer may do with p.d. ... Use isn't an issue with any free software license. ... You have to choose to use GPL software. ...
    (comp.lang.forth)
  • Re: module license taints kernel.
    ... you can't use a license ... At least this is how the GPL is ... you cannot use a license to turn actions that do not violate ... copyright law, not as defined in the GPL or in the common sense ...
    (comp.os.linux.development.system)
  • Re: GPL compliance
    ... Your main intent seems to be to spread FUD about the GPL and because ... every piece of code that is packaged has a copyright file. ... worrying only about the Canonical license for the whole CD and I was ... what does Red Hat have to do with it? ...
    (Ubuntu)
  • Re: Free Hardware
    ... freedoms that the GPL provides do not apply to ... you can't GPL the FPGA itself. ... well FPGA's DO MAKE it possible to send HARDWARE per email. ... The FPGA / PC, micro, what not, is the canvas. ...
    (comp.arch.fpga)