Changes

Jump to navigation Jump to search

Licensing

1,978 bytes added, 18:49, 29 June 2022
Open-core software
The third clause (about advertising) ended up being controversial and was left out of newer licenses, resulting in the familiar three-clause BSD license. FreeBSD and NetBSD removed the fourth clause as basically no one violated that clause, and OpenBSD used a version of the license that details the first two clauses in one paragraph instead of listing them in asterisked bullets. The fact that the licenses are so permissive allowed Sony and Nintendo to use FreeBSD in the PS3, the PS4, and the Switch without having to share the source code.
The conditions in the BSD license are easy to modify, which makes it an attractive target for those wanting to include the prohibition of commercial use (see [[#Non-commercial licensessoftware]] below). [https://github.com/mamedev/historic-mame/blob/master/docs/license.txt The old MAME license] (and by extension [https://github.com/barry65536/FBAlpha/blob/master/src/license.txt FinalBurn Alpha] and [https://github.com/finalburnneo/FBNeo/blob/master/src/license.txt FinalBurn Neo]) is based off of (or was heavily influenced by) this license, which ended up causing a ton of problems in recent times, notably when a libretro port of MAME tried to backport GPL code into old-licensed code, and when the Capcom Home Arcade [[Emulation Boxes|emulation box]] was said to use FinalBurn Alpha ahead of its release (despite its creators not getting permission from all of FBA's developers).
===Apache===
* It's not as strict as the GPL because it doesn't grant trademark use.
==Source-available software==This is a term typically used to refer to software which doesn't strictly count as FLOSS, even though the source code is readily available to the public. Two of the most common subcategories are: ===Non-commercial licensessoftware===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.:
<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>
NonDespite this, non-commercial licenses have long been seen as a desirable or even essential option for by some 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 manufacturer could take them to court. This is , despite the fact that [[#Legality of emulation|their the manufacturer's 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 gets pretty murky from a legal standpoint.
 
However, ''developers'' of emulators must take extra precaution when working with code from a non-commercial emulator. As it is by definition not free software, the code is incompatible with the GPL, and the developer must take care not to mix GPL and non-commercial code. One example where this becomes relevant is with forks of old versions of MAME prior to its re-licensing to open-source. These forks can incorporate BSD code from the newest MAME versions, but are forbidden from including GPL MAME code. It has also been argued by some that RetroArch's ability to auto-download non-commercial cores is a license violation, as RetroArch is GPL-licensed and makes profit via Patreon.
 
===Open-core software===
Sometimes developers choose not to release the entire source code for their projects, and instead only allow public access to ''some'' of the source code while keeping ''other'' parts closed-source. Usually, the core functionality of the program is what becomes source-available while certain bells and whistles remain proprietary, hence the term "open core". This model is pretty rare for emulation software; one notable example in the broader software world is seen with [https://about.gitlab.com/ the GitLab project], where the GitLab developers offer a paid Enterprise Edition with some additional business-focused features compared to the freely available core code in the Community Edition.
 
While there's some debate as to whether the stripped-down, fully source-available versions of these programs could count as FLOSS, the model as a whole is undoubtedly not fully in keeping with the ideals of the open-source movement, and it's often considered a compromise model that allows outside contributions and/or code reuse while still making it viable to sell the software for profit.
==CLA (Contributor License Agreement)==
Anonymous user

Navigation menu