What is Free Software?

“Free software” means software that respects users'freedom and community. Roughly, it means thatthe users have thefreedom to run, copy, distribute, study, change and improve thesoftware. Thus, “free software” is a matter ofliberty, not price. To understand the concept, you should think of“free” as in “free speech,” not as in“free beer.” We sometimes call it “libresoftware,” borrowing the French or Spanish word for“free” as in freedom, to show we do not mean the softwareis gratis.

You may have paid money to get copies of a free program, or you mayhave obtained copies at no charge. But regardless of how you got yourcopies, you always have the freedom to copy and change the software,even tosell copies.

We campaign for these freedoms because everyone deserves them. Withthese freedoms, the users (both individually and collectively) controlthe program and what it does for them. When users don't control theprogram, we call it a “nonfree” or“proprietary” program. The nonfree program controls theusers, and the developer controls the program; this makes theprograman instrument of unjust power.

“Open source” is something different: it has a verydifferent philosophy based on different values. Its practicaldefinition is different too, but nearly all open source programs arein fact free. We explain thedifference inWhy “Open Source” misses the point of Free Software.

The Free Software Definition

The free software definition presents the criteria for whether aparticular software program qualifies as free software. From time totime we revise this definition, to clarify it or to resolve questionsabout subtle issues. See theHistory sectionbelow for a list of changes that affect the definition of freesoftware.

The four essential freedoms

A program is free software if the program's users have thefour essential freedoms:[1]

  • The freedom to run the program as you wish,for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so itdoes your computing as you wish (freedom 1). Access to the sourcecode is a precondition for this.
  • The freedom to redistribute copies so you can help others(freedom 2).
  • The freedom to distribute copies of your modified versionsto others (freedom 3). By doing this you can give the wholecommunity a chance to benefit from your changes.Access to the source code is a precondition for this.

A program is free software if it gives users adequately all of thesefreedoms. Otherwise, it is nonfree. While we can distinguish variousnonfree distribution schemes in terms of how far they fall short ofbeing free, we consider them all equally unethical.

In any given scenario, these freedoms must apply to whatever codewe plan to make use of, or lead others to make use of. For instance,consider a program A which automatically launches a program B tohandle some cases. If we plan to distribute A as it stands, thatimplies users will need B, so we need to judge whether both A and Bare free. However, if we plan to modify A so that it doesn't use B,only A needs to be free; B is not pertinent to that plan.

Free softwarecanbe commercial

“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 isof fundamental importance—without this, free software could notachieve its aims.

We want to invite everyone to use the GNU system, including businessesand their workers. That requires allowing commercial use. We hopethat free replacement programs will supplant comparable proprietaryprograms, but they can't do that if businesses are forbidden to usethem. We want commercial products that contain software to includethe GNU system, and that would constitute commercial distribution fora price. Commercial development of free software is no longerunusual; such free commercial software is very important. Paid,professional support for free software fills an important need.

Thus, to exclude commercial use, commercial development or commercialdistribution would hobble the free software community and obstruct itspath to success. We must conclude that a program licensed with suchrestrictions does not qualify as free software.

A free program must offer the four freedoms to any would-be user thatobtains a copy of the software, who has complied thus far with theconditions of the free license covering the software in any previousdistribution of it. Putting some of the freedoms off limits to someusers, or requiring that users pay, in money or in kind, to exercisethem, is tantamount to not granting the freedoms in question, and thusrenders the program nonfree.

Clarifying the Boundary Between Free and Nonfree

In the rest of this article we explain more precisely how far thevarious freedoms need to extend, on various issues, in order for aprogram to be free.

The freedom to run the program as you wish

The freedom to run the program means the freedom for any kind of personor organization to use it on any kind of computer system, for any kind ofoverall job and purpose, without being required to communicate about itwith the developer or any other specific entity. In this freedom, it istheuser'spurpose that matters, not thedeveloper'spurpose; you as a user are free to run the program for your purposes,and if you distribute it to other people, they are then free to run it fortheir purposes, but you are not entitled to impose your purposes on them.

The freedom to run the program as you wish means that you are notforbidden or stopped from making it run. This has nothing to do with whatfunctionality the program has, whether it is technically capable offunctioning in any given environment, or whether it is useful for anyparticular computing activity.

