Licence MIT vs GPL [fermé]

122

La licence MIT est compatible GPL. La licence GPL est-elle compatible MIT? c'est-à-dire que je peux inclure du code sous licence MIT dans un produit sous licence GPL, mais puis-je inclure du code sous licence GPL dans un produit sous licence MIT?

Il me semble que la principale différence entre la licence MIT et la GPL est que le MIT ne nécessite pas que les modifications soient open source contrairement à la GPL. Est-ce exact? La GPL est-elle plus restrictive que la licence MIT?

fruzer
la source
1
fr.wikipedia.org/wiki/MIT_License La licence est également compatible GPL, ce qui signifie que ...
Michael Petrotta

Réponses:

76

Il me semble que la principale différence entre la licence MIT et la GPL est que le MIT ne nécessite pas que les modifications soient open source contrairement à la GPL.

Vrai - en général. Vous n'avez pas besoin d'ouvrir vos modifications si vous utilisez la GPL. Vous pouvez le modifier et l'utiliser à vos propres fins tant que vous ne le distribuez pas. MAIS ... si vous le distribuez, alors tout votre projet qui utilise le code GPL devient automatiquement GPL. Ce qui signifie qu'il doit être open-source et que le destinataire obtient tous les mêmes droits que vous - c'est-à-dire qu'il peut se retourner et le distribuer, le modifier, le vendre, etc. Et cela inclurait votre code propriétaire qui ne serait alors pas plus être propriétaire - il devient open source.

La différence avec le MIT est que même si vous distribuez réellement votre code propriétaire qui utilise le code sous licence MIT, vous n'avez pas à rendre le code open source. Vous pouvez le distribuer en tant qu'application fermée où le code est chiffré ou est un binaire. Y compris le code sous licence MIT peut être crypté, à condition qu'il porte l'avis de licence MIT.

la licence GPL est-elle plus restrictive que la licence MIT?

Oui, tout à fait.

Ravi Jayagopal
la source
16
Puis-je simplement noter que la GPL ne fait pas de logiciel "open-source". Un logiciel sous GPL devient GRATUIT (comme pour protéger la liberté de son utilisateur). Le logiciel libre est un mouvement plus ancien et plus significatif que l'open-stuff. Voici un article sur les différences: gnu.org/philosophy/open-source-misses-the-point.html . Merci
Jorge Orpinel
11
Pour les mêmes raisons, on pourrait soutenir que le MIT est plus restrictif, car il ne protège pas toutes les libertés de l'utilisateur et peut conduire à une privatisation du logiciel (= restriction et perte de son contrôle par l'utilisateur). Merci encore
Jorge Orpinel
3
@tcurdt Pourquoi n'est-ce pas le "bon endroit" pour parler de liberté? Pourquoi l'autocensure? Et non, ce n'est malheureusement pas ce que signifie «gratuit». Même «ouvert» ne signifie pas cela. Juste pour clarifier que ni les licences MIT ni GPL ne vous permettent de faire "quoi que ce soit avec". Seul le code sans licence peut entrer dans cette catégorie. Cheers
Jorge Orpinel
3
Encore une fois, c'est ce que stackoverflow est censé être pour stackoverflow.com/help/on-topic . Quelqu'un qui pense que c'est hors sujet ne le fait pas. Quoi qu'il en soit, j'ai la liberté d'expression et c'est une sorte d'espace public alors ... Ouais. Vous ne pouvez tout simplement pas vous tromper. En réalité, j'essaie de vous aider ainsi que les autres lecteurs si je le peux. En tout cas, bonne chance
Jorge Orpinel
8
@JorgeOrpinel "Seul le code sans licence peut entrer dans cette catégorie." C'est très très faux, le code sans licence est PROPRIÉTAIRE / "tous droits réservés". Si vous redistribuez du code que d'autres personnes ont créé sans licence, vous risquez beaucoup de problèmes juridiques. Vous dites que vous essayez de «vous aider, vous et les autres lecteurs», mais faire poursuivre les lecteurs n'est pas vraiment très utile. Juste FYI.
point
45

Puis-je inclure un code sous licence GPL dans un produit sous licence MIT?

Vous pouvez. La GPL est un logiciel libre au même titre que le MIT, les deux licences ne vous empêchent pas de rassembler le code alors que "inclure" est toujours bidirectionnel.

Dans le domaine du droit d'auteur pour une œuvre combinée (c'est-à-dire que deux œuvres ou plus forment ensemble une œuvre), cela ne fait pas beaucoup de différence si une œuvre est "plus grande" que l'autre ou non.

