From nobody Mon Nov 08 15:00:02 2021 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id A30641830A18; Mon, 8 Nov 2021 15:00:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4HnvRQ49z3z4r5F; Mon, 8 Nov 2021 15:00:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6F8D913ACB; Mon, 8 Nov 2021 15:00:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 1A8F0264030997; Mon, 8 Nov 2021 15:00:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 1A8F02uQ030994; Mon, 8 Nov 2021 15:00:02 GMT (envelope-from git) Date: Mon, 8 Nov 2021 15:00:02 GMT Message-Id: <202111081500.1A8F02uQ030994@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Baptiste Daroussin Subject: git: cd8518854f3e - main - fetchindex: do not leave a corrupted INDEX List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cd8518854f3e96fb86dd7ed7b8f1c0258e839157 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/ports/commit/?id=cd8518854f3e96fb86dd7ed7b8f1c0258e839157 commit cd8518854f3e96fb86dd7ed7b8f1c0258e839157 Author: Baptiste Daroussin AuthorDate: 2021-11-08 14:58:02 +0000 Commit: Baptiste Daroussin 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