<<

Software Licenses, Free and Open Non- Source Software

● Non-free software is any software that is not free. Péter Jeszenszky – Its use, redistribution or modification is prohibited or Faculty of Informatics, University of Debrecen restricted, or requires permission. [email protected] – It is also called as closed source software or proprietary software. Last modified: May 1, 2021 – Non-free software is the complementary set of free software.

3

Terminology Free Software

● Non-Free Software, Closed-Source Software, Proprietary Software ● The four essential freedoms: ● Free Software – ● Open-Source Software The freedom to run the program for any purpose. ● Free and Open-Source Software (FOSS) – The freedom to study how the program works. ● Commercial Software – The freedom to redistribute copies of the program. ● Freeware, Shareware – ● Software License The freedom to modify the program. ● End-User License Agreement (EULA) ● Access to the source code is a precondition for the ● License Compatibility second and the fourth freedom. ● , Copyleft License ● ● Public Domain See: The Free Software Definition ● Dual Licensing, Multi-Licensing https://www.gnu.org/philosophy/free-sw.html.en

2 4 Open Source Software (1) Open Source Software (3)

● The terms “free software” and “open source software” ● Open Source Initiative (OSI) refer to almost the same range of software. However, https://opensource.org/ they represent two different approaches. – A non-profit organization founded 1998 to promote – Definition: The Open Source Definition and support open source software. https://opensource.org/docs/osd – Eric S. Raymond, a leading advocate of the open ● The term “open source” is more suitable for marketing source movement, was its president until 2005. 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 7

Open Source Software (2) Open Source Software (4)

● The free software movement emphasizes the ● See also: ethical aspects of freedom. – . Why Open Source misses the ● By contrast, the open source movement point of Free Software. emphasizes the practical advantages of https://www.gnu.org/philosophy/open-source-misse s-the-point.html openness. – Eric S. Raymond. The Cathedral and the Bazaar. ● Despite the ideological differences between the February 18, 2010. two camps, the terms free software and open http://www.catb.org/esr/writings/cathedral-bazaar/ source software practically have the same meaning.

6 8 Alternative Name Freeware, shareware

● Free and Open-Source Software (FOSS) ● Freeware: – The term “freeware” has no clear accepted definition. – A category that includes both free software and – It is commonly used for packages which permit redistribution but not modification open source software. (and their source code is not available). – Freeware is not free software. – Also known as: Free/Libre and Open-Source – See: Categories of Free and Nonfree Software – Freeware Software (FLOSS). https://www.gnu.org/philosophy/categories.html#freeware ● Shareware: ● See also: Richard Stallman. FLOSS and FOSS. – 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. https://www.gnu.org/philosophy/floss-and-foss.h – Shareware is not free software. tml – See: Categories of Free and Nonfree Software – Shareware https://www.gnu.org/philosophy/categories.html#shareware

9 11

Commercial Software Software License

● Commercial software is software developed by ● A software license is a legal instrument that a business as part of its business. regulates the distribution and use of software. ● Most commercial software is proprietary, but – In the case of proprietary software, the term end- there is commercial free software. user license agreement (EULA) is used. ● See: Categories of Free and Nonfree Software – Commercial software https://www.gnu.org/philosophy/categories.html #commercialSoftware

10 12 License Compatibility FOSS Licenses (2)

● We say that several licenses are compatible if ● The lists of FOSS licenses approved by the FSF there is a way to merge code under those and the OSI include all widely used software various licenses while complying with all of licenses. them. – For example, the NASA Open Source Agreement v1.3 – is an OSI-approved open source license, however, the See: Richard Stallman. License Compatibility and FSF does not consider it to be a free software license. Relicensing. https://www.gnu.org/licenses/license-compatibility.ht ● See: ml – 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

13 15

FOSS Licenses (1) Permissive Software Licenses (1)

● Numerous FOSS licenses exist. ● Permissive licenses constitute a subset of FOSS – For example, the OSI maintains of list of approved licenses. open source licenses: Licenses & Standards ● These licenses permit almost any use of the code. https://opensource.org/licenses – See: Categories of Free and Nonfree Software – Lax – Another useful source: Various Licenses and Permissive Licensed Software Comments about Them https://www.gnu.org/philosophy/categories.html#LaxPe https://www.gnu.org/licenses/license-list.html rmissiveLicensedSoftware ● Also known as: non-copyleft licenses. – See: Open Source Initiative – Frequently Answered Questions https://opensource.org/faq#permissive

14 16 Permissive Software Licenses (2) Permissive Software Licenses (4)

