GNU bug report logs - #76325
30.0.93; package-vc-install fails with repositories that contain multiple single-file packages

Previous Next

Package: emacs;

Reported by: Armin Darvish <armindarvish <at> gmail.com>

Date: Sun, 16 Feb 2025 07:31:02 UTC

Severity: normal

Found in version 30.0.93

Full log


View this message in rfc822 format

From: Philip Kaludercic <philipk <at> posteo.net>
To: Armin Darvish <armindarvish <at> gmail.com>
Cc: 76325 <at> debbugs.gnu.org
Subject: bug#76325: 30.0.93; package-vc-install fails with repositories that contain multiple single-file packages
Date: Sun, 16 Feb 2025 18:53:43 +0000
Armin Darvish <armindarvish <at> gmail.com> writes:

> Hello,
>
> I have noticed that with vc repositories that contain multiple related single-file
> packages, package-vc-install creates looped self-dependency that can cause errors. 
>
> For example, trying to install the repository: 
> <https://github.com/armindarvish/consult-omni> 
> will result in "Lisp nesting exceeds ‘max-lisp-eval-depth’: 1601" error. This is 
> because currently package-vc-install tries to read all ".el" files in the root 
> directory to get the dependencies and build the "define-package" declaration in
> consult-omni-pkg.el. This is not compatible with repositories that have multiple
> single-file packages in the root directory. Instead, the dependencies should be 
> inferred from the main lisp file only. This will be safe with multi-file packages
> as well because the convention is to have the "Package-Requires:" header only in 
> the main lisp file and not the additional lisp files.

What version of Emacs are you using?  Installing your repository doesn't
raise any error when I try to do so.

> There are other packages that have multiple single-file packages as well, for 
> example, <https://github.com/oantolin/embark> includes embark and embark-consult in
> the root directory. Currently, installing embark with package-vc-install causes
> several different versions of embark being downlaoded because the dependencies are
> read from all of those files even though they are meant to be separate packages.

The issue we have to keep in mind is that since we add the repository
directly to `load-path', all the files can be used no matter what
"specific" file you might intend to use.  To retain usability and not
have unexpected function calls fail, we rather install all the
dependencies.  The recursion error above hints at some programming
issue, where we don't terminate properly.

>
> Best Regards,
> *Armin Darvish*
>
> --
> ------------------------------------------------------------------------
> [www.armindarvish.com]
>
>
> [www.armindarvish.com] <https://www.armindarvish.com/>




This bug report was last modified 95 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.