Bug#788769: marked as done (entangle: FTBFS without networking: relax-ng: failed to load external entity [..] mallard-1.0.rng)

Florian Schlichting fsfs at debian.org
Sun Feb 26 16:00:22 UTC 2017


Control: tags -1 +patch

Hi Michael, Berlin BSP here.

Given that it's too late now to get a mallard-rng package into Stretch,
I suggest to ship the mallard-1.0.rng file as part of the yelp-tools
package for now (e.g. as /usr/share/yelp-tools/mallard/mallard-1.0.rng)
and simply use that as relaxng schema in yelp-check:

--- a/tools/yelp-check.in
+++ b/tools/yelp-check.in
@@ -931,46 +931,9 @@
 }
.
 yelp_validate_page () {
-    # Using temp files because pipes create subshells, making it really
-    # hard to return the right exit status in a portable way.
-    if [ "x$check_rng_dir" = "x" ]; then
-        check_rng_dir=`mktemp -d "${TMPDIR:-/tmp}"/yelp-XXXXXXXX`
-    fi
     check_out_file=`mktemp "${TMPDIR:-/tmp}"/yelp-XXXXXXXX`
-    check_rng_file=`(
-            echo '<xsl:stylesheet'
-            echo ' xmlns:cache="http://projectmallard.org/cache/1.0/"'
-            echo ' xmlns:xsl="http://www.w3.org/1999/XSL/Transform"'
-            echo ' version="1.0">'
-            echo '<xsl:output method="text"/>'
-            echo '<xsl:template match="/*">'
-            echo '<xsl:choose>'
-            echo '<xsl:when test="string(@version) != '"''"'">'
-            echo '<xsl:value-of select="@version"/>'
-            echo '</xsl:when>'
-            echo '<xsl:when test="/cache:cache">'
-            echo '<xsl:text>cache/1.0 1.0</xsl:text>'
-            echo '</xsl:when>'
-            echo '<xsl:otherwise>'
-            echo '<xsl:text>1.0</xsl:text>'
-            echo '</xsl:otherwise>'
-            echo '</xsl:choose>'
-            echo '</xsl:template>'
-            echo '</xsl:stylesheet>'
-            ) | xsltproc - "$1"`
-    check_rng_file=`urlencode "$check_rng_file" /`.rng
-    if [ ! -f "$check_rng_dir/$check_rng_file" ]; then
-        # If we've already made an RNG file for this version string, don't
-        # do it again. We've urlencoded the file name + slashes, because
-        # version strings often contain slashes. But xsltproc treats the
-        # -o option as a URL and urldecodes, so doubly urlencode, because
-        # we want the urlencoded string to be the on-disk name.
-        xsltproc -o "$check_rng_dir/"`urlencode "$check_rng_file"` \
-            --param rng.strict "$check_strict" \
-            --stringparam rng.strict.allow "$check_strict_allow" \
-            "$xsl_mal_rng" "$1"
-    fi
-    xmllint --noout --xinclude --noent --relaxng "$check_rng_dir/$check_rng_file" "$1" > "$check_out_file" 2>&1
+    check_rng_file="/usr/share/yelp-tools/mallard/mallard-1.0.rng"
+    xmllint --noout --xinclude --noent --relaxng "$check_rng_file" "$1" > "$check_out_file" 2>&1
     ret="$?"
     cat "$check_out_file" | grep -v 'validates$'
     rm "$check_out_file"


Do you want me to prepare an NMU or would you prefer to validate or
improve upon the fix in some way?

Florian



More information about the pkg-gnome-maintainers mailing list