Hi clhjoe,
關於您的問題,我的授權分析與經驗分享如下:
Q1、如果在自己的網站上使用了 GPL-2.0 授權的 MySQL Connector,該網站本身只提供服務,而沒有散布網站程式給網站的使用者,這樣還需要主動提供網站程式源碼的散布嗎?
A1、不用!原則上 GPL-2.0 就是兩個大原則:1、就 GPL-2.0 授權原程式製作出衍生程式(derivative work)之後,該衍生程式也必須使用 GPL-2.0 來進行授權;2、散布了 GPL-2.0 授權元件或其衍生程式的目的碼(binary code),就有義務和責任提供該元件的程式源碼 (Source Code)。
此方面的說明原文如右列文字:6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions.
所以說,如果您並沒有散布 GPL-2.0 的授權程式碼(原程式及衍生程式),則基本上,並沒有進一步提供程式源碼的相關義務。
Q2、如果透過 Oracle 官方提供 JDBC 版本的 MySQL Connector,此時網站使用 MySQL 及 MySQL Connector 來進行資料庫事務的處理,整個網站會不會便被視為 GPL 授權元件的衍生程式,導致散布程式碼時也必須一併提供程式源碼?
A2、如果依照 Oracle 對 GPL-2.0 嚴格的解釋態度,原則上「會」。現為 Oracle 公司產權的 MySQL 及其 MySQL Connector,運作上是採商業授權加上 GPL-2.0 擇一的雙重授權模式,也就是說,在某些關鍵處其對 GPL-2.0 的解釋標準會趨嚴,如此一來才能讓商業客戶的使用者,有更大的動機向其洽詢商業授權版本,而不是直接使用 GPL-2.0 授權的版本來進行商業服務。
進一步說,Oracle 官方版本的 MySQL Database 與 MySQL Connector,其實有適用額外的自由開源授權除外條款 (FOSS License Exception:
www.mysql.com/about/legal/licensing/foss-exception/#1),Oracle 這個除外條款的大意是說,一些與 MySQL、MySQL Connector 在同一個專案運作的其他元件,「只要不是 MySQL、MySQL Connector」的衍生著作(derivative work),則可以用其列表其中一款自由開源授權方式來散布,而不限定必然要使用 GPL-2.0。
這其實在著作權的衍生拘束架構上是有點不尋常的,依照 GPL-2.0 授權條款的說明,主要是他人就 GPL-2.0 另作的衍生著作,才必須被 GPL-2.0 授權方式直接拘束,或者其他元件在與 GPL-2.0 元件結合一併運作後視為一個不可分割的整體 (as a whole),此時才要求全部專案都必須依照 GPL-2.0 的遊戲規則來授權。然而、Oracle 這份 FOSS License Exception 表述的是:1、GPL-2.0 授權元件的衍生著作一律還是必須承襲 GPL-2.0 的授權方式;2、其他元件,若非 GPL-2.0 授權元件的衍生著作,但和 MySQL、MySQL Connector 在同一個專案一併運作的話,仍然必須選用 FOSS License List 裡面的其他自由開源授權方式來散布,也就是說、雖然不直接承襲 GPL-2.0,但一併也是要以提供程式源碼的方式來散布。
從實認定,這樣的「除外條款」,其實並沒有讓 MySQL、MySQL Connector 承襲 GPL-2.0 授權的授權拘束性變得比較寬,因為在運作與解讀上,整體授權拘束性可能還變得更嚴了一些。因為部份 GPL-2.0 專案的權利人,有的認為只要不是 GPL-2.0 授權元件的直接衍生程式,則 GPL-2.0 的授權拘束性就不會過渡到這些元件上面來,當然、每個權利人對於 GPL-2.0 授權拘束性的定義與解讀範圍確實有寬有嚴,目前還沒有司法判例直接就這個議題進行討論,所以還沒有辦法說這些不同的解釋態度有明顯的對錯,然而、必須要認知的是,Oracle 在運作 MySQL、MySQL Connector 的解釋態度上,確實比諸一般 GPL-2.0 授權專案是來得更嚴些,這一點已經在實務上不斷被驗證了。
所以說,依照 Oracle 的解釋態度,Q2 運作的方式是有授權拘束上的風險的,整個網站有機會被 Oracle 視為 GPL 授權元件的衍生程式,也就是說,如果有散布網站目的碼的行為的話,可能就會被 Oracle 要求必須一併提供程式源碼 (GPL-2.0 授權版本的解決方式),或是被要求必須向其洽詢商業授權的 MySQL 與 MySQL Connector 的版本 (商業授權版本的解決方式)。
約略如上,希望這些資訊對您釐清疑義有所幫助;若還有後續的疑問,歡迎接續討論。
敬祝 順心健康、新年如意
20130121 16:05 LUCIEN C.H. LIN