Subject: bug#76325: 30.0.93; package-vc-install fails with repositories that contain multiple single-file packages

From: Armin Darvish <[email-masked]>
Date: Sat, 15 Feb 2025 14:59:36 -0800

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.

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.

Best Regards,
*Armin Darvish*

--
------------------------------------------------------------------------
[www.armindarvish.com]

[www.armindarvish.com] <https://www.armindarvish.com/>