Journal : Une sale histoire de driver

Posté par patrick_g (page perso, ) le 06 avril 2007
0
Attention journal long avec plein de morceaux en anglais !

L'affaire est un peu explosive alors je vais mesurer mes mots.

Les faits :

Michael Buesch, l'un des auteurs du driver Linux de la carte wifi Broadcom bcm43xx, a envoyé un mail sur la liste de diffusion d'OpenBSD. Dans ce mail il signale qu'il existe une probable violation de copyright car du code de son driver bcm43xx (sous licence GPL) aurait été repris tel quel par Marcus Glocker (un développeur OpenBSD) dans son driver bcw (sous licence BSD) :

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

Il donne ensuite des détails sur la reprise du code (les noms de fonctions ou de variables identiques, l'implémentation exacte de fonctions qui ne sont que vaguement décrites dans les specs Broadcom et qui ne peuvent donc venir que du driver Linux, les messages d'erreur identiques...etc. Il y a même plusieurs fois des "bcm43xx" qui restent dans le code !).

Après avoir exposé ses griefs Michael Buesch propose des solutions : Il demande que l'on respecte son copyright et que l'on respecte également les obligations de la licence GPL qu'il a choisi :

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.


Il n'est pas contre le fait de relicencer certaines parties de son code pour les mettre sous licence BSD et indique qu'il faut en parler pour résoudre le problème maintenant :

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.
Have a nice day.


Et c'est là que la flamewar commence ;-)

Theo de Raadt, le leader du projet OpenBSD, signale que comme le code du driver bcw ne fonctionne pas encore (il est en chantier), techniquement il n'est pas nécessaire de se conformer à la GPL puisque personne "n'utilise" le code.
Il ajoute surtout que le fait de ne pas envoyer un mail privé à Marcus Glocker pour signaler le problème et de choisir plutôt de mettre des centaines de personnes en copie est insultant et humiliant. Il annonce qu'il comprendrait parfaitement que Marcus Glocker abandonne son projet après avoir été ainsi publiquement trainé dans la boue :

If he quit, I would understand his position completely, based on the first contact with him about this issue BEING A PUBLIC DRAG THROUGH THE MUD BY YOU GUYS.

Cette prédiction se révèle vraie puisque Marcus Glocker supprime le code du driver bcw du dépot CVS public et annonce dans son message de commit qu'il abandonne le projet :

After been attacked by Michael Buesch because we initially were using some of their routines in the bcw driver, I decided to stop working on it. To avoid any further license chit chat I plain drop the driver.

Bien entendu cela ne fait que renforcer l'acrimonie des développeurs d'OpenBSD et les échanges deviennent furieux. Voici quelques citations dans le désordre ci-dessous. Elles sont extraites du thread http://thread.gmane.org/gmane.linux.kernel.wireless.general/(...) et ne reflètent pas l'ordre des messages...c'est juste pour donner un aperçu du ton :

Theo :
The way they chose to "notify" Marcus shows a complete lack of respect for Marcus.

Michael :
The way OpenBSD folks used our code was a complete lack of respect for us. Fullstop.

Theo :
You refuse to accept it was an accident. Do you even know the word 'mistake'?

Michael :
I can't see how you can copy code from bcm43xx to bcw by mistake.
Really, I want to explicitely state that in my opinion the 1:1 copying was going on intentionally. This is impossible to be a mistake.


Theo :
Some person on the net who does not know how human beings react when they are called thieves implied he had purposefully stolen code, and he's so saddened that he is going to throw all that away.

Michael :
We do not treat Marcus bad in any way.
The opposite is true. We offered the explicit opportunity to get (some of the) code relicensed, if he starts to work together with us.


Theo :
No, your message offered that he can come begging, because that is the best that thieves may do.
Come little dog, come beg for forgiveness.
You are a very poor example of humankind.


Michael :
I want you to respect my copyright. Fullstop.

Theo :
You are an inhuman asshole, out to make a public fuss about something, when you had a choice to tell him in private.

Après cette flamewar le site d'information d'OpenBSD a choisi de lancer de l'huile sur le feu en attaquant les développeurs Linux :

http://undeadly.org/cgi?action=article&sid=2007040610400(...)

The Linux people may know what their ridiculous egos have stomped all over and destroyed.
Mr. Buesch, have you no decency ?


Les commentaires de l'article de cet article d'Undeadly sont également très polarisés :

Coté OpenBSD on pense que :

