web-dev-qa-db-fra.com

Restrictions de licence open source GPL et LGPL

J'ai du mal à comprendre les autorisations d'utilisation de l'open source. J'ai lu quelque part que GPL ou LGPL impose que les logiciels qui utilisent des logiciels GPL doivent également être publiés en open source. Je veux créer une application qui utilise une bibliothèque de reconnaissance d'images open-source. Puis-je vendre cette application ou doit-elle être open source?

Merci!

98
rsinha

LGPL vous permet d'utiliser et de distribuer le logiciel open source avec votre application sans publier le code source de votre application.

GPL vous oblige à publier le code source de votre application si vous choisissez d'utiliser et de distribuer le logiciel open source sous licence GPL avec votre application. En d'autres termes, votre application doit également être sous licence GPL.

72
Robert Harvey
  • GPL

    D'autres développeurs peuvent emprunter et modifier le code et le redistribuer dans le cadre de leur propre projet, uniquement si l'ensemble de leur projet est également sous licence GPL.

    Cela empêche le code d'être utilisé dans un logiciel propriétaire.

  • LGPL

    D'autres développeurs peuvent emprunter et modifier le code et le redistribuer dans le cadre de leur propre projet, à condition que la partie utilisée sous la LGPL soit sous-licenciée sous la LGPL. D'autres parties du projet sont autorisées avec d'autres licences.

    Cela permet au code d'être utilisé dans un logiciel autrement propriétaire.

La LGPL a un certain nombre de conditions supplémentaires qui doivent être remplies pour pouvoir la distribuer dans un projet avec une autre licence. Par exemple, il doit être possible pour tout utilisateur du logiciel fini de modifier, recompiler ou remplacer la partie du logiciel sous licence sous LGPL et utilisez ce code modifié avec le même logiciel. Si vous publiez un logiciel propriétaire contenant du code LGPL, une façon de satisfaire à cette exigence consiste à placer le code LGPL dans une bibliothèque séparée liée dynamiquement et à distribuer avec votre logiciel les fichiers d'en-tête et la documentation nécessaires pour recompiler le LGPL. portion de telle manière qu'il peut toujours être lié et utilisé avec le logiciel tel que fourni. Il n'est pas acceptable de prendre des mesures pour empêcher la modification du code LGPL, comme l'obscurcissement du code lui-même ou des fichiers API ou d'en-tête.

Notez que la LGPL est compatible avec la GPL: vous pouvez choisir de "mettre à niveau" le code vers la GPL et de l'incorporer dans un projet sous licence GPL comme indiqué dans mon premier point si vous le souhaitez. Vous ne pouvez cependant pas aller dans l'autre sens et reclasser le code sous licence GPL en tant que LGPL.

41
thomasrutter

IANAL, mais les concepts sont assez simples.

Tout d'abord, vous et votre avocat devez lire les licences GPL et LGPL . Deuxièmement, vous devriez lire le FAQ GPL . Autant que je sache, vous pouvez penser à utiliser les bibliothèques GPL/LGPL de cette manière:

  • Si vous établissez une liaison dynamique ou statique avec une bibliothèque GPL ou LGPL, vous avez créé un travail dérivé.
  • Si vous utilisez une bibliothèque GPL et que vous vous connectez à cette bibliothèque, votre logiciel doit être publié avec une licence compatible .
  • Si vous utilisez une bibliothèque qui est LGPL et que vous établissez une liaison dynamique avec cette bibliothèque, votre logiciel n'a pas besoin d'être publié avec une licence compatible, mais vous devez toujours vous conformer à la LGPL.
  • Si vous utilisez une bibliothèque qui est LGPL et que vous établissez une liaison statique avec cette bibliothèque, votre logiciel doit être publié avec une licence compatible.
  • Les licences GPL/LGPL signifient "gratuit" comme dans "parole libre", pas "bière gratuite" . Vous pouvez créer une œuvre dérivée et la vendre pour de grandes sommes d'argent, mais vous devez vous conformer à la GPL/LGPL.
25
Jared Oberhaus

Si vous copiez et collez ou liez contre du code GPL dans votre application, votre application doit être sous licence GPL et vous devez ensuite libérer le code.

Cependant, vous pouvez toujours vendre votre application et afaik, la seule oblication est que vous communiquez le code source à vos clients.

Si la bibliothèque avec laquelle vous créez un lien est Lesser Gnu Public License aka LGPL, vous n'avez pas besoin de publier le code de votre propre application, mais vous devez toujours libérer toutes les modifications si vous avez modifié le code lgpl.

8
rasjani

GPL ne vous interdit pas de vendre des logiciels. Cependant, vous devez mettre les sources à disposition du logiciel.

La question de l'utilisation est un peu plus compliquée. GNU/Linux est publié sous GPL. Rien ne vous interdit d'écrire un logiciel fonctionnant sous Linux quelle que soit la licence de votre logiciel. Cependant, vous ne pouvez pas distribuer Linux avec votre logiciel. C'est souvent un problème avec les bibliothèques qui doivent faire partie d'un programme. C'est à cela que sert la licence LGPL. Vous pouvez compiler un programme c que vous écrivez avec gcc (donc en utilisant les bibliothèques de routine d'exécution sous licence LGPL de gcc) et toujours publier votre logiciel sans les restrictions de la GPL.

Je pense que c'est l'essentiel. Cependant, ce n'est en aucun cas un avis juridique. Pour obtenir des conseils juridiques, vous devez retenir les services d'un avocat agréé qui peut vous fournir des conseils juridiques adaptés à votre situation particulière.

J'espère que cela t'aides.

7
txwikinger

La distinction GPL vs LGPL détermine si vous devez/ne devez pas divulguer la source de votre application à quiconque possède une copie du fichier binaire. Dans les deux cas, vous pouvez toujours vendre l'application.

3
Troubadour