From 0a3eec327076b877fe683ded596bda76fbaded0c Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Wed, 8 Jan 2014 15:25:21 +0900 Subject: [PATCH] emacs-lisp/package.el (package--check-signature): Fix download error handling * emacs-lisp/package.el (url-recreate-url): Declare. (url-http-target-url): Declare. (package-handle-response): Include requested URL in the error message. (package--check-signature): Don't re-signal errors from package--with-work-buffer. Suggested by Stefan Monnier. --- lisp/ChangeLog | 9 +++++++++ lisp/emacs-lisp/package.el | 11 ++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1f8187d9e27..9ff78a4ca5f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2014-01-08 Daiki Ueno + + * emacs-lisp/package.el (url-recreate-url): Declare. + (url-http-target-url): Declare. + (package-handle-response): Include requested URL in the error + message. + (package--check-signature): Don't re-signal errors from + package--with-work-buffer. Suggested by Stefan Monnier. + 2014-01-07 Bastien Guerry * minibuffer.el (completion--try-word-completion): When both a diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 15dba461d2d..64a9eff916a 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -210,6 +210,8 @@ If VERSION is nil, the package is not loaded (it is \"disabled\")." (declare-function lm-header "lisp-mnt" (header)) (declare-function lm-commentary "lisp-mnt" (&optional file)) (defvar url-http-end-of-headers) +(declare-function url-recreate-url "url" (urlobj)) +(defvar url-http-target-url) (defcustom package-archives '(("gnu" . "http://elpa.gnu.org/packages/")) "An alist of archives from which to fetch. @@ -789,7 +791,8 @@ It will move point to somewhere in the headers." (require 'url-http) (let ((response (url-http-parse-response))) (when (or (< response 200) (>= response 300)) - (error "Error during download request:%s" + (error "Error downloading %s:%s" + (url-recreate-url url-http-target-url) (buffer-substring-no-properties (point) (line-end-position)))))) (defun package--archive-file-exists-p (location file) @@ -820,10 +823,8 @@ GnuPG keyring is located under \"gnupg\" in `package-user-dir'." (sig-file (concat file ".sig")) sig-content good-signatures) - (condition-case-unless-debug error - (setq sig-content (package--with-work-buffer location sig-file - (buffer-string))) - (error "Failed to download %s: %S" sig-file (cdr error))) + (setq sig-content (package--with-work-buffer location sig-file + (buffer-string))) (epg-context-set-home-directory context homedir) (epg-verify-string context sig-content (buffer-string)) ;; The .sig file may contain multiple signatures. Success if one -- 2.39.2