Donc, si vous incluez un code sous licence GPL dans un produit sous licence MIT, vous incluerez en même temps un produit sous licence MIT dans un code sous licence GPL.

Dans un deuxième avis, l' OSI a énuméré les critères suivants (plus en détail) pour les deux licences (MIT et GPL):

  1. Redistribution gratuite
  2. Code source
  3. Œuvres dérivées
  4. Intégrité du code source de l'auteur
  5. Aucune discrimination contre des personnes ou des groupes
  6. Aucune discrimination contre les domaines d’effort
  7. Distribution de licence
  8. La licence ne doit pas être spécifique à un produit
  9. La licence ne doit pas restreindre les autres logiciels
  10. La licence doit être neutre sur le plan technologique

Les deux permettent la création d'œuvres combinées, ce que vous avez demandé.

Si la combinaison des deux œuvres est considérée comme un dérivé, cela n'est pas non plus limité par les deux licences.

Et les deux licences ne limitent pas la distribution du logiciel.

Il me semble que la principale différence entre la licence MIT et la GPL est que le MIT ne nécessite pas que les modifications soient open source contrairement à la GPL.

La GPL ne vous oblige pas à publier vos modifications uniquement parce que vous les avez faites. Ce n'est pas précis.

Vous pouvez mélanger cela avec la distribution de logiciels sous GPL, ce qui n'est pas ce que vous avez demandé directement.

Est-ce exact - la GPL est-elle plus restrictive que la licence MIT?

Voici comment je le comprends:

Pour ce qui est de la distribution, vous devez mettre l'ensemble du paquet sous GPL. Le code MIT à l'intérieur du package sera toujours disponible sous MIT alors que la GPL s'applique au package dans son ensemble si elle n'est pas limitée par des droits plus élevés.

«Restrictif» ou «plus restrictif» / «moins restrictif» dépend beaucoup du point de vue. Pour un utilisateur de logiciel, le MIT peut aboutir à un logiciel plus restreint que celui disponible sous GPL, même certains appellent la GPL plus restrictive de nos jours. Cet utilisateur en particulier appellera le MIT plus restrictif. C'est juste subjectif de le dire et différentes personnes vous donneront des réponses différentes à cela.

Comme il est juste subjectif de parler des restrictions de différentes licences, vous devriez plutôt réfléchir à ce que vous aimeriez réaliser:

  • Si vous souhaitez restreindre l'utilisation de vos modifications, le MIT peut être plus restrictif que la GPL pour la distribution et c'est peut-être ce que vous recherchez.
  • Si vous souhaitez vous assurer que la liberté de votre logiciel ne soit pas trop restreinte par les utilisateurs auxquels vous le distribuez, vous voudrez peut-être publier sous GPL au lieu de MIT.

Tant que vous êtes l'auteur, c'est vous qui pouvez décider.

Ainsi, la personne la plus restrictive qui soit est l'auteur, quelle que soit la licence choisie;)

