[Top] [Contents] [Index] [ ? ]

GNU Software for MS-Windows and MS-DOS

This file documents the contents of the GNU MS-DOS Software CD-ROM, Edition 1.0.

This is Edition 1.0.

Preface  
1. Overview  
2. Installing the Software  
3. Documentation on the CD-ROM  
4. Packages on this CD  
A. Background Information  
B. Copying Conditions for GNU Software  
Index  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Preface

This book includes software on a CD-ROM that will make your MS-DOS/MS-Windows(1) system significantly more powerful. The GNU Project has spent the past decade developing a Unix-like operating system called GNU. (See section The GNU Manifesto.) Various components of the system have been released over the years, and many of them have been ported to MS-DOS and MS-Windows. The reason for this book and the CD-ROM is to provide a convenient resource for the users of GNU software on MS-DOS and MS-Windows platforms--and to raise money for the Free Software Foundation to develop more GNU software.

The programs on this CD-ROM can be of interest to several kinds of computer users and may be used for a wide variety of computer-oriented tasks. All of the programs are described in 4. Packages on this CD; here we give only a very brief overview of some of the things they can do.

If you use a computer, you will need to edit text files and work with files, for example move, copy them, and browse their contents. The CD-ROM includes such programs as Emacs, which is an extremely powerful text editor, ls, which can list files in many different formats, mv to move and rename files and directories, and awk and sed for text-processing tasks. If you are accustomed to GNU/Linux and Unix systems, you will be able to use the same tools and commands you have on those systems.

Many programs on this CD-ROM are tools for software developers. You can write C and C++ programs using the DJGPP and Cygnus ports of GCC, which is a C/C++ compiler, accompanied by a POSIX-compliant C library and GNU C++ class libraries, including an implementation of STL, the Standard Template Library. Program maintenance utilities such as make and RCS, the Revision Control System, are also included on the CD-ROM. Emacs can run compilers and includes many commands and packages which are meant to be used by software developers.

Other programs let you perform tasks which are hard or impossible to do on a standard MS-Windows/MS-DOS machine. For example, a utility called less lets you page back and forth through files, view several files at once, and run other programs while browsing; TeX and Groff are two packages for typesetting documents and books, viewing them, and printing them on several popular printers; info and Emacs can be used to read software documentation; Emacs has commands to read electronic mail; etc.

All the software on this CD-ROM is Free Software. This means you are free to redistribute the programs, free to make changes--even free to sell copies, provided you sell them as free software. The full source code is included on this CD-ROM. See section The GNU Manifesto, and GNU General Public License, for more information.

The Free Software Foundation is a tax-exempt charity for free software development. See section What is FSF?. By buying this book, you help support our work. If you do sell copies of the programs on this CD-ROM, we hope you'll donate some of the proceeds to the Free Software Foundation or some other free software development project.

Style Conventions  
Acknowledgments  
Technical Non-Support  Why we don't offer support to specific users.
Reporting Bugs  Please do report bugs.
Contacting the Foundation  How to get in touch with us.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Style Conventions

Here are some style conventions used in this book (and in all GNU manuals):


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Acknowledgments

This project was a long time in the making, and would not have been completed without the help of a number of talented and generous individuals. Our thanks go to all of them.

Much of the work of porting the programs on this CD-ROM is due to DJ Delorie, Charles Sandmann, Morten Welinder, Eli Zaretskii, and the rest of the DJGPP development team which ported GCC and other GNU packages to MS-DOS, and wrote a C library and auxiliary development tools to go with them. Most of the programs here would not have been available to MS-DOS/MS-Windows users without their effort.

Thanks to Douglas Alan, Peter G. Ford, and Joan C. Quigley for lending their time and equipment to produce test CDs.

Thanks much to Danilo Almeida, Holmes Boroughf, David Caswell, Robert J. Chassell, Bradley Dilger, James DuPrie, Nico Garcia, Joseph Harrington, David Krikorian, and Ron Weiss for testing the CD-ROM and reading the manual.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Technical Non-Support

The GNU Project and the Free Software Foundation do not provide technical support for the software on this CD-ROM.

In this book we have done our best to explain how to install the software on your machine. In the manuals (all included on the CD-ROM, and some also published on paper by the Free Software Foundation) we've done our best to explain how to use the software. We prefer this method of helping users because it is efficient--we write something once, and many people can read it. We don't offer support to specific users because that is an inefficient way of using our time to help the community.

This policy is so unusual that it calls for an explanation. Unlike a software company, we don't say that we publish this book and CD for the sake of the people who buy them. Our mission is to serve a much larger community, people who use free software, or might use it in the future if we make it do more.

Paradoxically, a "software company" is not a company whose purpose is writing software. These companies' purpose is profit; they write software as a means to sell copies and collect money. For software companies, making better software is merely one way of getting more customers. Technical support is another way of getting more customers. So they do some of both.

By contrast, the Free Software Foundation really does exist to write free software. We raise money to write software, not vice versa. We ask for donations so we can write more free software, and we publish books and CD-ROMs so we can write more free software. We hope one of your reasons for buying this book and CD-ROM is to help us do that.

Therefore we spend all available funds on improving software and documentation, not on helping users one by one.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Reporting Bugs

Instead of offering to help you when you find a bug, we do the opposite: we ask you to help us. We ask you to send a bug report, so we can fix the bug.

Since this is the first release of the CD-ROM, there are probably some bugs in the installation software, despite our testing. We are very interested in hearing about any such bugs, so we can fix the problems in future releases. To report a bug either with the CD-ROM or with this book, send electronic mail to bug-gnu-cdrom@gnu.org.

Each program on the CD-ROM has a maintainer whose mission is to fix bugs. Each program should include information about where to send bug reports. So if you encounter a bug in one of the programs on the CD-ROM, please do send a bug report to the program's maintainer. The maintainer will try to fix the bug for the next version. If your bug is new, the maintainer may also send you a patch to try, if he finds that convenient.

The manuals for GNU Emacs and the GNU C Compiler contain sections explaining how to write a bug report so that it will actually enable the maintainer to fix the bug. Most of the advice applies to any program. So if you would like a bug to be fixed, please follow this advice.

If your problem doesn't seem to be a bug, or if after sending the bug report you hope someone can help you work around the problem, one way to get help is by posting questions to pertinent Usenet news forums. Since most programs on this CD-ROM were compiled with the DJGPP tools, one good place to ask is on the DJGPP news group, `comp.os.msdos.djgpp'. (If you don't have access to Usenet news, send electronic mail to djgpp@delorie.com.)

The DJGPP FAQ list includes solutions for many common problems with setting up DJGPP-compiled programs. See section `Top' in DJGPP FAQ list, for details.

An HTML version of the FAQ list is also available on this CD-ROM in the file `\docs\djgppfaq.html'; you can read it with your favorite Web browser.

If you encounter problems while installing or using the native Windows version of GNU Emacs (a.k.a. NTEmacs), the file `\ntemacs\README.NT' on the CD-ROM might solve some of your problems. The NTEmacs FAQ is at http://www.cs.washington.edu/homes/voelker/ntemacs.html. There is also a mailing list for discussing issues related to NTEmacs. The list address is ntemacs-users@cs.washington.edu. For information about the list, send a message to ntemacs-users-request@cs.washington.edu with the word `info' in the body of the message. To subscribe to the list, send a message to the same address with the word `subscribe' in the body of the message.

If you encounter problems while installing or using the Cygnus ports of GNU programs, consult the file `\cygnus-ports\FAQ'.

If you want support badly enough to pay for it, please see the GNU Service Directory. This is a list of people and companies that offer technical support for GNU software for a fee. A copy is in the file `SERVICE' in the top-level directory of the CD-ROM. Please contact the Foundation if you want to be listed in the Service Directory.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Contacting the Foundation

The Free Software Foundation is a tax-exempt charity, dedicated to development of free software. See section What is the FSF?, for general information about the Foundation and its goals. The Foundation's phone number is +1 (617) 542-5942. Please call us for further information regarding the Foundation or making a tax-deductible donation.

Our address is:

 
Free Software Foundation, Inc.
59 Temple Place - Suite #330
Boston, MA 02111-1307  USA

You can also reach us via the fax or the Internet:

 
Fax: +1 (617) 542-2652
e-mail: gnu@gnu.org
WWW: http://www.gnu.org


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. Overview

This CD-ROM contains a collection of programs and utilities that run on MS-DOS and MS-Windows. Most of these utilities were developed by the Free Software Foundation for use as part of the GNU operating system (see section The GNU Manifesto).

A number of volunteers (see section Acknowledgments) made the effort to port these high-quality tools to Microsoft operating systems such as MS-DOS and MS-Windows. As a result of these efforts, the programs on this CD-ROM not only run on these systems, but also extend their functionality to make them more like a Unix or GNU system. For example, all DJGPP programs can pass long command lines to their children (forget the dreaded DOS 126-character limit!), they have built-in support for shell wild-card expansion, and they can execute shell scripts.

The bulk of the programs in this collection were compiled with DJGPP tools. While DJGPP produces 32-bit protected-mode programs which are free of the infamous DOS memory limitations, they are DOS executables, not native Windows applications.

However, these programs should also be useful on MS-Windows (both Windows 3.X(3) and Windows 9X/NT(4)), for these reasons:

We provide Windows-specific ports of certain GNU programs for which it makes a big difference. For example, this CD-ROM includes NTEmacs, which is GNU Emacs built to run native on Windows 9X/NT platforms. This port of Emacs supports asynchronous subprocesses. Other native Windows ports of GNU software are included on the CD-ROM in the `\cygnus-ports' directory. These Windows-specific executables support long file names on Windows NT as well as on Windows 9X.

Unfortunately, Windows-specific executables might need a proprietary compiler to build them from sources; DJGPP cannot build native Windows executables. We hope in the future that the GNU compiler and other tools will be capable of building them, but we cannot promise that someone will do the work.

What is in this Manual?  
Hardware Requirements  What hardware will run these programs?
Operating System Requirements  Operating systems supported by these programs.
Programs to Try  
Organization of the CD-ROM  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

What is in this Manual?

This manual gives you enough information to install the programs on the disk, read their manuals, and deal with problems. It does not document the programs themselves except in brief summary form. Detailed documentation is available in the `\info' and `\man' directories (for reading with the on-line Info browsers and man page readers) and in the `\docs' directory (ready-to-print documentation, general `README' files, `FAQ' files, etc.).

