GNU GPL, LGPL, Apache licence Types and Differences

56
Name: I.D.Rubasinghe Index Number: 12001228 ( Including the CC Licence in 7 slides in landscape mode of it’s all pages )

Transcript of GNU GPL, LGPL, Apache licence Types and Differences

Page 1: GNU GPL, LGPL, Apache licence Types and Differences

Name: I.D.Rubasinghe

Index Number: 12001228

( Including the CC Licence in 7 slides in landscape mode of it’s all pages )

Page 2: GNU GPL, LGPL, Apache licence Types and Differences

•Q1Q1•What Is GNU GPL ?

•Different Versions Of GNU GPL •GNU LGPL•MsPL•Comparison And Contrast•Business Models That Can Be Explained

•Q2•Combining License Types•Similar Practical Cases

•Q3Q3•About Group Project•CC License

•Why Add CC License To Web Site ?•Attributions And Why Are They ?

Page 3: GNU GPL, LGPL, Apache licence Types and Differences

What is GNU General What is GNU General Public License Public License (GPL) ?(GPL) ?• A free, copy-left license for software and other kinds of

works

• Is intended to guarantee your freedom to share and change all

versions of a program to make sure it remains free software

for all its users

Page 4: GNU GPL, LGPL, Apache licence Types and Differences

Developers that use the GNU GPL protect your rights with

TWO steps:

(1) Assert copyright on the software

(2) Offer you this license giving you legal permission to copy,

distribute and/or modify it

What is GNU General Public License (GPL) ? What is GNU General Public License (GPL) ? contd...contd...

Page 5: GNU GPL, LGPL, Apache licence Types and Differences

What is GNU General Public License (GPL) ? What is GNU General Public License (GPL) ? contd...contd...

You have the freedom to distribute copies of free software

(and charge for them if you wish), that you receive source

code or can get it if you want it, that you can change the

software or use pieces of it in new free programs

You have certain responsibilities if you distribute copies of

the software, or if you modify it: responsibilities to respect

the freedom of others

Page 6: GNU GPL, LGPL, Apache licence Types and Differences

What is GNU General Public License (GPL) ? What is GNU General Public License (GPL) ? contd...contd...

Page 7: GNU GPL, LGPL, Apache licence Types and Differences

Different Versions Of GNU Different Versions Of GNU GPLGPL

Version 1 - GPLv1Released on 25 February 1989

The first problem was that distributors may publish binary files only-executable, but not readable or modifiable by humans

To prevent this, GPLv1 said that any vendor distributing binaries must also make the human-readable source code available under the same licensing terms

The second problem was the distributors might add additional restrictions To prevent this, GPLv1 said that modified versions, as a whole, had to

be distributed under the terms in GPLv1 (sections 2b and 4 of the license)

Page 8: GNU GPL, LGPL, Apache licence Types and Differences

Different Versions Of GNU GPL contd...Different Versions Of GNU GPL contd...

Version 2 - GPLv2Released in June 1991

According to Richard Stallman, the major change in GPLv2 was the "liberty or death" clause

This section says that if somebody has restrictions imposed that prevent him or her from distributing GPL-covered software in a way that respects other users' freedom, he or she cannot distribute it at all. The hope is, that this will make it less tempting for companies to use patent threats to require a fee from the free software developers

When version 2 of the GPL (GPLv2) was released therefore, a second license - the Library General Public License was introduced at the same time and numbered with version 2 to show that both were complementary

Page 9: GNU GPL, LGPL, Apache licence Types and Differences

Different Versions Of GNU GPL Different Versions Of GNU GPL contd...contd...

Version 3 - GPLv3Released by FSF on 29 June 2007 - Written by Richard Stallman

According to Stallman, the most important changes are in relation to :

Software Patents

Free Software License Compatibility

Definition Of "Source Code"

Hardware Restrictions On Software Modification ("Tivoization")

Other changes relate to internationalization, how license violations are

handled, and how additional permissions can be granted by the copyright

holder

Page 10: GNU GPL, LGPL, Apache licence Types and Differences

PermissivePermissive Weak Copy Left Weak Copy Left Strong Copy LeftStrong Copy Left Network Protective Network Protective

Page 11: GNU GPL, LGPL, Apache licence Types and Differences

GNU Lesser General GNU Lesser General Public License (LGPL)Public License (LGPL)This accompanies some open source software that details how

the software and its accompany source code can be freely copied,

distributed and modified

The author of this license asks that you only use this license if

you are licensing functionality already commonly available

A LGPL is used to license free software so that it can be

incorporated into both free software and proprietary

software, and is often referred to as the weaker sibling of GPL

Page 12: GNU GPL, LGPL, Apache licence Types and Differences

