texlive-scheme-basic: chktex: Could not find global resource file.

  • Done
  • quality assurance status badge
Details
2 participants
  • Chloe Brown
  • Nicolas Goaziou
Owner
unassigned
Submitted by
Chloe Brown
Severity
normal
C
C
Chloe Brown wrote on 18 Aug 2023 12:27
(address . bug-guix@gnu.org)
20230818102744.4tax4v3yrsp3cn2b@chloe-laptop.yellowsquid.uk
* Description

Trying to run the chktex binary results in a permanent warning. When trying to
run ~chktex -v~ (as done by Emacs) it escalates to an error. It appears the
binary cannot find a necessary configuration file.

* Expected Behaviour

Running ~chktex -v~ would not give an error.

* Actual Behaviour

The following error message is produced and the program exits.

WARNING -- Could not find global resource file.
ERROR -- Illegal verbosity level.

* Steps to Reproduce

- Run the following command:

guix shell -C texlive-bin -- chktex -v

- Observe the error

* Guix Details

Observed on commit 78f080e25bfc02abd9a8fa88c8ad8d5854f54743

* Other Notes

- Also including the texlive-chktex package does not resolve the error.
N
N
Nicolas Goaziou wrote on 2 Sep 2023 21:18
[PATCH] gnu: texlive-chktex: Fix runtime error.
(address . 65366@debbugs.gnu.org)
716deb42f01f583e34c9b7257592a7e4021f109e.1693682293.git.mail@nicolasgoaziou.fr

* gnu/packages/tex.scm (texlive-source): New variable.
(texlive-chktex)[source]: Build binary from source.
[build-system]: Use GNU-BUILD-SYSTEM.
[arguments]<#:phases>: Make sure the `chktex' executable can locate a global
configuration file.
[native-inputs]: Add PKG-CONFIG and TEXLIVE-LIBKPATHSEA.
---

The following patch should (partly) fix the issue with chktex. Because
both `texlive-bin' and `texlive-chktex' provide the `chktex'
executable, one just has to make sure the binary from `texlive-chktex'
is used.

The next step will be to remove it from `texlive-bin', but this need
to go in a separate branch due to the sheer number of rebuilds this
will entail.

Also, the patch paves the way towards more executables being removed
from `texlive-bin', by defining a common `texlive-source' macro.

gnu/packages/tex.scm | 79 +++++++++++++++++++++++++++++++++++---------
1 file changed, 63 insertions(+), 16 deletions(-)

Toggle diff (101 lines)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 9ac9105342..af276cfbdc 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -162,6 +162,17 @@ (define-syntax-rule (define-deprecated-package old-name name)
(define-deprecated/public old-name name
(deprecated-package (symbol->string 'old-name) name)))
+(define texlive-source
+ (let ((version "20230313"))
+ (origin
+ (method url-fetch)
+ (uri (string-append "ftp://tug.org/historic/systems/texlive/"
+ (string-take version 4) "/"
+ "texlive-" version "-source.tar.xz"))
+ (sha256
+ (base32
+ "1fbrkv7g9j6ipmwjx27l8l9l974rmply8bhf7c2iqc6h3q7aly1q")))))
+
(define-public texlive-libkpathsea
(package
(name "texlive-libkpathsea")
@@ -33358,22 +33369,58 @@ (define-public texlive-chktex
(package
(name "texlive-chktex")
(version (number->string %texlive-revision))
- (source (texlive-origin
- name version
- (list "chktex/"
- "doc/chktex/"
- "doc/man/man1/chktex.1"
- "doc/man/man1/chktex.man1.pdf"
- "doc/man/man1/chkweb.1"
- "doc/man/man1/chkweb.man1.pdf"
- "doc/man/man1/deweb.1"
- "doc/man/man1/deweb.man1.pdf"
- "scripts/chktex/")
- (base32
- "0qyrllxvcymmr1a4sq9c88fw5zchcx0n6yac69s61fg6xypk18bq")))
- (outputs '("out" "doc"))
- (build-system texlive-build-system)
- (arguments (list #:link-scripts #~(list "chkweb.sh" "deweb.pl")))
+ (source
+ (origin
+ (inherit texlive-source)
+ (modules '((guix build utils)
+ (ice-9 ftw)))
+ (snippet
+ #~(begin
+ (with-directory-excursion "libs"
+ (for-each
+ delete-file-recursively
+ (scandir "."
+ (lambda (file)
+ (and (not (member file '("." "..")))
+ (eq? 'directory (stat:type (stat file))))))))
+ (with-directory-excursion "texk"
+ (let ((preserved-directories '("." ".." "chktex")))
+ (for-each
+ delete-file-recursively
+ (scandir "."
+ (lambda (file)
+ (and (not (member file preserved-directories))
+ (eq? 'directory
+ (stat:type (stat file)))))))))))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:out-of-source? #true
+ #:configure-flags
+ #~(list "--disable-native-texlive-build"
+ "--disable-all-pkgs"
+ "--enable-chktex")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'locate-global-configuration-file
+ ;; `chktex' needs to know where its global configuration file is.
+ ;; However, it cannot understand our convoluted TEXMFMAIN value.
+ ;; This phase forces configuration file name.
+ (lambda _
+ (substitute* "texk/chktex/chktex-src/OpSys.c"
+ (("kpse_var_value\\(\"TEXMFMAIN\"\\)")
+ (string-append "strdup(\"" #$output "/share/texmf-dist\")")))))
+ (add-after 'install 'post-install
+ (lambda _
+ (with-directory-excursion "texk/chktex"
+ (invoke "make" "install"))))
+ ;; Compilation forces a "/usr/bin/env perl" shebang. Change it.
+ (add-after 'post-install 'patch-shebang
+ (lambda _
+ (patch-shebang
+ (string-append #$output
+ "/share/texmf-dist/scripts/chktex/deweb.pl")))))))
+ (native-inputs (list pkg-config texlive-libkpathsea))
(inputs (list perl))
(home-page "https://ctan.org/pkg/chktex")
(synopsis "Check for errors in LaTeX documents")

base-commit: f6cf746938d29ab3d0888a5e58cad97ce634766a
--
2.41.0
N
N
Nicolas Goaziou wrote on 1 Sep 01:15 +0200
Re: bug#65366: texlive-scheme-basic: chktex: Could not find global resource file.
(name . Chloe Brown via Bug reports for GNU Guix)(address . bug-guix@gnu.org)
877cbw8ete.fsf@nicolasgoaziou.fr
Hello,

Chloe Brown via Bug reports for GNU Guix <bug-guix@gnu.org> writes:

Toggle quote (34 lines)
> * Description
>
> Trying to run the chktex binary results in a permanent warning. When trying to
> run ~chktex -v~ (as done by Emacs) it escalates to an error. It appears the
> binary cannot find a necessary configuration file.
>
> * Expected Behaviour
>
> Running ~chktex -v~ would not give an error.
>
> * Actual Behaviour
>
> The following error message is produced and the program exits.
>
> WARNING -- Could not find global resource file.
> ERROR -- Illegal verbosity level.
>
> * Steps to Reproduce
>
> - Run the following command:
>
> guix shell -C texlive-bin -- chktex -v
>
> - Observe the error
>
> * Guix Details
>
> Observed on commit 78f080e25bfc02abd9a8fa88c8ad8d5854f54743
>
> * Other Notes
>
> - Also including the texlive-chktex package does not resolve the
> error.

This issue is fixed since last core-updates merge:

guix shell texlive-chktex -- chktex -v

does not give any error.

Regards,
--
Nicolas Goaziou
?
Your comment

This issue is archived.

To comment on this conversation send an email to 65366@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 65366
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch