Subject: Re: bug#16762: Installed packages are not considered part of the archive contents

From: Stefan <[email-masked]>
Date: Mon, 24 Mar 2014 09:07:05 -0400

> === 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))

Doesn't the above package-installed-p mean that we can't complete the
name of an already installed package we want to upgrade?

        Stefan