[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#73102: 29.4; `package-recompile-all' should skip packages installed
From: |
Zhengyi Fu |
Subject: |
bug#73102: 29.4; `package-recompile-all' should skip packages installed by distro package manager |
Date: |
Tue, 10 Sep 2024 22:55:43 +0800 |
Philip Kaludercic <philipk@posteo.net> writes:
> Zhengyi Fu <i@fuzy.me> writes:
>
>> When I try recompiling all packages installed by package.el with `M-x
>> package-recompile-all', I got the following error:
>>
>> Debugger entered--Lisp error: (permission-denied "Removing old name"
>> "Permission denied"
>> "/usr/share/emacs/site-lisp/elpa/mu4e-1.10.8/mu4e-a...")
>> package-recompile(#s(package-desc :name mu4e :version (1 10 8)
>> :summary "the mu mail user agent" :reqs nil :kind nil :archive nil
>> :dir "/usr/share/emacs/site-lisp/elpa/mu4e-1.10.8" :extras nil
>> :signed nil))
>> package-recompile-all()
>> funcall-interactively(package-recompile-all)
>> command-execute(package-recompile-all record)
>> execute-extended-command(nil "package-recompile-all" "recom all")
>> funcall-interactively(execute-extended-command nil "package-recompile-all"
>> "recom all")
>> command-execute(execute-extended-command)
>>
>> This is possibly because the package `mu4e' was installed by the distro
>> package manager in a path where normal users don't have write access.
>>
>> I think `package-recompile-all' should either skip those packages that
>> are not installed by package.el or ignore such errors and continue to
>> recompile other packages.
>
> We have installed a patch in Bug#68678 on master (the commit is from
> last February, so you wouldn't see it yet on 29.4) that wraps the
> `package-recompile' call in a `with-demoted-errors' block. That would
> still emit a error message, but it wouldn't break the recompilation
> procedure. Do you think that is enough, or should be explicitly and
> additionally avoid re-compiling external packages?
Yes. That patch is enough for me. Thanks!!
--
Zhengyi Fu