Software Licenses, Free and Software

Péter Jeszenszky Faculty of Informatics, University of Debrecen [email protected]

Last modified: April 16, 2020 Terminology

● Non-, Closed-Source Software, ● Free Software ● Open-Source Software ● Free and Open-Source Software (FOSS) ● Commercial Software ● Freeware, Shareware ● ● End-User License Agreement (EULA) ● , Copyleft License ● ● Dual Licensing, Multi-Licensing

2 Non-Free Software

● Non-free software is any software that is not free. – Its use, redistribution or modification is prohibited or restricted, or requires permission. – It is also called as closed source software or proprietary software. – Non-free software is the complementary set of free software.

3 Free Software

● The four essential freedoms: – The freedom to run the program for any purpose. – The freedom to study how the program works. – The freedom to redistribute copies of the program. – The freedom to modify the program. ● Access to the is a precondition for the second and the fourth freedom. ● See: The Free Software Definition https://www.gnu.org/philosophy/free-sw.html.en

4 Open Source Software (1)

● The terms “free software” and “open source software” refer to almost the same range of software. However, they represent two different approaches. – Definition: The Open Source Definition https://opensource.org/docs/osd ● The term “open source” is more suitable for marketing purposes than the “term free” software. – Free is an ambiguous word. One meaning of the word is “at no cost”. ● See, for example, “free speech” vs “free beer”.

5 Open Source Software (2)

● The emphasizes the ethical aspects of freedom. ● By contrast, the open source movement emphasizes the practical advantages of openness. ● Despite the ideological differences between the two camps, the terms free software and open source software practically have the same meaning.

6 Open Source Software (3)

(OSI) https://opensource.org/ – A non-profit organization founded 1998 to promote and support open source software. – Eric S. Raymond, a leading advocate of the open source movement, was its president until 2005.

7 Open Source Software (4)

● See also: – . Why Open Source misses the point of Free Software. https://www.gnu.org/philosophy/open-source-misse s-the-point.html – Eric S. Raymond. The Cathedral and the Bazaar. February 18, 2010. http://www.catb.org/esr/writings/cathedral-bazaar/

8 Alternative Name

● Free and Open-Source Software (FOSS) – A category that includes both free software and open source software. – Also known as: Free/Libre and Open-Source Software (FLOSS). ● See also: Richard Stallman. FLOSS and FOSS. https://www.gnu.org/philosophy/floss-and-foss.h tml

9 Commercial Software

● Commercial software is software developed by a business as part of its business. ● Most commercial software is proprietary, but there is commercial free software. ● See: Categories of Free and Nonfree Software – Commercial software https://www.gnu.org/philosophy/categories.html #commercialSoftware

10 Freeware, shareware

● Freeware: – The term “freeware” has no clear accepted definition. – It is commonly used for packages which permit redistribution but not modification (and their source code is not available). – Freeware is not free software. – See: Categories of Free and Nonfree Software – Freeware https://www.gnu.org/philosophy/categories.html#freeware ● Shareware: – Shareware is software which comes with permission for people to redistribute copies, but says that anyone who continues to use a copy is required to pay a license fee. – Shareware is not free software. – See: Categories of Free and Nonfree Software – Shareware https://www.gnu.org/philosophy/categories.html#shareware

11 Software License

● A software license is a legal instrument that regulates the distribution and use of software. – In the case of proprietary software, the term end- user license agreement (EULA) is used.

12 License Compatibility

● We say that several licenses are compatible if there is a way to merge code under those various licenses while complying with all of them. – See: Richard Stallman. License Compatibility and Relicensing. https://www.gnu.org/licenses/license-compatibility.ht ml

13 FOSS Licenses (1)

● Numerous FOSS licenses exist. – For example, the OSI maintains of list of approved open source licenses: Licenses & Standards https://opensource.org/licenses – Another useful source: Various Licenses and Comments about Them https://www.gnu.org/licenses/license-list.html

14 FOSS Licenses (2)

● The lists of FOSS licenses approved by the FSF and the OSI include all widely used software licenses. – For example, the NASA Open Source Agreement v1.3 is an OSI-approved open source license, however, the FSF does not consider it to be a free software license. ● See: – https://opensource.org/licenses/NASA-1.3 – Various Licenses and Comments about Them – NASA Open Source Agreement https://www.gnu.org/licenses/license-list.html#NASA

15 Permissive Software Licenses (1)

● Permissive licenses constitute a subset of FOSS licenses. ● These licenses permit almost any use of the code. – See: Categories of Free and Nonfree Software – Lax Permissive Licensed Software https://www.gnu.org/philosophy/categories.html#LaxPe rmissiveLicensedSoftware ● Also known as: non-copyleft licenses. – See: Open Source Initiative – Frequently Answered Questions https://opensource.org/faq#permissive

16 Permissive Software Licenses (2)