This chapter gives an overview of the rest of the manual, the basic system requirements for using the software on the CD-ROM, a brief introduction to some of the programs, and the layout of directories on the CD-ROM.

Chapter 2 tells you how to install the software and how to deal with some potential installation-related problems.

Chapter 3 explains how to access and read the documentation for each program (both on-line and on paper).

Chapter 4 gives summary descriptions of all the packages on the CD-ROM. These descriptions are similar to those in the GNU's Bulletin, published twice a year by the FSF (see section Contacting the Foundation).

Appendix A presents several articles about the GNU project and the Free Software Foundation, including The GNU Manifesto, Richard Stallman's original paper on why we believe software should be free of restrictive intellectual property rights laws.

Appendix B gives the two license documents that cover the software on this CD-ROM. These documents are the legal basis for your freedom to share GNU software; you can also use them to make your own software free.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Hardware Requirements

To run the programs on this CD-ROM, your machine needs to meet the following minimum hardware requirements:


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Operating System Requirements

The programs on this CD-ROM will run on MS-DOS and compatible systems---MS-DOS version 3.0 or later. Most programs are 32-bit protected-mode DOS executables, and will work in any environment that can run DOS programs and provide DPMI services to them.(5) Any operating system that has a "DOS Box" will be able to run these programs. Specific environments known to run these programs, apart of native MS-DOS, are: DR-DOS (version 4 or later), Novell's NWDOS, FreeDOS, Windows 3.X, Windows 9X, Windows/NT, OS/2, as well as DOSEmu on Linux-based GNU systems. The CD-ROM includes a free DPMI server CWSDPMI, for those systems which don't have built-in DPMI services. The programs are built in such a way that they load CWSDPMI automatically if DPMI services are unavailable, and unload it when they exit.

Some programs on this CD-ROM, such as NTEmacs, are native Windows 9X/NT applications, and will only run on Windows/NT or Windows 9X. (Note that NTEmacs will not run on Windows 3.X, even if you have the Win32s extension installed.)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Programs to Try

This CD-ROM includes many programs, with many different areas of functionality. In order to give you a brief idea of what is on the disk and what you can do with this software, we have included here a brief list of programs to try. For a complete list, see 4. Packages on this CD.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Organization of the CD-ROM

The programs on this CD-ROM are organized into a few main directories: `bin', `include', `lang', `share', `lib', `info', `gnu', `docs', `man', `zoneinfo', `ntemacs', `cygnus-ports', `src' and `utils'. Each directory contains different types of programs, packages, and files. Here is a brief description of these main directories and their contents, as well as some of the more important subdirectories and their contents. (Names of some of the files and directories will be truncated to 8+3 limits on MS-DOS systems.)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. Installing the Software

This chapter describes how to install and get started with the utilities on this CD-ROM. It also explains how to deal with some common problems. We start with two automatic installation procedures.

The copying installation procedure copies all the programs and the data files from the CD-ROM to your hard disk, so that you can run them quickly and do not need to keep the CD-ROM mounted. However, it supports only Windows 9X and Windows NT systems.

The run-from-the-CD installation procedure works by arranging to run the GNU programs directly from the CD-ROM, and supports all platforms, including MS-DOS and MS-Windows 3.X. It does not require any disk space, but you need to keep the CD-ROM mounted whenever you want to run any of the GNU programs.

The section "Hard Disk Installation" describes how to copy some of the programs to your hard disk, while leaving others only on the CD-ROM. Many of the programs are quite large, and you might prefer to run them from the CD-ROM to save disk space. Emacs, one of the larger programs, can take as much as 50 Megabytes for a full installation. However, if you want instant access to some or all programs, or if you need to recompile them, you will need to install them on your hard disk.

The section after, "Manual installation," is useful if you want to keep full control of your system configuration, or if automatic installation is inappropriate for your system.

Then comes a section about installing NTEmacs and the Cygnus ports of other GNU software for Windows. (Copying installation on Windows 9X/NT takes care of NTEmacs; the Cygnus ports are still experimental and not installed by either automatic procedure.)

The chapter finishes with sections about rebuilding packages from the source code, and troubleshooting common problems.

If you are unsure which installation method is best for you, please read the first paragraphs of each of the sections "Copying installation," "Run-from-the-CD Installation," "Hard Disk Installation," and "Manual Installation," so you can judge how well each option will suit you.

Copying installation  Windows installation copying to your disk.
Run-from-the-CD Installation  Set up the programs to run from the CD-ROM.
How automatic installation works  
Installing some of the files on your hard disk  Install some of the programs on your hard disk.
Manual Installation  
Windows Programs  How to set up native Windows NT/9X ports of GNU software.
How to rebuild a package from source code.  Look here if you want to rebuild a package.
Troubleshooting  Fixing problems.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Copying installation

The copying installation procedure copies all the programs and the data files from the CD-ROM to your hard disk, so that you can run them quickly and do not need to keep the CD-ROM mounted. It works only on Windows 9X and Windows NT systems; if your machine runs Windows 3.X, MS-DOS, or any other operating system, please see Run-from-the-CD Installation, or use the procedure for manually installing some of the programs on your hard disk, Installing some of the files on your hard disk.

To use the copying installation procedure, follow these steps:

  1. Insert the CD-ROM into your CD-ROM drive.

    Be sure to wait until the `BUSY' light of the CD drive goes off, before you proceed.

  2. Expand the CD-ROM root directory, in either `My Computer' or the Windows Explorer, then double-click on `install.exe'. This brings up the main installer window, showing the large GNU logo on the left and instructions to select a drive on the right.

  3. Using the drive selection widget under the instructions, select the drive where you want the programs to be copied. If you don't want NTEmacs to be installed, uncheck the `Install Emacs' box.

  4. Click the `OK' button. This starts the file copy operation which displays the progress bar while it copies files. If you need to interrupt the installation, click the `Cancel' button any time during the installation.

    After copying all the files, `install.exe' creates some shortcuts (entries in the `Start' menu), which then appear on the desktop.

  5. Finally, `install.exe' displays a message which reads:

     
    GNU programs installed.
    Please see README for additional information.
    

    At this point, a shortcut icon called `README' is visible on the desktop. We recommend that you double-click on it, to display the installation and usage notes, and read them.

  6. For Windows 9X, you may need to edit `CONFIG.SYS' to enlarge the size of the environment available to `COMMAND.COM'(6). Clicking on the `INSTALL' shortcut created by the installer will display instructions to edit `CONFIG.SYS', if that is necessary.

You are now ready to run the GNU programs copied from the CD-ROM.

For the convenience of Windows 9X users, `install.exe' creates a shortcut called `Command Prompt', which is set up to start the standard shell `COMMAND.COM', arranging for all the necessary environment variables to be defined, and also adds the GNU programs' directory to the value of the PATH variable. This special command prompt is the most convenient way of running GNU software on Windows 9X, and we suggest that you always invoke them this way, since it doesn't require changing `AUTOEXEC.BAT'.

If you prefer to be able to run the GNU programs from any command shell in any Windows 9X DOS box, you will need to edit `AUTOEXEC.BAT' and place there a call to `x:\fsf\w95fsfini.bat' (where x is the letter of the drive you selected when you ran `install.exe').

Users of Windows NT can run GNU programs from any DOS box without any changes in `AUTOEXEC.BAT'. Therefore, `install.exe' does not create the `Command Prompt' shortcut on Windows NT.

If you want to install other native Windows ports of GNU programs such as Bash and Tar, see Installing Cygnus ports of GNU Software. These Cygnus ports are not installed by default, as they are not as mature as the DJGPP ports and NTEmacs.

The full source of `install.exe', and the auxiliary files required to build it, are available in the root directory of the CD-ROM. However, note that in order to rebuild `install.exe', you will need to use a compiler that can produce native Windows applications. DJGPP, the compiler on this CD-ROM, cannot do that.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Run-from-the-CD Installation

The run-from-the-CD installation procedure sets up your system to run the programs directly from the CD-ROM. This means it does not require any disk space, but you need to mount the CD-ROM whenever you want to run any of the GNU programs. It handles all the supported platforms (see section supported platforms), including MS-DOS and MS-Windows 3.X.

This installation procedure is not entirely automatic. On most of the supported operating systems, installing software requires editing the system configuration files, `CONFIG.SYS' and `AUTOEXEC.BAT'. Most automatic installation procedures edit these files automatically, but users are often unhappy with the results.

The GNU CD-ROM is meant for serious PC users and developers, and we think that many of you do not want installation procedures to mess with your system configuration. So we decided not to make the installation procedures edit these files automatically. Instead, they create a batch file which does whatever ought to be necessary to prepare for running the GNU software from the CD-ROM. You can invoke this batch file from `AUTOEXEC.BAT', or manually. In rare cases, you will also need to make a couple of simple changes to your `CONFIG.SYS'; the installation program will tell you if you do.

We hope this will make for more reliable and easier installation. If you don't think so, please send us a bug report about the installation procedure. See section How to report bugs.

