| 一、GPL開源軟件許可協(xié)議的“傳染性”概述 (一) GPL開源軟件許可協(xié)議的法律性質 GPL開源軟件許可協(xié)議的全稱為GNU通用公共許可協(xié)議(GNU General Public License),該開源協(xié)議自1989年推出第一版本以來,目前已經(jīng)累計推出了三個主要版本,最新版本為2007年推出的GPL.v3。GPL系列許可證一直是開源軟件領域最受歡迎的軟件許可之一。在三個版本中,最為常用的是GPL.v2。 GPL開源軟件許可協(xié)議并非放棄軟件著作權,而是通過強制性承襲適用GPL協(xié)議的方式,保障所有的開發(fā)者都能夠取得概括性的獲得和使用開源軟件的自由(copyleft)。因此,開源軟件許可協(xié)議的法律性質依然是著作權許可合同[1]。 另外,由于適用GPL協(xié)議開源軟件的后續(xù)開發(fā)者均無權選擇排除適用GPL協(xié)議,而僅有開源軟件的最初版本開發(fā)者可以選擇開源軟件適用何種協(xié)議,因此GPL開源協(xié)議也是一種由最初版本開發(fā)者預先擬定的格式合同。盡管開源協(xié)議中的義務性條款頗為嚴格,且沒有任何商議的余地,但是相較于需要支付許可費用的商業(yè)著作權許可成本和需要投入人力、資金和時間的軟件研發(fā)成本,秉持自由、共享和免費的開源協(xié)議對保障軟件行業(yè)的高速發(fā)展具有重要意義。因此開源協(xié)議中約定的義務未不適當?shù)負p害使用人的利益,是有效的格式條款[2]。 (二) GPL開源軟件許可協(xié)議的“傳染性”以及違反的法律風險 為保證開發(fā)者運行、學習、修改、分發(fā)副本等“自由”(copyleft)不被中斷,GPL開源協(xié)議具有“縱向”和“橫向”兩個維度的“傳染性”。 在“傳染性”的“縱向”維度上,開源軟件會“傳染”自身的修改版本(modifications)或衍生作品(a work based on the Program)。例如GPL.v2授予后續(xù)開發(fā)者修改開源軟件(及其副本)的權利,但是對于修改后形成的修改版本或衍生作品,一旦涉及到分發(fā)(distribute)或公布(publish),則應滿足使得修改版本整體繼續(xù)依照對應的GPL協(xié)議進行開源[3]。 在“傳染性”的“橫向”維度上,在一定的條件下,開源軟件會“傳染”自身及修改版本以外的,一同分發(fā)、傳輸?shù)能浖蜍浖钠渌糠?。例如,GPL.v3規(guī)定,如果在開發(fā)者傳輸[4]的軟件時,開源軟件與其他軟件之間組合的目的是為了生成一個更大的程序,則其他軟件也需要成為受到相應的GPL協(xié)議傳染的開源軟件[5]。 根據(jù)GPL協(xié)議的規(guī)定,如果違反“傳染性”條款,將直接導致通過開源協(xié)議獲得著作權許可(自由 copyleft)無效和被終止[6]。因此,違反“傳染性”條款以及其他GPL開源協(xié)議中的義務性條款的情形發(fā)生,構成著作權許可合同自動終止并自始無效的條件。 傳染性條款的加入,使得GPL開源軟件和派生作品的獲取和使用“自由”能夠得到有效保障,但是對于企業(yè)的開源軟件合規(guī)審查也提出更高的要求。如果企業(yè)在軟件的開發(fā)過程中有意或者無意中混入了GPL開源代碼,而又未按照GPL要求履行相關開源義務,則可能會導致軟件合規(guī)法律風險,例如:按照GPL的規(guī)定,如果開發(fā)者不遵守本協(xié)議,則開源協(xié)議授予的“自由”將會被無效和被終止,使用開源軟件的行為將直接成為一種未經(jīng)授權的著作權侵權行為,開發(fā)者可能會面臨來自開源軟件著作權人的侵權索賠以及停止使用的知識產(chǎn)權行為禁令。同時,如果在企業(yè)對外宣傳“自主研發(fā)具有自主知識產(chǎn)權”的軟件中被發(fā)現(xiàn)存在適用GPL協(xié)議的開源代碼,而企業(yè)又并沒有履行開源義務,也會對企業(yè)的商譽造成的負面影響。 二、GPL.v1的“傳染性”條款摘要及評述 (一) GPL.v1的“傳染性”條款摘要 第2條. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: 您可以修改本程序的副本或程序的任何部分,并可以根據(jù)第1款的授權復制和分發(fā)此類修改,但前提是您還必須執(zhí)行以下操作: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and a)使修改后的軟件文件帶有明顯的聲明,聲明您已修改代碼和修改的日期;和 b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). b)【傳染性條款】您應當使分發(fā)或發(fā)布的全部作品(包括本程序或其任何部分的全部或部分內容,無論是否經(jīng)過修改)均根據(jù)本通則的條款,免費授予所有第三方GPL許可證(除非您選擇向第三方提供代碼擔??梢赃M行收費)。 c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. c)如果修改后的程序在運行時通常以交互方式讀取命令,則必須以一種最簡單,最常用的方式使它在開始運行以進行交互使用時,打印或顯示聲明,其中包括適當?shù)陌鏅嗦暶饕约皼]有擔保(或者說您提供擔保),并且用戶可以在這些條件下重新分發(fā)程序,您還需要告訴用戶如何查看此通用公共許可證的副本。 d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 【傳染性例外條款】僅將本程序(或其衍生產(chǎn)品)與另一項獨立作品聚合到一定數(shù)量的存儲或分發(fā)介質上,并不會將獨立作品歸入GPL的管轄。 第3條.You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: 您需要根據(jù)上面的第1和第2款規(guī)定,以提供目標代碼或可執(zhí)行格式,復制和分發(fā)本程序(或根據(jù)第(2)款的規(guī)定,復制或分發(fā)程序的一部分或衍生作品)。除此之外,您還需要執(zhí)行以下任一操作: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, 附上相應的源碼。源碼要求完整且機器可讀,并在條款一、二的約束下 …… Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; 作品的源代碼是指對作品進行修改的首選形式。對于可執(zhí)行文件,完整的源代碼表示該文件包含的所有模塊的所有源代碼。 (二) GPL.v1的“傳染性”條款評述 為了保障開源軟件自由使用的行為,在開源軟件協(xié)議GPL.v1中就規(guī)定了“傳染性”條款。 根據(jù)GPL.v1的“傳染性”條款,如果開源軟件的修改者和使用者,需要復制或分發(fā)開源軟件,則GPL.v1對于完整包含了開源軟件全部或部分、完整包含了修改過的開源軟件全部或部分從而形成的派生作品,要求繼續(xù)遵循GPL.v1進行開源。 根據(jù)GPL.v1的“傳染性”例外條款,GPL.v1規(guī)定阻斷傳染性的情形是:如果“獨立作品”與開源軟件“僅僅聚合”在同一介質上,則“獨立作品”并不會因為聚合行為而被GPL.v1傳染,該“獨立作品”可獨立選擇適用的許可協(xié)議。 三、GPL.v2的“傳染性”條款摘要及評述 (一) GPL.v2的“傳染性”條款摘要 第2條:You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: 您可以修改開源軟件的副本,或者開源軟件的副本的任何部分,從而形成一個基于開源軟件的作品(派生作品)。只要滿足上面的三個條件(免責聲明、保留協(xié)議、一同發(fā)售)以及下列條件,就可以對開源軟件的派生作品進行復制和發(fā)行 a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. 您必須在您修改了的文件中醒目地聲明您的修改、修改日期 b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. 【傳染性條款】您發(fā)行或者發(fā)布的作品,如果包含開源軟件的全部或部分,或派生自開源軟件或開源軟件的部分。那么您就應該將這個作品整體,允許第三方在遵守本協(xié)議的情況下,進行本協(xié)議的使用,并且不能收費。 c) …… These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. 【獨立部分的發(fā)布方式對傳染性的影響】上述要求對派生作品整體有效。但是如果該派生作品中某些可區(qū)分的部分并非派生自開源軟件,并且可以被合理地看作是從中分離的獨立作品,則當您將它們分開發(fā)布時,這種獨立部分可以不受本協(xié)議約束。但是如果開發(fā)者在發(fā)布開源軟件的時候將上述獨立的部分與派生作品一起發(fā)布,那么整個派生作品連同獨立部分將被視為一個整體,受GPL.v2協(xié)議約束。 Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. 因此,本節(jié)的目的不是主張權利或反對完全由你開發(fā)的作品的權利; 相反,目的是控制分發(fā)開源軟件的派生作品或匯編作品的行為。 In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 【傳染性例外條款】另外,僅僅將另一個作品(并非基于開源軟件)和開源軟件或者開源軟件的衍生作品聚合在一起,并不會導致其他的作品受到本協(xié)議的約束。 (二) GPL.v2的“傳染性”條款評述 GPL.v2依然延續(xù)了GPL.v1“傳染性”條款,即GPL.v2對分發(fā)開源軟件修改后形成的派生作品依然采用嚴格的開源限制。只要開發(fā)者分發(fā)或發(fā)布的作品包含開源軟件的全部或部分,或派生自開源軟件或開源軟件的部分,均應當將作品整體開源,允許第三方在遵守本協(xié)議的情況下,進行本協(xié)議的使用,并且不能收費。 在GPL.v1“傳染性”條款基礎上,GPL.v2還進一步明確了:“傳染性”對開源軟件的派生作品中的獨立部分(section)的區(qū)分適用原則。 當作品中不涉及開源軟件代碼的獨立部分(section)具有足夠的獨立性,且開發(fā)者將該作品中獨立部分(section)與作品中涉及開源軟件的其他部分(section)分開發(fā)布,則作品中這種獨立部分(section)可以作為傳染性的例外,不受GPLv2的約束;但如果開發(fā)者將原本獨立的部分(section)與作品中涉及開源軟件的其他部分一起發(fā)布,則原本獨立的部分(section)則會被傳染,需要開源并受到GPLv2的約束。 在聚合作品“傳染性”例外問題上,GPL.v2與v1并沒有實質的區(qū)別。與基于開源軟件的派生作品聚合的獨立作品,可以不受到開源軟件的傳染性的約束。 四、GPL.v3的“傳染性”條款摘要及評述 (一) GPL.v3中“傳染性”條款摘要 第4條. Conveying Verbatim Copies.傳播完整版本 You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. 您可以原封不動地分發(fā)您獲得的開源軟件的源代碼,只要您: 1、顯著而適當?shù)卦诿總€副本上發(fā)布一個合適的版權通告; 2、保持完整所有敘述本授權和任何按照第7節(jié)加入的非許可的條款; 3、保持完整所有的免責申明; 4、并隨程序給所有的接受者一份本授權的副本。 您就可以通過任何媒介發(fā)布賣手游賬號平臺程序源代碼的未被修改過的完整副本 第5條. Conveying Modified Source Versions.傳播修改過的源代碼 You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: 您可以在第4節(jié)的條款下以源碼形式發(fā)布一個基于本程序的軟件,或者從本程序中制作該軟件需要進行的修改,只要您同時滿足所有以下條件: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. 軟件必須包含明確的通知說明您修改了它,并給出相應的修改日期。 b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. 軟件必須包含明確的通知,聲明這個軟件是在本協(xié)議(以及本協(xié)議第七節(jié)增加的所有條件)授權下發(fā)布的,本條款修改了第四節(jié)的“保持所有通知完整”的要求。 c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. 【傳染性條款】被許可人必須將整個作品整體性地通過本許可證許可給持有復制件的人,無論組件以何種方式組成作品,本許可證及第7節(jié)所附加條款都將適用于作品的整體及其一切組件。本許可證不包括以其他方式授權作品許可。但被許可人單獨接收到許可不會導致該許可證失效。 …… A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 【傳染性例外條款】一個受保護的開源程序和其它獨立程序的“組合”,該“組合”作品并非該開源程序的擴展,也不是為了在某個存儲或發(fā)布媒介上,和開源程序的進行組合,為的是生成更大的程序,且如果“組合”的版權對使用者進行訪問等合法權利的限制,不超過獨立的作品對使用者進行訪問等合法權利的限制。那么這樣的“組合”就被稱為“聚合體”。包含開源程序的聚合體中,GPL并不會適用于開源程序以外的該聚合體的其他部分; (二) GPL.v3的“傳染性”條款評述 GPL.v3在規(guī)定傳染性問題時,首先調整了此前v2版本的用詞,v2版本在規(guī)定傳染性問題時,著眼點為“分發(fā)”(distribute),而v3版本的著眼點為“傳輸、傳播”(convey)。根據(jù)GNU發(fā)布的說明,分發(fā)與傳播,并無明顯區(qū)別,只是由于GNU在制定過程中,制定者發(fā)現(xiàn)一些法律體系在其版權法中使用“distribute”一詞,但是含義和GPL.v2的distribute并不相同。因此為了避免同詞不同義的情況發(fā)生,GNU創(chuàng)造了新的術語convey,用來避免這些不同造成的混淆和問題[7]。因此,GPL.v2和v3在將“傳染性”作為原則這一點上并沒有明顯的差別。 GPL.v3沒有延續(xù)GPL.v2中“傳染性”對開源軟件的派生作品中的獨立部分(section)的區(qū)分適用原則。GPL.v3采用了更嚴格的統(tǒng)一傳染性標準,GPL.v3將修改后的開源軟件及其他部分(無論是否是獨立部分),均統(tǒng)一視為一個完整的作品,因此在傳輸(convey)、分發(fā)這樣的作品時,無論其中開源部分與獨立部分如何組合(無論是分開發(fā)布或一起發(fā)布),對這個作品整體應當適用開源協(xié)議GPL.v3。 在橫向傳染性上,經(jīng)過兩個版本的迭代演進,v3對于“傳染性”的例外規(guī)定比v2更為清晰,v3進一步明確了“聚合”(Mere aggregation)的概念邊界?!熬酆稀避浖傅氖?,除獨立軟件與開源軟件及其衍生作品存儲在同一個介質上并進行組合,為的是生成更大的程序以外,獨立作品與受開源協(xié)議保護的作品的“組合”,且這一“組合”(A compilation)的版權對使用者進行訪問等合法權利的限制,不超過獨立的作品(包括獨立的作品和開源軟件及其衍生作品)單獨自身對使用者進行訪問等合法權利的限制。 注釋: [1] 徐瑄,張漢華.計算機開源軟件許可證的許可條款性質認定——美國聯(lián)邦巡回上訴法院第2008-1001號裁決評析[J].知識產(chǎn)權,2014(06):85-93. [2] 羅瑞雪,《開源協(xié)議適用范圍及其對軟件著作權侵權判定的影響》,中國版權, ipc.court/zh-cn/news/view-842.html [3] 參見GPL.v2協(xié)議第2條,You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:……b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. [4] GPL.v3對于相關行為義務的表述進行了修改,用詞改為convey而非第二版本的distribute,根據(jù)自由軟件基金會的解釋,前述用詞的改變并沒有改變行為的實質,只是為了避免與部分法域的法律術語相沖突因而進行的技術性調整。 [5] 參見GPL.v3協(xié)議,第5條,該條規(guī)定了構成軟件“聚合體”(aggregate)的前提之一為開源軟件與其他軟件的“組合”并非為了形成更大的程序,反之,如果這樣的“組合”被法院認定為一個更大的軟件的兩個部分,那么將無法構成“聚合體”,從而應當進行整體開源。 [6] 以GPL.v2為例,該協(xié)議第4條規(guī)定:You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. 在本協(xié)議授權之外,您不能復制、修改、再授權或分發(fā)開源軟件。任何用其他方法復制、修改、再授權或分發(fā)開源軟件的企圖都是無效的,并使您從本協(xié)議獲得的權利自動終止。 [7] Frequently Asked Questions about the GNU Licenses, gnu/licenses/gpl-faq.en.html (第二部分) 五、GPL開源軟件項目法律合規(guī)業(yè)務中需要關注的問題 開源軟件促進了軟件智力成果的共享,越來越多的企業(yè)將開源軟件(代碼)直接或再開發(fā)后用于商業(yè)用途。免費自由使用開源軟件給企業(yè)帶來便利的同時,也要求企業(yè)履行開源許可協(xié)議項下的義務。如未能履行開源軟件協(xié)議項下義務將使企業(yè)面臨巨大的法律風險。下文將對GPL開源軟件項目法律合規(guī)業(yè)務中需要重點關注的幾個問題進行分析。 (一) 確定GPL開源協(xié)議的版本 企業(yè)需要明確自身使用的GPL開源軟件適用的開源協(xié)議版本。例如后文提及的最高院審理的開源協(xié)議案件,適用的開源協(xié)議為GPL第三版本,其中對于“聚合體”軟件有特有的論述,從而能夠成為法院認定的依據(jù)。 需要注意的是,雖然同為GPL開源協(xié)議,其三個版本均為共存、獨立有效狀態(tài),而非法律修訂的新舊替代關系。因此,確定GPL開源協(xié)議的版本為GPL開源軟件合規(guī)業(yè)務需要關注的首要問題。 如果GPL開源軟件系通過開源社區(qū)進行下載,那么開源社區(qū)通常會標注該開源軟件適用的GPL開源協(xié)議的版本號。如果并非從規(guī)范的開源社區(qū)下載,由于開源協(xié)議通常會要求在分發(fā)復制件時原封不動地附上開源協(xié)議的文本。因此在開源代碼的文本中,也能夠找到對應的開源協(xié)議版本。 (二) 判斷其他軟件與開源軟件是否具有獨立性 對商業(yè)企業(yè)來說,商業(yè)軟件的開發(fā)者下載GPL開源代碼之后,通常都會將GPL開源代碼或修改后的開源代碼和其他自研軟件代碼整合進企業(yè)自己的商業(yè)軟件之中,并一同分發(fā)和使用。因此商業(yè)企業(yè)需要審查評估其自研軟件與GPL開源軟件之間的關系,即GPL開源軟件/基于開源軟件的衍生作品與其他自研軟件作品是否互相為獨立的軟件。如果GPL開源軟件和自研軟件屬于獨立軟件,則自研軟件并不會被GPL協(xié)議所傳染;如果GPL開源軟件和自研軟件不屬于獨立軟件,則自研軟件會被GPL協(xié)議所傳染。 如何判斷軟件獨立性需要結合技術與法律,下文將從就自由軟件基金會對軟件獨立性問題的解答、開源軟件實例和我國的司法判例進行介紹。 1、自由軟件基金會對軟件獨立性問題的解答 根據(jù)自由軟件基金會發(fā)布的GPL相關問題的解答,“聚合體”包含有多個獨立的程序,并在同一個CD-ROM或其他媒體上發(fā)行。GPL.v3允許開發(fā)者制作并發(fā)布一個聚合體,即使其中其他軟件的許可證不是自由許可證或不是GPL兼容的許可證也可以。唯一的條件是聚合體的許可證不能禁止用戶行使每個獨立程序的許可證允許的權利。區(qū)分軟件究竟是兩個獨立的程序,還是一個程序的兩個部分的合理的標準既依賴于通信的機制(exec、pipes、rpc、共享地址空間的函數(shù)調用,等等),也依賴于通信的語義(交換了什么樣的信息),具體判斷的工作則應交由法院完成[1]。 2、“OpenHarmony”開源項目中對開源軟件獨立性的說明 近期,華為公司自行研發(fā)的“OpenHarmony”開源項目也公開了相應的軟件結構和代碼說明,其中就有開發(fā)者針對軟件獨立性的特別說明。舉例而言,“OpenHarmony”中包含一個名為“third_party_mtd_utils”的開源軟件,該軟件適用GPL.v2,“OpenHarmony”的開發(fā)者對該開源軟件進行了如下說明:“third_party_mtd_utils用于編譯生成jffs2文件系統(tǒng)鏡像的打包工具,該工具用于打包jffs2格式的rootfs和userfs鏡像,代碼不會編譯打包到kernel_liteos_a內核中,故kernel_liteos_a內核不受GPL影響”;又例如,“OpenHarmony”開源項目中有一名為“ vendor_hisi_hi35xx_thirdparty_uboot_src”的開源軟件,開發(fā)者對其的說明是:“uboot是作為獨立進程,不會導致boot外的軟件受到GPL許可證的影響”[2]。由此可見,華為公司在開發(fā)“OpenHarmony”開源項目時,已經(jīng)注意到開源義務,從而在軟件的結構上,維持開源軟件的獨立性,從而規(guī)避開源軟件的傳染性。 3、我國司法實踐中對軟件獨立性的認定思路 (1)柚子(北京)移動技術有限公司與數(shù)字天堂(北京)網(wǎng)絡技術有限公司侵害計算機軟件著作權糾紛案 該案的原告數(shù)字天堂公司主張被告柚子公司侵犯了原告的軟件著作權,被告柚子公司主張原告的涉案軟件中使用了GPL開源代碼,對應的GPL協(xié)議的版本為第三版。一審法院審理認為,因原告主張被告使用的是涉案軟件中的三個插件,而該三個插件屬于獨立的軟件作品,因此,需要判斷的是該三個插件是否是受GPL協(xié)議限制。一審庭審中,被告認可該三個插件均處于獨立的文件夾中,該文件夾中并無GPL開源協(xié)議文件。據(jù)此,一審法院認為:“涉案三個插件的文件夾中并無GPL開源協(xié)議文件,而涉案軟件的根目錄下亦不存在GPL開源協(xié)議文件的情況下,盡管涉案軟件其他文件夾中包含GPL開源協(xié)議文件,但該協(xié)議對于涉案三個插件并無拘束力,涉案三個插件并不屬于該協(xié)議中所指應被開源的衍生產(chǎn)品或修訂版本,被告柚子公司認為原告數(shù)字天堂公司軟件為開源軟件的相關抗辯理由不能成立。被訴行為構成對著作權人復制權、改編權及信息網(wǎng)絡傳播權的侵犯”[3]。 被告柚子公司在二審中提出GPL協(xié)議的“傳染性”問題,被告主張涉案軟件中既然已經(jīng)采用了GPL開源代碼,那么無論是否僅涉及插件,GPL的傳染性也會導致整個涉案軟件均應適用GPL協(xié)議從而成為可以供他人自由使用的開源軟件。但是二審法院依然沒有對GPL協(xié)議的文本進行研究,在二審判決中依然強調沒有在涉案軟件的根目錄中發(fā)現(xiàn)GPL協(xié)議文件,從而不認可被告主張的GPL協(xié)議傳染性觀點,進而否認涉案軟件已經(jīng)成為開源軟件的觀點[4]。 該案為我國司法實踐中涉及GPL開源協(xié)議的第一案,但是從法院的審查嚴謹性上,似乎并不盡如人意。該案實際上已經(jīng)觸及了GPL開源協(xié)議最關鍵的“傳染性”問題,就判決書中查明的案件事實來看,原告主張權利的涉案軟件的部分代碼確實是用了開源代碼,其軟件整體的確存在已經(jīng)被傳染成為開源軟件的可能性。但是一、二審法院都并沒有對涉案軟件和插件的通信機制和通信語義進行審查,而是僅憑軟件目錄中沒有開源協(xié)議文本就認定了涉案軟件不受開源協(xié)議的規(guī)制,直接排除了涉案軟件整體已經(jīng)被傳染稱為開源軟件的可能性。事實上,假使原告在開發(fā)涉案軟件的過程中有意沒有遵循開源協(xié)議的義務放置開源協(xié)議的文本,抑或是第三方開發(fā)的過程中,規(guī)避開源的義務而沒有放置開源協(xié)議的文本,均有可能導致該案的結果截然相反。本案作為開源協(xié)議“傳染性”的第一案,在認定是否適用“傳染性”的問題上,法院沒有結合開源協(xié)議傳染性條款相關內容和軟件技術細節(jié)進行深入審查討論,判斷依據(jù)簡單,得出結論仍有進一步商榷討論的空間。 (2)北京閃亮時尚信息技術有限公司、不亂買電子商務(北京)有限公司侵害計算機軟件著作權糾紛案 本案中,原告不亂買公司主張被告閃亮公司侵犯原告的軟件著作權。原告同樣抗辯涉案軟件已經(jīng)被GPL開源協(xié)議傳染從而整體成為開源軟件。本案涉及的是GPL.v3開源協(xié)議。本案中,被告舉證證明了原告的網(wǎng)站的前端代碼中采用了開源代碼,如果能夠進一步證明前端代碼和后端代碼構成一個整體軟件進行分發(fā),那么涉案軟件可能已經(jīng)受到“傳染性”的影響。本案的一審法院認為,原告的網(wǎng)頁僅有前端代碼明確使用了開源代碼,原告主張權利的是其后端代碼。前端代碼開發(fā)主要是指前端用戶可見的操作界面如頁面布局、交互效果等頁面設計的一種實現(xiàn)方式,后端代碼開發(fā)則主要是指后端用戶不可見的服務端相關邏輯功能等模塊的實現(xiàn),二者展示方式不同、所用技術不同、分工亦有明顯區(qū)別,屬于可獨立的程序[5]。因此一審法院認為,不亂買公司雖在其前端代碼中使用了開源代碼,但其后端代碼程序并非其前端程序的衍生品或修訂版本,故根據(jù)GPL協(xié)議的相關規(guī)定,該協(xié)議對涉案權利代碼并無拘束力。 在二審中,被告上訴稱原告的前端代碼和后端代碼存在交互且沒有進行有效隔離,不是相互獨立的,根據(jù)GPL協(xié)議的相關內容以及極強的傳染性特性,不亂買公司的前端文件和后端文件共同構成的其主張著作權的軟件,整體軟件都可以視為前端程序的修訂版本,應當遵循GPL協(xié)議向所有第三方無償開源。最高院在二審判決中認為,首先,前端代碼和后端代碼具有獨立性,“前端代碼與后端代碼是可以分別獨立打包、部署的。因此,前端代碼與后端代碼在展示方式、所用技術、功能分工等上均存在明顯不同,不能因前端代碼與后端代碼之間存在交互配合就認定二者屬于一體,原審法院認定前端代碼與后端代碼相互獨立并無不當”。其次,涉案軟件是由前端代碼和后端代碼聯(lián)合構成的“聚合體”:“根據(jù)2007年6月29日發(fā)布的GPL協(xié)議第3版第5條關于'一個受保護程序和其它獨立程序的聯(lián)合作品,在既不是該程序的自然擴展,也不是為了生成更大的程序,且聯(lián)合作品和產(chǎn)生的版權未用于限制編譯用戶的訪問或超出個別程序許可的合法權利時,被稱為聚合體。包含受保護程序的聚合體并不會使本許可應用于該聚合體的其他部分’的規(guī)定,閃亮時尚公司所稱GPL協(xié)議的“傳染性”應當是指GPL協(xié)議的許可客體不僅限于受保護程序本身,還包括受保護程序的衍生程序或修訂版本,但不包括與其聯(lián)合的其他獨立程序。本案中,雖然不亂買公司認可其前端代碼中使用了GPL協(xié)議下的開源代碼,但其主張權利的是后端代碼,其后端代碼是獨立于前端代碼的其他程序,并不受GPL協(xié)議的約束,無需強制開源”[6]。 最高院的在該案中的二審判決引用了GPL.v3開源協(xié)議中對開源傳染性的例外條款。當開源代碼與軟件的中的其他獨立程序組成“聚合體”時,開源協(xié)議不會對其他程序進行傳染。最高院參考了自由軟件基金會判斷軟件獨立性的標準,考慮了通信的機制和通信的語義,得出后端代碼具有獨立性的結論。最高院的前述判斷依據(jù)更為科學合理,得出結論也更準確。 (三) 審查是否全面履行相應的開源協(xié)議義務 開源協(xié)議合規(guī)的落腳點必然是履行協(xié)議要求的開源義務。對于GPL開源協(xié)議項下的義務,在開源軟件合規(guī)項目中應當注意審查企業(yè)是否不折不扣地全面履行了相關開源義務。否則極有可能自動觸發(fā)著作權許可合同的解除或終止條件,隨之面臨巨大的軟件著作權侵權法律風險。 如果發(fā)生開源義務要求與企業(yè)商業(yè)軟件的保密要求之間的矛盾確實無法調和時,可以建議企業(yè)在阻斷GPL傳染性的基礎上,采用自研軟件進行替代。 注釋 [1] Frequently Asked Questions about the GNU Licenses,gnu/licenses/gpl-faq.en.html [2] gitee/openharmony/docs/blob/master/zh-cn/contribute/第三方開源軟件及許可證說明.md [3] 數(shù)字天堂(北京)網(wǎng)絡技術有限公司訴柚子(北京)科技有限公司、被告柚子(北京)移動技術有限公司侵犯計算機軟件著作權糾紛一案,北京知識產(chǎn)權法院,(2021)京知民初字第631號。 [4] 同上。 [5] 參見北京閃亮時尚信息技術有限公司、不亂買電子商務(北京)有限公司侵害計算機軟件著作權糾紛,北京知識產(chǎn)權法院,(2021)京73民初1111號。 [6] 參見北京閃亮時尚信息技術有限公司、不亂買電子商務(北京)有限公司侵害計算機軟件著作權糾紛案,最高人民法院,(2021)最高法知民終663號。 | 
|  |