● Examples: ● Examples of uses: – Apache Maven (license: 2.0) – Apache License 2.0 https://www.apache.org/licenses/ https://www.apache.org/licenses/LICENSE-2.0 – FreeBSD (license: FreeBSD License) – BSD license: https://www.freebsd.org/copyright/freebsd-license.html – Gradle (license: Apache License 2.0) https://gradle.org/license/ ● 3-Clause BSD License/New BSD License/Modified BSD – HSQLDB (license: 3-clause BSD license) License https://opensource.org/licenses/BSD-3-Clause http://hsqldb.org/web/hsqlLicense.html ● 2-Clause BSD License (Simplified BSD License/FreeBSD – Node.js (license: MIT License) License) https://www.freebsd.org/copyright/freebsd-license.html https://github.com/nodejs/node/blob/master/LICENSE – X11 License (MIT License) – PostgreSQL (license: PostgreSQL License) https://opensource.org/licenses/MIT https://www.postgresql.org/about/licence/ – …

17 19

Permissive Software Licenses (3) Copyleft (1)

● Each license mentioned here permits software ● The term copyleft is a twist on the term distributed under it to be used for closed source copyright. software projects. ● Copyleft is a legal instrument whose goal is the – Including modification of the source code and exact opposite of that of the copyright. incorporating the original or the modified source code into proprietary software. ● The idea was invented by Richard Stallman in 1985. ● Definition: What is Copyleft https://www.gnu.org/copyleft/

18 20 Copyleft (2) Copyleft Licenses (1)

● Symbol: ● Software licenses using the copyleft – Source: Wikimedia Commons / Public Domain mechanism are called copyleft licenses. https://commons.wikimedia.org/wiki/File:Copyleft.sv – They are also called as viral licenses, pejoratively. g ● 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.

21 23

Copyleft (3) Copyleft Licenses (2)

● The copyleft ensures that the protected work and any ● Strong copyleft license: the copyleft applies with full force, derivative works remain free forever. that excludes the use of the software covered by the license for developing closed source software. – When the copyleft is in effect, then all derivative works – Example: GNU General Public License (GNU GPL) inherit the license of the original work. https://www.gnu.org/licenses/gpl.html ● It was first used in the General Public ● Weak copyleft license: they permit the limited use of the License. software covered by the license such that derivative works do not fall under the copyleft. – See: https://www.free-soft.org/gpl_history/emacs_gpl.html – Examples: ● Not all free software licenses incorporate the copyleft ● GNU Lesser General Public License (GNU LGPL) mechanism. https://www.gnu.org/licenses/lgpl.html ● Mozilla Public License (MPL) https://www.mozilla.org/MPL/

22 24 GNU General Public License Using GPL-Covered Software (2) (GNU GPL)

● The latest version is version 3. ● In general, the GPL does not apply to the output of a GPL- https://www.gnu.org/licenses/gpl-3.0.html covered program, unless it include source code of the program. ● Examples of uses: – This means that, for example, a graphical application can be used – GIMP (license: GPLv3) https://www.gimp.org/about/COPYING without any limitations for any purpose, however, the Autoconf program could not be, if it would not fall under an exception. – Kernel (license: GPLv2) https://www.kernel.org/pub/linux/kernel/COPYING – Thus, for example, the GPL may apply to the “output” of a computer – Notepad++ (license: GPLv2) game when a screenshot is taken or a video is captured. https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/LICENS ● See: Frequently Asked Questions about the GNU Licenses E – – (license: GPLv2 or GPLv3) https://www.r-project.org/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 – VirtualBox (license: GPLv2) https://www.virtualbox.org/wiki/Licensing_FAQ – In what cases is the output of a GPL program covered by the GPL too? – VLC (license: GPLv2) https://www.videolan.org/legal.html https://www.gnu.org/licenses/gpl-faq.html#WhatCaseIsOutputGPL – …

25 27

Weakening the GPL with Exceptions Using GPL-Covered Software (1) (1)

● Copyleft licenses impose limitations on the distribution ● The GPL can be extended with additional clauses that of derivative works that are unacceptable for make exceptions. developing non-free software. – See: Exceptions to GNU Licenses ● However, they do not limit the use of the software itself. https://www.gnu.org/licenses/exceptions.html ● Autoconf Configure Script Exception ● Example: Blender https://www.blender.org/ https://www.gnu.org/licenses/autoconf-exception-3.0.html – It is distributed under the GPLv3. The program can be used ● GCC Runtime Library Exception for developing non-free software, the license does not apply https://www.gnu.org/licenses/gcc-exception-3.1.html to the artworks created by the program. ● GNU Classpath Exception https://www.gnu.org/software/classpath/license.html – See: https://www.blender.org/about/license/ ● GPL Font Exception https://www.gnu.org/licenses/gpl-faq.html#FontException

