GNU bug report logs - #68709
[PATCH] gnu: emacs-citar: Fix autoloads and restore tests

Previous Next

Package: guix-patches;

Reported by: Edward Wilson <bienjensu <at> gmail.com>

Date: Thu, 25 Jan 2024 04:35:03 UTC

Severity: normal

Tags: patch

Done: Andrew Tropin <andrew <at> trop.in>

Bug is archived. No further changes may be made.

Full log


Message #13 received at 68709-done <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Graves <ngraves <at> ngraves.fr>
To: Andrew Tropin <andrew <at> trop.in>, Edward Wilson <bienjensu <at> gmail.com>,
 68709-done <at> debbugs.gnu.org
Cc: Katherine Cox-Buday <cox.katherine.e+guix <at> gmail.com>,
 Edward Wilson <bienjensu <at> gmail.com>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Subject: Re: bug#68709: [PATCH] gnu: emacs-citar: Fix autoloads and restore
 tests
Date: Sat, 27 Jan 2024 13:20:20 +0100
[Message part 1 (text/plain, inline)]
Just to let you know, on my side I had written this patch to provide a
more general solution, I don't know if setting a particular emacs
package is a good solution in the long run.

[0001-emacs-build-system-cl-defstruct-autoloads.patch (text/x-patch, inline)]
From d8cbd304da0e4a9a073a213002c9876fe3011fe3 Mon Sep 17 00:00:00 2001
From: Nicolas Graves <ngraves <at> ngraves.fr>
Date: Wed, 15 Nov 2023 08:48:44 +0100
Subject: [PATCH] emacs-build-system: cl-defstruct autoloads.

Change-Id: If46b1d44fcc7f93da58de2573e1515a702c4dd52
---
 guix/build/emacs-utils.scm | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm
index 8e12b5b6d4..b7820d6390 100644
--- a/guix/build/emacs-utils.scm
+++ b/guix/build/emacs-utils.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2018, 2020, 2022 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
 ;;; Copyright © 2019 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
 ;;; Copyright © 2022 Fredrik Salomonsson <plattfot <at> posteo.net>
+;;; Copyright © 2023 Nicolas Graves <ngraves <at> ngraves.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -119,7 +120,14 @@ (define (emacs-generate-autoloads name directory)
                    ((fboundp 'make-directory-autoloads)
                     ;; Emacs 28
                     (make-directory-autoloads ,directory ,file))
-                   (t (update-directory-autoloads ,directory))))))
+                   (t (update-directory-autoloads ,directory)))
+                  (when (file-exists-p ,file)
+                    (with-temp-buffer
+                     (insert-file-contents ,file)
+                     (when (search-forward "(cl-defstruct" nil t)
+                       (beginning-of-line)
+                       (insert "(require 'cl-lib)\n")
+                       (write-region (point-min) (point-max) ,file)))))))
     (emacs-batch-eval expr #:dynamic? #t)))
 
 (define* (emacs-byte-compile-directory dir)
-- 
2.41.0

[Message part 3 (text/plain, inline)]
I'm deleting it from my local guix, feel free to rework on it if useful.

Nicolas


On 2024-01-26 19:49, Andrew Tropin via Guix-patches via wrote:

> On 2024-01-24 22:34, Edward Wilson wrote:
>
>> The default build-system emacs doesn't properly expand cl-lib macros when
>> compiling autoloads. This patch changes the `#:emacs` build argument, fixing a
>> present bug (reproducible by requiring citar-autoloads in a minimal
>> environment). This change also allows the validation of compiled autoloads to
>> succeed, hence the test phase is restored.
>>
>> * gnu/packages/emacs-xyz.scm (emacs-citar): Change build-system emacs and
>> restore tests
>>
>> Change-Id: Id56de922e5220383f8c5015a01e39b4aa2ea8cfb
>> ---
>>  gnu/packages/emacs-xyz.scm | 6 ++----
>>  1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
>> index ad8c72e97d..b8c97d1767 100644
>> --- a/gnu/packages/emacs-xyz.scm
>> +++ b/gnu/packages/emacs-xyz.scm
>> @@ -23633,6 +23633,7 @@ (define-public emacs-citar
>>      (build-system emacs-build-system)
>>      (arguments
>>       (list
>> +      #:emacs emacs-no-x
>>        #:tests? #true
>>        #:test-command #~(list "emacs" "--batch" "-L" "."
>>                               "-l" "test/citar-test.el"
>> @@ -23642,10 +23643,7 @@ (define-public emacs-citar
>>        #:phases #~(modify-phases %standard-phases
>>                     (add-before 'build 'set-home
>>                       (lambda _
>> -                       (setenv "HOME" "/tmp")))
>> -                   ;; XXX: The following phase reports bogus errors. Suppress
>> -                   ;; it for now.
>> -                   (delete 'validate-compiled-autoloads))))
>> +                       (setenv "HOME" "/tmp"))))))
>>      (propagated-inputs (list emacs-auctex
>>                               emacs-citeproc-el
>>                               emacs-embark
>>
>> base-commit: ffc5fefce370f5fc01091869e13fdf525be1e0c0
>
> Hi Edward!
>
> Thank you very much for the fix, added a trailing dot to commit message
> and pushed as
> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=8ae8b9804f

-- 
Best regards,
Nicolas Graves

This bug report was last modified 1 year and 115 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.