Frequently Asked Questions about version 2 of the GNU GPL

This page contains answers to commonly asked questions about the GNU GeneralPublic License (GPL), version 2. The FAQ for the current version of the GPL ishere. To learn more about the FreeSoftware Foundation's other licenses, please seeour licenses page.

After you read this FAQ,you cantest your knowledge of Free Software licensing with our quiz.

Table of Contents


Basic questions about the GPL, the GNU Project, and the FreeSoftware Foundation

General understanding of the GPL

Using the GPL for your programs

Distribution of programs released under the GPL

Using programs released under the GPL when writing otherprograms

Combining work with code released under the GPL

Questions about violations of the GPL


What does “GPL” standfor?
“GPL” stands for “General Public License”.The most widespread such license is the GNU General Public License, orGNU GPL for short. This can be further shortened to“GPL”, when it is understood that the GNU GPL is the oneintended.
Does free software mean using the GPL?
Not at all—there are many other free software licenses. We have anincompletelist. Any license that provides the usercertain specificfreedomsis a free software license.
Why should I use the GNU GPL rather than other free software licenses?
Using the GNU GPL will require that all thereleased improved versions be freesoftware. This means you can avoid the risk of having to competewith a proprietary modified version of your own work. However, insome special situations it can be better to use amore permissive license.
Does all GNU software use the GNU GPL as its license?
Most GNU software packages use the GNU GPL, but there are a fewGNU programs (and parts of programs) that use looser licenses, such as theLesser GPL. When we do this, it is a matter ofstrategy.
Does using the GPL for a program make it GNU software?
Anyone can release a program under the GNU GPL but that does notmake it a GNU package.

Making the program a GNU software package means explicitlycontributing to the GNU Project. This happens when the program'sdevelopers and the GNU Project agree to do it. If you are interestedin contributing a program to the GNU Project, please write to<maintainers@gnu.org>.

What should I do if I discover a possible violation of the GPL?
You shouldreport it.First, check the facts as best you can. Then tell the publisher orcopyright holder of the specific GPL-covered program. If that is theFree Software Foundation, write to<license-violation@gnu.org>. Otherwise, the program's maintainer may be the copyright holder, orelse could tell you how to contact the copyright holder, so report itto the maintainer.
Why does the GPL permit users to publish their modified versions?
A crucial aspect of free software is that users are free to cooperate.It is absolutely essential to permit users who wish to help each otherto share their bug fixes and improvements with other users.

Some have proposed alternatives to the GPL that require modifiedversions to go through the original author. As long as the originalauthor keeps up with the need for maintenance, this may work well inpractice, but if the author stops (more or less) to do something elseor does not attend to all the users' needs, this scheme falls down.Aside from the practical problems, this scheme does not allow users tohelp each other.

Sometimes control over modified versions is proposed as a means ofpreventing confusion between various versions made by users. In ourexperience, this confusion is not a major problem. Many versions ofEmacs have been made outside the GNU Project, but users can tell themapart. The GPL requires the maker of a version to place his or hername on it, to distinguish it from other versions and to protect thereputations of other maintainers.

Does the GPL require that source code of modified versions beposted to the public?
The GPL does not require you to release your modified version. You arefree to make modifications and use them privately, without everreleasing them. This applies to organizations (including companies),too; an organization can make a modified version and use it internallywithout ever releasing it outside the organization.

Butifyou release the modified version to the public in someway, the GPL requires you to make the modified source code availableto the program's users, under the GPL.

Thus, the GPL gives permission to release the modified program incertain ways, and not in other ways; but the decision of whether torelease it is up to you.

Can I have a GPL-covered program and an unrelated nonfree program on the same computer?
Yes. The “mere aggregation” clause in the GPL makes thispermission explicit, but that only reinforces what we believe would betrue anyway.
If I knowsomeone has a copy of a GPL-covered program, can I demand he giveme a copy?
No. The GPL gives him permission to make and redistribute copies ofthe programif and when he chooses to do so. He also has theright not to redistribute the program, when that is what hechooses.
What does this“written offer valid for any third party” mean?Does that mean everyone in the world can get the source to anyGPL'ed program no matter what?

If you choose to provide source through a written offer, then anybodywho requests the source from you is entitled to receive it.

If you commercially distribute binaries not accompanied with sourcecode, the GPL says you must provide a written offer to distribute thesource code later. When users non-commercially redistribute thebinaries they received from you, they must pass along a copy of thiswritten offer. This means that people who did not get the binariesdirectly from you can still receive copies of the source code, along withthe written offer.

The reason we require the offer to be valid for any third partyis so that people who receive the binaries indirectly in that waycan order the source code from you.

The GPL says that modifiedversions, if released, must be “licensed … to allthird parties.” Who are these thirdparties?
Section 2 says that modified versions you distribute must be licensedto all third parties under the GPL. “All third parties”means absolutely everyone—but this does not require youtodoanything physically for them. It only meansthey have a license from you, under the GPL, for your version.
Am I required to claim a copyrighton my modifications to a GPL-covered program?
You are not required to claim a copyright on your changes. In mostcountries, however, that happens automatically by default, so you need toplace your changes explicitly in the public domain if you do not want themto be copyrighted.

Whether you claim a copyright on your changes or not, either way youmust release the modified version, as a whole, under the GPL. (if you release your modifiedversion at all)

If a program combinespublic-domain code with GPL-covered code, can I take thepublic-domain part and use it as public domain code?
You can do that, if you can figure out which part is the public domainpart and separate it from the rest. If code was put in the publicdomain by its developer, it is in the public domain no matter where ithas been.
Does the GPL allow me to sell copies of the program for money?
Yes, the GPL allows everyone to do this. Theright to sell copiesis part ofthe definition of free software. Except in one special situation,there is no limit on what price you can charge. (The one exception isthe required written offer to provide source code that must accompanybinary-only release.)
Does the GPL allow me tocharge a fee for downloading the program from my distribution site?
Yes. You can charge any fee you wish for distributing a copy of theprogram. If you distribute binaries by download, you must provide“equivalent access” to download thesource—therefore, the fee to download source may not be greaterthan the fee to download the binary.
Does the GPL allow me to require that anyone who receives the softwaremust pay me a fee and/or notify me?
No. In fact, a requirement like that would make the program nonfree.If people have to pay when they get a copy of a program, or if theyhave to notify anyone in particular, then the program is not free.See thedefinition of free software.

The GPL is a free software license, and therefore it permits peopleto use and even redistribute the software without being required topay anyone a fee for doing so.

Youcancharge people a feetoget a copyfrom you.You can't require people to pay you when they get a copyfromsomeone else.

If Idistribute GPL'd software for a fee, am I required to also makeit available to the public without a charge?
No. However, if someone pays your fee and gets a copy, the GPL givesthem the freedom to release it to the public, with or without a fee.For example, someone could pay your fee, and then put her copy on aweb site for the general public.
Does the GPL allow me to distribute copies under anondisclosure agreement?
No. The GPL says that anyone who receives a copy from you has theright to redistribute copies, modified or not. You are not allowed todistribute the work on any more restrictive basis.

