Licensing: Difference between revisions

Legality of emulation: clarification
Line 67: Line 67:


===GPL===
===GPL===
The GNU General Public License (GNU GPL or just GPL) is one of the most popular open-source licenses in the free software community, and for good reason; it has remained one of the strongest copy-left licenses, requiring users to share their contributions (some might say to an insane degree).
The GNU General Public License (GNU GPL or just GPL) is one of the most popular open-source licenses in the free software community, and for good reason; it has remained one of the strongest copyleft licenses, requiring users to share their contributions (some might say to an insane degree).


The GPL has two widespread versions; version 2 (written in 1991) and version 3 (written in 2007). No one talks about version 1 (1989). The GPL3 was meant to reconcile license compatibility, address software patents, license violations, nullifying [[wikipedia:Digital_rights_management|DRM]] by calling it an ineffective technological measure, and the big one; [[wikipedia:Tivoization|Tivoization]], which was a severe flaw they completely missed when drafting the first two versions that allowed Tivo to make use of GPL2 software by sharing its code while preventing unsigned firmware from being loaded on the hardware. The GPL3 prohibits this, which proved to have major problems when Hyperkin tried to incorporate the GPL3-licensed [[RetroArch]] in the [[Retron5]] (among other violations).
To use GPL code, the safest and easiest way to avoid a license violation is to keep the repository for it out in the open. The lack of any release demonstrates ill will among the many business users of open source software who usually have "playing fair with the community" on the lower end of their priorities. The benefit of having just the repo in the open is that software itself usually has a mechanism to display the software version, and even slight knowledge of repository traversal and compiler tools should allow users to reproduce their own version.


====LGPL and AGPL====
As it is the chief representative of the strong copyleft licenses, the GPL carries misconceptions about the expectations around its use.
The GPL is not the only license that the Free Software Foundation created; because the GPL2 ended up being overly restrictive in how software could work with it, many open-source libraries needed a less strict license to allow interoperability with commercial software.


This ended up being solved in two ways; the linking exception found in GNU Classpath's GPL2 license allowed it to not affect the software it would be bundled in, and the Lesser GPL, which is an entire license that was made to make this aspect clearer rather than be an exception.
* The license says nothing about having to make the process of compiling builds easy, only that it has to be ''possible''.
* The license also says nothing against commercial distribution of any kind (as is explained later for non-commercial licenses). If you had to make the source code available, you could charge some arbitrary amount for it. Doing that would still be leaps above having nothing to show, which is usually what happens.


The GPL also doesn't account for software used exclusively for consumer-facing servers, so the Affero GPL was made to require web app developers to share the source code of their app to users over the network.
The GPL has two widespread versions; version 2 (written in 1991) and version 3 (written in 2007). The GPL3 was only written to reconcile issues that had come up with the GPL2 in the years after it was written, as the Free Software Foundation had a considerable amount of foresight, but not enough to imagine what would happen if a company used GPL software in a product where users could not flash their own firmware. This has become the central point of contention with [[Emulation Boxes]], where hardware designers are constantly at odds with hobbyists who want to increase the functionality of their systems.
 
====LGPL====
The GPL2 was an adequate license for software projects that compiled all of their code into a single binary. However, if the license is used for a <abbr title="Collections of specific routines or functions in a single file to be used by other software instead of being run directly. You may know them on Windows as Dynamic-Link Libraries, or DLLs.">code library</abbr> that requires some intermediary application, said app becomes bound to the terms of the GPL. This is a consequence of its broad reach.
 
The FSF's original response was to create a "linking exception" in GNU Classpath's GPL2 license that allowed it to be used in proprietary software without having to share the whole program's source (the lack of said exception would've made it unfeasible to use in Java software). Later on, they created a much clearer variation of this exception as a separate license called the Lesser GPL (LGPL). This means code that bundles and uses an LGPL library only needs to keep ''the library itself'' open, not the code that interfaces with it.


===BSD===
===BSD===
Line 96: Line 101:


* It's not as permissive as the BSD because it still requires companies to state any changes they made.
* It's not as permissive as the BSD because it still requires companies to state any changes they made.
* It's not as strict as the GPL because it also prohibits trademark use.
* It's not as strict as the GPL because it doesn't grant trademark use.


