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 ?...