For example, if the code arbitrarily rejects certain meaningfulinputs—or even fails unconditionally—that may make theprogram less useful, perhaps even totally useless, but it does notdeny users the freedom to run the program, so it does not conflictwith freedom 0. If the program is free, the users can overcome theloss of usefulness, because freedoms 1 and 3 permit users andcommunities to make and distribute modified versions without thearbitrary nuisance code.

“As you wish” includes, optionally, “not atall” if that is what you wish. So there is no need for aseparate “freedom not to run a program.”

The freedom to study the source code and make changes

In order for freedoms 1 and 3 (the freedom to make changes and thefreedom to publish the changed versions) to be meaningful, you need to haveaccess to the source code of the program. Therefore, accessibility ofsource code is a necessary condition for free software. Obfuscated“source code” is not real source code and does not countas source code.

Source code is defined as the preferred form of the program for makingchanges in. Thus, whatever form a developer changes to developthe program is the source code of that developer's version.

Freedom 1 includes the freedom to use your changed version in place ofthe original. If the program is delivered in a product designed torun someone else's modified versions but refuse to run yours—apractice known as “tivoization” or “lockdown,”or (in its practitioners' perverse terminology) as “secureboot”—freedom 1 becomes an empty pretense rather than apractical reality. These binaries are not freesoftware even if the source code they are compiled from is free.

One important way to modify a program is by merging in available freesubroutines and modules. If the program's license says that youcannot merge in a suitably licensed existing module—for instance, if itrequires you to be the copyright holder of any code you add—then thelicense is too restrictive to qualify as free.

Whether a change constitutes an improvement is a subjective matter.If your right to modify a program is limited, in substance, to changes thatsomeone else considers an improvement, that program is not free.

One special case of freedom 1 is to delete the program's code so itreturns after doing nothing, or make it invoke some other program.Thus, freedom 1 includes the “freedom to delete the program.”

The freedom to redistribute if you wish: basicrequirements

Freedom to distribute (freedoms 2 and 3) means you are free toredistribute copies, either with or without modifications, eithergratis or charging a fee for distribution, toanyone anywhere. Being free to do thesethings means (among other things) that you do not have to ask or payfor permission to do so.

You should also have the freedom to make modifications and use themprivately in your own work or play, without even mentioning that theyexist. If you do publish your changes, you should not be required tonotify anyone in particular, or in any particular way.

Freedom 3 includes the freedom to release your modified versionsas free software. A free license may also permit other ways ofreleasing them; in other words, it does not have to beacopyleftlicense. However, alicense that requires modified versions to be nonfree does not qualifyas a free license.

