svn commit: r1935199 - httpd/docs-build/trunk
[email protected] Thu, 11 Jun 2026 13:33:20 -0000
| Newsgroups | gmane.comp.apache.cvs |
|---|---|
| Message-ID | <178118480022.809488.10084011244496441916@svn03-he-fi> |
Author: rbowen
Date: Thu Jun 11 13:33:19 2026
New Revision: 1935199
Log:
Add automatic vnu.jar fetch/update to build.sh
The Nu Html Checker (vnu.jar) is now a build dependency for validating
the generated HTML5 documentation output. This change adds a step to
build.sh that ensures vnu.jar is present and current before invoking
Ant:
- Queries the GitHub releases API for validator/validator to obtain
the SHA-256 digest of the latest vnu.jar asset.
- Computes the SHA-256 of the local vnu.jar (if present) and
compares against the remote digest.
- If the jar is missing or outdated, downloads the latest directly
from https://github.com/validator/validator/releases/download/latest/vnu.jar
- Degrades gracefully if the network is unavailable: warns and
continues with the existing jar (or skips validation if absent).
The check runs before the Ant exec, after the JDK version gate.
Motivation: https://lists.apache.org/thread/g4gfvgzqqxf1qdbkcjfjy79jl66tntoy
Modified:
httpd/docs-build/trunk/build.sh
Modified: httpd/docs-build/trunk/build.sh
==============================================================================
--- httpd/docs-build/trunk/build.sh Thu Jun 11 13:28:11 2026 (r1935198)
+++ httpd/docs-build/trunk/build.sh Thu Jun 11 13:33:19 2026 (r1935199)
@@ -138,6 +138,42 @@ if ! java -fullversion 2>&1 | egrep -e '
exit 1
fi
+# --- Ensure vnu.jar is present and up-to-date ---
+VNU_JAR="${ANT_HOME}/vnu.jar"
+VNU_URL="https://github.com/validator/validator/releases/download/latest/vnu.jar"
+
+# Get the expected SHA-256 from the GitHub release metadata
+VNU_REMOTE_SHA=$(curl -sfL "https://api.github.com/repos/validator/validator/releases/latest" \
+ | grep -A2 '"name":"vnu.jar"' | grep '"digest"' \
+ | sed 's/.*"sha256:\([a-f0-9]*\)".*/\1/')
+
+if [ -z "$VNU_REMOTE_SHA" ]; then
+ echo "Warning: could not determine latest vnu.jar checksum from GitHub."
+ if [ ! -f "$VNU_JAR" ]; then
+ echo " vnu.jar is missing and cannot be fetched. HTML validation will be skipped."
+ else
+ echo " Continuing with existing vnu.jar."
+ fi
+else
+ # Compute local SHA-256 (if file exists)
+ VNU_LOCAL_SHA=""
+ if [ -f "$VNU_JAR" ]; then
+ VNU_LOCAL_SHA=$(shasum -a 256 "$VNU_JAR" | cut -d' ' -f1)
+ fi
+
+ if [ "$VNU_LOCAL_SHA" = "$VNU_REMOTE_SHA" ]; then
+ echo "vnu.jar is up-to-date."
+ else
+ echo "Fetching latest vnu.jar ..."
+ curl -sfL -o "$VNU_JAR" "$VNU_URL"
+ if [ $? -eq 0 ] && [ -f "$VNU_JAR" ]; then
+ echo "vnu.jar updated successfully."
+ else
+ echo "Warning: failed to download vnu.jar. HTML validation may not work."
+ fi
+ fi
+fi
+
if [ -n "$CYGHOME" ]; then
exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.Main $ANT_ARGS "$@"
else