From patchwork Thu Nov 13 12:27:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marko, Peter" X-Patchwork-Id: 74402 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E4780CD6E47 for ; Thu, 13 Nov 2025 12:28:37 +0000 (UTC) Received: from mta-65-226.siemens.flowmailer.net (mta-65-226.siemens.flowmailer.net [185.136.65.226]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.22635.1763036907821235098 for ; Thu, 13 Nov 2025 04:28:28 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm1 header.b=T1qqOjmN; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.226, mailfrom: fm-256628-20251113122825197ef56ff6000207f2-8ajur5@rts-flowmailer.siemens.com) Received: by mta-65-226.siemens.flowmailer.net with ESMTPSA id 20251113122825197ef56ff6000207f2 for ; Thu, 13 Nov 2025 13:28:25 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=GXzMwR8Px3QJQUaI7NAJHl3RJA2wI7C0TCdbTlI7XcI=; b=T1qqOjmNeux1ravtPLWjwUY7pqvCgbyjuq9ywdV8Qw6EeZDCEFfxv2Co+ZKnZY8flfXubl qhNBYub33n7JAFYm0z+gUb9Iw6IrGSsSE4bvW2hW/t6WHEBIh3s2MrWVGIxcJxZpZNEHrVQ0 egTnVx95HAQeWLSh+sc7ZIP5tFUx03RlGxdcXS5iBnmcfX3hZTd29NhuHZN3NEwtl0GyLTtN G+3lkqTLjCNK00W/u95jr0GB9D1zjj9P8hKRBfl/ZMOAfpkZvl7Ki6ZRIC0EwTj9cTH2CWxs O885YktChIhDBDWY9TJUcTUkMAIcTevW3As57kj6v32NLQNgn8zQp/8A==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: Ross Burton , Richard Purdie , Peter Marko Subject: [OE-core][scarthgap][PATCH 2/9] oe/sdk: fix empty SDK manifests Date: Thu, 13 Nov 2025 13:27:59 +0100 Message-Id: <20251113122806.16769-3-peter.marko@siemens.com> In-Reply-To: <20251113122806.16769-1-peter.marko@siemens.com> References: <20251113122806.16769-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Nov 2025 12:28:37 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226240 From: Ross Burton The SDK manifests are generated by listing the sstate was that used, but it hardcodes that the sstate data filenames end in .tgz. This has not been the case since sstate switched to Zstd[1] in 2021, which meant that all of the tests which checked for packages existing were being skipped as the manifests were empty. For example, see a representative core-image-sato eSDK test run[2]: RESULTS - cmake.CMakeTest.test_assimp: SKIPPED (0.00s) RESULTS - gtk3.GTK3Test.test_galculator: SKIPPED (0.00s) RESULTS - kmod.KernelModuleTest.test_cryptodev: SKIPPED (0.00s) RESULTS - maturin.MaturinDevelopTest.test_maturin_develop: SKIPPED (0.00s) RESULTS - maturin.MaturinTest.test_maturin_list_python: SKIPPED (0.00s) RESULTS - meson.MesonTest.test_epoxy: SKIPPED (0.00s) RESULTS - perl.PerlTest.test_perl: SKIPPED (0.00s) RESULTS - python.Python3Test.test_python3: SKIPPED (0.00s) All of those tests should have been ran. Solve this by generalising the filename check so that it doesn't care what specfic compression algorithm is used. [1] oe-core 0710e98f40e ("sstate: Switch to ZStandard compressor support") [2] https://autobuilder.yoctoproject.org/valkyrie/#/builders/16/builds/1517/steps/15/logs/stdio Signed-off-by: Ross Burton Signed-off-by: Richard Purdie Signed-off-by: Peter Marko --- meta/lib/oe/sdk.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py index 3dc3672210b..588c74bb443 100644 --- a/meta/lib/oe/sdk.py +++ b/meta/lib/oe/sdk.py @@ -148,7 +148,8 @@ def get_extra_sdkinfo(sstate_dir): extra_info['filesizes'] = {} for root, _, files in os.walk(sstate_dir): for fn in files: - if fn.endswith('.tgz'): + # Note that this makes an assumption about the sstate filenames + if '.tar.' in fn and not fn.endswith('.siginfo'): fsize = int(math.ceil(float(os.path.getsize(os.path.join(root, fn))) / 1024)) task = fn.rsplit(':',1)[1].split('_',1)[1].split(',')[0] origtotal = extra_info['tasksizes'].get(task, 0)