[LinuxFocus-icon]
LinuxFocus article number 241
http://linuxfocus.org

Georges Tarbouriech
par Georges Tarbouriech
<georges.t/at/linuxfocus.org>

L´auteur:

Georges est un vieil utilisateur d'Unix. En tant qu'inconditionnel de NeXTSTEP, il aime beaucoup ces projets libres offrant l'apparence et le comportement (et plus encore) de ce système extraordinaire.



Traduit en Français par:
Georges Tarbouriech <georges.t/at/linuxfocus.org>

GNUMail.app, la preuve de portabilité

GNUMail.app

Résumé:

GNUMail.app est un clone du Mail.app de NeXT, fonctionnant sous GNUstep et MacOS X. Le même code source permet d'utiliser ce superbe logiciel sur différentes plates-formes. En conséquence, il est la preuve irréfutable de la portabilité des applications entre GNUstep et MacOS X.


_________________ _________________ _________________

 

Il était une fois...

A la fin des années 80, un nouveau système d'exploitation appelé NeXTSTEP. Cet OS offrait ce que nous n'avions jamais vu auparavant. Parmi beaucoup d'autres "choses", il proposait aux utilisateurs le tout premier client de courrier électronique entièrement graphique, Mail.app. Non seulement il était graphique, mais il pouvait gérer tous les types de données : les images, les sons, etc.
Quelques années plus tard, NeXT décidait de porter NeXTSTEP vers d'autres plates-formes : OpenStep était né.
A partir de là, quelques individus commencèrent à travailler sur des projets libres offrant la même philosophie. Le projet le plus important est bien sûr GNUstep, puisque son but est de proposer une version libre d'OpenStep. Les gens de GNUstep font un travail formidable, surtout si l'on considère l'ampleur du projet.
Un autre projet d'envergure se nomme Window Maker. Ce gestionnaire de fenêtres fait partie du projet GNUstep. En visitant ces deux sites, vous saurez tout sur ces deux grands projets libres. Vous pouvez aussi jeter un coup d'oeil sur ces "vieux" articles de LinuxFocus : Window Maker, ou NeXTStep, le retour et GNUstep, l'OpenStep open source. (Allons, les "intégristes", ce titre n'était que pour jouer autour du mot "open" : nous savons tous que GNUstep c'est du logiciel libre !).
Pour terminer avec ce bref historique, ajoutons que le fondateur de NeXTSTEP n'a jamais oublié l'avance de son "enfant". Il l'a vendu à Apple (dont il est le co-fondateur...), est rentré "à la maison", et il est devenu le président par intérim d'Apple. Cela nous a valu MacOS X, qui n'est autre que NeXTSTEP à la sauce Apple. Et nous y voici : GNUstep et MacOS X ont de nombreux points communs. Ainsi, on peut s'attendre à une compatibilité entre les applications et le code source. Comme GNUstep est capable de fonctionner sur de nombreuses plates-formes (de manière plus ou moins stable), la portabilité devient grande ouverte. Pour information, GNUstep fonctionne sur la plupart des BSD, des distributions Linux, Solaris, Irix... et même sous Windos.
D'autres projets sont en plein développement : le port de Darwin (le coeur d'OS X) sur architecture Intel ix86. Voir http://gnu-darwin.sourceforge.net/.
Vous pouvez aussi visiter http://www.linuxstep.org. Le nom suffit.
Il existe également Simply GNUstep from http://simplygnustep.sourceforge.net/ qui est une image ISO exécutable à partir d'un CD : en d'autres termes, point besoin d'installer quoi que ce soit.