● Examples: – 2.0 https://www.apache.org/licenses/LICENSE-2.0 – BSD license: ● 3-Clause BSD License/New BSD License/Modified BSD License https://opensource.org/licenses/BSD-3-Clause ● 2-Clause BSD License (Simplified BSD License/FreeBSD License) https://www.freebsd.org/copyright/freebsd-license.html – X11 License (MIT License) https://opensource.org/licenses/MIT

17 Permissive Software Licenses (3)

● Each license mentioned here permits software distributed under it to be used for closed source software projects. – Including modification of the source code and incorporating the original or the modified source code into proprietary software.

18 Permissive Software Licenses (4)

● Examples of uses: – Apache Maven (license: Apache License 2.0) https://www.apache.org/licenses/ – FreeBSD (license: FreeBSD License) https://www.freebsd.org/copyright/freebsd-license.html – Gradle (license: Apache License 2.0) https://gradle.org/license/ – HSQLDB (license: 3-clause BSD license) http://hsqldb.org/web/hsqlLicense.html – MINIX 3 (license: MINIX 3 License) http://www.minix3.org/doc/faq.html#legal – PostgreSQL (license: PostgreSQL License) https://www.postgresql.org/about/licence/ – …

19 Copyleft (1)

● The term copyleft is a twist on the term copyright. ● Copyleft is a legal instrument whose goal is the exact opposite of that of the copyright. ● The idea was invented by Richard Stallman in 1985. ● Definition: What is Copyleft https://www.gnu.org/copyleft/

20 Copyleft (2)

● Symbol: – Source: Wikimedia Commons / Public Domain https://commons.wikimedia.org/wiki/File:Copyleft.sv g

21 Copyleft (3)

● The copyleft ensures that the protected work and any derivative works remain free forever. – When the copyleft is in effect, then all derivative works inherit the license of the original work. ● It was first used in the Emacs General Public License. – See: http://www.free-soft.org/gpl_history/emacs_gpl.html ● Not all free software licenses incorporate the copyleft mechanism.

22 Copyleft Licenses (1)

● Software licenses using the copyleft mechanism are called copyleft licenses. – They are also called as viral licenses, pejoratively. ● Copyleft licenses represent a subset of FOSS licenses that is disjoint with the set of permissive licenses. ● Copyleft licenses are further divided into strong and weak copyleft licenses.

23 Copyleft Licenses (2)

● Strong copyleft license: the copyleft applies with full force, that excludes the use of the software covered by the license for developing closed source software. – Example: GNU General Public License (GNU GPL) https://www.gnu.org/licenses/gpl.html ● Weak copyleft license: they permit the limited use of the software covered by the license such that derivative works do not fall under the copyleft. – Examples: ● GNU Lesser General Public License (GNU LGPL) https://www.gnu.org/licenses/lgpl.html ● Public License (MPL) https://www.mozilla.org/MPL/

24 GNU General Public License (GNU GPL)

● The latest version is version 3. https://www.gnu.org/licenses/gpl-3.0.html ● Examples of uses: – GIMP (license: GPLv3) https://www.gimp.org/about/COPYING – Linux Kernel (license: GPLv2) https://www.kernel.org/pub/linux/kernel/COPYING – Notepad++ (license: GPLv2) https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/LICENS E – R (license: GPLv2 or GPLv3) https://www.r-project.org/Licenses/ – VirtualBox (license: GPLv2) https://www.virtualbox.org/wiki/Licensing_FAQ – VLC (license: GPLv2) http://www.videolan.org/legal.html – …

25 Using GPL-Covered Software (1)

● Copyleft licenses impose limitations on the distribution of derivative works that are unacceptable for developing non-free software. ● However, they do not limit the use of the software itself. ● Example: Blender https://www.blender.org/ – It is distributed under the GPLv3. The program can be used for developing non-free software, the license does not apply to the artworks created by the program. – See: https://www.blender.org/about/license/

26 Using GPL-Covered Software (2)

● In general, the GPL does not apply to the output of a GPL- covered program, unless it include source code of the program. – This means that, for example, a graphical application can be used without any limitations for any purpose, however, the Autoconf program could not be, if it would not fall under an exception. – Thus, for example, the GPL may apply to the “output” of a computer game when a screenshot is taken or a video is captured. ● See: Frequently Asked Questions about the GNU Licenses – Is there some way that I can GPL the output people get from use of my program? https://www.gnu.org/licenses/gpl-faq.html#GPLOutput – In what cases is the output of a GPL program covered by the GPL too? https://www.gnu.org/licenses/gpl-faq.html#WhatCaseIsOutputGPL

27 Weakening the GPL with Exceptions (1)

● The GPL can be extended with additional clauses that make exceptions. – See: Exceptions to GNU Licenses https://www.gnu.org/licenses/exceptions.html ● Autoconf Configure Script Exception https://www.gnu.org/licenses/autoconf-exception-3.0.html ● GCC Runtime Library Exception https://www.gnu.org/licenses/gcc-exception-3.1.html ● GNU Classpath Exception https://www.gnu.org/software/classpath/license.html ● GPL Font Exception https://www.gnu.org/licenses/gpl-faq.html#FontException