If someone asks you to sign an NDA for receiving GPL-covered softwarecopyrighted by the FSF, please inform us immediately by writing tolicense-violation@fsf.org.

If the violation involves GPL-covered code that has some other copyrightholder, please inform that copyright holder, just as you wouldfor any other kind of violation of the GPL.

Does the GPL allow me to distribute a modified or beta version under anondisclosure agreement?
No. The GPL says that your modified versions must carry all thefreedoms stated in the GPL. Thus, anyone who receives a copy of yourversion from you has the right to redistribute copies (modified ornot) of that version. You may not distribute any version of the workon a more restrictive basis.
Does the GPL allow me to develop a modified version under anondisclosure agreement?
Yes. For instance, you can accept a contract to develop changes andagree not to releaseyour changesuntil the client says ok.This is permitted because in this case no GPL-covered code isbeing distributed under an NDA.

You can also release your changes to the client under the GPL, butagree not to release them to anyone else unless the client says ok. Inthis case, too, no GPL-covered code is being distributed under an NDA,or under any additional restrictions.

The GPL would give the client the right to redistribute your version.In this scenario, the client will probably choose not to exercise that right,but doeshavethe right.

I want to get creditfor my work. I want people to know what I wrote. Can I still getcredit if I use the GPL?
You can certainly get credit for the work. Part of releasing aprogram under the GPL is writing a copyright notice in your own name(assuming you are the copyright holder). The GPL requires all copiesto carry an appropriate copyright notice.
Why does the GPLrequire including a copy of the GPL with every copy of the program?
Including a copy of the license with the work is vital so thateveryone who gets a copy of the program can know what his rights are.

It might be tempting to include a URL that refers to the license,instead of the license itself. But you cannot be sure that the URLwill still be valid, five years or ten years from now. Twenty yearsfrom now, URLs as we know them today may no longer exist.

The only way to make sure that people who have copies of the programwill continue to be able to see the license, despite all the changesthat will happen in the network, is to include a copy of the license inthe program.

