為自己的程式選擇授權條款

您自己寫了一個程式,想要用自由軟體的方式來授權,這時候應該如何做?當然就是要選擇一份授權條款。鑄造場在這邊擇要地提供一些選擇授權條款的考量因素,供您參考。

 

(一)決定程式未來被利用與發展的方式

您的程式在未來如何被他人利用與發展,完全取決於所選擇的授權條款,因此您必須對於自由軟體授權條款的內容有個大略的認識。鑄造場在這邊將自由軟體授權條款依據特性分為 GPL 類、BSD 類與 MPL 類三大類,透過對這三類條款特性的瞭解,將有助您為自己的程式選擇適當的授權條款。


GPL類

這類條款以 GPL2 為代表,GPL2 最大的特色在於它的條款承繼性 (License Inheritance):只要修改或是利用 GPL2 程式碼,後續產生的修改程式或新程式,都必須要採用 GPL2 授權。這樣的特性又稱之為如同病毒般的 「感染性 (viral)」或「授權攫取性 (License Capture)」。

因為這樣的特性,GPL2 幾乎無法與其他條款共同存在一個程式中,若其他條款授權的程式碼與 GPL2 程式碼存在同一個程式中的話,結果通常是其他條款授權的程式碼必須改成 GPL2 授權,否則就產生授權條款相衝突的狀況,此時必須諮詢法律專業人員來解決這樣的條款衝突狀況。

具有這樣特性的條款有 GPL2、GPL3、LGPL2、LGPL3、CPL 與 EPL。


BSD類

這類條款以 BSD 為代表,BSD 最大的特色在於授權範圍廣大,除了必須保留所有標示 (notice) 等簡單的要求外,使用者幾乎沒有什麼義務性規定需要遵守,使用者再次散布 BSD 程式給他人的時候,也可以自行決定是否要提供原始碼給他人。相對於 GPL 類,BSD 類條款完全不具有條款承繼性,所以幾乎可以與 任何其他條款共存在同一個程式中,包括了自由軟體與非自由軟體的授權條款。這類條款有 BSD、MIT、Apache 1.1 與 Apache 2.0 等。


MPL類

這類條款以 MPL 為代表,與 GPL2、BSD 比較起來,MPL 的條款承繼性介於兩者中間,對於完全自行撰寫的程式檔案,使用者可以自己決定採用什麼樣的授權內容,但若撰寫的檔案中有採用到 MPL 原始碼時,這個檔案就必須要採用 MPL 授權。或者也可以這樣解釋:MPL 的條款承繼性是以檔案為界線,只有當檔案裡包含有 MPL 原始碼的時候,這個檔案才必須承繼 MPL 當作授權條款,反之則否。因此 MPL 容許其他條款授權的檔案存在於 MPL 程式中,甚至是不提供原始碼的商業授權檔案也可以,只要其他條款的內容不妨礙 MPL 內容的實現即可。這類條款有 MPL 與 CDDL。

根據上述分類,您對於自己程式與後續產生的修改或新程式,若希望原始碼一直保持在可以被取得的狀態,GPL 類的授權條款將是不錯的選擇。若您只想要單純地讓他人利用您的程式,並不在意原始碼是否處於可取得的狀態,BSD 類的條款符合這樣簡單的理念。若是您希望自己程式的原始碼碼一直保持在被取得的狀態,卻又同時與其他不同授權條款的程式碼 一同並存的話,MPL 類條款可以符合這樣的期望。

 

(二)選擇既存、常見且普遍的授權條款

由於自由軟體協同開發的特性,所以您程式碼被他人擷取利用的機會相當大,為了使程式的未來發展盡量不要受到侷限,因此較佳的授權條款是目前既存,並且常見、普遍被其他程式所接受與利用的條款。除非有特殊的原因,否則 OSSF 不建議您另行撰寫一份新的授權條款來使用。

一份條款是否常見、普遍,可以參考 OSI 的授權條款網頁,該網頁呈現條款的方式有兩種:依照字母順序與按照類別。按照類別的呈現方式中,有一個類別是「普遍常用或有穩定社群支持的條款 (Licenses that are popular and widely used or with strong communities)」,這個分類下的授權條款大都是常見普遍的自由軟體授權條款。

 

鑄造場在這邊也提出一些可以被視為常見普遍的自由軟體授權條款,作為您參考之用,包括了:GPL2、LGPL2、BSD、MIT 以及 Apache 2.0。

此外,您也可以到 SourceForgeOpenFoundry 等網路自由軟體專案開發平台上面去,了解該平台上各專案程式使用授權條款的狀況,作為了解與判斷的依據。

 

(三)適當的準據法與管轄法院規定

有些授權條款有準據法與管轄法院的特別規定,例如 MPL 第 11 條規定在發生糾紛時,應該適用美國加州的法律,而訴訟的法院則指定加州北區聯邦法院。若是一個以國人為開發者主體的自由軟體程式,就不建議採用 MPL 作為授權條款,否則若是一旦發生糾紛的話,很有可能因為 MPL 中準據法與管轄法院的規定而產生許多不必要的困擾。

因此除非條款中準據法與管轄法院的規定,可以符合您程式的特性,否則鑄造場建議採用沒有特定準據法與管轄法院規定的條款。

 

(四)授權指引/精靈

除了上述參考之點外,鑄造場有一套授權指引/精靈 (License Wizard) 的系統,可以協助您選擇授權條款,不過前提必須是您的程式並未利用到他人程式碼,此時可以參考授權指引/精靈的建議條款,作為選擇您程式條款的參考依據。





分類: 開發者注意事項