26 28 Weakening the GPL with Exceptions GPL Compatibility (1) (2)

● GCC Runtime Library Exception: ● GPL compatible FOSS licenses: – An exception that allows developers to compile non- – Combinations must be distributed under the GPL. GPL-ed software with GCC. – For example, the following FOSS licenses are GPL – It is used for certain libraries that are distributed with compatible: GCC, such as libgcc and libstdc++-v3. ● Apache License 2.0 (is compatible only with the GNU GPL v3) – The reason for this exception is that GCC normally includes some GPL-ed code in the binaries it creates. ● Three-clause BSD license, two-clause BSD license ● Mozilla Public License v2.0 – However, the glibc library is distributed under ● X11 License another license, namely, LGPLv2.1. – See also: https://www.gnu.org/licenses/gpl-faq.html

29 31

Weakening the GPL with Exceptions GPL Compatibility (2) (3)

● GNU Classpath Exception: ● For example, the following FOSS licenses are – An optional clause that can be added to the GPL to permit a GPL-ed not compatible with the GPL: library to be (either statically or dynamically) linked with any other module such that the GPL does not apply to the result. – Eclipse Public License v1.0 ● For example, it is used by the OpenJDK project. https://www.eclipse.org/legal/epl-v10.html ● GPL Font Exception: – Mozilla Public License v1.1 – An optional clause that can be added to the GPL for distributing fonts. https://www.mozilla.org/MPL/1.1/ – It permits the embedding of fonts in documents such that the resulting document do not fall under the GPL. – PHP License v3.01 – See: Frequently Asked Questions about the GNU Licenses – How https://www.php.net/license/3_01.txt does the GPL apply to fonts? https://www.gnu.org/licenses/gpl-faq.html#FontException

30 32 Weak Copyleft Licenses Problems with the GNU LGPL (1)

● Weak copyleft licenses are typically used for ● The LGPL complicates the inclusion of code distributing libraries. under it in non-free software, or it may even – They allow a library to be linked with an (either free completely prohibit that. or non-free) program such that the copyleft does ● The license essentially allows software not apply to the resulting combination. distributed under it to be linked with software – Generally, dynamic linking is permitted without any distributed under other licenses. restrictions. – Linking must be performed in accordance with the terms of the license. ● For example, only dynamic linking of libraries is permitted.

33 35

GNU Lesser General Public License Problems with the GNU LGPL (2) (GNU LGPL)

● The latest version is version 3. ● In the following, the term “library” is used to refer https://www.gnu.org/licenses/lgpl-3.0.html to a library distributed under the GNU LGPL.

● Examples of uses: ● What is discussed here applies to version 2.1 of – glibc (license: LGPLv2.1) https://www.gnu.org/software/libc/ the license. – GTK+ (license: LGPLv2.1) https://www.gtk.org/ – Although the license has a newer version (version 3), – Hibernate (license: LGPLv2.1) version 2.1 is still widely used. https://hibernate.org/community/license/ – There are no substantial differences between version – Qt (license: LGPLv3) https://doc.qt.io/qt-6/licensing.html 2.1 and version 3.0 in respect of the issues – … discussed here.

34 36 Problems with the GNU LGPL (3) Problems with the GNU LGPL (5)

● A work that uses the library: a program that ● Distributing a work that uses the library in object contains no derivative of any portion of the code form is an exception to the previously library, but is designed to work with the library discussed case. by being compiled or linked with it. – However, this exception does not apply when the – Such a work falls outside the scope of the license. object code form uses macros or inline functions of the library that are longer than 10 lines. – However, linking a work that uses the library with ● Modern libraries make heavy use of inline functions that the library creates an executable that is a derivative are often longer than 10 lines. of the library. – Thus, distributing a non-free software in object code ● Such an executable is covered by the license! form is merely a theoretical possibility.

37 39

Problems with the GNU LGPL (4) Problems with the GNU LGPL (6)

● A work that uses the library linked with the library ● According to the , must be distributed as follows: which is the organization responsible for the – It must be possible for the user to modify the library (e.g., GNU licenses, this also applies to any Java to replace it with a newer version) and then relink to application that uses libraries distributed under produce a modified executable using the modified library. the GNU LGPL. – The user must be permitted to reverse-engineer the work that uses the library for debugging such modifications. – See: David Turner. The LGPL and Java. ● Of course, this means that work that uses the library https://www.gnu.org/licenses/lgpl-java.html must be available to users in object code form. – However, the source code need not be available.

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

