Personal tools

FAQ Update

From GPLv3 Wiki

(Difference between revisions)
Revision as of 17:13, 15 January 2006
novalis (Talk | contribs)

← Previous diff
Revision as of 17:13, 15 January 2006
novalis (Talk | contribs)

Next diff →
Line 40: Line 40:
-=What does it mean to say that two licenses are "compatible"?=+==What does it mean to say that two licenses are "compatible"?==
In order to combine two programs (or substantial parts of them) In order to combine two programs (or substantial parts of them)
into a larger work, you need to have permission to use both into a larger work, you need to have permission to use both

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.