===Non-commercial licenses===
===Non-commercial licenses===
Some ostensibly "free and open-source" software licenses include, or can be modified to include, an extra provision that's designed to prevent the software from being used for any commercial purposes, e.g. the sale of software and/or hardware to turn a profit. Since this is a fairly explicit example of restricting who can use a piece of software and for what purpose, it technically '''disqualifies the software in question from being considered FLOSS''', even if the developer still makes the source code readily available to the public.
Some ostensibly "free and open-source" software licenses include, or can be modified to include, an extra provision designed to prevent the software from being used for commercial purposes of a specific nature or of any kind, e.g. the sale of software and/or hardware to turn a profit. Since this is a fairly explicit example of restricting who can use a piece of software and for what purpose, '''it disqualifies the software in question from being considered FLOSS''', even if the developer still makes the source code readily available to the public.


The Free Software Foundation explains [https://www.gnu.org/philosophy/free-sw.html#selling here], as part of their "What is free software" page:
<blockquote>''&ldquo;"Free software" does not mean "noncommercial". On the contrary, a free program must be available for commercial use, commercial development, and commercial distribution. This policy is of fundamental importance&mdash;without this, free software could not achieve its aims. [...] We must conclude that a program licensed with such restrictions does not qualify as free software.&rdquo;''<br/>
<blockquote>
&ndash;[https://www.gnu.org/philosophy/free-sw.html#selling The Free Software Foundation]
'''Free software ''can'' be commercial'''
</blockquote>


"Free software" does not mean "noncommercial". On the contrary, a free program must be available for commercial use, commercial development, and commercial distribution. This policy is of fundamental importance&mdash;without this, free software could not achieve its aims. [...] We must conclude that a program licensed with such restrictions does not qualify as free software.
</blockquote>
The Open Source Initiative also explains why non-commercial licensing goes [https://opensource.org/osd against the very definition of "open source"]:
<blockquote>
<blockquote>
'''6. No Discrimination Against Fields of Endeavor'''
''&ldquo;The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.&rdquo;''<br/>
 
&ndash;[https://opensource.org/osd Open Source Initiative]
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
</blockquote>
</blockquote>


That being said, some emulator developers will still see non-commercial licensing as a desirable or even essential option, either to specifically pre-empt others from bundling their code into a payware package (even though this would also be a flagrant violation of most FLOSS licenses) or using it in a pre-built [[Emulation Boxes|emulation box]] without their explicit permission, or because they simply haven't considered the possibility of any more legitimate commercial use cases for their projects. Or sometimes they might just be scared of the original hardware owners coming after them and they see the non-commercial clause as an easy way to say, "hey, we're not trying to profit off of this, please don't sue us".
Non-commercial licenses have long been a desirable or even essential option for emulator developers, either to specifically pre-empt others from bundling their code into a payware package (even though this would also be a flagrant violation of the GPL3) or using it in a pre-built [[Emulation Boxes|emulation box]] without their explicit permission, or because they simply haven't considered the possibility of any more legitimate commercial use cases for their projects. Or sometimes they do it out of caution that the original hardware manufacturers could take them to court. This is despite the fact that [[#Legality of emulation|their only grounds to stand on is whether the underlying technology behind a console is patented]].


Whatever reason the dev gives for a non-commercial clause in the software license, it ''should'' be of no consequence to the average end user who's just running a free emulator on their PC for their own use. Some specific circumstances, such as a developer who's making a brand new commercial game for an old system and using an emulator to test it in lieu of real hardware, ''might'' be exceptions to this, but that's where it admittedly gets pretty murky from a legal standpoint.
Whatever reason the dev gives for a non-commercial clause in the software license, it ''should'' be of no consequence to the average end user who's just running a free emulator on their PC for their own use. Some specific circumstances, such as a developer who's making a brand new commercial game for an old system and using an emulator to test it in lieu of real hardware, ''might'' be exceptions to this, but that's where it gets pretty murky from a legal standpoint.


==CLA (Contributor License Agreement)==
==CLA (Contributor License Agreement)==