是否可以关闭开放源代码?



对于任何使用开源已有一段时间的人来说,这个概念似乎都很简单:一个项目作为开源发布后,将永远保持开放。 当然,开发人员可能会决定将关闭该项目的将来版本,有时会发生这种情况,但是已经发布的内容无法召回。 互联网没有删除按钮。 发布您的代码并为数以百万计的人提供了下载它的潜力,他们无法使精灵恢复正常。

但是,好的理由呢? 如果项目变成您不想再联系的东西怎么办? 也许您为该项目发送了代码,对如何使用它有所了解,然后更改了规则。 还是您被禁止参加该项目,与此同时,即使您被抛在一边,支持该项目的人也不会以代码形式留下您的重大贡献吗?

由于某些人认为Linux开发人员的行为准则被迫更改,因此世界上最独家的开源项目的一些开发人员存在疑问。 社区很少需要处理这种情况,而且这种规模的项目从未发生过这种情况。

真的不可能撤消发送到根据GPL这样的免费开放许可发布的项目中的源代码吗? 如果可能的话,会发生什么? 如果事实证明运行Linux内核的数十亿设备侵犯了一位开发人员的知识产权,那该怎么办? 这些问题对于互联网乃至我们的生活方式至关重要。 但是,对它们的答案并不像您想的那样容易找到。

版权和所有权


GPL被称为Copyleft许可证 ,它为最终用户增加了权利,而这些权利原本会受到版权法的限制。 例如,它赋予用户复制作品并创建其衍生作品的权利。 重要的一点:GPL之类的copyleft许可证不能代替版权,它们只是对版权的补充。 原始代码的权利归其作者所有,并因此归主要所有者所有。

这就产生了双重许可的概念:一个程序的单个作者可以同时在多个许可下发布它,通常,其中一个许可使您可以比其他许可对程序做更多的事情。 例如,用于Windows的某个程序版本可能具有封闭代码,但是对于Linux,它可能是开放的,即使该程序代码本身没有不同。 更经常地使用它,以便在一个许可下,该程序用于商业目的,而在另一个许可下,更免费-用于个人目的。

一些通常在大型项目中并在公司支持下的开源项目有时会签署“参与者许可协议”。 本文档描述了向项目添加代码的所有必要的附加要求和规则,并且通常包含一个子句,用于解释输入代码的人将其权利转让给项目所有者。 例如,以下是来自Google的此类许可的一部分:
根据本协议的条款,您将Google永久性,全球性,非排他性,免费,不可扣除,不可撤销的永久性权利转让给Google和该公司分发的软件的接收者,以复制,创作衍生作品,公开演示,公开表演,再许可和分发您的贡献和他的衍生作品。

值得注意的是,Linux没有使用这样的协议,因此开发人员提供的任何代码的权利都保留在其中。

声誉损失


因此,如果开发人员可以自由选择许可以将其代码分配到截然相反的位置(开放和封闭代码),并且通常公认的是,在没有CLA的情况下,他拥有不可否认的编写代码的权利,那么情况就变得很敏感。 难道不是由此而来的,如果出现某种情况迫使开发人员认为他不再值得打开代码,那么开发者有权撤回其承诺以打开代码?


埃里克·雷蒙德

开源计划( Open Source Initiative)的创始人之一, 大教堂和集市三部曲的作者埃里克·雷蒙德Eric Raymond)认为,他们拥有这项权利。 在Linux Kernel邮件列表上的条目中,Eric特别是指一些开发人员对从内核中调用其源代码造成的威胁:

首先,让我确认这不是一个空洞的威胁。 在“开放源代码倡议”成立之初,我研究了相关法律。 在美国,有一项判例法确认,可以根据法院考虑与GPL项下项目参与者的权利转换相关的声誉损失。 我不知道美国以外是否存在判例法,但是在遵守伯尔尼公约而未对美国“精神权利”进行任何修正的国家中[在加入美国公约后,他们指出,精神权利已经受到诽谤条款的保护,因此,不需要其他法规/大约 [trans。],该公约的条款可能会进一步加强反对者在法庭上的地位。

《伯尔尼公约》第6节解释说,该作品的原始作者,即使将其权利转让给另一个人或组织,也可能反对该作品的使用,如果他认为该作品的使用“对他的名誉和声誉造成损害”。 因此,从理论上讲,开发人员不满意只需要说服法官认为项目经理损害了他的声誉,例如通过公开禁止他违反行为准则来禁止其行为,因此他可以迫使该项目停止使用其代码,而不论所使用的许可证如何。

批评


但是问题仍然存在,开发商是否真的可以“撤销”通过GPL转让的权利? 如果我们谈论的是Linux遵循的GPLv2,那么最合适的项目包含在第4节中。
同时,您授予已从您那里获得副本或权利的第三方授予的许可证在这些人完全遵守其条款之前不会被终止。

有趣的是,在GPLv3中,该规则被严格了:
根据本许可授予的所有权利在本程序的版权期限内被授予,并且在满足条件的情况下不能被撤销。

有些人认为这种区别很关键。 从法律上讲,“撤回”通常是指该协议已被提出该协议的人(此处为原始开发者)撤销,而“终止”仅表示该协议的终止。 结果,存在解释的空间,并且原则上可以说,由于GPLv2并不表示开发者无法撤消其权利,因此保留了这种可能性。

未开发地区


根据埃里克·雷蒙德(Eric Raymond)的评估,开发人员可以据此评估,他所参与的项目会损害他的声誉,并且没有直接禁止开发人员撤回其对当前Linux许可证的贡献的事实,这种情况正在变得模糊,到目前为止,没有人知道什么都不知道。 我们处在未知领域,过去的假设可能没有法律专业知识。

还值得一提的是,诸如禁止反言之类的法律概念可能会发挥作用-如果另一个人已经根据该承诺采取了措施,则它实质上禁止一个人收回其承诺。 也就是说,如果您告诉某人他可以使用您的代码,并且他使用它来创建成功的项目,则您无法改变主意,因为这会损害他。

从实践的角度来看,即使一个人可以在法庭上捍卫自己的观点,要求从Linux删除其代码,这在物理上也是不可能的。 然后,提到的开发人员可能无法从那时起从侵犯版权的设备中删除代码,而可能会获得一些现金奖励。 但是,这将成为开放社区的一个可怕的先例:得罪了-获得赔偿。

结果,谈论撤销开源许可证是错误的。 用侏罗纪公园中的角色伊恩·马尔科姆(Ian Malcolm)来解释:得罪了的开发人员忙于思考是否可以做到,以至于他们没有时间去思考是否应该这样做。 在出现法律先例后,开发人员可以通过该先例从一个开放项目中撤回其代码,该开放社区将被破坏。 开源软件花了数十年的时间才能实现今天的繁荣,但是一些不幸的开发人员的仓促行动却将其拖回了您想实现的想法领域。

Source: https://habr.com/ru/post/zh-CN426159/


All Articles