葛冬梅/文 2005/05/27
GNU Genral Public License(以下簡稱GNU/GPL)是第一份自由軟體授權條款,也是目前最廣為被使用的授權條款之一。自由軟體之父 Richard M. Stallman(以下稱 Stallman)為了替他的軟體開發計畫-GNU 計畫尋找適當的授權方式,在 1989 年草擬出 GNU/GPL 第一版。它的整個架構與理念源自於Stallman所宣示的軟體使用者四大自由(註一):
【自由0】使用的自由:可以不受任何限制使用該軟體。
【自由1】研究的自由:可以研究該軟體的運作方式,並使其符合個人需求。
【自由2】散布的自由:可以自由地複製該軟體並散布給他人。
【自由3】改良的自由:可以自行改良該軟體並散布改良後的版本,以嘉惠眾人。
[[MORE]]
為了實現上述研究自由與改良自由,使用者必須可以取得軟體原始碼。而任何一個符合上述四大自由的軟體就可以被稱為自由軟體。
為了落實四大自由,Stallman 設計了一套不同於當時既有的著作權授權模式-copyleft。這套制度最大的特色有二:
- 使用者可以免授權金地執行、重製與散布該程式,並且同樣免授權金地取得程式原始碼;
- 任何基於程式原始版本所開發出來的修正版本(modificaiton)仍然必須使用相同的授權條款﹔
透過這樣一套機制,不僅僅最初的原始程式版本是免授權金、開放原始碼,就連之後所產生出來的修改版本也一樣。所需要注意的是,這一切的基礎是奠基在著作權制度之上,所以自由軟體仍然是有著作權的軟體。
Copyleft 制度落實為具有授權條款文字就成為了 GNU/GPL。它的主要內容包括:
- 使用者在散布程式重製物的時候(例如:燒成光碟給他人),必須附上原始碼。使用者也可以用目的碼(object code)的形式散布程式,但是必須讓收到目的碼的人知道如何取得原始碼。
- 使用者在散布程式時,仍必須適用 GNU/GPL,無論所散布的是原始版本或是修改版本。
- 不收取費用。除了以不收取授權金的方式讓使用者自由執行、重製、修改與散布程式之外,原則上 GNU/GPL 軟體也不收取任何費用,不過使用者可以在散布程式重製物時,為了支付重製或散布的成本,又或者是為了自行提供擔保而收取費用。
- 不附隨擔保(warranty)。因為不收取任何費用,所以 GNU/GPL 原則上不對使用者提供任何擔保,不過如上所述,使用者可以自行提供擔保。
GNU/GPL 因為基於 copyleft 所發展出來,再加上條款當中規定,對於就算是僅僅擷取一小段原始碼來使用,因此而開發出來的程式也必須要透過 GNU/GPL 來授權,所以有人稱 GNU/GPL 像是病毒一般(viral license),會將其他的程式原始碼也感染成為開放狀態。
這種病毒的感染特性,雖然維持了 Stallman 對於自由軟體自由開放的理念,卻剝奪了一些使用者對於軟體授權條款內容的選擇權利,所以 GNU/GPL 是集毀譽於一身的授權條款。
這樣的特性對於認同自由軟體理念的程式開發者以及單純的程式使用者來說,是相當受到歡迎的,但是對於那些想要使用 GNU/GPL 程式原始碼,卻不願意將所開發程式原始碼公開出來的人來說,卻是相當頭痛的,因為他們必須割愛去另外尋找合適的替代程式。此外,還有一些人使用了GNU/GPL 程式原始碼,卻不清楚其中的規定,之後才知道必須開放原始碼,卻礙於一些理由無法將原始碼公開,這種情況在承接政府計畫開發軟體時,就有可能發生,因為依據相關規定,接受政府經費補助所開發出來的軟體,原則上必須在我國境內使用,雖然有例外規定可依循,但是礙於既有行政作業程序的僵化與繁複,依據例外規定並非易事。
GNU/GPL 目前最新的版本為第二版,其中當然有許多適用上的問題,因此由 Stallman 所創辦的自由軟體基金會(註二)正在著手草擬第三版,期待修改出來的版本更為完善。不過上述 GNU/GPL 令人既愛又頭痛的特性,應該還是會繼續被保留,因為就是這些特性使得自由軟體得以廣泛地流通,並且受到越來越多人的認同與支持。
- 註一:有關GNU計畫的緣起與GPL產生背景請參見:http://www.gnu.org/。
- 註二:自由軟體基金會(Free Software Foundation,FSF):http://www.fsf.org/。