怎样在程序中使用GNU许可证
无论使用哪一种许可证,使用时需要在每个程序的源文件里加入两个元素:一个版权声明和一个复制许可声明。说明该程序使用GNU许可证进行受权。另外在声明版权前应该说明文件的名称以及用途。在复制许可声明以后,最好写上做者的联系信息。使得用户可以联系到你,假设对源文件进行了改动,最好使用简短的信息描写叙述改动的内容。通用的格式例如如下所看到的:
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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.
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.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
版权声明中请务必使用英文单词“Copyright”。且当中的年份是完毕公布版本号的时间,如若1998年完毕了公布版本号直到1999年才公布出去,那么使用1998年。需要明白说明使用的是GNU GPL的那个版本号,是版本号2仍是版本号3。linux
i2c-core.c文件里的GNU许可描写叙述例如如下所看到的:
/* i2c-core.c - a device driver for the iic-bus interface */
/* ------------------------------------------------------------------------- */
/* Copyright (C) 1995-99 Simon G. Vogl
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.
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.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301 USA. */
/* ------------------------------------------------------------------------- */
/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi>.
All SMBus-related things are written by Frodo Looijaard <frodol@dds.nl>
SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> and
Jean Delvare <khali@linux-fr.org>
Mux support by Rodolfo Giometti <giometti@enneenne.com> and
Michael Lawnick <michael.lawnick.ext@nsn.com> */
假设程序以终端方式执行,请在交互模式開始时,输出下面提示:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
所若是的指令‘show w’与‘show c’应显示通用公共受权的相相应条款。你也可以使用着两个指令之外redis
的指令名称;对于图形用户界面,你可以使用“about box”来替代此功能。
历史
GPL由斯托曼撰写。用于GNU计划。dom
它以GNU Emacs、GDB、GCC的许可证的早期版本号为蓝本。ide
这些许可证都包括有一些GPL的版权思想。但仅针对特定的程序。斯托曼的目标就是创造出一种四海以内皆可以使用的许可证。这样就能为不少源码共享计划带来福音。GPL版本号1就是这样,在1989年1月诞生。函数
到1990年时,因为一些共享库而出现了对照GPL更宽松的许可证的需求。因此当GPL版本号2在1991年6月公布时,还有一许可证——库通用许可证(Library General Public License,简称LGPL)也随之公布,并记做“版本号2”以示对GPL的补充。版本号好LGPL版本号2.1公布时再也不一样,而LGPL也被重命名为GNU宽通用公共许可证(Lesser General Public License)以体现GNU哲学观。优化
GPLv1
GPL1
GPL版本号1,即最初的版本号,公布于1989年一月,其目的是防止那些阻碍自由软件的行为。而这些阻碍软件开源的行为主要有两种(一种是软件公布者仅仅公布可运行的二进制代码而不打不详细源码,一种是软件公布者在软件许可加入限制性条款)。所以依照GPLv1。假设公布了可运行的二进制代码,就必须同一时候公布可读的源码。并且在公布不论什么基于GPL许可的软件时。不能加入不论什么限制性的条款。
GPLv2
GPL2
理查德.斯托曼在Gplv2中所作的最大的修改就是添加了“自由仍是死亡”(“Liberty or Death”)这章条款,即第七章liberty-or-death Presentation。this
这章中声明道。假设哪一个人在公布源于GPL的软件的时候。同一时候加入强制的条款。以在必定程度上保障和尊重其它一些人的自由和权益(也就是说在一些国家里,人们仅仅能以二进制代码的形式公布软件,以保护开发人员的版权)。那么他将根本无权公布该软件。idea
到了1990年,人们广泛以为一个限制性弱的许可证对于自由软件的发展是有战略意义上的优势的。所以。当GPL的第二个版本号GPLv2在1991年6月公布时,与此同一时候第二个许可证程序库GNU通用公共许可证(LGPL,the Lesser General Public License)也被公布出来并且一開始就将其版本号定为第二版以表示其和GPLv2的互补性。这个版本号一直延续到1999年,并分支出一个派生的LGPL版本号号为2.1。并将其重命名为轻量级通用公共许可证(又称宽通用公共许可证)(Lesser General Public License)以反映其在整个GNU哲学中的位置。
GPLv3
理查德.斯托曼起草了第一份GNU GPLv3草案,在美国麻州剑桥市的MIT大学。到2005年,GPL版本号3正式由斯托曼起草,由伊本.莫格林和软件自由法律中心(Software Freedom Law Center)提供法律咨询。
斯托曼在2006年2月25日自由及开源软件开发人员欧洲会议的演讲上说:“
在所有的修改中,最重要的四个是:
解决软件专利问题;
与其它许可证的兼容性;
源码分区和组成的定义。
解决数位版权管理(DRM)问题。spa
”
2006年,自由软件基金会针对GPL的可能的改动開始了12个月的公共咨询。翻译
在公共咨询的过程当中,有962条评论被提交给第一稿草稿。终于总共同拥有2,636条评论被提交。GPLv3草稿 于2006年1月16日開始可用。
2007年3月28日正式启用。
2007年6月29日。自由软件基金会正式公布了GPL第三版。
GPLv2与GPLv3的一些区别
GPLv3新版本号的思想性和可运行性相比GPLv2版本号有了很是大的提升。
(1)版权赋予者
咱们用两个步骤来保护你的权利:1.给软件赋予版权;2.向你提供本许可证,给你拷贝、改动和发行软
件的合法许可权。GPLv2中的“we”,指的是FSF(自由软件基金会)。
但是GPLv3中是这样描写叙述的“不论什么使用GUN GPL 规则来保护本身权利的开发人员可採用两个步骤:1.声明
软件的版权。2.向你提供本受权文件以给你复制、公布并且/或改动软件的法律许可”。软件版权的主张者就是
软件的开发人员本身,而再也不是FSF。GPLv3新版本号让广大自由软件开发人员当上了自由软件的主人,成为真正的
自由软件的版权拥有者。
(2)权利终止
GPLv2版本号第四条中“除本受权所明示的方式外,您不得对本程序加以复制、改动、在受权或散布。不论什么
试图以其它方式进行复制、改动、在受权或者散布本程序的行为均为无效,并且将本身主动终止您基于本受权所得
享有的权利”。一项权利被“本身主动终止”。貌似没有什么约束力。
GPLv3中,将此条款进行了进一步的说明“一旦出现不论什么(违反许可证的状况)。版权拥有者都可以採用
不论什么合理的手段通知你违反了本许可证,并在60天之后的不论什么时间终止你的权利”。而这个版权拥有者就是自
(3)GPLv3中包括明白的专利承认条款,意味着不论什么向GPL项目捐赠代码的实体容许将软件包括的专利永久性免
费许可给该项目。
GPLv2具体条款
尽管现在已经公布了GPLv3,但是仍然存在一些分歧,眼下用的多的仍是GPLv2,具体条款的描写叙述例如如下所看到的。
声明
这是一份GNU通用公共受权非正式的中文翻译。它并非由自由软件基金会所发表,亦非使用GNU通用公共受权的软件的法定散布条款——仅仅有GUN通用公共受权英文原文的版本号始具备此等效力。然而。咱们但愿这份翻译能帮助中文的使用者更了解GNU通用公共受权。
前言
大多数软件受权声明是设计用以剥夺您分享与改动软件的自由。
相反地。GNU通用公共受权力图保证您分享与改动自由软件的自由——确保软件对所有的使用者而言都是自由的。
通用公共受权适用于大多数自由软件基金会的软件,以及不论什么做者制定使用本受权的其它软件。(有些自由软件基金会的软件,则适用GUN函数库通用公共受权规定。
)您也可以让您的软件适用本受权规定。
当咱们在谈论自由软件时。咱们所指的是自由,而非价格。咱们的通用公共受权是设计用以确保使您保有散布自由软件重制物的自由(以及您可以决定此一服务是否收费)。确保您能收到源代码或者在您需要时便能获得它,确保您能变动软件或将它一部分用于新的自由软件;并且确保您知道您可以从事上述的事情。
为了保障您的权利,咱们需要做出限制:禁止不论什么人否定您的上述的权利。或者要求您放弃这些权利。假设您散布软件的副本。或者对之加以改动。这些限制就转化成为您的责任。
好比,假如您散布此类程序的副本。无论是免费或收取费用,您必须将您所享有的一切权利交付收受者。您也必须确保他们能收到或获得源代码。
而且您必须向他们展现这些条款的内容。使他们知悉他们所享有的权利。
咱们採取两项措施来保护您的权利:(1)以著做权保护软件,以及(2)提供您本受权,赋予您复制、散布或改动软件的法律许可。
同一时候。为了保护做者与咱们(指自由软件基金会),咱们但愿肯定每个人都明了。自由软件是没有担保责任的。假设软件杯他人改动并加以传递。咱们需要其收受者知道,他们所获得的并非原软件,所以由他人所引出的不论什么问题对原做者的声誉将不会有不论什么的影响。
最后,所有自由软件不断地受到软件专利的威胁。咱们但愿能避免自由软件的在散布者以我的名义取得专利受权而使程序转优化的风险,为了防止上述的事情发生,咱们在此明白声明:不论什么专利都必须为了每个人的自由使用而核准。斗则就不该授予专利。
下面是有关复制、散布以及改动的明白条款及条件
复制、散布与改动的条款与条件
0、凡著做权人在其程序或其它著做中声明,该程序或著做得在通用公共受权条款下散布。本受权对其均有适用。下面所称的“本程序”。是指不论什么一种适用通用公共受权的程序或著做。“基于本程序所生的著做”,则指本程序或不论什么基于著做权法所产生的衍生著做。换言之,是指包括本程序全部或一部的著做,不管是完整的或通过改动的程序,以及(或)翻译成其它语言的程序(下面“改动”一词包括但不限于翻译行为在内)。被受权人则成为“您”。
本受权不适用于复制、散布与改动之外的行为;这些行为不在本受权范围内。运行本程序的行为并不受限制,而本程序的输出仅仅有在其内容构成基于本程序所生的著做(而非仅仅是因为运行本程序所形成)时,始受本受权约束。
至于程序的输出内容是否构成本程序的衍生著做。则取决于本程序的详细用途。
1.您可以对所收受的本程序源代码。无论以何种媒介,复制于散布其完整的重制物,然而您必须符合下面条件:以显著及适当的方式在每一分重制物上公布适当的著做权标示以及无担保声明。维持所有有关本受权以及无担保声明的原貌。并将本受权的副本连同本程序一并交付予其它任一位本程序的收受者。
您可以对让重制物的实际行为请求必定的费用。您也可以自由决定是否提供担保以做为对价的交换。
2.您可以改动本程序的一个或数个重制物或者本程序的不论什么部分。以此造成基于本程序所生的著做。并依前述第一条规定,复制于散布此一改动过的程序或著做,但您必须符合下面要件:
(a)您必须在所改动的文件上附加显著的标示,叙明您改动过这些文件。以及改动日期。
(b)您必须就您所散布或发行的著做,无论是包括本程序全部或一部的著做,或者是自本程序或其它不论什么部分所
衍生的著做,整体受权所有第三人依本受权规定使用,且不得所以项受权行为而收取不论什么费用。
(c)若通过改动的程序在运行时一般以互动方式读取命令时。您必须在最常被使用的方式下。于開始进入这样的互
动式使用时,列印或展现一下宣言:适当的著做权标示及无担保声明(或者声明您提供担保)、使用者可以
依这些条件在散布此程序,以及告知使用者怎样浏览本受权的副本。(例外:若本程序自己是以互动的方式
运行,然而一般却不会列印该宣告时,则您基于本程序所生的著做便无需列印该宣告。)
这些要求对改动过的著做是整体适用的。尚著做中可识别的一部分并非衍生自本程序,并且可以合理地以为
是一个独立的、个别的著做,则当您将其做为个别著做加以散布时,本受权及条款将不适用于该部分。然而
当您上述部分。做为基于本程西所生著做的一部而散布时,整个著做的散布必须符合本受权条款的规定,而
本受权对于其它被受权人所为的许可及著做整体。
所以,本规定的意图不在于主张或剥夺您对于全然由您所完毕著做的权利;应该说,本条规定意在行使对基
此外,非基于本程序所生的其它著做与本程序(或基于本程序所生的著做)在同一储存或散布的媒介上的单
纯汇集行为。并不会使该著做所以受本受权条款拘束。
3.您可以依前述第1、二条规定,复制与散布本程西(或第二条所述基于本程序所产生的著做)的目的码或可运行形式。但您必须符合下面要件:
(a) 附上完整、相相应的机器可判读源代码,而这些源代码必须依前述第1、二条规定在经常用以做为软件交换的媒
介物上散布;或
(b) 附上至少三年有效的书面报价文件。提供不论什么第三人在支付不超过实际散布源代码所需成本的费用下。取得相
同源代码的完整机器可读重制物,并依前述第1、二条规定在经常用以做为软件交换的媒介物上散布该重制
物。或
(c) 附上您所收受有关散布一样源代码的报价信息。(本项选择仅在飞赢利散布、且仅在您依前述b项方式自该书
面报价文件收受程序目的码或可运行形式时,始有适用。)
著做的源代码,是指对著做进行改动时适用的形式。对于一个可运行的著做而言,完整的源代码是指著做中所包
含全部模组的全部源代码。加上相关接口的定义档。还加上用以控制该著做编译于安装的描写叙述。然而,特别的
例外状况是。所散布的源代码并不需包括不论什么通常会随着所运行做业系统的主要组成部分(编译器、核心等
等)而散布的软件( 无论以源代码或二进制格式),除非该部分自己即附加在可运行程序中。
若可运行码或目的嘛的散布方式,是以指定的地点提供存取位置供人复制。则提供可自一样地点复制源代码的
使用机会,视同对于源代码的散布。然而第三人并不所以而负有将目的码连同源代码一并复制的义务。
4.除本受权所明示的方式外,您不得对本程序加以复制、改动、在受权或散布。不论什么试图以其它方式进行复制、改动、在受权或者散布本程序的行为均为无效,并且将本身主动终止您基于本受权所得享有的权利。然而,依本受权规定 自您手中收受重制物或权利之人,仅仅要遵照本受权规定,他们所得到的受权并不会所以终止。
5.因为您并未在本受权上签名,因此您无须接受本受权。然而,除此以外您别无其它改动或散布本程序或其衍生著做的受权许可。若您不接受本受权,则这些行为在法律上都是被禁止的。
所以。藉由对本程序(或不论什么基于本程序所生的著做)的改动或散布行为。您表示了对于本受权的接受。以及接受所有关于复制、散布或改动本程序或基于本程序所生著做的条款与条件。
6.每当您在散布本程序(或不论什么基于本程序所生的著做)时。收受者即本身主动得到原受权人所授予依本受权条款与条件复制、散布、或改动本程序的权利。您不得就本受权所赋予收受者行使的权利附加不论什么进一步的限制。
您对于第三人是否履行本受权一事,无需负责。
7.若法院判决、专利侵权主张或者其它不论什么理由(不限于专利争议)的结果。使得加诸于您的条件(无论是由法院命令、协议或其它方式形成)与本受权规定有所冲突,他们并难免除您对于本受权规定的遵照。若您没法同一时候符合依本受权所生义务以及其它相关义务而进行散布,那么结果即是您不得散布该程序。
好比,若专利受权不一样意直接或间接透过您而取得重制物之人,以避免付权利金的方式再散布该程序时,您惟一能同一时候知足该义务以及本受权的方式就是完全避免进行该程序的散布。
若本条任一部分在特殊状况下被认定无效或没法运行时。本条其他部分仍适用。且本条全部于其它状况下仍应适用。
本条的目的并不在诱使您侵害专利或其它財产权的权利主张,或就此类主张的有效性加以争执;本条的惟一目的,是在保障藉由公共受权惯例所运行自由软件散布系统的完整性。不少人信赖该系统一向使用的应用程序,而对经由此系统散布的大量软件有至关多的贡献;做者/贡献者有权决定他或她是否但愿经由其它的系统散布软件,而被受权人则无该种选择权。
本条的用亦在于将本受权其它不肯定的部分完全解释清楚。
8.若因为专利或享有著做权保护的接口问题,而使得本程序的散布或使用局限于某些国家时,则将本程序置于本受权规范之下的原著做权人得增列明白的散布地区限制条款,将该等国家排出在外,而使散布的许可仅仅限在未受排除的国家以内或之中。在该等状况下。该限制条款如同以书面方式订定与本受权内容中。而成为本受权的条款。
9.自由软件基金会得随时发表通用公共受权的修正版或新版本号。新版本号在精神上将近似于眼下的版本号,然而在细节上或所不一样以因应新的问题或情况。
每一个版本号都有个别的版本号号码。若本程序制定有受权版本号号码,表示其适用该版本号或是“不论什么新版本号”时,您得选择遵循该版本号或不论什么自由软件基金会往后所发表新版本号的条款与条件。若本程序并未制定受权版本号号码时,您便得选择任一自由软件基金会所发表的版本号。
10.若您想将部分程序归入其它自由程序,而其散布的条件有所不一样一时候,请写信取得做者的许可。若为自由软件基金会享有著做权的软件。请写信至自由软件基金会;咱们有时会以例外的方式予以处理。咱们的决定取决于两项目标:确保咱们自由软件的所有衍生著做均维持在自由的状态,并普遍地促进软件的分享与在利用。
无担保声明
11.由于本程序是无偿受权,所以法律许可范围内,本受权对本程序并不负担保责任。非经书面声明,著做权人与(或)其它提供程序之人。无论明示或默示,均是依“现况”提供本程序而并没有不论什么形式的担保责任。其包含但不限于,就适售性以及特定目的的适用性为默示性担保。有关本程西品质与效能的全部风险是由您承担。如本程序被证实有瑕疵,您应承担全部服务、修复或改正的费用。
12.非经法律要求或书面容许。不论什么著做权人或不论什么可能依前述方式改动与(或)散布本程序者,对于您因为使用或不能使用本程序所形成的通常性、特殊性、意外性或间接性损失。不负不论什么责任(包含但不限于,资料损失,资料运行不明白,或应由您或第三人承担的损失,或本程序没法与其它程序运做等),即使前述的著做权人或其它人已被告知该等损失的可能性时,亦同。