2011-03-24 21 views
8

我想很多人都很想知道這一點。我在網絡和堆棧上進行了搜索,雖然之前已經在堆棧中討論過這個問題,但它並沒有涉及到Qt ......也沒有在相同的背景下。MySQL + Qt QMYSQL插件=商用MySQL許可證?

Qt是LGPL。
這意味着(只要您不修改Qt):
(1)商業開發不需要商業許可證($)只需使用Qt。 (2)不需要將你的應用src代碼放棄給任何需要它的人。

甲骨文MySQL是GPL。
這意味着,(即使您不要修改MySQL的) - 詮釋爲:
(1)商業開發需要的只是使用MySQL的商業執照(分$ 2000 /年)。 (2)必須將你的應用src代碼放棄給任何需要它的人。

這意味着,(即使您不要修改MySQL的) - 解讀B:
(1)商業開發DOES NOT需要的只是使用MySQL商業許可證($)。 (2)必須將你的應用src代碼放棄給任何需要它的人。

這意味着,(只要你不修改MySQL的) - 解讀C:
(1)商業開發DOES NOT需要的只是使用MySQL商業許可證($)。 (2)不需要將你的應用src代碼放棄給任何需要它的人。

雖然LGPL是明確的,有很多關於GPL混亂。我想知道哪個版本的GPL解釋是正確的(A,B或C)。我確信有一些專業人士知道這一點。

我對GPL的個人理解是,GPL與問候庫鏈接(代碼複用...而不是應用程序中使用)寫的。也就是說,如果您使用某些代碼,或者擴展了一些代碼以創建應用程序,那麼您的權利/限制和其他人的權利是什麼。我不相信GPL是指限制您使用GPL應用程序。糾正我,如果我錯了。

例如,大部分LINUX都是GPL。如果我在Linux上開發,我的所有應用程序都必須是GPL嗎?我認爲這樣的解釋是不準確的。所以我認爲使用GPL應用程序和使用/重新使用GPL src代碼是有區別的。

通過上面的例子中的延伸,如果我使用名爲mysql的應用...爲什麼MySQL的GPL許可證感染我只是寫的任何應用程序,因爲它使用的MySQL數據庫來存儲和檢索數據?這和使用Linux開發有什麼區別?

現在,讓我一點混亂,什麼職位是。在回答我的最後一個問題時,我看到了一些混淆的問題,即如何鏈接到MySQL數據庫。我不明白這一點......雖然我認爲一般的想法是用於鏈接到MySQL的API也可能是GPL。而不是覆蓋每個場景,讓我們成爲API特定的。

我在Qt中使用了哪些庫?我遵循Qt指令構建QMYSQL(MySQL驅動程序)。 http://doc.qt.nokia.com/latest/sql-driver.html這個構建過程依賴於MySQL提供的一些文件(可能是GPL)。我不知道Qt使用術語「驅動程序」在什麼意義上。從我的角度來看,「驅動程序」是一個底層引擎,它允許某些東西工作,因此我不知道它與我的應用程序有什麼關係,而不是在LINUX中安裝一些GPL驅動程序,因此我可以啓動LINUX並執行一些操作商業編碼。我也不明白爲什麼Qt讓人們「構建」QMYSQL插件。是出於技術原因還是由於許可原因?爲了控制MySQL,我使用Qt「QSqlDatabase」&「QSqlQuery」類。因此,如果我使用MySQL數據存儲和我的商業應用程序使用Qt來管理,存儲,檢索,更新我的MySQL數據庫中的數據,上面哪個GPL許可證解釋是正確的(A ,B或C)?

*最後說明。我知道人們將MySQL與網站聯繫在一起。讓我們來看看這個主題的背景,認爲MySQL也適用於商業應用程序......不僅僅是網站。兩者之間的主要區別在於,網站需要中央數據庫,而業務應用程序可能要求每個客戶都有自己的數據庫部署。在一天結束時,它只能存儲數據(無論哪種方式)。據我所知,與商業封閉源應用程序在同一安裝光盤上包含MySQL並不違反GPL,讓安裝程序安裝它,然後封閉的源應用程序創建數據庫和表。如我錯了請糾正我。 。

回答