<!--#include virtual="/server/header.html" -->
<!-- Parent-Version: 1.79 -->
<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 {
   display: block;
   width: 100%;
   overflow: auto;
   padding: .1em;
   margin: auto;
   border-collapse: collapse;
}
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 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 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 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="#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 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 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 program on a web site.  Does the GPL 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 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 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 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 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 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.
</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 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
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>

<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>
 
<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 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 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 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 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 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 a main program are no special requirements.</p>

<p>If the 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 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 a larger
program.</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 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 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 is essential for people to have the freedom to make modifications and
use them privately, without ever publishing those modifications.  However,
putting the program on a server machine for the public to talk to is hardly
“private” use, so it would be legitimate to require release of
the source code in that special case.  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>


<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 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
class.
</p></dd>


<dt id="PortProgramToGL">If id="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?
 <span class="anchor-reference-id">(<a href="#PortProgramToGL"
 >#PortProgramToGL</a>)</span></dt> href="#PortProgramToGPL"
 >#PortProgramToGPL</a>)</span></dt>
<dd><p>
In general, the answer is no—this is not a legal requirement.  In
specific, the answer depends on which libraries you want to use and what
their licenses are.  Most system libraries either use the <a
href="/licenses/lgpl.html">GNU Lesser GPL</a>, or use the GNU GPL plus an
exception permitting linking the library with anything.  These libraries
can be used in non-free nonfree programs; but in the case of the Lesser GPL, it
does have some requirements you must follow.</p>

<p>Some libraries are released under the GNU GPL alone; you must use a
GPL-compatible license to use those libraries.  But these are normally
the more specialized libraries, and you would not have had anything much
like them on another platform, so you probably won't find yourself
wanting to use these libraries for simple porting.</p>

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

<p>If you hope some day to look back on your career and feel that
it has contributed to the growth of a good and free society, you
need to make your software free.</p></dd>


<dt id="CompanyGPLCostsMoney">I just found out that a company has a
    copy of a GPL'ed program, and it costs money to get it.  Aren't they
    violating the GPL by not making it available on the Internet?
 <span class="anchor-reference-id">(<a href="#CompanyGPLCostsMoney"
 >#CompanyGPLCostsMoney</a>)</span></dt>
<dd><p>
No.  The GPL does not require anyone to use the Internet for
distribution.  It also does not require anyone in particular to
redistribute the program.  And (outside of one special case), even if
someone does decide to redistribute the program sometimes, the GPL
doesn't say he has to distribute a copy to you in particular, or any
other person in particular.</p>

<p>What the GPL requires is that he must have the freedom to distribute a
copy to you <em>if he wishes to</em>.  Once the copyright holder does
distribute a copy of the program to someone, that someone can then redistribute
the program to you, or to anyone else, as he sees fit.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#ReleaseNotOriginal"
 >#ReleaseNotOriginal</a>)</span></dt>
<dd><p>
No.  Such a license would be self-contradictory.  Let's look at its 
implications for me as a user.</p>

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

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


<dt id="DistributeSubsidiary">Does moving a copy to a majority-owned,
    and controlled, subsidiary constitute distribution?
 <span class="anchor-reference-id">(<a href="#DistributeSubsidiary"
 >#DistributeSubsidiary</a>)</span></dt>
<dd><p>
Whether moving a copy to or from this subsidiary constitutes
“distribution” is a matter to be decided in each case under the
copyright law of the appropriate jurisdiction.  The GPL does not and cannot
override local laws.  US copyright law is not entirely clear on the point,
but appears not to consider this distribution.</p>

<p>If, in some country, this is considered distribution, and the
subsidiary must receive the right to redistribute the program,
that will not make a practical difference.  The subsidiary is
controlled by the parent company; rights or no rights, it won't
redistribute the program unless the parent company decides to do so.</p></dd>


<dt id="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?
   <span class="anchor-reference-id">(<a href="#ClickThrough"
 >#ClickThrough</a>)</span></dt>
<dd><p>
Some software packaging systems have a place which requires you to
click through or otherwise indicate assent to the terms of the GPL.
This is neither required nor forbidden.  With or without a click
through, the GPL's rules remain the same.</p>

<p>Merely agreeing to the GPL doesn't place any obligations on you.  You
are not required to agree to anything to merely use software which is
licensed under the GPL. You only have obligations if you modify or
distribute the software.  If it really bothers you to click through
the GPL, nothing stops you from hacking the GPLed software to bypass
this.</p></dd>


<dt id="GPLCompatInstaller">I would
    like to bundle GPLed software with some sort of installation software.
    Does that installer need to have a GPL-compatible license?
 <span class="anchor-reference-id">(<a href="#GPLCompatInstaller"
 >#GPLCompatInstaller</a>)</span></dt>
<dd><p>
No.  The installer and the files it installs are separate works.  As a
result, the terms of the GPL do not apply to the installation
software.</p></dd>


<dt id="ExportWarranties">Some distributors of GPL'd software
    require me in their umbrella EULAs or as part of their downloading
    process 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.  Why are they doing this and is it a
    violation of those distributors' obligations under GPL?
 <span class="anchor-reference-id">(<a href="#ExportWarranties"
 >#ExportWarranties</a>)</span></dt>
<dd><p>
This is not a violation of the GPL.  Those distributors (almost
all of whom are commercial businesses selling free software
distributions and related services) are trying to reduce their own
legal risks, not to control your behavior.  Export control law in the
United States <em>might</em> make them liable if they knowingly export
software into certain countries, or if they give software to parties
they know will make such exports.  By asking for these statements from
their customers and others to whom they distribute software, they
protect themselves in the event they are later asked by regulatory
authorities what they knew about where software they distributed was
going to wind up.  They are not restricting what you can do with the
software, only preventing themselves from being blamed with respect to
anything you do.  Because they are not placing additional restrictions
on the software, they do not violate section 10 of GPLv3 or section 6
of GPLv2.</p>

<p>The FSF opposes the application of US export control laws to free
software.  Not only are such laws incompatible with the general
objective of software freedom, they achieve no reasonable governmental
purpose, because free software is currently and should always be
available from parties in almost every country, including countries
that have no export control laws and which do not participate in
US-led trade embargoes.  Therefore, no country's government is
actually deprived of free software by US export control laws, while no
country's citizens <em>should</em> be deprived of free software,
regardless of their governments' policies, as far as we are concerned.
Copies of all GPL-licensed software published by the FSF can be
obtained from us without making any representation about where you
live or what you intend to do.  At the same time, the FSF understands
the desire of commercial distributors located in the US to comply with
US laws.  They have a right to choose to whom they distribute
particular copies of free software; exercise of that right does not
violate the GPL unless they add contractual restrictions beyond those
permitted by the GPL.</p></dd>


<dt id="SubscriptionFee">Can I use
    GPLed software on a device that will stop operating if customers do
    not continue paying a subscription fee?
 <span class="anchor-reference-id">(<a href="#SubscriptionFee"
 >#SubscriptionFee</a>)</span></dt>
<dd><p>
No.  In this scenario, the requirement to keep paying a fee limits
the user's ability to run the program.  This is an additional
requirement on top of the GPL, and the license prohibits it.</p></dd>


<dt id="v3HowToUpgrade">How do I upgrade from (L)GPLv2 to (L)GPLv3?
 <span class="anchor-reference-id">(<a href="#v3HowToUpgrade"
 >#v3HowToUpgrade</a>)</span></dt>
<dd><p>
First, include the new version of the license in your package.
If you're using LGPLv3 in your project, be sure to include copies
of both GPLv3 and LGPLv3, since LGPLv3 is now written as a set
of additional permissions on top of GPLv3.</p>

<p>Second, replace all your existing v2 license notices (usually at
the top of each file) with the new recommended text available on
<a href="/licenses/gpl-howto.html">the GNU licenses howto</a>.  It's
more future-proof because it no longer includes the FSF's postal
mailing address.</p>

<p>Of course, any descriptive text (such as in a README) which talks about
the package's license should also be updated appropriately.</p></dd>


<dt id="BitTorrent">How does GPLv3 make BitTorrent distribution easier?
 <span class="anchor-reference-id">(<a href="#BitTorrent"
 >#BitTorrent</a>)</span></dt>
<dd><p>
Because GPLv2 was written before peer-to-peer distribution of
software was common, it is difficult to meet its requirements when you
share code this way.  The best way to make sure you are in compliance
when distributing GPLv2 object code on BitTorrent would be to include
all the corresponding source in the same torrent, which is
prohibitively expensive.</p>

<p>GPLv3 addresses this problem in two ways.  First, people who
download this torrent and send the data to others as part of that
process are not required to do anything.  That's because section 9
says “Ancillary propagation of a covered work occurring solely as a
consequence of using peer-to-peer transmission to receive a copy
likewise does not require acceptance [of the license].”</p>

<p>Second, section 6(e) of GPLv3 is designed to give
distributors—people who initially seed torrents—a clear and
straightforward way to provide the source, by telling recipients where it
is available on a public network server.  This ensures that everyone who
wants to get the source can do so, and it's almost no hassle for the
distributor.</p></dd>


<dt id="Tivoization">What is tivoization? How does GPLv3 prevent it?
 <span class="anchor-reference-id">(<a href="#Tivoization"
 >#Tivoization</a>)</span></dt>
<dd><p>
Some devices utilize free software that can be upgraded, but are
designed so that users are not allowed to modify that software.  There
are lots of different ways to do this; for example, sometimes the
hardware checksums the software that is installed, and shuts down if
it doesn't match an expected signature.  The manufacturers comply with
GPLv2 by giving you the source code, but you still don't have the
freedom to modify the software you're using.  We call this practice
tivoization.</p>

<p>When people distribute User Products that include software under
GPLv3, section 6 requires that they provide you with information
necessary to modify that software.  User Products is a term specially
defined in the license; examples of User Products include portable
music players, digital video recorders, and home security systems.</p></dd>


<dt id="DRMProhibited">Does GPLv3 prohibit DRM?
 <span class="anchor-reference-id">(<a href="#DRMProhibited"
 >#DRMProhibited</a>)</span></dt>
<dd><p>
It does not; you can use code released under GPLv3 to develop any
kind of DRM technology you like.  However, if you do this, section 3
says that the system will not count as an effective technological
“protection” measure, which means that if someone breaks the
DRM, she will be free to distribute her software too, unhindered by the DMCA
and similar laws.</p>

<p>As usual, the GNU GPL does not restrict what people do in software,
it just stops them from restricting others.</p></dd>


<dt id="GPLHardware">Can I use the GPL to license hardware?
 <span class="anchor-reference-id">(<a href="#GPLHardware"
 >#GPLHardware</a>)</span></dt>
<dd><p>
Any material that can be copyrighted can be licensed under the GPL.
GPLv3 can also be used to license materials covered by other
copyright-like laws, such as semiconductor masks.  So, as an example,
you can release a drawing of a physical object or circuit under the
GPL.</p>

<p>In many situations, copyright does not cover making physical
hardware from a drawing.  In these situations, your license for the
drawing simply can't exert any control over making or selling physical
hardware, regardless of the license you use.  When copyright does
cover making hardware, for instance with IC masks, the GPL handles
that case in a useful way.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#GiveUpKeys"
 >#GiveUpKeys</a>)</span></dt>
<dd><p>
No.  The only time you would be required to release signing keys is if
you conveyed GPLed software inside a User Product, and its hardware
checked the software for a valid cryptographic signature before it
would function. In that specific case, you would be required to
provide anyone who owned the device, on demand, with the key to sign
and install modified software on the device so that it will run.  If
each instance of the device uses a different key, then you need only
give each purchaser a key for that instance.</p></dd>


<dt id="v3VotingMachine">Does GPLv3 require that voters be able to
    modify the software running in a voting machine?
 <span class="anchor-reference-id">(<a href="#v3VotingMachine"
 >#v3VotingMachine</a>)</span></dt>
<dd><p>
No.  Companies distributing devices that include software under
GPLv3 are at most required to provide the source and Installation
Information for the software to people who possess a copy of the
object code.  The voter who uses a voting machine (like any other
kiosk) doesn't get possession of it, not even temporarily, so the
voter also does not get possession of the binary software in it.</p>

<p>Note, however, that voting is a very special case.  Just because
the software in a computer is free does not mean you can trust the
computer for voting.  We believe that computers cannot be trusted for
voting. Voting should be done on paper.</p></dd>


<dt id="v3PatentRetaliation">Does GPLv3 have a “patent retaliation
    clause”?
 <span class="anchor-reference-id">(<a href="#v3PatentRetaliation"
 >#v3PatentRetaliation</a>)</span></dt>
<dd><p>
In effect, yes.  Section 10 prohibits people who convey the
software from filing patent suits against other licensees.  If someone
did so anyway, section 8 explains how they would lose their license
and any patent licenses that accompanied it.</p></dd>


<dt id="SourceCodeInDocumentation">Can I use snippets of GPL-covered
    source code within documentation that is licensed under some license
    that is incompatible with the GPL?
 <span class="anchor-reference-id">(<a href="#SourceCodeInDocumentation"
 >#SourceCodeInDocumentation</a>)</span></dt>
<dd><p>
If the snippets are small enough that you can incorporate them
under fair use or similar laws, then yes.  Otherwise, no.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#v3Under4and5"
 >#v3Under4and5</a>)</span></dt>
<dd><p>
This means that all the permissions and conditions you have to
convey source code also apply when you convey object code: you may
charge a fee, you must keep copyright notices intact, and so on.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#v2OrLaterPatentLicense"
 >#v2OrLaterPatentLicense</a>)</span></dt>
<dd><p>
No.  When you convey GPLed software, you must follow the terms and
conditions of one particular version of the license.  When you do so,
that version defines the obligations you have.  If users may also
elect to use later versions of the GPL, that's merely an additional
permission they have—it does not require you to fulfill the
terms of the later version of the GPL as well.</p>

<p>Do not take this to mean that you can threaten the community with
your patents.  In many countries, distributing software under GPLv2
provides recipients with an implicit patent license to exercise their
rights under the GPL.  Even if it didn't, anyone considering enforcing
their patents aggressively is an enemy of the community, and we will
defend ourselves against such an attack.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#LGPLv3ContributorVersion"
 >#LGPLv3ContributorVersion</a>)</span></dt>
<dd><p>
The “contributor version” is only your version of the
library.</p></dd>


<dt id="v2v3Compatibility">Is GPLv3 compatible with GPLv2?
 <span class="anchor-reference-id">(<a href="#v2v3Compatibility"
 >#v2v3Compatibility</a>)</span></dt>
<dd><p>
No.  Many requirements have changed from GPLv2 to GPLv3, which
means that the precise requirement of GPLv2 is not present in GPLv3,
and vice versa.  For instance, the Termination conditions of GPLv3 are
considerably more permissive than those of GPLv2, and thus different
from the Termination conditions of GPLv2.</p>

<p>
Due to these differences, the two licenses are not compatible: if you
tried to combine code released under GPLv2 with code under GPLv3, you
would violate section 6 of GPLv2.</p>

<p>However, if code is released under GPL “version 2 or
later,” that is compatible with GPLv3 because GPLv3 is one of the
options it permits.</p></dd>


<dt id="InstInfo">Does GPLv2 have a requirement about delivering installation
information?
 <span class="anchor-reference-id">(<a href="#InstInfo"
 >#InstInfo</a>)</span></dt>

<dd><p>
GPLv3 explicitly requires redistribution to include the full necessary
“Installation Information.”  GPLv2 doesn't use that term,
but it does require redistribution to include <q>scripts used to
control compilation and installation of the executable</q> with the
complete and corresponding source code.  This covers part, but not
all, of what GPLv3 calls “Installation Information.”
Thus, GPLv3's requirement about installation information is
stronger.</p></dd>


<dt id="Cure">What does it mean to “cure” a violation of GPLv3?
 <span class="anchor-reference-id">(<a href="#Cure"
 >#Cure</a>)</span></dt>
<dd><p>
To cure a violation means to adjust your practices to comply with
the requirements of the license.</p></dd>


<dt id="v3InternationalDisclaimers">The warranty and liability
    disclaimers in GPLv3 seem specific to U.S. law. Can I add my own
    disclaimers to my own code?
 <span class="anchor-reference-id">(<a href="#v3InternationalDisclaimers"
 >#v3InternationalDisclaimers</a>)</span></dt>
<dd><p>
Yes.  Section 7 gives you permission to add your own disclaimers,
specifically 7(a).</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#NonvisualLegalNotices"
 >#NonvisualLegalNotices</a>)</span></dt>
<dd><p>
All you need to do is ensure that the Appropriate Legal Notices are
readily available to the user in your interface.  For example, if you
have written an audio interface, you could include a command that
reads the notices aloud.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#v3CoworkerConveying"
 >#v3CoworkerConveying</a>)</span></dt>
<dd><p>
As long as you're both using the software in your work at the
company, rather than personally, then the answer is no.  The copies
belong to the company, not to you or the coworker.  This copying is
propagation, not conveying, because the company is not making copies
available to others.</p></dd>


<dt id="v3ConditionalWarranty">If I distribute a GPLv3-covered
    program, can I provide a warranty that is voided if the user modifies
    the program?
 <span class="anchor-reference-id">(<a href="#v3ConditionalWarranty"
 >#v3ConditionalWarranty</a>)</span></dt>
<dd><p>
Yes.  Just as devices do not need to be warranted if users modify
the software inside them, you are not required to provide a warranty
that covers all possible activities someone could undertake with
GPLv3-covered software.</p></dd>


<dt id="SeparateAffero">Why did you decide to write the GNU Affero GPLv3
    as a separate license?
 <span class="anchor-reference-id">(<a href="#SeparateAffero"
 >#SeparateAffero</a>)</span></dt>
<dd><p>
Early drafts of GPLv3 allowed licensors to add an Affero-like
requirement to publish source in section 7.  However, some companies
that develop and rely upon free software consider this requirement to
be too burdensome.  They want to avoid code with this requirement, and
expressed concern about the administrative costs of checking code for
this additional requirement.  By publishing the GNU Affero GPLv3 as a
separate license, with provisions in it and GPLv3 to allow code under
these licenses to link to each other, we accomplish all of our
original goals while making it easier to determine which code has the
source publication requirement.</p></dd>


<dt id="WhyPropagateAndConvey">Why did you invent the new terms
    “propagate” and “convey” in GPLv3?
 <span class="anchor-reference-id">(<a href="#WhyPropagateAndConvey"
 >#WhyPropagateAndConvey</a>)</span></dt>
<dd><p>
The term “distribute” used in GPLv2 was borrowed from
United States copyright law.  Over the years, we learned that some
jurisdictions used this same word in their own copyright laws, but gave
it different meanings. We invented these new terms to make our intent as
clear as possible no matter where the license is interpreted.  They are
not used in any copyright law in the world, and we provide their
definitions directly in the license.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#NoMilitary"
 >#NoMilitary</a>)</span></dt>
<dd><p>
No, because those two goals contradict each other.  The GNU GPL is
designed specifically to prevent the addition of further restrictions.
GPLv3 allows a very limited set of them, in section 7, but any other
added restriction can be removed by the user.</p></dd> user.</p>

<p>More generally, a license that limits who can use a program, or for
what,
is <a href="/philosophy/programs-must-not-limit-freedom-to-run.html">not
a free software license</a>.</p>
</dd>


<dt id="ConveyVsDistribute">Is “convey” in GPLv3 the same
    thing as what GPLv2 means by “distribute”?
 <span class="anchor-reference-id">(<a href="#ConveyVsDistribute"
 >#ConveyVsDistribute</a>)</span></dt>
<dd><p>
Yes, more or less.  During the course of enforcing GPLv2, we
learned that some jurisdictions used the word “distribute” in their
own copyright laws, but gave it different meanings.  We invented a new
term to make our intent clear and avoid any problems that could be
caused by these differences.</p></dd>


<dt id="v3MakingAvailable">GPLv3 gives “making available to the
    public” as an example of propagation.  What does this mean?
    Is making available a form of conveying?
 <span class="anchor-reference-id">(<a href="#v3MakingAvailable"
 >#v3MakingAvailable</a>)</span></dt>
<dd><p>
One example of “making available to the public” is putting the
software on a public web or FTP server.  After you do this, some time
may pass before anybody actually obtains the software from
you—but because it could happen right away, you need to fulfill
the GPL's obligations right away as well.  Hence, we defined conveying
to include this activity.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#PropagationNotConveying"
 >#PropagationNotConveying</a>)</span></dt>
<dd><p>
Making copies of the software for yourself is the main form of
propagation that is not conveying.  You might do this to install the
software on multiple computers, or to make backups.</p></dd>


<dt id="Prelinking">Does prelinking a
    GPLed binary to various libraries on the system, to optimize its
    performance, count as modification?
 <span class="anchor-reference-id">(<a href="#Prelinking"
 >#Prelinking</a>)</span></dt>
<dd><p>
No.  Prelinking is part of a compilation process; it doesn't
introduce any license requirements above and beyond what other aspects
of compilation would.  If you're allowed to link the program to the
libraries at all, then it's fine to prelink with them as well.  If you
distribute prelinked object code, you need to follow the terms of
section 6.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#LaptopLoan"
 >#LaptopLoan</a>)</span></dt>
<dd><p>
No.  In the jurisdictions where we have investigated this issue,
this sort of loan would not count as conveying.  The laptop's owner
would not have any obligations under the GPL.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#TwoPartyTivoization"
 >#TwoPartyTivoization</a>)</span></dt>
<dd><p>
Yes.  If two parties try to work together to get around the
requirements of the GPL, they can both be pursued for copyright
infringement.  This is especially true since the definition of convey
explicitly includes activities that would make someone responsible for
secondary infringement.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#SourceInCVS"
 >#SourceInCVS</a>)</span></dt>
<dd><p>
This is acceptable as long as the source checkout process does not
become burdensome or otherwise restrictive.  Anybody who can download
your object code should also be able to check out source from your
version control system, using a publicly available free software
client.  Users should be provided with clear and convenient
instructions for how to get the source for the exact object code they
downloaded—they may not necessarily want the latest development
code, after all.</p></dd>


<dt id="RemoteAttestation">Can someone who conveys GPLv3-covered
    software in a User Product use remote attestation to prevent a user
    from modifying that software?
 <span class="anchor-reference-id">(<a href="#RemoteAttestation"
 >#RemoteAttestation</a>)</span></dt>
<dd><p>
No.  The definition of Installation Information, which must be
provided with source when the software is conveyed inside a User
Product, explicitly says: “The information must suffice to ensure that
the continued functioning of the modified object code is in no case
prevented or interfered with solely because modification has been
made.”  If the device uses remote attestation in some way, the
Installation Information must provide you some means for your modified
software to report itself as legitimate.</p></dd>


<dt id="RulesProtocols">What does “rules and protocols for
    communication across the network” mean in GPLv3?
 <span class="anchor-reference-id">(<a href="#RulesProtocols"
 >#RulesProtocols</a>)</span></dt>
<dd><p>
This refers to rules about traffic you can send over the network.  For
example, if there is a limit on the number of requests you can send to a
server per day, or the size of a file you can upload somewhere, your access
to those resources may be denied if you do not respect those limits.</p>

<p>These rules do not include anything that does not pertain directly to
data traveling across the network.  For instance, if a server on the
network sent messages for users to your device, your access to the network
could not be denied merely because you modified the software so that it did
not display the messages.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#SupportService"
 >#SupportService</a>)</span></dt>
<dd><p>
This includes the kind of service many device manufacturers provide to
help you install, use, or troubleshoot the product.  If a device relies on
access to web services or similar technology to function properly, those
should normally still be available to modified versions, subject to the
terms in section 6 regarding access to a network.</p></dd>


<dt id="v3Notwithstanding">In GPLv3 and AGPLv3, what does it mean when it
    says “notwithstanding any other provision of this License”?
 <span class="anchor-reference-id">(<a href="#v3Notwithstanding"
 >#v3Notwithstanding</a>)</span></dt>
<dd><p>
This simply means that the following terms prevail over anything
else in the license that may conflict with them.  For example, without this
text, some people might have claimed that you could not combine code under
GPLv3 with code under AGPLv3, because the AGPL's additional requirements
would be classified as “further restrictions” under section 7
of GPLv3.  This text makes clear that our intended interpretation is the
correct one, and you can make the combination.</p>

<p>This text only resolves conflicts between different terms of the license.
When there is no conflict between two conditions, then you must meet them
both.  These paragraphs don't grant you carte blanche to ignore the rest of
the license—instead they're carving out very limited exceptions.</p></dd>


<dt id="AGPLv3CorrespondingSource">Under AGPLv3, when I modify the Program
    under section 13, what Corresponding Source does it have to offer?
 <span class="anchor-reference-id">(<a href="#AGPLv3CorrespondingSource"
 >#AGPLv3CorrespondingSource</a>)</span></dt>
<dd><p>
“Corresponding Source” is defined in section 1 of the
license, and you should provide what it lists.  So, if your modified
version depends on libraries under other licenses, such as the Expat
license or GPLv3, the Corresponding Source should include those libraries
(unless they are System Libraries).  If you have modified those libraries,
you must provide your modified source code for them.</p>

<p>The last sentence of the first paragraph of section 13 is only meant to
reinforce what most people would have naturally assumed: even though
combinations with code under GPLv3 are handled through a special exception
in section 13, the Corresponding Source should still include the code that
is combined with the Program this way.  This sentence does not mean that
you <em>only</em> have to provide the source that's covered under GPLv3;
instead it means that such code is <em>not</em> excluded from the
definition of Corresponding Source.</p></dd>


<dt id="AGPLv3InteractingRemotely">In AGPLv3, what counts as
    “interacting with [the software] remotely through a computer
    network?”
 <span class="anchor-reference-id">(<a href="#AGPLv3InteractingRemotely"
 >#AGPLv3InteractingRemotely</a>)</span></dt>
<dd><p>
If the program is expressly designed to accept user requests and send
responses over a network, then it meets these criteria.  Common examples of
programs that would fall into this category include web and mail servers,
interactive web-based applications, and servers for games that are played
online.</p>

<p>If a program is not expressly designed to interact with a user through a
network, but is being run in an environment where it happens to do so, then
it does not fall into this category.  For example, an application is not
required to provide source merely because the user is running it over SSH,
or a remote X session.</p></dd>

<dt id="ApacheLegalEntity">How does GPLv3's concept of
    “you” compare to the definition of “Legal Entity”
    in the Apache License 2.0?
 <span class="anchor-reference-id">(<a href="#ApacheLegalEntity"
 >#ApacheLegalEntity</a>)</span></dt>
<dd><p>
They're effectively identical.  The definition of “Legal
Entity” in the Apache License 2.0 is very standard in various kinds
of legal agreements—so much so that it would be very surprising if a
court did not interpret the term in the same way in the absence of an
explicit definition.  We fully expect them to do the same when they look at
GPLv3 and consider who qualifies as a licensee.</p></dd>


<dt id="v3TheProgram">In GPLv3, what does “the Program”
    refer to?  Is it every program ever released under GPLv3?
 <span class="anchor-reference-id">(<a href="#v3TheProgram"
 >#v3TheProgram</a>)</span></dt>
<dd><p>
The term “the Program” means one particular work that is
licensed under GPLv3 and is received by a particular licensee from an
upstream licensor or distributor.  The Program is the particular work of
software that you received in a given instance of GPLv3 licensing, as you
received it.</p>

<p>“The Program” cannot mean “all the works ever licensed
under GPLv3”; that interpretation makes no sense for a number of
reasons.  We've published
an <a href="/licenses/gplv3-the-program.html">analysis of the term
“the Program”</a> for those who would like to learn more about
this.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#NoDistributionRequirements"
 >#NoDistributionRequirements</a>)</span></dt>
<dd><p>
Nothing.  The GPL does not place any conditions on this activity.</p></dd>


<dt id="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?
 <span class="anchor-reference-id">(<a href="#AGPLv3ServerAsUser"
 >#AGPLv3ServerAsUser</a>)</span></dt>
<dd>
    <p>AGPLv3 requires a program to offer source code to “all
users interacting with it remotely through a computer network.”
It doesn't matter if you call the program a “client”
or a “server,” the
question you need to ask is whether or not there is a reasonable
expectation that a person will be interacting with the program
remotely over a network. </p></dd>

<dt id="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?
  <span class="anchor-reference-id">(<a href="#AGPLProxy">#AGPLProxy</a>)</span></dt>
<dd><p>For software on a proxy server, you can provide an offer of
source through a normal method of delivering messages to users of that
kind of proxy. For example, a Web proxy could use a landing page. When
users initially start using the proxy, you can direct them to a page
with the offer of source along with any other information you choose
to provide.</p>
<p>The AGPL says you must make the offer to "all users".  If you know
that a certain user has already been shown the offer, for the current
version of the software, you don't have to repeat it to that user
again.</p></dd>


<dt id="AllCompatibility">How are the various GNU licenses
    compatible with each other?
 <span class="anchor-reference-id">(<a href="#AllCompatibility"
 >#AllCompatibility</a>)</span></dt>
<dd><p>
The various GNU licenses enjoy broad compatibility between each
other.  The only time you may not be able to combine code under two of
these licenses is when you want to use code that's <em>only</em> under
an older version of a license with code that's under a newer
version.</p>

<p>Below is a detailed compatibility matrix for various combinations of the
GNU licenses, to provide an easy-to-use reference for specific cases.  It
assumes that someone else has written some software under one of these
licenses, and you want to somehow incorporate code from that into a project
that you're releasing (either your own original work, or a modified version
of someone else's software). Find the license for your project in a
column at the top of the table, and the license for the other code in a row
on the left. The cell where they meet will tell you whether or not this
combination is permitted.</p>

<p>When we say “copy code,” we mean just that: you're taking a
section of code from one source, with or without modification, and
inserting it into your own program, thus forming a work based on the first
section of code.  “Use a library” means that you're not copying
any source directly, but instead interacting with it through linking,
importing, or other typical mechanisms that bind the sources together when
you compile or run the code.</p>

<p>Each place that the matrix states GPLv3, the same statement about
compatibility is true for AGPLv3 as well.</p>

<p><a href="#matrix-skip-target">Skip compatibility matrix</a></p>

<table id="gpl-compat-matrix">
<tbody><tr>
<th rowspan="2" colspan="2"><br /></th>
<th colspan="6">I want to license my code under:</th>
</tr>

<tr>
<th class="gpl-matrix-border">GPLv2 only</th>
<th class="gpl-matrix-border">GPLv2 or later</th>
<th class="gpl-matrix-border">GPLv3 or later</th>
<th class="gpl-matrix-border">LGPLv2.1 only</th>
<th class="gpl-matrix-border">LGPLv2.1 or later</th>
<th class="gpl-matrix-border">LGPLv3 or later</th>
</tr>

<tr>
<th rowspan="6">I want to copy code under:</th>
<th class="gpl-matrix-license gpl-matrix-border">GPLv2 only</th>
<td class="ok">OK</td>
<td class="ok">OK <a href="#compat-matrix-footnote-2">[2]</a></td>
<td class="nok">NO</td>
<td class="mok">OK: Combination is under GPLv2 only <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Combination is under GPLv2 only <a href="#compat-matrix-footnote-7">[7]</a><a href="#compat-matrix-footnote-2">[2]</a></td>
<td class="nok">NO</td>
</tr>

<tr>
<th class="gpl-matrix-license gpl-matrix-border">GPLv2 or later</th>
<td class="ok">OK <a href="#compat-matrix-footnote-1">[1]</a></td>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="mok">OK: Combination is under GPLv2 or later <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Combination is under GPLv2 or later <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-8">[8]</a></td>
</tr>

<tr>
<th class="gpl-matrix-license gpl-matrix-border">GPLv3</th>
<td class="nok">NO</td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-3">[3]</a></td>
<td class="ok">OK</td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-8">[8]</a></td>
</tr>

<tr>
<th class="gpl-matrix-license gpl-matrix-border">LGPLv2.1
only</th>
<td class="mok">OK: Convey copied code under GPLv2 <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Convey copied code under GPLv2 or later <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Convey copied code under GPLv3 <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="ok">OK</td>
<td class="ok">OK <a href="#compat-matrix-footnote-6">[6]</a></td>
<td class="mok">OK: Convey copied code under GPLv3 <a href="#compat-matrix-footnote-7">[7]</a><a href="#compat-matrix-footnote-8">[8]</a></td>
</tr>

<tr>
<th class="gpl-matrix-license gpl-matrix-border">LGPLv2.1
or later</th>
<td class="mok">OK: Convey copied code under GPLv2 <a href="#compat-matrix-footnote-7">[7]</a><a href="#compat-matrix-footnote-1">[1]</a></td>
<td class="mok">OK: Convey copied code under GPLv2 or later <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Convey code under GPLv3 <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="ok">OK <a href="#compat-matrix-footnote-5">[5]</a></td>
<td class="ok">OK</td>
<td class="ok">OK</td>
</tr>

<tr>
<th class="gpl-matrix-license gpl-matrix-border">LGPLv3</th>
<td class="nok">NO</td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-8">[8]</a><a href="#compat-matrix-footnote-3">[3]</a></td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-8">[8]</a></td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-7">[7]</a><a href="#compat-matrix-footnote-8">[8]</a></td>
<td class="mok">OK: Combination is under LGPLv3 <a href="#compat-matrix-footnote-4">[4]</a></td>
<td class="ok">OK</td>
</tr>

<tr class="gpl-matrix-use-type">
<th rowspan="6">I want to use a library under:</th>
<th class="gpl-matrix-license gpl-matrix-border">GPLv2 only</th>
<td class="ok">OK</td>
<td class="ok">OK <a href="#compat-matrix-footnote-2">[2]</a></td>
<td class="nok">NO</td>
<td class="mok">OK: Combination is under GPLv2 only <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Combination is under GPLv2 only <a href="#compat-matrix-footnote-7">[7]</a><a href="#compat-matrix-footnote-2">[2]</a></td>
<td class="nok">NO</td>
</tr>

<tr>
<th class="gpl-matrix-license gpl-matrix-border">GPLv2 or later</th>
<td class="ok">OK <a href="#compat-matrix-footnote-1">[1]</a></td>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="mok">OK: Combination is under GPLv2 or later <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Combination is under GPLv2 or later <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-8">[8]</a></td>
</tr>

<tr>
<th class="gpl-matrix-license gpl-matrix-border">GPLv3</th>
<td class="nok">NO</td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-3">[3]</a></td>
<td class="ok">OK</td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-7">[7]</a></td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-8">[8]</a></td>
</tr>

<tr>
<th class="gpl-matrix-license gpl-matrix-border">LGPLv2.1 only</th>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="ok">OK</td>
</tr>

<tr>
<th class="gpl-matrix-license gpl-matrix-border">LGPLv2.1 or later</th>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="ok">OK</td>
</tr>

<tr>
<th class="gpl-matrix-license gpl-matrix-border">LGPLv3</th>
<td class="nok">NO</td>
<td class="mok">OK: Combination is under GPLv3 <a href="#compat-matrix-footnote-9">[9]</a></td>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="ok">OK</td>
<td class="ok">OK</td>
</tr>

</tbody></table>

<p><a href="#matrix-skip-target">Skip footnotes</a></p>

<p id="compat-matrix-footnote-1">1: You must follow the terms of GPLv2
when incorporating the code in this case. You cannot take advantage of
terms in later versions of the GPL.</p>

<p id="compat-matrix-footnote-2">2: While you may release your project
(either your original work and/or work that you received and modified)
under GPLv2-or-later in this case, note that the other code you're
using must remain under GPLv2 only.  As long as your project depends
on that code, you won't be able to upgrade the license of your project
to GPLv3-or-later, and the work as a whole (any combination of both
your project and the other code) can only be conveyed under the terms
of GPLv2.</p>

<p id="compat-matrix-footnote-3">3: If you have the ability to release
the project under GPLv2 or any later version, you can choose to
release it under GPLv3 or any later version—and once you do
that, you'll be able to incorporate the code released under GPLv3.</p>

<p id="compat-matrix-footnote-4">4: If you have the ability to release
the project under LGPLv2.1 or any later version, you can choose to
release it under LGPLv3 or any later version—and once you do
that, you'll be able to incorporate the code released under
LGPLv3.</p>

<p id="compat-matrix-footnote-5">5: You must follow the terms of
LGPLv2.1 when incorporating the code in this case. You cannot take
advantage of terms in later versions of the LGPL.</p>

<p id="compat-matrix-footnote-6">6: If you do this, as long as the
project contains the code released under LGPLv2.1 only, you will not
be able to upgrade the project's license to LGPLv3 or later.</p>

<p id="compat-matrix-footnote-7">7: LGPLv2.1 gives you permission to
relicense the code under any version of the GPL since GPLv2.  If you
can switch the LGPLed code in this case to using an appropriate
version of the GPL instead (as noted in the table), you can make this
combination.</p>

<p id="compat-matrix-footnote-8">8: LGPLv3 is GPLv3 plus extra
permissions that you can ignore in this case.</p>

<p id="compat-matrix-footnote-9">9: Because GPLv2 does not permit
combinations with LGPLv3, you must convey the project under GPLv3's
terms in this case, since it will allow that combination.</p>

<div id="matrix-skip-target"></div></dd>

</dl>

</div><!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.html" -->
<div id="footer">
<div class="unprintable">

<p>Please send general FSF & GNU inquiries to
<a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>.
There are also <a href="/contact/">other ways to contact</a>
the FSF.  Broken links and other corrections or suggestions can be sent
to <a href="mailto:licensing@gnu.org"><licensing@gnu.org></a>.</p>

<p><!-- TRANSLATORS: Ignore the original text in this paragraph,
        replace it with the translation of these two:

        We work hard and do our best to provide accurate, good quality
        translations.  However, we are not exempt from imperfection.
        Please send your comments and general suggestions in this regard
        to <a href="mailto:web-translators@gnu.org">
        <web-translators@gnu.org></a>.</p>

        <p>For information on coordinating and submitting translations of
        our web pages, see <a
        href="/server/standards/README.translations.html">Translations
        README</a>. -->
Please see the <a
href="/server/standards/README.translations.html">Translations
README</a> for information on coordinating and submitting translations
of this article.</p>
</div>

<!-- Regarding copyright, in general, standalone pages (as opposed to
     files generated as part of manuals) on the GNU web server should
     be under CC BY-ND 4.0.  Please do NOT change or remove this
     without talking with the webmasters or licensing team first.
     Please make sure the copyright date is consistent with the
     document.  For web pages, it is ok to list just the latest year the
     document was modified, or published.
     
     If you wish to list earlier years, that is ok too.
     Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
     years, as long as each year in the range is in fact a copyrightable
     year, i.e., a year in which the document was published (including
     being publicly visible on the web or in a revision control system).
     
     There is more detail about copyright years in the GNU Maintainers
     Information document, www.gnu.org/prep/maintain. -->


<p>Copyright © 2014, 2015, 2016, 2017 Free Software Foundation, Inc.</p>

<p>This page is licensed under a <a rel="license"
href="http://creativecommons.org/licenses/by-nd/4.0/">Creative
Commons Attribution-NoDerivatives 4.0 International License</a>.</p>

<!--#include virtual="/server/bottom-notes.html" -->

<p class="unprintable">Updated:
<!-- timestamp start -->
$Date: 2017/10/16 20:00:53 $
<!-- timestamp end -->
</p>
</div>
</div>
</body>
</html>