Timothy Miller wrote:

Yes, sorry, LGPL.  I spent a bit of time reading the LGPL this evening.
Caveat here as needed:  IANAL.  The way I interpret is distributing an
FPGA bit file containing the above modules or an ASIC containing them
without also providing the source would fall afoul of section 6 of the
LPGL.  This is mainly do to the nature of hardware vs software I think.
It is much harder to "re-link" hardware...

Providing the source to the module isn't a problem.  But does the LGPL
require that one provide the source to the whole chip?

I just lost my original message due to a nearby lightning strike. So, I'll try this again.

Here is section 6 of the LGPL (http://www.gnu.org/copyleft/lesser.html):

-----------------------------------------

*6.* As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.

You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:

   * *a)* Accompany the work with the complete corresponding
     machine-readable source code for the Library including whatever
     changes were used in the work (which must be distributed under
     Sections 1 and 2 above); and, if the work is an executable linked
     with the Library, with the complete machine-readable "work that
     uses the Library", as object code and/or source code, so that the
     user can modify the Library and then relink to produce a modified
     executable containing the modified Library. (It is understood that
     the user who changes the contents of definitions files in the
     Library will not necessarily be able to recompile the application
     to use the modified definitions.)
   * *b)* Use a suitable shared library mechanism for linking with the
     Library. A suitable mechanism is one that (1) uses at run time a
     copy of the library already present on the user's computer system,
     rather than copying library functions into the executable, and (2)
     will operate properly with a modified version of the library, if
     the user installs one, as long as the modified version is
     interface-compatible with the version that the work was made with.
   * *c)* Accompany the work with a written offer, valid for at least
     three years, to give the same user the materials specified in
     Subsection 6a, above, for a charge no more than the cost of
     performing this distribution.
   * *d)* If distribution of the work is made by offering access to
     copy from a designated place, offer equivalent access to copy the
     above specified materials from the same place.
   * *e)* Verify that the user has already received a copy of these
     materials or that you have already sent this user a copy.

For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.

-----------------------------------------

As I read you must either provide the source to the library under LGPL, provide relinkable object files of the program using the library such that the library can be updated and re-linked with the program, or provide for dynamic linking such that the library is not actually part of the program binary and can be replace at the users descression.

I don't think this is a big issue for the FPGA bit files as the will be downloadable and the source can be provided for the LPGL parts on the download site, complying with 6d. The problem I think comes with the ASICs. Since you can really re-link an ASIC you cannot comply with sections 6a or 6b as they are worded. Even if you interpret that to mean that the recipient has the ability to re-make the RTL, do all the layout work, and regenerate the ASIC mask, it still requires the distributor to supply all the necessary pieces in either a "linkable" binary for, or as original source. Besides the "burden" of this in the commerical realm, I don't know that there is the equivelent of an object file for HDL code that is sufficiently binary to make it acceptible to an company for release of their IP.


We need to explicitly state that release in an ASIC form falls under different rules.

Patrick M

_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to