highlight error, cannot open filetypes.conf: No such file or directory

  • Open
  • quality assurance status badge
Details
One participant
  • chris
Owner
unassigned
Submitted by
chris
Severity
normal
C
(address . bug-guix@gnu.org)(address . chris@bumblehead.com)
ZcIRii9JpxqWrGSk@guix-xps
There is an issue using "highlight"


This unexpected error is reproduced easily with the command below: "cannot open filetypes.conf"
```
$ echo "(highlight (package bug))" | highlight -O xterm256 --syntax lisp
cannot open filetypes.conf: No such file or directory
(highlight (package bug))
```

Creating `~/.highlight/filetypes.conf` did not resolve the error.
Setting "HIGHLIGHT_DATADIR=$HOME/.config/highlight/" did not resolve the error.

Any advice is welcome. Thank you :)

Chris
C
(name . Sergey Trofimov)(address . sarg@sarg.org.ru)
ZcQ2MvkgTyFa-xy3@guix-xps
Sergey,

I believe you intended a related message for the debbugs service, but only sent the message to my mail address. I am unsure and want to avoid showing impoliteness, I rephrased your message a bit below. Thank you,

Chris

-------------------

the highlight error goes away after copying the conf file this way
```
cp $(guix build highlight)/etc/highlight/filetypes.conf ~/.highlight/
```

strace shows that the conf is searched in wrong place:

Toggle snippet (13 lines)
newfstatat(AT_FDCWD, "/home/user/.highlight/filetypes.conf", 0x7ffcd0778130,
0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/gnu/store/9mdd4ba8ri4j07acmbc2vhkiipbz9l63-highlight-4.8/share/highlight/filetypes.conf",
0x7ffcd0778130, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/gnu/store/9mdd4ba8ri4j07acmbc2vhkiipbz9l63-highlight-4.8/share/highlight/config/highlight/filetypes.conf",
0x7ffcd0778130, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "filetypes.conf", O_RDONLY) = -1 ENOENT (No such file or
directory)
futex(0x7f2c4827e1f0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(2, "cannot open filetypes.conf: No s"..., 53cannot open
filetypes.conf: No such file or directory) = 53

but it is installed to
/gnu/store/...-highlight-.../etc/highlight/highlight.conf
the package recipe has to be fixed
C
temp fix
(address . 68948@debbugs.gnu.org)(address . chris@bumblehead.com)
ZgSIW9fJH9ODsKum@guix-xps
The following workaround can be used,
```
HLDIRS=$(guix build highlight); # returns two directories
HLDIR="${HLDIRS##*[[:space:]]}"; # returns the second dir, after whitespace
DATADIR="$HLDIR/etc/highlight/";
echo "(highlight (package bug))" | highlight --data-dir=$DATADIR -O xterm256 --syntax lisp
```

Based on my understanding, the current package definition is correct. Possibly a patch like this could resolve the issue the current package definition seems correct.
```
Toggle diff (14 lines)
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index b95f56729a..2a7cf74009 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -389,7 +389,7 @@ (define-public highlight
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(data (string-append out
- "/share/highlight/"))
+ "/etc/highlight/"))
(conf (string-append out "/etc/highlight/"))
(doc (string-append out
"/share/doc/highlight/"))
```
C
Re: highlight error, cannot open filetypes.conf: No such file or directory
(address . bug-guix@gnu.org)(address . chris@bumblehead.com)
ZgVZ2jYkprFBQkqQ@guix-xps
Below changes at the highlight package resolve the issue here but may adversely affect "highlight-gui" functionality. Will wait for https://issues.guix.gnu.org/70047before trying to proceed,
```diff
- #:make-flags #~(let ((confdir (string-append %output
- "/share/highlight/config/")))
- (list (string-append "PREFIX=" %output)
- (string-append "HL_CONFIG_DIR=" confdir)
- (string-append "conf_dir=" confdir)))
+ #:make-flags #~(list (string-append "PREFIX=" %output)
+ (string-append "HL_CONFIG_DIR=" %output "/etc/")
+ (string-append "conf_dir=" %output "/etc/"))
```
?