My understanding of the static/dynamic linking part for .net libraries is that referencing a DLL is dynamic linking, while ilmerge makes it static linking. This understanding extends from this being basically what you get with dlls and libs in C++ on Windows for the binary format.
On Thu, Sep 10, 2009 at 9:21 PM, Wenig, Stefan <[email protected]>wrote: > Hi > > I've spent some time understanding the *GPL family of licenses, and my > reading (based on the text and other sources, like the FSF FAQ and various > articles on the Net), was always that (in .NET terms): > > If you use the source files of the Library to create a new assembly, it has > to be LGPL too. > If you link the Library's assembly/assemblies to some other assemblies, > these assemblies can be provided using any license. (No matter what the > purpose of this code is. Whether those other assemblies in some way "extend" > the Library makes no difference at all.) > > In fact, I believe if it were different, there would be little difference > between the GPL and the LGPL, and you'd need a lawyer in each case to decide > how the LGPL could be applied to commerial software. > > In other words, providing a proprietary assembly that derives from NH > classes like Session to provide extended generic ORM functionality would not > be a license violation, or else any proprietary application that derives > from NH classes in order to achieve certain features would be at risk. > > If someone disagrees, I'd be grateful if you could point out the exact > language in the LGPL that makes this distinction, because I cannot find it. > > BTW, there's one clause that few people are aware of: If I read the LGPL > right, any binary application that uses the Library must enable the user to > replace the Library with her own version of the Library (section 6). I > believe that any fully managed app fulfills this clause because you can > ildasm/edit/ilasm it, thus changing the the public key token for the Library > in the application. But that's just what I'm thinking. > > Reading the (L)GPL is a mess though, and it's not made easier by the > ambiguities of static/dynamic linking: .NET always uses DLLs, but can link > to them statically or load them dynamically - is a statically linked DLL a > statically or a dynamically linked library in GPL speak? (Not to mention the > misunderstanding that "derived work" somehow applies to deriving classes in > OOP.) If you're unsure, I suggest contacting [email protected], they're > helpful and quick, if a bit terse. > > Hope this helps, > > Stefan > > > ------------------------------ > *From:* [email protected] [ > [email protected]] On Behalf Of Ayende Rahien [ > [email protected]] > *Sent:* Thursday, September 10, 2009 7:32 AM > *To:* [email protected] > *Subject:* [nhibernate-development] Re: Note about LGPL > > It other words, and in laymen terms. If you are using NHibernate, great, > you don't have anything to worry about legal wise. > If you extending NHibernate, and distributing your work, then the *parts > that extend NHibernate*, must also be under the LGPL. > > To my knowledge, we had at least one case of a company taking NHibernate > (well, they took Active Record, but same thing) and trying to sell it as > their own. I don't think it was very successful journey for them, though. > > On Thu, Sep 10, 2009 at 6:57 AM, Fabio Maulo <[email protected]> wrote: > >> This is an invitation to the team. >> The text below is part of the LGPL license adopted by NHibernate >> (mentioned as "Library"). >> >> Please help OSS ensuring that every body does understand the term of the >> license. >> >> 2. You may modify your copy or copies of the Library or any portion >> of it, thus forming a work based on the Library, and copy and >> distribute such modifications or work under the terms of Section 1 >> above, provided that you also meet all of these conditions: >> >> a) The modified work must itself be a software library. >> >> b) You must cause the files modified to carry prominent notices >> stating that you changed the files and the date of any change. >> >> c) You must cause the whole of the work to be licensed at no >> charge to all third parties under the terms of this License. >> >> d) If a facility in the modified Library refers to a function or a >> table of data to be supplied by an application program that uses >> the facility, other than as an argument passed when the facility >> is invoked, then you must make a good faith effort to ensure that, >> in the event an application does not supply such function or >> table, the facility still operates, and performs whatever part of >> its purpose remains meaningful. >> >> (For example, a function in a library to compute square roots has >> a purpose that is entirely well-defined independent of the >> application. Therefore, Subsection 2d requires that any >> application-supplied function or table used by this function must >> be optional: if the application does not supply it, the square >> root function must still compute square roots.) >> >> These requirements apply to the modified work as a whole. If >> identifiable sections of that work are not derived from the Library, >> and can be reasonably considered independent and separate works in >> themselves, then this License, and its terms, do not apply to those >> sections when you distribute them as separate works. *But when you* >> *distribute the same sections as part of a whole which is a work based* >> *on the Library, the distribution of the whole must be on the terms of* >> *this License, whose permissions for other licensees extend to the* >> *entire whole, and thus to each and every part regardless of who wrote* >> *it.* >> >> Thus, it is not the intent of this section to claim rights or contest >> your rights to work written entirely by you; rather, the intent is to >> exercise the right to control the distribution of derivative or >> collective works based on the Library. >> >> In addition, mere aggregation of another work not based on the Library >> with the Library (or with a work based on the Library) on a volume of >> a storage or distribution medium does not bring the other work under >> the scope of this License. >> >> 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. >> >> 9. You are not required to accept this License, since you have not >> signed it. However, nothing else grants you permission to modify or >> distribute the Library or its derivative works. These actions are >> prohibited by law if you do not accept this License. Therefore, by >> modifying or distributing the Library (or any work based on the >> Library), you indicate your acceptance of this License to do so, and >> all its terms and conditions for copying, distributing or modifying >> the Library or works based on it. >> >> >> -- >> Fabio Maulo >> > > -- Jono
