MIT vs BSD vs double licence

87

Ma compréhension est que:

  • Les projets sous licence MIT peuvent être utilisés / redistribués dans des projets sous licence BSD .
  • Les projets sous licence BSD peuvent être utilisés / redistribués dans des projets sous licence MIT.
  • Les licences MIT et BSD à 2 clauses sont essentiellement identiques .
  • BSD 3-clause = BSD 2-clause + la clause "pas d'endossement"
  • L'émission d'une double licence permet aux utilisateurs de choisir parmi ces licences, sans être lié aux deux.

Si tout ce qui précède est correct, quel est l’intérêt d’utiliser une double licence MIT / BSD? Même si le BSD fait référence à la version à 3 clauses, un utilisateur ne peut-il légalement choisir de se conformer uniquement à la licence MIT?

Il semble que si vous voulez vraiment que la clause "pas d’endossement" s’applique, vous devez l’accorder comme licence juste comme BSD (pas duelle). Si vous ne vous souciez pas de la clause "pas de caution", alors le MIT seul suffit et le MIT / BSD est redondant.

De même, étant donné que les licences MIT et BSD sont toutes deux " compatibles GPL " et peuvent être redistribuées dans des projets sous licence GPL , la double licence MIT / GPL semble également redondante.

Ryanve
la source
1
Pouvez-vous fournir un exemple de licence MIT + BSD? Il est généralement redondant de recourir à une double licence sous deux licences de même nature, mais j’ai déjà constaté une utilisation abusive de la double licence pour indiquer explicitement que le code pouvait être redistribué sous chacune des licences.
Yannis
@ Yannis Yea Je me demandais si les gens les utilisaient pour obtenir une double licence, juste pour être plus explicite pour ceux qui ne le savaient pas. Mais je pense que cela le rend plus confus pour eux.
ryanve
Lecture intéressante: tomhull.com/ocston/docs/mozgpl.html
Dipan Mehta
1
D'après mon expérience, les personnes utilisent principalement la double licence pour les licences incompatibles. Par exemple, MPL + (L) GPL ou une licence payante sans copyleft avec (A) GPL.
CodesInChaos

Réponses:

60

Ma compréhension est que:

  1. Les projets sous licence MIT peuvent être utilisés / redistribués dans des projets sous licence BSD.
    VRAI (mais à moins de modifications, les utilisateurs peuvent aussi l’obtenir des sources originales.

  2. Les projets sous licence BSD peuvent être utilisés / redistribués dans des projets sous licence MIT.
    La licence FALSE MIT permet la distribution sans crédits de contribution. BSD non.

  3. Les licences MIT et BSD à 2 clauses sont essentiellement identiques.
    FAUX Voir ci-dessus.

  4. BSD 3-clause = BSD 2-clause + la clause "no endossement"
    TRUE

  5. La délivrance d'une double licence permet aux utilisateurs de choisir parmi ces licences, sans être lié aux deux.
    VRAI (je pense que oui!)

De même, les licences MIT et BSD étant toutes deux "compatibles GPL" et pouvant être redistribuées dans des projets sous licence GPL, la double licence MIT / GPL semble également redondante.

NO . Voici une différence majeure. La licence MIT et la licence Apache exigent uniquement que vous accordiez du crédit aux détenteurs du copyright original. Si vous le souhaitez, vous pouvez redistribuer la source. mais si vous le souhaitez, vous pouvez conserver votre nouveau produit dérivé sans code d'ouverture. Il est donc possible d'utiliser du code développé sous MIT et Apache - sous licence commerciale.

Si vous utilisez un code avec une licence basée sur la GPL et que vous le modifiez, vous devez également distribuer votre code modifié sous GPL. En d'autres termes, une fois qu'une base de code GPL est utilisée dans un projet et si vous souhaitez la publier en tant que produit, elle doit être publiée avec le code source et sous GPL. Cela ne peut jamais être une licence commerciale ou une source fermée, ni une autre licence moins stricte que GPL.

Il est possible par exemple de prendre un code de licence MIT, Apache ou BSD, modifié et distribué sous GPL. Une fois qu'une base de code est distribuée sous forme de GPL, ses versions dérivées ultérieures ne peuvent plus être distribuées sous licence MIT, Apache ou BSD, mais doivent être uniquement sous licence GPL.

Edit:
Exemple de cas de double licence: supposons que Nice Office soit publié sous double licence - MIT et GPL. Il y a deux possibilités. Certaines personnes peuvent créer NicePro Office, qui peut être commercial et vendre. Alors qu'une autre communauté open source crée un fork NiceOpen Office. Dans ce cas, il peut appliquer la distribution GPL (de Nice Office ainsi que la version de NiceOpen Office d'origine). Par conséquent, si vous commencez par NiceOpen Office, vous devez vous conformer à la licence GPL uniquement et non à la licence MIT.

