开源开发者 Seth Vargo 发现 Chef 公司最近与 ICE(美国移民和海关执法局) 签订了合同后,进行删库抗议,从 Chef DevOps 中撤回了他的开源项目 Chef Sugar。后来 Chef 公司表示明年不再续签合同。然而事情并未就此而止,这引起了人们对开源道德层面上的关注。有行动者打出 #NoTechForICE 的口号,并已拟好一份 Hippocratic License,要求将道德条款添加至开源许可证中。

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

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

开源倡导组织(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 即出于任何目的运行程序的权利,它在四项自由权力中排在首位。

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

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

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

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

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

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

可以将道德条款纳入开源许可证吗?相关推荐

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

    随着特朗普政府反移民政策的执行,成千上万的移民儿童与父母分离,美国移民和海关执法局(ICE)也因此成为众矢之的. 所以,当开源开发者 Seth Vargo 发现前东家 -- Chef 公司最近与 IC ...

  2. 开源运动发展史与开源许可证(BSD、GPL、Apache、MIT、木兰(中国))的那些事儿

    作者简介:张帅 腾讯云,WeChat:yorkszhang,公众号:Flowlet 2022年1月份,Apache SkyWalking社区在其blog上实锤字节跳动的火山引擎里面违反Apache 2 ...

  3. 开源许可证 如何工作_开源许可证的工作方式以及如何将其添加到您的项目中...

    开源许可证 如何工作 by Radu Raicea 由Radu Raicea 开源许可证的工作方式以及如何将其添加到您的项目中 (How open source licenses work and h ...

  4. 2020 年开源许可证最新趋势:67% 为宽松许可证

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | AYALA GOLDSTEIN 译者 | 苏本 ...

  5. Redis Labs 再次更改开源许可证,但 Redis 本身不受影响

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   其实「Redis Labs 再次更改开源许可证」这个说法有标题党的嫌疑,但看到 Redis Labs 的 CTO ...

  6. 开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

    开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL.BSD.MIT.Mozilla.Apache和L ...

  7. 开源组件是什么意思_一文读懂常用开源许可证

    社区时常为流行产品中有争议的开源许可证而感到震惊,这引起各方关注,纷纷争论何为真正的开源许可证.去年,Apache 基金会(Apache Foundation)禁止使用 Facebook React ...

  8. 阻止你变现的,从来都不是开源许可证

    文 | lola_chen 出品 | OSC开源社区(ID:oschina2013) 之前,<GPL 转闭源?法院判决:一日 GPL 终身 GPL>一文提出一个冷门却又重要的知识点:GPL ...

  9. 开源许可证的变更带给我们什么启示?

    喜欢就关注我们吧! 近日,Elastic 公司将旗下的知名开源项目 Elasticsearch 和 Kibana 的开源许可证变更的事件持续发酵,再次把我们的目光聚焦到开源公司与云服务厂商之间的矛盾旋 ...

最新文章

  1. kaliLinux下保持匿名
  2. java 获取麦克_Java Sound API-捕获麦克风
  3. Lesson 12.4 逻辑回归建模实验
  4. 强化学习(五)—— AlphaGo与Alpha Zero
  5. win7无法将应用程序锁定到任务栏的几种解决方法
  6. P3160:局部极小值(容斥、状压)
  7. 国内比较好用的5款测试管理工具
  8. 小米路由器 网站服务器地址,小米路由器设置网址
  9. MySQL建表语句综合
  10. html微博图片上传,如何使上传新浪微博照片更清晰
  11. 360企业版服务器修改了,360企业版安装部署方法详细攻略
  12. Blurring the Lines between Blockchains andDatabase Systems: the Case of Hyperledger Fabric(翻译)
  13. 我的python学习(五)文件操作、异常捕获
  14. iOS开发之集成支付宝
  15. 人生算法第一天心得总结(A)九段进阶(3-6)
  16. 【C++】-命名空间的概念及使用
  17. python发送信息给文件传输助手
  18. Atlassian 系列软件安装(Crowd、jira、confluence、bitbucket、bamboo)
  19. Apple Developer:苹果客服中心电话
  20. 深度 | 车载语音群雄并起共争智能座舱新高地

热门文章

  1. 硬盘损坏如何恢oracle,硬盘物理损坏,如何恢复数据库?
  2. python查找字符串出现次数_Python搜索文本文件并计算指定字符串的出现次数
  3. 加载geojson面数据_地理数据可视化
  4. 设计素材模板|艺术感中国风海报
  5. APP设计|搜索页面设计灵感
  6. UI设计实例|界面设计中,版式实战运用以及设计思路
  7. Ubuntu16.04上安装SU(Seismic Unix)的基本步骤
  8. Linux-5.10.13内核完全注释之工作队列
  9. Linux网络协议栈:Linux 中每个 TCP 连接最少占用多少内存?
  10. /proc 文件系统并使用/proc 进行输入