Réécriture du code GPL pour changer de licence


23

J'ai trouvé une bibliothèque GPL (pas de double licence), qui fait exactement ce dont j'ai besoin. Malheureusement, la licence GPL sur la bibliothèque est incompatible avec la licence d'une autre bibliothèque que j'utilise. J'ai donc décidé de réécrire la bibliothèque GPL, afin que la licence puisse être modifiée.

Ma question est la suivante: dans quelle mesure les modifications doivent-elles être apportées à la bibliothèque pour pouvoir modifier la licence? En d'autres termes, quelle est la façon la moins chère de procéder?


3
Il peut être moins cher de payer l'auteur de la bibliothèque GPL pour vous le publier sous une licence différente.
quant_dev

3
Plutôt que de demander quelle est la meilleure façon, pourquoi ne pas nous raconter toute l'histoire et demander "Quelle est la bonne chose à faire?"
John R. Strohm

4
Si l'autre bibliothèque n'est pas compatible avec GPL, c'est peut-être la bibliothèque que vous devez modifier.
Paul Butcher

1
Quelle licence possède l'autre bibliothèque?
Andres F.

Réponses:


34

Je ne suis pas avocat, mais AFAIK si vous avez vu le code de bibliothèque GPL, toute bibliothèque d'émulation que vous écrivez serait entachée et pourrait être déclarée une œuvre dérivée par un juge si elle est trop similaire dans son appréciation.

Le processus serait donc d'écrire une spécification fonctionnelle et d'avoir quelqu'un qui n'a pas vu le code GPL écrire la bibliothèque.

Edit: Notez qu'avec la façon dont vous formulez votre question "Quelle est l'ampleur des changements à apporter à la bibliothèque pour pouvoir changer la licence?" la réponse est AFAIK claire: quoi que vous fassiez, si vous venez de modifier la bibliothèque, vous devez respecter la durée de la licence qui vous permet de la modifier en premier lieu.


3
La question de la contamination n'est probablement pas une préoccupation très grave dans la pratique. Dans les cas où vous effectuez une rétro-ingénierie du code d'une entité commerciale, le pare-feu entre le lecteur et l'implémenteur est nécessaire pour le procès en contrefaçon (essentiellement inévitable), de sorte que vous pouvez montrer qu'il n'y avait pas de possibilité de copier le code de l'autre version . Dans le cas de la plupart des codes GPL, à moins que vous ne violiez ouvertement, personne ne va vous poursuivre, car ce n'est pas dans leur intérêt de le faire.
Mark Bessey

1
Vous aimerez peut-être la roulette russe, c'est votre choix. Si pour une raison quelconque - une concurrence héritant du code d'une manière ou d'une autre, ou simplement une concurrence décidant de financer le procès - vous êtes poursuivi et condamné, c'est quelque chose qui pourrait noyer votre entreprise. Même si vous n'êtes pas poursuivi, s'il est connu, la mauvaise réputation peut être un problème.
AProgrammer

2
Je pense que le problème "vicié" s'applique principalement aux NDA. Pour les questions de droit d'auteur, cela n'a guère de sens. Considérez que le droit d'auteur s'applique également aux livres, journaux, films, etc. George Lucas a probablement vu la série Star Trek à la télévision avant de créer Star Wars, cela fait-il de Star Wars un travail dérivé? Si un journaliste entend parler de quelque chose à la radio, cela l'empêche-t-il d'écrire sur le même événement?
user281377

6
L'approche de la salle blanche n'est qu'un moyen de prouver que vous n'avez pas enfreint la loi sur le droit d'auteur. Si je comprends bien - et je ne suis pas encore un avocat - les choses développées à l'insu de l'œuvre originale peuvent ne pas enfreindre le droit d'auteur (mais peuvent enfreindre les brevets). Les choses développées avec cette connaissance peuvent ou non enfreindre le droit d'auteur - il est juste plus difficile de prouver que les similitudes sont dues à des événements aléatoires ou à la nature du problème qui rendent une approche naturelle.
AProgrammer

1
@ammoQ: Aux États-Unis, il y a longtemps une poursuite pour contrefaçon de copie (un progiciel statistique?) où une entreprise était considérée comme ayant enfreint même si chaque ligne de code avait été réécrite. Notez que Star Wars n'est pas particulièrement similaire à Star Trek, et qu'un journaliste ne va pas écrire une histoire uniquement à partir de ce qu'il a entendu à la radio.
David Thornley

21

La manière habituelle de contourner ce problème est de contacter d'abord le propriétaire de la bibliothèque et de lui demander s'il vous le communiquera sous une licence différente.

Si vous travaillez sur un projet open source où la GPL n'est pas compatible, alors il y a de fortes chances qu'ils le fassent, certains projets se retrouvent avec une licence GPL simplement parce que cela semblait être le meilleur choix.

