Package: dh-elpa-helper
Version: 2.0.16
Severity: serious

There are several reports against Emacs 30.1 backports that some
packages are seeing byte-compilation errors when upgrading to Emacs
30.1[1][2].

Currently we identified that this could be caused by the install script
from dh-elpa-helper which compiles each .el source file one by one.
This has been changed to use byte-recompile-directory since 2.1.2, which
is probably why we don't see this issue in Sid/Trixie.  It's not clear
to me why byte-compile files one by one stopped working.

Though currently this is reported affecting Emacs 30.1 from backports,
I'm afraid this could potentially cause upgrading issues for Trixie as
well when a problematic addon package upgrades before dh-elpa-helper and
uses the old single-file byte compilation.  Therefore I'm marking this
bug as serious.

I'm attaching a patch set, of which the first patch includes the minimum
change to use byte-recompile-directory.  I have locally tested it in a
Bookworm docker image that this worked for elpa-compat and elpa-php-mode
(and potentially others) when upgrading to Emacs 30.1 from backports,
and should be sufficient to fix Bookworm to Trixie upgrade as well.

The second patch is to workaround the limitation of version handling in
dh-elpa.el (this needs a fix for the latest dh-elpa as well, which I'll
file a bug separately.)

As this could be an issue affecting Trixie upgrades, I wonder whether
the changes warrants a stable update.

[1] https://bugs.debian.org/1099325
[2] https://lists.debian.org/debian-backports/2025/02/msg00008.html


-- System Information:
Debian Release: 12.9
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.1.0-31-amd64 (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

-- no debconf information

-- 
Regards,
Xiyue Deng
From da1d525682a8f4e3eae67c1e8d275ae73fe66711 Mon Sep 17 00:00:00 2001
From: Xiyue Deng <manp...@gmail.com>
Date: Mon, 3 Mar 2025 00:00:22 -0800
Subject: [PATCH 1/3] Improve byte compilation handling

---
 helper/install | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/helper/install b/helper/install
index 3152cf4..5f1e62b 100755
--- a/helper/install
+++ b/helper/install
@@ -58,7 +58,8 @@ echo install/${ELPA_DIR}: byte-compiling for ${FLAVOR}
  ${FLAVOR} --quick --batch -l package \
            --eval "(setq package-user-dir \"/nonexistent\")" \
            --eval "(add-to-list 'package-directory-list \"$src_dir\")" \
-           -f package-initialize -f batch-byte-compile *.el > Install.log 2>&1
+           -f package-initialize \
+           --eval "(byte-recompile-directory \".\" 0)" > Install.log 2>&1
  if test $? -ne 0
  then
    cat Install.log
-- 
2.47.2

From ec502a3fe9056c002bdbcb57a08c6194be70ffba Mon Sep 17 00:00:00 2001
From: Xiyue Deng <manp...@gmail.com>
Date: Mon, 3 Mar 2025 00:18:44 -0800
Subject: [PATCH 2/3] Use a version number understandable by dh-elpa

---
 debian/rules | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/debian/rules b/debian/rules
index c93d80f..e5e09f7 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,6 +1,7 @@
 #!/usr/bin/make -f
 
-include /usr/share/dpkg/pkg-info.mk
+# Use a version number understandable by dh-elpa
+DEB_VERSION_UPSTREAM=2.0.16
 export DEB_VERSION_UPSTREAM
 DESTDIR=$(CURDIR)/debian/tmp
 # this is not needed, and only included as a test of the feature.
-- 
2.47.2

From c910cbf3fb0758b4cf8ad7bce40029df06ff2cec Mon Sep 17 00:00:00 2001
From: Xiyue Deng <manp...@gmail.com>
Date: Mon, 3 Mar 2025 00:19:34 -0800
Subject: [PATCH 3/3] Update d/changelog

---
 debian/changelog | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index f4bee52..38815d9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+dh-elpa (2.0.16+deb12u1) UNRELEASED; urgency=medium
+
+  * Team upload
+  * Improve byte compilation handling
+  * Use a version number understandable by dh-elpa
+
+ -- Xiyue Deng <manp...@gmail.com>  Mon, 03 Mar 2025 00:19:11 -0800
+
 dh-elpa (2.0.16) unstable; urgency=medium
 
   * Drop dependencies on emacs-el introduced in 2.0.11.
-- 
2.47.2

Attachment: signature.asc
Description: PGP signature

Reply via email to