IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Open source | Linux  >

开放源码许可,第 2 部分: 学术许可与互惠许可

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Martin Streicher (mstreicher@linux-mag.com), 主编, Linux Magazine

2006 年 1 月 05 日

开放源码许可为开放的源代码的传播提供法律基础。本系列由两部分组成,本文是第 2 部分,探讨开放源码许可两种最流行的形式,即学术许可和互惠许可,并将描述接受每种许可的条款的被许可方的义务。
这不是法律意见

本系列旨在向读者介绍开发源码许可的基本知识。不管是开放源码许可还是版权,在法律上都还不是固定的。在本系列文章发表之后,它们都还会不断发展演变,从而纠正本系列中的一些废弃或错误的细节。

此外,发表本系列文章所涉及的作者或编辑都不是经过许可的律师,作者也不是 IBM 的被许可方。本系列没有想要作为法律意见。因此,您在作出关于版权问题的决策之前,应该向律师咨询,而不要根据本系列中的信息进行决策。

有一个流传很广的传说,说三明治(sandwich) 是 John Montagu 发明的,他是 Fourth Earl of Sandwich。这个故事说,Montagu 整天忙于赌博,连正经吃饭的功夫都没有,所以他把一片烤牛肉放在两片面包之间,以免弄脏手指头和牌。唉,有时候懒惰也能带来发明呀。

不管三明治的这个传说是真是假,但是不可否认,即使最偶然的发明,也可以产生巨大的影响。再想想活字印刷、火药、三明治、内燃机、灯泡、电话、晶体管和 Internet。

无疑,Internet 的发明对于大家尤其是我们这一代来说是体会最深的,这很大程度上是因为它还处在发明当中,并且在非常短的时间内就迅速普及,影响到商业、通信和文化等领域,有好的方面,也有坏的方面的影响。Montagu 如果还在的话,一定会喜欢浏览器的。

同样,如果您在阅读本文的话,您可能很感激 Internet 对软件开发带来的改变。源代码已经出现在电子公告牌上和某些 Usenet 新闻组中很长时间了(在 1986 年,您还能在其他什么地方下载最新版的 Rogue?),但是快速和全球化的 Internet 才使共享 流行起来。

也许相对于支持 Internet 的协议、主干线和服务器来说,开放源码许可 更加促进了源代码和思想的交换。实际上,Internet 的许多最基本的应用程序 —— Linux®、Apache、MySQL、Perl、PHP(“LAMP” 堆栈)—— 都是通过开放源码许可提供的。开放源码许可试图尽可能广泛、公平且具有最少限制地许可软件固有的版权。

开放源码许可的意图

具体来说,所有开放源码许可都有五个共同的基本意图(摘自 attorney Lawrence Rosen 的 Open Source Licensing: Software Freedom and Intellectual Property Law 一书,并与权限一起使用):

  • 被许可方可以为任何目的自由使用开放源码软件。
  • 被许可方可以自由复制开放源码软件,并可以自由发布这些副本,无需向许可方支付版税。
  • 被许可方可以自由地创建开放源码软件的派生作品,并可以自由发布这些作品,无需向许可方支付版税。
  • 被许可方可以自由访问和使用开放源码软件的源代码。
  • 被许可方可以自由地组合开放源码软件和其他软件。

所有这些意图都是肯定的,都不会阻止许可方或被许可方强加附加的条款。实际上,Opensource.org 上列出了 50 多个各不相同的经 Open Source Initiative (OSI) 批准的许可,各自都有自己的机制、要求和限制。

50 个许可确实是一个不小的数目,但是大多数都可归为两类:学术许可互惠许可

  • 学术许可,比如 Berkeley Software Distribution (BSD) 许可,允许软件用于任何目的,而不要任何的回报。通过学术许可而获得的软件可以被自由地修改、销售、重新发布、再次许可,以及与其他软件组合,但是其他软件许可可能会阻止这种组合。(尽管学术许可最初是由大学创建的,以向公众许可学术作品,但是广义来讲,遵守该许可的许可方和被许可方不一定都要是学术机构。)
  • 互惠许可,比如原型的 GNU General Public License (GPL),也允许软件用于任何目的,但是要求派生的作品必须在完全相同的许可条款下被再次许可。与学术许可一样,在互惠许可下许可的作品也旨在用于公共用途(common good)。但是,互惠许可更进了一步,以确保所有后续的派生作品也可用于公共用途。




回页首


学术许可

在学术许可下提供的软件本质上是一个 “赠品”,您可以无任何阻碍地使用它,并且可以在您选择的新的许可下再次许可您的派生作品。

BSD 许可是一个学术许可,Apache Software License 和 MIT License 也是的。后者尤其简单,但也例示了学术许可(为了简单起见,MIT License 的保证条款和关于软件保证的任何讨论都被省略了):

MIT License 摘要

Copyright (c) 年份,版权持有者

权限被免费授予给任何获得该软件副本及相关文档文件(简称为 “Software”)的人,以无限制地处理 Software,包括没有限制使用、复制、修改、合并、出版、发布、再次许可和/或销售 Software 副本的权利,并允许 Software 被提供给的人这样做,但必须遵守以下条件:

上面的版权注意和这个权限注意都应该包含在 Software 的所有副本和固有部分中。

确实,MIT License 的条款与开放源码许可的五个意图非常一致。单词权限 意味着许可;短语免费 是指不要给许可方任何补偿;包括没有限制使用、复制、修改、合并、出版、发布、再次许可和/或销售 Software 副本的权利 这个条款允许复制、源代码访问(“修改”)、组合(“合并”)、重新发布甚至获利(“销售”)。包括不限制再次许可的权利 这个短语尤其重要:它允许被许可方进行许可,但是并不要求被许可方非得这么做。而且,被许可方可以设置再次许可的条款 —— MIT License 不强加任何限制。要包含版权注意的条件在所有被许可方头上强加了一个小小的义务,但是反之不然。





