NO WARRANTY
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.
Copyright (C) 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.]
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.
NO WARRANTY
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, Cambridge, MA 02139, 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!
How the GPL affects programs compiled by GCC
[Details under construction]
Q:
If I compile one of my sources with gcc, do I have to distribute it under the GPL? I'm not using any GNU libraries or startup or anything. My interpretation of the GPL is that i don't have to, but one of the teacher (lecturers?) say that I have to. Who's right?
A [Niklas Hallqvist]: You are. The GPL (and LGPL) only covers distributed code, not code generated by tools which are GPL:ed. As there are code which get linked by GCC distributed with GCC, libgcc.a, one might think that the GPL would apply to generated code, but no, libgcc.a is written without GPL just to enable that use of the GNU compiler. Think about it, several object-only commercial applications including OSes are compiled by GCC for enhanced performance, would they do that if they had to give up their objectcode-only policy? The key behind the GPL is that no code based on work GPLed, should be locked to to that specific compilation, but the user should be able to customize the GPLed code as he wants to and recompile. You are still allowed to protect your own source as you see fit. For example, let's say you use som LGPLed library libfoo.a in your application app. When you distribute it you must also distribute a linkable objectfile app.o which, when linked with the distibuted libfoo.a (with source) generates app. If the end-user wants, he should be able to customize libfoo, and relink it with app.o to get a customized app. It's not a very severe limitation on distribution rights IMHO.
Remember that the (L)GPL was written to give programmers more Freedom, not to limit their chance of protecting their own work. As long as their own work is clearly delimited from others GPLed work, it's perfectly OK to keep a separate copyright policy on it.
In your case, your lecturer has misunderstood the intentions of the (L)GPL which is easy to do. These discussions come up ever so often because of the legaleze used to express the GPL. Too bad many get the GPL wrong, as rumours like "you cannot use GNU products for business work" severly harms the usage of GNU products. To name a few uses of GCC where the program did NOT fall under the GPL: Dell Unix SVR4, NextStep & some OSF/1 port. Tell your lecturer about these, and ask him why he thinks the GPL prevents them to be sold during other than GPL conditions? I ask you to actually convince him he was wrong as it is harmful for the programming society that such misconceptions exist.
The Geek Gadgets project is the successor of a similar project called Amiga Developers Environment (ADE). As you can see from its name, the ADE has been started from a number of people in the Amiga community coordinated by Fred Fish.
About one year after its birth several people realized that it would be desirable to expand the project to other operating systems and hardware platforms as well. This move has begun and already gained to new platforms, BeOS and p.OS.
Of course, the original name, although quite handy and already well known, conflicted with the desired portability and cross platform approach.
So here we go, this is Geek Gadgets!
[Under construction]
[Details under construction]
The ADE project mainly evolved from a previous port of GCC for the AmigaOS.
It has been coordinated via two mailing lists, which are considered obsolete now. See section Previous Mailing Lists.
Although this port is still available, its usage is discouraged. See section Previous Port.
It has been done by the following people:
Also, much testing, suggestions and debate have been provided by (not necessarily in that order):
This appendix summarizes the currently available packages.
a2ixlibrary 2.0 34K a2ixlibrary shared library developer kit ADE-misc-src ?.? 431K Miscellaneous files for ADE source tree AfterStep 1.0pre3 550K An X11R6.1 NextStep look-alike Window Ma autoconf 2.12 300K GNU automatic configuration generator. automake 1.1l 242K GNU automatic makefile generator bash 2.0 1338K GNU bourne compatible shell bc 1.03 134K GNU arbitrary precision calculator lang. binutils 2.7 4136K GNU binary utilities, Amiga source bison 1.25 228K GNU parser generator yacc replacement brik 2.0 59K Compute & use CRC lists to verify files bugsx 1.07 333K Genetic algorithm program calc 2.02d 818K Advanced desk calculator in EMACS elisp. cpio 2.4.2 188K GNU utility to copy to/from archives. ctwm 3.4pl2 518K Color version of twm cvs 1.9.2 1442K Concurrent version control system dbmalloc 1.14 132K Debugging malloc/realloc/free routines. dbug 2.4 63K Macro based debugging library and tools. dejagnu 1.2 1215K Program testing framework using 'expect' diffutils 2.7 278K GNU diff, diff3, sdiff and cmp utilities dld 3.3 146K library to perform dynamic linking doschk 1.1 24K Check DOS/SYSV filename limits. dumphunks 1.0 16K Dump structure/contents of hunk files. dvidvi 1.1 87K rearrange ordering of pages in dvi file ecc 1.2.1 25K Reed-Solomon Error Correcting Coder. ed 0.2 197K 8-bit-clean POSIX compliant line editor. eispack 1.0 925K Compute eigenvalues & eigenvectors emacs 18.59 3381K GNU Emacs editor emacs 19.34b 1133K GNU Emacs editor enscript 1.4.0 369K converts ASCII files to PostScript f2c 93.04.28 384K Fortran 77 to C translator fd2inline 1.11 50K Convert FD files to gcc 'inlines' fdlibm 5.2 97K Redistributable IEEE 754 C math library fifolib 38.4 50K fifo library and handler file 3.20 77K heuristically determine type of a file fileutils 3.15 787K File management utilities. findutils 4.1 276K GNU find, xargs, and locate flex 2.5.4 383K Fast lexical analyzer generator fvwm 2.0.42 557K Window manager with 3D look fvwm95 2.0.43a 566K Window manager with Win95 look g77 0.5.15 7027K GNU FORTRAN compilers gawk 3.0.2 698K Pattern scanning & processing. gcc 2.7.2.1 6359K GNU C/C++/Obj-C compilers. GccFindHit 1.2.1 22K Locate enforcer hit in gcc compiled code gdb 4.16 6383K GNU debugger gdbm 1.7.3 95K GNU database manager library gettext 0.10.24 441K Internationalization library and tools gforth 0.2.1 637K Portable implementation of Forth lang ghostscript 2.6.2 2719K GNU postscript interpreter ghostview 1.5 137K X11 user interface for ghostscript gimp 0.54.1 360K Image viewing and editing program git 4.3.15 376K A file system browser with shell gmp 2.0.2 338K Arbitrary precision math library. gnat 2.06 8299K GNU ADA compiler. grep 2.0 141K GNU grep package groff 1.10 911K GNU groff document formatting system guavac 0.2.5 359K A portable compiler for Java. guile 1.0 1339K Portable, embeddable Scheme interpreter gzip 1.2.4 228K GNU compressing/decompressing programs hunk2aout 2.0 22K Convert AmigaOS hunk objects to a.out icon 9.3 1824K High-level Programming Language, interpr icon 9.3 2899K High-level Programming Language, interpr id-utils 3.2 369K identifier database tool ImageMagick 3.8.1 5340K Converts/displays images indent 1.9.1 154K C code beautifier inetutils 1.2 417K Networking utilities and servers ispell 3.1.20 668K GNU spelling checker ixemul 46.1 1231K Shared library providing Unix-like envir jove 4.16 437K Small but very useful EMACS like editor. kaffe 0.7.1 405K Virtual machine to execute java bytecode kaffe 0.7.1 552K Virtual machine to execute java bytecode less 321 197K Viewer program similar to 'more'. lesstif 0.75 1245K A Motif 1.2 clone libg++ 2.7.2 1544K GNU C++ class library libm 5.4 108K Runtime math library libnix 1.1a 103K A library for amiga specific gcc develp. libpng 0.89c 137K Sources to PNG library lynx 2.6 862K WWW client using character display only m4 1.4 290K GNU macro processor make 3.75 496K POSIX compatible 'make' program manutils 2.1 93K displays unix style manual pages mkisofs 1.10 104K create iso9660 filesystem + Rock Ridge ncftp 2.4.2 185K Internet file transfer program ncurses 1.9.9e 740K GNU 'new curses' library neXtaw 0.2b2 305K A Xaw (Athena widget library) replacemen non-ADE-patches ?.? 1K Patches for files not included in ADE octave 2.0.1 2961K Language for numerical computations. patch 2.1 85K Apply diff files pdksh 4.9 169K A UNIX ksh compatible shell for AmigaOS perl 5.003 1504K Practical Extraction and Report Language perl4 4.036 571K Practical Extraction and Report Language psutils 1.16 86K Utils for manipulating PostScript files ptx 0.4 190K Traditional permuted index generator rcs 5.7 293K Revision Control System rpm 2.2.9 226K Powerful package manager sed 2.05 127K GNU stream editor sh-utils 1.15 579K GNU shell programming utilities sharutils 4.2 299K Shell archive utils and uuencode/decode. superopt 2.5 87K Finds optimal asm instruction sequences. tar 1.11.8 588K GNU Tape Archiver tcl 7.6 924K A flexible embeddable scripting language termcap 1.3 260K GNU termcap library. texinfo 3.9 640K GNU documentation system textutils 1.21 818K GNU text processing utilities tiff 3.4b36 561K Library and tools for TIFF manipulations tile-forth 2.1 158K Threaded Interpretive Language Environ. time 1.7 106K GNU util to measure program resource use tk 4.2 1677K X11 toolkit implemented with Tcl Tkstep 0.5pre2 955K A Tk replacement with NextStep look unixtex 6.1b 5591K Basic TeX package based on TeX 3.1415 unzip 5.12 442K View and extract files from an archive b wdiff 0.5 126K Display word diffs between text files. website 1.0 484K ADE WWW pages master site source wget 1.4.2 181K retrieve files over net via HTTP and FTP X 11R6.1 3552K X Window System main files X-contrib 11R6.1 5100K X Window System contributed files. xbench 0.2 35K Benchmark program to test Xserver speed XbmBrowser 5.1 71K Viewer for XBM images xdaliclock 2.08 44K displays a digital clock xfig 3.2.0-be 813K Figure editor Xfm 1.3.2 220K X file manager for managing your files a xless 1.7 44K A X-window file browsing tool xmailbox 2.4 41K Email box checker Xmgr 3.01pl8 698K ACE/gr is an XY plotting tool for workst Xmorph 17jan97 91K Xmorph morphs from image A to image B Xpaint 2.4.7 243K XPaint is a bitmap/pixmap editing tool. xpdf 0.6 126K Image viewer for P(ortable)D(ocument)F(o xpm 3.4i 135K Library for storing/retrieving X pixmaps XPostitPlus 2.3 67K Post-It(r) Notes for X-Windows xsnow 1.40 37K A X-window screen hack xwpe 1.4.2 331K A X-window programming environment Ygl 3.1 87K SGI GL compatible library zip 2.0.1 249K Put files into an archive. zlib 1.0.4 106K General purpose data compression library
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.
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.
Several such companies now exist.
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 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?
A group of computer companies recently pooled funds to support maintenance of the GNU C Compiler.
This document was generated on 1 October 1997 using the texi2html translator version 1.51.