2011-08-31 164 views
2

如果我根據商業許可分發我自己的客戶端應用程序,該應用程序與位於我的服務器上的MySQL Community Edition(GPLv2)進行交互,它需要我的客戶端應用程序使用GPL嗎?如何在沒有GPL的情況下安全地分發我的應用程序給我的客戶?據我瞭解,只有在嵌入MySQL的情況下,我才需要MySQL商業許可證。如果只是「連接到」,GPL是否需要我的應用程序?客戶端應用程序和MySQL GPL

+4

我投票結束這個問題作爲題外話題,因爲它涉及許可或法律問題,而不是編程或軟件開發。 [見這裏](http://meta.stackoverflow.com/questions/274963/questions-about-licensing/274964#274964)的詳細信息,並且[求助]更多。 – JasonMArcher

回答

2

以下是我個人的看法,但不是在所有管轄的終極真理:

最安全的辦法是,你不是在所有自己分配 MySQL客戶端庫。如果你不分發它們,你不可能受其許可限制。

只需提供描述如何下載和安裝所需庫的詳細說明並讓用戶執行此操作。

UPDATE:

關於您提供通過網絡服務的數據庫:它沒有任何區別。

只要你不是分發任何GPL代碼,你是安全的。

如果MySQL使用GNU Affero許可證,它可能會變得更加複雜,但事實並非如此。

更新2:

如果谷歌爲「GPL動態鏈接」,讀幾篇文章,你會發現,關於動態鏈接的問題還不清楚,即使在美國。因此,除非您在您的管轄範圍內與甲骨文一起上法庭,否則這個問題沒有明確的答案。這對他們的銷售非常方便,他們喜歡你害怕。

我不在美國。我不知道你在哪裏。在我的管轄範圍內,聲稱只是爲一個沒有分發的圖書館創建一個兼容的接口,創建衍生作品將不會通過。我想指出的是,有很多與MySQL兼容的程序,並且您看不到任何麻煩。

+0

它是否推動許可頭痛到我的客戶?在這種情況下,他們是否需要購買使用MySQL和商業軟件的許可證? – johnny

+0

不,除非他們**自己分發**許可作品。爲自己或公司的內部目的使用和修改GPL程序始終是免費的,只要它不是**分發**。 – snap

+0

snap:http://www.mysql.com/about/legal/licensing//commercial-license.html「銷售軟件,需要客戶在自己的機器上安裝MySQL。」 ......我有點困惑 – johnny

2

+1到@snap對他很好的答案,我會添加其他具體的例子:

PHP的許可證是新BSD許可證,這是不符合GPL兼容的衍生物。所以PHP發行版不能包含MySQL客戶端庫;用戶必須單獨下載它。這樣,PHP和用戶都符合GPL許可證,因爲只有MySQL.com是分銷的MySQL軟件。

幾年前,MySQL開發了new client library specifically for PHP,它利用PHP內部進行資源管理,但可能更重要的是在PHP許可證下授權,這使得它可以與PHP發行版捆綁在一起。

這意味着如果您的項目是用PHP編寫的,您可以在商業項目中使用和分發MySQLnd客戶端庫 - 事實上,您應該這麼做的技術原因很好,因爲它已針對PHP進行了優化。

+0

MySQLnd的+1。有傳言說C中新的LGPL客戶端庫正在開發中。這應該解決C API的所有鏈接不確定性。然後還有* libdrizzle * BSD許可證,但它沒有文檔和[它似乎不是很受歡迎](http://stackoverflow.com/questions/6220845/using-libdrizzle-as-an-async- MySQL的連接器)。 – snap