The git repo behind my blog.

pourquoi-la-gpl-nest-pas-si-libre.html 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="HandheldFriendly" content="True" />
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  8. <meta name="robots" content="index, follow" />
  9. <link href='https://phyks.me/theme/stylesheet/fonts.css' rel='stylesheet' type='text/css'>
  10. <link rel="stylesheet" type="text/css" href="https://phyks.me/theme/stylesheet/style.min.css">
  11. <link rel="stylesheet" type="text/css" href="https://phyks.me/theme/pygments/monokai.min.css">
  12. <link rel="stylesheet" type="text/css" href="https://phyks.me/theme/font-awesome/css/font-awesome.min.css">
  13. <link href="https://phyks.me/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Phyks' blog Atom">
  14. <link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon">
  15. <link rel="icon" href="/images/favicon.ico" type="image/x-icon">
  16. <!-- Chrome, Firefox OS and Opera -->
  17. <meta name="theme-color" content="#333">
  18. <!-- Windows Phone -->
  19. <meta name="msapplication-navbutton-color" content="#333">
  20. <!-- iOS Safari -->
  21. <meta name="apple-mobile-web-app-capable" content="yes">
  22. <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  23. <!-- Microsoft EDGE -->
  24. <meta name="msapplication-TileColor" content="#333">
  25. <meta name="author" content="Phyks" />
  26. <meta name="description" content="Cet article est une traduction (dont je ne garantis pas la qualité :) de cet article (en anglais). Je n’ai pas réussi à contacter l’auteur, et si celui-ci passe par là et souhaite le retrait de la traduction, je la retirerai. Cet article résume bien le problème que me …" />
  27. <meta name="keywords" content="">
  28. <meta property="og:site_name" content="Phyks' blog"/>
  29. <meta property="og:title" content="Pourquoi la GPL n’est pas (si) libre"/>
  30. <meta property="og:description" content="Cet article est une traduction (dont je ne garantis pas la qualité :) de cet article (en anglais). Je n’ai pas réussi à contacter l’auteur, et si celui-ci passe par là et souhaite le retrait de la traduction, je la retirerai. Cet article résume bien le problème que me …"/>
  31. <meta property="og:locale" content="en_US.UTF-8"/>
  32. <meta property="og:url" content="https://phyks.me/2014/07/pourquoi-la-gpl-nest-pas-si-libre.html"/>
  33. <meta property="og:type" content="article"/>
  34. <meta property="article:published_time" content="2014-07-16 19:00:00+02:00"/>
  35. <meta property="article:modified_time" content=""/>
  36. <meta property="article:author" content="https://phyks.me/author/phyks.html">
  37. <meta property="article:section" content="Libre"/>
  38. <meta property="og:image" content="/images/profile.png">
  39. <title>Phyks' blog &ndash; Pourquoi la GPL n’est pas (si) libre</title>
  40. </head>
  41. <body>
  42. <aside>
  43. <div>
  44. <a href="https://phyks.me">
  45. <img src="/images/profile.png" alt="Phyks" title="Phyks">
  46. </a>
  47. <h1><a href="https://phyks.me">Phyks</a></h1>
  48. <p>I write about dev, FOSS, DIY and more, in French and English.</p>
  49. <ul class="social">
  50. <li><a class="sc-rss" href="feeds/all.atom.xml" target="_blank"><i class="fa fa-rss"></i></a></li>
  51. <li><a class="sc-envelope-o" href="mailto:phyks+blog@phyks.me" target="_blank"><i class="fa fa-envelope-o"></i></a></li>
  52. <li><a class="sc-github" href="http://github.com/phyks/" target="_blank"><i class="fa fa-github"></i></a></li>
  53. <li><a class="sc-gitlab" href="https://git.phyks.me/phyks" target="_blank"><i class="fa fa-gitlab"></i></a></li>
  54. </ul>
  55. </div>
  56. </aside>
  57. <main>
  58. <nav>
  59. <a href="https://phyks.me">Home</a>
  60. <a href="https://links.phyks.me">Bookmarks</a>
  61. <a href="/pages/hosted-tools.html">Tools</a>
  62. <a href="/archives.html">Archives</a>
  63. <a href="/pages/memo-autohebergement.html">Autohébergement</a>
  64. <a href="https://phyks.me/feeds/all.atom.xml">Atom</a>
  65. </nav>
  66. <article class="single">
  67. <header>
  68. <h1 id="pourquoi-la-gpl-nest-pas-si-libre">Pourquoi la <span class="caps">GPL</span> n&#8217;est pas (si)&nbsp;libre</h1>
  69. <p>
  70. Posted on 16 July 2014 in <a href="https://phyks.me/category/libre.html">Libre</a>
  71. &#8226; 6 min read
  72. </p>
  73. </header>
  74. <div>
  75. <p>Cet article est une traduction (dont je ne garantis pas la qualité&nbsp;:) de
  76. <a href="http://noordering.wordpress.com/2009/01/20/why-the-gpl-is-not-free/">cet article (en
  77. anglais)</a>.
  78. Je n&#8217;ai pas réussi à contacter l&#8217;auteur, et si celui-ci passe par là et
  79. souhaite le retrait de la traduction, je la&nbsp;retirerai.</p>
  80. <p>Cet article résume bien le problème que me pose la clause de
  81. redistribution sous une licence compatible, qui complique bien souvent
  82. l&#8217;utilisation de la licence (notamment car ce qu&#8217;on peut réellement
  83. faire avec un code sous <span class="caps">GPL</span> n&#8217;est pas toujours très clair et intuitif).
  84. C&#8217;est une des raisons pour laquelle je privilégie généralement une
  85. licence plus permissive, comme la
  86. <a href="https://tldrlegal.com/license/mit-license"><span class="caps">MIT</span></a>. La dernière partie sur
  87. l&#8217;échec de la <span class="caps">GPL</span> est moins convaincante, et peut être même un peu tirée
  88. par les cheveux, mais elle fait partie de l&#8217;article donc je la&nbsp;laisse.</p>
  89. <p>À partir de maintenant et dans toute la suite, « je » désigne donc
  90. l&#8217;auteur de l&#8217;article&nbsp;précédent.</p>
  91. <h1>Pourquoi la <span class="caps">GPL</span> n&#8217;est pas&nbsp;libre</h1>
  92. <h2>Introduction</h2>
  93. <p>La <a href="http://www.fsf.org/">Free Software Foundation (<span class="caps">FSF</span>)</a> présente la
  94. <a href="http://www.gnu.org/copyleft/gpl.html"><span class="caps">GPL</span></a> comme un défenseur idéal de
  95. vos libertés. On nous dit que la <span class="caps">GPL</span> est au cœur de la défense de quatre
  96. libertés&nbsp;:</p>
  97. <ol>
  98. <li>La liberté de faire tourner le programme, pour n&#8217;importe quelle
  99. raison (liberté&nbsp;0).</li>
  100. <li>La liberté d&#8217;étudier comment le programme fonctionne, et de
  101. l&#8217;adapter à vos besoins (liberté 1). L&#8217;accès au code source est une
  102. condition préliminaire à cette&nbsp;liberté.</li>
  103. <li>La liberté de redistribuer des copies pour que vous puissiez
  104. facilement aider vos voisins (liberté&nbsp;2).</li>
  105. <li>La liberté d&#8217;améliorer le programme et de diffuser les améliorations
  106. (et les versions modifiées en général) au public, pour que la
  107. communauté entière en bénéficie (liberté 3). L&#8217;accès au code source
  108. est une condition préliminaire à cette&nbsp;liberté.</li>
  109. </ol>
  110. <p><a href="http://www.gnu.org/philosophy/free-sw.html">«&nbsp;Qu&#8217;est-ce que le logiciel libre&nbsp;?&nbsp;», sur le site de la
  111. <span class="caps">GNU</span></a></p>
  112. <p>J&#8217;affirme cependant que la <span class="caps">GPL</span> ne nous donne pas de liberté, mais juste
  113. différentes restrictions. J&#8217;affirme de plus qu&#8217;elle ne nous donne pas
  114. toutes les libertés précédentes. Dans cet article, je défend que la <span class="caps">GPL</span>
  115. est intrinsèquement imparfaite quand il s&#8217;agit de libérer les&nbsp;logiciels.</p>
  116. <h2>Qu&#8217;est-ce que j&#8217;ai écrit&nbsp;?</h2>
  117. <p>Permettez moi d&#8217;ouvrir une parenthèse avant de commencer. Je voudrais
  118. présenter un sujet lié qui est au cœur de mon argumentation, et qui est
  119. la question de savoir combien de code exactement vous avez écrit.
  120. Imaginons un scénario typique&nbsp;: vous êtes l&#8217;auteur d&#8217;une bibliothèque
  121. libre et <em>open source</em>. Le but de cette bibliothèque n&#8217;importe pas
  122. particulièrement, donc disons qu&#8217;elle sert à chiffrer des <em>widgets</em>.
  123. Vous mettez tout votre talent dans cette bibliothèque, et elle devient
  124. stable et très complète. Le diagramme représente le projet à ce moment&nbsp;:</p>
  125. <p><a href="https://phyks.me/images/2014/07/gpl_pas_libre_1.png"><img alt="Votre projet,
  126. initialement." src="https://phyks.me/images/2014/07/gpl_pas_libre_1.png"></a>
  127. Vous êtes fier de votre&nbsp;projet.</p>
  128. <p>Supposons donc maintennt qu&#8217;une tierce partie prenne votre code et
  129. construise quelque chose par dessus. On pourrait le représenter comme
  130. ceci&nbsp;:</p>
  131. <p><a href="https://phyks.me/images/2014/07/gpl_pas_libre_2.png"><img alt="Des ajouts à votre
  132. projet." src="https://phyks.me/images/2014/07/gpl_pas_libre_2.png"></a>
  133. Un important et un petit ajout à votre&nbsp;projet.</p>
  134. <p>Ce qui est important ici, c&#8217;est de réaliser que la quantité de code que
  135. vous avez écrite ne change pas. Même si l&#8217;ajout de la tierce partie
  136. consiste seulement en une jolie interface graphique pour votre
  137. bibliothèque, la quantité de code que vous avez écrite n&#8217;a pas augmenté,
  138. ni&nbsp;diminué.</p>
  139. <h2>Ce que vous couvrez avec une&nbsp;licence</h2>
  140. <p>Ok, posons donc maintenant la question&nbsp;: quelle est la pertinence de
  141. tout ceci&nbsp;? Ça nous a aidé à clarifier ce que vous couvrez exactement
  142. par la licence lorsque vous appliquez une licence <span class="caps">GPL</span> à votre code. Vous
  143. couvrez <em>votre</em> code, et seulement votre code. Et pourtant, la <span class="caps">GPL</span>
  144. restreint la licence des travaux dérivés. Notons ici que les travaux
  145. dérivés sont <em>intégralement</em> le travail de quelqu&#8217;un&nbsp;d&#8217;autre.</p>
  146. <p>L&#8217;argument le plus courant que j&#8217;ai entendu pour favoriser la <span class="caps">GPL</span> est
  147. qu&#8217;avec une licence plus faible (disons
  148. <a href="http://www.opensource.org/licenses/bsd-license.php"><span class="caps">BSD</span></a>), une tierce
  149. partie peut prendre votre code, l&#8217;étendre, et fermer l&#8217;accès aux
  150. sources. Réfléchissons donc à ce que cela signifie. Pour fermer l&#8217;accès
  151. à votre code, ils auraient du le prendre, retirer toutes les sources en
  152. accès libre pour ce code, et ensuite le distribuer à nouveau en <em>closed
  153. source</em>. Mais cela n&#8217;a aucun sens. Vous distribuez toujours votre code
  154. source sous une licence libre et <em>open source</em>, donc en quoi l&#8217;ont-ils
  155. rendu <em>closed source</em>&nbsp;? Ils ne l&#8217;ont pas fait&nbsp;: <em>votre code</em> est
  156. toujours <em>open source</em>. Donc, qu&#8217;ont-ils rendu <em>closed source</em>&nbsp;? Et
  157. bien, la réponse est «&nbsp;leur code&nbsp;», et <em>seulement</em> leur code est <em>closed
  158. source</em>, et c&#8217;est très bien&nbsp;: ils sont dans leur droit d&#8217;appliquer la
  159. licence de leur choix à leur&nbsp;code.</p>
  160. <p>Donc la conclusion est qu&#8217;une entreprise peut venir, prendre
  161. libWidgetCrypt et proposer un petit <em>wrapper</em> autour, et commencer à
  162. faire d&#8217;énormes profits en vendant le résultat $10,000. Oui, c&#8217;est
  163. possible, mais c&#8217;est aussi un scénario assez improbable. Si tout ce
  164. qu&#8217;ils ont fait a été d&#8217;écrire un petit <em>wrapper</em>, alors vous, ou
  165. quelqu&#8217;un d&#8217;autre dans la communauté <em>open source</em> est parfaitement
  166. capable de réaliser un tel <em>wrapper</em> en un rien de temps. Et alors, tout
  167. ce qu&#8217;il vous reste à faire est de casser les prix et d&#8217;ajouter un bon
  168. gros morceau de&nbsp;liberté.</p>
  169. <p>Le scénario le plus probable, cependant, est qu&#8217;une entreprise arrive,
  170. prenne libWidgetCrypt et produise un gros morceau de code
  171. supplémentaire, qui utilise juste votre bibliothèque dans sa base.
  172. Alors, cette entreprise va vendre <em>son</em> code, et <em>ses extensions</em> pour
  173. un montant élevé, et ils ont parfaitement le droit de le faire. Après
  174. tout, c&#8217;est leur&nbsp;code.</p>
  175. <p>Croyez le ou non, ce scénario est encore un scénario bénéfique pour
  176. vous. Cette entreprise est susceptible de trouver des bugs dans
  177. libWidgetCrypt, et de les corriger. De mon expérience de ce genre de
  178. choses, ils contribuent et vous font parvenir leurs correctifs plus
  179. souvent qu&#8217;on le pense, même si rien ne les y oblige&nbsp;! Oui, il arrive
  180. qu&#8217;ils corrigent la bibliothèque et s&#8217;enfuient avec les correctifs, mais
  181. encore une fois, ils ont écrit les correctifs, ils ont le droit de le
  182. faire&nbsp;!</p>
  183. <h2>Là où la <span class="caps">GPL</span>&nbsp;rate</h2>
  184. <p>Je suis entré dans beaucoup de détails sur ce que vous mettez sous <span class="caps">GPL</span>
  185. quand vous appliquez une licence <span class="caps">GPL</span> à votre code, mais je n&#8217;ai pas
  186. encore parlé de ce que j&#8217;avais annoncé au début de cet article. Je ne
  187. vous ai pas dit pourquoi la <span class="caps">GPL</span> n&#8217;est pas une licence libre. Pour cela,
  188. je vais me concentrer sur la dernière liberté qu&#8217;elle affirme offrir&nbsp;: «
  189. La liberté d&#8217;améliorer le programme, et de diffuser les améliorations
  190. (et les versions modifiées en général) au public, pour que la communauté
  191. entière en bénéficie (liberté 3).&nbsp;». Supposons que j&#8217;ai une entreprise,
  192. et que je crée un produit à distribuer. J&#8217;aimerais utiliser votre
  193. bibliothèque dans mon programme, j&#8217;aimerais même améliorer votre
  194. bibliothèque, et diffuser les améliorations publiquement, pour que
  195. l&#8217;intégralité de la communauté en bénéficie. Malheureusement, je dois
  196. finir par vendre un produit, donc j&#8217;aimerais garder le cœur de mon
  197. projet <em>closed source</em>. Malheureusement, la <span class="caps">GPL</span> proscrit ce genre de&nbsp;choses.</p>
  198. <p>Nous avons donc un bon citoyen, une entreprise qui veut diffuser leurs
  199. correctifs à la bibliothèque, et pourtant la <span class="caps">GPL</span> leur interdit de le
  200. faire. Elle ne leur donne aucune liberté&nbsp;! À la place, la <span class="caps">GPL</span> est un
  201. ensemble de&nbsp;restrictions.</p>
  202. <p>Il se peut que vous trouviez que l&#8217;ensemble de restrictions que la <span class="caps">GPL</span>
  203. offre est plus moralement acceptable que les licences <em>closed source</em>
  204. traditionnelles, mais ce n&#8217;est <em>pas</em> une licence libre. Elle ne donne
  205. pas de liberté, elle donne différentes&nbsp;restrictions.</p>
  206. <h2>Conclusions</h2>
  207. <p>La <span class="caps">GPL</span> n&#8217;est pas une licence libre, en ce qu&#8217;elle restreint les libertés
  208. aux seules personnes qu&#8217;elle juge moralement acceptables. Il y a souvent
  209. des gens qui ne tombent pas dans cette case «&nbsp;moralement acceptable&nbsp;»,
  210. mais qui ont pourtant de très bonnes intentions. La <span class="caps">GPL</span> est donc trop
  211. restrictive pour beaucoup de projets. À la place, c&#8217;est souvent une
  212. bonne idée d&#8217;utiliser une véritable licence <em><span class="caps">FOSS</span></em>, comme la licence <span class="caps">BSD</span>
  213. par exemple. En faisant cela, vous ne vous rendrez pas vulnérable pour
  214. des entreprises qui voudraient passer magiquement votre code en <em>closed
  215. source</em>, car vous continuerez à le distribuer. Il se peut qu&#8217;ils passent
  216. en <em>closed source</em> un petit ajout à votre code et essayent de le vendre
  217. pour des sommes astronomiques. Cependant, dans ce cas, vous pouvez aussi
  218. reproduire le même changement mineur, et le donner entièrement librement
  219. à la&nbsp;communauté.</p>
  220. </div>
  221. <div class="tag-cloud">
  222. <p>
  223. </p>
  224. </div>
  225. </article>
  226. <footer>
  227. <p>
  228. &copy; 2017 - This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>
  229. </p>
  230. <p>Powered by <a href="http://getpelican.com" target="_blank">Pelican</a> - <a href="https://github.com/alexandrevicenzi/flex" target="_blank">Flex</a> theme by <a href="http://alexandrevicenzi.com" target="_blank">Alexandre Vicenzi</a></p><p>
  231. <a rel="license"
  232. href="http://creativecommons.org/licenses/by-nc-sa/4.0/"
  233. target="_blank">
  234. <img alt="Creative Commons License"
  235. title="Creative Commons License"
  236. style="border-width:0"
  237. src="https://phyks.me/theme/img/cc/by-nc-sa.png"
  238. width="80"
  239. height="15"/>
  240. </a>
  241. </p> </footer>
  242. </main>
  243. <script type="application/ld+json">
  244. {
  245. "@context" : "http://schema.org",
  246. "@type" : "Blog",
  247. "name": " Phyks' blog ",
  248. "url" : "https://phyks.me",
  249. "image": "/images/profile.png",
  250. "description": "I write about dev, FOSS, DIY and more, in French and English."
  251. }
  252. </script>
  253. </body>
  254. </html>