per page, with , order by , clip by
Results of 1 - 1 of about 80 for what does gnu stand for? (0.176 sec.)
what (25797), does (28628), gnu (99454), stand (2787), for? (607)
/licenses/gpl-faq.html-diff
#score: 13012
@digest: 849774e3ebb502d618280b20c4b773c2
@id: 109184
@lang: en
@mdate: 2019-04-12T15:31:23Z
@size: 222159
@type: text/html
content-type: text/html; charset=utf-8
#keywords: anchor (52899), span (43709), covered (23313), dt (20024), dd (15283), href (14521), gpl (14152), program (12294), li (11943), plug (11558), binaries (8044), exception (7988), gplv3 (7553), release (7139), license (7090), modified (6895), distribute (6708), compatible (6678), licenses (6670), under (6412), incompatible (6347), reference (6331), released (5992), combined (5650), company (5565), libraries (5173), nonfree (5077), requirements (4922), permission (4447), programs (4345), version (4288), does (4145)
<!--#include virtual="/server/header.html" --> <!-- Parent-Version: 1.79 1.86 --> <title>Frequently Asked Questions about the GNU Licenses - GNU Project - Free Software Foundation</title> <style type="text/css" media="screen"> <!-- #template-diagram { width: 37.5em; max-width: 100%; margin: auto; } #template-diagram img { width: 100%; } table#gpl-compat-matrix td, table#gpl-compat-matrix th { border: 1px solid black; } table#gpl-compat-matrix { display: block; width: 100%; overflow: auto; padding: .1em; margin: auto; border-collapse: collapse; border: 2px solid black; } table#gpl-compat-matrix td, th.gpl-matrix-border { text-align: center; padding: .3em; margin: 0; border: 1px solid black; } table#gpl-compat-matrix td.ok { background-color: #ccffcc; } table#gpl-compat-matrix td.mok { background-color: #e4ffcc; } table#gpl-compat-matrix td.nok { background-color: #dddddd; } th.gpl-matrix-license { text-align: right; } tr.gpl-matrix-use-type { border-top: 2px solid black; } --> <!--#if expr="$LANGUAGE_SUFFIX = /[.](ar|fa|he)/" --> <!-- th.gpl-matrix-license { text-align: left; } --> <!--#endif --> </style> <!--#include virtual="/licenses/po/gpl-faq.translist" --> <!--#include virtual="/server/banner.html" --> <h2>Frequently Asked Questions about the GNU Licenses</h2> <!--#include virtual="/licenses/fsf-licensing.html" --> <h3>Table of Contents</h3> <h4>Basic questions about the GNU Project, the Free Software Foundation, and its licenses</h4> <ul> <li><a href="#WhatDoesGPLStandFor">What does “GPL” stand for?</a></li> <li><a href="#DoesFreeSoftwareMeanUsingTheGPL">Does free software mean using the GPL?</a></li> <li><a href="#WhyUseGPL">Why should I use the GNU GPL rather than other free software licenses?</a></li> <li><a href="#DoesAllGNUSoftwareUseTheGNUGPLAsItsLicense">Does all GNU software use the GNU GPL as its license?</a></li> <li><a href="#DoesUsingTheGPLForAProgramMakeItGNUSoftware">Does using the GPL for a program make it GNU software?</a></li> <li><a href="#GPLOtherThanSoftware">Can I use the GPL for something other than software?</a></li> <li><a href="#WhyNotGPLForManuals">Why don't you use the GPL for manuals?</a></li> <li><a href="#GPLTranslations">Are there translations of the GPL into other languages?</a></li> <li><a href="#WhySomeGPLAndNotLGPL">Why are some GNU libraries released under the ordinary GPL rather than the Lesser GPL?</a></li> <li><a href="#WhoHasThePower">Who has the power to enforce the GPL?</a></li> <li><a href="#AssignCopyright">Why does the FSF require that contributors to FSF-copyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed GPLed program, should I do this, too? If so, how?</a></li> <li><a href="#ModifyGPL">Can I modify the GPL and make a modified license?</a></li> <li><a href="#SeparateAffero">Why did you decide to write the GNU Affero GPLv3 as a separate license?</a></li> </ul> <h4>General understanding of the GNU licenses</h4> <ul> <li><a href="#WhyDoesTheGPLPermitUsersToPublishTheirModifiedVersions">Why does the GPL permit users to publish their modified versions?</a></li> <li><a href="#GPLRequireSourcePostedPublic">Does the GPL require that source code of modified versions be posted to the public?</a></li> <li><a href="#GPLAndNonfreeOnSameMachine">Can I have a GPL-covered program and an unrelated non-free nonfree program on the same computer?</a></li> <li><a href="#CanIDemandACopy">If I know someone has a copy of a GPL-covered program, can I demand they give me a copy?</a></li> <li><a href="#WhatDoesWrittenOfferValid">What does “written offer valid for any third party” mean in GPLv2? Does that mean everyone in the world can get the source to any GPL'ed GPLed program no matter what?</a></li> <li><a href="#TheGPLSaysModifiedVersions">The GPL says that modified versions, if released, must be “licensed … to all third parties.” Who are these third parties?</a></li> <li><a href="#DoesTheGPLAllowMoney">Does the GPL allow me to sell copies of the program for money?</a></li> <li><a href="#DoesTheGPLAllowDownloadFee">Does the GPL allow me to charge a fee for downloading the program from my distribution site?</a></li> <li><a href="#DoesTheGPLAllowRequireFee">Does the GPL allow me to require that anyone who receives the software must pay me a fee and/or notify me?</a></li> <li><a href="#DoesTheGPLRequireAvailabilityToPublic">If I distribute GPL'd GPLed software for a fee, am I required to also make it available to the public without a charge?</a></li> <li><a href="#DoesTheGPLAllowNDA">Does the GPL allow me to distribute a copy under a nondisclosure agreement?</a></li> <li><a href="#DoesTheGPLAllowModNDA">Does the GPL allow me to distribute a modified or beta version under a nondisclosure agreement?</a></li> <li><a href="#DevelopChangesUnderNDA">Does the GPL allow me to develop a modified version under a nondisclosure agreement?</a></li> <li><a href="#WhyMustIInclude">Why does the GPL require including a copy of the GPL with every copy of the program?</a></li> <li><a href="#WhatIfWorkIsShort">What if the work is not very long?</a></li> <li><a href="#RequiredToClaimCopyright">Am I required to claim a copyright on my modifications to a GPL-covered program?</a></li> <li><a href="#TranslateCode">What does the GPL say about translating some code to a different programming language?</a></li> <li><a href="#CombinePublicDomainWithGPL">If a program combines public-domain code with GPL-covered code, can I take the public-domain part and use it as public domain code?</a></li> <li><a href="#IWantCredit">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?</a></li> <li><a href="#RequireCitation">Does the GPL allow me to add terms that would require citation or acknowledgment in research papers which use the GPL-covered software or its output?</a></li> <li><a href="#GPLOmitPreamble">Can I omit the preamble of the GPL, or the instructions for how to use it on your own programs, to save space?</a></li> <li><a href="#WhatIsCompatible">What does it mean to say that two licenses are “compatible”?</a></li> <li><a href="#WhatDoesCompatMean">What does it mean to say a license is “compatible with the GPL”?</a></li> <li><a href="#OrigBSD">Why is the original BSD license incompatible with the GPL?</a></li> <li><a href="#MereAggregation">What is the difference between an “aggregate” and other kinds of “modified versions”?</a></li> <li><a href="#AggregateContainers">When it comes to determining whether two pieces of software form a single work, does the fact that the code is in one or more containers have any effect?</a></li> <li><a href="#AssignCopyright">Why does the FSF require that contributors to FSF-copyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed GPLed program, should I do this, too? If so, how?</a></li> <li><a href="#GPLCommercially">If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially?</a></li> <li><a href="#GPLOtherThanSoftware">Can I use the GPL for something other than software?</a></li> <li><a href="#NoMilitary">I'd like to license my code under the GPL, but I'd also like to make it clear that it can't be used for military and/or commercial uses. Can I do this?</a></li> <li><a href="#GPLHardware">Can I use the GPL to license hardware?</a></li> <li><a href="#Prelinking">Does prelinking a GPLed binary to various libraries on the system, to optimize its performance, count as modification?</a></li> <li><a href="#LGPLJava">How does the LGPL work with Java?</a></li> <li><a href="#WhyPropagateAndConvey">Why did you invent the new terms “propagate” and “convey” in GPLv3?</a></li> <li><a href="#ConveyVsDistribute">Is “convey” in GPLv3 the same thing as what GPLv2 means by “distribute”?</a></li> <li><a href="#NoDistributionRequirements">If I only make copies of a GPL-covered program and run them, without distributing or conveying them to others, what does the license require of me?</a></li> <li><a href="#v3MakingAvailable">GPLv3 gives “making available to the public” as an example of propagation. What does this mean? Is making available a form of conveying?</a></li> <li><a href="#PropagationNotConveying">Since distribution and making available to the public are forms of propagation that are also conveying in GPLv3, what are some examples of propagation that do not constitute conveying?</a></li> <li><a href="#BitTorrent">How does GPLv3 make BitTorrent distribution easier?</a></li> <li><a href="#Tivoization">What is tivoization? How does GPLv3 prevent it?</a></li> <li><a href="#DRMProhibited">Does GPLv3 prohibit DRM?</a></li> <li><a href="#v3VotingMachine">Does GPLv3 require that voters be able to modify the software running in a voting machine?</a></li> <li><a href="#v3PatentRetaliation">Does GPLv3 have a “patent retaliation clause”?</a></li> <li><a href="#v3Notwithstanding">In GPLv3 and AGPLv3, what does it mean when it says “notwithstanding any other provision of this License”?</a></li> <li><a href="#AGPLv3InteractingRemotely">In AGPLv3, what counts as “ interacting with [the software] remotely through a computer network?”</a></li> <li><a href="#ApacheLegalEntity">How does GPLv3's concept of “you” compare to the definition of “Legal Entity” in the Apache License 2.0?</a></li> <li><a href="#v3TheProgram">In GPLv3, what does “the Program” refer to? Is it every program ever released under GPLv3?</a></li> <li><a href="#AGPLv3ServerAsUser">If some network client software is released under AGPLv3, does it have to be able to provide source to the servers it interacts with?</a></li> <li><a href="#AGPLProxy">For software that runs a proxy server licensed under the AGPL, how can I provide an offer of source to users interacting with that code?</a></li> </ul> <h4>Using GNU licenses for your programs</h4> <ul> <li><a href="#v3HowToUpgrade">How do I upgrade from (L)GPLv2 to (L)GPLv3?</a></li> <li><a href="#CouldYouHelpApplyGPL">Could you give me step by step instructions on how to apply the GPL to my program?</a></li> <li><a href="#WhyUseGPL">Why should I use the GNU GPL rather than other free software licenses?</a></li> <li><a href="#WhyMustIInclude">Why does the GPL require including a copy of the GPL with every copy of the program?</a></li> <li><a href="#LicenseCopyOnly">Is putting a copy of the GNU GPL in my repository enough to apply the GPL?</a></li> <li><a href="#NoticeInSourceFile">Why should I put a license notice in each source file?</a></li> <li><a href="#WhatIfWorkIsShort">What if the work is not very long?</a></li> <li><a href="#GPLOmitPreamble">Can I omit the preamble of the GPL, or the instructions for how to use it on your own programs, to save space?</a></li> <li><a href="#HowIGetCopyright">How do I get a copyright on my program in order to release it under the GPL?</a></li> <li><a href="#WhatIfSchool">What if my school might want to make my program into its own proprietary software product?</a></li> <li><a href="#ReleaseUnderGPLAndNF">I would like to release a program I wrote under the GNU GPL, but I would like to use the same code in non-free nonfree programs.</a></li> <li><a href="#CanDeveloperThirdParty">Can the developer of a program who distributed it under the GPL later license it to another party for exclusive use?</a></li> <li><a href="#GPLUSGov">Can the US Government release a program under the GNU GPL?</a></li> <li><a href="#GPLUSGovAdd">Can the US Government release improvements to a GPL-covered program?</a></li> <li><a href="#VersionThreeOrLater">Why should programs say “Version 3 of the GPL or any later version”?</a></li> <li><a href="#OnlyLatestVersion">Is it a good idea to use a license saying that a certain program can be used only under the latest version of the GNU GPL?</a></li> <li><a href="#GPLOutput">Is there some way that I 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 that these designs must be free?</a></li> <li><a href="#WhyNotGPLForManuals">Why don't you use the GPL for manuals?</a></li> <li><a href="#FontException">How does the GPL apply to fonts?</a></li> <li><a href="#WMS">What license should I use for website maintenance system templates?</a></li> <li><a href="#NonFreeTools">Can I release a program under the GPL which I developed using non-free nonfree tools?</a></li> <li><a href="#GiveUpKeys">I use public key cryptography to sign my code to assure its authenticity. Is it true that GPLv3 forces me to release my private signing keys?</a></li> <li><a href="#v3VotingMachine">Does GPLv3 require that voters be able to modify the software running in a voting machine?</a></li> <li><a href="#v3InternationalDisclaimers">The warranty and liability disclaimers in GPLv3 seem specific to U.S. law. Can I add my own disclaimers to my own code?</a></li> <li><a href="#NonvisualLegalNotices">My program has interactive user interfaces that are non-visual in nature. How can I comply with the Appropriate Legal Notices requirement in GPLv3?</a></li> </ul> <h4>Distribution of programs released under the GNU licenses</h4> <ul> <li><a href="#ModifiedJustBinary">Can I release a modified version of a GPL-covered program in binary form only?</a></li> <li><a href="#UnchangedJustBinary">I downloaded just the binary from the net. If I distribute copies, do I have to get the source and distribute that too?</a></li> <li><a href="#DistributeWithSourceOnInternet">I want to distribute binaries via physical media without accompanying sources. Can I provide source code by FTP instead of by mail order?</a></li> <li><a href="#RedistributedBinariesGetSource">My friend got a GPL-covered binary with an offer to supply source, and made a copy for me. Can I use the offer to obtain the source?</a></li> <li><a href="#SourceAndBinaryOnDifferentSites">Can I put the binaries on my Internet server and put the source on a different Internet site?</a></li> <li><a href="#DistributeExtendedBinary">I want to distribute an extended version of a GPL-covered program in binary form. Is it enough to distribute the source for the original version?</a></li> <li><a href="#DistributingSourceIsInconvenient">I want to distribute binaries, but distributing complete source is inconvenient. Is it ok if I give users the diffs from the “standard” version along with the binaries?</a></li> <li><a href="#AnonFTPAndSendSources">Can I make binaries available on a network server, but send sources only to people who order them?</a></li> <li><a href="#HowCanIMakeSureEachDownloadGetsSource">How can I make sure each user who downloads the binaries also gets the source?</a></li> <li><a href="#MustSourceBuildToMatchExactHashOfBinary">Does the GPL require me to provide source code that can be built to match the exact hash of the binary I am distributing?</a></li> <li><a href="#ReleaseNotOriginal">Can I release a program with a license which says that you can distribute modified versions of it under the GPL but you can't distribute the original itself under the GPL?</a></li> <li><a href="#CompanyGPLCostsMoney">I just found out that a company has a copy of a GPL'ed GPLed program, and it costs money to get it. Aren't they violating the GPL by not making it available on the Internet?</a></li> <li><a href="#UnreleasedMods">A company is running a modified version of a GPL'ed GPLed program on a web site. Does the GPL say they must release their modified sources?</a></li> <li><a href="#UnreleasedModsAGPL">A company is running a modified version of a program licensed under the GNU Affero GPL (AGPL) on a web site. Does the AGPL say they must release their modified sources?</a></li> <li><a href="#InternalDistribution">Is use within one organization or company “distribution”?</a></li> <li><a href="#StolenCopy">If someone steals a CD containing a version of a GPL-covered program, does the GPL give him the right to redistribute that version?</a></li> <li><a href="#TradeSecretRelease">What if a company distributes a copy as a trade secret?</a></li> <li><a href="#GPLFairUse">Do I have “fair use” rights in using the source code of a GPL-covered program?</a></li> <li><a href="#DistributeSubsidiary">Does moving a copy to a majority-owned, and controlled, subsidiary constitute distribution?</a></li> <li><a href="#ClickThrough">Can software installers ask people to click to agree to the GPL? If I get some software under the GPL, do I have to agree to anything?</a></li> <li><a href="#GPLCompatInstaller">I would like to bundle GPLed software with some sort of installation software. Does that installer need to have a GPL-compatible license?</a></li> <li><a href="#ExportWarranties">Does a distributor violate the GPL if they require me to “represent and warrant” that I am located in the US, or that I intend to distribute the software in compliance with relevant export control laws?</a></li> <li><a href="#v3Under4and5">The beginning of GPLv3 section 6 says that I can convey a covered work in object code form “under the terms of sections 4 and 5” provided I also meet the conditions of section 6. What does that mean?</a></li> <li><a href="#v2OrLaterPatentLicense">My company owns a lot of patents. Over the years we've contributed code to projects under “GPL version 2 or any later version”, and the project itself has been distributed under the same terms. If a user decides to take the project's code (incorporating my contributions) under GPLv3, does that mean I've automatically granted GPLv3's explicit patent license to that user?</a></li> <li><a href="#v3ConditionalWarranty">If I distribute a GPLv3-covered program, can I provide a warranty that is voided if the user modifies the program?</a></li> <li><a href="#v3CoworkerConveying">If I give a copy of a GPLv3-covered program to a coworker at my company, have I “conveyed” the copy to that coworker?</a></li> <li><a href="#SourceInCVS">Am I complying with GPLv3 if I offer binaries on an FTP server and sources by way of a link to a source code repository in a version control system, like CVS or Subversion?</a></li> <li><a href="#RemoteAttestation">Can someone who conveys GPLv3-covered software in a User Product use remote attestation to prevent a user from modifying that software?</a></li> <li><a href="#RulesProtocols">What does “rules and protocols for communication across the network” mean in GPLv3?</a></li> <li><a href="#SupportService">Distributors that provide Installation Information under GPLv3 are not required to provide “support service” for the product. What kind of “support service” do you mean?</a></li> </ul> <h4>Using programs released under the GNU licenses when writing other programs</h4> <ul> <li><a href="#GPLAndNonfreeOnSameMachine">Can I have a GPL-covered program and an unrelated non-free nonfree program on the same computer?</a></li> <li><a href="#CanIUseGPLToolsForNF">Can I use GPL-covered editors such as GNU Emacs to develop non-free nonfree programs? Can I use GPL-covered tools such as GCC to compile them?</a></li> <li><a href="#GPLOutput">Is there some way that I 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 that these designs must be free?</a></li> <li><a href="#WhatCaseIsOutputGPL">In what cases is the output of a GPL program covered by the GPL too?</a></li> <li><a href="#PortProgramToGL">If href="#PortProgramToGPL">If I port my program to GNU/Linux, does that mean I have to release it as free software under the GPL or some other free software license?</a></li> <li><a href="#GPLInProprietarySystem">I'd like to incorporate GPL-covered software in my proprietary system. I have no permission to use that software except what the GPL gives me. Can I do this?</a></li> <li><a href="#LGPLv3ContributorVersion">If I distribute a proprietary program that links against an LGPLv3-covered library that I've modified, what is the “contributor version” for purposes of determining the scope of the explicit patent license grant I'm making—is it just the library, or is it the whole combination?</a></li> <li><a href="#AGPLv3CorrespondingSource">Under AGPLv3, when I modify the Program under section 13, what Corresponding Source does it have to offer?</a></li> <li><a href="#LibGCCException">Where can I learn more about the GCC Runtime Library Exception?</a></li> </ul> <h4>Combining work with code released under the GNU licenses</h4> <ul> <li><a href="#v2v3Compatibility">Is GPLv3 compatible with GPLv2?</a></li> <li><a href="#InstInfo">Does GPLv2 have a requirement about delivering installation information?</a></li> <li><a href="#AllCompatibility">How are the various GNU licenses compatible with each other?</a></li> <li><a href="#MereAggregation">What is the difference between an “aggregate” and other kinds of “modified versions”?</a></li> <li><a href="#GPLFairUse">Do I have “fair use” rights in using the source code of a GPL-covered program?</a></li> <li><a href="#GPLUSGovAdd">Can the US Government release improvements to a GPL-covered program?</a></li> <li><a href="#GPLStaticVsDynamic">Does the GPL have different requirements for statically vs dynamically linked modules with a covered work?</a></li> <li><a href="#LGPLStaticVsDynamic">Does the LGPL have different requirements for statically vs dynamically linked modules with a covered work?</a></li> <li><a href="#IfLibraryIsGPL">If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license?</a></li> <li><a href="#LinkingWithGPL">You have a GPL'ed GPLed program that I'd like to link with my code to build a proprietary program. Does the fact that I link with your program mean I have to GPL my program?</a></li> <li><a href="#SwitchToLGPL">If so, is there any chance I could get a license of your program under the Lesser GPL?</a></li> <li><a href="#WillYouMakeAnException">Using a certain GNU program under the GPL does not fit our project to make proprietary software. Will you make an exception for us? It would mean more users of that program.</a></li> <li><a href="#IfInterpreterIsGPL">If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses?</a></li> <li><a href="#InterpreterIncompat">If a programming language interpreter has a license that is incompatible with the GPL, can I run GPL-covered programs on it?</a></li> <li><a href="#GPLModuleLicense">If I add a module to a GPL-covered program, do I have to use the GPL as the license for my module?</a></li> <li><a href="#GPLPlugins">When is a program and its plug-ins considered a single combined program?</a></li> <li><a href="#GPLAndPlugins">If I write a plug-in to use with a GPL-covered program, what requirements does that impose on the licenses I can use for distributing my plug-in?</a></li> <li><a href="#GPLPluginsInNF">Can I apply the GPL when writing a plug-in for a non-free nonfree program?</a></li> <li><a href="#NFUseGPLPlugins">Can I release a non-free nonfree program that's designed to load a GPL-covered plug-in?</a></li> <li><a href="#GPLInProprietarySystem">I'd like to incorporate GPL-covered software in my proprietary system. I have no permission to use that software except what the GPL gives me. Can I do this?</a></li> <li><a href="#GPLWrapper">I'd like to incorporate GPL-covered software in my proprietary system. Can I do this by putting a “wrapper” module, under a GPL-compatible lax permissive license (such as the X11 license) in between the GPL-covered part and the proprietary part?</a></li> <li><a href="#FSWithNFLibs">Can I write free software that uses non-free nonfree libraries?</a></li> <li><a href="#SystemLibraryException">Can I link a GPL program with a proprietary system library?</a></li> <li><a href="#GPLIncompatibleLibs">What legal issues come up if I use GPL-incompatible libraries with GPL software?</a></li> <li><a href="#WindowsRuntimeAndGPL">I'm writing a Windows application with Microsoft Visual C++ and I will be releasing it under the GPL. Is dynamically linking my program with the Visual C++ runtime library permitted under the GPL?</a></li> <li><a href="#MoneyGuzzlerInc">I'd like to modify GPL-covered programs and link them with the portability libraries from Money Guzzler Inc. I cannot distribute the source code for these libraries, so any user who wanted to change these versions would have to obtain those libraries separately. Why doesn't the GPL permit this?</a></li> <li><a href="#GPLIncompatibleAlone">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?</a></li> <li><a href="#OOPLang">In an object-oriented language such as Java, if I use a class that is GPL'ed GPLed without modifying, and subclass it, in what way does the GPL affect the larger program?</a></li> <li><a href="#NonfreeDriverKernelLinux">Does distributing a nonfree driver meant to link with the kernel Linux violate the GPL?</a></li> <li><a href="#LinkingOverControlledInterface">How can I allow linking of proprietary modules with my GPL-covered library under a controlled interface only?</a></li> <li><a href="#Consider">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?</a></li> <li><a href="#ManyDifferentLicenses">I have written an application that links with many different components, that have different licenses. I am very confused as to what licensing requirements are placed on my program. Can you please tell me what licenses I may use?</a></li> <li><a href="#SourceCodeInDocumentation">Can I use snippets of GPL-covered source code within documentation that is licensed under some license that is incompatible with the GPL?</a></li> </ul> <h4>Questions about violations of the GNU licenses</h4> <ul> <li><a href="#ReportingViolation">What should I do if I discover a possible violation of the GPL?</a></li> <li><a href="#WhoHasThePower">Who has the power to enforce the GPL?</a></li> <li><a href="#HeardOtherLicense">I heard that someone got a copy of a GPL'ed GPLed program under another license. Is this possible?</a></li> <li><a href="#DeveloperViolate">Is the developer of a GPL-covered program bound by the GPL? Could the developer's actions ever be a violation of the GPL?</a></li> <li><a href="#CompanyGPLCostsMoney">I just found out that a company has a copy of a GPL'ed GPLed program, and it costs money to get it. Aren't they violating the GPL by not making it available on the Internet?</a></li> <li><a href="#SubscriptionFee">Can I use GPLed software on a device that will stop operating if customers do not continue paying a subscription fee?</a></li> <li><a href="#Cure">What does it mean to “cure” a violation of GPLv3?</a></li> <li><a href="#LaptopLoan">If someone installs GPLed software on a laptop, and then lends that laptop to a friend without providing source code for the software, have they violated the GPL?</a></li> <li><a href="#TwoPartyTivoization" >Suppose that two companies try to circumvent the requirement to provide Installation Information by having one company release signed software, and the other release a User Product that only runs signed software from the first company. Is this a violation of GPLv3?</a></li> </ul> <hr /> <dl> <dt id="WhatDoesGPLStandFor">What does “GPL” stand for? <span class="anchor-reference-id">(<a href="#WhatDoesGPLStandFor" >#WhatDoesGPLStandFor</a>)</span></dt> <dd><p> “GPL” stands for “General Public License”. The most widespread such license is the GNU General Public License, or GNU GPL for short. This can be further shortened to “GPL”, when it is understood that the GNU GPL is the one intended.</p></dd> <dt id="DoesFreeSoftwareMeanUsingTheGPL">Does free software mean using the GPL? <span class="anchor-reference-id">(<a href="#DoesFreeSoftwareMeanUsingTheGPL" >#DoesFreeSoftwareMeanUsingTheGPL</a>)</span></dt> <dd><p> Not at all—there are many other free software licenses. We have an <a href="/licenses/license-list.html">incomplete list</a>. Any license that provides the user <a href="/philosophy/free-sw.html">certain specific freedoms</a> is a free software license.</p></dd> <dt id="WhyUseGPL">Why should I use the GNU GPL rather than other free software licenses? <span class="anchor-reference-id">(<a href="#WhyUseGPL" >#WhyUseGPL</a>)</span></dt> <dd><p> Using the GNU GPL will require that all the <a href="/philosophy/pragmatic.html">released improved versions be free software</a>. This means you can avoid the risk of having to compete with a proprietary modified version of your own work. However, in some special situations it can be better to use a <a href="/licenses/why-not-lgpl.html">more permissive license</a>.</p></dd> <dt id="DoesAllGNUSoftwareUseTheGNUGPLAsItsLicense">Does all GNU software use the GNU GPL as its license? <span class="anchor-reference-id">(<a href="#DoesAllGNUSoftwareUseTheGNUGPLAsItsLicense" >#DoesAllGNUSoftwareUseTheGNUGPLAsItsLicense</a>)</span></dt> <dd><p> Most GNU software packages use the GNU GPL, but there are a few GNU programs (and parts of programs) that use looser licenses, such as the Lesser GPL. When we do this, it is a matter of <a href="/licenses/why-not-lgpl.html">strategy</a>.</p></dd> <dt id="DoesUsingTheGPLForAProgramMakeItGNUSoftware">Does using the GPL for a program make it GNU software? <span class="anchor-reference-id">(<a href="#DoesUsingTheGPLForAProgramMakeItGNUSoftware" >#DoesUsingTheGPLForAProgramMakeItGNUSoftware</a>)</span></dt> <dd><p> Anyone can release a program under the GNU GPL, but that does not make it a GNU package.</p> <p>Making the program a GNU software package means explicitly contributing to the GNU Project. This happens when the program's developers and the GNU Project agree to do it. If you are interested in contributing a program to the GNU Project, please write to <a href="mailto:maintainers@gnu.org"><maintainers@gnu.org></a>.</p></dd> <dt id="ReportingViolation">What should I do if I discover a possible violation of the GPL? <span class="anchor-reference-id">(<a href="#ReportingViolation" >#ReportingViolation</a>)</span></dt> <dd><p> You should <a href="/licenses/gpl-violation.html">report it</a>. First, check the facts as best you can. Then tell the publisher or copyright holder of the specific GPL-covered program. If that is the Free Software Foundation, write to <a href="mailto:license-violation@gnu.org"><license-violation@gnu.org></a>. Otherwise, the program's maintainer may be the copyright holder, or else could tell you how to contact the copyright holder, so report it to the maintainer.</p></dd> <dt id="WhyDoesTheGPLPermitUsersToPublishTheirModifiedVersions">Why does the GPL permit users to publish their modified versions? <span class="anchor-reference-id">(<a href="#WhyDoesTheGPLPermitUsersToPublishTheirModifiedVersions" >#WhyDoesTheGPLPermitUsersToPublishTheirModifiedVersions</a>)</span></dt> <dd><p> 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 other to share their bug fixes and improvements with other users.</p> <p>Some have proposed alternatives to the GPL that require modified versions to go through the original author. As long as the original author keeps up with the need for maintenance, this may work well in practice, but if the author stops (more or less) to do something else or does not attend to all the users' needs, this scheme falls down. Aside from the practical problems, this scheme does not allow users to help each other.</p> <p>Sometimes control over modified versions is proposed as a means of preventing confusion between various versions made by users. In our experience, this confusion is not a major problem. Many versions of Emacs have been made outside the GNU Project, but users can tell them apart. The GPL requires the maker of a version to place his or her name on it, to distinguish it from other versions and to protect the reputations of other maintainers.</p></dd> <dt id="GPLRequireSourcePostedPublic">Does the GPL require that source code of modified versions be posted to the public? <span class="anchor-reference-id">(<a href="#GPLRequireSourcePostedPublic" >#GPLRequireSourcePostedPublic</a>)</span></dt> <dd><p> The GPL does not require you to release your modified version, or any part of it. 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.</p> <p>But <em>if</em> 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.</p> <p>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.</p></dd> <dt id="GPLAndNonfreeOnSameMachine">Can I have a GPL-covered program and an unrelated non-free nonfree program on the same computer? <span class="anchor-reference-id">(<a href="#GPLAndNonfreeOnSameMachine" >#GPLAndNonfreeOnSameMachine</a>)</span></dt> <dd><p>Yes.</p></dd> <dt id="CanIDemandACopy">If I know someone has a copy of a GPL-covered program, can I demand they give me a copy? <span class="anchor-reference-id">(<a href="#CanIDemandACopy" >#CanIDemandACopy</a>)</span></dt> <dd><p> No. The GPL gives a person permission to make and redistribute copies of the program <em>if and when that person chooses to do so</em>. That person also has the right not to choose to redistribute the program.</p></dd> <dt id="WhatDoesWrittenOfferValid">What does “written offer valid for any third party” mean in GPLv2? Does that mean everyone in the world can get the source to any GPL'ed GPLed program no matter what? <span class="anchor-reference-id">(<a href="#WhatDoesWrittenOfferValid" >#WhatDoesWrittenOfferValid</a>)</span></dt> <dd><p> If you choose to provide source through a written offer, then anybody who requests the source from you is entitled to receive it.</p> <p>If you commercially distribute binaries not accompanied with source code, the GPL says you must provide a written offer to distribute the source code later. When users non-commercially redistribute the binaries they received from you, they must pass along a copy of this written offer. This means that people who did not get the binaries directly from you can still receive copies of the source code, along with the written offer.</p> <p>The reason we require the offer to be valid for any third party is so that people who receive the binaries indirectly in that way can order the source code from you.</p></dd> <dt id="TheGPLSaysModifiedVersions">GPLv2 says that modified versions, if released, must be “licensed … to all third parties.” Who are these third parties? <span class="anchor-reference-id">(<a href="#TheGPLSaysModifiedVersions" >#TheGPLSaysModifiedVersions</a>)</span></dt> <dd><p> Section 2 says that modified versions you distribute must be licensed to all third parties under the GPL. “All third parties” means absolutely everyone—but this does not require you to <em>do</em> anything physically for them. It only means they have a license from you, under the GPL, for your version. </p></dd> <dt id="RequiredToClaimCopyright">Am I required to claim a copyright on my modifications to a GPL-covered program? <span class="anchor-reference-id">(<a href="#RequiredToClaimCopyright" >#RequiredToClaimCopyright</a>)</span></dt> <dd><p> You are not required to claim a copyright on your changes. In most countries, however, that happens automatically by default, so you need to place your changes explicitly in the public domain if you do not want them to be copyrighted.</p> <p>Whether you claim a copyright on your changes or not, either way you must release the modified version, as a whole, under the GPL (<a href="#GPLRequireSourcePostedPublic">if you release your modified version at all</a>).</p></dd> <dt id="TranslateCode">What does the GPL say about translating some code to a different programming language? <span class="anchor-reference-id">(<a href="#TranslateCode" >#TranslateCode</a>)</span></dt> <dd><p> Under copyright law, translation of a work is considered a kind of modification. Therefore, what the GPL says about modified versions applies also to translated versions. The translation is covered by the copyright on the original program.</p> <p>If the original program carries a free license, that license gives permission to translate it. How you can use and license the translated program is determined by that license. If the original program is licensed under certain versions of the GNU GPL, the translated program must be covered by the same versions of the GNU GPL. </p></dd> <dt id="CombinePublicDomainWithGPL">If a program combines public-domain code with GPL-covered code, can I take the public-domain part and use it as public domain code? <span class="anchor-reference-id">(<a href="#CombinePublicDomainWithGPL" >#CombinePublicDomainWithGPL</a>)</span></dt> <dd><p> You can do that, if you can figure out which part is the public domain part and separate it from the rest. If code was put in the public domain by its developer, it is in the public domain no matter where it has been.</p></dd> <dt id="DoesTheGPLAllowMoney">Does the GPL allow me to sell copies of the program for money? <span class="anchor-reference-id">(<a href="#DoesTheGPLAllowMoney" >#DoesTheGPLAllowMoney</a>)</span></dt> <dd><p> Yes, the GPL allows everyone to do this. The <a href="/philosophy/selling.html">right to sell copies</a> is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge. (The one exception is the required written offer to provide source code that must accompany binary-only release.)</p></dd> <dt id="DoesTheGPLAllowDownloadFee">Does the GPL allow me to charge a fee for downloading the program from my distribution site?</dt> site? <span class="anchor-reference-id">(<a href="#DoesTheGPLAllowDownloadFee" >#DoesTheGPLAllowDownloadFee</a>)</span></dt> <dd><p> Yes. You can charge any fee you wish for distributing a copy of the program. If you distribute binaries by download, you must provide “equivalent access” to download the source—therefore, the fee to download source may not be greater than the fee to download the binary.</p></dd> <dt id="DoesTheGPLAllowRequireFee">Does the GPL allow me to require that anyone who receives the software must pay me a fee and/or notify me? <span class="anchor-reference-id">(<a href="#DoesTheGPLAllowRequireFee" >#DoesTheGPLAllowRequireFee</a>)</span></dt> <dd><p> No. In fact, a requirement like that would make the program non-free. nonfree. If people have to pay when they get a copy of a program, or if they have to notify anyone in particular, then the program is not free. See the <a href="/philosophy/free-sw.html"> definition of free software</a>.</p> <p>The GPL is a free software license, and therefore it permits people to use and even redistribute the software without being required to pay anyone a fee for doing so.</p> <p>You <em>can</em> charge people a fee to <a href="#DoesTheGPLAllowMoney">get a copy <em>from you</em></a>. You can't require people to pay you when they get a copy <em>from someone else</em>.</p></dd> <dt id="DoesTheGPLRequireAvailabilityToPublic">If I distribute GPL'd GPLed software for a fee, am I required to also make it available to the public without a charge? <span class="anchor-reference-id"> (<a href="#DoesTheGPLRequireAvailabilityToPublic" >#DoesTheGPLRequireAvailabilityToPublic</a>)</span></dt> <dd><p> No. However, if someone pays your fee and gets a copy, the GPL gives them 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 a web site for the general public. </p></dd> <dt id="DoesTheGPLAllowNDA">Does the GPL allow me to distribute copies under a nondisclosure agreement? <span class="anchor-reference-id">(<a href="#DoesTheGPLAllowNDA" >#DoesTheGPLAllowNDA</a>)</span></dt> <dd><p> No. The GPL says that anyone who receives a copy from you has the right to redistribute copies, modified or not. You are not allowed to distribute the work on any more restrictive basis.</p> <p>If someone asks you to sign an NDA for receiving GPL-covered software copyrighted by the FSF, please inform us immediately by writing to <a href="mailto:license-violation@fsf.org">license-violation@fsf.org</a>.</p> <p>If the violation involves GPL-covered code that has some other copyright holder, please inform that copyright holder, just as you would for any other kind of violation of the GPL.</p></dd> <dt id="DoesTheGPLAllowModNDA">Does the GPL allow me to distribute a modified or beta version under a nondisclosure agreement? <span class="anchor-reference-id">(<a href="#DoesTheGPLAllowModNDA" >#DoesTheGPLAllowModNDA</a>)</span></dt> <dd><p> No. The GPL says that your modified versions must carry all the freedoms stated in the GPL. Thus, anyone who receives a copy of your version from you has the right to redistribute copies (modified or not) of that version. You may not distribute any version of the work on a more restrictive basis.</p></dd> <dt id="DevelopChangesUnderNDA">Does the GPL allow me to develop a modified version under a nondisclosure agreement? <span class="anchor-reference-id">(<a href="#DevelopChangesUnderNDA" >#DevelopChangesUnderNDA</a>)</span></dt> <dd><p> Yes. For instance, you can accept a contract to develop changes and agree not to release <em>your changes</em> until the client says ok. This is permitted because in this case no GPL-covered code is being distributed under an NDA.</p> <p>You can also release your changes to the client under the GPL, but agree not to release them to anyone else unless the client says ok. In this case, too, no GPL-covered code is being distributed under an NDA, or under any additional restrictions.</p> <p>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 does <em>have</em> the right.</p></dd> <dt id="IWantCredit">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? <span class="anchor-reference-id">(<a href="#IWantCredit" >#IWantCredit</a>)</span></dt> <dd><p> 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.</p></dd> <dt id="RequireCitation">Does the GPL allow me to add terms that would require citation or acknowledgment in research papers which use the GPL-covered software or its output? <span class="anchor-reference-id">(<a href="#RequireCitation">#RequireCitation</a>)</span> </dt> <dd><p> No, this is not permitted under the terms of the GPL. While we recognize that proper citation is an important part of academic publications, citation cannot be added as an additional requirement to the GPL. Requiring citation in research papers which made use of GPL'd GPLed software goes beyond what would be an acceptable additional requirement under section 7(b) of GPLv3, and therefore would be considered an additional restriction under Section 7 of the GPL. And copyright law does not allow you to place such a <a href="#GPLOutput">requirement on the output of software</a>, regardless of whether it is licensed under the terms of the GPL or some other license.</p> </dd> <dt id="WhyMustIInclude">Why does the GPL require including a copy of the GPL with every copy of the program? <span class="anchor-reference-id">(<a href="#WhyMustIInclude" >#WhyMustIInclude</a>)</span></dt> <dd><p> Including a copy of the license with the work is vital so that everyone who gets a copy of the program can know what their rights are.</p> <p>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 URL will still be valid, five years or ten years from now. Twenty years from now, URLs as we know them today may no longer exist.</p> <p>The only way to make sure that people who have copies of the program will continue to be able to see the license, despite all the changes that will happen in the network, is to include a copy of the license in the program.</p></dd> <dt id="LicenseCopyOnly">Is it enough just to put a copy of the GNU GPL in my repository? <span class="anchor-reference-id">(<a href="#LicenseCopyOnly" >#LicenseCopyOnly</a>)</span></dt> <dd><p>Just putting a copy of the GNU GPL in a file in your repository does not explicitly state that the code in the same repository may be used under the GNU GPL. Without such a statement, it's not entirely clear that the permissions in the license really apply to any particular source file. An explicit statement saying that eliminates all doubt.</p> <p>A file containing just a license, without a statement that certain other files are covered by that license, resembles a file containing just a subroutine which is never called from anywhere else. The resemblance is not perfect: lawyers and courts might apply common sense and conclude that you must have put the copy of the GNU GPL there because you wanted to license the code that way. Or they might not. Why leave an uncertainty?</p> <p>This statement should be in each source file. A clear statement in the program's README file is legally sufficient <em>as long as that accompanies the code</em>, but it is easy for them to get separated. Why take a risk of <a href="#NoticeInSourceFile">uncertainty about your code's license</a>?</p> <p>This has nothing to do with the specifics of the GNU GPL. It is true for any free license.</p></dd> <dt id="NoticeInSourceFile">Why should I put a license notice in each source file? <span class="anchor-reference-id">(<a href="#NoticeInSourceFile" >#NoticeInSourceFile</a>)</span></dt> <dd><p>You should put a notice at the start of each source file, stating what license it carries, in order to avoid risk of the code's getting disconnected from its license. If your repository's README says that source file is under the GNU GPL, what happens if someone copies that file to another program? That other context may not show what the file's license is. It may appear to have some other license, or <a href="/licenses/license-list.html#NoLicense">no license at all</a> (which would make the code nonfree).</p> <p>Adding a copyright notice and a license notice at the start of each source file is easy and makes such confusion unlikely.</p> <p>This has nothing to do with the specifics of the GNU GPL. It is true for any free license.</p></dd> <dt id="WhatIfWorkIsShort">What if the work is not very long? <span class="anchor-reference-id">(<a href="#WhatIfWorkIsShort" >#WhatIfWorkIsShort</a>)</span></dt> <dd><p>If a whole software package contains very little code—less than 300 lines is the benchmark we use—you may as well use a lax permissive license for it, rather than a copyleft license like the GNU GPL. (Unless, that is, the code is specially important.) We <a href="/licenses/license-recommendations.html#software">recommend the Apache License 2.0</a> for such cases.</p></dd> <dt id="GPLOmitPreamble">Can I omit the preamble of the GPL, or the instructions for how to use it on your own programs, to save space? <span class="anchor-reference-id">(<a href="#GPLOmitPreamble" >#GPLOmitPreamble</a>)</span></dt> <dd><p> The preamble and instructions are integral parts of the GNU GPL and may not be omitted. In fact, the GPL is copyrighted, and its license permits only verbatim copying of the entire GPL. (You can use the legal terms to make <a href="#ModifyGPL">another license</a> but it won't be the GNU GPL.)</p> <p>The preamble and instructions add up to some 1000 words, less than 1/5 of the GPL's total size. They will not make a substantial fractional change in the size of a software package unless the package itself is quite small. In that case, you may as well use a simple all-permissive license rather than the GNU GPL.</p></dd> <dt id="WhatIsCompatible">What does it mean to say that two licenses are “compatible”? <span class="anchor-reference-id">(<a href="#WhatIsCompatible" >#WhatIsCompatible</a>)</span></dt> <dd><p> 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.</p> <p>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.</p> <p>If you just want 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.</p></dd> <dt id="WhatDoesCompatMean">What does it mean to say a license is “compatible with the GPL?” <span class="anchor-reference-id">(<a href="#WhatDoesCompatMean" >#WhatDoesCompatMean</a>)</span></dt> <dd><p> 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.</p> <p>All GNU GPL versions permit such combinations privately; they also permit distribution of such combinations provided the combination is released under the same GNU GPL version. The other license is compatible with the GPL if it permits this too.</p> <p>GPLv3 is compatible with more licenses than GPLv2: it allows you to make combinations with code that has specific kinds of additional requirements that are not in GPLv3 itself. Section 7 has more information about this, including the list of additional requirements that are permitted.</p></dd> <dt id="FSWithNFLibs">Can I write free software that uses non-free nonfree libraries? <span class="anchor-reference-id">(<a href="#FSWithNFLibs" >#FSWithNFLibs</a>)</span></dt> <dd><p> If you do this, your program won't be fully usable in a free environment. If your program depends on a non-free nonfree library to do a certain job, it cannot do that job in the Free World. If it depends on a non-free nonfree library to run at all, it cannot be part of a free operating system such as GNU; it is entirely off limits to the Free World.</p> <p>So please consider: can you find a way to get the job done without using this library? Can you write a free replacement for that library?</p> <p>If the program is already written using the non-free nonfree library, perhaps it is too late to change the decision. You may as well release the program as it stands, rather than not release it. But please mention in the README that the need for the non-free nonfree library is a drawback, and suggest the task of changing the program so that it does the same job without the non-free nonfree library. Please suggest that anyone who thinks of doing substantial further work on the program first free it from dependence on the non-free nonfree library.</p> <p>Note that there may also be legal issues with combining certain non-free nonfree libraries with GPL-covered free software. Please see <a href="#GPLIncompatibleLibs">the question on GPL software with GPL-incompatible libraries</a> for more information.</p></dd> <dt id="SystemLibraryException">Can I link a GPL program with a proprietary system library? <span class="anchor-reference-id">(<a href="#SystemLibraryException">#SystemLibraryException</a>)</span></dt> <dd><p> Both versions of the GPL have an exception to their copyleft, commonly called the system library exception. If the GPL-incompatible libraries you want to use meet the criteria for a system library, then you don't have to do anything special to use them; the requirement to distribute source code for the whole program does not include those libraries, even if you distribute a linked executable containing them.</p> <p>The criteria for what counts as a "system library" vary between different versions of the GPL. GPLv3 explicitly defines "System Libraries" in section 1, to exclude it from the definition of "Corresponding Source." GPLv2 deals with this issue slightly differently, near the end of section 3.</p> </dd> <dt id="GPLIncompatibleLibs">What legal issues come up if I use GPL-incompatible libraries with GPL software? <span class="anchor-reference-id">(<a href="#GPLIncompatibleLibs" >#GPLIncompatibleLibs</a>)</span></dt> <dd> <p>If you want your program to link against a library not covered by the system library exception, you need to provide permission to do that. Below are two example license notices that you can use to do that; one for GPLv3, and the other for GPLv2. In either case, you should put this text in each file to which you are granting this permission.</p> <p>Only the copyright holders for the program can legally release their software under these terms. If you wrote the whole program yourself, then assuming your employer or school does not claim the copyright, you are the copyright holder—so you can authorize the exception. But if you want to use parts of other GPL-covered programs by other authors in your code, you cannot authorize the exception for them. You have to get the approval of the copyright holders of those programs.</p> <p>When other people modify the program, they do not have to make the same exception for their code—it is their choice whether to do so.</p> <p>If the libraries you intend to link with are non-free, nonfree, please also see <a href="#FSWithNFLibs">the section on writing Free Software which uses non-free nonfree libraries</a>.</p> <p>If you're using GPLv3, you can accomplish this goal by granting an additional permission under section 7. The following license notice will do that. You must replace all the text in brackets with text that is appropriate for your program. If not everybody can distribute source for the libraries you intend to link with, you should remove the text in braces; otherwise, just remove the braces themselves.</p> <blockquote> <p>Copyright (C) <var>[years]</var> <var>[name of copyright holder]</var></p> <p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.</p> <p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p> <p>You should have received a copy of the GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses>.</p> <https://www.gnu.org/licenses>.</p> <p>Additional permission under GNU GPL version 3 section 7</p> <p>If you modify this Program, or any covered work, by linking or combining it with <var>[name of library]</var> (or a modified version of that library), containing parts covered by the terms of <var>[name of library's license]</var>, the licensors of this Program grant you additional permission to convey the resulting work. {Corresponding Source for a non-source form of such a combination shall include the source code for the parts of <var>[name of library]</var> used as well as that of the covered work.}</p> </blockquote> <p>If you're using GPLv2, you can provide your own exception to the license's terms. The following license notice will do that. Again, you must replace all the text in brackets with text that is appropriate for your program. If not everybody can distribute source for the libraries you intend to link with, you should remove the text in braces; otherwise, just remove the braces themselves.</p> <blockquote> <p>Copyright (C) <var>[years]</var> <var>[name of copyright holder]</var></p> <p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.</p> <p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p> <p>You should have received a copy of the GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses>.</p> <https://www.gnu.org/licenses>.</p> <p>Linking <var>[name of your program]</var> statically or dynamically with other modules is making a combined work based on <var>[name of your program]</var>. Thus, the terms and conditions of the GNU General Public License cover the whole combination.</p> <p>In addition, as a special exception, the copyright holders of <var>[name of your program]</var> give you permission to combine <var>[name of your program]</var> with free software programs or libraries that are released under the GNU LGPL and with code included in the standard release of <var>[name of library]</var> under the <var>[name of library's license]</var> (or modified versions of such code, with unchanged license). You may copy and distribute such a system following the terms of the GNU GPL for <var>[name of your program]</var> and the licenses of the other code concerned{, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code}.</p> <p>Note that people who make modified versions of <var>[name of your program]</var> are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception.</p> </blockquote></dd> <dt id="HowIGetCopyright">How do I get a copyright on my program in order to release it under the GPL? <span class="anchor-reference-id">(<a href="#HowIGetCopyright" >#HowIGetCopyright</a>)</span></dt> <dd><p> Under the Berne Convention, everything written is automatically copyrighted from whenever it is put in fixed form. So you don't have to do anything to “get” the copyright on what you write—as long as nobody else can claim to own your work.</p> <p>However, registering the copyright in the US is a very good idea. It will give you more clout in dealing with an infringer in the US.</p> <p>The case when someone else might possibly claim the copyright is if you are an employee or student; then the employer or the school might claim you did the job for them and that the copyright belongs to them. Whether they would have a valid claim would depend on circumstances such as the laws of the place where you live, and on your employment contract and what sort of work you do. It is best to consult a lawyer if there is any possible doubt.</p> <p>If you think that the employer or school might have a claim, you can resolve the problem clearly by getting a copyright disclaimer signed by a suitably authorized officer of the company or school. (Your immediate boss or a professor is usually NOT authorized to sign such a disclaimer.)</p></dd> <dt id="WhatIfSchool">What if my school might want to make my program into its own proprietary software product? <span class="anchor-reference-id">(<a href="#WhatIfSchool" >#WhatIfSchool</a>)</span></dt> <dd><p> Many universities nowadays try to raise funds by restricting the use of the knowledge and information they develop, in effect behaving little different from commercial businesses. (See “The Kept University”, Atlantic Monthly, March 2000, for a general discussion of this problem and its effects.)</p> <p>If you see any chance that your school might refuse to allow your program to be released as free software, it is best to raise the issue at the earliest possible stage. The closer the program is to working usefully, the more temptation the administration might feel to take it from you and finish it without you. At an earlier stage, you have more leverage.</p> <p>So we recommend that you approach them when the program is only half-done, saying, “If you will agree to releasing this as free software, I will finish it.” Don't think of this as a bluff. To prevail, you must have the courage to say, “My program will have liberty, or never be born.”</p></dd> <dt id="CouldYouHelpApplyGPL">Could you give me step by step instructions on how to apply the GPL to my program? <span class="anchor-reference-id">(<a href="#CouldYouHelpApplyGPL" >#CouldYouHelpApplyGPL</a>)</span></dt> <dd><p> See the page of <a href="/licenses/gpl-howto.html">GPL instructions</a>.</p></dd> <dt id="HeardOtherLicense">I heard that someone got a copy of a GPL'ed GPLed program under another license. Is this possible? <span class="anchor-reference-id">(<a href="#HeardOtherLicense" >#HeardOtherLicense</a>)</span></dt> <dd><p> The GNU GPL does not give users permission to attach other licenses to the program. But the copyright holder for a program can release it under several different licenses in parallel. One of them may be the GNU GPL.</p> <p>The license that comes in your copy, assuming it was put in by the copyright holder and that you got the copy legitimately, is the license that applies to your copy.</p></dd> <dt id="ReleaseUnderGPLAndNF">I would like to release a program I wrote under the GNU GPL, but I would like to use the same code in non-free nonfree programs. <span class="anchor-reference-id">(<a href="#ReleaseUnderGPLAndNF" >#ReleaseUnderGPLAndNF</a>)</span></dt> <dd><p> To release a non-free nonfree program is always ethically tainted, but legally there is no obstacle to your doing this. If you are the copyright holder for the code, you can release it under various different non-exclusive licenses at various times.</p></dd> <dt id="DeveloperViolate">Is the developer of a GPL-covered program bound by the GPL? Could the developer's actions ever be a violation of the GPL? <span class="anchor-reference-id">(<a href="#DeveloperViolate" >#DeveloperViolate</a>)</span></dt> <dd><p> Strictly speaking, the GPL is a license from the developer for others to use, distribute and change the program. The developer itself is not bound by it, so no matter what the developer does, this is not a “violation” of the GPL.</p> <p>However, if the developer does something that would violate the GPL if done by someone else, the developer will surely lose moral standing in the community.</p></dd> <dt id="CanDeveloperThirdParty">Can the developer of a program who distributed it under the GPL later license it to another party for exclusive use? <span class="anchor-reference-id">(<a href="#CanDeveloperThirdParty" >#CanDeveloperThirdParty</a>)</span></dt> <dd><p> No, because the public already has the right to use the program under the GPL, and this right cannot be withdrawn.</p></dd> <dt id="CanIUseGPLToolsForNF">Can I use GPL-covered editors such as GNU Emacs to develop non-free nonfree programs? Can I use GPL-covered tools such as GCC to compile them? <span class="anchor-reference-id">(<a href="#CanIUseGPLToolsForNF" >#CanIUseGPLToolsForNF</a>)</span></dt> <dd><p> Yes, because the copyright on the editors and tools does not cover the code you write. Using them does not place any restrictions, legally, on the license you use for your code.</p> <p>Some programs copy parts of themselves into the output for technical reasons—for example, Bison copies a standard parser program into its output file. In such cases, the copied text in the output is covered by the same license that covers it in the source code. Meanwhile, the part of the output which is derived from the program's input inherits the copyright status of the input.</p> <p>As it happens, Bison can also be used to develop non-free nonfree programs. This is because we decided to explicitly permit the use of the Bison standard parser program in Bison output files without restriction. We made the decision because there were other tools comparable to Bison which already permitted use for non-free nonfree programs.</p></dd> <dt id="GPLFairUse">Do I have “fair use” rights in using the source code of a GPL-covered program? <span class="anchor-reference-id">(<a href="#GPLFairUse" >#GPLFairUse</a>)</span></dt> <dd><p> 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.</p> <p>Note, however, that there is no world-wide principle of fair use; what kinds of use are considered “fair” varies from country to country.</p></dd> <dt id="GPLUSGov">Can the US Government release a program under the GNU GPL? <span class="anchor-reference-id">(<a href="#GPLUSGov" >#GPLUSGov</a>)</span></dt> <dd><p> If the program is written by US federal government employees in the course of their employment, it is in the public domain, which means it is not copyrighted. Since the GNU GPL is based on copyright, such a program cannot be released under the GNU GPL. (It can still be <a href="/philosophy/free-sw.html">free software</a>, however; a public domain program is free.)</p> <p>However, when a US federal government agency uses contractors to develop software, that is a different situation. The contract can require the contractor to release it under the GNU GPL. (GNU Ada was developed in this way.) Or the contract can assign the copyright to the government agency, which can then release the software under the GNU GPL.</p></dd> <dt id="GPLUSGovAdd">Can the US Government release improvements to a GPL-covered program? <span class="anchor-reference-id">(<a href="#GPLUSGovAdd" >#GPLUSGovAdd</a>)</span></dt> <dd><p> Yes. If the improvements are written by US government employees in the course of their employment, then the improvements are in the public domain. However, the improved version, as a whole, is still covered by the GNU GPL. There is no problem in this situation.</p> <p>If the US government uses contractors to do the job, then the improvements themselves can be GPL-covered.</p></dd> <dt id="GPLStaticVsDynamic">Does the GPL have different requirements for statically vs dynamically linked modules with a covered work? <span class="anchor-reference-id">(<a href="#GPLStaticVsDynamic" >#GPLStaticVsDynamic</a>)</span></dt> <dd><p>No. Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work. Thus, the terms and conditions of the GNU General Public License cover the whole combination. See also <a href="#GPLIncompatibleLibs">What legal issues come up if I use GPL-incompatible libraries with GPL software?</a></p></dd> <dt id="LGPLStaticVsDynamic">Does the LGPL have different requirements for statically vs dynamically linked modules with a covered work? <span class="anchor-reference-id">(<a href="#LGPLStaticVsDynamic" >#LGPLStaticVsDynamic</a>)</span></dt> <dd><p>For the purpose of complying with the LGPL (any extant version: v2, v2.1 or v3): </p> <blockquote> <p>(1) If you statically link against an LGPL'd LGPLed library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application.</p> <p>(2) If you dynamically link against an LGPL'd LGPLed library <em>already present on the user's computer</em>, you need not convey the library's source. On the other hand, if you yourself convey the executable LGPL'd LGPLed library along with your application, whether linked with statically or dynamically, you must also convey the library's sources, in one of the ways for which the LGPL provides.</p> </blockquote></dd> <dt id="GPLOutput">Is there some way that I 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 that these designs must be free? <span class="anchor-reference-id">(<a href="#GPLOutput" >#GPLOutput</a>)</span></dt> <dd><p> In general this is legally impossible; copyright law does not give you any say in the use of the output people make from their data using your program. If the user uses your program to enter or convert her own data, the copyright on the output belongs to her, not you. More generally, when a program translates its input into some other form, the copyright status of the output inherits that of the input it was generated from.</p> <p>So the only way you have a say in the use of the output is if substantial parts of the output are copied (more or less) from text in your 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 in this specific case.</p> <p>You could artificially make a program copy certain text into its output even if there is no technical reason to do so. But if that copied text serves no practical purpose, the user could simply delete that text from the output and use only the rest. Then he would not have to obey the conditions on redistribution of the copied text.</p></dd> <dt id="WhatCaseIsOutputGPL">In what cases is the output of a GPL program covered by the GPL too? <span class="anchor-reference-id">(<a href="#WhatCaseIsOutputGPL" >#WhatCaseIsOutputGPL</a>)</span></dt> <dd><p> The output of a program is not, in general, covered by the copyright on the code of the program. So the license of the code of the program does not apply to the output, whether you pipe it into a file, make a screenshot, screencast, or video.</p> <p>The exception would be when the program displays a full screen of text and/or art that comes from the program. Then the copyright on that text and/or art covers the output. Programs that output audio, such as video games, would also fit into this exception.</p> <p>If the art/music is under the GPL, then the GPL applies when you copy it no matter how you copy it. However, <a href="#GPLFairUse">fair use</a> may still apply.</p> <p>Keep in mind that some programs, particularly video games, can have artwork/audio that is licensed separately from the underlying GPLed game. In such cases, the license on the artwork/audio would dictate the terms under which video/streaming may occur. See also: <a href="#GPLOtherThanSoftware">Can I use the GPL for something other than software?</a></p></dd> <dt id="GPLModuleLicense">If I add a module to a GPL-covered program, do I have to use the GPL as the license for my module? <span class="anchor-reference-id">(<a href="#GPLModuleLicense" >#GPLModuleLicense</a>)</span></dt> <dd><p> 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.</p> <p>But you can give additional permission for the use of your code. You can, if you wish, release your program module under a license which is more lax than the GPL but compatible with the GPL. The <a href="/licenses/license-list.html">license list page</a> gives a partial list of GPL-compatible licenses. </p></dd> <dt id="IfLibraryIsGPL">If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license? <span class="anchor-reference-id">(<a href="#IfLibraryIsGPL" >#IfLibraryIsGPL</a>)</span></dt> <dd><p> Yes, because the program actually links to the library. As such, the terms of the GPL apply to the entire combination. The software modules that 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: <a href="#WhatDoesCompatMean">What does it mean to say a license is actually run includes “compatible with the library.</p></dd> GPL”?</a> </p></dd> <dt id="IfInterpreterIsGPL">If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses? <span class="anchor-reference-id">(<a href="#IfInterpreterIsGPL" >#IfInterpreterIsGPL</a>)</span></dt> <dd><p> When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone.</p> <p>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. So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way. The JNI or Java Native Interface is an example of such a binding mechanism; libraries that are accessed in this way are linked dynamically with the Java programs that call them. These libraries are also linked with the interpreter. If the interpreter is linked statically with these libraries, or if it is designed to <a href="#GPLPluginsInNF">link dynamically with these specific libraries</a>, then it too needs to be released in a GPL-compatible way.</p> <p>Another similar and very common case is to provide libraries with the interpreter which are themselves interpreted. For instance, Perl comes with many Perl modules, and a Java implementation comes with many Java classes. These libraries and the programs that call them are always dynamically linked together.</p> <p>A consequence is that if you choose to use GPL'd GPLed Perl modules or Java classes in your program, you must release the program in a GPL-compatible way, regardless of the license used in the Perl or Java interpreter that the combined Perl or Java program will run on. </p></dd> <dt id="WindowsRuntimeAndGPL">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) runtime library permitted under the GPL? <span class="anchor-reference-id">(<a href="#WindowsRuntimeAndGPL" >#WindowsRuntimeAndGPL</a>)</span></dt> <dd><p>You may link your program to these libraries, and distribute the compiled program to others. When you do this, the runtime libraries are “System Libraries” as GPLv3 defines them. That means that you don't need to worry about including their source code with the program's Corresponding Source. GPLv2 provides a similar exception in section 3.</p> <p>You may not distribute these libraries in compiled DLL form with the program. To prevent unscrupulous distributors from trying to use the System Library exception as a loophole, the GPL says that libraries can only qualify as System Libraries as long as they're not distributed with the program itself. If you distribute the DLLs with the program, they won't be eligible for this exception anymore; then the only way to comply with the GPL would be to provide their source code, which you are unable to do.</p> <p>It is possible to write free programs that only run on Windows, but it is not a good idea. These programs would be “<a href="/philosophy/java-trap.html">trapped</a>” by Windows, and therefore contribute zero to the Free World.</p></dd> <dt id="OrigBSD">Why is the original BSD license incompatible with the GPL? <span class="anchor-reference-id">(<a href="#OrigBSD" >#OrigBSD</a>)</span></dt> <dd><p> Because it imposes a specific requirement that is not in the GPL; namely, the requirement on advertisements of the program. Section 6 of GPLv2 states:</p> <blockquote><p>You may not impose any further restrictions on the recipients' exercise of the rights granted herein.</p></blockquote> <p>GPLv3 says something similar in section 10. The advertising clause provides just such a further restriction, and thus is GPL-incompatible.</p> <p>The revised BSD license does not have the advertising clause, which eliminates the problem.</p></dd> <dt id="GPLAndPlugins">If I write id="GPLPlugins">When is a plug-in to use with program and its plug-ins considered a GPL-covered program, what requirements does that impose on the licenses I can use for distributing my plug-in? single combined program? <span class="anchor-reference-id">(<a href="#GPLAndPlugins" >#GPLAndPlugins</a>)</span></dt> href="#GPLPlugins" >#GPLPlugins</a>)</span></dt> <dd><p> It depends on how the main program invokes its plug-ins. If the main program uses fork and exec to invoke plug-ins, then and they establish intimate communication by sharing complex data structures, or shipping complex data structures back and forth, that can make them one single combined program. A main program that uses simple fork and exec to invoke plug-ins and does not establish intimate communication between them results in the plug-ins are being a separate programs, so the license for program.</p> <p> If the main program makes no requirements for them.</p> <p>If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single combined program, which must be treated as an extension of both the main program and the plug-ins. This means you must license the plug-in under the GPL or a GPL-compatible free software license and distribute it with source code in a GPL-compliant way.</p> <p>If If the main program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main' function of the plug-in with some options and waiting for it to return, that is a borderline case.</p></dd> case.</p> <p>Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.</p></dd> <dt id="GPLPluginsInNF">Can id="GPLAndPlugins">If I apply the GPL when writing write a plug-in for to use with a non-free program? GPL-covered program, what requirements does that impose on the licenses I can use for distributing my plug-in? <span class="anchor-reference-id">(<a href="#GPLPluginsInNF" >#GPLPluginsInNF</a>)</span></dt> href="#GPLAndPlugins" >#GPLAndPlugins</a>)</span></dt> <dd><p> Please see this question <a href="#GPLPlugins">for determining when plug-ins and a main program are considered a single combined program and when they are considered separate works</a>.</p> <p> If the main program uses fork and exec to invoke plug-ins, then the plug-ins plugins are separate programs, so the a single combined program then this means you must license for the plug-in under the GPL or a GPL-compatible free software license and distribute it with source code in a GPL-compliant way. A main program that is separate from its plug-ins makes no requirements for them. So you can use the plug-ins. </p></dd> <dt id="GPLPluginsInNF">Can I apply the GPL when writing a plug-in for a plug-in, nonfree program? <span class="anchor-reference-id">(<a href="#GPLPluginsInNF" >#GPLPluginsInNF</a>)</span></dt> <dd><p> Please see this question <a href="#GPLPlugins">for determining when plug-ins and there are no special requirements.</p> <p>If the a main program are considered a single combined program dynamically links plug-ins, and when they make function calls to each other and share data structures, we believe are considered separate programs</a>.</p> <p> If they form a single program, which must be treated as an extension of both the main combined program and the plug-ins. This this means that combination of the GPL-covered plug-in with the non-free nonfree main program would violate the GPL. However, you can resolve that legal problem by adding an exception to your plug-in's license, giving permission to link it with the non-free nonfree main program.</p> <p>See also the question <a href="#FSWithNFLibs">I am writing free software that uses a non-free nonfree library.</a></p></dd> <dt id="NFUseGPLPlugins">Can I release a non-free nonfree program that's designed to load a GPL-covered plug-in? <span class="anchor-reference-id">(<a href="#NFUseGPLPlugins" >#NFUseGPLPlugins</a>)</span></dt> <dd><p> It depends on how the program invokes its plug-ins. For instance, if the program uses <em>only</em> simple fork and exec to invoke and communicate with plug-ins, then the Please see this question <a href="#GPLPlugins">for determining when plug-ins are separate programs, so the license of the plug-in makes no requirements about the and a main program.</p> <p>If the program dynamically links plug-ins, are considered a single combined program and when they make function calls to each other and share data structures, we believe are considered separate programs</a>.</p> <p> If they form a single program, which must be treated as an extension of both the main combined program and the plug-ins. In order to use the GPL-covered plug-ins, then the main program must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.</p> <p>If the program dynamically links plug-ins, but the communication between them is limited to invoking <p>However, if they are separate works then the ‘main' function license of the plug-in with some options and waiting for it to return, that is a borderline case.</p> <p>Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.</p> makes no requirements about the main program.</p> <p>See also the question <a href="#FSWithNFLibs">I am writing free software that uses a non-free nonfree library.</a></p></dd> <dt id="LinkingWithGPL">You have a GPL'ed GPLed program that I'd like to link with my code to build a proprietary program. Does the fact that I link with your program mean I have to GPL my program? <span class="anchor-reference-id">(<a href="#LinkingWithGPL" >#LinkingWithGPL</a>)</span></dt> <dd><p> Not exactly. It means you must release your program under a license compatible with the GPL (more precisely, compatible with one or more GPL versions accepted by all the rest of the code in the combination that you link). The combination itself is then available under those GPL versions.</p></dd> <dt id="SwitchToLGPL">If so, is there any chance I could get a license of your program under the Lesser GPL? <span class="anchor-reference-id">(<a href="#SwitchToLGPL" >#SwitchToLGPL</a>)</span></dt> <dd><p> 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 your program, your program must also be free software. It is supposed to put pressure on you to release your program in a way that makes it part of our community.</p> <p>You always have the legal alternative of not using our code.</p></dd> <dt id="NonfreeDriverKernelLinux">Does distributing a nonfree driver meant to link with the kernel Linux violate the GPL? <span class="anchor-reference-id">(<a href="#NonfreeDriverKernelLinux">#NonfreeDriverKernelLinux</a>)</span></dt> <dd><p> Linux (the kernel in the GNU/Linux operating system) is distributed under GNU GPL version 2. Does distributing a nonfree driver meant to link with Linux violate the GPL?</p> <p>Yes, this is a violation, because effectively this makes a larger combined work. The fact that the user is expected to put the pieces together does not really change anything.</p> <p>Each contributor to Linux who holds copyright on a substantial part of the code can enforce the GPL and we encourage each of them to take action against those distributing nonfree Linux-drivers.</p></dd> <dt id="LinkingOverControlledInterface">How can I allow linking of proprietary modules with my GPL-covered library under a controlled interface only? <span class="anchor-reference-id">(<a href="#LinkingOverControlledInterface" >#LinkingOverControlledInterface</a>)</span></dt> <dd><p> Add this text to the license notice of each file in the package, at the end of the text that says the file is distributed under the GNU GPL:</p> <blockquote> <p>Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.</p> <p>As a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with independent modules that communicate with ABC solely through the ABCDEF interface. You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code and provided that you do not modify the ABCDEF interface.</p> <p>Note that people who make modified versions of ABC are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception. If you modify the ABCDEF interface, this exception does not apply to your modified version of ABC, and you must remove this exception when you distribute your modified version.</p> <p>This exception is an additional permission under section 7 of the GNU General Public License, version 3 (“GPLv3”)</p> </blockquote> <p>This exception enables linking with differently licensed modules over the specified interface (“ABCDEF”), while ensuring that users would still receive source code as they normally would under the GPL.</p> <p>Only the copyright holders for the program can legally authorize this exception. If you wrote the whole program yourself, then assuming your employer or school does not claim the copyright, you are the copyright holder—so you can authorize the exception. But if you want to use parts of other GPL-covered programs by other authors in your code, you cannot authorize the exception for them. You have to get the approval of the copyright holders of those programs.</p></dd> <dt id="ManyDifferentLicenses">I have written an application that links with many different components, that have different licenses. I am very confused as to what licensing requirements are placed on my program. Can you please tell me what licenses I may use? <span class="anchor-reference-id">(<a href="#ManyDifferentLicenses" >#ManyDifferentLicenses</a>)</span></dt> <dd><p> To answer this question, we would need to see a list of each component that your program uses, the license of that component, and a brief (a few sentences for each should suffice) describing how your library uses that component. Two examples would be:</p> <ul> <li>To make my software work, it must be linked to the FOO library, which is available under the Lesser GPL.</li> <li>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 with QUUX”.</li> </ul></dd> <dt id="MereAggregation">What is the difference between an “aggregate” and other kinds of “modified versions”? <span class="anchor-reference-id">(<a href="#MereAggregation" >#MereAggregation</a>)</span></dt> <dd><p> An “aggregate” consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free nonfree or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them.</p> <p>Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a 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 are interchanged).</p> <p>If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.</p> <p>By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into two parts as combined into a larger program.</p></dd> <dt id="AggregateContainers">When it comes to determining whether two pieces of software form a single work, does the fact that the code is in one or more containers have any effect? <span class="anchor-reference-id">(<a href="#AggregateContainers" >#AggregateContainers</a>)</span></dt> <dd><p>No, the analysis of whether they are a larger program.</p></dd> <a href="#MereAggregation">single work or an aggregate</a> is unchanged by the involvement of containers.</p></dd> <dt id="AssignCopyright">Why does the FSF require that contributors to FSF-copyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed GPLed program, should I do this, too? If so, how? <span class="anchor-reference-id">(<a href="#AssignCopyright" >#AssignCopyright</a>)</span></dt> <dd><p> Our lawyers have told us that to be in the <a href="/licenses/why-assign.html">best position to enforce the GPL</a> in court against violators, we should keep the copyright status of the program as simple as possible. We do this by asking each contributor to either assign the copyright on contributions to the FSF, or disclaim copyright on contributions.</p> <p>We also ask individual contributors to get copyright disclaimers from their employers (if any) so that we can be sure those employers won't claim to own the contributions.</p> <p>Of course, if all the contributors put their code in the public domain, there is no copyright with which to enforce the GPL. So we encourage people to assign copyright on large code contributions, and only put small changes in the public domain.</p> <p>If you want to make an effort to enforce the GPL on your program, it is probably a good idea for you to follow a similar policy. Please contact <a href="mailto:licensing@gnu.org"><licensing@gnu.org></a> if you want more information. </p></dd> <dt id="ModifyGPL">Can I modify the GPL and make a modified license? <span class="anchor-reference-id">(<a href="#ModifyGPL" >#ModifyGPL</a>)</span></dt> <dd><p> It is possible to make modified versions of the GPL, but it tends to have practical consequences.</p> <p> You can legally use the GPL terms (possibly modified) in another license provided that you call your license by another name and do not include the GPL preamble, and provided you modify the instructions-for-use at the end enough to make it clearly different in wording and not mention GNU (though the actual procedure you describe may be similar).</p> <p> If you want to use our preamble in a modified license, please write to <a href="mailto:licensing@gnu.org"><licensing@gnu.org></a> for permission. For this purpose we would want to check the actual license requirements to see if we approve of them.</p> <p>Although we will not raise legal objections to your making a modified license in this way, we hope you will think twice and not do it. Such a modified license is almost certainly <a href="#WhatIsCompatible"> incompatible with the GNU GPL</a>, and that incompatibility blocks useful combinations of modules. The mere proliferation of different free software licenses is a burden in and of itself.</p> <p>Rather than modifying the GPL, please use the exception mechanism offered by GPL version 3.</p></dd> <dt id="GPLCommercially">If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially? <span class="anchor-reference-id">(<a href="#GPLCommercially" >#GPLCommercially</a>)</span></dt> <dd><p> You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL.</p> <p>These requirements are the condition for including the GPL-covered code you received in a program of your own. </p></dd> <dt id="GPLOtherThanSoftware">Can I use the GPL for something other than software? <span class="anchor-reference-id">(<a href="#GPLOtherThanSoftware" >#GPLOtherThanSoftware</a>)</span></dt> <dd><p> 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.</p> <p>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.</p></dd> <dt id="LGPLJava">How does the LGPL work with Java? <span class="anchor-reference-id">(<a href="#LGPLJava" >#LGPLJava</a>)</span></dt> <dd><p> <a href="/licenses/lgpl-java.html">See this article for details.</a> It works as designed, intended, and expected.</p></dd> <dt id="Consider">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? <span class="anchor-reference-id">(<a href="#Consider" >#Consider</a>)</span></dt> <dd><p> Yes. Y was required to release its version under the GNU GPL, as a consequence of basing it on X's version V1. Nothing required Y to agree to any other license for its code. Therefore, X must get Y's permission before releasing that code under another license.</p></dd> <dt id="GPLInProprietarySystem">I'd like to incorporate GPL-covered software in my proprietary system. I have no permission to use that software except what the GPL gives me. Can I do this? <span class="anchor-reference-id">(<a href="#GPLInProprietarySystem" >#GPLInProprietarySystem</a>)</span></dt> <dd><p> 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 could incorporate GPL-covered software into a non-free nonfree system, it would have the effect of making the GPL-covered software non-free nonfree too.</p> <p>A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all. This is for two reasons: to make sure that users who get the software get the freedom they should have, and to encourage people to give back improvements that they make.</p> <p>However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free nonfree programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.</p> <p>The difference between this and “incorporating” the GPL-covered software is partly a matter of substance and partly form. The substantive part is this: if the two programs are combined so that they become effectively two parts of one program, then you can't treat them as two separate programs. So the GPL has to cover the whole thing.</p> <p>If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs—but you have to do it properly. The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection.</p> <p>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-covered software. But if they know that what they have received is a free program plus another program, side by side, their rights will be clear.</p></dd> <dt id="GPLWrapper">I'd like to incorporate GPL-covered software in my proprietary system. Can I do this by putting a “wrapper” module, under a GPL-compatible lax permissive license (such as the X11 license) in between the GPL-covered part and the proprietary part? <span class="anchor-reference-id">(<a href="#GPLWrapper" >#GPLWrapper</a>)</span></dt> <dd><p> No. The X11 license is compatible with the GPL, so you can add a 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, that whole would include the GPL-covered part, so it would have to be licensed <em>as a whole</em> under the GNU GPL.</p> <p>The fact that proprietary module A communicates with GPL-covered module C only through X11-licensed module B is legally irrelevant; what matters is the fact that module C is included in the whole.</p></dd> <dt id="LibGCCException">Where can I learn more about the GCC Runtime Library Exception? <span class="anchor-reference-id">(<a href="#LibGCCException" >#LibGCCException</a>)</span></dt> <dd><p> The GCC Runtime Library Exception covers libgcc, libstdc++, libfortran, libgomp, libdecnumber, and other libraries distributed with GCC. The exception is meant to allow people to distribute programs compiled with GCC under terms of their choice, even when parts of these libraries are included in the executable as part of the compilation process. To learn more, please read our <a href="/licenses/gcc-exception-faq.html">FAQ about the GCC Runtime Library Exception</a>.</p></dd> <dt id="MoneyGuzzlerInc">I'd like to modify GPL-covered programs and link them with the portability libraries from Money Guzzler Inc. I cannot distribute the source code for these libraries, so any user who wanted to change these versions would have to obtain those libraries separately. Why doesn't the GPL permit this? <span class="anchor-reference-id">(<a href="#MoneyGuzzlerInc" >#MoneyGuzzlerInc</a>)</span></dt> <dd><p> There are two reasons for this. First, a general one. If we permitted company A to make a proprietary file, and company B to distribute GPL-covered software linked with that file, the effect would be to make a hole in the GPL big enough to drive a truck through. This would be carte blanche for withholding the source code for all sorts of modifications and extensions to GPL-covered software.</p> <p>Giving all users access to the source code is one of our main goals, so this consequence is definitely something we want to avoid.</p> <p>More concretely, the versions of the programs linked with the Money Guzzler libraries would not really be free software as we understand the term—they would not come with full source code that enables users to change and recompile the program.</p></dd> <dt id="GPLIncompatibleAlone">If the 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? <span class="anchor-reference-id">(<a href="#GPLIncompatibleAlone" >#GPLIncompatibleAlone</a>)</span></dt> <dd><p> 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.</p> <p>If the license of module Q permits you to give permission for that, then it is GPL-compatible. Otherwise, it is not GPL-compatible.</p> <p>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.</p></dd> <dt id="ModifiedJustBinary">Can I release a modified version of a GPL-covered program in binary form only? <span class="anchor-reference-id">(<a href="#ModifiedJustBinary" >#ModifiedJustBinary</a>)</span></dt> <dd><p> No. The whole point of the GPL is that all modified versions must be <a href="/philosophy/free-sw.html">free software</a>—which means, in particular, that the source code of the modified version is available to the users.</p></dd> <dt id="UnchangedJustBinary">I downloaded just the binary from the net. If I distribute copies, do I have to get the source and distribute that too? <span class="anchor-reference-id">(<a href="#UnchangedJustBinary" >#UnchangedJustBinary</a>)</span></dt> <dd><p> Yes. The general rule is, if you distribute binaries, you must distribute the complete corresponding source code too. The exception for the case where you received a written offer for source code is quite limited.</p></dd> <dt id="DistributeWithSourceOnInternet">I want to distribute binaries via physical media without accompanying sources. Can I provide source code by FTP? <span class="anchor-reference-id">(<a href="#DistributeWithSourceOnInternet" >#DistributeWithSourceOnInternet</a>)</span></dt> <dd><p> Version 3 of the GPL allows this; see option 6(b) for the full details. Under version 2, you're certainly free to offer source via FTP, and most users will get it from there. However, if any of them would rather get the source on physical media by mail, you are required to provide that.</p> <p>If you distribute binaries via FTP, <a href="#AnonFTPAndSendSources">you should distribute source via FTP.</a></p></dd> <dt id="RedistributedBinariesGetSource">My friend got a GPL-covered binary with an offer to supply source, and made a copy for me. Can I use the offer myself to obtain the source? <span class="anchor-reference-id">(<a href="#RedistributedBinariesGetSource" >#RedistributedBinariesGetSource</a>)</span></dt> <dd><p> Yes, you can. The offer must be open to everyone who has a copy of the binary that it accompanies. This is why the GPL says your friend must give you a copy of the offer along with a copy of the binary—so you can take advantage of it.</p></dd> <dt id="SourceAndBinaryOnDifferentSites">Can I put the binaries on my Internet server and put the source on a different Internet site? <span class="anchor-reference-id">(<a href="#SourceAndBinaryOnDifferentSites" >#SourceAndBinaryOnDifferentSites</a>)</span></dt> <dd><p> Yes. Section 6(d) allows this. However, you must provide clear instructions people can follow to obtain the source, and you must take care to make sure that the source remains available for as long as you distribute the object code.</p></dd> <dt id="DistributeExtendedBinary">I want to distribute an extended version of a GPL-covered program in binary form. Is it enough to distribute the source for the original version? <span class="anchor-reference-id">(<a href="#DistributeExtendedBinary" >#DistributeExtendedBinary</a>)</span></dt> <dd><p> No, you must supply the source code that corresponds to the binary. Corresponding source means the source from which users can rebuild the same binary.</p> <p>Part of the idea of free software is that users should have access to the source code for <em>the programs they use</em>. Those using your version should have access to the source code for your version.</p> <p>A major goal of the GPL is to build up the Free World by making sure that improvement to a free program are themselves free. If you release an improved version of a GPL-covered program, you must release the improved source code under the GPL.</p></dd> <dt id="DistributingSourceIsInconvenient">I want to distribute binaries, but distributing complete source is inconvenient. Is it ok if I give users the diffs from the “standard” version along with the binaries? <span class="anchor-reference-id">(<a href="#DistributingSourceIsInconvenient" >#DistributingSourceIsInconvenient</a>)</span></dt> <dd><p> This is a well-meaning request, but this method of providing the source doesn't really do the job.</p> <p>A user that wants the source a year from now may be unable to get the proper version from another site at that time. The standard distribution site may have a newer version, but the same diffs probably won't work with that version.</p> <p>So you need to provide complete sources, not just diffs, with the binaries.</p></dd> <dt id="AnonFTPAndSendSources">Can I make binaries available on a network server, but send sources only to people who order them? <span class="anchor-reference-id">(<a href="#AnonFTPAndSendSources" >#AnonFTPAndSendSources</a>)</span></dt> <dd><p> If you make object code available on a network server, you have to provide the Corresponding Source on a network server as well. The easiest way to do this would be to publish them on the same server, but if you'd like, you can alternatively provide instructions for getting the source from another server, or even a <a href="#SourceInCVS">version control system</a>. No matter what you do, the source should be just as easy to access as the object code, though. This is all specified in section 6(d) of GPLv3.</p> <p>The sources you provide must correspond exactly to the binaries. In particular, you must make sure they are for the same version of the program—not an older version and not a newer version.</p></dd> <dt id="HowCanIMakeSureEachDownloadGetsSource">How can I make sure each user who downloads the binaries also gets the source? <span class="anchor-reference-id">(<a href="#HowCanIMakeSureEachDownloadGetsSource" >#HowCanIMakeSureEachDownloadGetsSource</a>)</span></dt> <dd><p> You don't have to make sure of this. As long as you make the source and binaries available so that the users can see what's available and take what they want, you have done what is required of you. It is up to the user whether to download the source.</p> <p>Our requirements for redistributors are intended to make sure the users can get the source code, not to force users to download the source code even if they don't want it.</p></dd> <dt id="MustSourceBuildToMatchExactHashOfBinary">Does the GPL require me to provide source code that can be built to match the exact hash of the binary I am distributing? <span class="anchor-reference-id">(<a href="#MustSourceBuildToMatchExactHashOfBinary" >#MustSourceBuildToMatchExactHashOfBinary</a>)</span></dt> <dd><p>Complete corresponding source means the source that the binaries were made from, but that does not imply your tools must be able to make a binary that is an exact hash of the binary you are distributing. In some cases it could be (nearly) impossible to build a binary from source with an exact hash of the binary being distributed — consider the following examples: a system might put timestamps in binaries; or the program might have been built against a different (even unreleased) compiler version.</p></dd> <dt id="UnreleasedMods">A company is running a modified version of a GPL'ed GPLed program on a web site. Does the GPL say they must release their modified sources? <span class="anchor-reference-id">(<a href="#UnreleasedMods" >#UnreleasedMods</a>)</span></dt> <dd><p> 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.</p> <p>It sources. The situation is essential for people different when the modified program is licensed under the terms of the <a href="#UnreleasedModsAGPL">GNU Affero GPL</a>.</p> <p>Compare this to have a situation where the freedom web site contains or links to make modifications and use them privately, without ever publishing those modifications. However, putting separate GPLed programs that are distributed to the user when they visit the web site (often written in <a href="/philosophy/javascript-trap.html">JavaScript</a>, but other languages are used as well). In this situation the source code for the programs being distributed must be released to the user under the terms of the GPL.</p></dd> <dt id="UnreleasedModsAGPL">A company is running a modified version of a program licensed under the GNU Affero GPL (AGPL) on a server machine for web site. Does the public to talk AGPL say they must release their modified sources? <span class="anchor-reference-id">(<a href="#UnreleasedModsAGPL" >#UnreleasedModsAGPL</a>)</span></dt> <dd><p>The <a href="/licenses/agpl.html">GNU Affero GPL</a> requires that modified versions of the software offer all users interacting with it over a computer network an opportunity to receive the source. What the company is hardly “private” use, doing falls under that meaning, so it would be legitimate to require the company must release of the modified source code in that special case. Developers who wish to address this might want to use the <a href="/licenses/agpl.html">GNU Affero GPL</a> for programs designed for network server use.</p></dd> code.</p></dd> <dt id="InternalDistribution">Is making and using multiple copies within one organization or company “distribution”? <span class="anchor-reference-id">(<a href="#InternalDistribution" >#InternalDistribution</a>)</span></dt> <dd><p> No, in that case the organization is just making the copies for itself. As a consequence, a company or other organization can develop a modified version and install that version through its own facilities, without giving the staff permission to release that modified version to outsiders.</p> <p>However, when the organization transfers copies to other organizations or individuals, that is distribution. In particular, providing copies to contractors for use off-site is distribution.</p></dd> <dt id="StolenCopy">If someone steals a CD containing a version of a GPL-covered program, does the GPL give the thief the right to redistribute that version? <span class="anchor-reference-id">(<a href="#StolenCopy" >#StolenCopy</a>)</span></dt> <dd><p> 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 the thief is imprisoned for stealing the CD, they may have to wait until their release before doing so.</p> <p>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.</p></dd> <dt id="TradeSecretRelease">What if a company distributes a copy as a trade secret? <span class="anchor-reference-id">(<a href="#TradeSecretRelease" >#TradeSecretRelease</a>)</span></dt> <dd><p> If a company distributes a copy to you and claims it is a trade secret, the company has violated the GPL and will have to cease distribution. Note how this differs from the theft case above; the company does not intentionally distribute a copy when a copy is stolen, so in that case the company has not violated the GPL.</p></dd> <dt id="WhySomeGPLAndNotLGPL">Why are some GNU libraries released under the ordinary GPL rather than the Lesser GPL? <span class="anchor-reference-id">(<a href="#WhySomeGPLAndNotLGPL" >#WhySomeGPLAndNotLGPL</a>)</span></dt> <dd><p> Using the Lesser GPL for any particular library constitutes a retreat for free software. It means we partially abandon the attempt to defend the users' freedom, and some of the requirements to share what is built on top of GPL-covered software. In themselves, those are changes for the worse.</p> <p>Sometimes a localized retreat is a good strategy. Sometimes, using the LGPL for a library might lead to wider use of that library, and thus to more improvement for it, wider support for free software, and so on. This could be good for free software if it happens to a large extent. But how much will this happen? We can only speculate.</p> <p>It would be nice to try out the LGPL on each library for a while, see whether 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 particular library, changing back would be difficult.</p> <p>So we decide which license to use for each library on a case-by-case basis. There is a <a href="/licenses/why-not-lgpl.html">long explanation</a> of how we judge the question.</p></dd> <dt id="WillYouMakeAnException">Using a certain GNU program under the GPL does not fit our project to make proprietary software. Will you make an exception for us? It would mean more users of that program. <span class="anchor-reference-id">(<a href="#WillYouMakeAnException" >#WillYouMakeAnException</a>)</span></dt> <dd><p> Sorry, we don't make such exceptions. It would not be right.</p> <p>Maximizing the number of users is not our aim. Rather, we are trying to give the crucial freedoms to as many users as possible. In general, proprietary software projects hinder rather than help the cause of freedom.</p> <p>We do occasionally make license exceptions to assist a project which is producing free software under a license other than the GPL. However, we have to see a good reason why this will advance the cause of free software.</p> <p>We also do sometimes change the distribution terms of a package, when that 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 very convincing reasons.</p></dd> <dt id="VersionThreeOrLater">Why should programs say “Version 3 of the GPL or any later version”? <span class="anchor-reference-id">(<a href="#VersionThreeOrLater" >#VersionThreeOrLater</a>)</span></dt> <dd><p> From time to time, at intervals of years, we change the GPL—sometimes to clarify it, sometimes to permit certain kinds of use not previously permitted, and sometimes to tighten up a requirement. (The last two changes were in 2007 and 1991.) Using this “indirect pointer” in each program makes it possible for us to change the distribution terms on the entire collection of GNU software, when we update the GPL.</p> <p>If each program lacked the indirect pointer, we would be forced to discuss the change at length with numerous copyright holders, which would be a virtual impossibility. In practice, the chance of having uniform distribution terms for GNU software would be nil.</p> <p>Suppose a program says “Version 3 of the GPL or any later version” and a new version of the GPL is released. If the new GPL version gives additional permission, that permission will be available immediately to all the users of the program. But if the new GPL version has a tighter requirement, it will not restrict use of the current version of the program, because it can still be used under GPL version 3. When a program says “Version 3 of the GPL or any later version”, users will always be permitted to use it, and even change it, according to the terms of GPL version 3—even after later versions of the GPL are available.</p> <p>If a tighter requirement in a new version of the GPL need not be obeyed for existing software, how is it useful? Once GPL version 4 is available, the developers of most GPL-covered programs will release subsequent versions of their programs specifying “Version 4 of the GPL or any later version”. Then users will have to follow the tighter requirements in GPL version 4, for subsequent versions of the program.</p> <p>However, developers are not obligated to do this; developers can continue allowing use of the previous version of the GPL, if that is their preference.</p></dd> <dt id="OnlyLatestVersion">Is it a good idea to use a license saying that a certain program can be used only under the latest version of the GNU GPL? <span class="anchor-reference-id">(<a href="#OnlyLatestVersion" >#OnlyLatestVersion</a>)</span></dt> <dd><p> The reason you shouldn't do that is that it could result some day in withdrawing automatically some permissions that the users previously had.</p> <p>Suppose a program was released in 2000 under “the latest GPL version”. At that time, people could have used it under GPLv2. The day we published GPLv3 in 2007, everyone would have been suddenly compelled to use it under GPLv3 instead.</p> <p>Some users may not even have known about GPL version 3—but they would have been required to use it. They could have violated the program's license unintentionally just because they did not get the news. That's a bad way to treat people.</p> <p>We think it is wrong to take back permissions already granted, except due to a violation. If your freedom could be revoked, then it isn't really freedom. Thus, if you get a copy of a program version under one version of a license, you should <em>always</em> have the rights granted by that version of the license. Releasing under “GPL version N or any later version” upholds that principle.</p></dd> <dt id="WhyNotGPLForManuals">Why don't you use the GPL for manuals? <span class="anchor-reference-id">(<a href="#WhyNotGPLForManuals" >#WhyNotGPLForManuals</a>)</span></dt> <dd><p> It is possible to use the GPL for a manual, but the GNU Free Documentation License (GFDL) is much better for manuals.</p> <p>The GPL was designed for programs; it contains lots of complex clauses that are crucial for programs, but that would be cumbersome and unnecessary for a book or manual. For instance, anyone publishing the book on paper would have to either include machine-readable “source code” of the book along with each printed copy, or provide a written offer to send the “source code” later.</p> <p>Meanwhile, the GFDL has clauses that help publishers of free manuals make a profit from selling copies—cover texts, for instance. The special rules for Endorsements sections make it possible to use the GFDL for an official standard. This would permit modified versions, but they could not be labeled as “the standard”.</p> <p>Using the GFDL, we permit changes in the text of a manual that covers its technical topic. It is important to be able to change the technical parts, because people who change a program ought to change the documentation to correspond. The freedom to do this is an ethical imperative.</p> <p>Our manuals also include sections that state our political position about free software. We mark these as “invariant”, so that they cannot be changed or removed. The GFDL makes provisions for these “invariant sections”.</p></dd> <dt id="FontException">How does the GPL apply to fonts? <span class="anchor-reference-id">(<a href="#FontException" >#FontException</a>)</span></dt> <dd><p> Font licensing is a complex issue which needs serious consideration. The following license exception is experimental but approved for general use. We welcome suggestions on this subject—please see this this <a href="http://www.fsf.org/blogs/licensing/20050425novalis">explanatory essay</a> and write to <a href="mailto:licensing@gnu.org">licensing@gnu.org</a>.</p> <p>To use this exception, add this text to the license notice of each file in the package (to the extent possible), at the end of the text that says the file is distributed under the GNU GPL:</p> <blockquote><p> As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. </p></blockquote></dd> <dt id="WMS">I am writing a website maintenance system (called a “<a href="/philosophy/words-to-avoid.html#Content">content management system</a>” by some), or some other application which generates web pages from templates. What license should I use for those templates? <span class="anchor-reference-id">(<a href="#WMS" >#WMS</a>)</span></dt> <dd><p> Templates are minor enough that it is not worth using copyleft to protect them. It is normally harmless to use copyleft on minor works, but templates are a special case, because they are combined with data provided by users of the application and the combination is distributed. So, we recommend that you license your templates under simple permissive terms.</p> <p>Some templates make calls into JavaScript functions. Since Javascript is often non-trivial, it is worth copylefting. Because the templates will be combined with user data, it's possible that template+user data+JavaScript would be considered one work under copyright law. A line needs to be drawn between the JavaScript (copylefted), and the user code (usually under incompatible terms).</p> <!-- GNUN: localize URL /licenses/template-diagram.png --> <p id="template-diagram"><a href="/licenses/template-diagram.png"> <img src="/licenses/template-diagram.png" alt="A diagram of the above content"/></a></p> <p>Here's an exception for JavaScript code that does this:</p> <blockquote><p>As a special exception to the GPL, any HTML file which merely makes function calls to this code, and for that purpose includes it by reference shall be deemed a separate work for copyright law purposes. In addition, the copyright holders of this code give you permission to combine this code with free software libraries that are released under the GNU LGPL. You may copy and distribute such a system following the terms of the GNU GPL for this code and the LGPL for the libraries. If you modify this code, you may extend this exception to your version of the code, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. </p></blockquote></dd> <dt id="NonFreeTools">Can I release a program under the GPL which I developed using non-free nonfree tools? <span class="anchor-reference-id">(<a href="#NonFreeTools" >#NonFreeTools</a>)</span></dt> <dd><p> Which programs you used to edit the source code, or to compile it, or study it, or record it, usually makes no difference for issues concerning the licensing of that source code.</p> <p>However, if you link non-free nonfree libraries with the source code, that would be an issue you need to deal with. It does not preclude releasing the source code under the GPL, but if the libraries don't fit under the “system library” exception, you should affix an explicit notice giving permission to link your program with them. <a href="#GPLIncompatibleLibs">The FAQ entry about using GPL-incompatible libraries</a> provides more information about how to do that.</p></dd> <dt id="GPLTranslations">Are there translations of the GPL into other languages? <span class="anchor-reference-id">(<a href="#GPLTranslations" >#GPLTranslations</a>)</span></dt> <dd><p> It would be useful to have translations of the GPL into languages other than English. People have even written translations and sent them to us. But we have not dared to approve them as officially valid. That carries a risk so great we do not dare accept it.</p> <p>A legal document is in some ways like a program. Translating it is like translating a program from one language and operating system to another. Only a lawyer skilled in both languages can do it—and even then, there is a risk of introducing a bug.</p> <p>If we were to approve, officially, a translation of the GPL, we would be giving everyone permission to do whatever the translation says they can do. If it is a completely accurate translation, that is fine. But if there is an error in the translation, the results could be a disaster which we could not fix.</p> <p>If a program has a bug, we can release a new version, and eventually the old version will more or less disappear. But once we have given everyone permission to act according to a particular translation, we have no way of taking back that permission if we find, later on, that it had a bug.</p> <p>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, this would solve it. But the actual problem is the risk of error, and offering to do the work does not avoid the risk. We could not possibly authorize a translation written by a non-lawyer.</p> <p>Therefore, for the time being, we are not approving translations of the GPL as globally valid and binding. Instead, we are doing two things:</p> <ul> <li><p>Referring people to unofficial translations. This means that we permit people to write translations of the GPL, but we don't approve them as legally valid and binding.</p> <p>An unapproved translation has no legal force, and it should say so explicitly. It should be marked as follows:</p> <blockquote><p> This translation of the GPL is informal, and not officially approved by the Free Software Foundation as valid. To be completely sure of what is permitted, refer to the original GPL (in English). </p></blockquote> <p>But the unapproved translation can serve as a hint for how to understand the English GPL. For many users, that is sufficient.</p> <p>However, businesses using GNU software in commercial activity, and people doing public ftp distribution, should need to check the real English GPL to make sure of what it permits.</p></li> <li><p>Publishing translations valid for a single country only.</p> <p>We are considering the idea of publishing translations which are officially valid only for one country. This way, if there is a mistake, it will be limited to that country, and the damage will not be too great.</p> <p>It will still take considerable expertise and effort from a sympathetic and capable lawyer to make a translation, so we cannot promise any such translations soon.</p></li> </ul></dd> <dt id="InterpreterIncompat">If a programming language interpreter has a license that is incompatible with the GPL, can I run GPL-covered programs on it? <span class="anchor-reference-id">(<a href="#InterpreterIncompat" >#InterpreterIncompat</a>)</span></dt> <dd><p> 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.</p> <p>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.</p> <p>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:</p> <ol> <li>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.</li> <li>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.</li> <li>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.</li> </ol></dd> <dt id="WhoHasThePower">Who has the power to enforce the GPL? <span class="anchor-reference-id">(<a href="#WhoHasThePower" >#WhoHasThePower</a>)</span></dt> <dd><p> Since the GPL is a copyright license, the copyright holders of the software are the ones who have the power to enforce the GPL. 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 the copyright holders. <a href="#ReportingViolation">Learn more about reporting GPL violations.</a> </p></dd> <dt id="OOPLang">In an object-oriented language such as Java, if I use a class that is GPL'ed GPLed without modifying, and subclass it, in what way does the GPL affect the larger program? <span class="anchor-reference-id">(<a href="#OOPLang" >#OOPLang</a>)</span></dt> <dd><p> Subclassing is creating a derivative work. Therefore, the terms of the GPL affect the whole program where you create a subclass of a GPL'ed GPLed class. </p></dd> <dt id="PortProgramToGL">If id="PortProgramToGPL">If I port my program to GNU/Linux, does ...
http://www.gnu.org/savannah-checkouts/gnu/www/licenses/po/gpl-faq.ja-diff.html - [detail] - [similar]
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 213331 documents and 1081078 words.