這是本文件的舊版!
稍稍鬆綁的堅持-LGPL
林誠夏/文 2006-01-19
LGPL 的英文全文是「GNU Lesser General Public License(註一)」,那麼顧名思義,LGPL 在內容上是較為寬鬆的「GPL (GNU General Public License)」,所以說、LGPL 的基本架構與義務性要求都與 GPL 如出一轍,例如 Copyleft 的授權循環拘束機制,不得向收受程式者收取軟體授權金等特色皆幾近相同,不過、既然名為「寬鬆」,那必然也會有若干獨立於 GPL 授權條款的不同之處。例如:1、在適用上 LGPL 授權條款只能適用於具有函式庫 (library) 性質的軟體程式;2、單純使用 LGPL 授權的函式庫並不必然開啟其授權條款的拘束性,也就是說、其他元件只是透過定式介面呼叫 LGPL 授權函式庫的功能,則這些元件並不必然會被視為 LGPL 函式庫的衍生程式,從而其個別的授權方式,也不會受到 LGPL 授權條款的拘束。此二點可說是 LGPL 與 GPL 之間最大的特色差異,以下便就此二點進行補充論述。
◎ LGPL 授權條款僅能適用於具有函式庫性質的軟體程式
LGPL 是自由軟體基金會 (Free Software Foundation, FSF) 針對函式庫(註二)所特別設計的授權條款,它稍微弱化了 GPL 追求絕對的軟體自由的實踐,GPL 向來有一項被戲稱「感染性」的特點,那就是取用了 GPL 程式的部分原始碼後再編寫出來的衍生作品,無可避免的受到 GPL 的拘束而一定得以 GPL 作為這個衍生作品的授權條款。在這方面,LGPL 取而代之是一種更為切合現實的推廣態度,在某些特殊的使用環境下,它提供了較之 GPL 更有利的分享方式。
如果照 GPL 原本的預設,程式的編寫者在設立與此使用 GPL 授權條款函式庫的連結時,就可能被定義為取用,因而被迫受到 GPL 的拘束,程式的編寫者反而可能因此怯步。但考慮到函式庫使用上的壯大在於各方的連結交互作用,一旦因為此等感染性的疑慮而削減了自由軟體類型的函式庫的被 使用率,則亦不為研議 GPL 的自由軟體基金會所樂見。所以,LGPL 就在這個思考立基點上脫穎而出,LGPL 定位在於提升自由軟體函式庫的市場佔有率,擴大其使用對象、引介更多使用者接觸了解自由軟體,藉此達到推廣自由軟體的目標,像 GNU C 函式庫及 GNU/LINUX 都是成功的例子。
是以,LGPL 條文的重點其實就在於訂立規則界定「基於函式庫」與「使用函式庫」行為的分野。所謂「基於函式庫」指稱與 LGPL 函式庫連結的他函式庫基礎乃衍生自 LGPL 函式庫的一部分,因而承襲 GPL 的感染性特點,會拘束此一連結函式庫也須以 LGPL 做它的授權條款;而「使用函式庫」則意指對於 LGPL 函式庫的單純利用關係,或者是微量取用(註三)亦可不受拘束。以上僅是原則性的解釋,詳細的分辨標準仍得進一步視個案而定。
LGPL 當然還有其他的特色,像是修改 LGPL 函式庫所產生的衍生作品,衍生作品本身仍然得是函式庫才能續用 LGPL 授權條款,若其為獨立的軟體程式,則只能轉而受到 GPL 授權條款的拘束;此外、使用 LGPL 授權條款的函式庫被允許在任何時候轉而使用 GPL 為其授權條款,但此轉換行為並不可逆轉。由此可看出來 LGPL 與 GPL 之間既合作又競爭的共生關係,而 LGPL 就前段所說其為一種與現實折衝妥協的過渡帶,論到自由軟體基金會的原意還是希望更多人使用 GPL 授權條款來保障軟體的自由性持續散布。從 LGPL 的生成可以看到自由軟體授權模式由理想到與現實切合的調合觀點,從遠一點的角度來觀察,這種稍微折衷的調和模式有擴大其規模的可能性與未來性,值得日後持 續的追蹤與觀察。
註一:LGPL 在 2.0 版本之前的全稱為「GNU Library General Public License」,因為其可適用的對象限定在具有函式庫性質的軟體程式,然而、自由軟體基金會後來發現,由於名稱直接顯示為 Library,故許多使用者誤以為只要是函式庫性質的程式,使用 GNU 相關條款釋出時就必然要選擇 LGPL,其實就自由軟體基金會推動軟體自由 (Software Freedom) 理念的立場,其仍然希望部份的函式庫程式能以 GPL 釋出,而不是授權拘束性弱化後的 LGPL,故於 LGPL-2.1 版本之後,自由軟體基金會改以「GNU Lesser General Public License」來全稱 LGPL,而不再將 library 一詞直接顯示於條款名稱內。
註二:函式庫 (Library) 在資訊科學裡的定義,是某些元件的集合,這個元件負責不同的流程和功能,而可以利用這些元件間的相互運作,運用在研發軟體程式上。
註三:所謂的微量取用像是目的碼僅用了數字參數、資料結構層級、小巨集及一些內嵌功能(十行以內),雖然定義上符合衍生作品的範疇,但被認為微乎其微,所以不至於非得受到 LGPL 授權條款的選用拘束。