MySQL licence GPL
Autant que je sache, quand je construire un ordinateur de bureau/app server à l'aide de tout code GPL comme MySQL, je vais avoir à libérer le code source de mon logiciel sous licence GPL.
Si je veux développer une application web à l'aide de MySQL, mon code va le lier avec le MySQL bibliothèques. Dois-je libérer le code source de ma webapp dans cette situation, conformément à la licence GPL?
- Vous pourriez aussi envisager d'utiliser MariaDB est autorisée sous la LGPL et le protocole est binaire compatible avec MySQL.
- Je vais voter pour fermer cette question hors-sujet, car il est à propos de la licence ou de questions juridiques, pas de programmation ou le développement de logiciels. Voir ici pour plus de détails, et la centre d'aide pour plus d'.
Vous devez vous connecter pour publier un commentaire.
À condition que vous le garder serveur uniquement(et donc "privé"), vous n'avez pas à publier sous licence GPL.
Mais dès qu'il atteint ordinateurs publics, il ne peut plus être considéré comme une version interne, et donc le code source est nécessaire.
De sorte que vous pouvez:
Vous devez publier le code source (sous licence GPL), ou de payer pour une licence propriétaire à MySQL de sorte que vous obtenir le droit de distribuer des binaires de MySQL sous une licence qui est plus favorable à celui qui propriétaire des produits. Il est préférable de prendre ce type de question à votre avocat, si.
ETA: Juste pour clarifier un peu; si vous écrivez votre propre bibliothèque qui parle à MySQL à l'aide de son fils-le protocole de ligne, alors vous allez toujours être à 100% dans le clair. De même, si vous utilisez une bibliothèque qui a fait exactement cela, mais est sous licence BSD (par exemple), alors vous seriez en clair, parce que vous êtes seulement de parler à MySQL via une connexion de socket, et pas vraiment à l'appel de code sous GPL. Je ne suis pas immédiatement pris conscience de tout sous licence BSD interfaces pour MySQL protocole, mais il est certainement possible qu'il y en a un là, quelque part.
Si vous êtes en cours d'exécution de l'application web vous-même, et pas à sa diffusion sous forme d'une application, alors vous n'avez pas de publier le code source. Permettant l'accès à une application web n'est pas considéré comme une distribution.
Edit: si vous êtes intéressé, vous pouvez consulter la Affero General Public License, qui exige que la source de être mis à la disposition des utilisateurs du réseau de l'AGPL logiciel (par exemple, à appliquer pour les applications web).
Vous n'avez pas nécessairement de lien à l'encontre de MySQL bibliothèques afin d'utiliser MySQL dans votre application. Tout ce que vous avez à faire est de "parler" à un serveur MySQL en utilisant le protocole MySQL; dans ce cas, vous vous connectez au serveur MySQL en tant que client, c'est à dire en tant qu'utilisateur, puis vous n'avez pas besoin de sortir votre logiciel sous licence GNU GPL.
La question est, comment pouvez votre programme parler le protocole MySQL? Une possibilité est d'utiliser l'officiel de la bibliothèque cliente MySQL (connecteur), est sous licence GPL. Si vous faites cela, vous êtes en liaison statique de votre programme dans un sous GPL bibliothèque, et donc vous devez libérer votre logiciel sous licence GPL.
Alternativement, vous pouvez lier à l'encontre d'un tiers de la bibliothèque du client, avec une licence différente. Par exemple, vous pouvez utiliser le MariaDB La Bibliothèque Du Client, qui est la LGPL (et est donc compatible avec les logiciels propriétaires) et fournit la même API de l'original de la bibliothèque client MySQL. Voir la MariaDB licences FAQ, qui s'applique également à MySQL, pour plus de détails et de conseils.
Il peut être difficile de distribuer le serveur MySQL avec votre logiciel: vous pouvait se contenter de demander à vos clients de télécharger et d'installer MySQL par leurs propres, ou de développer un simple downloader pour être distribués avec votre logiciel.
DatabaseMetaData#getColumns("", "", tableName, "")
n'ont pas retourné de colonnes, mais qui a facilement été recodé en utilisant une normale de requête avecSHOW COLUMNS
.MySQL utilise la double licence. Comme ils le disent, si vous êtes libres, nous sommes libres.
Donc, si vous utilisez, autant que je sache, JDBC MySQL Connector uniquement - vous devriez avoir license ou GPL de votre code.
À moins que vous dérivez de et/ou distribuer le logiciel sous GPL, vous devriez être en sécurité.
De se lier à la bibliothèque cliente MySQL n'est ni une œuvre dérivée, ni de distribution.
Mise à JOUR: Venir à penser, comment vous lien (dynamique ou statique) contre les bibliothèques va faire une différence. La liaison statique est de la distribution, mais si vous le lier dynamiquement et vos clients de télécharger les connecteurs eux-mêmes, ce n'est pas de la distribution et vous devriez être en sécurité.
Oh, et IANAL.
Comme d'autres l'ont dit, si vous n'êtes pas la distribution de l'application pour d'autres, il n'y a pas de problème.
Normalement, vous souhaitez développer par rapport à une norme API de base de données et permettre à l'utilisateur de décider ce que la base de données pour vous connecter à l'application. Dans ce cas, il n'y a pas de problème. “Votre code” ne pas être lier à libmysqlclient, mais il peut être combiné avec une base de données access module qui n'a de lien de libmysqlclient.
Si vous souhaitez distribuer un installeur qui permet de configurer votre application et libmysqlclient ensemble, qui ne serait probablement pas compter comme “l'agrégation”, donc il faudrait que vous distribuez votre application sous une licence open source. Ce n'est pas, cependant, être nécessairement GPL — voir le MySQL logiciels libres à l'Exception de Licence.
Si vous souhaitez distribuer un installeur qui permet de configurer votre application et le serveur MySQL lui-même, l'Exception ne s'applique pas, de sorte que vous êtes limité à gnu GPL.
Naturellement IANAL, et il ya certainement encore une certaine incertitude quant à ce qui est considéré comme la dérivation en particulier à l'égard de la liaison dynamique. Cependant, le ci-dessus est ma compréhension de MySQL AB position traditionnelle sur les licences, et je n'ai pas entendu de toute modification post-Soleil-prise de contrôle.
Malheureusement, il n'est pas aussi clean cut: La GPL interdit distribution sans donner la source de tous les "produits dérivés". La Distribution est juridiquement défini comme l'acte de transfert de source à partir d'un ordinateur à un ou plusieurs ordinateurs pour leur usage officiel.
Malheureusement, qui peut également inclure l'utilisation sur les clusters de serveurs, QA, des boîtes, des boîtes de dev, etc. Dans le moderne dev boutique, tout en libérant le code à plusieurs frontend/backend boîtes est techniquement distribution (aux yeux de la loi).
Il n'a pas d'importance ce que la Fondation pour le Logiciel Libre pense, c'est important ce que quelques juges pense qu'une fois que quelqu'un/une personne morale est poursuivi en justice pour faire exactement cela.
C'est juste une raison de plus pourquoi la GPL principaux clients de ces jours sont des sociétés qui souhaitent empêcher des concurrents de bifurquer leur code. Tout le monde devrait envisager de beaucoup moins d'encombrer les licences comme le MIT ou Creative Commons Attribution des licences.
Tout d'abord, je ne suis pas un avocat. Parler avec un avant de prendre tous les conseils ici.
- Delà de cela, si vous ne distribuez pas de votre application web, il est probable que vous n'avez pas besoin de publier vos modifications. Vous pouvez toujours faire votre web app disponible pour être utilisé par d'autres personnes si vous êtes l'hôte de l'application web.
Si votre distribution comprend et installe MySql dans le même paquet, il nécessite une licence commerciale.
Mais si vous ne distribuez votre code, avec un simple "nécessite MySql" avis et un script d'installation (pour créer et/ou remplir les tables), il devrait y avoir aucun problème, autant que je sache.
IANAL, bien sûr.