簡單、開放、幾無限制的 BSD License
建立日期 2005-11-25 08:00 最近更新在 2012-05-14 11:29
作者是 葛冬梅、林誠夏
相較於常常被大家當作討論焦點的 GPL(註一),其他授權條款似乎就顯得沉默許多。大部分的人也因為 GPL 授權條款的盛名,所以認為它是第一個自由開源軟體授權條款,其實不然,BSD 便是一個較諸 GPL 更早存在的自由開源軟體授權條款,並且也被廣泛地運用在許多知名的大型專案,不過因為 BSD 授權條款的內容精簡,相關的義務性要求不多,所以實務上也就較少被人提出來進行討論。
早在 Richard M. Stallman 倡導四大自由與自由軟體的理念之前,許多軟體專案已經是透過社群模式在進行開發,這些軟體開發社群成員樂於將自己的程式源碼與 (Source Code) 技術心得分享給他人觀看、討論、散布,甚至是修改。此種源碼共享精神當時也為一些大學與研究機構所繼承,這些大學與研究人員希望可以透過軟體程式的廣泛散布,以達到釋放學術資源以及促進學術討論交流的目的。柏克萊加州大學 (University of California, Berkeley) 即為其中著名的例子。
為了讓該校所開發出來的軟體可以廣泛地被散布,柏克萊大學草擬出了 BSD 授權條款 (Berkeley Software Distribution License, BSD License),因為目的在於將軟體釋出讓一般公眾都可以自由使用,BSD License 幾乎將所有的軟體著作權利授權出去,內容也因此規劃的非常簡單,讓使用者可以幾近無拘無束地運用 BSD 授權的軟體,包括得以自由地重製、散布、修改、商業化運用這些程式,而如果不再宣稱以 BSD 授權的方式來散布這些程式碼時,甚至可以將軟體程式原始碼在嗣後的散布封閉起來,改以收取授權金的方式來商業利用這些程式碼。因為這樣寬鬆的授權特性,擷取 BSD 程式碼來開發其他軟體專案時,使用者所必須承受的義務性規則其實非常的少。
不過現行較為流通的 BSD License 版本,與最初柏克萊大學草擬的版本已有不同,主要在於舊版 BSD (BSD 4-clause License, BSD-4-Clause) 規定,只要用到 BSD 授權的程式碼來開發程式,就必須要在後續作品的廣告界面或包裝上註明:「本產品包含有柏克萊加州大學與程式貢獻者所開發軟體之程式碼。」而因為有此顯名目的的廣告條款,許多舊版 BSD 專案的貢獻者便將自己的名字加在授權條款中一併散布,這使得採用舊版 BSD 授權的軟體,最後必須夾附一份標註一長串貢獻者名單及其個別顯名聲明的授權文書,有時這份授權文書數位格式的檔案容量,甚至超越部份 BSD 軟體專案中的重要程式檔案。因此柏克萊大學的技術授權辦公室 (the office of technology licensing for Berkeley) 在討論過後,於 1999 年將舊版 BSD 預設的廣告條款移除,遂產生了目前多數專案採用的新版 BSD 授權條款 (BSD 3-clause License, BSD-3-Clause),自此之後,舊版 BSD License 在口語上便常被習稱為「Original BSD License」、「Old BSD License」,或是「BSD-old」,而新版 BSD License 則被稱為「Revised BSD License」、「New BSD License」,或是「BSD-new」。
其實、就授權內容來看,任一時期的 BSD License 都非常的簡單,舉新版 BSD 來說,主要的授權規定集中在兩項義務,那就是專案與衍生專案的散布者,必須在後續作品中保留原專案作者的著作權聲明 (copyright notice) 及其免責聲明 (disclaimer) ,只要達到這兩項義務性規範的要求,則可以自由地使用、改作、重製,及散布這些以 BSD-3-Clause License 授權的程式,那麼、除了著作權聲明及免責聲明以外的第三款,則是額外要求程式的使用者,不得使用原專案作者的名聲,來為其後續散布程式進行廣告與背書的規定,這表示、BSD 原專案作者與其他貢獻者的名字雖然必須要被保留下來,但這項要求只是一個事實性陳述的程度,這些名單及相關資訊,若是沒有得到這些作者群的另外書面授權,便均不得被使用者逕自拿來為此 BSD 衍生程式進行商業背書或者是廣告促銷 (promotion)。附帶一提的是,有些 BSD 專案的開發者認為上述「禁止廣告背書條款」還是過於累贅,所以部份的 BSD 專案在授權條款上,是再行移除掉此一條款,讓本來精簡化的 BSD License 只剩下二款 (BSD 2-clause License, BSD-2-Clause),這樣的 BSD License 被稱為「Simplified BSD License」或是「FreeBSD License」,因為在伺服器架設上被廣泛應用的 FreeBSD Project,就是使用這款最精簡的 BSD-2-Clause 來進行授權。
以 BSD License 為中心,還有許多與它相類似的自由開源軟體授權條款,例如:一般認為授權內容與 BSD-2-Clause 幾乎完全等價的 MIT License,以及早期應用比例不低的 zlib License 等等,這些條款在授權範圍及授權義務性方面均與 BSD 類同,對程式專案的使用者而言,都具有開放、簡單以及幾近沒有任何限制的特色。
最後、有論者以為,BSD 類型的授權內容雖然簡單,卻也很容易造成 BSD 類別軟體被人任意封閉起來收取軟體授權金,而無助於自由開源軟體的生態存續或是商業發展(註二);但同時也有論者以為(註三),BSD 類型的授權模式較為簡單、不易造成爭端,不失為一種良好的授權內容。筆者個人較為認同後者,因為就客觀狀況來說,BSD 類別專案只要架構完整及功能成熟,如 Apache Software Foundation 轄下的諸多專案,現實上不乏商業公司願意出資持續支持,並且部份的廠商也願意將其採用的成果定期回報予開發團隊。所以對於認同自由開源碼軟體公眾分享、自由修改理念的開發者,若是對於授權條款的選擇,一開始並沒有特殊的要求與明確的偏好,建議可以在專案開發之初採用 BSD 類別精簡型的授權條款,或是與 BSD 相類、給予使用者較大授權範圍與較小授權拘束的其他寬鬆性條款 (permissive license),如此一方面可以達到開放源碼讓他人自由參考與自由修改的目的,另一方面也可以降低初期不必要的授權爭議,並且加速專案成果的散布效率;而待專案的可用性與成熟度更高之後,再接續擬定未來授權方式調整的規劃,而不一定限定在專案開發的初期,便非得採用 GPL 類別或是其他類別,這些授權義務關係較為繁複的進階條款。
註一:關於GNU GPL之介紹請參見:葛冬梅,讓人既愛又頭痛的 GNU GPL,
https://www.openfoundry.org/index.php?option=com_content&task=view&id=525&Itemid=56,自由軟體鑄造場電子報,第 33 期。
註二:軟體自由法律中心 (Software Freedom Law Center, SFLC) 的創辦人 Eben Moglen 曾公開評論,BSD 類別授權程式可能會讓採用廠商陷入「損己而不利人 (BSD License is a really good license for your competitor to use)」的局面,其認為企業界應該選用具有授權回饋意涵的 GPL 類別條款,才能與其他也採用自由開源軟體元件開發產品的商業公司,有公開公平的對等競爭關係。相關資訊可參照右列頁面:
https://lwn.net/Articles/235397/。
註三:GitHub 聯合創辦人之一的 Tom Preston-Werner 受訪時表示,其之所以選用 MIT License,在於:1、輕簡的授權內容,開發者一閱即懂;2、足夠的授權保障,讓後續者可以安心的取用這些程式碼;3、清楚的授權規則,不用費心解釋條款的模糊地帶,也成功降低可能產生爭議的時間成本,專案的參與者可以全面將心力放在程式碼的共同撰寫上。原文及相關資訊可參照右列頁面:
https://tom.preston-werner.com/2011/11/22/open-source-everything.html。