lundi, juin 09, 2008

Eben Moglen moderne ouvrier à la trôle

Quel choix plus judicieux de l'OW2 pour recevoir à Paris Eben Moglen que celui de l'étroite cour chargée d'histoire donnant sur le Faubourg Saint-Antoine, « le cratère d'où s'échappa le plus souvent la lave révolutionnaire » ! Eben Moglen, avocat et professeur de droit, est avec Richard Stallman l'artisan des dernières évolutions de la GNU Public Licence (GPL) qui aboutirent à la publication de la version 3, dernière en date. Et de la tension entre système légaux et règles corporatistes, dont il est abondamment question dans la GPL v3, il y a bien longtemps que ce quartier du Paris ouvrier en abritait les querelles ! Autorisés par Louis XI à travailler librement dans dans le domaine à l'époque de l'abbaye Saint-Antoine, chassissiers, charpentiers de la grande et de la petite cognée, huchiers et ébénistes se regroupèrent en une vibrante communauté. Les règlements de la corporation, datant de 1290, furent assouplis en 1657 par Colbert pour « libérer la croissance » dirait on aujourd'hui, avant d'être resserrés et durcis en 1740, dans un esprit du temps pas très éloigné de celui qui prévaut actuellement, « pour oster les fraudes, les décevances et les mesprentures du mestier » ; leur disparition formelle fut l'oeuvre de Turgot à partir de 1776. Ce qui n'empêcha pas les explosions populaires ultérieures, incendies et pillages en 1789, barricades en 1830 et 1848, après le licenciement des Ateliers nationaux — déjà les méfaits rampants de la mondialisation, vous dis-je —, et en 1851 pour protester contre le coup d'état du prince-président. À proximité immédiate donc de la trôle de naguère, tuée par la fabrication en série, entre la Fontaine Trogneux et l'enseigne disparue du « Soldat Cultivateur », Eben Moglen présentait magistralement cette réédition moderne des débats séculaires qui avaient soulevé les passions du quartier parisien.



L'élaboration de la GPL V3, dixit Mogen, fut, comme pour les réglementations d'antan, un processus à la fois social et politique même s'il ne s'est pas manifesté par des pillages, des incendies ou des barricades. (Quoique, si l'on veut bien compter les modes « virtuels » de manifestations sur le Web...) Et en premier, la GPL v3 essaye de s'éloigner du caractère très centré sur le droit du copyright américain qui avait présidé à la GPL v2. Pour l'anecdote, Eben Moglen raconte que lors de multiples rencontres avec les autorités européennes de Bruxelles celles-ci sont systématiquement revenues sur l'usage du langage statutaire (issu du glossaire du copyright américain), et exigés que paragraphes et parties soient titrés et numérotés successivement à partir de 1. Autant ces premières exigences ont-elles été satisfaites rapidement, la dernière, cependant, devait heurter au plus profond le mysticisme éclairé de Stallman qui ne saurait envisager d'autre numérotation que celle, comme en C, qui ne commence par 0 ! La GPL v3 a donc été conçue pour être « transnationale » et compatible du mieux possible avec les législations locales : pour ce faire elle s'interroge sur comment « donner la permission » plutôt que sur « imposer des restrictions ». Une première conclusion se dégage alors : l'interprétation de la GPL v3 peut dépendre du droit local (souvent national).



Il y a donc distinction entre « l'état de fait », la « propagation » du code qui couvre tout ce qui n'en est pas l'exécution à proprement parler, qui relève d'un jugement technique d'une part et la « transmission » du code qui a trait à la permission effective de le recevoir et relève d'un jugement de droit local. Toutes les difficultés tournent ensuite autour d'une définition appropriée de la notion d'oeuvre. Doit-on considérer qu'une application résultant de liens statiques entre codes, dont certains sont sous le régime GPL, constitue une seule oeuvre ou non ? Et si l'édition de liens est dynamique à l'exécution comme en Java ? Les mêmes questions se posent pour les applications bâties sur une architecture orientée services qui distingue, par exemple, conteneurs et composants (que l'on songe aux serveurs d'applications, Beans, servlets et JSP), ou bien de services qui s'interposent entre application cliente et serveurs. Ces subtilités se composent avec le développement de nouvelles formes de livraison et d'accès au logiciel : hébergement propriétaire ou public, SaaS (Software As A Service), bientôt cloud computing.



Par ailleurs, la GPL a également ses variantes pour répondre à des besoins ad hoc de certains éditeurs et utilisateurs. Pour l'illustrer, Eben Moglen insiste sur le contraste entre la LGPL, qui ajoute de nouvelles permissions à la GPL, et l'Affero GPL (AGPL) qui, à l'inverse, ajoute de nouvelle restrictions à la GPL. Dans le premier cas la LGPL autorise l'édition de liens, pourvu que l'on puisse ré-exécuter cette édition de liens après une modification ultérieure de la partie du code applicatif sous le régime GPL v3 ; l'AGPL impose que le fournisseur de services basés sur un code sous régime GPL donne accès à ses utilisateurs au code source postérieurement modifié de la partie du code sous GPL v3. (Le contre-exemple est ici Google dont l'approche de la fourniture de services est propriétaire, alors que le repoussoir habituel de Moglen et Stallman reste le plus souvent Microsoft.)



D'autres sujets abordés par la GPL v3 masquent d'acrimonieux débats et des sourdes luttes d'influence entre les grands industriels du secteur. L'abandon des poursuites sur les brevets, par exemple, doit beaucoup d'après Moglen au radicalisme d'IBM et de HP sur le sujet de la brevetabilité du logiciel. La position de la GPL v3 sur le matériel — comment la « liberté » d'un logiciel s'étend-elle ou non aux autres terminaux et matériels sur lesquels il peut être amené à fonctionner ? — doit ici beaucoup au lobbying de Sun Microsystems en vue de protéger la source, considérable d'après Moglen, de revenus que représentent les licences Java pour les téléphones cellulaires. Le compromis offert par la GPL v3 repose sur une définition du « consumer device » (terminal ou appareil grand public), qui exclut les systèmes d'armes (!), les instruments médicaux, les réseaux sécurisés défense, etc. qui sont de facto exclus du champ de la GPL v3. Mais cette définition de l'appareil grand public est elle-même issue de la législation du droit de garantie aux USA : a-t-elle une valeur internationale ?



On le voit, il n'y a pas que dans le domaine de la programmation et du code que la complexité s'amplifie. Il faut envisager un temps où tout texte de code source et tout service Web devra être accompagné d'un meta-texte légal aussi complexe, voire plus, en décrivant le régime d'usage et les permissions et restrictions qui lui sont associées. (Pourquoi dès lors ne pas imaginer des compilateurs, des éditeurs de liens et des environnements de programmation intégrant directement un paramétrage légal en fonction des licences des différents composants logiciels développés et employés ? Un « Legal Studio 2009 », un « Safe Harbor Eclipse IDE », une option « -legalese » pour tous les compilateurs ? ) Où sera alors la valeur pour l'utilisateur, dans le code source ou dans le code légal ?

ShareThis