La GPL peut-elle être impliquée dans une œuvre dérivée?

13

Il existe trois projets logiciels: A, B et C.

A est publié pour tout le monde et est sous licence GPL.

B étend A, est publié également, mais n'a aucune information de licence ou est sous licence par erreur sous LGPL. Fondamentalement, il viole la licence de A en n'étant pas GPL. Le code source de B est toujours disponible.

C étend B. Peut-il être publié sous GPL? La motivation serait "A est GPL, tout dérivé doit aussi être GPL, donc B est GPL et C peut aussi être GPL".

Andrej
la source
5
Quelle partie de B s'étend C? S'ils sont déjà tous en A, je ne vois aucun problème. Si C étend des parties de B qui n'étaient pas dans A, les choses deviennent intéressantes.
Je nommerais les projets A, B, C et contacterais les auteurs de B.
Basile Starynkevitch
1
De plus, je pense que vous pourriez au moins publier C sous GPL, car GPL est compatible avec LGPL. Mais IANAL
Basile Starynkevitch
2
@Tichodroma, C étend des parties de B, mais B ne peut exister sans A :)
Andrej
L'auteur de C a-t-il également écrit (une partie de) A? Sinon, nous n'avons aucune idée de la licence que les auteurs de A ont accordée à B, donc nous n'avons aucune idée si nous pouvons nous en inspirer?
dcorking

Réponses:

23

Tout d'abord, B est en violation de la GPL sur A. Mais ce n'est pas exactement votre préoccupation et n'est pas pertinent pour la question ici (qui sait, peut-être que B a obtenu une licence LGPL de A sur leur code afin qu'elle puisse être publiée sous LGPL? ).

La question est "Pouvez-vous créer un logiciel GPL basé sur le code LGPL?" La réponse à cette question est simplement «oui».

La LGPL est moins restrictive que la GPL (c'est pourquoi B enfreint la licence sur A sauf si d'autres dispositions ont été prises), mais permet également de la réintégrer assez facilement dans un projet GPL.

De la licence LGPL:

  1. Code objet incorporant le matériel des fichiers d'en-tête de bibliothèque. La forme de code objet d'une application peut incorporer des éléments d'un fichier d'en-tête qui fait partie de la bibliothèque. Vous pouvez transmettre ce code objet selon les modalités de votre choix, à condition que, si le matériel incorporé ne se limite pas aux paramètres numériques, aux dispositions de structure de données et aux accesseurs, ou aux petites macros, aux fonctions en ligne et aux modèles (dix lignes ou moins de longueur), vous effectuez les deux opérations suivantes:

    a) Donner un avis bien en vue avec chaque copie du code objet que la bibliothèque y est utilisée et que la bibliothèque et son utilisation sont couvertes par cette licence.
    b) Accompagnez le code objet d'une copie de la GNU GPL et de ce document de licence.

Cela fait partie de la licence. Vous pouvez facilement créer un logiciel GPL basé sur le code LGPL.

Il y a quelques différences de version auxquelles vous devrez faire attention pour vous assurer que le code est sous licence de la bonne manière, sous la bonne version de la GPL.


Dans le cas où aucune information de licence n'est présentée, vous n'avez pas le droit de la prolonger. B n'aurait pas dû être distribué, mais ses contributions ne sont pas sous licence sous une licence open source. Il peut s'agir d'un projet interne qui a été publié ou d'un autre événement.

Il n'est pas présenté sous une licence compatible avec l'extension avec la GPL. Considérez la situation où une entreprise, utilisant un logiciel GPL en interne (acceptable - pas une violation), a par erreur rendu public son repo.

Dans ce cas, il est tout à fait possible que le projet C soit en violation de la violation du droit d'auteur lui-même (le matériel ajouté par B qui n'est pas sous licence GPL car il n'aurait pas dû être distribué en premier lieu).

On ne peut pas forcer une licence sur la source de quelqu'un d'autre. Il est soit conforme à la licence, soit en violation de celle-ci. Si cela est contraire à cela, alors comme indiqué dans la licence:

