From nobody Thu Nov 17 13:53:17 2022 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 4NChFn46Mvz4hK42; Thu, 17 Nov 2022 13:53:17 +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 4NChFn3gdcz3JT7; Thu, 17 Nov 2022 13:53:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1668693197; 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=5LztYUU+8v+EKI+gsm2e/hTA3Cb80ri8u+dCwL2wjZY=; b=P5kvor1nHB78xXRvVmuLT7hNDpZrhJy16Sobq8vqBT3d2VJ+vBdqxXnR3wGg6zKzDfk0OZ YLfut68CoENbdHPM6VCgkluZLSyjDdZ1vAj5WMH3SXQ3r3mLDhnYOgKChLwFW/maM9HWXj 1hzNb1wo03vs3dLgRGNtEt1cSi3YfJRs07Jxu+AXgefTgQFqHR2/FkE8B3fZs/Kr/ZdQvm 9Z+7FXEKs7XcyKAFZri2OU04T9ZlYz7Eq3Y/b7gOyrbHC2N7dFGXEz+wfOGm6C7oIe7XKQ yILn5nnbZkgV0wtVC7mrdkPm8rIDMoxqSTmaSsirAiQFK3tjsAD3m7Ah1vcguw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1668693197; 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=5LztYUU+8v+EKI+gsm2e/hTA3Cb80ri8u+dCwL2wjZY=; b=GapvqtwEFFZh8FYaWRUM038YnCAqR9EwRJUmm3TUby3LeKRAxUE854nIorULD2wgaXSVP5 Gsb8hgi+/GbrguOcPmB5BzHn+nDgshxaaG2szKtxRMNpiY/IqODGYFCnWiTel15GMdO7qa ZDnJsiKyqVJlls5TwLHeKf3Ua5VtNGzVy25t6u8z9AnBR/jzCsj8kThTK4PYChjRPtDk5Q IUSkhXT3TPdRiGIQYrPqgpPVwgsYVAxetcleiNFUq1fv4WHQeuqFBaDZn/ddqMnMGATFC2 Xss7LkDLywBC0Scw6R982+CSxR0dUJpdPFvgE79jn2sTxWL6S53nypzTyYBBQQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1668693197; a=rsa-sha256; cv=none; b=XdIfcfhkvmN4IKmKCkYuw+UuddEKDLtzOtn38JSgTTmvT4mBENTEcBLBQpnwIlpkGM924E fMkixOMTzJHSxSLarr6XSrX/rFQViTqM6cSQr6wdG939QFBwnC4c+9ZYsVsR/8eR9XQGS4 28YL/bTHAYbQH0sLh6ACtUvf77frOXA9l4LC8ggupMvVaJGDhBoTTfYD7EdjD034BTfX+D XVGSezLNzns3JaM+ovDMZ/9XX6+B0yp2DMPCSRdrgEtWR8YQ4RBLJc1JXRaofvOSkVHymj cFNrz43VN05AazYRGGdVIe7AUO1dOPlPheBjapbfmu6qkWIblyb6FxS6HRC1/Q== 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 4NChFn2lBXzjmH; Thu, 17 Nov 2022 13:53:17 +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 2AHDrHAR096997; Thu, 17 Nov 2022 13:53:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2AHDrHpf096996; Thu, 17 Nov 2022 13:53:17 GMT (envelope-from git) Date: Thu, 17 Nov 2022 13:53:17 GMT Message-Id: <202211171353.2AHDrHpf096996@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: bca4d27052bf - main - pkgbase: examine METALOG files relative to stage root directory 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bca4d27052bf5735725449cd0be51bd58cf0cb80 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=bca4d27052bf5735725449cd0be51bd58cf0cb80 commit bca4d27052bf5735725449cd0be51bd58cf0cb80 Author: Ed Maste AuthorDate: 2022-11-16 19:53:42 +0000 Commit: Ed Maste CommitDate: 2022-11-17 13:52:12 +0000 pkgbase: examine METALOG files relative to stage root directory Previously we stripped the '.' from the beginning of each METALOG entry to determine the path to stat. This meant that we examined files on the build host, not the staged files. Instead, strip off the last part of the specified METALOG pathname to find the stage root directory, and stat files relative to that. Reviewed by: bapt Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37412 --- tools/pkgbase/metalog_reader.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/pkgbase/metalog_reader.lua b/tools/pkgbase/metalog_reader.lua index c3b5b6039873..02f8c4ab65bd 100644 --- a/tools/pkgbase/metalog_reader.lua +++ b/tools/pkgbase/metalog_reader.lua @@ -257,6 +257,7 @@ end --- @param verbose boolean --- @param w_notagdirs boolean turn on to also check directories function Analysis_session(metalog, verbose, w_notagdirs) + local stage_root = {} local files = {} -- map -- set is map. if bool is true then elem exists local pkgs = {} -- map> @@ -418,17 +419,14 @@ function Analysis_session(metalog, verbose, w_notagdirs) if files[filename][1].attrs.type ~= 'file' then goto continue end - -- make ./xxx become /xxx so that we can stat - filename = filename:sub(2) - local fs = attributes(filename) + local fs = attributes(stage_root .. filename) if fs == nil then unstatables[#unstatables+1] = filename goto continue end local inode = fs.ino inm[inode] = inm[inode] or {} - -- add back the dot prefix - table.insert(inm[inode], '.'..filename) + table.insert(inm[inode], filename) ::continue:: end @@ -462,6 +460,9 @@ function Analysis_session(metalog, verbose, w_notagdirs) return table.concat(warn, ''), table.concat(errs, '') end + -- The METALOG file is assumed to be at the top of the stage directory. + stage_root = string.gsub(metalog, '/[^/]*$', '/') + do local fp, errmsg, errcode = io.open(metalog, 'r') if fp == nil then