关于GNU许可证的常见问题

目录


关于GNU项目的基本问题Software Foundation及其许可证

对GNU许可证的一般理解

为程序使用GNU许可证

根据GNU许可证发布的程序的分发

在编写其他程序

将工作与GNU许可下发布的代码结合起来

关于违反GNU许可证的问题


GPL代表什么?(#GPL代表什么)

“GPL”代表“通用公共许可证”。最广泛的此类许可证是GNU通用公共许可证,或GNU简称GPL。这可以进一步缩短为“GPL”,当它可以理解,GNU GPL是预期的。

自由软件意味着使用GPL?(#Does FreeSoftware意味着使用GPL)

根本没有其他许多自由软件许可证。我们有一个不完整列表.任何为用户提供的许可证某些特定自由度是一个自由软件许可证。

为什么我应该使用GNU GPL而不是其他自由软件许可证?(#为什么使用GPL)

使用GNU GPL将需要这个发布的改进版本是免费的软件。这意味着您可以避免与竞争的风险您自己作品的专有修改版本。然而,在一些特殊的使用更宽松的许可证.

所有GNU软件使用GNU GPL作为其许可证?(#所有GNU软件都使用GNUGPLAS许可证)

大多数GNU软件包使用GNU GPL,但也有一些使用更宽松许可证的GNU程序(和部分程序),例如较低的GPL。当我们这样做时,问题是策略.

是否使用GPL为一个程序做GNU软件?(#使用GPLF或AProgramMakeItGNU软件)

任何人都可以在GNU GPL下发布程序,但这不能使其成为GNU包。

使程序成为GNU软件包意味着明确贡献GNU项目。当程序的开发人员和GNUProject同意这样做。如果您有兴趣为GNU项目,请写信给<maintainers@gnu.org>.

如果我发现一个可能的违反GPL?(#报告违规行为)

你应该报告它.首先,尽可能核实事实。然后告诉出版商或特定GPL覆盖程序的版权所有者。如果那是免费的软件基础,编写<license-violation@gnu.org>.否则,程序的维护者可能是版权所有者,或者可以告诉您如何联系版权持有人,因此请向维护人员。

为什么?GPL允许用户发布他们修改过的版本吗?(#为什么GPL许可用户发布他们修改的版本)

自由软件的一个关键方面是用户可以自由合作。允许希望互相帮助的用户是绝对必要的与其他用户分享他们的错误修复和改进。

一些人提出了需要修改的GPL替代方案版本要经过原作者。只要是原件作者跟上了维护的需要,这可能在练习,但如果作者停止(或多或少)做其他事情或者没有满足所有用户的需求,这个方案就失败了。除了实际问题外,此方案不允许用户互相帮助。

有时,对修改版本的控制被提议作为一种手段防止用户制作的不同版本之间的混淆。在我们的经验表明,这种困惑并不是一个大问题。的许多版本Emacs是在GNU项目之外制作的,但用户可以告诉他们分开。GPL要求版本的制造商将其名称,以区别于其他版本并保护其他维护者的声誉。

GPL是否要求修改版本的源代码是否公开?(#GPL需求源发布公开)

GPL不要求您发布修改后的版本或任何你可以自由修改并私下使用它们,但从未释放过他们。这适用于组织(包括公司);组织可以制作修改后的版本并使用它在内部,但从未在组织外部发布。

但是如果你在一些另外,GPL要求您将修改后的源代码提供给GPL下的程序用户。

因此,GPL允许在某些方式,而不是其他方式;但是否释放的决定这取决于你。

我可以申请GPL吗程序和同一台计算机上不相关的非自由程序?(#同一台机器上的GPL和非免费)

对。

如果我知道有人有GPL的副本程序,我能要求他们给我一份吗?(#CanIDemandA副本)

不可以。GPL允许个人制作和重新分发副本程序的如果以及何时该人选择这样做.此人也有权不选择重新分配程序。

“书面报价”是什么对任何第三方有效“在GPLv2中是指?这意味着世界上每个人都可以获得任何GPLed程序的来源不管怎样?(#写的内容错误有效)

如果你选择通过书面要约提供来源,那么任何人向您请求消息来源的人有权获得消息。

如果您在商业上分发不附带源代码的二进制文件代码,GPL要求您必须提供书面提议以分发源代码。当用户非商业性地重新分配他们从您那里收到的二进制文件,必须传递此文件的副本书面要约。这意味着没有获得二进制文件的人直接从您那里仍然可以收到源代码的副本,以及书面要约。

我们要求报价对任何第三方有效的原因就是这样,那些间接接收二进制文件的人可以向您订购源代码。

GPLv2表示修改了版本,如果发布,必须“授权给所有第三方”各方。”这些第三方是谁?(#GPL支付修改的版本)

第2节指出,您发布的修改版本必须根据GPL许可给所有第三方。“所有三分之一“派对”绝对是指每个人,但这并不要求你要为他们做任何身体上的事。这只意味着他们有根据GPL为您的版本颁发许可证。

我需要申请版权吗我对GPL覆盖程序的修改?(#索赔所需版权)

您不需要对您的更改要求版权。最多然而,默认情况下,这会自动发生,因此您需要如果不想更改,请将更改显式地放在公共域中受版权保护。

无论您是否要求对您的更改拥有版权必须在GPL下发布修改后的版本,作为一个整体(如果您发布修改的版本).

GPL对翻译说了什么用不同的编程语言编写代码?(#翻译代码)

根据版权法,翻译作品被视为某种修改。因此,GPL关于修改的内容版本也适用于翻译版本。翻译是受原程序版权保护。

如果原始程序带有免费许可证,则该许可证将翻译许可。如何使用和许可翻译的程序由该许可决定。如果原件程序是根据GNU GPL的某些版本授权的翻译后的程序必须包含在相同版本的GNU中GPL。

如果程序结合带有GPL覆盖代码的公共域代码,我可以使用公共域部分并将其用作公共域代码?(#将公共域与GPL结合)

你可以这样做,如果你能弄清楚哪个部分是公共领域并将其与其他代码分开。如果代码公开无论在哪里,它都是公共领域的一直是。

GPL允许我销售这个项目是为了钱吗?(#GPL是否允许资金)

是的,GPL允许每个人都这样做。这个出售副本的权利是的一部分自由软件的定义。除了在一种特殊情况下你可以收取的价格没有限制。(唯一的例外是提供必须附带的源代码所需的书面提议仅二进制版本。)

GPL允许我收费吗从我的分发站点下载程序的费用?(#GPLA是否允许下载费用)

对。您可以收取任何费用来分发程序。在GPLv2下,如果通过下载分发二进制文件必须提供“同等访问权限”才能下载source-因此,下载源的费用可能不会更高而不是下载二进制文件的费用。如果二进制文件分布式是根据GPLv3许可的,那么您必须提供通过相同的无需再收费。

GPL允许我要求任何收到软件的人都必须向我支付费用和/或通知我?(#GPLA是否允许收取费用)

不。事实上,这样的要求会使程序不自由。如果人们在获得程序副本时必须付费,或者如果他们必须特别通知任何人,那么程序就不是免费的。请参阅自由软件的定义.

GPL是一个自由软件许可证,因此它允许人们在不需要的情况下使用甚至重新发布软件为此向任何人支付费用。

可以向人们收费获取副本来自您.你不能要求人们在收到副本时付钱给你其他人.

如果我付费分发GPLed软件,我是否也需要免费向公众开放?(#GPL是否要求公开可用性)

没有。但是,如果有人支付您的费用并获得副本,GPL会提供他们有向公众免费发布的自由。例如,有人可以支付您的费用,然后将她的副本放在面向公众的网站。

GPL允许我分发副本吗根据保密协议?(#GPLA是否允许NDA)

没有。GPL说任何收到你的副本的人都有重新分发副本的权利,无论是否修改。不允许您这样做在更严格的基础上分配工作。

如果有人要求您签署NDA以接收GPL覆盖的软件版权归FSF所有,请立即致函license-violation@fsf.org.

如果违规涉及GPL覆盖的代码,则该代码具有其他版权持有者,请通知版权持有者任何其他违反GPL的行为。

GPL允许我分发根据保密协议修改或测试版?(#GPLA是否允许ModNDA)

不。GPL规定修改后的版本必须包含所有GPL中规定的自由。因此,任何收到您的您的版本有权重新分发副本(修改或不是)。您不得发布任何版本的作品在更严格的基础上。

GPL是否允许我开发根据保密协议修改的版本?(#根据NDA制定变更)

对。例如,您可以接受合同来开发更改和同意不释放您的更改直到客户同意。这是允许的,因为在这种情况下,没有GPL覆盖的代码根据保密协议分发。

您也可以在GPL下向客户端发布您的更改,但是同意除非客户同意,否则不将其发布给任何其他人在这种情况下,也没有GPL覆盖的代码在NDA下发布,或根据任何其他限制。

GPL将授予客户重新发布您的版本的权利。在这种情况下,客户可能会选择不行使该权利,但确实如此右边。

我想获得学分我想让人们知道我写了什么。我还能得到吗如果我使用GPL信用卡?(#IWantCredit公司)

你当然可以获得这项工作的荣誉GPL下的程序正在以您自己的名义写版权声明(假设您是版权所有者)。GPL需要所有副本携带适当的版权声明。

GPL允许我添加术语吗这需要在研究论文中引用或承认哪些使用GPL覆盖的软件或其输出?(#要求引文)

不,根据GPL的条款,这是不允许的。当我们认识到恰当的引用是学术的重要组成部分出版物,引用不能作为附加要求添加到GPL。在使用GPLed的研究论文中需要引用软件超出了可接受的附加功能GPLv3第7(b)节的要求,因此考虑了《政府采购法》第7条下的附加限制。而且版权法不允许您放置软件输出要求,无论其是否根据GPL条款获得许可,或其他许可证。

为什么GPL要求在每个程序副本中都包含GPL副本?(#必须包含的内容)

在作品中包含许可证副本至关重要,以便每个获得该程序副本的人都可以知道自己的权利是什么。

包含引用许可证的URL可能很诱人,而不是许可证本身。但您不能确定URL五年或十年后仍然有效。20年从现在起,我们今天所知道的URL可能不再存在。

确保拥有程序副本的人将继续能够看到许可证,尽管进行了所有更改这将发生在网络中,包括许可证的副本程序。

只放一份就够了吗我的存储库中的GNU GPL?(#仅许可证副本)

只需将GNU GPL的副本放在存储库中的文件中没有明确声明同一存储库中的代码可能是在GNU GPL下使用。如果没有这样的声明,就不完全明确许可证中的权限确实适用于任何特定的源文件。一个明确的声明,它消除了所有疑虑。

一个仅包含许可证的文件,没有特定的语句该许可涵盖其他文件,类似于包含以下内容的文件只是一个从未从其他地方调用的子例程。这个相似性并非十全十美:律师和法院可能共同适用感觉并得出结论,您必须将GNU GPL的副本因为您希望以这种方式授权代码。或者他们可能没有。为什么要留下不确定性?

此语句应位于每个源文件中。明确声明程序的README文件在法律上已经足够了只要那样随附代码,但他们很容易分开。为什么要冒险关于的不确定性您的代码许可证?

这与GNU GPL的具体内容无关。任何免费许可都是如此。

为什么我应该在每个源文件?(#通知InSourceFile)

您应该在每个源文件的开头放一个通知,说明其持有的许可证,以避免代码的风险正在断开与其许可证的连接。如果您的存储库的README说源文件在GNU GPL下,如果有人将该文件复制到另一个程序?其他上下文可能无法显示文件的许可证是什么。它可能看起来有其他许可证,在没有许可证全部的(这将使代码不自由)。

在每个文件的开头添加版权声明和许可声明源文件很容易,不太可能出现这种混淆。

这与GNU GPL的细节无关。任何免费许可都是如此。

如果工作不是很长怎么办?(#工作不足之处)

如果整个软件包包含很少代码少于300行是我们使用的基准也可以使用宽松的许可证,而不是版权许可证像GNU GPL这样的许可证。(除非,也就是说,代码是特别的重要信息。)我们推荐Apache许可证2.0对于这种情况。

我可以省略GPL的前言吗如何在自己的程序中使用它以节省空间的说明?(#GPLOmit前言)

序言和说明是GNU GPL和不能省略。事实上,GPL是受版权保护的,其许可证只允许对整个GPL进行逐字复制。(您可以使用制定法律条款另一个许可证但是它不会是GNU GPL。)

序言和说明总计约1000字,略少于超过GPL总大小的1/5。他们不会做出实质性的软件包大小的微小变化,除非软件包它本身很小。在这种情况下,您不妨使用一个简单的所有许可证,而不是GNU GPL。

它是什么意思是说两个许可证是“兼容的”?(#兼容内容)

为了将两个程序(或其中的大部分)组合成一个更大的工作,你需要有权限以这种方式使用这两个程序。如果两个程序的许可证允许这样做,那么它们是兼容的。如果有无法同时满足这两个许可,它们是不兼容的。

对于某些许可证,组合的方式可能会影响无论它们是否与实例兼容,它们都可以允许链接两个模块在一起,但不允许将其代码合并到一个模块中。

如果您只想在同一系统中安装两个单独的程序它们的许可证不一定要兼容,因为这不需要把它们组合成一个更大的作品。

许可证是什么意思“与GPL兼容吗?”(#比较意味着什么)

这意味着其他许可证和GNU GPL是兼容的;你可以将根据其他许可证发布的代码与根据GNU GPL在一个更大的程序中。

所有GNU GPL版本都允许私下进行这种组合;他们还如果组合是在相同的GNU GPL版本下发布。另一个许可证是与GPL兼容,如果它也允许这样做。

GPLv3与比GPLv2更多的许可证兼容:它允许您具有特定类型附加要求的代码的组合它们不在GPLv3本身中。第7节对此有更多信息,包括允许的附加要求列表。

我能写字吗使用非自由库的自由软件?(#带有NFLib的FS-)

如果您这样做,您的程序将无法在免费环境中完全可用环境。如果您的程序依赖于非自由库来执行当然,在自由世界中,它无法做到这一点。如果它取决于要运行非自由库,它不能是自由操作的一部分GNU等系统;这完全是自由世界的禁区。

所以请考虑:你能找到一种不使用这个图书馆?你能为那个图书馆写一个免费的替代品吗?

如果程序已经使用非自由库编写,可能是改变决定为时已晚。你也可以发布程序但请在自述对非免费库的需求是一个缺点,并建议更改程序以使其在没有非自由库。请建议任何想这样做的人对该计划的大量进一步研究首先使其摆脱依赖性在非自由库上。

请注意,结合某些非免费服务也可能存在法律问题带有GPL覆盖的自由软件的库。请参阅关于GPL软件的问题GPL不兼容的库了解更多信息。

我可以将GPL程序与专有系统库?(#系统库异常)

这两个版本的GPL通常都有其copyleft的例外调用了系统库异常。如果GPL不兼容库如果你想使用符合系统库标准的程序,那么你就不需要必须做任何特别的事情来使用它们;分发的要求整个程序的源代码甚至不包括那些库如果您分发包含它们的链接可执行文件。

作为“系统库”的标准各不相同在不同版本的GPL之间。GPLv3明确定义第1节中的“系统库”,将其从“对应来源”的定义。GPLv2处理这一点在第3节的末尾,问题略有不同。

我可以用什么方式链接或组合AGPLv3覆盖和GPLv3覆盖的代码?(#AGPLGPL公司)

每个许可证都明确允许与其他许可证。您始终可以将GPLv3涵盖的模块与AGPLv3覆盖模块,反之亦然。这是真的,不管某些模块是否为库。

什么法律问题如果我在GPL软件中使用与GPL不兼容的库,会出现吗?(#GPL不兼容库)

如果您希望程序链接到未包含在系统库异常,您需要提供权限才能执行此操作。下面是两个示例许可证通知,您可以使用它们来完成此操作;对于GPLv3,另一个用于GPLv2。无论哪种情况,你都应该把这个授予此权限的每个文件中的文本。

只有该程序的版权所有者才能合法发布其这些条款下的软件。如果你自己写了整个程序,那么假设你的雇主或学校没有要求版权,你是版权所有者,这样您可以授权例外。但如果你想在代码中使用其他作者编写的其他GPL覆盖程序的一部分,您不能为它们授权例外。你必须得到批准这些程序的版权所有者。

当其他人修改程序时,他们不必进行相同的修改对于他们的代码来说,是否这样做是他们的选择。

如果要链接的库是非免费的,请参见关于编写使用非自由库.

如果您正在使用GPLv3,您可以通过授予根据第7条获得的额外许可。以下许可证通知将这样做。您必须将括号中的所有文本替换为适合您的计划。如果不是每个人都可以为要链接的库,应删除中的文本支撑;否则,只需拆下支架本身。

版权(C)[年] [版权名称持有人]

这个程序是自由软件;你可以重新发布和/或修改它根据Free发布的GNU通用公共许可证条款软件基础;许可证的版本3,或(根据您的选择)任何更高版本。

这个程序的发布是希望它会有用,但是无任何担保;甚至没有适销性的暗示保证或特定用途的适用性。参见GNU通用公共许可了解更多详细信息。

您应该已经收到GNU通用公共许可证的副本使用此程序;如果没有,请参阅<https://www.gnu.org/licenses网站>.

GNU GPL版本3第7节下的附加许可

如果您通过链接或组合修改此程序或任何涵盖的工作它与[图书馆名称](或其修改版本库),包含条款涵盖的部件[图书馆名称许可证],此程序的许可方授予您额外的传递结果作品的权限。{这种组合的非源形式应包括的部分[图书馆名称]使用和覆盖的工作。}

如果您使用的是GPLv2,您可以为许可证条款。下面的许可证通知可以做到这一点。再一次,你必须将括号中的所有文本替换为适用于您的程序。如果不是,每个人都可以为要链接的库,应删除中的文本支撑;否则,只需拆下支架本身。

版权(C)[年] [版权名称持有人]

这个程序是自由软件;你可以重新发布和/或修改它根据Free发布的GNU通用公共许可证条款软件基础;许可证的版本2,或(根据您的选择)任何更高版本。

这个程序的发布是希望它会有用,但是无任何担保;甚至没有适销性的暗示保证或特定用途的适用性。参见GNU通用公共许可了解更多详细信息。

您应该已经收到GNU通用公共许可证的副本使用此程序;如果没有,请参阅<https://www.gnu.org/licenses网站>.

链接[程序名称]静态或动态其他模块正在基于[您的姓名程序]因此,GNU公众的条款和条件许可涵盖整个组合。

此外,作为一个特殊例外[姓名]允许您合并[您的姓名程序]使用发布的自由软件程序或库在GNU LGPL下,标准版本中包含代码属于[图书馆名称][图书馆名称许可证](或此类代码的修改版本,许可证不变)。您可以按照GNU的条款复制和分发这样的系统GPL用于[程序名称]以及另一方的许可相关代码{,前提是您包含另一个当GNU GPL需要分发源代码时进行编码}。

请注意,制作修改版本的[您的姓名程序]没有义务为他们的修改版本;是否这样做是他们的选择。GNU将军公共许可证允许发布修改后的版本,而无需例外;此异常还可以发布修改的转发此异常的版本。

如何获得程序的版权为了在GPL下发布它?(#HowIGet版权所有)

根据伯尔尼公约,所有书写内容都是自动的无论何时以固定形式发布,都会受到版权保护。所以您不必这样做任何能“获得”你所写内容版权的东西因为没有人能声称拥有你的作品。

然而,在美国注册版权是一个非常好的主意。将为您在处理美国侵权人方面提供更多影响力。

其他人可能声称版权的情况是:您是员工或学生;那么雇主或学校可能会声称是你为他们做的工作,版权属于他们。他们是否会提出有效的索赔将取决于具体情况比如你住的地方的法律和你的工作合同以及你做什么样的工作。最好咨询律师如果有任何疑问。

如果你认为雇主或学校可能会提出索赔,你可以通过签署版权免责声明明确解决问题由公司或学校的适当授权人员执行。(您的直属上司或教授通常无权签署此类免责声明。)

如果我的学校可能想把我的程序变成它自己的专有软件产品?(#学校情况)

现在许多大学试图通过限制使用来筹集资金他们开发的知识和信息,实际上表现得很少不同于商业企业。(参见“The Kept《大学》,《大西洋月刊》,2000年3月,一般性讨论这一问题及其影响。)

如果你看到你的学校有可能拒绝程序将作为自由软件发布,最好提出问题在尽可能早的阶段。程序越接近工作状态有用的是,政府可能会觉得越有诱惑力离开你,在没有你的情况下完成它。在早期阶段更多杠杆作用。

因此,我们建议您在计划仅做了一半,说:“如果你同意免费发布软件,我会完成的。“不要把这当成虚张声势。收件人获胜,你必须有勇气说:“我的节目将自由,否则永远不会诞生。”

可以你给我一步一步的说明如何将GPL应用到我的程序中?(#你能帮助应用GPL吗)

请参阅第页,共页GPL公司说明书.

我听说有人拿到了一份在另一个许可证下使用GPLed程序。这可能吗?(#HeardOtherLicense公司)

GNU GPL不允许用户将其他许可附加到程序。但程序的版权所有者可以发布它在几个不同的许可证下并行。其中之一可能是GNU GPL。

您副本中的许可证,假设它是由版权所有者和您合法获得的副本是适用于您的副本的许可证。

我想发布一个我写的程序根据GNU GPL,但我会喜欢在非自由程序中使用相同的代码。(#根据GPL和NF发布)

发布一个非免费程序总是有道德上的污点,但是从法律上讲,你这样做没有任何障碍。如果你是版权所有人代码的持有人,您可以在不同的不同时期的非决定性许可。

受GPL约束的GPL覆盖程序的开发人员?能不能开发者的行为是否违反了GPL?(#开发者违规)

严格地说,GPL是开发人员对其他人的许可使用、分发和更改程序。开发者本身就是不受它的约束,所以无论开发人员做什么,这都不是“违反”GPL。

然而,如果开发人员做了违反GPL的事情,如果由其他人完成,开发人员肯定会在社区。

程序的开发人员可以它是根据GPL授权给另一方专用的吗?(#CanDeveloper第三方)

否,因为公众已经有权根据GPL,这项权利不能撤回。

我可以使用GPL覆盖的编辑器吗GNU Emacs开发非免费程序?我可以使用GPL覆盖的工具吗比如GCC来编译它们?(#CanIUseGPL工具ForNF)

是的,因为编辑器和工具的版权不包括你写的代码。使用它们在法律上没有任何限制,在您用于代码的许可证上。

一些程序将自己的一部分复制到技术输出中原因——例如,Bison将标准解析器程序复制到输出文件。在这种情况下,将覆盖输出中复制的文本使用源代码中包含它的同一许可证。与此同时从程序输入派生的输出的一部分继承输入的版权状态。

碰巧,Bison也可以用于开发非免费程序。这是因为我们决定明确允许使用野牛Bison输出文件中的标准解析器程序,无限制。我们做出这个决定是因为还有其他工具可以与野牛相媲美它已经允许用于非免费程序。

我有“合理使用”吗使用GPL覆盖程序源代码的权利?(#GPL航空使用)

是的,你知道。“合理使用”是指在没有任何限制的情况下允许使用特别许可。因为你不需要开发者的许可这样的使用,无论开发人员说什么,都可以做到无论是在许可证中还是在其他地方,无论该许可证是GNU GPL或任何其他自由软件许可。

然而,请注意,全球范围内没有合理使用原则;什么被认为“公平”的使用种类因国家而异国家。

美国政府可以根据GNU GPL发布一个程序吗?(#GPLUSGov公司)

如果程序是由美国联邦政府雇员在在他们的就业过程中,这是在公共领域,也就是说不受版权保护。由于GNU GPL是基于版权的,因此程序不能在GNU GPL下发布。(仍然可以自由软件然而;公众域程序是免费的。)

然而,当美国联邦政府机构使用承包商开发软件,这是一种不同的情况。合同可以要求承包商根据GNU GPL发布。(GNU Ada是以这种方式开发。)或者合同可以将版权转让给政府机构,然后可以根据GNU GPL。

美国政府可以吗发布对GPL覆盖计划的改进?(#GPLUSGov添加)

对。如果这些改进是由美国政府雇员在他们的就业过程,那么改进就在于公共领域。然而,整体而言,改进后的版本仍然是由GNU GPL覆盖。在这种情况下没有问题。

如果美国政府使用承包商来完成这项工作,那么改进本身可以由GPL覆盖。

GPL有不同的要求吗对于静态链接模块与动态链接模块工作?(#GPL静态与动态)

否。将GPL覆盖的工作静态或动态链接到其他模块正在基于涵盖的GPL进行组合工作工作。因此,GNU通用公共许可证的条款和条件覆盖整个组合。请参见如果我使用GPL软件与GPL不兼容的库?

LGPL是否有不同的要求对于静态链接模块与动态链接模块工作?(#LGPL静态Vs动态)

为了遵守LGPL(任何现存的版本:v2、v2.1或v3):

(1) 如果静态链接到LGPLed库,则必须也在对象中提供应用程序(不一定是源)格式,以便用户有机会修改库和重新链接应用程序。

(2) 如果动态链接到LGPLed库已经出现在用户的计算机上,你不需要传达图书馆的来源。另一方面,如果您自己传递可执行文件LGPLed库以及您的应用程序,无论是否与链接无论是静态的还是动态的,都必须传递库的源代码,LGPL提供的其中一种方式。

有什么办法吗我可以GPL人们使用我的程序得到的输出吗?例如,如果我的程序用于开发硬件设计,我可以要求吗这些设计必须是免费的吗?(#GPL输出)

一般来说,这在法律上是不可能的;版权法没有给你在使用人们从使用的数据中获得的输出时有任何发言权您的程序。如果用户使用您的程序输入或转换她自己的数据,输出的版权属于她,而不是你。更多通常,当程序将其输入转换为其他形式时,输出的版权状态继承了原来的输入的版权状态由生成。

因此,您在使用输出时唯一有发言权的方式是:输出的大部分内容都是从中的文本复制的(或多或少)您的程序。例如,野牛的部分输出(见上文)如果我们没有在这个特殊的案例。

你可以人为地让程序将某些文本复制到它的即使没有技术理由这样做复制的文本没有实际用途,用户只需删除从输出中提取文本,然后只使用其余部分。那么他就不会必须遵守复制文本重新分发的条件。

在什么情况下是GPL的输出GPL也涵盖的计划?(#案例输出GPL)

一般来说,程序的输出不在版权范围内程序代码。所以程序代码的许可不适用于输出,无论您将其通过管道传输到文件中屏幕截图、屏幕广播或视频。

例外情况是程序显示全屏来自程序的文本和/或艺术。然后该文本和/或艺术的版权涵盖了输出。程序输出的音频,例如视频游戏,也适合于此例外。

如果艺术/音乐属于GPL,则当您无论你如何复制,都要复制。然而,合理使用可能仍然适用。

请记住,某些程序,尤其是视频游戏,可以独立于底层GPLed授权的艺术品/音频游戏。在这种情况下,艺术品/音频的许可证将规定可能发生视频/流的术语。另请参见:我能用GPL做点什么吗除了软件?

如果我向GPL覆盖的程序添加模块,我必须使用GPL作为模块的许可证吗?(#GPL模块许可证)

GPL表示必须发布整个合并程序根据GPL。因此,您的模块必须可以在GPL。

但是您可以为代码的使用提供额外的权限。如果您愿意,可以使用更宽松的许可证发布模块与GPL相比,但与GPL兼容。这个许可证列表页给出一个部分GPL兼容许可证列表。

如果库是根据GPL发布的(不是LGPL),这是否意味着任何使用它的软件必须使用GPL或与GPL兼容的许可证?(#IfLibraryIsGPL)

是的,因为程序实际上链接到了库。像这样的,GPL的条款适用于整个组合。软件模块与库的链接可能在各种GPL兼容许可下,但整体作品必须获得GPL许可。另请参见:许可证是什么意思“与GPL兼容”?

如果是编程语言解释器是根据GPL发布的,这是否意味着要它必须在GPL兼容许可证下进行解释?(#If口译员IsGPL)

当口译员只翻译一种语言时,答案是否定的解释程序对解释器来说只是数据;自由软件基于版权法的GPL等许可证不能限制您的数据在上使用解释器。您可以在任何数据上运行它(解释程序),任何方式都可以,并且没有关于授权该数据的要求给任何人。

然而,当口译员扩展到提供与其他设施的“绑定”(通常,但不一定,库),解释的程序有效地链接到设施它通过这些绑定使用。所以如果这些设施在GPL,使用它们的解释程序必须在GPL兼容方式。JNI或Java本机接口就是这样一个例子约束机制;以这种方式访问的库是链接的使用调用它们的Java程序进行动态调用。这些库是也与口译员联系在一起。如果解释器是静态链接的使用这些库,或者如果它被设计为与这些特定的图书馆,那么它也需要在GPL兼容版本中发布方式。

另一个类似且非常常见的情况是为库提供口译员本身被解释。例如,Perl附带了许多Perl模块,并附带了一个Java实现许多Java类。这些库和调用它们的程序始终动态链接在一起。

结果是,如果您选择使用GPLed Perl模块或Java类,则必须在GPL兼容方式,无论Perl或Java中使用的许可证是什么运行组合Perl或Java程序的解释器。

我正在用编写Windows应用程序Microsoft Visual C++(或Visual Basic),我将发布它根据GPL。正在将我的程序与VisualGPL允许C++(或Visual Basic)运行库吗?(#Windows运行时和GPL)

您可以将程序链接到这些库,并分发将编译好的程序发送给其他人。执行此操作时,运行时库是GPLv3定义的“系统库”。这意味着你不需要担心包括他们的来源使用程序的相应源代码。GPLv2提供了类似的第3节中的例外。

您不能使用程序。防止肆无忌惮的分销商试图使用系统库异常是一个漏洞,GPL表示库只能作为系统库,只要它们不是与程序本身一起分发。如果您使用程序,他们将不再符合此例外条件;然后遵守GPL的唯一方法是提供其来源代码,您无法执行此操作。

可以编写只在Windows上运行的免费程序,但是这不是一个好主意。这些程序将是被捕获的“由Windows,因此对自由世界的贡献为零。

为什么是原始BSD许可证与GPL不兼容?(#原始BSD)

因为它强加了GPL中没有的特定要求;即,对节目广告的要求。GPLv2第6节状态:

您不得对接收人行使此处授予的权利。

GPLv3在第10节中也有类似的说法。广告条款提供了进一步的限制,因此与GPL不兼容。

修订后的BSD许可证没有广告条款消除了问题。

什么时候程序及其插件被视为单个组合程序?(#GPL插件)

这取决于主程序如何调用其插件。如果主程序使用fork和exec调用插件,它们建立通过共享复杂的数据结构或运输进行亲密沟通复杂的数据结构来回转换,使它们成为一个单一的组合程序。一个使用简单fork和exec的主程序调用插件并且不在它们导致插件成为一个单独的程序。

如果主程序动态链接插件我们认为,函数相互调用并共享数据结构它们形成一个单一的组合程序,必须将其视为主程序和插件的扩展。如果主程序动态链接插件,但它们之间的通信仅限于调用插件的“main”函数有了一些选择并等待它回来,这是一个边界案例。

使用共享内存与复杂数据结构通信是相当于动态链接。

如果我编写一个插件来使用GPL覆盖的程序,这对我可以获得的许可证有什么要求用于分发我的插件?(#GPL和插件)

请看这个问题用于确定何时插件和主程序被视为单个组合程序当它们被视为单独的工程时.

如果主程序和插件是单个组合程序,则这意味着您必须在GPL或与GPL兼容的免费环境下许可该插件软件许可证,并将其与符合GPL的源代码一起分发方式。与插件分离的主程序不会插件的要求。

我可以申请为非自由程序编写插件时使用GPL?(#GPL插件输入NF)

请看这个问题用于确定何时插件和主程序被视为单个组合程序当它们被视为单独的程序时.

如果它们形成单一组合计划,这意味着GPL的组合涵盖带有非自由主程序的插件会违反GPL。然而,您可以通过在您的插件的许可证,允许将其与非自由主程序。

另请参阅问题我是编写使用非自由库的自由软件。

我可以发布非免费程序吗设计用于加载GPL覆盖的插件?(#NFUseGPL插件)

请看这个问题用于确定何时插件和主程序被视为单个组合程序当它们被视为单独的程序时.

如果它们形成一个单一的组合程序,那么主程序必须在GPL或与GPL兼容的免费版本下发布软件许可,并且在以下情况下必须遵守GPL的条款主程序是为与这些插件一起使用而发布的。

然而,如果它们是单独的工作,那么插件的许可证对主程序没有要求。

另请参阅问题我是编写使用非自由库的自由软件。

你有一个我喜欢的GPL项目与我的代码链接以构建专有程序。事实上我链接到你的程序意味着我必须GPL我的程序?(#与GPL链接)

不完全是。这意味着您必须根据许可证发布程序与GPL兼容(更准确地说,与一个或多个GPL兼容所有其他代码在您的组合中接受的版本链接)。然后在这些GPL下可以使用组合本身版本。

如果有,有吗我有可能获得你的GPL项目的许可证吗?(#切换到LGPL)

你可以问,但大多数作者会坚定地说不。GPL的理念是,如果您想在您的程序,你的程序也必须是自由软件。应该是这样的向你施加压力,以使你的程序它是我们社区的一部分。

您总是可以合法选择不使用我们的代码。

分发非免费驱动程序意味着与内核Linux链接违反了GPL?(#非自由驱动内核Linux)

Linux(GNU/Linux操作系统中的内核)是分布式的在GNU GPL版本2下。分发非自由驱动程序是否意味着与Linux的链接违反了GPL?

是的,这是一种违反,因为实际上这会使组合工作。用户被期望放置工件的事实一起不会真正改变什么。

Linux的每一位贡献者都拥有代码可以强制执行GPL,我们鼓励他们每个人针对那些分发非免费Linux驱动程序的人采取的行动。

如何允许链接在受控的仅接口?(#链接OverControlledInterface)

将此文本添加到包中每个文件的许可证通知中,地址为文本的末尾表示该文件是在GNU下分发的GPL:

以静态或动态方式将ABC与其他模块链接基于ABC的组合工作。因此,GNU的条款和条件通用公共许可涵盖整个组合。

作为一个特殊的例外,ABC的版权所有者您允许将ABC程序与自由软件程序结合,或在GNU LGPL下发布的库仅通过ABCDEF界面与ABC通信的模块。您可以按照为ABC提供的GNU GPL和其他相关代码的许可证当并作为如果您不修改ABCDEF界面,GNU GPL需要分发源代码。

请注意,制作ABC修改版本的人员没有义务为其修改版本授予此特殊例外;它是他们选择是否这样做。GNU通用公共许可证赋予无此例外情况下发布修改版本的权限;例外还可以发布修改后的版本结转此异常。如果修改ABCDEF界面,此例外情况不适用于您修改后的ABC版本,并且您在分发修改的版本。

此例外情况是根据GNU通用公共许可证,版本3(“GPLv3”)

此异常允许与不同许可的模块链接通过指定的界面(“ABCDEF”),同时确保用户仍然会像往常一样收到源代码根据GPL。

只有程序的版权所有者可以合法授权例外。如果你自己编写了整个程序,那么假设你的雇主或学校不主张版权,你是版权持有人,以便您可以授权例外情况。但如果你想使用零件对于代码中其他作者使用的其他GPL覆盖的程序,您不能为他们授权例外。您必须获得这些程序的版权所有者。

我编写了一个链接有许多不同的组件,它们具有不同的许可证。我是对于我的程序。你能告诉我我可以使用什么许可证吗?(#许多不同的许可证)

要回答这个问题,我们需要查看每个组件的列表您的程序使用的,该组件的许可,以及一个简短的(a用几句话描述你的图书馆使用该组件。两个例子是:

  • 要使我的软件工作,它必须链接到FOO库,可在Lesser GPL下使用。
  • 我的软件进行系统调用(使用我构建的命令行)使用允许与QUUX链接的特殊例外”。
What is the difference between an“聚合”和其他类型的“修改版本”?(#合并汇总)

“聚合”由多个单独的程序组成,在同一CD-ROM或其他介质上一起分发。GPL允许您可以创建和分发聚合,即使其他软件是非免费的或与GPL不兼容的。唯一的条件是您不能根据禁止用户的许可证发布聚合行使每个程序的个人许可证将授予他们。

两个独立程序和一个程序与两个程序之间的界限在哪里部分?这是一个法律问题,最终由法官决定。我们认为适当的标准取决于通信(exec、管道、rpc、共享地址内的函数调用空间等)和通信的语义(什么样的信息交换)。

如果模块包含在同一个可执行文件中,则它们是绝对是在一个程序中组合的。如果模块设计为运行在共享地址空间中链接在一起,这几乎肯定意味着将它们组合成一个程序。

相比之下,管道、套接字和命令行参数是通常在两个独立程序之间使用的通信机制。因此,当它们用于通信时,模块通常是单独的程序。但如果通信的语义是足够亲密,交换复杂的内部数据结构可以作为考虑将这两部分合并为一个更大的程序。

当涉及到确定无论两个软件组成一个作品,事实是代码在一个或多个容器中有什么影响?(#聚合容器)

不,他们是否是单个工作或骨料容器的参与没有改变。

为什么FSF要求FSF版权项目的贡献者分配FSF的版权?如果我拥有GPLed程序的版权,应该我也这么做?如果是,怎么做?(#转让版权)

我们的律师告诉我们执行GPL的最佳位置在对违规者的诉讼中,我们应该保持程序尽可能简单。我们通过询问每个贡献者来做到这一点将贡献的版权转让给FSF,或放弃对稿件的版权。

我们还要求个人贡献者从他们的雇主(如果有的话),这样我们就可以确信这些雇主不会声称拥有捐款。

当然,如果所有贡献者都公开他们的代码域,没有版权来执行GPL。所以我们鼓励人们分配大型代码贡献的版权,以及只在公共领域做一些小改动。

如果你想努力在你的程序上强制执行GPL遵循类似的政策可能是个好主意。拜托接触<licensing@gnu.org>如果你需要更多信息。

我可以修改GPL吗并制作修改后的许可证?(#修改GPL)

可以修改GPL版本,但往往会产生实际后果。

您可以在另一个许可证中合法使用GPL条款(可能已修改)前提是你用另一个名字称呼你的许可证,并且不包括GPL前导码,并提供您修改指令以在结尾足以让它在措辞上明显不同,更不用提了GNU(尽管您描述的实际过程可能类似)。

如果您想在修改后的许可证中使用我们的前言,请写信<licensing@gnu.org>以获得许可。为此,我们想检查实际许可证要求,看看我们是否批准。

虽然我们不会对您修改以这种方式许可,我们希望您三思而后行。这样修改后的许可证几乎可以肯定与GNU GPL不兼容和不兼容块模块的有用组合。仅仅是差异的扩散自由软件许可证本身就是一种负担。

请使用异常机制,而不是修改GPL由GPL版本3提供。

如果我使用在GNU GPL下获得的一个软件,我是吗允许将原始代码修改为新程序,然后在商业上分发和销售新程序?(#GPL商业)

您可以在商业上出售修改后程序的副本,但仅根据GNU GPL的条款。因此,例如,您必须将源代码作为必须允许他们重新分配按照GPL中的描述修改它。

这些要求是包括GPL的条件您在自己的程序中收到的代码。

我可以将GPL用于其他用途吗软件?(#GPLOtherThan软件)

你可以将GPL应用于任何类型的工作,只要它是明确的什么构成了作品的“源代码”。GPL将其定义为进行更改的首选工作形式它。

然而,对于手册和教科书,或更普遍的任何类型的工作这意味着教授一门学科,我们建议使用GFDL,而不是而不是GPL。

LGPL如何与Java一起工作?(#LGPLJava公司)

有关详细信息,请参阅本文。它按设计、预期和预期工作。

考虑这种情况:1) X在GPL下发布项目的V1。2) Y通过更改和新代码为V2的开发做出贡献基于V1。3) X希望将V2转换为非GPL许可证。X需要Y的许可吗?(#考虑)

对。Y被要求在GNU GPL下发布其版本,作为基于X版本V1。无需Y同意其代码的任何其他许可。因此,X必须得到Y在另一个许可证下发布该代码之前。

我想加入涵盖的GPL我的专有系统中的软件。我没有使用权限除了GPL给我的软件。我可以这样做吗?(#GPL专利系统)

您不能将GPL覆盖的软件合并到专有系统中。GPL的目标是授予每个人复制的自由,重新发布、理解和修改程序。如果可以的话将GPL覆盖的软件整合到非免费系统中使GPL覆盖的软件非免费的影响。

包含GPL覆盖程序的系统是那个节目。GPL表示,该程序的任何扩展版本如果完全发布,则必须根据GPL发布。这是为了两个原因:确保获得软件的用户能够他们应该拥有的自由,并鼓励人们回馈他们做出的改进。

然而,在许多情况下,您可以分发GPL覆盖的软件与您的专有系统一起使用。要有效地做到这一点,您必须确保免费和非免费程序的通信是公平的,它们不会以某种方式组合在一起有效地执行单个程序。

这与“合并”GPL之间的区别软件部分是实质问题,部分是形式问题部分原因是:如果这两个程序结合在一起实际上是一个程序的两个部分,那么你就不能把它们当作两个单独的程序。所以GPL必须涵盖整个事情。

如果两个程序保持良好的分离,如编译器和内核,或者类似于编辑器和shell,那么可以将它们视为两个单独的程序,但你必须正确地进行。问题是简单的形式之一:你如何描述你正在做的事情。为什么我们要关心这个吗?因为我们想确保用户清楚了解GPL涵盖的软件在收藏。

如果人们要发布GPL覆盖的软件,请调用它用户知道的系统的“一部分”是专有的,用户可能不确定他们对GPL覆盖的软件。但如果他们知道他们收到的是一个免费程序加上另一个程序,并肩进行,他们的权利将是清除。

GPL不适合我们的项目制作专有软件。你会吗为我们破例吗?这将意味着该程序的更多用户。(#WillYouMake例外)

对不起,我们不例外。这是不对的。

最大化用户数量不是我们的目标。相反,我们正在尝试为尽可能多的用户提供关键的自由。一般来说,专有软件项目阻碍而不是帮助自由事业。

我们偶尔会做出许可例外来帮助一个项目正在GPL以外的许可证下生产自由软件。然而,我们必须看到一个很好的理由,为什么这将推进事业自由软件。

我们有时也会更改包的分发条款这显然是为自由软件事业服务的正确方式;但我们对此非常谨慎,所以您必须向我们展示令人信服的理由。

我想将GPL涵盖的软件纳入我的专有系统。我可以通过放一个“包装器”来实现吗模块,在GPL兼容的lax许可证下(例如X11许可)介于GPL覆盖部分和专有部分之间?(#GPL说唱歌手)

否。X11许可证与GPL兼容,因此您可以添加GPL覆盖程序的模块,并将其置于X11许可证下。但如果你要将两者合并到一个更大的程序中整体将包括GPL覆盖的部分,因此必须得到许可的作为一个整体在GNU GPL下。

专有模块A与GPL通信的事实仅通过X11许可的模块B的模块C在法律上无关;重要的是模块C包含在整体中。

我在哪里可以了解更多关于GCC的信息运行库异常?(#LibGCC异常)

GCC运行库异常包括libgcc、libstdc++、,libfortran、libgomp、libdecnumber和其他分布式库与GCC合作。例外是允许人们分发根据GCC的选择编译程序,即使在这些库的一部分包含在可执行文件中,作为编译过程。要了解更多信息,请阅读我们的GCC常见问题解答运行库异常.

我想去修改GPL覆盖的程序并将其与可移植性联系起来Money Guzzler Inc.的库我无法发布源代码对于这些库,因此任何想要更改这些版本的用户必须单独获取这些库。为什么GPL允许吗?(#MoneyGuzzler公司)

这有两个原因。首先,是一般性的。如果我们允许A公司文件,B公司将分发与这个文件的效果是在GPL上留下一个足够大的洞开卡车过去。这将是全权代扣对的各种修改和扩展的源代码GPL覆盖的软件。

让所有用户都能访问源代码是我们的主要目标之一,因此,这种后果肯定是我们要避免的。

更具体地说,与Money相关的程序版本Guzzler库不会像我们所理解的那样是真正的免费软件术语“they”不会提供支持用户的完整源代码更改并重新编译程序。

如果模块Q的许可证具有与GPL不兼容的要求,但该要求仅适用于Q自身分布的情况,而不适用于Q包含在一个较大的程序中,这是否意味着许可证GPL兼容?我可以将Q与GPL覆盖的程序结合或链接吗?(#GPL不兼容单独)

如果程序P根据GPL发布,则意味着它*可以在GPL下使用。如果集成模块Q,并释放GPL下的组合程序P+Q,这意味着可以使用P+Q的任何部分根据GPL。P+Q的一部分是Q。所以根据GPL发布P+Q表示Q的任何部分都可以在GPL下使用。把它放在其他words,在GPL下获得P+Q的用户可以删除P,因此只有Q仍然在GPL下。

如果模块Q的许可证允许您对此进行许可,那么它是GPL兼容的。否则,它与GPL不兼容。

如果Q的许可证明确表示您必须确定当你自己重新发布Q时,那么它不允许您在GPL下发布Q。由此可见你也不能在GPL下发布P+Q。所以你不能链接或组合P带Q。

我可以发布修改过的吗GPL覆盖程序的二进制版本?(#修改的JustBinary)

不。GPL的全部意义在于所有修改过的版本必须是自由软件-其中特别是指修改版本的源代码是对用户可用。

只从网上下载了二进制文件。如果我分发副本,我必须获取源代码并将其分发吗?(#未更改的JustBinary)

对。一般规则是,如果分发二进制文件,则必须分发完整的相应源代码。案例的例外您收到的源代码书面报价非常有限。

我想分发二进制文件通过物理媒体而不附带源。我能提供吗FTP源代码?(#通过Internet上的源进行分发)

GPL版本3允许这样做;有关详细信息,请参阅选项6(b)。在版本2下,您当然可以通过FTP免费提供源代码,而且大多数用户将从那里获得它。然而,如果他们中的任何人愿意获得通过邮件发送到物理媒体上的源,您需要提供。

如果您通过FTP分发二进制文件,您应该通过以下方式分发源代码资金转移定价。

我朋友有GPL保险二进制文件提供了源代码,并为我制作了一份副本。我可以自己使用报价来获取来源吗?(#重新分发二进制文件获取源)

是的,你可以。报价必须向所有有副本的人开放它所伴随的二进制文件。这就是为什么GPL说你朋友必须给你一份报价副本以及二进制-这样你就可以利用它。

我可以把二进制文件放在我的Internet服务器并将源放在不同的Internet站点上?(#不同站点上的源和二进制文件)

对。第6(d)条允许这样做。但是,您必须提供人们可以遵循明确的指示来获取来源,而你必须注意确保源仍然可用于只要你分发目标代码。

我想分发一个扩展二进制形式的GPL覆盖程序的版本。是否足以分发原始版本的源代码?(#分布式扩展二进制)

不,您必须提供与二进制文件对应的源代码。对应源是指用户可以从中重建相同的二进制文件。

自由软件的部分理念是用户应该能够访问的源代码他们使用的程序。使用您的版本的用户应该可以访问您版本的源代码。

GPL的一个主要目标是通过确保对免费程序的改进本身就是免费的。如果你发布GPL覆盖程序的改进版本,您必须发布GPL下改进的源代码。

我想分发二进制文件,但分发完整的源代码很不方便。如果可以的话我为用户提供了与“标准”版本的差异,以及二进制文件?(#分发源不方便)

这是一个善意的请求,但这种提供source并没有真正完成这项工作。

一年后需要源的用户可能无法获得当时来自其他站点的正确版本。标准分发站点可能有更新的版本,但存在相同的差异可能无法使用该版本。

因此,您需要提供完整的来源,而不仅仅是diffs二进制文件。

我可以使用二进制文件吗在网络服务器上,但只向订购源的人发送源?(#AnonFTP和发送源)

如果您在网络服务器上提供了对象代码,那么您已经在网络服务器上提供相应的源。最简单的方法是将它们发布在同一个服务器,但如果您愿意,也可以提供从另一个服务器或甚至从版本控制系统。无论发生什么确实如此,源应该和对象一样容易访问不过是代码。这都在GPLv3第6(d)节中规定。

您提供的源必须与二进制文件完全对应。特别是,您必须确保它们用于相同版本的该程序不是旧版本,也不是新版本。

我如何确保每个下载二进制文件的用户也会获得源代码?(#如何IMakeSureEachDownloadGetsSource)

你不必确定这一点。只要你找到来源和可用的二进制文件,以便用户可以查看可用的内容并获取他们想要的,你已经做了要求你做的。这取决于用户是否下载源代码。

我们对再保险商的要求旨在确保用户可以获取源代码,而不是强制用户下载即使他们不需要源代码。

GPL是否要求我要提供源代码,这些源代码可以构建为与我正在分发的二进制文件的散列?(#MustSourceBuildToMatchExactHashOf二进制)

完整的对应源是指二进制文件是由生成的,但这并不意味着您的工具必须是能够生成一个二进制文件,它是您当前二进制文件的精确散列分发。在某些情况下,构建源文件中的二进制文件,以及正在分发的二进制文件的精确散列-考虑以下示例:系统可能会放置时间戳二进制文件;或者程序可能是针对不同的(甚至未发布)编译器版本。

一家公司正在网站上运行GPLed程序的修改版本。GPL是否表示必须发布修改后的源代码?(#未释放的模式)

GPL允许任何人制作修改版本并在没有把它分发给别人。这家公司正在做的事很特别就是这样。因此,公司不必发布修改的来源。当修改程序时,情况有所不同根据GNU Affero GPL公司.

将此与网站包含或链接到的情况进行比较单独的GPLed程序,当它们访问网站(通常是用JavaScript脚本,但其他语言也被使用)。在这种情况下正在分发的程序必须在GPL的条款。

一家公司正在运行一个修改过的根据GNU Affero GPL(AGPL)在网站。AGPL是否表示必须发布修改后的来源?(#未释放的模式AGPL)

这个GNU Affero GPL公司要求软件的修改版本向所有用户提供通过计算机网络与它交互来源。公司正在做的事情属于这一含义,因此公司必须发布修改后的源代码。

正在制作和使用多个副本在一个组织或公司内“分配”?(#内部分发)

不,在这种情况下,组织只是为本身。因此,公司或其他组织可以发展修改后的版本并通过自己的版本安装该版本设施,而不允许员工发布修改后的版本对外发布。

但是,当组织将副本转移到其他组织时或个人,即分配。特别是,提供副本供承包商在场外使用的是配送。

如果有人偷窃包含GPL覆盖程序版本的CD,GPL是否给小偷重新发布那个版本的权利?(#被盗拷贝)

如果该版本已在其他地方发布,那么小偷可能确实有权复制并重新分发但如果窃贼因偷窃CD而入狱,他们可能必须等到获释后才能这样做。

如果有问题的版本未发布,并且公司考虑了该版本成为其商业秘密,然后发布可能违反贸易秘密法,视其他情况而定。GPL不变那个。如果该公司试图发布其版本,但仍对其进行处理作为商业秘密,这将违反GPL,但如果公司尚未发布此版本,未发生此类违规。

如果公司分发其他一些开发者的GPL对我来说是商业秘密吗?(#商业机密发布)

该公司违反了GPL,将不得不停止分销该程序的。注意这与上述盗窃案的不同之处;这个如果副本是被盗,所以在这种情况下,公司没有违反GPL。

如果公司分发副本怎么办它自己的GPL覆盖的工作作为商业秘密给我?(#商业机密发布2)

如果分发的程序没有包含任何其他人的GPL涵盖的工作,则公司没有违反GPL(参见GPL的开发者是否覆盖受GPL约束的程序?“了解更多信息)。但确实如此对你能用它做什么做两个矛盾的陈述程序:你可以重新分配它,但你不能。它会要求澄清使用该程序的条款是有意义的在你接受副本之前。

为什么有些GNU库是在普通GPL而不是较低的GPL?(#WhySomeGPL和NotLGPL)

对任何特定的库使用Lesser GPL都是一种退步免费软件。这意味着我们部分放弃了维护用户的自由,以及共享内容的一些要求构建在GPL覆盖的软件之上。它们本身就是更糟糕的变化。

有时,局部撤退是一个好策略。有时,使用库的LGPL可能会导致该库的广泛使用,以及从而对其进行更多改进,更广泛地支持自由软件,以及以此类推。如果发生在大型软件上,这可能对自由软件有好处范围。但这会发生多少呢?我们只能推测。

最好在每个库上试用一下LGPL,请参阅如果LGPL没有帮助,则改回GPL。但这是不可行的。一旦我们将LGPL用于特定图书馆,换回来很困难。

因此,我们根据具体情况决定每个库使用哪个许可证基础。有一个长的解释我们如何判断这个问题。

为什么程序应该说“GPL的第3版或任何更高版本”?(#版本三或更高)

每隔几年,我们会不时地改变GPL有时用于澄清,有时用于允许某些类型的使用以前不允许,有时为了加强要求。最后两次变更发生在2007年和1991年。)每个程序中的“指针”使我们可以更改当我们更新时,整个GNU软件集合的分发条款GPL。

如果每个程序都缺少间接指针,我们将被迫与众多版权所有者详细讨论这一变化实际上是不可能的。实际上,拥有制服的机会GNU软件的发行条款为零。

假设程序显示“GPL版本3或更高版本版本”,并发布了GPL的新版本。如果新GPL版本提供了附加权限,该权限将可用立即发送给程序的所有用户。但如果新的GPL版本有更严格的要求,它不会限制当前版本的使用因为它仍然可以在GPL版本3下使用。程序显示“GPL版本3或任何更高版本”,用户根据GPL版本3的条款,即使在GPL的更高版本之后可用。

如果不需要遵守新版GPL中更严格的要求对于现有的软件,它有何用处?一旦GPL版本4可用,大多数GPL覆盖程序的开发人员将发布指定“GPL版本4或任何更高版本”。然后用户将不得不遵循更严格的要求GPL版本4中的要求,适用于程序的后续版本。

然而,开发人员没有义务这样做;开发人员可以继续允许使用以前版本的GPL,如果这是他们的偏爱。

使用许可证说明是个好主意吗某个程序只能在最新版本下使用GNU GPL的?(#仅限最新版本)

你不应该这样做的原因是它可能会导致一些自动撤回用户的某些权限之前有过。

假设2000年在“最新GPL”下发布了一个程序版本”。当时,人们可以在GPLv2下使用它。2007年我们发布GPLv3的那天,每个人都会突然被迫在GPLv3下使用它。

一些用户甚至可能不知道GPL版本3,但他们会被要求使用它。他们可能违反了程序的许可证只是因为他们没有获得新闻。这是一种不好的对待人的方式。

我们认为收回已经授予的权限是错误的,除非是因为违规。如果你的自由可以被取消,那么并不是真正的自由。因此,如果您获得程序版本的副本在一个版本的许可下,您应该总是拥有该版本许可证授予的权利。在下发布“GPL版本N或任何更高版本”支持原则。

你为什么不使用GPL作为手册?(#手册的WhyNotGPL)

可以将GPL用于手册,但GNU Free文档许可证(GFDL)更适合于手册。

GPL是为程序设计的;它包含许多复杂的子句这对项目来说至关重要,但这会很麻烦,而且对于一本书或手册来说是不必要的。例如,任何发布纸质书必须包含机器可读的“源代码”代码”,或提供书面的提供稍后发送“源代码”。

与此同时,GFDL有条款帮助免费手册的出版商例如,通过销售复印文本获利。这个背书部分的特殊规则使得可以使用官方标准的GFDL。这将允许修改版本,但它们不能被贴上“标准”的标签。

使用GFDL,我们允许对手册的文本进行更改,包括它的技术主题。能够改变技术部分,因为改变程序的人应该改变相应的文档。这样做的自由是道德要求。

我们的手册还包括说明我们政治立场的章节关于自由软件。我们将这些标记为“不变”,以便它们无法更改或删除。GFDL对此作出了规定“不变截面”。

GPL如何应用于字体?(#字体异常)

字体许可是一个需要认真对待的复杂问题对价。以下许可例外是实验性的,但批准用于一般用途。我们欢迎对此提出建议主题-请看这个解释性的散文并写信给licensing@gnu.org.

要使用此例外,请将此文本添加到每个文件(尽可能),在文本末尾表示该文件是在GNU GPL下分发的:

作为一个特殊的例外,如果您创建的文档使用此字体,并将此字体或此字体未更改的部分嵌入到文档,此字体本身不会导致GNU通用公共许可证涵盖的文件。这个但是,异常并不会使任何其他原因无效文件可能包含在GNU通用公共许可证中。如果你修改此字体,您可以将此例外扩展到您的字体,但您没有义务这样做。如果您不希望这样做,从您的版本中删除此异常语句。

我正在编写网站维护系统(称为“内容管理系统“通过一些),或其他应用程序从模板生成网页。我应该使用什么许可证那些模板?(#世界气象组织)

模板太小,不值得使用copyleft保护他们。在次要作品上使用版权通常是无害的,但模板是一种特殊情况,因为它们与数据相结合由应用程序和组合的用户提供分布式。因此,我们建议您根据简单的许可条款。

一些模板调用JavaScript函数。Javascript通常是非平凡的,它值得复制。因为模板将与用户数据相结合模板+用户数据+JavaScript将被视为版权法。需要在JavaScript之间画一条线(copylefted)和用户代码(通常使用不兼容的术语)。

上述内容的示意图

下面是JavaScript代码的一个例外:

作为GPL的一个特殊例外,任何HTML文件仅对此代码进行函数调用,为此目的包括它通过引用应被视为版权法的独立作品目的。此外,此代码的版权所有者向您提供允许将此代码与根据GNU LGPL发布。您可以复制和分发这样的系统遵循此代码的GNU GPL和库。如果修改此代码,可以将此异常扩展到您的代码版本,但您没有义务这样做。如果您这样做了如果不希望这样做,请从您的版本中删除此异常语句。

我可以释放吗我用非自由工具开发的GPL下的程序?(#非自由工具)

您使用哪些程序来编辑或编译源代码,或者研究或记录通常对问题没有影响关于源代码的许可。

然而,如果您将非自由库与源代码链接这将是你需要解决的问题。这并不排除在GPL下发布源代码,但如果库没有符合“系统库”例外,您应该附加一个明确的通知,允许您将程序链接到他们。关于使用的常见问题解答条目GPL不兼容的库提供了有关的详细信息如何做到这一点。

有翻译吗将GPL转换为其他语言?(#GPL翻译)

将GPL翻译成各种语言是很有用的非英语。人们甚至编写了翻译并发送了但我们不敢正式批准有效。这风险如此之大,我们不敢接受。

法律文件在某些方面就像一个程序。翻译就是比如将程序从一种语言和操作系统翻译为另一个。只有精通两种语言的律师才能做到这一点,甚至然后,存在引入错误的风险。

如果我们正式批准GPL的翻译,我们会允许每个人做翻译所说的任何事情可以。如果这是一个完全准确的翻译,那就好了。但如果翻译中有错误,结果可能是我们无法修复的灾难。

如果一个程序有错误,我们可以发布一个新版本,最终旧版本或多或少会消失。但一旦我们给予每个人都允许按照特定的翻译行事,我们如果我们稍后发现,无法收回许可它有一个bug。

乐于助人的人有时会主动为我们做翻译工作。如果问题是找人做这项工作会解决问题。但实际问题是出错的风险,以及主动提出做这项工作并不能避免风险。我们不能可能授权非律师撰写的翻译。

因此,我们暂时不批准翻译GPL的全局有效且具有约束力。相反,我们正在做两件事东西:

  • 向人们推荐非官方翻译。这意味着我们允许人们编写GPL的翻译,但我们不认为它们具有法律效力和约束力。

    未经批准的翻译没有法律效力,应该这样说明确地。应标记如下:

    GPL的翻译是非正式的,未经正式批准由自由软件基金会批准。完全确信在允许的情况下,请参阅原始GPL(英语)。

    但未经批准的翻译可以作为如何理解英语GPL。对于许多用户来说,这就足够了。

    然而,商业活动中使用GNU软件的企业,以及做公共ftp分发的人,应该需要检查真实的英语GPL以确保其允许的内容。

  • 出版翻译仅对单个国家有效。

    我们正在考虑出版以下翻译官方只对一个国家有效。这样,如果有错误只限于那个国家,损失不会太大。

    这仍然需要来自同情者的大量专业知识和努力和有能力的律师翻译,所以我们不能保证这样的翻译很快就会出现。

如果编程语言解释器具有与GPL不兼容的许可证,我可以运行GPL覆盖的吗上面的程序?(#口译员不兼容)

当口译员只解释一种语言时,答案是肯定的。对于解释器来说,被解释的程序只是数据;GPL不限制您使用什么工具处理程序。

然而,当口译员扩展到提供与其他设施的“绑定”(通常但不一定,库),解释的程序有效地链接到设施它通过这些绑定使用。JNI或Java本机接口是此类设施的示例;以这种方式访问的库包括与调用它们的Java程序动态链接。

因此,如果这些设施是根据不兼容GPL的许可证发布的,这种情况就像以任何其他方式与GPL不兼容的链接库。这意味着:

  1. 如果您正在编写代码并在GPL下发布它,您可以声明一个显式异常,允许将其与与GPL不兼容的设施。
  2. 如果你根据GPL编写并发布了程序,而你专门设计用于这些设施,人们可以将其视为隐式异常,允许他们将其与这些设施。但如果这是你的意图,那就更好了这么明确地说。
  3. 你不能拿别人的GPL覆盖的代码来使用它方式,或添加此类例外。只有版权所有者代码可以添加异常。
谁有权执行GPL?(#谁拥有权力)

由于GPL是一种版权许可软件是那些有权执行GPL的软件。如果如果您发现违反了GPL,您应该通知开发人员涉及GPL覆盖的软件。它们要么是版权持有人,或与版权有关持有人。了解有关报告GPL的更多信息违规行为。

在诸如Java之类的面向对象语言中,如果我使用一个GPLed类而不进行修改,并将其子类化,GPL以什么方式影响更大的程序?(#OOP标签)

子类是创建派生作品。因此GPL会影响整个程序,在这个程序中,您可以创建GPLed的子类类。

如果我将程序移植到GNU/Linux,这意味着我必须在GPL下以自由软件的形式发布它吗或其他自由软件许可证?(#端口程序到GPL)

一般来说,答案是否定的——这不是法律要求。具体来说,答案取决于您想使用哪些库以及什么他们的执照是。大多数系统库要么使用GNU较低GPL,或使用GNU GPL加上允许将库与任何内容链接的异常。这些库可以在非自由程序中使用;但就较小的GPL而言有一些你必须遵守的要求。

一些库仅在GNU GPL下发布;您必须使用使用这些库的GPL兼容许可证。但这些都是正常的更专业的图书馆,你不会有太多就像他们在另一个平台上一样,所以你可能找不到自己希望使用这些库进行简单的移植。

当然,如果你的软件是对我们社区的贡献不自由,重视自由的人会拒绝使用自由。只有愿意放弃自由的人才会使用你的软件,这意味着它将有效地作为人们的诱因失去自由。

如果你希望有一天能回顾你的职业生涯并感受到这一点它促进了一个良好自由社会的发展,你需要使您的软件免费。

我刚发现一家公司有GPLed程序的副本,而且要花钱。他们不是吗不在互联网上提供GPL违反了GPL?(#公司GPL成本金钱)

否。GPL不要求任何人使用互联网分配。它也不要求任何人特别重新分发程序。并且(在一个特殊情况之外),即使有时确实有人决定重新发布程序,GPL并没有说他必须给你发一份特别的,或者任何特别是其他人。

GPL要求的是他必须有自由发布抄送给你如果他愿意的话一旦版权持有人这样做将程序的副本分发给某人,然后某人可以重新分发向您或任何其他人发送程序,只要他认为合适。

我可以发布一个带有许可证的程序吗说你可以在GPL下发布它的修改版本但你不能在GPL下发布原件吗?(#发布非原始)

不,这样的许可证是自我限制的。让我们看看它对我作为用户的影响。

假设我从原始版本(称为版本A)开始,添加一些代码(假设有1000行),然后发布修改过的版本(称为B)。GPL说任何人都可以改变版本B,并在GPL下发布结果。所以我(或其他人)可以删除这1000行,生成C版与版本A具有相同的代码,但在GPL下。

如果您试图阻止该路径,请在许可证中明确指出我不允许在下面复制与版本A相同的东西通过从版本B中删除这些行来创建GPL,实际上是许可证现在我说我不能完全使用版本B许可证。换句话说,许可证实际上不允许用户在GPL下发布修改后的版本,如B。

是否将副本移动到多数股权,和受控子公司构成分配?(#分销子公司)

将副本移入或移出该子公司是否构成“分配”是根据适用管辖权的版权法。GPL没有也不能凌驾于当地法律之上。美国版权法对此并不完全清楚,但似乎没有考虑这种分布。

如果在某些国家,这被视为分配,并且子公司必须获得重新分配计划的权利,这不会产生实际的影响。子公司为受母公司控制;不管有没有权利,都不会重新分配程序,除非母公司决定这样做。

软件安装人员可以问别人吗单击以同意GPL?如果我在GPL下得到一些软件,我必须同意什么吗?(#点击(ClickThrough))

一些软件打包系统有一个地方需要您点击或以其他方式表示同意GPL的条款。这既不是必需的,也不是禁止的。单击或不单击通过,GPL的规则保持不变。

仅仅同意GPL并不会给你带来任何义务。不需要同意仅使用以下软件根据GPL许可。只有修改或分发软件。如果点击真的让你感到困扰GPL,没有什么能阻止你攻击GPLed软件以绕过它这个。

我会的喜欢将GPLed软件与某种安装软件捆绑在一起。该安装程序需要GPL兼容许可证吗?(#GPL公司安装程序)

不可以。安装程序和它安装的文件是分开的。作为一个因此,GPL的条款不适用于安装软件。

GPLed软件的一些分销商需要我加入他们的EULA保护伞或作为他们下载的一部分“陈述和保证”我所在的程序美国或我打算按照相关出口管制法律。他们为什么这样做违反GPL规定的分销商义务?(#出口担保)

这并不违反GPL。那些分销商(几乎他们都是销售自由软件的商业企业发行版和相关服务)正在尝试减少自己的法律风险,而不是控制你的行为。《出口管制法》美国可以如果他们明知出口,就要承担责任软件进入某些国家或向各方提供软件他们知道会做出这样的出口。通过向他们的客户和向其分发软件的其他人如果监管部门后来要求他们保护自己当局知道他们发布的软件在哪里即将结束。他们并没有限制您可以使用软件,只会防止自己在以下方面受到指责你做什么都行。因为他们没有附加限制在软件上,它们不违反GPLv3第10节或第6节GPLv2的。

FSF反对将美国出口管制法律应用于自由贸易软件。这些法律不仅与一般法律不相容软件自由的目标,他们没有实现合理的政府目的,因为自由软件现在是而且应该永远是可从几乎每个国家的各方获得,包括国家没有出口管制法律且不参与美国主导的贸易禁运。因此,没有一个国家的政府美国出口管制法律实际上剥夺了自由软件,但没有国家公民应该被剥夺自由软件,就我们而言,不管他们政府的政策如何。FSF发布的所有GPL许可软件的副本可以从我们处获得,但未说明您的位置生活或你打算做什么。同时,FSF了解位于美国的商业分销商希望遵守美国法律。他们有权选择分发给谁自由软件的特定副本;行使该权利不会违反GPL,除非他们在这些限制之外增加合同限制GPL允许。

我能用吗如果客户这样做,设备上的GPLed软件将停止运行不继续支付订阅费?(#订阅费)

否。在这种情况下,要求继续支付费用限制用户运行程序的能力。这是一个额外的GPL之上的要求,而许可证禁止这样做。

如何从(L)GPLv2升级到(L)GPLv3?(#v3HowToUpgrade版本)

首先,在包中包含新版本的许可证。如果您在项目中使用LGPLv3,请确保包含副本GPLv3和LGPLv3,因为LGPLv2现在是作为一个集合写入的在GPLv3之上有个附加权限。

其次,替换所有现有的v2许可证通知(通常位于每个文件的顶部),并在上提供新的推荐文本GNU许可如何.它是更经得起未来考验,因为它不再包括FSF的邮政邮寄地址。

当然,任何涉及软件包的许可证也应该适当更新。

GPLv3如何使BitTorrent分发更容易?(#比特洪流)

因为GPLv2是在对等分发之前编写的软件是常见的,当您这样共享代码。确保您遵守法规的最佳方法当在BitTorrent上分发GPLv2目标代码时同一torrent中的所有对应源,即昂贵得令人望而却步。

GPLv3通过两种方式解决了这个问题。首先,那些下载此torrent并将数据发送给其他人流程不需要做任何事情。那是因为第9节表示“覆盖工作的辅助传播仅作为使用对等传输接收副本的后果同样不需要接受[许可证]。”

其次,GPLv3第6(e)节旨在提供分销商-最初播种种子的人-一个明确的通过告诉接收者源代码的位置,提供源代码的简单方法在公共网络服务器上可用。这确保了想要获得源代码就可以做到这一点,这对经销商。

什么是反言?GPLv3是如何预防的?(#提沃伊化)

一些设备使用可以升级的免费软件,但设计为不允许用户修改该软件。那里有很多不同的方法可以做到这一点;例如,有时硬件对安装的软件进行校验和,如果它与预期的签名不匹配。制造商遵守GPLv2通过给你源代码,但你仍然没有可以自由修改您正在使用的软件。我们称这种做法为提沃化。

当人们分发包含以下软件的用户产品时GPLv3第6节要求他们向您提供信息需要修改该软件。用户产品是一个专门的术语在许可证中定义;用户产品的示例包括便携式音乐播放器、数字录像机和家庭安全系统。

GPLv3是否禁止DRM?(#DRM禁止)

它不会;您可以使用在GPLv3下发布的代码来开发任何您喜欢的DRM技术。但是,如果您这样做,请参阅第3节表示该系统不会被视为有效的技术“保护”措施,即如果有人违反了DRM,她也可以自由发布她的软件,不受DMCA的阻碍以及类似的法律。

像往常一样,GNU GPL并不限制人们在软件中的行为,它只是阻止他们限制他人。

我可以使用GPL许可硬件吗?(#GPL硬件)

任何可以受版权保护的材料都可以根据GPL获得许可。GPLv3还可用于许可其他类似版权的法律,例如半导体口罩。因此,作为一个例子,您可以在GPL。

在许多情况下,版权不包括制作实物图形中的硬件。在这些情况下,您的许可证画画根本无法控制实物的制作或销售硬件,无论您使用何种许可证。当版权生效时封面制作硬件,例如带有IC掩模的GPL手柄以一种有用的方式。

我使用公钥加密将代码签名到确保其真实性。GPLv3强迫我释放是真的吗我的私人签名密钥?(#赠送钥匙)

不需要。您唯一需要释放签名密钥的时间是您在用户产品中传输了GPLed软件及其硬件检查软件之前是否有有效的加密签名将起作用。在这种特定情况下,您将被要求根据需要为设备所有人提供签名密钥并在设备上安装修改过的软件,以便运行。如果设备的每个实例都使用不同的密钥,那么您只需要给每个购买者一个该实例的密钥。

GPLv3是否要求选民能够修改投票机中运行的软件?(#v3投票机)

否。公司分销的设备包括最多需要GPLv3来提供源代码和安装向拥有软件副本的用户提供软件信息目标代码。使用投票机的选民(像其他人一样信息亭)没有得到它,甚至暂时没有,所以投票者也不会拥有其中的二进制软件。

然而,请注意,投票是一个非常特殊的情况。只是因为计算机中的软件是免费的并不意味着你可以信任用于投票的计算机。我们认为计算机不能被信任投票。投票应该在纸上进行。

GPLv3有“专利报复”吗条款“?(#v3产品零售)

实际上,是的。第10节禁止传达针对其他被许可方提起专利诉讼的软件。如果有人无论如何,第8节解释了他们将如何失去执照以及随之而来的任何专利许可。

我可以使用GPL覆盖的代码片段吗文档中根据某些许可证许可的源代码与GPL不兼容?(#文档中的源代码)

如果代码段足够小,可以合并它们根据合理使用或类似法律,那么是的。否则,不会。

GPLv3第6节的开头说我可以以目标代码形式传达涵盖的作品”第4节和第5节“如果我也满足以下条件第6条。这是什么意思?(#v3低于4和5)

这意味着您必须具备的所有权限和条件传递源代码也适用于传递目标代码:您可以收取费用,您必须保持版权声明的完整性,等等。

我的公司拥有很多专利。多年来,我们为“GPL”下的项目贡献了代码版本2或任何更高版本”,并且项目本身具有按相同条款分发。如果用户决定接受GPLv3下的项目代码(包括我的贡献)这意味着我已经自动授予了GPLv3的明确专利许可给那个用户?(#v2OrLater专利许可证)

不可以。当你发布GPLed软件时,你必须遵守条款和一个特定版本的许可证的条件。当你这样做时,这个版本定义了你的义务。如果用户也可以选择使用更高版本的GPL,这只是一个额外的他们的许可-它不要求你完成GPL后期版本的条款。

不要认为这意味着你可以用你的专利。在许多国家,在GPLv2下分发软件为接受者提供了一个隐含的专利许可证来行使他们的权利GPL项下的权利。即使没有,任何人都在考虑强制执行他们的专利是社区的敌人,我们会保护自己免受这样的攻击。

如果我分发专有链接到LGPLv3覆盖的库的程序修改后,出于以下目的的“贡献者版本”是什么确定明确的专利许可授权范围making——它只是图书馆,还是整个组合?(#LGPLv3用户版本)

“贡献者版本”只是您的库。

GPLv3与GPLv2兼容吗?(#v2v3兼容性)

否。许多要求已从GPLv2更改为GPLv3表示GPLv3中不存在GPLv2的精确要求,反之亦然。例如,GPLv3的终止条件为与GPLv2相比,它更为宽松,因此与GPLv不同根据GPLv2的终止条件。

由于这些差异,这两个许可证不兼容:如果您试图将GPLv2下发布的代码与GPLv3下的代码合并,您将违反GPLv2第6节。

但是,如果代码是在GPL“版本2或稍后,“这与GPLv3兼容,因为GPLv2是它允许的选项。

GPLv2对交付安装有要求吗信息?(#InstInfo公司)

GPLv3明确要求重新分配以包括所有必要的“安装信息。”GPLv2没有使用该术语,但它确实需要重新分配才能包括用于的脚本控制可执行文件的编译和安装使用完整和相应的源代码。这包括部分内容,但不包括GPLv3称之为“安装信息”因此,GPLv3对安装信息的要求是更强。

“治愈”违反GPLv3的行为意味着什么?(#治疗)

纠正违规意味着调整您的做法以遵守许可证的要求。

保修和责任GPLv3中的免责声明似乎特定于美国法律。我可以添加我自己的吗对我自己代码的免责声明?(#v3国际免责声明)

对。第7节允许您添加自己的免责声明,具体来说是7(a)。

我的程序有交互式用户本质上是非可视的界面。我如何遵守GPLv3中的适当法律通知要求?(#非可视法律通知)

您只需确保适当的法律声明用户可以在界面中随时使用。例如,如果您已经编写了音频接口,您可以包含一个命令大声朗读告示。

如果我提供GPLv3覆盖的副本我是否“传达”了抄送给那个同事?(#v3同事传送)

只要你们都在工作中使用软件公司,而不是个人,那么答案是否定的。副本属于公司,而不是你或同事。此副本是传播,而不是传播,因为公司没有复制可供其他人使用。

如果我发布GPLv3覆盖程序,如果用户修改,我可以提供无效的保修吗程序?(#v3条件保修)

对。就像用户修改设备时不需要担保一样他们内部的软件,您不需要提供保修涵盖了某人可以从事的所有可能的活动GPLv3涵盖的软件。

为什么你决定编写GNU Affero GPLv3作为单独的许可证?(#SeparateAffero公司)

GPLv3的早期草案允许许可方添加类似Affero的要求在第7节中公布来源。然而,一些公司开发和依赖自由软件的公司考虑到这一要求太累人了。他们希望避免使用具有此要求的代码,并且对检查代码的管理成本表示担忧这一附加要求。通过发布GNU Affero GPLv3作为单独的许可证,其中有条款和GPLv3允许代码这些许可证相互链接,我们完成了我们所有的原始目标,同时更容易确定哪些代码具有源发布要求。

你为什么发明新术语GPLv3中的“传播”和“传达”?(#传播和传输方式)

GPLv2中使用的术语“分发”借用自美国版权法。多年来,我们了解到司法管辖区在自己的版权法中也使用了这个词,但它有不同的含义。我们发明了这些新术语,目的是无论在哪里解释许可证,都要尽可能清楚。他们是未在世界上任何版权法中使用,我们提供直接在许可证中定义。

我想根据GPL许可我的代码,但我想还想明确指出,它不能用于军事和/或商业用途。我可以这样做吗?(#非军事)

不,因为这两个目标相互矛盾。GNU GPL是专门设计用于防止添加更多限制。在第7节中,GPLv3允许非常有限的一组,但任何其他用户可以删除添加的限制。

更一般地说,是限制谁可以使用程序或什么,自由软件许可.

GPLv3中的“传送”是否相同GPLv2所说的“分发”是什么意思?(#传送Vs分发)

是的,或多或少。在执行GPLv2的过程中,我们了解到一些司法管辖区在其拥有版权法,但赋予了它不同的含义。我们发明了一种新的明确我们的意图并避免可能出现的任何问题由这些差异引起的。

GPLv3提供“向作为传播的一个例子。这意味着什么?可用性是一种传输形式吗?(#v3标记可用)

“向公众开放”的一个例子是公共web或FTP服务器上的软件。在你这样做之后,有一段时间在任何人真正获得软件之前你-但因为它可能马上发生,你需要实现GPL的义务。因此,我们定义了输送包括此活动。

自分配和制作以来公众可以使用的传播形式也包括在GPLv3中,有哪些传播示例没有构成传送?(#传播未传送)

为自己制作软件副本是没有传递信息的传播。您可以这样做以安装多台计算机上的软件,或进行备份。

是否预链接GPL将二进制文件添加到系统上的各种库中,以优化其性能,算作修改?(#预链接)

否。预链接是编译过程的一部分;它没有在其他方面之外引入任何许可要求编译的结果。如果允许您将程序链接到库,那么也可以预先链接它们。如果你分发预先链接的目标代码,您需要遵循以下条款第6条。

如果有人在笔记本电脑上安装GPLed软件,并且然后将笔记本电脑借给朋友,但不提供源代码软件,他们是否违反了GPL?(#笔记本电脑贷款)

没有。在我们调查过这个问题的司法管辖区,这种贷款不能算作转贷。笔记本电脑的主人不会在GPL下承担任何义务。

假设两家公司试图通过以下方式规避提供安装信息的要求让一家公司发布签名软件,另一家发布仅运行第一家公司的签名软件的用户产品。这违反了GPLv3?(#双方对话)

对。如果双方试图合作绕过GPL的要求,他们都可以追求版权侵权。这一点尤其正确,因为转达的定义明确包括让某人负责的活动二次侵权。

如果我在通过链接到源代码存储库的FTP服务器和源在版本控制系统中,如CVS或Subversion?(#源InCVS)

只要源签出过程没有变得繁重或限制性。任何可以下载的人您的目标代码还应该能够从您的版本控制系统,使用公开可用的免费软件客户端。应为用户提供清晰方便的如何获取精确目标代码源的说明下载-他们可能不需要最新的开发毕竟,代码。

传达GPLv3的人可以覆盖吗用户产品中的软件使用远程认证来阻止用户修改那个软件?(#远程访问)

否。安装信息的定义,必须在用户内部传输软件时提供源产品明确表示:“信息必须足够确保修改后的目标代码在任何情况下都不会继续运行仅仅因为修改被阻止或干扰制造。”如果设备以某种方式使用远程认证安装信息必须为您的修改提供一些方法报告自己合法的软件。

什么是“规则和协议网络通信“在GPLv3中是指?(#规则协议)

这是指您可以通过网络发送流量的规则例如,如果可以向每天的服务器数量,或您可以上传到某处的文件大小,您的访问权限如果你不遵守这些限制,这些资源可能会被拒绝。

这些规则不包括任何与数据在网络上传输。例如,如果网络为用户向您的设备发送消息,您对网络的访问不能仅仅因为你修改了软件而被拒绝不显示消息。

提供安装信息的分销商GPLv3下无需提供“支持服务”用于产品。你的意思是什么样的“支持服务”?(#支持服务)

这包括许多设备制造商提供的服务类型帮助您安装、使用或排除产品故障。如果设备依赖访问web服务或类似技术以正常运行通常修改后的版本仍然可用第6节中有关网络访问的条款。

在GPLv3和AGPLv3中,当它说“尽管本许可证有任何其他规定”?(#v3尽管如此)

这仅仅意味着以下条款优先于任何条款其他可能与他们冲突的许可证。例如,没有这个文本,有些人可能声称您无法在GPLv3,代码在AGPLv3下,因为AGPL的附加要求将被归类为第7节下的“进一步限制”GPLv3的。本文明确了我们的预期解释是纠正一个,你就可以做出组合。

此文本仅解决不同许可条款之间的冲突。当两个条件之间没有冲突时,您必须满足它们两者兼而有之。这些段落并不允许你全权忽略其余的相反,他们正在创造非常有限的例外。

在AGPLv3下,当我修改程序时根据第13节,它必须提供什么对应来源?(#AGPLv3对应源)

“对应来源”的定义见许可证,您应该提供它列出的内容。所以,如果您修改了版本取决于其他许可证下的库,例如Expat许可证或GPLv3,相应的源应该包括这些库(除非它们是系统库)。如果您修改了这些库,您必须为它们提供修改后的源代码。

第13节第一段的最后一句只是为了强化大多数人的自然假设:即使通过一个特殊异常处理GPLv3下的代码组合在第13节中,相应的源代码仍应包括以这种方式与程序结合。这句话并不意味着只有必须提供GPLv3涵盖的来源;相反,这意味着这样的代码从中排除对应来源的定义。

在AGPLv3中“通过计算机远程与[软件]交互网络?”(#AGPLv3远程交互)

如果程序明确设计为接受用户请求并发送通过网络进行响应,然后满足这些标准属于这一类别的程序包括web和邮件服务器,交互式基于web的应用程序,以及用于所玩游戏的服务器在线。

如果程序没有明确设计为通过网络,但它是在一个碰巧这样做的环境中运行的,那么它不属于这一类。例如,应用程序不是仅因为用户通过SSH运行它,所以需要提供源,或远程X会话。

GPLv3的概念“您”与“法律实体”的定义相比在Apache License 2.0中?(#ApacheLegalEntity公司)

它们实际上是相同的。“法律”的定义Apache License 2.0中的Entity”在各种类型中都是非常标准的法律协议——如此之多,以至于如果在没有明确定义。我们完全期望他们看到GPLv3并考虑谁有资格成为被许可人。

在GPLv3中,什么是“程序”参考?这是不是每个在GPLv3下发布的程序?(#v3程序)

术语“程序”是指根据GPLv3许可,并由特定被许可人从上游许可方或分销商。该计划是您在GPLv3许可的给定实例中收到的软件收到了。

“程序”并非指“所有许可的作品”GPLv3下”;这种解释对许多原因。我们已经发布了一个术语分析“程序”对于那些想了解更多这个。

如果我只复制GPL覆盖的程序并运行它们,而不将它们分发或传送给其他人,执照对我有什么要求?(#无分销要求)

没有什么。GPL没有对此活动设置任何条件。

如果某些网络客户端软件是根据AGPLv3发布,它必须能够为它与哪些服务器交互?(#AGPLv3服务器作为用户)

AGPLv3需要一个程序为“所有用户通过计算机网络与它进行远程交互。”你把这个程序称为“客户端”并不重要或“服务器”您需要问的问题是,是否存在合理的期望有人与项目互动通过网络远程访问。

对于运行授权代理服务器的软件根据AGPL,我如何向用户提供源代码与代码交互?(#AGP代理)

对于代理服务器上的软件,您可以提供通过向用户传递消息的常规方法获取源代理的类型。例如,Web代理可以使用登录页。什么时候?用户最初开始使用代理,您可以将他们定向到页面提供来源以及您选择的任何其他信息提供。

AGPL说你必须向“所有用户”提供服务某个用户已经收到了当前的报价软件版本,您不必向该用户重复再一次。

各种GNU许可如何彼此兼容吗?(#所有兼容性)

各种GNU许可证之间具有广泛的兼容性其他。唯一一次您可能无法组合两个这些许可证是您想要使用只有在下面旧版本的许可证,其代码在新版本下版本。

下面是各种组合的详细兼容性矩阵GNU许可证,为特定情况提供易于使用的参考。假设其他人在其中一个下面编写了一些软件许可,并且您希望以某种方式将其中的代码合并到项目中你要发布的(你自己的原创作品或修改过的版本其他人的软件)。在中查找项目的许可证列,以及行中其他代码的许可证在左边。他们见面的牢房会告诉你这是否允许组合。

当我们说“复制代码”时,我们的意思是:来自一个源的代码段,可以修改也可以不修改,以及将其插入到您自己的程序中,从而形成基于第一个代码段。“使用库”表示您没有复制直接与任何源交互,但通过链接与之交互,导入,或其他将源绑定在一起的典型机制编译或运行代码。

矩阵声明GPLv3的每个位置,关于AGPLv3也具有兼容性。

跳过兼容性矩阵


我想在以下条件下许可我的代码:
仅GPLv2 GPLv2或更高版本 GPLv3或更高版本 仅限LGPLv2.1 LGPLv2.1或更高版本 LGPLv3或更高版本
我想在以下位置复制代码: 仅GPLv2 好 啊 好的[2] 确定:组合仅在GPLv2下[7] 确定:组合仅在GPLv2下[7][2]
GPLv2或更高版本 好的[1] 好 啊 好 啊 OK:组合在GPLv2或更高版本下[7] 确定:组合在GPLv2或更高版本下[7] 确定:组合在GPLv3下[8]
GPLv3级 确定:组合在GPLv3下[3] 好 啊 确定:组合在GPLv3下[7] 确定:组合在GPLv3下[7] 确定:组合在GPLv3下[8]
LGPLv2.1版只有 确定:在GPLv2下传送复制的代码[7] 确定:在GPLv2或更高版本下传送复制的代码[7] 确定:在GPLv3或更高版本下传送复制的代码[7] 好 啊 好的[6] 确定:在GPLv3下传送复制的代码[7][8]
LGPLv2.1版或更高版本 确定:在GPLv2下传送复制的代码[7][1] 确定:在GPLv2或更高版本下传送复制的代码[7] OK:在GPLv3或更高版本下传输代码[7] 好的[5] 好 啊 好 啊
LGP版本3 确定:组合在GPLv3下[8][3] 确定:组合在GPLv3下[8] 确定:组合在GPLv3下[7][8] 确定:组合在LGPLv3下[4] 确定:组合在LGPLv3下
我想在以下位置使用库: 仅GPLv2 好 啊 好的[2] 确定:组合仅在GPLv2下[7] OK:组合仅在GPLv2下[7][2]
GPLv2或更高版本 好的[1] 好 啊 好 啊 确定:组合在GPLv2或更高版本下[7] 确定:组合在GPLv2或更高版本下[7] OK:组合在GPLv3之下[8]
GPLv3级 确定:组合在GPLv3下[3] 好 啊 确定:组合在GPLv3下[7] 确定:组合在GPLv3下[7] OK:组合在GPLv3之下[8]
仅限LGPLv2.1 好 啊 好 啊 好 啊 好 啊 好 啊 好 啊
LGPLv2.1或更高版本 好 啊 好 啊 好 啊 好 啊 好 啊 好 啊
LGP版本3 确定:组合在GPLv3下[9] 好 啊 好 啊 好 啊 好 啊

跳过脚注

1:您必须遵守GPLv2的条款在这种情况下合并代码时。你不能利用GPL更高版本中的术语。

2:虽然您可以根据GPLv2或将您的原始作品和/或修改版本您在GPLv2或later下收到的工作,即您的GPLv2-only代码只能在GPLv2下使用。只要你的项目取决于在该代码上,您将无法升级自己代码的许可证GPLv3或later,以及整个作品(两者的任意组合您的项目和其他代码)只能根据条款进行传达GPLv2的。

3:如果你有能力释放GPLv2或任何更高版本下的项目,您可以选择在GPLv3或任何更高版本下发布,一旦发布这样,您就可以合并在GPLv3下发布的代码。

4:如果你有能力释放LGPLv2.1或任何更高版本下的项目,您可以选择在LGPLv3或任何更高版本下发布,并且一旦发布这样,您就可以合并下发布的代码LGPLv3。

5:你必须遵守LGPLv2.1在这种情况下合并代码时。你不能接受LGPL较新版本中术语的优势。

6:如果你这样做,只要项目只包含在LGPLv2.1下发布的代码,您不会能够将项目的许可证升级到LGPLv3或更高版本。

7:LGPLv2.1允许您在GPLv2之后的任何GPL版本下重新授权代码。如果你在这种情况下,可以将LGPLed代码切换为使用适当的而不是GPL版本(如表中所示),您可以这样做组合。

8:LGPLv3是GPLv3加上额外的在此情况下可以忽略的权限。

9:因为GPLv2不允许与LGPLv3的组合,您必须在GPLv3的在这种情况下,因为它将允许这种组合。