为了不让代码“作恶”,能否将道德条款纳入开源许可证?

为了不让代码“作恶”,能否将道德条款纳入开源许可证?_第1张图片
随着特朗普政府反移民政策的执行,成千上万的移民儿童与父母分离,美国移民和海关执法局(ICE)也因此成为众矢之的。
所以,当开源开发者 Seth Vargo 发现前东家 —— Chef 公司最近与 ICE 签订了合同后,进行删库抗议,从 Chef DevOps 中撤回了他的开源项目 Chef Sugar。
为了不让代码“作恶”,能否将道德条款纳入开源许可证?_第2张图片
“我有道德和义务,以防止将我的源码被邪恶所利用”,Vargo 在空荡荡的 Chef Sugar 库中留下这样一句话。

后来 Chef 公司表示明年不再续签合同。然而事情并未就此而止,这引起了人们对开源道德层面上的关注。有行动者打出 #NoTechForICE 的口号,并已拟好一份 Hippocratic License,要求将道德条款添加至开源许可证中

Hippocratic License 建立在对 MIT license 的修改之上,作者 Coraline Ada Ehmke 介绍该许可证“专门禁止使用开放源代码软件危害他人”。同时,她还呼吁修改开源定义(The Open Source Definition)中第 5 和第 6 两条“非歧视”条款。

Ehmke 表示,长期以来,软件开发人员已经与自己编写的代码造成的后果相脱离,但实际上,“我们创建的软件对我们所生活的世界具有真正而持久的影响”。她认为,政治和软件纠缠不清,所有技术本质上都是政治性的,不存在所谓中立立场。如果这些情况伤害到他人,我们应该做些什么?为此,她希望能够用开源许可证来进行规制。
为了不让代码“作恶”,能否将道德条款纳入开源许可证?_第3张图片

开源倡导组织(Open Source Initiative,OSI)迅速驳斥了 Ehmke 的做法。他们在 Twitter 上写道:“Hippocratic Licence 的简介可能会使某些人认为该许可证是开源许可证,根据 Hippocratic Licence 分发的软件是开源软件。但两者都不是,我们要求您修改语言以消除混淆。”

Ehmke 回击:“OSI 和 FSF(自由软件基金会)不是‘什么是开源’和‘什么是自由软件’的真正仲裁者。我们才是”。随后她补充说,当前的开源结构无法禁止自己的劳动成果被 ICE 这样的组织使用,这不是一个开源许可证的问题,而是开源的问题。

先把 Twitter 上的争吵放在一边,我们来谈谈道德准则是否能够被纳入开源许可证

这并不是什么新鲜之事。例如,2009 年的 Exception General Public License(eGPL)就曾尝试在 GPLv2 上发挥作用,试图禁止诸如军事用户之类的“例外”使用其代码。最终失败了。

诸如 JSON License 之类的其他许可证也鲜为人知,它注明“该软件应用于善良,而非邪恶”,但没有人强制执行。

今年伴随 996.ICU 运动出现的 Anti-996 协议也可以说是基于道德层面。专门研究开源软件许可的律师 Heather Meeker 认为,“它已经实现了重要目标,那就是要引起人们对此事的关注”。但作为开源许可证,它还存在问题,因为“许可证中的道德条款不能用来强迫被许可人,从法律的角度来看,它们更多是一种观点的表达,而不是用于控制被许可人行为的有效法律工具”。

关于开源许可证,开源法律专家、哥伦比亚大学法学教授埃本·莫格伦(Eben Moglen)指出,根据 FSF 对自由软件的定义,对道德进行要求的许可证将违反其中有关 Freedom zero 的规定。Freedom zero 即出于任何目的运行程序的权利,它在四项自由权力中排在首位。
为了不让代码“作恶”,能否将道德条款纳入开源许可证?_第4张图片

顶尖技术律师事务所和开源法律专家 Gesmer Updegrove 的创始合伙人 Andrew 补充说,“从广义上讲,许可人可以在许可证中包含任何他想要的条件。但是,这种限制不能包含在声称符合 OSI 开源定义的文档中。”

具体来讲,又回到了上述开源定义(The Open Source Definition)中的第 6 条“不歧视领域”:该许可证不得限制任何人在特定领域内使用该程序。

Andrew 解释,这样做的理由是“禁止‘不允许开源软件在商业上使用’的行为。我们希望商业用户加入我们的社区,而不是被排斥在社区之外”。顺便说一下,这是自由软件和开源软件之间的核心区别之一。

“你可以制订‘禁止使用’条款,并要求被许可方在任何下游许可中都包含类似术语”,但在现实中这是难以执行的。Andrew 举了个例子:“假设按照通常的开源方式发布代码,那么很快将会出现许多副本,而你几乎无法追溯所有副本。如果代码被捆绑在某个你认为是有害的商业产品中,你也无从得知。”

软件自由保护组织(Software Freedom Conservancy)执行董事 Karen M. Sandler 也提出了自己的观点,在他看来,有选择地保留软件自由是不合适的,而且这些道德许可证会引发执行问题。更重要的是,还可以通过其他方式达成同样的目标。Sandler 建议可以为开发人员建立道德社会,或通过参与政治程序来禁止不法行为。

结合各方专家的意见,不难看出,其实他们并不同意 Ehmke 希望把道德条款加入开源协议的做法,原因在于:
1. 之前有过很多类似尝试都失败了;
2. 加入道德条款不符合开源定义中关于软件自由的规定;
3. 即便加入禁止条款,也难以确保执行,不现实;
4. 任何事物都有两面性,可以被用来做好事也可以被用于作恶,所以难以界定;
5. 不应该加入道德条款,但可以通过其他手段来约束利用开源进行的不道德行为。

对于将道德条款纳入软件许可证中,Sandler 再次强调这不是那么实际,毕竟“锤子既可以用作建筑工具,也可以用作谋杀的武器。”

640?wx_fmt=jpeg

你可能感兴趣的:(为了不让代码“作恶”,能否将道德条款纳入开源许可证?)