hakre
la source
1
"Le code MIT à l'intérieur du paquet sera toujours disponible sous MIT" Je n'en suis pas complètement sûr. un projet GPL + MIT doit se transformer en un projet open source, y compris la partie MIT. Par ailleurs, LGPL est moins intrusif pour l'ensemble du projet.
magallanes le
13
Bien que vous clarifiiez plus tard dans votre réponse, il est très trompeur de commencer par dire que "vous pouvez" inclure du code sous licence GPL dans un projet sous licence MIT. Un projet qui était à l'origine sous licence MIT ne peut plus être distribué dans son ensemble sous la licence MIT une fois qu'il contient du code qui n'est disponible que sous GPL.
antinome
3
Il est également trompeur de prétendre que le caractère restrictif est subjectif. C'est une question raisonnable et non subjective de se demander "quelles actions puis-je effectuer légalement avec ces fichiers que j'ai obtenus?" Sous GPL, cet ensemble d'actions est en fait un sous-ensemble approprié de ce que ces actions auraient été sous le MIT.
antinome
1
@hakra: L'inclusion de code sous licence GPL dans un projet sous licence MIT n'est pas possible car l'ensemble qui en résulte n'est plus sous licence MIT, même si vous ne le distribuez pas. (Si c'était le cas , les termes de la licence du MIT ne vous permettent de le distribuer!)
antinome
9
tl; dr: une application sous licence MIT peut inclure du code GPL mais l'application qui en résulte n'est pas sous licence MIT.
antinome du
16

Vous avez raison de dire que la GPL est plus restrictive que la licence MIT.

Vous ne pouvez pas inclure de code GPL dans un produit sous licence MIT. Si vous distribuez un travail combiné qui combine du code GPL et MIT (sauf dans certaines situations particulières, par exemple «simple agrégation»), cette distribution doit être conforme à la GPL.

Vous pouvez inclure un code sous licence MIT dans un produit GPL. L'ensemble du travail combiné doit être distribué d'une manière conforme à la GPL. Si vous avez apporté des modifications aux parties MIT du code, vous devrez publier la source de ces modifications si vous distribuez une application contenant du code GPL et MIT.

Si vous êtes le titulaire des droits d'auteur du code GPL, vous pouvez bien sûr choisir de publier ce code sous la licence MIT à la place - dans ce cas, c'est votre code et vous pouvez le publier sous autant de licences que vous le souhaitez.

JosephH
la source
3
sauf si le projet est sous une double licence, par exemple jquery.
buggedcom
7
@buggedcom - Vous pouvez obtenir une double licence pour les pièces qui étaient sous la licence MIT, mais vous ne pouvez pas obtenir une double licence pour une bibliothèque combinée MIT / GPL - elle doit être sous licence uniquement sous GPL. (Vous ne pouvez pas prendre des pièces sous licence GPL et les renouveler sous licence MIT, car cela est contraire aux termes de la GPL). Dans le cas de jQuery, les titulaires des droits d'auteur du code l'ont publié sous la double licence, ce n'est donc pas un problème, mais s'ils "empruntaient" du code GPL ailleurs, ils ne seraient plus en mesure d'accorder une licence MIT pour l'œuvre combinée. .
Mark H
AFAIK ce n'est pas tout à fait vrai. Selon la FSF, la GPL est compatible avec la licence MIT [1] Malheureusement, cela ne change rien au fait que le projet lui-même n'est plus entièrement couvert par la licence MIT ... ce à quoi les gens s'attendent généralement. Vous ne pourrez plus utiliser le projet dans son ensemble dans un contexte commercial sans publier le code. Pour éviter cette confusion, il est préférable de ne pas inclure de code GPL dans un projet sous licence MIT. Ce que vous ne pouvez pas, c'est faux cependant. [1] gnu.org/licenses/license-list.html#SoftwareLicenses
tcurdt
... mais je suppose que cela dépend de ce que vous définissez comme "produit"
tcurdt
2
Un produit sous licence MIT (peut-être «application» serait un meilleur mot) ne peut pas inclure de code GPL. Vous pouvez ajouter du code GPL dans un produit MIT, mais l'application qui en résulte ne peut être distribuée que sous la licence GPL. Je n'ai jamais vu quelqu'un décrire une application qui ne peut être distribuée que sous les termes de la GPL comme un «produit sous licence MIT». Si les licences n'étaient pas «compatibles», vous ne pourriez pas du tout produire une œuvre combinée - le fait qu'elles soient compatibles signifie que vous pouvez produire une œuvre combinée que vous pouvez distribuer et qui est sous licence GPL.
JosephH
5

IANAL mais comme je le vois ...

Bien que vous puissiez combiner le code GPL et MIT, la GPL est entachée. Ce qui signifie que le package dans son ensemble bénéficie des limitations de la GPL. Comme cela est plus restrictif, vous ne pouvez plus l'utiliser dans des logiciels commerciaux (ou plutôt fermés). Cela signifie également que si vous avez un projet MIT / BSD / ASL, vous ne voudrez pas ajouter de dépendances au code GPL.

L'ajout d'une dépendance GPL ne change pas la licence de votre code, mais cela limitera ce que les gens peuvent faire avec l'artefact de votre projet. C'est aussi pourquoi l'ASF n'autorise pas les dépendances au code GPL pour leurs projets.

http://www.apache.org/licenses/GPL-compatibility.html

tcurdt
la source
1
+1 En fait, Microsoft identifie parfaitement ce problème, la GPL est virale car elle transforme chaque projet en open source.
magallanes
10
Ce n'est pas un problème . La GPL est virale de par sa conception. Il est destiné à être utilisé par des personnes qui souhaitent rendre leur code gratuit pour que d'autres personnes l'utilisent comme elles le souhaitent, mais qui exigent également que les autres personnes qui publient des copies de ce logiciel ou d'un dérivé respectent les utilisateurs de la même manière. La GPL concerne les utilisateurs . Il ne s'agit pas pour les entreprises de maximiser leurs profits grâce à des monopoles imposés par l'État, de sorte que le fait qu'il soit récursif est en fait sa beauté et sa force, pas un «problème» que Microsoft peut «identifier parfaitement». Il ne faut pas de perspicacité particulière pour reconnaître que la GPL est virale ~ Wikipédia suffit.
Carl Smith