Whatif the work is not much longer than the license itself?
If a single program is that short, you may as well use a simpleall-permissive license for it, rather than the GNU GPL.
Can I omit the preamble of the GPL, or the instructionsfor how to use it on your own programs, to save space?
The preamble and instructions are integral parts of the GNU GPL andmay not be omitted. In fact, the GPL is copyrighted, and its licensepermits only verbatim copying of the entire GPL. (You can use thelegal terms to makeanother licensebut itwon't be the GNU GPL.)

The preamble and instructions add up to some 5000 characters, lessthan 1/3 of the GPL's total size. They will not make a substantialfractional change in the size of a software package unless the packageitself is quite small. In that case, you may as well use a simpleall-permissive license rather than the GNU GPL.

Whatdoes it mean to say that two licenses are“compatible”?
In order to combine two programs (or substantial parts of them) into alarger work, you need to have permission to use both programs in thisway. If the two programs' licenses permit this, they are compatible.If there is no way to satisfy both licenses at once, they areincompatible.

For some licenses, the way in which the combination is made may affectwhether they are compatible—for instance, they may allow linkingtwo modules together, but not allow merging their code into onemodule.

Just to install two separate programs in the same system,it is not necessary that their licenses be compatible,because this does not combine them into a larger work.

Whatdoes it mean to say a license is “compatible with theGPL”.
It means that the other license and the GNU GPL are compatible;you can combine code released under the other license with codereleased under the GNU GPL in one larger program.

The GPL permits such a combination provided it is released under theGNU GPL. The other license is compatible with the GPL if it permitsthis too.

Can I writefree software that uses nonfree libraries?
If you do this, your program won't be fully usable in a freeenvironment. If your program depends on a nonfree library to do acertain job, it cannot do that job in the Free World. If it depends on anonfree library to run at all, it cannot be part of a free operatingsystem such as GNU; it is entirely off limits to the Free World.

So please consider: can you find a way to get the job done without usingthis library? Can you write a free replacement for that library?

If the program is already written using the nonfree library, perhaps itis too late to change the decision. You may as well release the programas it stands, rather than not release it. But please mention in theREADME that the need for the nonfree library is a drawback, and suggestthe task of changing the program so that it does the same job withoutthe nonfree library. Please suggest that anyone who thinks of doingsubstantial further work on the program first free it from dependenceon the nonfree library.

Note that there may also be legal issues with combining certain nonfreelibraries with GPL-covered Free Software. Please seethe question on GPL software withGPL-incompatible librariesfor more information.

Whatlegal issues come up if I use GPL-incompatible libraries with GPLsoftware?
If the libraries that you link with fall within the following exceptionin the GPL:

However, as a special exception, the source code distributed need notinclude anything that is normally distributed (in either source orbinary form) with the major components (compiler, kernel, and so on) ofthe operating system on which the executable runs, unless thatcomponent itself accompanies the executable.

then you don't have to do anything special to use them; the requirementto distribute source code for the whole program does not include thoselibraries, even if you distribute a linked executable containing them.Thus, if the libraries you need come with major parts of a proprietaryoperating system, the GPL says people can link your program with themwithout any conditions.

If you want your program to link against a library not covered by thatexception, you need to add your own exception, wholly outside of theGPL. This copyright notice and license notice give permission to linkwith the program FOO:

Copyright (C) yyyy <name of copyright holder>

This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.

You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Linking ABC statically or dynamically with other modules is makinga combined work based on ABC. Thus, the terms and conditions ofthe GNU General Public License cover the whole combination.

In addition, as a special exception, the copyright holders of ABC giveyou permission to combine ABC program with free software programs orlibraries that are released under the GNU LGPL and with code includedin the standard release of DEF under the XYZ license (or modifiedversions of such code, with unchanged license). You may copy anddistribute such a system following the terms of the GNU GPL for ABCand the licenses of the other code concerned, provided that youinclude the source code of that other code when and as the GNU GPLrequires distribution of source code.

Note that people who make modified versions of ABC are not obligatedto grant this special exception for their modified versions; it istheir choice whether to do so. The GNU General Public License givespermission to release a modified version without this exception; thisexception also makes it possible to release a modified version whichcarries forward this exception.

You should put this text in each file to which the exception applies.

Only the copyright holders for the program can legally authorize thisexception. If you wrote the whole program yourself, then assuming youremployer or school does not claim the copyright, you are the copyrightholder—so you can authorize the exception. But if you want touse parts of other GPL-covered programs by other authors in your code,you cannot authorize the exception for them. You have to get theapproval of the copyright holders of those programs.

When other people modify the program, they do not have to make the sameexception for their code—it is their choice whether to do so.

If the libraries you intend to link with are nonfree, please also seethe section on writing Free Software whichuses nonfree libraries.

How do Iget a copyright on my program in order to release it under theGPL?
Under the Berne Convention, everything written is automaticallycopyrighted from whenever it is put in fixed form. So you don't haveto do anything to “get” the copyright on what youwrite—as long as nobody else can claim to own your work.

However, registering the copyright in the US is a very good idea. Itwill give you more clout in dealing with an infringer in the US.

The case when someone else might possibly claim the copyright is ifyou are an employee or student; then the employer or the school mightclaim you did the job for them and that the copyright belongs to them.Whether they would have a valid claim would depend on circumstancessuch as the laws of the place where you live, and on your employmentcontract and what sort of work you do. It is best to consult a lawyerif there is any possible doubt.

If you think that the employer or school might have a claim, you canresolve the problem clearly by getting a copyright disclaimer signedby a suitably authorized officer of the company or school. (Yourimmediate boss or a professor is usually NOT authorized to sign such adisclaimer.)

What if my schoolmight want to make my program into its own proprietary softwareproduct?
Many universities nowadays try to raise funds by restricting the useof the knowledge and information they develop, in effect behavinglittle different from commercial businesses. (See “The KeptUniversity”, Atlantic Monthly, March 2000, for a generaldiscussion of this problem and its effects.)

If you see any chance that your school might refuse to allow yourprogram to be released as free software, it is best to raise the issueat the earliest possible stage. The closer the program is to workingusefully, the more temptation the administration might feel to take itfrom you and finish it without you. At an earlier stage, you havemore leverage.

So we recommend that you approach them when the program is onlyhalf-done, saying, “If you will agree to releasing this as freesoftware, I will finish it.” Don't think of this as a bluff. Toprevail, you must have the courage to say, “My program will haveliberty, or never be born.”

Couldyou give me step by step instructions on how to apply the GPL to myprogram?
See the page ofGPL instructions.
I heardthat someone got a copy of a GPL'ed program under another license. Isthis possible?
The GNU GPL does not give users permission to attach other licenses tothe program. But the copyright holder for a program can release itunder several different licenses in parallel. One of them may be theGNU GPL.

The license that comes in your copy, assuming it was put in by thecopyright holder and that you got the copy legitimately, is thelicense that applies to your copy.

Iwould like to release a program I wrote under the GNU GPL, but I wouldlike to use the same code in nonfree programs.
To release a nonfree program is always ethically tainted, but legallythere is no obstacle to your doing this. If you are the copyrightholder for the code, you can release it under various differentnon-exclusive licenses at various times.
Is thedeveloper of a GPL-covered program bound by the GPL? Could thedeveloper's actions ever be a violation of the GPL?
Strictly speaking, the GPL is a license from the developer for othersto use, distribute and change the program. The developer itself isnot bound by it, so no matter what the developer does, this is nota “violation” of the GPL.

However, if the developer does something that would violate the GPL ifdone by someone else, the developer will surely lose moral standing inthe community.

Can the developer of a program whodistributed it under the GPL later license it to another party forexclusive use?
No, because the public already has the right to use the program underthe GPL, and this right cannot be withdrawn.
Can I use GPL-covered editors such asGNU Emacs to develop nonfree programs? Can I use GPL-covered toolssuch as GCC to compile them?
Yes, because the copyright on the editors and tools does not cover thecode you write. Using them does not place any restrictions, legally,on the license you use for your code.

Some programs copy parts of themselves into the output for technicalreasons—for example, Bison copies a standard parser program intoits output file. In such cases, the copied text in the output iscovered by the same license that covers it in the source code.Meanwhile, the part of the output which is derived from the program'sinput inherits the copyright status of the input.

As it happens, Bison can also be used to develop nonfree programs.This is because we decided to explicitly permit the use of the Bisonstandard parser program in Bison output files without restriction. Wemade the decision because there were other tools comparable to Bisonwhich already permitted use for nonfree programs.

Do I have“fair use” rights in using the source code of aGPL-covered program?
Yes, you do. “Fair use” is use that is allowed withoutany special permission. Since you don't need the developers'permission for such use, you can do it regardless of what thedevelopers said about it—in the license or elsewhere, whetherthat license be the GNU GPL or any other free software license.

Note, however, that there is no world-wide principle of fair use; whatkinds of use are considered “fair” varies from country tocountry.

Can the US Governmentrelease a program under the GNU GPL?
If the program is written by US federal government employees in thecourse of their employment, it is in the public domain, which means itis not copyrighted. Since the GNU GPL is based on copyright, such aprogram cannot be released under the GNU GPL. (It can still befree software, however; a publicdomain program is free.)

However, when a US federal government agency uses contractors todevelop software, that is a different situation. The contract canrequire the contractor to release it under the GNU GPL. (GNU Ada wasdeveloped in this way.) Or the contract can assign the copyright tothe government agency, which can then release the software under theGNU GPL.

Can the US Governmentrelease improvements to a GPL-covered program?
Yes. If the improvements are written by US government employees inthe course of their employment, then the improvements are in thepublic domain. However, the improved version, as a whole, is stillcovered by the GNU GPL. There is no problem in this situation.

If the US government uses contractors to do the job, then theimprovements themselves can be GPL-covered.

Is there some way thatI can GPL the output people get from use of my program? For example,if my program is used to develop hardware designs, can I require thatthese designs must be free?
In general this is legally impossible; copyright law does not give youany say in the use of the output people make from their data usingyour program. If the user uses your program to enter or convert hisown data, the copyright on the output belongs to him, not you. Moregenerally, when a program translates its input into some other form,the copyright status of the output inherits that of the input it wasgenerated from.

So the only way you have a say in the use of the output is ifsubstantial parts of the output are copied (more or less) from text inyour program. For instance, part of the output of Bison (see above)would be covered by the GNU GPL, if we had not made an exception inthis specific case.

You could artificially make a program copy certain text into itsoutput even if there is no technical reason to do so. But if thatcopied text serves no practical purpose, the user could simply deletethat text from the output and use only the rest. Then he would nothave to obey the conditions on redistribution of the copied text.

In what cases is the output of a GPL program covered by the GPL too?
Only when the program copies part of itself into the output.
If I adda module to a GPL-covered program, do I have to use the GPL as thelicense for my module?
The GPL says that the whole combined program has to be released underthe GPL. So your module has to be available for use under the GPL.

But you can give additional permission for the use of your code. Youcan, if you wish, release your module under a license which is morelax than the GPL but compatible with the GPL. Thelicenselist pagegives a partial list of GPL-compatible licenses.

If a libraryis released under the GPL (not the LGPL), does that mean that anyprogram which uses it has to be under the GPL?

Yes, because the program actually links to the library. As such, the terms of the GPL apply to the entire combination. The software modulesthat link with the library may be under various GPL compatible licenses, but the work as a whole must be licensed under the GPL. See also:What does it mean to say a license is“compatible with the GPL”?

If aprogramming language interpreter is released under the GPL, does thatmean programs written to be interpreted by it must be underGPL-compatible licenses?
When the interpreter just interprets a language, the answer is no. Theinterpreted program, to the interpreter, is just data; a free softwarelicense like the GPL, based on copyright law, cannot limit what data youuse the interpreter on. You can run it on any data (interpreted program),any way you like, and there are no requirements about licensing that datato anyone.

However, when the interpreter is extended to provide“bindings” to other facilities (often, but notnecessarily, libraries), the interpreted program is effectively linkedto the facilities it uses through these bindings. So if thesefacilities are released under the GPL, the interpreted program thatuses them must be released in a GPL-compatible way. The JNI or JavaNative Interface is an example of such a binding mechanism; librariesthat are accessed in this way are linked dynamically with the Javaprograms that call them. These libraries are also linked with theinterpreter. If the interpreter is linked statically with theselibraries, or if it is designed tolink dynamically with these specificlibraries, then it too needs to be released in a GPL-compatibleway.

Another similar and very common case is to provide libraries with theinterpreter which are themselves interpreted. For instance, Perlcomes with many Perl modules, and a Java implementation comes withmany Java classes. These libraries and the programs that call themare always dynamically linked together.

A consequence is that if you choose to use GPL'd Perl modules or Javaclasses in your program, you must release the program in aGPL-compatible way, regardless of the license used in the Perl or Javainterpreter that the combined Perl or Java program will run on.

I'm writing a Windows application withMicrosoft Visual C++ (or Visual Basic) and I will be releasing itunder the GPL. Is dynamically linking my program with the VisualC++ (or Visual Basic) run-time library permitted under theGPL?
The GPL permits this because that run-time library normallyaccompanies the compiler or interpreter you are using. So it fallsunder the exception in GPL section 3.

That doesn't mean it is a good idea to write the program so that itonly runs on Windows. Doing so results in a program that is freesoftwarebut“trapped”(inthis case, trapped by Windows instead of by Java, but the effect isthe same). (Historical note: As of December 2006 Sun is in the middleofrereleasingits Java platform under GNU GPL.)

Why is the original BSDlicense incompatible with the GPL?
Because it imposes a specific requirement that is not in the GPL;namely, the requirement on advertisements of the program. The GPLstates:

You may not impose any further restrictions on the recipients' exerciseof the rights granted herein.

The advertising clause provides just such a further restriction, and thus isGPL-incompatible.

The revised BSD license does not have the advertising clause,which eliminates the problem.

When are a program and its plug-ins considered a single combined program?
It depends on how the main program invokes its plug-ins. If themain program uses fork and exec to invoke plug-ins, and they establishintimate communication by sharing complex data structures, or shippingcomplex data structures back and forth, that can make them one singlecombined program. A main program that uses simple fork and exec toinvoke plug-ins and does not establish intimate communication betweenthem results in the plug-ins being a separate program.

If the main program dynamically links plug-ins, and they makefunction calls to each other and share data structures, we believethey form a single combined program, which must be treated as anextension of both the main program and the plug-ins. If the mainprogram dynamically links plug-ins, but the communication between themis limited to invoking the ‘main’ function of the plug-inwith some options and waiting for it to return, that is a borderlinecase.

Using shared memory to communicate with complex data structures ispretty much equivalent to dynamic linking.

If a programreleased under the GPL uses plug-ins, what are the requirements forthe licenses of a plug-in?
Please see this questionfor determining whenplug-ins and a main program are considered a single combined programand when they are considered separate works.

If the main program and the plugins are a single combined program then this meansyou must license the plug-in under the GPL or a GPL-compatible freesoftware license and distribute it with source code in a GPL-compliantway. A main program that is separate from its plug-ins makes norequirements for the plug-ins.

Can I apply theGPL when writing a plug-in for a nonfree program?
Please see this questionfor determining whenplug-ins and a main program are considered a single combined programand when they are considered separate programs.

If they form asingle combined program this means that combination of the GPL-coveredplug-in with the nonfree main program would violate the GPL. However,you can resolve that legal problem by adding an exception to yourplug-in's license, giving permission to link it with the nonfree mainprogram.

See also the questionI amwriting free software that uses a nonfree library.

Can Irelease a nonfree program that's designed to load a GPL-coveredplug-in?
Please see this questionfor determining whenplug-ins and a main program are considered a single combined programand when they are considered separate programs.

If they form a single combined program then themain program must be released under the GPL or a GPL-compatible freesoftware license, and the terms of the GPL must be followed whenthe main program is distributed for use with these plug-ins.

However, if they are separate works then the license of the plug-inmakes no requirements about the main program.

See also the questionI amwriting free software that uses a nonfree library.

You have aGPL'ed program that I'd like to link with my code to build aproprietary program. Does the fact that I link with your program meanI have to GPL my program?
Yes.
If so, is thereany chance I could get a license of your program under the LesserGPL?
You can ask, but most authors will stand firm and say no.The idea of the GPL is that if you want to include our code in yourprogram, your program must also be free software. It is supposedto put pressure on you to release your program in a way that makesit part of our community.

You always have the legal alternative of not using our code.

How can I allow linking ofproprietary modules with my GPL-covered library under a controlledinterface only?
Add this text to the license notice of each file in the package, atthe end of the text that says the file is distributed under the GNUGPL:

Linking ABC statically or dynamically with other modules is makinga combined work based on ABC. Thus, the terms and conditions ofthe GNU General Public License cover the whole combination.

In addition, as a special exception, the copyright holders of ABC giveyou permission to combine ABC program with free software programs orlibraries that are released under the GNU LGPL and with independentmodules that communicate with ABC solely through the ABCDEF interface.You may copy and distribute such a system following the terms of theGNU GPL for ABC and the licenses of the other code concerned, providedthat you include the source code of that other code when and as theGNU GPL requires distribution of source code.

Note that people who make modified versions of ABC are not obligatedto grant this special exception for their modified versions; it istheir choice whether to do so. The GNU General Public License givespermission to release a modified version without this exception; thisexception also makes it possible to release a modified version whichcarries forward this exception.

Only the copyright holders for the program can legally authorize thisexception. If you wrote the whole program yourself, then assuming youremployer or school does not claim the copyright, you are the copyrightholder—so you can authorize the exception. But if you want touse parts of other GPL-covered programs by other authors in your code,you cannot authorize the exception for them. You have to get theapproval of the copyright holders of those programs.

I have written an application that linkswith many different components, that have different licenses. I amvery confused as to what licensing requirements are placed on myprogram. Can you please tell me what licenses I may use?
To answer this question, we would need to see a list of each componentthat your program uses, the license of that component, and a brief (afew sentences for each should suffice) describing how your libraryuses that component. Two examples would be:
  • To make my software work, it must be linked to the FOO library,which is available under the Lesser GPL.
  • My software makes a system call (with a command line that I built)to run the BAR program, which is licensed under “the GPL,with a special exception allowing for linking withQUUX”.
What isthe difference between “mere aggregation” and“combining two modules into one program”?
Mere aggregation of two programs means putting them side by side onthe same CD-ROM or hard disk. We use this term in the case where theyare separate programs, not parts of a single program. In this case,if one of the programs is covered by the GPL, it has no effect on theother program.

Combining two modules means connecting them together so that they forma single larger program. If either part is covered by the GPL, thewhole combination must also be released under the GPL—if youcan't, or won't, do that, you may not combine them.

What constitutes combining two parts into one program? This is alegal question, which ultimately judges will decide. We believe thata proper criterion depends both on the mechanism of communication(exec, pipes, rpc, function calls within a shared address space, etc.)and the semantics of the communication (what kinds of information areinterchanged).

If the modules are included in the same executable file, they aredefinitely combined in one program. If modules are designed to runlinked together in a shared address space, that almost surely meanscombining them into one program.

By contrast, pipes, sockets and command-line arguments arecommunication mechanisms normally used between two separate programs.So when they are used for communication, the modules normally areseparate programs. But if the semantics of the communication areintimate enough, exchanging complex internal data structures, that toocould be a basis to consider the two parts as combined into a largerprogram.

Why doesthe FSF require that contributors to FSF-copyrighted programs assigncopyright to the FSF? If I hold copyright on a GPL'ed program, shouldI do this, too? If so, how?
Our lawyers have told us that to be in thebest position to enforcethe GPLin court against violators, we should keep the copyright statusof the program as simple as possible. We do this by asking each contributorto either assign the copyright on his contribution to the FSF, or disclaimcopyright on it and thus put it in the public domain.

We also ask individual contributors to get copyright disclaimers fromtheir employers (if any) so that we can be sure those employers won'tclaim to own the contributions.

Of course, if all the contributors put their code in the publicdomain, there is no copyright with which to enforce the GPL. So weencourage people to assign copyright on large code contributions, andonly put small changes in the public domain.

If you want to make an effort to enforce the GPL on your program, itis probably a good idea for you to follow a similar policy. Pleasecontact<licensing@gnu.org>ifyou want more information.

Can I modify the GPLand make a modified license?
You can use the GPL terms (possibly modified) in another licenseprovided that you call your license by another name and do not includethe GPL preamble, and provided you modify the instructions-for-use atthe end enough to make it clearly different in wording and not mentionGNU (though the actual procedure you describe may be similar).

If you want to use our preamble in a modified license, please writeto<licensing@gnu.org>for permission. For this purpose we would want to check the actuallicense requirements to see if we approve of them.

Although we will not raise legal objections to your making a modifiedlicense in this way, we hope you will think twice and not do it. Sucha modified license is almost certainlyincompatible with the GNU GPL, and that incompatibility blocksuseful combinations of modules. The mere proliferation of differentfree software licenses is a burden in and of itself.

If I use apiece of software that has been obtained under the GNU GPL, am Iallowed to modify the original code into a new program, thendistribute and sell that new program commercially?
You are allowed to sell copies of the modified program commercially,but only under the terms of the GNU GPL. Thus, for instance, you mustmake the source code available to the users of the program asdescribed in the GPL, and they must be allowed to redistribute andmodify it as described in the GPL.

These requirements are the condition for including the GPL-coveredcode you received in a program of your own.

Can I use the GPL for something other thansoftware?
You can apply the GPL to any kind of work, as long as it is clear whatconstitutes the “source code” for the work. The GPLdefines this as the preferred form of the work for making changes init.

However, for manuals and textbooks, or more generally any sort of workthat is meant to teach a subject, we recommend using the GFDL ratherthan the GPL.

How does the LGPLwork with Java?
See this article for details.It works as designed, intended, and expected.
Consider this situation:1. X releases V1 of a project under the GPL.2. Y contributes to the development of V2 with changes and new code based on V1.3. X wants to convert V2 to a non-GPL license. Does X need Y's permission?
Yes. Y was required to release its version under the GNU GPL, as aconsequence of basing it on X's version V1. Nothing required Y toagree to any other license for its code. Therefore, X must get Y'spermission before releasing that code under another license.
I'd like to incorporate GPL-coveredsoftware in my proprietary system. Can I do this?
You cannot incorporate GPL-covered software in a proprietary system.The goal of the GPL is to grant everyone the freedom to copy,redistribute, understand, and modify a program. If you couldincorporate GPL-covered software into a nonfree system, it would havethe effect of making the GPL-covered software nonfree too.

A system incorporating a GPL-covered program is an extended version ofthat program. The GPL says that any extended version of the programmust be released under the GPL if it is released at all. This is fortwo reasons: to make sure that users who get the software get thefreedom they should have, and to encourage people to give backimprovements that they make.

However, in many cases you can distribute the GPL-covered softwarealongside your proprietary system. To do this validly, you must makesure that the free and nonfree programs communicate at arms length,that they are not combined in a way that would make themeffectively a single program.

The difference between this and “incorporating” theGPL-covered software is partly a matter of substance and partly form.The substantive part is this: if the two programs are combined so thatthey become effectively two parts of one program, then you can't treatthem as two separate programs. So the GPL has to cover the wholething.

If the two programs remain well separated, like the compiler and thekernel, or like an editor and a shell, then you can treat them as twoseparate programs—but you have to do it properly. The issue issimply one of form: how you describe what you are doing. Why do wecare about this? Because we want to make sure the users clearlyunderstand the free status of the GPL-covered software in thecollection.

If people were to distribute GPL-covered software calling it“part of” a system that users know is partly proprietary,users might be uncertain of their rights regarding the GPL-coveredsoftware. But if they know that what they have received is a freeprogram plus another program, side by side, their rights will beclear.

Using a certain GNU program under theGPL does not fit our project to make proprietary software. Will youmake an exception for us? It would mean more users of thatprogram.
Sorry, we don't make such exceptions. It would not be right.

Maximizing the number of users is not our aim. Rather, we are tryingto give the crucial freedoms to as many users as possible. Ingeneral, proprietary software projects hinder rather than help thecause of freedom.

We do occasionally make license exceptions to assist a project whichis producing free software under a license other than the GPL.However, we have to see a good reason why this will advance the causeof free software.

We also do sometimes change the distribution terms of a package, whenthat seems clearly the right way to serve the cause of free software;but we are very cautious about this, so you will have to show us veryconvincing reasons.

I'd like toincorporate GPL-covered software in my proprietary system. Can I dothis by putting a “wrapper” module, under a GPL-compatiblelax permissive license (such as the X11 license) in between theGPL-covered part and the proprietary part?
No. The X11 license is compatible with the GPL, so you can adda module to the GPL-covered program and put it under the X11 license.But if you were to incorporate them both in a larger program, thatwhole would include the GPL-covered part, so it would have to belicensedas a wholeunder the GNU GPL.

The fact that proprietary module A communicates with GPL-coveredmodule C only through X11-licensed module B is legally irrelevant;what matters is the fact that module C is included in the whole.

Does thelibstdc++ exception permit dynamic linking?
Yes. The intent of the exception is to allow people to compileproprietary software using gcc.
I'd like tomodify GPL-covered programs and link them with the portabilitylibraries from Money Guzzler Inc. I cannot distribute the source codefor these libraries, so any user who wanted to change these versionswould have to obtained those libraries separately. Why doesn't theGPL permit this?
There are two reasons for this.

First, a general one. If we permitted company A to make a proprietaryfile, and company B to distribute GPL-covered software linked withthat file, the effect would be to make a hole in the GPL big enough todrive a truck through. This would be carte blanche for withholdingthe source code for all sorts of modifications and extensions toGPL-covered software.

Giving all users access to the source code is one of our main goals,so this consequence is definitely something we want to avoid.

More concretely, the versions of the programs linked with the MoneyGuzzler libraries would not really be free software as we understandthe term—they would not come with full source code that enablesusers to change and recompile the program.

Iflicense for a module Q has a requirement that's incompatible with the GPL,but the requirement applies only when Q is distributed by itself, not whenQ is included in a larger program, does that make the licenseGPL-compatible? Can I combine or link Q with a GPL-coveredprogram?
If a program P is released under the GPL that meansany andevery part of itcan be used under the GPL. If you integratemodule Q, and release the combined program P+Q under the GPL, thatmeans any part of P+Q can be used under the GPL. One part of P+Q isQ. So releasing P+Q under the GPL says that Q any part of it can beused under the GPL. Putting it in other words, a user who obtains P+Qunder the GPL can delete P, so that just Q remains, still under theGPL.

If the license of module Q permits you to give permission for that,then it is GPL-compatible. Otherwise, it is not GPL-compatible.

If the license for Q says in no uncertain terms that you must do certainthings (not compatible with the GPL) when you redistribute Q on its own,then it does not permit you to distribute Q under the GPL. It follows thatyou can't release P+Q under the GPL either. So you cannot link or combineP with Q.

Can I release a modifiedversion of a GPL-covered program in binary form only?
No. The whole point of the GPL is that all modified versions mustbefree software—whichmeans, in particular, that the source code of the modified version isavailable to the users.
Idownloaded just the binary from the net. If I distribute copies,do I have to get the source and distribute that too?
Yes. The general rule is, if you distribute binaries, you must distributethe complete corresponding source code too. The exception for the casewhere you received a written offer for source code is quite limited.
I want to distribute binariesvia physical media without accompanying sources. Can I providesource code by FTP instead of by mail order?
You're supposed to provide the source code by mail-order on a physicalmedium, if someone orders it. You are welcome to offer people a wayto copy the corresponding source code by FTP, in addition to themail-order option, but FTP access to the source is not sufficient tosatisfy section 3 of the GPL.

When a user orders the source, you have to make sure to get the sourceto that user. If a particular user can conveniently get the sourcefrom you by anonymous FTP, fine—that does the job. But notevery user can do such a download. The rest of the users are just asentitled to get the source code from you, which means you must beprepared to send it to them by post.

If the FTP access is convenient enough, perhaps no one will choose tomail-order a copy. If so, you will never have to ship one. But youcannot assume that.

Of course, it's easiest to just send the source with the binary in thefirst place.

If you distribute binaries via FTP,you should distribute source via FTP.

My friend got a GPL-coveredbinary with an offer to supply source, and made a copy for me.Can I use the offer myself to obtain the source?
Yes, you can. The offer must be open to everyone who has a copy ofthe binary that it accompanies. This is why the GPL says your friendmust give you a copy of the offer along with a copy of thebinary—so you can take advantage of it.
Can I put the binaries on myInternet server and put the source on a different Internetsite?
The GPL says you must offer access to copy the source code “fromthe same place”; that is, next to the binaries. However, if youmake arrangements with another site to keep the necessary source codeavailable, and put a link or cross-reference to the source code nextto the binaries, we think that qualifies as “from the sameplace”.

Note, however, that it is not enough to find some site that happens tohave the appropriate source code today, and tell people to look there.Tomorrow that site may have deleted that source code, or simplyreplaced it with a newer version of the same program. Then you wouldno longer be complying with the GPL requirements. To make areasonable effort to comply, you need to make a positive arrangementwith the other site, and thus ensure that the source will be availablethere for as long as you keep the binaries available.

I want to distribute an extendedversion of a GPL-covered program in binary form. Is it enough todistribute the source for the original version?
No, you must supply the source code that corresponds to the binary.Corresponding source means the source from which users can rebuild thesame binary.

Part of the idea of free software is that users should have access tothe source code forthe programs they use. Thoseusing your version should have access to the source code for yourversion.

A major goal of the GPL is to build up the Free World by making surethat improvement to a free program are themselves free. If yourelease an improved version of a GPL-covered program, you must releasethe improved source code under the GPL.

I want to distributebinaries, but distributing complete source is inconvenient. Is itok if I give users the diffs from the “standard” versionalong with the binaries?
This is a well-meaning request, but this method of providing thesource doesn't really do the job.

A user that wants the source a year from now may be unable to get theproper version from another site at that time. The standarddistribution site may have a newer version, but the same diffsprobably won't work with that version.

So you need to provide complete sources, not just diffs, withthe binaries.

I want to make binaries available foranonymous FTP, but send sources only to people who order them.

If you want to distribute binaries by anonymous FTP, you still haveto provide source through one of the options listed in section 3.This should not be hard. You can provide a written offer for sourceif you want; section 3(b) allows this. But if you can find a site todistribute your program, you can surely find one that has room for thesources.

No matter how you distribute the source, the sources youprovide must correspond exactly to the binaries. In particular, youmust make sure they are for the same version of the program—notan older version and not a newer version.

You can make the sources and binaries available on different machines,provided they are equally easy to get to, and provided that you haveinformation next to the binaries saying where to find the sources.

How can I make sure eachuser who downloads the binaries also gets the source?
You don't have to make sure of this. As long as you make the sourceand binaries available so that the users can see what's available andtake what they want, you have done what is required of you. It is upto the user whether to download the source.

Our requirements for redistributors are intended to make sure theusers can get the source code, not to force users to download thesource code even if they don't want it.

A companyis running a modified version of a GPL'ed program on a web site.Does the GPL say they must release their modifiedsources?
The GPL permits anyone to make a modified version and use it withoutever distributing it to others. What this company is doing is aspecial case of that. Therefore, the company does not have to releasethe modified sources.

It is essential for people to have the freedom to make modificationsand use them privately, without ever publishing those modifications.However, putting the program on a server machine for the public totalk to is hardly “private” use, so it would be legitimateto require release of the source code in that special case. We arethinking about doing something like this in GPL version 3, but wedon't have precise wording in mind yet.

In the mean time, you might want to use theAffero GPLfor programsdesigned for network server use.

Is making and using multiple copieswithin one organization or company“distribution”?
No, in that case the organization is just making the copies foritself. As a consequence, a company or other organization can developa modified version and install that version through its ownfacilities, without giving the staff permission to release thatmodified version to outsiders.

However, when the organization transfers copies to other organizationsor individuals, that is distribution. In particular, providing copiesto contractors for use off-site is distribution.

If someone stealsa CD containing a version of a GPL-covered program, does the GPLgive him the right to redistribute that version?
If the version has been released elsewhere, then the thief probablydoes have the right to make copies and redistribute them under the GPL,but if he is imprisoned for stealing the CD he may have to wait untilhis release before doing so.

If the version in question is unpublished and considered by a companyto be its trade secret, then publishing it may be a violation of tradesecret law, depending on other circumstances. The GPL does not changethat. If the company tried to release its version and still treat itas a trade secret, that would violate the GPL, but if the companyhasn't released this version, no such violation has occurred.

What if a company distributes a copy ofsome other developers' GPL-covered work to me as a tradesecret?
The company has violated the GPL and will have to cease distributionof that program. Note how this differs from the theft case above; thecompany does not intentionally distribute a copy when a copy isstolen, so in that case the company has not violated the GPL.
What if a company distributes a copyof its own GPL-covered work to me as a trade secret?
If the program distributed does not incorporate anyone else'sGPL-covered work, then the company is not violating the GPL (seeIs the developer of a GPL-coveredprogram bound by the GPL?” for more information). But it ismaking two contradictory statements about what you can do with thatprogram: that you can redistribute it, and that you can't. It wouldmake sense to demand clarification of the terms for use of that programbefore you accept a copy.
Why are some GNU libraries released underthe ordinary GPL rather than the Lesser GPL?
Using the Lesser GPL for any particular library constitutes a retreatfor free software. It means we partially abandon the attempt todefend the users' freedom, and some of the requirements to share whatis built on top of GPL-covered software. In themselves, those arechanges for the worse.

Sometimes a localized retreat is a good strategy. Sometimes, usingthe LGPL for a library might lead to wider use of that library, andthus to more improvement for it, wider support for free software, andso on. This could be good for free software if it happens to a largeextent. But how much will this happen? We can only speculate.

It would be nice to try out the LGPL on each library for a while, seewhether it helps, and change back to the GPL if the LGPL didn't help.But this is not feasible. Once we use the LGPL for a particularlibrary, changing back would be difficult.

So we decide which license to use for each library on a case-by-casebasis. There is along explanationof how we judge the question.

Whyshould programs say “Version 2 of the GPL or any laterversion”?
From time to time, at intervals of years, we change theGPL—sometimes to clarify it, sometimes to permit certain kindsof use not previously permitted, and sometimes to tighten up arequirement. (The last change was in 1991.) Using this“indirect pointer” in each program makes it possible forus to change the distribution terms on the entire collection of GNUsoftware, when we update the GPL.

If each program lacked the indirect pointer, we would be forced todiscuss the change at length with numerous copyright holders, whichwould be a virtual impossibility. In practice, the chance of havinguniform distribution terms for GNU software would be nil.

Suppose a program says “Version 2 of the GPL or any laterversion” and a new version of the GPL is released. If the newGPL version gives additional permission, that permission will beavailable immediately to all the users of the program. But if the newGPL version has a tighter requirement, it will not restrict use of thecurrent version of the program, because it can still be used under GPLversion 2. When a program says “Version 2 of the GPL or anylater version”, users will always be permitted to use it, andeven change it, according to the terms of GPL version 2—evenafter later versions of the GPL are available.

If a tighter requirement in a new version of the GPL need not beobeyed for existing software, how is it useful? Once GPL version 3 isavailable, the developers of most GPL-covered programs will releasesubsequent versions of their programs specifying “Version 3 ofthe GPL or any later version”. Then users will have to followthe tighter requirements in GPL version 3, for subsequent versions ofthe program.

However, developers are not obligated to do this; developers cancontinue allowing use of the previous version of the GPL, if that istheir preference.

Whydon't you use the GPL for manuals?
It is possible to use the GPL for a manual, but the GNU FreeDocumentation License (GFDL) is much better for manuals.

The GPL was designed for programs; it contains lots of complex clausesthat are crucial for programs, but that would be cumbersome andunnecessary for a book or manual. For instance, anyone publishing thebook on paper would have to either include machine-readable“source code” of the book along with each printed copy, orprovide a written offer to send the “source code”later.

Meanwhile, the GFDL has clauses that help publishers of free manualsmake a profit from selling copies—cover texts, for instance.The special rules for Endorsements sections make it possible to usethe GFDL for an official standard. This would permit modifiedversions, but they could not be labeled as “thestandard”.

Using the GFDL, we permit changes in the text of a manual that coversits technical topic. It is important to be able to change thetechnical parts, because people who change a program ought to changethe documentation to correspond. The freedom to do this is anethical imperative.

Our manuals also include sections that state our political positionabout free software. We mark these as “invariant”, sothat they cannot be changed or removed. The GFDL makes provisions forthese “invariant sections”.

How does theGPL apply to fonts?
Font licensing is a complex issue which needs serious consideration.The following license exception is experimental but approved forgeneral use. We welcome suggestions on this subject—please seethisexplanatoryessayand write to<licensing@gnu.org>.

To use this exception, add this text to the license notice of eachfile in the package (to the extent possible), at the end of the textthat says the file is distributed under the GNU GPL:

As a special exception, if you create a document which usesthis font, and embed this font or unaltered portions of this font intothe document, this font does not by itself cause the resultingdocument to be covered by the GNU General Public License. Thisexception does not however invalidate any other reasons why thedocument might be covered by the GNU General Public License. If youmodify this font, you may extend this exception to your version of thefont, but you are not obligated to do so. If you do not wish to do so,delete this exception statement from your version.

I am writing a websitemaintenance system(called acontent managementsystem” by some), or some other application which generatesweb pages from templates. What license should I use for thosetemplates?

Templates are minor enough that it is not worth using copyleft toprotect them. It is normally harmless to use copyleft on minor works,but templates are a special case, because they are combined with dataprovided by users of the application and the combination isdistributed. So, we recommend that you license your templates undersimple permissive terms.

Some templates make calls into Javascript functions. SinceJavascript is often non-trivial, it is worth copylefting. Because thetemplates will be combined with user data, it's possible thattemplate+user data+Javascript would be considered one work undercopyright law. A line needs to be drawn between the Javascript(copylefted), and the user code(usually under incompatible terms).

A diagram of the above content

Here's an exception for Javascript code that does this:

As a special exception to GPL, any HTML file which merely makesfunction calls to this code, and for that purpose includes it byreference shall be deemed a separate work for copyright law purposes.In addition, the copyright holders of this code give you permission tocombine this code with free software libraries that are released underthe GNU LGPL. You may copy and distribute such a system following theterms of the GNU GPL for this code and the LGPL for the libraries. Ifyou modify this code, you may extend this exception to your version ofthe code, but you are not obligated to do so. If you do not wish to doso, delete this exception statement from your version.

Can I releasea program under the GPL which I developed using nonfree tools?
Which programs you used to edit the source code, or to compile it, orstudy it, or record it, usually makes no difference for issuesconcerning the licensing of that source code.

However, if you link nonfree libraries with the source code, thatwould be an issue you need to deal with. It does not precludereleasing the source code under the GPL, but if the libraries don'tfit under the “system library” exception, you should affixan explicit notice giving permission to link your program with them.The FSF can give you advice on doing this.

Are theretranslations of the GPL into other languages?
It would be useful to have translations of the GPL into languagesother than English. People have even written translations and sentthem to us. But we have not dared to approve them as officiallyvalid. That carries a risk so great we do not dare accept it.

A legal document is in some ways like a program. Translating it islike translating a program from one language and operating system toanother. Only a lawyer skilled in both languages can do it—andeven then, there is a risk of introducing a bug.

If we were to approve, officially, a translation of the GPL, we wouldbe giving everyone permission to do whatever the translation says theycan do. If it is a completely accurate translation, that is fine.But if there is an error in the translation, the results could be adisaster which we could not fix.

If a program has a bug, we can release a new version, and eventuallythe old version will more or less disappear. But once we have giveneveryone permission to act according to a particular translation, wehave no way of taking back that permission if we find, later on, thatit had a bug.

Helpful people sometimes offer to do the work of translation for us.If the problem were a matter of finding someone to do the work, thiswould solve it. But the actual problem is the risk of error, andoffering to do the work does not avoid the risk. We could notpossibly authorize a translation written by a non-lawyer.

Therefore, for the time being, we are not approving translationsof the GPL as globally valid and binding. Instead, we are doing twothings:

  • Referring people to unofficial translations.This means that we permit people to write translations of the GPL, butwe don't approve them as legally valid and binding.

    An unapproved translation has no legal force, and it should say soexplicitly. It should be marked as follows:

    This translation of the GPL is informal, and not officially approvedby the Free Software Foundation as valid. To be completely sure ofwhat is permitted, refer to the original GPL (in English).

    But the unapproved translation can serve as a hint for how tounderstand the English GPL. For many users, that is sufficient.

    However, businesses using GNU software in commercial activity, andpeople doing public ftp distribution, should need to check the realEnglish GPL to make sure of what it permits.

  • Publishing translations valid for a single country only.

    We are considering the idea of publishing translations which areofficially valid only for one country. This way, if there is amistake, it will be limited to that country, and the damage will notbe too great.

    It will still take considerable expertise and effort from a sympatheticand capable lawyer to make a translation, so we cannot promise anysuch translations soon.

Ifa programming language interpreter has a license that is incompatiblewith the GPL, can I run GPL-covered programs on it?
When the interpreter just interprets a language, the answer is yes.The interpreted program, to the interpreter, is just data; the GPLdoesn't restrict what tools you process the program with.

However, when the interpreter is extended to provide“bindings” to other facilities (often, but notnecessarily, libraries), the interpreted program is effectively linkedto the facilities it uses through these bindings. The JNI or JavaNative Interface is an example of such a facility; libraries that areaccessed in this way are linked dynamically with the Java programsthat call them.

So if these facilities are released under a GPL-incompatible license,the situation is like linking in any other way with a GPL-incompatiblelibrary. Which implies that:

  1. If you are writing code and releasing it under the GPL, you canstate an explicit exception giving permission to link it with thoseGPL-incompatible facilities.
  2. If you wrote and released the program under the GPL, and youdesigned it specifically to work with those facilities, people cantake that as an implicit exception permitting them to link it withthose facilities. But if that is what you intend, it is betterto say so explicitly.
  3. You can't take someone else's GPL-covered code and use it thatway, or add such exceptions to it. Only the copyright holders of thatcode can add the exception.
Who has thepower to enforce the GPL?

Since the GPL is a copyright license, it can be enforced by thecopyright holders of the software. If you see a violation of the GPL,you should inform the developers of the GPL-covered software involved.They either are the copyright holders, or are connected with thecopyright holders.

In addition, we encourage the use of any legal mechanism available tousers for obtaining complete and corresponding source code, as istheir right, and enforcing full compliance with the GNU GPL. Afterall, we developed the GNU GPL to make software free for all itsusers.

In an object-orientedlanguage such as Java, if I use a class that is GPL'ed withoutmodifying, and subclass it, in what way does the GPL affect the largerprogram?
Subclassing is creating a derivative work. Therefore, the terms of theGPL affect the whole program where you create a subclass of a GPL'edclass.
If I portmy program to GNU/Linux, does that mean I have to release it as FreeSoftware under the GPL or some other Free Software license?
In general, the answer is no—this is not a legal requirement.In specific, the answer depends on which libraries you want to use andwhat their licenses are. Most system libraries either usetheGNU Lesser GPL, or use the GNUGPL plus an exception permitting linking the library with anything.These libraries can be used in nonfree programs; but in the case ofthe Lesser GPL, it does have some requirements you must follow.

Some libraries are released under the GNU GPL alone; you must use aGPL-compatible license to use those libraries. But these are normallythe more specialized libraries, and you would not have had anything muchlike them on another platform, so you probably won't find yourselfwanting to use these libraries for simple porting.

Of course, your software is not a contribution to our community if it isnot free, and people who value their freedom will refuse to use it.Only people willing to give up their freedom will use your software,which means that it will effectively function as an inducement for peopleto lose their freedom.

If you hope some day to look back on your career and feel thatit has contributed to the growth of a good and free society, youneed to make your software free.

I just found out that a company has a copy of a GPL'ed program, and itcosts money to get it. Aren't they violating the GPL by not making itavailable on the Internet?
No. The GPL does not require anyone to use the Internet fordistribution. It also does not require anyone in particular toredistribute the program. And (outside of one special case), even ifsomeone does decide to redistribute the program sometimes, the GPLdoesn't say he has to distribute a copy to you in particular, or anyother person in particular.

What the GPL requires is that he must have the freedom to distribute acopy to youif he wishes to. Once the copyright holder doesdistribute a copy program to someone, that someone can then redistributethe program to you, or to anyone else, as he sees fit.

CanI release a program with a license which says that you can distributemodified versions of it under the GPL but you can't distribute theoriginal itself under the GPL?
No. Such a license would be self-contradictory. Let's look at its implications for me as a user.

Suppose I start with the original version (call it version A), add some code (let's imagine it is 1000 lines), and release that modified version (call it B) under the GPL. The GPL says anyone can change version B again and release the result under the GPL. So I (or someone else) can delete those 1000 lines, producing version C which has the same code as version A but is under the GPL.

If you try to block that path, by saying explicitly in the license that I'm not allowed to reproduce something identical to version A under the GPL by deleting those lines from version B, in effect the license now says that I can't fully use version B in all the ways that the GPL permits. In other words, the license does not in fact allow a user to release a modified version such as B under the GPL.

Does moving a copy to amajority-owned, and controlled, subsidiary constitutedistribution?

Whether moving a copy to or from this subsidiary constitutes'distribution' is a matter to be decided in each case under thecopyright law of the appropriate jurisdiction. The GPL does notand cannot override local laws. US copyright law is not entirelyclear on the point, but appears not to consider this distribution.

If, in some country, this is considered distribution, and thesubsidiary must receive the right to redistribute the program,that will not make a practical difference. The subsidiary iscontrolled by the parent company; rights or no rights, it won'tredistribute the program unless the parent company decides to doso.

Can software installers ask peopleto click to agree to the GPL? If I get some software under the GPL,do I have to agree to anything?

Some software packaging systems have a place which requires you toclick through or otherwise indicate assent to the terms of the GPL.This is neither required nor forbidden. With or without a clickthrough, the GPL's rules remain the same.

Merely agreeing to the GPL doesn't place any obligations on you. Youare not required to agree to anything to merely use software which islicensed under the GPL. You only have obligations if you modify ordistribute the software. If it really bothers you to click throughthe GPL, nothing stops you from hacking the GPLed software to bypass this.

I wouldlike to bundle GPLed software with some sort of installation software.Does that installer need to have a GPL-compatible license?

No. The installer and the files it installs are separate works. As aresult, the terms of the GPL do not apply to the installation software.