[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 8d3b910: * lisp/emacs-lisp/package.el (package-comp
From: |
Artur Malabarba |
Subject: |
[Emacs-diffs] master 8d3b910: * lisp/emacs-lisp/package.el (package-compute-transaction): |
Date: |
Tue, 30 Jun 2015 09:51:28 +0000 |
branch: master
commit 8d3b9102130dd7091803d96c94415b24fe8a5bbf
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>
* lisp/emacs-lisp/package.el (package-compute-transaction):
Don't assume version sorting.
---
lisp/emacs-lisp/package.el | 26 +++++++++++++++-----------
1 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index e599e84..a148783 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1576,29 +1576,33 @@ SEEN is used internally to detect infinite recursion."
(while (and pkg-descs (not found))
(let* ((pkg-desc (pop pkg-descs))
(version (package-desc-version pkg-desc))
- (disabled (package-disabled-p next-pkg version)))
+ (disabled (package-disabled-p next-pkg version))
+ found-something)
(cond
((version-list-< version next-version)
- (error
- "Need package `%s-%s', but only %s is available"
- next-pkg (package-version-join next-version)
- (package-version-join version)))
+ ;; pkg-descs is sorted by priority, not version, so
+ ;; don't error just yet.
+ (unless found-something
+ (setq found-something (package-version-join version))))
(disabled
(unless problem
(setq problem
(if (stringp disabled)
- (format "Package `%s' held at version %s, \
-but version %s required"
+ (format "Package `%s' held at version %s, but
version %s required"
next-pkg disabled
(package-version-join next-version))
(format "Required package '%s' is disabled"
next-pkg)))))
(t (setq found pkg-desc)))))
(unless found
- (if problem
- (error "%s" problem)
- (error "Package `%s-%s' is unavailable"
- next-pkg (package-version-join next-version))))
+ (cond
+ (problem (error "%s" problem))
+ (found-something
+ (error "Need package `%s-%s', but only %s is available"
+ next-pkg (package-version-join next-version)
+ found-something))
+ (t (error "Package `%s-%s' is unavailable"
+ next-pkg (package-version-join next-version)))))
(setq packages
(package-compute-transaction (cons found packages)
(package-desc-reqs found)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 8d3b910: * lisp/emacs-lisp/package.el (package-compute-transaction):,
Artur Malabarba <=