自由軟體授權條款相容性這裡所謂授權條款相容性主要是指下面兩種情況:
- 程式開發者採用一個以上不同程式的模組,結合開發成為另外一個程式,這些被採用模組的授權條款內容間並不相互衝突,這些授權條款就具有相容性。
- 程式開發者修改程式,被修改的部分有採用其他程式的模組,這個被採用模組原本所適用的授權條款與被修改程式的授權條款間並不相互衝突,這些授權條款就具有相容性。
以下將就自由軟體鑄造場在授權指引中所提供的十一個自由軟體授權條款為對象,說明這些授權條款間的相容性:
(一)BSD、MIT 與 zlib / libpng:
此三個授權條款給與被授權人相當大的使用空間,幾乎可以和其他任何一個軟體授權條款相容,被授權人甚至可以不提供原始碼,如同專屬軟體一般,僅提供可執行形式來散布程式。適用這三個授權條款的程式,可以與授權指引當中其他任何一個授權條款的程式相結合來開發另一個程式,而無須擔心授權條款之間不相容。而因為這三個授權條款較為寬鬆,所以若與其他授權條款同在一個程式裡的時候,大多採取其他較為嚴格授權條款,來作為整體程式之授權條款。必須注意的是,MIT 允許被授權人可以基於授權人的地位向他人再授權,與BSD、zlib/libpng不同。
至於所開發出來的程式究竟可以採用哪一種授權條款,還可以分為兩種情況:
- 所開發出來的程式沒有一個統一適用全部程式碼的授權條款,各部分程式碼保留原來各自的授權條款。
- 所開發出來的程式統一採用較為嚴格之授權條款,BSD、MIT或zlib/libpng因為授權內容較為寬鬆,所以即使隨著所適用的程式碼繼續保留,但被授權人在使用程式時必須依照較嚴格授權條款之內容。
(二)MPL:
依照MPL的規定,適用MPL的程式可以多重授權:
1、程式的最初開發者可以特定部分程式碼(特定程式碼)與授權條款(特定授權條款),被授權人可以自這些特定授權條款中選擇一個做為特定程式碼的授權條款。目前適用MPL做為授權條款的代表程式為Mozilla,Mozilla是採用MPL/GPL/LGPL三重授權模式(triple license)。至於哪些授權條款被特定,開發者可以在附隨於程式的說明文件中查知;哪些部分程式碼被特定,也可以在該特定程式碼的文件中查知,或者自行聯絡最初開發者詢問。
根據這樣一個多重授權模式,任何一位程式貢獻者若是修改MPL程式,這時候:
- 若所做的修改並沒有受到其他授權條款拘束時,所做的修改仍必須適用MPL或者是最初開發者所特定的授權條款。
- 若所做的修改已經受到其他授權條款拘束時,只要經最初開發者的同意,所做的修改就可以適用其原有授權條款。
2、此外,被授權人可以在散布程式執行形式時,選擇不同於MPL的授權條款,只要所選擇的授權條款與MPL不相衝突,並且必須讓收到程式執行形式的人可以清楚地知道,程式原始碼與執行形式是適用不同的授權條款,而執行形式的授權條款是由被授權人自己提供的,與最初開發者並沒有關係。
(三)GPL:
GPL是一個相當嚴格的自由軟體授權條款,為了保障適用GPL的程式可以一直維持原始碼開放的狀態,一旦採用GPL程式碼開發程式,所開發出來的程式幾乎仍然必須採用GPL來授權。因為這樣的特性,GPL被稱為是一個「具有如病毒般感染性(viral)」的授權條款。在開發過程中若有採用到 GPL程式碼時,所開發出來的程式幾乎都必須適用GPL做為授權條款,因此GPL與其他授權條款的相容性相當的低。
開發者在考慮授權條款相容性時需注意下列幾點:
- GPL與BSD、MIT以及zlib/libpng均相容,不過所開發出來的程式當然必須採用GPL做為授權條款。
- GPL與LGPL相容。
- 此外LGPL與GPL間有一個特殊的轉換關係。LGPL程式被授權人可以將LGPL程式重製物(copy)轉換成適用GPL來授權,被授權人必須將程式中與此相關的聲明做修改,讓收受者可以知道這份程式重製物是適用GPL做為授權條款的。此種轉換為單向,也就是LGPL程式重製物轉換為GPL授權之後,不可以再轉換為 LGPL授權。
本文原始連結:http://www.openfoundry.org/index.pl?section=zh_coherence |