文 | lola
出品 | OSC开源社区(ID:oschina2013)
除了是流行度最广的开源社区行为准则 Contributors Covenant(贡献者契约)的撰写者之外,她还干了一件大事。这件大事叫做“伦理开源运动”(Ethical Source Movement),这几乎在开源世界里掀起里一股“文化战争”。2021 年 4 月,我从企业技术部门退休,因为我有机会去追求一些自 2012 年以来一直在做的事业。这项事业始于 Contributors Covenant,通过 OES( Organization for Ethical Source )扩大到更大范围。—— Coraline Ada Ehmke
简单来说,Coraline 觉得 Contributors Covenant 还是不够。于是,近两年来她又成立了一个道德源码组织(Organization for Ethical Source),搞了一个希波克拉底许可证(The Hippocratic License),想要进一步扩大这个方向的工作,不仅要让社区内的用户都讲文明了,还要让社区创造出来的东西用在“正途”上。 https://ethicalsource.dev/principles/ 但这次,Coraline Ada Ehmke 受到的阻力就不止是个人开发人员了,像 OSI (Open Source Initiative)这样的权威机构也宣称,该运动与开源实践不符。2020 年 3 月,Coraline 竞选了 OSI 的董事会席位,引起了一片热议,在她的竞选信息下有着数十条的评论和争议,而其他竞选人几乎就几条的样子。最后,她没有竞选成功,希波克拉底许可证也没有得到 OSI 的官方认证。OSI 创始人 Eric S. Raymond 炮轰 Coraline 搞“身份政治”,OSI 另一个创始人 Bruce Perens 也委婉地说:“Ehmke 女士,很抱歉,行不通。”希波克拉底许可证到底在说些什么?它为什么行不通?行不通的话,Coraline 为什么还要坚持去做?其实,除了希波克拉底许可证,在“伦理开源运动”(Ethical Source)的运动中,他们还聚集起来了一批“道德源码许可证”(Ethical source License),其中就有大家比较熟悉的 “996.ICU”。搞笑的是,他们在自己的网站上,还把“996”写成了“966”......这些许可证大多基于某个开源许可证,但又并不符合“开源精神”。与此同时,从法律和现实层面,他们其中不少都存在一定的硬伤。但是,从出发点来说,他们又都无可厚非。所以,我们也不管那么多,权当是一种态度的表达,就来盘盘这些“奇奇怪怪”、“骨骼清奇”的许可证吧。
2018 年,包括 Palantir 和亚马逊在内的大型科技公司被曝出为美国政府组织,例如当地警察局和移民海关执法局 (ICE),提供数据和监控基础设施。
对此,拉丁裔和一些激进组织开始抨击这种行为。他们认为科技不应该服务于这类助长歧视和侵犯人权的行为。于是,他们发起了 #NoTechForICE 运动。(在特朗普执政期间,ICE 对无人陪伴的未成年人的不人道待遇、在边境将家庭分开以及暴力驱逐出境等做法,引发了愤怒。)当时,著名的开源贡献者、Chef 前雇员 Seth Vargo 发现 Chef 公司与 ICE 签订了合同后,站反对立场的他就从平台上删除了自己的代码,结果几个小时后又发现这些代码又被恢复了。作为这些代码的创建者,他似乎并没有权利去把控自己的代码被用于何处。这一事件激发了 Coraline Ada Ehmke。2019 年 9 月 22 日,在对 MIT 协议修改的基础上,她创建了希波克拉底许可证,这个许可证的命名来源于希波克拉底誓言,是传统上西方医生在行医前所起的“不作恶”誓言。除了通常的条款外,该许可还包含一个新条款,规定:个人、公司、政府或其他团体不得将软件用于主动和故意危害、伤害或以其他方式威胁身体的系统或活动,不得违反《联合国世界人权宣言》所规定的个人或团体的精神、经济或总体福祉。
可以看出,希波克拉底许可证根据的并不是什么法律条文,而是《联合国世界人权宣言》这样的文件。因此,它的设计目的是不上法庭,而是要求根据海牙规则进行仲裁。它的行不通,是被 OSD 撰写人 Bruce Perens 盖过章的:该许可过于简单和矛盾,其中包含“远远超出版权许可中可以强制执行的条款”。这里的重点是,道德的定义会随着时间而变化。从一个地方到另一个地方,从一个人到另一个人,道德的定义都有所不同。版权法不是惩罚不道德行为的正确场所。
撇开争议,通过希波克拉底许可证,Coraline Ada Ehmke 提出了这样一个值得思考的问题:技术真的是中立的吗?技术是中立的,这是一个非常危险的想法。技术不存在于真空中,它存在于人类社会之中。如果说我所做的只是创造技术这样的话,这是一种真正的推卸责任。我们不能继续假装技术是中立的了。—— Coraline Ada Ehmke
Caroline 建立希波克拉底许可证的同一年,“反 996 运动”在我们这边几乎点燃了整个社会的情绪,当时媒体和公众对“996制度”的探讨热情相信大多数人都记忆犹新。
2019 年 3 月 26 日,一位中国程序员 @996icu 创建了一个 GitHub 项目 996.ICU,以此吐槽国内互联网公司毫无人性的 996 工作制,没想到此项目得到广大中国劳动者的热烈欢迎,大家对此表示感同身受,此项目仅 3 天就收获了 10万+ 的赞,大家纷纷为此项目建言献策,并将此项目翻译为多国语言。由此,3 月 26 日这天也成为了“ANTI-996 DAY”。2019 年 4 月,伊利诺伊大学法学院法学博士顾紫翚在其程序员丈夫的影响下起草了“反996许可证”。这一许可证也是 MIT 协议的另一个变体(希波克拉底许可证也是),它要求项目软件的用户遵守符合当地劳动法和国际劳工组织标准。▲GitHub 上,License 一栏排名第一的贡献者信息 在 996.ICU 项目中,有一个黑名单。这个黑名单很明显就是一些被报告不遵守劳动法的公司们,这个名单一直往下拉不到底。相反,他们也有一个白名单,这个名单只有 10 家企业。按“反996许可证”的要求,如果程序员在自己的开源代码中加入证书,这些黑名单公司也无法使用这些开源代码了。996.ICU 事件的爆发立即得到了国际上的广泛关注,包括编程语言 Python 之父 Guido van Rossum 和 2019 年图灵奖得主 Yoshua Bengio 等在内的大佬都为它发声。目前,该项目在 GitHub 获得了 26.2W Star(2015 年就开源的 TensorFlow 也不过 16.4W Star),且被数百个项目所采用。
03Do No Harm 许可证,是在蹭“开源”热度吗?
相较于 996.ICU 的热闹,Do No Harm 许可证就显得冷清了许多。2018 年 9 月 11 日创立的 Do No Harm 软件许可证项目在描述中,是为了“使世界变得更美好”而生的:作为开发人员,我们不能再视而不见,个人和组织正在使用开源代码损害我们的社会。 如果你对于自己的软件被用作破坏生命、环境和未来而感到不安,请使用 Do No Harm 许可证。
该许可证基于 BSD 3 条款许可证,并禁止许可代码用于:(i) 暴力、仇恨和分裂;(ii) 环境破坏;(iii) 滥用人权;(iv) 对人们身心健康的破坏。Do No Harm 许可证也引起了一些争议,比如有人就质疑 Do No Harm 许可证根本就不符合开源原则,但该许可证在 README 中的措辞(错误地)暗示了开源软件开发与“Do No Harm”许可项目的开发之间的依赖关系,而它会造成人们对开源精神的理解混淆。目前,GitHub 上没有列出使用此许可证的项目,并且上面也说明了“许可证目前处于草稿阶段,应被视为不稳定”,其开发人员正在“致力于许可证的第 1 版”。因此,该项目获得关注有限,截至 2022 年 4 月,它仅获得 364 Stars 和 35 fork,成长缓慢。
尽管表明了道德源码运动行c不通,但 Bruce Perens 这位开源运动发起人还是以开玩笑的心态写了一个 Ethical License。这个许可证叫做“疫苗许可证”(The Vaccine License),用来要求用户接种疫苗。我完全同意,那些不愿意接种疫苗而且还不让自己孩子接种疫苗的人,是个白痴。“疫苗许可证”是一种软件许可证,它要求用户为他们的孩子、自己以及用户企业员工最大程度地提出此类接种疫苗的要求。—— Bruce Perens
最搞笑的是,Bruce Perens 还在自己的文章中点评了一番,认为这一系列许可证自己的“疫苗许可证”最专业,且对标的是 OSI 认证程序。但他也承认,这些个许可证似乎都不太可能在执行中获得法院的同意。
2019 年 11 月 5 日,由 11258 名科学家组成的小组发表了一份名为《世界科学家对气候紧急情况的警告》的新报告。这份报告警告:世界必须迅速实施大规模的能源效率和节约实践,并且必须用低碳可再生能源和其他更清洁的能源替代化石燃料。
在“伦理开源运动”和希波克拉底许可证的启发下,保护大气许可证(The Atmosphere Licenses)的概念诞生了。与希波克拉底许可证不能满足开源定义的情况不同,还许可证通过一种“巧妙”的方式,来符合开源定义:
首先,保护大气许可证带有 copyleft 特征,它包含 GPL 中的的许多条款,还包含了 AGPL 中的“远程网络交互”概念作为许可证合规性的触发器。其次,借鉴“双许可”模式中的先决条款,如果当用户想要进一步专有化(或者商业化),则必须满足一个先决条件:从石油化工燃料等领域撤资。因此,保护大气许可证可以说是一种“带有化石燃料撤销条款的开源软件许可证”。
06The JSON License,用于善而不是恶
JSON(JavaScript Object Notation)是一种非常灵活、轻量级的格式,用于交换各种数据。但是,某些 JSON 项目的使用受到 JSON 许可的限制。该许可证其他都没有任何问题,但就是加了一小行字:凭这一条,它就已被踢出了开源许可证的范围之外了。毕竟 OSD (Open Source Definition)中的第 6 条规定:不得歧视任何应用领域。更何况,软件还有个明确定义,而“善”和“恶”都不是有明确定义的术语。
https://json.org/license.html曾有人在 Black Duck 知识库中发现,有 2300 多个项目中嵌入了 JSON 许可组件,其中包括一些非常流行的项目,例如 Perl、Lucene 和 Solr。它还出现在某些版本的 Java 软件开发工具包和运行时环境的组件中。因此,如果你正在运行这些 Java 应用程序,请不要作恶(手动微笑)。此外,2016 年的时候,Apache 基金会也注意到了这个问题,并开始“排查”这一许可证。
The Non-Violent Public License,简称 NPL,是一种不仅适用于软件还适用于其他类型的各种创意作品。它旨在为现代世界的作品提供基本的保护,以抵抗合作中的暴力、胁迫和歧视。在官方的描述中,该许可证的面貌非常模糊,即使看了也不知道这个许可证要表达什么,但我们看一看它禁止的相关事项,也会有一个大致的感觉:https://thufie.lain.haus/files/CNPLv7.html除了限制以上用途, NPL 还采用了 copyleft 的概念来作出以下规定:1)原始和修改作品不能用于专利申请;2)任何已发布的修改版本都必须在原始许可证下提供,如果是软件的话,则对修改版本提供“服务器端”访问就相当于发布修改版本(这一条借鉴的是 AGPL)。早在上个世纪,加州大学伯克利分校的 SPICE 软件上,就有一个阻止了南非警方使用的许可证。当时,这个许可证是为了抗议在南非存在的种族隔离。而当南非早已取消这一政策,并且警察中都已经开始出现黑人警察后,这个软件许可证却没有及时撤回,导致多年后南非警察仍不能使用这个软件。很明显,这个许可证是失败的,它的失败给 Bruce Perens 以深刻印象,使他意识到“许可证本质上是象征性的”。随后,当 Bruce Perens 撰写 Debian 自由软件指南(OSD 前身)时,他特意在里面加入规定:防止对个人、群体和应用领域的歧视。从 1998 年被定义以来,开源软件发展迅猛。Coraline Ada Ehmke 在近几年掀起的“伦理开源”波浪,或许只是其中的一段插曲,但她提出的一些问题是值得我们思考的:许可只是我们战略中的一个环节,还有很多其他的事情需要关注。我们希望整个过程都落入一个道德框架中,让人们对自己、对社会的影响负责。—— Coraline Ada Ehmke
我开源的软件只能我拿来赚钱
开源作者去世后,代码谁来继承?