GNU Lesser General Public License (LGPL) GNU Lesser General Public License (LGPL) contd...contd...

Provides copyright protection: True

Can be used in commercial applications: True

Bug fixes / extensions must be released to the public

domain: True

Provides an explicit patent license: False

Can be used in proprietary (closed source) applications: True

Is a viral licence: True

Page 13: GNU GPL, LGPL, Apache licence Types and Differences

GNU Lesser General Public License (LGPL) GNU Lesser General Public License (LGPL) contd...contd...

Page 14: GNU GPL, LGPL, Apache licence Types and Differences

Microsoft Public Microsoft Public License (MsPL)License (MsPL)

Used by Microsoft

This license governs use of the accompanying software

If you use the software, you accept this license

If you do not accept the license, do not use the software

Does not grant permission to the contributor’s name, logo

or trademark

Incompatible with GPL

Page 15: GNU GPL, LGPL, Apache licence Types and Differences

Microsoft Public License (MsPL) contd...Microsoft Public License (MsPL) contd...

Provides copyright protection: True

Can be used in commercial applications: True

Bug fixes / extensions must be released to the public

domain: False

Provides an explicit patent license: True

Can be used in proprietary (closed source) applications: True

Is a viral licence: False

Page 16: GNU GPL, LGPL, Apache licence Types and Differences

Comparison And Comparison And ContrastContrast

The LGPL and GPL licenses differ with one major exception; with LGPL the requirement that you open up the source code to your own extensions to the software is removed

Page 17: GNU GPL, LGPL, Apache licence Types and Differences

Comparison And Contrast contd...Comparison And Contrast contd...

Comparison GPL LGPL MsPL

Must distribute licence with binary or source √ ☺ √ ☺ √ ☺

Cannot use contributors name to endorse √ ☺

There has to be A notification to changed files √ ☺ √ ☺

Any change must distributed in source form √ ☺ √ ☺

Lets you explicitly charge for providing warranty/ guarantee or transfer of code

√ ☺ √ ☺

All derivate work must be under the same license √ ☺

Must show license when run from command line √ ☺

Non derivate works can have different license √ ☺ √ ☺

May exclude countries where there is A contradiction with patent in that country

√ ☺ √ ☺

Page 18: GNU GPL, LGPL, Apache licence Types and Differences
Page 19: GNU GPL, LGPL, Apache licence Types and Differences

Business Models That Business Models That Can Be ExplainedCan Be Explained1. Dual (twin) licensing: Companies distributing software with both a GPL-like license and a