● A strong copyleft license that is based on the GPL and ● Examples of uses: is especially designed for software often used on – Bacula https://www.bacula.org/ network servers. – CKAN https://github.com/ckan/ckan – https://www.ghostscript.com/license.html – The latest version is version 3. – MongoDB Database Server and Tools https://www.gnu.org/licenses/agpl-3.0.html https://www.mongodb.com/community/licensing – ● Oracle Berkeley DB The GPL permits making a modified version of a https://www.oracle.com/database/technologies/related/berkeleydb.html program and letting the public access it on a server – Rapidminer Studio Open Source Core without ever releasing its source code to the public. https://github.com/rapidminer/rapidminer-studio-modular – RStudio https://www.rstudio.com/products/rstudio/download/ ● See also: Why the Affero GPL – SciDB Community Edition https://downloads.paradigm4.com/ https://www.gnu.org/licenses/why-affero-gpl.html – …

41 43

GNU Affero General Public License Compatibility Between the GPL and (GNU AGPL) (2) the AGPL

● It requires the operator of a network server to ● Although the two licenses are almost identical – provide the source code of the modified version the AGPL extends the GPL –, they are not running there to the users of that server. compatible in a strict sense.

● ● Therefore, public use of a modified version, on Section 13 of the GPLv3 and AGPLv3 allows to a publicly accessible server, gives the public combine works distributed under the two licenses. access to the source code of the modified – Such a combination can be distributed under either the version. GPLv3 or AGPLv3. – This would not be possible without explicit permission.

42 44 Public Domain (1) Choosing a FOSS License

● A creative work being in the public domain is ● Software licenses should be chosen with great not covered by intellectual property rights. care, because FOSS licenses can not be revoked. – For example, the rights have been expired, or have – When the license changes, the rights to use the software been waived. can not be doubted in the case of users who obtained the software when the old license was in force. ● If a software is in the public domain, it might as – Changing a license only makes sense when the new well have an all-permissive non-copyleft free license is more permissive than the old one. software license. – For example, the GPLv3 explicitly states that it is irrevocable.

45 47

Public Domain (2) The GNU Project (1)

● Examples of uses: ● Richard Stallman announced the launch of the GNU Project – Crypto++ https://www.cryptopp.com/ in 1983 with the following goal: to create a complete Unix- compatible that is free. – LZMA SDK https://www.7-zip.org/sdk.html – See: Richard Stallman. Initial Announcement. 1983. – MinGW Runtime http://mingw-w64.org/doku.php https://www.gnu.org/gnu/initial-announcement.html – SQLite https://www.sqlite.org/copyright.html ● Naming: GNU's Not Unix (GNU) – TeX https://www.ctan.org/pkg/tex ● See also: ● See: http://www.tug.org/TUGboat/Articles/tb07-2/tb15knut.pdf – Richard Stallman. The GNU Manifesto. 1985. – XZ Utils https://tukaani.org/xz/ https://www.gnu.org/gnu/manifesto.html – X-12-ARIMA https://www.census.gov/srd/www/x13as/ – Richard Stallman. The GNU Project. – … https://www.gnu.org/gnu/thegnuproject.html

46 48 The GNU Project (2) GNU/Linux (1)

● Work on the development started in 1984. The first ● In 1991, Linus Torvalds, a Computer Science student at the steps: C compiler (GCC), text editor (Emacs). University of Helsinki, started working on an operating system kernel that has become known as Linux. ● In 1985, Stallman created the Free Software – In 1992, Torvalds released the Linux kernel under the GNU GPL. Foundation for funding the GNU Project. ● Combining the Linux kernel with GNU software results in a ● The GNU GPL was also written by Stallman in 1989. complete free operating system. ● By 1990, the GNU system was almost complete, the – According to the FSF, such combinations should be correctly only major missing component was the kernel. named as GNU/Linux systems. – See the various Linux distributions (for example, , Fedora, Gentoo, , …).

49 51

The GNU Project (3) GNU/Linux (2)

● GNU software: Free Software Directory ● The GNU project's replacement for the Unix kernel: GNU Hurd. https://directory.fsf.org/wiki/GNU https://www.gnu.org/software/hurd/hurd.html – https://www.gnu.org/software/bash/ – Its development was started in 1990. It is under active development and there is no stable version. It is not suitable for production environments. – Coreutils (cat, chmod, cp, kill, ls, mkdir, mv, rmdir, sort, …) ● See: https://www.gnu.org/software/hurd/hurd/status.html https://www.gnu.org/software/coreutils/ ● See also: – GCC https://gcc.gnu.org/ – Linux and the GNU Project https://www.gnu.org/gnu/linux-and-gnu.html – GIMP https://www.gimp.org/ – GNU/Linux FAQ https://www.gnu.org/gnu/gnu-linux-faq.html – GNOME https://www.gnome.org/ – Free GNU/Linux distributions (only 10 distributions!) – Gzip https://www.gnu.org/software/gzip/ https://www.gnu.org/distros/free-distros.html – R https://www.r-project.org/ ● Example: PureOS (a distribution based on Debian) https://pureos.net/ – …