28 Weakening the GPL with Exceptions (2)

● GCC Runtime Library Exception: – An exception that allows developers to compile non- GPL-ed software with GCC. – It is used for certain libraries that are distributed with GCC, such as libgcc and libstdc++-v3. – The reason for this exception is that GCC normally includes some GPL-ed code in the binaries it creates. – However, the glibc library is distributed under another license, namely, LGPLv2.1.

29 Weakening the GPL with Exceptions (3)

● GNU Classpath Exception: – An optional clause that can be added to the GPL to permit a GPL-ed library to be (either statically or dynamically) linked with any other module such that the GPL does not apply to the result. ● For example, it is used by the OpenJDK project. ● GPL Font Exception: – An optional clause that can be added to the GPL for distributing fonts. – It permits the embedding of fonts in documents such that the resulting document do not fall under the GPL. – See: Frequently Asked Questions about the GNU Licenses – How does the GPL apply to fonts? https://www.gnu.org/licenses/gpl-faq.html#FontException

30 GPL Compatibility (1)

● GPL compatible FOSS licenses: – Combinations must be distributed under the GPL. – For example, the following FOSS licenses are GPL compatible: ● Apache License 2.0 (is compatible only with the GNU GPL v3) ● Three-clause BSD license, two-clause BSD license ● v2.0 ● X11 License – See also: https://www.gnu.org/licenses/gpl-faq.html

31 GPL Compatibility (2)

● For example, the following FOSS licenses are not compatible with the GPL: – BitTorrent Open Source License https://www.bittorrent.com/license – v1.0 https://www.eclipse.org/legal/epl-v10.html – Mozilla Public License v1.1 https://www.mozilla.org/MPL/1.1/ – PHP License v3.01 https://www.php.net/license/3_01.txt

32 Weak Copyleft Licenses

● Weak copyleft licenses are typically used for distributing libraries. – They allow a library to be linked with an (either free or non-free) program such that the copyleft does not apply to the resulting combination. – Generally, dynamic linking is permitted without any restrictions.

33 GNU Lesser General Public License (GNU LGPL)

● The latest version is version 3. https://www.gnu.org/licenses/lgpl-3.0.html ● Examples of uses: – glibc (license: LGPLv2.1) https://www.gnu.org/software/libc/ – GTK+ (license: LGPLv2.1) https://www.gtk.org/ – Hibernate (license: LGPLv2.1) http://hibernate.org/community/license/ – (license: LGPLv3) https://doc.qt.io/qt-5/licensing.html – …

34 Problems with the GNU LGPL (1)

● The LGPL complicates the inclusion of code under it in non-free software, or it may even completely prohibit that. ● The license essentially allows software distributed under it to be linked with software distributed under other licenses. – Linking must be performed in accordance with the terms of the license. ● For example, only dynamic linking of libraries is permitted.

35 Problems with the GNU LGPL (2)

● In the following, the term “library” is used to refer to a library distributed under the GNU LGPL. ● What is discussed here applies to version 2.1 of the license. – Although the license has a newer version (version 3), version 2.1 is still widely used. – There are no substantial differences between version 2.1 and version 3.0 in respect of the issues discussed here.

36 Problems with the GNU LGPL (3)

● A work that uses the library: a program that contains no derivative of any portion of the library, but is designed to work with the library by being compiled or linked with it. – Such a work falls outside the scope of the license. – However, linking a work that uses the library with the library creates an executable that is a derivative of the library. ● Such an executable is covered by the license!

37 Problems with the GNU LGPL (4)

● A work that uses the library linked with the library must be distributed as follows: – It must be possible for the user to modify the library (e.g., to replace it with a newer version) and then relink to produce a modified executable using the modified library. – The user must be permitted to reverse-engineer the work that uses the library for debugging such modifications. ● Of course, this means that work that uses the library must be available to users in object code form. – However, the source code need not be available.

38 Problems with the GNU LGPL (5)

● Distributing a work that uses the library in object code form is an exception to the previously discussed case. – However, this exception does not apply when the object code form uses macros or inline functions of the library that are longer than 10 lines. ● Modern libraries make heavy use of inline functions that are often longer than 10 lines. – Thus, distributing a non-free software in object code form is merely a theoretical possibility.

39 Problems with the GNU LGPL (6)

● According to the , which is the organization responsible for the GNU licenses, this also applies to any Java application that uses libraries distributed under the GNU LGPL. – See: David Turner. The LGPL and Java. https://www.gnu.org/licenses/lgpl-java.html

40 GNU Affero General Public License (GNU AGPL) (1)

