Alexandre Oliva <lxoliva@fsfla.org>
The Free Software Definition is the main reference as to the meaning of the term Free Software. Nevertheless, there are a number of doubts and misconceptions regarding the meaning of this term, that this article will attempt to clarify, by presenting the definition from a different perspective.
http://www.fsf.org/licensing/essays/free-sw.html
A user will say that Software is Free for her if it is possible for her, without unreasonable difficulties or risks of unreasonable penalties, to exercise all of the Four Freedoms: running the software for any purpose, studying it, adapting it, and distributing it, with or without modifications.
If she's completely forbidden from performing any of these tasks with regard to a particular piece of software, that piece of software is not Free Software for her. If the tasks can be performed in spite of prohibitions, but she considers the potential retaliation for performing them too risky, then she is effectively not Free with regard to that piece of software, so that piece of software is not Free Software for her.
What precise mechanism is used to stop her does not matter too much, as far as this definition is concerned. It could be technical measures, laws, court orders, agreements she accepted; any kind of obligation to do or not to do, that denies her any of the Four Freedoms.
The most important factor is whether the restrictions to the enjoyment of the freedoms cannot be reasonably escaped, and whether the party who establishes the restrictions is perceived by the user as willing to enforce them, with penalties that the user deems so hefty that she cannot reasonably enjoy the freedoms.
How to tell whether Software is Free?
In general, a user can't tell whether a piece of software is Free Software for her just by looking at it. Whether it is Free or not depends on the context.
Most Software is born Free. The moment its author writes it down, he is most likely entitled to run the software, study it, adapt it and distribute it. In this case, the Software is Free for all its users: the author alone. The fact that he decides not to distribute it does not make the Software non-Free. As long as all users can exercise the Four Freedoms, the Software is Free for all its users.
Now, if the author decides to distribute it subject to conditions that forbid the exercise of any of the Four Freedoms, then the recipients will find the Software to be non-Free for them. The author may even vary the conditions, such that the Software is Free for some users but not for others. Sometimes, even if the author wishes to respect users' freedoms, other parties might get in the way.
So, whether a piece of Software is Free or not depends not on the software itself, but on whether the user feels she's entitled to enjoy the freedoms, without unreasonable fear of punishment for doing so.
What can stop a user from enjoying the Four Freedoms?
Unfortunately, there are many known threats to a user's freedoms, and there may be others in the future.
Technical measures
One of the most obvious ones is receiving a program without the corresponding source code. If the user can't get to it, then enjoying the freedoms to study the program and to adapt it may be outright impossible, or unreasonably difficult. Similar effects are achieved by obfuscating source code, or by distributing source code in obscure formats or languages, that require specialized tools not easily available to the user to enable understanding and modifying the program.
Other technical measures can be designed to stop users from enjoying their freedoms, thus rendering the Software non-Free for such users. For example, if there are misfeatures in the software itself designed to prevent execution or to disable features in case the software is modified, and such misfeatures are unreasonably difficult to remove or disable, this renders the Software non-Free.
If hardware, firmware or system software prevent the installation or execution of modified software on a specific computer (e.g., checking for digital signatures that the user is unable to generate), freedom to modify and run the software for any purpose is denied, while the vendor (or whoever else can generate the signatures) keeps this freedom to itself. This effectively prevents the user from running the modified software for other purposes on that piece of hardware, so the user loses some freedom. This restriction on the freedom to run the software does not render the Software non-Free, since the restriction is relatively narrow: it does not prevent execution of modified versions of the program on other computers. But this technique prevents the modification of the Free Software installed on the computer, and this is what renders that copy of the Software non-Free for the user, while it remains Free for the vendor.
Copyrights
Copyright law requires users to obtain explicit permission from copyright holders to (depending on the jurisdiction) run, modify, copy and distribute the software covered by the holders' copyrights. Such permissions are granted through copyright licenses. In the absence of such permissions, the author reserves the legal power to stop users from exercising most of the Four Freedoms, but it's not copyright itself that renders the Software non-Free: it's a user's agreement to licensing terms that prohibit her from enjoying her freedoms that does.
If she rejects the software under these conditions, the question on whether the Software is Free becomes irrelevant, since she doesn't get the software in the first place. Now, if she receives the software, but (implicitly or explicitly) accepts the restrictive license, and proceeds to perform unauthorized tasks, the copyright holders may enforce their copyrights. Eventually, she may be legally forced to face penalties, to lose the freedoms over the software, and even other individual freedoms. The commitment to abide by the license took her freedoms away.
Agreements
A Non-Disclosure Agreement (NDA) accepted by a user may stop her from sharing the software, if doing so would violate the NDA. If an NDA covers a piece of Software, then the user is no longer Free with regards to that Software. For purposes of evaluating the user's freedom, it does not matter whether the NDA involves the party that distributed the software, whether it was a condition for receiving the software, whether it was accepted before or after receiving the software. Some of these details might trigger exceptions in the NDA, or indicate that the distribution under the NDA does not comply with other agreements or licenses (say a copyright license), but while the NDA forbids the user from sharing the software, the Software is not Free for that user.
End User License Agreements (EULAs), and any other contracts that impose significant obligations in return for the enjoyment of freedoms render the Software non-Free for users who accept such contracts. Significant obligations often involve third parties (e.g., payment of a fee, registration, etc), which imply such third parties could get in the way of the enjoyment of the freedoms. If enjoying a freedom requires cooperation from a third party, or an unreasonable amount of effort by the user, then the Software is not truly Free.
Patents
Patent law requires users to obtain explicit permission from patent holders to (depending on the jurisdiction) run, modify and distribute software covered by their patents in the jurisdiction where the patent is valid. Such permissions are sometimes offered through patent licenses, but far more often patent holders simply do not stop others from enjoying the freedoms on covered software.
Unlike copyright, whose infringement necessarily involves intentional (even if not malicious) disrespect to a prior agreement (even if indirect and implied) between the copyright holder and a licensee, patent infringement is quite often accidental: you don't need to have had contact with a patent, or even know about it, to infringe it.
Patent holders often just don't know that a particular piece of software is covered by their patents. Sometimes, they just aren't sure about it, and end up deciding not to pursue it. Then, the Software remains Free, even if there's still a risk that they change their minds.
At other times, they gamble with others' fears and, even in the absence of actual infringement, convince a software user or distributor to accept a restrictive license that prohibits the user or distributor from enjoying one or more of the freedoms with regard to one or more pieces of software. With the acceptance of the restrictive license, the covered Software ceases to be Free for that user or distributor.
Sometimes, Software may become non-Free because several parties work together against the user's freedoms. For example, Bully Inc, a patent holder, may offer a license to Middleman & Co, such that Middleman can sub-license the patent, subject to the condition that recipients of the license are not allowed to further sub-license or distribute programs that practice the patent. Coward LLC, a software distributor, wants to offer its customers some legal protection from patent litigation by Bully. So it enters a licensing agreement with Middleman, such that its customers can use the Free Software it distributes without fear from Bully. But there's a catch: per the agreement, Coward's customers must not distribute the software, so Coward distributes the software under this provision. Middleman couldn't offer Coward or its customers more than that, because of its agreement with Bully. Therefore, for Coward's customers, the Software is non-Free, even though, for Coward itself, it was Free Software.
Fees
Charging fees for licenses, copies or users means the software is available under terms that disrespect the user's freedom to distribute the software, and/or the recipient's freedom to run it. If having a licensed copy of the software is not enough of a permission to distribute the software to third parties in such a way that they, without any further action, also receive a license that respects the Four Freedoms, then the Software is non-Free.
What does NOT stop a user from enjoying the Four Freedoms?
There are many situations that can arise that may appear to be obstacles to the full enjoyment of freedoms, but that aren't impediments, or are narrow enough to be regarded as insignificant.
Fees
Charging for services such as distributing the Software is not an impediment to the exercise of the freedoms. Access to the Software is needed before one can reasonably expect to be able to exercise the freedoms on it. Nobody is forced to share Free Software; such sharing is voluntary, and if someone wants to charge for this service, there's nothing wrong with it, it doesn't render the Software non-Free. But charging such fees for the performance of this service by downstream users would render the Software non-Free.
Narrow permissions
Refraining from offering permission to enjoy the freedoms in certain cases most often renders the Software non-Free. However, if some narrow cases are not permitted, while there's still room for broad ways in which to enjoy the freedoms, the Software may remain Free.
Copyleft
For example, copyleft is a technique that uses copyright law to tell licensees that, should they decide to share the program with third parties, modified or not, they must use the same licensing terms, that grant recipients the same freedoms, under the same copyleft conditions. Since copyleft does not force anyone to share the program, it does not impose obligations. Since it doesn't forbid anyone from sharing the program, it does not fail to respect any freedom, so the Software remains Free. The constraint established by copyleft licenses, such as the GNU GPL, merely establishes a condition that all redistributors and authors of modifications can trivially comply with. If the user were already entitled to share a program, in a way not permitted by the copyleft license, before agreeing with it, she can still share the program that way after agreeing with the license. If the license established prohibitions, rather than narrowly-conditioned permissions, this would render the covered Software non-Free.
Trademarks
Constraints pertaining to trademarks or other names, such as requiring modified programs to be renamed, marks and logos to be replaced or removed, most often are trivial enough that they don't unreasonably limit the enjoyment of the Four Freedoms, so the Software remains Free. However, if removal of the marks is too difficult, or if mere removal is easy but it renders the program non-functional, demanding a difficult replacement instead, then these requirements effectively render the Software non-Free.
Modification requirements
Constraints to modifications on the software, such as retaining copyright notices, verbatim copies of applicable licenses and warranty disclaimers, pose no obstacle whatsoever to modifying the software such that it performs any technical job, so such Software remains Free. Likewise, other requirements, such as mentioning or refraining from mentioning certain authors or copyright holders in any programs or material about programs containing their program or modified versions thereof, or maintaining features functional that enable remote users of a program to obtain the corresponding source code, may turn out to be a bit inconvenient, but they don't prohibit or unreasonably burden the enjoyment of the Four Freedoms, so software subject to such conditions doesn't cease to be Free Software. On the other hand, prohibiting modification of the software, such that it cannot be made to perform a certain technical job, renders the Software non-Free.
Patents
The existence of patents that cover a piece of Software doesn't render Software non-Free. Just like copyrights, it's the acceptance of licensing terms that prohibit the enjoyment of the Four Freedoms that does. Even if a user is sued and convicted for patent infringement in a piece of Software, the Software is still Free for that user, even if enjoying that freedom might require moving to a jurisdiction where the patent does not apply.
Laws
Other laws can sometimes present an obstacle to the enjoyment of the freedoms, even when they don't render the Software non-Free. For example, if laws in a jurisdiction determine that the use of a certain kind of program is forbidden, then users in that jurisdiction may be forced to stop using the program within that jurisdiction, but since they could still use it elsewhere, the Software is not rendered non-Free.
If laws in a jurisdiction (say USA) forbid the distribution of a program to certain countries (say Cuba), then users of that program in that jurisdiction may be stopped from sharing the program with people in these countries, but this does not render the Software non-Free. They can still share the program with many people in the same country, and they may very well still be allowed to take the program with them and then, outside the scope of the prohibition (say in Brazil), share the program with anyone. However, if the user accepts a license contract that states she can't share the covered software with people in a certain country, then the Software becomes non-Free.
Other laws may prohibit modification of Software in certain ways. For example, software in medical devices or radio transmitters may be highly regulated by law, but such law doesn't render the Software non-Free. Laws that prohibit modification of software so as to disable DRM (Digital Restrictions Mangement) misfeatures may provide grounds for copyright holders of works controlled by such DRM misfeatures to successfully sue users that create or use modified versions of the software without DRM. This still does not render the Software non-Free. The law only applies within its jurisdiction, and there is always a chance it can be lifted, found unenforceable or changed for better. However, if a license is accepted that imposes such restrictions, this overrides any possibility of lifting of the constraint imposed in the law, so this renders the Software non-Free.
Summary
As a general rule, if there is a reasonable way the user can enjoy every one of the Four Freedoms, in spite of potential constraints imposed by law, the Software remains Free. However, as soon as she accepts constraints not present in law, or she accepts constraints established by law in such a way that they would apply to her in spite of changes in the law, or in other jurisdictions where the law didn't apply, then she's made a commitment to give up that freedom, so the Software becomes non-Free for her.
Summing it up
Software is Free for a user when she can run the software for any purpose, study it, adapt it and distribute it without having to ask for permission from anyone else, and if there are ways she can do that without unreasonable risk of penalties for breaking laws or agreements she may have accepted.
A user who wants to make sure she is Free with regards to all software she uses must not only make sure she has source code and any other software needed to run or build it, but also that copyright holders, patent holders, the law and any other parties in agreements or licenses she did or will accept can't or won't stop her from enjoying the freedoms in a reasonable and convenient way, or the risks of penalty for doing so appear to be acceptable.
A distributor who wishes to have users' freedoms respected must not only refrain from disrespecting users' freedoms himself and meeting the criteria for users above, but also make sure he can and will pass on to downstream recipients of the software everything he demanded for himself (e.g., that he won't enter any agreement with a third party that would put himself at an advantage over downstream recipients), and that he won't ever enter any agreement with a third party by which the third party would get to disrespect the freedoms of downstream recipients of the software.
Copyright 2007 Alexandre Oliva
All rights reserved for now, because this is still an early draft. Please don't publish the URL or quote this article before its final publication.
Permission is NOT YET granted to make and distribute verbatim copies of this entire document without royalty provided the copyright notice, the document's official URL, and this permission notice are preserved.
Last update: 2007-07-06 (Rev 1769)