50 52 Why to Develop FOSS Software Free Software Foundation (FSF) Commercially?

● The Free Software Foundation (FSF) is a non-profit organization ● We can build a community around the software. founded by Richard Stallman to support free software. – It may help to introduce and popularize new technologies – Maintains the Free Software Definition and standards. – Publishes philosophical writings about free software ● – Publishes free licenses (GNU GPL, GNU LGPL, GNU AGPL, GNU FDL) The power of the community around the software can – Provides information about available free software be exploited efficiently. ● See, for example: Free Software Directory https://directory.fsf.org/ – The community can help to discover bugs. – Sponsors the GNU project – Members of the user community who already know and use – Holds copyright on a large proportion of the GNU operating system, and other free software, and also enforces the GNU licenses. the open source software have the potential to become a customer. – Popularizes free software (campaigns) ● ● See: https://www.fsf.org/about The vendor may sell hardware to the user.

53 55

FSF Licenses Commercial Open Source Software

● Source: GNU License Logos ● For example, the following companies develop open source https://www.gnu.org/graphics/license-logos.html 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/ GNU Lesser General Public License GNU General Public License (GNU LGPL) – Microsoft https://opensource.microsoft.com/ (GNU GPL) – Oracle https://developer.oracle.com/opensource https://oss.oracle.com/ GFDL – … GNU Free Documentation License GNU Affero General Public License (GNU FDL) 54 56 (GNU AGPL) Examples for Commercial Open Examples for Commercial Open Source Software (1) Source Software (3)

● Adobe: ● Intel: – Brackets (license: MIT License) http://brackets.io/ – Intel Graphics for Linux (license: MIT License/GPLv2) https://01.org/linuxgraphics https://github.com/adobe/brackets ● Microsoft: ● Apple: – TypeScript (license: Apache License v2) https://www.typescriptlang.org/ – Swift (license: Apache License v2) https://swift.org/ https://github.com/microsoft/TypeScript https://github.com/apple/swift – Visual Studio Code (license: MIT License) https://code.visualstudio.com/ – WebKit (license: LGPLv2/Simplified BSD License) https://github.com/Microsoft/vscode https://webkit.org/ ● Oracle: – ● Facebook: MySQL (license: GPLv2) https://www.mysql.com/ https://github.com/mysql/mysql-server – React (license: MIT License) https://reactjs.org/ – Oracle OpenJDK (license: GPLv2 + Classpath Exception) https://jdk.java.net/ https://github.com/facebook/react/

57 59

Examples for Commercial Open Open Source Business Models: Source Software (2) Dual Licensing (1)

● Google: ● Dual licensing is a widely used open source – Android (license: Apache License v2/GPLv2) business model. It means that the software is https://www.android.com/ https://source.android.com/ distributed under two different licenses. – Angular (license: MIT License) https://angular.io/ – The copyright holder of the software has rights to https://github.com/angular/angular do so. – Chromium (license: New BSD License) ● https://www.chromium.org/ When more than two licenses are used for distributing the software, the term multi- – TensorFlow (license: Apache License v2) https://www.tensorflow.org/ licensing is used. https://github.com/tensorflow/tensorflow

58 60 Open Source Business Models: Open Source Business Models: Dual Licensing (2) Dual Licensing (4)

● A more recent term to refer to this practice is ● The two types of business models: proprietary relicensing. – The vendor distributes the same software under – See: different licenses. ● Karl Fogel. Producing Open Source Software – How to ● For example, Oracle distributes Berkeley DB this way Run a Successful Free Software Project. (FOSS license: AGPLv3). https://producingoss.com/ https://www.oracle.com/database/technologies/related/be rkeleydb.html – The chapter titled Proprietary Relicensing covers the topic in detail. https://producingoss.com/en/proprietary-relicensing.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/

61 63

Open Source Business Models: Open Source Business Models: Dual Licensing (3) Dual Licensing (5)

● Using multiple licenses for the same software: ● The free and non-free editions of software are often named as community edition and enterprise edition, respectively. – The software is available under a FOSS license to – Examples: be used for open source projects. ● GraalVM (Oracle) https://www.graalvm.org/downloads/

