# HG changeset patch # User Chong Yidong # Date 1288662626 14400 # Node ID c133fe92297f7090ca6cabe5eb601d91a65c2643 # Parent bad40b05a0dff1032f10a738c07cfb05409a6688 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". diff -r bad40b05a0df -r c133fe92297f lisp/ChangeLog --- a/lisp/ChangeLog Mon Nov 01 23:50:22 2010 -0200 +++ b/lisp/ChangeLog Mon Nov 01 21:50:26 2010 -0400 @@ -1,3 +1,11 @@ +2010-11-02 Chong Yidong + + * 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". + 2010-11-01 Vinicius Jose Latorre * subr.el (version-separator, version-regexp-alist): Remove '*' diff -r bad40b05a0df -r c133fe92297f lisp/emacs-lisp/package.el --- a/lisp/emacs-lisp/package.el Mon Nov 01 23:50:22 2010 -0200 +++ b/lisp/emacs-lisp/package.el Mon Nov 01 21:50:26 2010 -0400 @@ -1020,15 +1020,17 @@ 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 @@ ;; This package is loaded (i.e. in `package-alist'). (progn (setq version (package-version-join (package-desc-vers desc))) - (cond (built-in + (cond ((setq pkg-dir (package--dir package-name version)) + (insert "an installed package.\n\n")) + (built-in (princ "a built-in package.\n\n")) - ((setq pkg-dir (package--dir package-name version)) - (insert "an installed package.\n\n")) (t ;; This normally does not happen. (insert "a deleted package.\n\n") (setq version nil))))