Make some files in etc obsolete

These are old copies of online information that is not Emacs-specific.

* etc/CENSORSHIP, etc/GNU, etc/LINUX-GNU, etc/THE-GNU-PROJECT, etc/WHY-FREE:
Replace contents with pointers to www.gnu.org or emacs.info, mark obsolete.

* src/callproc.c (init_callproc): In etc, look for NEWS rather than GNU.

* lisp/startup.el (fancy-startup-text):
* lisp/help.el (describe-gnu-project): Visit online info about GNU project.

* doc/emacs/help.texi (Help Files): Update C-h g description.

* doc/misc/efaq.texi (Informational files for Emacs): Do not mention etc/GNU.

* admin/notes/copyright: Remove references to these files.

* etc/MACHINES, etc/NEWS.19: Replace references to these files.
This commit is contained in:
Glenn Morris 2014-03-22 16:47:20 -07:00
parent 10211d43fa
commit 00156f9549
18 changed files with 60 additions and 1934 deletions

View file

@ -161,13 +161,6 @@ etc/letter.pbm,letter.xpm
etc/FTP, ORDERS
- trivial (at time of writing), no license needed
etc/GNU, INTERVIEW, LINUX-GNU, MOTIVATION, SERVICE, THE-GNU-PROJECT,
WHY-FREE
rms: "These are statements of opinion or testimony. Their licenses
should permit verbatim copying only. Please don't change the
licenses that they have. They are distributed with Emacs but they
are not part of Emacs."
etc/HELLO
standard notices. Just a note that although the file itself is not
really copyrightable, in the wider context of it being part of

View file