commercial (i.e. fee-based) license. (For those wondering. Ex: MySQL/SUN (MySQL as in LAMP )

TrollTech/NOKIA (Mobile Platform)

2. Split (mixed) model: usually companies distributing interesting commercial (fee-based) plug-

ins on a FOSS success (e.g. Firefox) with a liberal license (e.g. Mozilla MPL). Thin line to

walk since plug-in can always be developed / reverse engineered by FOSS developers. Ex: Zimbra/Yahoo (messaging / groupware)

3. Badgeware: Basically a makeover of the idea behind the original BSD license related to

advertising and visibility clauses.  In short: you can use it but you’ve got to advertise us. Ex: SocialText  (Enterprise Wiki) 

Page 20: GNU GPL, LGPL, Apache licence Types and Differences

Business Models That Can Be Explained Business Models That Can Be Explained contd...contd...

Page 21: GNU GPL, LGPL, Apache licence Types and Differences

Business Models That Can Be Explained Business Models That Can Be Explained contd...contd...

8. Search engines: How to find the right source code and its license? And yes, Google is here too and also a few VC-backed companies thinking in the worst case they can always turn into FOSS management companies. Ex:

Google code search (Labs) 

9. Community/Resources: The traditional repositories but also various and large forums/discussion boards. Ex:

SourceForge/SourceForge Inc. The Code Project

10. FOSS management/Compliance: The idea here is really to play on people’s fear that their proprietary software might have been contaminated by a GNU-like license. Hence products and services geared towards cleansing, identification and Open Source compliance enforcement.

8. Black Duck the leader

Obviously "Free" in "Free Open Source developer" does mean "Free" as in

"Free beer"!

Page 22: GNU GPL, LGPL, Apache licence Types and Differences

Business Models That Can Be Explained Business Models That Can Be Explained contd...contd...

Page 23: GNU GPL, LGPL, Apache licence Types and Differences

Business Models That Can Be Explained Business Models That Can Be Explained contd...contd...

The mission of Third Party Service Providers is simple. They don’t care where you got the code or where you got the product. If the product you are using meets a broad set of criteria, they will fully support it. They have one single revenue stream- service. Their business model is here.

Page 24: GNU GPL, LGPL, Apache licence Types and Differences

Business Models That Can Be Explained Business Models That Can Be Explained contd...contd...

How can a company add value?First, it can choose a version of the product that is stable and that is most suited to its users' needs

Second, it can create a suite of products that are well integrated. These products may come from different sources- some open-source, some commercialThe value addition is in creating one package that works well together

For many software sellers, they already have a

relationship with enterprise customers.

They can benefit most by up-selling

i.e., selling more to existing corporate customers.

Selling service then becomes a logical conclusion

Page 25: GNU GPL, LGPL, Apache licence Types and Differences

Combining License Types

Page 26: GNU GPL, LGPL, Apache licence Types and Differences

Many of the most common free software licenses, such as the: original MIT/X license

BSD licenses (in the 3-clause and 2-clause forms, though not the

original 4-clause form)

MPL 2.0 

LGPL

are "GPL-compatible". That is, their code can be combined with a program under the GPL without

conflict (the new combination would have the GPL applied to

the whole).

When it comes to copy-left software licenses, they are not inherently GPL-

compatible, even the GPLv2 is, by itself, not compatible with GPLv3

Page 27: GNU GPL, LGPL, Apache licence Types and Differences

“Registration” License Type

“AccountType” License Type

What will the CoreBank License type?

GPL LGPL GPL

GPL, LGPL both are created by the GNU ProjectThe GPL and LGPL prohibit covered software and all

derivative work from having its source code hidden from the public

Assumption: GPL and LGPL refer to their latest versionsThe latest version of the LGPL: a free software license, but

not a strong copy-left license, because it permits linking with non-free modules

So it is compatible with GPLv3 → CoreBank can get GPL License

Page 28: GNU GPL, LGPL, Apache licence Types and Differences

GPL + LGPL contd...GPL + LGPL contd...

Problems

A side-effect of the strong copy-left terms of the GPL is

that even many free and open source software projects are

prohibited from using GPLed libraries

Page 29: GNU GPL, LGPL, Apache licence Types and Differences

“Registration” License Type

“AccountType” License Type

What will the CoreBank License type?

GPL BSD GPL

Assumption: GPL refers to latest version and BSD refer to original BSD (3-clause BSD)

3-clause BSD license has no form of copy-left, so you are well within your rights to rebrand it, as long as you maintain its notice

In other words : BSD is a lax, permissive , non-copyleft , free software licenseSo it is compatible with the GPL

So to distribute the complete CoreBank package, the release must be under the more restrictive license, which, obviously, is the GPL

Page 30: GNU GPL, LGPL, Apache licence Types and Differences

GPL + BSD contd...GPL + BSD contd...

CoreBank module will end up with two kinds of files:Originally BSD files: needs to have both headers, order isn't

important to my knowledge, just that they are there

Your files and originally GPL files: need to have the GPL header

Authors of AccountType module are clearly free to release their own work under BSD even inside such a GPL-licensed compilation, and if someone takes out all GPL code (Registration module), the result can be distributed under BSD license

Page 31: GNU GPL, LGPL, Apache licence Types and Differences

“Registration” License Type

“AccountType” License Type

What will the CoreBank License type?

GPL Apache GPL

Assumption: GPL and Apache refer to latest versionsAPLv2_Lib + GPLv3_Lib => Combined lib as GPLv3 is

okayBUT Apache Software Foundation does not allow its own

projects to distribute software under licenses more restrictive than the Apache License, and the Free Software Foundation does not distribute software under the Apache License

So Apache AccountType module can therefore be included in GPL CoreBank module, because the GPLv3 license accepts our software into GPLv3 works

Page 32: GNU GPL, LGPL, Apache licence Types and Differences

GPL + Apache contd...GPL + Apache contd...

Problems

However, GPLv3 modules cannot be included in

Apache projects. The licenses are compatible in one

direction only

Page 33: GNU GPL, LGPL, Apache licence Types and Differences

“Registration” License Type

“AccountType” License Type

What will the CoreBank License type?

LGPL Apache LGPL/GPL

Assumption: LGPL and Apache refer to latest versions

Apache 2.0 licensed components can be used in GPL v3 and LGPL v3 licensed products while Apache 2.0 licensed products cannot use (L)GPL components

So obviously final CoreBank can’t be Apache

Therefore Corebank can be either LGPL v3 or GPL v3

Page 34: GNU GPL, LGPL, Apache licence Types and Differences

LGPL + Apache contd...LGPL + Apache contd...

The Apache License does not place any restrictions on

software that links to a plug-in or library that is distributed

under the Apache license

The LGPL on the other hand has the requirement that either

the LGPL library links dynamically (and can be replaced by a

user) or the entire work must be released under a GPL-

compatible open-source license

Page 35: GNU GPL, LGPL, Apache licence Types and Differences

“Registration” License Type

“AccountType” License Type

What will the CoreBank License type?

Apache MsPL MsPL

Assumption: Registration and AccountType components are dependent on each other. Registration component is a derivate work of the MsPL part the AccountType

I would take this to mean that:If distribute source versions, then the parts of the work that are

modified forms of the MsPL (here AccountType module) project (here CoreBank) must also be MsPL licensed

BUT if additional code that is not a derivative work of the MsPL, project may be under the license of our choosing

Page 36: GNU GPL, LGPL, Apache licence Types and Differences

Apache + MsPL contd...Apache + MsPL contd...

Possibilities:If include MsPL component in binary form then we are not

obliged to include the full source code

The MsPL does require that if we distribute the source of a derivative work then it must also be under the MsPL (the same requirement does not apply to distribution of binary / object code)

If distribute any portion of the software in source code form, we may do so only under this license by including a complete copy of this license with our distribution

Page 37: GNU GPL, LGPL, Apache licence Types and Differences

Similar Practical Similar Practical CasesCasesBSD → Netdude framework, DNS caching library

GPL → IRC Services, JOELib computational chemistry library

Apache → Apache Tomcat, Apache Ant

LGPL → Vstr string library, Razor! Gaming Engine

MsPL → Only some of the Microsoft products

Page 38: GNU GPL, LGPL, Apache licence Types and Differences
Page 39: GNU GPL, LGPL, Apache licence Types and Differences

About Group ProjectAbout Group ProjectAgro Disease Management System (ADMS)

Web Site – Multilingual (English/ Sinhala/ Tamil)

Register Users (General User/ Special User)

Users submit agricultural diseases related problems with

images

Agriculture field experts reply with solutions

Page 40: GNU GPL, LGPL, Apache licence Types and Differences
Page 41: GNU GPL, LGPL, Apache licence Types and Differences

Why add CC License to Why add CC License to Website ?Website ?

Anyone on the Internet can find our website

But what if someone wants to download content, reuse

images, or copy documents we have published online ?

By adding a Creative Commons license, can encourage

others to reuse, remix, and redistribute our content

Can professionally share our work with the world !

Page 42: GNU GPL, LGPL, Apache licence Types and Differences
Page 43: GNU GPL, LGPL, Apache licence Types and Differences

Attribution - NonCommercial -Attribution - NonCommercial -ShareAlike 4.0 International ShareAlike 4.0 International

(CC BY-NC-SA 4.0)(CC BY-NC-SA 4.0)

Why this ?

Because the ATTRIBUTIONSATTRIBUTIONS of this license

well satisfy the needs / requirements of the selected

project

What are they ?

We’ll see

Page 44: GNU GPL, LGPL, Apache licence Types and Differences

Cont...

Page 45: GNU GPL, LGPL, Apache licence Types and Differences

ATTRIBUTIONS ATTRIBUTIONS and and Why are they ?Why are they ?

Attribution To Let others remix, tweak and build upon our web site. I let to

do so because this project is a non-profit social work by itself to

ease the famers’ agriculture problems solving. So if anyone can

improve this it’s great.

NonCommercial To let them know that their new works must also acknowledge us

and be non-commercial, otherwise it will break the quality and

social value of our work. contd...

Page 46: GNU GPL, LGPL, Apache licence Types and Differences

ATTRIBUTIONS ATTRIBUTIONS and Why are they ? and Why are they ? contd...contd...

ShareAlike 

All new works based on ours will carry the same license. In other words

anyone who work on our project can license their new creations under

the identical terms. Otherwise it can be misused and destroy the quality

and purpose behind the product by having restricted licences.

So finally others can download and redistribute your work, but they

can also translate, make remixes, and produce new materials based

on your work. All new work based on yours will carry the same

license, so any derivatives will also be noncommercial in nature.

Page 47: GNU GPL, LGPL, Apache licence Types and Differences

contd...

Page 48: GNU GPL, LGPL, Apache licence Types and Differences

CC LicenseCC License

Page 49: GNU GPL, LGPL, Apache licence Types and Differences
Page 50: GNU GPL, LGPL, Apache licence Types and Differences
Page 51: GNU GPL, LGPL, Apache licence Types and Differences
Page 52: GNU GPL, LGPL, Apache licence Types and Differences
Page 53: GNU GPL, LGPL, Apache licence Types and Differences
Page 54: GNU GPL, LGPL, Apache licence Types and Differences
Page 55: GNU GPL, LGPL, Apache licence Types and Differences
Page 56: GNU GPL, LGPL, Apache licence Types and Differences