diff mbox series

[bug#65717] gnu: Add emacs-latex-extra.

Message ID 878r9ker9t.fsf@colimite.fr
State New
Headers show
Series [bug#65717] gnu: Add emacs-latex-extra. | expand

Commit Message

Sergiu Ivanov Sept. 4, 2023, 8:16 p.m. UTC
Hello Nicolas,

Thank you very much for your feedback.


Nicolas Goaziou <mail@nicolasgoaziou.fr> [2023-09-03T21:44:49+0200]:
> Hello,
>
> Sergiu Ivanov <sivanov@colimite.fr> writes:
>
>> Subject: [PATCH] gnu: Add emacs-latex-extra.
>
> Thank you.
>
> Some comments follow.
>
>> +      (build-system emacs-build-system)
>> +      (arguments
>> +       `(#:phases (modify-phases %standard-phases
>> +                    (add-before 'build 'set-home
>> +                      (lambda _
>> +                        (setenv "HOME"
>> +                                (getcwd)))))))
>
> Why is it needed ?

If I don't explicitly set $HOME, the build fails with

Debugger entered--Lisp error: (file-missing "Setting current directory" "No such file or directory" "/homeless-shelter/")
  call-process("sh" nil t nil "-c" "evince --help")
  call-process-shell-command("evince --help" nil t)
  shell-command("evince --help" t)
  shell-command-to-string("evince --help")
  TeX-view-program-select-evince("gnome" "evince")
  ...

> Also, upstream provides tests. Could you run them?

I tried adding the following to the arguments list:

#:tests? #t
#:test-command '("make" "test")

and the build now fails with this error:


starting phase `check'
echo "hi " /tmp/guix-build-emacs-latex-extra-1.14-0.a81e758.drv-0/source && \
emacs -Q --batch -L "auctex-11.87.7/" -L "tests/auctex-11.87.7/" -l "auctex-autoloads.el"   -L . -L .. -L tests/ --eval \
    "(progn                                \
      (unless (fboundp 'function-put) (defalias 'function-put #'(lambda (f prop value) (put f prop value)))) \
      (defun define-error (name message &optional parent) (unless parent (setq parent 'error)) (let ((conditions (if (consp parent) (apply #'nconc (mapcar (lambda (parent) (cons parent (or (get parent 'error-conditions) (error \"Unknown signal %s\" parent)))) parent)) (cons parent (get parent 'error-conditions))))) (put name 'error-conditions (delete-dups (copy-sequence (cons name conditions)))) (when message (put name 'error-message message)))) \
      (setq byte-compile-error-on-warn t)  \
      (batch-byte-compile))" *.el
hi  /tmp/guix-build-emacs-latex-extra-1.14-0.a81e758.drv-0/source
Eager macro-expansion failure: (error "Package cl is deprecated")
Eager macro-expansion failure: (error "Package cl is deprecated")

In toplevel form:
latex-extra.el:130:1: Error: Package cl is deprecated
make: *** [Makefile:25: build] Error 1
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("test" "-j" "8") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `check' failed after 0.1 seconds


I hunted around emacs-xyz.scm and tried using ert-runner, which
complained that the tests are in the wrong directory, since it expects
apparently the tests to be under test/ and not tests/, as in the case of
latex-extra.  Still, by looking at how the test target is defined in the
Makefile of latex-extra, I think that this is not the problem.  On the
other hand, I don't believe that package cl being deprecated is the
problem either, since that is normally a warning and not an error.

Do you have any ideas as to how to debug this kind of issues?

FWIW, I am already using the draft version of this package out of my
private channel, and it works nicely, so this problem seems to be
specific for the tests.


>> +      (inputs (list emacs-auctex))
>
> Usually, inputs are propagated, although it doesn't make a difference
> for Emacs.

I changed this to propagated-inputs.

>> +      (home-page "https://github.com/Malabarba/latex-extra")
>> +      (synopsis "Usability improvements for latex-mode")
>
> Nitpick: "latex-mode" -> "LaTeX mode"

Fixed.

>> +      (description
>> +       "Latex-extra defines extra commands and keys for LaTeX-mode, as well
>> +as brings user experience improvements.")
>
> Nitpick: "LaTeX-mode" -> "LaTeX mode"

Fixed as well.

-
Sergiu

Comments

Nicolas Goaziou Sept. 5, 2023, 12:50 p.m. UTC | #1
Hello,

Sergiu Ivanov <sivanov@colimite.fr> writes:

> If I don't explicitly set $HOME, the build fails with
>
> Debugger entered--Lisp error: (file-missing "Setting current directory" "No such file or directory" "/homeless-shelter/")

OK.

> I tried adding the following to the arguments list:
>
> #:tests? #t
> #:test-command '("make" "test")

Sometimes, it is necessary to skip the Makefile step and write
explicitly what the Makefile is doing right into #:test-command.

Here, I called `ert-run-tests-batch-and-exit' after loading the test
library. The unusual part was the tests required to be run from within
the "tests/" directory, hence the `cd' evaluation:


        #:test-command
        #~(list "emacs" "-Q" "--batch"
                "--eval=(cd \"tests/\")"
                "-l" "latex-extra-test.el"
                "-f" "ert-run-tests-batch-and-exit")

I applied your patch. Thank you!

Regards,
diff mbox series

Patch

From c8fe800f453c139177dcfb28bbe59b1cd362a902 Mon Sep 17 00:00:00 2001
From: Sergiu Ivanov <sivanov@colimite.fr>
Date: Sun, 3 Sep 2023 19:29:03 +0200
Subject: [PATCH] gnu: Add emacs-latex-extra.

* gnu/packages/emacs-xyz.scm (emacs-latex-extra): New variable.
---
 gnu/packages/emacs-xyz.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index dc2998a217..6815d8410f 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -132,6 +132,7 @@ 
 ;;; Copyright © 2023 Fabio Natali <me@fabionatali.com>
 ;;; Copyright © 2023 Arnaud Lechevallier <arnaud.lechevallier@free.fr>
 ;;; Copyright © 2023 Ahmad Draidi <a.r.draidi@redscript.org>
+;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4067,6 +4068,36 @@  (define-public emacs-auctex
 or XEmacs.")
     (license license:gpl3+)))
 
+(define-public emacs-latex-extra
+  (let ((commit "a81e7588448f85c5fcc3f3fc71cf957d0928a656")
+        (revision "0"))
+    (package
+      (name "emacs-latex-extra")
+      (version (git-version "1.14" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Malabarba/latex-extra")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "0sajg5vmygnkcnmkrpf8r7c4b8v95hgsv1y6pz868jpznmldnxkb"))
+                (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (add-before 'build 'set-home
+                      (lambda _
+                        (setenv "HOME"
+                                (getcwd)))))))
+      (propagated-inputs (list emacs-auctex))
+      (home-page "https://github.com/Malabarba/latex-extra")
+      (synopsis "Usability improvements for LaTeX mode")
+      (description
+       "Latex-extra defines extra commands and keys for LaTeX mode, as well
+as brings user experience improvements.")
+      (license license:gpl3+))))
+
 (define-public emacs-autothemer
   (let ((commit "8f72afc6dba5ad7cc3a201a084fd20571f945d2e")) ;version bump
     (package
-- 
2.41.0