Comment gérer, en pratique, les fichiers de licence lors de la combinaison de code sous licence GPL et BSD?

10

J'écris du code qui utilise une bibliothèque avec une licence GPL (pas LGPL) et une avec la licence BSD à 3 clauses . Puisque je crée un lien vers une bibliothèque sous licence GPL, mon code devra également être GPL. Comment dois-je, dans la pratique, gérer le LICENSE.txt original de la bibliothèque BSD?

(A) Puis-je distribuer un projet afin que le code source principal soit sous licence GPL, et que certains sous-répertoires soient sous licence BSD?

(B) Si je devais non seulement créer des liens vers des bibliothèques, mais utiliser et combiner le code BSD et GPL de manière plus impliquée, que faire alors avec LICENSE.txt?

Le texte BSD à 3 clauses dit: "Les redistributions du code source doivent conserver l'avis de copyright ci-dessus, cette liste de conditions et la clause de non-responsabilité suivante." donc apparemment, je devrais conserver l'avis de copyright, et cette liste de conditions, quelque part. Mais je devrai également placer le fichier txt de la licence GPL quelque part.

De plus, apparemment, je n'ai pas besoin de conserver la "redistribution et l'utilisation sous forme source et binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient remplies:" une partie du texte de la licence BSD, car elle me dit seulement de conserver les autres pièces.

Alors, comment et dans quels fichiers texte, dois-je en pratique organiser le texte de la licence GPL et les parties de la licence BSD et des droits d'auteur que je conserve?

EDIT: Donc, dans le cas B, je prendrais du code sous licence BSD à 3 clauses et le redistribuerais sous GPL, ce qui est autorisé, car la licence BSD à 3 clauses est (unidirectionnelle) compatible avec GPL . Je demande simplement comment gérer les textes de licence et les fichiers texte dans la pratique.

Sampo Smolander
la source
C'est une mauvaise idée. Une simple recherche sur le Web vous montrera pourquoi. Mais l'ensemble du produit devient GPL. Il y a déjà eu des problèmes avec cela.
Andrew T Finnell
2
@Andrew Finnell: Pourquoi est-ce une mauvaise idée? L'ensemble du produit est GPL, car un composant l'est, mais qu'est-ce qui ne va pas? La bibliothèque sous licence BSD est toujours sous licence BSD. Les gens n'utilisent pas de licences BSD à moins qu'ils ne souhaitent que leurs produits soient utilisables par des personnes qui souhaitent utiliser des licences plus restrictives.
David Thornley

Réponses:

1

Par souci de simplicité, il est probablement préférable de publier le tout sous GPL. La licence BSD à 3 clauses n'a aucune forme de copie, vous êtes donc bien dans vos droits de la renommer, tant que vous maintenez sa notification.

Vous vous retrouverez avec deux types de fichiers:

  • Fichiers BSD d'origine: doivent avoir les deux en-têtes, l'ordre n'est pas important à ma connaissance, juste qu'ils sont là
  • Vos fichiers et fichiers GPL d'origine: besoin d'avoir l'en-tête GPL

Et bien sûr, pour toute version binaire, vous devrez inclure un lien vers la source et les deux en-têtes sous une forme ou une autre. Je recommanderais la GPL standard, suivie de "Certaines parties de ce programme ont été initialement publiées sous la licence suivante" ou quelque chose comme ça, vous pouvez probablement trouver des exemples de ce qui se passe dans la nature si vous le recherchez.

Notez que je ne suis pas avocat et que je ne me spécialise ni dans les licences open source, ni dans les licences en général. Je transmets simplement à quoi ressemblerait mon interprétation de la licence donnée.

Guvante
la source
1

Ok, la lecture de la section 7 de la GPLv3 autorise "des autorisations supplémentaires [qui] s'appliquent uniquement à une partie du programme" [1]. Donc, garder certains fichiers ou répertoires sous la licence BSD semble correct, car je suppose que "faites ce que vous voulez" de la licence BSD est une "autorisation supplémentaire".

De plus, la section 7 permet de "compléter les termes de cette licence par des termes:" (une liste de 6 points des types de termes autorisés suit), et toutes les 3 clauses (+ l'avertissement) de la licence BSD sont couvertes, donc dans le cas où de mélanger le code BSD et GPL dans un seul fichier, peut-être aurais-je juste besoin de mettre un ADDITIONAL_TERMS.txt quelque part, contenant les 3 clauses + clause de non-responsabilité de la licence BSD.

(Pour être plus précis, tout le temps que j'ai parlé de la licence BSD, je parlais de la licence à 3 clauses AKA "New BSD License" AKA "Modified BSD License", à laquelle j'ai lié dans ma question.)

[1] Tant qu'un destinataire du programme serait autorisé à supprimer les autorisations supplémentaires s'il redistribue davantage. Et la licence BSD le permet.

Sampo Smolander
la source
-1

Cela n'est tout simplement pas possible selon plusieurs interprétations des termes du contrat de licence.

gnu.org dit pour la version 2:

Parce qu'il impose une exigence spécifique qui n'est pas dans la GPL; à savoir l'exigence relative aux publicités du programme. La GPL déclare:

Vous ne pouvez pas imposer de restrictions supplémentaires à l'exercice par les destinataires des droits accordés aux présentes.

La clause de publicité prévoit une telle restriction supplémentaire et est donc incompatible avec la GPL.

La licence BSD révisée ne comporte pas de clause publicitaire, ce qui élimine le problème.

et pour GPL v3 :

Pourquoi la licence BSD d'origine est-elle incompatible avec la GPL? (#OrigBSD)

Parce qu'il impose une exigence spécifique qui n'est pas dans la GPL; à savoir l'exigence relative aux publicités du programme. La section 6 de la GPLv2 stipule:

Vous ne pouvez pas imposer de restrictions supplémentaires à l'exercice par les destinataires des droits accordés aux présentes.

La GPLv3 dit quelque chose de similaire dans la section 10. La clause publicitaire fournit une telle restriction supplémentaire, et est donc incompatible avec la GPL.

La licence BSD révisée ne comporte pas de clause publicitaire, ce qui élimine le problème.

Bien entendu, d'autres avocats / juges peuvent avoir des opinions différentes.

johannes
la source
1
Êtes-vous sûr de ne pas parler de la licence BSD à 4 clauses? "Ni le nom de <l'organisation> ni les noms de ses contributeurs ne peuvent être utilisés pour approuver ou promouvoir des produits dérivés de ce logiciel sans autorisation écrite préalable spécifique." ne fait pas référence à la publicité sous quelque forme que ce soit et est en fait liée à la marque de commerce de l'organisation, et non au droit d'auteur du code source.
Guvante
1
En effet! J'étais confus (encore) sur les différentes révisions!
johannes