后来 Chef 公司表示明年不再续签合同。然而事情并未就此而止,这引起了人们对开源道德层面上的关注。有行动者打出 #NoTechForICE 的口号,并已拟好一份 Hippocratic License,要求将道德条款添加至开源许可证中。
Hippocratic License 建立在对 MIT license 的修改之上,作者 Coraline Ada Ehmke 介绍该许可证“专门禁止使用开放源代码软件危害他人”。同时,她还呼吁修改开源定义(The Open Source Definition)中第 5 和第 6 两条“非歧视”条款。
开源倡导组织(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 认为,“它已经实现了重要目标,那就是要引起人们对此事的关注”。但作为开源许可证,它还存在问题,因为“许可证中的道德条款不能用来强迫被许可人,从法律的角度来看,它们更多是一种观点的表达,而不是用于控制被许可人行为的有效法律工具”。
顶尖技术律师事务所和开源法律专家 Gesmer Updegrove 的创始合伙人 Andrew 补充说,“从广义上讲,许可人可以在许可证中包含任何他想要的条件。但是,这种限制不能包含在声称符合 OSI 开源定义的文档中。”
具体来讲,又回到了上述开源定义(The Open Source Definition)中的第 6 条“不歧视领域”:该许可证不得限制任何人在特定领域内使用该程序。
Andrew 解释,这样做的理由是“禁止‘不允许开源软件在商业上使用’的行为。我们希望商业用户加入我们的社区,而不是被排斥在社区之外”。顺便说一下,这是自由软件和开源软件之间的核心区别之一。
“你可以制订‘禁止使用’条款,并要求被许可方在任何下游许可中都包含类似术语”,但在现实中这是难以执行的。Andrew 举了个例子:“假设按照通常的开源方式发布代码,那么很快将会出现许多副本,而你几乎无法追溯所有副本。如果代码被捆绑在某个你认为是有害的商业产品中,你也无从得知。”
软件自由保护组织(Software Freedom Conservancy)执行董事 Karen M. Sandler 也提出了自己的观点,在他看来,有选择地保留软件自由是不合适的,而且这些道德许可证会引发执行问题。更重要的是,还可以通过其他方式达成同样的目标。Sandler 建议可以为开发人员建立道德社会,或通过参与政治程序来禁止不法行为。
对于将道德条款纳入软件许可证中,Sandler 再次强调这不是那么实际,毕竟“锤子既可以用作建筑工具,也可以用作谋杀的武器。”