● – For other purposes, the software is available under IntelliJ IDEA https://www.jetbrains.com/idea/download/ ● Liferay Portal (Liferay Inc.) https://www.liferay.com/downloads-community a proprietary license. Typically, the customer must ● MongoDB (MongoDB Inc.) https://www.mongodb.com/download-center/community pay for the proprietary license. ● 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 ● …

62 64 Open Source Business Models: An Example of an Open Source Dual Licensing (6) Business Model: VirtualBox (1)

● This may be the only way to use the software in ● Originally, it was developed as proprietary software by innotek, a closed source software projects, because not German software company. – In 2007, innotek released VirtualBox Open Source Edition (OSE) under all FOSS licenses allow such uses. the GNU GPL v2.0. – See: ● In 2008, the company was acquired by Sun, which in turn was acquired by Oracle in 2010. ● Mikko Välimäki. Dual Licensing in Open Source Software Industry. 2003. ● Since its acquisition by Oracle, the software is named as Oracle http://opensource.mit.edu/papers/valimaki.pdf VM VirtualBox. ● Karl Fogel. Producing Open Source Software – How to ● Website: Run a Successful Free Software Project. – https://www.oracle.com/virtualization/virtualbox/ https://producingoss.com/ – https://www.virtualbox.org/

65 67

Open Source Business Models: An Example of an Open Source Dual Licensing (7) Business Model: VirtualBox (2)

● Potential business opportunities: ● Before version 4.0, there were two editions: – If the customer would like to use the software in a – VirtualBox Open Source Edition (OSE): way that is forbidden by the FOSS license, the ● It is distributed under the GNU GPL v2.0. customer must purchase a commercial license. ● It does not include the following features: Remote Display – The vendor may offer paid support (e.g., patches, Protocol (RDP) Server, USB support, USB over RDP. technical assistance). – 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).

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

● Starting with version 4.0, there is only a single ● Business model: multi-licensing – Starting with version 5.7, Qt is distributed under the following licenses: (1) GNU edition (license: GPLv2). GPL v2 or v3, (2) GNU LGPL v3, (3) a commercial license. – Closed-source features (e.g. RDP and USB support) – 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, are provided by an extension pack under the PUEL. whereas some others are available under the GPL only. ● Their commercial use requires the purchase of a license – A commercial license can be purchased that allows Qt to be used for (Oracle VM VirtualBox Enterprise). commercial purposes. ● Certain developer tools and features are available only for customers. ● See: Oracle VM VirtualBox – Licensing: ● Further information: Frequently Asked Questions – https://www.qt.io/download https://www.virtualbox.org/wiki/Licensing_FAQ – https://www.qt.io/licensing/ – https://www.qt.io/faq/

69 71

An Example of an Open Source The Licensing of Java (1) Business Model: Qt (1)

● Qt is cross-platform application development framework written in ● OpenJDK, Oracle OpenJDK: C++. https://www.qt.io/ – – Developer: Qt Group https://www.qt.io/company, Qt Project License: GNU GPL v2 with the Classpath Exception https://github.com/qtproject https://openjdk.java.net/legal/gplv2+ce.html ● The latest version is version 6.0. – See: – See: https://doc.qt.io/qt-6/ ● https://openjdk.java.net/legal/ ● Modular architecture. ● https://jdk.java.net/16/ – See: All Modules https://doc.qt.io/qt-6/qtmodules.html ● Examples of uses: Google Earth, KDE, Ubuntu, Wolfram Mathematica, … – See: https://resources.qt.io/customer-stories-all

70 72 The Licensing of Java (2) Reusing Other Creative Works (1)

● Before Java SE 11, the Oracle JDK and JRE were distributed under ● In addition to software artifacts, software development the BCL. projects may reuse many other types of digital creative – The BCL permits them to to be used and distributed together with non-free works. software. – – See: Oracle Binary Code License Agreement for the Java SE Platform Examples: fonts, icons, sounds, … Products ● Because any piece of software is also considered to be https://www.oracle.com/downloads/licenses/binary-code-license.html a creative work, in the following, we will refer to non- ● Starting with Java SE 11, Oracle JDK is available free under the following license: software creative works as other creative works. – Oracle Technology Network License Agreement for Oracle Java SE ● Other creative works that have been made publicly https://www.oracle.com/downloads/licenses/javase-license1.html available for reuse are typically distributed under some ● Permitted uses include: personal desktop use, development and testing, demonstration, education. license, just like free and open source software.

73 75

The Licensing of Java (3) Reusing Other Creative Works (2)

