新功能被批評(píng)導(dǎo)致 Simh 維護(hù)者 “擺爛”,隨意修改開(kāi)源許可證
Simh 是一個(gè)開(kāi)源歷史計(jì)算機(jī)模擬器,可以仿真歷史上出現(xiàn)過(guò)的一些計(jì)算機(jī)硬件或軟件,比如 IBM 1401、惠普 2114 等。該仿真工具的原作者是 Bob Supnik ,但他沒(méi)有選擇開(kāi)源,而是 Fork 了一個(gè)開(kāi)源版本。該開(kāi)源版本在 GitHub 上基于 BSD 協(xié)議開(kāi)源,由 Mark Pizzolato(注意這個(gè)馬克老哥,他擁有 Simh 開(kāi)源倉(cāng)庫(kù)的管理權(quán),也是本文主人公) 、 Richard Cornwell 、Paul Koning 等核心維護(hù)者進(jìn)行維護(hù),社區(qū)的成員都可以為之開(kāi)發(fā)新模塊。
該項(xiàng)目已有近三十年的社區(qū)協(xié)作開(kāi)發(fā)歷史,但近期 Mark Pizzolato 向 Simh 添加了一項(xiàng)有爭(zhēng)議的功能:在加載時(shí)修改磁盤(pán)映像文件以添加元數(shù)據(jù)。該功能隨即遭到社區(qū)其他開(kāi)發(fā)者的批評(píng),因?yàn)轳R克的新功能導(dǎo)致 simH 可以在用戶不知情的情況下修改磁盤(pán)容器,這顯然是不合常理的。操作系統(tǒng)項(xiàng)目通常有 “不破壞任何事物” 的默認(rèn)原則,比如 FreeBSD 的 “最小驚訝原則”,以及 Linus 的口頭禪 “不要破壞 Linux 的用戶空間”。也就是說(shuō),除非用戶主動(dòng)要求元數(shù)據(jù),否則磁盤(pán)容器不應(yīng)被操作系統(tǒng)修改。
然而,在被社區(qū)成員批評(píng)后,馬克完全沒(méi)有修改或完善功該功能的想法,反而直接 “開(kāi)擺”,在 5 月 16 號(hào)、18 號(hào)的提交中修改了 simH 主倉(cāng)庫(kù)的 BSD 開(kāi)源許可證:
這改動(dòng)寫(xiě)得非常繞,咱們來(lái)簡(jiǎn)單總結(jié)一下馬克的意思:
如果你用 simH 的時(shí)候改動(dòng)或者刪除了我的 AUTOSIZE scp.c 和 sim_disk.c 功能,那我寫(xiě)的代碼就不對(duì)你開(kāi)源。
在許可證中加入禁止改動(dòng)代碼的限制,這個(gè)想法非常美好。然而從馬克修改許可證的那一刻起,這個(gè)許可證就已經(jīng)失效了,因?yàn)?BSD 規(guī)定 “…… 包括但不限于使用、復(fù)制、修改…… 軟件的副本……” 而馬克添加的禁止修改條件與前半段的 BSD 主許可沖突,一個(gè)自相矛盾的許可證是不被認(rèn)可的,即使它只針對(duì)項(xiàng)目的部分代碼。
而 simH 社區(qū)更是圍繞 Mark 修改開(kāi)源許可證一事展開(kāi)了激烈討論,相關(guān)帖子在社區(qū)首頁(yè)已接近屠版。
同為核心開(kāi)發(fā)者的 Richard Cornwell 直言自己大失所望,不想玩了,要求馬克從倉(cāng)庫(kù)中移除自己開(kāi)發(fā)的模塊。
而另一位開(kāi)發(fā)者 Paul Koning 對(duì)馬克的行為作了非常中肯、一陣見(jiàn)血的評(píng)價(jià):
- 開(kāi)源許可證適用于整個(gè)軟件,不適用于任何人編寫(xiě)的代碼行。
- 爺都理解不了你添加的許可證內(nèi)容,不知道你想表達(dá)什么(小編默默 +1 ,馬克寫(xiě)的話真的很繞)。
- 你嘗試添加的限制直接與前面的 BSD 許可證沖突。產(chǎn)生的集合根本不是合法有效的許可證,這意味著突然之間沒(méi)有人有權(quán)使用,更不用說(shuō)修改 simH 的代碼了。
- SIMH 不是你馬克的私人玩具。如果你想擁有一個(gè)私人的 SIMH 變體,請(qǐng)自行分支。我不想按照你強(qiáng)加的條款將我的工作貢獻(xiàn)給 SIMH。
面對(duì)眾人的質(zhì)疑,馬克在一一反駁之后終于詞窮了,最終表達(dá)了他的真實(shí)想法:
- 我不會(huì)更改許可,也不會(huì)回滾版本。
- 如果你們希望擁有一個(gè)完全開(kāi)源的項(xiàng)目,可以 Fork 我更改許可證之前的版本,自己去發(fā)展。
也就是說(shuō),這個(gè)標(biāo)記為 “歷史計(jì)算機(jī)模擬器” 的社區(qū)項(xiàng)目,或許將在 Mark 的一番騷操作之后分崩離析 —— 即使事情最終得到解決,也無(wú)法回到社區(qū)齊心的狀態(tài)了。
隨著事態(tài)一發(fā)不可收拾,已離開(kāi) simH 社區(qū)的原作者 Bob Supnik 出來(lái)收拾爛攤子。他在帖子中表示已與馬克進(jìn)行了溝通,馬克仍堅(jiān)持自己的許可證沒(méi)問(wèn)題,并決定將 simH 閉源。因此 simH 項(xiàng)目需要立即 Fork ,并在原始的 BSD 許可下進(jìn)入一個(gè)新的存儲(chǔ)庫(kù)重新運(yùn)作開(kāi)源事宜。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:新功能被批評(píng)導(dǎo)致 Simh 維護(hù)者“擺爛”,隨意修改開(kāi)源許可證
本文地址:https://www.oschina.net/news/196583/simh-license-be-changed