J'ai créé un programme basé sur un projet LGPL, et je ne suis pas autorisé à publier le code source

13

Je pensais que LGPL était une licence permissive, tout comme le MIT, BSD ou Apache. Mais aujourd'hui, j'ai lu que seul le lien vers LGPL (bibliothèques, etc.) est autorisé à partir de code source fermé - à part cela, c'est du copyleft - je dois donc publier du code basé sur un programme LGPL.

J'ai créé un programme pour mon employeur qui est basé sur un programme LGPL, mais qui a subi des modifications considérables. Bien sûr, je ne suis pas autorisé à publier ce code source modifié. En même temps, je dois, si je le distribue (non?).

Je me demande donc s'il existe une solution de contournement à cela, afin que je puisse garder cette source fermée (je souhaite pouvoir publier la source) - des suggestions?

Mon idée: puis-je mettre la plupart des fonctions de l'application LGPL originale dans une bibliothèque externe, écrire le noyau exécutable à partir de zéro, mais se référer à la bibliothèque pour toutes les fonctions que je n'ai pas modifiées?

Actuellement, tout est dans un fichier .jar (c'est Java / Swing). si vous pensez que mon idée est juridiquement / techniquement réalisable - combien d'efforts serait-ce pour séparer ce que j'ai écrit et quel est l'original? Je ne suis pas le plus averti de Java.

Esuus
la source
Dans cet article , le gars dit "De plus, la LGPL peut être contournée en la mettant simplement dans une nouvelle DLL et en utilisant des délégués ou des interfaces pour l'appeler à partir du code source LGPLed." - quelqu'un peut-il élaborer un peu plus sur la façon de procéder avec l'application Java d'origine?
16
ce n'est pas un site Web juridique , je ne prendrais aucun conseil sur les questions juridiques de quiconque ici, sauf le conseil d'aller chercher de vrais conseils juridiques bien sûr.
5
La LGPL est principalement concernée par la distribution et vous ne nous avez donné aucune information sur la façon dont vous prévoyez de distribuer ce code. Il est peu probable que la question obtienne des réponses précises tant que vous ne l'aurez pas fait. En tout état de cause, je réitère que vous ne devez pas prendre conseil juridique sur Internet .
Rein Henrichs
Je crois que je comprends maintenant assez bien la LGPL en termes de légalité. Je vous demande donc vraiment comment le faire fonctionner techniquement - même si vous avez bien sûr raison - en cas de doute, je consulterai un avocat.
Esuus
Vous ne dites pas quel logiciel vous utilisez, mais certains fournisseurs de logiciels GPL / LGPL (et autres) fournissent des licences commerciales aux personnes dans votre situation.
Jaydee

Réponses:

13

Tout d'abord, prendre des conseils juridiques ici (comme dans: les internets) n'est pas une bonne idée.

Deuxièmement, et ce n'est que moi qui parle, pas un avocat, vous auriez dû y penser avant de suivre un programme LGPL et de le modifier pour votre employeur.

Si la licence était quelque chose que vous pouviez ignorer simplement parce que vous ne l'aimiez pas, il ne serait pas très utile d'en avoir une maintenant, n'est-ce pas?

Si vous et / ou votre employeur ne souhaitez pas publier le code source avec vos modifications, vous devez cesser d'utiliser ce code LGPL et vous en débarrasser.

Encore une fois, c'est juste moi qui parle.

Demandez conseil à un véritable avocat.


En réponse à votre question sur le contournement de la licence en ajoutant le code à une DLL, je suppose que cela fonctionnerait de la manière suivante.

Ce que vous feriez serait de modifier suffisamment le programme d'origine pour pouvoir appeler des fonctions dans des bibliothèques externes. Vous devriez le faire sans rendre ce morceau de code spécifique à vos besoins, bibliothèques, noms de fonctions, etc.

Ces modifications que vous publiez ensuite, conformément aux exigences de licence.

Ensuite, vous créez votre propre bibliothèque externe avec votre propre code propriétaire et demandez à ce programme de le charger et de l'exécuter, en utilisant les modifications que vous y avez apportées.

Ne connaissant pas toute l'étendue de la licence LGPL, je ne peux pas dire si cela suffit pour éviter d'avoir à publier votre bibliothèque, même si je le pense.

Cependant, encore une fois ...

Obtenez les conseils d'un avocat

Lasse V. Karlsen
la source
4
Notez que la FSF, qui a écrit la famille de licences GPL, considère la liaison dynamique pour créer une œuvre dérivée, de sorte que cela peut ne pas fonctionner. (D'autres personnes pensent que la FSF a tort.) Je ne pense pas qu'il existe une détermination légale, bien que je puisse me tromper.
David Thornley
Vraiment? Je suis convaincu que vous en savez plus à ce sujet que moi, David, mais wikipedia dit que vous pouvez même créer un lien dynamique vers des bibliothèques sous licence GPL sans avoir à publier sous GPL: "Par exemple, l'exception de liaison GPL autorise les programmes qui ne se concèdent pas eux-mêmes sous GPL pour créer un lien vers des bibliothèques sous licence GPL sans pour autant devenir soumis aux exigences GPL. " Donc, je me demande maintenant quelle est la différence entre GPL et LGPL: je pensais que seule LGPL permettait cela.
Esuus
2
@Dave: La grande équipe juridique de mon employeur ne serait pas d'accord. Ils sont très agressifs quant à la protection de leur propriété intellectuelle, et il nous est explicitement interdit de lier le code GPL au nôtre, sauf si nous distribuons le code sous la GPL. Où avez-vous trouvé cette exception? Je ne le vois pas dans GPLv2 ou v3. Il semble que vous faites référence à une exception de liaison qui ne fait pas partie de la GPL vanille. Cependant, les propriétaires de droits d'auteur peuvent ajouter une exception de liaison à leur code GPL à leur discrétion. Consulter son équipe juridique est vraiment la meilleure chose à faire.
Néant
5
Je ne ferais pas confiance à Wikipédia à ce sujet. Pour tout ce que vous savez, l'entrée est écrite par un jeune de 14 ans qui a lu des informations sur les licences le week-end précédent. Obtenez de vrais conseils. Ou, vous pourriez parier sur la ferme et espérer que votre entreprise n'ait pas de problèmes. Tout ce qui fonctionne.
Lasse V. Karlsen
La liaison @Dave vers la GPL est un problème. Pour autant que je sache, ce fut l'une des principales raisons pour lesquelles FreeBSD a abandonné GCC en faveur de Clang / LLVM .
Legolas
4

La plupart des bibliothèques open source publiées sous LGPL ou une licence comparable, au moins assez bonnes pour être utilisées dans vos projets, sont construites selon le principe ouvert / fermé: http://en.wikipedia.org/wiki/Open/closed_principle .

Vous devriez pouvoir refactoriser votre code afin que votre application soit liée à la bibliothèque LGPL et que toutes les extensions soient contenues dans votre code d'application fermé.

Olaf
la source
Eh bien, le code LGPL que j'ai utilisé est une application, pas une bibliothèque .. donc la question est de savoir si je peux le transformer en bibliothèque ou - comme Lasse l'a suggéré - transformer mon code en bibliothèque et garder le reste LGPL / ouvert
Esuus
1
@Dave: LGPL était connue sous le nom de Library GPL. Je n'ai vraiment vu aucune application utilisant cette licence. Qu'utilisiez-vous, si ce n'est pas un secret?
Olaf
La FSF l'appelle maintenant la petite GPL. La seule utilisation à laquelle je peux penser en ce moment pour les applications est de pouvoir créer des liens dans des bibliothèques propriétaires et similaires.
David Thornley
Fait intéressant, Mozilla et OpenOffice.org sont sous licence LGPL.
Esuus
@Dave: Alors je suis avec @David Thornley. Mozilla fournit des moyens de créer des plug-ins personnalisés qui peuvent être du code fermé. Je ne connais pas très bien OpenOffice, mais je parie qu'ils le font. L'application LGPL que vous utilisez fournit-elle une sorte de fonctionnalité d'extension, comme l'ajout de plug-ins ou l'utilisation d'un langage de script? Pouvez-vous utiliser ce mécanisme pour votre code?
Olaf
2

Même avertissement: IANAL.

Quelque chose que personne d'autre n'a mentionné jusqu'à présent est que même si vous séparez le code, vous devez toujours distribuer le code source aux parties LGPL, ou au moins donner des informations sur l'endroit où ils peuvent être téléchargés.

La seule façon de contourner cela est de ne pas les distribuer en premier lieu.

Per Johansson
la source
2

Je ne pense pas que vous ayez besoin d'un avocat pour comprendre qu'essayer de contourner un permis n'est pas une bonne chose. Le bon sens suffit.

Au lieu de cela, vous pouvez contacter l'auteur d'origine du programme LGPL et demander / acheter une licence propriétaire différente.

Les seules autres alternatives sont de libérer la source ou de la réécrire complètement.

amadvance
la source
1

IANAL, TINLA, etc.

Je pensais que LGPL était une licence permissive, tout comme le MIT, BSD ou Apache. Mais aujourd'hui, j'ai lu que seul le lien vers LGPL (bibliothèques, etc.) est autorisé à partir de code source fermé - à part cela, c'est du copyleft - je dois donc publier du code basé sur un programme LGPL.

Oui, la LGPL exige soit que vous mettiez le code source à la disposition de toute personne qui reçoit une copie du travail, soit que vous distribuiez votre travail sous une forme permettant aux destinataires du logiciel de remplacer votre version du travail LGPL par une nouvelle version. Dans les deux cas, toutes les modifications apportées à la partie LGPL de l'œuvre doivent être accessibles à tous les destinataires de l'œuvre.

J'ai créé un programme pour mon employeur qui est basé sur un programme LGPL, mais qui a subi des modifications considérables. Bien sûr, je ne suis pas autorisé à publier ce code source modifié. En même temps, je dois, si je le distribue (non?).

Correct. La licence stipule que tous les destinataires du logiciel doivent avoir accès au code source.

Mon idée: puis-je mettre la plupart des fonctions de l'application LGPL originale dans une bibliothèque externe, écrire le noyau exécutable à partir de zéro, mais se référer à la bibliothèque pour toutes les fonctions que je n'ai pas modifiées?

Cela peut constituer un travail dérivé, et vous devrez toujours distribuer tous les scripts de construction qui suppriment le programme dans une bibliothèque.

Actuellement, tout est dans un fichier .jar (c'est Java / Swing). si vous pensez que mon idée est juridiquement / techniquement réalisable - combien d'efforts serait-ce pour séparer ce que j'ai écrit et quel est l'original? Je ne suis pas le plus averti de Java.

Java ajoute toute une série de nouveaux problèmes à la LGPL, car on ne sait pas ce qui constitue une liaison "statique" et "dynamique". Étant donné que les exceptions de la LGPL à la GPL reposent sur ce concept, la LGPL est vraiment équivalente à la GPL dans la plupart des cas. Vous devrez consulter l'équipe juridique de l'entreprise pour répondre à toutes les questions qui pourraient se poser.

Mon conseil est que si quelqu'un en dehors de votre entreprise aura accès au programme, supprimez-le et recommencez. Si vous ne pouvez pas répondre aux exigences de la licence, vous n'êtes pas du tout autorisé à la distribuer.

Si le programme n'est disponible qu'au sein de l'entreprise, il vous suffit de mettre la source à la disposition des employés de l'entreprise. Je suggère de l'ajouter au contrôle de code source de votre entreprise. Cela satisfera aux exigences de la LGPL, tant que personne en dehors de l'entreprise n'y aura accès.

gris-fondu
la source
1

vous pouvez utiliser un modèle d'adaptateur et ne pas toucher le code d'origine. LGPL vous permet également d'hériter des classes et de remplacer les fonctionnalités de ses classes dans votre propre projet.

ciel
la source
0

C'est ma compréhension, IANAL.

Vérifiez le texte de la version LGPL qui couvre le code que vous utilisez. Je crois que l'exigence est que tout code LGPL doit être permutable - généralement en utilisant un fichier de bibliothèque / jar partagé. Si vous pouvez séparer le code que vous utilisez qui est LGPL dans une bibliothèque, vous pouvez le publier sous LGPL, tout en publiant votre application sous la licence que vous souhaitez.

Sean McMillan
la source
0

Vous ne pouvez pas contourner la licence. Même si vous trouvez une échappatoire, c'est toujours contraire à l'éthique (bien que ce soit une question différente pour certaines personnes). Ce que vous POUVEZ faire, c'est contacter l'auteur dudit logiciel, expliquer la situation et demander une licence distincte. S'il est prêt à vous donner une licence spéciale pour un prix, vous pouvez le comparer au coût de réécriture de votre logiciel sans utiliser le composant en question. Et allez simplement avec le moins cher.

Tamás Szelei
la source