● Starting with Java SE 11, commercial uses of Oracle ● Non-software creative works are often JDK require a commercial license (Java SE distributed under commonly used FOSS Subscription/Java SE Desktop Subscription). licenses. – Subscriptions are available per user (desktop deployments), or processor (sever and/or cloud ● Non-software creative works distributed under deployments). permissive software licenses can be reused in – See: closed source software projects without any ● Oracle Java SE Subscriptions risk. https://www.oracle.com/java/java-se-subscription/ ● Oracle Java SE Subscription FAQ https://www.oracle.com/java/technologies/java-se-subscription-faq .html

74 76 Distributing Other Creative Works Licenses for Other Creative Works Under the GNU GPL (1)

● The GNU GPL can be applied to any kind of ● Many licenses are available for distributing non-software work as long as it is clear what constitutes the creative works. “source code” for the work. – Certain of them target a specific type of creative work (e.g., fonts), whereas others can be used for various types of works. – See: Frequently Asked Questions about the GNU ● For example, the Creative Commons licenses can be used for a wide Licenses – Can I use the GPL for something other range of content types (e.g., text, photo, audio, video). than software? – Copyleft is also widely used in licenses for non-software https://www.gnu.org/licenses/gpl-faq.html#GPLOthe creative works. rThanSoftware ● See: Various Licenses and Comments about Them – Licenses for Other Works https://www.gnu.org/licenses/license-list.html#OtherLicen ses

77 79

Distributing Other Creative Works Creative Commons Licenses (1) Under the GNU GPL (2)

● The GPL may make it impossible to reuse non- ● The CC licenses are especially popular for software creative works under its terms in closed distributing non-software creative works. source software projects. – Creative Commons is a set of licenses developed – For example, documents embedding GPL-licensed fonts and maintained by Creative Commons, a non profit qualify as derived works to which the GPL applies. organization. ● The GPL Font Exception resolves the problem and – There are major differences between individual CC allows fonts to be used even in closed source licenses. software projects. ● Website: https://creativecommons.org/ – See: David “Novalis” Turner. Font Licensing. April 25, 2005. https://www.fsf.org/blogs/licensing/20050425novalis

78 80 Creative Commons Licenses (2) Creative Commons Licenses (4)

● The latest version is version 4.0. ● License elements: – Because copyright law varies from country to country, – The source of images: Downloads – Creative Commons earlier licenses were ported to over 60 jurisdictions. https://creativecommons.org/about/downloads/ ● 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. Attribution (BY) Share-alike (SA) – See: Creative Commons – What’s New in 4.0 https://creativecommons.org/version4/

81 Non-commercial (NC) No Derivative Works (ND) 83

Creative Commons Licenses (3) Creative Commons Licenses (5)

● The three “layers” of licenses: ● The licenses: https://creativecommons.org/licenses/?lang=en – Legal code – Attribution (CC BY) – Commons deed (human readable version) – Attribution-ShareAlike (CC BY-SA) – Machine readable version – Attribution-NoDerivatives (CC BY-ND) ● CC Rights Expression Language (CC REL) https://wiki.creativecommons.org/wiki/CC_REL – Attribution-NonCommercial (CC BY-NC) – Can be encoded using RDFa or XMP: – Attribution-NonCommercial-ShareAlike (CC BY-NC-SA) ● RDFa https://rdfa.info/ – ● Extensible Metadata Platform (XMP) Attribution-NonCommercial-NoDerivatives (CC BY-NC- https://www.adobe.com/products/xmp.html ND)

82 84 Creative Commons Licenses (6) Creative Commons Licenses (8)

● For public domain works: ● The FSF's opinion about the CC licenses: they should not be used on software! – CC0 https://creativecommons.org/choose/zero/ (for – CC BY: a non-copyleft free license that is compatible with the releasing works into the public domain) GNU GPL and is suitable to be used for various works. – Public Domain Mark – CC BY-SA: a copyleft license that is suitable to be used for https://creativecommons.org/choose/mark/ (for various works. labeling works that are already in the public – CC BY-ND, CC BY-NC, CC BY-NC-ND, CC BY-NC-SA: non-free domain) 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

85 87

Creative Commons Licenses (7) Creative Commons Licenses (9)

