新功能被批评导致 Simh 维护者“摆烂”,随意修改开源许可证

来源: OSCHINA
编辑: 罗奇奇
2022-05-20 08:32:00

Simh 是一个开源历史计算机模拟器,可以仿真历史上出现过的一些计算机硬件或软件,比如 IBM 1401、惠普 2114 等。该仿真工具的原作者是 Bob Supnik ,但他没有选择开源,而是 Fork 了一个开源版本。该开源版本在 GitHub 上基于 BSD 协议开源,由 Mark Pizzolato(注意这个马克老哥,他拥有 Simh 开源仓库的管理权,也是本文主人公) 、 Richard Cornwell 、Paul Koning 等核心维护者进行维护,社区的成员都可以为之开发新模块。

该项目已有近三十年的社区协作开发历史,但近期 Mark Pizzolato 向 Simh 添加了一项有争议的功能:在加载时修改磁盘映像文件以添加元数据。该功能随即遭到社区其他开发者的批评,因为马克的新功能导致 simH 可以在用户不知情的情况下修改磁盘容器,这显然是不合常理的。操作系统项目通常有“不破坏任何事物”的默认原则,比如 FreeBSD 的“最小惊讶原则”,以及 Linus 的口头禅“不要破坏 Linux 的用户空间”。也就是说,除非用户主动要求元数据,否则磁盘容器不应被操作系统修改。

然而,在被社区成员批评后,马克完全没有修改或完善功该功能的想法,反而直接“开摆”,在 5 月 16 号、18 号的提交中修改了 simH 主仓库的 BSD 开源许可证:

这改动写得非常绕,咱们来简单总结一下马克的意思:

如果你用 simH 的时候改动或者删除了我的 AUTOSIZE scp.c 和 sim_disk.c 功能,那我写的代码就不对你开源。

在许可证中加入禁止改动代码的限制,这个想法非常美好。然而从马克修改许可证的那一刻起,这个许可证就已经失效了,因为 BSD 规定   “……包括但不限于使用、复制、修改……软件的副本……” 而马克添加的禁止修改条件与前半段的 BSD 主许可冲突,一个自相矛盾的许可证是不被认可的,即使它只针对项目的部分代码。

而 simH 社区更是围绕 Mark 修改开源许可证一事展开了激烈讨论,相关帖子在社区首页已接近屠版。

同为核心开发者的 Richard Cornwell 直言自己大失所望,不想玩了,要求马克从仓库中移除自己开发的模块。

而另一位开发者 Paul Koning 对马克的行为作了非常中肯、一阵见血的评价:

  1. 开源许可证适用于整个软件,不适用于任何人编写的代码行。
  2. 爷都理解不了你添加的许可证内容,不知道你想表达什么(小编默默 +1 ,马克写的话真的很绕)。
  3. 你尝试添加的限制直接与前面的 BSD 许可证冲突。产生的集合根本不是合法有效的许可证,这意味着突然之间没有人有权使用,更不用说修改 simH 的代码了。
  4. SIMH 不是你马克的私人玩具。如果你想拥有一个私人的 SIMH 变体,请自行分支。我不想按照你强加的条款将我的工作贡献给 SIMH。

面对众人的质疑,马克在一一反驳之后终于词穷了,最终表达了他的真实想法:

我不会更改许可,也不会回滚版本。

如果你们希望拥有一个完全开源的项目,可以 Fork 我更改许可证之前的版本,自己去发展。

也就是说,这个标记为“历史计算机模拟器”的社区项目,或许将在 Mark 的一番骚操作之后分崩离析 —— 即使事情最终得到解决,也无法回到社区齐心的状态了。

随着事态一发不可收拾,已离开 simH 社区的原作者 Bob Supnik 出来收拾烂摊子。他在帖子中表示已与马克进行了沟通,马克仍坚持自己的许可证没问题,并决定将 simH 闭源。因此 simH 项目需要立即 Fork ,并在原始的 BSD 许可下进入一个新的存储库重新运作开源事宜。

展开阅读全文
精彩评论
翻译一下就是,老子搞个新功能给你们免费用,还在这BB,爱用用不用GUN,老子没有从你们这拿走一分钱,我爱怎么样就怎么样,怼我?不好意思爷不玩了
2022-05-20 12:46
3
举报
“仓廪实而知礼节,衣食足而知荣辱”,西方人越来越要顾及肚子了而已。
2022-05-20 16:42
1
举报
大多数搞开源本身收入太低,短期可以靠热情,用户事儿逼,时间长了怨气大,一个火星子就会爆炸
2022-05-20 10:06
1
举报
5 收藏
分享
9 评论
5 收藏
分享
返回顶部
顶部
返回顶部
顶部