* bug#65366: texlive-scheme-basic: chktex: Could not find global resource file.
@ 2023-08-18 10:27 Chloe Brown via Bug reports for GNU Guix
2023-09-02 19:18 ` bug#65366: [PATCH] gnu: texlive-chktex: Fix runtime error Nicolas Goaziou
2024-08-31 23:15 ` bug#65366: texlive-scheme-basic: chktex: Could not find global resource file Nicolas Goaziou via Bug reports for GNU Guix
0 siblings, 2 replies; 3+ messages in thread
From: Chloe Brown via Bug reports for GNU Guix @ 2023-08-18 10:27 UTC (permalink / raw)
To: 65366
* 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.
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#65366: [PATCH] gnu: texlive-chktex: Fix runtime error.
2023-08-18 10:27 bug#65366: texlive-scheme-basic: chktex: Could not find global resource file Chloe Brown via Bug reports for GNU Guix
@ 2023-09-02 19:18 ` Nicolas Goaziou
2024-08-31 23:15 ` bug#65366: texlive-scheme-basic: chktex: Could not find global resource file Nicolas Goaziou via Bug reports for GNU Guix
1 sibling, 0 replies; 3+ messages in thread
From: Nicolas Goaziou @ 2023-09-02 19:18 UTC (permalink / raw)
To: 65366; +Cc: Andreas Enge, Ricardo Wurmus
This fixes <https://issues.guix.gnu.org/65366>.
* 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(-)
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* bug#65366: texlive-scheme-basic: chktex: Could not find global resource file.
2023-08-18 10:27 bug#65366: texlive-scheme-basic: chktex: Could not find global resource file Chloe Brown via Bug reports for GNU Guix
2023-09-02 19:18 ` bug#65366: [PATCH] gnu: texlive-chktex: Fix runtime error Nicolas Goaziou
@ 2024-08-31 23:15 ` Nicolas Goaziou via Bug reports for GNU Guix
1 sibling, 0 replies; 3+ messages in thread
From: Nicolas Goaziou via Bug reports for GNU Guix @ 2024-08-31 23:15 UTC (permalink / raw)
To: Chloe Brown via Bug reports for GNU Guix; +Cc: Chloe Brown, 65366-done
Hello,
Chloe Brown via Bug reports for GNU Guix <bug-guix@gnu.org> writes:
> * 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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-08-31 23:16 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-18 10:27 bug#65366: texlive-scheme-basic: chktex: Could not find global resource file Chloe Brown via Bug reports for GNU Guix
2023-09-02 19:18 ` bug#65366: [PATCH] gnu: texlive-chktex: Fix runtime error Nicolas Goaziou
2024-08-31 23:15 ` bug#65366: texlive-scheme-basic: chktex: Could not find global resource file Nicolas Goaziou via Bug reports for GNU Guix
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.