● All CC licenses require users to attribute the creator of licensed ● Further information: material. – The CC website offers some best practices on how to attribute properly. – CC Wiki https://wiki.creativecommons.org/ ● See: Best practices for attribution https://wiki.creativecommons.org/wiki/Best_practices_for_attribution – Creative Commons – Frequently Asked Questions – Tools for attribution: https://wiki.creativecommons.org/index.php/Freque ● Attribution Generator https://lizenzhinweisgenerator.de/?lang=en ntly_Asked_Questions ● flickr cc attribution bookmarklet maker (written in: JavaScript) https://cogdog.github.io/flickr-cc-helper/ – Compatible Licenses ● ImageCodr.org https://www.imagecodr.org/ https://creativecommons.org/share-your-work/licens ● Open Attribution Builder https://www.openwa.org/attrib-builder/ ing-considerations/compatible-licenses/ – See also: ● The list of Creative Commons ShareAlike (CC BY-SA and ● Creative Commons – Frequently Asked Questions – Attribution https://creativecommons.org/faq/#attribution CC BY-NC-SA) compatible licenses.

86 88 Licenses for Documentation (1) Licenses for Documentation (3)

● The following licenses are widely used for ● Examples of uses of the CC licenses: documentation: – Daniel Stenberg. HTTP/3 Explained. (license: CC BY 4.0) https://daniel.haxx.se/http3-explained/ https://http3-explained.haxx.se/ – GNU Free Documentation License (GNU FDL) – PHP Manual (license: CC BY 3.0) https://www.php.net/manual/ ● A copyleft license for documentation developed by the – Scott Chacon, Ben Straub. Pro Git. 2nd edition. Apress, 2014. FSF. The latest version is 1.3. (license: CC BY-NC-SA 3.0) https://git-scm.com/book/en/v2 https://www.gnu.org/licenses/fdl-1.3.html – Wikipedia (license: CC BY-SA 3.0) https://www.wikipedia.org/ – CC licenses ● See: https://en.wikipedia.org/wiki/Wikipedia:Copyrights – Wiktionary (license: CC BY-SA 3.0) https://www.wiktionary.org/ ● See: https://en.wiktionary.org/wiki/Wiktionary:Copyrights – …

89 91

Licenses for Documentation (2) SPDX (1)

● Examples of uses of the GNU FDL: ● Software Package Data Exchange (SPDX) – The GNU C Library Reference Manual https://spdx.dev/ https://www.gnu.org/software/libc/manual/ – An open standard format for communicating the – Qt Documentation https://doc.qt.io/ components, licenses, and copyrights associated https://doc.qt.io/qt-6/fdl.html with software packages. – Wikipedia https://www.wikipedia.org/ – SPX is developed by the SPDX Workgroup, a ● See: https://en.wikipedia.org/wiki/Wikipedia:Copyrights working group of The Linux Foundation. – Wiktionary https://www.wiktionary.org/ – Current specification: SPDX Specification 2.2 ● See: https://wikimediafoundation.org/wiki/Terms_of_Use/en https://spdx.dev/specifications/ – …

90 92 SPDX (2) SPDX (4)

● License list: ● SPDX data can be represented in: – The SPDX project maintains a directory of more – plain text in tag:value format than 400 common licenses and exceptions used in ● See: SPDX Tag/Value Example free and open source software. https://spdx.dev/resources/use/spdx-tagvalue-example/ ● SPDX License List https://spdx.org/licenses/ – RDF/XML ● License Exceptions ● See: SPDX RDF/XML Example https://spdx.org/licenses/exceptions-index.html https://spdx.dev/resources/use/spdx-rdfxml-example/

93 95

SPDX (3) SPDX (5)

● License identifiers: ● Uses of SPDX: – SPDX assigns a compact identifier to each license. – Linux kernel: Linux kernel licensing rules – License ● Examples: Apache-2.0, CC-BY-4.0, MIT identifier syntax ● License expressions: https://www.kernel.org/doc/html/latest/process/licen – The AND, OR, and WITH logical operators can be used to combine se-rules.html#license-identifier-syntax licenses and exceptions, parentheses can be used for grouping. – See: SPDX IDs: Where they're used today ● Examples: https://spdx.dev/ids/#where – 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 https://spdx.dev/ids/

94 96 Tools Supporting the Use of FOSS Further Reading (1)

● Free and open source software: ● Heather J. Meeker. The Open Source – License Maven Plugin (written in: Java; license: GPLv3) Alternative: Understanding Risks and https://www.mojohaus.org/license-maven-plugin/ Leveraging Opportunities. Wiley, 2008. https://github.com/mojohaus/license-maven-plugin ● Van Lindberg. Intellectual Property and Open – FOSSology (written in: PHP, C; license: GPLv2) https://www.fossology.org/ Source: A Practical Guide to Protecting Code. https://github.com/fossology/fossology O'Reilly, 2008. – ScanCode (written in: Python; license: Apache License 2.0) https://github.com/nexB/scancode-toolkit/

97 99

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/

98