In general, MS-DOS is not case-sensitive, but Windows 9X and Windows NT preserve letter-case in file names. So in the following instructions, the capitalization won't matter for MS-DOS/Windows 3.X installations; but on Windows 9X/NT please observe the letter case of the file names, as shown below, when you install the programs.

The following instructions assume that your CD-ROM is drive `F:'. If your CD-ROM uses a different letter, replace `F' with the proper drive letter in these instructions.

This automatic installation procedure has been tested under MS-DOS and Windows 3.X, and on Windows 95 (though the copying installation procedure is usually preferable there). You're welcome to try it on other operating systems, but it might not work exactly as described below. If it doesn't work, please see Manual Installation.

To use Run-from-the-CD-ROM automatic installation, perform the following steps:

  1. Insert the CD-ROM into your CD-ROM drive.

    Be sure to wait until the `BUSY' light of the CD drive goes off, before you proceed.

  2. Change directory to the CD-ROM drive.

    You do this by entering the drive letter of your CD-ROM drive followed by a `:' at the prompt, like this: F: RET.

  3. Run `setup.bat' by typing setup RET. You should actually type this at the DOS prompt, even if you run Windows. We do not recommend running `setup.bat' by clicking the mouse on its icon, because many systems are set up to automatically close the DOS box when the batch file terminates, which will prevent you from seeing the instructions displayed by the installation procedure. (If you are accustomed to installation procedures which are invoked by clicking on the installation program's name, and if your machine runs Windows 9X/NT, check out the description of an alternative installation procedure, Copying installation, earlier in this chapter.)

    The automatic installation procedure will now examine your system configuration, create a batch file called `fsfcdini.bat' in the `\fsf' directory of your hard disk, and tell you to add a call to that batch file to `AUTOEXEC.BAT' (and possibly change a few lines in the file `CONFIG.SYS'). The message with this information is also saved in a file `fsfcdini.txt' in the same place as the batch file, so you can read the instructions again later.

  4. Edit your configuration files as instructed.

    Usually, you will only need to add a call to `fsfcdini.bat' somewhere near the end of `AUTOEXEC.BAT', like this:

     
     call c:\fsf\fsfcdini.bat F:
    

    If `AUTOEXEC.BAT' defines multiple configurations, be sure to add a call to `fsfcdini.bat' in every configuration that needs to be able to run the CD-ROM programs. Alternatively, you might consider creating a separate configuration for using the software on the CD-ROM, and adding the call to `fsfcdini.bat' in that configuration alone.

    Editing `AUTOEXEC.BAT' to call `fsfcdini.bat' when the system boots is recommended when you intend to leave the CD-ROM in the drive at all times. If not, it is better to run `fsfcdini.bat' from the command line before you begin using the programs on the CD, and run `fsfcdout.bat' when you are about to remove the CD from the drive. `fsfcdout.bat' is created automatically when you run `fsfcdini.bat'. When you run `fsfcdout.bat', it restores PATH to the value it had before `fsfcdini.bat' changed it. This removes the directories on the CD-ROM from PATH, so that DOS/Windows won't try to access nonexistent directories.

    Alternatively, you can manually remove the CD-ROM directories from PATH. In particular, if your system defines a PATH that is longer than 94 characters, you will need to do this manually, since DOS command line size limitations will prevent `fsfcdout.bat' from restoring it correctly.

    Note that if your system supports more than a single CD-ROM drive, you will need to either put the FSF CD-ROM into the same drive you used when you ran the installation procedure, or call `fsfcdini.bat' with a different drive letter every time you change the drive.

    In some cases, you will also be told to enlarge the environment size. This is done by editing the `SHELL=' line in `CONFIG.SYS'; see Troubleshooting, for detailed instructions.

  5. Reboot the machine or invoke `fsfcdini.bat' from the command-line prompt.

    This makes sure the new settings are in effect.

You are now ready to run programs from the CD-ROM.

Please note that some programs on the CD might require further setup procedures beyond CD-ROM installation, if you want to tailor their behavior to your preferences. For example, to customize Emacs, you will need to create an init file `_emacs' on your hard disk and point the HOME environment variable to the directory of that file. The on-line documentation (see section 3. Documentation on the CD-ROM) for each program describes these setup procedures in detail.

If you install the CD-ROM on Windows 9X/NT, you can use the native Windows version of GNU Emacs (a.k.a. NTEmacs). NTEmacs needs additional setup, described in NTEmacs installation, which `setup.bat' does not perform, so you will need to do it yourself.

If anything during installation went wrong, please see Troubleshooting, later in this manual. The detailed description of the installation procedure below might also help you understand the cause of your problem and work around it.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

How automatic installation works

Here we explain what the run-from-the-CD installation procedure does, and how. Knowing how installation works, you can work around any problems that occur. You can even recompile the installation program with DJGPP, since we provide its full documented source (the file `fsfcdset.c' in the root directory of the CD-ROM). However, please note that parts of the manual installation will need to be done before you will be able to recompile the installation program (unless a previous version of DJGPP is already installed on your machine).

The run-from-the-CD installation procedure uses the `setup.bat' batch file and the `fsfcdset.exe' program invoked by the batch file.

Here's what `setup.bat' does, step by step.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Installing some of the files on your hard disk

Here we describe how to copy some or all of the packages from the CD-ROM to your local disk.

If you can afford the disk space, we recommend that you copy the contents of the `\bin', `\gnu\emacs', `\share', and `\zoneinfo' directories to your hard disk and leave the rest on the CD-ROM. If you need to develop software using the DJGPP tools, also copy the `\include', `\lib' and `\lang' directories. (NTEmacs users need to consider copying the contents of the `\ntemacs' directory as well.) This way, you will need the CD in the drive only to look at the sources of the programs, or when you need to consult the on-line documentation. If you want to be able to access the documentation without inserting the CD, copy the `\info' and `\man' directories to your local disk as well.

If you would like to copy the entire contents of the CD-ROM to your hard disk, just use any command that can copy directories recursively. For example:

 
 cp -pr f:\ .

(cp is part of the GNU Fileutils on this CD-ROM.)

You can also do this using the standard DOS program xcopy, like this:

 
 xcopy f:\*.* . /s /e

Note that stock DOS programs don't understand Unix-style forward slashes, while the programs on this CD-ROM understand both styles.

To set the programs up to run from your hard disk after you've copied the entire CD-ROM, just run the `setup.bat' that was copied from the CD. Assuming that you copied the CD-ROM contents to a directory called `D:\cdrom', you need to issue this command:

 
 d:\cdrom\setup

You might prefer to copy some of the packages, or even parts of some packages, but run other programs from the CD-ROM when you want them. Possible reasons for copying certain packages include:

In these and similar cases, special setup might be required for the programs that you copy to your disk. That's because some of the programs need to know where to find their auxiliary files or need some environment variables to be set for them to work correctly. For example, programs like Groff and TeX need to find their font files and device descriptions to produce correct output. For operation from the CD-ROM, the `DJGPP.ENV' file in the root directory of the CD-ROM and the `fsfcdini.bat' batch file created by the installation procedure set these things up. Similarly, when you use `install.exe' to install the programs on your local disk, it creates the `DJGPP.ENV' file and `w95fsfini.bat' batch file in the `\fsf' directory of the drive you have chosen during the installation, which take care of these settings. In contrast, when you manually copy parts of the CD elsewhere, you will need to change some of these settings.

Here's what you need to do:

When you remove the CD-ROM from the drive, you will need to change the PATH variable so that it doesn't refer to directories on the CD. Otherwise, you might see error messages from DOS/Windows when you invoke programs. See section Removing the CD-ROM.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Manual Installation

Before beginning manual installation, you should ensure that the following things are true:

If you would like to use NTEmacs, you should set it up as described in NTEmacs Installation.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Windows Programs

NTEmacs and the Cygnus ports of GNU utilities included on this CD-ROM are native Windows 9X/NT applications and therefore need a different setup. This section explains how to install and set up NTEmacs and Cygnus-compiled ports of GNU software (including Bash) on Windows 9X and Windows NT.

Note that the Win32s add-on for Windows 3.X is not enough to run these ports on MS-Windows 3.X. They run only on Windows NT and Windows 9X.

Setting up NTEmacs  How to install NTEmacs on your system.
`.emacs' init file on Windows NT  How Emacs locates your .emacs file on Windows 95/NT.
Installing Cygnus ports of GNU Software  How to install NT versions of GNU tar and bash.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Setting up NTEmacs

The easiest way to set up NTEmacs on your system is to use the copying automatic installation procedure; it does the whole job automatically.

Otherwise, you need to use the addpm program, which creates registry entries in your system's registry database. When you run Emacs, it uses these registry entries to determine where it has been installed and locate its support files. The addpm program is part of the Emacs distribution, and is located in the `bin' subdirectory of the NTEmacs main directory.

If you would like to run NTEmacs from the CD-ROM, you will find addpm in the `\ntemacs\bin' directory on the CD. Assuming your CD-ROM is in drive `F:', you should invoke addpm with the NTEmacs directory as the only argument, like this:

 
  f:\ntemacs\bin\addpm f:\ntemacs

If you have copied NTEmacs to your local hard disk (see section Installing some of the files on your hard disk), and assuming that it is in the directory `c:\gnu\emacs', you would invoke addpm as follows:

 
  start c:\emacs\bin\addpm c:\gnu\emacs

When addpm runs, it creates a set of entries in the Windows registry database. addpm first tries to create these entries under the key HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs. If you do not have permission to modify HKEY_LOCAL_MACHINE, then addpm creates the entries under the key HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs. You can view the entries that addpm creates using the Windows Registry Editor program that comes with Windows 95 and NT. The Registry Editor is called regedt32 on Windows NT, regedit on Windows 9X.

In addition to creating the registry entries, addpm creates a folder with an icon for the NTEmacs executable. If you are using NT 4.0 or Windows 9X, addpm also creates a menu command named "Emacs" that is accessible via the Start button under the menu path Start|Programs|GNU Emacs|Emacs.

Both the folder icon and the Start menu command are convenient links for invoking NTEmacs via the Windows user interface. To invoke NTEmacs from a command prompt, run the runemacs program located in the NTEmacs `bin' subdirectory.

You will probably want to extend the PATH environment variable to include the NTEmacs `bin' directory so that you can invoke runemacs anywhere from a command prompt. Following the above example, you would extend PATH to include `f:\ntemacs\bin' if you run NTEmacs from the CD, or `c:\emacs\bin' if you copy it to your local disk. If you are using Windows 9X, you can modify PATH in the `AUTOEXEC.BAT' file; once you have changed `AUTOEXEC.BAT', you must reboot your system to make the changes take effect. If you are using Windows NT, then you can set PATH in the System panel of the Control Panel dialog; the HOME environment variable will be set for all processes started after you close the System panel.

If you encounter problems while installing or using the native Windows version of GNU Emacs (a.k.a. NTEmacs), the file `\ntemacs\README.NT' on the CD-ROM might solve some of your problems. The NTEmacs FAQ is at http://www.cs.washington.edu/homes/voelker/ntemacs.html. There is also a mailing list for discussing issues related to NTEmacs. The list address is ntemacs-users@cs.washington.edu. For information about the list, send a message to ntemacs-users-request@cs.washington.edu with the word `info' in the body of the message. To subscribe to the list, send a message to the same address with the word `subscribe' in the body of the message.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

`.emacs' init file on Windows NT

Emacs on Windows 9X and NT uses the HOME environment variable to locate its `.emacs' startup file. The value of the HOME environment variable should be the directory in which you have placed your `.emacs' file (and nothing more; do not, for example, append a semi-colon to the end of the directory as you might do for the PATH environment variable).

Note that HOME is not set by the operating system by default, so you must set it yourself. If you are using Windows 9X, then you can set HOME in the `AUTOEXEC.BAT' file; once you have changed `AUTOEXEC.BAT', you must reboot your system for the changes to take effect. If you are using Windows NT, then you can set HOME in the System panel of the Control Panel dialog; the HOME environment variable will now be set for all processes started after you have closed the System panel.

If your machine has a dual-boot DOS/WindowsNT configuration, you can use both DOS and NT versions of Emacs with the same init file. To make this possible, NTEmacs looks for its init file under the DOS name `_emacs' if the usual `.emacs' file does not exist.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Installing Cygnus ports of GNU Software

The native Windows NT/9X ports of GNU tar, Bash and other utilities are included with the CD-ROM as compressed `.tar.gz' archives. To install them on your hard disk, you need to perform the following steps:

The Cygnus Development toolkit is provided on the CD-ROM in the `cdk.tar.gz' and `cdk-src.tar.gz' files in the `\cygnus-ports\' directory.

To install the binaries of the Development Kit, issue the following commands:

 
  x:
  cd \cygnus-ports
  mkdir c:\gnu
  tar -xvzf cdk.tar.gz -C //c/gnu

After tar exits, setup the environment:

On Windows/NT, these variables are set via the System panel of the Control Panel dialog; on Windows 95, they are set in `AUTOEXEC.BAT' file.

To install the sources of the Cygnus Development Toolkit, issue the following commands:

 
  x:
  cd \cygnus-ports
  tar -xvzf cdk-src.tar.gz -C //c/gnu

This creates the directory `c:\gnu\cdk' and installs the Development Toolkit sources in that directory.

If you should need to uninstall these native Windows ports, you may do so via the Add/Remove Programs control panel.

If you encounter problems while installing or using the Cygnus ports of GNU programs, consult the file `\cygnus-ports\FAQ'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

How to rebuild a package from source code.

The CD-ROM includes binaries for all the programs. However, you may want to rebuild some programs, to correct a bug or add a feature. This section explains how to do that.

The description below refers to the DJGPP programs on the CD-ROM, for which the full development environment is provided as part of the CD. Native Windows 9X/NT programs, such as NTEmacs, require a native Windows 9X/NT compiler to build them; DJGPP can't do it. The documentation specific to those programs explains how to build them.

If you are familiar with the way GNU packages are built on Unix and GNU systems, you know it is usually very simple, and you can do it in a directory other than the one in which the sources reside. That is very convenient when the sources are on a read-only filesystem such as a CD-ROM.

Unfortunately, not all of the ports on this CD-ROM support this feature--it requires sophisticated tools that aren't available on stock MS-DOS machines. The CD-ROM includes all these tools, but many of the ports were done before these tools were available, and therefore can only be built from the same directory where the sources are kept.

Moreover, since different packages were ported by different people, the ways to reconfigure and rebuild them vary. While we cannot possibly explain here how to build each and every package, detailed instructions are available with the sources of each package. The following outlines the general procedure and explains where to find the instructions for every package.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Troubleshooting

This section documents some problems that you may run into, and the solutions for them.

If you have problems not mentioned below that you are unable to resolve, see Contacting the Foundation. However, for problems with running a specific program, please send bug reports to the maintainer of that program. See section Reporting Bugs.

Installation Problems  
Problems Running the Programs  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Installation Problems

The following are problems you might encounter during installation:


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Problems Running the Programs

The following problems could be encountered after you complete the CD-ROM installation and begin to use the GNU software.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. Documentation on the CD-ROM

The GNU Project's manuals are written in Texinfo. Texinfo files can be formatted into printed documents using TeX, and can be converted into hypertext Info format using makeinfo; an HTML converter is being developed.

All of the manuals we produce (including this one) are included on the CD-ROM, already processed into HTML and several printable formats (in the `\docs' directory), and into Info format (in the `\info' directory). All the programs required for you to write and process your own or others' Texinfo files are on the CD-ROM also.

The Free Software Foundation also sells nicely printed paper copies of the more popular GNU manuals.

Some programs come with documentation in the traditional Unix man pages format. While the man pages are sometimes not up to date, and we provide them primarily for people who are accustomed to using man pages, they are useful as quick summaries of usage and options.

Texinfo files are normally marked by a `.texi' or a `.texinfo' extension. However, MS-DOS only allows an 8-character file name with a 3-character extension, e.g. filename.ext. Therefore, when this CD is mounted by MS-DOS or Windows 3.X, Texinfo files are marked by a `.tex' or a `.txi' extension. Windows 9X and Windows/NT machines should see the full file names.

How to Run info  
How to Read HTML-formatted Documentation  
How to Read Man Pages  
Formats that Produce Printed Manuals  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

How to Run info

info is a program for reading documentation on-line. The info program, and associated Info files, are installed on this CD-ROM. You can use info to read all the documentation in this format.

To run the stand-alone Info program, type info on the command line, and follow the instructions. If you have never run Info, type h after starting it. This will give you more detailed instructions on how to proceed.

Emacs also contains a program for reading Info documents. It lets you use the mouse to follow hypertext links, uses colors to highlight links, and doesn't require you to leave the editor to browse the documentation.

You can view Info documentation with GNU Emacs by typing CTRL-h i (press and hold the CTRL key and then press the h key, then type i at the prompt in the echo area). For help in using Info within Emacs, type h after starting Info.

To exit Emacs info, type q. This returns you to the buffer where you were when you entered Info. Alternatively, you could divide your Emacs display into two or more windows and leave the Info buffer displayed in one of them. This way, you can continue working and refer to the documentation when you need to.

Info files are produced from Texinfo files by formatting them with makeinfo. See section `Creating an Info File' in The Texinfo Manual, for more information.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

How to Read HTML-formatted Documentation

HTML, an acronym for the HyperText Markup Language, is a language used to prepare hypertext documents that might be distributed on different machines connected via the Internet. HTML is also a format of choice for the main system documentation on some modern platforms.

Many MS-DOS/MS-Windows machines have one of the available browsers for HTML documents installed on their disk. We include the HTML-formatted versions of the GNU documentation on this CD-ROM for those who are used to reading this format and prefer it to the (functionally equivalent) Info format.

The HTML-formatted documentation is in the `\docs' directory of the CD, inside subdirectories arranged by the package names. The HTML documentation for each package is split into several files with the .htm extension. The files' names are constructed from the program name and a number, like `gcc_1.htm', `gcc_2.htm', etc. To read a manual from the beginning, start with the file whose name ends with `_1.htm', like `cpp_1.htm' for the preprocessor manual. If you need to look into the index, the function and topic indices are in the files whose names end with `_f.htm' and `_t.htm', respectively.

To read an HTML file, you have two alternatives:


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

How to Read Man Pages

We also provide man (short for "manual") pages for many utilities. Unix systems have traditionally used this format, and a terse style, for the reference documentation for programs, file formats, and system interfaces.

To read man pages, type man command at the MS-DOS prompt after installing the CD-ROM, or type M-x man inside Emacs. The man pages in directory `\man' on this CD-ROM are already formatted; the man command just pages through them using less, or whichever pager you have specified with the environment variable PAGER. (The source file for each man page is included with the source distribution of the program.)

The stand-alone Info reader (see section How to Run info) can also display man pages. If you say `info xyzzy' and the program xyzzy doesn't have Info documentation, `info.exe' will automatically call the man command and display its output.

Please note that not all commands have man documentation. The man documentation is provided primarily for people familiar with this format; we would rather spend time and effort on the Texinfo versions of the documentation. Therefore, expect the man pages to be outdated, for those programs that have Info documentation.

We suggest you always invoke info to refer to documentation. If a program has Info documentation, info will show you that; otherwise, info will automatically display the program's man page.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Formats that Produce Printed Manuals

We have included preformatted documentation for the various packages on this CD-ROM in two types of formats: Info format (described above) so you can read the information on-line, and DVI, PostScript, and PCL formats so you can print on various types of printers.

DVI (for `DeVice Independent'(8)) files are produced from Texinfo files by the TeX typesetting program. DVI files are marked by a `.dvi' extension and can be converted into many different printer formats.

The CD-ROM includes the programs dvips and dvilj4 for converting DVI files into PostScript and PCL formats.

PostScript format is understood by many laser printers. PostScript files are produced from DVI files using the dvips command and have a `.ps' extension.

PCL files are based on Hewlett-Packard's Printer Control Language. Most HP LaserJet printers support this language; please refer to your printer documentation to see if it does. PCL files are produced by running the dvilj4 command, and are marked by a `.lj' extension.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4. Packages on this CD

A lot of effort went into making the programs on this CD-ROM behave the same way they do on Unix and GNU systems, or as close as possible. Sometimes DOS-specific features were added to make up for functionality that is missing on MS-DOS/MS-Windows.

However, due to fundamental shortcomings in MS-DOS, some of the programs on the CD-ROM are missing features. Features that take advantage of multi-processing will not, in general, work on MS-DOS. This includes the Emacs shell and gdb modes, and the parallel command execution in GNU Make. You will also not be able to utilize the network facilities of Emacs, such as ange-ftp. (In contrast, NTEmacs does support both multi-processing and network facilities.)

Many packages include DOS-specific README files that describe the functionality added for MS-DOS; refer to them for more information.

To use fully featured versions of these utilities, we suggest that you switch to a Linux-based GNU system such as Debian or Red Hat. These systems are not only more powerful, they (or some of them) are also entirely free software. If you have a 386 or better, with at least 8 megabytes of memory, you can run one of these systems.

Here is a listing of the packages available on this CD-ROM. There are three types of documentation that may be available for packages listed below. [Doc] indicates that the FSF sells a bound, printed manual. [Info] indicates that there is some form of Texinfo documentation available for the package (which may exist as a manual or an Info page, or which you can format into either a Texinfo manual or an Info page). [Man] indicates that there is man-style documentation available for the package.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A. Background Information

These articles provide background information about free software, the GNU project, and the Free Software Foundation.

What This Software Won't Do  What this software won't do.
What's GNU?  
What is Free Software?  What is free software?
What Is the Free Software Foundation?  What is the Free Software Foundation?
What is Copyleft?  What is copyleft?
Linux and the GNU Project  What is a Linux-based GNU system?
The GNU Manifesto  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

What This Software Won't Do

The software that comes with this book can make a Microsoft operating system more convenient to use, or more like Unix and GNU/Linux systems that you might be familiar with. But there is something it can't do: it can't make you free.

GNU software is free software (see section What is Free Software?), which means you have the freedom to use the software in all constructive ways that don't threaten the freedom of others. The source code is included, so you can study the software, adapt it to your needs, and release versions with new features. You can also give away copies of these programs, or even sell copies, as long as you do it as specified in the GNU General Public License. This software is free software because in using it you are free.

But the software on the CD is not a whole operating system. It is designed to work with MS-DOS or MS-Windows, not replace them entirely. MS-DOS and MS-Windows are not free software; if you use them, Microsoft has you under its thumb.

Not that we mean to single out Microsoft; in this respect, it is no different from most software companies. Microsoft operating systems are proprietary software. This means the source code is a secret, so that you cannot learn how the software works, or change it to fit your needs, or publish improvements. And if you share copies with your neighbor, the proprietary software publisher will call you a "pirate" and threaten to put you in jail. As long as there is proprietary software on your computer, your freedom is only partial.

We hope that in using the free GNU software that comes with this book, you will start to appreciate the freedom that free software provides. If you do, the next step is to get rid of the proprietary operating system and switch to a free system--a Linux-based GNU system (see section Linux and the GNU Project).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

What's GNU?

GNU (pronounced "guh-new") is an operating system which is upward-compatible with Unix, and is entirely free software. The first test release of the entire GNU system was in 1996; however, most components of the GNU system have been in use for some number of years, and many of them are on the CD-ROM in this book.

But the short answer is, GNU's Not Unix. (That's what GNU stands for.)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

What is Free Software?

The word "free" in "free software" refers to freedom, not price. It means you have the freedom to use the software in all constructive ways that don't threaten the freedom of others.

You may or may not pay money to get GNU software, but either way you have certain specific freedoms once you get it. First, you have the freedom to copy a program and distribute it to your friends and co-workers; second, you have the freedom to study and change a program as you wish (this requires having access to the source code); third, you have the freedom to release a modified or improved version.

If you redistribute GNU software, you may charge a distribution fee or you may give it away; but you must always follow the distribution terms--in most cases the GNU General Public License--which ensure that the software will also be free software for the person who gets the copy from you. For details, see What is Copyleft?, and GNU General Public License.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

What Is the Free Software Foundation?

The Free Software Foundation, Inc. (the FSF) is dedicated to eliminating restrictions on copying, redistributing, understanding, and modifying computer programs. We do this by promoting the development and use of free software--focusing on the GNU system.

Other organizations distribute whatever free software happens to be available. By contrast, the FSF concentrates on development of new free software. We have worked to produce a free system complete enough to eliminate the need for proprietary operating systems.

Besides developing GNU, the Foundation distributes software electronically over the Internet at no charge, and distributes CD-ROMs and printed manuals for which we charge a fee. We depend on your purchases and donations to keep the GNU Project moving forward. We are tax exempt--any donations you make to the Free Software Foundation are tax deductable.

After we release programs, we continually update and improve them. We release between 2 and 20 updates per year for each program. Doing this while developing new programs takes a lot of work, so any donations of pertinent source code and documentation, machines, labor, or money are always appreciated.

The Foundation also maintains a Service Directory--a list of people who offer service to users of GNU software for a fee. The Service Directory is located in the file `SERVICE' in the top-level directory of the CD-ROM. Service can mean answering questions for new users, customizing programs, porting to new systems, or technical support.

If you would like to be listed in the Service Directory, if you would like to help GNU software, or if you'd like an up-to-date FSF order form, please contact us. See section Contacting the Foundation.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

What is Copyleft?

The simplest way to make a program free is to put it in the public domain, uncopyrighted. But this permits others to make proprietary modified versions, which deny others the freedom to redistribute and modify; such versions undermine the goal of giving freedom to all users. To prevent this, copyleft uses copyright in a novel manner. Typically, copyrights are used to take away freedoms; copyleft uses copyright to preserve freedoms. Copyleft is a legal instrument that requires those who redistribute a program to include the rights to use, modify, and redistribute the code; the code and the freedoms become legally inseparable.

The copyleft used by the GNU Project is made from the combination of a regular copyright notice and the GNU General Public License (or GNU GPL; see section GNU General Public License). The GNU GPL is a copying license which basically says that you have the aforementioned freedoms.

An alternate form, the GNU Library General Public License (or GNU LGPL; see section GNU Library General Public License), applies to a few GNU libraries. This license permits linking the libraries into proprietary executables under certain conditions. The appropriate license is included in each GNU source code distribution and in many manuals. Printed copies are available upon request.

We strongly encourage you to copyleft your programs and documentation, and we have made it as simple as possible for you to do so. The details on how to apply either form of public license appear at the end of that license.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Linux and the GNU Project

Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is more often known as "Linux", and many users are not aware of the extent of its connection with the GNU Project.

There really is a Linux; it is a kernel, and these people are using it. But you can't use a kernel by itself; a kernel is useful only as part of a whole system. The system in which Linux is typically used is a modified variant of the GNU system--in other words, a Linux-based GNU system.

Many users are not fully aware of the distinction between the kernel, which is Linux, and the whole system, which they also call "Linux". The ambiguous use of the name doesn't promote understanding.

Programmers generally know that Linux is a kernel. But since they have generally heard the whole system called "Linux" as well, they often envisage a history which fits that name. For example, many believe that once Linus Torvalds finished writing the kernel, his friends looked around for other free software, and for no particular reason most everything necessary to make a Unix-like system was already available.

What they found was no accident--it was the GNU system. The available free software added up to a complete system because the GNU Project had been working since 1984 to make one. The GNU Manifesto (see section The GNU Manifesto) had set forth the goal of developing a free Unix-like system, called GNU. By the time Linux was written, the system was almost finished.

Most free software projects have the goal of developing a particular program for a particular job. For example, Linus Torvalds set out to write a Unix-like kernel (Linux); Donald Knuth set out to write a text formatter (TeX); Bob Scheifler set out to develop a window system (X Windows). It's natural to measure the contribution of this kind of project by specific programs that came from the project.

If we tried to measure the GNU Project's contribution in this way, what would we conclude? One CD-ROM vendor found that in their "Linux distribution", GNU software was the largest single contingent, around 28% of the total source code, and this included some of the essential major components without which there could be no system. Linux itself was about 3%. So if you were going to pick a name for the system based on who wrote the programs in the system, the most appropriate single choice would be "GNU".

But we don't think that is the right way to consider the question. The GNU Project was not, is not, a project to develop specific software packages. It was not a project to develop a C compiler, although we did. It was not a project to develop a text editor, although we developed one. The GNU Project's aim was to develop a complete free Unix-like system.

Many people have made major contributions to the free software in the system, and they all deserve credit. But the reason it is a system---and not just a collection of useful programs--is because the GNU Project set out to make it one. We made a list of the programs needed to make a complete free system, and we systematically found, wrote, or found people to write everything on the list. We wrote essential but unexciting major components, such as the assembler and linker, because you can't have a system without them. A complete system needs more than just programming tools; the Bourne Again SHell, the PostScript interpreter Ghostscript, and the GNU C library are just as important.

By the early 90s we had put together the whole system aside from the kernel (and we were also working on a kernel, the GNU Hurd, which runs on top of Mach). Developing this kernel has been a lot harder than we expected, and we are still working on finishing it.

Fortunately, you don't have to wait for it, because Linux is working now. When Linus Torvalds wrote Linux, he filled the last major gap. People could then put Linux together with the GNU system to make a complete free system: a Linux-based GNU system (or GNU/Linux system, for short).

Putting them together sounds simple, but it was not a trivial job. The GNU C library (called glibc for short) needed substantial changes. Integrating a complete system as a distribution that would work "out of the box" was a big job, too. It required addressing the issue of how to install and boot the system--a problem we had not tackled, because we hadn't yet reached that point. The people who developed the various system distributions made a substantial contribution.

The GNU Project supports GNU/Linux systems as well as the GNU system--even with funds. We funded the rewriting of the Linux-related extensions to the GNU C library, so that now they are well integrated, and the newest GNU/Linux systems use the current library release with no changes. We also funded an early stage of the development of Debian GNU/Linux.

We use Linux-based GNU systems today for most of our work, and we hope you use them too. But please don't confuse the public by using the name "Linux" ambiguously. Linux is the kernel, one of the essential major components of the system. The system as a whole is more or less the GNU system.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

The GNU Manifesto

By Richard Stallman

 
Copyright © 1985, 1993 Free Software Foundation, Inc., 59
Temple Place, Suite 330, Boston, MA 02111, USA.

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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.

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 the latest issue of the GNU's Bulletin. The list is much too long to include here.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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. (9)

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Why All Computer Users Will Benefit

Once GNU is written, everyone will be able to obtain good system software free, just like air. (10)

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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. (11)

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 received 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? (12)

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. (13)

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 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, 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:

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

B. Copying Conditions for GNU Software

B.1 GNU GENERAL PUBLIC LICENSE  
B.2 GNU LIBRARY GENERAL PUBLIC LICENSE  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

B.1 GNU GENERAL PUBLIC LICENSE

Version 2, June 1991

 
Copyright © 1989, 1991 Free Software Foundation, Inc.
59 Temple Place -- Suite 330, Boston, MA 02111-1307, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

B.1.1 Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  1. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

    Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

  2. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

    You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

  3. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    1. You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

    2. You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

    3. If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

    These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

    Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

    In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

  4. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

    1. Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    2. Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    3. Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

    The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

    If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

  5. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

  6. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

  7. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

  8. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

    If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

    It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

    This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

  9. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

  10. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

    Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

  11. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

    NO WARRANTY

  12. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

B.1.2 How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

 
one line to give the program's name and an idea of what it does.
Copyright (C) 19yy  name of author

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

 
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'.  This is free software, and you are welcome
to redistribute it under certain conditions; type `show c'
for details.

The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

 
Yoyodyne, Inc., hereby disclaims all copyright
interest in the program `Gnomovision'
(which makes passes at compilers) written
by James Hacker.

signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

B.2 GNU LIBRARY GENERAL PUBLIC LICENSE

Version 2, June 1991

 
Copyright © 1991 Free Software Foundation, Inc.
59 Temple Place -- Suite 330, Boston, MA 02111-1307, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

[This is the first released version of the library GPL.  It is
 numbered 2 because it goes with version 2 of the ordinary GPL.]


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

B.2.1 Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.

This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it.

For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights.

Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library.

Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license.

The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such.

Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better.

However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries.

The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library.

Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  1. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you".

    A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.

    The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)

    "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.

    Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.

  2. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.

    You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

  3. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    1. The modified work must itself be a software library.

    2. You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.

    3. You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

    4. If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.

      (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)

    These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

    Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.

    In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

  4. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.

    Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.

    This option is useful when you wish to copy part of the code of the Library into a program that is not a library.

  5. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.

    If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.

  6. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

    However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.

    When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.

    If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

    Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.

  7. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.

    You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:

    1. Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)

    2. Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.

    3. If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.

    4. Verify that the user has already received a copy of these materials or that you have already sent this user a copy.

    For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

    It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.

  8. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:

    1. Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.

    2. Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.

  9. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

  10. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.

  11. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

  12. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.

    If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.

    It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

    This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

  13. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

  14. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

    Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.

  15. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

    NO WARRANTY

  16. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  17. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

B.2.2 How to Apply These Terms to Your New Libraries

If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).

To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

 
one line to give the library's name and an idea of what it does.
Copyright (C) year  name of author

This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.

This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,
USA.

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:

 
Yoyodyne, Inc., hereby disclaims all copyright interest in the library
`Frob' (a library for tweaking knobs) written by James Random Hacker.

signature of Ty Coon, 1 April 1990
Ty Coon, President of Vice

That's all there is to it!


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Index

Jump to:   .  
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   R   S   T   U   V  

Index Entry Section

.
`.emacs' file, for DJGPP EmacsRun-from-the-CD Installation
`.emacs' file, for NTEmacs`.emacs' init file on Windows NT

A
Access modes, file4. Packages on this CD
Adding menu items to `dir' file4. Packages on this CD
Algebraic languagesPrograms to Try
ANSI C4. Packages on this CD
Archive maintenance4. Packages on this CD
Archive maintenance4. Packages on this CD
Archiving files4. Packages on this CD
Archiving files, with cpio4. Packages on this CD
ASCII to EBCDIC conversion4. Packages on this CD
ASCII to PostScript conversion4. Packages on this CD
Assembler4. Packages on this CD

B
Backing up files4. Packages on this CD
Backing up files, with cpio4. Packages on this CD
Backslash, as directory separatorStyle Conventions
Bash4. Packages on this CD
Bash, installing the Cygnus portInstalling Cygnus ports of GNU Software
Bibliographic database search4. Packages on this CD
BibTex4. Packages on this CD
Binary data, embedding in a source4. Packages on this CD
Binary files, searching for embedded text strings4. Packages on this CD
Binary Utilities4. Packages on this CD
Block I/O4. Packages on this CD
Boot drive, determiningHow automatic installation works
Browsing text filesPrograms to Try
BugsTroubleshooting
Bugs, reportingReporting Bugs
Byte-swapping in a file4. Packages on this CD

C
C Compiler4. Packages on this CD
C library4. Packages on this CD
C source code, formatting4. Packages on this CD
C++ class library4. Packages on this CD
C++ Compiler4. Packages on this CD
Calc4. Packages on this CD
Calculator, inside Emacs4. Packages on this CD
Calculator, stand-alone4. Packages on this CD
Calculus4. Packages on this CD
CD-ROM directoriesOrganization of the CD-ROM
CD-ROM drives, multipleRun-from-the-CD Installation
CD-ROM initialization batch fileHow automatic installation works
CD-ROM programs, getting helpReporting Bugs
CD-ROM, determining the drive letterHow automatic installation works
Character-set mapping4. Packages on this CD
Checksum, CRC4. Packages on this CD
Checksum, CRC4. Packages on this CD
Checksum, simple4. Packages on this CD
Code profiling4. Packages on this CD
Colorization of listed files4. Packages on this CD
Command interpreter4. Packages on this CD
Command Prompt configured for GNU programsCopying installation
Comparing binary files4. Packages on this CD
Comparing directories4. Packages on this CD
Comparing files4. Packages on this CD
Comparing files4. Packages on this CD
Comparing files interactively4. Packages on this CD
Comparing three files4. Packages on this CD
Compiler, C4. Packages on this CD
Compiler, C++4. Packages on this CD
Compiler, Objective-C4. Packages on this CD
Compressing filesPrograms to Try
Compression4. Packages on this CD
Concatenating files4. Packages on this CD
Configuration instructions, saved in `fsfcdini.txt' fileRun-from-the-CD Installation
Configuring sources from another directoryHow to rebuild a package from source code.
Context-based file-splitting4. Packages on this CD
Conversion, arbitrary character sets4. Packages on this CD
Conversion, spaces to tabs4. Packages on this CD
Conversion, tabs to spaces4. Packages on this CD
Converting Texinfo to PostScript4. Packages on this CD
Converting text files, DOS to Unix4. Packages on this CD
Converting text files, Unix to DOS4. Packages on this CD
Copying CD-ROM to hard diskInstalling some of the files on your hard disk
Copying files4. Packages on this CD
Copying files if changed4. Packages on this CD
Copying files to hard diskInstalling some of the files on your hard disk
Copying installation procedureCopying installation
CopyleftWhat is Copyleft?
Counting4. Packages on this CD
Creating directories4. Packages on this CD
Creating ID database4. Packages on this CD
Cross referencesStyle Conventions
Cygnus Development Kit, installationInstalling Cygnus ports of GNU Software

D
Database management4. Packages on this CD
Database, bibliographic4. Packages on this CD
Debugger, GDB4. Packages on this CD
DebuggingPrograms to Try
Debugging info, removing from executables4. Packages on this CD
Debugging scanners for mkid4. Packages on this CD
Deleting directories4. Packages on this CD
Deleting files4. Packages on this CD
Demangler, for C++ function names4. Packages on this CD
Desk calculator, stand-alone4. Packages on this CD
Dictionaries for IspellOrganization of the CD-ROM
diff and binary files version control4. Packages on this CD
Diff Utilities4. Packages on this CD
diff, generating patches4. Packages on this CD
Differences between source/text files4. Packages on this CD
Directories, creating4. Packages on this CD
Directories, deleting4. Packages on this CD
Directories, listing4. Packages on this CD
Directories, listing4. Packages on this CD
Directories, listing4. Packages on this CD
Directories, removing4. Packages on this CD
Directories, space used4. Packages on this CD
Directory hierarchyOrganization of the CD-ROM
Directory separators, Unix vs DOSStyle Conventions
Disassembler4. Packages on this CD
Disks, space4. Packages on this CD
Disks, usage4. Packages on this CD
Displaying files4. Packages on this CD
DJGPP4. Packages on this CD
DJGPP development toolsPrograms to Try
DJGPP Emacs, where to put `.emacs' fileRun-from-the-CD Installation
DJGPP environment variableManual Installation
DJGPP environment variable, programs copied to hard diskInstalling some of the files on your hard disk
DJGPP FAQ list4. Packages on this CD
DJGPP programs, useful on MS-Windows1. Overview
DJGPP.ENV, editingInstalling some of the files on your hard disk
DJGPP.ENV, structureInstalling some of the files on your hard disk
Document formatting4. Packages on this CD
Documentation, formattedOrganization of the CD-ROM
DOS box closes after installationInstallation Problems
DOS box configured for GNU programsCopying installation
DPMI, required to run DJGPP programsOperating System Requirements
Drive letter for the CD driveHow automatic installation works
DVI files, previewing4. Packages on this CD
DVI files, printing4. Packages on this CD
DVI format of printed manualsFormats that Produce Printed Manuals

E
EBCDIC to ASCII conversion4. Packages on this CD
Editor, Emacs4. Packages on this CD
Editor, line-oriented4. Packages on this CD
Editor, stream4. Packages on this CD
Elapsed time of program run4. Packages on this CD
Emacs init file, for DJGPP EmacsRun-from-the-CD Installation
Emacs init file, for NTEmacs`.emacs' init file on Windows NT
Embedding binary data in a source4. Packages on this CD
enscript filesOrganization of the CD-ROM
Environment modification4. Packages on this CD
Environment printing4. Packages on this CD
Environment size, enlargingRun-from-the-CD Installation
Environment size, enlargingInstallation Problems
Environment size, in Windows DOS boxInstallation Problems
Environment size, settingManual Installation
Environment space, requiredHow automatic installation works
Examining files4. Packages on this CD
Executable file compaction4. Packages on this CD
Executable programsOrganization of the CD-ROM
Exit code of programs4. Packages on this CD
Expression evaluation4. Packages on this CD
Extending MS-DOS functionality1. Overview
Extracting from .tar and .tar.gz archives4. Packages on this CD
Extracting tokens4. Packages on this CD

F
FAQ for CD-ROM programsReporting Bugs
FAQ for DJGPP programs4. Packages on this CD
Features, missing in MS-DOS ports4. Packages on this CD
File `dir', adding entries4. Packages on this CD
File inclusion in Groff documents4. Packages on this CD
File Utilities4. Packages on this CD
Files with given tokens, reporting4. Packages on this CD
Files, access modes4. Packages on this CD
Files, archiving4. Packages on this CD
Files, archiving, with cpio4. Packages on this CD
Files, backup4. Packages on this CD
Files, backup, with cpio4. Packages on this CD
Files, checksumming4. Packages on this CD
Files, checksumming4. Packages on this CD
Files, checksumming4. Packages on this CD
Files, comparing4. Packages on this CD
Files, comparing4. Packages on this CD
Files, compressing4. Packages on this CD
Files, concatenating4. Packages on this CD
Files, counting characters4. Packages on this CD
Files, counting lines4. Packages on this CD
Files, counting words4. Packages on this CD
Files, deleting4. Packages on this CD
Files, displaying4. Packages on this CD
Files, displaying4. Packages on this CD
Files, displaying4. Packages on this CD
Files, finding4. Packages on this CD
Files, `fsfcdini.txt', configuration instructionsRun-from-the-CD Installation
Files, joining4. Packages on this CD
Files, line numbers4. Packages on this CD
Files, listing4. Packages on this CD
Files, listing4. Packages on this CD
Files, listing4. Packages on this CD
Files, merging4. Packages on this CD
Files, merging4. Packages on this CD
Files, moving4. Packages on this CD
Files, operations onPrograms to Try
Files, paginating4. Packages on this CD
Files, permissions4. Packages on this CD
Files, printing4. Packages on this CD
Files, removing4. Packages on this CD
Files, renaming4. Packages on this CD
Files, searching for text strings4. Packages on this CD
Files, sorting4. Packages on this CD
Files, splitting4. Packages on this CD
Files, splitting4. Packages on this CD
Files, updating4. Packages on this CD
Files, viewing4. Packages on this CD
Find Utilities4. Packages on this CD
Finding files4. Packages on this CD
First program4. Packages on this CD
Formatted documentation filesOrganization of the CD-ROM
Formatting C source files4. Packages on this CD
Formatting man pages4. Packages on this CD
Formatting text4. Packages on this CD
Free disk space4. Packages on this CD
Free Software FoundationWhat Is the Free Software Foundation?
Friendly greeting4. Packages on this CD
FSFWhat Is the Free Software Foundation?
`fsfcdini.bat' batch fileRun-from-the-CD Installation
`fsfcdout.bat' batch fileRun-from-the-CD Installation
FSFCDSET program, descriptionHow automatic installation works
`fsfcdset.exe', the sourcesHow automatic installation works

G
Getting helpReporting Bugs
Getting help, NTEmacsReporting Bugs
GNU ManifestoThe GNU Manifesto
GPL, General Public LicenseB.1 GNU GENERAL PUBLIC LICENSE
Groff filesOrganization of the CD-ROM

H
Hard disk installation, fullInstalling some of the files on your hard disk
Hard disk installation, partialInstalling some of the files on your hard disk
Hard disk installation, what to copyInstalling some of the files on your hard disk
Hardware required to run programsHardware Requirements
Hash tables, perfect4. Packages on this CD
Header filesOrganization of the CD-ROM
Hello world program4. Packages on this CD
Help, how to getReporting Bugs
HOME environment variableRun-from-the-CD Installation
HTML documentation, how to readHow to Read HTML-formatted Documentation
HTML formatHow to Read HTML-formatted Documentation

I
ID database creation4. Packages on this CD
ID Utilities4. Packages on this CD
Indexing, bibliographic database4. Packages on this CD
Info documentation, how to readHow to Run info
Info documentation, inside EmacsHow to Run info
Info documentation, producing from Texinfo sourcesHow to Run info
Info documentation, stand-alone readerHow to Run info
Info files, installation4. Packages on this CD
Info format, producing from Texinfo source4. Packages on this CD
Info on-line documentationOrganization of the CD-ROM
`install.exe', the sourcesCopying installation
Installation instructions displayHow automatic installation works
Installation program, detailed descriptionHow automatic installation works
Installation, after rebuilding programInstalling some of the files on your hard disk
Installation, for MS-DOS and Windows 3.XRun-from-the-CD Installation
Installation, for Windows 9X/NTCopying installation
Installation, manualManual Installation
Installation, partially on hard diskInstalling some of the files on your hard disk
Installing programs and files4. Packages on this CD
Installing sources of Cygnus portsInstalling Cygnus ports of GNU Software
Installing the Cygnus portsInstalling Cygnus ports of GNU Software
Interactive file comparison4. Packages on this CD
Interactive spell checking4. Packages on this CD
Interpreter, awk4. Packages on this CD
Interpreter, Perl4. Packages on this CD
Ispell dictionariesOrganization of the CD-ROM

J
Joining files4. Packages on this CD

K
K&R C4. Packages on this CD

L
Language, awk4. Packages on this CD
Language, C4. Packages on this CD
Language, C++4. Packages on this CD
Language, Objective-C4. Packages on this CD
Language, Perl4. Packages on this CD
Language-sensitive highlighting of files4. Packages on this CD
LaserJet-formatted documentationOrganization of the CD-ROM
LaTeX4. Packages on this CD
Lexical scanner generator4. Packages on this CD
LGPL, Library General Public LicenseB.2 GNU LIBRARY GENERAL PUBLIC LICENSE
Libraries of object filesOrganization of the CD-ROM
Library maintenance4. Packages on this CD
Library maintenance4. Packages on this CD
Library, standard C4. Packages on this CD
Line numbers4. Packages on this CD
Linker4. Packages on this CD
Lisp4. Packages on this CD
Listing files4. Packages on this CD
Listing files4. Packages on this CD
Listing files4. Packages on this CD
Listing files in ID database4. Packages on this CD
Listing tokens in a file4. Packages on this CD
Literate programming4. Packages on this CD
Long file names, support for1. Overview
Long PATH values, restoringRun-from-the-CD Installation
Looking up filesPrograms to Try

M
macro processor4. Packages on this CD
Macros for Groff4. Packages on this CD
man macros4. Packages on this CD
man pagesOrganization of the CD-ROM
man pages, formatting4. Packages on this CD
man pages, how to readHow to Read Man Pages
mandoc macros4. Packages on this CD
MD5 algorithm4. Packages on this CD
me macros4. Packages on this CD
Merging files4. Packages on this CD
Merging files4. Packages on this CD
Message Digest algorithm4. Packages on this CD
Missing features in programs4. Packages on this CD
mm macros4. Packages on this CD
ms macros4. Packages on this CD
MS-DOS/MS-Windows, extended by GNU programs1. Overview
Multiple CD-ROM drivesRun-from-the-CD Installation
Multiple configurations, setting upRun-from-the-CD Installation

N
Name list4. Packages on this CD
NotationStyle Conventions
NTEmacs installationSetting up NTEmacs
NTEmacs, HOME environment variable`.emacs' init file on Windows NT
NTEmacs, invoking on Windows NTSetting up NTEmacs

O
Object file compaction4. Packages on this CD
Object format conversion4. Packages on this CD
Object libraries4. Packages on this CD
Objective-C Compiler4. Packages on this CD
On-line documentationOrganization of the CD-ROM
On-line documentation, generating4. Packages on this CD
Operating systems, supportedOperating System Requirements

P
Paginating files4. Packages on this CD
Paging files4. Packages on this CD
Parser generation4. Packages on this CD
Patching binary files4. Packages on this CD
PATH settingManual Installation
Pattern matching4. Packages on this CD
Pattern scanning4. Packages on this CD
Pattern scanning4. Packages on this CD
Pausing execution4. Packages on this CD
PCL format of printed manualsFormats that Produce Printed Manuals
Perfect hash tables4. Packages on this CD
Perl4. Packages on this CD
Permissions, file4. Packages on this CD
POSIX compliance, C library4. Packages on this CD
PostScript format of printed manualsFormats that Produce Printed Manuals
PostScript-formatted documentationOrganization of the CD-ROM
Pretty-printing source files4. Packages on this CD
Previewer for DVI files4. Packages on this CD
Printed manuals4. Packages on this CD
Printed manuals, DVI formatFormats that Produce Printed Manuals
Printed manuals, formatsFormats that Produce Printed Manuals
Printed manuals, PCL formatFormats that Produce Printed Manuals
Printed manuals, PostScript formatFormats that Produce Printed Manuals
Printing DVI files4. Packages on this CD
Printing strings4. Packages on this CD
Printing TeX documentation4. Packages on this CD
Problems, reportingTroubleshooting
Profiling4. Packages on this CD
Program building4. Packages on this CD
Programs, debugging4. Packages on this CD
Project management4. Packages on this CD
proprietary softwareWhat This Software Won't Do
Protected-mode programming on MS-DOS4. Packages on this CD

R
RCS4. Packages on this CD
README files tell how to rebuild programsHow to rebuild a package from source code.
Rebuild instructions, how to findHow to rebuild a package from source code.
Rebuilding programsHow to rebuild a package from source code.
Rebuilding without copying sourcesHow to rebuild a package from source code.
Redirection, stderr4. Packages on this CD
Registry, NTEmacs entriesSetting up NTEmacs
Removing directories4. Packages on this CD
Removing files4. Packages on this CD
Removing the CD-ROM from the CD driveRun-from-the-CD Installation
Report generation4. Packages on this CD
Reporting bugsReporting Bugs
Reporting problemsTroubleshooting
Restoring long PATH valuesRun-from-the-CD Installation
Revision Control System4. Packages on this CD
roff macros4. Packages on this CD
Run-from-the-CD InstallationRun-from-the-CD Installation

S
Scanner generator4. Packages on this CD
Searching bibliographic database4. Packages on this CD
Searching files for text strings4. Packages on this CD
Searching for tokens in text and source files4. Packages on this CD
Setup, programs copied to hard diskInstalling some of the files on your hard disk
`SETUP.BAT', descriptionHow automatic installation works
ShellPrograms to Try
Shell4. Packages on this CD
Shell Utilities4. Packages on this CD
Software required to run programsOperating System Requirements
Sorting files4. Packages on this CD
Source file management4. Packages on this CD
Source files for DJGPP C libraryOrganization of the CD-ROM
Source files for non-GNU softwareOrganization of the CD-ROM
Source-level debuggerPrograms to Try
Sources for GNU packagesOrganization of the CD-ROM
Spell checking4. Packages on this CD
Splitting files4. Packages on this CD
Splitting files4. Packages on this CD
Splitting large files into small chunks4. Packages on this CD
String printing4. Packages on this CD
Support for Cygnus portsReporting Bugs
Support for GNU programsReporting Bugs
Support for NTEmacsReporting Bugs
Swap byte order in a file4. Packages on this CD
Symbol list4. Packages on this CD
Symlinks, emulation in DJGPP4. Packages on this CD

T
Tab elimination4. Packages on this CD
Tabs4. Packages on this CD
Tar archives, unpacking4. Packages on this CD
Task automation4. Packages on this CD
Technical supportTechnical Non-Support
TeX4. Packages on this CD
TeX filesOrganization of the CD-ROM
Texinfo4. Packages on this CD
Texinfo to PostScript conversion4. Packages on this CD
Texinfo, used to document GNU packages3. Documentation on the CD-ROM
Text and file operationsPrograms to Try
Text file browsingPrograms to Try
Text files, DOS to Unix conversion4. Packages on this CD
Text files, Unix to DOS conversion4. Packages on this CD
Text formatting4. Packages on this CD
Text processing4. Packages on this CD
Text processing4. Packages on this CD
Text strings in binary files4. Packages on this CD
Text Utilities4. Packages on this CD
Text-searching in files4. Packages on this CD
Time4. Packages on this CD
Time-zone filesOrganization of the CD-ROM
Timing programs4. Packages on this CD
Token database creation4. Packages on this CD
Tokens common to two files4. Packages on this CD
Tokens in files, reporting4. Packages on this CD
Traditional C4. Packages on this CD
Trouble-shootingTroubleshooting
Typefaces used in this bookStyle Conventions
Typesetting4. Packages on this CD
Typesetting programsPrograms to Try

U
Uninstalling, Cygnus portsInstalling Cygnus ports of GNU Software
Unpacking compressed tar files4. Packages on this CD
Updating files4. Packages on this CD
Upgrading a programInstalling some of the files on your hard disk
Ustar format4. Packages on this CD

V
Viewing files4. Packages on this CD

Jump to:   .  
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   R   S   T   U   V  


[Top] [Contents] [Index] [ ? ]

Footnotes

(1)

In this book we use MS-Windows as the general name of all Microsoft operating systems which present windowed user interface, including Windows 3.X, Windows 9X, and Windows NT. Where the difference between these variants matters, we use their specific names.

(2)

Actually, this is not entirely true: the kernel of these operating systems supports both forward and backslashes, but many native DOS/Windows programs consider only backslash when they parse file names. In particular, the stock shell `COMMAND.COM' will not recognize Unix-style forward slashes as directory separators.

(3)

Windows 3.X includes versions 3.1 and 3.11 of Microsoft Windows.

(4)

These include Windows NT version 3.5 and later, and Windows 95, 98 and subsequent versions.

(5)

DPMI, the DOS Protected Mode Interface, provides a way to run protected-mode programs on top of MS-DOS, which is a real-mode operating system.

(6)

`COMMAND.COM' has a fixed-size environment which might be too small to accommodate the additional variables required by GNU programs.

(7)

In fact, the message itself is printed when `setup.bat' tries to put the necessary variables into the environment, to see whether it is large enough.

(8)

Some people say DVI is the plural of "devious."

(9)

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.

(10)

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.

(11)

Several such companies now exist.

(12)

The Free Software Foundation raises most of its funds from a distribution service, although it is a charity rather than a company. If no one chooses to obtain copies by ordering them from the FSF, it will be unable to do its work. But this does not mean that proprietary restrictions are justified to force every user to pay. If a small fraction of all the users order copies from the FSF, that is sufficient to keep the FSF afloat. So we ask users to choose to support us in this way. Have you done your part?

(13)

A group of computer companies recently pooled funds to support maintenance of the GNU C Compiler.


[Top] [Contents] [Index] [ ? ]

Table of Contents

Preface
Style Conventions
Acknowledgments
Technical Non-Support
Reporting Bugs
Contacting the Foundation
1. Overview
What is in this Manual?
Hardware Requirements
Operating System Requirements
Programs to Try
Organization of the CD-ROM
2. Installing the Software
Copying installation
Run-from-the-CD Installation
How automatic installation works
Installing some of the files on your hard disk
Manual Installation
Windows Programs
Setting up NTEmacs
`.emacs' init file on Windows NT
Installing Cygnus ports of GNU Software
How to rebuild a package from source code.
Troubleshooting
Installation Problems
Problems Running the Programs
3. Documentation on the CD-ROM
How to Run info
How to Read HTML-formatted Documentation
How to Read Man Pages
Formats that Produce Printed Manuals
4. Packages on this CD
A. Background Information
What This Software Won't Do
What's GNU?
What is Free Software?
What Is the Free Software Foundation?
What is Copyleft?
Linux and the GNU Project
The GNU Manifesto
The GNU Manifesto
What's GNU? Gnu's Not Unix!
Why I Must Write GNU
Why GNU Will Be Compatible with Unix
How GNU Will Be Available
Why Many Other Programmers Want to Help
How You Can Contribute
Why All Computer Users Will Benefit
Some Easily Rebutted Objections to GNU's Goals
B. Copying Conditions for GNU Software
B.1 GNU GENERAL PUBLIC LICENSE
B.1.1 Preamble
B.1.2 How to Apply These Terms to Your New Programs
B.2 GNU LIBRARY GENERAL PUBLIC LICENSE
B.2.1 Preamble
B.2.2 How to Apply These Terms to Your New Libraries
Index

[Top] [Contents] [Index] [ ? ]

Short Table of Contents

Preface
1. Overview
2. Installing the Software
3. Documentation on the CD-ROM
4. Packages on this CD
A. Background Information
B. Copying Conditions for GNU Software
Index

[Top] [Contents] [Index] [ ? ]

About this document

This document was generated using texi2html

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ < ] Back previous section in reading order 1.2.2
[ > ] Forward next section in reading order 1.2.4
[ << ] FastBack previous or up-and-previous section 1.1
[ Up ] Up up section 1.2
[ >> ] FastForward next or up-and-next section 1.3
[Top] Top cover (top) of document  
[Contents] Contents table of contents  
[Index] Index concept index  
[ ? ] About this page  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:

This document was generated by Benjamin Drieu on April, 9 2002 using texi2html