Guerre des licences, guerre des égos...
Par Sid,
samedi 7 avril 2007 à 13:05 :: Logiciel libre
:: lu 10976 fois :: #181
:: rss
:: atom
Read it in english with Google

armi les choses qui séparent les pro-GNU/Linux des pro-BSD, il y a la licence. La fameuse licence... BSD (ou équivalent) d'un côté contre GPL (ou équivalent) de l'autre. Pardon ? J'ai écrit "contre" ? Oui, effectivement. Pourquoi ? Tout simplement parce que certains ne peuvent pas s'empêcher de les opposer. De penser qu'entre BSDiens et GPListes, c'est la guerre ouverte, l'incompatibilité consommée, là où il n'y a finalement qu'une vision différente du logiciel libre.
Alors forcément, avec des gens comme ça, il arrive régulièrement que les choses partent en live. Et c'est ce qui s'est encore produit cette semaine. Les développeurs du driver Bcm-43xx pour Linux, diffusé sous GPL, se sont rendus compte que le CVS officiel de OpenBSD contenait des morceaux de leur code dans des fichiers publiés sous licence BSD. Fâcheux. Et pour le moins problèmatique.
Et ce qui aurait pu se régler par un simple échange de mails privés s'est retrouvé monté en épingle, tournant à la véritable flamewar publique...
Tout commence par un courrier du développeur principal de Bcm43xx, Michael Buesch, adressé à son homologue mainteneur du driver bcm de OpenBSD, Marcus Glocker. Le soucis avec ce message, c'est qu'il est également envoyé à douze personnes et trois listes de diffusion. Autant dire que ça fait du monde. Voici les parties intéressantes du message :
I, Michael Buesch, am one of the maintainers of the GPL'd Linux wireless LAN driver for the Broadcom chip (bcm43xx). The Copyright holders of bcm43xx (which includes me) want to talk to you, OpenBSD bcw developers, about possible GPL license and therefore Copyright violations in your bcw driver. We believe that you might have directly copied code out of bcm43xx (licensed under GPL v2), without our explicit permission, into bcw (licensed under BSD license). There are implementation details in bcm43xx that appear exactly the same in bcw. These implementation details clearly don't come from the open specifications at bcm-specs.sipsolutions.net or bcm-v4.sipsolutions.net. [Exemple de code copié] We'd like to have this issue resolved. In general we are not against having a free (and BSD licensed) driver in the BSD operating system. But you _have_ to cooperate with us if you'd like to take our code and relicense it under BSD license. We intentionally put the code under GPL license. We did _not_ do this, because "everybody does this". We did this, among other reasons, because we "don't think we should allow proprietary vendors to take our code and close it again." [Citations sur la GPL] We'd like to offer you to start cooperating with us. We respect you and your Copyright. You should also do so on our work. We would not be opposed to relicensing parts of our code under the BSD license on an explicit case-by-case base. So if you ask "May I use this and that function" and if I own the Copyright on that particular function, I will approve or deny your request. Other Copyright holders of the bcm43xx code might act the same way. We're not out for blood, just for a fair resolution. We'd like you to start contacting us to resolve the issue now.
Il y explique donc relativement calmement à son destinataire qu'il a commité du code GPL sur le CVS public de OpenBSD, dans des fichiers sous licence BSD. Que cela constitue une violation indiscutable de la GPL. Qu'il l'invite à prendre contact pour résoudre le problème. Que la solution qu'il envisage consiste à se mettre d'accord pour que ce code soit publié sous double licence GPL/BSD. Jusque là tout va bien. À peu près, car c'était sans compter sur les suceptibilités des uns et des autres. Car la première personne à répondre à ce courrier électronique est évidemment Theo De Raadt dans une intervention chevaleresque qui, tout en reconnaissant l'existence du problème, va enflammer la discussion jusqu'au point de non retour, considérant que mettre autant de monde en copie du courrier original est une injure au développeur, pour, je cite, "quelques problèmes avec GPL".
Sauf que voilà, sur le fond, Michael Buesch a raison. 100% raison. Pour autant, la forme n'y est pas, c'est là que Theo De Raadt a raison. Quel était l'intérêt de porter tout ce problème à l'attention de autant de monde sinon pour se faire mousser ? Je m'interroge. En général, c'est plutôt quand les discussion privées n'avancent plus qu'on en arrive pas. Pour autant, y avait-il lieu de se braquer de la sorte ? De part et d'autre ? Au point d'en arriver à la suppression pure et simple du driver bcm du CVS ? J'en doute fort. Toujours est-il que tout cette discussion va rapidement virer à la lutte stérile d'égo. D'un côté les linuxiens se retranchant derrière la violation, de l'autre Theo De Raadt, diminuant l'impact de ce qu'il qualifie de simple erreur.
Bienvenue dans le monde formidable du logiciel libre ! Et le pire dans l'histoire, c'est que ce n'est pas la première fois que ça arrive. Le cas du driver Madwifi est par exemple évoqué. Celui-ci est dérivé du driver BSD. À l'époque, les développeurs avaient contacté les gens d'OpenBSD pour étudier la possibilité d'avoir une double licence GPL/ISC sur certaines parties. Réponse : "OVER OUR DEAD BODIES THE ATHEROS DRIVER WILL NOT BE RE-LICENSED TO BE GPL OR DUAL. PERIOD". Et encore une fois, c'est une histoire qui pue, des deux côtés. Pour équilibrer la balance, on pourra également citer cette vieille histoire de driver ATA Linux repiqué de FreeBSD qui, bien qu'étant également partie en live publiquement, s'est réglée entre gentlemen dans les coulisses.
Et puis il y a cette vieille excuse à deux balles de la simple boulette. Jolie la boulette. En gros, le code aurait été copié pour servir de base de travail, pour avoir quelque chose de fonctionnel de manière à comprendre les spécifications et réécrire un code tout neuf. Soit. Mais ce type de travail n'a pas être publié. Point. Le mettre sur le CVS public d'OpenBSD, ça fait quand même une sacré boulette, vous ne trouvez pas ? Ah oui, mais personne ne l'utilise parce que ce n'est pas fonctionnel. Pointless argument my dear ! Tout est question du diffusion, pas d'utilisation. La GPL, pas plus que les licences BSD, ne prévoit pas de clause particulière pour le code non fonctionnel. Quand un développeur choisit une licence, il exerce son droit de dicter les conditions sous lesquelles il veut le voir publié. C'est sa liberté d'auteur. La moindre des choses est de la respecter. Scrupuleusement. En particulier quand, soit même développeur, on attend le même comportement des autres vis-à-vis de son propre code.
Alors comment voulez-vous que les choses se passent bien ? À ma gauche, les preux chevaliers de la GPL qui ne peuvent pas s'empêcher de montrer à la Terre entière combien ils sont vigilants dès lors qu'ils sont convaincus de leur fait. À ma droite, les pauvres développeurs OpenBSD qui ne discutent quand ça les arrange, renvoient chier leur monde le reste du temps et se la joue Calimero quand ils se font prendre la main dans le sac... À d'autres messieurs... Si vous commenciez à introduire un peu de respect mutuel, ça se passerait probablement mieux. Parce que ce n'est pas en rameutant la foule que les choses s'arrangent. Mais ce n'est pas non plus en jouant les vierges effarouchées qu'on y parvient non plus. Mais forcément, parfois, ça doit se faire au détriment de son égo, qui de ne pas se faire de la publicité facile, qui de prendre sur soi d'assumer ses erreurs.
Toujours est-il qu'aujourd'hui, le problème est réglé. Marcus Glocker a tout simplement supprimé ses fichiers du CVS. Ou presque. Les anciennes révisions sont en effet encore en ligne... Toujours est-il que les quelques huit-cent heures qu'il aurait passé à travailler sur ce driver ne semblaient pas valoir pas de ravaler un peu sa fierté. Dommage. Mais que pouvait-on attendre de plus d'une histoire aussi pathétique ?...
Commentaires
1. Le samedi 7 avril 2007 à 20:56, par Xavier Maillard
2. Le dimanche 8 avril 2007 à 01:46, par Tyop?
Réponse de Sid
3. Le dimanche 8 avril 2007 à 13:04, par jme
Réponse de Sid
4. Le dimanche 8 avril 2007 à 13:15, par Tyop?
Réponse de Sid
5. Le lundi 9 avril 2007 à 16:46, par jme
6. Le lundi 9 avril 2007 à 22:50, par switch'
7. Le mardi 10 avril 2007 à 00:48, par Tyop?
8. Le mardi 10 avril 2007 à 08:48, par jme
9. Le mardi 10 avril 2007 à 09:55, par Ulysse
10. Le mardi 10 avril 2007 à 12:46, par Kevin
Réponse de Sid
11. Le mardi 10 avril 2007 à 13:49, par Kevin
Réponse de Sid
12. Le mardi 10 avril 2007 à 21:03, par switch'
13. Le mardi 10 avril 2007 à 21:40, par Z
Réponse de Sid
14. Le mercredi 11 avril 2007 à 09:38, par Kevin
15. Le mercredi 11 avril 2007 à 10:14, par Vincent
Réponse de Sid
Ajouter un commentaire