August 08, 2005

熱血之餘談軟體授權

前面幾篇 blog 提到最近許多熱血的計畫,讓人對台灣本土的自由軟體發展還是存有高度的信心,不過,在此同時,軟體的授權方式也需要適度的探討。

基本上,軟體授權是一種契約,稍早在 blog [自由軟體授權分析] 提到我在今年六月份作過一份這樣的簡報,估計這個月底會將 slides 公開,這一個多月以來,我又拜讀許多這方面的討論,其中比較吸引我的項目,大概就是在 [Eclipse.org] 的 Bugzilla [#80980],其標題為 "Eclipse Platform source organization incompatible with spirit of Common Public License"。我們都知道,Eclipse 是 IBM 以 CPL 授權捐出來的重量級開發平台環境,以 Java 作為主要的建構語言,稍早的 blog [Eclipse 引導開發平台的統一],我們也可以發現,這儼然就是新一代的標準。

但問題是,依據 IBM CPL 授權的 Eclipse 在語言層面與運作機制上,是否會與軟體授權方式牴觸呢?這個 Bug#80980 就是探討其潛在的因素。在看整個議題之前,其實爭議之處就在於 "Derived Work" 的定義,當初 GNU C Library (glibc) 就是因為 GNU GPL 在 Runtime linkage 的議題存有一些爭議,才由核心開發人員另行制定 GNU LGPL,明確的規範 dynamic link 的適用性。而 Java 這個 dynamic language 更是有如此的考量,所以 [GNU Classpath] 才會採用 "GNU GPL with exceptions" 的方式授權,這部份可以再閱讀 [The LGPL and Java]。

所以,就我的看法 (當然跟 Kaffe.org 無關),在沒有辦法澄清 Dynamic linkage 與 IBM CPL 的適用性的前提下,事實上我們已經陷入「定義」的鬥爭,是此,我樂見 Bug#80980 的出現,也希望 Eclipse.org 能夠明確的予以規範。

說到這裡,我要澄清一下,去年接受 [iThome] 的專訪 [開放Java原始碼是成就Java,還是毀了Java?] 中,書面的敘述提到:
    參與Java開放源碼專案kaffe計畫的黃敬群認為:「Java不適合採用GPL,還有一個很重要的原因,是Java 本身是動態語言。」GPL 指出,所有的衍生軟體,以及使用該軟體作為根基的新軟體,都必須依循GPL。而Java所有東西都是物件,物件都可以動態產生,因此,GPL 中關於「linking」的限制就變得令人混淆了。因此開放原始碼基於不同的需求,會衍生不同的授權。開放後仍需中立的單位維持Java的相容性。
基本上我覺得書面紀錄還算正確,但問題是,我在之前強調的是「Java『未必』適合 GPL」而非「Java『不』適合 GPL」,正是上述議題的考量。當然啦,不是每個專案都能做到盡善盡美,以我參與的 Kaffe.org 來說,從 1997 年到現在,就是以 GNU GPL 發行,同時也會有上述的質疑,但是問題是,作為歷史最悠久的 Free Java Implementation,Kaffe.org 擁有為數甚多的 developers & contributors,有的甚至已經不在人世,根本不可能每個人都簽署 Copyright Assignment (因為授權移轉),這是一個遺憾。
由 jserv 發表於 August 8, 2005 02:36 AM
迴響