From patchwork Mon Sep 21 15:06:32 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 5475 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 21 Sep 2026 17:06:55 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-ot1-f60.google.com (mail-ot1-f60.google.com [209.85.210.60]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 68LF6rRe002061 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 21 Sep 2026 17:06:54 +0200 Received: by mail-ot1-f60.google.com with SMTP id 46e09a7af769-8050554892dsf4829044a34.2 for ; Mon, 21 Sep 2026 08:06:54 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1790003208; cv=pass; d=google.com; s=arc-20260327; b=R/FT/H9Ymrdv6erMplSAEqAfhcimcO+TlYyCToD2Rg4yNDM+UgTeNHRUMsHlomQjQW p70Jv3srBb/JHr364d5lEV3N5Md06d3pkHRhPILpLBFIkM7f5hFkeY9dEz0Wsb0pvwJ5 8iWIuNgTYQ2jQMVIeVfp1cQjX6vq1Ogx6WPJwC8MdQFdD/V8kZr8nr8dh5QtdT7nc4ty kOGsrPp0oSGylbpvcAlqBjc2ZgeoA0PQYInWcUR1uuiadZbw/ICzVv9Fc0iJPZTjTJTm 7P4qmMlZGaF+LvJ3Z9qiD7+GhDPNXlbcDWMD1MGPN0yBQvroDu+Aa2OZsylyQXkybUFK qmgg== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=tkTHv1CMbXiqORG+Z1iK+7sELq5Fp2vQlLAUMeIcorE=; fh=7hs97lSa3/nH8Gp9bPgbAR0CaBGNvfP+bqDBmHfnqsA=; b=pxKnx2CBpKvaj10TycDFEHqjW72z+Xg1Zyn2uVu22mQK35XzIRpLtaJ//Y0gJG/MZn LpGo4n49Guv1LE4rV2x3+0U8XT4yObJU0fVhXHKsnbpcNPL8q869JABcFg6YIiAWwsRH HrUAF6OIwVY64xWBkS37QDd1YVe3lvLkPMzcRk9aceZP8kO1aDjorymIHlJn1hm9bR6z r2OxJ+r7MPZT67XobjymcBxIMhipDG2zsbtekAUX6olniWttikf0fMS6CjGgmmxtujMo ByuLP+KFdw8tuY5wRjtg2At5GNTEdnMEd6TRDORrO3gDINamV2wVqD2FprSEBoLoKDey 4XRg==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=x4PxzcLC; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1790003208; x=1790608008; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=tkTHv1CMbXiqORG+Z1iK+7sELq5Fp2vQlLAUMeIcorE=; b=c5XU0Tgt9AchS++Gj/GmdCRixm5ljYF8DpbBG93c3njH70EHo+2J0IsdJKxI4IBpEw jkSFm7BdhxyTDo5mtGQu/q7Q0pM38Ll2MMlU3fNMhmXq4bGIveInaxGbfCHqcfRz5S0U i2jUOO+L7/k1ggn5oIlr0L3tnJ6X4Sz+qtZAYoaTEb+0Um+fna+ZjlU7QOystM4x6w6z lbOvVmaUDXtRelNKW3cpkAYHdwmRYLgNYGz/5/HZNh6aX2gUgDy9NbhYBCl5Gj/kQbt7 XbGAVv16deT7zPRS+Jb6U4weVoiivvkNw5g4BqYXQ3DDbj7gxtjHQejcWuC1faX+vrbY kKQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790003208; x=1790608008; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=tkTHv1CMbXiqORG+Z1iK+7sELq5Fp2vQlLAUMeIcorE=; b=tWN4FHYQQpK538TUFMAhkmJHMwnOF2KSbY7OOTvHEMjq9Hs7s2sd0lJzd/snUQJ+QV 3DrVz5HPIMD6bsfEgFblfcWUAC2L+dAlXY2seXO3z374HTo7/hLISbEx5yyySF5DutVe rMAHvICDjQnDuk2RZ4LtLfr5gRhXzNE1/KwJmHhlPcW6Opmyntn35z+0DcCdI17u/9hi KFll0ZWEr6yuPF719PlajacFdg8Od5Qe7pTZleEwgcRDeQTP73ckqw6BHg2q/sVujKPb yw/PxVFKH00SXSzaadAPESRRHqcCkEhyxFJubXf/E0Vx+5lVYQ2bNX3atgI/2/MOB4PZ m1Ng== X-Forwarded-Encrypted: i=3; AKwUvBzkrwJN2t8DgR/rB+yrJ2tdnFukqp9mODRNt4oKBPV9bqigcsSs+zbRiwtiZAIc2ieGdKHd5+w=@isar-build.org X-Gm-Message-State: AFuF++mm5Cu3Hxm4wbJv6HZ5yqZN4tU6+Rkb/6WL9trBsRcAcZXh68Sc ohSc4GYYXe50Wvqy45F9LiYcaZO6ObT2vZUc3/z3cDmhoG18RUWVhuNj X-Received: by 2002:a4a:edc7:0:b0:6bd:f333:7b83 with SMTP id 006d021491bc7-6ca9a44dc18mr10489951eaf.16.1790003208204; Mon, 21 Sep 2026 08:06:48 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdeKHuvIBZ8w2ayj8NdAa0ubY1wLiPxTvTCkwQIxk3FyCQ==" Received: by 2002:a05:6820:7085:10b0:6c3:eaaa:efb with SMTP id 006d021491bc7-6c8efeb8b88ls2901493eaf.0.-pod-prod-03-us; Mon, 21 Sep 2026 08:06:47 -0700 (PDT) X-Received: by 2002:a05:6820:818b:b0:6b7:46fa:168f with SMTP id 006d021491bc7-6ca9bf4c95emr10672002eaf.36.1790003205121; Mon, 21 Sep 2026 08:06:45 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1790003205; cv=pass; d=google.com; s=arc-20260327; b=LXvTSWKE4hLAo9UYglb0gMCt1Azj7Y1Ex7IGrwkq/olqK4RjdQ4soLhVEC0tpN71Dm /HV+M/ALBJg3N+lSgWcevuunAuHoh9pN5gdMfaHKRd11azMNR4HqNB+yWPrrhnPxtdRg XwlBkiUdmQ5pVaq9sHbXl6wPKrHG8m06316j+Gc2xBd56mAHTlP8rq9BDeTd2bzZqg7r /eYeml5S1ujp6yOUpXf+541giovxgo4j0n3wmC3UjRynxKcWp6M3cxha25x94yxdnyrB 0+wVcMkIw/WR3n9m2OfFg0LypZoHHgr2mn/UhPCNB0VRvy9eGnNtnvYrOnz1j9gxwnwS gQeg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=D+XR1WYge1Svq2nkCOxp7xrZ7ZNxRfuwMI8kr2+FEl8=; fh=Xwx5KAQd7M5XPJvQVz6xz/z//08kOEttrlFeLBySLJ8=; b=Bvrngol2SA5JUPzgm/dxBEeucnitA7oTK1BieOgfh06RPY6HX+Ae7EIJgQcMqpKmiB 68tsTQIsKDlmtyo2UPdTiJwpd5ysy/1dwRHsDQj5cNiAnhqCU5bF8vX/6T6lhVBIZOho lc3yc3yy2WuSQ/4VFJJgeWzpnDN6Ybq83/yrVfviD7Z7Qbvi5wYIFCNBhDJT7w3dFgBo SWNnvxUdcs5fTDzCS2eHX2a+mqK6OYxOkWPe/bHoC5fz84+cKSv+BLvQUhrFWzSNE0Qh ZC8Y/U3TFjz5KATmzFF/TLwcCaIWmxa8ONaezBKY1LgfU2jtmQkIZIyZQYqMPxKlJo/N OIDw==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=x4PxzcLC; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20a::7]) by gmr-mx.google.com with ESMTPS id 006d021491bc7-6d140d39e25si6248eaf.0.2026.09.21.08.06.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 08:06:45 -0700 (PDT) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) client-ip=2a01:111:f403:c20a::7; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dcEif4b5zqh/ReQTrq9R6wfF+pD/ekaXajAlzCZPJiD1L2K8jsdxjhs1BebejJ9HASY50De7kNkZm+MOLH2EhHcNm6r0Eo3Zd5f+GLJWJXabmE7y0+a1mQhwz7LzLnR1qP62nRiilLI5HNfl6l9Ws7iJ9QKmzsrQ5wrD+uyhREWeMsZ+HyYHynfsAWx9/WE/cEE/lAmFl0/HE3ploo0XSm3yIOnk/LRt0pY8o2jR8jLtntpgxZbLvy97mSFvMBwb2JUAI4mdzdsA6nb17ZStpZGq6R21WoluTktz8J4bVTyHPLZcoQcvG0iXAfH0X14LZNxjqtTSNHuiU/AQbhRsTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=D+XR1WYge1Svq2nkCOxp7xrZ7ZNxRfuwMI8kr2+FEl8=; b=HNihbhY7WmsltOrHrdtNY1KDwvAHvC7LFDGUkAKAqY8Iiar5Ev97C2ejfFageH7SPhnXs5/5auGp6YUQ/Lgj6nCfgEhd70PzbEEej6bMaD8OULq4v4KqXMrkdegDZN/ptYo4NM0K0ivWiDrp4AvRMNMn9TzywmffJyKsHrPoQVg2ssEG9tXd553GtcIvBXeU363AT+AEwAFTX2fumpvhO3OIQwFjQubFoCO+p0SH2jYcAt/9JsgYg0a0LX0Zhdyg9Us2VNQRKcmxsD5zHPWxEo0DHUKYLl+EQ033KAzVthfxtMFNUjNEfbOqfWeA1bnWOrUiE6sLcXZe4vaLb0p4DA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) by PAXPR10MB5383.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:284::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 15:06:43 +0000 Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c]) by AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c%3]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 15:06:43 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: adriaan.schmidt@siemens.com, Felix Moessbauer Subject: [PATCH 1/3] isar-sstate: add helpers to read signature data Date: Mon, 21 Sep 2026 17:06:32 +0200 Message-ID: <20260921150634.972641-2-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260921150634.972641-1-felix.moessbauer@siemens.com> References: <20260921150634.972641-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR3P281CA0037.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::21) To AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM7PR10MB3956:EE_|PAXPR10MB5383:EE_ X-MS-Office365-Filtering-Correlation-Id: c96767f1-2ff9-4ba9-ec45-08df17f1f264 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|366016|10070799003|1800799024|22082099003|18002099003|55112099003|21046099003|11063799006|56012099006|10067099003|3023799007; X-Microsoft-Antispam-Message-Info: +Z8eA1B65vpmnZhttYUaE28ITalxt1rbSjwvwoYalc7aVXPFzRu42sNwPHxqc1209gZ90NY56uN/DVdTxxTYkvc7FIhEvsbItvz5UxbgLM4ssZvbGi4BvKDpvxaMaqZuyHI6crm1Ouvnt/VmJ6YI6eSchRgF2qkirwq4fW4XXUQL/WP89MXvFTPRgAXchI6lDKrDSSm7Zp04xTaaqFdF9NUd+xJe//NhyDuD/6RxlxuNqdA99zWTzdYsbd7VnNb5OtZtDVDewvo2uaUhrIw9aE3TseCa3OloZ8Z0xq/g9UR36hnu2x3Czfw2fKUVJnPT2p2WVk3h8ceFLqb8gj+uCq45MWJp1gOzUINZklS809pdj5ON6u10IWTyfRF/RNHQmDHJFCrxgaZWdsufhaGf79WCPyzcrMW4aiQg/y2Uw4a+1yvl8SdNEDhwYWbKDJmHZGk8ezSXGoyhCdnNMb7VwExO2vN0919KsFcD+R0mQxr+fi9me9lBTqBqtaRg85aN90qtrIM+0bglYdS7LKrNFvnD+qIzlDKIGSLIXM7XL10ktPX43OtITeT+NE+7z3nKo6S+wYvr1JQqv8cCY1YMhhd6JV3iQx68Kf9+YjQS62wQnRmb1W3dQ1mRUhVZMQyuVTzMgT5IylbRdbeRSzUuhfZcpUHe3s8j1j2aVgeFtOA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(366016)(10070799003)(1800799024)(22082099003)(18002099003)(55112099003)(21046099003)(11063799006)(56012099006)(10067099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: VjtB5YIE6uoKWjMUh5p+hyzFgwSSCp7rU/Nx/9t9TE2QmnDRAWP+KT2FkCsdSayLNdS70gnhehbfqph+xnHYq33sOsGv8UYxUESM9oAYkXe4BDqWQCKMqIi4VhqHaH8aa/MOYTFIucu4gDUAm8s+5FWwyZAa4dvOtJHb4UBL33jnK0zcIXwsJdSLoUtMQItZihEtXCkQ/dEse4sha+oiConrKey5M0kbI+IGL7Xg3VOsIrZRksOmIaf0TruPlCACccSVO7tg7K1x/PU/S2fPp1UjO/KNO0e5cnJZKrGDcQISXzvqyDyJ6c5dhPt29Zd3gglVY5dV4sdCHg6uwsGx8A7fy/zBaAFi/HjdhS3yvi/C1bciIJ11MU+sG9bBl/FG3GT0RvNwUBZJ5k6Xa1Sz8j9Lpn3Vl4sTum4vm6lZ1u2p8eZ2gv6EiiCEzc8ntDG1tHH7HO5nOQRms+ZJOIW/GUQO2u2sZ+4LHD1XXbBnPbm6z5Rm/G68pgyV8uC39sFQo/DhLonCJExzcfprZVSPYvzEERd4Cfy2BTF5EH8n+i1/tot7RBjzZjIghB0Qoe6KriAabSIDpbUIFl7Q7Z5snufGd9yTKjHZkaioYnDZQGVOP7/KawK8XU4mevIUATWDLk2xIT702JR0zZto3K0+KlSEeEu6of6BljDDMFyWr9Fjq071l1RPuOkFIY9i0iynNDXM7EbVDuojrDzmlIy6gPR1uEBRl2fP+a5WBSoPtJQf028yVuvRTAig3RH0Ndv8d6m/JAEJ543gnIH9S0ujDjtUAfWvcWO27VFP235MzatBnv5XBBCqiaKYXJDUvqIm4ncUbtkwfCmnaCc4Jz0dn/+MrnG9qVreewnl4Rmcei81PUX62SKZBZ6SBLRgW8rVgUwjvM0hHC0xC6Jdykznk/5YfDdQhB9El6FRnmPWKbr/DJQZe/vjGiyP/JLjreQACOVoE8ic2u1dbWNdHY2f2jLz6QbxKO3QyqQplcFXW7iTmDo9arDRApZOZtFbc4zrSBK01Vos08fnaFB+iNiBhkCVFQbLC3WJRFcsvke//ox25xx0Oa34Rzu6xUVlUKuij4uhhs0i86ZpKTz/KZNERlkv6Kk7vM/nyOiwemN3t/IcQNmKw/5Ik4z+j7EUJsqpMdT0kSE3/8hYYdV59jce6CKDrEFmIuFYe1VPJEOwkPEm+B0jgmfhF0NTTXWGIungZyTQe/zaXySHj+W6ZpXyR2tlnPZ53EQ/bmddr3KnMJIYHdxIhZMB72M8PL0JGSHz2oobmcQbpFlykOVnHLW4BHgGiqM361F0dWVuT6HEMJK7MAksxf21sqlxEGpzYa6pQXlvPwn0oyV0aG5ycT5N6LKhtkc6EBNwaHSNW9rJAv/n/OrGQeTQ1blD5WyRLfA6jzwSve8cS/NQGqthC0AqAfMbbAXsFu6eZxYIGMXCF6td7jQ2kBNtS1CEoGi0w7Yjkx3+suOzCUQbnZ6aQnq25stj2w50WCNIVzDecbL79E4YcMr17mKA1u1TKTVMCsYuCuixDESy0jwdrTxJsDv89DrSHMQnLDK74xaY+eJslQQFY3mMiMyBFMmTnuwLc0EwTXavpO0MXBPTrkkBY4iCJHEgww8HmV3kvXrUAbQIsDT+IyKtmbBr/7rVqEqw7LW29br4EoTzp22HKZv3d9GgFYWKaSpbuZDsYKrDF+wX7vaf6yNqMmpnWUjMgeLJn8k651fZ+9SD0NgrTQuuZNlCnZ8C+hV66zCkeEWP80QLC8gQ74Uxnr85z4y0S+PonFk3osOMZeMD X-MS-Exchange-AntiSpam-MessageData-1: iAGizSOBKmetznSDxokrbN61diHvaHXvLAE= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: c96767f1-2ff9-4ba9-ec45-08df17f1f264 X-MS-Exchange-CrossTenant-AuthSource: AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 15:06:43.2340 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Az0X9sNGG1TQYtqsdykcMo0UTb3EkVbBPx6hbTVSzEAGkn5JYWb3vRD7qqAFOMjiZWqlnVVhzkME13JAdYzBs7+9x4n7eoNVk1c97tAWx7g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR10MB5383 X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=x4PxzcLC; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= The lint command reads and decodes the signature data inline. Upcoming commands need the same data, so move the reading into a load_sigdata helper and add get_distro on top of it, which extracts the DISTRO a signature was generated for. Next to deduplicating the code, this also releases the downloaded file in case it cannot be decoded, which previously leaked a temporary file on the http and s3 backends. Signed-off-by: Felix Moessbauer --- scripts/isar-sstate | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/scripts/isar-sstate b/scripts/isar-sstate index ada154e2..b5eaabaa 100755 --- a/scripts/isar-sstate +++ b/scripts/isar-sstate @@ -592,6 +592,26 @@ def apply_filters(items, pn_filter=None, arch=None): return items +def load_sigdata(target, path): + sig_file = target.download(path) + try: + with bb.compress.zstd.open(sig_file, "rt", encoding="utf-8", num_threads=1) as f: + sigdata = json.load(f, object_hook=bb.siggen.SetDecoder) + bb.siggen.handle_renames(sigdata) + return sigdata + except: + # invalid file or format, ignore to continue processing + return None + finally: + target.release(sig_file) + + +def get_distro(target, path): + # only tasks that depend on DISTRO carry it in their signature + sigdata = load_sigdata(target, path) + return sigdata['varvals'].get('DISTRO') if sigdata else None + + def arguments(): parser = argparse.ArgumentParser() parser.add_argument( @@ -883,13 +903,8 @@ def sstate_lint(target, verbose, sources_dir, build_dir, exit_code, pedantic, li if any(fnmatchcase(sig.task, pattern) for pattern in ADDITIONAL_IGNORED_TASKS): continue - sig_file = target.download(sig.path) - try: - with bb.compress.zstd.open(sig_file, "rt", encoding="utf-8", num_threads=1) as f: - sigdata = json.load(f, object_hook=bb.siggen.SetDecoder) - bb.siggen.handle_renames(sigdata) - except: - # invalid file or format... never mind + sigdata = load_sigdata(target, sig.path) + if sigdata is None: continue pn_issues = [] @@ -937,7 +952,6 @@ def sstate_lint(target, verbose, sources_dir, build_dir, exit_code, pedantic, li if len(pn_issues) > 0: print(f"\033[1;33m==== issues found in {sig.arch}:{sig.pn}:{sig.task} ({sig.hash[:8]}) ====\033[0m") print('\n'.join(pn_issues)) - target.release(sig_file) sum_hits = hits_srcdir + hits_builddir if sum_hits == 0: From patchwork Mon Sep 21 15:06:33 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 5476 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 21 Sep 2026 17:06:55 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-oo1-f59.google.com (mail-oo1-f59.google.com [209.85.161.59]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 68LF6rV4002064 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 21 Sep 2026 17:06:54 +0200 Received: by mail-oo1-f59.google.com with SMTP id 006d021491bc7-6b1c1538784sf3782672eaf.3 for ; Mon, 21 Sep 2026 08:06:54 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1790003208; cv=pass; d=google.com; s=arc-20260327; b=bCuMtBBksi26NNd0KAv11dZekYc1Jbqvmd2cMkd+AVtjtqK+OjxXSyWZQYcCIwge9Y Axrw3QLaM0mtIZpI6+AI6C3RxWxiRN7VpIGnnGFbaeO6NxPMya2KaoGuTGr2OACtmpf/ 72mZndfosjP8Yv2WPh//xnd7v1wbFTEKlO2BVey0sczZBkV5/124w6+mbF4Jb7toDvgk TP/V6AF6IE1wJLMiS1DFgVM/tORYMLkZztajhYQoVMOMoOm8Bfwh+22afZMFbV7KmhOw WHpvezyAfktcJr5FvS4eqocWQ1/I1dKzqrktkrrlJExZUkTuHvV/bjF7KxHotjtJBUc/ b/ZQ== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=x4eYsCOIg7scwY3l+/92+BunjtSA0kK1I1ADNYKSwMw=; fh=LR/7zhU5+lKdDbt8wgLlCylOj7NvYaG7COJAvau9jMw=; b=VPieFSRnQK48j0n6kiemaMfwmgVYJxr09usjaakd6vNWw/uIlM0tl29S4Hb2gHi0G6 TYuaDarY7v2g/XuRVzKFYK8GHYrRl1pXCeQ7WNgKuL84OxuH1hdWSP+zo5R4dfpr4epN 4UnZ1uY79p1pgNt8Jr8zRY8DOFjCjvlqadtoeTq9xl1ZReRQ8dw+moL6xjTXWYenrjj/ NFJJq7NLDRsVc351LLSdwoueADXEgNVgju/Pml5bIlyLrxrEswTPLH+aEXxn4F5Eiv8z gUiuMaQIB1OTm8xV5QDZi828o0d8Rv5Ln5trdjLuPwRQTd4ahG6Sg6I6zOsqpRakWBfj bTSg==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b="hJF1/YSK"; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1790003208; x=1790608008; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=x4eYsCOIg7scwY3l+/92+BunjtSA0kK1I1ADNYKSwMw=; b=UETkd18pjuSbqrC8A8WQYI/UdWNDGql/G6hBuSdyw38n4L6Dtbjh3C7ga2Hd6NM/ZS d4PVZsnokBBHTSBYFMwfGJib4pyuxCY071n5n4y4JLENloDJubZc2Ms5m4nv22ixeFjG GIcPm8wCJEK/wxMCAZQGMK5V+Ik+SCPOQjX77RPWTcrhia6bUac+mYSTZmumgLV6gh04 z2CokWUzPq2o2Qyic0LKj0vl+WjbypEroHggbgoT9OlxAxYBaCvhS5VvS3wM5QPbZwS5 7iTw1D0TQv/FPqrk2R3UJg/FEq2zOaNV+0QkpiHGg60LsXo6CIsnlUj7AxA0gTos67l8 +dgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790003208; x=1790608008; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=x4eYsCOIg7scwY3l+/92+BunjtSA0kK1I1ADNYKSwMw=; b=Dc4bl1P8Y5vgOTugNkNPCTl/jbfEkj4Lat6NCkB3BOSc6eqSrRPdD6cwKGn0Zfx8Ns okI79DJk9IEqs+JmyHXDXbG4+kJQvDU1XOcMvDYDjEKgs2T2gBriTR3K9X1CFgpvHV88 1Af//PV7XwXw7x9TRSPZOpx/WxYgvWKffUvHWKK7ywea5+wFw6rdFeSS5L10eMkfC+1J sCCc1b8m7d+PyPypk6wrC39bu1HXd7UsgJJJB3oQA0AMrinNcti0He/tzQpJgaLSl02h job5R0ddTGb+Ed2p4Ys901iJohk992F/OEwB3kxkcykUNx7bx1Y24+OJv/6S7fJ5g6eJ IdRg== X-Forwarded-Encrypted: i=3; AKwUvByu111P2HpD6BTGHgJlles55JyBRMGcopoI9o6Saj2v98sE8DO+FUTKEzU1BedPNKbHnTaIzvI=@isar-build.org X-Gm-Message-State: AFuF++l7Tk0W/rmJCOC3gJqlTv2i9gS8OGXhoAh7DMbY3TMtXE3CVVjd bZ+96/SdEpEPiJ6XtVEzaluabGVSTmh0a3dyQHxpZY5GD2AI1v2/l/GW X-Received: by 2002:a05:6820:4c15:b0:6c3:68bb:ec42 with SMTP id 006d021491bc7-6ca9be4ff88mr9941826eaf.35.1790003208380; Mon, 21 Sep 2026 08:06:48 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdchuQH3kBd4+3LMVsm2w3wAN2K6/hoUk6TyOeg8Oks0mg==" Received: by 2002:a05:6820:4d4d:20b0:6ae:a08c:c8eb with SMTP id 006d021491bc7-6c8f58f5c57ls5376556eaf.2.-pod-prod-03-us; Mon, 21 Sep 2026 08:06:47 -0700 (PDT) X-Received: by 2002:a05:6820:160f:b0:6cd:3fcc:96ca with SMTP id 006d021491bc7-6cd3fdbdda7mr7527400eaf.72.1790003207577; Mon, 21 Sep 2026 08:06:47 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1790003207; cv=pass; d=google.com; s=arc-20260327; b=Oc4wGBTuljFiJ9R1kNyDoPv+xH7wLZ4hRAQKNv0ijAbC5yvjKyIiRzHtyII8qz0yL5 cEk9QBvj/gy7DGgPS90if2O+9o1b7ApNyv8vzvZzvxEecui7DAJoNGXIS/qlJGvulxWV m15z2uMYvRFDBZdp8MCGgicLHc7wCzb8VHm2Jcr8i4wH3vCaEW8JN0YmOJYNOJZcjt1p 8Fot/07GWtPndKAgLgL23xFnBjd3x3AQDuNqsicQQh3tJ3a4XXiKpfQcAIx5v3FTVCh5 6qoGHiaICXnmSDE30QJ204xvF6BJEVnxHW0n4R9McNe4ESZFkefFGVS1aTriog7jMj+j 0/MA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=QCKub7UTN8sGxrFJHwDBz+aXsoZCKVax1jOs0KtSqUM=; fh=Xwx5KAQd7M5XPJvQVz6xz/z//08kOEttrlFeLBySLJ8=; b=XlAdV97hbeweX/FNVhcgeLt9qllXJNfVxHI+O7w3FsgapSw7LaK2jIb7L9eLK1bUzp DnamsfKQBk5EzPhdrf2MhwQ4rOkHkUPoWkixnvJZwkhACWbUGzwhmn4TzD1KmouBuWIz TB1iOP9Wm0i469j22L5v50dTjvlO5lS4VoA4qbcLarOPvainWDfFY213eNc97xX6VVmA OOGAM6wcaVIWk9phUJsBBQbVAMjh1EHsf+WNnkBcAG9cOBcDhmGt0LRMaiQFyeAKn7N4 SYQhBtBMUIW/DXnRZcREuhBRHlZpoor4bXuO2T6ENx6LsgBgLwh9iXQhGobK44wUTk+9 1+aQ==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b="hJF1/YSK"; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20a::7]) by gmr-mx.google.com with ESMTPS id 006d021491bc7-6d140d39e25si6248eaf.0.2026.09.21.08.06.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 08:06:47 -0700 (PDT) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) client-ip=2a01:111:f403:c20a::7; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RX8BgLXqLYafxdFQvInV64ov0834+fcK9phUg15OwHQ5SMgx6wnmJzpaJGFbbQjUlx6dorFHnsuZn5BDAQfk0OKqhFworOcap79a4QpG9oOBrfA2LrHw4yRo7mGfx7J+5UgWWW6bIGpwTrJhLiBS5mj/fENTeFGYCLujm/1p05CwjdIy2FmHiX3muRo3pH+0jh0O6oteJRN95bgYYQZTo9YBSF7EjevyyDH72M2mTHRNoLzE7l0aTMb5tZmoTaxCf2yWqV1QFxjtbn753q75ZSxUZjI9gVmwZG1GE9mcVVEMtl0tOIMk8/JA5rHDvsJJnTQDxIgqNywXGWxUQt/Eqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QCKub7UTN8sGxrFJHwDBz+aXsoZCKVax1jOs0KtSqUM=; b=HTxno+TYudwSmaKEbuM4oTyN9NuW8LnS7AJEJ1e5mwWtXp8UmbFBRWitawVzCdS0s5HAXhaaoaz4piZqZt6QAfWJejr6bpoRbvR2wvtbeyXWUKRhqEIgQ4+SUSomDqFboymphIMqXfAbh3kvkuCJ1urWgoGfTQ5rofKHXRgVuav/vczB5O5OwYYS7MnjzGb8S2CMaMYpmVU0wzuSdWCbAiN3xvgbRzlXRQWGBxdZ20WshWKAk+BNBH7aCFPJOiI1d1TNlMunuwtSWSMf+T5lIvmPpfVdrTv13VbJ/+XwohU3dmB8BpxBb+GmJirIQN8GKCBqP7FOk9o/xBjjSxH4NQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) by PAXPR10MB5383.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:284::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 15:06:43 +0000 Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c]) by AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c%3]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 15:06:43 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: adriaan.schmidt@siemens.com, Felix Moessbauer Subject: [PATCH 2/3] isar-sstate: add show command to list all artifacts of a PN Date: Mon, 21 Sep 2026 17:06:33 +0200 Message-ID: <20260921150634.972641-3-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260921150634.972641-1-felix.moessbauer@siemens.com> References: <20260921150634.972641-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR3P281CA0037.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::21) To AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM7PR10MB3956:EE_|PAXPR10MB5383:EE_ X-MS-Office365-Filtering-Correlation-Id: d28fa929-ee4c-43f2-3357-08df17f1f2a0 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|366016|10070799003|1800799024|6133799003|22082099003|18002099003|55112099003|21046099003|11063799006|5023799004|56012099006|10067099003|3023799007; X-Microsoft-Antispam-Message-Info: +EnDpBPbGF1JiswGhju5BM54sS1ILb6zF/4ZUZ8CypEJ5HzzmO1TeYlnePjQFD0VOJQzqo6GRTmEx5Tk5fvCttiT6BZpiHrtp8F+xAIhahXgaSpji2JP1tTspzw1hmhpoYDlHKEgzyVDYdFhohjFwJsA8BLrLl0G2eCdxrs+AnjVltZbDJzLOqHbROT2MH9OhqXqF8R9gNx8NrtX9+8OYllCQA0ZpHGWpJVZIb737rSfdSjes64O5ASoEwgO8Mt9RhlRBh61akV7FtAF1nYn4FmplqF0lzkwBX3VRp4hDsTVn0F/SMo2GrDhUgjDCwSRrw7KQpCBqmCcshPfMcOVK7SBMCtB2YHkqjdsVeL6tocCaPM+ZQTpSYrYbSiJuBm5WzU/ZTVgs4Xp24q9Yq/S4ygzN7tgetjsvxhOuuKHkO4BHxuJrMtrgBitBrBcczzHTwCe1PtWhNefQLZASXsFPaunq7JOm2O4vF+Z5HMGQe7D+mxD18+vaEJ2V/loBZB+ybddIYeHPY3MVF+d97AAtmVBqmIuvsxdtPbtXbi4EHsM0DfrQh6FLrORia23KAMA39zwDQFKLDYJYtPWpY61EEAYTVJAzEAjg4Ay/3wlPib/bJ8+uqTZzIPmnpuAOAuDRXmCvBWpjVFBikQfkg5nIYp3FEkcoZI1a6bnpcSLRSI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(366016)(10070799003)(1800799024)(6133799003)(22082099003)(18002099003)(55112099003)(21046099003)(11063799006)(5023799004)(56012099006)(10067099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: HAa72Tky6wBbYugjZUhovboOTtQHzrNAARDsL5hNnXkU4rpTxA+83tmjcHz3vRW/ZPW+/PdzcJtZNMcycW0KKNlr8/Fo74HuE4nV59NGP/ZKzv6+GziJaTJ7YqhskCARau3GAi5FdfzpQPHbHtcCu10LNj3yqZrZuyU33wobp0/SelncsyGM/L2EuSOYlVNnS4UpmD/H0R6EQ+zbugRZObe2DJ5xoAb6JZrrY6mJDEgFSmaBiZ27p722VI2dLPQzWSa1PU1cVfQufllSqIXSCBWvsxPKIMUyj0zGyfh0UScwCVqSPgsaYm9iD2sfJDPNkOXqpIxMw3D6ZPI96HE4B5ow28uspfAbPb72klC+1mAfzA4eotZ91dES+n0KFQGl49c5N/4FnyJ9/qrRmjhY/HjLcM4z1W/xXeQD61zYGM4uoaguIj3NuOm2dFVgbVbe7aebUCrz1E1Nyx29ThqDMx2QxxclUxpX9KyQ5BgaYjbdA2qINZ4/HaQhtGvSbuKI/5CK2jD0bIKQL4Cps2Y1sega1PY2BoTdNZyxHKuetFYqVnuSocx0+QMgXchfwHxHR4WVNbKNuPPwlvLZsOFeRQp389q6Lpr8+F0Z7WZ4LHTW3iyDMoq2uxBIhLnp9WySt99aJaDL1iZ/s/0Heuz5T3FQ+0rrVCsdhzsfVYYTSAALy+8JHPtHD1yDiLg3sHg/t+uVCZaPDw5kG4M/xxA0/JHJC/CbZpoji9L+IRMJFcmPR9hnzJ8ozhrYv4T84qnaGLgeZhXLjNYACeMeDaMYVtTUODM/SEXlrdzUKSDb4f6Z+0aoPAnmRwvXsf+musqzjnqga06reKrObFJZx3f4AK+RTcbqXY6wr4VEz6zoyMc85nvaOYU2mpOhBq+gADtWF/hzsspcek7vbHYc/ke4lPmr/rqitVUT2LsGnvZNpfz90a5PifQlLZBrAXScJD1xcMzTHGLDPxtzf8Z1NH0hjmCv3U1mCLmb0g7Z4P02LZ7s9eA+SxfDEkOBTIq0H3adXCldoKQlutoyWd6qiygX6S3myi9svP/Lajb0u/e//leJt0WM5ScJcs0rrFxJWsJEzx/ZXdDdpcy2cHJeyVrG5ScNT7bl1o7zoW8Js+Cv1F7P3x9hl7SajwYdNFLXOP6Vf/jAEI7V/Xx0PxgDUHjw7QZlntIHyV+a2kBkS7eThsXzJmVDDiI/bgvPsgLmyB4Ay+wXd4QSHL0L2v1+iBrFrgE8NhtRy6ES5THxQOk/0PSEimVGX87ZTvlZyVhLhN7N8hrhwCLNaTzEZLJoRLvBRjF4JFZSMYKuaddhz0l89wxUPPDPWnLA4LaqK8k2/ZQ03nnGJd5Hhyqg054kv1z2fm7/ohOlLdg58zxIABb+4qyek8XDiYT3aazyUxkoeoFI7hKfLMxrDWbU6031aGA7oHfD+UdyjKloMfa7MAjXWLsvgIyBjzdSluH+SFBMMhHWvZiukzVOrEA7OsVq1JXu7LjWMM61qe7/e/Jl4WPg1xKIwmoO96phK3Y8pMBSUUQVYP6QYZ5IBe92tgdAnSjoVCmDwcxocV+a/HPnnEAo2EABNAtkVUhV+ST99dUWhyhxmfEjtjVpAJ/o226qmOS4NJS1ILfYugm8MLDLCHPwR3a5VgVS6I9nomUl2p0huofoicBng8A8KiHhoVp9oU2j2r1bGpD2SvlAbmLjm3n/WDv1LBOEFVCP5w8tNxfuG7B/g+q0iGURuepzpi7q6WwbyKWfBtiQjMbyVB9MDkIRF2lepdVP9HPi7vuElqKiveB3PFAdKE1T X-MS-Exchange-AntiSpam-MessageData-1: X2wFQeL1rk/T1P6hj03pb/BxUIuMuvnClmI= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: d28fa929-ee4c-43f2-3357-08df17f1f2a0 X-MS-Exchange-CrossTenant-AuthSource: AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 15:06:43.6064 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OLeHxmfzZ3y5HiyISy1YuiOrEEww4ztiJYB0gn5hO4WY5f3DX1QXXp+2gwSbrPTeTVkD/qI+p/zpE0x23M1/+V/uhjuz4ivHxVhTVl7mkPM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR10MB5383 X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b="hJF1/YSK"; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= For analyzing why some tasks are not cached efficiently (i.e. we get an excessive amount of cache artifacts) it helps to just list all artifacts of that PN. This is implemented in the isar-sstate show command, which takes a PN and lists all cache artifacts (along with age and size), grouped by architecture, task name and DISTRO. As the distro is not encoded in the artifact name, it is read from the signature data. Tasks that do not depend on DISTRO are reported as 'unknown'. Signed-off-by: Felix Moessbauer --- scripts/isar-sstate | 71 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 4 deletions(-) diff --git a/scripts/isar-sstate b/scripts/isar-sstate index b5eaabaa..b0d4033f 100755 --- a/scripts/isar-sstate +++ b/scripts/isar-sstate @@ -22,7 +22,7 @@ sstate cache: `SSTATE_DIR`. To share them, you need to explicitly upload them to the shared location, which is what isar-sstate is for. -isar-sstate implements five commands (upload, clean, info, analyze, lint), +isar-sstate implements six commands (upload, clean, info, show, analyze, lint), and supports three remote backends (filesystem, http/webdav, AWS S3). ## Commands @@ -54,6 +54,11 @@ than `max_age`. The `info` command scans the remote cache and displays some basic statistics. The argument `--verbose` increases the amount of information displayed. +### show + +The `show` command lists all individual artifacts for a recipe (`PN`) +in the remote cache, grouped by architecture, task name, `DISTRO`, and hash. + ### analyze The `analyze` command iterates over all artifacts in the local sstate cache, @@ -592,6 +597,15 @@ def apply_filters(items, pn_filter=None, arch=None): return items +def format_size(size_bytes): + size = float(size_bytes) + for unit in ['B', 'KB', 'MB', 'GB']: + if size < 1024.0: + return f"{size:.0f} {unit}" if unit == 'B' else f"{size:.2f} {unit}" + size /= 1024.0 + return f"{size:.2f} TB" + + def load_sigdata(target, path): sig_file = target.download(path) try: @@ -616,11 +630,11 @@ def arguments(): parser = argparse.ArgumentParser() parser.add_argument( 'command', type=str, metavar='command', - choices='info upload clean analyze lint'.split(), - help="command to execute (info, upload, clean, analyze, lint)") + choices='info upload clean show analyze lint'.split(), + help="command to execute (info, upload, clean, show, analyze, lint)") parser.add_argument( 'source', type=str, nargs='?', - help="local sstate dir (for uploads or analysis)") + help="local sstate dir (for uploads or analysis), or PN (for show)") parser.add_argument( 'target', type=str, help="remote sstate location (a file://, http://, or s3:// URI)") @@ -661,6 +675,9 @@ def arguments(): if args.command in 'upload analyze'.split() and args.source is None: print(f"ERROR: '{args.command}' needs a source and target") sys.exit(1) + elif args.command == 'show' and args.source is None: + print(f"ERROR: '{args.command}' needs a PN and target") + sys.exit(1) elif args.command in 'info clean'.split() and args.source is not None: print(f"ERROR: '{args.command}' must not have a source (only a target)") sys.exit(1) @@ -801,6 +818,52 @@ def sstate_info(target, verbose, filter, arch, **kwargs): return 0 +def sstate_show(source, target, verbose, filter, arch, **kwargs): + pn = source + if not target.exists(): + print(f"WARNING: cannot access target {target}. No info to show.") + return 0 + + print(f"INFO: scanning {target}") + all_files = target.list_all() + suffixes = ['tgz', 'tar.zst'] + if verbose: + suffixes += ['tgz.siginfo', 'tar.zst.siginfo'] + artifacts = [f for f in all_files if f.pn == pn and f.suffix in suffixes] + artifacts = apply_filters(artifacts, filter, arch) + + # DISTRO is not part of the artifact name, it has to come from the siginfo + distro = {f.hash: get_distro(target, f.path) or 'unknown' for f in all_files + if f.pn == pn and f.suffix.endswith('.siginfo')} + + archs = sorted(set([f.arch for f in artifacts])) + for a in archs: + print(f"{a}:") + arch_entries = [f for f in artifacts if f.arch == a] + tasks = sorted(set([f.task for f in arch_entries])) + for t in tasks: + print(f" {t}:") + task_entries = [f for f in arch_entries if f.task == t] + distros = sorted(set(distro.get(f.hash, 'unknown') for f in task_entries)) + for d in distros: + print(f" {d}:") + distro_entries = [f for f in task_entries if distro.get(f.hash, 'unknown') == d] + # a hash covers both the archive and its siginfo, use the newest of them + hash_age = {} + for f in distro_entries: + hash_age[f.hash] = min(hash_age.get(f.hash, f.age), f.age) + for h in sorted(hash_age, key=lambda x: (hash_age[x], x)): + print(f" - {h}") + hash_entries = [f for f in distro_entries if f.hash == h] + for f in sorted(hash_entries, key=lambda x: x.suffix): + age_str = str(datetime.timedelta(seconds=f.age)) + size_str = format_size(f.size) + if verbose: + print(f" {f.path}") + print(f" {age_str:>20}\t{size_str:>10}\t{f.suffix}") + return 0 + + def sstate_analyze(source, target, filter, arch, **kwargs): if not os.path.isdir(source): print(f"WARNING: source {source} does not exist. Nothing to analyze.") From patchwork Mon Sep 21 15:06:34 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 5477 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 21 Sep 2026 17:06:57 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-ot1-f55.google.com (mail-ot1-f55.google.com [209.85.210.55]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 68LF6tI9002088 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 21 Sep 2026 17:06:56 +0200 Received: by mail-ot1-f55.google.com with SMTP id 46e09a7af769-7f4eb9e05a8sf5019204a34.3 for ; Mon, 21 Sep 2026 08:06:56 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1790003209; cv=pass; d=google.com; s=arc-20260327; b=E59kYpYDBla6HUMSNEjzC3uuQJjBVDb3K3RBAMZvLH4mY15zrij+QhzLfI80QECwjm iWlGsqT/Ym2qP329Hou0g3TTjyWvbWmeh2didnFz/eNMVwgSHrH0B8n/oMPi4Q/wmQ80 8IiBwfRb7vpGzHIUevwt8J3JrueC+L5RX56ppNbNlr5FWUhD1OAHd8AfyU3OxvPFJVsd zDKk9CNGW0/3KRvYi2ojIujF+6dzcGA2kuCIJzRkrA9jo3qItVuu6XvKVRp+U+SGfv9r Ca8kKvH3g+q7FJ8+qXKuLediL6XVC23LjO4T4FO8tWzKFITu2A1+75/bciXzDsrpA6GK qPGw== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=g8CrP6QXfJPEdPPlU1t92WRyYhF4OCWNhC77aFhIbGA=; fh=qH03zXhtKgtO39pjNC78z+gyYEwLXYwfLAufcYKx5zs=; b=aw6O0GoMT+jfN419cIEyYfKEIWKv+Q/PLchDlh8W07+65AWUZJ/4fHiFKC5QFx+fOJ RAR+rITYK2JF82//9fHjHmHpOXS5jXHf6YIK/IOkBuU7W3OUyS8z4vQQeodmnuiorVHp rHtL6K1Lu05z8h20m8MvLXMpyhiYw/UT/Dp2SUGi5LAvZBVRw2jrMdCVgDkvU5MW4VfL 8ElLvG/oFUlJcbZTCFLNNj0tvsQ3ppx35IBO9GZDjT/sejKbcempYLK9I84CypT7PfpS qBFOb8x9F3scTbhk1W5f+/YJC8Q+O3l3+f9yw3A9XGl8xFDoplE7cveY1cPd8UaTQGWF CrWQ==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=iz3wtDGv; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1790003209; x=1790608009; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=g8CrP6QXfJPEdPPlU1t92WRyYhF4OCWNhC77aFhIbGA=; b=cUlhQxMljGLkE9/CkQ8ld7R03HoloiPhrk+1U5QaQRDWjI8E7X6mKbRABx+aMz4UAw PvkWkUYga9jcNhyzzz9v4oULe9KGyH3D8FL4M1tIAj2tC64kAGxygTB7fBeLkZ2mlFvE aQ3yrxVtZRZUoW4ppBjS/COHLfAXYRKRPkttQMznodAuPmyVQ6PvxJkBVnuUM2psguRR Kszeze6gNczCyj8D9+5m8nUWJKVjfHizkc3xaYSog7LN6Szh/fXldZtRL04A3iu8TXf/ GCCgeF2mLhsV6QadOTSmn6bCJiG8/FYqYAZF3iRNaqTrXyzJ/LUXeEI1rSkfa9CrfqUM osQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790003209; x=1790608009; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=g8CrP6QXfJPEdPPlU1t92WRyYhF4OCWNhC77aFhIbGA=; b=E0WKI+I4RjS5ZfxPb84Qro9vWQoDzgvalimCNqwLocDIobbc+wMl1rl4cGJPeqdYgn 1N42TpBLhOe4HoylpEoCfYqQ0lCB0hoPGefHrHG5LcoH9M75BkMFT4AThALcLQ6kmh8M inx/XLDKH9VbpIdPHc+w9Qqo4i6D4kFv7hgl0Rl5OMVg2Ydq3ChSwkSlJh9i6Vposyk6 Ze+KEnnkfyjFzERtk38JwUCNa+xFlsJMvTAa0fLzFJrw1rEkjVJyWW93xr2RPuu2z59P iMgd9xIhx1OEJ+NIhaCS5v840WKq64yam7SjCnzZvP56V/aVwp1yhZLiWt++0lCeGVbS NcXQ== X-Forwarded-Encrypted: i=3; AKwUvBz/cpa/n05FGu9ZlxlhYSOrLU6yF8sp4MBBrMNstYGc+GKjtCQJwV7J1YgJOHqWbdGWbFWp7rI=@isar-build.org X-Gm-Message-State: AFuF++mJPKKJuQ3Sf7AHrSTTPs+eYRWmuQDcpEVFwUxoVibRjbpTs/Y9 1Bh331s4zuXKP318GJi5xogxRF4djjV4F6x92QFiuaGXhjDEA3nJe97J X-Received: by 2002:a4a:e904:0:b0:6cd:3fdc:6000 with SMTP id 006d021491bc7-6cd3fdc607fmr6712933eaf.81.1790003208873; Mon, 21 Sep 2026 08:06:48 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdc8bfoIL85iUFND2XgODrnVA9wamgDDYpw/NbOkpt0B7Q==" Received: by 2002:a05:6820:7099:10b0:6c7:aa9d:c3be with SMTP id 006d021491bc7-6c8f1478a5fls3752902eaf.0.-pod-prod-01-us; Mon, 21 Sep 2026 08:06:48 -0700 (PDT) X-Received: by 2002:a05:6820:4cc1:b0:6c9:80d8:a1f8 with SMTP id 006d021491bc7-6ca9cb5e00emr10343652eaf.53.1790003207986; Mon, 21 Sep 2026 08:06:47 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1790003207; cv=pass; d=google.com; s=arc-20260327; b=OJh3dlTmSefjsyriRl9Fup7qA1yI/j7hYBzI3sqWQ8cGJhHWBTdHMIPGGCPzqxodLi bxFOoa38a5a/dzYzc2UdpE08SXJsITvyzdVeru6zohde2q9U52y+CKFxUfmutPqppaWQ w6MBZS/nI911Lik+SWHWlN8CBAmddPHhAHllwgJLZfl8NR7tOeScISsBils1rvJxtxFg tvJyI3Gb2txU1ql7W8oKTRbxuDNme/LCnU5tAeU/KFP4IjhQmCdgatKRyF10dykvaHzJ x6goEQ7B5HIkW8O7fIOF3QqHTJLfOKvUwr8abw+wf05Eyh6WyIBp4b17pRa0ONsUIY0A MnMA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=zkYz8WzlVF89h5zOrPhlNXFg7eJ3eh1/5yfU4dxPmRw=; fh=Xwx5KAQd7M5XPJvQVz6xz/z//08kOEttrlFeLBySLJ8=; b=rASvxglNK2FuGcCADHO16G0UIy5C1ZZ3oOAlsnHT6QJ62nFNPitfLiXZ7PJcwqqvFg haIn+6HUq/ei99VMgHALlCiCit1RsG2/0jj/JibWOGDp5PC7G5KdMU5otDnVOghgESmT jC1JG+3vj3yQU3hbDbPpjqxcx9YT5w1sDjS2hNPJFhqpaX2/RztQ6f+d9A98/IdbJcbE zIufS441t3iDBAAh4991pyyxbPj9JxpLDttqYiBItlw7JqJZUMibuPBcmxDN5Lvn3A30 cdcdvhovmgPLPA31mK04BpA/uXN8qg0RVi0KY98M28/geR1H+GR15cBY/MnFR2zddrfn bpgw==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=iz3wtDGv; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20a::7]) by gmr-mx.google.com with ESMTPS id 006d021491bc7-6d140d39e25si6248eaf.0.2026.09.21.08.06.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 08:06:47 -0700 (PDT) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) client-ip=2a01:111:f403:c20a::7; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cyfhbg3OVuvyYcDqHksbNaWGcdO/xXmw61HFSDq6iKWOMtqlG3HMZ0la+aoncfSjk/IYe67KAmwre625AdA+6PnsIQG608WoQU5H5nSQ0TDrsSbhYnuNPkCtgVIWgXmYn6WL1yCU+PDaGamZFTq8+hSEz7peEo/Mg84hRaqAaGHgK2+lfoavF5JxUNLuia+qr+Lzk0SXn/E//RBteNBvZeZLWOVP8w5kyG8t5Y2HZIH2qgp+FSkLz6XeXtL5dxueX3AR/WARL3pmXAkHMENLuHu6vpVQdlmFLPluKpWicS19xtOxL0yNi/+vcknvkA6C2dFUaM5+llNfJZFtPaSsJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zkYz8WzlVF89h5zOrPhlNXFg7eJ3eh1/5yfU4dxPmRw=; b=I4wxSZd3F59XfRPv8uAyUrEnhIh35oCwKWWhq5zRlh7wYtAwLbTEvhSJSPVcHCv/5rY2IJiisY8NfDZFlvDdo7mUgu7SNBc1IMcLpBaSziBjr01IioBBbsqg9neRBFNPzXMV2E4tQv4Z1oJH6sutJ1ZGnixOjinevkiIwv3AAUxv5LUzXwyX2CWJ/EvpEaNweHwLsw+Cx7oRr+91zFEY15c91w1335hHKk6pWMYq0Sgwcdncmnfh2dc/zLTc2+6qPkeurQqU18mPqNq+3i71tZWClwEAS/EsBvKPL+kPtoWHHMw7Y81jx3u+ZJnVXV/9mEP6Kz39Hjyea8+6UqwUSA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) by PAXPR10MB5383.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:284::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 15:06:44 +0000 Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c]) by AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c%3]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 15:06:44 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: adriaan.schmidt@siemens.com, Felix Moessbauer Subject: [PATCH 3/3] isar-sstate: add delta command to compare artifact with others Date: Mon, 21 Sep 2026 17:06:34 +0200 Message-ID: <20260921150634.972641-4-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260921150634.972641-1-felix.moessbauer@siemens.com> References: <20260921150634.972641-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR3P281CA0037.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::21) To AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM7PR10MB3956:EE_|PAXPR10MB5383:EE_ X-MS-Office365-Filtering-Correlation-Id: a66d95ab-095b-4549-5fe9-08df17f1f2e3 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|366016|10070799003|1800799024|6133799003|22082099003|18002099003|55112099003|11063799006|5023799004|56012099006|10067099003|3023799007; X-Microsoft-Antispam-Message-Info: cm0WxI5HDPNt2YLXkkYvAQQaYrDSEqIiPo3mheQow+Q0nk+haY21yWJIgtl/o3ZQDNrBs/XvW3nx1x0Vfjlsej4RvwBK+RJ8tD+yrWm85U9i26kBr39K6fZq6YRjyflVafM1KHc0ZJ0fBQ/MUbJ9ETLZCT78OwISktdqh2VEDVFzQo6O+ssiWPNdvIpZRRYdXu7hosfEcgn4x99QGwKqiPx1bP7gOfuXtvoLHV3m3o18jEVJP6laC/nq871dupOy0vbv7HCC9qVbOv72xJr1iyQEPH0XpRSz3GiBSj8YttXnbxnvcqs3vuKNgwxnFouEn+lKNtpttpO0sjzc1ydvF9hBQS1beClneP08aKrL4vyKnzppujdWcBjjxKa+VXWiq0mlZ4J5Vpx3Oy0rZEPzy/aYLb99xmmcKclpkRLxpMAGllWD8sO+LgH7eLbBFPbyYYC9Xm1YPoyBJRaITFBnnQCVLH2bSGjO+iguihVtTktlEMwzN4lCcLPWG/ycVP15kzTaHXtmjPpiVI6K9R94cFoiO1zi3UaqdGajDbp9sQ4z/8c/4BRKcsX0eFlgbJxb6D/0rAAhvwxMYzTbn0Nv6GOdEqPzrY+t6vc36h7K7r7aXKnm/XNhEMDjoK604QAhmaab/YArWgQDvjlFHr9S1rwuqLxx9dtA4fsfX//v+rA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(366016)(10070799003)(1800799024)(6133799003)(22082099003)(18002099003)(55112099003)(11063799006)(5023799004)(56012099006)(10067099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: 4FvK0ZTu9HimQe7aZX6HycJxAdGvFTVV16Bg3qIA1AbGaOSGgTrILYhNEPY8L1w833WbXhoz8ZZNNK5p+Xs8HJlR9ZKAw/b0gf4RDYcyR7FE3PMQ/nMCN4uJgxvpr6qfit9Vv84AY1/8FM0wDEeUfJjUCjrPK3zPFbIZqfZu65D2Anq6ojc8AloIHmMXZjedqXLyN4vF8s3ASHlk0kr5PvswtHE9lf5Od6KKRhhYSRETrPeG6YbKdoUgkrVfmuVOsTd2YajEm0ckN4pbGnZIRLSUhYRBr1T4jxYWt3X9MxARfzhyDb8slXMsBtTtHaRmDt3R8P7qrnGzHpc+mz5lCqyHIuVMoPSSb/Qr3+5lKjAgcGIAEsu0RCIZeHymefg79/kECvrXSAUnczAxsIfbGbG5J7gMTjiAH1r7wxDBZC6LCO6kBRcU9kT5q/J28qXi0jmx+OGokFfrO+st4LE+u0GtGsw+PRTayDD99pwcQaAVMl7CRJAaQWWXQ0M3+Zkdl+w7q6YqLcd0XanSdCqWLw706KugCPBOHS6WWecuFFoNFfAJnhAys+OZZfFOz8xQHiqrW+tNvnNyRrBijOzf07yW2b86VLn8g+Y76vttXRQ7HgPJc9nyE/UU8RmD/yjzGIA5ZgvbaRGmcvtxYGg4zrm73WHy03drmuAx9h6zxhqIUZw6qG1gqlo5kOpzX3/E8DwA0D9P+UeT7eRjbaP12RhNkE3/CWKDsW9a25X330uNzHZ75VBZ6ByOTFvBUpn/N5ssSfjK8xBzKMkbKAHuNqTazDUW52AUfea/nO4SflDYI/OhSggopeUY6fc/uTFxw0+Kq6g7rc0da9zitlypdrwO2cGQdIOc7bBt42Mkh2oA8AEjzttkV+KFiLWpMlpwbAAmYSaVD7GKPRUaiaAP8oVbacFfagIGMV1yaCjAA6s6VSYYe73pgn3grOkPrCWaCcDGuPjr17ubtsgFqpA0/12n6uwC7T4mdGu75T/Ip3Ax/SsE+LGnFkRFLEJlc1/4yfyWe64oazNZHNtioBMnVuzO5EEc9BcGfeAl44iBw4qiOHhIjFy/EEIInyNaeUJcq5fmrDTxc8h46TOYtpFch/sFRImDczpMFqzW5krmFeZ6px0OJ92eNwP3y37z4mjTfsj/7kqHFYyYIVMbl+LF/hTM6uylTHPALHRS03WfcI+HvmItQA2qYTWbA2Ol/v1hmUeSHjcTpwALxIjNgU4HlZxkr5dil1M9eUHlxAVgmTQLLAQgaIMO+HZLSbY76ltWVRw5aBSSxwN+xTDbBPrzUVdB/go0Rd9OchKM6/xdxQV4BUDm714j9YoWj8KS9h4FHwSaQBVSvdhM/O7wd/Acy8gZtaVmUCrOCwMrg96cG8PkC6CglukNv8WfL56UpiUrg/ddE7+6Qgu7te8p7G7rtHNE+ECYWh0smPa0XJFjO8g1BcMqDNfanINGhHv/62yqxOY5XPCMVYx8UajiQCQXmMDOhpIjsLkM2F5MjPzLYViddalBZtrUfG/hyU70SPbOPG+3zNapSX/eyrFKGDYdIg9hKDLxm26/RVJBkRUxJHOHobWEKjttrCsyGXk8UkaobWfr0bkTLVCl3IZXsnn886d3Ej+vgupVG8TC9IpQ6YkwXiqH64PimiBhrDPVAFWMxpjh3YycMHHAVyP3qVgYLD0LG6PR8ItJGK8rNnMhBgTXADRD7VGb9Tr5e1h7roAP2w7LXLdlazNfoTifc2WOrupP4gcRveqmqYHQpgCSRep6h7tq3GpteUIUMfdrjFNxUGNMsVjg X-MS-Exchange-AntiSpam-MessageData-1: 5LkswDJnvHdZ/u0eiTpP35Tajj3Hgb5b3yk= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: a66d95ab-095b-4549-5fe9-08df17f1f2e3 X-MS-Exchange-CrossTenant-AuthSource: AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 15:06:44.0885 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nfikM4P7lZqCiNrTD9rPP5Ftool4jBBmiEP7PhG5ZKR71olUGmZrIl8A6/F0hL9Xy9AKoCUBagM6WWXfQVAFye+YcECk4KbIYxtMj0SVFH0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR10MB5383 X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=iz3wtDGv; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= For debugging cache efficiency, it helps to easily compare one artifact to all other artifacts of the same arch / PN / task. For that, we introduce the delta command, which behaves similar to the analyze command but takes a hash as input. The comparison candidates are ordered by age and are limited to the DISTRO of the given hash, as artifacts of other distros always differ. Use --verbose to compare against all distros. Signed-off-by: Felix Moessbauer --- scripts/isar-sstate | 78 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 74 insertions(+), 4 deletions(-) diff --git a/scripts/isar-sstate b/scripts/isar-sstate index b0d4033f..767661f6 100755 --- a/scripts/isar-sstate +++ b/scripts/isar-sstate @@ -22,7 +22,7 @@ sstate cache: `SSTATE_DIR`. To share them, you need to explicitly upload them to the shared location, which is what isar-sstate is for. -isar-sstate implements six commands (upload, clean, info, show, analyze, lint), +isar-sstate implements seven commands (upload, clean, info, show, delta, analyze, lint), and supports three remote backends (filesystem, http/webdav, AWS S3). ## Commands @@ -59,6 +59,13 @@ The argument `--verbose` increases the amount of information displayed. The `show` command lists all individual artifacts for a recipe (`PN`) in the remote cache, grouped by architecture, task name, `DISTRO`, and hash. +### delta + +The `delta` command compares the signature of a specified hash against +all other signatures in the cache matching the same architecture, +recipe (`PN`), and task. Artifacts built for a different `DISTRO` are +skipped, unless `--verbose` is given. + ### analyze The `analyze` command iterates over all artifacts in the local sstate cache, @@ -630,11 +637,11 @@ def arguments(): parser = argparse.ArgumentParser() parser.add_argument( 'command', type=str, metavar='command', - choices='info upload clean show analyze lint'.split(), - help="command to execute (info, upload, clean, show, analyze, lint)") + choices='info upload clean show delta analyze lint'.split(), + help="command to execute (info, upload, clean, show, delta, analyze, lint)") parser.add_argument( 'source', type=str, nargs='?', - help="local sstate dir (for uploads or analysis), or PN (for show)") + help="local sstate dir (for uploads or analysis), PN (for show), or hash (for delta)") parser.add_argument( 'target', type=str, help="remote sstate location (a file://, http://, or s3:// URI)") @@ -678,6 +685,9 @@ def arguments(): elif args.command == 'show' and args.source is None: print(f"ERROR: '{args.command}' needs a PN and target") sys.exit(1) + elif args.command == 'delta' and args.source is None: + print(f"ERROR: '{args.command}' needs a hash and target") + sys.exit(1) elif args.command in 'info clean'.split() and args.source is not None: print(f"ERROR: '{args.command}' must not have a source (only a target)") sys.exit(1) @@ -864,6 +874,64 @@ def sstate_show(source, target, verbose, filter, arch, **kwargs): return 0 +def sstate_delta(hash, target, verbose, filter, arch, **kwargs): + if not target.exists(): + print(f"WARNING: {target} does not exist. Nothing to analyze.") + return 0 + + target.enable_cache() + sigs = {s.hash: s for s in target.list_all() if s.suffix.endswith('.siginfo')} + + matches = [s for s in sigs.values() if s.hash.startswith(hash)] + if len(matches) == 0: + print(f"ERROR: hash '{hash}' not found in {target}") + return 1 + if len(set(s.hash for s in matches)) > 1: + print(f"ERROR: hash prefix '{hash}' is ambiguous") + return 1 + ref_sig = matches[0] + + print(f"\033[1;33m==== checking item {ref_sig.arch}:{ref_sig.pn}:{ref_sig.task} ({ref_sig.hash[:8]}) ====\033[0m") + other_matches = apply_filters([ + s for s in sigs.values() + if s.arch == ref_sig.arch and s.pn == ref_sig.pn and s.task == ref_sig.task and s.hash != ref_sig.hash + ], filter, arch) + + ref_distro = None if verbose else get_distro(target, ref_sig.path) + if ref_distro: + other_matches = [s for s in other_matches + if get_distro(target, s.path) in (ref_distro, None)] + + if len(other_matches) == 0: + print(" -> found no other matches for comparison") + return 0 + print(f" -> found {len(other_matches)} potential matches") + + def recursecb(key, hash_a, hash_b): + recout = [] + if hash_a not in sigs or hash_b not in sigs: + recout.append(f"could not find signatures for job {key}") + return recout + out = compare_sigfiles(target.download(sigs[hash_a].path), + target.download(sigs[hash_b].path), recursecb, color=True) + for change in out: + recout.extend([' ' + line for line in change.splitlines()]) + return recout + + ref_file = target.download(ref_sig.path) + for t in sorted(other_matches, key=lambda x: (x.age, x.hash)): + age_str = str(datetime.timedelta(seconds=t.age)) + print(f"\033[0;33m**** comparing to {t.hash[:8]} (age: {age_str}) ****\033[0m") + try: + out = compare_sigfiles(target.download(t.path), ref_file, recursecb, color=True) + except: + out = ["Failed to compare signatures."] + # shorten hashes from 64 to 8 characters for better readability + out = [re.sub(r'([0-9a-f]{8})[0-9a-f]{56}', r'\1', line) for line in out] + print('\n'.join(out)) + return 0 + + def sstate_analyze(source, target, filter, arch, **kwargs): if not os.path.isdir(source): print(f"WARNING: source {source} does not exist. Nothing to analyze.") @@ -1042,6 +1110,8 @@ def main(): return 1 args.target = target + if args.command == 'delta': + args.hash = args.source return globals()[f'sstate_{args.command}'](**vars(args))