登入  |  English
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。
電子報總覽

GPL 的另類利用方式:「分開散布.責任轉嫁」

一個常被提出的問題:要如何在利用 GPL 程式碼的同時,避免其他部份的程式碼也被 GPL 感染?之前曾經提過一些抽象的判斷標準,例如採用動態連結 (dynamic link) 利用 GPL 程式碼,因此開發出來的新程式,許多開發者認為可以不用受到 GPL 的拘束,但是採用靜態連結 (static link) 利用 GPL 程式碼,許多開發者認為新程式仍應該採用 GPL 授權。這樣的標準仍是相當抽象,這期的法律園地就來談一個比較具體的方式,筆者稱這樣的方式為「分開散布.責任轉嫁」。

所謂「分開散布」是指將 GPL 程式碼與非 GPL 程式碼分開散布,「責任轉嫁」則是將提供原始碼的責任轉嫁到他人身上。聽來這好像是兩件不同的事情,要怎麼樣才能兜在一起呢?現在就說個甲跟乙的故事來說明。

甲開發一個程式,裡面利用到 GPL 程式碼,這個程式也因此採用 GPL 授權,甲將這個程式燒在光碟裡送給朋友乙。甲另外還為這個程式寫了一些附加元件,這些附加元件完全是甲自己寫的,並沒有利用到 GPL 程式碼,甲決定只讓他人可以安裝、執行這些附加元件,但是並不提供原始碼給別人。甲把這些附加元件放在網路上,當乙將程式安裝到電腦上的時候,安裝過程中跳出一個視窗,裡面有一些說明文字,並且詢問乙是否要下載放在網路的附加元件並安裝,乙選擇「是」,這時候,電腦將附加元件下載並安裝到程式裡。乙用了這個程式,覺得這些附加元件很棒,來跟甲索取原始碼。

甲:「我還不想提供附加元件的原始碼。」
乙:「可是你這個程式不是 GPL 授權的嗎?這上面的附加元件也應該是 GPL 授權的,依照 GPL 規定我就可以跟你拿到原始碼啊!」
甲:「程式是 GPL 授權的沒錯,但是附加元件並不是 GPL 授權的,所以不受到 GPL 的拘束。目前我只想給人用而已,並不想把這些附加元件原始碼給人。」
乙指責甲:「怎麼會這樣?你這樣違反了 GPL!」
甲:「我並沒有違反啊!這些附加元件完全是我自己寫的,根本沒有用到任何 GPL 的程式碼。」
乙:「但是這些附加元件是跟程式結合在一起,是一起執行的啊!」
甲說:「我並沒有把附加元件程式碼與 GPL 程式碼結合在一起,『結合』這個動作是『你』做的,程式安裝過程不是有問你『是否下載並安裝附加元件』,此外還有說明文字,說明這些附加元件並非 GPL 授權的,並不提供原始碼給人,若是你同意將附加元件安裝到程式,會讓安裝在程式上的附加元件也成為 GPL 授權,在沒有附加元件原始碼的狀況下,你將無法依照 GPL 規定來散布這整個程式。這些說明都你瞭解並同意,才會按下『同意』按鈕。所以讓附加元件感染成為 GPL 授權的人是『你』,不是我」
乙:「我...沒注意看清楚那些說明文字......」

甲在這裡用的方式,就是將程式與附加元件分開散布,讓結合的動作由乙去完成,是乙讓附加元件受到 GPL 感染,身為附加元件完整著作權人的甲,因此還是可以隨心所欲地來決定要給他人原始碼或是不給。

那麼,「提供附加元件原始碼」的 GPL 責任落在誰身上呢?這就要看是誰散布「結合有附加元件的程式」了!在這個故事中,甲不會這麼做,就只剩下乙了。若乙真的將「結合有附加元件的程式」再給他的朋友丙,丙來跟乙索取附加元件原始碼的時候,乙就沒有合理的理由可以拒絕,因為這整個「結合有附加元件的程式」都是 GPL 授權的!大家可能會覺得這樣對乙並不公平,因為乙根本沒有原始碼,只有甲擁有原始碼,可甲偏偏又不提供出來。是的,這這樣的方式對於乙來說似乎不夠公平,但是這樣的利用與散布方式,並沒有違反 GPL 的遊戲規則!乙因為沒有注意到當時畫面的說明文字,而直接下載安裝附加元件,這個時候所能做的,就是「不要散布」這個結合有附加元件的程式,因為提供原始碼責任的產生,導因於散布 GPL 程式,只要沒有散布行為,就不會有後續的提供原始碼責任了。

以上故事中的「分開」手法,並不侷限於「光碟-網路」,也可以是「裝置 (device) -網路」,或者是任何其他合乎這樣遊戲規則的方式。而再加上附加元件真的沒有用到 GPL 程式碼,這時候,責任就轉嫁到他人身上了!

這就是「分開散布.責任轉嫁」的方式,而這種方式的類似應用並不少,讀者稍微留心觀察一下,可能就會在自己使用的自由軟體中發現如故事中的「附加元件」。

「分開散布.責任轉嫁」這樣的方式雖然沒有違反 GPL 文字規定上所表達出來的遊戲規則,但筆者也不敢肯定地說,這樣的利用方式完全沒有爭議,因為目前並沒有確定的法院判例可以當作參考標準,所以就容易因為理念不同而產生不同的立場。對於堅持徹底貫徹 GPL 精神的人來說,可能並不贊同這樣的利用方式,但是對於其他人來說,這卻是一種十分合理的解釋與利用方式。而當堅持徹底貫徹 GPL 精神者,不贊同的情緒升高到一定程度時,很可能我們就會在 GPL 第四版中看到與之相關的規定,如同第三版對於 TiVo 與 DRM 有相關規定的情況一樣。

筆者個人對此並沒有特定的立場,只是希望透過本文來說明,除了一般所認知的「完全不用 GPL 程式碼」外,還有這樣一種另類的利用方式,此外,也希望大家在透過這種方式利用 GPL 程式碼的同時,可以加強相關說明文字的呈現方式,讓使用者可以清楚明瞭這個下載安裝行為所帶來的後果,並自行決定是否願意承擔這樣的後果。


● 本文的完成特別感謝林誠夏以及鑄造場同仁所提供的意見。
● 延伸閱讀:葛冬梅,究竟包含多少的 GPL 程式碼才算…?,自由軟體鑄造場電子報,第 54 期。




自由軟體鑄造場電子報 : 第 110 期 GPL的另類利用方式:「分開散布.責任轉嫁」
標籤: GPL 區隔機制,   GPL,  
分類: 法律專欄