[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: