【版權】Java Web系統的軟件版權風險——使用開源軟件用於商業系統的風險

知識水平有限,僅供參考。

 

Windows Server 2008/2012,Oralce Database 11g,Oracle Weblogic 11g/12c,這咱就不談了,堆錢就行了。

 

一般普通級別的 Java Web項目會用到的非商業軟件,通常包含:

操作系統:Linux系列,

中間件:Apache Tomcat,

數據庫:MySQL,

開發框架:Spring,MyBatis,

開發語言:Java。

 

自從Oracle收購了 Sun 公司和MySQL,連Java的使用都要考慮 侵權風險,MySQL也是。下面我們看看這幾個軟件的開源協議。

 

操作系統:

因爲Linux是採用帶有傳染性的GPL協議發佈的,所以所有采用Linux內核的操作系統都必須是GPL的,自然也就是開源的。這就包括比較流行的 CentOS,其它的Linunx內核的操作系統同理。操作系統是否開源並不影響我們發佈的 Web 服務能否商用,畢竟我們又不是改寫操作系統源碼,重新發布個商業的操作系統。

 

中間件:

Apache Tomcat

版權協議: Apache License version 2。簡單說,商業友好,使用者可以在需要的時候修改代碼來滿足需要並作爲開源或商業產品發佈/銷售,也可以直接用在商業系統內。這就簡單了,Tomcat可以隨便折騰,反正使用是免費的,不會有法律風險,不過要遵守其版權協議的約定,該保留協議全文就保留協議全文,該保留某某組織名字就保留,保你平安。

 

數據庫:

MySQL

雙協議:GPL和商業授權。簡單說,GPL指本軟件開源,若修改了本軟件源代碼或者在軟件中使用本軟件,該軟件必須開源,該GPL協議有傳染性。但是對於GPL協議的粒度,業內仍有爭議,如下。

引用網址

問題:

我們的商業軟件,數據庫採用社區版mysql。查看了mysql的許可協議是GPL,我的理解是因爲軟件使用了mysql官方的連接驅動包(mysql-connector),所以必須開源,與我的安裝包是否包含mysql安裝程序沒有關係。那所有使用了mysql的數據庫軟件,只要提供給用戶使用,都必須開源?我的理解對麼?

回答:

取決於你的客戶端driver,比如以java爲例,雖然java 的jdbc driver也是GPL的,但是可以不受影響,因爲JDBC是一個規範,mysql client driver只是其中一個實現,也就是說理論上你可以將mysql替換爲其他任何一個數據庫產品,mysql就不是你產品的必須部分,這在GPL的文檔裏有相關章節。

MarioDB的作者,也就是mysql的創始人專門寫了一篇文章解釋了這個問題。

你如果使用C,那麼就需要開源了,因爲不可替換。前面有人對PHP的解釋我不確定,理論上,如果PHP執行代碼需要直接在同一個進程內調用mysql的客戶端代碼,而mysql客戶端代碼是GPL, 就應該是被傳染。中間層保護是常用手段,但是前提是非相同進程內調用。

其實GPL的解釋在這塊本身就是個灰色區域, Stallman認爲任何二進制的引用,包括動態鏈接都應該受傳染,而Linus則認爲只受限於源代碼級別,即如果只是在程序中調用一個二進制庫的方法,而不是擴展和繼承,則不應該受影響。但爲了保險,大公司會認可stallman這種做法。

另外在產品包裏可以隨意包含mysql 的原始release package,這和是否GPL沒啥關係。 我們公司的鬼子法務專家是這麼給我們解釋的。

既然有爭議,也就意味着使用MySQL來提供商業用途的服務和產品,是存在法律風險的,但風險對於小型項目應該幾乎爲零的,大公司也不在乎這個,應該會跪舔某骨文數據庫的。

 

開發框架:Spring、Hibernate、MyBatis 暫未查到。

 

開發語言:Java

Java目前已經是Oracle公司的商標。Java SDK8的2019年1月後的後續公開更新需要付費,Java SDK 11需要商業付費使用。免費的午餐沒有了,建議使用 OpenJDK 11,畢竟Oracle的律師函可不是鬧着玩的。【2019.7】

OpenJDK 11 採用 GPLv2協議

 

 

 

各種協議的簡單理解:

LGPL:【商業友好】,如 PySide

使用開源軟件的庫文件(別忘了LGPL最早的名字就是Library GPL),不對庫本身進行任何修改,則不必公佈自己的商業源代碼。若修改庫,修改的代碼必須全部開源,且協議也爲LGPL,但除了庫源碼之外的商業代碼,仍不必公佈。

 

Apache:【商業友好】,如 Tomcat

使用者可以在需要的時候修改代碼來滿足需要並作爲開源或商業產品發佈/銷售,也可以直接用在商業系統內。

 

GPL:【非商業友好】

GPLv3 :GPL3 主要卡得住的是固件和桌面軟件,如果你是提供 Web Service 的,無視即可。參考

 

參考:

1. 五種協議的比較[BSD,Apache,GPL,LGPL,MIT]。

2. 各種開源協議介紹 BSD、Apache Licence、GPL V2 、GPL V3 、LGPL、MIT.

 

《待編輯》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章