3. 选择一个好的许可证和版权说明(从理论上探讨)

许可证的选择实际上是为你自己选择一个你与其他开发者以及用户之间的社会契约。给软件附加版权说明实际上是使得给你创作的软件和其衍生产品加上许可证的行为合法化。

3.1. Open source and copyrights

任何非公共的东西几乎都有版权,有的甚至还有不止一个版权。根据伯尔尼公约(1978年成为了联邦的法律),版权并不必显式地声明。也就是说,即使没有给出版权声明,一部作品的作者仍然是持有版权。

如何确定谁是某个东西的版权所有者是非常困难的,特别是在软件行业,因为有时候软件是许多人共同编写出来的。这也就是为甚么许可证在软件发布中非常重要的原因。通过设定一些指出在何种情况下可以使用的条款,许可证授予用户权利并保证用户免受版权所有者各种行为对他们造成的伤害。

在私有软件领域,许可证条款总是被设计成保护版权所有者。这是一种只给用户少得可怜的权利的做法,然而这种做法却保留尽可能多的合法权利给版权所有者。版权所有人非常关键,而且许可证的逻辑是如此严密以至于那些条款中的技术上精确已经都不重要了。

相反,开源软件领域,则是另一番景象;在这里版权是用来保护许可证的。版权所有者唯一的权利就是确保许可证的落实。如果不这样的话,将只有很少的权利得到保留而让用户面临更多的取舍。特别是版权所有者自己也不能对你已经拥有的副本更改任何许可证条款。因此,在开源软件领域,版权所有者的作用要小的多而许可证条款显得更为重要。

通常一个项目的版权所有者就是该项目的首席开发人员或发起组织。项目的首席开发员易人一般就意味着版权所有者发生了变化。不过这并不是一个严格的规则,许多自由软件项目有着多个版权所有人,这种领导模式至今还没有出现任何法律问题。

许多项目选择让自由软件基金会作为版权所有者,理论上来说这样更有利于开源软件受到保护并让专业的律师来处理各种法律问题。

3.2. 怎样才有资格被称为开源软件

根据许可的目的,我们可以区别许可证赋予你的各种不同权利。复制再发布的权利,使用的权利,为个人目的修改的权利,发布修改后的作品的权利。一个许可证可能会对这些权利加上一些限制或给出一些附加条件。

开源原动力站点(http://www.opensource.org)就是各种对软件“开源”或“自由”思考的结果。该站点许可证的约束条款包括:

  1. 无限制的拷贝权
  2. 无限制的使用权
  3. 无限制的针对个人使用目的而修改的权利

这些指导方针保证修改后的二进制代码的再发布权;这与那些要求可以无障碍的取用软件的发行商的需求相吻合。这个做法使得软件的作者们可以要求修改的原始源代码采取把原有代码加上补丁程序的方式来再发布,这样就保全了作者们的原意同时又可以让他们“审查”其他人对项目的改进工作。

OSD(开放源代码定义)是对“OSI开源软件认证”证书的法律定义,实际上她和人们曾经提出的各种关于“自由软件”的定义一样好。所有标准的许可证协议(如MIT、BSD、Artistic、GPL和LGPL协议)都与该提法一致(然而有时候,比如GPL,有更多的限制条款,在选择这些许可证时请仔细理解)。

值得注意的是有些只允许非商业用途的许可证并没有资格被成为开源许可证,尽管他们标榜自己是“GPL”或者其他典型的许可证。这种许可证对特殊的拥有者,或者对个人和小组有着歧视。他们对通过光盘渠道再发布的做法以及其他商业化的推广开源软件的尝试做出种种限制,从而把事情搞的非常复杂。