一般中文所謂的自由軟體(free software),真正的意涵是指符合史托曼(Richard. M. Stallman)所訂定的四大自由的軟體(註一)。此外還有所謂的開放原始碼軟體(Open Source Software),指的是符合開放原始碼組織(Open Source Initiative,OSI)所訂定開放原始碼定義(Open Source Definition,OSD)的軟體。
開放原始碼定義由裴倫斯(Bruce Perens)所擬,其曾經為Debian開發計畫的領導人,並為Debian草擬「Debian自由軟體指導綱要(The Debian Free Software Guidelines,DFSG(註二))」,用來判斷Debian計畫中的程式是否為自由軟體,之後裴倫斯將DFSG加以修改成為開放原始碼定義的第1 版。 目前開放原始碼定義由 OSI 維護,最新版為為第1.9版,共有十項要件(註三):
(1) 自由再散布(Free Distribution):允許自由再散布程式,並且不可以因此而收取授權金,不過仍然可以收取授權金以外的費用;
(2) 原始碼(Source Code):為 了使程式可以 被修改,所以必須允許程式以原始碼形式散布。散布原始碼的形式不拘,可以透過電子媒介,也可以透過紙本。而除了直接提供原始碼外,也可以先單獨散布程式的 執行檔,若收到執行檔之人想要原始碼時,可以再向散布執行檔著索取原始碼,現行常見的做法是將原始碼放在網路上,於固定網址中提供他人自行下載。
(3) 衍生著作(Derived Works):必須允許他人可以修改原程式,並且允許他人散布修改過的程式。授權條款可以要求修改過的程式必須採用與原程式相同的授權內容,不過此並非是這項定義中強制性的要求。
(4) 原創作者程式原始碼的完整性(Integrity of The Author’s Source Code):為了保持原作者原始碼的完整性,授權條款可以要求修改版本冠以不同的版本編號,用來和原程式做區別,或者是要求以修正檔(patch files)附加於原程式的形式來散布修改程式。這項定義並不是強制性。
(5) 不得對任何人或團體有差別待遇(No Discrimination Against Persons or Groups):為了讓開放原始碼軟體可以廣泛地散布,授權條款內容不得歧視任何人或團體。不過某些國家對於特定種類的軟體設有輸出限制,授權條款中可以提醒使用者可能有這樣的規定必須遵守,不過本身不可能有輸出限制的內容。
(6) 對程式在任何領域內的利用不得有差別待遇(No Discrimination Against Fields of Endeavor):基於和第五項定義同樣的理由,授權條款內容不得限制程式僅可以或不可以在特定領域中運用,當然也不得限制程式在商業領域中的運用。
(7) 散布授權條款(Distribution of License):授權條款中的權利繼續適用於收到程式的所有使用者。這項要件的重點並非在於,修改過的程式仍然必須適用相同的授權條款,因此向GPL這樣的授權條款也符合這項要件。
(8) 授權條款不得專屬於特定產品(License Must Not Be Specific to a Product):這一項定義是防止開放原始碼軟體的程式被封閉起來。若多個程式一同以一個開放原始碼套裝軟體(package)的形式散布時,若其中一個程式單獨被拿出來散布時,授權條款不可以限制這個程式繼續以開放原始碼授權條款散布。
(9) 授權條款不得限制其他軟體(License Must Not Restrict Other Software):一個開放原始碼程式與其他程式在透過同一個散布媒介體散布,例如CD-ROM,此時開放原始碼授權條款不得限制其他一同散布的程式也必須是開放原始碼的。
(10) 授權條款必須技術中立(License Must Be Technology-Neutral):授 權條款必須技術中立,必須使程式可以在非網際網路環境以及在非圖形化使用者環境(non-GUI)下散布。若是授權條款規定「點選即視為同意(click -wrap)」的程序作為使用者接受條款的要件,這樣的規定會阻礙程式透過紙本散布,就不符合技術中立要件的要求。 一份程式的授權條款若是經開放原始碼組織審核通過,符合開放原始碼定義,就可以在程式散布時標明為經過開放原始碼組織認證通過的開放原始碼軟體。
這 十項要件在邏輯架構與文義表達上並非十分嚴謹,所以在判斷一份授權條款是否為符合開放原始碼定義時,會有文義之外的解釋產生,或者根本就涉及一項要件是否 具有存在必要性的質疑。即使如此,在經過了許多授權條款的審查,以及反覆地公開討論,目前對於各項要件均已經有相當具體的審查標準以為依據。
註一:有關四大自由的介紹,請參見:葛冬梅,充滿烏托邦理想的四大自由,自由軟體鑄造場電子報,第三十五期,FLOSS 概念介紹 。
註二:DFSD的介紹請參閱此
註三:開放源碼組織進一步的介紹與開放源碼定義,請參閱此