Jak zainstalować GnuTLS dla Emacsa 25.1 w systemie Windows?

19

Właśnie zaktualizowałem Emacsa na moim komputerze z systemem Windows 10 z 24.5 do 25.1. Dla Emacsa 24.5 miałem poprawnie skonfigurowaną GnuTLS, a dla 25.1 zrobiłem to, co pamiętałem, że zrobiłem:

  1. Mam wstępnie skompilowane pliki binarne Emacs ze strony pobierania witryny GNU Emacs . Korzystam z 32-bitowego systemu Windows, więc mam wersję Emacsa i686.

  2. Mam kopię GnuTLS z ezwinports i rozpakowałem plik zip do tego samego katalogu co Emacs - sposób, w jaki zip jest zorganizowany w gnutls oznacza, że ​​w ten sposób zarówno dll, jak i exe dla gnutls kończą w tym samym katalogu, co exe Emacsa. (Tym razem mam wersję 3.3.11; nie pamiętam, jaką wersję GnuTLS miałem, gdy miałem wersję 24.5 Emacsa.)

Tym razem to nie zadziałało. gnutls-available-pzwraca nil, menedżer pakietów może łączyć się tylko z repozytoriami http, a nie z repozytoriami https, eww nie może również obsługiwać https.

Jak skonfigurować GnuTLS dla Emacsa 25.1? Czy źle pamiętam, co zrobiłem dla 24.5? Może pliki binarne ze strony GNU Emacs są kompilowane bez GnuTLS, a dla 24.5 faktycznie mam pliki binarne skądinąd ...

Omar
źródło
Usunąłem moją pierwotną odpowiedź, ponieważ nie dotyczyła ona twojej wersji Emacsa. W swoim pytaniu możesz wyjaśnić, że skopiowałeś pliki do ./bin
henning -
@henning: Właśnie to zdanie „sposób zorganizowania zip gnutls jest zorganizowane oznacza, że ​​w ten sposób zarówno dll, jak i exe dla gnutls kończą się w tym samym katalogu, co exe Emacsa” miał przekazać, postaram się je przeredagować w jaśniejszy sposób jutro.
Omar
Wygląda to bardziej na problem na Emacsie 25.1 niż na samych gnutlach, ponieważ dzisiaj pobrałem Emacsa 25.1 i mam ten sam problem. Emacs 24.1 wywołuje gnutls z opcjami: --insecure -p 443 --protocols ssl3, podczas gdy 25.1 wywołuje go z: -x509cafile nil -p 443. Może to mieć coś wspólnego z tymi różnymi opcjami wywoływania.
Romario,
2
Nie mam pod ręką szczegółów, ale krótko przyjrzałem się temu wcześniej. Myślę, że Emacs 25.1 oczekuje libgnutls-30.dll, ale tylko libgnutls-28.dll jest obecnie pakowany przez ezwinports.
Stuart Hickinbottom,

Odpowiedzi:

29

@StuartHickinbottom wyjaśnił, co robiłem źle: używanie, libgnutls-28.dllgdy Emacs 25.1 wymaga nowszego i niezgodnego libgnutls-30.dll. Potem chodziło o znalezienie plików binarnych libgnutls-30.dlli innych wymaganych bibliotek. Na szczęście Phillip Lord skompilował wersje Windows wszystkich bibliotek i zależności GnuTLS oraz wielu innych bibliotek, których możesz chcieć dla Emacsa! Są one dostępne tutaj : pobierz, emacs-25-i686-deps.zipjeśli używasz 32-bitowego systemu Windows, i pobierz, emacs-25-x86_64-deps.zipjeśli używasz 64-bitowego; następnie rozpakuj w folderze głównym instalacji Emacsa (aby binfolder plików zip został rozpakowany do binfolderu instalacji Emacsa itp.)

EDYCJA: Dowiedziałem się, jak dowiedzieć się, której wersji biblioteki oczekuje Emacs: zajrzyj do zmiennej dynamic-library-alist.

Omar
źródło
1
Dzięki za edycję - nigdy nie wiedziałem o tej zmiennej, ale znacznie ułatwia śledzenie tego typu rzeczy.
Stuart Hickinbottom
Właściwie to nie skompilowałem plików binarnych, tylko je spakowałem. Wszystkie powinny działać. I muszę poprawić README. To zbyt skomplikowane.
Phil Lord
Więc chyba miałam na myśli „skompilowany” w nie-komputerowym sensie zestawienia listy rzeczy z różnych źródeł, @PhilLord :)
Omar
potwierdził, że pracuje dla Emacsa 25.2
Lorenzo Gatti
1
@feklee W przypadku Emacsa-26 wystarczy rozpakować zamek błyskawiczny i gotowe - przynajmniej taka jest teoria. Tak, uzgodniono, README wymaga aktualizacji. W tej chwili nie ma. Jestem śmieciem.
Phil Lord