This free software definition gives the criteria concerning whether a distinct software program qualifies as free software. From time to time we update this definition, to refine it or to solve issues about complex issues. See the History section here for a list of modifications that modify the definition of free software.
“Free software” implies software that recognizes users’ freedom plus community. Approximately, it suggests that the users have the right to run, copy, distribute, research, develop and improve the software. Therefore, “free software” is a concern of liberty, not cost. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer.” We sometimes call it “libre software,” regarding the French or Spanish term concerning “free” as in freedom, to display we do not suggest the software is free.
We lobby for these rights because everyone deserves them. Among individual rights, those users (both separately and collectively) control the program and what it does for them. When users don’t manage each program, we call it a “nonfree” or “exclusive” program. The nonfree program controls the users, and the developer controls the program; this makes the program an instrument of unjust power.
The four essential freedoms
A program is any free software if that program’s users hold the four necessary licenses:
The license to administer the program as you want, for any goal (freedom 0).
The freedom to investigate how the program runs, and develop it, so it makes your computing as you need (freedom 1). Introduction to the source code is a precondition concerning this.
The freedom to redistribute examples so you can improve your neighbor (freedom 2).
This freedom to share copies of modified versions to others (freedom 3). By doing this, you can give the whole community a chance to benefit from your changes. Entrance to the source code is a precondition for that.
A program is a free software if it gives users adequately all of these freedoms. Except it is nonfree. While we may distinguish various nonfree distribution schemes regarding how they fall short of being free, we recognize them all uniformly unethical.
In any scenario, certain freedoms must apply to whatever code we plan to make use of or lead others to take advantage of. For example, examine a program A which automatically begins a program B to manage some cases. If we intend to distribute A as it is, this suggests users will require B, so we want to judge whether both A and B are free. However, if we plan to modify A so that it doesn’t apply B, only A needs to mean free; B is not pertinent to this project.
“Free software” may not mean “noncommercial.” A free program need be ready for commercial usage, profitable improvement, and commercial distribution. The business progress of free software remains no longer unique; so free commercial software is essential. You may have paid cash to get copies of free software, or you may have received copies at no cost. However, regardless of how you acquired your copies, you forever have this freedom to copy and modify the software, indeed to sell copies.
The remainder of this page explains specific points about what makes specific rights adequate or not.
The license to run the application as you wish
The freedom to run the program means the freedom for any person or organization to use it on any computer system, for any overall responsibility plus purpose, without being needed to communicate regarding it with the developer or any other specific entity. In the freedom, that is particular user’s design that represents, not the developer’s intent; you being a user remain free to perform the program for your purposes, plus if you distribute it to someone different, they are later free to run it for their purposes. However, you are not authorized to impose your expectations on them.
The freedom to manage the program as you need suggests that you are not prohibited or prevented from getting it run. That has nothing to do with any functionality this program has, whether this is technically able of running in any circumstances, or whether it is useful for any particular computing activity.
The freedom to study the source code and make changes
For freedoms 1 plus 3 (the freedom to perform modifications and the freedom to publish any modified versions) to be exact, you need access to the source code of the program. Consequently, accessibility of source code is a fundamental condition concerning free software. Confused “source code” is not actual source code plus does not count as source code.
Freedom 1 comprises the freedom to manage your modified version in place of the original. If issued in a product intended to run someone else’s changed versions yet refuse to move you — practice identified as “tivoization” or “lockdown,” or (in its practitioners’ perverse terminology) as “protected boot” — freedom 1 displays an empty pretense rather than a practical reality. These binaries are not free software even if the source code is free.
One significant way to alter a program is by mixing in available free subroutines including modules. If this program’s license says that you cannot combine in a suitably authorized existing module — for example, if it needs you to be the copyright owner of any code you add — then this license is too limiting to pass as free.
Whether a modification constitutes an enhancement is a subjective thing. If your freedom to modify a program is limited, in substance, to the evolution that someone else considers an increase, this application isn’t free.
This freedom to redistribute if you need: fundamental requirements
Freedom to share (freedoms 2 and 3) implies you are free to redistribute copies unless with or without changes, either free or imposing a fee for distribution, to anyone wherever. Suggesting free to do certain things means (amongst other actions) that you do not pay a license.
You should additionally have the freedom to create modifications plus use them privately in your work or entertainment, without even declaring that they exist. If you do publish any change, you should not be required to notify anyone in particular, or in any precise form.
Freedom 3 incorporates freedom to release your modified versions as free software. A free license may also permit other ways of releasing them; in other words, it does not have to be a copyleft license. However, a permit which requires modified variants to be nonfree does not pass as a free license.
This freedom to redistribute copies need include binary or executable models of the program, as well as source code, concerning both changed plus unmodified variants. (Distributing programs in runnable form is needed for installable free-running systems.) It is OK if there are no means to create a binary or an executable model for an individual program (for some languages don’t support this feature). However, you need have this freedom to redistribute such applications should you obtain or generate a way to get them.
Some kinds of rules about the manner of distributing free software are satisfactory when they don’t conflict with the central freedoms. For example, copyleft (very simply declared) is the rule that if redistributing that program, you cannot add constraints to deny other’s the fundamental freedoms. This rule will not conflict with central freedoms; preferably it protects them.
In the GNU project, we utilize copyleft to protect these four freedoms legally for everyone. We believe there exist significant reasons why it is desirable to use copyleft. However, none-copylefted free software is ethical also. See Categories of Free Software concerning a description of how “free software,” “copylefted software” also different categories of software relate to each other.
Rules regarding packaging plus distribution details
Rules concerning how to package a revised version are admissible if they don’t substantively restrict your freedom to free modified variants or your freedom to create plus use changed versions privately. Therefore, it is satisfactory for the license to need that you change the name of the improved version, lift a logo, or recognize your modifications being yours. As long as these conditions are not so challenging that all dramatically hinder you from releasing your changes, they are acceptable; you’re already producing other revisions to that program so that you won’t have a problem getting a few extra.
Rules that “if you execute your version possible in this way, you need to make it accessible in that way also” can be acceptable too, on the same condition. An instance of such an agreeable rule is one stating that if you have issued a changed version plus previous developer requests for a copy of it, you need grant one. (Note that such a rule nevertheless leaves you the option of whether to distribute your version at all.) Rules which require a release concerning source code to those users for versions which you put for public use are also fair.
A particular issue arises when a license requires changing the name by which the program will remain invoked from other programs. That effectively hampers you from releasing your modified version so that it can replace the original when relied on by these different programs. This kind of condition is fair only if there’s a proper aliasing facility which enables you to stipulate the original program’s title as an alias for the altered version.
Sometimes government export restriction laws plus trade sanctions can force your freedom to share copies of programs globally. Software developers do not possess the power to exclude or disregard those limitations. However, anything they can plus must do is deny to inflict them as stipulations of use of this program. In that way, the restrictions will not affect actions including people outside the jurisdiction of those governments. Therefore, free software licenses need not require compliance with any nontrivial export laws as a condition of exercising any of the essential freedoms.
Merely mentioning the existence of export laws, without executing them a requirement of the license, is fair since it seems not limit users. If an export regulation is trivial concerning free software, then demanding it as a provision is not genuine; but, it is a potential problem because a later change under the export law might make this requirement nontrivial also thus render this software nonfree.
For individual freedoms to be genuine, they need be permanent also irrevocable as long as you arrange nothing illegal; if the developer of that software holds the authority to deny the license, or retroactively add constraints to its terms, without your performing anything wrong to give a reason, the software isn’t free.
A free license might not need compliance with the permit regarding a nonfree program. Therefore, for example, if a permit requires you to comply with these licenses of “all the programs you handle,” while the case of a user who runs nonfree programs that would require compliance with any license of these none-free programs; which makes said license none-free.
It is acceptable for any free license to specify jurisdiction law demands, or where action must take.
Contract based licenses
Majority of free software licenses exist based on copyright, plus there exist limits on what sorts of provisions forced through copyright. If a copyright based license recognizes freedom in the ways described above, it is unlikely to have some other kind of problem that we never anticipated (though this does happen occasionally). However, some free software licenses are based on contracts, and contracts can impose a much larger range of possible restrictions. That means there are many opportunities such a permit might be unacceptably conditional plus nonfree.
We cannot possibly list all these ways which might happen. If a contract based license limits the user in an extraordinary way that copyright based licenses cannot, including which isn’t discussed as legitimate, we will think about it and will decide it is nonfree.
Exercise the right words while talking about free software
When talking about free software, it is best to avoid using terms like “giveaway” or “for free,” as those terms imply that the issue is about price, not freedom. Some common terms before-mentioned as “piracy” embody conclusions we hope you won’t support. See Confusing Words including Phrases which are Worth Avoiding for a consideration of these conditions. We also have a list of proper translations of “free software” into various languages.
How we interpret these criteria
Finally, note that rules such as those stated in this free software definition require careful thought for their interpretation. To decide whether a particular software permit qualifies to be a free software license, we assess it based on certain criteria to determine whether it fits their spirit as well as the precise words. If a permit includes unconscionable restrictions, we reject it, even if we did not anticipate the issue in these criteria. Sometimes a license requirement raises a problem that calls for extensive thought, including discussions with a lawyer before we can decide if the condition is acceptable. When we conclude a new issue, we regularly update certain criteria to make it easier to see why some licenses do or don’t qualify.
Get advice with free licenses
If you are thinking writing a new license, please contact the Free Software Foundation first through writing to that address. Each proliferation of various free software licenses means increased work for users in understanding any licenses; we might be ready to support you find a current free software license which satisfies your needs.
If that isn’t feasible, if you need a new license, with our help you can ensure that the license is a free software license and avoid various practical problems.