
Choosing an OSS license - llambda
http://choosealicense.com/
======
pbiggar
Really, this should just be a big sign saying "use the MIT license".

This is a site for beginners to OSS licensing. If this is your first time,
just choose the MIT. If it's not the first time, you get to worry about
whether you want to restrict reuse with the GPL, whether you prefer the BSD
(2-clause or 3?), whether you agree with Stallman's philosophy enough to put
up with the downsides of imposing GPL on your users, whether patents affect
you, whether you need copyright assignment, whether to set up an entity to own
your code, and all sort of other license bullshit.

First timers should use MIT, every time.

~~~
ianstallings
No way. GPL or LGPL every time IMHO. It protects your work from proprietary
_embrace and extend_ methods. That in turn helps keep it free for all to use
and modify. Commercial licenses can still be compatible with the LGPL and GPL
if done properly _by the copyright owners_ of the code.

For an example of embrace and extend look at some of the libraries usurped by
Microsoft such as Kerberos. I bet they wish they'd have used the GPL.

~~~
pbiggar
So you're someone who clearly has spent a bit of time thinking through all the
licenses, and has a good philosophical position on them. However, if you
haven't done all that research, and just need a license right now, I think
it's not wise to tell people to use the GPL, as it will have side-effects they
don't intend, for features they're not interested in (perhaps, not interested
in _yet_, of course).

