J'ai téléchargé l'archive zip d'un serveur relais (mirror) ftp ftp.igh.cnrs.fr/pub/gnu/emacs/windows et téléchargé la signature pour contrôler.
This README.W32 file describes how to set up and run a precompiled distribution of GNU Emacs for Windows. You can find the precompiled distribution on the ftp.gnu.org server and its mirrors: ftp://ftp.gnu.org/gnu/emacs/windows/
This server contains other distributions, including the full Emacs source distribution, as well as older releases of Emacs for Windows.
Vérifier le fichier avec la signature impliquait (pour ma nouvelle machine) installer un outil capable de le faire. J'ai choisi gpg4win et je l'ai d'abord installée. La première tentative de validation a échoué:
ID de clef 7E6A2A2E Uncertain signature by unknown key FA75A9597E6A2A2E Pas de clef publique
Donc, j'ai effectué
recv-key 0x7E6A2A2E
et appris qu'il s'agit de la clef de Dani Moncayo dmoncayo@gmail.com, mais cette appartenance n'est pas cautionné par des contre signatures. Comment savoir si cette personne est un maker et signataire légitime? J'ai trouvé cette discussion qui me rassure. Je procède à l'installation.
Pas aussi automatique que pour gpg4win ou Cygwin: l'archive contient les binaires mais pas de programme d'installation. Ainsi je consulte le manuel en anglais. Il faut
C:\Program Files (x86)\GNU\emacs
et j'y ai extrait les 4 034 éléments.runemacs
et ça marche.Epingler à l'écran de démarrage
(quatrième option) dans le menu contextuel : . Le lien démarre emacs, mais il n'a plus (visiblement) le chemin vers des éléments (le Gnu coloré ne parait plus dans son buffer d'accueil). Il semble avoir créé mon dossier AppData\Roaming\.emacs.d
mais le dossier reste vide. Ce raccourci est stocké dans C:\Users\Moi\AppData\Roaming\Microsoft\Windows\Programs
; dans ses propriétés, j'ai changé le dossier de démarrage (pas le chemin au programme, la deuxième valeur) pour cibler C:\Users\Moi\Documents
. Ca ne change pas le chemin HOME
que emacs utilise pour trouver .emacs.d, mais l'oriente vers les dossiers où j'aurais des documents à traiter.init
(et plus?) au dossier .emacs.d
dans AppData\Roaming.à faire
J'ai tenté l'envoi d'un courriel, ce qui a provoqué une petite liste d'erreurs d'échec TLS pour entrer en communication avec le serveur (de laposte.net). Visiblement, gnutls n'était pas disponible. C'est indiqué dans le fichier README.W32 (dans emacs/share/24.5)
In order to support GnuTLS at runtime, Emacs must be able to find the relevant DLLs during startup; failure to do so is not an error, but GnuTLS won't be available to the running session.
You can get pre-built binaries (including any dependency DLLs) at http://sourceforge.net/projects/ezwinports/files/.
Ainsi, j'ai téléchargé gnutls-3.4.9-w64.zip
(et sa signature). Comment installer gnutls
n'est pas explicité dans l'archive, il faut se fier au README.txt d'ezwinports (qui ne parait pas dans l'archive), qui dit (en partie)
If the executable programs need additional DLLs, they
are also included, to make the zip archive self-contained.
To install a binary archive, simply unzip it, preserving the directory
structure recorded in it, and make sure the 'bin' directory is on your
Path. If you already have a public 'bin' directory, unzip the binary
archive from that 'bin's parent directory. The other directories,
like 'include', 'lib', and 'share' are populated with the rest of the
package; in particular, the man pages are in 'share/man' and
'share/cat', and the Info docs in 'share/info'. It is advisable to
unpack all the archives you download from this site into the same
tree: this will ensure all the packages work seamlessly together.
En cherchant dans des forums, on lit que certains recommandent de copier tous les dll
dans le répertoire bin
de emacs, ce qui ne me parait pas une bonne solution : gnutls ne serait pas disponible pour d'autres applications, et que faire l'arborescence bin, include, lib et share ? Et comment faire (proprement) pour les mises à jour futures ? J'ai donc extrait le contenu de l'archive dans C:\opt\gnutls
et ajouté C:\opt\gnutls\bin
à la variable PATH de Windows. Pour tester le chemin, j'ai ouvert un console Windows (avec cmd.exe) puis entré PATH
: le chemin inclu cet ajout. Deuxième contrôle, entrer certtool.exe -h | more
à l'invite. et obtenir le texte help de ce programme qui est dans C:\opt\gnutls\bin
montrant que le chemin est bien résolu par Windows. C'est bon.
Maintenant, lancement de emacs.
Premier contrôle (après un peu de lecture du GNU Emacs Lisp Reference Manual concernant System Interfaces, M-x getenv PATH
pour vérifier que emacs a bien conservé mon chemin système : oui, c'est bon.
Deuxième contrôle (après consultation de quelques textes d'autres utilisateurs) : évaluer gnutls-available-p
dans le buffer Scratch (interactif) ⇒ nil
. Pas bon. Pour en être sûr, j'ai tenté à nouveau d'envoyer un courriel, et emacs s'est bloqué. Vraiment pas bon.
Lisant plus loin dans le manuel, rubrique Variable: dynamic-library-alist, je constate que pour mon emacs,
dynamic-library-alist => ((xpm "libxpm.dll" "xpm4.dll" "libXpm-nox4.dll") (png "libpng16.dll" "libpng16-16.dll") (tiff "libtiff-5.dll" "libtiff3.dll" "libtiff.dll") (jpeg "libjpeg-9.dll") (gif "libgif-7.dll") (svg "librsvg-2-2.dll") (gdk-pixbuf "libgdk_pixbuf-2.0-0.dll") (glib "libglib-2.0-0.dll") (gobject "libgobject-2.0-0.dll") (gnutls "libgnutls-28.dll" "libgnutls-26.dll") (libxml2 "libxml2-2.dll" "libxml2.dll") (zlib "zlib1.dll" "libz-1.dll"))
emacs-24.5.1-mingw32 aurait donc besoin de libgnutls-28.dll ou libgnutls-26.dll, tandis que la version actuellement disponible de gnutls contient libgnutls-30.dll. Problème de configuration, comment faire ? Puis-je ajouter “libgnutls-30.dll” à la liste ? J'ai posé la question ; la réponse me conseillait de consulter la liste help-emacs-windows@gnu.org. Là, une recherche dans les archives pour gnutls
à rendu 98 réponses, dont une récente qui me parait particulièrement utile : Re: [h-e-w] bug#10612: GnuTLS bundled with the windows Emacs binaries qui indique l'existence d'une version récente de emacs pour Windows 64 bit à http://emacsbinw64.sourceforge.net/. Je vais l'essayer ; à suivre.
Suite sur une nouvelle page.