summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorPhilip Kaludercic <philipk@posteo.net>2023-02-14 19:48:01 +0100
committerPhilip Kaludercic <philipk@posteo.net>2023-02-14 19:50:01 +0100
commit6a32ba8b69c9d7a9c356611bb8033a0a83b4e8b8 (patch)
tree140dea4521b4b33c403b2077d7c5bdda14d10a1c /lisp/emacs-lisp
parent4eac80fcc39917c4dbb7d66c9c85003bfd994409 (diff)
downloademacs-6a32ba8b69c9d7a9c356611bb8033a0a83b4e8b8.tar.gz
emacs-6a32ba8b69c9d7a9c356611bb8033a0a83b4e8b8.tar.bz2
emacs-6a32ba8b69c9d7a9c356611bb8033a0a83b4e8b8.zip
; Fix the installation of dependencies for VC packages
* lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies): Work with package-desc objects instead of (PACKAGE-NAME VERSION) pairs.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/package-vc.el21
1 files changed, 13 insertions, 8 deletions
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
index bf49f274bfd..4a987052949 100644
--- a/lisp/emacs-lisp/package-vc.el
+++ b/lisp/emacs-lisp/package-vc.el
@@ -435,24 +435,29 @@ version of that package."
(push pkg missing))))))
(version-order (a b)
"Predicate to sort packages in order."
- (version-list-< (cadr b) (cadr a)))
+ (version-list-<
+ (package-desc-version b)
+ (package-desc-version a)))
(duplicate-p (a b)
"Are A and B the same package?"
- (eq (car a) (car b)))
+ (equal a (car b)))
(depends-on-p (target package)
"Does PACKAGE depend on TARGET?"
(or (eq target package)
(let* ((pac package-archive-contents)
(desc (cadr (assoc package pac))))
- (seq-some
- (apply-partially #'depends-on-p target)
- (package-desc-reqs desc)))))
+ (and desc (seq-some
+ (apply-partially #'depends-on-p target)
+ (package-desc-reqs desc))))))
(dependent-order (a b)
- (or (not (depends-on-p (car b) (car a)))
- (depends-on-p (car a) (car b)))))
+ (let ((desc-a (package-desc-name a))
+ (desc-b (package-desc-name b)))
+ (or (not desc-a) (not desc-b)
+ (not (depends-on-p desc-b desc-a))
+ (depends-on-p desc-a desc-b)))))
(mapc #'search requirements)
(cl-callf sort to-install #'version-order)
- (cl-callf seq-uniq to-install #'duplicate-p)
+ (cl-callf seq-uniq to-install)
(cl-callf sort to-install #'dependent-order))
(mapc #'package-install-from-archive to-install)
missing))