doc.docbook.mk: Fix LATESTREVISION determination, causes build failure on non-English locales

Fixes, e.g., manual articles/books build (i.e., typing `make` in the right
directory).

There were two problems:
1. Git or SVN information retrieval depends on the current locale, and doesn't
work with non-English ones.
2. Fallback for LATESTREVISION most of the time (sometimes works, probable
race) itself fails because PWD is set to document's directory + '/obj', but
sources are in the document's directory.

Problem 2 is the most annoying because documentation builds simply fails
(`xsltproc` becomes unable to resolve 'latestrevision.*' variables in, e.g.,
articles). But point 2's failure appears only because of point 1's failure,
which doesn't happen on a machine with English or C locale.

PR: 246936
This commit is contained in:
Olivier Certner 2021-01-19 13:04:38 +01:00 committed by Daniel Ebdrup Jensen
parent f2a33a330d
commit 1e7c4a3928

View file

@ -92,7 +92,7 @@ NO_SUBDIR= YES
# If using git, use git log. The revision won't work with the generated links,
# because it is a hash, and git log doesn't know about git svn find-rev.
.if exists(${DOC_PREFIX}/.git) && exists(${GIT})
LATESTREVISION!=cd ${.CURDIR} && ${GIT} log -1 --pretty=format:'\
LATESTREVISION!=cd ${.CURDIR} && LC_ALL=C ${GIT} log -1 --pretty=format:'\
--stringparam latestrevision.timestamp "%ci" \
--stringparam latestrevision.committer "%cn" \
--stringparam latestrevision.number "%h"' ${SRCS}
@ -102,7 +102,7 @@ LATESTREVISION!=cd ${.CURDIR} && ${GIT} log -1 --pretty=format:'\
# the revision date from the timestamp of the most recent file and
# set the revision number to "filedate"
.if empty(LATESTREVISION)
LATESTREVISION!=${STAT} 2>/dev/null -t '%F %T %Z' -f '\
LATESTREVISION!=cd ${.CURDIR} && ${STAT} 2>/dev/null -t '%F %T %Z' -f '\
--stringparam latestrevision.timestamp "%Sc" \
--stringparam latestrevision.committer "%Su" \
--stringparam latestrevision.number "filedate"' \
@ -719,4 +719,3 @@ ${LOCAL_CSS_SHEET}: ${CSS_SHEET}
.endif
HTML.manifest: index.html