Free Penguin Documents - Free Software

We maintain this free software definition to show clearly what must be true about a particular software program for it to be considered free software. Free software is a matter of liberty, not price.
To understand the concept, you should think of free as in free speech, not as in free beer. Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software.
More precisely, it refers to four kinds of freedom, for the users of the software:
- Freedom 1: The freedom to study how the program works, and adapt it to your needs. Access to the source code is a precondition for this.
- Freedom 2: The freedom to redistribute copies so you can help your neighbor.
- Freedom 3: The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.
Access to the source code is a precondition for this.
Thus, you should be free to redistribute copies, either with or without modifications, either gratis or charging a fee for distribution, to anyone anywhere. Being free to do these things means (among other things) that you do not have to ask or pay for permission. You should also have the freedom to make modifications and use them privately in your own work or play, without even mentioning that they exist.
If you do publish your changes, you should not be required to notify anyone in particular, or in any particular way. The freedom to run the program means the freedom for any kind of person or organization to use it on any kind of computer system, for any kind of overall job and purpose, without being required to communicate about it with the developer or any other specific entity.
In this freedom, it is the user's purpose that matters, not the developer's purpose;
you as a user are free to run a program for your purposes, and if you distribute it to someone else, she is then free to run it for her purposes, but you are not entitled to impose your purposes on her. The freedom to redistribute copies must include binary or executable forms of the program, as well as source code, for both modified and unmodified versions.
(Distributing programs in runnable form is necessary for conveniently installable free operating systems).
It is ok if there is 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 the freedom to redistribute such forms should you find or develop a way to make them. In order for the freedoms to make changes, and to publish improved versions, to be meaningful, you must have access to the source code of the program. Therefore, accessibility of source code is a necessary condition for free software. One important way to modify a program is by merging in available free subroutines and modules.
If the program's license says that you cannot merge in an existing module, such as if it requires you to be the copyright holder of any code you add, then the license is too restrictive to qualify as free. In order for these freedoms to be real, they must be irrevocable as long as you do nothing wrong;
if the developer of the software has the power to revoke the license, without your doing anything to give cause, the software is not free. However, certain kinds of rules about the manner of distributing free software are acceptable, when they don't conflict with the central freedoms.
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 it protects them. You may have paid money to get copies of free software, or you may have obtained copies at no charge.
But regardless of how you got your copies, you always have the freedom to copy and change the software, even to sell copies. Free software does not mean non-commercial.
A free program must be available for commercial use, commercial development, and commercial distribution.
Commercial development of free software is no longer unusual;
such free commercial software is very important. Rules about how to package a modified version are acceptable, if they don't substantively block your freedom to release modified versions, or your freedom to make and use modified versions privately.
Rules that if you make your version available in this way, you must make it available in that way also can be acceptable too, on the same condition.
(Note that such a rule still leaves you the choice of whether to publish your version at all).
Rules that require release of source code to the users for versions that you put into public use are also acceptable.
It is also acceptable for the license to require that, if you have distributed a modified version and a previous developer asks for a copy of it, you must send one, or that you identify yourself on your modifications. Sometimes government export control regulations and trade sanctions can constrain your freedom to distribute copies of programs internationally. Software developers do not have the power to eliminate or override these restrictions, but what they can and must do is refuse to impose them as conditions of use of the program.
In this way, the restrictions will not affect activities and people outside the jurisdictions of these governments. Most free software licenses are based on copyright, and there are limits on what kinds of requirements can be imposed through copyright.
If a copyright-based license respects freedom in the ways described above, it is unlikely to have some other sort 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 possible ways such a license could be unacceptably restrictive and non-free. We can't possibly list all the ways that might happen.
If a contract-based license restricts the user in an unusual way that copyright-based licenses cannot, and which isn't mentioned here as legitimate, we will have to think about it, and we will probably conclude it is non-free. When talking about free software, it is best to avoid using terms like give away or for free, because those terms imply that the issue is about price, not freedom. Some common terms such as piracy embody opinions we hope you won't endorse.
See Confusing Words and Phrases that are Worth Avoiding for a discussion of these terms.
We also have a list of translations of free software into various languages. Finally, note that criteria such as those stated in this free software definition require careful thought for their interpretation.
To decide whether a specific software license qualifies as a free software license, we judge it based on these criteria to determine whether it fits their spirit as well as the precise words.
If a license includes unconscionable restrictions, we reject it, even if we did not anticipate the issue in these criteria.
Sometimes a license requirement raises an issue that calls for extensive thought, including discussions with a lawyer, before we can decide if the requirement is acceptable.
When we reach a conclusion about a new issue, we often update these criteria to make it easier to see why certain licenses do or don't qualify. Many people believe that the spirit of the GNU project is that you should not charge money for distributing copies of software, or that you should charge as little as possible — just enough to cover the cost. Actually we encourage people who redistribute free software to charge as much as they wish or can.
If this seems surprising to you, please read on. The word “free” has two legitimate general meanings; it can refer either to freedom or to price. When we speak of “free software”, we're talking about freedom, not price. (Think of “free speech”, not “free beer”.) Specifically, it means that a user is free to run the program, change the program, and redistribute the program with or without changes. Free programs are sometimes distributed gratis, and sometimes for a substantial price.
Often the same program is available in both ways from different places. The program is free regardless of the price, because users have freedom in using it. Non-free programs are usually sold for a high price, but sometimes a store will give you a copy at no charge.
That doesn't make it free software, though. Price or no price, the program is non-free because users don't have freedom. Since free software is not a matter of price, a low price isn't more free, or closer to free.
So if you are redistributing copies of free software, you might as well charge a substantial fee and make some money.
Redistributing free software is a good and legitimate activity;
if you do it, you might as well make a profit from it. Free software is a community project, and everyone who depends on it ought to look for ways to contribute to building the community.
For a distributor, the way to do this is to give a part of the profit to the Free Software Foundation or some other free software development project.
By funding development, you can advance the world of free software. Distributing free software is an opportunity to raise funds for development. Don't waste it! In order to contribute funds, you need to have some extra.
If you charge too low a fee, you won't have anything to spare to support development. People sometimes worry that a high distribution fee will put free software out of range for users who don't have a lot of money.
With proprietary software, a high price does exactly that — but free software is different. The difference is that free software naturally tends to spread around, and there are many ways to get it. Software hoarders try their damnedest to stop you from running a proprietary program without paying the standard price.
If this price is high, that does make it hard for some users to use the program. With free software, users don't have to pay the distribution fee in order to use the software.
They can copy the program from a friend who has a copy, or with the help of a friend who has network access.
Or several users can join together, split the price of one CD-ROM, then each in turn can install the software.
A high CD-ROM price is not a major obstacle when the software is free. Another common concern is for the popularity of free software. People think that a high price for distribution would reduce the number of users, or that a low price is likely to encourage users. This is true for proprietary software — but free software is different.
With so many ways to get copies, the price of distribution service has less effect on popularity. In the long run, how many people use free software is determined mainly by how much free software can do, and how easy it is to use. Many users will continue to use proprietary software if free software can't do all the jobs they want to do.
Thus, if we want to increase the number of users in the long run, we should above all develop more free software. The most direct way to do this is by writing needed free software or manuals yourself.
But if you do distribution rather than writing, the best way you can help is by raising funds for others to write them. The term “selling software” can be confusing too. Strictly speaking, “selling” means trading goods for money.
Selling a copy of a free program is legitimate, and we encourage it. However, when people think of “selling software”, they usually imagine doing it the way most companies do it: making the software proprietary rather than free. So unless you're going to draw distinctions carefully, the way this article does, we suggest it is better to avoid using the term “selling software” and choose some other wording instead.
For example, you could say “distributing free software for a fee”—that is unambiguous. Except for one special situation, the GNU General Public License (GNU GPL) has no requirements about how much you can charge for distributing a copy of free software.
You can charge nothing, a penny, a dollar, or a billion dollars.
It's up to you, and the marketplace, so don't complain to us if nobody wants to pay a billion dollars for a copy. The one exception is in the case where binaries are distributed without the corresponding complete source code.
Those who do this are required by the GNU GPL to provide source code on subsequent request.
Without a limit on the fee for the source code, they would be able set a fee too large for anyone to pay—such as a billion dollars—and thus pretend to release source code while in truth concealing it.
So in this case we have to limit the fee for source, to ensure the user's freedom.
In ordinary situations, however, there is no such justification for limiting distribution fees, so we do not limit them. Sometimes companies whose activities cross the line of what the GNU GPL permits plead for permission, saying that they “won't charge money for the GNU software” or such like.
They don't get anywhere this way.
Free software is about freedom, and enforcing the GPL is defending freedom.
When we defend users' freedom, we are not distracted by side issues such as how much of a distribution fee is charged.
Freedom is the issue, the whole issue, and the only issue. There are general reasons why all computer users should insist on free software.
It gives users the freedom to control their own computers—with proprietary software, the computer does what the software owner wants it to do, not what the software user wants it to do.
Free software also gives users the freedom to cooperate with each other, to lead an upright life.
These reasons apply to schools as they do to everyone. But there are special reasons that apply to schools.
They are the subject of this article. First, free software can save the schools money.
Even in the richest countries, schools are short of money.
Free software gives schools, like other users, the freedom to copy and redistribute the software, so the school system can make copies for all the computers they have.
In poor countries, this can help close the digital divide. This obvious reason, while important, is rather shallow.
And proprietary software developers can eliminate this disadvantage by donating copies to the schools.
(Watch out!—a school that accepts this offer may have to pay for future upgrades.)
So let's look at the deeper reasons. School should teach students ways of life that will benefit society as a whole.
They should promote the use of free software just as they promote recycling.
If schools teach students free software, then the students will use free software after they graduate.
This will help society as a whole escape from being dominated (and gouged) by megacorporations.
Those corporations offer free samples to schools for the same reason tobacco companies distribute free cigarettes: to get children addicted.
They will not give discounts to these students once they grow up and graduate. Free software permits students to learn how software works.
When students reach their teens, some of them want to learn everything there is to know about their computer system and its software.
That is the age when people who will be good programmers should learn it.
To learn to write software well, students need to read a lot of code and write a lot of code.
They need to read and understand real programs that people really use.
They will be intensely curious to read the source code of the programs that they use every day. Proprietary software rejects their thirst for knowledge: it says, “The knowledge you want is a secret—learning is forbidden!” Free software encourages everyone to learn.
The free software community rejects the “priesthood of technology”, which keeps the general public in ignorance of how technology works; we encourage students of any age and situation to read the source code and learn as much as they want to know.
Schools that use free software will enable gifted programming students to advance. The next reason for using free software in schools is on an even deeper level.
We expect schools to teach students basic facts, and useful skills, but that is not their whole job.
The most fundamental mission of schools is to teach people to be good citizens and good neighbors—to cooperate with others who need their help.
In the area of computers, this means teaching them to share software.
Elementary schools, above all, should tell their pupils, “If you bring software to school, you must share it with the other children.”
Of course, the school must practice what it preaches: all the software installed by the school should be available for students to copy, take home, and redistribute further. Teaching the students to use free software, and to participate in the free software community, is a hands-on civics lesson.
It also teaches students the role model of public service rather than that of tycoons.
All levels of school should use free software. In the 50s, 60s, and 70s, it was normal for computer users to have the freedoms provided by free software.
Software was commonly shared by individuals who used computers and by hardware manufacturers who were glad that people were making software that made their hardware useful.
In the 70s and early 80s, the increasing complexity of software applications drove the industry to protect their investments through application of copyright law, and they began using technical measures such as only distributing binary copies to prevent computer users from being able to study and modify the software. In 1983, Richard Stallman launched the GNU project after becoming frustrated with the effects of the change in culture of the computer industry and users.
Software development for the GNU operating system began in January 1984, and the Free Software Foundation (FSF) was founded in October 1985.
He introduced a free software definition and "copyleft", designed to ensure software freedom for all. Free software is a huge international effort, producing software used by individuals, large organizations, and governmental administrations.
Free software has a very high market penetration in server-side Internet applications such as the Apache web server, MySQL database, and PHP scripting language.Completely free computing environments are available as large packages of basic system software such as the many Linux distributions and FreeBSD.
Free software developers have also created free versions of almost all commonly used desktop applications such as web browsers, office productivity suites, and multimedia players.
It is important to note, however, that in many categories, free software for individual workstation or home users has only a fraction of the market share of their proprietary competitors.
Most free software is distributed online without charge, or off-line at the marginal cost of distribution, but this is not required, and people may sell copies for any price. The economic advantages[citation needed] of the free software model have been recognized by large corporations such as IBM, Red Hat, and Sun Microsystems.
Many companies whose core business is not in the IT sector choose free software for their Internet information and sales sites, due to the lower initial capital investment and ability to freely customize the application packages.
Also, some non-software industries are beginning to use techniques similar to those used in free software development for their research and development: scientists, for example, are looking towards more open development processes, and hardware such as microchips are beginning to be developed with specifications released under copyleft licenses (see the OpenCores project, for instance).
Creative Commons and the free culture movement have also been largely influenced by the free software movement.
Come Back to the Head