2007年6月17日 星期日

Linus戰FSF

Linus終於忍不住與FSF戰了起來。

事實上GPLv2與GPLv3的戰爭已經在linux.kernel上爭論好幾天了,幾天沒去看就增加到了七百多篇。

很多人或許已經從CNET或Slashdot閱讀到Linus對於GPLv3的不滿意,而這幾天關於Linux雙授權的討論議題在Linux.kernel討論區引爆開來,除了Linus在此Thread大表對SUN的不滿,使得SUN新任ECO趕緊出面澄清之外,最重要的還是Linus無法接受GPLv3造成的大辯論。
我看完這個Thread,整理了雙方的論點:

事件起因於Tivo公司發行了一種網路電視盒,可以讓人不用電腦就能欣賞網路電視,這個盒子裡的軟體使用的是Linux核心,Tivo根據GPLv2的協議,允許你取得、修改並散佈它們為這款網路電視撰寫的客制化Linux核心,但是他們不允許你將修改過的Linux核心重植回此電視盒,它使用了一個晶片組,只有經過認證核可的Linux核心才能在此盒子中執行,換句話說,它運用DRM手法禁止你改機。實際案例的爭論點在此,FSF認為Tivo的作法破壞了GPL的自由精神(他們稱此類行為tivoization),因此在GPL3特別為tivoization制定了反制條款。
此類案例凸顯的是GPLv2對FSF基金會而言,有所漏洞,這些漏洞讓製造廠商破壞了使用者「取得、修改、重新散佈」的精神,因為重新散佈的程式碼不能在相同種類的機器執行,那這些修改過的程式碼便無法驗證是否有效,亦不能有效地使用。所以GPLv3多出了以下前言(Preamble):

Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.
某些裝置的設計,限制了使用者在他們的裝置中存取或安裝修改版軟體的權利,而裝置的生產廠家卻可以。這完全違背了保護使用者自由修改軟體之精神。此類發生在個人裝置上的行為是不可接受的。因此,我們設計了本版的GPL以禁止此類產品的出現。如果類型相同的問題在其他領域發生,為了保護使用者的自由,我們也已準備在未來版本的GPL延伸至此領域。

Linus與Linux Kernel的作者們對這點非常不爽。請注意我的用詞,對Linus個人來說,可在他對FSF工作者Alexandre Oliva的信中看出來,他真的對FSF擁護者永無止境的辯護非常火大(身為一旁看熱鬧的鄉民,我也對FSF傳教士般滔滔不絕對自由軟體宗教信仰辯論感到厭煩)。
Linus是個實用主義者,當初他在十五年前選擇了GPLv2而非BSD作為他的許可證,正是因為GPLv2符合他的需求,而非贊同FSF對GPLv2所期許的精神(spirit)。對Linus來說,GPLv2讓他可以獲得從其他人來的回饋,使得Kernel的工作基本偏向整合而非分岔,因此Linux一直能保持不分裂的情勢而壯大。新版本的GPL對Linus而言是一團災難,因為它間接控制了硬體的行為(硬體商不得禁止改機),使得GPL超出對軟體自由的範疇,此舉一定會造成某些硬體商在採用Linux上的困擾,因而降低Linux Kernel的可能性。

Linus很早就以行動表明他跟RMS等人是不同掛的,從他的這席話可以看出:
... The more permissive license actually allows more people to get involved. And the only thing that really *matters* (the source code) can be distributed and improved on by all these different people, even if some of them may have their hands bound by legal issues.
...越寬容的許可證就允許越多群眾參與。而許可證對原始碼真正有意義的事就是讓這些不同的人散佈與改進,即使那些人之中可能有些會被法律爭議所束縛。

現在更是鐵了心不採用目前版本的GPLv3,將來GPLv3推出時是否會造成Open source世界的分裂?現在大家都在看。

雖然雙方各有立場,這些立場也很貫徹了雙方一向的不同特質,以我的立場而言,我比較偏向Linus的論點。別忘了GPLv3前言提到「為了保護使用者的自由,我們也已準備在未來版本的GPL延伸至此領域。」這表示GPL所觀照的範圍將會越過軟體,試圖侵犯其他領域許可證的傾向。這對其他人是非常難以接受的,若是一個許可證難以被他人接受,那將會是一場自由軟體界的災難。

後續過程,這裡有part 2

3 則留言:

shelandy 提到...

我印象沒錯的話,國外訪談中Linus 談到寫 Linux 的原因之一是因為他不知道BSD 已經存在,所以上面那句可能要修正。詳情要再去查核

不過瑕不衍瑜,這文寫的好

臺灣一堆人用Linux 的人只知 GPL 出新版了,而不知背後種種爭議跟可能引發的災難。老兄(姐?)您 did a good job!

Peachwa & Neversay 提到...

嗯,我以前看過Linus訪談也是這樣講,可是他在mail list對於轉換到BSD的提議,回絕的理由是「BSD真是他X的糟透了,他傾向讓專案forking,而非merging,GPL 2真是個偉大的license,因為他傾向於merging而非forking。」

這是Linus最近對於BSD的立場。

阿,其實我是小弟。 :)

匿名 提到...

看完了linus的文章後才知道為什麼tivo的做法沒有違反GPLv2,學了不少東西
--
linus的文章真的寫的很好