Bug#1040033: bookworm-pu: package vm/8.2.0b-8+deb12u1
Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: vm@packages.debian.org, 1039105@bugs.debian.org
Control: affects -1 + src:vm
[ Reason ]
vm in bookworm can fail to start due to problems with Emacs Lisp
to native code byte compilation.
[ Impact ]
vm cannot be invoked. The user gets a Lisp error instead.
If the user loads vm from their startup files, their emacs
will start up in a partially-configured state.
The bug is not 100% reproducible, but usually manifests on the second
interactive vm session for any particular user.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1039105
[ Tests ]
In bookworm there are no formal tests. The fatal startup error is not
triggered by any number of naive attempts at noninteractive testing
with emacs --batch, nor by a single invocation in a fresh chroot.
However, I was able to reproduce the bug interactively and confirm the
fix.
In sid (8.2.0b-10) there is now an autopkgtest. This test *does*
detect the bug reliably.
Running the new autopkgtest from sid (8.2.0b-10),
with the .debs in bookworm (8.2.0b-8) it indeed give a test failure;
with locally built .debs from the update (8.2.0b-8+deb12u1) it passes.
Additionally I have two reports from users, who say they made local
builds with the same fix, and that it worked for them.
[ Risks ]
The most obvious downside of disabling byte-compilation is that vm now
starts more slowly. This is a regression compared to bullseye.
Possibly there might be something wrong with the fix; however, I have
checked the manual's explanation of the
native-comp-deferred-compilation-deny-list
varisble and the value we're using seems correct.
The fix comes from Fedora, originally, and is 11 months old there.
[ Checklist ]
[x] *all* changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in (old)stable
[x] the issue is verified as fixed in unstable
[ Changes ]
The single change is to add a regesp matching all files /vm*.el to
native-comp-deferred-compilation-deny-list to suppress native code
byte compilation.
This is applied in the Debian-specific startup hook which icnludes the
autoload machinery.
[ Other info ]
Anticipating approval, I will upload this to bookworm-p-u immediately
after sending this report.
diff --git a/debian/changelog b/debian/changelog
index 26edf1e..de61e31 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+vm (8.2.0b-8+deb12u1) bookworm; urgency=medium
+
+ * Avoid byte compilation to work around trouble with emacs 28
+ Closes: #1039105. [Report from and patch via Dirk Eddelbuettel
+ (Fix cherry picked from e8779ea20768ad08 in 8.2.0b-9.).)
+
+ -- Ian Jackson <ijackson@chiark.greenend.org.uk> Sat, 01 Jul 2023 10:10:54 +0100
+
vm (8.2.0b-8) unstable; urgency=medium
* No longer embed paths from build environment into
diff --git a/debian/vm.emacsen-startup b/debian/vm.emacsen-startup
index 9e269c9..8012911 100644
--- a/debian/vm.emacsen-startup
+++ b/debian/vm.emacsen-startup
@@ -1,6 +1,18 @@
;-*-emacs-lisp-*-
; arch-tag: 045640fd-0ff2-45b7-a29f-68e4b8378fbf
+;; Borrowed with thanks from Fedora at
+;; https://src.fedoraproject.org/rpms/emacs-vm/c/909b0bc357976252c51502bf17ed1efc6aeb7b97?branch=rawhide
+;;
+;; See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1039105
+;;
+;; For some reason, native compilation breaks VM. As a workaround until the
+;; problem is understood and fixed, disable native compilation of all VM
+;; lisp files.
+(eval-after-load "comp"
+ '(if (boundp 'native-comp-deferred-compilation-deny-list)
+ (add-to-list 'native-comp-deferred-compilation-deny-list "/vm.*\.el")))
+
(let ((package-dir (concat "/usr/share/"
(symbol-name debian-emacs-flavor)
"/site-lisp/vm")))
Reply to: