git: cd8518854f3e - main - fetchindex: do not leave a corrupted INDEX
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 08 Nov 2021 15:00:02 UTC
The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/ports/commit/?id=cd8518854f3e96fb86dd7ed7b8f1c0258e839157 commit cd8518854f3e96fb86dd7ed7b8f1c0258e839157 Author: Baptiste Daroussin <bapt@FreeBSD.org> AuthorDate: 2021-11-08 14:58:02 +0000 Commit: Baptiste Daroussin <bapt@FreeBSD.org> CommitDate: 2021-11-08 14:59:55 +0000 fetchindex: do not leave a corrupted INDEX When extracting the fetched index, do it in a temporary file, and only when extraction succeed, move it to the final file, it makes it more atomic and less likely to live a corrupted file behind PR: 224871 --- Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index b32de32b747f..b2e17255f8ae 100644 --- a/Makefile +++ b/Makefile @@ -67,8 +67,13 @@ PORTSTOP= yes index: ${INDEXDIR}/${INDEXFILE} fetchindex: ${INDEXDIR}/${INDEXFILE}.bz2 - @bunzip2 < ${INDEXDIR}/${INDEXFILE}.bz2 > ${INDEXDIR}/${INDEXFILE} && \ - chmod a+r ${INDEXDIR}/${INDEXFILE} && ${RM} ${INDEXDIR}/${INDEXFILE}.bz2 + @if bunzip2 < ${INDEXDIR}/${INDEXFILE}.bz2 > ${INDEXDIR}/${INDEXFILE}.tmp ; then \ + chmod a+r ${INDEXDIR}/${INDEXFILE}.tmp; \ + ${MV} ${INDEXDIR}/${INDEXFILE}.tmp ${INDEXDIR}/${INDEXFILE}; \ + ${RM} ${INDEXDIR}/${INDEXFILE}.bz2 \ + else ; \ + ${RM} ${INDEXDIR}/${INDEXFILE}.tmp ; \ + fi ${INDEXDIR}/${INDEXFILE}.bz2: .PHONY ${FETCHINDEX} ${INDEXDIR}/${INDEXFILE}.bz2 ${MASTER_SITE_INDEX}${INDEXFILE}.bz2