Bug#1138884: dh-elpa: simplify emacs-bundled addon handling

Xiyue Deng <[email protected]> Thu, 02 Jul 2026 18:15:46 -0700
Newsgroups gmane.linux.debian.devel.emacsen
Message-ID <87cxx4an5p.fsf__22936.1954772443$1783044944$gmane$org@debian-hx90.lan>
Control: severity -1 important

Hi,

Xiyue Deng <[email protected]> writes:

> Xiyue Deng <[email protected]> writes:
>
>> Sean Whitton <[email protected]> writes:
>>
>>> Xiyue Deng [11/Jun  7:13pm -07] wrote:
>>>> Hi Sean,
>>>>
>>>> Sean Whitton <[email protected]> writes:
>>>>
>>>>> Xiyue Deng [10/Jun 11:23pm -07] wrote:
>>>>>> So I guess this can really work!
>>>>>
>>>>> Nice.
>>>>>
>>>>>> Will continue with this after the integration test is merged so that
>>>>>> we have some test coverage.
>>>>>
>>>>> IMO this is more important than that other work and can merge first.
>>>>
>>>> Ah I was hoping that the test branch is safer as it doesn't change any
>>>> functions and can go in first.
>>>>
>>>> Anyway, I experimented a change[1] and tested it in the
>>>> `built-in-addon-handling' branch, and rebased it on to the test branch
>>>> for testing. One of the test cases has cl-lib in Package-Requires, and
>>>> the generated diff looked OK[2].
>>>>
>>>> So now we only remove `emacs' from the list of dependencies. The code
>>>> can be further simplified, but I'd like to keep the current structure in
>>>> case we want to do more later.
>>>
>>> I think I'd prefer to strip out everything we don't need anymore -- it's
>>> always there in the Git history if required again.
>>
>> Ack. Now I only keep the comparison with "emacs". Also shortened the doc
>> string. PTAL.
>
> Friendly ping.

I have identified a case that this dependency handling is required for
correctly byte compiling transitive dependency on packages that need to
be newer than the built-in ones. When working on magit 4.6.0, which
requires transient 0.13 and compat 31.0, both of which are built-in
packages but the version required is higher than the ones bundled in
Emacs 30.2 and hence external newer packages are required. With dh-elpa
2.1.9, the compilation of magit fails (full log attached). The first few
lines look like below:

,----
| Checking /usr/share/emacs/site-lisp/elpa/magit-4.6.0...
| Compiling /usr/share/emacs/site-lisp/elpa/magit-4.6.0/git-commit.el...
| 
| In toplevel form:
| git-commit.el:103:11: Error: Symbol’s function definition is void: static-when
| Compiling /usr/share/emacs/site-lisp/elpa/magit-4.6.0/git-rebase.el...
| 
| In toplevel form:
| git-rebase.el:75:11: Error: transient--init-suffix-key is already defined as something else than a generic function
| ...
`----

This strongly suggests that the bundled older version of compat is
in-use which does not provide `static-when' yet.

Initially I suspected that the command to do the byte compiling may be
at fault, more specifically the use of "--quick" may cause it to ignore
the external packages, but ruled it out after some experiments. I have
confirmed that using dh-elpa with the simplified dependency handling
magit 4.6.0 will succeed to byte compile.

It would be good to have this reviewed and approved soon. Maybe we can
make an experimental upload soonish for testing?

-- 
Regards,
Xiyue Deng
Install.log.gz (application/gzip, 835 B) - not displayed
signature.asc (application/pgp-signature, 861 B)
-----BEGIN PGP SIGNATURE-----

iQJHBAEBCgAxFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmpHDUITHG1hbnBoaXpA
ZGViaWFuLm9yZwAKCRAt6WXtY4Jck1q5D/9I6f/kwa8GRs1zT9wh+OSha00S5YAO
HjtQCf90CV2vlVJueXXbePSO0HhnXHR7HQwHb9tecjCBVRt1SDRBxIjKTq2meSdL
zjodk4JUge/BiEzjKdyXw+6Wm1tePojFOVkVDlhRwJYyRLGBFWfH9MDJuWwQHEQN
qSrOIr6bKXmtYcP0SYhmNwuNZjHhqH6GLC1pXhvIEYFKlwMywzW9JqazgCXHdjFV
W0o3I7L/pJiQzY7cgmSZTwT45AXIEjtBq+PBJ0yy+B2DzigyvGdhKhSpkGKKM0BK
AVf50roEN4ffQ30tlw+NM2v+Zi7Qlepk9f65mHVkfvff5XuKNH6cTxLFmiO4oLSE
SEomsiTnNODAJeavASsQEYb3JFP67tU3NbvrqlpJ7jpDg0Yi6Azlr/VanUEHB//J
zeS7l5qvAtLchE7kNsOIxD1sGLnOZY9WSrJZXgVZsbhqfdCaxOznVvZuumXQC6tM
SSvd4D1+NWqASn1nb07cqfg+CwlGIE8ok5a8gvxNA31dehWScI3TeCpuI00SA5fk
GmyJe8OJKuKiP5wBIdNzDu2wkQa97mTpthQqi60/pIfTevAatdd81L770BMYz9m+
mpbB2y8NnC0BaUH6kxTIzfphl9TXwA18mOmiNIZOFP0c4ZZidhyTLliDEfl0IRU9
JTVcWQuueY8s/w==
=Oc63
-----END PGP SIGNATURE-----