开源组件已改变了我们开发软件的方式。来自开源社区的现成库(ready-made libraries)使忙碌的开发者们能专注于他们的秘密武器,这些秘密武器或将成为未来令人兴奋的新软件产品。而且不需要付费。下载开源组件不需要你提供信用卡号码,但这些组件附带的开源许可证会要求你遵守某些条款。特别是当它们使用了 copyleft 开源许可证时。
虽然 copyleft 许可证曾经是最普遍的开源许可证,但在过去几年中,我们发现 copyleft 许可证的使用情况正在减少,而宽松的许可证(permissive lecenses)的使用情况正在增加。也就是说,copyleft GPLv3 许可证依旧是第三流行的开源许可证。总而言之,copyleft 许可证的使用占开源许可证总体使用情况的近 40%。
考虑到开源组件占了现在软件的 60% 到 80%,你会使用到 copyleft 许可证,同时你也有必要了解这意味着什么。
WHAT
根据 copyleft 开源许可证的创始者 GNU 的说法,copyleft 是一种使软件变得自由(free)的方法,同时也要求所有修改和扩展该程序的版本也都是自由的,并在相同的条款和条件下(under the same terms and conditions)发布。
当一个开源软件项目以 copyleft 许可证发布时,其他开发者有权使用、修改和分享该软件作品,只要他们也保持互惠义务(reciprocity obligation)即可。使用带有 copyleft 许可证的开源组件创建的人呢和软件也必须作为开源软件进行发行。其结果是,任何包含 copyleft 开源许可证的作品——即使仅有几行代码——也都必须免费提供全部源代码,以及修改和分发它们的权利。
HISTORY
Copyleft 开源许可证或对等许可证的诞生是自由开源软件(free and open source software,FOSS)历史上最重要的里程碑之一,它始于 GNU GPL 许可证。
一切都起始于 1984 年,理查德·斯托曼(Richard Stallman)决定开发 GNU 项目——一个完整的操作系统——将根据他的自由软件的概念进行开发和发布,并赋予其用户四项自由条件需要满足:
用户可以自由地以任何目的来运行此程序(自由条件 0);
用户可以自由地学习和了解程序是如何运行的,并可以根据需求加以修改。可以获得源代码是这个自由条件的前提(自由条件 1);
用户可以自由地分享和传播原软件来帮助他人(自由条件 2);
用户可以自由地分享和传播你修改后的软件,进而所有用户可以得益于你的修改。可以获得源代码是这个自由条件的前提(自由条件 3)。
斯托曼需要找到一种方法来确保他的作品在这四项自由条件下释出。则听起来很简单?这在当时是闻所未闻的事情。
根据大卫·布雷托(David Bretthauer)在发行物开源的历史中的记载,传统使软件可用的方法是将软件发布到公有领域(public domain)或是闭源(closing the source code)并以版权和许可证来防止软件被修改,这给斯托曼带来一个问题。布雷托解释说,「在公共领域发布软件意味着任何人都可以使用它,根据自己的情况进行滥用,比如对其进行版权保护和将其作为专有产品进行签发许可。加上限制性的版权和许可条款来发布它,将有碍于斯托曼认为的有价值的整个用户审查、修复 Bug 和添加功能的机制。」
这就是 copyleft 开源许可证的由来,采用 copyright 的条款并撤销它们。用 GNU 的话来讲,就是「为了对一个程序签署 copyleft 的许可证,就要先声明该程序已受版权保护(copyrighted);然后我们添加分发条款——这是一项法律文书——去赋予人们使用、修改和重新分发程序的源码或任何从它派生出的程序的权利,但前提是分发条款保持不变。」代码和自由在法律上因此而变得密不可分。
专有软件开发人员会使用版权剥夺用户的自由;我们使用版权来捍卫用户的自由。这就是为何我们反转其名,将「copyright」改成「copyleft」的缘由。
Copyleft GNU GPL 第一版诞生于 1989 年,随后第二版发布于 1991 年。在 2007 男,随着软件技术的发展,GPLv3.0 将早前版本变得更为清晰,确保 GPL 与时俱进。
TIMELINE
WHY
总的来说,在 copyleft 开源许可和自由软件下发布软件是一项革命性的概念,从第一个 GNU GPL 发布以来,copyleft 受到各方批评。在早期,它以错误的方式与许多软件开发组织产生摩擦。如今,社区中许多人批评 copyleft 开源许可证是因为它过于严苛,他们更喜欢宽松的开源许可证。
批评者们将有版权的开源许可证视作「病毒」,因为他们认为它「污染」了派生自其的所有作品,并一路践踏用户的知识产权。令人高兴的是,许多人看到了使用 copyleft 开源许可证的好处。
软件开发人员理查德·L·阿波达卡(Richard L. Apodaca)在他博客[1]上解释说,开发人员为其项目选择 copyleft 开源许可证主要原因是是要阻止不想社区提供回报的商业公司使用其软件;其次是希望阻止其他项目使用其开源项目的分支来构建与自己有竞争性的产品。
开源许可证类型
考虑事项
红帽公司的本·科腾(Ben Cotton)建议[2]开发人员考虑一下其理念和项目目标,将 copyleft 开源许可证用于他们的软件项目。他建议开发人员考虑的另一个因素,是项目所使用的技术生态,因为基于特定语言或技术的项目通常具有相同或相似的许可证。
随着开源成为主流,开发者社区呈指数式增长,向开发者提供他们需要的所有信息以选择合适其项目的许可证变得尤为重要。如果你想在 copyleft 或其他许可证之间作出选择,那么 GitHub 的 choosealicense.com 提供了相关开源许可证的简单说明。
无论你最终选择的是 copyleft 开源许可证还是决定选择许可范围更广的许可证,在选择开源许可证时需要记住本·科腾(Ben Cotton)的建议:「如果你希望自己的项目玩的溜,就需要确保所选许可证的兼容性问题。」
参考来源:
[1] https://depth-first.com/articles/2006/12/29/dispelling-open-source-confusion-an-introduction-to-licenses/
[2] https://opensource.com/resources/what-is-copyleft
免责声明:这篇帖子不是法律建议,仅供参考。如果你需要法律建议,你应该咨询具备相关从业资质或经验的律师。
原题:Open Source Copyleft Licenses: All You Need to Know
文章来源:https://resources.whitesourcesoftware.com/blog-whitesource/open-source-copyleft-licenses
作者:Ayala Goldstein
开源许可证相关推荐:
1)一文读懂常用开源许可证
2)一文读懂开源许可证异同