Open Source Licenses
and how to choose one
@ BEN Group / Drupal Romania
(I am not a lawyer)
So take this with a grain of salt.
Even if I was, this is just a presentation.
When in doubt, hire a lawyer.
Advice on the internet != lawyer.
What I will talk about
What is copyright? What's a license?
Open Source licenses in use.
Some tips on running a project.
A bit of text, some code, a drawing.
(Registration not required.)
Expression of an idea and not the idea itself.
You have the right...
to not copy
(but there's fair-use)
You're contracting / freelancing.
You're fulltime and your contract says otherwise.
Permissions granted to others.
Without assigning the copyright to them.
You can dual license.
Free software licenses.
Open Source licenses.
License breakdown on Github, as of 2015. On other sites GPL is still the king.
License evolution on Github, as of 2015.
You have no right.
Even if it's on Github.
Unlicensed code on a site: TOS.
No license is not public domain.
Public domain is tricky.
Licensed projects on Github, as of 2015.
Are like the borg, they assimilate.
Not the borg.
The most used
Created by Richard Stallman for GNU.
Version 2 and 3 are used.
In a nutshell:
If you distribute / sell a product that uses GPL code, you need to provide the source and it needs to be GPL.
Private use is fine.
Version 2: Liberty or death
Version 3: Tivoization, patents.
"Version 2 or later".
Selling themes / Plugins
Usage in SaaS products
Static / dynamic linking
Wordpress, Drupal are GPL.
Hosting your website is not distributing.
Contracting means, however, that you're writing GPL code.
Selling plugins or themes is ok, but they're GPL.
The consensus is that you're being payed for customizations and support.
Generally images and stylesheets are not considered GPL.
None of this has been proven in a court of law.
Bridging is sometimes ok.
When GPL 2 was written there was no SaaS.
This was a problem for some.
AGPL fixed it.
GPL 3 avoided it.
Linking to GPL code means that your code must be GPL.
LGPL was created to avoid that.
Key: dynamic linking.
Until iOS 8 you couldn't dynamically link.
Libraries moved to another license.
"To make a copy for your neighbour" conflicts with DRM.
Mac, iOS App Store are a no no.
Android, Linux appstores are fine.
VLC was pulled off initially.
(like MySQL did).
Is compatible with:
(if "or later" is used)
LGPL, AGPL, Apache 2.0, *BSD, MPL, MIT
Is not compatible with:
AGPL 1, Apache 1.x, APSL, Original BSD, MPL 1.1
BSD, MIT, ISC
On the other side of the spectrum.
Pretty much do what you want.
Nothing about patents.
Nothing about trademarks.
In the middle.
Allows proprietary use.
Result can be under a proprietary license.
Can be part of closed source software.
MPL code must be made available.
Do what you want.
Preserve copyright, license, notices.
State changes made.
Tries to monetize OSS.
More than 15 employees: pay.
Difficult to integrate with other licenses.
Sourcegraph, Codenvy, Data Duck, GitLab.
Public domain is tricky.
Some lawyers say you can't put things in the public domain.
Some say you can via a 'dedication'.
This is difficult in EU due to 'moral rights'.
Tries to put code in the public domain via a license.
Doesn't quite work due to 'moral rights'.
Don't use it.
Do what the fuck you want to license.
Books, music, photos, blog posts etc.
Not recommended for code.
CC0 is the equivalent of Unlicense.
Which one to choose?
It really depends on your project.
MIT, Apache 2.0, GPLv3
Watch for simple licenses with extra things.
e.g. react's PATENTS file.
Stack Overflow's content is CC, migrating to MIT.
You probably violated the license.
Getting into FOSS
Open Source is not only about code.
Documentation, QA, design etc.
Help a project you use.
Scratch an itch.
Events like Hacktoberfest, meet-ups, hackathons.
A successful project
Takes time and dedication.
Needs a strong hand.
Might need a co-mantainer or two.
Might be given to someone else.
Might be discontinued.
Might be forked (but try to avoid it).
So you've started an FOSS project
Project grows, gains traction.
You have 100 contributors.
You decide to change or add another license.
You want to sue someone.
You are getting sued because somebody contributed "bad" code.
You have to get approval from 100 people.
You have to involve anyone in the lawsuit.
You are getting sued for someone else's mistake.
Contributor License Agreement
Copyright gets transferred to you / your organization.
Can protect you from getting sued.
Moral rights rears it's head.
Code of Conduct
Set guidelines on what's accepted or not.
Moved from GPL to LGPL.
French, so moral and patrimonial rights.
libVLC: 150 devs, 80,000 locs.
Plugins: 300 devs, 300,000 locs.