L. Peter Deutsch
Authors of freely redistributable software (FRS) have chosen to distribute their work with a variety of different licenses. Indeed, the variety of licenses raises the question of what ?freely distributable? means; in this paper, we consider licenses that at a minimum allow individuals to receive software for personal use without restriction or payment, and that allow non-commercial redistribution of such software. Differing philosophical and/or economic purposes have led to a variety of different free redistribution licenses (FRLs), varying in activities that they require, allow, or prohibit with respect to use and distribution; the different licenses in turn lead to different patterns of use and distribution for the software, and different patterns of benefits to the parties involved (authors, OEMs, other redistributors, and users). Our analysis of existing FRLs gives FRS authors a clearer picture than was previously available of the likely consequences of their choice of license; we also speculate on why the source-code-oriented FRLs tend to be associated with developer-oriented software and the less ?free? FRLs with end-user-oriented software.
In conventional economic analysis, given a free market with competing suppliers and no complicating factors, the price of goods drops over time to marginally more than the cost of production. However, this clearly doesn?t apply straightforwardly to goods whose marginal cost of production is zero, like software: 0 price x any quantity = 0 revenue, which doesn?t cover development costs, and it is only by developing new software that existing producers stay in business.
Economists disagree sharply on the appropriate way to cover the development costs for goods with negligible production cost, and even more sharply on the way to provide appropriate incentives to developers. In the software industry, the conventional response has been to price software on the basis of what the market will bear rather than on the cost of production, relying on non-market-based barriers (both legal, such as copyright and trade secret protection, and technical, such as compatibility and interoperability) to prevent free copying. However, a small but significant number of software authors have chosen to make their creations freely copyable and redistributable under a variety of free redistribution licenses (FRLs), choosing means other than per-copy payment to recover development costs and provide economic incentives for further development.
Software distributed with a FRL, as we use this term in the present paper, doesn?t provide for compensating the author directly for each copy. Thus, the question of how the author (and other participants in the software process, such as distributors and support providers) get compensated is a crucial one in understanding the differences between FRLs. All FRLs that we consider here:
Allow copying and distribution of the software without payment to the author;
Allow use of the software without payment (with some restrictions in the case of shareware);
Allow charging for goods (such as printed documentation or physical media) and services (such as consulting, support, or the act of distribution) other than the FRL?ed software proper.
Thus, the authors are the only participants whose do not receive compensation for their work on a per-piece or per-service basis; on the other hand, they are also the only participants who do not perform work on a per-piece or per-service basis, so this situation is consistent with the earlier observation about marginal cost. We will return to this point in later sections where we discuss the rationale for the different forms of FRL.
Given the substantial amount of freely redistributable software (FRS) that has been created and disseminated, this paper proposes to:
Examine and classify the various (FRLs) that developers use to control the conditions under which FRS may, in fact, be redistributed;
Identify the kinds of FRS that have been distributed with particular FRLs;
Explore developers? beliefs about the philosophical and economic benefits and rewards that appear to motivate the different forms of FRLs;
Sift some evidence about what actual benefits and rewards result from different FRLs;
And finally, make some suggestions to software authors as to what forms of FRL (if any) are most appropriate depending on their individual goals.
Existing families of FRL
All FRLs have in common the requirement of retaining copyright notices and other notices attached to the software, including the FRL itself which must be propagated to all copies, and a disclaimer of warranty. FRLs differ as to:
Conditions imposed on redistribution, such as the source code availability requirement of the GNU License and the ?no commercial distribution? restriction of the not-for-profit licenses;
The circumstances under which payment is required (e.g., after a certain period or if commercial use is made, as in the PKZIP license), requested (as in the typical shareware license), or prohibited (as in the GNU and Aladdin licenses);
The circumstances under which source code may or must be redistributed.
We have identified four broad groups of FRLs in current use, which we will now examine individually.
In addition to the requirements of FRLs in general, unrestricted FRLs generally require only an acknowledgment of authorship. FRS distributed with unrestricted licenses includes many packages widely used on the Internet, such as X Windows, the Tcl interpreter and Tk library, and the IJG JPEG, PNG, and zlib libraries.
Conditions on redistribution: sometimes none, sometimes only an acknowledgment of authorship. Incorporation in commercial products is allowed.
Source code: usually available; redistribution allowed but not required.
The authors appear to wish only to preserve the integrity of the software and to ensure that they receive recognition for their work; they do not seek direct compensation for the FRS itself.
See Appendix A for a typical unrestricted FRL.
Shareware refers to software that is freely available initially, but may request or require payment after use. Shareware is the only type of FRS that almost never includes source code and that imposes conditions on use. Many packages widely available through computer bulletin boards (BBSs) use shareware licensing; it is not common on the Internet.
Conditions on redistribution: payment is typically forbidden. However, many companies sell FRS compilations on diskette or CD-ROM media, including shareware.
Payment: theoretically required for commercial use, or after a certain length of time. Payment often brings additional functionality, documentation, or services (e.g., notification of updates); this is what generally leads users to pay.
Source code: rarely available; redistribution allowed but not required.
The authors appear to wish to maintain trade secrets in the source code and control over commercial exploitation. Compensation comes through shareware fees, source code licensing, and possibly licensing for commercial redistribution.
See Appendix B for a typical shareware FRL.
The GNU licenses comprise the GNU General Public License (GPL) and the GNU Library General Public License (LGPL). In our opinion, they are the most interesting of the FRLs; they are the only ones based on an explicit philosophy of software economics. The GNU licenses apply to many developer tools (GNU emacs, gcc, gdb, ...), some libraries, and a few end-user packages, all widely available on the Internet. The GNU licenses are closely identified with the Free Software Foundation, but some authors not affiliated with FSF have also chosen to distribute their software with these licenses.
We can only summarize the GPL here; we encourage readers of this paper to read the full text in Appendix D. Briefly, the GNU philosophy is that everyone who receives software should have the right and ability:
To run the program.
To modify the program.
To redistribute the program.
To improve the program and contribute to the community.
While these sound like familiar FRL requirements, they have some interesting consequences. The ability to modify and improve requires availability of source code, so the GPL requires that any distribution include either source code or a written offer to provide source code for the cost of reproduction. Regarding redistribution, the GPL goes a step further than other FRLs by stating that the GPL automatically applies to the totality of any program that incorporates GPL?ed code. This is in support of a deeper philosophy that software authors should not receive payment per copy distributed, because (as we noted in the introduction) software is essentially a public good; the FSF is dedicated to creating an entire Unix-like software environment out of GPL?ed software on this basis. However, the FSF has had to yield to economic and social factors in two areas:
Originally, libgcc (the C runtime library associated with gcc, the GNU C compiler) was distributed with the GPL. As a result, any program linked with libgcc (i.e., essentially every program compiled with gcc) would become subject to the GPL. This was intolerable to software developers, and would have drastically reduced the usefulness of gcc. As a result, the FSF devised the LGPL, a variant of the GPL that essentially requires that if a program is linked with a LGPL?ed library, only the library is governed by the GPL terms, not the rest of the program.
The FSF?s software announcements include the following notice: By ordering your GNU software from the FSF, you help us continue to develop more free software. Media revenues are our primary source of support. Donations to FSF are deductible on US tax returns. We think this indicates the weakness of FSF?s belief that software developers will receive sufficient compensation for services through the ordinary operation of the market to create FRS: FSF is essentially appealing for donations, in the form of a request to purchase something that is available at a much lower cost through the Internet.
We can now summarize the provisions of the GPL as follows:
Conditions on redistribution: summarized above.
Payment: not addressed, except that if source code is only provided by offer, the price must be limited to reproduction costs.
Source code: must be available, either in the distribution or by written offer.
Compensation to authors is limited to services, as for FRS in general.
See Appendix D for the GPL. We have not included the LGPL for space reasons.
Not-for-profit FRLs (NFPLs)
The most common NFPLs are otherwise unrestricted licenses that forbid payment, and as such resemble shareware licenses. NFPL?ed software includes some packages like zip/unzip and a set of fonts developed in Russia; it also includes the most recent versions of the popular Ghostscript utility program, whose NFPL is an adaptation of the GPL.
Conditions on redistribution: payment is forbidden.
Source code: generally available.
Compensation to authors can come from commercial licensing of the same software under non-FR terms, as with shareware.
The Aladdin Ghostscript Free Public License (AGFPL) is an attempt to combine the sharing philosophy of the GPL with a not-for-profit restriction. Currently the AGFPL is only used with Ghostscript and one of its GUI front ends, GSview for (Microsoft) Windows and OS/2. The goal of the AGFPL is to shut out a certain class of GPL ?free riders?: companies that package GPL?ed software with commercial applications in a way that maintains the integrity of the former while making it seamlessly callable from the latter, which effectively (functionally) makes the GPL?ed software part of the application while respecting the letter of the GPL.
Conditions on redistribution: payment is prohibited, including aggregating of the FRS in any transaction that involves payment (except for on-line distribution to the general public, and CD-ROMs on which all information is redistributable for non-commercial purposes without charge.) Other conditions are similar to the GPL.
Source code: must be included in any distribution. This is different from the GPL, which allows including only a pointer to the source code and an offer to provide it at cost.
See Appendix C for a typical NFPL, and Appendix E for the AGFPL.
In order for a potential user to any benefit from software, many steps are involved.
|1.||Find out the software exists.||document|
|2.||Find out how to get the software.||document|
|3a.||the executable software,||software|
|3b.||possibly source code, and||software|
|3c2.||hard copy documentation for installing and using it.||document|
|4.||Possibly, get assistance with installation and use.||service|
|5.||Possibly, do or get adaptations or enhancements||service + software|
The author?s viewpoint
Any FRL provides great advantages for (2), which can in turn lead to more opportunities to provide (4) and (5). Unrestricted and GNU FRLs, however, eliminate (3) as a source of compensation. Thus the time spent creating the software itself provides no benefit to the author, other than intangible rewards and the possibility of future service work. For shareware, the FRL provides more opportunities to provide (3) for registered (paid-for) copies; for NFPL?ed software, the FRL through (2) provides greatly expanded access to the potential market for commercial licensing of (3). Thus shareware and NFP FRLs provide the greatest direct, tangible benefit to the author within the FRS paradigm, and in particular provide rewards beyond pay by the hour for future work.
Authors are in a curious position with respect to (4) and (5). Up to a point, it is to the FRS author?s advantage to rush lower-quality software into distribution, since it gives the author a market presence sooner and also creates a larger demand for (4) and possibly (5). Indeed, many non-FR software companies seem to be following this line of thinking as well. Similarly, assuming that the author wishes to be in the service business, it is somewhat to the author?s advantage to distribute poorly commented source code (3b) or, as is typical for shareware, no source code at all, since this makes it hard(er) for third parties to compete with the author in providing (5) and to some extent (4).
Use of the different FRLs often reflects an author?s underlying attitude towards the software industry. Many authors choosing non-shareware FRLs remember, or at least are inspired by the history of, the excitement of discovery and the rewards of sharing work that characterized the early days of software in the 1960s and 70s; their experience makes it clear to them that if everyone contributes freely, everyone benefits, at least as long as both ?everyones? are people like themselves. Unrestricted licenses embody this viewpoint in its purest form. The GPL takes a less trustful view, in that it attempts to compel participants to share their work. The AGFPL takes the slightly different view that those who are willing to share should get the benefits of sharing, while those whose own activities operate by commercial rules should have to follow those rules in order to obtain the benefits of software that is FR for others; this view is also implicit in other NFPLs. Shareware licenses embody an even more limited form of trust in the user. However, all FRLs require a certain degree of idealism or at least trust on the author?s part.
The redistributor?s viewpoint
From the commercial redistributor?s point of view, FRS is not a particularly profitable business; in particular, the marginal cost of (3) through an on-line service, which all FRLs permit, is so low that FRS CD-ROM publishers may not be competitive in the long term. We expect that even (1) as a possible service niche for redistributors will be severely limited by the availability of increasingly sophisticated WWW search engines.
The third party service viewpoint
Since all FRLs except shareware require or encourage the distribution of source code, they create opportunities that do not exist with non-FRLs for third parties to provide (4) and (5). In fact, this is essentially the only source of compensation for software workers under the GPL. However, the FRS-support industry is currently minuscule: we know of only one pure FRS support and enhancement company, Cygnus Support, that has an annual revenue over $1M, even though GNU software has been widely used for over a decade. We believe there are several reasons for this:
For reasons we will discuss in the next section, non-shareware FRS tends to be heavily oriented towards developers and other technologically oriented users rather than end users who just want a tool to solve some problem. This both reduces the market for such FRS and makes it much more likely that the people who do use it will be able and willing to investigate problems themselves. I.e., the availability of source code both expands the market for third parties doing (4) and makes it easier for users to do it themselves.
If FRS is of good quality and well documented, the need for support is minimal; if the FRS is of poor quality and/or poorly documented, it is less likely that a third party will find it worthwhile to invest the effort needed to support it. Thus we would expect that there would be more people extending FRS for compensation than supporting it, and that most of the people doing either one would be the original authors. We believe that both of these are actually the case.
The now widespread use of dynamic linking technology, popularized (but not invented) by the Microsoft Windows Dynamic Link Library (DLL), has led to an industry trend towards ?semi-open? systems -- applications that are distributed only in binary form with non-FRLs but providing APIs that allow third parties to write extensions in the form of dynamically linked modules, which again may be distributed only as binaries with non-FRLs. This allows third parties to participate in (5) to a considerable extent even with non-FRS.
In summary, FRLs do create more opportunities for third party services, but probably not on a large scale.
The user?s viewpoint
We can distinguish software users according to whether they have some involvement or interest in computer technology, or whether they simply want a piece of software to carry out some functional task like financial analysis or publishing. These groups have some overlap, but they have very different needs and expectations with regard to software they use.
The technology-involved group wants software that is functionally complete, adequately documented, and reliable. Source code and support availability are both valuable and trade off against each other to some extent. This group includes most traditional (i.e., non-4GL) software developers; they generally use workstations and high-powered PCs.
FRS can be very attractive for the technology-involved group because it allows them to get technologically advanced functionality with little initial investment and with the opportunity to explore the technology on their own. Even if a technology-involved user is acquiring software for a task-oriented purpose, such a user will be more willing to deal with quirks or minor awkwardnesses. Also, because nearly all FRS authors are technology-involved, there is likely to be a good match between the mindsets of the authors and those of the technology-involved users, which will make the software easier to understand and use.
The task-oriented group wants software that is attractively presented, well documented, easy to install and configure, designed for usability, functionally rich in their task domain and at the same time easy to use on simpler tasks, reliable, and supported. This group comprises the overwhelming majority of non-developer computer users other than students and corporate users of mainframes; they generally uses PCs and Macintoshes, in both corporate and personal environments. Competition for this market is heated in all of the just-enumerated categories. Especially in business environments, documentation, ease of installation, reliability, and support are essential; usability and price are important but secondary, and source code availability is only valuable as insurance in case the software provider (normally also the source of support) goes out of business or discontinues the product.
There is very little non-shareware FRS for task-oriented users. We speculate that the reason for this is that most software authors who are motivated by the desire to create and share technology (these authors being the main creators of FRS) have neither the interest, the skills, nor perhaps the patience to address the more user- and task-oriented design issues. The exception is shareware, which allows an author to distribute versions of software freely in the expectation that a significant fraction of those versions will turn into sales; thus authors who do not share the FRS ethic can use shareware licensing as a marketing tool. The same is true to a lesser extent of the NFPLs.
Some legal comments
Note that the author of this paper is not a lawyer; the following discussion of legal matters should not be taken as legal advice, or even necessarily fully sound from a legal perspective.
FRLs, like all software licenses, rely on copyright for their force. Like ?shrink wrap? licenses, they rely on the theory that licenses that automatically takes effect upon certain actions (using a piece of software, breaking a physical wrapper) are defensible. However, since the only benefits that a FRL conveys to the copyright holder are intangible, it might be difficult to get a court to enforce a FRL, especially if (as is the case with unrestricted licenses) there are no provisions in the FRL itself that take effect upon breach; and it might be extremely difficult to get a court to award any kind of damages to the copyright holder. On the other hand, the present author knows of several situations where redistributors breaching FRLs have voluntarily cured their breach, presumably on the advice of their attorneys.
FRLs cover a broad enough spectrum to provide users with the benefits of FRS while catering to at least three different classes of software authors:
Authors who are motivated only by the satisfaction and pride of creativity and public utility, or who are satisfied to be in a service business, can use an unrestricted or GNU FRL.
Authors who wish to have a modest income while maintaining tighter control over their technology can use the shareware approach.
Authors who want to provide the benefits of FRS to users while receiving the tangible benefits of non-FR commercial licensing can do so with a NFPL.
The rewards available to authors with pure FRLs, and the nature of end-users? expectations, make it unlikely that functionally rich, end-user-oriented FRS will be created other than as shareware; however, the FRS model can work well for more developer-oriented applications. It will be interesting to see how FR and non-FR software compete in the emerging domain of reusable components.
Thanks to Richard M. Stallman for originating the GPL and the LGPL, and for discussions on the philosophy of free software.
Thanks to Stephen J. Turnbull, of the Institute of Socio-Economic Planning at the University of Tsukuba, Japan, for his comments on FRS from an economist?s perspective. The author, of course, assumes full responsibility for the use to which he has put those comments in this paper.
References: software sites
Shareware is generally distributed in the PC and Macintosh world through non-networked bulletin board systems (BBSs), of which there are many thousands in operation. To find ones near you, look in any local newspaper or magazine that reaches a computer-involved audience.
You can order GNU software on CD-ROM from the Free Software Foundation. For ordering info, send e-mail to firstname.lastname@example.org or contact the FSF:
Free Software Foundation 59 Temple Place - Suite 330 Boston, MA 02111-1307, USA 1-617-542-5942
GNU software is also available from the following FTP sites:
ASIA: ftp.cs.titech.ac.jp, utsun.s.u-tokyo.ac.jp:/ftpsync/prep, cair-archive.kaist.ac.kr:/pub/gnu, ftp.nectec.or.th:/pub/mirrors/gnu
AUSTRALIA: archie.au:/gnu (archie.oz or archie.oz.au for ACSnet)
EUROPE: irisa.irisa.fr:/pub/gnu, ftp.univ-lyon1.fr:pub/gnu, ftp.mcc.ac.uk, unix.hensa.ac.uk:/mirrors/uunet/systems/gnu, src.doc.ic.ac.uk:/gnu, ftp.ieunet.ie:pub/gnu, ftp.eunet.ch, nic.switch.ch:/mirror/gnu, ftp.informatik.rwth-aachen.de:/pub/gnu, ftp.informatik.tu-muenchen.de, ftp.win.tue.nl:/pub/gnu, ftp.nl.net, ftp.etsimo.uniovi.es:/pub/gnu ftp.funet.fi:/pub/gnu, ftp.denet.dk, ftp.stacken.kth.se, isy.liu.se, ftp.luth.se:/pub/unix/gnu, ftp.sunet.se:/pub/gnu, archive.eu.net
SOUTH AMERICA: ftp.inf.utfsm.cl:/pub/gnu, ftp.unicamp.br:/pub/gnu
WESTERN CANADA: ftp.cs.ubc.ca:/mirror2/gnu
USA: wuarchive.wustl.edu:/systems/gnu, labrea.stanford.edu, ftp.digex.net:/pub/gnu, ftp.kpc.com:/pub/mirror/gnu, f.ms.uky.edu:/pub3/gnu, jaguar.utah.edu:/gnustuff, ftp.hawaii.edu:/mirrors/gnu, uiarchive.cso.uiuc.edu:/pub/gnu, ftp.cs.columbia.edu:/archives/gnu/prep, col.hp.com:/mirrors/gnu, gatekeeper.dec.com:/pub/GNU, ftp.uu.net:/systems/gnu
Here are some Internet sources for other FRL?ed packages mentioned in this paper. Most of these packages are widely ?mirrored? around the world.
Tcl and Tk (unrestricted FRL): ftp.smli.com:/pub/tcl/*
IJG JPEG library (unrestricted FRL, library): ftp.uu.net:/graphics/jpeg/jpegsrc.v*.tar.gz, oak.oakland.edu:/SimTel/msdos/graphics/jpgsrc*.zip
PNG library (unrestricted FRL, library): swrinde.nde.swri.edu:pub/png/src/lbpng081.zip or libpng-0.81.tar.gz
zlib (unrestricted FRL, library): swrinde.nde.swri.edu:pub/png/src/zlib095.zip or zlib-0.95.tar.gz
zip/unzip (NFPL): ftp.uu.net:/pub/archiving/zip/...
Malyshev fonts (NFPL): ftp.tex.ac.uk:/tex-archive/fonts/postscript/cm, also on ftp.dante.de and ftp.shsu.edu
Aladdin Ghostscript (AGFPL): ftp.cs.wisc.edu:/ghost/aladdin/* (consult Index)
GSview for Windows and OS/2 (AGFPL): ftp.cs.wisc.edu:/ghost/rjl/* (consult Index)
L. Peter Deutsch received the Ph.D. in Computer Science from U.C. Berkeley in 1973. His career has included major work in operating systems (SDS 940 time-sharing system) at Berkeley, and on integrated programming environments (Interlisp, Cedar Mesa, and Smalltalk-80) at Xerox PARC and ParcPlace Systems. Since 1986, Dr. Deutsch has been President of Aladdin Enterprises, a consulting business that offers for licensing a highly portable, high-performance implementation of the PostScript language developed by Dr. Deutsch that is also available under a free license from the Internet under the name Ghostscript. Dr. Deutsch was a co-recipient of the ACM 1992 Software System Award for his work on Interlisp, and in 1993 was named a Distinguished Alumnus of the U.C. Berkeley Computer Science program. Dr. Deutsch is a member of ACM, IEEE, CPSR, and the League for Programming Freedom. He may be reached at: Aladdin Enterprises, 203 Santa Margarita Ave., Menlo Park, CA 94025 U.S.A., tel. +1-415-322-0103 (8:30 AM - noon), fax +1-415-322-1734, e-mail <email@example.com>.
Appendices: sample FRLs
Appendix A: an unrestricted FRL
This is the license that accompanies the zlib library.
(C) 1995 Jean-loup Gailly and Mark Adler
This software is provided ?as-is?, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Jean-loup Gailly Mark Adler firstname.lastname@example.org email@example.com
If you use the zlib library in a product, we would appreciate *not* receiving lengthy legal documents to sign. The sources are provided for free but without warranty of any kind. The library has been entirely written by Jean-loup Gailly and Mark Adler; it does not include third-party code.
If you redistribute modified sources, we would appreciate that you include in the file ChangeLog history information documenting your changes.
Appendix B: a shareware license
C o m p u S h o w S H A R E W A R E Standard Version 8.60a [02-03-1993]
Copyright (c) 1993, Canyon State Systems and Software (tm), Sedona, Az. This program is copyrighted software. However, you are encouraged to copy and share it with others, so long as no charge is made for the software, and it is unmodified and copied in its entirety. If you use this ShareWare program beyond a 21 day ?trial period?, you must register. As a registered user, you will receive a copy of the enhanced program, which includes all features of this standard program plus: Printing of all graphics formats on most dot-matrix and laser printers! An automated Slide Show! A Setup program to change screen colors and options! See the program documentation (at your DOS prompt, execute README) for instructions and a registration form.
Thank you for your support: Bob Berry CompuServe [76555,167] Canyon State Systems and Software Internet firstname.lastname@example.org Post Office Box 86 GE Mail R.BERRY7 Sedona, Az. 86339-0086 BBS (602) 282-9035 Voice (602) 282-5070
Appendix C: a not-for-profit FRL
Paradissa fonts collection. Copyright (C) 1993, Basil K. Malyshev. All Rights Reserved.
The author of this fonts grants to any individual or non-commercial organization the right to use and to make an unlimited number of copies of full collection or selected fonts when this is done WITHOUT CHARGE and has attached this licence agreement.
This fonts cannot be sold or distributed with any commercial product without written authorization from the author. If you want to charge a small fee for distribute fonts as is or with any software, you should contact the author.
This restriction is not intended to apply to connect time charges, or flat rate connection/download fees for electronic bulletin board services.
Basil K. Malyshev (E-Mail: email@example.com), 22-Dec-1993, Protvino, Russia.
Appendix D: the GPL
GNU GENERAL PUBLIC LICENSE Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
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.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. 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.
1. 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.
2. 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:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) 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.
c) 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.
3. 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:
a) 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,
b) 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,
c) 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.
4. 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.
5. 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.
6. 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.
7. 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.
8. 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.
9. 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.
10. 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.
11. 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.
12. 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
Appendix: 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 a brief 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., 675 Mass Ave, Cambridge, MA 02139, 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.
Appendix E: the AGFPL
ALADDIN GHOSTSCRIPT FREE PUBLIC LICENSE (Version 4, March 5, 1995)
Copyright (C) 1994, 1995 Aladdin Enterprises, Menlo Park, California, U.S.A. All rights reserved.
NOTE: This license is not the same as any of the GNU Licenses published by the Free Software Foundation. Its terms are substantially different from those of the GNU Licenses. If you are familiar with the GNU Licenses, please read this license with extra care.
This License applies to the computer program known as ?Aladdin Ghostscript.? The ?Program?, below, refers to such program, and a ?work based on the Program? means either the Program or any derivative work of the Program, as defined in the United States Copyright Act of 1976, such as a translation or a modification. Please note that Aladdin Ghostscript is neither the program known as ?GNU Ghostscript? nor the version of Ghostscript available for commercial licensing from Artifex Software Inc. The Program is a copyrighted work whose copyright is held by Aladdin Enterprises (the ?Licensor?).
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. NOTHING OTHER THAN THIS LICENSE GRANTS YOU PERMISSION TO MODIFY OR DISTRIBUTE THE PROGRAM OR ITS DERIVATIVE WORKS. THESE ACTIONS ARE PROHIBITED BY LAW. IF YOU DO NOT ACCEPT THESE TERMS AND CONDITIONS, DO NOT MODIFY OR DISTRIBUTE THE PROGRAM.
Licensor hereby grants you the following rights, provided that you comply with all of the restrictions set forth in this License and provided, further, that you distribute an unmodified copy of this License with the Program:
(a) You may copy and distribute literal (i.e., verbatim) copies of the Program?s source code as you receive it throughout the world, in any medium.
(b) You may modify the Program, create works based on the Program and distribute copies of such throughout the world, in any medium.
This license is subject to the following restrictions:
(a) Distribution of the Program or any work based on the Program by a commercial organization to any third party is prohibited if any payment is made in connection with such distribution, whether directly (as in payment for a copy of the Program) or indirectly (as in payment for some service related to the Program, or payment for some product or service that includes a copy of the Program ?without charge?; these are only examples, and not an exhaustive enumeration of prohibited activities). However, the following methods of distribution involving payment shall not in and of themselves be a violation of this restriction:
(i) Posting the Program on a public access information storage and retrieval service for which a fee is received for retrieving information (such as an on-line service), provided that the fee is not content-dependent (i.e., the fee would be the same for retrieving the same volume of information consisting of random data).
(ii) Distributing the Program on a CD-ROM, provided that the files containing the Program are reproduced entirely and verbatim on such CD-ROM, and provided further that all information on such CD-ROM be redistributable for non-commercial purposes without charge.
(b) Activities other than copying, distribution and modification of the Program are not subject to this License and they are outside its scope. Functional use (running) of the Program is not restricted, and any output produced through the use of the Program is subject to this license only if its contents constitute a work based on the Program (independent of having been made by running the Program).
(c) You must meet all of the following conditions with respect to the distribution of any work based on the Program:
(i) If you have modified the Program, you must cause your work to carry prominent notices stating that you have modified the Program?s files and the date of any change;
(ii) 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 and at no charge to all third parties under the terms of this License;
(iii) If the modified program normally reads commands interactively when run, you must cause it, at each time the modified program commences operation, 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). Such notice must also state that users may redistribute the Program only under the conditions of this License and tell the user how to view the copy of this License included with the Program. (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.);
(iv) You must accompany any such work based on the Program with the complete corresponding machine-readable source code, delivered on a medium customarily used for software interchange. 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 code. However, 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 code;
(v) If you distribute any written or printed material at all with the Program or any work based on the Program, such material must include either a written copy of this License, or a prominent written indication that the Program or the work based on the Program is covered by this License and written instructions for printing and/or displaying the copy of the License on the distribution medium;
(vi) You may not impose any further restrictions on the recipient?s exercise of the rights granted herein.
If distribution of executable or object code is made by offering the equivalent ability to copy from a designated place, then offering equivalent ability 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 code along with the object code.
3. Reservation of Rights.
No rights are granted to the Program except as expressly set forth herein. 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.
4. Other Restrictions.
If the distribution and/or use of the Program is restricted in certain countries for any reason, Licensor 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.
THE PROGRAM IS PROVIDED TO YOU ?AS IS,? WITHOUT WARRANTY. THERE IS NO WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 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.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL LICENSOR, 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.
This Agreement is governed by the laws of the State of California, U.S.A., excluding choice of law rules.
For government users, the Program is provided with RESTRICTED RIGHTS. Use, duplication or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of The Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 or subparagraphs (c)(1) and (2) of the Commercial Computer Software-Restricted Rights 48 CFR 52.227-19, as appropriate.