Open Source Software
Yaakov (J) Stein
Open Source Slide
1
Who are they ?
Open Source Slide
2
Paying for Software
Early computer manufacturers often gave away free software
to make their computers useful
In 1975 Bill Gates and Paul Allen formed Micro-Soft
and developed a BASIC compiler for the Altair 8800 computer
Their contract awarded them $30 - $60 royalty for each copy sold
Gates discovered that computer hobbyists were copying the program
and wrote a famous letter defending proprietary software
As the majority of hobbyists must be aware, most of you steal your software.
Hardware must be paid for, but software is something to share
Gates claimed that royalties enabled development of good software
In 1976 Apple computer came out with the Apple I computer
and promised that the software would be free
Why shouldn’t we have to pay for software ?
Open Source Slide
3
Not paying for software
In the late 1970s manufacturers were still giving away free software
but in object code format (instead of source code)
to prevent it from being used on their competitors' computers
and to insert copyright protection in programs
Richard Stallman (from MIT) called this a crime against humanity
and in 1983 started the GNU project
and later a nonprofit corporation called the Free Software Foundation
Stallman argues that
the term intellectual property is designed to confuse
referring to IPR as property biases any discussion
Unlike Gates, Stallman believes that all software should be free
Why should we pay for software ?
Open Source Slide
4
Open Source Software
Open Source Software is software provided as/with source code
OSS is often developed by communities, or more accurately by
• a small team of developers
• a large team of debuggers (“eyeballs”)
Studies have shown that use of OSS
• in commercial environments
can reduce IT expenses by large factors
• during the software development (hybrid software)
can reduce development cycles by orders of magnitude
Why doesn’t everyone use OSS all the time ?
Open Source Slide
5
IPR
Intellectual property is a set of property-like rights
in intangible “creations of the mind”
such as musical, literary, technological, and artistic works
IPR jurisprudence justifies exclusive rights, in order to
• motivate its creation (sweat of the brow)
• stimulate economic growth
• protect individual identity (moral rights)
Some forms of IPR
•
•
•
•
•
•
•
•
•
utility patents (inventions)
copyrights
Works without IPR
trademarks
(IPR expired, forfeited, inapplicable)
trade secrets
are said to be in the public domain
trade dress (distinctive packaging)
Industrial designs (design patents)
publicity rights (of celebrities)
geographical indications (terroir, e.g., of wine)
database rights (EU)
Open Source Slide
6
Short Introduction to IPR law
Unauthorized use of someone else’s IPR is called infringement
• Infringement may be the subject of civil law or criminal law
• Infringement does not necessarily require knowledge
but willful infringement may be more serious (e.g., triple damages)
IPR rights
• are always limited in time duration
• are usually limited to a given jurisdiction
• sometimes require registration and/or examination in a jurisdiction
There are ways to legally use someone else’s IPR
• assignment
• exclusive license
• non-exclusive license
A license is an authorization/permission by the IPR owner
to exercise a privilege that otherwise would constitute infringement
License terms often involve payments 
Open Source Slide
7
Copyright
Copyrights are IPR rights in works of art, literature, music, etc.
• literary
• musical
• dramatic
• graphic
• sound recordings
• architecture
• software
In many jurisdictions, copyrights last for creator’s life + 70 years
The bundle of 5 exclusive rights covered by copyright
• to reproduce (copy) the work
• to prepare derivative works based upon the work
• to distribute copies (sale, rental, lending)
• to publicly perform the work
• to publicly display the work
Open Source Slide
8
Coverage
Copyrights only cover the method of expression
not ideas (as in patents) or raw data, thus
• data (e.g., a phone book) can not be copyrighted (Feist vs Rural)
• scientific facts can not be copyrighted
• news can not be copyrighted
• a "useful article“ can only be copyrighted if
its esthetic features are separable from its utilitarian features
Copyright law recognizes 3 types of works
• original works
• derivative works (e.g., translations)
• compilations (e.g., anthologies)
Rights in derivative works and compilations are in addition to
and do not negate copyrights in the original work
Open Source Slide
9
Software copyrights ???????
Algorithms may be protected by patents
Databases may be protected (in the EU) by the database directive
Source code may be protected by copyrights
Some history (in the US) will help explain …
1974 Commission on New Technological Uses of Copyrighted Works
decided that computer programs, to the extent that they embody
an author's original creation, are proper subject matter of copyright
1980 US Congress added computer program to copyright law
1983 Apple vs. Franklin: Court of Appeals decides that even object code
is subject to copyright
1986 Whelan v. Jaslow, Broderbund v. Unison: extended software copyright to
structure, organization, look-and-feel
1997 No Electronic Theft Act raises criminal penalties (even w/o monetary gain)
to 5 years + 250K$ + higher civil damages, closing the LaMacchia loophole
Open Source Slide
10
Why not software patents ?
Software is not explicitly mentioned in US patent law
but there have been several US Supreme Court cases
In Gottschalk v. Benson (1972) the court ruled that
an algorithm was an abstract idea and so unpatentable
In Parker v. Flook (1978) the court gave a clue to patentability
the machine-or-transformation test :
a process was patentable if either
it was either carried out with a particular apparatus, or
transformed an article from one state or another
In Bilsky vs. Kappos (2010) the court ruled that
a particular business method was unpatentable
but that the machine-or-transformation test was not the sole test
In Alice Corp. v. CLS Bank (2014) the court ruled that
the fact that an algorithm was implemented on a computer
was not enough to make it patentable
Open Source Slide
11
Software licenses
A software license is a legal instrument (sometimes a contract)
concerning the use and redistribution of copyrighted software
A license is a permission granted by the publisher to a user
allowing the user to use the software
OWNER GRANTS LICENSEE THE RIGHT
TO COPY AND RUN THE SOFTWARE ...
For a license to be a contract it must include consideration
i.e., payment or a return promise
The license usually includes conditions
LICENSEE MAY NOT COPY OR MODIFY
THE SOFTWARE ...
As a legal instrument, a software license (and its terms)
needs to be accepted by the user, e.g. by
• physical signature
• opening packaging (shrink wrap)
• on-line clicking on agreement (click wrap)
Open Source Slide
12
Proprietary/free software licenses
We should distinguish between
• proprietary license or End User License Agreement
grants use of a copy of the software
but the publisher retains all ownership rights
• free software licenses
Some software is dual-licensed (or N-licensed)
meaning that it is available under more than one license
For example
proprietary if you pay a license fee
free software if you don’t
Open Source Slide
13
Proprietary software licenses
Proprietary licenses
are often called End User License Agreements (EULA)
The end user receives the right to use the software
but the software remains the property of the publisher
EULAs
• usually have an as-is disclaimer
and may restrict
• copying (except for backup)
• simultaneous use by multiple users
(single user/node, floating)
• reverse engineering
• performance tests
THE SOFTWARE IS PROVIDED "AS IS",
WITHOUT WARRANTY OF ANY KIND,
INCLUDING WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, ARISING
FROM USE OF THE SOFTWARE.
Open Source Slide
14
Free software
Free Software (defined by Richard Stallman and the FSF)
is software that allows users to use, study, share and modify
free is used in the sense of free speech, not of free beer
Note:
• free software ≠ public domain software
• free-of-charge software can have a proprietary license
• public domain software need not be free software
(e.g., no source code provided)
• proprietary software may include source code
Open Source Slide
15
Free Software – the 4 freedoms
The FSF defines free software as providing the user 4 freedoms
0 The freedom to run the program as you wish for any purpose
1 The freedom to study how the program works,
and change it so it does your computing as you wish
Requires source-code access (Open Source)
2 The freedom to redistribute copies so you can help your neighbor
3 The freedom to distribute copies of your modified versions to others,
giving the whole community a chance to benefit from your changes
Requires source-code access (Open Source)
The freedoms come at a cost – free software has no single owner
and so it can endlessly fork (e.g., Linux distros)
Open Source Slide
16
Open Source Software
Open-source software (OSS) is software
• made available with its source code
• licensed with rights to study, modify, and distribute
Examples:
•
•
•
•
•
•
GNU (GNU is Not Unix)
Linux
Android (but not Apple’s iOS)
SourceForge projects
GitHub
Google Code
Open Source need not be free of charge (but often is)
Open-source software is often collaboratively developed
and its use certainly can accelerate R&D times !
OSS licenses may be permissive or copyleft
Open content is an extension to other creative works
There is Open Hardware too! (OpenCores, OHWR, Facebook’s Open Compute server)
Open Source Slide
17
Derivative works
US Copyright act says :
A “derivative work” is a work based upon one or more preexisting works, such as a
translation, musical arrangement, dramatization, fictionalization, motion picture
version, sound recording, art reproduction, abridgment, condensation, or any other
form in which a work may be recast, transformed, or adapted. A work consisting of
editorial revisions, annotations, elaborations, or other modifications which, as a
whole, represent an original work of authorship, is a ''derivative work''.
Courts generally consider a work a derivative
only if it contains a substantial amount of the original work
What is the meaning of a derivative work for software ?
• modifying source code in-place
• translating source code into another programming language
certainly creates a derivative work
But different OSS licenses may add other types of derivative works, e.g.
EPL Any code in a separate file is not a derivative work
FSF Any program linking (statically or dynamically) is a derivative work
Open Source Slide
18
Copyleft
For software in the public domain, anyone can
• sell the software for a profit
• modify and use without attribution
• make derivative works (extensions, programs calling routines, etc.)
Copyleft exploits copyright law to maintain freeness
Copyleft provides rights to use/modify/distribute works
but requires the same rights (same license terms) be preserved
Copyleft generally applies to
• modified versions
– if you find a bug or add a feature, you must give it back to the community
• derivative works
– if you extend a copyleft routine/library /package (derivative work)
your work becomes copyleft too
OSS without copyleft provisions is called permissive
Open Source Slide
19
Copyleft history
1976 Palo Alto Basic’s distribution notice contained a joke
COPYLEFT - ALL WRONGS RESERVED (later versions said REVERSED)
1982 Richard Stallman supplied his public domain LISP interpreter
to a company named Symbolics
which refused to give him their improved version in return
1983 Stallman founded the GNU OSS project
1985 Stallman wrote in the GNU Manifesto:
GNU is not in the public domain. Everyone will be permitted to
modify and redistribute GNU, but no distributor will be allowed
to restrict its further redistribution. That is to say, proprietary
modifications will not be allowed. I want to make sure that all
versions of GNU remain free.
Open Source Slide
20
Code contamination
Up to now we have taken the side of the OSS developer
From a commercial software developer’s point of view
using any copylefted OSS may contaminate the codebase
By contamination we mean that in-house developed proprietary code
must be turned into OSS code under the OSS license terms
even if the OSS component is a tiny fraction of the codebase !
Consider the following hypothetical scenario
• COMPANY puts 100 man years into developing code for product X
• To save R&D time, a programmer links to 1 copylefted library
• COMPANY releases the product containing the copylefted code
Legally, COMPANY must now
• publish all of its source code (which will fall into the hands of competitors and hackers)
• allow anyone to modify the source code
Don’t think this can be covered up !
OSS organizations proactively look for companies that infringe
OSS scanning software exists that can detect OSS in object code!
Open Source Slide
21
Linksys case study
1988: Linksys founded, makes printer sharers, etc.
Early 1990s: Linksys develops home routers (WRT54G, …) for PC market
Linksys code is based on GPL and LGPL code
• modified Linux
• GNU libraries (binutils, GLibC, GNU coreutils, GNU Readline, …)
Linksys did not obey GPL terms
did not provide source code, did not GPL code
2003: Cisco acquired Linksys for $500M
2006: FSF contacted Cisco and entered negotiations on GPL compliance
2008: FSF sued Cisco for copyright infringement
(represented by the Software Freedom Law Center)
2009: settlement reached, Cisco appoints OSS director,
makes financial contribution to FSF, releases source code
2009: WRT54G becomes hacker favorite, dozens of competitors appear
2009: Linksys moves to VxWorks
2013: Cisco sells Linksys to Belkin
Open Source Slide
22
Some Open Source Licenses
There are now hundreds of Open Source licenses
Different OSS organizations
• promote their own license
• approve of other licenses
Some of the important ones :
• MIT
• BSD (several versions)
Academic Free License Affero General Public License Apache Artistic
• Apache (several versions)
ATK License Bitstream Font License Boost BSD AdClause CeCILLv2
CINT ClarifiedArtistic CMix Common Public License Common Public
License CorkforkPL C reative Commons Attribution DBG License
• GPL (3 versions)
DejaVuLicense Eclipse Public License Erlang Public License Expat eZ
publish Professional licence FreelyRedistributable FreeType License
• LGPL (3 versions)
GL2PS GPLv1 GPLv2 GPLv2 GPLv3 Hipergate license IBM Public License
ISC Jabber Kawa LGPL LGPLv2 LGPLv2.1 LGPLv3 LinkGrammarLicense
• Linux
LLGPL LPPL MirOS Mozilla MPL MPLv2.0 Nethack license NikoSoft
Group Public License None yet OSI OpenSSL License PCRE Perl PHP
• EPL
PublicDomain Python2.1.1 Python2.3 Python2.5 QPL Ruby Sendmail
SIL Open Font License SIP Sleepycat Standard ML of New Jersey
• Mozilla Public License
License TclLicense Transitive Grace Period Public Licence Utopia
Typeface Vim1.4 Vita Nuova Inferno 4th Edition Vita Nuova Liberal
Source Licence vtiger CRM license W3C WTFPLv2 wxWindows
Library X11 Xiph Youpee Zope Zlib
Open Source Slide
23
Elements of Open Source licenses
• Copyright notice
Copyright (c) <year> <copyright holder>. All rights reserved.
• retaining the above copyright notice (universal)
Redistributions must retain the above copyright notice.
• requirement to distribute source code (otherwise not OSS)
Covered work may be distributed in object code form provided that
the corresponding source code be provided by …
• non-endorsement, non-promotion (common)
<copyright holder> does not endorse or promote products derived
from this software.
• acknowledgement in advertising (unpopular)
All advertising materials mentioning use of this software must display
the following acknowledgement: This product includes software
developed by the <copyright holder>.
• Copyleft provisions (if not permissive)
Open Source Slide
24
MIT license
Perhaps the simplest and most permissive OSS license is the MIT license
It is used for many popular packages (Xwindows, Ruby on Rails, Lua, …)
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal in the
Software without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Open Source Slide
25
BSD license (1)
BSD is a permissive OSS license developed for Berkeley Unix
It is used widely for academic and OS-related packages, Django, …
The original Berkeley Software Distribution license was simply
Copyright (c) <year> <copyright holder>. All rights reserved.
Redistribution and use in source and binary forms are permitted provided that the
above copyright notice and this paragraph are duplicated in all such forms and that
any documentation, advertising materials, and other materials related to such
distribution and use acknowledge that the software was developed by the
<organization>.
The name of the <organization> may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Open Source Slide
26
BSD license (2)
The two middle clauses were changed to a 4-clause version in 1990
Redistribution and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.
3. All advertising materials mentioning features or use of this software must display
the following acknowledgement: This product includes software developed by
the <organization>.
4. Neither the name of the <organization> nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.
Open Source Slide
27
BSD license (3)
The advertising (3rd) clause was considered too unpopular
which led to a revised or modified BSD license (AKA new BSD)
having only 3 clauses
Redistribution and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.
* Neither the name of the <organization> nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.
Finally FreeBSD eliminated the non-endorsement clause too
leaving 2 clauses, and thus similar to the MIT license
Open Source Slide
28
Apache license
The Apache license is a very popular permissive license,
used by Apache web server, Android OS, OpenOffice, Moodle, …
It is a long license, so won’t be displayed here
It requires preserving all original
copyright/patent/trademark/attribution notices
It does not require derivative works (including modifications)
to use the same license
However
• all unmodified parts to maintain the license
• modified files must contain a notice
stating that changes have been made to that file
WARNING: The v2 license also includes a royalty-free patent license
The FSF considers Apache to be incompatible with the GPL
(except the latest Apache with GPLv3)
Open Source Slide
29
GPL (1)
The GNU Public License (GPL) is
• the most popular
• the most complex
• the most restrictive
• the most fiercely enforced
OSS license
It was originally drafted by Stallman and the FSF for the GNU project
and is currently used for 2/3 of all OSS (tens of thousands of packages)
It is so popular, that other licenses are rated as GPL compatible or not
meaning that OSS under another license can be combined with GPL SW
into a single program
There are 3 versions of GPL
called GPLv1 (1989), GPLv2 (1991), GPLv3 (2006)
The GPL license is much too long and complex to be included here
and the GPL license text is itself copyrighted
and no changes to it are allowed !
Open Source Slide
30
GPL (2)
GPL’s terms must be made available to anyone receiving GPL’ed software
This is done by displaying the following copyright notice
Copyright (C) <year> <author>
This program is free software: you can redistribute it and/or modify it under the terms of
the GNU General Public License as published by the Free Software Foundation, either
version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this
program. If not, see <http://www.gnu.org/licenses/>.
Open Source Slide
31
GPL (3)
The GPL text is lengthy and as philosophical as it is legal
The GPL was designed as a license, not a contract
so that it is enforceable under copyright law not contract law
The GPL contains an extremely philosophical preamble, including
To protect your rights, we need to prevent others from denying you these rights or
asking you to surrender the rights. Therefore, you have certain responsibilities if you
distribute copies of the software, or if you modify it: responsibilities to respect the
freedom of others.
The preamble includes a statement against software patents
WARNING: GPLv3 includes a royalty-free patent license !
Open Source Slide
32
GPL (4)
Some of the GPL terms and conditions:
• anyone not accepting the GPL's terms and conditions does not have
permission, under copyright law, to copy or distribute GPL licensed
software or derivative works (however, you may still use/modify the
software, including GPL’ed compilers)
• copyleft applies to the software and not to its output (e.g., compilers)
• any licensee is given permission to copy/redistribute/modify the work
but must adhere to the license terms
• a licensee is allowed to charge a fee
GPL does not enforce shareware and does not prohibit commercial redistribution
• a distributor may not impose any restrictions not in the GPL
this forbids distributing under NDA or contract
cont./
Open Source Slide
33
GPL (5)
• if the program is distributed in object form then source code must be
provided together with the binary, or clear directions given as to how to
obtain the source code (e.g., downloading)
• must also provide all makefiles, scripts, etc.
• when distributing a modified GPL‘ed work, the terms of the entire work
cannot be greater than the GPL terms
• all derivative works must be under the GPL, however the GPL text does
not define what constitutes a derivative work, relying on copyright law
• FSF considers
– any package containing GPL’ed code
– any program statically linked to GPL’ed code
– any program dynamically linking to a DLL
to be a derivative work
• FSF admits that a separate communicating program is not a derivative
Open Source Slide
34
LGPL
In addition the GPL, the FSF has a license called LGPL
• originally Library GPL (primarily for software libraries)
• now Lesser GPL (less freedom for the end-user)
The FSF encourages library-writers to license under the GPL
so that proprietary programs cannot legally use the library
thus creating more open programs than proprietary ones
However, it realizes that this philosophy is not always implementable
The LGPL is a compromise between copyleft and permissive OSS
The LGPL allows proprietary software to call the unmodified library
without becoming contaminated
In other words, as long as you do not modify the library
linking to it does not create a derivative work
Open Source Slide
35
Linux
The Linux Operating system kernel is licensed under the GPL
but with an important exception
NOTE!
This copyright does *not* cover user programs that use kernel services by
normal system calls - this is merely considered normal use of the kernel, and
does *not* fall under the heading of "derived work".
Also note that the GPL below is copyrighted by the Free Software
Foundation, but the instance of code that it refers to (the linux kernel) is
copyrighted by me and others who actually wrote it.
Linus Torvalds
Open Source Slide
36