[image of a Brave GNU World]
Brave GNU World Numéro 25
Copyright © 2001 Georg C. F. Greve <greve@gnu.org>
Traduction [FR] : Pierre Libotte <plibotte@gmx.net>
Permission statement below.

[DE | EN | FR | JA | ES | KO | PT]

Bienvenue dans ce nouveau numéro du Brave GNU World de Georg avec, tout d'abord, un projet qui tente de faire entrer le GNU dans le monde Apple.

GNU-Darwin

Le projet GNU-Darwin [5] a pour but de porter le système GNU vers Darwin [6], coeur du système d'exploitation propriétaire MacOS X. Darwin lui-même repose sur FreeBSD et Mach 3.0 et tourne actuellement sur architecture PowerPC. Apple travaille cependant au portage sur architectures Intel. Ainsi, après GNU/Linux and GNU/Hurd, c'est un troisième système GNU qui sera disponible.

Caractéristique très intéressante du système GNU-Darwin : la possibilité de faire tourner des applications Macintosh parallèlement aux programmes Unix traditionnels. Ceci permet de comparer directement les applications Macintosh et GNU, chose jusqu'ici impossible. Voilà qui rend GNU-Darwin particulièrement approprié aux structures hybrides Mac/Unix et, grâce au port de SAMBA vers GNU-Darwin, aux réseaux hétérogènes Mac/Unix/Windows, désormais faciles à implémenter.

Mais bien sûr, l'utilité première de GNU-Darwin n'est pas de faire tourner du logiciel propriétaire, mais plutôt de jeter un nouveau pont entre la plate-forme Macintosh et le logiciel libre : l'utilisateur constatera rapidement qu'il existe pour sa machine davantage de logiciels libres que de propriétaires. De plus, les applications développées sur GNU-Darwin se prêteront mieux à l'intéropérabilité avec MacOS X, ce qui assurera l'entrée du Libre dans ce monde par la grande porte.

La grande quantité de logiciels libres Unix, les capacités uniques des structures hétérogènes et le développement en parallèle sont autant d'arguments qui plaident en faveur de GNU-Darwin en remplacement de MacOS X.

Par ailleurs, GNU-Darwin présente plusieurs avantages sur le projet LinuxPPC ; voilà pourquoi l'utilisateur pourra envisager sereinement une migration vers GNU-Darwin. Tout d'abord, GNU-Darwin, à l'instar de GNU/Hurd, repose sur un micro-noyau lui conférant des possibilités inconnues dans le noyau Linux. Ensuite, la prise en charge du matériel est le fait d'Apple lui-même, puisqu'elle constitue également la base de MacOS X. L'on peut donc s'attendre à une amélioration de ce point de vue.

Mais tout n'est pas rose pour autant. Bien que les contributions du projet GNU-Darwin soient bien entendu placées sous LPG GNU, Darwin lui-même est sorti sous Apple Public Source License (APSL). Dans sa version 1.1, cette licence ne satisfaisait pas aux conditions nécessaires afin d'obtenir le statut de Logiciel Libre, et ce pour trois raisons [7].

En premier, l'interdiction d'apporter des modifications en fonction de son usage personnel sans les rendre publiques au préalable. Au sens du projet GNU, le droit de se tailler des applications sur mesure est intimement lié au droit à la vie privée ; voilà pourquoi la LPG le reconnaît expressément.

Ensuite, le développeur ainsi que l'utilisateur non scientifique d'une version modifiée étaient tenus de le notifier à une institution specifique (en l'occurrence, Apple). Ce contrôle centralisé est en contradiction directe avec l'idée même de logiciel libre.

Enfin, une clause permettait à Apple de dénoncer la licence et de mettre fin à l'utilisation de l'application à tout moment dès l'ouverture contre Apple d'une procédure concernant le droit de copie ou le brevetage. Ceci soumettait tout utilisateur de la planète à la très problématique législation américaine en matière de brevets.

La version 1.2 de l'APSL, sortie en janvier 2001, résoud une grande partie des problèmes ; la restriction en matière de modifications personnelles et les problèmes de respect de la vie privée qu'elle entraîne y figurent cependant toujours.

D'une certaine manière, l'APSL se rapproche donc progressivement de la NPL, qui est sans conteste une licence de logiciel libre, bien qu'elle autorise la propriétarisation du code source. Si l'APSL rejoignait totalement la NPL sur ce plan, ce serait loin d'être satisfaisant dans la mesure où elle resterait très probablement incompatible avec la licence libre la plus largement utilisée, la LPG.

La situation est dès lors comparable à celle de KDE il y a quelques années : celle d'un logiciel libre propre, mais reposant sur des bases branlantes et courant donc le risque de vaciller sous le moindre assaut juridique. Voilà pourquoi les responsables du projet mettent tout en oeuvre pour sortir Darwin sous LPG GNU. C'est tout spécialement dans son plaidoyer en faveur de cette cause que Michael L. Love, un des participants au projet, attend le soutien de la communauté. Au yeux de ses responsables, GNU-Darwin ne sera vraiment libre que lorsque Darwin sera sous LPG.

Sur le plan technique, les objectifs sont avant tout de porter davantage de paquetages vers GNU-Darwin et de créer une distribution sur CD. A plus long terme, les capacités spécifiques à GNU-Darwin seront mises au service de toute une série de projets intéressants.

Comme l'équipe n'est pour l'instant constituée que de six développeurs actifs, un champ très large d'activités s'ouvre aux intéressés. Ce sont surtout ceux qui ont une large expérience de Mozilla, SDL, GNOME et de la prise en charge de l'audio (ALSA) qui seront reçus à bras ouverts.

Soit dit en passant, GNU-Darwin trouve son origine dans la volonté de Michael L. Love d'utiliser son Apple dans la cristallographie protéïnique, son domaine d'activités habituel.

Passons maintenant à une série de projets de moindre envergure, mais d'une grande utilité.

get_file

Daniel E. Singer nous propose get_file [8], un petit sélecteur de fichiers écrit en Bourne Shell. L'utilité de ce projet sautera immédiatement aux yeux de quiconque a jamais essayé d'amener l'utilisateur à sélectionner des fichiers dans ses propres scripts shell. Bien que l'appel par d'autres scripts soit manifestement la fonction première de get_file, il peut également être utilisé comme outil de ligne de commande.

Comme il s'agit d'un script shell Bash complet, il ne doit pas être compilé et est simple à adapter. Doté de la capacité d'attribuer des séquences d'échappement à différents types d'objets réels ou virtuels, il peut changer les modes de fichiers, exécuter des programmes et utiliser des métacaractères. Il dispose également d'une aide en ligne.

Même si sa qualité de script shell limite son efficacité, ce projet peut se révéler utile dans le cadre de solutions «à la volée».

GNU GLOBAL

GNU GLOBAL [9] est un système qui simplifie la gestion et le référencement de code source, qualifié de «source code tag system». Ecrit par Shigio Yamaguchi, il a été publié sous LPG GNU, ce qui vient de lui conférer sans aucun problème le statut de projet officiel GNU.

On a tôt fait de perdre le fil devant de nombreuses lignes de code source «plat», d'autant plus lorsqu'elles sont réparties sur plusieurs répertoires. Grâce à GNU GLOBAL, l'utilisateur peut, à partir de C, C++, Yacc ou Java, établir un matériau de référence disponible en ligne de commande shell, dans Less, Nvi, Elvis, EMACS ou sur la toile. Voilà qui facilite le suivi ou la prise en marche, surtout dans le cas de grands projets.

GNU GLOBAL est d'ores et déjà richement doté : il localise les définitions d'objet, mais aussi les références ; il explore les chemins d'accès aux bibliothèques ; il comprend les expressions régulières POSIX, utilise un format compressé pour économiser l'espace disque, et bien d'autres choses encore. Mais bien entendu, tous les problèmes ne sont pas encore réglés.

Premier objectif pour la suite des opérations : l'automatisation totale de la détection de types de fichiers et de définitions de macros. La prise en charge d'autres langues et d'autres éditeurs est également au programme.

Etant donné que la version CVS actuelle de GNU automake dispose déjà d'une cible GTAGS (le format d'indexage de fichiers qu'utilise GNU GLOBAL), il faut s'attendre à ce que la mise en oeuvre de GNU GLOBAL ne pose plus aucun problème dans un avenir très proche.

Le projet suivant, à la finalité comparable, suit des priorités différentes.

HeaderBrowser

Le HeaderBrowser [10] d'Amaury Bouchard vise également à mieux documenter le code source. Il s'inspire du HeaderViewer de NeXT, qu'Amaury souhaitait réimplémenter sur plate-forme Unix, tant il le tenait pour réussi.

A l'instar de GNU GLOBAL, le HeaderBrowser fait table rase de la structure «plate» du code source et génère, avec possibilité de navigation, une documentation de l'API d'un programme par traitement des fichiers d'en-tête. Dans son état actuel, le HeaderBrowser prend en charge le C et le C++ et dispose de générateurs HTML, Texinfo et man-pages.

A l'avenir, les fonctions s'enrichiront de la navigation alphabétique. Un utilisateur a également suggéré d'écrire un outil qui analyserait les fichiers d'en-tête et créerait des commentaires HeaderBrowser vides que le développeur n'aurait qu'à remplir. Vus les sentiments mitigés que nourrissent les développeurs envers la documentation, ceci ne pourrait qu'améliorer la qualité de nombreux programmes.

Les licences retenues sont la LPG et la GNU Free Documentation License (FDL) pour la documentation, il s'agit donc d'un programme libre au sens le plus noble du terme.

GNUTLS

GNUTLS [11] est un projet jeune visant à implémenter une bibliothèque transport layer security (TLS) sous LPG GNU. Cette bibliothèque donnera accès aux couches SSL 3.0 et TLS 1.0 et devrait permettre aux programmeurs d'ajouter facilement une couche de sécurité à leurs applications.

Aujourd'hui, GNUTLS accuse toujours un retard par rapport à la bibliothèque OpenSSL, dans la mesure où il n'a pas encore été testé à fond ni mis en oeuvre dans des conditions réelles. Mais il ne présente d'ores et déjà plus aucun risque pour la stabilité du système et ce, avec une interface bien plus conviviale. Et puis, c'est un atout que de disposer d'une implémentation TLS qui soit clairement compatible avec la LPG GNU.

Actuellement, GNUTLS n'est pas encore mûr pour une utilisation sur le terrain. D'abord, il n'y a pas encore d'analyseur syntaxique ASN.1 pour certificats x509, mais plus pour longtemps puisque l'auteur, Nikos Mavroyanopoulos, y travaille en ce moment. Comme son co-équipier, Tarun Upadhyay, a dû quitter le projet faute de temps, toute assistance sera la bienvenue.

Plus tard, il est prévu de prendre en charge les extensions spécifiées dans le projet internet «Wireless Extensions to TLS», ainsi que l'OpenPGP, absent pour l'heure de toute autre implémentation libre de TLS. Pour des raisons évidentes, GNUTLS est basé sur libgcrypt, la bibliothèque du GNU Privacy Guard Project de Werner Koch, désormais bien connue depuis son adoption par le gouvernement allemand.

J'en arrive maintenant à un projet capital pour nous tous.

GNU.FREE

Le projet «Free Referenda & Elections Electronically» (FREE) [12], dû au départ à l'University of Warwick (Etats-Unis), et désormais entre les mains de Jason Kitcat, a lui aussi été récemment élevé au rang de projet officiel GNU. Son but est de créer un système de vote électronique sécurisé et donc de nature à protéger la vie privée.

Le concept date d'il y a déjà deux ans ; il n'a donc pas été, comme on pourrait le penser, lancé en réaction au fiasco électoral en Floride. Mais cette manipulation patente d'un scrutin a ravivé l'intérêt de l'opinion publique pour les fondements de la démocratie, les élections et le comptage des voix.

Les avis sont partagés quant à l'«e-démocratie», et je ne suis moi-même pas convaincu du bien-fondé de la mise en place d'un système plus direct, qui donnerait certainement encore davantage de pouvoir aux démagogues que ce n'est le cas aujourd'hui. Pour moi, le débat sur la légitimité du vote électronique est loin d'être terminé.

Mais l'expérience a montré que nous devons nous attendre à une forte tendance à l'«e-démocratie», et je ne pense pas que nous puissions nous permettre de l'ignorer du simple fait de nos doutes sur sa justification.

Dans un système conventionnel, peu de gens seraient prêts à confier l'organisation d'élections à une entreprise privée. Dans un tel cas de figure, l'électeur se rendrait dans les locaux de ladite entreprise afin d'accomplir son devoir électoral, pour, le soir même, en apprendre les résultats par la voix de la même entreprise, sans aucune possibilité de contrôle. Transposé dans le monde numérique, avec toutes les possibilités de manipulations qu'il offre, ce modèle ouvre une voie royale à la majorité.

J'en ai fait l'expérience début février, à la Transmediale à Berlin, où j'ai participé à un panel sur le «Logiciel Social.» Un exemple très proche de celui que je viens d'exposer y a reçu un accueil chaleureux.

Le logiciel social doit être libre. Ce n'est qu'ainsi que les droits de l'homme pourront être préservés dans une culture de plus en plus numérique. Dès lors, indépendamment de tout avis personnel sur le bien-fondé de la «démocratie électronique», j'estime capitale l'existence même de GNU.FREE.

Revenons-en à présent aux aspects techniques.

Le système a été conçu de manière à tenir compte de l'échelle. Jason a pensé aux démocraties de la taille de l'Inde (la plus grande du monde). Avec GNU.FREE, on peut tout organiser, depuis le choix des membres du comité d'une association jusqu'aux élections au Parlement européen.

Bien sûr, garantir la sécurité et le respect de la vie privée a été un souci constant tout au long du développement, et Jason affirme que, de ce point de vue, le projet repose sur des bases solides. Une fois le système correctement configuré, rien, si ce n'est la destruction physique des serveurs par un incendie ou quelque autre catastrophe, ne pourrait compromettre le bon déroulement des élections ; or, ces menaces pèsent également sur les systèmes traditionnels.

En regard de ses ambitions, le projet est d'une ampleur relativement réduite. Outre Jason, ce sont Rajagopal C.V., Thomas Müller, Ceki Gulcu, Neil Ferguson et Paul Voller qui y ont contribué. Toute aide sera la bienvenue, spécialement dans les tests et la détection d'éventuels problèmes de sécurité.

L'adjonction de nouvelles couches d'encryptage et l'élimination des bogues sont désormais au centre des préoccupations de l'équipe de GNU.FREE. En outre, il est prévu de prendre en compte différents types de scrutin, car, dans l'état actuel, seule une comparaison directe entre nombres de suffrages est possible.

A la prochaine...

Voilà tout pour ce mois-ci. Comme toujours, j'attends un déluge de commentaires, d'idées, de questions et de descriptions de projets à l'adresse habituelle [1].

Info
[1] Send ideas, comments and questions to Brave GNU World <column@brave-gnu-world.org>
[2] Home page of the GNU Project http://www.gnu.org/
[3] Home page of Georg's Brave GNU World http://brave-gnu-world.org
[4] "We run GNU" initiative http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html
[5] GNU-Darwin home page http://gnu-darwin.org
[6] Apple Darwin home page http://www.publicsource.apple.com/projects/darwin/
[7] Why the APSL is not a Free Software license http://www.gnu.org/philosophy/apsl.html
[8] get_file FTP address ftp://ftp.cs.duke.edu/pub/des/scripts/get_file
[9] GNU GLOBAL home page http://www.tamacom.com/global/
[10] HeaderBrowser home page http://www.headerbrowser.org
[11] GNUTLS home page http://gnutls.hellug.gr/
[12] GNU.FREE home page http://www.thecouch.org/free/

[ Numéro précédent | Page d'accueil du Brave GNU World | Numéro suivant ]

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org.
There are also other ways to contact the FSF.

Please send comments on Georg's Brave GNU World (in English or German) to column@gnu.org,
send comments on these web pages to webmasters@www.gnu.org,
send other questions to gnu@gnu.org.

Copyright (C) 2001 Georg C. F. Greve

Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.

Last modified : $Date: 2002/02/13 17:52:13 $ $Author: r4f $