【行業觀察】基于開源軟件二次開發軟件的合規建議。
一、什么是開源軟件
開源軟件是指開放源碼軟件,一般軟件提供者在提供源碼軟件的同時,還附帶該軟件的授權許可協議。若對應開放源碼軟件本身并未攜帶該協議,則無法認定為開源軟件。發展至今,開源授權許可協議數量眾多,經OpenSourceInitiative組織批準的開源協議就多達近百種。
按開源許可的寬松程度大致分為三類:(1)使用開源代碼的程序必須公開源代碼。典型代表是GPL許可協議的三個版本V1、V2和V3,該類許可協議最為嚴柯。(2)使用并且修改開源代碼的程序必須公開源代碼。這類許可協議規定使用并且修改了該開源代碼的程序在再發布時,必須將其源代碼以相同的許可協議公開,但新增代碼不需要采用同樣的許可協議發布,典型代表是LGPL許可協議。(3)使用或修改開源代碼的程序不強制公開源代碼,屬于最為寬松的許可協議。
二、引入開源軟件進行二次開發的正確路徑
開源軟件一般存在著作權、專利權、商標權等,使用開源軟件還可能造成侵害商業秘密、不正當競爭、產品責任、出口管制等風險。在識別開源軟件二次開發的相關問題,首先需要識別所需引入的軟件的是否為開源軟件。確定引入的軟件為開源軟件的前提下,在進行開源許可協議條款的查明,以確保對應開源軟件符合自身需求。一般情況,開發者只要完全尊重開源許可協議的約定,就無需擔心二次開發的軟件存在侵權的法律風險。
三、引入開源軟件進行二次開發的相關合規建議
1、但在軟件開發過程中,引入開源軟件應該進行審慎審查,綜合評估引入開源軟件可能引發的法律風險。如GPL開源許可協議中約定,只要先前版本有引入GPL的源代碼,則基于先前版本開發的任何衍生作品,都需要公開其軟件源代碼,否則將違反開源許可協議。這對部分軟件想要通過商業秘密進行保護將難以支持,且對后續公司業務也將產生隱形的風險,即部分開源軟件具備傳染性,引入需慎重。
2、在一個軟件中若引入多個開源軟件,也需要將對應的開源許可協議進行審查比對,重視許可協議的兼容性審查。確保開源許可協議之間不會存在沖突,否則將導致侵權行為的發生。正常所引入的開源許可協議,其對衍生開發的軟件限制越少越好。
3、若確需引入帶有傳染性的開源軟件,則盡可能對系統進行分層架構,各個層級相互獨立解耦,不同層級根據功能其定位,引入不同層級的開源軟件,并對不同層級架構的功能模塊申請不同的軟著。在GPL協議中有以下規定:“GPL軟件的用戶不可以修改GPL許可協議。但是,如果能夠確定作品的一部分并非程序的衍生產品,與程序并未混合在一起,也未意圖在某種存儲或分發媒介上組成一個更大的程序,而是獨立的,屬不同的作品,則這部分獨立的程序發布時可以不受GPL的約束。不過,當將這部分作為程序的一部分發布時,因它是程序整體的一部分將受到GPL約束?!币虼?,谷歌公司發布的安卓移動操作系統通過將系統分為多個獨立的不同層級框架,并對每個層級適用不同的開源授權許可協議。從而實現阻斷開源軟件傳染性的影響。
4、在確需引入開源軟件,但根據企業自身業務的規劃及特性無法完全遵守對應開源許可協議情況下,兩種途徑去突破:1、尋找可替代符合需求的服務產品;2、主動聯系開源軟件的著作權人,尋求特別授權。
5、在軟件開發過程中,嚴格遵循開源許可協議,避免因違約導致侵權責任的產生。