● A strong copyleft license that is based on the GPL and is especially designed for software often used on network servers. – The latest version is version 3. https://www.gnu.org/licenses/agpl-3.0.html ● The GPL permits making a modified version of a program and letting the public access it on a server without ever releasing its source code to the public. ● See also: Why the Affero GPL https://www.gnu.org/licenses/why-affero-gpl.html

41 GNU Affero General Public License (GNU AGPL) (2)

● It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. ● Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.

42 GNU Affero General Public License (GNU AGPL) (3)

● Examples of uses: – Bacula https://www.bacula.org/ – https://www.ghostscript.com/license.html – iText 7 Community https://itextpdf.com/itext-7-community – MongoDB Database Server and Tools https://www.mongodb.com/community/licensing – Oracle Berkeley DB https://www.oracle.com/database/technologies/related/berkeleydb.html – Rapidminer Studio Core https://github.com/rapidminer/rapidminer-studio – RStudio https://www.rstudio.com/products/rstudio/download/ – SciDB Community Edition https://www.paradigm4.com/about/licensing/ – …

43 Compatibility Between the GPL and the AGPL

● Although the two licenses are almost identical – the AGPL extends the GPL –, they are not compatible in a strict sense. ● Section 13 of the GPLv3 and AGPLv3 allows to combine works distributed under the two licenses. – Such a combination can be distributed under either the GPLv3 or AGPLv3. – This would not be possible without explicit permission.

44 Public Domain (1)

● A creative work being in the public domain is not covered by intellectual property rights. – For example, the rights have been expired, or have been waived. ● If a software is in the public domain, it might as well have an all-permissive non-copyleft free software license.

45 Public Domain (2)

● Examples of uses: – Crypto++ https://www.cryptopp.com/ – LZMA SDK https://www.7-zip.org/sdk.html – MinGW Runtime http://www.mingw.org/license – SQLite https://www.sqlite.org/copyright.html – TeX https://www.ctan.org/pkg/tex ● See: http://www.tug.org/TUGboat/Articles/tb07-2/tb15knut.pdf – XZ Utils https://tukaani.org/xz/ – X-12-ARIMA https://www.census.gov/srd/www/x13as/ – …

46 Choosing a FOSS License

● Software licenses should be chosen with great care, because FOSS licenses can not be revoked. – When the license changes, the rights to use the software can not be doubted in the case of users who obtained the software when the old license was in force. – Changing a license only makes sense when the new license is more permissive than the old one. – For example, the GPLv3 explicitly states that it is irrevocable.

47 The GNU Project (1)

● Richard Stallman announced the launch of the GNU Project in 1983 with the following goal: to create a complete Unix- compatible operating system that is free. – See: Richard Stallman. Initial Announcement. 1983. https://www.gnu.org/gnu/initial-announcement.html ● Naming: GNU's Not Unix (GNU) ● See also: – Richard Stallman. The GNU Manifesto. 1985. https://www.gnu.org/gnu/manifesto.html – Richard Stallman. The GNU Project. https://www.gnu.org/gnu/thegnuproject.html

48 The GNU Project (2)

● Work on the development started in 1984. The first steps: C compiler (GCC), text editor (Emacs). ● In 1985, Stallman created the Free Software Foundation for funding the GNU Project. ● The GNU GPL was also written by Stallman in 1989. ● By 1990, the GNU system was almost complete, the only major missing component was the kernel.

49 The GNU Project (3)

● GNU software: Free Software Directory https://directory.fsf.org/wiki/GNU – Bash https://www.gnu.org/software/bash/ – Coreutils (cat, chmod, cp, kill, ls, mkdir, mv, rmdir, sort, …) https://www.gnu.org/software/coreutils/ – GCC https://www.gnu.org/software/gcc/ – GIMP https://www.gimp.org/ – GNOME https://www.gnome.org/ – Gzip https://www.gnu.org/software/gzip/ – R https://www.r-project.org/ – …

50 GNU/Linux (1)

● In 1991, , a Computer Science student at the University of Helsinki, started working on an operating system kernel that has become known as Linux. – In 1992, Torvalds released the Linux kernel under the GNU GPL. ● Combining the Linux kernel with GNU software results in a complete free operating system. – According to the FSF, such combinations should be correctly named as GNU/Linux systems. – See the various Linux distributions (for example, , Fedora, Gentoo, , …).

51 GNU/Linux (2)

● The GNU project's replacement for the Unix kernel: GNU Hurd. https://www.gnu.org/software/hurd/hurd.html – Its development was started in 1990. It is under active development and there is no stable version. It is not suitable for production environments. ● See: https://www.gnu.org/software/hurd/hurd/status.html ● See also: – Linux and the GNU Project https://www.gnu.org/gnu/linux-and-gnu.html – GNU/Linux FAQ https://www.gnu.org/gnu/gnu-linux-faq.html – Free GNU/Linux distributions (only 11 distributions!) https://www.gnu.org/distros/free-distros.html ● Example: Trisquel (a distribution based on Ubuntu) https://trisquel.info/

52 Free Software Foundation (FSF)

