Avoid installing packages when using 'package-isolate'

* lisp/emacs-lisp/package.el (package-isolate): When translating
full package names into package descriptors, prefer the package
descriptors of already installed packages to those of remote
packages.
This commit is contained in:
Philip Kaludercic 2026-08-05 23:08:05 +02:00
parent 8466eb4499
commit 29f292fa87
No known key found for this signature in database

View file

@ -2623,9 +2623,23 @@ If TEMP-INIT is non-nil, or when invoked with a prefix argument, the
Emacs user directory is set to a temporary directory. This command is
intended for testing Emacs and/or the packages in a clean environment."
(interactive
(cl-loop for p in (append
(cl-loop for p in (package--alist) append (cdr p))
(cl-loop for p in (package--archive-contents) append (cdr p)))
(cl-loop for p in
(cl-loop with installed = (cl-loop for p in (package--alist)
append (cdr p))
for p in (package--archive-contents)
append (cl-loop
for desc in (cdr p)
unless (cl-loop
for idesc in installed thereis
(and (string= (package-desc-name idesc)
(package-desc-name desc))
(equal (package-desc-version idesc)
(package-desc-version desc))
(eq (package-desc-kind idesc)
(package-desc-kind desc))))
collect desc)
into descs
finally return (nconc installed descs))
unless (package-built-in-p p)
collect (cons (package-desc-full-name p) p) into table
finally return