自由軟體授權條款的相容與不相容 (演講摘要)
建立日期 2008-04-11 08:00 最近更新在 2011-01-06 22:33
作者是 自由軟體鑄造場 法政組 葛冬梅
許多開發者下載自由軟體程式碼來利用開發新的程式,卻沒有注意這些程式碼是採用什麼樣的內容來授權,等開發到一半的時候才發現這些授權條款間的內容彼此間相衝突、無法相容,尤其當利用的程式條款要求新程式原始碼必須提供給他人,但是礙於程式中有他人授權程式碼,此部分無法提供他人原始碼時,就產生條款的衝突了。此外,所下載程式碼條款之間也會有衝突的可能。
講者分析自由軟體相容性的方式,是以第一場演講所提到授權條款四分法中的前三類為基礎:BSD 類、GPL 類與 MPL 類。
GPL 類條款規定修改程式仍然必須採用原條款授權,所以限制較多,也因為這樣的限制規定,所以 GPL 類條款之間並不相容,而只能與限制少的條款類型相容,例如 BSD 類或者像放在公共領域 (Public Domain)中無著作權的程式。這類條款中最重要的 GPL 在去年發佈第三版,但是第二版與第三版並不相容,原因除了 GPL 原本就具有的不相容特性外,兩版條款在實際的授權內容上也有不少差異。不過若是在採用二版授權時聲明,該程式採用 GPL2 或其後版本授權的話,使用者可以選擇第三版作為程式的授權條款,在這種特殊的情況下,GPL 第二版與第三版相容。此外,在 Linux 核心上所開發的專屬軟體,目前是普遍接受可以不將其原始碼提供出來,除了 Linux 精神領袖 Torvalds 所採取的寬容態度外,Linux 核心的著作權人範圍尚未釐清則是另一大主因。不過這些現狀在未來是否改變,仍需觀察。另外值得一提的是 LGPL,雖然屬於 GPL 類的程式,但只要沒有修改過 LGPL 函式庫,而是單純地利用連結 LGPL 函式庫的話,新程式可以不用採用 LGPL 授權。
BSD 類條款限制少,使用者甚至可以不提供原始碼,並以收取授權金的方式來再次散布 BSD 類程式,所以這是一類相當隨和的授權條款,幾乎可以跟任何其他內容的條款相容,即使是專屬軟體也可以,甚至 BSD 類條款授權的程式也可以轉變為專屬軟體。而 MPL 類條款的規定則是介於上兩類中間,自 MPL 類程式檔衍生出來的程式檔必須採用原條款授權,但若他人自行撰寫的程式檔開發者就可以採用其他的內容任意授權,所以原則上可以與 BSD 類條款以及專屬軟體條款相容,與 GPL 類條款不相容,而 MPL 類條款之間則是相容的。其中,MPL 1.1 規定有特殊的多重授權模式,可以讓 GPL 與 MPL 1.1 並存在同一個程式,而不會導致整個程式都必須採用 GPL 來授權,本期電子報的法律源地文章對此有進一步的說明。
「預防勝於治療」,想要根本地避免條款衝突的問題,最好的方法就是在規劃程式之初將這樣的議題納入考量:究竟要利用或不利用自由軟體?若要利用的話,應該採用或避用哪些條款授權的程式?若未加以預防,結果發現條款相衝突的問題時,可以嘗試將衝突的程式碼重寫或置換成相容,此外,也可以嘗試與這些自由軟體著作權人接觸與溝通,取得其額外的授權同意,以解決不相容的問題。