● The Free Software Foundation (FSF) is a non-profit organization founded by Richard Stallman to support free software. – Maintains the Free Software Definition – Publishes philosophical writings about free software – Publishes free licenses (GNU GPL, GNU LGPL, GNU AGPL, GNU FDL) – Provides information about available free software ● See, for example: Free Software Directory https://directory.fsf.org/ – Sponsors the GNU project – Holds copyright on a large proportion of the GNU operating system, and other free software, and also enforces the GNU licenses. – Popularizes free software (campaigns) ● See: https://www.fsf.org/about

53 FSF Licenses

● Source: GNU License Logos https://www.gnu.org/graphics/license-logos.html

GNU Lesser General Public License GNU General Public License (GNU LGPL) (GNU GPL) GFDL GNU Free Documentation License GNU Affero General Public License (GNU FDL) 54 (GNU AGPL) Why to Develop FOSS Software Commercially?

● We can build a community around the software. – It may help to introduce and popularize new technologies and standards. ● The power of the community around the software can be exploited efficiently. – The community can help to discover bugs. – Members of the user community who already know and use the open source software have the potential to become a customer. ● The vendor may sell hardware to the user.

55 Commercial Open Source Software

● For example, the following companies develop open source software commercially: – Adobe https://opensource.adobe.com/ – Apple https://developer.apple.com/opensource/ – Facebook https://opensource.facebook.com/ – Google https://opensource.google/ – Intel https://01.org/ – Microsoft https://opensource.microsoft.com/ – Oracle https://developer.oracle.com/opensource https://oss.oracle.com/ – …

56 Examples for Commercial Open Source Software (1)

● Adobe: – Brackets (license: MIT License) http://brackets.io/ https://github.com/adobe/brackets ● Apple: – Swift (license: Apache License v2) https://swift.org/ https://github.com/apple/swift – WebKit (license: LGPLv2/Simplified BSD License) https://webkit.org/ ● Facebook: – React (license: MIT License) https://reactjs.org/ https://github.com/facebook/react/

57 Examples for Commercial Open Source Software (2)

● Google: – Android (license: Apache License v2/GPLv2) https://www.android.com/ https://source.android.com/ – Angular (license: MIT License) https://angular.io/ https://github.com/angular/angular – Chromium (license: New BSD License) https://www.chromium.org/ – TensorFlow (license: Apache License v2) https://www.tensorflow.org/ https://github.com/tensorflow/tensorflow

58 Examples for Commercial Open Source Software (3)

● Intel: – Intel Graphics for Linux (license: MIT License/GPLv2) https://01.org/linuxgraphics ● Microsoft: – TypeScript (license: Apache License v2) https://www.typescriptlang.org/ https://github.com/microsoft/TypeScript – Visual Studio Code (license: MIT License) https://code.visualstudio.com https://github.com/Microsoft/vscode ● Oracle: – MySQL (license: GPLv2) https://www.mysql.com/ https://github.com/mysql/mysql-server – Oracle OpenJDK (license: GPLv2 + Classpath Exception) http://jdk.java.net/

59 Open Source Business Models: Dual Licensing (1)

● Dual licensing is a widely used open source business model. It means that the software is distributed under two different licenses. – The copyright holder of the software has rights to do so. ● When more than two licenses are used for distributing the software, the term multi- licensing is used.

60 Open Source Business Models: Dual Licensing (2)

● Using multiple licenses for the same software: – The software is available under a FOSS license to be used for open source projects. – For other purposes, the software is available under a proprietary license. Typically, the customer must pay for the proprietary license.

61 Open Source Business Models: Dual Licensing (3)

● The two types of business models: – The vendor distributes the same software under different licenses. ● For example, Oracle distributes Berkeley DB this way (FOSS license: AGPLv3). https://www.oracle.com/database/technologies/related/be rkeleydb.html – The vendor sells a value-added version of its FOSS software for money. ● For example, Oracle distributes MySQL this way (FOSS license: GPLv2). https://www.mysql.com/

62 Open Source Business Models: Dual Licensing (4)

● The free and non-free editions of software are often named as community edition and enterprise edition, respectively. – Examples: ● Docker Engine (Docker Inc.) https://www.docker.com/products/docker-engine ● GraalVM (Oracle) https://www.graalvm.org/downloads/ ● IntelliJ IDEA https://www.jetbrains.com/idea/download/ ● Liferay Portal (Liferay Inc.) https://www.liferay.com/downloads-community ● MongoDB (MongoDB Inc.) https://www.mongodb.com/download-center/community ● MySQL (Oracle) https://www.mysql.com/downloads/ ● Neo4j (Neo Technology Inc.) https://neo4j.com/licensing/ ● SonarQube Community Edition https://www.sonarqube.org/downloads/ ● Visual Paradigm (Visual Paradigm International) https://www.visual-paradigm.com/download/community.jsp ● …

63 Open Source Business Models: Dual Licensing (5)

