forked from syl20bnr/spacemacs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 syl20bnr#3284
- Loading branch information
1 parent
a863aa1
commit 2b183aa
Showing
2 changed files
with
50 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters