Bon : le moment est venu de choisir la licence que vous allez appliquer à votre programme. Comme je vous l'ai expliqué, selon le choix que vous faites, vous imposerez des conditions différentes à l'utilisation du logiciel.
Globalement, il y a deux grandes familles de licences : les licences avec
copyleft et les licences sans
copyleft.
Copyleft ? C'est quoi ce mot barbare ?
Pour simplifier, nous dirons que le copyleft est une clause (un article de contrat ou de licence) qui oblige les gens qui modifient votre logiciel à
distribuer leurs versions modifiées sous la même licence que l'original (sauf s'ils ne redistribuent pas leurs versions modifiées, ils peuvent aussi, hein

). Cela est valable pour les gens qui utilisent des bouts de votre code dans leurs programmes (c'est considéré comme une version modifiée de votre logiciel,
même pour une seule fonction).
Donc, certains textes obligeront les développeurs qui utilisent votre code à redistribuer leurs versions sous même licence, alors que d'autres autoriseront la redistribution sous licence différente (moyennant quelques conditions, comme citer l'auteur original).
Je vais vous présenter trois licences. Il en existe, bien sûr, beaucoup plus. Pourquoi ces trois-là alors ? Eh bien, ce sont les textes les plus célèbres et les plus utilisés. De plus, presque toutes les autres licences ressemblent à une de ces trois-là. Deux d'entre elles ont le copyleft, le troisième non.
- La GNU GPL [GNU General Public Licence] (et non un carburant pour voiture
)
- La GNU LGPL [GNU Lesser GPL] (similaire à GPL à une nuance près)
- La nouvelle licence de BSD [Berkeley Software Distribution] (du nom du premier logiciel à l'avoir utilisé)
Il faut aussi savoir que ces trois licences (et la plupart des licences libres) précisent bien que les logiciels qu'elles couvrent ne fournissent aucune garantie d'aucune sorte, et que rien ne dit qu'il fonctionnera. Cependant, ça ne vous donne pas le droit de faire un logiciel qui met le bordel dans l'ordinateur des gens ! Vous vous feriez attaquer pour ça ! Donc, respectez vos utilisateurs et tout ira bien.
Voici donc la description de chacun de ces textes.
GNU GPL : la licence publique générale GNU
Celle-là, c'est la licence libre « classique ». La plus connue, du moins. Voici un petit résumé de ce qu'elle dit.
- La permission est donnée à quiconque en possède une copie d'exécuter, copier, modifier, distribuer des versions modifiées du logiciel.
- « Distribuer » un logiciel inclut vendre des copies de celui-ci.
- La licence du logiciel, ainsi que le nom des auteurs, ne peuvent être modifiés ou supprimés.
- Si vous distribuez des copies, vous devez redistribuer le code source avec le logiciel, ou bien vous engager à fournir ce code à quiconque vous le demande.
- Tout projet qui incluerait un élément sous licence GNU GPL ne pourra être distribué QUE sous GNU GPL.
Vous reconnaissez peut-être le dernier point. Il s'agit du copyleft. Quiconque utilise un bout de programme sous GNU GPL voit son programme passer entièrement sous licence GNU GPL.
Autre point : vous avez le droit de vendre des copies de logiciels sous GNU GPL. Mais il faut savoir que si quelqu'un achète une copie, il aura à son tour le droit de distribuer le logiciel (contre de l'argent ou non). La plupart des entreprises qui créent des logiciels libres sous GNU GPL préfèrent donc vendre des services en rapport avec le logiciel, comme un abonnement de support technique par exemple.
Quelques liens à propos de cette licence :
Page officielle de la GNU GPL
L'article sur Wikipédia
GNU LGPL : la licence publique générale GNU amoindrie
C'est pratiquement la même licence que la GNU GPL. Simplement, les Zéros qui créent des bibliothèques n'ont peut-être pas envie de forcer tous les gens qui utilisent leur réalisations à mettre leur programme sous GNU GPL (quoique ça aurait fait de la pub pour le tuto

). C'est le but de la licence GNU LGPL.
La licence GNU LGPL est
exactement la même que la GNU GPL à une exception près : si vous
liez dynamiquement du code sous GNU LGPL avec un autre code, alors l'autre code n'est pas « contaminé » par la GNU LGPL. Le code libre reste sous GNU LGPL, mais il peut être associé à du code sous une licence quelconque pour former un programme (à condition que l'association soit dynamique). Cela signifie que :
- si vous liez le fichier libmachin.a (qui est sous GNU LGPL) à votre programme, celui-ci EST contaminé par la GNU LGPL ;
- si vous ne liez pas libmachin.a à votre programme et que vous utilisez un fichier DLL (machin.dll) à la place, le programme N'EST PAS contaminé ;
- si vous modifiez le code source de la libmachin, cette dernière restera sous GNU LGPL.
La nuance est un peu ténue, je le reconnais. L'idée, c'est de fournir une « GNU GPL pour bibliothèques » qui permet de rendre la bibliothèque libre sous copyleft tout en permettant aux éditeurs de programmes propriétaires de l'utiliser.
Dernier point important : on peut redistribuer des éléments protégés par la GNU LGPL sous GNU GPL à la place (on appelle ça la
compatibilité entre les licences).
Quelques liens :
Page officielle de la LGPL
Article sur Wikipédia
La licence BSD
C'est la plus permissive des trois. Elle permet beaucoup plus de choses que la GPL et que la LGPL. Voyez par vous-mêmes

:
- la permission est donnée à quiconque d'utiliser, redistribuer, modifier, librement le logiciel ;
- la condition est l'obligation de citer l'auteur et la licence originale.
Conséquences :
- ceci implique qu'on peut redistribuer le logiciel sans son code source, ou encore inclure un élément sous BSD dans un produit sous une autre licence ;
- si vous redistribuez un code-source sous BSD, vous ne devez ni enlever ni modifier le commentaire en haut de chaque fichier source (qui contient la licence et le nom de l'auteur) ;
- si vous redistribuez un élément (compilé) sous BSD, vous devez inclure un fichier texte (ou dans la documentation du produit) la licence originale.
C'est beaucoup plus permissif. Vous voyez donc les différences qu'il peut y avoir entre plusieurs licences libres, maintenant

. Remarquons qu'on peut très bien mélanger du code sous GNU GPL et du code sous BSD, et redistribuer le tout sous GPL en citant le nom de l'auteur du code sous BSD.
Quelques liens :
Article sur Wikipédia
Pas de page officielle pour cette licence
Et si je veux une licence en français ?
C'est vrai, tous les textes qu'on a vus sont en anglais. Heureusement, il existe des équivalents en français : cherchez du côté des licences CeCILL (équivalent de la GPL en français) et CeCILL-B (équivalent de la BSD en français). Plus d'informations :
site officiel.
Pour appliquer CeCILL ou CeCILL-B à votre programme, suivez les mêmes instructions que pour appliquer la GPL en adaptant intelligement.
Les doubles licences
Certains produits, comme Qt par exemple, ont deux licences différentes.
QUOI ? C'est possible ?
Eh oui. À partir du moment où vous êtes l'auteur de quelque chose, vous en faites ce que vous voulez. Certains ont donc fait le choix de publier deux versions de leur logiciel. Les deux versions sont les mêmes, la seule chose qui change, c'est la licence. La plupart du temps, l'une des versions du logiciel est sous GNU GPL et gratuite, et l'autre est sous une autre licence (qui permet généralement d'utiliser le code dans un logiciel propriétaire), mais payante.
Ainsi, vous pouvez aider la communauté du libre en publiant vos sources, et empêcher les entreprises de profiter de votre code pour faire de l'argent (GPL), mais vous pouvez en même temps gagner des sous en donnant l'autorisation aux gens qui la demandent d'utiliser le code dans un projet fermé, contre une rémunération.
Et tu crois vraiment que les entreprises, elles vont s'intéresser à mon code ?
Ben, j'en sais rien, moi

. Bon, allez : en fait, je voulais juste vous parler de cette technique pour vous montrer qu'elle existe. Elle est, par exemple, utilisée par la bibliothèque Qt (que j'ai déjà évoquée) : si vous faites du GPL, vous pouvez utiliser Qt gratuitement, sinon, il faut passer à la caisse (et ça fait mal au porte-monnaie pour un particulier

). Et, qui sait, si vous participez à un gros projet, un jour, peut-être ferez-vous une excellente bibliothèque aussi.
Et après ?
Voilà, vous en savez un peu plus : faites votre choix. À vous de voir ce que vous donnez comme droits à vos utilisateurs.
Il faut bien comprendre que ce sont ici des résumés. De plus, j'ai pu faire des approximations pour simplifier l'explication. Pour plus d'informations, cherchez sur Google et Wikipédia.
Il existe bien sûr d'autres textes possibles. Je n'en dis pas plus ici car ce n'est pas trop le sujet. De plus, la plupart des licences ressemblent soit à la GPL, soit à la licence BSD.
Voici une liste plus complète de licences libres, avec leurs descriptions :
Licences sur OpenSource.org. Bien sûr, de nombreuses informations peuvent être trouvées via Google.
Bon : maintenant qu'on a choisi sa licence, il faudrait peut-être l'appliquer à son programme, non ? Suivez le guide.