core: add a basic timeout of 5s to fetch elpa archive
New file core-emacs-ext.el This is a basic monkey-patch solution but it will do the job for now. The timeout amount is not configurable for now. Tested on 24.5 and 24.3.1 fixes #3284
This commit is contained in:
parent
648a4e9937
commit
4d87ea626d
49
core/core-emacs-ext.el
Normal file
49
core/core-emacs-ext.el
Normal file
|
@ -0,0 +1,49 @@
|
|||
;;; core-emacs-ext.el --- Spacemacs Core File
|
||||
;;
|
||||
;; Copyright (c) 2012-2014 Sylvain Benner
|
||||
;; Copyright (c) 2014-2015 Sylvain Benner & Contributors
|
||||
;;
|
||||
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
|
||||
;; URL: https://github.com/syl20bnr/spacemacs
|
||||
;;
|
||||
;; This file is not part of GNU Emacs.
|
||||
;;
|
||||
;;; License: GPLv3
|
||||
(require 'core-spacemacs-buffer)
|
||||
|
||||
;; for some reason with-eval-after-load does not work here in 24.3
|
||||
;; maybe the backport is incorrect!
|
||||
(eval-after-load 'package
|
||||
'(progn
|
||||
(defun package-refresh-contents ()
|
||||
"Download the ELPA archive description if needed.
|
||||
This informs Emacs about the latest versions of all packages, and
|
||||
makes them available for download.
|
||||
|
||||
This redefinition adds a timeout of 5 seconds to contact each archive."
|
||||
(interactive)
|
||||
;; the first part is not available before Emacs 24.4 so we just ignore
|
||||
;; it to be safe.
|
||||
(unless (version< emacs-version "24.4")
|
||||
;; FIXME: Do it asynchronously.
|
||||
(unless (file-exists-p package-user-dir)
|
||||
(make-directory package-user-dir t))
|
||||
(let ((default-keyring (expand-file-name "package-keyring.gpg"
|
||||
data-directory)))
|
||||
(when (and package-check-signature (file-exists-p default-keyring))
|
||||
(condition-case-unless-debug error
|
||||
(progn
|
||||
(epg-check-configuration (epg-configuration))
|
||||
(package-import-keyring default-keyring))
|
||||
(error (message "Cannot import default keyring: %S" (cdr error)))))))
|
||||
(dolist (archive package-archives)
|
||||
(condition-case-unless-debug nil
|
||||
(with-timeout (5 (spacemacs-buffer/warning
|
||||
"Cannot contact archive %s (reason: timeout)"
|
||||
(cdr archive)))
|
||||
(package--download-one-archive archive "archive-contents"))
|
||||
(error (message "Failed to download `%s' archive."
|
||||
(car archive)))))
|
||||
(package-read-all-archive-contents))))
|
||||
|
||||
(provide 'core-emacs-ext)
|
|
@ -25,6 +25,7 @@
|
|||
(require 'core-toggle)
|
||||
(require 'core-micro-state)
|
||||
(require 'core-use-package-ext)
|
||||
(require 'core-emacs-ext)
|
||||
|
||||
(defgroup spacemacs nil
|
||||
"Spacemacs customizations."
|
||||
|
|
Loading…
Reference in a new issue