J'ai commencé à utiliser le système d'exploitation UNIX à la fin
des années 80. J'ai tout de suite apprécié la richesse des commandes
disponibles sur ce système d'exploitation et la possibilité de
réaliser des traitements complexes en combinant l'effet de plusieurs
outils effectuant chacun un traitement très simple.
C'est également à cette période que j'ai commencé à pratiquer la
programmation en langage C.
J'ai acheté mon premier PC en 1989. Cet ordinateur qui fonctionnait avec
MS-DOS aurait été frustrant si je m'étais contenté de son système
d'exploitation. Mais avec l'ordinateur, j'ai également acheté un
compilateur C de Borland (Turbo C 2.0). Ainsi équipé, j'ai commencé à
écrire des commandes UNIX que je connaissais, afin d'arriver, petit à
petit, à disposer chez moi des mêmes possibilités techniques que sur mon
lieu de travail. En un peu plus de 10 ans, j'ai ainsi réécrit pour MS-DOS
une centaine de commandes UNIX-like.
Comme beaucoup, j'ai fini par apprendre l'existence de GNU/Linux, mais
au milieu des années 90, il ne m'a pas intéressé de suite vu que je
disposais déjà de mon UNIX personnel sous MS-DOS.
J'ai commencé à utiliser l'environnement fenêtré sur PC en 1996.
Windows 3.1 était alors ce qui pouvait fonctionner sur mon PC équipé d'un
386.
Lorsqu'en 1997, j'ai acheté mon premier PC avec Pentium, j'ai gardé MS-DOS
avec tous mes outils et Win 3.1 .
Ses deux avantages par rapport à Windows 95 (et les versions suivantes) :
je pouvais recharger la version prête à l'emploi juste en recopiant
les fichiers, à partir d'une sauvegarde sur 2 disquettes zip100
ou un CD,
je disposais sur ce PC du pilote graphique pour utiliser correctement
Win31, alors que Windows 95 ne fonctionnait qu'en 256 couleurs.
Mes débuts (ou presque) sur Internet
J'ai vraiment commencé à utiliser Internet et la messagerie électronique
à partir du printemps 1999 lorsque certains fournisseurs comme free.fr ont
commencé à proposer des connexions au prix des communications locales.
Pour le courrier électronique, mon logiciel était Microsoft Internet
Mail. L'avantage de ce mailer était que chaque message reçu, à expédier
ou envoyé était mémorisé dans un fichier distinct.
Grâce à mes outils UNIX-like (notamment ceux de la série des grep), après
avoir téléchargé une série de mails l'appel d'un fichier .BAT me permettait
de trier automatiquement ces mails par catégorie et de les mettre dans des
répertoires distincts en fonction d'une indication dans le sujet ou de leur
expéditeur.
De plus, mon système de tri permettait de séparer aussi les mails récents
des autres en fonction de l'ancienneté des fichiers reçus ou envoyés.
Microsoft internet mail avait été volontairement trafiqué par ses
concepteurs pour poser des problèmes d'affichage de l'heure et de la
date à partir de l'an 2000. Pour remédier à ce problème, j'ai développé
des programmes C qui corrigeaient automatiquement le fichier MSG-LIST
des répertoires contenant des mails. En écrivant ces programmes, j'ai
constaté que si le fichier MSG-LIST était corrigé de la manière la
plus logique, il restait un décalage de quelques 21 H pour les messages
entrants et de plus d'une journée pour les sortants. Preuve pour moi que
les défauts de Micro$oft internet mail ne provenaient pas d'une simple
négligence ! Du reste, il suffisait de générer une heure et date fausse
dans ce fichier pour compenser dans l'autre sens le décalage d'affichage
introduit par le fabriquant, ce que j'ai fini par faire.
Seul défaut résiduel, l'envoi de messages se faisait avec une année sur 2
chiffres, ce qui posait des problèmes de classement au mailer de Netscape,
le concurrent !
Bref, même après l'an 2000, un peu de programmation en C m'a permis de
conserver ce mailer, plutôt que de passer à Outlook qui chargeait tous
les mails dans un fichier unique, ce qui n'était pas compatible avec mes
tris automatiques.
Il restait quand même certains problèmes. C'est ainsi que, m'étant inscrit
sur une mailing list qui, à l'époque produisait 50 messages par jour, je
me suis rapidement aperçu que si seulement une partie des messages était
récupéré avant de se déconnecter, la fois suivante, ces messages étaient
de nouveau téléchargés !
Une fois, à un retour de vacances, quelques 200 messages m'attendaient.
Après 1/4 d'heure de communication il n'en restait que 3 ou 4.
j'ai constaté qu'un abruti avait envoyé sur une mailing list une pièce
jointe de près d'un mégaoctet. Le système de déconnexion automatique de
mon modem après 20 minutes ayant fonctionné, je n'ai plus eu qu'à tout
récupérer une autre fois. C'est finalement au 3ème coup que j'ai pu vider
complètement ma boîte aux lettres.
D'autres fois, c'était des messages à virus avec des fichiers joints
inutiles de quelques centaines de Koctets qui polluaient ma messagerie
sans que l'expéditeur n'ait eu la correction d'envoyer un autre mail pour
me prévenir 24 H à l'avance, et donc sans que je dispose vraiment de
moyens pour gérer au mieux les communications téléphoniques que je
payais.
J'avais certes pensé écrire des filtres sous GNU/Linux pour ne conserver que
les mails utiles à télécharger, mais sans concrétiser cette idée (lorsqu'on
n'a rien, on travaille pour obtenir quelque chose, lorsqu'on est assez
bien pourvu, la facilité amène à s'en contenter).
2002, l'automne des changements
A partir de septembre 1999, j'ai travaillé en région parisienne et je
revenais dans ma région toulousaine natale pour les vacances scolaires.
J'avais donc 2 domiciles, et donc 2 lignes de téléphone fixe, une à chaque
adresse.
Les 3 premières années, j'utilisais mon PC avec Pentium de 1997 (le seul à
avoir un modem) en région parisienne de septembre à juin et ne le ramenait
en région toulousaine qu'en juillet - août. Pour les petites vacances en
région toulousaine, je me contentais du PC équipé d'un 386.
A la fin de l'été 2002, j'ai préféré laisser le Pentium à mon domicile près
de Toulouse pour racheter un PC plus récent en région parisienne.
Problème imprévu : ce nouvel ordinateur ne dispose pas des pilotes Windows
3.1 pour certains éléments essentiels comme la carte graphique (limitée à
256 couleurs), le modem, etc... D'où la nécessité de passer à un système
d'exploitation plus récent.
Le deuxième changement vient ... de l'
incapacité de France Télécom à encaisser des factures (!) ... et
de l'attitude détestable de cette société qui refuse d'assumer ses
responsabilités.
Après avoir été client chez eux pendant 13 ans (durée fatidique ?), et
patienté pendant 6 mois pour qu'ils règlent un problème d'encaissement
de facture, j'ai fini par demander la résiliation de mes 2 lignes de
téléphone fixe. Conséquence : pendant 5 ans, je me suis contenté d'un téléphone
portable (pas du réseau Orange !) pour les communications, et pour
Internet j'ai utilisé l'accès ADSL sur mon lieu de travail.
Au travail !
Ces 2 événements combinés, remplacement du PC et abandon du téléphone
fixe ont été pour moi l'occasion de développer sous GNU/Linux une série
d'outils pour disposer d'un mailer qui offre toutes les possibilités
du système précédent en rajoutant tous les outils qui me manquaient.
Au départ, je pensais faire ça rapidement en écrivant des shells qui
enverraient les bonnes commandes à une connexion telnet. Le problème
est que la commande telnet n'accepte que des données saisies au
clavier (pas de redirection de l'entrée standard). J'ai donc écrit
ces outils entièrement en C.
En septembre 2002, j'ai trouvé un
bon site web
qui explique comment s'y prendre.
En octobre, j'ai fait mes premiers essais de lecture à partir de
fichiers d'exemples trop peu commentés pour être facilement
compréhensibles.
Au début de l'hiver, je pouvais télécharger mes mails. J'ai consacré
ma première semaine de vacances de noël à écrire les outils pour y
répondre, et la suivante à combler 3 mois de retard dans le traitement
des mails reçus.
En février 2003, j'avais écrit les outils nécessaires pour lire et
expédier des fichiers joints.
Fin avril, tous les outils envisagés avaient été écrits. Les tous
derniers ont été testés durant la première semaine de mai.
Après quoi, j'ai jugé la version suffisamment stable pour la
diffuser.
Restait à faire le site web.
Ce site existe en français depuis juin 2003.
Il est consultable en 6 langues depuis décembre 2003 et en 8 langues
depuis mars 2004.
Les pages de man (documentation standardisée) ont été rajoutées en
septembre 2004.
Depuis mars 2005, ce site est hébergé par tuxfamily.org, un hébergeur
spécialisé dans les produits libres. J'espère ainsi rendre Libremail
plus visible par les personnes que ce genre de logiciel pourrait
intéresser, mais qui ne connaitraient pas son nom.
J'ai toutefois conservé le site initial sur free.fr, qui continue à
être mis à jour.
Libremail continue à évoluer
Internationalisation de Libremail
Durant l'été 2006, j'ai commencé à préparer une version internationalisée
de Libremail. Ainsi, chaque utilisateur peut voir les messages générés
par les différents outils de Libremail dans sa langue. D'autre part, les
versions 1 de Libremail étaient prévues pour fonctionner sur un ordinateur
utilisant le jeu de caractères ISO8859-1 ou ISO8859-15. A présent,
Libremail UTF-8 fonctionne en plus avec le jeu de caractères UTF-8.
Libremail détecte le jeu de caractères employé dans le mail reçu et celui
utilisé par l'ordinateur, et effectue une conversion des caractères si
nécessaire.
La première version stable internationalisée de Libremail a été la
version 2.0 diffusée le 26 mars 2007.
Quant à la documentation, elle est disponible sous les 2 jeux de
caractères UTF-8 et ISO8859-1.
Authentification SMTP
Durant l'été 2007, j'ai demandé l'ouverture de lignes téléphoniques
pour disposer de nouveau d'Internet à mes domiciles.
Pour celui de la région parisienne, après une demande d'ouverture
de ligne par free.fr en mars 2007 qui qui n'a jamais abouti, j'ai
demandé l'ouverture de ligne à France Télécom en septembre 2007 avant
de souscrire l'abonnement ADSL le moins cher que j'ai trouvé à 14,90
€ / mois + 3 € de location de la box. Puis, m'étant aperçu
que cet abonnement n'était pas en dégroupage total et donc m'imposait
de payer aussi 16 € / mois à France Télécom, j'ai choisi celui
de Tele2 à 19,90 € / mois qui ne pose pas ce problème.
Par contre, pour l'envoi des mails, Tele2 impose d'utiliser
l'authentification SMTP. J'ai donc commencé par traduire en français la
RFC
qui décrit cette authentification avant de passer aux travaux
pratiques en rajoutant cette possibilité à Libremail.
Diffusion des versions compilées de Libremail
Jusqu'en mars 2008, seuls les fichiers source de Libremail étaient
fournis, ce qui imposait aux utilisateurs de disposer d'un compilateur
C sur leur ordinateur. Ensuite, jusqu'en 2020, j'ai repris (peut-être
à tort) l'idée d'un windowsien de diffuser aussi une version comprenant
les fichiers source et les exécutables compilés (en 32 bits).
Toutefois, sous GNU/Linux, les versions compilées 32 et 64 bits ne sont
pas compatibles entre elles, et j'ai préféré abandonner la diffusion
de versions compilées plutôt que d'avoir à en générer plusieurs à
chaque changement de version.
Installation possible de Libremail dans /usr
La fréquentation du salon Solutions Linux à Paris m'a permit
en 2009 et 2010 de présenter Libremail à une personne responsable de
la distribution SliTaz. Cette personne a souhaité que Libremail puisse
être implanté dans les mêmes répertoires que les autres commandes de
GNU/Linux (outils dans /usr/bin et fichiers de données dans
/usr/share/...). Les modifications nécessaires ont été implantées
dans la version 2.2 .
Traduction automatique du mail en cours de lecture
La réalisation de sites web et de documentation multilingue m'a emmenée
d'abord à utiliser le logiciel libre Apertium, puis à participer à son
développement. Comme ce logiciel de traduction fonctionne en ligne de
commandes, j'ai interfacé l'outil permettant de consulter un mail en
mode page avec ce logiciel (mais tout autre traducteur en ligne de
commandes devrait fonctionner aussi) pour effectuer la traduction
automatique du sujet et du texte d'un mail. Cette possibilité de
traduction pendant l'examen d'un mail existe depuis la version 2.4
du 13 mai 2014.
Adaptation de Libremail aux afficheurs Braille
En fréquentant également les RMLL (Rencontres Mondiales du Logiciel
Libre, qui sont surtout des rencontres francophones), j'ai plusieurs
fois rencontré un aveugle de naissance qui utilise un ordinateur avec
un afficheur Braille. je me suis d'abord renseigné sur la manière
dont ce site web est visible des aveugles, puis, un jour, il a essayé
Libremail. Comme je lui ai dit qu'avec certains outils, les mails
non lus ou les adresses de destinataires sélectionnées sont affichés
en surbrillance, alors que les répertoires ne contenant pas de mail
apparaisse en bleu foncé, il m'a proposé de rajouter une indication
en début de ligne pour les claviers Braille. c'est fait depuis la
version 2.4.1 avec une variable d'environnement qui permet de préciser
le caractère à afficher.
Évolution des compilateurs C
Le compilateur C de GNU évoluant lui aussi, une instruction
comme :
bufdest [i] = buf_lect [i++];
n'est pas exécutée de la même façon sur avec un compilateur récent
ou avec un plus ancien.
L'instruction ci-dessus faisant partie d'une fonction utilisée par
de nombreux outils de Libremail, il a été nécessaire de la décomposer
en deux instructions distinctes pour que Libremail puisse continuer
à fonctionner avec des compilateurs C récents.
Libremail et systemd
Certains outils de Libremail permettent d'utiliser les flèches du
clavier et d'autres touches pour se déplacer dans :
une liste de répertoires,
une liste de mails,
le contenu d'un mail,
le carnet d'adresses.
Ces différentes touches sont vues par le système d'exploitation
comme une séquence de caractères qui commence par le caractère
Esc suivi d'un [
De plus, la touche Esc employée seule a été choisie pour
quitter les outils qui permettent ce mode de fonctionnement.
A l'origine de Libremail, le système mis au point fonctionnait
parfaitement, mais avec l'arrivée de systemd, les touches du
clavier ont cessé d'être détecté obligeant à prévoir un autre
mode de fonctionnement.
Plus de détails dans le dernier chapitre de la page
Caractéristiques techniques.
Autres améliorations de Libremail
D'autres améliorations moins visibles concernent l'aptitude de
Libremail à traiter de plus en plus de cas particulier pour
analyser correctement des mails de provenances diverses. Une
des améliorations m'a été demandée par un français résidant en
Chine désireux de voir rapidement les derniers mails arrivés.
Malgré tout, je ne sais toujours pas combien d'autre personnes
dans le monde utilisent Libremail en plus de moi !