@ -1,3 +1,7 @@
2014-03-22 Glenn Morris <rgm@gnu.org>
* help.texi (Help Files): Update C-h g description.
2014-03-16 Dmitry Gutov <dgutov@yandex.ru>
* programs.texi (Matching): Update the missed spot. (Bug#17008)

View file

@ -605,7 +605,8 @@ Display information about where to get external packages
@item C-h C-f
Display the Emacs frequently-answered-questions list (@code{view-emacs-FAQ}).
@item C-h g
Display information about the GNU Project (@code{describe-gnu-project}).
Visit a @uref{http://www.gnu.org} page with information about the GNU
Project (@code{describe-gnu-project}).
@item C-h C-m
Display information about ordering printed copies of Emacs manuals
(@code{view-order-manuals}).

View file

@ -1,3 +1,7 @@
2014-03-22 Glenn Morris <rgm@gnu.org>
* efaq.texi (Informational files for Emacs): Do not mention etc/GNU.
2014-03-21 Glenn Morris <rgm@gnu.org>
* ede.texi (ede-linux):

View file

@ -883,9 +883,6 @@ GNU General Public License
@item DISTRIB
Emacs Availability Information
@item GNU
The GNU Manifesto
@item MACHINES
Status of Emacs on Various Machines and Systems

View file

@ -1,87 +1,8 @@
Censoring my Software
Richard Stallman
[From Datamation, 1 March 1996]
Censoring my Software
Note added March 2014:
Last summer, a few clever legislators proposed a bill to "prohibit
pornography" on the Internet. Last fall, right-wing Christians made
this cause their own. Last week, President Clinton signed the bill,
and we lost the freedom of the press for the public library of the
future. This week, I'm censoring GNU Emacs.
This file is obsolete and will be removed in future.
Please update any references to use
No, GNU Emacs does not contain pornography. It is a software package,
an award-winning extensible and programmable text editor. But the law
that was passed applies to far more than pornography. It prohibits
"indecent" speech, which can include anything from famous poems, to
masterpieces hanging in the Louvre, to advice about safe sex...to
software.
Naturally, there was a lot of opposition to this bill. Not only from
people who use the Internet, and people who appreciate erotica, but
from everyone who cares about freedom of the press.
But every time we tried to tell the public what was at stake, the
forces of censorship responded with a lie: they told the public that
the issue was simply pornography. By embedding this lie as a
presupposition in their statements about the issue, they succeeded in
misinforming the public. So here I am, censoring my software.
You see, Emacs contains a version of the famous "doctor program",
a.k.a. Eliza, originally developed by Professor Weizenbaum at MIT.
This is the program that imitates a Rogerian psychotherapist. The
user talks to the program, and the program responds--by playing back
the user's own statements, and by recognizing a long list of
particular words.
The Emacs doctor program was set up to recognize many common curse
words, and respond with an appropriately cute message such as, "Would
you please watch your tongue?" or "Let's not be vulgar." In order to
do this, it had to have a list of curse words. That means the source
code for the program was indecent.
Because of the censorship law, I had to remove this feature. (I
replaced it with a message announcing that the program has been
censored for your protection.) The new version of the doctor doesn't
recognize the indecent words. If you curse at it, it curses right
back to you--for lack of knowing better.
Now that people are facing the threat of two years in prison for
indecent network postings, it would be helpful if they could access
precise rules via the Internet for how to avoid imprisonment.
However, this is impossible. The rules would have to mention the
forbidden words, so posting them on the Internet would be against the
rules.
Of course, I'm making an assumption about just what "indecent" means.
I have to do this, because nobody knows for sure. The most obvious
possible meaning is the meaning it has for television, so I'm using
that as a tentative assumption. However, there is a good chance that
our courts will reject that interpretation of the law as
unconstitutional.
We can hope that the courts will recognize the Internet as a medium of
publication like books and magazines. If they do, they will entirely
reject any law prohibiting "indecent" publications on the Internet.
What really worries me is that the courts might take a muddled
in-between escape route--by choosing another interpretation of
"indecent", one that permits the doctor program or a statement of the
decency rules, but prohibits some of the books that children can
browse through in the public library and the bookstore. Over the
years, as the Internet replaces the public library and the bookstore,
some of our freedom of the press will be lost.
Just a few weeks ago, another country imposed censorship on the
Internet. That was China. We don't think well of China in this
country--its government doesn't respect basic freedoms. But how well
does our government respect them? And do you care enough to preserve
them here?
If you care, stay in touch with the Voters Telecommunications Watch.
Look in their Web site http://www.vtw.org/ for background information
and political action recommendations. Censorship won in February, but
we can beat it in November.
Copyright 1996 Richard Stallman
Verbatim copying and distribution is permitted in any medium
provided this notice is preserved.
<http://www.gnu.org/philosophy/censoring-emacs.html>

View file

@ -1,3 +1,8 @@
2014-03-22 Glenn Morris <rgm@gnu.org>
* CENSORSHIP, GNU, LINUX-GNU, THE-GNU-PROJECT, WHY-FREE: Replace
contents with pointers to www.gnu.org or emacs.info, mark obsolete.
2014-03-14 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* tutorials/TUTORIAL.de: Adapt to recent changes in TUTORIAL.

546
etc/GNU
View file

@ -1,544 +1,8 @@
Copyright (C) 1985, 1993, 2001-2014 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document, in any medium, provided that the copyright notice and
permission notice are preserved, and that the distributor grants the
recipient permission for further redistribution as permitted by this
notice.
Modified versions may not be made.
The GNU Manifesto
*****************
The GNU Manifesto which appears below was written by Richard
Stallman at the beginning of the GNU project, to ask for
participation and support. For the first few years, it was
updated in minor ways to account for developments, but now it
seems best to leave it unchanged as most people have seen it.
Note added March 2014:
Since that time, we have learned about certain common
misunderstandings that different wording could help avoid.
Footnotes added in 1993 help clarify these points.
For up-to-date information about the available GNU software,
please see www.gnu.org. For software tasks to work on, see
http://savannah.gnu.org/projects/tasklist. For other ways
to contribute, see http://www.gnu.org/help.
What's GNU? Gnu's Not Unix!
============================
GNU, which stands for Gnu's Not Unix, is the name for the complete
Unix-compatible software system which I am writing so that I can give it
away free to everyone who can use it.(1) Several other volunteers are
helping me. Contributions of time, money, programs and equipment are
greatly needed.
So far we have an Emacs text editor with Lisp for writing editor
commands, a source level debugger, a yacc-compatible parser generator,
a linker, and around 35 utilities. A shell (command interpreter) is
nearly completed. A new portable optimizing C compiler has compiled
itself and may be released this year. An initial kernel exists but
many more features are needed to emulate Unix. When the kernel and
compiler are finished, it will be possible to distribute a GNU system
suitable for program development. We will use TeX as our text
formatter, but an nroff is being worked on. We will use the free,
portable X window system as well. After this we will add a portable
Common Lisp, an Empire game, a spreadsheet, and hundreds of other
things, plus on-line documentation. We hope to supply, eventually,
everything useful that normally comes with a Unix system, and more.
GNU will be able to run Unix programs, but will not be identical to
Unix. We will make all improvements that are convenient, based on our
experience with other operating systems. In particular, we plan to
have longer file names, file version numbers, a crashproof file system,
file name completion perhaps, terminal-independent display support, and
perhaps eventually a Lisp-based window system through which several
Lisp programs and ordinary Unix programs can share a screen. Both C
and Lisp will be available as system programming languages. We will
try to support UUCP, MIT Chaosnet, and Internet protocols for
communication.
GNU is aimed initially at machines in the 68000/16000 class with
virtual memory, because they are the easiest machines to make it run
on. The extra effort to make it run on smaller machines will be left
to someone who wants to use it on them.
To avoid horrible confusion, please pronounce the `G' in the word
`GNU' when it is the name of this project.
Why I Must Write GNU
====================
I consider that the golden rule requires that if I like a program I
must share it with other people who like it. Software sellers want to
divide the users and conquer them, making each user agree not to share
with others. I refuse to break solidarity with other users in this
way. I cannot in good conscience sign a nondisclosure agreement or a
software license agreement. For years I worked within the Artificial
Intelligence Lab to resist such tendencies and other inhospitalities,
but eventually they had gone too far: I could not remain in an
institution where such things are done for me against my will.
So that I can continue to use computers without dishonor, I have
decided to put together a sufficient body of free software so that I
will be able to get along without any software that is not free. I
have resigned from the AI lab to deny MIT any legal excuse to prevent
me from giving GNU away.
Why GNU Will Be Compatible with Unix
====================================
Unix is not my ideal system, but it is not too bad. The essential
features of Unix seem to be good ones, and I think I can fill in what
Unix lacks without spoiling them. And a system compatible with Unix
would be convenient for many other people to adopt.
How GNU Will Be Available
=========================
GNU is not in the public domain. Everyone will be permitted to
modify and redistribute GNU, but no distributor will be allowed to
restrict its further redistribution. That is to say, proprietary
modifications will not be allowed. I want to make sure that all
versions of GNU remain free.
Why Many Other Programmers Want to Help
=======================================
I have found many other programmers who are excited about GNU and
want to help.
Many programmers are unhappy about the commercialization of system
software. It may enable them to make more money, but it requires them
to feel in conflict with other programmers in general rather than feel
as comrades. The fundamental act of friendship among programmers is the
sharing of programs; marketing arrangements now typically used
essentially forbid programmers to treat others as friends. The
purchaser of software must choose between friendship and obeying the
law. Naturally, many decide that friendship is more important. But
those who believe in law often do not feel at ease with either choice.
They become cynical and think that programming is just a way of making
money.
By working on and using GNU rather than proprietary programs, we can
be hospitable to everyone and obey the law. In addition, GNU serves as
an example to inspire and a banner to rally others to join us in
sharing. This can give us a feeling of harmony which is impossible if
we use software that is not free. For about half the programmers I
talk to, this is an important happiness that money cannot replace.
How You Can Contribute
======================
I am asking computer manufacturers for donations of machines and
money. I'm asking individuals for donations of programs and work.
One consequence you can expect if you donate machines is that GNU
will run on them at an early date. The machines should be complete,
ready to use systems, approved for use in a residential area, and not
in need of sophisticated cooling or power.
I have found very many programmers eager to contribute part-time
work for GNU. For most projects, such part-time distributed work would
be very hard to coordinate; the independently-written parts would not
work together. But for the particular task of replacing Unix, this
problem is absent. A complete Unix system contains hundreds of utility
programs, each of which is documented separately. Most interface
specifications are fixed by Unix compatibility. If each contributor
can write a compatible replacement for a single Unix utility, and make
it work properly in place of the original on a Unix system, then these
utilities will work right when put together. Even allowing for Murphy
to create a few unexpected problems, assembling these components will
be a feasible task. (The kernel will require closer communication and
will be worked on by a small, tight group.)
If I get donations of money, I may be able to hire a few people full
or part time. The salary won't be high by programmers' standards, but
I'm looking for people for whom building community spirit is as
important as making money. I view this as a way of enabling dedicated
people to devote their full energies to working on GNU by sparing them
the need to make a living in another way.
Why All Computer Users Will Benefit
===================================
Once GNU is written, everyone will be able to obtain good system
software free, just like air.(2)
This means much more than just saving everyone the price of a Unix
license. It means that much wasteful duplication of system programming
effort will be avoided. This effort can go instead into advancing the
state of the art.
Complete system sources will be available to everyone. As a result,
a user who needs changes in the system will always be free to make them
himself, or hire any available programmer or company to make them for
him. Users will no longer be at the mercy of one programmer or company
which owns the sources and is in sole position to make changes.
Schools will be able to provide a much more educational environment
by encouraging all students to study and improve the system code.
Harvard's computer lab used to have the policy that no program could be
installed on the system if its sources were not on public display, and
upheld it by actually refusing to install certain programs. I was very
much inspired by this.
Finally, the overhead of considering who owns the system software
and what one is or is not entitled to do with it will be lifted.
Arrangements to make people pay for using a program, including
licensing of copies, always incur a tremendous cost to society through
the cumbersome mechanisms necessary to figure out how much (that is,
which programs) a person must pay for. And only a police state can
force everyone to obey them. Consider a space station where air must
be manufactured at great cost: charging each breather per liter of air
may be fair, but wearing the metered gas mask all day and all night is
intolerable even if everyone can afford to pay the air bill. And the
TV cameras everywhere to see if you ever take the mask off are
outrageous. It's better to support the air plant with a head tax and
chuck the masks.
Copying all or parts of a program is as natural to a programmer as
breathing, and as productive. It ought to be as free.
Some Easily Rebutted Objections to GNU's Goals
==============================================
"Nobody will use it if it is free, because that means they can't
rely on any support."
"You have to charge for the program to pay for providing the
support."
If people would rather pay for GNU plus service than get GNU free
without service, a company to provide just service to people who have
obtained GNU free ought to be profitable.(3)
We must distinguish between support in the form of real programming
work and mere handholding. The former is something one cannot rely on
from a software vendor. If your problem is not shared by enough
people, the vendor will tell you to get lost.
If your business needs to be able to rely on support, the only way
is to have all the necessary sources and tools. Then you can hire any
available person to fix your problem; you are not at the mercy of any
individual. With Unix, the price of sources puts this out of
consideration for most businesses. With GNU this will be easy. It is
still possible for there to be no available competent person, but this
problem cannot be blamed on distribution arrangements. GNU does not
eliminate all the world's problems, only some of them.
Meanwhile, the users who know nothing about computers need
handholding: doing things for them which they could easily do
themselves but don't know how.
Such services could be provided by companies that sell just
hand-holding and repair service. If it is true that users would rather
spend money and get a product with service, they will also be willing
to buy the service having got the product free. The service companies
will compete in quality and price; users will not be tied to any
particular one. Meanwhile, those of us who don't need the service
should be able to use the program without paying for the service.
"You cannot reach many people without advertising, and you must
charge for the program to support that."
"It's no use advertising a program people can get free."
There are various forms of free or very cheap publicity that can be
used to inform numbers of computer users about something like GNU. But
it may be true that one can reach more microcomputer users with
advertising. If this is really so, a business which advertises the
service of copying and mailing GNU for a fee ought to be successful
enough to pay for its advertising and more. This way, only the users
who benefit from the advertising pay for it.
On the other hand, if many people get GNU from their friends, and
such companies don't succeed, this will show that advertising was not
really necessary to spread GNU. Why is it that free market advocates
don't want to let the free market decide this?(4)
"My company needs a proprietary operating system to get a
competitive edge."
GNU will remove operating system software from the realm of
competition. You will not be able to get an edge in this area, but
neither will your competitors be able to get an edge over you. You and
they will compete in other areas, while benefiting mutually in this
one. If your business is selling an operating system, you will not
like GNU, but that's tough on you. If your business is something else,
GNU can save you from being pushed into the expensive business of
selling operating systems.
I would like to see GNU development supported by gifts from many
manufacturers and users, reducing the cost to each.(5)
"Don't programmers deserve a reward for their creativity?"
If anything deserves a reward, it is social contribution.
Creativity can be a social contribution, but only in so far as society
is free to use the results. If programmers deserve to be rewarded for
creating innovative programs, by the same token they deserve to be
punished if they restrict the use of these programs.
"Shouldn't a programmer be able to ask for a reward for his
creativity?"
There is nothing wrong with wanting pay for work, or seeking to
maximize one's income, as long as one does not use means that are
destructive. But the means customary in the field of software today
are based on destruction.
Extracting money from users of a program by restricting their use of
it is destructive because the restrictions reduce the amount and the
ways that the program can be used. This reduces the amount of wealth
that humanity derives from the program. When there is a deliberate
choice to restrict, the harmful consequences are deliberate destruction.
The reason a good citizen does not use such destructive means to
become wealthier is that, if everyone did so, we would all become
poorer from the mutual destructiveness. This is Kantian ethics; or,
the Golden Rule. Since I do not like the consequences that result if
everyone hoards information, I am required to consider it wrong for one
to do so. Specifically, the desire to be rewarded for one's creativity
does not justify depriving the world in general of all or part of that
creativity.
"Won't programmers starve?"
I could answer that nobody is forced to be a programmer. Most of us
cannot manage to get any money for standing on the street and making
faces. But we are not, as a result, condemned to spend our lives
standing on the street making faces, and starving. We do something
else.
But that is the wrong answer because it accepts the questioner's
implicit assumption: that without ownership of software, programmers
cannot possibly be paid a cent. Supposedly it is all or nothing.
The real reason programmers will not starve is that it will still be
possible for them to get paid for programming; just not paid as much as
now.
Restricting copying is not the only basis for business in software.
It is the most common basis because it brings in the most money. If it
were prohibited, or rejected by the customer, software business would
move to other bases of organization which are now used less often.
There are always numerous ways to organize any kind of business.
Probably programming will not be as lucrative on the new basis as it
is now. But that is not an argument against the change. It is not
considered an injustice that sales clerks make the salaries that they
now do. If programmers made the same, that would not be an injustice
either. (In practice they would still make considerably more than
that.)
"Don't people have a right to control how their creativity is
used?"
"Control over the use of one's ideas" really constitutes control over
other people's lives; and it is usually used to make their lives more
difficult.
People who have studied the issue of intellectual property rights(6)
carefully (such as lawyers) say that there is no intrinsic right to
intellectual property. The kinds of supposed intellectual property
rights that the government recognizes were created by specific acts of
legislation for specific purposes.
For example, the patent system was established to encourage
inventors to disclose the details of their inventions. Its purpose was
to help society rather than to help inventors. At the time, the life
span of 17 years for a patent was short compared with the rate of
advance of the state of the art. Since patents are an issue only among
manufacturers, for whom the cost and effort of a license agreement are
small compared with setting up production, the patents often do not do
much harm. They do not obstruct most individuals who use patented
products.
The idea of copyright did not exist in ancient times, when authors
frequently copied other authors at length in works of non-fiction. This
practice was useful, and is the only way many authors' works have
survived even in part. The copyright system was created expressly for
the purpose of encouraging authorship. In the domain for which it was
invented--books, which could be copied economically only on a printing
press--it did little harm, and did not obstruct most of the individuals
who read the books.
All intellectual property rights are just licenses granted by society
because it was thought, rightly or wrongly, that society as a whole
would benefit by granting them. But in any particular situation, we
have to ask: are we really better off granting such license? What kind
of act are we licensing a person to do?
The case of programs today is very different from that of books a
hundred years ago. The fact that the easiest way to copy a program is
from one neighbor to another, the fact that a program has both source
code and object code which are distinct, and the fact that a program is
used rather than read and enjoyed, combine to create a situation in
which a person who enforces a copyright is harming society as a whole
both materially and spiritually; in which a person should not do so
regardless of whether the law enables him to.
"Competition makes things get done better."
The paradigm of competition is a race: by rewarding the winner, we
encourage everyone to run faster. When capitalism really works this
way, it does a good job; but its defenders are wrong in assuming it
always works this way. If the runners forget why the reward is offered
and become intent on winning, no matter how, they may find other
strategies--such as, attacking other runners. If the runners get into
a fist fight, they will all finish late.
Proprietary and secret software is the moral equivalent of runners
in a fist fight. Sad to say, the only referee we've got does not seem
to object to fights; he just regulates them ("For every ten yards you
run, you can fire one shot"). He really ought to break them up, and
penalize runners for even trying to fight.
"Won't everyone stop programming without a monetary incentive?"
Actually, many people will program with absolutely no monetary
incentive. Programming has an irresistible fascination for some
people, usually the people who are best at it. There is no shortage of
professional musicians who keep at it even though they have no hope of
making a living that way.
But really this question, though commonly asked, is not appropriate
to the situation. Pay for programmers will not disappear, only become
less. So the right question is, will anyone program with a reduced
monetary incentive? My experience shows that they will.
For more than ten years, many of the world's best programmers worked
at the Artificial Intelligence Lab for far less money than they could
have had anywhere else. They got many kinds of non-monetary rewards:
fame and appreciation, for example. And creativity is also fun, a
reward in itself.
Then most of them left when offered a chance to do the same
interesting work for a lot of money.
What the facts show is that people will program for reasons other
than riches; but if given a chance to make a lot of money as well, they
will come to expect and demand it. Low-paying organizations do poorly
in competition with high-paying ones, but they do not have to do badly
if the high-paying ones are banned.
"We need the programmers desperately. If they demand that we stop
helping our neighbors, we have to obey."
You're never so desperate that you have to obey this sort of demand.
Remember: millions for defense, but not a cent for tribute!
"Programmers need to make a living somehow."
In the short run, this is true. However, there are plenty of ways
that programmers could make a living without selling the right to use a
program. This way is customary now because it brings programmers and
businessmen the most money, not because it is the only way to make a
living. It is easy to find other ways if you want to find them. Here
are a number of examples.
A manufacturer introducing a new computer will pay for the porting of
operating systems onto the new hardware.
The sale of teaching, hand-holding and maintenance services could
also employ programmers.
People with new ideas could distribute programs as freeware(7), asking
for donations from satisfied users, or selling hand-holding services.
I have met people who are already working this way successfully.
Users with related needs can form users' groups, and pay dues. A
group would contract with programming companies to write programs that
the group's members would like to use.
All sorts of development can be funded with a Software Tax:
Suppose everyone who buys a computer has to pay x percent of the
price as a software tax. The government gives this to an agency
like the NSF to spend on software development.
But if the computer buyer makes a donation to software development
himself, he can take a credit against the tax. He can donate to
the project of his own choosing--often, chosen because he hopes to
use the results when it is done. He can take a credit for any
amount of donation up to the total tax he had to pay.
The total tax rate could be decided by a vote of the payers of the
tax, weighted according to the amount they will be taxed on.
The consequences:
* The computer-using community supports software development.
* This community decides what level of support is needed.
* Users who care which projects their share is spent on can
choose this for themselves.
In the long run, making programs free is a step toward the
post-scarcity world, where nobody will have to work very hard just to
make a living. People will be free to devote themselves to activities
that are fun, such as programming, after spending the necessary ten
hours a week on required tasks such as legislation, family counseling,
robot repair and asteroid prospecting. There will be no need to be
able to make a living from programming.
We have already greatly reduced the amount of work that the whole
society must do for its actual productivity, but only a little of this
has translated itself into leisure for workers because much
nonproductive activity is required to accompany productive activity.
The main causes of this are bureaucracy and isometric struggles against
competition. Free software will greatly reduce these drains in the
area of software production. We must do this, in order for technical
gains in productivity to translate into less work for us.
---------- Footnotes ----------
(1) The wording here was careless. The intention was that nobody
would have to pay for *permission* to use the GNU system. But the
words don't make this clear, and people often interpret them as saying
that copies of GNU should always be distributed at little or no charge.
That was never the intent; later on, the manifesto mentions the
possibility of companies providing the service of distribution for a
profit. Subsequently I have learned to distinguish carefully between
"free" in the sense of freedom and "free" in the sense of price. Free
software is software that users have the freedom to distribute and
change. Some users may obtain copies at no charge, while others pay to
obtain copies--and if the funds help support improving the software, so
much the better. The important thing is that everyone who has a copy
has the freedom to cooperate with others in using it.
(2) This is another place I failed to distinguish carefully between
the two different meanings of "free". The statement as it stands is
not false--you can get copies of GNU software at no charge, from your
friends or over the net. But it does suggest the wrong idea.
(3) Several such companies now exist.
(4) The Free Software Foundation raised most of its funds for 10
years from a distribution service, although it is a charity rather
than a company.
(5) A group of computer companies pooled funds around 1991 to
support maintenance of the GNU C Compiler.
(6) In the 80s I had not yet realized how confusing it was to speak
of "the issue" of "intellectual property". That term is obviously
biased; more subtle is the fact that it lumps together various
disparate laws which raise very different issues. Nowadays I urge
people to reject the term "intellectual property" entirely, lest it
lead others to suppose that those laws form one coherent issue. The way to be
clear is to discuss patents, copyrights, and trademarks separately.
See http://www.gnu.org/philosophy/not-ipr.xhtml for more explanation
of how this term spreads confusion and bias.
(7) Subsequently we have learned to distinguish between "free
software" and "freeware". The term "freeware" means software you are
free to redistribute, but usually you are not free to study and change
the source code, so most of it is not free software. See
http://www.gnu.org/philosophy/words-to-avoid.html for more
explanation.
This file is obsolete and will be removed in future.
Please update any references to use
info node `(emacs)Manifesto'
instead.

View file

@ -1,147 +1,8 @@
Linux and the GNU system
Linux and the GNU system
The GNU project started in 1984 with the goal of developing a complete
free Unix-like operating system: GNU. "Free" refers to freedom, not
price; it means you are free to run, copy, distribute, study, change,
and improve the software.
Note added March 2014:
A Unix-like system consists of many different programs. We found some
components already available as free software--for example, X Windows
and TeX. We obtained other components by helping to convince their
developers to make them free--for example, the Berkeley network
utilities. This left many missing components that we had to write in
order to produce GNU--for example, GNU Emacs, the GNU C compiler, the
GNU C library, Bash, and Ghostscript. The GNU system consists of all
these components together.
The GNU project is not just about developing and distributing some
useful free software. The heart of the GNU project is an idea: that
software should be free, that software users should have freedom to
participate in a community. To run your computer, you need an
operating system; if it is not free, your freedom has been denied. To
have freedom, you need a free operating system. We therefore set out
to write one.
In the long run, though, we cannot expect to keep the free operating
system free unless the users are aware of the freedom it gives them,
and value that freedom. People who do not appreciate their freedom
will not keep it long. If we want to make freedom last, we need to
spread awareness of the freedoms they have in free software.
The GNU project's method is that free software and the idea of users'
freedom support each other. We develop GNU software, and as people
encounter GNU programs or the GNU system and start to use them, they
also think about the GNU idea. The software shows that the idea can
work in practice. Some of these people come to agree with the idea,
and then they are more likely to write additional free software.
Thus, the software embodies the idea, spreads the idea, and grows from
the idea.
Early on in the development of GNU, various parts of it became popular
even though users needed proprietary systems to run them on. Porting
the system to many systems and maintaining them required a lot of
work. After that work, most GNU software is easily configured for a
variety of different platforms.
By 1991, we had found or written all of the essential major components
of the system except the kernel, which we were writing. (This kernel
consists of the Mach microkernel plus the GNU HURD. The first test
release was made in 1996. Now, in 2002, it is running well, and
Hurd-based GNU systems are starting to be used.)
That was the situation when Linux came into being. Linux is a kernel,
like the kernel of Unix; it was written by Linus Torvalds, who
released it under the GNU General Public License. He did not write
this kernel for GNU, but it fit into the gap in GNU. The combination
of GNU and Linux included all the major essential components of a
Unix-compatible operating system. Other people, with some work made
the combination into a usable system. The principal use of Linux, the
kernel, is as part of this combination.
The popularity of the GNU/Linux combination is success, in the sense
of popularity, for GNU. Ironically, the popularity of GNU/Linux
undermines our method of communicating the ideas of GNU to people who
use GNU.
When GNU programs were only usable individually on top of another
operating system, installing and using them meant knowing and
appreciating these programs, and thus being aware of GNU, which led
people to think about the philosophical base of GNU. Now users can
install a unified operating system which is basically GNU, but they
usually think these are "Linux systems". At first impression, a
"Linux system" sounds like something completely distinct from the "GNU
system," and that is what most users think.
This leads many users to identify themselves as a separate community
of "Linux users", distinct from the GNU user community. They use more
than just some GNU programs, they use almost all of the GNU system,
but they don't think of themselves as GNU users. Often they never
hear about the GNU idea; if they do, they may not think it relates to
them.
Most introductions to the "Linux system" acknowledge that GNU software
components play a role in it, but they don't say that the system as a
whole is a modified version of the GNU system that the GNU project has
been developing and compiling since Linus Torvalds was in junior high
school. They don't say that the main reason this free operating
exists is that the GNU Project worked persistently to achieve its goal
of freedom.
As a result, most users don't know these things. They believe that
the "Linux system" was developed by Linus Torvalds "just for fun", and
that their freedom is a matter of good fortune rather than the
dedicated pursuit of freedom. This creates a danger that they will
leave the survival of free software to fortune as well.
Since human beings tend to correct their first impressions less than
called for by additional information they learn later, these users
will tend to continue to underestimate their connection to GNU even if
they do learn the facts.
When we began trying to support the GNU/Linux system, we found this
widespread misinformation led to a practical problem--it hampered
cooperation on software maintenance. Normally when users change a GNU
program to make it work better on a particular system, they send the
change to the maintainer of that program; then they work with the
maintainer, explaining the change, arguing for it, and sometimes
rewriting it for the sake of the overall coherence and maintainability
of the package, to get the patch installed. But people who thought of
themselves as "Linux users" showed a tendency to release a forked
"Linux-only" version of the GNU program and consider the job done. In
some cases we had to redo their work in order to make GNU programs run
as released in GNU/Linux systems.
How should the GNU project encourage its users to cooperate? How
should we spread the idea that freedom for computer users is
important?
We must continue to talk about the freedom to share and change
software--and to teach other users to value these freedoms. If we
value having a free operating system, it makes sense to think about
preserving those freedoms for the long term. If we value having a
variety of free software, it makes sense to think about encouraging
others to write free software, instead of proprietary software.
However, it is not enough just to talk about freedom; we must also
make sure people know the reasons it is worth listening to what we
say.
Long explanations such as our philosophical articles are one way of
informing the public, but you may not want to spend so much time on
the matter. The most effective way you can help with a small amount
of work is simply by using the terms "Linux-based GNU system" or
"GNU/Linux system", instead of "Linux system," when you write about or
mention such a system. Seeing these terms will show many people the
reason to pay attention to our philosophical articles.
The system as a whole is more GNU than Linux; the name "GNU/Linux" is
fair. When you are choosing the name of a distribution or a user
group, a name with "GNU/Linux" will reflect both roots of the combined
system, and will bring users into connection with both--including the
spirit of freedom and community that is the basis and purpose of GNU.
Copyright 1996, 2002 Richard Stallman
Verbatim copying and redistribution is permitted
without royalty as long as this notice is preserved.
This file is obsolete and will be removed in future.
Please update any references to use
<http://www.gnu.org/gnu/linux-and-gnu.html>

View file

@ -39,8 +39,8 @@ the list at the end of this file.
The GNU project wants users of GNU/Linux systems to be aware of how
these systems relate to the GNU project, because that will help
spread the GNU idea that software should be free--and thus encourage
people to write more free software. See the file LINUX-GNU in this
directory for more explanation.
people to write more free software. For more information, see
<http://www.gnu.org/gnu/linux-and-gnu.html>.
*** 64-bit GNU/Linux

View file

@ -614,7 +614,7 @@ be different.
It is generally recommended to use `system-configuration' rather
than `system-type'.
See the file LINUX-GNU in this directory for more about this.
See <http://www.gnu.org/gnu/linux-and-gnu.html> for more about this.
** The functions shell-command and dired-call-process
now run file name handlers for default-directory, if it has them.

View file

@ -1,903 +1,8 @@
The GNU Project
The GNU Project
by Richard Stallman
Note added March 2014:
originally published in the book "Open Sources"
This file is obsolete and will be removed in future.
Please update any references to use
The first software-sharing community
When I started working at the MIT Artificial Intelligence Lab in 1971,
I became part of a software-sharing community that had existed for many
years. Sharing of software was not limited to our particular community;
it is as old as computers, just as sharing of recipes is as old as
cooking. But we did it more than most.
The AI Lab used a timesharing operating system called ITS (the
Incompatible Timesharing System) that the lab's staff hackers (1) had
designed and written in assembler language for the Digital PDP-10, one
of the large computers of the era. As a member of this community, an AI
lab staff system hacker, my job was to improve this system.
We did not call our software "free software", because that term did not
yet exist; but that is what it was. Whenever people from another
university or a company wanted to port and use a program, we gladly let
them. If you saw someone using an unfamiliar and interesting program,
you could always ask to see the source code, so that you could read it,
change it, or cannibalize parts of it to make a new program.
(1) The use of "hacker" to mean "security breaker" is a confusion on
the part of the mass media. We hackers refuse to recognize that
meaning, and continue using the word to mean, "Someone who loves to
program and enjoys being clever about it."
The collapse of the community
The situation changed drastically in the early 1980s when Digital
discontinued the PDP-10 series. Its architecture, elegant and powerful
in the 60s, could not extend naturally to the larger address spaces
that were becoming feasible in the 80s. This meant that nearly all of
the programs composing ITS were obsolete.
The AI lab hacker community had already collapsed, not long before. In
1981, the spin-off company Symbolics had hired away nearly all of the
hackers from the AI lab, and the depopulated community was unable to
maintain itself. (The book Hackers, by Steve Levy, describes these
events, as well as giving a clear picture of this community in its
prime.) When the AI lab bought a new PDP-10 in 1982, its administrators
decided to use Digital's non-free timesharing system instead of ITS.
The modern computers of the era, such as the VAX or the 68020, had
their own operating systems, but none of them were free software: you
had to sign a nondisclosure agreement even to get an executable copy.
This meant that the first step in using a computer was to promise not
to help your neighbor. A cooperating community was forbidden. The rule
made by the owners of proprietary software was, "If you share with your
neighbor, you are a pirate. If you want any changes, beg us to make
them."
The idea that the proprietary-software social system--the system that
says you are not allowed to share or change software--is antisocial,
that it is unethical, that it is simply wrong, may come as a surprise
to some readers. But what else could we say about a system based on
dividing the public and keeping users helpless? Readers who find the
idea surprising may have taken proprietary-software social system as
given, or judged it on the terms suggested by proprietary software
businesses. Software publishers have worked long and hard to convince
people that there is only one way to look at the issue.
When software publishers talk about "enforcing" their "rights" or
"stopping piracy", what they actually *say* is secondary. The real
message of these statements is in the unstated assumptions they take
for granted; the public is supposed to accept them uncritically. So
let's examine them.
One assumption is that software companies have an unquestionable
natural right to own software and thus have power over all its users.
(If this were a natural right, then no matter how much harm it does to
the public, we could not object.) Interestingly, the US Constitution
and legal tradition reject this view; copyright is not a natural right,
but an artificial government-imposed monopoly that limits the users'
natural right to copy.
Another unstated assumption is that the only important thing about
software is what jobs it allows you to do--that we computer users
should not care what kind of society we are allowed to have.
A third assumption is that we would have no usable software (or would
never have a program to do this or that particular job) if we did not
offer a company power over the users of the program. This assumption
may have seemed plausible, before the free software movement
demonstrated that we can make plenty of useful software without putting
chains on it.
If we decline to accept these assumptions, and judge these issues based
on ordinary common-sense morality while placing the users first, we
arrive at very different conclusions. Computer users should be free to
modify programs to fit their needs, and free to share software, because
helping other people is the basis of society.
There is no room here for an extensive statement of the reasoning
behind this conclusion, so I refer the reader to the web page,
http://www.gnu.org/philosophy/why-free.html.
A stark moral choice.
With my community gone, to continue as before was impossible. Instead,
I faced a stark moral choice.
The easy choice was to join the proprietary software world, signing
nondisclosure agreements and promising not to help my fellow hacker.
Most likely I would also be developing software that was released under
nondisclosure agreements, thus adding to the pressure on other people
to betray their fellows too.
I could have made money this way, and perhaps amused myself writing
code. But I knew that at the end of my career, I would look back on
years of building walls to divide people, and feel I had spent my life
making the world a worse place.
I had already experienced being on the receiving end of a nondisclosure
agreement, when someone refused to give me and the MIT AI lab the
source code for the control program for our printer. (The lack of
certain features in this program made use of the printer extremely
frustrating.) So I could not tell myself that nondisclosure agreements
were innocent. I was very angry when he refused to share with us; I
could not turn around and do the same thing to everyone else.
Another choice, straightforward but unpleasant, was to leave the
computer field. That way my skills would not be misused, but they would
still be wasted. I would not be culpable for dividing and restricting
computer users, but it would happen nonetheless.
So I looked for a way that a programmer could do something for the
good. I asked myself, was there a program or programs that I could
write, so as to make a community possible once again?
The answer was clear: what was needed first was an operating system.
That is the crucial software for starting to use a computer. With an
operating system, you can do many things; without one, you cannot run
the computer at all. With a free operating system, we could again have
a community of cooperating hackers--and invite anyone to join. And
anyone would be able to use a computer without starting out by
conspiring to deprive his or her friends.
As an operating system developer, I had the right skills for this job.
So even though I could not take success for granted, I realized that I
was elected to do the job. I chose to make the system compatible with
Unix so that it would be portable, and so that Unix users could easily
switch to it. The name GNU was chosen following a hacker tradition, as
a recursive acronym for "GNU's Not Unix."
An operating system does not mean just a kernel, barely enough to run
other programs. In the 1970s, every operating system worthy of the name
included command processors, assemblers, compilers, interpreters,
debuggers, text editors, mailers, and much more. ITS had them, Multics
had them, VMS had them, and Unix had them. The GNU operating system
would include them too.
Later I heard these words, attributed to Hillel (1):
If I am not for myself, who will be for me?
If I am only for myself, what am I?
If not now, when?
The decision to start the GNU project was based on a similar spirit.
(1) As an Atheist, I don't follow any religious leaders, but I
sometimes find I admire something one of them has said.
Free as in freedom
The term "free software" is sometimes misunderstood--it has nothing to
do with price. It is about freedom. Here, therefore, is the definition
of free software: a program is free software, for you, a particular
user, if:
* You have the freedom to run the program, for any purpose.
* You have the freedom to modify the program to suit your needs. (To
make this freedom effective in practice, you must have access to
the source code, since making changes in a program without having
the source code is exceedingly difficult.)
* You have the freedom to redistribute copies, either gratis or for a
fee.
* You have the freedom to distribute modified versions of the
program, so that the community can benefit from your improvements.
Since "free" refers to freedom, not to price, there is no contradiction
between selling copies and free software. In fact, the freedom to sell
copies is crucial: collections of free software sold on CD-ROMs are
important for the community, and selling them is an important way to
raise funds for free software development. Therefore, a program which
people are not free to include on these collections is not free
software.
Because of the ambiguity of "free", people have long looked for
alternatives, but no one has found a suitable alternative. The English
Language has more words and nuances than any other, but it lacks a
simple, unambiguous, word that means "free", as in
freedom--"unfettered" being the word that comes closest in meaning.
Such alternatives as "liberated", "freedom", and "open" have either the
wrong meaning or some other disadvantage.
GNU software and the GNU system
Developing a whole system is a very large project. To bring it into
reach, I decided to adapt and use existing pieces of free software
wherever that was possible. For example, I decided at the very
beginning to use TeX as the principal text formatter; a few years
later, I decided to use the X Window System rather than writing another
window system for GNU.
Because of this decision, the GNU system is not the same as the
collection of all GNU software. The GNU system includes programs that
are not GNU software, programs that were developed by other people and
projects for their own purposes, but which we can use because they are
free software.
Commencing the project
In January 1984 I quit my job at MIT and began writing GNU software.
Leaving MIT was necessary so that MIT would not be able to interfere
with distributing GNU as free software. If I had remained on the staff,
MIT could have claimed to own the work, and could have imposed their
own distribution terms, or even turned the work into a proprietary
software package. I had no intention of doing a large amount of work
only to see it become useless for its intended purpose: creating a new
software-sharing community.
However, Professor Winston, then the head of the MIT AI Lab, kindly
invited me to keep using the lab's facilities.
The first steps
Shortly before beginning the GNU project, I heard about the Free
University Compiler Kit, also known as VUCK. (The Dutch word for "free"
is written with a V.) This was a compiler designed to handle multiple
languages, including C and Pascal, and to support multiple target
machines. I wrote to its author asking if GNU could use it.
He responded derisively, stating that the university was free but the
compiler was not. I therefore decided that my first program for the GNU
project would be a multi-language, multi-platform compiler.
Hoping to avoid the need to write the whole compiler myself, I obtained
the source code for the Pastel compiler, which was a multi-platform
compiler developed at Lawrence Livermore Lab. It supported, and was
written in, an extended version of Pascal, designed to be a
system-programming language. I added a C front end, and began porting
it to the Motorola 68000 computer. But I had to give that up when I
discovered that the compiler needed many megabytes of stack space, and
the available 68000 Unix system would only allow 64k.
I then realized that the Pastel compiler functioned by parsing the
entire input file into a syntax tree, converting the whole syntax tree
into a chain of "instructions", and then generating the whole output
file, without ever freeing any storage. At this point, I concluded I
would have to write a new compiler from scratch. That new compiler is
now known as GCC; none of the Pastel compiler is used in it, but I
managed to adapt and use the C front end that I had written. But that
was some years later; first, I worked on GNU Emacs.
GNU Emacs
I began work on GNU Emacs in September 1984, and in early 1985 it was
beginning to be usable. This enabled me to begin using Unix systems to
do editing; having no interest in learning to use vi or ed, I had done
my editing on other kinds of machines until then.
At this point, people began wanting to use GNU Emacs, which raised the
question of how to distribute it. Of course, I put it on the anonymous
ftp server on the MIT computer that I used. (This computer,
prep.ai.mit.edu, thus became the principal GNU ftp distribution site;
when it was decommissioned a few years later, we transferred the name
to our new ftp server.) But at that time, many of the interested people
were not on the Internet and could not get a copy by ftp. So the
question was, what would I say to them?
I could have said, "Find a friend who is on the net and who will make a
copy for you." Or I could have done what I did with the original PDP-10
Emacs: tell them, "Mail me a tape and a SASE, and I will mail it back
with Emacs on it." But I had no job, and I was looking for ways to make
money from free software. So I announced that I would mail a tape to
whoever wanted one, for a fee of $150. In this way, I started a free
software distribution business, the precursor of the companies that
today distribute entire Linux-based GNU systems.
Is a program free for every user?
If a program is free software when it leaves the hands of its author,
this does not necessarily mean it will be free software for everyone
who has a copy of it. For example, public domain software (software
that is not copyrighted) is free software; but anyone can make a
proprietary modified version of it. Likewise, many free programs are
copyrighted but distributed under simple permissive licenses which
allow proprietary modified versions.
The paradigmatic example of this problem is the X Window System.
Developed at MIT, and released as free software with a permissive
license, it was soon adopted by various computer companies. They added
X to their proprietary Unix systems, in binary form only, and covered
by the same nondisclosure agreement. These copies of X were no more
free software than Unix was.
The developers of the X Window System did not consider this a
problem--they expected and intended this to happen. Their goal was not
freedom, just "success", defined as "having many users." They did not
care whether these users had freedom, only that they should be
numerous.
This led to a paradoxical situation where two different ways of
counting the amount of freedom gave different answers to the question,
"Is this program free?" If you judged based on the freedom provided by
the distribution terms of the MIT release, you would say that X was
free software. But if you measured the freedom of the average user of
X, you would have to say it was proprietary software. Most X users were
running the proprietary versions that came with Unix systems, not the
free version.
Copyleft and the GNU GPL
The goal of GNU was to give users freedom, not just to be popular. So
we needed to use distribution terms that would prevent GNU software
from being turned into proprietary software. The method we use is
called "copyleft".(1)
Copyleft uses copyright law, but flips it over to serve the opposite of
its usual purpose: instead of a means of privatizing software, it
becomes a means of keeping software free.
The central idea of copyleft is that we give everyone permission to run
the program, copy the program, modify the program, and distribute
modified versions--but not permission to add restrictions of their own.
Thus, the crucial freedoms that define "free software" are guaranteed
to everyone who has a copy; they become inalienable rights.
For an effective copyleft, modified versions must also be free. This
ensures that work based on ours becomes available to our community if
it is published. When programmers who have jobs as programmers
volunteer to improve GNU software, it is copyleft that prevents their
employers from saying, "You can't share those changes, because we are
going to use them to make our proprietary version of the program."
The requirement that changes must be free is essential if we want to
ensure freedom for every user of the program. The companies that
privatized the X Window System usually made some changes to port it to
their systems and hardware. These changes were small compared with the
great extent of X, but they were not trivial. If making changes were an
excuse to deny the users freedom, it would be easy for anyone to take
advantage of the excuse.
A related issue concerns combining a free program with non-free code.
Such a combination would inevitably be non-free; whichever freedoms are
lacking for the non-free part would be lacking for the whole as well.
To permit such combinations would open a hole big enough to sink a
ship. Therefore, a crucial requirement for copyleft is to plug this
hole: anything added to or combined with a copylefted program must be
such that the larger combined version is also free and copylefted.
The specific implementation of copyleft that we use for most GNU
software is the GNU General Public License, or GNU GPL for short. We
have other kinds of copyleft that are used in specific circumstances.
GNU manuals are copylefted also, but use a much simpler kind of
copyleft, because the complexity of the GNU GPL is not necessary for
manuals.(2)
(1) In 1984 or 1985, Don Hopkins (a very imaginative fellow) mailed me
a letter. On the envelope he had written several amusing sayings,
including this one: "Copyleft--all rights reversed." I used the word
"copyleft" to name the distribution concept I was developing at the
time.
(2) We now use the GNU Free Documentation License for documentation.
The Free Software Foundation
As interest in using Emacs was growing, other people became involved in
the GNU project, and we decided that it was time to seek funding once
again. So in 1985 we created the Free Software Foundation, a tax-exempt
charity for free software development. The FSF also took over the Emacs
tape distribution business; later it extended this by adding other free
software (both GNU and non-GNU) to the tape, and by selling free
manuals as well.
The FSF accepts donations, but most of its income has always come from
sales--of copies of free software, and of other related services. Today
it sells CD-ROMs of source code, CD-ROMs with binaries, nicely printed
manuals (all with freedom to redistribute and modify), and Deluxe
Distributions (where we build the whole collection of software for your
choice of platform).
Free Software Foundation employees have written and maintained a number
of GNU software packages. Two notable ones are the C library and the
shell. The GNU C library is what every program running on a GNU/Linux
system uses to communicate with Linux. It was developed by a member of
the Free Software Foundation staff, Roland McGrath. The shell used on
most GNU/Linux systems is BASH, the Bourne Again Shell(1), which was
developed by FSF employee Brian Fox.
We funded development of these programs because the GNU project was not
just about tools or a development environment. Our goal was a complete
operating system, and these programs were needed for that goal.
(1) "Bourne again Shell" is a joke on the name ``Bourne Shell'', which
was the usual shell on Unix.
Free software support
The free software philosophy rejects a specific widespread business
practice, but it is not against business. When businesses respect the
users' freedom, we wish them success.
Selling copies of Emacs demonstrates one kind of free software
business. When the FSF took over that business, I needed another way to
make a living. I found it in selling services relating to the free
software I had developed. This included teaching, for subjects such as
how to program GNU Emacs and how to customize GCC, and software
development, mostly porting GCC to new platforms.
Today each of these kinds of free software business is practiced by a
number of corporations. Some distribute free software collections on
CD-ROM; others sell support at levels ranging from answering user
questions, to fixing bugs, to adding major new features. We are even
beginning to see free software companies based on launching new free
software products.
Watch out, though--a number of companies that associate themselves with
the term "open source" actually base their business on non-free
software that works with free software. These are not free software
companies, they are proprietary software companies whose products tempt
users away from freedom. They call these "value added", which reflects
the values they would like us to adopt: convenience above freedom. If
we value freedom more, we should call them "freedom subtracted"
products.
Technical goals
The principal goal of GNU was to be free software. Even if GNU had no
technical advantage over Unix, it would have a social advantage,
allowing users to cooperate, and an ethical advantage, respecting the
user's freedom.
But it was natural to apply the known standards of good practice to the
work--for example, dynamically allocating data structures to avoid
arbitrary fixed size limits, and handling all the possible 8-bit codes
wherever that made sense.
In addition, we rejected the Unix focus on small memory size, by
deciding not to support 16-bit machines (it was clear that 32-bit
machines would be the norm by the time the GNU system was finished),
and to make no effort to reduce memory usage unless it exceeded a
megabyte. In programs for which handling very large files was not
crucial, we encouraged programmers to read an entire input file into
core, then scan its contents without having to worry about I/O.
These decisions enabled many GNU programs to surpass their Unix
counterparts in reliability and speed.
Donated computers
As the GNU project's reputation grew, people began offering to donate
machines running UNIX to the project. These were very useful, because
the easiest way to develop components of GNU was to do it on a UNIX
system, and replace the components of that system one by one. But they
raised an ethical issue: whether it was right for us to have a copy of
UNIX at all.
UNIX was (and is) proprietary software, and the GNU project's
philosophy said that we should not use proprietary software. But,
applying the same reasoning that leads to the conclusion that violence
in self defense is justified, I concluded that it was legitimate to use
a proprietary package when that was crucial for developing a free
replacement that would help others stop using the proprietary package.
But, even if this was a justifiable evil, it was still an evil. Today
we no longer have any copies of Unix, because we have replaced them
with free operating systems. If we could not replace a machine's
operating system with a free one, we replaced the machine instead.
The GNU Task List
As the GNU project proceeded, and increasing numbers of system
components were found or developed, eventually it became useful to make
a list of the remaining gaps. We used it to recruit developers to write
the missing pieces. This list became known as the GNU task list. In
addition to missing Unix components, we listed added various other
useful software and documentation projects that, we thought, a truly
complete system ought to have.
Today, hardly any Unix components are left in the GNU task list--those
jobs have been done, aside from a few inessential ones. But the list is
full of projects that some might call "applications". Any program that
appeals to more than a narrow class of users would be a useful thing to
add to an operating system.
Even games are included in the task list--and have been since the
beginning. Unix included games, so naturally GNU should too. But
compatibility was not an issue for games, so we did not follow the list
of games that Unix had. Instead, we listed a spectrum of different
kinds of games that users might like.
The GNU Library GPL
The GNU C library uses a special kind of copyleft called the GNU
Library General Public License(1), which gives permission to link
proprietary software with the library. Why make this exception?
It is not a matter of principle; there is no principle that says
proprietary software products are entitled to include our code. (Why
contribute to a project predicated on refusing to share with us?) Using
the LGPL for the C library, or for any library, is a matter of
strategy.
The C library does a generic job; every proprietary system or compiler
comes with a C library. Therefore, to make our C library available only
to free software would not have given free software any advantage--it
would only have discouraged use of our library.
One system is an exception to this: on the GNU system (and this
includes GNU/Linux), the GNU C library is the only C library. So the
distribution terms of the GNU C library determine whether it is
possible to compile a proprietary program for the GNU system. There is
no ethical reason to allow proprietary applications on the GNU system,
but strategically it seems that disallowing them would do more to
discourage use of the GNU system than to encourage development of free
applications.
That is why using the Library GPL is a good strategy for the C library.
For other libraries, the strategic decision needs to be considered on a
case-by-case basis. When a library does a special job that can help
write certain kinds of programs, then releasing it under the GPL,
limiting it to free programs only, is a way of helping other free
software developers, giving them an advantage against proprietary
software.
Consider GNU Readline, a library that was developed to provide
command-line editing for BASH. Readline is released under the ordinary
GNU GPL, not the Library GPL. This probably does reduce the amount
Readline is used, but that is no loss for us. Meanwhile, at least one
useful application has been made free software specifically so it could
use Readline, and that is a real gain for the community.
Proprietary software developers have the advantages money provides;
free software developers need to make advantages for each other. I hope
some day we will have a large collection of GPL-covered libraries that
have no parallel available to proprietary software, providing useful
modules to serve as building blocks in new free software, and adding up
to a major advantage for further free software development.
(1) This license is now called the GNU Lesser General Public License,
to avoid giving the idea that all libraries ought to use it.
See http://www.gnu.org/philosophy/why-not-lgpl.html.
Scratching an itch?
Eric Raymond says that "Every good work of software starts by
scratching a developer's personal itch." Maybe that happens sometimes,
but many essential pieces of GNU software were developed in order to
have a complete free operating system. They come from a vision and a
plan, not from impulse.
For example, we developed the GNU C library because a Unix-like system
needs a C library, the Bourne-Again Shell (bash) because a Unix-like
system needs a shell, and GNU tar because a Unix-like system needs a
tar program. The same is true for my own programs--the GNU C compiler,
GNU Emacs, GDB and GNU Make.
Some GNU programs were developed to cope with specific threats to our
freedom. Thus, we developed gzip to replace the Compress program, which
had been lost to the community because of the LZW patents. We found
people to develop LessTif, and more recently started GNOME and Harmony,
to address the problems caused by certain proprietary libraries (see
below). We are developing the GNU Privacy Guard to replace popular
non-free encryption software, because users should not have to choose
between privacy and freedom.
Of course, the people writing these programs became interested in the
work, and many features were added to them by various people for the
sake of their own needs and interests. But that is not why the programs
exist.
Unexpected developments
At the beginning of the GNU project, I imagined that we would develop
the whole GNU system, then release it as a whole. That is not how it
happened.
Since each component of the GNU system was implemented on a Unix
system, each component could run on Unix systems, long before a
complete GNU system existed. Some of these programs became popular, and
users began extending them and porting them---to the various
incompatible versions of Unix, and sometimes to other systems as well.
The process made these programs much more powerful, and attracted both
funds and contributors to the GNU project. But it probably also delayed
completion of a minimal working system by several years, as GNU
developers' time was put into maintaining these ports and adding
features to the existing components, rather than moving on to write one
missing component after another.
The GNU Hurd
By 1990, the GNU system was almost complete; the only major missing
component was the kernel. We had decided to implement our kernel as a
collection of server processes running on top of Mach. Mach is a
microkernel developed at Carnegie Mellon University and then at the
University of Utah; the GNU HURD is a collection of servers (or ``herd
of gnus'') that run on top of Mach, and do the various jobs of the Unix
kernel. The start of development was delayed as we waited for Mach to
be released as free software, as had been promised.
One reason for choosing this design was to avoid what seemed to be the
hardest part of the job: debugging a kernel program without a
source-level debugger to do it with. This part of the job had been done
already, in Mach, and we expected to debug the HURD servers as user
programs, with GDB. But it took a long time to make that possible, and
the multi-threaded servers that send messages to each other have turned
out to be very hard to debug. Making the HURD work solidly has
stretched on for many years.
Alix
The GNU kernel was not originally supposed to be called the HURD. Its
original name was Alix--named after the woman who was my sweetheart at
the time. She, a Unix system administrator, had pointed out how her
name would fit a common naming pattern for Unix system versions; as a
joke, she told her friends, "Someone should name a kernel after me." I
said nothing, but decided to surprise her with a kernel named Alix.
It did not stay that way. Michael Bushnell (now Thomas), the main
developer of the kernel, preferred the name HURD, and redefined Alix to
refer to a certain part of the kernel--the part that would trap system
calls and handle them by sending messages to HURD servers.
Ultimately, Alix and I broke up, and she changed her name;
independently, the HURD design was changed so that the C library would
send messages directly to servers, and this made the Alix component
disappear from the design.
But before these things happened, a friend of hers came across the name
Alix in the HURD source code, and mentioned the name to her. So the
name did its job.
Linux and GNU/Linux
The GNU Hurd is not ready for production use. Fortunately, another
kernel is available. In 1991, Linus Torvalds developed a
Unix-compatible kernel and called it Linux. Around 1992, combining
Linux with the not-quite-complete GNU system resulted in a complete
free operating system. (Combining them was a substantial job in itself,
of course.) It is due to Linux that we can actually run a version of
the GNU system today.
We call this system version GNU/Linux, to express its composition as a
combination of the GNU system with Linux as the kernel.
Challenges in our future
We have proved our ability to develop a broad spectrum of free
software. This does not mean we are invincible and unstoppable. Several
challenges make the future of free software uncertain; meeting them
will require steadfast effort and endurance, sometimes lasting for
years. It will require the kind of determination that people display
when they value their freedom and will not let anyone take it away.
The following four sections discuss these challenges.
Secret hardware
Hardware manufacturers increasingly tend to keep hardware
specifications secret. This makes it difficult to write free drivers so
that Linux and XFree86 can support new hardware. We have complete free
systems today, but we will not have them tomorrow if we cannot support
tomorrow's computers.
There are two ways to cope with this problem. Programmers can do
reverse engineering to figure out how to support the hardware. The rest
of us can choose the hardware that is supported by free software; as
our numbers increase, secrecy of specifications will become a
self-defeating policy.
Reverse engineering is a big job; will we have programmers with
sufficient determination to undertake it? Yes--if we have built up a
strong feeling that free software is a matter of principle, and
non-free drivers are intolerable. And will large numbers of us spend
extra money, or even a little extra time, so we can use free drivers?
Yes, if the determination to have freedom is widespread.
Non-free libraries
A non-free library that runs on free operating systems acts as a trap
for free software developers. The library's attractive features are the
bait; if you use the library, you fall into the trap, because your
program cannot usefully be part of a free operating system. (Strictly
speaking, we could include your program, but it won't run with the
library missing.) Even worse, if a program that uses the proprietary
library becomes popular, it can lure other unsuspecting programmers
into the trap.
The first instance of this problem was the Motif toolkit, back in the
80s. Although there were as yet no free operating systems, it was clear
what problem Motif would cause for them later on. The GNU Project
responded in two ways: by asking individual free software projects to
support the free X toolkit widgets as well as Motif, and by asking for
someone to write a free replacement for Motif. The job took many years;
LessTif, developed by the Hungry Programmers, became powerful enough to
support most Motif applications only in 1997.
Between 1996 and 1998, another non-free GUI toolkit library, called Qt,
was used in a substantial collection of free software, the desktop KDE.
Free GNU/Linux systems were unable to use KDE, because we could not use
the library. However, some commercial distributors of GNU/Linux systems
who were not strict about sticking with free software added KDE to
their systems--producing a system with more capabilities, but less
freedom. The KDE group was actively encouraging more programmers to use
Qt, and millions of new "Linux users" had never been exposed to the
idea that there was a problem in this. The situation appeared grim.
The free software community responded to the problem in two ways: GNOME
and Harmony.
GNOME, the GNU Network Object Model Environment, is GNU's desktop
project. Started in 1997 by Miguel de Icaza, and developed with the
support of Red Hat Software, GNOME set out to provide similar desktop
facilities, but using free software exclusively. It has technical
advantages as well, such as supporting a variety of languages, not just
C++. But its main purpose was freedom: not to require the use of any
non-free software.
Harmony is a compatible replacement library, designed to make it
possible to run KDE software without using Qt.
In November 1998, the developers of Qt announced a change of license
which, when carried out, should make Qt free software. There is no way
to be sure, but I think that this was partly due to the community's
firm response to the problem that Qt posed when it was non-free. (The
new license is inconvenient and inequitable, so it remains desirable to
avoid using Qt.)
[Subsequent note: in September 2000, Qt was rereleased under the GNU
GPL, which essentially solved this problem.]
How will we respond to the next tempting non-free library? Will the
whole community understand the need to stay out of the trap? Or will
many of us give up freedom for convenience, and produce a major
problem? Our future depends on our philosophy.
Software patents
The worst threat we face comes from software patents, which can put
algorithms and features off limits to free software for up to twenty
years. The LZW compression algorithm patents were applied for in 1983,
and we still cannot release free software to produce proper compressed
GIFs. In 1998, a free program to produce MP3 compressed audio was
removed from distribution under threat of a patent suit.
There are ways to cope with patents: we can search for evidence that a
patent is invalid, and we can look for alternative ways to do a job.
But each of these methods works only sometimes; when both fail, a
patent may force all free software to lack some feature that users
want. What will we do when this happens?
Those of us who value free software for freedom's sake will stay with
free software anyway. We will manage to get work done without the
patented features. But those who value free software because they
expect it to be technically superior are likely to call it a failure
when a patent holds it back. Thus, while it is useful to talk about the
practical effectiveness of the "cathedral" model of development (1),
and the reliability and power of some free software, we must not stop
there. We must talk about freedom and principle.
(1) It would have been clearer to write `of the "bazaar" model', since
that was the alternative that was new and initially controversial.
Free documentation
The biggest deficiency in our free operating systems is not in the
software--it is the lack of good free manuals that we can include in
our systems. Documentation is an essential part of any software
package; when an important free software package does not come with a
good free manual, that is a major gap. We have many such gaps today.
Free documentation, like free software, is a matter of freedom, not
price. The criterion for a free manual is pretty much the same as for
free software: it is a matter of giving all users certain freedoms.
Redistribution (including commercial sale) must be permitted, on-line
and on paper, so that the manual can accompany every copy of the
program.
Permission for modification is crucial too. As a general rule, I don't
believe that it is essential for people to have permission to modify
all sorts of articles and books. For example, I don't think you or I
are obliged to give permission to modify articles like this one, which
describe our actions and our views.
But there is a particular reason why the freedom to modify is crucial
for documentation for free software. When people exercise their right
to modify the software, and add or change its features, if they are
conscientious they will change the manual too--so they can provide
accurate and usable documentation with the modified program. A manual
which does not allow programmers to be conscientious and finish the
job, does not fill our community's needs.
Some kinds of limits on how modifications are done pose no problem. For
example, requirements to preserve the original author's copyright
notice, the distribution terms, or the list of authors, are ok. It is
also no problem to require modified versions to include notice that
they were modified, even to have entire sections that may not be
deleted or changed, as long as these sections deal with nontechnical
topics. These kinds of restrictions are not a problem because they
don't stop the conscientious programmer from adapting the manual to fit
the modified program. In other words, they don't block the free
software community from making full use of the manual.
However, it must be possible to modify all the *technical* content of
the manual, and then distribute the result in all the usual media,
through all the usual channels; otherwise, the restrictions do obstruct
the community, the manual is not free, and we need another manual.
Will free software developers have the awareness and determination to
produce a full spectrum of free manuals? Once again, our future depends
on philosophy.
We must talk about freedom
Estimates today are that there are ten million users of GNU/Linux
systems such as Debian GNU/Linux and Red Hat Linux. Free software has
developed such practical advantages that users are flocking to it for
purely practical reasons.
The good consequences of this are evident: more interest in developing
free software, more customers for free software businesses, and more
ability to encourage companies to develop commercial free software
instead of proprietary software products.
But interest in the software is growing faster than awareness of the
philosophy it is based on, and this leads to trouble. Our ability to
meet the challenges and threats described above depends on the will to
stand firm for freedom. To make sure our community has this will, we
need to spread the idea to the new users as they come into the
community.
But we are failing to do so: the efforts to attract new users into our
community are far outstripping the efforts to teach them the civics of
our community. We need to do both, and we need to keep the two efforts
in balance.
"Open Source"
Teaching new users about freedom became more difficult in 1998, when a
part of the community decided to stop using the term "free software"
and say "open source software" instead.
Some who favored this term aimed to avoid the confusion of "free" with
"gratis"--a valid goal. Others, however, aimed to set aside the spirit
of principle that had motivated the free software movement and the GNU
project, and to appeal instead to executives and business users, many
of whom hold an ideology that places profit above freedom, above
community, above principle. Thus, the rhetoric of "open source" focuses
on the potential to make high quality, powerful software, but shuns the
ideas of freedom, community, and principle.
The "Linux" magazines are a clear example of this--they are filled with
advertisements for proprietary software that works with GNU/Linux. When
the next Motif or Qt appears, will these magazines warn programmers to
stay away from it, or will they run ads for it?
The support of business can contribute to the community in many ways;
all else being equal, it is useful. But winning their support by
speaking even less about freedom and principle can be disastrous; it
makes the previous imbalance between outreach and civics education even
worse.
"Free software" and "open source" describe the same category of
software, more or less, but say different things about the software,
and about values. The GNU Project continues to use the term "free
software", to express the idea that freedom, not just technology, is
important.
Try!
Yoda's philosophy ("There is no `try'") sounds neat, but it doesn't
work for me. I have done most of my work while anxious about whether I
could do the job, and unsure that it would be enough to achieve the
goal if I did. But I tried anyway, because there was no one but me
between the enemy and my city. Surprising myself, I have sometimes
succeeded.
Sometimes I failed; some of my cities have fallen. Then I found another
threatened city, and got ready for another battle. Over time, I've
learned to look for threats and put myself between them and my city,
calling on other hackers to come and join me.
Nowadays, often I'm not the only one. It is a relief and a joy when I
see a regiment of hackers digging in to hold the line, and I realize,
this city may survive--for now. But the dangers are greater each year,
and now Microsoft has explicitly targeted our community. We can't take
the future of freedom for granted. Don't take it for granted! If you
want to keep your freedom, you must be prepared to defend it.
Copyright (C) 1998 Richard Stallman
Verbatim copying and distribution of this entire article is permitted
in any medium, provided this notice is preserved.
<http://www.gnu.org/gnu/thegnuproject.html>

View file

@ -1,244 +1,8 @@
Why Software Should Not Have Owners
Why Software Should Not Have Owners
by Richard Stallman
Note added March 2014:
Digital information technology contributes to the world by making it
easier to copy and modify information. Computers promise to make this
easier for all of us.
This file is obsolete and will be removed in future.
Please update any references to use
Not everyone wants it to be easier. The system of copyright gives
software programs "owners", most of whom aim to withhold software's
potential benefit from the rest of the public. They would like to be
the only ones who can copy and modify the software that we use.
The copyright system grew up with printing--a technology for mass
production copying. Copyright fit in well with this technology
because it restricted only the mass producers of copies. It did not
take freedom away from readers of books. An ordinary reader, who did
not own a printing press, could copy books only with pen and ink, and
few readers were sued for that.
Digital technology is more flexible than the printing press: when
information has digital form, you can easily copy it to share it with
others. This very flexibility makes a bad fit with a system like
copyright. That's the reason for the increasingly nasty and draconian
measures now used to enforce software copyright. Consider these four
practices of the Software Publishers Association (SPA):
* Massive propaganda saying it is wrong to disobey the owners
to help your friend.
* Solicitation for stool pigeons to inform on their coworkers and
colleagues.
* Raids (with police help) on offices and schools, in which people are
told they must prove they are innocent of illegal copying.
* Prosecution (by the US government, at the SPA's request) of people
such as MIT's David LaMacchia, not for copying software (he is not
accused of copying any), but merely for leaving copying facilities
unguarded and failing to censor their use.
All four practices resemble those used in the former Soviet Union,
where every copying machine had a guard to prevent forbidden copying,
and where individuals had to copy information secretly and pass it
from hand to hand as "samizdat". There is of course a difference: the
motive for information control in the Soviet Union was political; in
the US the motive is profit. But it is the actions that affect us,
not the motive. Any attempt to block the sharing of information, no
matter why, leads to the same methods and the same harshness.
Owners make several kinds of arguments for giving them the power
to control how we use information:
* Name calling.
Owners use smear words such as "piracy" and "theft", as well as expert
terminology such as "intellectual property" and "damage", to suggest a
certain line of thinking to the public--a simplistic analogy between
programs and physical objects.
Our ideas and intuitions about property for material objects are about
whether it is right to *take an object away* from someone else. They
don't directly apply to *making a copy* of something. But the owners
ask us to apply them anyway.
* Exaggeration.
Owners say that they suffer "harm" or "economic loss" when users copy
programs themselves. But the copying has no direct effect on the
owner, and it harms no one. The owner can lose only if the person who
made the copy would otherwise have paid for one from the owner.
A little thought shows that most such people would not have bought
copies. Yet the owners compute their "losses" as if each and every
one would have bought a copy. That is exaggeration--to put it kindly.
* The law.
Owners often describe the current state of the law, and the harsh
penalties they can threaten us with. Implicit in this approach is the
suggestion that today's law reflects an unquestionable view of
morality--yet at the same time, we are urged to regard these penalties
as facts of nature that can't be blamed on anyone.
This line of persuasion isn't designed to stand up to critical
thinking; it's intended to reinforce a habitual mental pathway.
It's elemental that laws don't decide right and wrong. Every American
should know that, forty years ago, it was against the law in many
states for a black person to sit in the front of a bus; but only
racists would say sitting there was wrong.
* Natural rights.
Authors often claim a special connection with programs they have
written, and go on to assert that, as a result, their desires and
interests concerning the program simply outweigh those of anyone
else--or even those of the whole rest of the world. (Typically
companies, not authors, hold the copyrights on software, but we are
expected to ignore this discrepancy.)
To those who propose this as an ethical axiom--the author is more
important than you--I can only say that I, a notable software author
myself, call it bunk.
But people in general are only likely to feel any sympathy with the
natural rights claims for two reasons.
One reason is an overstretched analogy with material objects. When I
cook spaghetti, I do object if someone else takes it and stops me from
eating it. In this case, that person and I have the same material
interests at stake, and it's a zero-sum game. The smallest
distinction between us is enough to tip the ethical balance.
But whether you run or change a program I wrote affects you directly
and me only indirectly. Whether you give a copy to your friend
affects you and your friend much more than it affects me. I shouldn't
have the power to tell you not to do these things. No one should.
The second reason is that people have been told that natural rights
for authors is the accepted and unquestioned tradition of our society.
As a matter of history, the opposite is true. The idea of natural
rights of authors was proposed and decisively rejected when the US
Constitution was drawn up. That's why the Constitution only *permits*
a system of copyright and does not *require* one; that's why it says
that copyright must be temporary. It also states that the purpose of
copyright is to promote progress--not to reward authors. Copyright
does reward authors somewhat, and publishers more, but that is
intended as a means of modifying their behavior.
The real established tradition of our society is that copyright cuts
into the natural rights of the public--and that this can only be
justified for the public's sake.
* Economics.
The final argument made for having owners of software is that this
leads to production of more software.
Unlike the others, this argument at least takes a legitimate approach
to the subject. It is based on a valid goal--satisfying the users of
software. And it is empirically clear that people will produce more of
something if they are well paid for doing so.
But the economic argument has a flaw: it is based on the assumption
that the difference is only a matter of how much money we have to pay.
It assumes that "production of software" is what we want, whether the
software has owners or not.
People readily accept this assumption because it accords with our
experiences with material objects. Consider a sandwich, for instance.
You might well be able to get an equivalent sandwich either free or
for a price. If so, the amount you pay is the only difference.
Whether or not you have to buy it, the sandwich has the same taste,
the same nutritional value, and in either case you can only eat it
once. Whether you get the sandwich from an owner or not cannot
directly affect anything but the amount of money you have afterwards.
This is true for any kind of material object--whether or not it has an
owner does not directly affect what it *is*, or what you can do with
it if you acquire it.
But if a program has an owner, this very much affects what it is, and
what you can do with a copy if you buy one. The difference is not
just a matter of money. The system of owners of software encourages
software owners to produce something--but not what society really
needs. And it causes intangible ethical pollution that affects us
all.
What does society need? It needs information that is truly available
to its citizens--for example, programs that people can read, fix,
adapt, and improve, not just operate. But what software owners
typically deliver is a black box that we can't study or change.
Society also needs freedom. When a program has an owner, the users
lose freedom to control part of their own lives.
And above all society needs to encourage the spirit of voluntary
cooperation in its citizens. When software owners tell us that
helping our neighbors in a natural way is "piracy", they pollute our
society's civic spirit.
This is why we say that free software is a matter of freedom, not
price.
The economic argument for owners is erroneous, but the economic issue
is real. Some people write useful software for the pleasure of
writing it or for admiration and love; but if we want more software
than those people write, we need to raise funds.
For ten years now, free software developers have tried various methods
of finding funds, with some success. There's no need to make anyone
rich; the median US family income, around $35k, proves to be enough
incentive for many jobs that are less satisfying than programming.
For years, until a fellowship made it unnecessary, I made a living
from custom enhancements of the free software I had written. Each
enhancement was added to the standard released version and thus
eventually became available to the general public. Clients paid me so
that I would work on the enhancements they wanted, rather than on the
features I would otherwise have considered highest priority.
The Free Software Foundation, a tax-exempt charity for free software
development, raises funds by selling CD-ROMs, tapes and manuals (all
of which users are free to copy and change), as well as from
donations. It now has a staff of five programmers, plus three
employees who handle mail orders.
Some free software developers make money by selling support services.
Cygnus Support, with around 50 employees, estimates that about 15 per
cent of its staff activity is free software development--a respectable
percentage for a software company.
Companies including Intel, Motorola, Texas Instruments and Analog
Devices have combined to fund the continued development of the free
GNU compiler for the language C. Meanwhile, the GNU compiler for the
Ada language is being funded by the US Air Force, which believes this
is the most cost-effective way to get a high quality compiler.
All these examples are small; the free software movement is still
small, and still young. But the example of listener-supported radio
in this country shows it's possible to support a large activity
without forcing each user to pay.
As a computer user today, you may find yourself using a proprietary
program. If your friend asks to make a copy, it would be wrong to
refuse. Cooperation is more important than copyright. But
underground, closet cooperation does not make for a good society. A
person should aspire to live an upright life openly with pride, and
this means saying "No" to proprietary software.
You deserve to be able to cooperate openly and freely with other
people who use software. You deserve to be able to learn how the
software works, and to teach your students with it. You deserve to be
able to hire your favorite programmer to fix it when it breaks.
You deserve free software.
Copyright 1994 Richard Stallman
Verbatim copying and redistribution is permitted
without royalty as long as this notice is preserved;
alteration is not permitted.
<http://www.gnu.org/philosophy/why-free.html>

View file

@ -1,5 +1,8 @@
2014-03-22 Glenn Morris <rgm@gnu.org>
* startup.el (fancy-startup-text):
* help.el (describe-gnu-project): Visit online info about GNU project.
* help-fns.el (help-fns--interactive-only): New function.
(help-fns-describe-function-functions): Add the above function.
* simple.el (beginning-of-buffer, end-of-buffer, insert-buffer)

View file

@ -1,7 +1,6 @@
;;; help.el --- help commands for Emacs
;; Copyright (C) 1985-1986, 1993-1994, 1998-2014 Free Software
;; Foundation, Inc.
;; Copyright (C) 1985-1986, 1993-1994, 1998-2014 Free Software Foundation, Inc.
;; Maintainer: emacs-devel@gnu.org
;; Keywords: help, internal
@ -293,10 +292,11 @@ If that doesn't give a function, return nil."
(interactive)
(view-help-file "COPYING"))
;; Maybe this command should just be removed.
(defun describe-gnu-project ()
"Display info on the GNU project."
"Browse online information on the GNU project."
(interactive)
(view-help-file "THE-GNU-PROJECT"))
(browse-url "http://www.gnu.org/gnu/thegnuproject.html"))
(define-obsolete-function-alias 'describe-project 'describe-gnu-project "22.2")

View file

@ -1400,8 +1400,9 @@ If this is nil, no message will be displayed."
`("GNU/Linux"
,(lambda (_button) (browse-url "http://www.gnu.org/gnu/linux-and-gnu.html"))
"Browse http://www.gnu.org/gnu/linux-and-gnu.html")
`("GNU" ,(lambda (_button) (describe-gnu-project))
"Display info on the GNU project")))
`("GNU" ,(lambda (_button)
(browse-url "http://www.gnu.org/gnu/thegnuproject.html"))
"Browse http://www.gnu.org/gnu/thegnuproject.html")))
" operating system.\n\n"
:face variable-pitch
:link ("Emacs Tutorial" ,(lambda (_button) (help-with-tutorial)))

View file

@ -1,8 +1,11 @@
2014-03-22 Glenn Morris <rgm@gnu.org>
* callproc.c (init_callproc): In etc, look for NEWS rather than GNU.
2014-03-22 Daniel Colascione <dancol@dancol.org>
* process.c (conv_sockaddr_to_lisp): When extracting the string
names of AF_LOCAL sockets, stop before reading uninitialized
memory.
names of AF_LOCAL sockets, stop before reading uninitialized memory.
2014-03-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>

View file

@ -1617,13 +1617,13 @@ init_callproc (void)
srcdir = Fexpand_file_name (build_string ("../src/"), lispdir);
tem = Fexpand_file_name (build_string ("GNU"), Vdata_directory);
tem = Fexpand_file_name (build_string ("NEWS"), Vdata_directory);
tem1 = Ffile_exists_p (tem);
if (!NILP (Fequal (srcdir, Vinvocation_directory)) || NILP (tem1))
{
Lisp_Object newdir;
newdir = Fexpand_file_name (build_string ("../etc/"), lispdir);
tem = Fexpand_file_name (build_string ("GNU"), newdir);
tem = Fexpand_file_name (build_string ("NEWS"), newdir);
tem1 = Ffile_exists_p (tem);
if (!NILP (tem1))
Vdata_directory = newdir;