views:

202

answers:

1

I want to use Fluent NHibernate in commercial desktop application, and I'm little concerned about the licensing. I've downloaded Fluent NHibernate precompiled binaries, and it contains this list of files:

Antlr3.Runtime.dll
Castle.Core.dll
Castle.DynamicProxy2.dll
FluentNHibernate.dll
Iesi.Collections.dll
log4net.dll
NHibernate.dll
NHibernate.ByteCode.Castle.dll

I guess I will have to add all of these files to my Inno Setup script, which will install them on user's computer. But what should I do to comply to all of the licenses associated with each file? I'm sure I'm not the first who wants to use Fluent NHibernate in commercial application, so I hope I won't have to study each of the licenses.

I'm not a lawyer.

+6  A: 

The licensing is as follows:

The Apache and BSD licenses are permissive. Basically, just make sure you include the license itself, and don't remove the copyright notices, and you'll be fine. The LGPL adds the condition that it has to be possible to link your application against a newer version of the library, which applies to virtually every .NET app - you'd have to make a conscious effort to violate this.

As far as I know, those are the only restrictions you need to worry about. There's no copyleft GPL restrictions on any of those libraries, they're all free for commercial use.

Disclaimer: I Am Not A Lawyer either. The last two paragraphs reflect my best understanding of the actual text of the applicable licenses. If you work for a publicly-traded company or are seriously worried about being sued, consult an actual lawyer.

Aaronaught
@Aaronaught: According to [this](http://stackoverflow.com/questions/1007338/can-i-use-apache-software-license-2-0-lib-in-commercial-application) I should display copyright notice whenever my programs display copyright notices (about form, installer wizards) for the Apache licensed libraries. Is it required? Should I write somewhere which file is distributed under which license (in help file for example), and put copy of that license in folder, where the appropriate .dll is, or copying just the licenses in those folders is enough?
Paja
@Paja: If your application displays its own copyright notice then you need to include any *attribution notices* (not the entire license) of the components with it. As far as I know (again, IANAL), you don't need to display the entire license anywhere, just include it.
Aaronaught
@Aaronaught: Well, isn't there any shortcut that I could make? I don't want to pollute my forms (those which display copyright notices) with my own copyright plus 5+ lines of additional notices. Isn't "Copyright (c) MyCompany 2010\nMyProduct uses software copyrighted by their respective owners." or something like that just enough?
Paja
Question for anyone: For example, Adobe Photoshop have a nice About form, in which they have "Copyright (c) Adobe", and under that they have a link "Click here to view parent and legal notices.". After clicking that link, they display all those attribution notices. Is it possible to do it just like them, or do I have to put those notices right under my copyright?
Paja
@Paja: That's *patent*, FYI. Each license is different; Apache just requires you to include attributions in the notice *file*, if you distribute one. LGPL says that you have to give "prominent notice." Honestly, all of these things are subjective and open to interpretation; it's usually fine as long as you provide an *easy* and *conspicuous* way for users to see which libraries were used and provide easy access to the attributions/licenses.
Aaronaught
@Aaronaught: Yes, patent, just a typo... I guess I will do it like Adobe did. Just display my copyright and a link to view additional attributions. Thanks.
Paja