* Michael Beusch made a public spectacle out of Marcus' mistake. It should have been addressed privately between developers, and then broadcast publicly if discussions were unsuccessful. Regardless of whether you believe Marcus' actions were a mistake or a theft, you must give someone with his track record the benefit of the doubt. By embarrassing him publicly, Michael destroyed Marcus' motivation to work in bcm(4) and benefit the non-GPL user communities.

* These are true Marcus' rights:
- to be respected as a human,
- and not to be crucified for mistake.
This so-called "GPL Philosophy" is just another kind of lie.


Alors que coté Linux on souligne que :

* What a joke. There's no way what Marcus did was a "mistake". Or if he did, why did he get approval from other openbsd developers? Or were those commits from him "unreviewed" (unlike many others)? How could be "accidently" commit the changes to cvs.openbsd.org? The claim that it was an "accident" is like Clinton saying what Monica did was not an act of sex.
The Linux folks have done everything right here.

* I have no sympathy for Marcus Glocker being caught as what he is, a thief. Taking GPL stuff and checking it into an OpenBSD tree under a different license is a copyright violation and theft. Pulling bcw(4) from the CVS and not standing up in public and defend his work is more indication that he knew all too well.


Le bilan :

Le driver bcw n'existe plus dans le dépot CVS d'OpenBSD et Marcus Glocker a abandonné le projet. Les développeurs d'OpenBSD sont exaspérés et les développeurs Linux sont outragés. Triste.

> Lire le journal (78 commentaires, moyenne: 4,8).  

Vous avez demandé le commentaire #819052.

pour une fois...

Posté par farvardin () le 06/04/2007 à 16:10. (lien). Évalué à 3.

en ces périodes de machines à voter, de grands et petits candidats, et actuellement d'une majorité*** de journaux qui n'ont pas trop de rapport avec l'informatique (même si ce n'est pas une obligation, au dessus d'un certain seuil cela devient lourd...) cela ferait presque plaisir d'avoir un journal en rapport avec les Unix, mais là manque de pot la nouvelle n'est pas super réjouissante.

Pas bien vu de la part du développeur linux de ne pas avoir contacté en privé en premier le "recopieur" sous openbsd, mais pas bien vu non plus du grand gourou openbsd d'être monté sur ses grands chevaux alors qu'ils étaient en tort au point de vue de la licence (il est plus tatillon lorsqu'il s'agit d'éviter d'incorporer des parties non libres que des parties sous licence GPL...)
Dommage que cela ne se soit pas fini à l'amiable.


*** ps : merci à l'auteur du journal sur ZFS dans FreeBSD pour avoir relevé un peu le niveau des journaux actuels...

  • [^]Re: pour une fois...

    Posté par GCN (Jabber id, page perso, ) le 06/04/2007 à 17:01. (lien). Évalué à 6.

    Meuhh nan voyons !

    Dans le monde du libre il y a même des réconciliations: http://www.pcinpact.com/actu/news/35718-compiz-beryl-fusion.(...) ou les dévs se font pleins de bisous partout !

    PS: Oui je sais, lien PCINpact tout ça....

    --
    The UNIX way of sex:
    date;cd ~;gunzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep

    [+] [^]Re: pour une fois...

    Posté par Hank Lords (Jabber id, ) le 07/04/2007 à 11:05. (lien). Évalué à -2.


    (il est plus tatillon lorsqu'il s'agit d'éviter d'incorporer des parties non libres que des parties sous licence GPL...)


    Ben c'est normal, les developpeurs GPL sont d'habitude plus compréhensif que les developpeurs proprio quant à la réutilisation de leur code. Même si il refuse de mettre son code en licence BSD, un developpeur GPL peut comprendre qu'on se serve temporairement de son code dans les préversions d'un logiciel BSD.

    • [^]Re: pour une fois...

      Posté par farvardin () le 07/04/2007 à 11:47. (lien). Évalué à 4.

      Ben c'est normal, les developpeurs GPL sont d'habitude plus compréhensif que les developpeurs proprio quant à la réutilisation de leur code.


      ben pas trop quand même s'il y a incompatibilité de licence. Si le code GPL passe de façon furtive dans un driver BSD, et que des developpeurs pour des produits propriétaires, cela veut dire que le code GPL se retrouvera dans un produit qui utilisera abusivement sa licence (même si le développeur pensait uniquement reprendre du code BSD).

      A mon avis c'est surtout cela que craignait le développeur linux, plus que de savoir que son développement profiterait à la communauté bsd, pour leur mettre des bâtons dans les roues. Il proposait même de mettre une partie sous BSD pour les aider, mais comme sa plainte initiale n'a pas été très adroite, cela n'a pas fini avec pleins de bisous partout comme pour la fusion beryl / compiz.

      • [^]Re: pour une fois...

        Posté par Hank Lords (Jabber id, ) le 07/04/2007 à 12:08. (lien). Évalué à 0.

        J'ai pas dit que ça ne posait pas de problèmes, j'ai dit que ça posait moins de problèmes dans le cas d'un logiciel en GPL que dans le cas d'un logiciel proprio, puisque les deux communautés GPL et BSD ont des buts assez proches.

        • [^]Re: pour une fois...

          Posté par farvardin () le 07/04/2007 à 12:19. (lien). Évalué à 1.

          mais non, cela pose le même problème "moral" de repomper du code sous licence, que cela soit sous licence GPL ou propriétaire, seulement la puissance d'action (financière et juridique) de l'un est moins forte que celle de l'autre, et dans le cas de code fermé cela implique le vol "physique" du code qui sans cela n'aurait pas été divulgué.

          • [^]Re: pour une fois...

            Posté par Hank Lords (Jabber id, ) le 07/04/2007 à 12:33. (lien). Évalué à 2.

            Non ça ne pose pas le même problème moral. Ca pose le même problème légal. C'est interdit, c'est tout.
            Pour la puissance d'action, il y a des entités très riches qui font du libre et des très pauvres qui font du proprio aussi.

            En tant que developpeur GPL je serais assez indulgent dans l'utilisation de mon code par des BSDistes pour aider au developement d'un de leur logiciels. Un developpeur proprio n'aura pas ce raisonnement.

            • [^]Re: pour une fois...

              Posté par farvardin () le 07/04/2007 à 15:45. (lien). Évalué à 5.

              pas faux, par contre en tant que développeur GPL accepterais-tu de laisser ton code pour des développeurs propriétaires pour les aider à développer leurs logiciels ? En laissant copier ton code sans préavis dans du BSD, cela ouvre la porte à l'entrée de ton travail dans du code propriétaire.

              Après, je n'ai pas dit que BSD était mieux ou moins bien que GPL, juste que logiquement des développeurs GPL n'ont pas à tolérer que leur code passe dans du code BSD de la façon dont cela a été fait, bien qu'il soit également logique que les communauté BSD et Linux n'aient pas à se tirer dans les pattes mais essayent plutôt de s'entraider.

              • [^]Re: pour une fois...

                Posté par patrick_g (page perso, ) le 07/04/2007 à 17:32. (lien). Évalué à 8.

                >>> bien qu'il soit également logique que les communauté BSD et Linux n'aient pas à se tirer dans les pattes mais essayent plutôt de s'entraider.

                Je crois que le souci réside dans le fait que le driver Linux sous GPL incorpore une fonctionnalité qui n'existe même pas dans le driver proprio de Broadcom. Les devs Linux étaient fiers d'avoir un driver libre supérieur à celui de Broadcom et ils ne voulaient évidemment pas que cette entreprise puisse récupérer leur code.
                Je pense que c'est pour ça qu'ils ont réagi vite quand ils se sont aperçu que leur code était sur le CVS d'OpenBSD donc potentiellement pompable par Broadcom.

              [^]Re: pour une fois...

              Posté par djibb (Jabber id, page perso, ) le 07/04/2007 à 17:50. (lien). Évalué à 10.

              Personnellement, si j'étais développeur (ce n'est pas le cas, à mon grand désarroi) d'un soft en GPL, je RE-FU-SE-RAI la BSDisation de mon code.

              Si j'ai choisi, en tant que développeur une licence, ce n'est pas pour des prunes ! Et j'aurais pu prendre une BSD. Or, j'ai pris une GPL.

              Ceci signifie, entre autres, que j'éxècre ce qui est propriétaire et voir passer mon code du coté proprio par la passerelle BSD me serait insoutenable.

              Après, celui qui choisit du BSD, il choisit du BSD, c'est son choix. Mais c'est MON choix de faire du GPL et j'entends qu'on le respecte.

              Je suis complètement du côté de Michael.

              • [+] [^]Re: pour une fois...

                Posté par moo2 () le 07/04/2007 à 21:54. (lien). Évalué à -1.

                Si j'ai choisi, en tant que développeur une licence, ce n'est pas pour des prunes ! Et j'aurais pu prendre une BSD. Or, j'ai pris une GPL.

                Pas forcement. Tu as pu par faignantise utiliser une lib sous GPL avec aucun équivalent sous BSD et mettre ton programme sous GPL grâce à la clause virale[1] (vécu)

                [1] Pour gagner du temps : gnagna viral pas jolie mot gnagna demago Microsoft ! Oui, ben sur ce point je leur donne pas tord

                • [^]Re: pour une fois...

                  Posté par djibb (Jabber id, page perso, ) le 08/04/2007 à 07:28. (lien). Évalué à 5.

                  et il est où le problème ?

                  L'auteur de la lib VEUT que tout code dérivé de sa lib soit libre. Donc il fait de la GPL. Si il se fiche de ce que donnera son code dérivié, il fait du BSD.

                  Conclusion : fallait pas utiliser sa lib si tu voulais pas de GPL.

                  C'est pourtant hyper simple.

                  NB : fainéantise et tort.

                  • [^]Re: pour une fois...

                    Posté par Moonz () le 08/04/2007 à 17:58. (lien). Évalué à 0.

                    La BSD n'est pas libre ?
                    Le licence de la lib lui a empêché de le mettre sous BSD, je pense que c'est à ça dont il pensait...

                  [^]Re: pour une fois...

                  Posté par imalip (page perso, ) le 08/04/2007 à 07:55. (lien). Évalué à 4.

                  Tu as pu par faignantise utiliser une lib sous GPL avec aucun équivalent sous BSD et mettre ton programme sous GPL grâce à la clause virale[1] (vécu)

                  Gneeeee ? Si tu utilises une lib GPL, *rien* ne t'impose de mettre ton code explicitement sous la meme licence. Ce qui t'est impose, c'est d'avoir une licence compatible, ce qui est le cas de la BSD, la MIT, BDB, CeCILL, etc...

                  Faudrait arreter de raconter des conneries, et celle-la ca commence a me gonfler de la corriger a chaque fois.

                  --
                  "While a monkey can be a manager, it takes a human to be an engineer" Erik Zapletal
                  • [^]Re: pour une fois...

                    Posté par Matthieu C () le 08/04/2007 à 09:25. (lien). Évalué à 2.

                    Faudrait arreter de raconter des conneries, et celle-la ca commence a me gonfler de la corriger a chaque fois.
                    C'est pas une si grosse connerie que ca :
                    le binnaire distribué qui se linke avec la lib GPL doit etre distribué sous GPL.

                    Donc meme si donc code est sous BSD, c'est pu vraiement du BSD puisque t'est obliger de respecter les règles de la GPL (fournir les sources, ...).

                    C'est d'ailleur une des différences entre la GPL et la LGPL.

                    • [^]Re: pour une fois...

                      Posté par imalip (page perso, ) le 08/04/2007 à 12:37. (lien). Évalué à 4.

                      Mais la tu parles de binaire. Au niveau source, contrairement a ce que raconte moo2 *absolument rien* n'impose de mettre son code sous GPL. Et le mettre sous BSD peut permettre a quelqu'un de porter l'appli pour utiliser une autre lib en BSD/MIT/..., auquel cas il serait tout content d'avoir un truc entierement sous licence BSD. Ca veut aussi dire qu'une autre personne peut reprendre juste une partie du code pour l'integrer a un autre projet sans avoir quoi que ce soit a voir avec la GPL.

                      Je suis le premier a dire que cette clause m'a deja pose probleme et qu'a cause de ca je prefere la LGPL ; mais quand je lis que "parce tu utilises une lib GPL donc tu es oblige de mettre ton code sous GPL", je suis desole, ca reste une connerie.

                      --
                      "While a monkey can be a manager, it takes a human to be an engineer" Erik Zapletal

                    [^]Re: pour une fois...

                    Posté par baud123 (Jabber id, page perso, ) le 08/04/2007 à 11:54. (lien). Évalué à 4.

                    Pour être plus complet, si tu linkes en dynamique (les .so) effectivement, pas besoin de passer en GPL ou même une licence compatible.
                    En revanche, si tu linkes en statique (les .a), dans ce cas la GPL s'applique au binaire distribué et t'amène à fournir le source de ton code aux conditions de modification/distribution de la GPL (dans la licence retenue). Le vaccin de la GPL s'applique à la globalité et permet à d'autres d'utiliser le source (mais qui garde sa licence tout de même, tant qu'elle est compatible GPL).