# Testing Open Source Waters: Derivative Works Under GPL v3 _ Joseph A. Chern
最近看了這篇論文,主要是在探討GPL架構下,甚麼時候一個程式會被視為衍生著作(derivative works),這是一個重要的問題。如果一個程式為衍伸著作,就會被GPL感染(Viral effect)。
### Static and Dynamic linking
此篇論文Section III. A 討論動態連結以及靜態連結的技術背景。
一般來說,Source code為人類可判讀語言,其要轉變為機器可執行的檔案要經過多個階段,大體有compile time, load time, and execution time,Complie time就是將Source code轉換為機器可識別的語言,成為object module,至於在load time以及execution time要做甚麼事情則會根據硬體和軟體的限制而有所不同。
在靜態連結的情境,Source code所使用的函式庫會在load time與object module結合,這就像是將書本裡面的footnote所提到的參考文獻都複製近來。另一方面,在動態連結的情境中,連結這個動作則是延遲到execution time才發生,每個函式庫在source code中用一個"bookmark"表示,用來指出如何在需要時裝載函式庫。在這種情形下,函式庫並沒有把下載近來,而只是用位只告訴電腦要去哪裡載入函式庫,因此函式庫和source code在磁碟中仍然是兩個分開的檔案。
### Brief Overview of Copyright and Software: Basic Application
此篇論文的Section III. B開始討論Copyright的基本奧義
首先,著作權是作者控制其原創表達(original expression)再造(reproduction)的權力。可著作的標的(Copyrightable subject matter)包含可附著在有形媒介上的原創作品(original works of authorship fixed in any tangible matter of expression),且著作權只保護概念的表示方法而不及於其功能性的部分。
著作權要擴展到軟體保護的一個困難點是合理使用的例外,侵權者很容易以合理使最為著作侵權的抗辯,作者整理合理使用的四個參考因素如下:
(1) 使用的性質與目的(the purpose and character of the use)
(2) 著作物的本質(the nature of the copyrighted work)
(3) 實質上使用著作物的比例與數量(the amout and substantiality of the portion used in relation to the copyrighted work)
(4) 對潛在市場的影響(the effect of the use upon the potential market)
### Reverse Engineering and Non-literal Copying Software Cases
作者指出,在一些對軟體進行逆向工程案件中,有些法院認為即使背後的source code是不同的,只要軟體最終視覺呈現的畫面實質相似就構成著作權侵害;亦有部分法院認為就算複製行為出現在某個中間過程,也不構成軟體著作權的侵害。
在Micro Star v. FormGen Inc.,案中,被告擁有某遊戲的著作權,該遊戲允許使用者自由創造遊戲等級或難度(User-created levels),原告將這些自製的遊戲等級打包成CD販售,並向法院提出確認判決其不侵害被告的遊戲著作權。本案第九巡迴地方法院認為當原告在散布這些自製話遊戲等級時,是有可能侵害原告創造衍生著作的權利。法院更進一步闡明說,本案至少遊戲腳色的相關故事性被原告的衍生著作所侵害。類似的,在World of Wonder v. Veritel Learning Systems案中,法院也是認為是玩偶本身的故事性被侵害,而不是裝在玩偶裡面的錄音帶所錄製的內容。也就是說,改變錄製內容實質上並未複製任何東西,但仍然侵害了玩偶的故事性。
另外,在Sega Enterprises Ltd. v. Accolade Inc.,中,被告為了製作自己的遊戲,而透過逆向工程找出原告遊戲面板的相容性需求,逆向工程的過程中必須複製一段原告的程式碼。法院認為這樣子的利用是合理使用,因為沒有其他方法可以找出原告遊戲面的的相容性需求。此外,被告散步Header files的行為不侵害著作權,因為Header files是具有功能性的,非著作權保護的範疇。在Lewis Galoob v. Nintendo案中,法院亦認為沒有創造衍生著作就沒有著作權侵害。
作者總結,法院會先決定一個作品是否包含其他著作物的任何部分,如果沒有的話,就不會是衍生著作。就算受保護的部分被包含入新的作品中,受保護的部分也必須以固定或永久形式存在。如果只是在中間過程存在,該存在只是為了取得非受著作權保護的內容,也是允許的。
然而,作者指出FSF卻對於衍生著作有不同於法院的看法。
### FSS/GPL Interpretation of Static/Dynamic Linking
在靜態連結的部分,作者認為當軟體靜態連結到GPL library時,由於GPL code會複製進入該軟體當中,因此該軟體將被GPL感染,這部分沒有爭議。
在動態連結的部分,作者認為動態連結的過程中,GPL code並未與non-GPL code結合成一個程式,因此不應該被GPL感染。然而,**FSF卻認為動態連結的軟體也應被視為一個單一著作而受GPL條款規範**,當Linus創辦人Stallman被問到相關問題時,他則做出以下表述:
*It doesn't matter which kind of linking is being used If there are two modules that are designed to be run linked together and it's clear from the design from one or the other that they are meant to be linked together then we say they are treated as one program and so I hope that will make it a little bit clearer although that's not really a change, it's a clarification. That's what we believe GPL version two means already*
簡單的說,Stallman認為使用靜態或動態連結並不是重點,重要的是兩個程式是否是被設計成要再一起執行的。
這樣的想法,在GPL v3以兩個程式之間是否有 "intimate data communication"是否不可分,而來判斷是否要被GPL感染,但何謂intimate仍待法院去釐清。
### Challenging and Issues with GPL and Dynamic Linking
作者接下來想討論FSF對於動態連結的想法在法院上是否站得住腳,動態連結是否會構成衍生著作等問題。
#### Is there any copying
作者提出目前法院並沒有做出動態連結是否會被GPL感染的判例,最接近的案子是MySQL AB v. Progress NuSphere,但這個案子再來和解了。但作者認為依近年來的法律發展,動態連結不會被GPL感染,理由如下:
1. 動態連結並沒有複製GPL code近來而組成一個可執行檔,動態連結只是reference GPL code的位址,需要的時候去取用而已
2. 就算non-GPL程式在執行的過程中,與GPL程式共同放在同一個記憶體空間而被視為一個檔案,也不會被GPL感染。因為在記憶體中的結合是短暫的,但著作權法要求著作物必須要以固定或永久形式存在才能得到保護,雖然在某些案子中電腦記憶體中的暫存被視為固定或永久(concrete or permanent)的存在,但作者認為動態連結的情況下,只有程式需要時才在記憶體中做結合,程式不需要時就不結合,這種短暫的結合不構成 "concrete or permanent"。
3. 法院亦曾做出判例,認為只要其目的是要利用非著作權保護的部分,intermediate copying受保護的code是可允許的,而動態連結根本連intermediate copying都不算是,動態連結只是在需要時連結到GPL code的功能來實現非GPL保護的部分,應同樣被法院所允許。
4. 最後,作者認為記憶體中取用GPL code的部分也極有可能被認為是合理使用,參考前述合理使用的四大要素。