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.
Réponses:
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
la source
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é.
la source
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.
la source
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.
la source
IANAL, TINLA, etc.
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.
Correct. La licence stipule que tous les destinataires du logiciel doivent avoir accès au code source.
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.
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.
la source
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.
la source
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.
la source
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.
la source