如果你在开源项目中花费了很多时间,你可能已经见过术语“著作权分享”(copyleft)。虽然这个术语非常常用,但许多人并不理解它。软件许可与文本编辑器或软件包格式一样,是激烈辩论的主题。对著作权分享的专家级理解可以写成许多本书,但本文可以作为你著作权分享启蒙之路的起点。
什么是版权?
在我们理解著作权分享之前,我们必须首先介绍版权的概念。著作权分享不是一个独立于版权的法律框架;著作权分享存在于版权规则之内。那么什么是版权呢?
确切的定义因司法管辖区而异,但本质是这样的:作品的作者对作品的复制(因此称为“版权”)、表演等具有有限的垄断权。在美国,《宪法》明确规定国会制定版权法,以“促进科学和实用技艺的进步”。
与过去不同,版权立即附加到作品上——无需注册。默认情况下,所有权利均被保留。这意味着未经作者许可,任何人不得再版、表演或修改作品。这种许可是“许可”,并且可能附带某些条件。
有关版权的更详尽介绍,Coursera 的面向教育工作者和图书馆员的版权是一个极好的资源。
什么是著作权分享?
请耐心听我说,在我们讨论什么是著作权分享之前,还需要再进一步。首先,让我们研究一下开源的含义。所有开源许可证,都必须按照开源促进会(Open Source Initiative)的定义,除其他事项外,允许以源代码形式分发。任何接收到开源软件的人都有权检查和修改代码。
著作权分享许可证与所谓的“许可型”许可证的不同之处在于,著作权分享许可证要求在任何衍生作品中都包含相同的权利。我更喜欢这样理解这种区别:许可型许可证为直接的下游开发者提供最大的自由(包括在闭源项目中使用开源代码的能力),而著作权分享许可证则为最终用户提供最大的自由。
GNU 项目给出了著作权分享的这个简单定义:“当重新分发程序时,你不能添加限制来剥夺其他人[自由软件的]核心自由。”这可以被认为是规范定义,因为各种版本的GNU 通用公共许可证 (GPL) 仍然是最广泛使用的著作权分享许可证。
软件中的著作权分享
虽然 GPL 家族是最流行的著作权分享许可证,但它们绝不是唯一的。 Mozilla 公共许可证 和 Eclipse 公共许可证 也非常受欢迎。 许多 其他著作权分享许可证 的采用范围较小。
正如上一节所解释的,著作权分享许可证意味着下游项目不能对软件的使用添加额外的限制。用一个例子可以最好地说明这一点。如果我编写了 MyCoolProgram 并根据著作权分享许可证分发它,你将有权自由使用和修改它。你可以分发带有你更改的版本,但你必须给你的用户与我给你的相同的自由。如果我根据许可型许可证授权它,你可以自由地将其合并到一个你没有提供源代码的闭源软件项目中。
但与你必须对 MyCoolProgram 做什么同样重要的是,你不必做什么。你不必使用与我完全相同的许可证,只要条款兼容即可(通常下游项目为了简单起见使用相同的许可证)。你不必将你的更改贡献回给我,但这通常被认为是良好的形式,特别是当更改是错误修复时。
非软件中的著作权分享
虽然著作权分享的概念起源于软件世界,但它也存在于软件之外的世界。“做你想做的事,只要你保留其他人做同样事情的权利”的概念是用于书面作品、视觉艺术等的知识共享署名-相同方式共享许可证的显着特征(CC BY-SA 4.0 是对 Opensource.com 贡献的默认许可证)。GNU 自由文档许可证是另一个非软件著作权分享许可证的例子。通常不鼓励将软件许可证用于非软件作品。
我应该选择著作权分享许可证吗?
关于项目应该使用哪种类型的许可证,可以(并且已经!)写了很多页。我的建议是首先将许可证列表缩小到与你的理念和项目目标相符的许可证。GitHub 的 choosealicense.com 是找到适合你需求的许可证的好方法。tl;drLegal 对许多常见和不常见的软件许可证都有通俗易懂的解释。还要考虑你的项目所处的生态系统。围绕特定语言或技术的项目通常会使用相同或相似的许可证。如果你希望你的项目能够很好地协同工作,你可能需要确保你选择的许可证是兼容的。
有关著作权分享许可的更多信息,请查看著作权分享指南项目。
8 条评论