Question

Pour autant que je sache, lorsque je construis une application de bureau / serveur avec un code GPL tel que MySQL, je dois publier le code source de mon logiciel sous GPL.

Si je souhaite développer une application Web à l'aide de MySQL, mon code sera lié aux bibliothèques MySQL. Dois-je libérer le code source de mon application Web dans cette situation pour être conforme à la GPL?

Était-ce utile?

La solution

Pourvu que vous le gardiez uniquement sur le serveur (et donc "privé"), vous n'avez pas à le publier en tant que GPL. Mais dès qu’il atteint les bureaux publics, il ne peut plus être considéré comme une construction interne, et le code source est donc nécessaire.

Vous pouvez donc:

  • Libérez votre code en tant que GPL
  • Acheter la version commerciale de MySQL
  • Conservez-le uniquement sur le serveur.

Autres conseils

Vous devez publier le code source (sous licence GPL) ou payer une licence propriétaire à MySQL afin de vous autoriser à distribuer les fichiers binaires MySQL sous une licence plus compatible avec celle utilisée par les produits propriétaires. Il vaut mieux toutefois poser ce type de question à votre avocat.

ETA : Juste pour clarifier un peu; Si vous écrivez votre propre bibliothèque qui communique avec MySQL en utilisant son protocole filaire, vous serez toujours à 100% en clair. De même, si vous utilisez une bibliothèque qui a fait exactement cela, mais que vous possédez une licence BSD (à titre d'exemple), vous seriez également en clair, car vous ne parliez qu'avec MySQL via une connexion socket, sans réellement appeler dans le code GPL. Je ne connais pas immédiatement d'interface sous licence BSD avec le protocole MySQL, mais il est certainement possible qu'il en existe une quelque part.

Si vous exécutez vous-même l'application Web et ne le distribuez pas en tant qu'application, vous n'avez pas à publier le code source. Autoriser l'accès à une application Web n'est pas considéré comme une distribution.

Modifier: si cela vous intéresse, vous pouvez consulter la licence publique générale Affero , qui requiert cette source soit mise à la disposition des utilisateurs réseau du logiciel AGPL (par exemple, cela s’appliquerait aux applications Web).

Vous n’avez pas nécessairement à vous connecter à des bibliothèques MySQL pour utiliser MySQL dans votre application. Tout ce que vous avez à faire est de "parler". sur un serveur MySQL utilisant le protocole MySQL; dans ce cas, vous vous connectez au serveur MySQL en tant que client, c'est-à-dire en tant qu'utilisateur, et vous n'avez pas besoin de publier votre logiciel sous la licence GNU GPL.

La question est de savoir comment votre programme peut-il utiliser le protocole MySQL? Une possibilité consiste à utiliser la bibliothèque cliente officielle de MySQL (connecteur), qui est GPL. Si vous le faites, vous liez statiquement votre programme à une bibliothèque GPL et vous devez donc publier votre logiciel sous GPL.

Vous pouvez également établir une liaison avec une bibliothèque client tierce, avec une licence différente. Par exemple, vous pouvez utiliser la bibliothèque client MariaDB , qui est conforme à LGPL (et donc compatible). avec un logiciel propriétaire) et fournit la même API que la bibliothèque cliente originale de MySQL. Consultez la FAQ sur les licences de MariaDB , qui s'applique également à MySQL, pour plus de détails et de conseils.

Il peut s'avérer difficile de distribuer le serveur MySQL avec votre logiciel: vous pourriez simplement demander à vos clients de télécharger et d'installer MySQL par eux-mêmes ou de développer un simple programme de téléchargement à distribuer avec votre logiciel.

MySQL utilise la double licence. Comme ils le disent si nous sommes libres, nous le sommes.

Donc, si vous utilisez, autant que je sache, le connecteur JDBC MySQL uniquement, vous devez avoir une licence ou une licence GPL pour votre code.

Sauf si vous utilisez et / ou distribuez le logiciel sous GPL, vous devriez être en sécurité.

La liaison avec la bibliothèque client MySQL n’est ni un travail dérivé, ni une distribution.

MISE À JOUR: À bien y penser, la façon dont vous établissez un lien (dynamique ou statique) avec les bibliothèques fera la différence. La liaison statique est une distribution, mais si vous établissez une liaison dynamique et que vos clients téléchargent les connecteurs eux-mêmes, il ne s’agit pas d’une distribution et vous devriez être en sécurité.

Oh, et IANAL.

  

Si je souhaite développer une application Web à l'aide de MySQL, mon code sera lié aux bibliothèques MySQL. Dois-je libérer le code source de mon application Web dans cette situation pour qu'il soit conforme à la GPL?

  1. Comme d'autres l'ont déjà dit, si vous ne distribuez pas l'application à d'autres personnes, le problème ne se pose pas du tout.

  2. Normalement, vous développeriez avec une API de base de données standard et laissiez l'utilisateur décider de la base de données à connecter à l'application. Dans ce cas, il n'y a pas de problème. & # 8220; Votre code & # 8221; ne serait pas lié à libmysqlclient, mais il pourrait éventuellement être associé à un module d'accès à la base de données faisant le lien avec libmysqlclient.

  3. Si vous souhaitez distribuer un programme d'installation qui configure votre application et libmysqlclient ensemble, cela ne comptera probablement pas comme une & # 8220; simple agrégation & # 8221 ;, il vous faudra donc distribuer votre application sous une licence open source. Cela ne doit cependant pas nécessairement nécessairement être la version GPL & # 8201; & # 8212; & # 8201; voir la Exception relative à la licence MySQL FOSS .

  4. Si vous souhaitez distribuer un programme d'installation qui configure votre application et le serveur MySQL lui-même, l'exception ne s'applique pas et vous êtes donc limité à la GPL.

Naturellement, IANAL, et il subsiste certainement une incertitude quant à ce qui est considéré comme une dérivation, notamment en ce qui concerne la liaison dynamique. Cependant, ce que je viens de dire, c’est ma compréhension de la position traditionnelle de MySQL AB sur les licences et je n’ai entendu parler d’aucun changement après la prise de contrôle par Sun.

Malheureusement, la coupe est moins nette: la GPL interdit la distribution sans donner la source de chaque "produit dérivé". La distribution est définie juridiquement comme l'acte consistant à transférer la source d'un ordinateur à un ou plusieurs ordinateurs à des fins officielles.

Malheureusement, peut également inclure une utilisation sur des clusters de serveurs, des boîtiers d'assurance qualité, des boites de développement, etc. Dans le magasin de développement moderne, distribuer le code sur plusieurs boîtiers frontend / backend constitue techniquement une distribution (dans les yeux de la loi).

Peu importe ce que pense la Free Software Foundation, ce que peu de juges pensent une fois qu'une personne ou une entreprise est poursuivie en justice pour cela est important.

C’est une raison de plus pour laquelle les principaux clients de la GPL sont aujourd’hui des entreprises qui souhaitent empêcher leurs concurrents de créer leur code . Tout le monde devrait envisager moins de licences encombrantes telles que les licences MIT ou Creative Commons Attribution.

Premièrement, je ne suis pas avocat. Parlez à l'un d'entre eux avant de prendre conseil ici.

Au-delà de cela, si vous ne distribuez pas votre application Web, vous n'avez probablement pas besoin de publier vos modifications. Vous pouvez toujours rendre votre application Web disponible pour être utilisée par d'autres personnes si vous hébergez l'application Web.

Si votre distribution inclut et installe MySql dans le même package, elle nécessite une licence commerciale.

Mais si vous ne distribuez que votre code, utilisez un simple " requiert MySql " avis et un script d'installation (pour créer / peupler les tables), il ne devrait y avoir aucun problème, autant que je sache.

IANAL, bien sûr.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top