Bien sûr, cela s'applique aux deux bibliothèques. Obtenir la double licence de licence permissive sous une licence moins permissive ne devrait pas être un problème.

Si vous travaillez avec un produit commercial, de nombreux auteurs de bibliothèque vous donneront une version sous une licence différente, si vous les rémunérez de manière appropriée.


8
Cela vaut le coup, mais cela ne fonctionne pas si le propriétaire de la bibliothèque a accepté ou utilisé des contributions sous GPL, ce qui est le cas pour de nombreuses bibliothèques.
Brian

^ Sauf s'ils avaient un accord de "contributeur" qui a réaffecté le droit d'auteur aux auteurs originaux: softwareengineering.stackexchange.com/a/225577/93511
Jonathan

17

Ma compréhension est que si vous commencez par une œuvre et que vous la modifiez, quelle que soit l'ampleur des modifications, le résultat final est une œuvre dérivée de l'original. Vous devrez écrire la bibliothèque à partir de zéro. Si vous écrivez la bibliothèque à partir de zéro, mais que vous avez vu le code, alors s'il est trop similaire, vous pouvez de nouveau être poursuivi pour violation du droit d'auteur.

Ces règles ne sont pas spécifiques aux logiciels, elles s'appliquent aux objets protégés par le droit d'auteur de toutes sortes.

Je ne suis pas avocat et ce n'est pas un conseil juridique. Je ne suis peut-être pas non plus dans votre juridiction, et vous devriez toujours douter des conseils juridiques offerts sur Internet. Si vous souhaitez bénéficier de conseils juridiques fiables, vous devrez payer un avocat.


4

IANAL, mais je sais qu'aux États-Unis, aucun degré de modification ne créera une œuvre non dérivée. S'il contient du code copié de l'ancienne bibliothèque ou s'il a suffisamment de similitudes internes pour vous causer des problèmes de plagiat dans une classe universitaire, alors vous n'êtes pas du tout près d'un nouveau travail. Changer certains noms de fonctions ou de variables ne fera rien, pas plus que le déplacement de morceaux de code dans la source. Vous devriez le recréer indépendamment pour avoir une chance. IOWs, vous devez regarder uniquement les interfaces qu'il fournit et décider comment fournir cette fonctionnalité et la recréer de cette façon pour avoir une chance. Même alors, vous pourriez ne pas être sorti du bois si quelqu'un se soucie vraiment et devient fou.

En fin de compte, votre meilleur pari est de contacter l'auteur de la bibliothèque et d'espérer que vous pourrez trouver un arrangement pour une licence plus permissive de la bibliothèque.


1

Si tout le reste suggéré ici (demande de double licence, réécriture) n'est pas acceptable, n'oubliez pas qu'il n'est toujours pas clair si la liaison dynamique avec un programme / bibliothèque propriétaire est considérée comme un travail dérivé. La FSF dit que oui, mais de nombreux avocats (Lawrence Rosen inclus) ont remis cela en question.

Vous pouvez donc lier votre logiciel à la bibliothèque GPL, puis vous assurer que le code source de celui-ci est distribué avec chaque copie de votre logiciel. Si quelqu'un vous poursuit, il doit prouver que sa compréhension de cet aspect délicat et trouble de la GPL est correcte. Comme il apparaît (par exemple, Galoob vs Nintendo), vous ne pouvez pas être absolument sûr de ce qui fait que les produits dérivés fonctionnent ou non.


ou au moins demander si la bibliothèque peut également être LGPL.
Johan

2
Le problème des liens dynamiques est difficile, mais ne comptez pas sur un juge qui décide de votre chemin. Le juge pourrait bien décider que vous acceptez les définitions Gnu si vous utilisez la licence Gnu, et vous ne voulez probablement pas baser votre produit logiciel sur le résultat d'un procès qui ne s'est pas encore produit.
David Thornley

1

La seule façon de ne pas dériver le travail serait de réécrire vous-même tout le code sans utiliser le code d'origine. Ce qui est probablement irréalisable.

