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

From: Stefan <[email-masked]>
Date: Sun, 23 Mar 2014 20:55:58 -0400

>> Yes, but as long as we don't know why this was done, it's too risky to
>> change it.  If/when we figure out what that was about and come up with
>> a way to fix the problem, we can judge whether that's appropriate for
>> 24.4.
> From what I can see, except `package-install', all places where
> `package-archive-contents' is used, either append its contents to
> `package-alist' elements, or use a predicate calling `package-installed-p'.
> The following patch seems to offer the same functionality:

Does it affect the output of M-x package-list RET?
What about the package-menu-mark-upgrades?

>      (cond
> -     ;; Skip entirely if pinned to another archive or already installed.
> +     ;; Skip entirely if pinned to another archive or built-in.
>       ((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))))))
> +            (and bi (version-list-= version (cdr bi)))))
>        nil)

If we can keep the already installed packages, couldn't we also keep the
already built-in packages?

        Stefan