Login  |  繁體中文
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。
討論區
如何確認gpl binary和由其source code所build出來的binary是一樣的 (1 viewing) (1) Guest
Go to bottom Favoured: 1
TOPIC: 如何確認gpl binary和由其source code所build出來的binary是一樣的
#654
如何確認gpl binary和由其source code所build出來的binary是一樣的 2011/03/12 01:13  (8 Years, 8 Months ago) Karma: 0  
不好意思 我想來問幾個問題^^
請問要怎麼確認gpl binary和由其source code所build出來的binary是一樣的?
上游廠商給了gpl source code,但不確保由我們build出來的binary功能會正常
也不確保與其所交付的binary功能一致
gpl是否規定程式開發者需要提供編譯環境描述及makefile才能確保gpl binary和由其source code所build出來的binary是一樣的?
謝謝!!
Kurapika (User)
Senior Boarder
Posts: 19
graphgraph
User Offline Click here to see the profile of this user
Logged Logged  
 
The administrator has disabled public write access.  
#655
Re:如何確認gpl binary和由其source code所build出來的binary是一樣的 2011/03/16 20:06  (8 Years, 8 Months ago) Karma: 1  
Hi Kurapika,


您的這些問題,也是目前許多人會遇到的問題。以下我將你的問題分為兩個重點來說明:

(1) 上游廠商是否必須將相對應於GPL程式目的碼的原始碼交給你們?
(2) 上游廠商是否必須提供你們所有編譯、安裝等相關資訊,讓你們可以將GPL程式原始碼編譯成為目的碼,並且安裝與執行目的碼?

(1)的答案是肯定的,但是針對(2)的問題,目前仍有爭議,所以GPL程式著作權人對於這個問題的態度會是重要的參考依據。

【上游廠商必須提供與相對應於目的碼的原始碼】

依照GPL的規定,使用者在散布目的碼的時候,必須要讓拿到目的碼的後手可以取得原始碼,而這裡的原始碼與目的碼是必須相對應的[1],也就是說,這些原始碼是使用者當初用來編譯成為目的碼的源頭檔案。因此上游廠商交給你們的GPL程式原始碼,必須是跟你們手上所拿到的目的碼是相對應的,也就是上游廠商當初用來編譯成為目的碼的原始碼檔案,若是原始碼與目的碼有不對應之處,那麼上游廠商就是違反GPL的規定來散布程式。

至於如何證實手上所拿到目的碼跟原始碼是一致的,就我個人目前所知,形式上一個一個比對上游廠商所提供的原始碼檔案與手上已經有的目的碼檔案,並且詢問清楚哪些原始碼檔案是對應到哪些目的碼檔案、或者是負責哪一個程式功能,這是一個方法。此外,一些程式著作權人會嚴格解釋GPL的規定,要求散布GPL程式的使用者必須提供所有編譯、安裝、執行、載入等等詳細資訊,讓著作權人可以依照所提供的資訊按部就班地將程式從原始碼編譯為目的碼並執行起來,只要最後可以正確地執行起來,並且跟原本手中所拿到程式功能一樣,對於著作權人來說,這樣就可以證明所提供原始碼相對應於手上的目的碼。

[1] GPL2的第3條規定,使用者散布目的碼的同時,還必須要採用特定的方式來提供原始碼,在第1項所列的三種方式,均有明定所提供的原始碼必須是與目的碼相對應的(corresponding)。

【上游廠商是否有提供編譯/安裝資訊的義務,仍有爭議】

承接上一段的說明,提供原始碼的同時,使用者是否也必須要提供詳細、完整的編譯與安裝資訊,各方對這部份的解釋不同,因此是有爭議的。

回歸到GPL2的規定,其中在第3條第2項有著「原始碼(source code)」的定義:

"The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. ...''

依照GPL的文意解釋原始碼的定義非常廣泛,對於可執行檔來說,甚至包括了所有編譯、安裝與載入原裝置所需要的資訊與文件,有些人也認為編譯安裝所需要的工具程式也包含在提供之列。不過GPL這樣的文字規定與嚴格解釋者的觀點,與目前常見的著作權制度並不完全相符合,例如:以人類語言所撰寫出來的相關說明文件與編譯安裝腳本,跟以電腦程式語言為基礎所撰寫出來的程式碼,兩者在呈現形式上就有相當差異;工具程式則完全是另外一個獨立的程式,與GPL程式是互相獨立的兩個程式,有著各自獨立的著作權,尤其在上游廠商就是工具程式著作權人的狀況之下,除非有其他的原因,否則其他人原則上很難有立場可以要求上游廠商一併提供工具程式。

關於這一部份的詳盡的說明,您可以參考OpenFoundry上的一篇文章:「在原始碼之外:編譯與安裝資訊的提供」,www.openfoundry.org/tw/legal-column-list/2138-2010-07-15-10-16-40

【GPL程式著作權人的態度是關鍵】

不過若是GPL程式著作權人跳出來說話的話,那麼狀況就會不太一樣了,因為「拿人的手短、吃人的嘴軟」,若是上游廠商在程式中利用到的GPL程式A,A的著作權人直接跟上游廠商聯絡,並且表達上游廠商必須將相對應的原始碼以及所有編譯、安裝所需資訊都提供出來,否則將會撤銷或是終止對於這間廠商的授權,如此上游廠商承受到來自著作權人的直接壓力,就會比較積極來面對與處理這件事情。

【與上游廠商簽訂契約補足自由軟體授權條款的模糊地帶】

另外我個人是建議,未來在跟上游廠商洽談契約內容時,就將這些規定在契約中明訂清楚,如此可以避免未來的爭議。而目前已經發生爭議的話,那就只能透過不段溝通與協調來解決了。


由於您所提問的問題,就我目前所知,並沒有一個確切的解決方式或者是統一的見解,因此以上僅是一些相關資訊的提供,希望可以或多或少對您所面臨的狀況有所幫助。

若您對於以上的說明有任何疑問,或者還有其他的想法,歡迎回文。


葛冬梅 Florence T.M. Ko
20110316 1208
tmk2005 (Admin)
Moderator
Posts: 38
graphgraph
User Offline Click here to see the profile of this user
Logged Logged  
 
The administrator has disabled public write access.  
Go to top