● This may be the only way to use the software in closed source software projects, because not all FOSS licenses allow such uses. – See: ● Mikko Välimäki. Dual Licensing in Open Source Software Industry. 2003. http://opensource.mit.edu/papers/valimaki.pdf ● Karl Fogel. Producing Open Source Software – How to Run a Successful Free Software Project. https://producingoss.com/ – The chapter titled Dual Licensing Schemes covers the topic in detail. https://producingoss.com/en/dual-licensing.html

64 Open Source Business Models: Dual Licensing (6)

● Potential business opportunities: – If the customer would like to use the software in a way that is forbidden by the FOSS license, the customer must purchase a commercial license. – The vendor may offer paid support (e.g., patches, technical assistance).

65 An Example of an Open Source Business Model: VirtualBox (1)

● Originally, it was developed as proprietary software by innotek, a German software company. – In 2007, innotek released VirtualBox Open Source Edition (OSE) under the GNU GPL v2.0. ● In 2008, the company was acquired by Sun, which in turn was acquired by Oracle in 2010. ● Since its acquisition by Oracle, the software is named as Oracle VM VirtualBox. ● Website: – https://www.oracle.com/virtualization/virtualbox/ – https://www.virtualbox.org/

66 An Example of an Open Source Business Model: VirtualBox (2)

● Before version 4.0, there were two editions: – VirtualBox Open Source Edition (OSE): ● It is distributed under the GNU GPL v2.0. ● It does not include the following features: Remote Display Protocol (RDP) Server, USB support, USB over RDP. – Closed-source edition/full VirtualBox: ● It is distributed under the VirtualBox Personal Use and Evaluation License (PUEL). https://www.virtualbox.org/wiki/VirtualBox_PUEL – It can be used only for non-commercial purposes (i.e., personal use, educational use, or evaluation).

67 An Example of an Open Source Business Model: VirtualBox (3)

● Starting with version 4.0, there is only a single edition (license: GPLv2). – Closed-source features (e.g. RDP and USB support) are provided by an extension pack under the PUEL. ● Their commercial use requires the purchase of a license (Oracle VM VirtualBox Enterprise). ● See: Oracle VM VirtualBox – Licensing: Frequently Asked Questions https://www.virtualbox.org/wiki/Licensing_FAQ

68 An Example of an Open Source Business Model: Qt (1)

● Qt is cross-platform application development framework written in C++. https://www.qt.io/ – Developer: Qt Group https://www.qt.io/company, Qt Project https://github.com/qtproject ● The latest version is version 5.14. – See: https://doc.qt.io/qt-5/ ● Modular architecture. – See: All Modules https://doc.qt.io/qt-5/qtmodules.html ● Examples of uses: Google Earth, KDE, Ubuntu, Wolfram Mathematica, … – See: https://resources.qt.io/customer-stories-all

69 An Example of an Open Source Business Model: Qt (2)

● Business model: multi-licensing – Starting with version 5.7, Qt is distributed under the following licenses: (1) GNU GPL v2 or v3, (2) GNU LGPL v3, (3) a commercial license. – Qt is available as FOSS under the GNU GPL v2/v3 and the GNU LGPL v3. ● Certain developer tools and features are available both under the GPL and the LGPL, whereas some others are available under the GPL only. – A commercial license can be purchased that allows Qt to be used for commercial purposes. ● Certain developer tools and features are available only for customers. ● Further information: – https://www.qt.io/download – https://www.qt.io/licensing/ – https://www.qt.io/faq/

70 The Licensing of Java (1)

● OpenJDK, Oracle OpenJDK: – License: GNU GPL v2 with the Classpath Exception https://openjdk.java.net/legal/gplv2+ce.html – See: ● https://openjdk.java.net/legal/ ● http://jdk.java.net/13/

71 The Licensing of Java (2)

● Before Java SE 11, the Oracle JDK and JRE were distributed under the BCL. – The BCL permits them to to be used and distributed together with non-free software. – See: Oracle Binary Code License Agreement for the Java SE Platform Products https://www.oracle.com/downloads/licenses/binary-code-license.html ● Starting with Java SE 11, Oracle JDK is available free under the following license: – Oracle Technology Network License Agreement for Oracle Java SE https://www.oracle.com/downloads/licenses/javase-license1.html ● Permitted uses include: personal desktop use, development and testing, demonstration, education.

72 The Licensing of Java (3)

● Starting with Java SE 11, commercial uses of Oracle JDK require a commercial license (Java SE Subscription/Java SE Desktop Subscription). – Subscriptions are available per user (desktop deployments), or processor (sever and/or cloud deployments). – See: ● Oracle Java SE Subscriptions https://www.oracle.com/java/java-se-subscription.html ● Oracle Java SE Subscription FAQ https://www.oracle.com/technetwork/java/javaseproducts/overvie w/javasesubscriptionfaq-4891443.html

73 Reusing Other Creative Works (1)

