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

开源
近期 Mark Pizzolato 向 Simh 添加了一项有争议的功能:在加载时修改磁盘映像文件以添加元数据。该功能随即遭到社区其他开发者的批评,因为马克的新功能导致 simH 可以在用户不知情的情况下修改磁盘容器,这显然是不合常理的。

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 ,马克写的话真的很绕)。
  • 你尝试添加的限制直接与前面的 BSD 许可证冲突。产生的集合根本不是合法有效的许可证,这意味着突然之间没有人有权使用,更不用说修改 simH 的代码了。
  • SIMH 不是你马克的私人玩具。如果你想拥有一个私人的 SIMH 变体,请自行分支。我不想按照你强加的条款将我的工作贡献给 SIMH。

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

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

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

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

本文转自OSCHINA

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

本文地址:https://www.oschina.net/news/196583/simh-license-be-changed

责任编辑:未丽燕 来源: OSCHINA
相关推荐

2017-11-01 15:20:55

开源开源许可证

2013-08-09 10:37:11

Android开源项目

2011-05-05 09:41:56

开源软件许可证

2014-04-04 10:07:46

ApacheWinJS

2013-07-17 10:16:57

Github项目许可证

2019-09-30 07:04:56

开源道德条款开发者

2018-08-24 09:32:15

开源技术 项目

2023-03-19 15:51:25

开源开源许可证开发

2014-07-09 10:53:58

软件许可证

2021-12-13 10:58:19

Apache Log4漏洞系统开发

2013-09-04 09:21:04

2013-05-20 09:02:34

GitHub开源许可证

2012-11-12 09:34:03

SDNOpenStackCloudStack

2021-06-07 14:52:14

开源开发人员维护

2022-04-22 14:19:30

苹果开发者社区GitHub

2009-07-23 09:25:28

SaaS成本

2021-03-01 15:48:17

开源Open Source开源许可证

2016-11-16 13:38:06

开源Linux代码

2020-10-28 15:31:46

Linux开发人员内核

2021-11-29 09:13:29

Starlink互联网卫星
点赞
收藏

51CTO技术栈公众号