> Johan? I actually found a way around the issue because I had no time waiting for it to get fixed. But I still think that this should be fixed for the reason I mention that other packages, such as Epl depends on the (non) package API. This specific issue will break for example this function: https://github.com/cask/epl/blob/master/epl.el#L447-L452 On Mon, Mar 24, 2014 at 7:20 AM, Dmitry Gutov wrote: > On 24.03.2014 02:55, Stefan wrote: > > Does it affect the output of M-x package-list RET? >> > > It's identical (checked with diff). > > What about the package-menu-mark-upgrades? >> > > It works. Don't see any problems. > > > If we can keep the already installed packages, couldn't we also keep the >> already built-in packages? >> > > Yes, seems so. I hadn't tried this before because the previous behavior > was to omit them (I think), but the patch below seems to work fine WRT the > questions above. > > > === modified file 'lisp/emacs-lisp/package.el' > --- lisp/emacs-lisp/package.el 2014-03-23 08:35:56 +0000 > +++ lisp/emacs-lisp/package.el 2014-03-24 06:11:52 +0000 > @@ -1047,14 +1047,9 @@ > > (existing-packages (assq name package-archive-contents)) > (pinned-to-archive (assoc name package-pinned-packages))) > (cond > - ;; Skip entirely if pinned to another archive or already installed. > - ((or (and pinned-to-archive > - (not (equal (cdr pinned-to-archive) archive))) > - (let ((bi (assq name package--builtin-versions))) > > - (and bi (version-list-= version (cdr bi)))) > - (let ((ins (cdr (assq name package-alist)))) > - (and ins (version-list-= version > - (package-desc-version (car ins)))))) > + ;; Skip entirely if pinned to another archive. > + ((and pinned-to-archive > + (not (equal (cdr pinned-to-archive) archive))) > > nil) > ((not existing-packages) > (push (list name pkg-desc) package-archive-contents)) > @@ -1090,8 +1085,11 @@ > > (package-refresh-contents)) > (list (intern (completing-read > "Install package: " > - (mapcar (lambda (elt) (symbol-name (car elt))) > - package-archive-contents) > + (delq nil > + (mapcar (lambda (elt) > + (unless (package-installed-p (car > elt)) > + (symbol-name (car elt)))) > + package-archive-contents)) > nil t))))) > (package-download-transaction > (if (package-desc-p pkg) > > >