NOTE : GNUstep ou le X Window System ne sont pas nécessaires sous MacOS X ! Je sais, ça peut sembler évident, mais comme on me l'a déjà demandé, je préfère insister ;-)
Et c'est le point important : la portabilité sous X vous pouvez l'appréciez tous les jours avec la plupart des saveurs d'Unix. Autrement dit, vous pouvez compiler et utiliser des applications quel que soit l'Unix : libre, propriétaire, BSD, System V... Ils ont tous un point commun : le X Window System. Malgré son nom, MacOS X (X signifie 10 et non X Window System), ne possède pas X : à la place il possède une magnifique interface nommée Aqua (basée sur Quartz, OpenGL et QuickTime). Par conséquent, ce qui semble évident sous X, devient beaucoup plus compliqué lorsqu'il s'agit d'OS possédant des systèmes graphiques aussi différents.
Cela dit, si vous voulez vraiment le X Window System sous MacOS X, sachez qu'il est disponible : vous pouvez par exemple, le télécharger à partir du site d'Apple (http://www.apple.com/downloads/macosx/unix_apps_utilities/.)
Donc, s'il fallait retenir une seule chose à propos de GNUstep, appelons-la "portabilité". Et, enfin, nous entrons dans le vif du sujet : GNUMail.app. Si vous aviez besoin d'une preuve, la voici.

 

GNUMail.app, c'est quoi ?

GNUMail.app est le résultat du travail de Ludovic Marcotte (et de ses amis) et il est distribué sous licence GPL. La partie artistique (icônes) est l'oeuvre d'Andrew Lindesay. Sur le site de GNUstep vous pouvez voir les superbes icônes créées pour le projet (dans la partie "User Apps).
Comme déjà mentionné, GNUMail.app est un client de courrier électronique, clone du Mail.app de NeXT (ou aujourd'hui, clone du Mail.app de MacOS X). Voici toute la famille : de gauche à droite, le père, le fils... et les neveux.

NeXTmail MacOS X mail GNUstep GNUMail MacOS X GNUMail

GNUMail.app a l'apparence et les caractéristiques du Mail.app de NeXT. Certes, il y a eu d'autres clients de courrier électronique à l'apparence NeXTSTEP, particulièrement destinés à fonctionner sous Window Maker. Citons par exemple, Postilion à http://www.postilion.org/ ou Aileron sur http://ucsu.colorado.edu/~nwanua/Aileron/.
Vous pouvez les considérer comme des projets arrêtés : leurs auteurs sont convaincus que GNUMail.app est bien l'étape suivante.
GNUMail.app, c'est autre chose : il est écrit en Objective C, utilise les outils de développement d'Apple (NeXT) tels que InterfaceBuilder ou ProjectBuilder côté Mac, et devrait bientôt être capable d'utiliser Gorm ou ProjectCenter côté GNUstep (ces derniers sont disponibles sur le site de GNUstep dans la section Developer Apps). Toutefois, le plus important reste le fait de pouvoir utiliser le même code source pour le compiler, que ce soit sous MacOS X ou sous GNUstep. La version en cours au moment d'écrire ces lignes est la 1.0.0. Une bibliothèque nommée Pantomime est requise, puisqu'elle est en charge de la gestion des connexions de courrier (SMTP, POP, IMAP...). La version actuelle est la 1.0.2, et, encore une fois... c'est la même qui est utilisée pour MacOS X et GNUstep. Les deux archives peuvent être téléchargées sur http://www.collaboration-world.com/gnumail/

Caractéristiques

Comme je ne vais pas réinventer la roue, voici ce que vous pouvez lire sur le site de GNUMail.app :
- Comptes POP3 multiples (avec support APOP) avec support de cache local (pour laisser les messages sur le serveur);
- Agents de distribution multiples (SMTP ou gestionnaire local);
- Support de fichier de "spool" pour la réception;
- Bon support IMAP avec cache local;
- Support complet des RFC822 et RFC2822;
- Lecture, composition, rejet, réponse et transfert de messages;
- Gestion de boîtes à lettres (création, suppression, verrouillage et transfert des messages) grâce à l'utilisation du format mbox de Berkeley;
- Gestion des Préférences personnelles;
- Support MIME (décodage et encodage);
- Gestionnaire de types MIME;
- Support de l'impression et de BASE64;
- Carnet d'adresses avec support des groupes;
- Fenêtre de recherche avec support des expressions régulières;
- Récupération automatique ou manuelle du courrier (au choix de l'utilisateur);
- Filtres puissants supportant les expressions régulières;
Ludovic espère ajouter de nouvelles caractéristiques très rapidement, telles qu'une nouvelle fenêtre de Préférences ou le support de PGP. Et vous pouvez lui faire confiance lorsque vous connaissez la vitesse à laquelle il travaille !

Ceci devrait vous donner envie de visiter le site de GNUMail.app ;-)

 

Compiler et installer GNUMail.app

GNUMail.app est disponible sous forme de code source pour MacOS X et Linux et c'est pareil pour Pantomime (rappelez-vous, il vous faut les deux). Préciser Linux est plutôt restrictif : tous les OS susceptibles de faire fonctionner GNUstep sont concernés. Par exemple, GNUMail.app fonctionne sous FreeBSD, NetBSD...
Si vous n'avez pas envie de compiler, il existe des versions binaires pour MacOS X. Vous disposez aussi de paquetages pour Debian et de "ports" pour FreeBSD. Toutefois, nous ne parlerons pas de ces versions.
Pour compiler et utiliser GNUMail.app, il est nécessaire de remplir certaines conditions.
De toute évidence, sous MacOS X, vous devez posséder les outils de développement. Sous GNUstep, il vous faut... GNUstep. Comment installer GNUstep n'entre pas dans le cadre de cet article, mais vous trouverez tout ce dont vous avez besoin sur le site de GNUstep. Recommandons quand même, une version de gcc égale ou supérieure à 3.0 pour éviter certains problèmes de compilation. Il vous faut également les versions dites "instables" de make (1.3.0), de base (1.3.0), de gui (0.7.6) et de xgps (0.7.6). Rassurez-vous, elles sont qualifiées d'instables mais fonctionnent parfaitement.

MacOS X

Tout d'abord, si vous n'avez pas lu la FAQ, sachez que vous devez décompresser les archives en utilisant dans la ligne de commande quelque chose comme tar zxvf archive.tar.gz. Des outils de décompression automatique tels que Stuff-it altèrent certains fichiers de l'archive et vous devrez donc les renommer.
Le fichier README du répertoire "docs" vous dira tout sur la compilation et l'installation de Pantomime et de GNUMail.app avec ProjectBuilder (Pantomime doit être compilé en premier). Suivre les différentes étapes vous offrira un exécutable GNUMail tout neuf.
Si vous préférez la ligne de commande, vous pouvez vous servir de pbxbuild et pbxbuild install. Si vous ne connaissez pas pbxbuild, l'aide en ligne de ProjectBuilder vous dira tout ce que vous devez savoir sur cet outil.
Pour résumer, précisons que vous ne pouvez pas installer une "cible" depuis ProjectBuilder : vous devez utiliser pbxbuild install. C'est-à-dire, l'exécutable que vous obtenez à partir de ProjectBuilder est lié au répertoire dans lequel vous avez compilé l'application. Si vous déplacez l'exécutable et que vous supprimiez ce répertoire, l'application ne fonctionnera plus correctement. Si vous souhaitez détruire le répertoire source (dans lequel vous avez compilé) et conserver une application fonctionnelle, l'utilisation de pbxbuild install est obligatoire.
Quand c'est terminé, il vous suffit de lancer l'exécutable GNUMail en cliquant sur son icône.

GNUstep

Une fois GNUstep installé et fonctionnel, décompressez l'archive par la commande mentionnée plus haut. Tapez ensuite make et make install dans un shell et c'est fini (bien sûr, Pantomime doit être compilé avant GNUMail.app). Exécutez la commande openapp GNUMail.app et comme par magie, vous obtiendrez un très esthétique client de courrier sur votre écran.
Si vous voulez rester à jour, des versions CVS de GNUMail.app (et Pantomime) sont disponibles. Ludovic et ses copains travaillent dur et proposent des améliorations pratiquement tous les jours. Ceci implique bien évidemment de conserver le code source utilisé pour compiler votre première version. Il peut également être nécessaire de mettre à jour GNUstep (CVS aussi) ou les outils de développement de MacOS X. Pour ces derniers, vous devez être enregistré comme développeur (ne vous inquiétez pas, c'est gratuit !).
Maintenant que vous disposez d'une application sympathique, vous avez sans doute envie de l'utiliser.

 

Configurer GNUMail.app

GNUMail.app vous propose une fenêtre de Préférences très réussie, rendant la configuration très facile. Cette fenêtre est divisée en sections : personnel, visualisation, envoi, réception, composition, polices, MIME et filtres.
Comme le nom l'indique, la section personnel permet de fournir à GNUMail.app les informations vous concernant : nom, adresse de courrier électronique, signature.

personal personal

La partie visualisation est destinée à définir les entêtes que vous souhaitez voir dans le message ou à mettre en surbrillance les URL disponibles dans le corps du message.

viewing viewing

La section envoi concerne... les méthodes d'envoi. Vous y définissez la méthode choisie, le nom d'utilisateur, le mot de passe, etc.

sending sending

La section réception définit comment... recevoir le courrier. Vous y spécifiez le nom du (ou des) serveur de courrier.

receiving receiving

Le panneau composition détermine la position de la signature, de la réponse jointe, du nombre de caractères par ligne.

compose compose

Dans le panneau polices, vous sélectionnez les polices utilisées dans l'affichage du message.

fonts fonts

Le panneau MIME permet de définir les types de données visualisables en tant que pièces jointes (images, documents tels que PDF...)

mime mime

Le dernier et non le moindre, le panneau de filtres dans lequel vous pouvez définir les règles de filtrage.

filters filters

Comme vous pouvez le remarquer, le processus de configuration est simple et convivial. Le but était, bien sûr, de vous montrer à quoi ça ressemble, à la fois sous GNUstep et sous MacOS X.

 

Utiliser GNUMail.app

Utiliser GNUMail.app est tellement évident que ça ne devrait pas justifier un chapitre. Sous MacOS X, cliquez sur l'icône GNUMail.app depuis le Finder et c'est tout. Vous obtenez bien sûr une nouvelle icône dans le dock, où vous pouvez la maintenir si bon vous semble. Lorsque l'application est lancée, il suffit de cliquer sur les icônes situées en haut de la fenêtre de la boîte à lettres ouverte (par défaut Inbox) pour effacer un message, recevoir ou envoyer votre courrier, ouvrir d'autres boîtes, composer un nouveau message, répondre à un message ou le transférer, ouvrir le carnet d'adresses ou faire une recherche dans les boîtes.
Le menu propose les mêmes caractéristiques plus quelques autres. Les options les plus importantes possèdent des raccourcis clavier. Ce menu fonctionne également comme menu contextuel.
Sous GNUstep, la seule différence vient de la manière de démarrer l'application pour la première fois. Si vous connaissez GNUstep, vous savez que vous devez taper openapp suivi du chemin de l'application. Si Window Maker est votre gestionnaire de fenêtres (recommandé !), vous obtiendrez alors une "appicon" : glissez-la et déposez-la dans le dock... et vous n'aurez plus à taper dans votre shell pour lancer GNUMail.app.
Le plus important dans tout cela c'est que GNUMail.app est devenu remarquablement stable. L'amélioration est considérable si l'on compare aux versions précédentes, particulièrement sous GNUstep. Après quelques semaines d'utilisation, il n'a pas "planté" une seule fois. GNUMail.app est maintenant parfaitement utilisable en tant que client de courrier pour tous les jours.
Sous MacOS X, il était déjà stable avant la version 1.0.

 

Et après ?

Nous pourrions considérer GNUMail.app comme une expérience de portabilité. Mais c'est une expérience fonctionnelle ! Certes, de nombreux autres clients de courrier possèdent beaucoup plus de fonctionnalités. Toutefois, GNUMail.app est la première véritable application capable de s'exécuter sous des environnements aussi différents que MacOS X et GNUstep avec absolument le même code source. Ludovic travaille également sur un autre projet qui, s'il est moins avancé, n'en reste pas moins digne d'intérêt.
Il se nomme Affiche, et ce n'est autre qu'un équivalent des "post-it", et encore une fois, il fonctionne sous MacOS X et GNUstep. Le site héberge également EasyDiff, un "diff" graphique signé Pierre-Yves Rivaille, qui ne fonctionne que sous GNUstep, au moins pour l'instant.
Nombreux étaient les sceptiques qui ne croyaient pas à la portabilité entre MacOS X et GNUstep : Ludovic apporte la preuve de cette portabilité. Alors, bien sûr, la route est longue avant l'aboutissement de GNUstep, pourtant l'amélioration est constante. Nous devons féliciter tous ceux qui sont investis dans ce projet. La première raison vient de l'énorme travail à réaliser pour mener à bien un tel projet et la seconde vient du petit nombre de personnes concernées. Un grand merci à Adam Fedor et ses amis pour ce superbe travail.
Il est évident que chaque développement dépendra de l'état d'avancement de GNUstep. Pour l'instant, de nombreuses applications fonctionnelles sont déjà disponibles, même si pour la plupart elles en sont à leur début. La méthode inverse pourrait bien accélérer le processus : c'est-à-dire que le plus gros du travail est actuellement effectué sous GNUstep, mais nous pouvons espérer une plus grande quantité de développement sous MacOS X, avec la portabilité en arrière-pensée. Ce serait un excellent point de départ pour de véritables applications multi-plates-formes.
A une époque où le "clonage" de Windos semble être la règle, c'est une chance de bénéficier d'une telle alternative. Si la "mode" aujourd'hui est au mot open, alors GNUstep est le modèle.
Une partie de la communauté Linux attend que son système se répande sur les machines de bureau... ou parvienne à la "domination du monde" !!! Du calme : un monopole, libre ou non, reste un monopole... et parmi bien d'autres choses, un monopole tue la création. La diversité est beaucoup plus importante puisqu'elle crée une émulation, ce qui ne signifie pas "cloner" un pseudo standard (et ses applications), comme si leur éditeur détenait la vérité et était considéré comme la référence absolue.
Environ 15 ans plus tôt, NeXTSTEP lançait une véritable révolution dans le monde Unix : permettre aux gens d'utiliser Unix sans y connaître quoi que ce soit ! C'est ce que propose MacOS X aujourd'hui. Et, de fait, Linux est très loin de ce stade, même en clonant la "mauvaise" référence. Vous avez sans doute remarqué que GNUstep n'est PAS un clone de Windos (ça y est, je l'ai dit !). C'est une réalisation libre du "fils" (OpenStep) de l'un des systèmes les plus novateurs de tous les temps (NeXTSTEP).
Pour éviter toute confusion, GNUstep est une couche logicielle et devient un environnement (léger) lorsqu'on lui ajoute des applications... telles que GNUMail.app.
Encore mieux, GNUstep ne se limite pas à Linux.
Au milieu des années 80, il existait de nombreux OS différents. Maintenant, l'alternative c'est Unix ou Windos : dommage. Pourtant, je préfèrerais un monde dans lequel nous pourrions choisir entre une multitude de systèmes : plus il y en aurait, mieux ce serait.
Mais nous avons quand même de la chance : nous avons plein d'Unices différents, et la plupart sont capables d'utiliser GNUstep !
C'était l'habituelle partie hors-sujet et elle ne représente que mon opinion.
Pour en revenir à GNUMail.app, nous pouvons espérer qu'elle donnera des idées à de nombreux développeurs. Les utilisateurs de MacOS X ont une grande chance qui se nomme InterfaceBuilder (et ProjectBuilder). Découvrir ces outils changera leur vie. Dans un futur proche, nous pouvons imaginer que Gorm et ProjectCenter seront capables de faire la même chose que leurs modèles, rendant ainsi GNUstep indispensable.
Merci beaucoup Ludovic d'avoir ouvert la voie.
quand je vous disais que nous vivions une époque formidable !

 

Liens

La maison de GNUMail.app : http://www.collaboration-world.com/gnumail/
Tout sur GNUstep : http://www.gnustep.org
Aussi... mais in French : http://www.clubstep.org
Encore plus sur GNUstep : http://www.gnustep.net
Applications, tutoriels, HOWTOs par Nicola Pero et Pierre-Yves Rivaille : http://www.gnustep.it
Outils de développement Apple MacOS X : http://developer.apple.com/tools/macosxtools.html



Site Web maintenu par l´équipe d´édition LinuxFocus
© Georges Tarbouriech
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Translation information:
en --> -- : Georges Tarbouriech <georges.t/at/linuxfocus.org>
en --> fr: Georges Tarbouriech <georges.t/at/linuxfocus.org>

2005-01-14, generated by lfparser_pdf version 2.51