Il existe des moyens beaucoup plus simples de contourner la GPL:

  • en clair: mettre en service, y accéder via une prise. Le socket est une limite à la licence GPL (à moins qu'il ne soit infâme GPLv3 avec la clause Affero );
  • dans la zone grise: liez-la dynamiquement. Il y a beaucoup de controverse si la liaison dynamique est ou n'est pas une limite au travail dérivé. Quelques points de vue ici . Cela peut également dépendre de la juridiction dans laquelle vous vous trouvez.

Notez également que GPL est une licence de distribution , vous n'avez donc besoin de concéder une licence sur votre travail que si vous distribuez des fichiers binaires à des tiers. Et vous n'êtes obligé de leur divulguer la source, aucune obligation de le divulguer au grand public, sauf si vous publiez des binaires au grand public. Si vous utilisez votre code par exemple uniquement sur vos serveurs, vous n'avez aucune obligation de libérer aucun code. C'est ainsi que Google le fait par exemple avec leurs noyaux Linux modifiés.


Je suis loin d'être sûr que la prise est une barrière. Selon nos avocats, les ingénieurs sont trop focalisés par des mesures techniques alors que l'effet global est ce qui est vérifié par la loi. Publier une interface socket et donner un exemple d'utilisation dans emacs lisp était OK pour eux. Mais donner la possibilité d'installer automatiquement emacs avec notre programme ne l'était pas. Vous avez raison pour la distribution. Mais notez que vous ne pouvez pas empêcher celui à qui vous distribuez de continuer à distribuer.
AProgrammer

@AProgrammer: même FSF dit que si c'est un processus séparé, alors ce sont des programmes séparés, donc pas un travail dérivé. FAQ sur les plugins, mais la logique s'applique toujours: gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins
vartec

La question concerne le plug-in et le plug-in ne sont pas indispensables par nature. Je ne parierais pas à mon entreprise que structurer un programme en deux processus, l'un sous GPL car il utilise des bibliothèques sous GPL, l'autre non parce que nous voulons garder la source privée est légitime. Surtout lorsque les deux sont distribués ensemble. Mais c'est votre appel.
AProgrammer

1
@A: la distribution avec d'autres programmes est une "agrégation", et explicitement autorisée par GPL. Et non, ce n'est pas mon appel. Personnellement, je ne toucherais pas à la bibliothèque GPL même avec un bâton de 10 pieds de long.
vartec

1

IANAL et, en tout cas, cela peut ne rien signifier légalement, mais, je crois que dans le livre de Steven Levy "Hackers", il décrit comment, à un moment donné, RMS a écrit * nix code for money pendant la journée et la nuit a écrit la même chose des trucs à la maison pour qu'ils puissent faire partie de ... GNU? ... c'était avant Linux ... un système de type Unix gratuit. Je pense qu'il a dû rendre le code de la maison différent du code du jour, mais il faisait essentiellement exactement ce que vous proposez.

Cela n'a probablement pas d'importance légalement non plus, mais ... Je ne sais pas si Apple et / ou Microsoft ont obtenu une autorisation / licence ou quelque chose, mais les laboratoires Bell n'ont pas inventé l'interface bureau / icône / souris, qui était utilisée pour les Mac (ou Lisa?) qui a ensuite été utilisé par Microsoft.


Ce serait Xerox PARC, pas Bell Labs.
Marnen Laibow-Koser

Et Jobs a conclu un accord avec Xerox qui a permis à Apple d'aller voir le laboratoire de Palo Alto. À Xerox, personne ne se souciait de cette technologie à l'époque.
aledalgrande

0

Il n'y a pas de réponse à cela, sauf pour un procès devant un juge dans votre juridiction particulière. Mais voulez-vous le risquer? Ou allez à l'effort de réécrire la bibliothèque GPL, les tests, etc. etc. Êtes-vous sûr que l'autre bibliothèque est incompatible avec la GPL? C'est en fait assez inhabituel, sauf si vous souhaitez distribuer les deux bibliothèques sous les termes des bibliothèques non GPL.


Vous pouvez obtenir la liste des licences Gnu sur gnu.org/licenses/license-list.html et vous remarquerez qu'elle est divisée en licences gratuites compatibles GPL, licences gratuites non compatibles GPL et licences non libres. La GPL a des exigences spécifiques auxquelles les autres licences ne sont souvent pas conformes, et l'un des objectifs de la GPLv3 était de faciliter la compatibilité.
David Thornley

0

Dans quelle mesure les modifications doivent-elles être apportées à la bibliothèque pour pouvoir modifier la licence?

Dans la plupart des régions du monde, vous devez repartir de zéro et ne rien couper ni dépasser. Vous avez besoin de nouveaux noms pour les fonctions / classes / variables etc etc, et la structure doit être différente. Ensuite, vous êtes en sécurité.

D'un autre côté, si un outil diff ne trouve aucune similitude, alors ...


2
Si un outil de comparaison ne trouve aucune similitude, il peut toujours s'agir d'une violation du droit d'auteur. Regardez-le d'un point de vue non-programmation: j'écris un livre, vous le traduisez en suédois, et par la loi américaine (et probablement suédoise) sur le droit d'auteur, vous avez fait un travail dérivé.
David Thornley

@David Thornley Oui, vous avez raison sur le travail dérivé.
Johan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.