Module Name: src
Committed By: hgutch
Date: Sun Jun 16 00:03:53 UTC 2024
Modified Files:
src/share/mk: bsd.info.mk
Log Message:
Unbreak generation of share/info/dir
install-info refuses to operate on 0 byte files. When __infoinstall
is run the first time in a build, an empty ${INFODIRFILE} is created
via touch. As install-info leaves this file untouched, we are left
with a 0 byte file at the end. For subsequent __infostall runs the
only difference is that ${INFODIRFILE} already exists as a 0 byte
file, so no new one is created.
Fix by deleting ${INFODIRFILE} in the loop (with the lock held) if it
is a 0 byte file. In this case also don't bother with calling
install-info -r.
To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 src/share/mk/bsd.info.mk
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/share/mk/bsd.info.mk
diff -u src/share/mk/bsd.info.mk:1.43 src/share/mk/bsd.info.mk:1.44
--- src/share/mk/bsd.info.mk:1.43 Mon May 1 20:22:18 2023
+++ src/share/mk/bsd.info.mk Sun Jun 16 00:03:52 2024
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.info.mk,v 1.43 2023/05/01 20:22:18 christos Exp $
+# $NetBSD: bsd.info.mk,v 1.44 2024/06/16 00:03:52 hgutch Exp $
.include <bsd.init.mk>
@@ -45,6 +45,8 @@ __infoinstall: .USE
@[ -f ${INFODIRFILE} ] || touch ${INFODIRFILE}; \
while ! ln ${INFODIRFILE} ${INFODIRFILE}.lock 2> /dev/null; \
do sleep 1; done; \
+ [ $$(${TOOL_STAT} -qf '%z' ${INFODIRFILE}) -eq 0 ] && \
+ rm -f ${INFODIRFILE} || \
${TOOL_INSTALL_INFO} -d ${INFODIRFILE} -r ${.TARGET} 2> /dev/null; \
${TOOL_INSTALL_INFO} -d ${INFODIRFILE} ${.TARGET}; \
${TOOL_SORTINFO} < ${INFODIRFILE} > ${INFODIRFILE}.tmp; \