散布 GPL 衍生程式所須提供的源碼範圍
葛冬梅/文 2010-08-30 發布 2012-03-03 修改
這篇文章所要談論的是關於 GPL 授權議題的一個大哉問:「針對 GPL 元件的衍生程式 (derivative works),使用者應該提供「什麼樣的源碼 (Source Code)」給收受程式的後手?」很多人認為只要單純地將本來以 GPL 授權的元件源碼提供出來即可,並不管這些提供出來的源碼,在實際上是否可以被其他開發者加以研究與修改,也未交待這些 GPL 授權元件是如何與專案裡其他的元件進行連結與互動。這樣的態度其實與 GPL 授權條款的規定並不相符,也與一些自由開源軟體開發者的理念相左。筆者將在本文引述,目前在侵權實務上具有重要地位的自由開源軟體開發者意見,說明他們認為在修改 GPL 元件後,修改者在後續散布時,應該提供什麼樣的源碼(註一)。
近年來,BusyBox 社群透過其代理組織「軟體自由託管機構 (Software Freedom Conservancy, SFC)」(註二),針對廠商侵權利用 BusyBox 的行為,積極地發動法律措施,這些措施包括寄發警告信函與提起正式的司法訴訟,而 SFC 在這些措施中,為 BusyBox 社群所呈現出來的立場是:利用 BusyBox 所產生出來的衍生程式,不僅要提供該 GPL 授權元件本身的程式源碼,還必須要進一步提供其他的必要文件與相關工具,讓衍生程式的後續使用者,可以依照所提供的文件與工具,將程式源碼在自行修改並重新編譯之後,還可以在同樣的軟體架構下順利地安裝、執行起來,以最常引發授權爭議的嵌入式裝置韌體為例,其要求便是、要讓其他使用者可以將自行修改、編譯完成的程式碼載入回原裝置,並且運作起來。
根據這樣的立場,不僅 GPL 衍生程式本身的程式源碼要提供出來,相關的編譯腳本 (compiling script) 與安裝資訊 (install information) 也必須要提供出來,此外,若是部份程式碼採用到一些特殊的技術,例如數位加密技術,造成使用者無法自行編譯源碼、安裝程式,或者修改編譯後無法再載入回原來的嵌入式裝置,又或者是即使可以載入,卻無法正常運作起來,這些都是不被 BusyBox 社群與 SFC 所接受的。
SFC 所以能夠這樣要求,除了其委託者支持相關作為之外,所憑藉的還包括開發社群帶頭示範的詳盡說明文件。在 BusyBox 的網站上,除了可以讓人找到一般性的安裝說明文件,還可以找到移植 BusyBox 到不同平台所必須進行的細部微調說明(註三)。所以、既然這個專案的原始開發者提供了如此詳細的說明內容,讓大家都可以方便地利用 BusyBox 來進行產品開發,相對地、他們也會期待 BusyBox 衍生程式的修改者,也提供同樣程度的詳細說明文件,以維持 BusyBox 說明文件一貫的詳盡性與可用性,同時便利這些衍生程式後續的使用者,也可以在一樣便利的基礎上繼續研究、修改 BusyBox 專案的衍生程式。
除了 BusyBox 之外,以捍衛自由開源軟體權利著名的德國開發者 Harald Welte 先生,近年來在台灣的演講中也不止一次提到,GPL 的授權目的在於讓使用者可以自由地執行並修改程式(註四),因此若是 GPL 元件的修改者,能提供後續使用者修改時所需要的資訊文件與各項工具,以達到便利程式後續使用修改的目的,那麼 GPL 程式的原始著作權人就開心了,反之、若是刻意隱瞞規避,則會被程式的原始著作權人認為是一種欺騙行為!Welte 這樣的態度落實在他發動的司法爭訴行動之中,若是將提起法院訴訟與私下和解的件數全部算入的話,目前相關案件已經執行超過百件(註五)。
SFC 與 Harald Welte 所展現出來的態度,相當程度與 GPL 授權文本在前言部份的闡述不謀而合,目的就是為了實現 GPL 授權方式所欲表彰的四大自由,核心部份、也就是該類程式後續的研究與修改自由。也許有人對於 GPL 相關規定的解讀,與部份自由開源軟體著作權人的態度不完全相合,不過筆者在此傳達一個重要訊息:若是 GPL 程式的著作權利人,對其程式後續的利用方式已經向使用者盡了相當程度的說理與闡明,那麼在司法訴訟上、程式著作權人的授權真意便具有極高程度的參考價值,所以除非不要利用到 GPL 授權的程式碼,否則一旦用到,修改者對原始著作權人的授權態度應該要有完整的認知,了解到 GPL 所規定的「源碼」內涵其實並不一定僅僅侷限在字面上,而可能還有更廣泛的涵攝範圍,並且依照 GPL 第 3 版的細部說明,程式源碼往往包括了所有協助使用者編譯、載入與成功執行該元件的必要資訊在內(註六)。使用者唯有清楚地認知到這些資訊,才可以有效地降低因為不了解 GPL 授權方式,所可能產生的法律風險。
註一:因為文章篇幅有限,所以針對 GPL 的相關規定本文並不會多加闡述,若對於 GPL 授權本文規定有興趣的讀者,請參閱筆者之前所撰寫的另外一篇文章:葛冬梅,在源碼之外-編譯與安裝資訊的提供,自由軟體鑄造場電子報,第 133 期,網址:http://www.openfoundry.org/index.php?option=com_content&task=view&id=2138&Itemid=56;isletter=1。
註二:BusyBox 著作權人將侵權事務的處理完全委由「軟體自由託管機構 (Software Freedom Conservancy, SFC)」來處理,因此在侵權事務處理過程中,SFC 代表 BusyBox 著作權人對外界來表達對於 GPL 授權條款的解釋與態度,該機構網址:http://conservancy.softwarefreedom.org/。
註三:請參閱 BusyBox 的 FAQ 網頁:http://www.busybox.net/FAQ.html,這個 FAQ 頁面不僅提供一般資訊,讓人快速了解 BusyBox,其中還有支援不同系統平台的調校資訊。
註四:2009 年 6 月 11 日的 FreedomHEC Taipei:http://freedomhectaipei.pbworks.com/,Welte 演講錄影下載:http://www.archive.org/download/GplComplianceFreedomhecTaipei2009/11-gpl-compliance.ogg,演講簡報下載:http://freedomhectaipei.pbworks.com/f/gpl-compliance.pdf;2010 年 8 月 14 日 COSCUP 2010,Welte 的錄影檔線上瀏覽:http://www.youtube.com/watch?v=Z2CAINg7V3U。
註五:有興趣的讀者,可以從他所成立的 gpl-violations.org 網站上查閱相關資料:http://gpl-violations.org/。
註六:請見 GPL-2.0 第 3 條第 2 項與 GPL-3.0 第 1 條第 4 項。