`
lan13217
  • 浏览: 496164 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

GNU通用公共授权GPL3.0(简体中文翻译版)

阅读更多

GNU通用公共授权

第三版 2007629

版权所有(C2007 Free Software Foundation, Inc. (http://fsf.org)

允许所有人复制和发布本授权文件的完整版本

但不允许对它进行任何修改

导言

GNU通用公共授权是一份针对软件和其他种类作品的自由的、公共的授权文件。

大多数软件授权申明被设计为剥夺您共享和修改软件的自由。相反地,GNU通用公共授权力图保护您分享和修改自由软件地自由——以确保软件对所有使用者都是自由的。我们,自由软件基金会,对我们的大多数软件使用GNU通用公共授权;本授权同样适用于任何其作者以这种方式发布的软件。您也可以让您的软件使用本授权。

当我们谈论自由软件时,我们指的是行为的自由,而非价格免费。GNU通用公共授权被设计为确保您拥有发布自由软件副本(以及为此收费,如果您希望的话)的自由,确保您能收到源代码或者在您需要时能获取源代码,确保您能修改软件或者将它的一部分用于新的自由软件,并且确保您知道您能做这些事情。

为了保护您的权利,我们需要做出要求,禁止任何人否认您的这些权利或者要求您放弃这些权利。因此,如果您发布此软件的副本或者修改它,您就需要肩负起尊重他人自由的责任。

例如,如果您发布自由软件的副本,无论以免费还是以收费的模式,您都必须把您获得的自由同样的给予副本的接收者。您必须确保他们也能收到或者得到源代码。而且您必须向他们展示这些条款,以使他们知道自己享有这样的权利。

使用GNU通用公共授权的开发者通过两项措施来保护您的权利:(1)声明软件的版权;(2)向您提供本授权文件以给您复制、发布并且/或者修改软件的法律许可。

为了保护软件开发者和作者,通用公共授权明确阐释自由软件没有任何担保责任。如用户和软件作者所希望的,通用公共授权要求软件被修改过的版本必须明确标示,从而避免它们的问题被错误地归咎于先前的版本。

某些设备被设计成拒绝用户安装或运行其内部软件的修改版本,尽管制造商可以安装和运行它们。这从根本上违背了通用公共授权保护用户能修改软件的自由的宗旨。此类滥用本授权的系统模式出现在了最让人无法接受的个人用户产品领域。因此,我们设计了这个版本的通用公共授权来禁止那些产品的侵权行为。如果此类问题在其他领域大量出现,我们准备好了在将来的通用公共授权版本里扩展这项规定,以保护用户的自由。

最后,每个程序都经常受到软件专利的威胁。政府不应该允许专利权限制通用计算机软件的发展和使用,但是在政府确实允许这种事情的地区,我们希望避免应用于自由软件的专利权使该软件有效私有化的危险。为了阻止这样的事情的发生,通用公共授权确保没有人能够使用专利权使得自由软件非自由化。

以下是复制,发布和修改软件的详细条款和条件。

条款和条件

0.定义

本授权GNU通用公共授权第三版

版权一词同样指适用于其他产品如半导体防护罩等的保护版权的法律。

本程序指任何在本授权下发布的受版权保护的作品。被授权人称为“您”。“被授权人”和“版权接受者”可以是个人或组织。

“修改”作品是指从软件中拷贝或者做出全部或一丁点儿的修改,这不同于逐字逐句的复制,是需要版权许可的。修改成果被称为先前作品的“修改版本”或者“基于”先前作品的软件。

“覆盖程序”指未被修改过的本程序或者基于本程序的程序

“传播”程序指使用该程序做任何如果没有许可就会在适用的版权法下直接或间接侵权的事情,不包括在电脑上执行程序或者是做出您不与人共享的修改。传播包括复制,分发(无论修改与否),向公众共享,以及在某些国家的其他行为。

“发布”作品指任何让其他组织制作或者接受副本的传播行为。仅仅通过电脑网络和一个用户交流,且没有发送程序拷贝的行为不是发布。

一个显示“适当的法律通告”的交互的用户接口应包括这样一个方便而显著的可视部件,它具有以下功能:(1)显示一个合适的版权通告;(2)告诉用户对本程序没有任何担保责任(除非有担保明确告知),受权人可以在本授权下发布本程序,以及如果阅读本授权协议的副本。如果该接口显示了一个用户命令或选项列表,比如菜单,该列表中的选项需要符合上述规范。

1.源代码

“源代码”指修改程序常用的形式。“目标代码”指程序的任何非源代码形式。

“标准接口”有两种含义,一是由标准组织分支定义的官方标准;二是针对某种语言专门定义的众多接口中,在该类语言的开发者中广为使用的那种接口。

可执行程序的“系统库”不是指整个程序,而是指任何包含于主要部件但不属于该部件的部分,并且只是为了使能该部件而开发,或者为了实现某些已有公开源代码的标准接口。“主要部件”在这里指的是执行程序的特定操作系统(如果有的话)的主要的关键部件(内核,窗口系统等),或者生成该可执行程序时使用的编译器,或者运行该程序的目标代码解释器。

目标代码中的程序“对应的源代码”指所有生成,安装,(对可执行程序而言)运行该目标代码和修改该程序所需要的源代码,包括控制这些行为的脚本。但是,它不包括程序需要的系统库,通用目的的工具,以及程序在完成某些功能时不经修改地使用的那些不包括在程序中的普遍可用的自由软件。例如,对应的源代码包括与程序的源文件相关的接口定义文件,以及共享库中的源代码和该程序设计需要的通过如频繁的数据交互或者这些子程序和该程序其他部分之间的控制流等方式获得的动态链接子程序。

对应的源代码不需要包含任何拥护可以从这些资源的其他部分自动再生的资源。

源代码形式的程序对应的源代码定义同上。

2.基本的许可

所有在本授权协议下授予的权利都是对本程序的版权而言,并且只要所述的条件都满足了,这些授权是不能收回的。本授权明确的确认您可以不受任何限制地运行本程序的未修改版本。运行一个本授权覆盖的程序获得的结果只有在该结果的内容构成一个覆盖程序的时候才由本授权覆盖。本授权承认您正当使用或版权法规定的其它类似行为的权利。

只要您的授权仍然有效,您可以无条件地制作,运行和传播那些您不发布的覆盖程序。只要您遵守本授权中关于发布您不具有版权的资料的条款,您可以向别人发布覆盖程序,以要求他们为您做出专门的修改或者向您提供运行这些程序的简易设备。那些为您制作或运行覆盖程序的人作为您专门的代表也必须在您的指示和控制下做到这些,请禁止他们在他们和您的关系之外制作任何您拥有版权的程序的副本。

当下述条件满足的时候,在任何其他情况下的发布都是允许的。

转授许可证授权是不允许的,第10节让它变的没有必要了。

3.保护用户的合法权利不受反破解法侵犯

在任何实现1996年通过的世界知识产权组织版权条约第11章中所述任务的法律,或者是禁止或限制这种破解方法的类似法律下,覆盖程序都不会被认定为有效的技术手段的一部分。

当您发布一个覆盖程序时,您将放弃任何禁止技术手段破解的法律力量,甚至在本授权关于覆盖程序的条款下执行权利也能完成破解。同时,您放弃任何限制用户操作或修改该覆盖程序以执行您禁止技术手段破解的合法权利的企图。

4.发布完整副本

你可以通过任何媒介发布本程序源代码的未被修改过的完整副本,只要您显著而适当地在每个副本上发布一个合适的版权通告;保持完整所有叙述本授权和任何按照第7节加入的非许可的条款;保持完整所有的免责申明;并随程序给所有的接受者一份本授权。

您可以为您的副本收取任何价格的费用或者免费,你也可以提供技术支持或者责任担保来收取费用。

5.发布修改过的源码版本

您可以在第4节的条款下以源码形式发布一个基于本程序的软件,或者从本程序中制作该软件需要进行的修改,只要您同时满足所有以下条件:

* a)制作的软件必须包含明确的通告说明您修改了它,并给出相应的修改日期。

* b)制作的软件必须包含明确的通告,陈述它在本授权下发布并指出任何按照第7节加入的条件。这条要求修改了第4节的“保持所有通知完整”的要求。

* c)您必须把整个软件作为一个整体向任何获取副本的人按照本授权协议授权。本授权因此会和任何按照第7节加入的条款一起,对整个软件及其所有部分,无论是以什么形式打包的,起法律效力。本授权不允许以其他任何形式授权该软件,但如果您个别地收到这样的许可,本授权并不否定该许可。

* d)如果您制作的软件包含交互的用户接口,每个用户接口都必须显示适当的法律通告;但是,如果本程序包含没有显示适当的法律通告的交互接口,您的软件没有必要修改他们让他们显示。

如果一个覆盖程序和其他本身不是该程序的扩展的程序的联合体,这样的联合的目的不是为了在某个存储或发布媒体上生成更大的程序,且联合体程序和相应产生的版权没有用来限制程序的使用或限制单个程序赋予的联合程序的用户的合法权利的时候,这样的联合体就被称为“聚集体”。在聚集体中包含覆盖程序并不会使本授权应用于该聚集体的其他部分。

6.发布非源码形式的副本

您可以在第4,5节条款下以目标代码形式发布程序,只要您同时以一下的一种方式在本授权条款下发布机器可读的对应的源代码:

* a)在物理产品(包括一个物理的发布媒介)中或作为其一部分发布目标代码,并在通常用于软件交换的耐用的物理媒介中发布对应的源代码。

* b)在物理产品(包括一个物理的发布媒介)中或作为其一部分发布目标代码,并附上有效期至少3年且与您为该产品模型提供配件或客户服务的时间等长的书面承诺,给予每个拥有该目标代码的人(1)要么在通常用于软件交换的耐用物理媒介中,以不高于您执行这种源码的发布行为所花费的合理费用的价格,一份该产品中所有由本授权覆盖的软件的对应的源代码的拷贝;(2)要么通过网络服务器免费提供这些对应源代码的访问。

* c)单独地发布目标代码的副本,并附上一份提供对应源代码的书面承诺。这种行为只允许偶尔发生并不能盈利,且在您收到的目标代码附有第6b规定的承诺的时候。

* d)在指定的地点(免费或收费地)提供发布的目标代码的访问并在同样的地点以不增加价格的方式提供对应源代码的同样的访问权。您不需要要求接收者在复制目标代码的时候一道复制对应的源代码。如果复制目标代码的地点是网络服务器,对应的源代码可以在另外一个支持相同复制功能的服务器上(由您或者第三方运作),只要您在目标代码旁边明确指出在哪里可以找到对应的源代码。无论什么样的服务器提供这些对应的源代码,您都有义务保证它在任何有需求的时候都可用,从而满足本条规定。

* e)用点对点传输发布目标代码,您需要告知其他的节点目标代码和对应的源代码在哪里按照第6d的条款向大众免费提供。

目标代码中可分离的部分,其源代码作为系统库不包含在对应的源代码中,不需要包含在发布目标代码的行为中。

“用户产品”指(1)“消费品”,即通常用于个人的、家庭的或日常目的的有形个人财产;或者(2)任何为公司设计或销售却卖给了个人的东西。在判断一个产品是否消费品时,有疑点的案例将以有利于覆盖面的结果加以判断。对特定用户接收到的特定产品,“正常使用”指该类产品的典型的或通常的使用,无论该用户的特殊情况,或者该用户实际使用该产品的情况,或者该产品要求的使用方式如何。一个产品是否是消费品与该产品是否具有实质的经济上的、工业的或非消费品的用处无关,除非该用处是此类产品唯一的重要使用模式。

用户产品的“安装信息”指从对应源码的修改版本安装和运行该用户产品中包含的覆盖程序的修改版本所需要的任何方法、过程、授权密钥或其他信息。这些信息必须足以保证修改后的目标代码不会仅仅因为被修改过而不能继续运行。

如果您在本节条款下在用户产品中,或随同,或专门为了其中的使用,发布目标代码程序,而在发布过程中用户产品的所有权和使用权都永久地或在一定时期内(无论此项发布的特点如何)传递给了接收者,在本节所述的条款下发布的对应的源代码必须包含安装信息。但是如果您或者任何第三方组织都没有保留在用户产品上安装修改过的目标代码的能力(比如程序被安装在了ROM上),那么这项要求不会生效。

提供安装信息的要求并没有要求为接收者修改或安装过的程序,或者修改或安装该程序的用户产品,继续提供支持服务、担保或升级。当修改本身实际上相反地影响了网络的运行,或者违反了网络通信的规则和协议时,网络访问可以被拒绝。

根据本节发布的对应源代码和提供的安装信息必须以公共的文件格式发布(并附加一个该类型文档的实现方法以源码形式向公众共享),解压缩、阅读或复制这些信息不能要求任何密码。

7.附加条款

“附加许可”是通过允许一些本授权的特例来补充本授权的条款。只要它们在使用法律下合法,对整个程序都生效的附加许可就应当被认为是本授权的内容。如果附加许可只是对本程序的一部分生效,那么该部分可以在那些许可下独立使用,但整个程序是在本授权管理下,无论附加许可如何。

当您发布覆盖程序的副本时,您可以选择删除该副本或其部分的任何附加许可。(当您修改程序时,附加许可可能要求在某些情况下将自身删除)。您可以把附加许可放在材料上,加入到您拥有或能授予版权许可的覆盖程序中。

尽管本授权在别处有提供,对于您加入到程序中的材料,您可以(如果您由该材料的版权所有者授权的话)用以下条款补充本授权:

a. 拒绝担保责任或以与本授权第1516小节条款不同的方式限制责任;或者

b. 要求保留特定的合理法律通告,或者该材料中或包含于适当法律通告中的该程序的作者贡献;或者

c. 禁止误传该材料的来源,或者要求该材料的修改版本以合理的方式标志为与原版本不同的版本;或者

d. 限制以宣传为目的的使用该材料作者或授权人的姓名;或者

e. 降低授权级别以在商标法下使用一些商品名称,商标或服务标记;或者

f. 要求任何发布该材料(或其修改版本)的人用对接收者的责任假设合同对授权人和材料作者进行保护,避免任何这样的假设合同直接造成授权人和作者的责任。

所有其他不许可的附加条款都被认为是第10节中的“进一步的约束”。如果您收到的程序或者其部分,声称自己由本授权管理,并补充了进一步约束,那么您可以删除这些约束。如果一个授权文件包含进一步约束,但是允许再次授权或者在本授权下发布,只要这样的进一步的约束在这样的再次授权或发布中无法保留下来,您就可以在覆盖程序中加入该授权文件条款管理下的材料。

如果您依据本小节向覆盖程序添加条款,您必须在相关的源码文件中加入一个应用于那些文件的附加条款的声明或者指明在哪里可以找到这些条款的通告。

附加的条款,无论是许可的还是非许可的条款,都可以写在一个单独的书面授权中,或者申明为例外情况;这两种方法都可以实现上述要求。

8.终止授权

您只有在本授权的明确授权下才能传播或修改覆盖程序。任何其它的传播或修改覆盖程序的尝试都是非法的,并将自动终止您在本授权下获取的权利(包括依据第11节第三段条款授予的任何专利授权)。

然而,如果您停止违反本授权,那么您从某个特定版权所有者处获取的授权许可能够以以下方式恢复(a)您可以暂时地拥有授权,直到版权所有者明确地终止您的授权;(b)如果在您停止违反本授权后的60天内,版权所有者没有以某种合理的方式告知您的违背行为,那么您可以永久地获取该授权。

进一步地,如果某个版权所有者以某种合理的方式告知您违反本授权的行为,而这是您第一次收到来自该版权所有者的违反本授权的通知(对任何软件),并且在收到通知后30天内修正了违反行为,那么您从该版权所有者处获取的授权将永久地恢复。

当您的授权在本节条款下被终止时,那些从您那获取授权的组织只要保持不违反本授权协议,其授权就不会被终止。您只有在授权被版权所有者恢复了之后才有资格依据第10节的条款获取该材料的新的授权。

9.获取副本不需要接受本授权

您不需要为了接收或运行本程序的副本而接受本授权协议。仅仅是因为点对点传输获取副本引起传播行为,也不要求您接受本授权协议。然而,除了本授权外,任何授权协议都不能授予您传播或修改覆盖程序的许可。因此,如果您修改或者传播了本程序的副本,那么您就默认地接受了本授权。

10.下游接收者的自动授权

每次您发布覆盖程序,接收者都自动获得一份来自原授权人的依照本授权协议运行、修改和传播该程序的授权。依据本授权,您不为执行任何第三方组织的要求负责。

“实体事务”指转移一个组织的控制权或全部资产,或者拆分组织,或者合并组织的事务。如果覆盖程序的传播是实体事务造成的,该事务中每一个接收本程序副本的组织都将获取一份其前身拥有的或者能够依据前面的条款提供的任何授权,以及从其前身获取程序对应的源代码的权利,如果前身拥有或以合理的努力能够获取这些源代码的话。

您不可以对从本授权协议获取或确认的权利的执行强加任何约束。比如,您不可以要求授权费用,版税要求或对从本授权获取的权利的执行收取任何费用。您不可以发起诉讼(包括联合诉讼和反诉)声称由于制作、使用、销售、批发或者引进本程序或其任何一部分而侵犯了任何专利权。

11.专利权

“贡献者”是在本授权下授予本程序或者本程序所基于的程序的使用权的版权所有者。这样的程序被成为贡献者的“贡献者版本”。

一个贡献者的“实质的专利申明”是该贡献者所占有和控制的全部专利,无论已经获得的还是在将来获得的,那些可能受到某种方式侵犯的专利权。本授权允许制作、使用和销售其贡献者版本,但不包括那些只会由于对贡献者版本进一步的修改而受到侵犯的专利的申明。为此,“控制”一词包括以同本授权要求一致的方式给予从属授权的权利。

每个贡献者在该贡献者的实质的专利申明下授予您非独家的,全世界的,不需要版税的专利授权,允许您制作、使用、销售、批发、进口以及运行、修改和传播其贡献者版本内容。

在以下三个自然段中,“专利授权”指任何形式表达的不执行专利权的协议或承诺(例如使用专利权的口头许可,或者不为侵犯专利而起诉的契约)。向一个组织授予专利授权指做出这样的不向该组织提出强制执行专利权的承诺。

如果您在自己明确知道的情况下发布基于某个专利授权的覆盖程序,而这个程序的对应的源代码并不能在本授权条款下通过网络服务器或其他有效途径免费地向公众提供访问,您必须做到:(1)使对应的源代码按照上述方法可访问;或者(2)放弃从该程序的专利授权获取任何利益;或者(3)以某种与本授权要求一致的方法使该专利授权延伸到下游的接收者。“在自己明确知道的情况下”指您明确地知道除了获取专利授权外,在某个国家您传播覆盖程序的行为,或者接收者使用覆盖程序的行为,会由于该专利授权而侵犯一个或多个在该国可确认的专利权,而这些专利权您有足够的理由相信它们是有效的。

在依照或者涉及某一次事务或安排时,如果您通过获取发布或传播覆盖程序的传输版本,并给予接收该覆盖程序的某些组织专利授权,允许他们使用,传播,修改或者发布该覆盖程序的特殊版本,那么您赋予这些组织的专利授权将自动延伸到所有该覆盖程序及基于该程序的作品的接收者。

一份专利授权是“有偏见的”,如果它没有在自身所覆盖的范围内包含,禁止行使,或者要求不执行一个或多个本授权下明确认可的权利。以下情况,您不可以发布一个覆盖程序:如果您与软件发布行业的第三方组织有协议,而该协议要求您根据该程序的发布情况向该组织付费,同时该组织在你们的协议中赋予任何从您那里获得覆盖软件的组织一份有偏见的专利授权,要么(a)连同您所发布的副本(或者从这些副本制作的副本);要么(b)主要为了并连同某个的产品或者包含该覆盖程序的联合体。如果您签署该协议或获得该专利授权的日期早于2007328日,那么您不受本条款约束。

本授权的任何部分不会被解释为拒绝或者限制任何暗含的授权或其他在适用专利权法下保护您的专利不受侵犯的措施。

12.不要放弃别人的自由

如果您遇到了与本授权向矛盾的情况(无论是法庭判决,合同或者其他情况),它们不能使您免去本授权的要求。如果您不能同时按照本授权中的义务和其他相关义务来发布覆盖程序,那么您将不能发布它们。比如,如果您接受了要求您向从您这里或许本程序的人收取版税的条款,您唯一能够同时满足本授权和那些条款的方法是完全不要发布本程序。

13.和GNU Affero通用公共授权一起使用

尽管本协议有其他防备条款,您有权把任何覆盖程序和基于第三版GNU Affero通用公共授权的程序链接起来,并且发布该联合程序。本授权的条款仍然对您的覆盖程序有效,但是GNU Affero通用公共授权第13节关于通过网络交互的要求会对整个联合体有效。

14.本授权的修订版

自由软件基金会有时候可能会发布GNU通用软件授权的修订版本和/或新版本。这样的新版本将会和现行版本保持精神上的一致性,但是可能会在细节上有所不同,以处理新的问题和情况。

每个版本都有一个单独的版本号。如果本程序指出了应用于本程序的一个特定的GNU通用公共授权版本号“以及后续版本”,您将拥有选择该版本或任何由自由软件基金会发布的后续版本中的条款和条件的权利。如果本程序没有指定特定的GNU通用公共授权版本号,那么您可以选择任何自由软件基金会已发布的版本。

如果本程序指出某个代理可以决定将来的GNU通用公共授权是否可以应用于本程序,那么该代理的接受任何版本的公开称述都是您选择该版本应用于本程序的永久认可。

后续的授权版本可能会赋予您额外的或者不同的许可。但是,您对后续版本的选择不会对任何作者和版权所有者强加任何义务。

15.免责申明

在适用法律许可下,本授权不对本程序承担任何担保责任。除非是书面申明,否则版权所有者和/或提供本程序的第三方组织,“照旧”不承担任何形式的担保责任,无论是承诺的还是暗含的,包括但不限于就适售性和为某个特殊目的的适用性的默认担保责任。有关本程序质量与效能的全部风险均由您承担。如本程序被证明有瑕疵,您应承担所有必要的服务、修复或更正的费用。

16.责任范围

除非受适用法律要求或者书面同意,任何版权所有者,或任何依前述方式修改和/或发布本程序者,对于您因为使用或不能使用本程序所造成的一般性、特殊性、意外性或间接性损失,不负任何责任(包括但不限于,资料损失,资料执行不精确,或应由您或第三人承担的损失,或本程序无法与其他程序运作等),即便该版权所有者或其他组织已经被告知程序有此类损失的可能性也是如此。

17.第1516节的解释

如果上述免责申明和责任范围不能按照地方法律条款获得法律效力,复审法庭应该采用最接近于完全放弃关于本程序的民事责任的法律,除非随同本程序的责任担保或责任假设合同是收费的。

-条款和条件结束-

如何在您的新程序中应用这些条款?

如果您开发了一个新程序,并且希望能够让它尽可能地被大众使用,达成此目的的最好方式就是让它成为自由软件。任何人都能够依据这些条款对该软件再次发布和修改。

为了做到这一点,请将以下声明附加到程序上。最安全的作法,是将声明放在每份源码文件的起始处,以有效传达无担保责任的讯息;且每份文件至少应有「版权」列以及本份声明全文位置的提示。


<用一行描述程序的名称与其用途简述>

版权所有(C) <年份><作者姓名>

本程序为自由软件;您可依据自由软件基金会所发表的GNU通用公共授权条款,对本程序再次发布和/或修改;无论您依据的是本授权的第三版,或(您可选的)任一日后发行的版本。

本程序是基于使用目的而加以发布,然而不负任何担保责任;亦无对适售性或特定目的适用性所为的默示性担保。详情请参照GNU通用公共授权。

您应已收到附随于本程序的GNU通用公共授权的副本;如果没有,请参照

<http://www.gnu.org/licenses/>.

同时附上如何以电子及书面信件与您联系的资料。

如果程序进行终端交互方式运作,请在交互式模式开始时,输出以下提示:

<程序> 版权所有(C) <年份> <作者姓名>

本程序不负任何担保责任,欲知详情请键入'show w'

这是一个自由软件,欢迎您在特定条件下再发布本程序;欲知详情请键入'show c'

所假设的指令'show w''show c'应显示通用公共授权的相对应条款。当然,您可以使用'show w''show c'以外的指令名称;对于图形用户界面,您可以用“关于”项代实现此功能。

如有需要,您还应该取得您的雇主(若您的工作为程序设计師)或学校就本程序所签署的“版权放弃承诺书”。欲知这方面的详情,以及如何应用和遵守GNU通用公共授权,请参考

<http://www.gnu.org/licenses/>

GNU通用公共授权并不允许您将本程序合并到私有的程序中。若您的程序是一个子程序库,您可能认为允许私有的应用程序链接该库会更有用。如果这是您所想做的,请使用GNU松弛通用公共授权代替本授权。但这样做之前,请阅读

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics