登入  |  English
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。
討論區
Oracle JDK7 自動下載與佈署相關授權問題 (1 位瀏覽者) (1) Guest
Go to bottom Favoured: 0
TOPIC: Oracle JDK7 自動下載與佈署相關授權問題
#794
Oracle JDK7 自動下載與佈署相關授權問題 2012/10/21 09:15  (7 Years, 1 Month ago) Karma: 0  
您好,

我在開發一個軟體工具,稱其作 A 軟體,
協助使用者佈署應用程式到遠端Linux 作業系統上。
( 遠端是指位於區網內的另一台電腦而言 )
且此工具 A 未來打算可能以 GPL v2 和商業雙授權方式發佈。

此程式 A 有一個 GUI 介面,在使用者的操作過程中,
會需要將 Oracle JDK7 安裝到遠端的 Linux 作業系統上,
不打算使用 open JDK。

但是根據 Oracle 官網下載頁面:
www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html

下載 JDK 者,必須先點選「Accept License Agreement」的選項,
之後才能正確下載 JDK ( 例如:jdk-7u9-linux-x64.tar.gz )
其要求同意之 License 如下,( 後稱 BCL for Java SE) :
www.oracle.com/technetwork/java/javase/terms/license/index.html


有考慮過以下五種方式來達成我的目標
( 將 jdk-7u9-linux-x64.tar.gz 放置到遠端 Linux 並解壓縮 ):

方法 1. 由我下載 jdk-7u9-linux-x64.tar.gz 並包進軟體 A 中發佈,
使用者下載我的 A 軟體後,操作過程中由 A 軟體程式邏輯 copy 到
遠端 Linux 上並解壓縮。

方法 2. 如以下文章所述:
ivan-site.com/2012/05/download-oracle-java-jre-jdk-using-a-script/
由軟體 A 指使遠端 Linux 系統下 wget 指令並加入 Cookie header ,
模擬去 Oracle 官網並按下同意授權的方式,以下載 jdk-7u9-linux-x64.tar.gz
並解壓縮。

方法 3. 上述 2. 若不合法,若進行以下修改是否可行:
在軟體 A 中,將進行上述 wget 相關操作前,於螢幕上顯示出 BCL for Java SE
並要求使用者按下同意授權,才進行後續動作

方法 4. 要求使用者從 Oracle 官網自行下載 jdk-7u9-linux-x64.tar.gz
再藉由 A 軟體選取已下載的 jdk-7u9-linux-x64.tar.gz 並由 A 軟體 copy 到遠端 Linux 解壓。

方法 5. 我從 Oracle 官網下載 jdk-7u9-linux-x64.tar.gz 後,
放置到網際網路上的另一個載點 R ( 例如 git hub,將其當成原始碼 push 上去 )
並由軟體 A 指使遠端 Linux 系統下 wget 指令,從載點 R 下載。

--------------------------------------------------

當然,以上方法 4. 是最不希望選用的方式,
而方法 2. 是最希望選用的方式。

我的問題如下:

a. 請問以上五種方式取得並佈署 JDK7 之安裝包 ( jdk-7u9-linux-x64.tar.gz )
是否合法?

b. 在其中任一合法方式下,請問最終 A 軟體若選用 GPL v2 與商業雙授權發佈,
是否有衝突?

很抱歉問題的篇幅有點大,
我也已經大致看過 BCL for Java SE 的內容,
卻依然不很確定以上問題的答案,
想請專家幫忙解惑。

十分感謝!
hwwang2005 (User)
Fresh Boarder
Posts: 4
graphgraph
User Offline Click here to see the profile of this user
Logged Logged  
 
The administrator has disabled public write access.  
#795
Re:Oracle JDK7 自動下載與佈署相關授權問題 2012/10/22 12:18  (7 Years, 1 Month ago) Karma: 10  
Hi hwwang2005,

我將Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX的授權內容看過一次了,有以下幾個心得:

1、BCL for Java SE的授權性質較近於freeware、free-downloaded software、trialware,它的授權狀態基本上就是可以讓你試用開發,但如果要商業利用或是對外服務的話,會導引你去使用商業版本的版本。

2、關鍵句「to reproduce and use internally the Software complete and unmodified for the sole purpose of running Programs」,裡面的「to reproduce and use internally」確實在文義及體系解釋下,都「沒有辦法包含向外提供建置服務的使用行為」,也就是說、體系上來看,BCL for Java SE的授權主要就是單純的讓使用者能夠同意授權條款之後,下載拿來直接執行程式(running Programs),這個允許動作主要是讓使用者可以內部研發、試用為其內涵,待試用過後如果要推展到公司以外,或是進行商業化利用,那就必須洽其取得商業授權的版本。

3、相似的立場在這篇網路報導中也有被討論到,「Does Oracle Require a License For a Development Database?」:it.toolbox.com/blogs/oracle-guide/does-oracle-require-a-license-for-a-development-database-26422,雖然這篇討論的主要是「Oracle 11g XE」這個database,但與BCL for Java SE相較,所述說的授權規則是一致的。本篇報導的作者已經直接詢問過Oracle的員工了,他最後依取得資訊所做的結論是「So, to make a long story short, if you are doing more than developing on a single PC or server, you do need a license.」也就是說、Oracle大部份免費授權的專案,它的授權目的只要是「便利實驗性的開發專案」,其提供與商業版本相同或是一致的操作經驗與功能,而讓使用者習慣開發使用的語法與操作,日後在產品商業化時,大部份都可以在相對的Oracle商業版本上進行,而只要一跨到商業利用的層次,便不會在它免費授權的目的範圍之內,所以真的要進行商業服務或是非研發、展示性質的服務時,還是得額外的取得另一份商業授權。

那麼以下就要點回覆您的問題:

一、請問以下五種方式取得並佈署 JDK7 之安裝包 ( jdk-7u9-linux-x64.tar.gz )是否合法?

方法 1. 由我下載 jdk-7u9-linux-x64.tar.gz 並包進軟體 A 中發佈,使用者下載我的 A 軟體後,操作過程中由 A 軟體程式邏輯 copy 到遠端 Linux 上並解壓縮。

可以,如果您讓使用者有機會可以看到BCL for Java SE的全文的話。BCL for Java SE的授權方式容許您自行散布jdk-7u9-linux-x64.tar.gz,從您手上得到jdk-7u9-linux-x64.tar.gz的人,也可以再接手散布它,相關規則規定在「C. LICENSE TO DISTRIBUTE SOFTWARE」與「LICENSE TO DISTRIBUTE REDISTRIBUTABLES」的部份,一般來說就是幾個原則:1、不能修改原來jdk-7u9-linux-x64.tar.gz的程式,2、不能置換原來jdk-7u9-linux-x64.tar.gz固有的功能,3、保留Oracle原來有所有聲明,4、這些被轉手散布的jdk-7u9-linux-x64.tar.gz一定都還是用BCL for Java SE的授權方式來散布,散布者一定要讓接收者看到完整的授權條款全文才是,5、不能在任何狀況下傷害到Oracle的法定權益。6、此一散布與轉散布行為不能收取費用。

所以,進一步來說,這個散布行為並不是Oracle授權給了您,然後您再授權或次級授權給之後的收受者,Oracle的授權規劃是任何後手從您手上取得了jdk-7u9-linux-x64.tar.gz,那麼後手就jdk-7u9-linux-x64.tar.gz的使用權利,是與散布者完全相關,直接與Oracle之間產生契約關係,這個授權關係並沒有經過中間的散布者,只是散布行為透過中間的散布者,僅此而已(Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce and distribute the Software, provided that………)。

方法 2. 如以下文章所述:ivan-site.com/2012/05/download-oracle-java-jre-jdk-using-a-script/

由軟體 A 指使遠端 Linux 系統下 wget 指令並加入 Cookie header ,模擬去 Oracle 官網並按下同意授權的方式,以下載 jdk-7u9-linux-x64.tar.gz並解壓縮。

不能說完全違反BCL for Java SE,但並不是那麼適宜,因為BCL for Java SE規定,任何方式散布或再散布BCL for Java SE授權的程式,都必須讓後手使用者,知悉並看到BCL for Java SE的授權全文,所以如果您用自動化指令讓個別使用者可以迴避看到這些授權條件的話,應該是實質違反BCL for Java SE的預設規則的。

方法 3. 上述 2. 若不合法,若進行以下修改是否可行:

在軟體 A 中,將進行上述 wget 相關操作前,於螢幕上顯示出 BCL for Java SE,並要求使用者按下同意授權,才進行後續動作。

事實上在方法1時,也建議使用這樣的方式,因為Oracle透過BCL for Java SE表達的是,這些Binary Code可以被再散布,但是散布者一定要讓後手知道該Binary Code是受到BCL for Java SE的拘束,所以不論是自行散布,或是透過指令列讓後續使用者直接到Oracle網站下載程式,如果有互動式的介面讓後續使用者看到BCL for Java SE的授權內容,那對散布者主張符合BCL for Java SE散布政策的來說,都是一個比較好的處理方式。

方法 4. 要求使用者從 Oracle 官網自行下載 jdk-7u9-linux-x64.tar.gz,再藉由 A 軟體選取已下載的 jdk-7u9-linux-x64.tar.gz 並由 A 軟體 copy 到遠端 Linux 解壓。

這個方法請使用者自行操作,自行從Oracle網站下載jdk-7u9-linux-x64.tar.gz,雖然對使用者不是那麼便利,但當然是最沒有問題的。

方法 5. 我從 Oracle 官網下載 jdk-7u9-linux-x64.tar.gz 後,放置到網際網路上的另一個載點 R ( 例如 git hub,將其當成原始碼 push 上去 ),並由軟體 A 指使遠端 Linux 系統下 wget 指令,從載點 R 下載。

