summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2010-11-01 21:50:26 -0400
committerChong Yidong <cyd@stupidchicken.com>2010-11-01 21:50:26 -0400
commit0f75c62ae368984e9379a13233dd9c443ea57bdd (patch)
treec505bd9f59688b6862f77dad6647bf482839ccc2 /lisp/emacs-lisp
parentb29f5b7bf279a5e49bb3419ec6fec1aebd1162cc (diff)
downloademacs-0f75c62ae368984e9379a13233dd9c443ea57bdd.tar.gz
Two fixes for elpa packages overriding built-in ones.
* emacs-lisp/package.el (package-initialize): Ensure that obsoleted built-in packages are not in package-activated-list during activation. (describe-package-1): Make the "installed" status override "built-in".
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/package.el20
1 files changed, 11 insertions, 9 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 454036018be..f6e7b893cd6 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1020,15 +1020,17 @@ makes them available for download."
The variable `package-load-list' controls which packages to load."
(interactive)
(require 'finder-inf nil t)
- (setq package-alist package--builtins)
- (setq package-activated-list (mapcar #'car package-alist))
- (setq package-obsolete-alist nil)
+ (setq package-alist package--builtins
+ package-activated-list (mapcar #'car package-alist)
+ package-obsolete-alist nil)
(package-load-all-descriptors)
(package-read-all-archive-contents)
+ ;; "Deactivate" obsoleted built-in packages
+ (dolist (elt package-obsolete-alist)
+ (delq (car elt) package-activated-list))
;; Try to activate all our packages.
- (mapc (lambda (elt)
- (package-activate (car elt) (package-desc-vers (cdr elt))))
- package-alist))
+ (dolist (elt package-alist)
+ (package-activate (car elt) (package-desc-vers (cdr elt)))))
;;;; Package description buffer.
@@ -1073,10 +1075,10 @@ The variable `package-load-list' controls which packages to load."
;; This package is loaded (i.e. in `package-alist').
(progn
(setq version (package-version-join (package-desc-vers desc)))
- (cond (built-in
- (princ "a built-in package.\n\n"))
- ((setq pkg-dir (package--dir package-name version))
+ (cond ((setq pkg-dir (package--dir package-name version))
(insert "an installed package.\n\n"))
+ (built-in
+ (princ "a built-in package.\n\n"))
(t ;; This normally does not happen.
(insert "a deleted package.\n\n")
(setq version nil))))