From nobody Sun Nov 16 01:57:59 2025 X-Original-To: dev-commits-src-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 4d8DY36ngcz6GhhZ; Sun, 16 Nov 2025 01:57:59 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4d8DY34yj3z3ZPb; Sun, 16 Nov 2025 01:57:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763258279; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XFe8Rm2lNNHdtvsLcSQUPDFZA2AV4NqyrwKkj9gmOG4=; b=mQONRy8gi8PuAC/x1cnLguovNXG5KxbwgMXMFSl5mJwjrSsl5/qQs7TF6u8D3ms4yhKGes hccU9iSl1LwU7fKUozI8WcXCv8CEEqtPS8VfO/jAlA1bgIFIvb6qkWEUq7oifYZ7cHVzQH 3Y5j82qGltyq2o5HqGuQV0j55N4jxoWDb1ecwvg9+BvX3Uq2hnJGSm6f002QRUbzbzoM48 l+SrF60OIVvZxRCHb8fEw+blHuP9TaJyVtMmW+hWmqUnCB69YdZT3hSdemGZhyw+gsdH9l GGprKfuxuc9I+cca94pR3czWOfxnRRaQCuBWFgdRqd3h23i7UgJwU2a/iQMvQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763258279; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XFe8Rm2lNNHdtvsLcSQUPDFZA2AV4NqyrwKkj9gmOG4=; b=hiJ4UFs0aby1qAxjnciY0VPDzJkW61ck4oeaPhbsljgSsZOl5bf9N/ylvJ0YiM/1THr71J 2gc3timAT4ETi+tOu5bzxskU3hUYzw3M//F4X825A04gY14VBT1PRDwyuP3NuGWGrUUiqS HRCPcqQf9VyrMGY8G7fBUIsqYinTaE/QzAaC31VuamuWuHa9RomDsyZNn2fWjldcTFHSYZ 0xe8LsuS92Xa4ehyQOk6TYMSqJF7ftelcf3cUx8gX7rrips+Sb4RlhGOwjZqFA2aIWgwXA 6AqKcUzx9/DD9Z8dGL6ESNMT+OZhhpxGtK4VbIn0bonmIaxy5YomkWdT9KBz/Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1763258279; a=rsa-sha256; cv=none; b=GM3d7m1kH0Tj/GnwmvW4ziuEOGPhA+eww9owuYuHNNRUgNX9FtCj3GSqU8SjHohnXH3q67 30bjXL62hZz1JDUagq+DrkjIKV8cMA6f1gjRUkTyiDq6WpoqQuea1zTbVRHJBja8x+SlxQ KePH5KlFJ8I8NIPBcY6T0f0paCD0sQZoGZe1sqn+/Ylm6ariO95HRlxC3LsEKSFSrWTn1l ArJWGS5hzGoovKYz3Oxeb+kmttsg2x9xYrMyVYFoukZw+H31T7UEL9huMY+NyHvfTSo3vS 37Vh6s3FA0ri2FEo7r4H/DuwM3HXYSDanj/mQi+DcOg3U8Ww/LHmuts5PzeehA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4d8DY34ZSCz3XB; Sun, 16 Nov 2025 01:57:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5AG1vxpk042297; Sun, 16 Nov 2025 01:57:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5AG1vxiC042294; Sun, 16 Nov 2025 01:57:59 GMT (envelope-from git) Date: Sun, 16 Nov 2025 01:57:59 GMT Message-Id: <202511160157.5AG1vxiC042294@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Colin Percival Subject: git: 78fa6965e91e - main - vmimage.subr: Don't log missing files from pkgs List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 78fa6965e91ec52c24f602250a9d7ec465b9a6ba Auto-Submitted: auto-generated The branch main has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=78fa6965e91ec52c24f602250a9d7ec465b9a6ba commit 78fa6965e91ec52c24f602250a9d7ec465b9a6ba Author: Colin Percival AuthorDate: 2025-11-16 01:19:50 +0000 Commit: Colin Percival CommitDate: 2025-11-16 01:19:50 +0000 vmimage.subr: Don't log missing files from pkgs When installing "extra" packages (aka those built from the ports tree), we record everything being installed in METALOG.pkg; the contents of that file is appended to METALOG before we generate the filesystem. There are two cases when files recorded in METALOG.pkg will no longer exist by the time we create the final disk image: 1. If a pkg bug results in false dependencies being installed which are later removed by "pkg autoremove", and 2. If the pkg we build and install from /usr/ports is older than the pkg on pkg.freebsd.org, and pkg gets upgraded automatically as part of installing extra packages. The ultimate issue in both cases is that there's no mechanism for removing entries from METALOG when we run 'pkg delete'. Address this build breakage by checking, line by line, if filesystem objects mentioned in METALOG.pkg exist before appending them to METALOG. Fixes: 6a13aeac3c1f ("vmimage.subr: pkg autoremove after pkg install") MFC after: immediately (needed for 15.0-RC1) --- release/tools/vmimage.subr | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/release/tools/vmimage.subr b/release/tools/vmimage.subr index 7035b107ae22..03d92850f2a3 100644 --- a/release/tools/vmimage.subr +++ b/release/tools/vmimage.subr @@ -292,8 +292,15 @@ vm_extra_pkg_rmcache() { buildfs() { local md tmppool + # Copy entries from METALOG.pkg into METALOG, but first check to + # make sure that filesystem objects still exist; some things may + # have been logged which no longer exist if a package was removed. if [ -f ${DESTDIR}/METALOG.pkg ]; then - cat ${DESTDIR}/METALOG.pkg >> ${DESTDIR}/METALOG + while read F REST; do + if [ -e ${DESTDIR}/${F} ]; then + echo "${F} ${REST}" >> ${DESTDIR}/METALOG + fi + done < ${DESTDIR}/METALOG.pkg fi if [ -n "${NO_ROOT}" ]; then