方法5其實與方法1的法律概念上是一樣的,就是該jdk-7u9-linux-x64.tar.gz在授權關係上,是直接建立在Oracle與後續使用者之間,散布者無論是透過實體媒體散布或是網路散布,那都只是「轉手」的性質,所以只要運作上符合方法1的幾項原則,那是沒有大問題的,但徵結點還是在於「散布者一定要讓接收者看到完整的BCL for Java SE授權條款全文,並且此一轉手散布行為不能收費(without fees to reproduce and distribute the Software/without fees to reproduce and distribute those Redistributables)」。以讓後續使用者清楚知悉,一旦使用了這個jdk-7u9-linux-x64.tar.gz檔案,他與Oracle之間的權利與義務關係為何。

二、在其中任一合法方式下,請問最終 A 軟體若選用 GPL v2 與商業雙授權發佈,是否有衝突?

首先說明一點是,BCL for Java SE容許的僅是「轉手散布」,轉手散布該Binary Code之後,根據BCL for Java SE產生的權利義務關係,是建立在Oracle與最後的使用者身上,所以要判斷最終可能採用GPL-2.0授權的A軟體,在運作上與BCL for Java SE授權的Binary Code是不是相合,則要從最後使用者的使用方式來看!

BCL for Java SE的使用規則裡,有一點是至於重要,必須高度注意的:

那就是完全禁止商業利用!(A. COMMERCIAL FEATURES. You may not use the Commercial Features for running Programs, Java applets or applications in your internal business operations or for any commercial or production purpose, or for any purpose other than as set forth in Sections B, C, D and E of these Supplemental Terms. If You want to use the Commercial Features for any purpose other than as permitted in this Agreement, You must obtain a separate license from Oracle.),所以說,BCL for Java SE授權的程式一不能放在商業產品裡,二不能置於商業使用的環境下,即使是商業公司內部使用,都被BCL for Java SE定義為商業使用的一部份(Java applets or applications in your internal business operations),這個定義範圍是非常嚴格的,並不像一般Freeware,有時能夠容許在商業公司內部使用,就這一點,BCL for Java SE是完全禁止的。

並且在散布上,一定要標示這些訊息「Use of the Commercial Features for any commercial or production purpose requires a separate license from Oracle. “Commercial Features” means those features identified Table 1-1 (Commercial Features In Java SE Product Editions) of the Java SE documentation accessible at www.oracle.com/technetwork/java/javase/documentation/index.html」,讓後續的使用者知悉,任何商業性利用的目的,都必須額外向Oracle取得一份商業授權才行。

好、那麼從這個基礎來看,若是將您所撰寫的A軟體,讓使用者自行在其公司內部與BCL for Java SE授權的程式進行互動式的利用,那麼這個組合專案:

1、無法統合為一軟體專案之後續行散布,因為GPL-2.0雖容許修改後散布,但它對於收受者是有一個授權關係的,BCL for Java SE並不容許散布者與收受者之間的直接授權行為,並且BCL for Java SE授權的程式也完全不能修改,僅能使用BCL for Java SE的方式轉手散布,所以只要一考慮到散布的狀態,GPL-2.0與BCL for Java SE是格格不入,無法相容的。

2、但若是該專案是經使用者自行於公司內整合,並僅用於研究的立場,則在這個狀態上GPL-2.0與BCL for Java SE的授權狀態雖仍不相容,但並不會產生直接衝突。因為GPL規定內部使用並不該當於散布,所以也沒有主動提供程式源碼的問題,而BCL for Java SE雖禁止商業公司在內部使用,但就研究目的是可以有一個較寬鬆的容納狀態(B. SOFTWARE INTERNAL USE FOR DEVELOPMENT LICENSE GRANT. Subject to the terms and conditions of this Agreement and restrictions and exceptions set forth in the README File incorporated herein by reference, including, but not limited to the Java Technology Restrictions of these Supplemental Terms, Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce internally and use internally the Software complete and unmodified for the purpose of designing, developing, and testing your Programs.),然而,必須要了解的是,BCL for Java SE之所以例外容許商業公司內部研究之用,是希望商業公司在研究過後,願意支付商業授權金的費用來向Oracle取得商業授權的版本,所以這個內部使用的目的必須侷限在「研究上」,若是研究過後要佈置到全公司內進行應用,則依BCL for Java SE,還是得向Oracle洽詢商業環境使用的授權費用。

約略的法律關係如上,希望這些資訊對您有所幫助。後續若有任何問題,也歡迎補充資訊之後,和我們接續討論。

敬祝 順心健康、事事如意

20121022 1215 LUCIEN C.H. LIN
lucien (Admin)
Moderator
Posts: 157
graph
User Offline Click here to see the profile of this user
Logged Logged  
 
The administrator has disabled public write access.  
#796
Re:Oracle JDK7 自動下載與佈署相關授權問題 2012/10/22 13:54  (7 Years, 1 Month ago) Karma: 0  
hi lucien,

非常感謝您的回覆!
非常有效率。

後續有問題會再提出討論。
非常感謝。
hwwang2005 (User)
Fresh Boarder
Posts: 4
graphgraph
User Offline Click here to see the profile of this user
Logged Logged  
 
The administrator has disabled public write access.  
Go to top