FAQ Update
From GPLv3 Wiki
Revision as of 17:12, 15 January 2006 novalis (Talk | contribs) ← Previous diff |
Revision as of 17:13, 15 January 2006 novalis (Talk | contribs) Next diff → |
||
Line 32: | Line 32: | ||
- | =I want to get credit for my work. I want people to know what I wrote. | + | == I want to get credit for my work. I want people to know what I wrote. |
- | Can I still get credit if I use the GPL?= | + | Can I still get credit if I use the GPL? == |
You can certainly get credit for the work. Part of releasing a | You can certainly get credit for the work. Part of releasing a | ||
program under the GPL is writing a copyright notice in your own | program under the GPL is writing a copyright notice in your own |
Revision as of 17:13, 15 January 2006
Contents |
Fleem
blah
Morx
blah
== Does the GPL require that source code of modified versions be posted to the public? ==
The GPL does not require you to release your modified version. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization. But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL. Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.
== If I know someone has a copy of a GPL-covered program, can I demand he give me a copy? ==
No. The GPL gives him permission to make and redistribute copies of the program if he chooses to do so. He also has the right not to redistribute the program, if that is what he chooses.
== I want to get credit for my work. I want people to know what I wrote. Can I still get credit if I use the GPL? ==
You can certainly get credit for the work. Part of releasing a program under the GPL is writing a copyright notice in your own name (assuming you are the copyright holder). The GPL requires all copies to carry an appropriate copyright notice.
What does it mean to say that two licenses are "compatible"?
In order to combine two programs (or substantial parts of them) into a larger work, you need to have permission to use both programs in this way. If the two programs' licenses permit this, they are compatible. If there is no way to satisfy both licenses at once, they are incompatible. For some licenses, the way in which the combination is made may affect whether they are compatible--for instance, they may allow linking two modules together, but not allow merging their code into one module.
What does it mean to say a license is "compatible with the GPL".
It means that the other license and the GNU GPL are compatible; you can combine code released under the other license with code released under the GNU GPL in one larger program. The GPL permits such a combination provided it is released under the GNU GPL. The other license is compatible with the GPL if it permits this too.
=Do I have "fair use" rights in using the source code of a GPL-covered program?=
Yes, you do. "Fair use" is use that is allowed without any special permission. Since you don't need the developers' permission for such use, you can do it regardless of what the developers said about it--in the license or elsewhere, whether that license be the GNU GPL or any other free software license. Note, however, that there is no world-wide principle of fair use; what kinds of use are considered "fair" varies from country to country.
=If I add a module to a GPL-covered program, do I have to use the GPL as the license for my module?=
The GPL says that the whole combined program has to be released under the 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. You can, if you wish, release your program under a license which is more lax than the GPL but compatible with the GPL. The license list page gives a partial list of GPL-compatible licenses.
=I'm writing a Windows application with Microsoft Visual C++ (or Visual Basic) and I will be releasing it under the GPL. Is dynamically linking my program with the Visual C++ (or Visual Basic) run-time library permitted under the GPL?=
Yes, because that run-time library normally accompanies the compiler or interpreter you are using. So it falls under the exception in GPL section 3. It is lawful to do this. That doesn't mean it is a good idea to write the program so that it only runs on Windows. Doing so results in a program that is free software but "trapped" (in this case, trapped by Windows instead of by Java, but the effect is the same).
Can I use the GPL for something other than software?
You can apply the GPL to any kind of work, as long as it is clear what constitutes the "source code" for the work. The GPL defines this as the preferred form of the work for making changes in it. However, for manuals and textbooks, or more generally any sort of work that is meant to teach a subject, we recommend using the GFDL rather than the GPL.
=If license 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 when Q is included in a larger program, does that make the license
GPL-compatible? Can I combine or link Q with a GPL-covered program?=
If a program P is released under the GPL that means *any and every part of it* can be used under the GPL. If you integrate module Q, and release the combined program P+Q under the GPL, that means any part of P+Q can be used under the GPL. One part of P+Q is Q. So releasing P+Q under the GPL says that Q any part of it can be used under the GPL. Putting it in other words, a user who obtains P+Q under the GPL can delete P, so that just Q remains, still under the GPL. 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 certain things (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 that you can't release P +Q under the GPL either. So you cannot link or combine P with Q.
I want to distribute binaries without accompanying sources. Can I provide source code by FTP instead of by mail order?
You're supposed to provide the source code by mail-order on a physical medium, if someone orders it. You are welcome to offer people a way to copy the corresponding source code by FTP, in addition to the mail-order option, but FTP access to the source is not sufficient to satisfy section 3 of the GPL. When a user orders the source, you have to make sure to get the source to that user. If a particular user can conveniently get the source from you by anonymous FTP, fine--that does the job. But not every user can do such a download. The rest of the users are just as entitled to get the source code from you, which means you must be prepared to send it to them by post. If the FTP access is convenient enough, perhaps no one will choose to mail-order a copy. If so, you will never have to ship one. But you cannot assume that. Of course, it's easiest to just send the source with the binary in the first place.
A company is running a modified version of a GPL'ed program on a web site. Does the GPL say they must release their modified sources?
The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources. It is essential for people to have the freedom to make modifications and use them privately, without ever publishing those modifications. However, putting the program on a server machine for the public to talk to is hardly "private" use, so it would be legitimate to require release of the source code in that special case. We are thinking about doing something like this in GPL version 3, but we don't have precise wording in mind yet. In the mean time, you might want to use the Affero GPL for programs designed for network server use.
If someone steals a CD containing a version of a GPL-covered program, does the GPL give him the right to redistribute that version?
If the version has been released elsewhere, then the thief probably does 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 until his release before doing so. If the version in question is unpublished and considered by a company to be its trade secret, then publishing it may be a violation of trade secret law, depending on other circumstances. The GPL does not change that. If the company tried to release its version and still treat it as a trade secret, that would violate the GPL, but if the company hasn't released this version, no such violation has occurred.
If a programming language interpreter has a license that is incompatible with 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 GPL doesn't restrict what tools you process the program with. However, when the interpreter is extended to provide "bindings" to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. The JNI or Java Native Interface is an example of such a facility; libraries that are accessed in this way are linked dynamically with the Java programs that 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-incompatible library. Which implies that: 1. If you are writing code and releasing it under the GPL, you can state an explicit exception giving permission to link it with those GPL-incompatible facilities. 2. If you wrote and released the program under the GPL, and you designed it specifically to work with those facilities, people can take that as an implicit exception permitting them to link it with those facilities. But if that is what you intend, it is better to say so explicitly. 3. You can't take someone else's GPL-covered code and use it that way, or add such exceptions to it. Only the copyright holders of that code can add the exception.