Software relicensing
Software relicensing is applied in open-source software development when software licenses of software modules are incompatible and are required to be compatible for a greater combined work. Licenses applied to software as copyrightable works, in source code as binary form,[1] can contain contradictory clauses. These requirements can make it impossible to combine source code or content of several software works to create a new combined one.[2][3]
Motivation and description
[edit | edit source]Sometimes open-source software projects get stuck in a license incompatibility situation. Often the only feasible way to resolve this situation is re-licensing of all participating software parts. For successful relicensing the agreement of all involved copyright holders, typically the developers, to a changed license is required. While in the free and open-source domain achieving 100% coverage of all authors is often impossible due to the many contributors involved, often it is assumed that a great majority is sufficient. For instance, Mozilla assumed an author coverage of 95% to be sufficient.[4] Others in the free and open-source software (FOSS) domain, such as Eric S. Raymond, came to different conclusions regarding the requirements for relicensing of a whole code base.[5]
Cases
[edit | edit source]An early example of an open-source project that did successfully re-license for license compatibility reasons is the Mozilla project and their Firefox browser. The source code of Netscape's Communicator 4.0 browser was originally released in 1998 under the Netscape Public License/Mozilla Public License[6] but was criticised by the FSF and OSI for being incompatible.[7][8] Around 2001 Time Warner, exercising its rights under the Netscape Public License, and at the request of the Mozilla Foundation, relicensed[9] all code in Mozilla that was under the Netscape Public License (including code by other contributors) to an MPL 1.1/GPL 2.0/LGPL 2.1 tri-license, thus achieving GPL-compatibility.[10]
The Vorbis library was originally licensed as LGPL, but in 2001 the license was changed to the BSD license with endorsement of Richard Stallman to encourage adoption.[11][12]
The VLC project also has a complicated license history due to license compatibility: in 2007 it decided for license compatibility reasons to not upgrade to the just released GPLv3.[13] After VLC was removed from Apple App Store at the beginning of 2011, in October 2011 the VLC project re-licensed the VLC library part from the GPLv2 to the LGPLv2 to achieve better compatibility.[14][15] In July 2013 the VLC application could then be resubmitted to the iOS App Store relicensed under the Mozilla Public License.[16]
7-Zip's LZMA SDK, originally dual-licensed under both the GNU LGPL and Common Public License,[17] with an additional special exception for linked binaries, was placed by Igor Pavlov in the public domain on December 2, 2008.[18]
The GNU TLS project adopted the LGPLv3 license in 2011 but in 2013 relicensed their code back to LGPLv2.1 due to serious license compatibility problems.[19][20][21]
The GNU Free Documentation License in version 1.2 is not compatible with the widely used Creative Commons Attribution-ShareAlike license, which was a problem, for instance, for the Wikipedia.[22] Therefore, at the request of the Wikimedia Foundation, the FSF added, with version 1.3 of the GFDL, a time-limited section allowing specific types of websites using the GFDL to additionally offer their work under the CC BY-SA license.[23] Following in June 2009, the Wikimedia Foundation migrated their projects (Wikipedia, etc.) by dual licensing to the Creative Commons Attribution-ShareAlike as main license, additional to the previously used GFDL.[24] An improved license compatibility with the greater free content ecosystem was given as reason for the license change.[25][26]
In 2010 the OGRE project changed their license from the LGPL to the MIT License; a simpler license text was given as reason.[27][28][29]
Another case was the relicensing of GPLv2 licensed Linux kernel header files to the BSD license by Google for their Android library Bionic. To get rid of the GPL, Google claimed that the header files were cleaned from any copyright-able work, reducing them to non-copyrightable "facts".[30][31] This interpretation was challenged for instance by Raymond Nimmer, a law professor at the University of Houston Law Center.[32]
In November 2013 POV-Ray was relicensed under the GNU Affero General Public License version 3 (or later),[33] after being distributed since 1991 under a FOSS-incompatible, non-commercial source available custom POV-Ray license.[34][35] POV-Ray was developed before FOSS licenses became widely used, therefore the developers wrote their own license which became later a problem due to license incompatibility with the FOSS ecosystem.
In 2014, the FreeCAD project changed their license from GPL to LGPLv2 due to GPLv3/GPLv2 incompatibilities.[36][37]
In 2014 Gang Garrison 2 relicensed from GPLv3 to MPL for improved library compatibility.[38][39]
In May 2015 the Dolphin project changed its license from "GPLv2 only" to "GPLv2 or any later" for better compatibility.[40]
In June 2015 mpv started the relicensation process of the project's GPL licensed source code for improved license compatibility under LGPLv2 by getting consent from the majority (95%+) of the contributing developers.[41] In August 2016 approx. 90% of the authors could be reached and consented. In October 2017 the switch was finalized.[42]
In July 2015 Seafile switched for improved license compatibility, especially with Git, from the GPLv3 to the GPLv2.[43][44]
In 2015 Natron was relicensed from MPL to the GPLv2 to allow better commercialization.[45]
In 2016 MAME achieved a relicensing of the code base to BSD/GPL[46] after struggling for years with an own written custom license, with non-commercial license terms.[47][48][49][50]
In August 2016 the MariaDB Corporation relicensed the database proxy server MaxScale from GPL to the non-FOSS but source-available and time-limited Business source license (BSL)[51] which defaults back after three years to GPL.[52][53] In 2017 followed version 1.1, revised with feedback also from Bruce Perens.[54][55]
For a long time D back-end source code was available but under a non-open source conform license,[56] because it was partially developed at Symantec and couldn't be relicensed as open source.[57] On April 9, 2017, also the back-end part could be relicensed to the open-source Boost Software License.[58][59][60]
On July 27, 2017 Microsoft Research changed the license of space combat simulator Allegiance from the MSR shared source license,[61] under which the game was opened in 2004,[62] to the MIT license.[63][64]
See also
[edit | edit source]References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Licensing HOWTO by Eric Steven Raymond&Catherine Olanich Raymond "Changing an existing license [...]You can change the license on a piece of code under any of the following conditions: If you are the sole copyright holder[...]If you are the sole registered copyright holder[...] If you obtain the consent of all other copyright holders[...]If no other copyright holder could be harmed by the change" (accessed on 2015-11-21)
- ^ Netscape Public License FAQ on mozilla.org
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ On the Netscape Public License by Richard Stallman on GNU.org
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Relicensing Complete on gerv.net by Gervase Markham (March 31, 2006)
- ^ February 2001 on xiph.org "With the Beta 4 release, the Ogg Vorbis libraries have moved to the BSD license. The change from LGPL to BSD was made to enable the use of Ogg Vorbis in all forms of software and hardware. Jack Moffitt says, "We are changing the license in response to feedback from many parties. It has become clear to us that adoption of Ogg Vorbis will be accelerated even further by the use of a less restrictive license that is friendlier toward proprietary software and hardware systems. We want everyone to be able to use Ogg Vorbis.""
- ^ RMS on license change on lwn.net
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ VLC under Mozilla public relaunched. on Ars Technica (Accessed 10/10/2013)
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Version 2.99.4 (released 2011-07-23)[...] ** libgnutls: license upgraded to LGPLv3
- ^ 2013-03-14 Nikos Mavrogiannopoulos (nmav@gnutls.org) * COPYING.LESSER, README: gnutls 3.1.10 is LGPLv2.1
- ^ why-the-wikimedia-projects-should-not-use-gfdl-as-a-stand-alone-license-for-images
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Wikipedia + CC BY-SA = Free Culture Win! on creativecommons.org by Mike Linksvayer, June 22nd, 2009
- ^ Licensing update rolled out in all Wikimedia wikis on wikimedia.org by Erik Moeller on June 30th, 2009 "Perhaps the most significant reason to choose CC-BY-SA as our primary content license was to be compatible with many of the other admirable endeavors out there to share and develop free knowledge"
- ^ Licensing FAQ on ogre3d.org
- ^ My evolving view of open source licenses by Steve (2009/09/15)
- ^ OGRE Will Switch To The MIT License from 1.7 on ogre3d.org by sinbad (Sep 15, 2009)
- ^ Google android and the linux headers on theregister.com (2011)
- ^ Android: Sued by Microsoft, not by Linux "Microsoft launches new Android suit, Linus Torvalds' take on Linux kernel headers and Android" on ITworld (March 21, 2011)
- ^ Infringement and disclosure risk in development on copyleft platforms on ipinfoblog.com by Raymond Nimmer (2011)
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Relicensing Dolphin: The long road to GPLv2+ Written by JMC47, MaJoR on May 25, 2015
- ^ Possible LGPL relicensing #2033 on github.com "GPL-incompatible dependencies such as OpenSSL are a big issue for library users, even if the library user is ok with the GPL."
- ^ The LGPL relicensing is "official" now, and git master now has a --enable-lgpl configure option. by wm4 on github.com
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Why change Natron licence to GPL V2? Can you explain your motivation ? Why change from Mozilla to GPL ? Archived 2017-03-06 at the Wayback Machine on natron.fr MrKepzieLeader: "The main reasoning is that in the future there will be derivative work spun off Natron, and we want to be able to still control where our source code is going and who is selling it." (Aug 2015)
- ^ MAME is now Free and Open Source Software on mamedev.org (March 4, 2016)
- ^ the-already-dead-theory on mamedev.emulab.it
- ^ So why did this annoy me so much? on mameworld.info (10/22/13)
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ bsl "Change Date: 2019-01-01, Change License: Version 2 or later of the GNU General Public License as published by the Free Software Foundation." on mariadb.com (August 2016)
- ^ MySQL daddy Widenius: Open-source religion won't feed MariaDB on theregister.com (August 2016)
- ^ A new release of the MaxScale database proxy -- essential to deploying MariaDB at scale -- features a proprietary license on InfoWorld by Simon Phipps (Aug 19, 2016)
- ^ sl-1-1 on perens.com (2017-02-14)
- ^ releasing-bsl-11 on mariadb.com by Kaj Arnö (2017)
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ D-Compiler-unter-freier-Lizenz on linux-magazin.de (2017, in German)
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ switch backend to Boost License #6680 from Walter Bright on github.com
- ^ allegiancelicense.txt Archived 7 November 2014 at the Wayback Machine Microsoft Research Shared Source license agreement ("MSR-SSLA")
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ FREEING Allegiance, How it Happened (sort of) on freeallegiance.org (2017-07-28)