diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index f92afe56b76..5a79c277f0d 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -797,6 +797,14 @@ package-built-in-p (require 'finder-inf nil t) ; For `package--builtins'. (assq package package--builtins)))))) +(defun package-core-p (package) + "Return non-nil the built-in version of PACKAGE is loaded." + (let ((package (if (package-desc-p package) + (package-desc-name package) + package))) + (and (assq package (package--alist)) + (package-built-in-p package)))) + (defun package--autoloads-file-name (pkg-desc) "Return the absolute name of the autoloads file, sans extension. PKG-DESC is a `package-desc' object." @@ -1908,7 +1916,7 @@ package-compute-transaction (package-version-join (package-desc-version already))))) (cond (already nil) - ((package-installed-p next-pkg next-version) nil) + ((package-core-p (car next-pkg))) ;done (t ;; A package is required, but not installed. It might also be @@ -2205,11 +2213,9 @@ package-install (package--archives-initialize) (list (intern (completing-read "Install package: " - (delq nil - (mapcar (lambda (elt) - (unless (package-installed-p (car elt)) - (symbol-name (car elt)))) - package-archive-contents)) + (seq-filter + (lambda (elt) (package-core-p (car elt))) + package-archive-contents) nil t)) nil))) (package--archives-initialize)