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-----