Le fait est qu'en cas de double licence, la première personne qui obtient une licence a le choix. Il peut choisir l'une ou l'autre solution. Toutefois, la deuxième personne doit adhérer au choix de la première personne. Il / Elle ne peut pas outrepasser les droits originaux de l'une ou l'autre génération et ne peut en aucun cas réduire l'obligation de licence applicable.

EDIT 2 Ajouter une lecture intéressante - Les licences GPL et MPL ont de graves conflits. Lis ça. http://www.tomhull.com/ocston/docs/mozgpl.html

Dipan Mehta
la source
4
@Dipan Si un projet est sous double licence MIT / GPL, il peut être utilisé dans un projet propriétaire car l'utilisateur peut choisir de ne suivre que le MIT. Si un projet ne contient que la licence MIT, il peut être redistribué sous d'autres licences, notamment la licence GPL. C'est ce que je voulais dire par redondance.
ryanve
11
@DipanMehta Qu'entendez-vous par "crédits de contribution" dans # 2? On dirait que vous faites référence à la licence BSD à 4 clauses, qui n’est pas vérifiée par la FSF comme le sont les clauses à 3 clauses et à 2 clauses. Je parle des articles à 3 articles et à 2 articles, auquel cas je suis à peu près sûr que les cinq déclarations sont vraies .
ryanve
4
Vous pouvez utiliser un code sous licence BSD avec un code sous licence MIT; Il suffit de mentionner dans les documents du projet que "BazApp utilise libfoobar, qui est distribué sous une licence BSD" ou quelque chose du genre. Les licences BSD et MIT sont appliquées à un niveau par fichier plutôt que par projet.
Mipadi
10
@Dipan_Mehta Comme ryanve vous l'a déjà dit, vous parlez de la licence BSD d'origine à 4 clauses, alors que l'OP parle des licences BSD révisées à 3 et 2 clauses. La licence BSD à 2 clauses est en réalité équivalente à celle du MIT. Même la page OSI le dit.
17
Le point n ° 2 (le code BSD ne peut pas être inclus dans le code MIT) est contraire à toutes les informations que j'ai lues au sujet des BSD à 3 et 2 clauses. Le point 2 serait vrai à propos de la BSD à 4 clauses (désormais ancienne et oubliée), mais le PO a clairement indiqué que cette question ne concernait pas la BSD à 4 clauses. Il semble assez préjudiciable de disposer d’une information aussi trompeuse dans une réponse par ailleurs très bonne et crédible.
apsillers
4

Vos cinq points sont tous vrais .

L’autre réponse semble supposer que vous incluez la licence BSD à 4 clauses plus ancienne et rarement utilisée .

Si vous interprétez les "licences BSD" comme faisant référence aux variantes de licence BSD à 3 ou 2 clauses les plus communément utilisées, les cinq affirmations de la question sont vraies.

Si tout ce qui précède est correct, quel est l’intérêt d’utiliser une double licence MIT / BSD?

Techniquement, cela ne devrait pas être nécessaire. Les deux peuvent être utilisés dans les mêmes situations.

Même si le BSD fait référence à la version à 3 clauses, un utilisateur ne peut-il pas légalement choisir de se conformer uniquement à la licence MIT?

Cela semble correct.

Il semble que si vous voulez vraiment que la clause "pas d’endossement" s’applique, vous devez l’accorder comme licence juste comme BSD (pas duelle). Si vous ne vous souciez pas de la clause "pas de caution", alors le MIT seul suffit et le MIT / BSD est redondant.

C'est vrai. Si vous vous souciez de cette clause particulière, il serait insensé d'autoriser également le même travail sous des licences sans cette clause.

De même, les licences MIT et BSD étant toutes deux "compatibles GPL" et pouvant être redistribuées dans des projets sous licence GPL, la double licence MIT / GPL semble également redondante.

Oui.

Cependant, il arrive parfois qu'un logiciel prétende posséder une double licence, MIT et GPL (ou une licence permissive et GPL), mais en réalité, il fait référence à deux versions différentes du logiciel.

Par exemple, certains logiciels peuvent être compilés et distribués avec une licence permissive telle que BSD ou MIT, mais si vous omettez certaines bibliothèques et donc certaines fonctionnalités, ils peuvent être distribués sous forme de licence GPL. Les bibliothèques omises seront généralement des bibliothèques tierces non compatibles avec la GPL, mais qui pourraient autrement être distribuées.

thomasrutter
la source