首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

新功能被批评导致 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 许可下进入一个新的存储库重新运作开源事宜。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220520A051WE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券