Closed deuill closed 8 months ago
The
! xmllint --nonet --noout --noent --loaddtd --xpath "//img/@src[not(starts-with(., 'data:'))]" $< 2>/dev/null && true
line was added by Sam in ff0ef6d21247387eb4a3a431047338f2ee44547f referenzing #212.
This line fails now. I am not sure which entity changed here the behavior, could be xmllint von libxml2 or GNU Make. The whole construct raises two or three questions.
What I found so far is that xmllint's man page says: In case of an empty node set the "XPath set is empty" result will be shown and an error exit code will be returned.
However:
$ xmllint --loaddtd --xpath "//img/@src[not(starts-with(., 'data:'))]" xep-0033.xml
XPath set is empty
$ echo $?
0
I have reported this upstream as https://gitlab.gnome.org/GNOME/libxml2/-/issues/673
FTR, it was xmllint that broke API starting with libxml 2.11.
I'm seeing the following issues building HTML output for XEPs -- running on
xmllint
2.12.4 (or whatever is the ArchLinux latest):It seems that
xmllint
will return a zero status code here, due to there being noimg
tags, but the result is inverted and the task fails completely. Runningxmllint
directly returns the following warning:But this seems to not affect execution. Makefile hasn't changed recently, so maybe a change in
xmllint
?Additionally, it seems that at least one other XEP is failing for other reasons:
Not sure if CI is set up to catch this sort of thing.