Plurk FaceBook Twitter 收進你的MyShare個人書籤 MyShare
  顯示內嵌語法

自由軟體鑄造場電子報

自由軟體鑄造場電子報
2008.9.1/報主.自由軟體鑄造場

本期內容:
‧[法律源地] GPL的另類利用方式:「分開散布.責任轉嫁」
‧[名家專欄] 我選用自由軟體的理由

[法律源地] 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 期


[名家專欄] 我選用自由軟體的理由

據說,全世界第一座開放給一般平民大眾的圖書館,是美國開國先賢之一的班哲明‧富蘭克林所設立的(Benjamin Franklin,1706/ 1/ 17~1790/ 4/ 17,多數人只知道他在雷雨中放風箏,把電儲存起來的故事),當時富蘭克林創立了一個社團,由於討論事情時經常要引用書籍,於是他設立了一個圖書室,好方便大家互相交流和引用,後來他發現這樣的公共資源要是能擴大到一般平民,那對整個社會都有好處。他更想起他自己年幼時候因為貧窮而無法讀書識字,於是決定把他的圖書館開放給平民大眾,希望透過這樣的公共資源,讓大家都能夠輕易學得知識,進而利用知識改變自己,也利用知識來創新,讓人類的文明能進一步的發展。

◎ 圖書館與自由軟體相似之處


多年以後的歷史學家,沒有不肯定富蘭克林的創舉,咸認北美的文明進展,圖書館實有莫大之功,因為普遍設立的圖書館,讓更多的美國人能自由取得所需的知識。富蘭克林此一超越時代的做法,更為其他國家所學習,讓更多的人在「獲得知識」這件事情上得到自由。圖書館間接創造了富強的美國,更影響了全世界。只是,這和自由軟體又有什麼關係呢?

電腦對於人類文明的貢獻是無庸置疑,其中的軟體更居於關鍵地位。推動整體軟體業不斷向前快速發展的就是商業軟體。商業上的利益,讓許許多多才智之士競相投入,發展出許多有助於人們提昇工作效率、增進生活品質的商業軟體,其貢獻就跟一般的書籍沒有兩樣。不過唯一的缺點就是價格太高,讓經濟弱勢的階級難以親近,無法讓所有人們都得到使用軟體的自由。

在這電腦和網路幾乎已經取代紙筆,成為傳播知識主角的新時代,若人們沒有使用軟體的自由,只有少數的富有階級能從軟體應用得到好處,那麼馬克斯所說的兩極化世界是否會真的誕生呢?

多年來,我個人使用的作業系統都是微軟出品的(從 DOS 5.0 到 Windows XP),常用的應用軟體從 Word 5.0 到 Office 2003,說實在的,捐給微軟的研發費用也挺多了,不過最麻煩的地方就在於分享。我所謂的分享,包括作品和軟體。好用的東西,總會想要跟某些人分享,例如家人、朋友等,但是微軟的產品是商業軟體,礙於版權的限制,不可以複製一或多份送給別人,就算對方跟你說,收到的檔案沒辦法法打開或檢視,你也不能複製給他一份製作或檢視的商業軟體,因為這違反了版權法。

買本書,還可以借給人家看一下內容,買商業軟體,卻是只能自己用(據說不是買所有權,只是買使用權而已),完完全全的孤芳自賞,只能期待大家都跟你用的東西一樣,或者採用萬用檢視器之類的工具軟體。如此的封閉性格,不是和資訊、知識的分享有點矛盾嗎?
或者,你覺得某些團體或族群很需要這些軟體來訓練或加強競爭力,以免被無情的競爭推入下層階級,那也不能任意散布,善心人士們還是得捐錢給微軟(在此僅以微軟作為商業軟體公司的代表,並非是刻意點名做記號)。就算你的理由是為了消滅社區貧窮,還是促進世界和平,沒有金錢就沒辦法做這樣的好事!但是,這些在自由軟體內都不成問題。

所有使用自由軟體的人,不但有使用軟體的自由、修改的自由,更有為了公益而散布自由軟體的自由。這讓我覺得,我要跟周遭的家人、朋友分享好東西時,簡單而沒有法律上的風險,這和圖書館的精神是不是很相似?這是我使用自由軟體的起始念頭。

◎ 一個匯聚教學資源的共享園地

過往,自由軟體的使用者多半只存在於少數圈子,如軟體開發者或學術單位,這些人在軟體的應用上幾乎不會有什麼問題,不過一般大眾或非軟體開發者,他們是需要一些操作與應用上的指引(Guide),就像很多人學 Word 會去買本書來看一樣。不過市面上很容易找到各種商業軟體的專門書籍,卻很難找到有關自由軟體的書。在網路上或許不難找到,不過常常是東一篇,西一個,缺乏有系統且架構嚴謹的學習管道(像鳥哥私房菜這種有系統且完整介紹 Linux 的網站真的不多見),因此許多人即使有心想學,也常常因為要花太多時間去找尋教學文件而放棄。

對於資訊教科書作者的我來說,怎麼用並不是太大的問題。畢竟我的工作之一,就是去研究一個軟體的設計邏輯是什麼,使用邏輯是什麼,常用的功能是哪些。接下來我會把我使用自由軟體的心得寫成教學文件,透過電子報跟大家分享,不但可以節省不斷重複教會朋友們的時間,也讓大家直接看到自由軟體到底有多棒!


◎ 關於作者
曾開發多本資訊教材和數位內容,並擔任相關顧問工作,個人部落格:人間研究所


報主的話:
本電子報為摘要版,若欲訂閱全文版請按此