如何在程序中使用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。
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’应显示通用公共授权的相对应条款。你也可以使用着两个指令以外
到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。这章中声明道,如果哪个人在发布源于GPL的软件的时候,同时添加强制的条款,以在一定程度上保障和尊重其他一些人的自由和权益(也就是说在一些国家里,人们只能以二进制代码的形式发布软件,以保护开发者的版权),那么他将根本无权发布该软件。
到了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)问题。” 2006年,自由软件基金会针对GPL的可能的修改开始了12个月的公共咨询。在公共咨询的过程中,有962条评论被提交给第一稿草稿。最终总共有2,636条评论被提交。GPLv3草稿 于2006年1月16日开始可用。2007年3月28日正式启用。 2007年6月29日,自由软件基金会正式发布了GPL第三版。 GPLv2与GPLv3的一些差别 GPLv3新版本的思想性和可执行性相比GPLv2版本有了很大的提高。 (1)版权赋予者 我们用两个步骤来保护你的权利:1.给软件赋予版权;2.向你提供本许可证,给你拷贝、修改和发行软