Choisir une licence pour des projets open source


30

J'ai réalisé des projets open source et je prévois d'en faire plus à l'avenir. Jusqu'à présent, j'ai publié tout mon code sous GPL, mais j'ai lu quelques articles qui prétendent que la GPL est trop restrictive pour qu'un code soit utilisé dans un environnement d'entreprise. Ceci, soi-disant, réduit les contributions.

Voici ce que je voulais accomplir:

Pour des applications complètes :

  • aucune utilisation commerciale à l'exception de la vente de support pour l'application (c'est-à-dire que l'application ne peut pas être vendue, mais tout ce qui l'entoure peut)

Pour les bibliothèques (composants, plugins, ...):

  • peut être inclus dans des projets commerciaux sans modifications
  • toute modification de la bibliothèque / du composant doit être open source (contribution en retour) - le reste du projet, commercial ou non, n'est pas affecté

Pour les applications, la GPL semble toujours le choix logique. Pour les bibliothèques, ma compréhension primitive des licences me fait penser que LGPL est un bon match, mais je ne suis pas sûr. J'ai regardé la licence MIT, et cela semble trop permissif.

La plupart du temps, je veux que les gens utilisent mon code où ils le souhaitent, tant que les améliorations sont apportées en retour.

Cela m'amène à ma (mes) question (s): LGPL est-il un choix logique pour les bibliothèques open source, les composants, les plugins, etc.? Y a-t-il une meilleure alternative? La GPL est-elle un bon choix pour mes applications ou y a-t-il quelque chose de mieux?

Mise à jour:

Pour ceux qui sont intéressés par ma décision finale, j'ai décidé de publier mes bibliothèques sous un régime multi-licences, MPL, LGPL et GPL. Cela permet à pratiquement tout le monde d'utiliser mon code sans aucune obligation, à moins qu'il ne le modifie sous MPL, auquel cas il devrait être réintroduit.

Cela signifie que le code peut être utilisé à la fois par la FSF et les logiciels propriétaires, mais une «mauvaise» exploitation commerciale est empêchée (ou du moins j'aimerais le penser).


1
Voulez-vous dire aucune utilisation commerciale ou aucune distribution / revente commerciale ?
MIA

Probablement distribution / revente. Cela ne me dérangerait pas si les gens utilisaient mes affaires à des fins commerciales, mais je suppose que cela dépendrait du projet. Bien que je ne vois pas de moyen d'utiliser tout ce que j'ai écrit jusqu'à présent à des fins commerciales ..
dr Hannibal Lecter

4
Il est important de noter que (contrairement à certaines réponses) la FAQ Creative Commons indique explicitement que les licences CC ne doivent pas être utilisées pour les logiciels. (La dédicace du domaine public CC0 est approuvée pour une utilisation avec un logiciel mais ne conviendrait pas aux fins énoncées dans la question d'origine.) CC recommande plutôt de choisir une licence approuvée par la Free Software Foundation ou l'Open Source Initiative.
Peter Briggs

1
Je suppose que, à moins que vous n'ayez trouvé quelque chose de vraiment et véritablement unique et utile, les chances de "mauvaise commercialisation" sont si faibles qu'elles ne valent pas le temps passé à essayer de l'empêcher.
Bryan Oakley

1
Dans le cas où quelqu'un serait intéressé, il existe une proposition de site de questions / réponses concernant les licences open source sur area51: area51.stackexchange.com/proposals/58715/…
Kurt Pattyn

Réponses:


8

Il me semble que GPL et LGPL sont ce que vous voulez pour vos projets.


Vous diriez donc que LGPL est un bon choix pour mes besoins? Je ne suis pas avocat donc je vérifie juste :)
Dr Hannibal Lecter

1
Je ne suis pas avocat non plus, mais je pense que LGPL est exactement ce que vous voulez pour une bibliothèque, et GPL pour des applications complètes.
alternative

Il est légal de vendre des applications GPL. Il vous suffit (essentiellement) d'inclure le code source et de donner à vos clients les mêmes droits GPL que vous.
bdsl

8
  • aucune utilisation commerciale à l'exception de la vente de support pour l'application (c'est-à-dire que l'application ne peut pas être vendue, mais tout ce qui l'entoure peut)

Attention, la GPL n'interdit pas de vendre l'application, et l'interdire rendrait en effet votre licence non libre, comme l'a observé Huperniketes. La seule chose que la GPL garantit est que l'entreprise qui vend le logiciel devrait également fournir gratuitement la base de code. Mais ils ne doivent pas fournir le logiciel package que-est gratuit. C'est une grande différence, car le code source d'un logiciel n'est pas un produit facilement utilisable.


En fait, je suis d'accord, car le code source flottera quelque part et quelqu'un en bénéficiera. ;)
dr Hannibal Lecter

Je ne comprends vraiment pas. Je veux dire, si je peux obtenir les sources, je peux compiler, et rien ne m'interdit de l'utiliser, non?
Camilo Martin

@Camilo: qu'est - ce que vous n'obtenez pas?
Konrad Rudolph

Les sections 4 et 6b de la version 3 de la GPL couvrent ce que vous dites @KonradRudolph
Rudolf Olah

Ils n'ont pas à fournir le code source gratuitement s'ils l'incluent dans le package lorsqu'ils vendent l'application.
bdsl

5

Si vous voulez empêcher l'utilisation commerciale de votre logiciel, GPL ne le coupera pas. La GPL a tendance à être évitée par les entreprises commerciales dans les produits qu'elles vendent en raison de l'obligation de redistribuer la source modifiée, mais elles sont libres d'utiliser le logiciel GPL en interne. Cela ne veut pas dire que les entreprises ne sont pas configurées pour vendre des logiciels GPL ou construire du matériel autour des logiciels GPL (LinkSys, par exemple), mais la plupart des entreprises préfèrent ne pas partager leur produit avec leurs concurrents.

Je ne sais pas si la licence Creative Commons Attribution Non-Commercial No Derivatives est ce que vous voulez (la seule restriction que vous avez mentionnée est l' utilisation commerciale ), mais sinon, vous devrez peut-être préparer une licence pour vous par un avocat qui contient la langue octroyant les droits que vous souhaitez que les titulaires de licence aient.

De plus, une fois que vous commencez à inclure des restrictions telles que l'utilisation non commerciale et la non-modifiabilité , vous ne pouvez plus satisfaire aux critères d'une licence open source tels que définis par l' Open Source Initiative . Leur site répertorie également d' autres licences OSS approuvées . Peut-être qu'il y en a déjà un qui correspond à vos objectifs.

Et la définition adéquate de vos objectifs sera essentielle avant de sélectionner les droits et limitations que vous accordez aux utilisateurs de votre logiciel. La popularité est-elle plus importante que la modifiabilité ou la distribution ou l'utilisation ou…? Pensez à vos objectifs en publiant le code pour commencer, et dans quel esprit vous le faites ou les conditions dans lesquelles vous accordez l'accès peuvent avoir l'effet inverse.


Les entreprises utilisant un logiciel GPL en interne ne sont pas une utilisation commerciale du logiciel ...
alternative

3
@mathepic, les mots "entreprise" et "utilisation" ne vous semblent-ils pas similaires à "utilisation commerciale"? définitions.uslegal.com
c

@Huperniketes Non, ils ne le font pas. Une entreprise utilisant un logiciel (par exemple un navigateur de base de données) est exactement la même chose qu'une personne utilisant ce logiciel. Il n'y a aucune différence, tant que le projet n'est pas intégré au produit final de l'entreprise.
alternative

3
@mathepic, vous avez tort. Une entreprise est une préoccupation commerciale - exister à but lucratif. Toute activité dans laquelle il se livre est commerciale. Et la configuration d'un serveur Web exécutant Apache pour héberger des manuels d'utilisation est une utilisation commerciale d'Apache. Le mot clé, au sens juridique, est utilisation , pas distribution , ni vente ni revente .
Huperniketes du

2
@dr, ce n'est pas une violation car la licence Apache n'interdit pas l'utilisation commerciale. apache.org/foundation/licence-FAQ.html#WhatDoesItMEAN "Il vous permet de: télécharger et utiliser librement le logiciel Apache, en tout ou en partie, à des fins personnelles, internes à l'entreprise ou commerciales;"
Huperniketes

4

Si vous vous souciez de vous assurer que votre code reste gratuit, de récupérer des améliorations et d'être sûr que tout le monde peut l'utiliser, alors MPL est la bonne licence pour vous. Il est gratuit à utiliser dans n'importe quel produit, y compris les logiciels commerciaux, sans restrictions de liens étranges et mystérieuses comme la LGPL l'impose. Il nécessite que quiconque utilise votre code et le modifie libère les modifications sous MPL, mais il ne touche ni ne restreint aucun des autres codes du projet.


Je ne connais pas du tout MPL, mais cela semble très intéressant. Jusqu'à présent, je n'ai publié que du code PHP, donc les restrictions de liaison ne devraient pas être un problème, mais je prévois également de publier du code Mono, MPL pourrait s'avérer très utile.
dr Hannibal Lecter

4

Si vous avez écrit tout votre code (c'est-à-dire si vous êtes propriétaire de votre code), vous pouvez également le concéder sous licence double : publiez votre code dans GPLv3 par exemple et proposez de le vendre (avec une autre licence) à ceux qui souhaitent l'utiliser de manière moins restrictive.

(ceci est particulièrement pertinent pour une bibliothèque, car une bibliothèque éditée sous GPL ne peut être utilisée que sur un logiciel GPL).

Faites attention aux contributions externes ou aux correctifs que vous incorporez à votre code (puisque vous ne les possédez pas).


1

Que vous puissiez réellement postuler pour MPL ou uniquement GPL dépend d'une différence critique:

Les "droits ci-dessous" incluent le droit accordé aux destinataires de lier le "Code couvert" MPL à un code privé non MPL pour former une "Œuvre plus grande" (MPL 3.7 Œuvres plus grandes). GPL ne donne aucun droit à ses destinataires. Par conséquent, le destinataire ne peut pas modifier les conditions de licence pour appliquer la GPL au lieu de MPL.

Regardez ça .

Ce que cela signifie pour vous, c'est que si vous utilisez un composant qui est lui-même sous GPL, vous (probablement) ne pouvez pas libérer de code (qui l'utilise) sous MPL; MPL tentera à tort d'autoriser la redistribution du code GPL sous MPL, ce qui est incorrect. C'est très bien, si vos dépendances sont dans l'ordre de la licence MIT ou Apache.

En général, si vous ne faites pas mieux en choisissant MPL plutôt que GPL seul, sauf si vous utilisez déjà des trucs MPL. GPL s'assurera également que les contributions seront également publiées.

Il n'y a que le changement critique que MPL apporte, c'est la protection contre les atteintes aux brevets induites sans le savoir. Comme le dit la licence:

Il n'est pas acceptable pour quelqu'un de créer une modification pour laquelle il ou elle a un brevet, de rendre la modification disponible gratuitement comme l'exige la licence, puis de revenir et d'essayer de facturer à tous les droits de brevet.

MPL et GPL ne sont pas tout à fait compatibles.

Vous pouvez voir ici: MIT contre BSD contre double licence pour une discussion sur l'implication des doubles licences.


L'incompatibilité GPL aurait dû être résolue avec MPL v2.0. (Je suppose que ce post a été fait avant la sortie de la v2.0). Voir la déclaration du GNU sur MPLv2.0
mucaho

0

Personne ne semble en parler, mais vous pourriez envisager une licence Creative Commons. Ils ont une gamme de licences (ou une que vous adaptez à vos besoins, envisagée différemment).

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.