● In addition to software artifacts, software development projects may reuse many other types of digital creative works. – Examples: fonts, icons, sounds, … ● Because any piece of software is also considered to be a creative work, in the following, we will refer to non- software creative works as other creative works. ● Other creative works that have been made publicly available for reuse are typically distributed under some license, just like free and open source software.

74 Reusing Other Creative Works (2)

● Non-software creative works are often distributed under commonly used FOSS licenses. ● Non-software creative works distributed under permissive software licenses can be reused in closed source software projects without any risk.

75 Distributing Other Creative Works Under the GNU GPL (1)

● The GNU GPL can be applied to any kind of work as long as it is clear what constitutes the “source code” for the work. – See: Frequently Asked Questions about the GNU Licenses – Can I use the GPL for something other than software? https://www.gnu.org/licenses/gpl-faq.html#GPLOthe rThanSoftware

76 Distributing Other Creative Works Under the GNU GPL (2)

● The GPL may make it impossible to reuse non- software creative works under its terms in closed source software projects. – For example, documents embedding GPL-licensed fonts qualify as derived works to which the GPL applies. ● The GPL Font Exception resolves the problem and allows fonts to be used even in closed source software projects. – See: David “Novalis” Turner. Font Licensing. April 25, 2005. https://www.fsf.org/blogs/licensing/20050425novalis

77 Licenses for Other Creative Works

● Many licenses are available for distributing non-software creative works. – Certain of them target a specific type of creative work (e.g., fonts), whereas others can be used for various types of works. ● For example, the licenses can be used for a wide range of content types (e.g., text, photo, audio, video). – Copyleft is also widely used in licenses for non-software creative works. ● See: Various Licenses and Comments about Them – Licenses for Other Works https://www.gnu.org/licenses/license-list.html#OtherLicen ses

78 Creative Commons Licenses (1)

● The CC licenses are especially popular for distributing non-software creative works. – Creative Commons is a set of licenses developed and maintained by Creative Commons, a non profit organization. – There are major differences between individual CC licenses. ● Website: https://creativecommons.org/

79 Creative Commons Licenses (2)

● The latest version is version 4.0. – Because copyright law varies from country to country, earlier licenses were ported to over 60 jurisdictions. ● This means that the licenses were translated and adapted to local laws. – Starting with version 4.0, the licenses can be used around the world without porting. – See: Creative Commons – What’s New in 4.0 https://creativecommons.org/version4/

80 Creative Commons Licenses (3)

● The three “layers” of licenses: – Legal code – Commons deed (human readable version) – Machine readable version ● CC Rights Expression Language (CC REL) https://wiki.creativecommons.org/wiki/CC_REL – Can be encoded using RDFa or XMP: ● RDFa https://rdfa.info/ ● Extensible Metadata Platform (XMP) https://www.adobe.com/products/xmp.html

81 Creative Commons Licenses (4)

● License elements: – The source of images: Downloads – Creative Commons https://creativecommons.org/about/downloads/

Attribution (BY) Share-alike (SA)

Non-commercial (NC) No Derivative Works (ND) 82 Creative Commons Licenses (5)

● The licenses: https://creativecommons.org/licenses/?lang=en – Attribution (CC BY) – Attribution-ShareAlike (CC BY-SA) – Attribution-NoDerivatives (CC BY-ND) – Attribution-NonCommercial (CC BY-NC) – Attribution-NonCommercial-ShareAlike (CC BY-NC-SA) – Attribution-NonCommercial-NoDerivatives (CC BY-NC- ND)

83 Creative Commons Licenses (6)

● For public domain works: – CC0 https://creativecommons.org/choose/zero/ (for releasing works into the public domain) – Public Domain Mark https://creativecommons.org/choose/mark/ (for labeling works that are already in the public domain)

84 Creative Commons Licenses (7)

● All CC licenses require users to attribute the creator of licensed material. – The CC website offers some best practices on how to attribute properly. ● See: Best practices for attribution https://wiki.creativecommons.org/wiki/Best_practices_for_attribution – Tools for attribution: ● Attribution Generator https://lizenzhinweisgenerator.de/?lang=en ● flickr cc attribution bookmarklet maker (written in: JavaScript) http://cogdog.github.io/flickr-cc-helper/ ● ImageCodr.org http://www.imagecodr.org/ ● Open Attribution Builder https://www.openwa.org/attrib-builder/ – See also: ● Creative Commons – Frequently Asked Questions – Attribution https://creativecommons.org/faq/#attribution

85 Creative Commons Licenses (8)

● The FSF's opinion about the CC licenses: they should not be used on software! – CC BY: a non-copyleft that is compatible with the GNU GPL and is suitable to be used for various works. – CC BY-SA: a copyleft license that is suitable to be used for various works. – CC BY-ND, CC BY-NC, CC BY-NC-ND, CC BY-NC-SA: non-free licenses whose use should be avoided. – CC0: a permissive license that is compatible with the GNU GPL. ● See: Various Licenses and Comments about Them https://www.gnu.org/licenses/license-list.html

