summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/package.el
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@gnu.org>2014-01-08 15:25:21 +0900
committerDaiki Ueno <ueno@gnu.org>2014-01-08 15:25:21 +0900
commit0a3eec327076b877fe683ded596bda76fbaded0c (patch)
treea28c31297c057ce1b187bf87058e8ef93c4abed0 /lisp/emacs-lisp/package.el
parent68f0bb9791bb40a0a09cf7bca3ddee3d18e86486 (diff)
downloademacs-0a3eec327076b877fe683ded596bda76fbaded0c.tar.gz
emacs-0a3eec327076b877fe683ded596bda76fbaded0c.tar.bz2
emacs-0a3eec327076b877fe683ded596bda76fbaded0c.zip
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.
Diffstat (limited to 'lisp/emacs-lisp/package.el')
-rw-r--r--lisp/emacs-lisp/package.el11
1 files changed, 6 insertions, 5 deletions
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