Comment fonctionnent les licences open source et comment les ajouter à vos projets

Récemment, il y a eu des nouvelles intéressantes pour les développeurs du monde entier. Facebook a changé la licence de plusieurs bibliothèques qu'ils développent. Ils sont passés des brevets BSD-3 + à un MIT .

Cela semble bien, mais qu'est-ce que cela signifie? Quelles sont les implications des différentes licences open source?

Cet article vous donnera une compréhension rapide des licences populaires. Il vous apprendra également comment les appliquer à vos projets open source sur GitHub.

L'Autorité

Les licences open source les plus populaires ont un aspect commun important. L'Open Source Initiative (OSI) les a approuvés.

OSI a été créée en 1998 dans le but de promouvoir les logiciels open source. Il a créé l'Open Source Definition (OSD) pour définir ce que signifie un logiciel open source.

Voici comment ils se décrivent:

L'Open Source Initiative (OSI) est une société à but non lucratif avec une portée mondiale formée pour éduquer et défendre les avantages de l'open source et pour construire des ponts entre les différentes composantes de la communauté open source.

Les licences

La plupart des licences open source incluent les déclarations suivantes:

  1. Le logiciel peut être modifié, utilisé commercialement et distribué.
  2. Le logiciel peut être modifié et utilisé en privé.
  3. Une licence et un avis de droit d'auteur doivent être inclus dans le logiciel.
  4. Les auteurs de logiciels n'offrent aucune garantie avec le logiciel et ne sont responsables de rien.

Nous passerons par les licences les plus populaires, dans l'ordre de la plus restrictive à la plus permissive (du point de vue de l'utilisateur).

Licence publique générale GNU, version 3 (GPLv3)

La GPLv3 est l'une des licences les plus restrictives. Il offre une haute protection à l'auteur du logiciel.

  • Le code source doit être rendu public chaque fois qu'une distribution du logiciel est effectuée.
  • Les modifications du logiciel doivent être publiées sous la même licence .
  • Les modifications apportées au code source doivent être documentées .
  • Si du matériel breveté a été utilisé dans la création du logiciel, il accorde le droit aux utilisateurs de l'utiliser. Si l'utilisateur poursuit quiconque pour l'utilisation du matériel breveté, il perd le droit d'utiliser le logiciel.

La GPLv2 est également très populaire. La principale différence par rapport à la GPLv3 est la clause sur les brevets.

Cette clause a été ajoutée dans la version 3 pour empêcher les entreprises de facturer aux utilisateurs l'utilisation de leurs brevets.

Les projets populaires utilisant la GPLv3 sont Bash et GIMP . Linux utilise GPLv2.

Ezequiel Foncubierta a souligné quelque chose d'important pour les licences GPL:

La licence de votre code source doit être compatible avec la licence du code open source vers lequel vous créez un lien. Par exemple, si votre code est propriétaire, vous ne serez pas autorisé à utiliser une bibliothèque sous licence GPL. C'est là que les gens ont tendance à faire plus d'erreurs.

Licence Apache 2.0

Apache License 2.0 offre plus de flexibilité aux utilisateurs.

  • Le code source n'a pas besoin d'être public lors de la distribution du logiciel.
  • Les modifications apportées au logiciel peuvent être publiées sous n'importe quelle licence .
  • Les modifications apportées au code source doivent être documentées.
  • Il offre la même protection contre l'utilisation des brevets que la GPLv3.
  • Il interdit explicitement l'utilisation des noms de marque figurant dans le projet.

Les projets populaires utilisant la licence Apache 2.0 sont Android , Apache et Swift .

Distribution de logiciels de Berkeley (BSD)

BSD a deux versions principales: 2 clauses et 3 clauses. Ils offrent tous deux plus de flexibilité aux utilisateurs que la licence Apache 2.0.

  • Le code source n'a pas besoin d'être public lors de la distribution du logiciel.
  • Les modifications apportées au logiciel peuvent être publiées sous n'importe quelle licence .
  • Les modifications apportées au code source peuvent ne pas être documentées.
  • Il n'offre aucune position explicite sur l'utilisation des brevets.
  • La licence et la notice de copyright doivent être incluses dans la documentation de la version compilée du code source (et non uniquement dans le code source).
  • La clause BSD 3 stipule que les noms de l'auteur et des contributeurs ne peuvent pas être utilisés pour promouvoir des produits dérivés du logiciel sans autorisation.

Les projets populaires utilisant la licence BSD sont Go (3 clauses), Pure.css (3 clauses) et Sentry (3 clauses).

Licence MIT

Le MIT est l'une des licences les plus permissives. C'est aussi le plus populaire. Il offre une protection très faible à l'auteur du logiciel.

  • Le code source n'a pas besoin d'être public lors de la distribution du logiciel.
  • Les modifications apportées au logiciel peuvent être publiées sous n'importe quelle licence .
  • Les modifications apportées au code source peuvent ne pas être documentées.
  • Il n'offre aucune position explicite sur l'utilisation des brevets.

Les projets populaires utilisant MIT sont Angular.js , jQuery , Rails , Bootstrap et bien d'autres.

React.js de Facebook avait une licence de brevets BSD-3 + jusqu'au 25 septembre. Il a combiné la licence BSD-3 avec une clause supplémentaire sur l'utilisation des brevets.

En un mot, si vous poursuivez Facebook ou l'une de ses filiales, vous perdez le droit d'utiliser React (ou tout autre logiciel sous la même licence).

React est maintenant sous licence MIT. Vous êtes maintenant en mesure de poursuivre Facebook et d'utiliser toujours React. Quel soulagement!

Appliquer une licence à vos projets open source

La licence de vos projets est facile. Vous devez ajouter un LICENSE, LICENSE.txtou LICENSE.mddans le répertoire racine de votre référentiel.

GitHub rend les choses encore plus faciles:

  1. Ouvrez votre référentiel GitHub dans un navigateur.
  2. Dans le répertoire racine, cliquez sur Create new file.
  3. Nommez le fichier «LICENCE».
  4. Cliquez sur Choose a license template.
  5. Choisissez l'une des licences (toutes celles mentionnées dans cet article sont là).
  6. Une fois choisi, cliquez sur Review and submit.
  7. Commit le fichier.

En résumé…

  • L'une des licences les plus restrictives est la GPL .
  • L'une des licences les plus permissives est le MIT .
  • Les autres licences populaires sont Apache License 2.0 et BSD .
  • Pour appliquer une licence à votre projet GitHub, vous devez créer un LICENSEfichier à l'aide des modèles de licence de GitHub.

Découvrez mon explication sur la façon dont j'ai utilisé Python pour trouver des personnes intéressantes à suivre sur Medium!

Pour plus de mises à jour, suivez-moi sur Twitter.