LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Sponsors
  • Mirrors
  • Logos
  • Contact us
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Richard Prescott <rip@s...>
    Date: Mon, 24 Feb 2003 14:59:30 -0500 (EST)
    Subject: [oc] Re: [openip] Possible problem with LGPL - advice ?
    Top

    
    I am not a legal advisor so what I am saying here are purely opinion.
    
    I have two answers.  The short one say that should not be a problem.  The
    long one say that LGPL cannot be used on cores.  So legally, opencores'
    cores might be unprotected so we need to catch up and fix that.  Design
    and Documentation have a different licensing model.  Cores should too.
    
    My short answer:
    
    > The terms in the LPGPL (see below) state that the end user must be able
    > to replace the core (library) by another version. In the case of an ASIC
    > production this would imply that either the synthesized netlist or the
    > post-layout files for the whole chip should be provided free of charge.
    
    I see nowhere in LGPL (I still searching for) saying "free of charge".  It
    is a misconcpetion of free software that free software is free (huh?).
    
    Free as in "libre" not free like free beer. (ah!)
    
    http://www.gnu.org/philosophy/free-sw.shtml
    
    The closest thing I see is in 6c.
    
    << 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.>>
    
    Which is a choice out of five of how to apply freedom to software.
    
    And the cost of distribution (i.e. create a new asic) is quite high for a
    customer.  But, if he absolutly wants it, how it is a problem for you?
    
    It is not free beer...
    
    My long answer, a lecture of LGPL 2.1:
    
    << 0. This License Agreement applies to any software library or other
    program which contains a notice placed by the copyright holder or other
    authorized party saying it may be distributed under the terms of this
    Lesser General Public License (also called "this License"). Each licensee
    is addressed as "you". >>
    
    Cores are not software library neither program.  Cores are cores!
    LGPL cannot be used for cores.  That is my opinion.
    
    <<  A "library" means a collection of software functions and/or data
    prepared so as to be conveniently linked with application programs (which
    use some of those functions and data) to form executables. >>
    
    Cores are not a collection of software functions and/or software data and
    cores cannot be linked with application programs. Cores are not software!
    Cores aren't use to form executables.
    
    Chapter 1. is about distribution of source code.
    
    Chapter 2. is about modification of LGPL source.
    
    Chapter 3. is about "upgrading" to GPL.
    
    Chapter 4. is about distribution of the "compiled" version.
    
    << 4. You may copy and distribute the Library (or a portion or derivative
    of it, under Section 2) in object code or executable form under the terms
    of Sections 1 and 2 above provided that you accompany it with the complete
    corresponding machine-readable source code, which must be distributed
    under the terms of Sections 1 and 2 above on a medium customarily used for
    software interchange.
    
    If distribution of object code is made by offering access to copy from
    a designated place, then offering equivalent access to copy the source
    code from the same place satisfies the requirement to distribute the
    source code, even though third parties are not compelled to copy the
    source along with the object code. >>
    
    Again, cores aren't libraries or object code that can be compiled and
    linked to obtain an executable.  Cores are cores that are synthesized and
    routed into a circuit (layout, netlist...)
    
    But let's say it aint so.  What I am reading is your customer (and only
    your customer) must be able to get the LGPL source you used.  If you
    didn't modify it. It is still available through opencores.org.
    
    Chapter 5.
    
    << 5. A program that contains no derivative of any portion of the Library,
    but is designed to work with the Library by being compiled or linked with
    it, is called a "work that uses the Library". Such a work, in isolation,
    is not a derivative work of the Library, and therefore falls outside the
    scope of this License. >>
    
    So you can sell this part.  (plus the work of integration)
    
    <<  However, linking a "work that uses the Library" with the Library
    creates an executable that is a derivative of the Library (because it
    contains portions of the Library), rather than a "work that uses the
    library". The executable is therefore covered by this License. Section 6
    states terms for distribution of such executables. >>
    
    We are going to cover that later.
    
    <<  When a "work that uses the Library" uses material from a header file
    that is part of the Library, the object code for the work may be a
    derivative work of the Library even though the source code is not. Whether
    this is true is especially significant if the work can be linked without
    the Library, or if the work is itself a library. The threshold for this to
    be true is not precisely defined by law. >>
    
    Nice to know.  (And we are still in the software world!)
    
    Chapter 6 is about "work that use the Library"
    
    So it apply only to software library ??
    
    << 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:>>
    
    Assuming that we accept cores as libraries.  That can be a problem.  But
    not impossible to solve.
    
    Note the "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.) >>
    
    Doesn't apply unless (we considere cores are libraries and) you deliver
    the source of your work to your client.
    
    << # 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. >>
    
    Simply impossible since cores aren't libraries.
    
    << # 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.>>
    
    ok.  no problem except the fact that 6a cannot apply.
    
    << # 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. >>
    
    Feasible depending of the definition you give to "materials".
    
    
    << * e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.  >>
    
    I am not sure I understand this one. Still related to definition of
    "materials".
    
    <<  For an executable, ... >>
    
    Doesn't apply, not an executable.
    
    Chapter 7 to 16. Usual rules fully applicable to cores without problems.
    (Well, I think so.)
    
    Conclusion:
    
    We need a CGPL : Core General Public License or something similar.  An
    Open Source Licence that will fit the spirit of opencores.org.  For sure
    we handle source code but not library files nor object files nor
    executables.
    
    Also, the definition of a end-user isn't well defined for cores. Is the
    end-user the guy that use the produced chip or the end-user is the one
    that use the "software" i.e. that use the core to create a chip.  This
    will lead to a totally different lecture of LGPL.  In that case, once it
    is "burned" into an asic it is like usage of the software.  You might use
    GCC to compile code.  Compiled code by by GCC aren't GPL.
    
    Bonne chance!
    
    Richard   <today's devil's advocate/>
    
    Sorry for my bad english.
    
    
    On Fri, 21 Feb 2003, MikeJ wrote:
    
    > Hi Chaps.
    >
    > I have received an email from someone who wishes to use an opencores core,
    > but has pointed out some problems with the LGPL that many of us to
    > distribute our hardware cores.
    >
    > advice ??
    > cheers.
    > MikeJ
    >
    >
    > The terms in the LPGPL (see below) state that the end user must be able
    > to replace the core (library) by another version. In the case of an ASIC
    > production this would imply that either the synthesized netlist or the
    > post-layout files for the whole chip should be provided free of charge.
    >
    > This is unacceptable. I would hope the idea behind the open cores would
    > be that any changes made to the cores _themselves_ would have to be
    > released. But releasing the whole ASIC project (of which the controller
    > core would only be a tiny part) makes use of this type of core in any
    > sort of commercial project impossible (and together with it the benefits
    > of having commercial developers improve the core and release the changes
    > will disappear).
    >
    > Is there any chance of providing an exception to those terms? Something
    > like:
    >
    > This library is free software; you can distribute it and/or modify it
    > under the terms of the GNU Lesser General Public License as published by
    > the Free Software Foundation; either version 2.1 of the License, or (at
    > your option) any later version. However, as an exception to section 6 of
    > the GNU Lesser General Public License, you are allowed to provide the
    > "work that uses the Library" in a form (e.g. hardware) that does not
    > give the user the possibility to replace the Library with a modified
    > version.
    >
    > If not I'm afraid I will have to scrap your core (like all LGPL-licensed
    > cores) from my evaluation for inclusion in a future ASIC.
    >
    >
    > 
    >
    
    --------------------------------------------------------------------------
         1024D/BEF5DD36 Richard Prescott <rip@s...>
         Key fingerprint = E11B E939 8A1D 2FA8 A672  555F ABA8 DE5A BEF5 DD36
    
    
    

    ReferenceAuthor
    [oc] Possible problem with LGPL - advice ?MikeJ

    Follow upAuthor
    [oc] re Possible problem with LGPL - advice ?MikeJ

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.