前兩週自由軟體鑄造場舉辦法律研討會,我在當天最後一場的演講講題為「自由軟體授權條款的相容與不相容」,其中談到 MPL 與 GPL 相容在一個程式當中的特殊現象,因為對於所閱讀的資料有誤解,當時說明並不正確,這篇文章就是針對當天該部分的更正說明(註一)。
MPL 的多重授權是指,程式的最初開發者可以特定程式中的部分程式碼,對於這些特定程式碼被授權人有權利選擇 MPL 以外的條款授權,這些 MPL 以外的條款也是由最初開發者從一開始就特定好的。例如採用 MPL 授權的 Mozilla 就採用三重授權,針對特定程式碼被授權人可以自由選擇以 GPL、LGPL 或 MPL 授權(註二)。
MPL 多重授權的規定出自 MPL 1.1 版的第十三條,MPL 1.0 版並無這樣的規定,這也是兩個版本最大的差別。原文內容如下:
"Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the MPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A."
依照這樣的規定,GPL 可以被選為多重授權的特定授權條款之一,當被授權人拿到這樣的程式,並且選擇 GPL 做為特定程式碼的授權條款時,MPL 1.1 與 GPL 就並存在同一個程式裡。
按照 GPL 的規定,只要一個新程式中包含 GPL 的部分,原則上這個新程式也必須採用 GPL 來授權,在極端的嚴格解釋下,即使利用的原始碼並不多,新程式也一樣必須採用 GPL 授權,這就是 GPL 的授權攫取性(註三)。依照 GPL 的授權攫取性,若 MPL 1.1 程式中的特定程式碼採用 GPL 授權,這個 MPL 1.1 程式整體也應該要採用 GPL 來授權才對,但是在實際運作上並非如此,而是可以看到 GPL 與 MPL 在一個程式中相安無事地並存。在所閱讀過的資料中,筆者並未見到對此現象的討論或解釋,所以心中對此現象一直疑惑。
自由軟體基金會在其網頁上將 MPL 1.1 歸類為與 GPL 不相容的條款,也就是無法將 MPL 1.1 模組與 GPL 模組結合在一起,但若特定程式碼允許選擇 GPL 或其他 GPL 相容條款來授權的話,這個特定部分則與 GPL 程式碼相容。該段原文如下(註四):
"This(筆者按:MPL 1.1) is a free software license which is not a strong copyleft; unlike the X11 license, it has some complex restrictions that make it incompatible with the GNU GPL. That is, a module covered by the GPL and a module covered by the MPL cannot legally be linked together. We urge you not to use the MPL for this reason.
However, MPL 1.1 has a provision (section 13) that allows a program (or parts of it) to offer a choice of another license as well. If part of a program allows the GNU GPL as an alternate choice, or any other GPL-compatible license as an alternate choice, that part of the program has a GPL-compatible license."
原文第二段的最後一句是關鍵的一句話,也正是我誤解的地方,因為我逕自將這句話的意思解讀為:自由軟體基金會公開地認可,在 MPL 1.1 多重授權模式下,MPL 1.1 與 GPL 是相容的。我這樣的說法是將原文意思擴大解釋到超出其原有範圍,並不正確,自由軟體基金會對於 MPL 與 GPL 整體的相容性還是持否定的態度。
自由軟體基金會對於 GPL 的解釋一向嚴格,不過對於 GPL 透過 MPL 1.1 多重授權模式在 MPL 程式中存在的現象,並未表示其餘部分也必須整體適用 GPL,思考後,筆者以為這是與現行著作權制度不得不為之的妥協。
GPL 在授權攫取性的規定上一直引人爭議,因為這與現行法律規定的內涵不一致,再加上 GPL 文字抽象不明確,所以目前 GPL 授權攫取性的內涵還有討論與解釋的空間。從法律的角度來看,只要不違背法律的強制或禁止規定,權利人對於自己程式該如何運用擁有最大的掌控權,這是法律所明文賦與的。這樣大的掌控權,遇上實際內涵仍有爭議的 GPL 授權擷取性,當然,著作權人的意思是無法被完全否定的,在一定的合理範圍內,著作權人的意思,甚至可能凌駕內涵抽象不明確的 GPL 授權擷取性。我想,自由軟體基金會與 Stallman 也瞭解這個道理,所以雖然一方面強調 GPL 的這種嚴格特性,另外一方面,在現行法律制度下,卻必須尊重程式著作權人自由運用程式的權利,所以當程式著作權人採用 MPL 做為授權條款,並且選擇 GPL 為特定條款之一,表示他想保留自己的部分程式一直採用 MPL 授權,只有特定程式碼部分才允許透過被授權人的選擇改為 GPL 授權,自由軟體基金會或 Stallman 皆非程式著作權人,無權干涉程式著作權人的這項決定。
在現行的智慧財產權制度體系下,權利人是最大的,只要擁有權利,就可以在權利範圍內運用,無權者不能干涉。這樣一套制度與邏輯也是 GPL 授權擷取性的基礎所在,所以自由軟體基金會與 Stallman 必須遵循這樣的制度,也因為如此,透過 MPL 1.1 多重授權模式,GPL 與 MPL 1.1 可以並存在同一個程式中。
註二:https://www.mozilla.org/MPL/。
註三:GPL 的授權攫取性 (License Capture),又可稱為病毒般的感染性 (viral)。請見葛冬梅,究竟包含多少的 GPL 程式碼才算……?,開放鑄造場電子報第54期。
註四:https://www.gnu.org/licenses/license-list.html#MPL