License compatibility is a legal framework that allows for pieces of software with different software licenses to be distributed together. The need for such a framework arises because the different licenses can contain contradictory requirements, rendering it impossible to legally combine source code from separately-licensed software in order to create and publish a new program.[failed verification] Proprietary licenses are generally program-specific and incompatible; authors must negotiate to combine code. Copyleft licenses are deliberately incompatible with proprietary licenses, in order to prevent copyleft software from being re-licensed under a proprietary license, turning it into proprietary software. Many copyleft licenses explicitly allow relicensing under some other copyleft licenses. Permissive licenses are (with minor exceptions) compatible with everything, including proprietary licenses; there is thus no guarantee that all derived works will remain under a permissive license.
License compatibility can be defined around the concepts of "collective/combined/aggregated work" and "derivative work". The first "collective work" license compatibility definition allows the usage of variously-licensed works in a combined context:
the characteristic of two (or more) licenses according to which the codes distributed under these licenses may be put together in order to create a bigger distributable software. [emphasis added]
A stronger definition includes the capability to change the license. The most prominent example is the copyleft license's demand that the "derived work" combined from code under various licenses as whole is applied to the copyleft license.
License compatibility: The characteristic of a license according to which the code distributed under this license may be integrated into a bigger software that will be distributed under another license. [emphasis added]
This section has multiple issues. Please help talk page. (Learn how and when to remove these template messages)or discuss these issues on the
A combined work consists of multiple differently-licensed parts (avoiding relicensing). To achieve a combined work including copyleft licensed components (which have a viral property leading potentially to a derived work), proper isolation/separation needs to be maintained.
With individually licensed source code files, multiple non-reciprocal licenses (such as permissive licenses or own proprietary code) can be separated, while the combined compiled program could be re-licensed (but that is not required). Such source-code file separation is too weak for copyleft/reciprocal licenses (such as the GPL), as they then require the complete work to be re-licensed under the reciprocal license as being derivative.
A slightly stronger approach is to have separation at the linking stage with binary object code (static linking), where all the components of the resulting program are part of the same process and address space. This satisfies "weak copyleft/standard reciprocal" combined works (such as LGPL licensed ones), but not "strong copyleft/strong reciprocal" combined works. While it is commonly accepted that linking (static and even dynamic linking) constitutes a derivative of a strong copyleft'd work, there are alternate interpretations.
For combined works with "strong copyleft" modules, a stronger isolation is required. This can be achieved by separating the programs by an own process and allowing communication only via binary ABIs or other indirect means. Examples are Android's kernel space-to-user space separation via Bionic, or Linux distros which have proprietary binary blobs included despite having a strong copyleft kernel.
While for some domains agreement exists if an isolation is suitable, there are domains in dispute and up to now untested in court. For instance, in 2015 the SFC sued VMware in an ongoing dispute whether loadable kernel modules (LKM's) are derivative works of the GPL'd Linux kernel or not.
Licenses common to free and open-source software (FOSS) are not necessarily compatible with each other, and this can make it legally impossible to mix (or link) open-source code if the components have different licenses. For example, software that combined code released under version 1.1 of the Mozilla Public License (MPL) with code under the GNU General Public License (GPL) could not be distributed without violating one of the terms of the licenses;[better source needed] this despite both licenses being approved by both the Open Source Initiative and the Free Software Foundation.
License compatibility between a copyleft license and another license is often only a one-way compatibility, making the copyleft license (GPL, and most other copyleft licenses) incompatible with proprietary commercial licenses, as well as with many non-proprietary licenses.[self-published source?][self-published source?] This "one-way compatibility" characteristic has been criticized by the Apache Foundation, which licenses under the more permissive Apache license, such non-copyleft licenses being often less complicated and making for better license compatibility.
An example of a license that has excellent compatibility with other FOSS licenses is the Artistic License 2.0, due to its re-licensing clause which allows redistribution of the source code under any other FOSS license.
You may Distribute your Modified Version as Source (either gratis or for a Distributor Fee, and with or without a Compiled form of the Modified Version) [...] provided that you do at least ONE of the following: [...]
(c) allow anyone who receives a copy of the Modified Version to make the Source form of the Modified Version available to others under
(i) the Original License or
(ii) a license that permits the licensee to freely copy, modify and redistribute the Modified Version using the same licensing terms that apply to the copy that the licensee received, and requires that the Source form of the Modified Version, and of any works derived from it, be made freely available in that license fees are prohibited but Distributor Fees are allowed. [emphasis added]
The Common Development and Distribution License (CDDL)--a weak copyleft license in-between the GPL license and BSD/MIT permissive licenses--tries to address license compatibility problems by permitting, without re-licensing, the mixing of CDDL-licensed source-code files with source-code files under other licenses by providing that the resulting binary can be licensed and sold under a different license as long as the source code is still available under CDDL.[user-generated source?]
To minimize license proliferation and license incompatibilities in the FOSS ecosystem, some organizations (the Free Software Foundation, for instance) and individuals (David A. Wheeler), argue that compatibility with the widely used GPL is an important feature of software licenses.[self-published source?] Many of the most common free-software licenses, especially the permissive licenses, such as the original MIT/X license, BSD licenses (in the three-clause and two-clause forms, though not the original four-clause form), MPL 2.0, and LGPL, are GPL-compatible. That is, their code can be combined with a program under the GPL without conflict, and the new combination would have the GPL applied to the whole (but the other license would not so apply).
Copyleft software licenses are not inherently GPL-compatible; even the GPLv2 license by itself is not compatible with GPLv3 or LGPLv3. If you tried to combine code released under either of the later GPL licenses with GPLv2 code, you would violate section 6 of GPLv2, the source of the incompatibility. However, code under the later licenses can be combined with code licensed under GPL version 2 or later.[self-published source?] Most software released under GPLv2 allow you to use the terms of later versions of the GPL as well, and some have exception clauses that allow combining them with software that is under different licenses or license versions. The Linux kernel is a notable exception that is distributed exclusively under the terms of GPLv2.
The Free Software Foundation-recommended GNU Free Documentation License is incompatible with the GPL license, and text licensed under the GFDL cannot be incorporated into GPL software. Therefore, the Debian project decided, in a 2006 resolution, to license documentation under the GPL. The FLOSS Manuals foundation followed Debian in 2007. In 2009, the Wikimedia Foundation switched from the GFDL to a Creative Commons CC-BY-SA license as the main license for their projects.
Another case where GPL compatibility is problematic is the CDDL licensed ZFS file system with the GPLv2 licensed Linux kernel. Despite that both are free software under a copyleft license, ZFS is not distributed with most linux distros like Debian (but is distributed with FreeBSD) as the CDDL is considered incompatible with the GPL'ed Linux kernel, by the Free Software Foundation and some parties with relations with the FSF. The legal interpretation--of if and when this combination constitutes a combined work or derivative work of the GPLed kernel--is ambiguous and controversial. In 2015, the CDDL to GPL compatibility question reemerged when the linux distribution Ubuntu announced that it would include OpenZFS by default. In 2016, Ubuntu announced that a legal review resulted in the conclusion that it is legally safe to use ZFS as a binary kernel module in Linux. Others accepted Ubuntu's conclusion; for instance lawyer James E.J. Bottomley argued "a convincing theory of harm" cannot be developed, making it impossible to bring the case to court.[self-published source] Eben Moglen, co-author of the GPLv3 and founder of the SFLC, argued that while the letters of the GPL might be violated the spirit of both licenses is adhered to, which would be the relevant issue in court. On the other hand, Bradley M. Kuhn and Karen M. Sandler, from the Software Freedom Conservancy, argued that Ubuntu would violate both licenses, as a binary ZFS module would be a derivative work of the Linux kernel, and announced their intent to achieve clarity in this question, even by going to court.
The Creative Commons Licenses are widely used for content, but not all combinations of the seven recommended and supported licenses are compatible with each other. Additionally, this is often only a one-way directional compatibility, requiring a complete work to be licensed under the most restrictive license of the parent works.
JSON developer Douglas Crockford, inspired by the words of then President Bush, formulated the "evil-doers" JSON license ("The Software shall be used for Good, not Evil.") in order to open-source the JSON libraries but also to force (troll) corporate lawyers (or those who are overly pedantic) to pay for a license from the state. The subjective and moral license clause led to license incompatibility problems with other open source licenses, and resulted in the JSON license not being a free and open-source license.
Sometimes projects wind up with incompatible licenses, and the only feasible way to solve it is the re-licensing of the incompatible parts. Re-licensing is achieved by contacting all involved developers and other parties and getting their agreement for the changed license. While in the free and open-source domain achieving 100% agreement is often impossible, due to the many contributors involved, the Mozilla re-licensing project assumes that achieving 95% is enough for the re-licensing of the complete code base.[unreliable source?] Others in the FOSS domain, such as Eric S. Raymond, came to different conclusions regarding the requirements for re-licensing of an entire code base.
An early example of a project that successfully re-licensed for license incompatibility 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 but was criticised by the Free Software Foundation (FSF) and OSI for being incompatible with the GNU General Public License (GPL). Around 2001 Time Warner, exercising its rights under the Netscape Public License, and at the request of the Mozilla Foundation, re-licensed 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.[self-published source?]
The Vorbis library was originally licensed as LGPL, but in 2001, with the endorsement of Richard Stallman, the license was changed to the less restrictive BSD license, to accelerate the library's adoption.
The VLC project has a complicated license history due to license incompatibility, and in 2007 the project decided, for license compatibility, to not upgrade to the just released GPLv3. In October 2011, after the VLC had been removed from the Apple App Store at the start of 2011, the VLC project re-licensed the VLC library, from the GPLv2 to the LGPLv2, to achieve better compatibility. In July 2013, the software re-licensed under the Mozilla Public License, the VLC application would then be resubmitted to the iOS App Store.
The Free Software Foundation's GNU Free Documentation License version 1.2 is not compatible with the widely used Creative Commons Attribution-ShareAlike license, which was a problem for Wikipedia, for instance.[self-published source?] Therefore, at the request of the Wikimedia Foundation, the FSF added a time-limited section, to version 1.3 of the GFDL, that allowed specific types of websites using the GFDL to additionally offer their work under the CC BY-SA license. Following this, in June 2009, the Wikimedia Foundation migrated their projects (Wikipedia, etc.) by dual licensing to the Creative Commons Attribution-ShareAlike as its main license, in addition to the previously used GFDL, so as to have improved license compatibility with the greater free content ecosystem.
Another interesting case was Google's re-licensing of GPLv2-licensed Linux kernel header files to the BSD license for their Android library Bionic. Google claimed that the header files were clean of any copyright-able work, reducing them to non-copyrightable "facts", and thus not covered by the GPL. This interpretation was challenged by Raymond Nimmer, a law professor at the University of Houston Law Center. Apps and drivers of Android, which provide an increasing amount of Android's functionality, have been gradually relicensed from permissive to proprietary licenses.
In 2014, the FreeCAD project changed their license from GPL to LGPLv2, due to GPLv3/GPLv2 incompatibilities. Also in 2014, Gang Garrison 2 was re-licensed from GPLv3 to MPL for improved library compatibility.
The KaiOS mobile operating system was derived from the Firefox OS/Boot to Gecko operating system, which was released under the permissive MPL 2.0. It does not redistribute itself under the same license, so it is now presumably relicensed, and proprietary (but still mostly open-source). KaiOS also uses the GPL Linux kernel also used in Android.
What constitutes combining two parts into one program? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication [...] and the semantics of the communication [...]. If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program. [...]
'Use a library' means [...] linking [...].
Remember that the GPL requires anything that statically links to any code under the GPL also be placed under the GPL.
Viral property stimulates proliferation of licenses and contributes to the 'GPL-enforced nightmare' -- a situation when many other licenses are logically incompatible with the GPL and make life unnecessary difficult for developers working in the Linux environment (KDE is a good example here, Python is a less known example).
The GPL and license compatibility - Because the primary goal of the GPL's authors is the promotion of free software, they deliberately crafted the license to make it impossible to mix GPLed code into proprietary programs. [...] Any derivative work--that is, any work containing a nontrivial amount of GPLed code--must itself be distributed under the GPL. No additional restrictions may be placed on the redistribution of either the original work or a derivative work.
Apache 2 software can therefore be included in GPLv3 projects, because the GPLv3 license accepts our software into GPLv3 works. However, GPLv3 software cannot be included in Apache projects. The licenses are incompatible in one direction only, and it is a result of ASF's licensing philosophy and the GPLv3 authors' interpretation of copyright law.
Permissive licensing simplifies things One reason the business world, and more and more developers [...], favor permissive licenses is in the simplicity of reuse. The license usually only pertains to the source code that is licensed and makes no attempt to infer any conditions upon any other component, and because of this there is no need to define what constitutes a derived work. I have also never seen a license compatibility chart for permissive licenses; it seems that they are all compatible.
The licences for distributing free or open source software (FOSS) are divided in two families: permissive and copyleft. Permissive licences (BSD, MIT, X11, Apache, Zope) are generally compatible and interoperable with most other licences, tolerating to merge, combine or improve the covered code and to re-distribute it under many licences (including non-free or proprietary).
The GPL places additional restrictions on the code, and therefore is incompatible. You can combine APSL, MPL, CDDL, Apache, and BSD-licensed code in the same project easily, but you can only combine one of these with GPLv2 code. Even the Free Software Foundation can't manage to get it right. Version 3 of the LGPL, for example, is incompatible with version 2 of the GPL. This has caused a problem recently for a few GNU library projects that wanted to move to LGPLv3 but were used by other projects that were GPLv2-only.
GPLv3 broke 'the' GPL into incompatible forks that can't share code.
Also note that the only valid version of the GPL as far as the kernel is concerned is _this_ particular version of the license (ie v2, not v2.2 or v3.x or whatever), unless explicitly otherwise stated.
The only one of any note that I'd like to point out directly is the clarification in the COPYING file, making it clear that it's only _that_particular version of the GPL that is valid for the kernel. This should not come as any surprise, as that's the same license that has been there since 0.12 or so, but I thought I'd make that explicit
Upstream ZoL project  holds the view that in this case the combination of the two in the same binary would create a derived work, so this is not acceptable for redistribution. We accept the interpretation that this last case is not acceptable for redistribution. Therefore our package does not (and never will) ship or facilitate building a custom kernel where the ZoL ZFS driver is built-in in a monolithic binary, instead of built as an independent dynamic LKM.
Our consensus was that this package appears to violate the spirit of the GPL at the minimum, and may cause legal problems. Judges often interpret documents as they're intended to read, hacks to comply with the letter but not the intent are not looked upon fondly. This may be a hard thing for technical folks to accept, but in legal cases, one usually isn't dealing with technical people. As such, this package has been rejected.
In der Praxis ist stark unwritten, ob in Kernel module as 'derivative work' retracted warden muss. Die Auseinandersetzungen um Binär-Treiber für Linux warden it Heftiest geführt. Man word world night für sämtliche Kernel module in einheitliche Antwort find können: Wann in Kernel module von Linux »abgeleitet« ist, hängt stark von der Technische Umsetzung ab und Richter sick each den on dark leg ten Kriterien. [...] Es exist even alluding much Kernelmodule, die älter and as Linux, two das Dateisystem AFS. Dort light es Auf der Hand, dass sie as functional eigenständig Anzu then send, da sie gear night »für Linux« GE Chr Eben sein können.
What the above analysis shows is that even though we presumed combination of GPLv2 and CDDL works to be a technical violation, there's no way actually to prosecute such a violation because we can't develop a convincing theory of harm resulting. Because this makes it impossible to take the case to court, effectively it must be concluded that the combination of GPLv2 and CDDL, provided you're following a GPLv2 compliance regime for all the code, is allowable.
Ultimately, various Courts in the world will have to rule on the more general question of Linux combinations. The conservancy is committed to working towards achieving clarity on these questions in the long term. That work began in earnest last year with the VMware lawsuit, and our work in this area will continue indefinitely, as resources permit. We must do so, because, too often, companies are complacent about compliance. While we and other community-driven organisations have historically avoided lawsuits at any cost in the past, the absence of litigation on these questions caused many companies to treat the GPL as a weaker copyleft than it actually is. [...] Conservancy (as a Linux copyright holder ourselves), along with the members of our coalition in the GPL Compliance Project for Linux Developers, all agree that Canonical and others infringe Linux copyrights when they distribute zfs.ko.
GPLv3: The GNU General Public License version 3 was declared a 'BY-SA-Compatible License' for version 4.0 on 8 October 2015. Note that compatibility with the GPLv3 is one-way only, which means you may license your contributions to adaptations of BY-SA 4.0 materials under GPLv3, but you may not license your contributions to adaptations of GPLv3 projects under BY-SA 4.0.
Someone who works with many lawyers on free software copyright issues later told me that it is not necessary to get permission from 100% of the copyright holders. It would suffice if there was permission from the copyright holders of 95% of the source code and no objections from the holders of the other 5%. This, I'm told, is how Mozilla was able to re-license to the GPL in 2003 despite years of community contributions.
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.
Some time ago mozilla.org announced its intent to seek re-licensing of Mozilla code under a new licensing scheme that would address perceived incompatibilities of the Mozilla Public License (MPL) with the GNU General Public License (GPL) and GNU Lesser General Public License (LGPL).
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.'
In 2001, VLC was released under the OSI-approved GNU General Public version 2, with the commonly-offered option to use 'any later version' thereof (though there was not any such later version at the time). Following the release by the Free Software Foundation (FSF) of the new version 3 of its GNU General Public License (GPL) on the 29th of June 2007, contributors to the VLC media player, and other software projects hosted at videolan.org, debated the possibility of updating the licensing terms for future version of the VLC media player and other hosted projects, to version 3 of the GPL. [...] There is strong concern that these new additional requirements might not match the industrial and economic reality of our time, especially in the market of consumer electronics. It is our belief that changing our licensing terms to GPL version 3 would currently not be in the best interest of our community as a whole. Consequently, we plan to keep distributing future versions of VLC media player under the terms of the GPL version 2. [...] we will continue to distribute the VLC media player source code under GPL 'version 2 or any later version' until further notice.
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.
Microsoft launches new Android suit, Linus Torvalds' take on Linux kernel headers and Android
[...] the unfortunate situation with support for DWG files in free CAD software via LibreDWG. We feel, by now it ought to be closed. We have the final answer from FSF. [...] 'We are not going to change the license.'
Licences used in FreeCAD - FreeCAD uses two different licenses, one for the application itself, and one for the documentation: Lesser General Public Licence, version 2 or superior (LGPL2+) [...] Open Publication Licence
tl;dr: The current license prevents us from using certain nice and (cost-)free libraries / frameworks, so we want to change it. The new license (MPL) would be strictly more free than the old one, and is the same one that's also used by Firefox.