Vous ne pouvez pas propager ou modifier une œuvre couverte sauf dans les cas expressément prévus par la présente Licence. Toute tentative de le propager ou de le modifier autrement est nulle et mettra automatiquement fin à vos droits en vertu de cette licence (y compris les licences de brevet accordées en vertu du troisième paragraphe de l'article 11).

Une violation de la GPL ne signifie pas que le matériel est sous GPL, mais plutôt qu'il ne peut pas être distribué.


la source
3
Bonne réponse. Avez-vous envisagé de vous engager dans la proposition Open Source Stackexchange ?
Philipp
5
@Andrej La seule personne qui a le droit de déterminer comment B doit être licencié sont les personnes qui ont écrit B. Si A est sous GPL, ils ont la possibilité de "ne pas distribuer" ou "sous licence GPL". Le fait qu'il ait été distribué par erreur ne signifie pas qu'il est sous licence GPL.
6
Aussi, bonne prise sur "vous ne savez pas si B a obtenu une licence différente des auteurs de A;" il est possible que B ne viole pas du tout les droits d'auteur de A, car vous ne savez pas que B utilise A sous la GPL (les auteurs de A peuvent délivrer autant de licences de autant de types qu'ils le souhaitent, et peuvent par exemple l'offrir sous GPL et vendre une licence qui vous permet de l'utiliser dans du code propriétaire).
2015
1
Dans le cas où l'auteur de B reçoit A sous licence GPL, le fait de la distribution ne force pas GPL sur B. Mais existe-t-il des licences qui le feraient? Ainsi, une personne peut publier son logiciel et être sûr que n'importe qui aura accès à tous les futurs dérivés publiés? Et autorisez n'importe qui à forcer la licence sur les produits dérivés. (Je peux commencer une nouvelle question pour celle-ci :))
Andrej
2
Quatrièmement, un CLUF est beaucoup, beaucoup, beaucoup plus contestable juridiquement que la GPL. La GPL n'impose aucune restriction; toute restriction provient en fait de la loi sur le droit d'auteur (ce que fait la GPL est de renoncer à ces restrictions dans certains cas). C'est pourquoi la GPL fonctionne si bien - il n'y a pas de «violation de la GPL», il y a juste des violations de copyright . Avec un CLUF, vous devez amener les gens à accepter de se restreindre; cela signifie que vous êtes dans le domaine du droit des contrats, qui est très trouble et rempli de défenses possibles, comme si quelqu'un n'était pas d'accord (vous n'avez pas besoin d'accepter le droit d'auteur).
2015 à 9h01
4

Il y a des titulaires de droits d'auteur: il y a des droits d'auteur sur les œuvres créées par A, il y a des droits d'auteur sur les ajouts de B et il y a des droits d'auteur sur toutes les modifications que C a apportées. C doit vérifier s'il est autorisé à utiliser le logiciel sur lequel A et B détiennent les droits d'auteur.

A était sous licence GPL. Je suis tout à fait sûr que la GPL vous donne la permission d'utiliser le travail de A selon les conditions de la GPL, même si vous les avez reçues de B qui les a accordées une licence incorrecte. Il peut y avoir des problèmes pratiques: par exemple, vous devez être en mesure de fournir le code source. Si vous avez reçu le logiciel sans code source, vous n'avez aucun moyen de le publier sous les termes de la GPL.

B était autorisé sous une autre licence. B aurait dû être sous licence GPL, mais ne l'était pas. Si la licence de B vous donne plus de droits que la GPL, vous n'avez en fait aucun de ces droits pour le code de A - B ne peut pas vous donner de droits supplémentaires sur le code de A. Vous pouvez utiliser le code de A sous les termes de la GPL car A l'a autorisé, et le code supplémentaire de B sous la licence de B.

Si B publie son code sous une licence plus stricte que GPL, alors B commet très probablement une violation du droit d'auteur. Vous ne pouvez pas utiliser le code de B sous la licence GPL. C'est souvent confus: la GPL ne peut pas forcer B à faire quoi que ce soit. Cela ne donne à B que le choix: publier de cette façon, et c'est légalement correct, ou publier une autre manière, et c'est illégal. B a le droit de faire quelque chose d'illégal et d'en subir les conséquences (d'être poursuivi pour violation du droit d'auteur). Vous n'avez aucun droit sur le code de B que B ne vous a pas donné.

gnasher729
la source
3

Techniquement, il est possible d'étendre une bibliothèque GPL avec du code lui-même non couvert par la licence GPL. Le hic, c'est que lorsque vous distribuez le travail dérivé que vous avez créé, vous devez respecter toutes les exigences que la GPL vous impose.

Dans votre situation, cela signifie qu'il est possible d'avoir la bibliothèque A sous la GPL et le nouveau code dans la bibliothèque B sous la LGPL. L'œuvre combinée (bibliothèque B) est effectivement distribuée sous la licence GPL et peut être distribuée en tant que telle car la licence LGPL est compatible avec la licence GPL (vous pouvez utiliser le code de licence LGPL dans un projet sous licence GPL).
Dans cette situation, il est tout à fait correct d'avoir le nouveau code dans la bibliothèque C sous la GPL, avec le travail résultant sous la GPL également.

Bart van Ingen Schenau
la source
Cela ne fonctionne que parce que les parties LGPLed de B peuvent être utilisées avec la GPLed A sous la GPL. Si le nouveau code était sous une licence en conflit avec la GPL (par exemple, tous droits réservés), vous ne pouvez pas supposer que B dans son ensemble a été effectivement distribué sous la GPL.
2015
1
@cpast: Vous avez raison, j'ai oublié de mentionner que la LGPL est compatible avec la GPL. Si les licences étaient incompatibles, vous ne seriez pas autorisé à distribuer le résultat.
Bart van Ingen Schenau