Eli Zaretskii writes: >> From: Thierry Volpiatto >> Date: Tue, 16 Jul 2024 14:46:37 +0000 >> >> >> I think there is a bug here, but please verify with following recipe as >> I don't use widely package installation, at least for myself. When reading >> the code I believe it is reproductible as well on emacs-30+. >> >> 1) Install package foo and bar. >> 2) Disable them in package-load-list ((foo nil) (bar nil) all). >> 3) Wait some time until foo and/or bar have new versions available. >> 4) Call package-upgrade-all. It will call package-upgrade on foo >> and bar (and possibly others). When package-upgrade find foo >> package it will (1) delete it and (2) call package-install which >> will refuse to install (error) because foo is disabled. >> >> As a result we have lost foo package, it is now uninstalled. >> Same problem with M-x package-upgrade, foo and bar are listed in >> completion and made available whereas they are going to fail to >> upgrade. > > Philip, any comments or suggestions? The issue is that we don't install a package if it is disabled. So either we allow installing (but don't activate) disabled packages, or we ignore disabled packages during upgrades. That might just need this change: