Hi Franklin,
抱歉沒有即時回應,關於SOURCE CODE的定義,向來是有你所提到的爭執沒錯。
GPL授權條款的寬與嚴,現在還呈現「一個GPL各自解讀」的狀況,
那是因為不同立場的利益出發角度有所不同,
一般來說業界傾向用寬鬆的角度來解釋GPL,
不論是GPL的授權拘束性或是原始碼提供的範圍,
大部份業界的解讀都會傾向寬鬆的方向來走。
但實際我們接觸了部份自由軟體開發社群或自由軟體基金會、軟體自由法律中心這些推動者的見解,
又會傾向於較為嚴謹的角度來論說。
那麼到底誰說的有理?
一般來說見解發生爭議的話最終就是看司法判決,
但目前全球關於GPL授權條款文字逐條論定的判決仍然缺乏(目前GPL爭訟案件大抵就是針對GPL條款有效性做判斷,而不是去論哪一條哪一條是否合理或實質有效)。
那最為中肯的解釋方式就是「回歸授權條款的本身」。
法律解釋有許多不同的解釋角度(目的性解釋、歷史性解釋、比較法的解釋…),
但最為根本的就是先回歸基本的「文義解釋」。
所以關於這個問題,核心點在於GPL3新增的下列條款:
A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
這一大段條款是特別針對「一般性使用商品(User Product)」進行定義和論述,也就是說、GPL3特別明示這些嵌入式產品都需要提供安裝資訊和編譯腳本。而GPL3的歷史定位就是自由軟體基金會要修補GPL2隨時時間變遷所造成的「漏洞」,所以、依據GPL3的文義解釋,供應商如果認為「編譯的配置腳本應該不在GPL的範圍之內,因為從網上下載的最原始code裡面就沒有配置腳本」這樣的說法是與GPL3的文義解釋直接衝突的。
但是、目前大部份GPL授權的軟體元件仍然是GPL2授權而非GPL3,這個議題在GPL2裡就會產生實質的爭議,GPL2是有提到安裝資訊和編譯腳本的問題,但是就簡潔的多,一段文字帶過:
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. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
plus the scripts used to control compilation and installation of the executable,這段文字,不能說GPL2完全沒律定,但是在1991年那個年代,嵌入式自由軟體裝置仍未盛行,所以於其時,嵌入式自由軟體裝置提供的安裝資訊和編譯腳本要到什麼詳細的程度,並不是一個能被詳細分析的狀況。
所以我的看法是:
1、如果該嵌入式裝置完全是GPL2授權的程式的話,這是一個授權議題的「模糊地帶」,但一般來說、還是建議供應商應該要往提供的路子上走,因為從GPL2的條款來看,解釋上安裝資訊和編譯腳本這些資料本來就是廣義原始碼定義的一部份,只是在1991年那個年代沒有詳述的那麼清楚而已,並且、如果該供應商未來仍打算持續利用嵌入式自由軟體來開發產品,那麼必然以後GPL3的元件會愈來愈多。
2、如果該嵌入式裝置裡有GPL3授權的元件,那麼編譯腳本的提供就是一個必備條件,因為GPL3就此議題已經是明文定義了。
希望以上的分析對您有所幫助,後續還有想法的話歡迎接續討論!
順心健康
20101014 1105 LUCIEN C.H. LIN
|