Wie installiere ich GnuTLS für Emacs 25.1 unter Windows?

19

Ich habe gerade Emacs auf meinem Windows 10-Computer von 24.5 auf 25.1 aktualisiert. Für Emacs 24.5 hatte ich GnuTLS richtig eingerichtet und für 25.1 tat ich das, woran ich mich zu erinnern glaubte:

  1. Bekam vorgefertigte Emacs-Binärdateien von der Download-Seite der GNU Emacs-Website . Ich benutze 32-Bit-Windows, also habe ich die i686-Version von Emacs.

  2. Erhielt eine Kopie von GnuTLS von ezwinports und extrahierte die Zip-Datei in dasselbe Verzeichnis wie Emacs. Die Art und Weise, wie die Gnutls-Zip-Datei organisiert ist, bedeutet, dass sowohl die DLLs als auch die Exes für Gnutls im selben Verzeichnis wie die Emacs-Exes landen. (Dieses Mal habe ich Version 3.3.11. Ich kann mich nicht erinnern, welche GnuTLS-Version ich hatte, als ich Version 24.5 von Emacs hatte.)

Das hat diesmal nicht geklappt. gnutls-available-pkehrt zurück nil, der Paketmanager kann nur eine Verbindung zu http-Repositorys herstellen und nicht zu https-Repositorys. Auch https kann von eww nicht verarbeitet werden.

Wie richte ich GnuTLS für Emacs 25.1 ein? Erinnere ich mich falsch an das, was ich für 24.5 getan habe? Vielleicht sind die Binärdateien von der GNU Emacs-Website ohne GnuTLS kompiliert und für 24.5 habe ich eigentlich Binärdateien von woanders ...

Omar
quelle
Ich habe meine ursprüngliche Antwort gelöscht, da sie Ihre Emacs-Version nicht ansprach. In Ihrer Frage könnten Sie vielleicht klarstellen, dass Sie die Dateien in ./bin
- stellen Sie Monica
@henning: Das ist der Satz, der besagt, dass "die Art und Weise, wie die gnutls zip organisiert ist, bedeutet, dass sowohl die DLLs als auch die Exes für gnutls im selben Verzeichnis wie die Emacs-Exes landen". Ich werde versuchen, es neu zu formulieren in einer klareren Art und Weise morgen.
Omar
Es sieht eher nach einem Problem auf dem Emacs 25.1 aus als nach dem eigentlichen Problem, da ich heute Emacs 25.1 heruntergeladen habe und dasselbe Problem habe. Emacs 24.1 ruft gnutls mit den Optionen auf: --insecure -p 443 --protocols ssl3, während 25.1 es mit -x509cafile nil -p 443 aufruft. Es könnte etwas mit diesen verschiedenen Aufrufoptionen zu tun haben.
Romario
2
Ich habe die Details nicht zur Hand, aber ich habe mich zuvor kurz damit befasst. Ich denke, Emacs 25.1 erwartet libgnutls-30.dll, aber im Moment wird nur libgnutls-28.dll von ezwinports gepackt.
Stuart Hickinbottom

Antworten:

29

@StuartHickinbottom hat erklärt, was ich falsch gemacht habe: Verwenden, libgnutls-28.dllwenn Emacs 25.1 das neuere und inkompatible erfordert libgnutls-30.dll. Dann galt es, Binärdateien libgnutls-30.dllund andere erforderliche Bibliotheken zu finden. Zum Glück hat Phillip Lord Windows-Versionen aller GnuTLS-Bibliotheken und Abhängigkeiten sowie vieler anderer Bibliotheken kompiliert, die Sie für Emacs benötigen könnten! Sie sind hier verfügbar : Get, emacs-25-i686-deps.zipwenn Sie 32-Bit-Windows verwenden, Get, emacs-25-x86_64-deps.zipwenn Sie 64-Bit verwenden; entpacken Sie dann im Stammverzeichnis Ihrer Emacs-Installation (damit der binOrdner der zip-Dateien in den binOrdner Ihrer Emacs-Installation entpackt wird usw.)

EDIT: Ich habe herausgefunden, wie ich herausfinden kann, welche Version einer Bibliothek Emacs erwartet: Schauen Sie in die Variable dynamic-library-alist.

Omar
quelle
1
Vielen Dank für die Bearbeitung - ich wusste nie über diese Variable Bescheid, aber es macht das Auffinden dieser Art von Dingen viel einfacher.
Stuart Hickinbottom
Eigentlich habe ich die Binärdateien nicht kompiliert, sondern nur gezippt. Sie sollten alle funktionieren. Und ich muss die README verbessern. Es ist zu kompliziert.
Phil Lord
Dann meine ich wohl "kompiliert" im Sinne von Nicht-Computer, eine Liste von Dingen aus verschiedenen Quellen zusammenzustellen, @PhilLord :)
Omar
bestätigt für Emacs 25.2 zu arbeiten
Lorenzo Gatti
1
@feklee Für Emacs-26 einfach den Reißverschluss auspacken und los geht's - zumindest ist das die Theorie. Ja, einverstanden, README muss aktualisiert werden. Im Moment gibt es keine. Ich bin Müll.
Phil Lord