From nobody Sun Nov 16 02:04:39 2025 X-Original-To: dev-commits-src-all@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 4d8Dhm43rFz6Gj3N; Sun, 16 Nov 2025 02:04:40 +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 4d8Dhl5m0Xz3cfq; Sun, 16 Nov 2025 02:04:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763258679; 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=Jxwktt0s/QAl89PRb8dFN547XV4u0441SWf7pF3eCDM=; b=IwP0inPCZP9dt6KLHtDt2A8LHrjcksSKGeIWi8iWEzDVyVdP8iJkDrOPi3VK6oHFFyVBu3 gHQQkQ6WdwFTuCzGAMM2XH8diRIBtdvjuO5fkNdqrNyNK1SVE+QfP/3isNxT2ZtR/8XTdn suynkNJZK+NhKyqLENO4/5NxGz8Z00PzBt7Ohz7gHPyH2yBgGIoSqYWSqD4vLH/evd/FMr dkssQmA6JpcOzQBc9ap7t4DeiWraipz+8VB1XhnNgA/r67g26je2sjLzWYw+5QX5nW5Soo NzW8iFdODnqCkwooR98bt+aGPYLRqEN+S/+T6u3lwCrGb2JH+af/7piVw8XNpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763258679; 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=Jxwktt0s/QAl89PRb8dFN547XV4u0441SWf7pF3eCDM=; b=iSZwB0rPUw9xW2mMEJ7TjZAsKKfUgPnp006HoiD4SouuxdPUlbMIudU1WTo7+CTlsDuuTk fW5T0V9SAPNHPRsaIU4gkrlBRvTaQa5ES/SiG+Lh3MFX1z0E+B4Raax5WTzKRwd/qvjvt0 tMffFX4VtksAinPClG1GeAebTlcq4opQBCOpgWGeay8Gil5uSmxtfHMennizqQbwYd4xwE o5MFgiP9OUN1ZIJ/e7CaEAqJsdubpuwgy6SpBgYGnXEn3YE9JyrhvFNYTR7Fnykodmcqz7 oPheNcKjL/kON8Pgcrk6TzKuQWu9y6Ef742fMCRfZxKTQi+HcO7aSCPHwjsbAw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1763258679; a=rsa-sha256; cv=none; b=BJvVY0eRW+FzBmZcwOphVMDYr5yJ2UXg0omzwfXRYm8ChweLTigWKPhiNdX2T+EhZZ+PEk KBuJLrAj41U+9ytXQM3s4qNQYq81VfTe7XzoffKRV0xI3FBIaf+EdOyQKGE0dGwNkasuDq l2B/awrDrvFt6GIv16cJ4FDy/PvhFsIZ9UQoeEaZApaIT+OKzZTgWPLmubLfaMQeyh3npT iRqbyr2YxBCXG9N2911KoIgm3NYL0Xm0CtRtqk5EgcifMACluu8UfFkZrBsJIhwPjD+0L/ cA/GD7/GkMZQm2imZDUGDZ8tKcQIlnRQZBbHruZI+eG4G+G6OUb5cDZc3CcDRQ== 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 4d8Dhl2nFZz3md; Sun, 16 Nov 2025 02:04:39 +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 5AG24d0o061168; Sun, 16 Nov 2025 02:04:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5AG24dHL061165; Sun, 16 Nov 2025 02:04:39 GMT (envelope-from git) Date: Sun, 16 Nov 2025 02:04:39 GMT Message-Id: <202511160204.5AG24dHL061165@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 0ff7c9251790 - stable/15 - vmimage.subr: Don't log missing files from pkgs List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 0ff7c9251790117429d1d04d75ec75585878325d Auto-Submitted: auto-generated The branch stable/15 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=0ff7c9251790117429d1d04d75ec75585878325d commit 0ff7c9251790117429d1d04d75ec75585878325d Author: Colin Percival AuthorDate: 2025-11-16 01:19:50 +0000 Commit: Colin Percival CommitDate: 2025-11-16 02:04:16 +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) (cherry picked from commit 78fa6965e91ec52c24f602250a9d7ec465b9a6ba) --- 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