回页首


互惠许可

在所有开放源码许可中,GPL 是使用最广泛、影响最强大的。GPL 由 Free Software Foundation 的 Richard Stallman 编写,它要求软件开发人员同意并向其他软件开发人员提出一个契约:“您可以自由地使用该源代码,但是如果您修改它并选择以任何形式发布您的修改,那么您必须在该契约的条款下将您的源代码提供给其他人。”

具体来说,GPL 指出:

GNU 许可摘要

您可以修改程序的副本或者它的任何部分,从而基于该程序形成一个作品,并复制和发布这样的修改或作品,那么不管是作为整体还是部分包含或者派生自该程序或其任何部分的作品,都应该在该许可的条款下作为整体免费许可给所有第三方。

这些要求适用于整个修改的作品。如果该作品的一些可识别的部分不是派生自该程序,那么它们当然可以被看成是独立的作品,因此,当您将这些部分作为单独的作品发布时,该许可及其条款不适用于它们。

但是当您将这些部分作为一个基于该程序的作品的一部分发布时,那么该整体的发布必须遵守该许可的条款,该许可对其他被许可方的权限被扩展到整个作品,因而作用于每个部分,而不管它是谁编写的。

整个 GPL 内容很多,但是上面两段给出了它的基本思想:

  • 被许可的软件以源代码的形式提供(根据其他条款,也可能以其他形式提供)
  • 被许可的软件可以被用于任何目的
  • 被许可的软件可以被自由地修改以及与其他软件组合,以创建派生的作品
  • 被许可的软件可以被重新发布

与 MIT License 一样,GPL 也满足开放源码许可的所有条件。它的互惠只是一个附加的约定。

您可以销售在 GPL 下许可的软件吗?当然可以。例如,您可以下载 gcc,为您喜欢的 Linux 风格编译它,并将二进制代码卖给其他人。但是,即使您做了改进,您也必须以源代码形式提供软件。

您可以在自己的软件中包含 GPL 软件吗?可以,但是您的义务取决于您是如何包含代码的。如果您从 GPL 代码和您自己的代码发布一个二进制版本,那么重新创建该二进制版本所需的所有源代码都必须是可用的。但是,如果您的软件是一个合成作品 —— 由独立的部分组装而成,一些是您自己的代码,一些是在 GPL 下提供的代码 —— 那么只有 GPL 代码必须是可用的。至少根据 Linux 的创建者和主要架构师 Linus Torvalds 所说,针对 GPL 代码 —— 也即针对 libavl(这是用于平衡二叉树的 GNU 库)—— 链接的代码也不要遵守互惠。





回页首


使用开放源码许可

尽管 MIT License 和 GPL 都是有效的开放源码许可,但是它们通过不同方法达到各自的目的。并不是说其中一个比另一个要好,它们只是适用于不同的目的而已。

但是这呈现出这样一个问题,即一些开放源码许可与另一些许可不兼容。奇怪的是,即使模块 A 和模块 B 都是用 C 编写的,并且可由任何编译器容易地混合,但是模块各自的许可可能会阻止它们的组合。

如果在自己的项目中采用开放源码的代码,请根据您已经同意的所有许可,认识到您作为被许可方的所有义务。在合成作品中混合来自不同许可的代码一般来说不会出现问题。每个独立的作品保留它自己的版权和许可,而合成作品本身一般是在打包者选择的单独许可下作为整体发布的。

派生作品更加复杂。例如,如果您采纳和合并了通过互惠许可而许可的软件,那么根据这个许可的排他条款,您的派生作品必须重新被提供。显然,根据 GPL 而许可的代码不能与在不同互惠协定下许可的其他代码相混合。

但是,GPL 代码可以自由地与 BSD 和 MIT License 代码混合。不幸的是,GPL 的作者们主张(转述,而不是引用),Apache License 是不兼容的。同样,所有开放源码许可并不是相等的。如果您需要采纳由不同开放源码许可控制的代码,请咨询合格的法律顾问。





回页首


在自由的空气中享受 自由

GPL 的反对者认为该许可是违反宪法的。其他人则攻击 GPL 的互惠。有一个人甚至起诉 Free Software Foundation,向其索赔,理由是 GPL 试图将软件价格定为 $0,影响了原告作为开发人员的生活。

但是开放源码许可不是平凭空发明的法律。相反,正如本文所展示的,开放源码许可切实建立于版权法的基础之上,并力图表达所有者的希望,以尽可能广泛地共享代码。没有法律规定您一定要将您的代码许可为开放的源代码,也没有法律规定您必须同意开放源码许可的条款。您可以自由地选择:构建、购买或者借用。现在越来越多的开发人员选择借用(并借出),使得开放源码在任何意义上都成了一个契约。



参考资料

学习

获得产品和技术
  • 订购免费的 SEK for Linux,这套 DVD(两张),包含了来自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的用于 Linux 的最新 IBM 试用软件。

  • 使用 IBM 试用软件 改进您的下一个开放源码开发项目,可以通过下载或从 DVD 获得这些软件。


讨论


关于作者

Martin Streicher 是 Linux Magazine 的主编。以前他曾经是 Berkeley Systems 的一名执行经理,开发过获奖软件,包括 YOU DON'T KNOW JACK 游戏和 After Dark 屏幕保护程序。他拥有 Purdue University 的计算机科学硕士学位。他毕业后的第一份工作是为 CONVEX 超级计算机机进行 UNIX 编程。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款