Linus到底违反了什么?
关于Linux内核社区删除部分俄罗斯维护者事件,网上已经有很多文章在说这件事了。
简单地说,Linux的“二把手”之一Greg Kroah-Hartman于2024年10月18日,提交了一个PATCH1,在MAINTAINERS文件中删除了11名俄罗斯开发者,但原因却语焉不详:due to various compliance requirements.(由于各种合规要求),在没有充分讨论的情况下,Greg在两天后提出pr,Linus接受了Greg的pr。在面对质疑时,Linus毫不客气,生硬了做了回应,让很多人感到失望和伤心。
Linux内核开发流程完全基于邮件列表进行,把俄罗斯籍的开发者从维护者文件中移除,意味着这11个人,今后不再能收到相关子系统的补丁和沟通邮件,其实也就是不再能维护和贡献Linux主干的代码了。虽然,他们使用代码、Fork代码、修改Fork代码、发布Fork代码这些权利不受影响。
另外,不出意外,这些维护者的名字会出现在CREDITS文件中2。
我在上篇文章中,已经阐明了,Linus的做法并没有违反开源许可证,没有违反开源定义,也没有违反自由软件所提的四大自由。
但人们总是隐隐约约觉得,他违反了什么。
有人很敏锐地想到:
他是不是违反了CoC?
什么是CoC
所谓CoC,就是行为准则(Code of Conduct)。
有现成写好的开源社区CoC,如“贡献者契约”( Contributor Covenant )3,据说有40000多个开源项目使用了它4,包括Kubernetes、Rails和Swift。
而Linux内核开发社区,在“贡献者契约”的基础上,自己写了一个CoC。
即Linux Kernel Contributor Covenant Code of Conduct,文本在这里:
https://www.kernel.org/doc/html/latest/process/code-of-conduct.html
CoC管什么?
CoC在开头就明确提出其承诺:
为了营造一个开放和温馨的环境,作为贡献者和维护者,我们承诺让参与我们的项目和我们的社区成为每个人的无骚扰( harassment-free)体验,无论年龄、体型、残疾、种族、性别特征、性别认同和表达、经验水平、教育、社会经济地位、国籍、个人外表、种族、宗教或性认同和取向。
Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
这里面的关键是承诺“无骚扰体验”,“无论国籍”。
把俄罗斯籍的开发者移除维护者列表,对他们是不是一种骚扰?
什么是“骚扰”(harassment)?
CoC列举了一些“骚扰”的样例:
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others’ private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
翻译:
参与者不可接受的行为示例包括:
使用带有性暗示的语言或图像以及不受欢迎的性关注或性挑逗。
恶意挑衅、侮辱性 / 贬损性评论以及人身攻击或政治攻击。
公开或私下骚扰。
未经明确许可发布他人的私人信息,例如实际地址或电子邮箱地址。
在专业环境中可能被合理认为不适当的其他行为。
这几点中,比较接近的是“恶意挑衅、侮辱性 / 贬损性评论以及人身攻击或政治攻击。”
Linus是否在CoC约束范围内?
CoC明确了管理范围:
范围:本行为准则既适用于项目空间内,也适用于个人代表项目或其社区的公共空间。代表项目或社区的例子包括使用官方项目电子邮箱地址、通过官方社交媒体账号发布内容,或者在在线或线下活动中担任指定代表。
Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
看样子,Linus关于项目的发言和行为,在CoC约束的范围之内。
CoC约束的是贡献者和维护者,Linus是不是维护者?是的,他本人一直是维护者,他是权限最高的central maintainer5。
Linus是否违反CoC
我们具体看一看Linus到底说了什么。
下面是Linus针对此事的回应。
这封邮件里面有一些冷嘲热讽的话。
至少这句比较冒犯人:“please use whatever mush you call brains”,有侮辱他人之嫌。
另外,“I'm Finnish. Did you think I'd be *supporting* Russian aggression?”,可能是一种政治攻击。
所以,Linus大约违反了CoC的要求:不得嘲弄、侮辱/贬损评论以及个人或政治攻击。
如果你认为他的行为确实违反了CoC,可以投诉并要求予以处罚。
如何投诉?
在CoC中,明确说了可以投诉。
辱骂、骚扰或其他不可接受的行为可以通过联系行为准则委员会报告,地址为[email protected]。所有投诉都将被审查和调查,并将导致被认为必要和适当的回应。行为准则委员会有义务对事件的报告者保密。
投诉地址是:[email protected]
如果你不想给一个公共邮箱发邮件,可以直接发到委员那里。
当前委员们的邮箱6:
是的,可以直接发给一位或多位委员,在CoC的解释页面7专门说了可以。
投诉能否成功?
CoC在其解释页面,还专门说了:
专业能力期望和决策过程都可以进行讨论,但最终为了取得进展,必须能够做出决策。这个特权掌握在维护者和项目领导层手中,并且期望他们真诚地使用这一权力。因此,设定专业能力期望、做出决策以及拒绝不合适的贡献不被视为违反行为准则。
Both the expertise expectations and decision-making are subject to discussion, but at the very end there is a basic necessity to be able to make decisions in order to make progress. This prerogative is in the hands of maintainers and project’s leadership and is expected to be used in good faith.
As a consequence, setting expertise expectations, making decisions and rejecting unsuitable contributions are not viewed as a violation of the Code of Conduct.
注意,这里出现了“领导层”,出现了“特权”,也就是说,Linus和Greg这种级别的人,他们是有特权的。
里面说的“设定专业能力期望”不太好理解,其实就是说他们认为谁行谁不行(也即维护者的资格是他们设定的);“做出决策”就是他们有权利做出一些决定,而不是事事都要民主投票;“拒绝不合适的贡献”就是说他们有权利选择要哪些贡献,不要哪些贡献。
上面那段话的意思是,如果领导层实施这些特权,不被认为是违反CoC。
所以,
投诉Linus语言不当,有可能会成功。
投诉Linus移除俄罗斯籍开发者,可能不会成功。
有人说,他们可能有权这样,但我很不满意他们理由不详地移除维护者。
也就是说,这事至少做得不公开透明。
决策不公开透明是否违规?
CoC里面没有说凡事必须公开透明。
开源组织必须向全社会公开透明他们的一切决策吗?
有任何组织(稍具规模的),声称过他们会公开透明他们的任何决策吗?
没有。
Linux内核开发社区、Linux基金会,都没有任何文本,表明他们会公开透明其任何决策。
他们到底为什么移除俄罗斯人?
从目前的一些材料上看,是因为部分俄罗斯企业进入美国OFAC的SDN名单,Linux基金会(LF)感受到了压力,并采取了行动。
Linux基金会为注册在美国的501(c)(6)非营利性组织(这类组织通常被称为 “商业联盟” 或 “行业协会”),LF向Linux内核开源社区提供资金支持、法律支持、运营支持,LF需要在遵守美国制裁规定和维护开源社区的健康发展之间寻找平衡。它会为开发团队提供关于制裁合规的建议和指导,确保项目的运作在法律框架内进行。
注意,LF有3名全职的Linux kernel维护者8: Linus Torvalds, Greg Kroah-Hartman, and Shuah Khan.
LF倾向于让开发团队遵守美国的制裁决定。尽管LF强调开源技术不受美国管制,但实际上美国的制裁措施可能会对LF及其相关项目产生一定的压力,如果不遵守制裁决定,LF和开发团队可能面临法律风险和潜在的经济制裁,这使得他们在一定程度上不得不考虑遵守相关规定。
据报道称9,这次的所谓合规要求,源于美国财政部海外资产控制办公室OFAC。
维护者Serge Semin(在这次移除名单中)在邮件列表中回复中提到了那个含糊不清“合规要求”的具体说明:“如果您的公司在美国OFAC SDN名单上,受OFAC约束制裁计划,或由名单上的公司拥有/控制的,我们的与您协作的能力将受到限制,并且您不能在MAINTAINERS文件中。”
OFAC管理着特别指定国民清单(SDN),对于被列入SDN名单的实体,美国个人和实体被禁止与SDN名单中的实体进行任何资金往来、物质供应、技术支持。
除此之外,美国还有实体清单(Entity List)等制裁方式,具体可见这篇文章:美国有哪些常见的制裁黑名单?
LF这次采取行动,目的是停止向SDN名单中的实体和个人提供技术支持,这11名俄罗斯开发者均被Greg认为与此有关。
有人可能会困惑,人家俄罗斯人给Linux贡献代码,是给你Linux做支持,又不是你支持人家。
其实,公司支持Linux,大多是为了自己好,比如提供某个硬件产品的驱动,目的是让Linux支持他家的硬件。
这下你知道是谁支持谁了吧。
有人说把人家维护者身份去除了,为何不删除人家的代码?其实,删除贡献者的代码,是更严重的对贡献者的不支持。
如果OFAC有更严厉的要求,Linux中相关的驱动也会被删掉,以使得完全不支持受制裁俄罗斯厂商的硬件。
为什么不干脆禁止被制裁者使用Linux
有人说,既然有合规要求,干脆不让受制裁实体使用Linux了,那才叫一个彻底。
做不到,因为技术上不可行。
源码人家已经有了,你许可证也说赋予了人家使用的权利(而且还是不可撤销的)。
你现在怎么办。
顶多是不让他参与维护了呗。
Linux基金会怎么说?
这是Linux基金会执行董事Jim最近在日本的一次演讲,谈到了这件事。
2024年10月28日、29日,The Linux Foundation在东京举办“Open Source Summit Japan”。
没有看到有什么具体的内容,PPT上展示的更多是套话。
大概就是一个意思:以后我们要更审慎对待合规。
到底什么是开源精神
我上篇文章发布后,有人愤愤不平地说,“社区共建”难道不是开源的精神?
为什么不让人家俄罗斯人“共建”Linux社区?
我说,开源精神并没有这点,这点是某些人的一厢情愿。
或者说,是某些人被一些宣传洗脑了。
开源的所有精神,都写在开源许可证里面了,都写在开源定义(OSD)里面了,都写在四大自由里面了。
开源软件的作者,从来没有真正指望外界贡献多少东西,有,很好,没有,也无所谓。
绝大多数开源软件作者,收不到任何像样的“贡献”。
开源软件作者真正在意的东西,都会写在许可证或者其他书面文件中。
你见过任何开源软件作者写过这样的话吗:“我承诺我不歧视任何人的贡献。”
没有,从来没有。
希望有些人长点经验:
任何没有写在书面契约里的东西,都是不可靠的。
作者:卫剑钒
首发:2024年10月30日
https://lore.kernel.org/r/2024101835-tiptop-blip-09ed@gregkh
https://www.163.com/dy/article/JFINTQLC0553TKEZ.html
https://www.contributor-covenant.org
https://opensource.guide/code-of-conduct/
https://techcrunch.com/2024/09/22/linus-torvalds-explains-why-aging-linux-developers-are-a-good-thing/
https://kernel.org/code-of-conduct.html
https://www.kernel.org/doc/html/latest/process/code-of-conduct-interpretation.html#code-of-conduct-interpretation
https://www.zdnet.com/article/what-linux-kernel-maintainers-do-and-why-they-need-your-help/
https://mp.weixin.qq.com/s/rdpXc7PR0lwzA8K4lB8VNA