views:

653

answers:

9

Whats the easiest way, of telling if I can redistribute it in a piece of commercial software?

In license agreements I often read the terms GPL, OpenSource, Freeware, Artistic License but have never got a definitive answer on what the differences are.

+18  A: 

Rough summaries:

GPL: If your application is distributed to others, then you may not integrate or link GPLed source code unless your app is under a GPL-compatible license. This means that you can still use GPLed code for internal or private applications.

LGPL: You may not integrate LGPLed source code unless your app is under an LGPL-compatible license, with the same caveats as the GPL. You may link LGPLed code, statically or dynamically as an external library (.dll, .so, etc), so long as the LGPLed portion may be replaced by the user.

MIT/BSD/Expat: Do whatever you want, just don't claim you wrote the other party's code.

For exact definitions, you'll have to read the licenses themselves.

The FSF maintains a list of licences. While it's understandably biased in favor of their own, it also gives a good overview of free- and open-source software licences in general.

However, almost 90% of the time you'll be interacting with one of the three at the top of the post anyway.

John Millikin
Your GPL explanation is a bit too simple.
Till
Could you slightly expand it to say "if you distribute the software", you are free to use GPL code in an internal project (well GPL2 anyway).
Martin Beckett
Updated. I'm hesitant to put too much description into it because 1) I could be wrong and 2) the only text that matters is the licenses themselves.
John Millikin
LGPL: actually, you MAY integrate LGPLed source code with your app, even statically linking it. You just need to have a way to let the user replace it (the LGPL part) with an updated version.
Steve Hanov
By integration I was thinking more of having actual LGPLed source code that is compiled along with your source code into the final product. Simply forgot to mention static linking.Is there any way to change the answer into a wiki-answer after it's been posted, or just have to hit the edit limit?
John Millikin
+1  A: 

Usually the site with the software will link to the exact license. If your business depends on it, check with a lawyer.

That being said (and remembering that I am not a Lawyer), here's some quick guidelines that you should double-check

GPL -- commercial use allowed, but you have to provide the source code of your application if requested by the user.

BSD or MIT -- very permissive, usually ok

LGPL -- usually ok, but only if replaceable by end user

I am making this wiki answer so others can fine tune with their thoughts

Lou Franco
You can include GPL'd software in commercial applications, but if you do, you are not allowed to distribute it in binary online. You will have to provide full access to the source code!
Till
There is nothing about GPL that stops it being commercial - you just have to distribute your code under the same licence. You can still make money, ask sun/ibm/redhat !
Martin Beckett
Till: You can so distribute binaries of GPLed programs. It's just that source must be provided by the distributor, either with the binaries or on request. Last I checked, some Linux distros (here's looking at Ubuntu) weren't even shipping the code on discs, just the binaries (with code via apt).
Chris Charabaruk
+2  A: 

A few links:

Wikipedia and another Wikipedia with a table about them.

I agree, it can be confusing... I found the table helpful in summarizing them.

itsmatt
+2  A: 

I've always wished there was a program to graphically display a legal document such as a software license.

Basically display entities like licensee or copyright holder and display their rights or obligations symbolically.

Maybe in a use case diagram.

Surely if legaleeze is definitive enough to protect you in law it should be clear enough to parse.

JeffV
Creative Commons might be of interest to you... It works with a few basic rights for its license set, which can be expressed through a few glyphs and a link to a human-understandable description of the related licenses. http://creativecommons.org/
Chris Charabaruk
+3  A: 

Update I would really appreciate if people who want to downmod my answer to post a comment with where exactly I am wrong. I'd love to learn more about the various licenses out there. Thanks in advance.

Update 2 Edited the GPL and OpenSource sections to remove any wording that can be construed to be subjective.

Get a lawyer to look at the actual license of the 'free' software library and tell you if you can distribute it and what conditions it imposes on any derivative works.

Here's my understanding of the various types of license. Keep in mind that I am not a lawyer; nor am I very actively involved with free/open source community, so I might be wrong about some of these.

GPL requires that any product that incorporates a GPL-licensed source to be also GPL-licensed, if it's distributed to third parties. GPL gives a lot of freedom to what the users can do with the licensed product, but limits the terms of distribution and licensing model for any derivative works that include parts or the whole GPLed product.

In particular, paragraph 2 of GPL v2 (the most widely used GPL revision), states that any derivative work must be also licensed under the terms of GPL v2 if distributed. Exact verbiage: "...any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof... to be licensed as a whole at no charge to all third parties under the terms of this License" (http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)

