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

Reply via email to