4

I've installed emacs on a new machine (macos) brew cask install emacs. My init.el file gets stuck installing cider (clojure ide) because it requires "spinner". When I do: M-x package-refresh-contents, I get the message "Failed to download 'gnu' archive" which leads me to believe elpa may be down, however, the elpa website itself does not appear to be down. If I try to manually install the package, the specific message is something to do with a "bad request".

I've tried to manually install the spinner.el file just to unblock myself, but that didn't seem to work. So the question is in two parts:

  1. How can I dig further into the issue, see if elpa is working, and debug the problem?
  2. How can I unblock myself? Does package installation of CIDER not check if "spinner" is already installed?
  • Does M-x eww https://elpa.gnu.org/ work? If not, maybe it's a HTTPS issue. If so, you can switch to HTTP by changing package-archives as a workaround, though you're suggested to figure out why HTTPS failed then fix it if you can. You can install spinner manually with M-x package-install-from-buffer, but you are going to need gnu elpa anyway in the future. – xuchunyang Jul 15 at 0:35
  • 2
    This may be Bug#36017, if it is, (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") might work around it without disabling HTTPS completely. – npostavs Jul 15 at 3:29
  • @xuchuyang M-x package-install-from-buffer worked for me working around it. I will report back on the HTTPS when I have time to investigate. – Jake_Howard Jul 19 at 21:20
2

A solution in several lines of code in elisp Emacs init file:

;; Some combination of GNU TLS and Emacs fail to retrieve archive
;; contents over https.
;; https://www.reddit.com/r/emacs/comments/cdei4p/failed_to_download_gnu_archive_bad_request/etw48ux
;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=34341

(if (and (version< emacs-version "26.3") (>= libgnutls-version 30604))
    (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3"))

Taken from here: https://www.reddit.com/r/emacs/comments/cdei4p/failed_to_download_gnu_archive_bad_request/ettqtlk/

How can I dig further into the issue, see if elpa is working, and debug the problem?

To find the above solution, some users tried unencrypted HTTP URLs, and it worked:

(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
                         ("melpa" . "https://melpa.org/packages/")
                         ("org" . "http://orgmode.org/elpa/")))
  • (>= libgnutls-version 30600) - that should be (>= libgnutls-version 30603) I believe. – npostavs Aug 24 at 2:51
  • @npostavs Probably. Though the fix worked for me as is. The bug(minor incompatibility) is meant to be fixed in Emacs 26.3; – Alexandr Karbivnichiy Aug 24 at 12:52
  • gnutls only implemented TLS 1.3 in version 3.6.3, and it seems that setting the priority string for earlier versions will break things, e.g., github.com/magit/ghub/issues/89 – npostavs Aug 24 at 15:05
  • @npostavs Edited to check for 3.6.4 version, a final TLS 1.3 impl-tion. To be more robust on other distros. My Manjaro(Arch Linux) updated gnutls (3.5.19-2 -> 3.6.5-1) at 2018-12-31;(/var/log/pacman.log) – Alexandr Karbivnichiy Aug 24 at 15:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.