~~~
ianstallings
This is a big decision. What is so bad about taking an hour or two to read
about the differences? I know a lot about the different licenses because I
went through this same decision when I decided to release a library I built
under LGPL: [http://sourceforge.net/projects/opensmtp-
net/](http://sourceforge.net/projects/opensmtp-net/)

I spent a little time and made a decision. I think everyone should do the
same. Don't let someone embrace and extend your work unless you _want_ them
to.

~~~
pbiggar
An hour or two is a serious underestimate. I spent literally years reading
about licenses before I came to my eventual conclusion.

~~~
ianstallings
So you're saying that a quick decision can't be made? I agree. A couple of
hours is the bare minimum to at least try to discover them. But I still think
people should try and understand the differences. I feel that the GPL is very
important to OSS.

~~~
pbiggar
Totally agree, I just wouldn't want someone to have to have more friction when
they're trying to do OSS for the first time.

------
narcissus
At some point in the distant past, there used to be a site that had a huge
matrix of licenses, that allowed you to look across one axis for one license,
down the other axis for a different license and then basically read the
consequences of combining code with those two licenses.

I liked that site and for the life of me cannot find it again. Things like
"can I copy Apache licensed code into this LGPL code" were answered really
simply, even when the answer included comments around making changes
available, impact on copyright notices etc.

Does anyone know of anything similar these days? Don't get me wrong, the site
linked here is great, but for me, at least, the fuzziness is in the legalities
of combining code...

~~~
rzendacott
I think this may be the site you were referring to:
[http://www.tldrlegal.com/compare](http://www.tldrlegal.com/compare)

I was looking up OSS licenses the other day and happened upon it.

Edit: It looks like sandyarmstrong also posted it below.

~~~
narcissus
That's not the site I was thinking of, but to be honest, it seems to pull off
the concept a lot better than the one I remember :)

Thanks!

------
jasonkester
Every one of those licenses is more pretentious than I'd like. Does anybody
know the closest one to: "Here's some code. Do what you want with it?"

As a guy releasing code, I don't want you to feel obligated to me in any way.
I don't want you to have to attribute back to me, or even acknowledge in any
form that you've used my thing. I certainly don't want to do anything silly
like force you to open source the rest of your code.

I just want to give stuff away. It doesn't seem like that's very possible
these days.

~~~
leftnode
Could you just claim it to be in the public domain?

~~~
dllthomas
My understanding is that CC0 was created in response to a lack of clear method
(perhaps in some jurisdictions?) for placing a work in the public domain.

------
sandyarmstrong
Another great resource, from the other viewpoint (reading/mixing open source
licenses): [http://www.tldrlegal.com/](http://www.tldrlegal.com/)

~~~
DannyBee
Kind of? It misses important nuances that, in practice, cause the most
compliance violations.

For example, for LGPL, it doesn't mention you must allow customer modification
and reverse engineering for the purpose of debugging those mods.

Even people who do everything else right, still mess this up.

Some licenses are just not very easily summarized, because they are complex
and nuanced.

~~~
sparkie
The license combination feature is quite flawed too, as it fails to tell you
which license of two you must use in the case where it's required; and in some
cases where licenses are not compatible, it fails to mention. (eg, MS-PL and
GPL)

------
gte910h
If you want your library to be usable on iOS, Windows Phone OS, most game
consoles, you should avoid the GPL as they are incompatible with the stores
that the applications are sold through.

------
jeltz
Excellent page. Only thing missing is the GPL vs LGPL issue about viral and
non-viral copyleft. I am not saying that being viral is a good or bad thing,
it is just a choice a developer must make when picking a license.

~~~
jmillikin
The GPL is not more "viral" than any other software license.

To distribute a product that uses GPL'd code, the rest of that product must
also be under an open-source license, but there is no requirement that
everything be licensed under the GPL.

~~~
Sanddancer
There are plenty of licenses that are less viral than the GPL, such as BSD,
MIT, etc. Furthermore, if you're pulling code from multiple sources, there are
licenses, such as CDDL, that are mutually incompatible with the GPL. So yes,
looking at virality very much does matter.

~~~
jmillikin
Please define your use of "viral".

For most discussions about the GPL, people call the GPL "viral" from a
misconception that it can't be combined with or depended on by non-GPL code.
This belief is obviously wrong, but it persists.

Both the GPL and LGPL can be combined with and depended on by non-GPL code, so
if the LGPL is not "viral", then neither is the GPL.

~~~
Sanddancer
Viral as in requiring my code to be compatible with the GPL ecosystem, and in
restricting my choice of licenses.

As I gave as my example, I can use a library licensed under the LGPL, and link
it with code licensed under the CDDL. I cannot do that with a library licensed
under the GPL. With that GPLed library, I'd have to use a license that the GPL
is compatible with. So, if I had a product that I wanted to link with both
sides, I would need to license my code under a license that is mutually
compatible, such as BSD or MIT; I would be restricted from using certain other
copyleft licenses.

~~~
jmillikin

      > Viral as in requiring my code to be compatible with the
      > GPL ecosystem, and in restricting my choice of licenses.
    

By that reasoning, all software licenses are viral. Even the 2-clause BSD
license would be viral, because you're not permitted to distribute it combined
with code that it's incompatible with.

    
    
      > As I gave as my example, I can use a library licensed
      > under the LGPL, and link it with code licensed under
      > the CDDL. I cannot do that with a library licensed
      > under the GPL.
    

That's simple license incompatibility. There are many licenses that are
incompatible with the LGPL, and you wouldn't be able to distribute the
combined work any more than you could a combined CDDL/GPL work.

    
    
      > So, if I had a product that I wanted to link with both
      > sides, I would need to license my code under a license
      > that is mutually compatible
    

Again, this is true of every copyright license ever created. That's what
"incompatible" means.

~~~
pbsdp
> _By that reasoning, all software licenses are viral. Even the 2-clause BSD
> license would be viral, because you 're not permitted to distribute it
> combined with code that it's incompatible with._

You're reinventing definitions to suit your argument. The BSD license creates
no restrictions on what you can combine it with. The restrictions are defined
by to the GPL.

~~~
jmillikin
All licenses (except, in some jurisdictions, the public domain) have
restrictions. They may be minor, they may be "common sense", but they are
still restrictions. The BSD license has restrictions on how code may be
redistributed, in particular its requirements regarding attribution and non-
endorsement.

If I released some code with a license that said:

    
    
      This work may not be combined with any work which has a
      license containing more than twenty capitalized letters.
    

Then that license would be incompatible with the BSD license, and it would be
illegal to combine the two works.

So if you define "viral" to mean "a license which can be incompatible with
other licenses", then the GPL would fit that definition, but so would many
other licenses (including the BSD license). Thus, it is not a useful
definition.

There is no useful definition of "viral" which covers the GPL but excludes the
LGPL.

~~~
pbsdp
You're engaging in standard GPL goal-post moving; somehow if you redefine all
the words we'll all accept that the GPL isn't a restrictive viral license.

------
gohrt
[http://www.tldrlegal.com/](http://www.tldrlegal.com/) solves this problem
more precisely, more accurately, and with less fake dirty paper in the
background image.

------
thruflo
If you "care about sharing improvements" then choose a license to maximise
contributions.

The GPL imposes major headaches / restrictions on potential adopters. This
reduces uptake, which reduces contributions, thereby reducing sharing of
improvements.

~~~
sparkie
Perhaps the wording is wrong, but the intention is that people must share
their improvements, not some optional hope that they will.

And your claim of restricting potential developers is entirely speculation.
e.g, see Linux vs any of the BSDs.

~~~
Sanddancer
As a counterexample, look at Apple's opinion of GPLv3. Because there are
certain clauses that have open legal questions, such as the ones regarding
patents, Apple has very strict requirements for internal developers wishing to
use GPLv3 code for any task, with a requirement that no published code be
GPLv3. Thus, regardless of quality, Apple decided to switch to, and contribute
to, projects that did not have such restrictive legal terms attached to it,
giving back even when they had no requirement to.

~~~
stcredzero
_> Thus, regardless of quality, Apple decided to switch to, and contribute to,
projects that did not have such restrictive legal terms attached to it, giving
back even when they had no requirement to._

There is something contradictory about _requiring_ others to act "more freedom
promoting."

~~~
sparkie
It depends on your perspective though: is your license aimed at developers
only, or all end users. The GPL makes it quite clear that there's no
distinction between them, everyone is an end user who may not restrict another
end user.

Other more "permissive" licenses can be used to constrain anyone though,
because the developer sees the license was only for him, and those permissions
are not relevant for his end user.

------
orta
This is great, and something we as a community need. I work on CocoaPods the
objc dependency manager and we have a strict rule of no-unlicensed code.
Meaning for a lot of libraries adding themselves to our toolchain is the first
time they've ever had to think of the license.

As this is a github project, I'd definitely like to make it known that it
would be really cool to have some integration with the license on github's
side on a per-repo basis. Asking people to create a license when creating a
public repos at the same time as a README could really help get people
thinking about licensing.

~~~
vrdabomb5717
Github seems to have done this: [https://github.com/blog/1530-choosing-an-
open-source-license](https://github.com/blog/1530-choosing-an-open-source-
license)

Their new repo page points to choosealicense.com and lets you choose any of
the major OSS licenses, though it does show the MIT, GPL3, and Apache ones in
bold.

I'd definitely like the option to add a license to my repo after creation
though, instead of having to manually add a license to the repo and then
pushing it. A UI for asking collaborators if it's okay to retroactively open-
source their work under a specific license would be useful too.

~~~
orta
This is a start to get people more thinking about it!

------
bmj
I have a question about the Apache license....I'm trying to understand if an
end user must accept the Apache license if I use a library under it in my
software. I do understand that I cannot remove the license from the module
source, but I'm not sure what needs to provided to the actual software user.

~~~
belorn
Primarily, the license need to be provided to the software user. No user need
to accept the license, as it only impact those who redistribute the work. If
the user redistribute the work, then they are also bound by the license.

Additionally, If you are distributing any source material (images, source code
and so on), then any modified file need to include a notices stating that the
file has changed. You may also not remove copyright, patent, trademark, and
attribution notices in said files.

If the Work includes a "NOTICE" text file (also any credit buttons with
similar content), you may not remove it.

Thats about it.

------
gjtorikian
:trollface: [http://www.addalicense.com](http://www.addalicense.com)

------
D9u
[http://www.freebsd.org/doc/en/articles/bsdl-
gpl/article.html](http://www.freebsd.org/doc/en/articles/bsdl-
gpl/article.html) (Last modified on 2013-05-17)

I was somewhat disappointed by the dearth of selections presented by the site.

------
tlarkworthy
I tend to dual license. Everybody can have it as GPL or business users can buy
a copyright version.

------
snambi
Hey this site is biased. GPL doesn't restrict end-users or contributors. It
only restricts distributors (middleman). While permissive licenses such as
APL, MIT don't restrict the distributors, even if they remove the rights of
end users.

------
rogerbinns
It is unfortunate that you are forced to pick between three items. In reality
I care about all 3, so why be forced to pick between them?

~~~
icebraining
They are more or less incompatible. If you want to specify patent protection
and/or source sharing requirements, it can't be simple like MIT. And if you
want permissive, it makes no sense to demand for source sharing as well.

------
reidmain
I'm a big fan of [http://www.wtfpl.net/](http://www.wtfpl.net/)

------
pseut
It would be useful to have documentation licenses as well.

