views:

132

answers:

6

Which open source licenses allows inclusion of the licensed source code in commercial applications without having to make our program open source as well?

In particular, I was looking on koders.com for an implementation of a fast hash algorithm in C#, but I am not sure if Iam allowed to use it in a commerial application without limits.

EDIT:

/// Linking this library statically or dynamically with other modules is
// making a combined work based on this library.  Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
A: 

Very few don't. Even the much-maligned GPL allows inclusion in commercial apps. But, you're probably looking for something in the LGPL, BSD, or MIT vein.

Ignacio Vazquez-Abrams
See my edits, these lines at the start of the source file made me think that iam not allowed to redistribute it.
codymanix
The GPL does not prevent redistribution or selling of the software. It simply imposes additional requirements on the owner of the derivative product.
Ignacio Vazquez-Abrams
This is wrong. If you include GPL source in your code you make need to make it GPL too, making it open-source effectively.
pajton
@pajton: So what? "Open source" and "commercial" are **not** mutually exclusive. They **never** have been.
Ignacio Vazquez-Abrams
@ignacio Yes, but he stated in the question `without having to make our program open source`. Besides that you are of course right.
pajton
There are very few GPL licensed code can be used in commercial applications. Usually that requires some exceptions besides GPL, such as the one used by SharpZipLib.
Lex Li
@Lex: Again, GPLed software can be used in commercial software. The GPL does not interfere with your rights to sell it.
Ignacio Vazquez-Abrams
Yes, you can sell it with all source code shared under GPL, like the one who sells Emacs discs for years. But nowadays Internet makes copying much easier and that road is no longer feasible.
Lex Li
+1  A: 

In licenses that enforce copyleft, that is, require the license of your program to be at least as liberal as that license itself, the rule is only enforced if you distribute your program. If your program is to stay in-house, you can use whatever you want with it. It's only if you wish to sell your application that the GPL would not allow it, and require distribution to be open-source.

Take with a grain of salt, as 1) I'm no lawyer, and 2) I believe this particular viewpoint is contested by some, but what I've seen suggests that this is the majority opinion.

Tesserex
our program is/will be distributed/sold.
codymanix
+1  A: 

I am not sure if Iam allowed to use it in a commerial application without limits

Most open source licenses are redistribution licenses, which means use isn't generally affected (or asserted to be affected) while (re)distribution is only permitted if certain requirements are met.

For example, the MIT license requires that its copyright be preserved. Most open source licenses have a similar requirement (including the BSD licenses). This means that wherever your program displays its copyright, it needs to additionally display the copyrights of any code you've lifted. If you do not do this, you do not have the right to redistribute your code (with the embedded MIT-licensed code).

The GPL is notable in that it additionally requires that your software be redistributable under the terms of the GPL. This means using GPL-licensed code, and redistributing your program, essentially makes your program GPL. The high-quality of some GPL programs has been successfully used to "free" previously non-free software.

There are some subtleties I'm glazing over here, but the answer you need is probably: ask the author of the code snippet. If this is impossible or impractical, ask a lawyer who is well-versed in copyright law, and especially familiar with software.

geocar
For that link: http://clisp.cvs.sourceforge.net/%2acheckout%2a/clisp/clisp/doc/Why-CLISP-is-under-GPL
Cam
@incrediman thanks, that seems to work.
geocar
+1  A: 

The mandate I've gotten from our company lawyers is basically this:

Web based: Open source is fine since it's not being redistributed.

Desktop App: No open source libs as it could force us to open our source.

In this same line of thought, if you are using 3rd party libraries, make sure to double check what libraries they're dependent on. We've come across a few commercial libraries that we considered using only to decide against it when we found that they were using open source libraries.

As mentioned, there are plenty of closed source apps that use open source libraries, so clearly there is some interpretation. No one is going to be able to get you to open your source code without a legal battle, so it may come down to how risk adverse you are.

roto
+1  A: 

The license part you showed is typical GPL. Therefore, if you use this code, your application must be released as open source, and must be released under GPL.

There are workarounds. For example, only build a small executable that includes this GPL code, and release this utility under GPL.

Other parts of your application can use "inter process communication" with this utility to consume its service. Then such parts do not need to be released as open source.

Lex Li
The GPL says nothing about "inter process communication" and offers no technical advice on this subject. If someone follows your advice, they may in fact be violating the GPL. See http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem for more details.
geocar
Yes, this part is the gray area. So it is smarter to choose the black or white approach - "use GPL to open-source your code if using GPL code from others", or "be free and never use any GPL code from others". Personally I choose the former for my open source projects, and the latter for my commercial projects.
Lex Li
+1  A: 

Those restrictions as mentioned by roto basically apply only to the GPL and very similar licenses. The Apache license (for example) doesn't require you to distribute your own product that uses an Apache licenced library as open source. Nor does the LGPL (unless you modify that library, in which case those specific modifications only must be distributed under the LGPL, not the entire application that uses the so-modified library). And then there's the GPL library exception used in for example the JDK, which allows the use of the binaries without releasing your product under the GPL but not the source.

For myself, I won't touch GPL licensed sourcecode with a 10ft pole unless on a machine that will never be used to create software for external distribution (and I do have a separate computer for things like that) so as to prevent the smallest possibility of accidental cross pollination of my own code with any GPL licensed code fragments.

But IANAL and happily so :)

jwenting