86 Creative Commons Licenses (9)

● Further information: – CC Wiki https://wiki.creativecommons.org/ – Creative Commons – Frequently Asked Questions https://wiki.creativecommons.org/index.php/Freque ntly_Asked_Questions – Compatible Licenses https://creativecommons.org/share-your-work/licens ing-considerations/compatible-licenses/ ● The list of Creative Commons ShareAlike (CC BY-SA and CC BY-NC-SA) compatible licenses.

87 Licenses for Documentation (1)

● The following licenses are widely used for documentation: – GNU Free Documentation License (GNU FDL) ● A copyleft license for documentation developed by the FSF. The latest version is 1.3. https://www.gnu.org/licenses/fdl-1.3.html – CC licenses

88 Licenses for Documentation (2)

● Examples of uses of the GNU FDL: – The GNU C Library Reference Manual https://www.gnu.org/software/libc/manual/ – Qt Documentation https://doc.qt.io/ https://doc.qt.io/qt-5/fdl.html – https://www.wikipedia.org/ ● See: https://en.wikipedia.org/wiki/Wikipedia:Copyrights – Wiktionary https://www.wiktionary.org/ ● See: https://wikimediafoundation.org/wiki/Terms_of_Use/en – …

89 Licenses for Documentation (3)

● Examples of uses of the CC licenses: – Daniel Stenberg. http2 explained. 2016. (license: CC BY 4.0) https://daniel.haxx.se/http2/ – PHP Manual (license: CC BY 3.0) https://www.php.net/manual/ – Scott Chacon, Ben Straub. Pro Git. 2nd edition. Apress, 2014. (license: CC BY-NC-SA 3.0) https://git-scm.com/book/en/v2 – Wikipedia (CC BY-SA 3.0) https://www.wikipedia.org/ ● See: https://en.wikipedia.org/wiki/Wikipedia:Copyrights – Wiktionary (CC BY-SA 3.0) https://www.wiktionary.org/ ● See: https://en.wiktionary.org/wiki/Wiktionary:Copyrights – …

90 SPDX (1)

● Software Package Data Exchange (SPDX) https://spdx.org/ – An open standard format for communicating the components, licenses, and copyrights associated with software packages. – SPX is developed by the SPDX Workgroup, a working group of The Linux Foundation. – Current specification: SPDX Specification 2.1 https://spdx.org/specifications

91 SPDX (2)

● License list: – The SPDX project maintains a directory of more than 400 common licenses and exceptions used in free and open source software. ● SPDX License List https://spdx.org/licenses/ ● License Exceptions https://spdx.org/licenses/exceptions-index.html

92 SPDX (3)

● License identifiers: – SPDX assigns a compact identifier to each license. ● Examples: Apache-2.0, CC-BY-4.0, MIT ● License expressions: – The AND, OR, and WITH logical operators can be used to combine licenses and exceptions, parentheses can be used for grouping. ● Examples: – Apache-2.0 OR MIT – EPL-2.0 OR Apache-2.0 OR (GPL-2.0-or-later WITH Classpath- exception-2.0) ● Further information: SPDX IDs: How to use https://spdx.org/ids-how

93 SPDX (4)

● SPDX data can be represented in: – plain text in tag:value format ● Example: https://spdx.org/spdx-tagvalue-example – RDF ● Example: https://spdx.org/spdx-rdfxml-example

94 SPDX (5)

● Uses of SPDX: – Linux kernel: Linux kernel licensing rules – License identifier syntax https://www.kernel.org/doc/html/latest/process/licen se-rules.html#license-identifier-syntax – See: SPDX IDs: Where they're used today https://spdx.org/ids-where

95 Tools Supporting the Use of FOSS (1)

● Free and open source software: – License Maven Plugin (written in: Java; license: GPLv3) http://www.mojohaus.org/license-maven-plugin/ https://github.com/mojohaus/license-maven-plugin – FOSSology (written in: PHP, C; license: GPLv2) https://www.fossology.org/ https://github.com/fossology/fossology – ScanCode (written in: Python; license: Apache License 2.0) https://github.com/nexB/scancode-toolkit/

96 Tools Supporting the Use of FOSS (2)

● Free online services: – Choose an open source license https://choosealicense.com/ – TLDRLegal – Software Licenses Explained in Plain English https://tldrlegal.com/ ● Commercial online services: – Black Duck https://www.blackducksoftware.com/ – FOSSA https://fossa.com/ – WhiteSource – Open Source Security & License Management https://www.whitesourcesoftware.com/

97 Further Reading

● Heather J. Meeker. The Open Source Alternative: Understanding Risks and Leveraging Opportunities. Wiley, 2008. ● Van Lindberg. Intellectual Property and Open Source: A Practical Guide to Protecting Code. O'Reilly, 2008.

98