管理版权归属

自由软件的版权归属,它的性质是怎样的,这一点有必要澄清一下。如果不使用贡献者许可协议或者类似的文档(我们强烈反对这种做法),那自由软件的开发者和发布者,该怎么管理有关软件版权的法律权利呢?

自由软件项目归谁所有?

向自由软件项目做贡献时,如果你没有将你的版权转让至其他人,那对你的贡献而言,你仍然拥有其知识产权。你的改动,是以这个项目首先分发所使用的许可,其相同的条款许可给他方的,包括其它版权持有人。

像这样的话,大多数情况下,任何自由软件项目的的版权,都是由向其贡献了知识产权的人所聚合起来的。这些人再在自由软件许可证下,将其授权给用户,并相互授权。

证实来源

对部分项目,尤其是商业项目而言,建议对每个贡献都确立以下几点:

  1. 贡献者拥有其贡献的版权,或得到了版权持有人的使用授权
  2. 贡献者统一在本项目的许可证下,对其版权进行授权

如果你的项目可以以这种方式正式证实来源,我们建议使用开发者来源证明(Developer Certificate of Origin)。大多数项目为了这么做,都会要求作者对其贡献进行“签名(sign-off)”。Git 版本控制系统,使用“git commit -s”标志提供了一种方法,来表明所给贡献已经签名。

改变项目许可证

有时候,你可能想改变你项目的许可证。

如果项目以宽松型许可证授权,那么一般来说,是可以用一个新的许可证来分许可(sublicense),并将新许可证用在未来的改动之上的。你仍然要遵守原许可证的条款,例如署名,但是后续更改可以在不同条款下授权。在这种情况下,改变许可证就类似于开始了一个新项目,并把原来的代码并入了其中。

然而,如果这个项目是以 copyleft 许可证授权的,改变许可证就要难一些 – 而且经常不可能。这是 copyleft 许可证有意设计的特性:这么做是有必要的,这样才能防止项目北并入非自由作品之中。对一份 copyleft 项目,你一般不能像许可宽松型项目那样,对它进行分许可。

改变 copyleft 项目的许可证是可能的,但是你必须**(a)确保得到了所有版权持有人的权限,或者(b)**重写所有贡献。如果你想改变宽松型许可证,而不想受到原条款(例如署名)的约束,那么这种方法同样适用,但这么做通常不值得,因为宽松型许可证的条款相对没那么繁杂。

正因如此,在众多聚合而成的贡献中,选择把版权保留住,而不是将其转让给单一实体,是 copyleft 项目推荐的做法:这样能让这个项目更加难以切换为非自由许可证,进而牢牢保住的自由软件的状态。