The freedom to redistribute copies must include binary or executableforms of the program, as well as source code, for both modified andunmodified versions. (Distributing programs in runnable form is necessaryfor conveniently installable free operating systems.) It is OK if thereis no way to produce a binary or executable form for a certain program(since some languages don't support that feature), but you must have thefreedom to redistribute such forms should you find or develop a way tomake them.

Copyleft

Certain kinds of rules about the manner of distributing freesoftware are acceptable, when they don't conflict with the centralfreedoms. For example,copyleft(very simply stated) is the rule that when redistributing the program,you cannot add restrictions to deny other people the central freedoms.This rule does not conflict with the central freedoms; rather itprotects them.

In the GNU project, we use copyleft to protect the four freedomslegally for everyone. We believe there are important reasons whyit is better to usecopyleft. However,noncopylefted free softwareis ethicaltoo. SeeCategories of FreeSoftwarefor a description of how “free software,”“copylefted software” and other categories of softwarerelate to each other.

Rules about packaging and distribution details

Rules about how to package a modified version are acceptable,if they don't substantively limit your freedom to release modifiedversions, or your freedom to make and use modified versions privately.Thus, it is acceptable for the license to require that you change thename of the modified version, remove a logo, or identify yourmodifications as yours. As long as these requirements are not soburdensome that they effectively hamper you from releasing yourchanges, they are acceptable; you're already making other changes tothe program, so you won't have trouble making a few more.

Rules that “if you make your version available in this way, youmust make it available in that way also” can be acceptable too,on the same condition. An example of such an acceptable rule is onesaying that if you have distributed amodified version and a previous developer asks for a copy of it, youmust send one. (Note that such a rule still leaves you the choice ofwhether to distribute your version at all.) Rules that require releaseof source code to the users for versions that you put into public useare also acceptable.

A special issue arises when a license requires changing the name bywhich the program will be invoked from other programs. Thateffectively hampers you from releasing your changed version so that itcan replace the original when invoked by those other programs. Thissort of requirement is acceptable only if there's a suitable aliasingfacility that allows you to specify the original program's name as analias for the modified version.

Export regulations

Sometimes government export control regulationsand trade sanctions can constrain your freedom to distribute copies ofprograms internationally. Software developers do not have the power toeliminate or override these restrictions, but what they can and must dois refuse to impose them as conditions of use of the program. In thisway, the restrictions will not affect activities and people outside thejurisdictions of these governments. Thus, free software licensesmust not require obedience to any nontrivial export regulations as acondition of exercising any of the essential freedoms.

Merely mentioning the existence of export regulations, without makingthem a condition of the license itself, is acceptable since it doesnot restrict users. If an export regulation is actually trivial forfree software, then requiring it as a condition is not an actualproblem; however, it is a potential problem, since a later change inexport law could make the requirement nontrivial and thus render thesoftware nonfree.

In order for these freedoms to be real, they must be permanent andirrevocable as long as you do nothing wrong; if the developer of thesoftware has the power to revoke the license, or retroactively addrestrictions to its terms, without your doing anything wrong to givecause, the software is not free.

A free license may not require compliance with the license of anonfree program. Thus, for instance, if a license requires you tocomply with the licenses of “all the programs you use,” inthe case of a user that runs nonfree programs this would requirecompliance with the licenses of those nonfree programs; that makes thelicense nonfree.

It is acceptable for a free license to specify which jurisdiction'slaw applies, or where litigation must be done, or both.

Contract-based licenses

Most free software licenses are based on copyright, and there are limitson what kinds of requirements can be imposed through copyright. If acopyright-based license respects freedom in the ways described above, itis unlikely to have some other sort of problem that we never anticipated(though this does happen occasionally). However, some free softwarelicenses are based on contracts, and contracts can impose a much largerrange of possible restrictions. That means there are many possible wayssuch a license could be unacceptably restrictive and nonfree.

We can't possibly list all the ways that might happen. If acontract-based license restricts the user in an unusual way thatcopyright-based licenses cannot, and which isn't mentioned here aslegitimate, we will have to think about it, and we will probably concludeit is nonfree.

The Free Software Definition in Practice

How we interpret these criteria

Note that criteria such as those stated in this free softwaredefinition require careful thought for their interpretation. To decidewhether a specific software license qualifies as a free software license,we judge it based on these criteria to determine whether it fits theirspirit as well as the precise words. If a license includes unconscionablerestrictions, we reject it, even if we did not anticipate the issuein these criteria. Sometimes a license requirement raises an issuethat calls for extensive thought, including discussions with a lawyer,before we can decide if the requirement is acceptable. When we reacha conclusion about a new issue, we often update these criteria to makeit easier to see why certain licenses do or don't qualify.

Get help with free licenses

If you are interested in whether a specific license qualifies as a freesoftware license, see ourlistof licenses. If the license you are concerned with is notlisted there, you can ask us about it by sending us email at<licensing@gnu.org>.

If you are contemplating writing a new license, please contact theFree Software Foundation first by writing to that address. Theproliferation of different free software licenses means increased workfor users in understanding the licenses; we may be able to help youfind an existing free software license that meets your needs.

If that isn't possible, if you really need a new license, with ourhelp you can ensure that the license really is a free software licenseand avoid various practical problems.

Use the right words when talking about free software

When talking about free software, it is best to avoid using termslike “give away” or “for free,” because those terms imply thatthe issue is about price, not freedom. Some common terms suchas “piracy” embody opinions we hope you won't endorse. SeeConfusing Words and Phrases thatare Worth Avoidingfor a discussion of these terms. We also havea list of propertranslations of“free software”into various languages.

Another group uses the term “open source” to meansomething close (but not identical) to “free software.” Weprefer the term “free software” because, once you have heard thatit refers to freedom rather than price, it calls to mind freedom. Theword “open” never refers to freedom.

Beyond Software

Software manuals must be free,for the same reasons that software must be free, and because themanuals are in effect part of the software.

The same arguments also make sense for other kinds of works ofpractical use—that is to say, works that embody useful knowledge,such as educational works and referenceworks.Wikipediais the best-knownexample.

Any kind of workcanbe free, and the definition of free softwarehas been extended to a definition offree cultural worksapplicable to any kind of works.

History

From time to time we revise this Free Software Definition. Here isthe list of substantive changes, along with links to show exactly whatwas changed.

  • Version1.169: Explain more clearly why the four freedoms must applyto commercial activity. Explain why the four freedoms imply thefreedom not to run the program and the freedom to delete it, so thereis no need to state those as separate requirements.
  • Version1.165: Clarify that arbitrary annoyances in the code do notnegate freedom 0, and that freedoms 1 and 3 enable users to remove them.
  • Version1.153: Clarify that freedom to run the program means nothing stopsyou from making it run.
  • Version1.141: Clarify which code needs to be free.
  • Version1.135: Say each time that freedom 0 is the freedom to run the programas you wish.
  • Version1.134: Freedom 0 is not a matter of the program's functionality.
  • Version1.131: A free license may not require compliance with a nonfree licenseof another program.
  • Version1.129: State explicitly that choice of law and choice of forumspecifications are allowed. (This was always our policy.)
  • Version1.122: An export control requirement is a real problem if therequirement is nontrivial; otherwise it is only a potential problem.
  • Version1.118: Clarification: the issue is limits on your right to modify,not on what modifications you have made. And modifications are not limitedto “improvements”
  • Version1.111: Clarify 1.77 by saying that onlyretroactiverestrictionsare unacceptable. The copyrightholders can always grant additionalpermissionfor use of thework by releasing the work in another way in parallel.
  • Version1.105: Reflect, in the brief statement of freedom 1, the point(already stated in version 1.80) that it includes really using your modifiedversion for your computing.
  • Version1.92: Clarify that obfuscated code does not qualify as source code.
  • Version1.90: Clarify that freedom 3 means the right to distribute copiesof your own modified or improved version, not a right to participatein someone else's development project.
  • Version1.89: Freedom 3 includes the right to release modified versions asfree software.
  • Version1.80: Freedom 1 must be practical, not just theoretical;i.e., no tivoization.
  • Version1.77: Clarify that all retroactive changes to the license areunacceptable, even if it's not described as a completereplacement.
  • Version1.74: Four clarifications of points not explicit enough, or statedin some places but not reflected everywhere:
    • “Improvements” does not mean the license cansubstantively limit what kinds of modified versions you can release.Freedom 3 includes distributing modified versions, not just changes.
    • The right to merge in existing modulesrefers to those that are suitably licensed.
    • Explicitly state the conclusion of the point about export controls.
    • Imposing a license change constitutes revoking the old license.
  • Version1.57: Add “Beyond Software” section.
  • Version1.46: Clarify whose purpose is significant in the freedom to runthe program for any purpose.
  • Version1.41: Clarify wording about contract-based licenses.
  • Version1.40: Explain that a free license must allow to you use otheravailable free software to create your modifications.
  • Version1.39: Note that it is acceptable for a license to require you toprovide source for versions of the software you put into publicuse.
  • Version1.31: Note that it is acceptable for a license to require you toidentify yourself as the author of modifications. Other minorclarifications throughout the text.
  • Version1.23: Address potential problems related to contract-basedlicenses.
  • Version1.16: Explain why distribution of binaries is important.
  • Version1.11: Note that a free license may require you to send a copy ofversions you distribute to previous developers on request.

There are gaps in the version numbers shown above because there areother changes in this page that do not affect the definition or itsinterpretations. For instance, the list does not include changes inasides, formatting, spelling, punctuation, or other parts of the page.You can review the complete list of changes to the page throughthecvswebinterface.

Footnote

  1. The reason they are numbered 0, 1, 2 and 3 is historical. Around1990 there were three freedoms, numbered 1, 2 and 3. Then we realized thatthe freedom to run the program needed to be mentioned explicitly.It was clearly more basic than the other three, so it properly shouldprecede them. Rather than renumber the others, we made it freedom 0.