From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path Date: Sun, 04 Jun 2023 11:47:15 -0400 Message-ID: References: <87ilcb2p1l.fsf@posteo.net> <87sfb8g85v.fsf@posteo.net> <83a5xf7pi5.fsf@gnu.org> <87ttvnoehl.fsf@posteo.net> <8335377iyo.fsf@gnu.org> <87h6rnoa8v.fsf@posteo.net> <83v8g35ybo.fsf@gnu.org> <87cz2bo3qu.fsf@posteo.net> <83pm6b5t1i.fsf@gnu.org> <878rczo28v.fsf@posteo.net> <83o7lv5sjc.fsf@gnu.org> <874jnno1bi.fsf@posteo.net> <83mt1f5rab.fsf@gnu.org> <87zg5fmkgk.fsf@posteo.net> <83a5xf5k65.fsf@gnu.org> Reply-To: Stefan Monnier Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33541"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: artscan@list.ru, 63757@debbugs.gnu.org, philipk@posteo.net To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jun 04 17:48:22 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q5pxt-0008Wq-Gf for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 04 Jun 2023 17:48:21 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q5pxg-00067k-TR; Sun, 04 Jun 2023 11:48:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q5pxb-00067V-Uz for bug-gnu-emacs@gnu.org; Sun, 04 Jun 2023 11:48:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q5pxa-0005fD-8K for bug-gnu-emacs@gnu.org; Sun, 04 Jun 2023 11:48:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1q5pxa-0005jp-3s for bug-gnu-emacs@gnu.org; Sun, 04 Jun 2023 11:48:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 04 Jun 2023 15:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63757 X-GNU-PR-Package: emacs Original-Received: via spool by 63757-submit@debbugs.gnu.org id=B63757.168589364521867 (code B ref 63757); Sun, 04 Jun 2023 15:48:02 +0000 Original-Received: (at 63757) by debbugs.gnu.org; 4 Jun 2023 15:47:25 +0000 Original-Received: from localhost ([127.0.0.1]:46940 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q5pwy-0005gd-SI for submit@debbugs.gnu.org; Sun, 04 Jun 2023 11:47:25 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:14152) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q5pwx-0005gQ-C2 for 63757@debbugs.gnu.org; Sun, 04 Jun 2023 11:47:23 -0400 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 1B4BD80626; Sun, 4 Jun 2023 11:47:18 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 0D46980355; Sun, 4 Jun 2023 11:47:17 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1685893637; bh=ZNpRc28Eiu5PNMucP3JQYHcIhx08+1e1LK72WdUQavE=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=pnyoNgdxyBmKB4woR4useaF6FGhDvgQqxAWmZ5DQ5xgHXTxmlltfPCdkXiw5yKKsl FxoCOZ8QRwKrerdoC0dpcfh2LUtUUmywZ9cKro8GMzKFQiu47fVb4FCfuWVMytwerX +jIonC27kXU4s/GVe8pRyDfnnrBWRUNcWdF7R6fu9dXy8I+l8ZHhhAnGk2YfAsAD6U kW43aoW/zOnok4U9p4MC4HRX2ieHc9oUM8getaY9NckLXqADWMxqWJr6bNu2QNk/4R G+RBYK/ZRlFkmuoYY/BqU/ns6PGrPFKK8LmNFrzw3kjommCnupwmvt4rFE0qSv2ofa MXT4uM1YHN/GA== Original-Received: from pastel (76-10-180-239.dsl.teksavvy.com [76.10.180.239]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id AC5E61204DC; Sun, 4 Jun 2023 11:47:16 -0400 (EDT) In-Reply-To: <83a5xf5k65.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 04 Jun 2023 18:20:02 +0300") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:262968 Archived-At: > I'd need to see the actual patch, but right now I'm inclined to leave > this problem unsolved in Emacs 29. It only happens for people who > don't uninstall older versions of packages they install, and that's > not the workflow we support in Emacs 29. The offending code was with > us since Aug 2022, so replacing it with something at the last moment > needs a very good reason. Actually, here's the patch that I'd suggest. It reverts the code to its Jan 2021 state, which, in my book, makes it safe enough. The current sort predicate is quite severely broken, so "no sort" can't be worse (especially since the list is supposed to be sorted already). Also it re-instates the "prefer a builtin package" which was lost along the way. Stefan diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 8f266186d5e..7d5946fbfa9 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -924,22 +924,14 @@ package-activate-1 (defun package--get-activatable-pkg (pkg-name) ;; Is "activatable" a word? - (let ((pkg-descs (sort (cdr (assq pkg-name package-alist)) - (lambda (p1 p2) - (let ((v1 (package-desc-version p1)) - (v2 (package-desc-version p2))) - (or - ;; Prefer VC packages. - (package-vc-p p1) - (package-vc-p p2) - ;; Prefer builtin packages. - (package-disabled-p p1 v1) - (not (package-disabled-p p2 v2)))))))) + (let ((pkg-descs (cdr (assq pkg-name package-alist)))) ;; Check if PACKAGE is available in `package-alist'. (while (when pkg-descs (let ((available-version (package-desc-version (car pkg-descs)))) - (package-disabled-p pkg-name available-version))) + (or (package-disabled-p pkg-name available-version) + ;; Prefer a builtin package. + (package-built-in-p pkg-name available-version)))) (setq pkg-descs (cdr pkg-descs))) (car pkg-descs)))