I developed a client-server application in Java. I want to distribute the client side using a zip file containing a jar for my program and Qtjambi jars (LGPL) placed in a different directory. On the server side I have a servlet that communicates with a MySQL database using mysql connector (GPL). Under which licence to I need to release my software? Do I need to make my source code public?
我用Java開發了一個客戶端 - 服務器應用程序。我想使用包含我的程序jar的zip文件和放在不同目錄中的Qtjambi jar(LGPL)來分發客戶端。在服務器端,我有一個使用mysql連接器(GPL)與MySQL數據庫通信的servlet。我需要在哪個許可下發布我的軟件?我是否需要公開我的源代碼?
Thanks a lot in advance Rossella
You don't have to make your source code public. You can release the client under any license you want.
The LGPL allows dynamic linking to software under a different license. Using it as a library in a separate directory fulfills this criteria. Just remember to put a text file with the GNU LGPL into the library directory and mention where the sourcecode for the LGPL library can be found.
The GPL, however, does not allow dynamic linking. So when your server includes GPL software, you can only distribute it under the GNU GPL. But as long as you use your server yourself, you aren't distributing it. The GPL only applies to the distribution of software. You have absolutely no obligations as long as you keep the software to yourself. Having people connect to your software via network is no form of distribution according to the GPL, because the GPL software doesn't leave your hardware.
但是,GPL不允許動態鏈接。因此,當您的服務器包含GPL軟件時,您只能在GNU GPL下分發它。但只要您自己使用服務器,就不會分發它。 GPL僅適用於軟件的分發。只要您將軟件保留給自己,您就完全沒有義務。讓人們通過網絡連接到您的軟件根據GPL沒有任何形式的分發,因為GPL軟件不會離開您的硬件。
There is also a license called Affero General Public License (AGPL) to close this loophole by requiring that people who use the software over a network gain a license, but the vanilla GPL doesn't require anything like that.