常常看到 GitHub 上的開源專案都會有個 LICENSE 檔案,上面定義了這個專案的授權條款,告訴你怎麼合法使用它。但你知道這些條款怎麼來的嗎?你知道你該怎麼用才不會被告嗎?更重要的是,你知道你的專案該怎麼定義 License 嗎?

GPL 授權、LGPL 授權

GPL(GNU General Public License)來自 Richard Stallman,據說當年他撰寫 UNIX 系統裡面的工具,但版權都在他的老闆,也就是 AT&T 手上。因為種種理由他覺得不爽,所以他在 1989 年左右開始鼓吹自由軟體的概念,並起草了一份具有法律效力的授權文件,也就是現在的 GPL 授權條款。

GNU Linux 下面的工具大部分都是 GPL 條款。由於 GPL 應該是最早出現的開源條款,你想得到的老軟體:MySQL、Samba、gcc、Qt 等等都是 GPL 條款。

而 GPL 條款規定只要你引用、修改、衍生自來自 GPL 授權的軟體也都得用 GPL 授權,而且都得公開原始碼,這應該是當初 GPL 會病毒擴散的原因。也就是說商業軟體等不想公開原始碼的軟體,可能都無法挑這個。

也是因為如此,後來 LGPL(GNU Lesser General Public License) 就比較鬆一點,如果你只有「引用」原本的程式的功能來開發軟體的話,就算是商業軟體也沒有問題;當然如果你有修改就得同樣採用 LGPL 授權並公開原始碼。 OpenOffice 就是採用 LGPL 條款。

有趣的是,LibreOffice 採用的是 MPL(Mozilla Public License) 條款呢。

BSD 條款

BSD 條款(Berkeley Software Distribution License)則來自加州大學柏克萊分校,用起來較為自由,能夠自由地重製、散佈、修改、商業化。

一開始 BSD 條款有四條(BSD 4-clause License),其中第四條通常被稱為廣告條款,要求後面必須夾附一份貢獻者名單等等。後來移除了這個條款,所以改稱為 BSD 3-clause License。

雖然現在市面上的 BSD 條款指的是 BSD 3-clause License 為主,然而第三條講的是要求開發者不得使用源專案作者的名聲,來作為後續散佈程式進行廣告或背書的規定。慢慢的大家也覺得累贅,所以也有人把這條拿掉,稱作 BSD 2-clause License。基本上唯一的規定就是你要把原本程式碼的 BSD 條款的著作權標示內容(Copyright)留著。

Apache 條款

Apache 條款是 Apache Software Foundation 寫的,也是很自由,又允許商業使用。不過必須包含著作權聲明(Copyright)、Apache 條款(License)以外,還要特別標示出修改過的地方。

MIT 條款

MIT 條款則來自麻省理工學院(Massachusetts Institute of Technology),也是可以商業使用,用起來跟 BSD-3 有八成像,只是又特別說被授權人可以重製、修改、合併(merge)、出版發行(publishing),而且條款內容可依照著作權人的需要修改。

這個條款好像只有要求必須包含著作權聲明(Copyright)跟 MIT 條款(License),目前最自由的條款應該就是 MIT 條款了 (?

常見條款比較

做個小結,來看一下這四個常用條款的比較:

條款GPLLGPLBSDAPACHEMIT
公開原始碼
以同樣方式授權
標註修改的部分
必須包含 Copyright
必須包含 License

以上是我的理解啦,我也不確定有沒有弄錯,歡迎留言指正。建議真的要選用時,還是要看一下原本的授權條款到底寫了什麼。

OpenFoundary 有整理了各個條款的中文版:授權條款介紹;條款的原文則可以在 這裡 找到。

當然除了這些正經的條款以外,自由軟體裡面也有一些可愛的條款 XD

WTFPL 條款

WTFPL(Do What The Fuck You Want To Public License),簡單來說你可以做任何事情。

Beerware 啤酒軟體

不同於一般的自由軟體,啤酒軟體則帶有請求。被授權人可以做任何他想做的事情,但是被授權人覺得這軟體有點價值,而且哪天遇上原作者的話,可以請原作者喝一杯啤酒 XD

但他不是強制性的,所以某種程度上他還是自由軟體。這條款也被描述為一個玩笑。

Copyleft

另外補充,找這些條款的介紹可能會看到 Copyleft 一詞。Copyleft 其實是在保障這些著作能授予公眾更多自由運用的權利,避免被專有的著作權保護而「All rights reserved」。

Creative Commons、創用 CC、CC0

最後再提一個常見的東西:Creative Commons。早期臺灣很多文章、圖片創作都會補上創用 CC 的條款,創用 CC 的中文描述比較多,而且比較少用在程式碼上,這裡就不多說了。

其中 CC0 是指原作者放棄著作權利,大家可以任意複製、修改、發布、展示、商業利用,聽起來跟 MIT 有點像?所以有些很開放的地方可以看到:「所有程式碼皆採 MIT 授權、文字皆採 CC0 授權。」

如果你還是不知道該怎麼選開放原始碼條款,歡迎參考 GitHub 製作的 Choosealicense.com

參考資料