There's also LGPL, which allows for linking to libraries under it without requiring the linked product to be GPL/LGPL-ed as well, though only in certain scenarios.

There are other OpenSource licenses, which give you the right to look at, modify or reuse the source code and/or create derivative works without imposing requirements on the licensing of the end product.

A Freeware license is a license that gives you the right to redistribute the software; however, you are not allowed to charge and make profit from it, except some minimal charge to recuperate the costs of the distribution (the CD cost for example). Freeware is not necessarily open source; it might be that just the binaries are distributed.

Artistic license gives you quite a freedom what you can do with the product or its sources without setting a lot of limitations on the derivative work. However, quite often artistic license is limited to a non-commercial derivative works only (you can't sell the derivative work for profit) and requires attribution, usually something in the lines of "Based on ... by ..."

Franci Penov
Watch out before the zealots attack.
Chris Charabaruk
If you have a product that uses GPLed code, it doesn't have to be under the GPL, just under a license that is compatible with the GPL. There is nothing "viral" about it.
John Millikin
John, as I quoted from paragraph 2 of GPL v2 in my answer, the exact verbiage is that any derivative works that includes even parts of a GPLed product must be licensed under the same license. GPL v2 requires GPL v2, not GPL-compatible license.
Franci Penov
No, there is no such requirement. You are not *allowed to distribute* works derived from GPLed code, but you retain all rights to your code regardless of what GPLed code is linked or included in it.
John Millikin
See also http://www.groklaw.net/article.php?story=20031214210634851 , http://metastatic.org/text/the-gpl-is-not-viral.html
John Millikin
You *are allowed to distribute* derivative works if they are licensed under GPL v2. You don't retain any rights to your code, except to use and modify it under GPL v2.If you don't ddistribute, you retain rights to your code, except the right to license in a different way to other people.
Franci Penov
You do retain rights to your code. It's very common for code to be dual-licensed under the GPL and a proprietary license -- Qt and MySQL are two such products. This dual-licensing would not be possible if the GPL forced surrender of rights.
John Millikin
I see your point. You are arguing that by using GPL code the developer explicitly agreed to it's terms. And the word "viral" in your mind has connotations with enforcing, not choosing and agreeing to the term.
Franci Penov
Yes, GPLed code can be dual licensed, but only by the original author. Accepting modifications from a third party would result in the whole product (original + modifications) to be GPL only. (Sun won't have the right to dual-license any changes I made to MySQL source code, only what they write)
Franci Penov
That's why Sun requires copyright assignment when you submit patches. This lets them retain complete control over the copyright while still accepting community help. Many organizations do this, including the Free Software Foundation.
John Millikin
Additional requirements like copyright assignment are outside of the scope of GPL. In fact,Sun imposes that requirement in order to be able to use third party code that should be GPLed and still be able to dual-license MySQL. In other words - to avoid applying GPL to them.
Franci Penov
The downmodding w/o comment is quite annoying.
torial
+1  A: 

AS others said... let a lawyer look over it.

GPL has to be handled with care as long as a library is linking against it. With LGPL or BSD style licenses you are on the safe side (MS Windows uses BSD network code, Mac OS X is based on a BSD kernel). For Java there are GPL licenses with the classloading exception (e.g. Java FX). This means that commercial CS Java applications may use such JAR files.

Yaba
+2  A: 

The SFLC has the authoritative guide here in terms of avoiding violations of open source licenses.

Jason Baker
+1  A: 

One area that hasn't been covered wrt to the GPL is the route that was taken w/ CS-RCS. In short, you can rely on a GPL product and write your logic around it as long as you are working with a clean separation across separate processes.

Here's from their FAQ:

The CS-RCS front-end and GNU RCS are two separate applications that run as separate Windows processes. The CS-RCS application is proprietary, but the GNU RCS application is distributed under the terms of the GNU GENERAL PUBLIC LICENSE (GPL). CS-RCS is not linked with RCS because such linking would violate the terms of the GPL. The Free Software Foundation affirms that running the two as separate processes, with a clean well-defined general interface between them, justifies the view that they are two separate programs.

torial
+1  A: 

You're probably confusing "commercial app" and "closed source". Most open-source licenses allow you to sell software containing that source.

I've personally experienced the legal problems you can have with adding Open Source to an existing commercial app. I'd side with John Millikin on the GPL and BSD-style licenses. For the LGPL, I'd disagree. First, the LPGL'ed part has to be replacable. In general, this is not possible with a statically linked library. Secondly, you need to meet the other LPGL conditions on your own application. E.g. you have to allow reverse engineering. Many EULAs disallow this.

MSalters