From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 13 Jul 2026 16:22:29 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-qt1-f185.google.com (mail-qt1-f185.google.com [209.85.160.185]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66DEMRqN011613 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 13 Jul 2026 16:22:28 +0200 Received: by mail-qt1-f185.google.com with SMTP id d75a77b69052e-51bf321d786sf38709341cf.1 for ; Mon, 13 Jul 2026 07:22:28 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1783952542; cv=pass; d=google.com; s=arc-20260327; b=Vv8jHGQsTfI6qq6L4BKyE3OhNA1IsUitwOifB1con+5XR6SUZdz1cjl1jXRknOTBv+ mcXpKCubq0uN9VOE0nOYXt8JriW/XmqWt3bsSgaEckUA0avSUKn/xjTOIRB5lhruo4Ax ENcFOwWGffGZXu2g37JDKxpX+YLYMskvqq5W943AZ5mtevMKzXM7f0xHspvMAH2kwuQR BL/59zcm8BEJUj38GnoweFjrb023t6cfou0F2/pdMQFq3kHEnZ3eKUubTQW47cIYBQuW G9JDyoI0dsZXi38iLucJXqkf9eXqGG3D7Q58wGbnQv3h8XAfpgOY4wM5Xi9wvCDae63G mQMg== 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 :content-transfer-encoding:message-id:date:subject:cc:to:from :dkim-signature; bh=2VZy7jdu2nyjLmnZgVxD981RdL+SLAGTCmf64cQWe+0=; fh=Roo8btWq4mSBDDTNDBai8hdXpLpQ923NhK2bw/NsL5Q=; b=CQAGl4p2XP9O6p3u6Oij+MKZYPgDSDpXPmOqrV/GfNB6IWojv/LNQm+Nxfi/xqvGTS HatnF5TH+L4F8TO4isq8VyIPDVS9s9Jt5gk/5MhUO3q+QSOIsGltSmH8ZKbvv5tVs/kG MKiNvuSCYPczeUqk4tCSIcb+FjV2ueAjC+IFHArLW7z1ylvndWSicWXCRRQ791r5hhcb iobzEjubSWUqX1sIT17ykEA5rDxu1kYW33z4xEgh9nhdR/CtC81QKYKIV7cCmGsGcDgY FxVtMuDooTYCq/PBewSn1x/t3u5kbj7zpRGXjtzrfVJLfOolGv3ahgP358q1ONBSULCu YEug==; darn=ilbers.de ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=NDruJoqI; 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:c201::3 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=1783952542; x=1784557342; darn=ilbers.de; 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:content-transfer-encoding:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=2VZy7jdu2nyjLmnZgVxD981RdL+SLAGTCmf64cQWe+0=; b=j8PU3QdvmZ5vmdIciftfOaMkTZiDN/EnL6LZvKoKR6fwwl5jhn3nDIzU2p91HFb1Gp 2p7ZGcVQAQF1UvwqSH40DbmeAPlB54d6bohKX+0C7UMD6GhoblKfL1ce1n+KC5XFvtk9 KS5JnuwnDXDyLZTpM/m8E0skK7x2z3ye2klfi+3RhwtIso3O0nbtLV6OfQxW+TPq5VMd 6Wq0YZoy/5af90CrHDabSisq5wF4AesCx4yLgHuDiFR5oLQjXmbpTJjf0ef5B6mkKlY6 G2cLVMXZyHtpVhgRrFDhd4rTnTTCF/4rvlpUZNCgrYIlBV62j1trBoo/FPknN1TLOjl4 mzuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783952542; x=1784557342; 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:content-transfer-encoding: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=2VZy7jdu2nyjLmnZgVxD981RdL+SLAGTCmf64cQWe+0=; b=SgrC7u9VjhZfUggEAVkVqz0P38OpEBaEXEWa/MAe8h5tM8EyCVEcVZCE54aYK4VOVP nwY8waWWo9fzX8sJHvMSppzzH20GKuVC/kQC9r8fpzeOSgTu2ksowC6Z/oAt08mRs28s gJG/+AybGXKM+oG1IR2bbKmMLwnma9A37jY7jPl4MHrM1KP6AYKEPEEYGhmqTs/R9yPC vsCeIEnFPaQJZm43pWjupEOTXKYbxshRdlbQ1FwxKzXE3gioQ1loA89u5yv4GVOHH4vE LMk3bgkO0XcQ6KI2gglHxDZLZlpcbw+CG7Jry8SEQFJYZXOykoWal+OkaHYzdTPDgHJi JOCg== X-Forwarded-Encrypted: i=3; AHgh+RpnWvuSE3idZaa1NHf5UL8Dad9BBKgnfZwUGxrJcJhIWXegRduz2An8Zp2tzzkR9jQF6Hwj@ilbers.de X-Gm-Message-State: AOJu0Yw2EMPTaXj0NdnFra85SVYX1/gOVOxqOe7jf7CbpnwuEZMzbcSa YhdPDRQQ/WYeknPWAm5vFW6JFHufTFaCBA9PlFfwmV9h8zKs6Q1aFlqq X-Received: by 2002:a05:622a:40e:b0:51c:25da:903f with SMTP id d75a77b69052e-51cbf27db96mr89605331cf.59.1783952541652; Mon, 13 Jul 2026 07:22:21 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="AX0PUUeDfC9px1qg0qsbW+Q3HLaCZQ3RMKFmX2MVK6MvXjvaTw==" Received: by 2002:a05:622a:1913:b0:51c:48c:b7b9 with SMTP id d75a77b69052e-51c88399690ls112839241cf.0.-pod-prod-08-us; Mon, 13 Jul 2026 07:22:20 -0700 (PDT) X-Received: by 2002:a05:6122:4d82:b0:5bf:5c31:fe5d with SMTP id 71dfb90a1353d-5bfbf2d7da8mr4544097e0c.8.1783952540149; Mon, 13 Jul 2026 07:22:20 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1783952540; cv=pass; d=google.com; s=arc-20260327; b=LkGZeGW5J/Eb5VWVXtmxEWgCnkhgTM6vpkvkDcSoBascRosknWz6vmxLl3zjzjsZUl JEmuU6OmZbspHocndf1bAutpbJK3pnAdiJo4Sid8kpcgnIqeX+ZdYNqcA34G/0z6EiwV M8VNtBRPG8SgiSJvtHLGmZOP5Ffmq/HNFX6AaUAQ5NDVC2yKC2EUsOrpg1Vbc+YaV/n/ 8VBctf5xH7a0NXjzHIUQS0/RJyC7P1k767bP8NLV4W65Zg+ukqJ+C4x3cUzzGqY3qy0L Ig8AW7av3zM+IpxfaFcBg4BNOSxEchNzRwUY1ha2/jaPwCyUOe3u/KX88VRDcapzzOFp fFOg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:message-id:date:subject:cc :to:from:dkim-signature; bh=u3lneQyhnCHridwTPIi46po1vqkrtTQbzgLf6V09W3o=; fh=Xwx5KAQd7M5XPJvQVz6xz/z//08kOEttrlFeLBySLJ8=; b=Z2nv13bJeXwNxlVc5vBly0QxX8Zw81v4w/0O6yCOQM5TV21iPoWUwb0rICwJ/I8mRK xQZ4ZrmVO+h3qoTUeLmUGkPCNrs9wt8Jcp70sI4R1oczgrL1u8MnVJNalt2nwA2zWjsL xSfSuxdWy7Qm7Lb59q4Hp1bJVKzzJCjWw6H0bCcmpYfVsb08jTyXXr/X+eFmgQGCuT0x C82O1v7hZgttp/3B380yqwr65nGUy5r4x3gFTm+rCKqsKtCFFjdQeJY1eTTyHDVsZeFA /QdcB5lcsZgqzPNwGMPlHZSuMUq0AtUhez/ibV8LvLetNIorZdrmCnvOV/W1Woff9+6b snLA==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=NDruJoqI; 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:c201::3 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com. [2a01:111:f403:c201::3]) by gmr-mx.google.com with ESMTPS id 71dfb90a1353d-5bfa7d3d1d7si387409e0c.2.2026.07.13.07.22.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 07:22:19 -0700 (PDT) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c201::3 as permitted sender) client-ip=2a01:111:f403:c201::3; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MZE2LGOJv0G3kGRkXgg9TZ5Cfu7ym+kizYbNvSaORgrir9qMMTMmIHtY3u+wBGBmn+51HurkoLyhv3CNgvJRfWmh4PJGwFS4Duj0ofi95uJai6wVrb8Qnbmli2eSBqn1jVm4PuqF72MrLcZ+31yhjyPkBk5PzTCcxQ48ZIvk9/pDveuGNwbb1PZwS7NPqkt0SU6x2noCJ9sA+YHoZay4UzUxyDt1cKvUjoQ3HS484btci4dd5bRJDpYP3KvRXpZX/EdU+fGPgrI4UX26fkc1D9rIRtEdphS9RKd2q/SoHaCF2EKVnaO6Qov8fezrdTGXpi68zoZ0ou5A+qkcEKKLQg== 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=u3lneQyhnCHridwTPIi46po1vqkrtTQbzgLf6V09W3o=; b=k3YPOUaqkQA/l9/+U94dpk8vFoE3vDoIn7iYriCuEgpy9yqL/2Z0oTpxEKtWbtbsImDeeJdRVpSXeyZtdz2IlnLh8Hsw8D3WRGtYf+gU0PrDG/rXYhfZtgQsjHZn+z8Rrac5vSBBxvsx/YBaqw4xvvH0EC7vCxVL3pmDiHV+ZOfVKrsNnKAgZWOZukmIcZGz2GD2LZInLaY4byXtywQgyn2YByzuvpMJJ6WDZGzLFrhuFjqh3zwkADc27zKQqfLZZ1zLxRe5AeJDEMdlavPFCk5cH9vfmd7DbV0IaWP/anyXcQI9t3itEP330iFGfw5KOqde/pmoF9M0uKJZ333VPQ== 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 PRAPR10MB5400.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:294::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.23; Mon, 13 Jul 2026 14:22:16 +0000 Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c]) by AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c%5]) with mapi id 15.21.0202.018; Mon, 13 Jul 2026 14:22:16 +0000 From: "'Felix Moessbauer' via isar-users" To: isar-users@googlegroups.com Cc: adriaan.schmidt@siemens.com, Felix Moessbauer Subject: [PATCH 1/1] meta: Update sstate.bbclass to v5.0.3 Date: Mon, 13 Jul 2026 16:21:52 +0200 Message-ID: <20260713142154.1547339-1-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.53.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" X-ClientProxiedBy: FR4P281CA0240.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e9::19) To AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM7PR10MB3956:EE_|PRAPR10MB5400:EE_ X-MS-Office365-Filtering-Correlation-Id: f3439e3f-7727-423b-5026-08dee0ea23b2 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|23010399003|18002099003|55112099003|11063799006|5023799004|3023799007|56012099006|6133799003; X-Microsoft-Antispam-Message-Info: iOQ6Es6adLkMuH5uUilQYffWbgyZmLIuC897v+ZqP+ghZR6GBDsUf+h0lZxFcmcZLS8cHy/y86j9UWuP2+OF9NC2N/RFrk/JpUKPbZIw0wGso32HPvsmTSX5TLyzwMeDFU7na5KaQxbkbFzwvNOuFkS9GNG57xYsDZjYRdkao+99SUADAK4HwQ6lPD+eeYZBU0mZgprBm9Z0iL3CxLN7fzEzzagLpOtbtU8IYPoJ0NKTwkaU1OPb51EwqU5CscS8P7s35cdAGosudI9uyTXQ8N0syZFL7kjUWEAUFlFYHi8SecBQHEuxLWGdWmjK3ecXXHcpVbQG1C86pqB0bpyeapytMIZmeotrCXtDZAdlXi/wRUGNBOMe9pgJqu3HARfLRFiBsmxakW7ebMKooRHHctZ8txYXYAbG7ABcP/yVWDGl0oYIkRtyFaad4IHqvO09scqeHL6DdeN889JdvNlimz8gpyK7p1b9BppirzBST1mpbE4j1xK65LMuGN0IXibgoMPQ8yOZVDGgYgNIgBtqSkwTHrtsmKsCNOVDHj4AWo3RpNzZRJ/YV8qDP/MWg9HDu+fI1XO+IBKiCfYnEu1R2ippdtTVqsBieceKfrOB5G0RePV/1icauiqkGSaOrI5wlJqOtctI2WEZhVnCEo4h+F+E5GqvpuJrTx8ngSAlZRU= 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)(366016)(1800799024)(376014)(23010399003)(18002099003)(55112099003)(11063799006)(5023799004)(3023799007)(56012099006)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?U3CrKTDqGXdAohNZEX6DX712XBMVY3a6UYaAySzumviuwk5bGXJaUfNY12HE?= =?us-ascii?Q?F+TVYMkASu7+6XSxqsG/ALYkIr0AXXnuc7bNKhp8RBGcImd9OKliPsj6GHYY?= =?us-ascii?Q?6lDwz8w3eivw6npGswweYGQLx9uAUadt4eTWR/tmU92X/6EVrM0PAc71GufA?= =?us-ascii?Q?uUMXA1IEtEprHiKBvT3OizsKZUoSAgX97ktP7eDd4xLd1WgHDyXHBp1dAyIC?= =?us-ascii?Q?7NyZnjYtGxlKfd2ox5fqsCff3exZiOFjzWdxrYrg7zjLSDsSM/MGgQ4uqGq0?= =?us-ascii?Q?fXWFBujyuY10Gotj1IThQd2DS9w1PYNd39ORFfbpkTQ2KY1mXakvZq0aSNCI?= =?us-ascii?Q?XOxZpaHIGFLd1PQjDdhdTh0p7QN/IkqXLZ9PTKgkBSavD0GKO7a9WqXPotdH?= =?us-ascii?Q?HXDnQRTVmUJjxG1PksqLs2VF6Q1RA+g97FY4QgV0tvhSUr9+iHQmZjg8rI6J?= =?us-ascii?Q?kAmH1QAiP54zWFtD7CoVJlrm+8+3UfQF/dpH1AvEQlOCqAxFNeXXrbEAMwps?= =?us-ascii?Q?DIGXLzeIFGmxu7Uk1MEA0z8VIxmTG+v5eBnKmxJ29YZdeXhYpC6XxliOMVB7?= =?us-ascii?Q?dJ7fX3wVBVBFkyicN6l3CqOUd1bOmLzV4rc0bboQObfOQStcZGoqW0CUPA+n?= =?us-ascii?Q?llMeC5vq835R9SUHTgl8TQKMhPaIOYsuJAa0dyKti0lROMpDXIj6Xkl9nDYH?= =?us-ascii?Q?W9lF4nXK7ARYIHY+bXeuerXKrttMR/4HkmGtzHTYKq2Nz8ZoSyVZQEJyWy9L?= =?us-ascii?Q?Rr9NFGvsC1FlVobLIH6F3GWWHhFDrXm38zjC+aEm7jFoZx3GWm+zgQNdmlc0?= =?us-ascii?Q?AHHEwMWeBkCc3LMeQTR8fuS9RoNZNx1fo8FjM4xfW9NIfyM0yPIbaE/uFKbx?= =?us-ascii?Q?fWHJe/3xQNSXnRQz8aVLaQSCweGY5YM1xV6ht3aFBjrXMwKFduLHfJfuQSxG?= =?us-ascii?Q?ZVawx6pkamwq0zjorp0jGGhnuOni0SOO2d/q6Q6oxwIqjzBvUsGUCxiXs68w?= =?us-ascii?Q?LjhEDk9LraqmNnQhyljO8b9Zjx9Bt5jYeV5Z5311tTZP2JpDm6nFQzx0bpaX?= =?us-ascii?Q?MylVPWiS5oz0SN82VOxDcHQ78cHzPX6/Mk+ZCTqP3/JxzKNjeOWK5LdJ9G7N?= =?us-ascii?Q?CFYZmEllDsn2lGX80Og4JkqaUUhrX00T/P5xgsAf9plk6FWp0ztW2U8L6z9Z?= =?us-ascii?Q?hZA8OpnGq1MhCF2pev/wOV6luSmhkJ+/NGk9VKwyoDQScvHTTzetdhXNSj3L?= =?us-ascii?Q?vQxPP/n1SM8lxsr052xOtY8Zrh6E22TXI36Kcc7vI7KwJIy89nQtOPsQsl+r?= =?us-ascii?Q?8MZNsvv2gEvT27cM7liuHSRv/yzZZJKo7h1lvWlXNpiqiTNYYZG5+cTG2kK/?= =?us-ascii?Q?hsSk+9cNJllwncYcKbC9ecDxuqQpWvwX+Q31z3UdaeOMCNIbNGsxj/r2qt8A?= =?us-ascii?Q?1NrHB5W7OAIsneCBJZ+rNtlG5kOwDscaSc1UbykQhvAo+Bd5oQbDhuwhJfbn?= =?us-ascii?Q?gK+ejmXgTYDO3QHauWjqwMb5IhuzkWjj2ECahP2tq8N4aV/Jr1oSOhGd3Rn5?= =?us-ascii?Q?WnUixMhgfwOzZXxTagTW0LsnTuWMtNGr6u30jz5BrJySLkLXuBEtBNACPJD6?= =?us-ascii?Q?1uzsBBxcqnmhP84XwHpRD2ztIIshgXlWLLzFLHaK/2ModrODqtqrZjkTaAFW?= =?us-ascii?Q?Bpl+N/YqB9e6Kzr3Pe1k/Pv9vyH3KcXbCgMn4AvhhO1q4NZrg9PaZbQXh/T1?= =?us-ascii?Q?/GV7M6Wm5tuwAdFtozH2fde7x6pYtwo=3D?= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3439e3f-7727-423b-5026-08dee0ea23b2 X-MS-Exchange-CrossTenant-AuthSource: AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2026 14:22:16.5543 (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: YLgnqfzXKGxfM22qqpR5SUEwxkyxiE+rEg1Bg1BGyoZmyIC6BrLU4JRkONcNyy6yu4Lhqxf7pA61eEpoSsCNuXqsV6WtLCHLU2M2lAshdZI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PRAPR10MB5400 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=NDruJoqI; 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:c201::3 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-TUID: 8qQRaN1yrLKo OE-core Revision: 236ac1b43308df722a78d3aa20aef065dfae5b2b. Note, that this has to be done in a lockstep with the oe-libs update. Fixes: 50254447 ("meta: Update OE-libs to v5.0.3") Signed-off-by: Felix Moessbauer --- PS: I tested this in a CI environment that failed previously. However, I did not check if the sstate.bbclass had changes that were isar specific (a git log did not indicate that, though). I further did not check if other classes also need to be copied in for v5.0.3 update. Best regards, Felix meta/classes-global/sstate.bbclass | 256 +++++++++++++++++------------ 1 file changed, 147 insertions(+), 109 deletions(-) diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstat= e.bbclass index 3513269b..76a7b596 100644 --- a/meta/classes-global/sstate.bbclass +++ b/meta/classes-global/sstate.bbclass @@ -1,4 +1,10 @@ -SSTATE_VERSION =3D "10" +# +# Copyright OpenEmbedded Contributors +# +# SPDX-License-Identifier: MIT +# + +SSTATE_VERSION =3D "12" =20 SSTATE_ZSTD_CLEVEL ??=3D "8" =20 @@ -49,8 +55,6 @@ PV[vardepvalue] =3D "${PV}" SSTATE_EXTRAPATH[vardepvalue] =3D "" SSTATE_EXTRAPATHWILDCARD[vardepvalue] =3D "" =20 -# For multilib rpm the allarch packagegroup files can overwrite (in theory= they're identical) -SSTATE_ALLOW_OVERLAP_FILES =3D "${DEPLOY_DIR}/licenses/" # Avoid docbook/sgml catalog warnings for now SSTATE_ALLOW_OVERLAP_FILES +=3D "${STAGING_ETCDIR_NATIVE}/sgml ${STAGING_D= ATADIR_NATIVE}/sgml" # sdk-provides-dummy-nativesdk and nativesdk-buildtools-perl-dummy overlap= for different SDKMACHINE @@ -79,14 +83,15 @@ SSTATE_HASHEQUIV_FILEMAP ?=3D " \ =20 BB_HASHFILENAME =3D "False ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}" =20 +SSTATE_ARCHS_TUNEPKG ??=3D "${TUNE_PKGARCH}" SSTATE_ARCHS =3D " \ ${BUILD_ARCH} \ ${BUILD_ARCH}_${ORIGNATIVELSBSTRING} \ ${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS} \ ${SDK_ARCH}_${SDK_OS} \ - ${SDK_ARCH}_${PACKAGE_ARCH} \ + ${SDK_ARCH}_${SDK_ARCH}-${SDKPKGSUFFIX} \ allarch \ - ${PACKAGE_ARCH} \ + ${SSTATE_ARCHS_TUNEPKG} \ ${PACKAGE_EXTRA_ARCHS} \ ${MACHINE_ARCH}" SSTATE_ARCHS[vardepsexclude] =3D "ORIGNATIVELSBSTRING" @@ -262,7 +267,7 @@ def sstate_install(ss, d): overlap_allowed =3D (d.getVar("SSTATE_ALLOW_OVERLAP_FILES") or "").spl= it() match =3D [] for f in sharedfiles: - if os.path.exists(f) and not os.path.islink(f): + if os.path.exists(f): f =3D os.path.normpath(f) realmatch =3D True for w in overlap_allowed: @@ -272,36 +277,18 @@ def sstate_install(ss, d): break if realmatch: match.append(f) - sstate_search_cmd =3D "grep -rlF '%s' %s --exclude=3Dmaste= r.list | sed -e 's:^.*/::'" % (f, d.expand("${SSTATE_MANIFESTS}")) + sstate_search_cmd =3D "grep -rlF '%s' %s --exclude=3Dindex= -* | sed -e 's:^.*/::'" % (f, d.expand("${SSTATE_MANIFESTS}")) search_output =3D subprocess.Popen(sstate_search_cmd, shel= l=3DTrue, stdout=3Dsubprocess.PIPE).communicate()[0] if search_output: match.append(" (matched in %s)" % search_output.decod= e('utf-8').rstrip()) else: match.append(" (not matched to any task)") if match: - bb.error("The recipe %s is trying to install files into a shared "= \ - "area when those files already exist. Those files and their mani= fest " \ - "location are:\n %s\nPlease verify which recipe should provide = the " \ - "above files.\n\nThe build has stopped, as continuing in this sc= enario WILL " \ - "break things - if not now, possibly in the future (we've seen b= uilds fail " \ - "several months later). If the system knew how to recover from t= his " \ - "automatically it would, however there are several different sce= narios " \ - "which can result in this and we don't know which one this is. I= t may be " \ - "you have switched providers of something like virtual/kernel (e= .g. from " \ - "linux-yocto to linux-yocto-dev), in that case you need to execu= te the " \ - "clean task for both recipes and it will resolve this error. It = may be " \ - "you changed DISTRO_FEATURES from systemd to udev or vice versa.= Cleaning " \ - "those recipes should again resolve this error, however switchin= g " \ - "DISTRO_FEATURES on an existing build directory is not supported= - you " \ - "should really clean out tmp and rebuild (reusing sstate should = be safe). " \ - "It could be the overlapping files detected are harmless in whic= h case " \ - "adding them to SSTATE_ALLOW_OVERLAP_FILES may be the correct so= lution. It could " \ - "also be your build is including two different conflicting versi= ons of " \ - "things (e.g. bluez 4 and bluez 5 and the correct solution for t= hat would " \ - "be to resolve the conflict. If in doubt, please ask on the mail= ing list, " \ - "sharing the error and filelist above." % \ + bb.fatal("Recipe %s is trying to install files into a shared " \ + "area when those files already exist. The files and the manifest= s listing " \ + "them are:\n %s\n" + "Please adjust the recipes so only one recipe provides a given f= ile. " % \ (d.getVar('PN'), "\n ".join(match))) - bb.fatal("If the above message is too much, the simpler version is= you're advised to wipe out tmp and rebuild (reusing sstate is fine). That = will likely fix things in most (but not all) cases.") =20 if ss['fixmedir'] and os.path.exists(ss['fixmedir'] + "/fixmepath.cmd"= ): sharedfiles.append(ss['fixmedir'] + "/fixmepath.cmd") @@ -349,7 +336,7 @@ def sstate_install(ss, d): for lock in locks: bb.utils.unlockfile(lock) =20 -sstate_install[vardepsexclude] +=3D "SSTATE_ALLOW_OVERLAP_FILES STATE_MANM= ACH SSTATE_MANFILEPREFIX" +sstate_install[vardepsexclude] +=3D "SSTATE_ALLOW_OVERLAP_FILES SSTATE_MAN= MACH SSTATE_MANFILEPREFIX" sstate_install[vardeps] +=3D "${SSTATEPOSTINSTFUNCS}" =20 def sstate_installpkg(ss, d): @@ -359,8 +346,9 @@ def sstate_installpkg(ss, d): d.setVar("SSTATE_CURRTASK", ss['task']) sstatefetch =3D d.getVar('SSTATE_PKGNAME') sstatepkg =3D d.getVar('SSTATE_PKG') + verify_sig =3D bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), Fals= e) =20 - if not os.path.exists(sstatepkg): + if not os.path.exists(sstatepkg) or (verify_sig and not os.path.exists= (sstatepkg + '.sig')): pstaging_fetch(sstatefetch, d) =20 if not os.path.isfile(sstatepkg): @@ -371,7 +359,7 @@ def sstate_installpkg(ss, d): =20 d.setVar('SSTATE_INSTDIR', sstateinst) =20 - if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False): + if verify_sig: if not os.path.isfile(sstatepkg + '.sig'): bb.warn("No signature file for sstate package %s, skipping acc= eleration..." % sstatepkg) return False @@ -715,9 +703,7 @@ def sstate_package(ss, d): if d.getVar('SSTATE_SKIP_CREATION') =3D=3D '1': return =20 - sstate_create_package =3D ['sstate_report_unihash', 'sstate_create_pac= kage'] - if d.getVar('SSTATE_SIG_KEY'): - sstate_create_package.append('sstate_sign_package') + sstate_create_package =3D ['sstate_report_unihash', 'sstate_create_and= _sign_package'] =20 for f in (d.getVar('SSTATECREATEFUNCS') or '').split() + \ sstate_create_package + \ @@ -762,7 +748,6 @@ def pstaging_fetch(sstatefetch, d): localdata.setVar('FILESPATH', dldir) localdata.setVar('DL_DIR', dldir) localdata.setVar('PREMIRRORS', mirrors) - localdata.setVar('SRCPV', d.getVar('SRCPV')) =20 # if BB_NO_NETWORK is set but we also have SSTATE_MIRROR_ALLOW_NETWORK= , # we'll want to allow network access for the current set of fetches. @@ -778,6 +763,7 @@ def pstaging_fetch(sstatefetch, d): uris +=3D ['file://{0}.sig;downloadfilename=3D{0}.sig'.format(ssta= tefetch)] =20 for srcuri in uris: + localdata.delVar('SRC_URI') localdata.setVar('SRC_URI', srcuri) try: fetcher =3D bb.fetch2.Fetch([srcuri], localdata, cache=3DFalse= ) @@ -787,9 +773,6 @@ def pstaging_fetch(sstatefetch, d): except bb.fetch2.BBFetchException: pass =20 -pstaging_fetch[vardepsexclude] +=3D "SRCPV" - - def sstate_setscene(d): shared_state =3D sstate_state_fromvars(d) accelerate =3D sstate_installpkg(shared_state, d) @@ -825,21 +808,100 @@ python sstate_task_postfunc () { } sstate_task_postfunc[dirs] =3D "${WORKDIR}" =20 +# Create a sstate package +# If enabled, sign the package. +# Package and signature are created in a sub-directory +# and renamed in place once created. +python sstate_create_and_sign_package () { + from pathlib import Path =20 -# -# Shell function to generate a sstate package from a directory -# set as SSTATE_BUILDDIR. Will be run from within SSTATE_BUILDDIR. -# -sstate_create_package () { - # Exit early if it already exists - if [ -e ${SSTATE_PKG} ]; then - touch ${SSTATE_PKG} 2>/dev/null || true - return - fi + # Best effort touch + def touch(file): + try: + file.touch() + except: + pass + + def update_file(src, dst, force=3DFalse): + if dst.is_symlink() and not dst.exists(): + force=3DTrue + try: + # This relies on that src is a temporary file that can be rena= med + # or left as is. + if force: + src.rename(dst) + else: + os.link(src, dst) + return True + except: + pass + + if dst.exists(): + touch(dst) + + return False =20 - mkdir --mode=3D0775 -p `dirname ${SSTATE_PKG}` - TFILE=3D`mktemp ${SSTATE_PKG}.XXXXXXXX` + sign_pkg =3D ( + bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG")) and + bool(d.getVar("SSTATE_SIG_KEY")) + ) + + sstate_pkg =3D Path(d.getVar("SSTATE_PKG")) + sstate_pkg_sig =3D Path(str(sstate_pkg) + ".sig") + if sign_pkg: + if sstate_pkg.exists() and sstate_pkg_sig.exists(): + touch(sstate_pkg) + touch(sstate_pkg_sig) + return + else: + if sstate_pkg.exists(): + touch(sstate_pkg) + return =20 + # Create the required sstate directory if it is not present. + if not sstate_pkg.parent.is_dir(): + with bb.utils.umask(0o002): + bb.utils.mkdirhier(str(sstate_pkg.parent)) + + if sign_pkg: + from tempfile import TemporaryDirectory + with TemporaryDirectory(dir=3Dsstate_pkg.parent) as tmp_dir: + tmp_pkg =3D Path(tmp_dir) / sstate_pkg.name + d.setVar("TMP_SSTATE_PKG", str(tmp_pkg)) + bb.build.exec_func('sstate_archive_package', d) + + from oe.gpg_sign import get_signer + signer =3D get_signer(d, 'local') + signer.detach_sign(str(tmp_pkg), d.getVar('SSTATE_SIG_KEY'), N= one, + d.getVar('SSTATE_SIG_PASSPHRASE'), armor= =3DFalse) + + tmp_pkg_sig =3D Path(tmp_dir) / sstate_pkg_sig.name + if not update_file(tmp_pkg_sig, sstate_pkg_sig): + # If the created signature file could not be copied into p= lace, + # then we should not use the sstate package either. + return + + # If the .sig file was updated, then the sstate package must a= lso + # be updated. + update_file(tmp_pkg, sstate_pkg, force=3DTrue) + else: + from tempfile import NamedTemporaryFile + with NamedTemporaryFile(prefix=3Dsstate_pkg.name, dir=3Dsstate_pkg= .parent) as tmp_pkg_fd: + tmp_pkg =3D tmp_pkg_fd.name + d.setVar("TMP_SSTATE_PKG", str(tmp_pkg)) + bb.build.exec_func('sstate_archive_package',d) + update_file(tmp_pkg, sstate_pkg) + # update_file() may have renamed tmp_pkg, which must exist whe= n the + # NamedTemporaryFile() context handler ends. + touch(Path(tmp_pkg)) + +} + +# Shell function to generate a sstate package from a directory +# set as SSTATE_BUILDDIR. Will be run from within SSTATE_BUILDDIR. +# The calling function handles moving the sstate package into the final +# destination. +sstate_archive_package () { OPT=3D"-cS" ZSTD=3D"zstd -${SSTATE_ZSTD_CLEVEL} -T${ZSTD_THREADS}" # Use pzstd if available @@ -850,42 +912,18 @@ sstate_create_package () { # Need to handle empty directories if [ "$(ls -A)" ]; then set +e - tar -I "$ZSTD" $OPT -f $TFILE * + tar -I "$ZSTD" $OPT -f ${TMP_SSTATE_PKG} * ret=3D$? if [ $ret -ne 0 ] && [ $ret -ne 1 ]; then exit 1 fi set -e else - tar -I "$ZSTD" $OPT --file=3D$TFILE --files-from=3D/dev/null - fi - chmod 0664 $TFILE - # Skip if it was already created by some other process - if [ -h ${SSTATE_PKG} ] && [ ! -e ${SSTATE_PKG} ]; then - # There is a symbolic link, but it links to nothing. - # Forcefully replace it with the new file. - ln -f $TFILE ${SSTATE_PKG} || true - elif [ ! -e ${SSTATE_PKG} ]; then - # Move into place using ln to attempt an atomic op. - # Abort if it already exists - ln $TFILE ${SSTATE_PKG} || true - else - touch ${SSTATE_PKG} 2>/dev/null || true + tar -I "$ZSTD" $OPT --file=3D${TMP_SSTATE_PKG} --files-from=3D/dev/null fi - rm $TFILE + chmod 0664 ${TMP_SSTATE_PKG} } =20 -python sstate_sign_package () { - from oe.gpg_sign import get_signer - - - signer =3D get_signer(d, 'local') - sstate_pkg =3D d.getVar('SSTATE_PKG') - if os.path.exists(sstate_pkg + '.sig'): - os.unlink(sstate_pkg + '.sig') - signer.detach_sign(sstate_pkg, d.getVar('SSTATE_SIG_KEY', False), None= , - d.getVar('SSTATE_SIG_PASSPHRASE'), armor=3DFalse) -} =20 python sstate_report_unihash() { report_unihash =3D getattr(bb.parse.siggen, 'report_unihash', None) @@ -918,6 +956,8 @@ sstate_unpack_package () { BB_HASHCHECK_FUNCTION =3D "sstate_checkhashes" =20 def sstate_checkhashes(sq_data, d, siginfo=3DFalse, currentcount=3D0, summ= ary=3DTrue, **kwargs): + import itertools + found =3D set() missed =3D set() =20 @@ -950,6 +990,7 @@ def sstate_checkhashes(sq_data, d, siginfo=3DFalse, cur= rentcount=3D0, summary=3DTrue, sstatefile =3D d.expand("${SSTATE_DIR}/" + getsstatefile(tid, sigi= nfo, d)) =20 if os.path.exists(sstatefile): + oe.utils.touch(sstatefile) found.add(tid) bb.debug(2, "SState: Found valid sstate file %s" % sstatefile) else: @@ -977,15 +1018,19 @@ def sstate_checkhashes(sq_data, d, siginfo=3DFalse, = currentcount=3D0, summary=3DTrue, localdata.delVar('BB_NO_NETWORK') =20 from bb.fetch2 import FetchConnectionCache - def checkstatus_init(thread_worker): - thread_worker.connection_cache =3D FetchConnectionCache() + def checkstatus_init(): + while not connection_cache_pool.full(): + connection_cache_pool.put(FetchConnectionCache()) =20 - def checkstatus_end(thread_worker): - thread_worker.connection_cache.close_connections() + def checkstatus_end(): + while not connection_cache_pool.empty(): + connection_cache =3D connection_cache_pool.get() + connection_cache.close_connections() =20 - def checkstatus(thread_worker, arg): + def checkstatus(arg): (tid, sstatefile) =3D arg =20 + connection_cache =3D connection_cache_pool.get() localdata2 =3D bb.data.createCopy(localdata) srcuri =3D "file://" + sstatefile localdata2.setVar('SRC_URI', srcuri) @@ -995,7 +1040,7 @@ def sstate_checkhashes(sq_data, d, siginfo=3DFalse, cu= rrentcount=3D0, summary=3DTrue, =20 try: fetcher =3D bb.fetch2.Fetch(srcuri.split(), localdata2, - connection_cache=3Dthread_worker.connection_ca= che) + connection_cache=3Dconnection_cache) fetcher.checkstatus() bb.debug(2, "SState: Successful fetch test for %s" % srcur= i) found.add(tid) @@ -1005,8 +1050,11 @@ def sstate_checkhashes(sq_data, d, siginfo=3DFalse, = currentcount=3D0, summary=3DTrue, except Exception as e: bb.error("SState: cannot test %s: %s\n%s" % (srcuri, repr(= e), traceback.format_exc())) =20 + connection_cache_pool.put(connection_cache) + if progress: - bb.event.fire(bb.event.ProcessProgress(msg, len(tasklist) = - thread_worker.tasks.qsize()), d) + bb.event.fire(bb.event.ProcessProgress(msg, next(cnt_tasks= _done)), d) + bb.event.check_for_interrupts(d) =20 tasklist =3D [] for tid in missed: @@ -1016,6 +1064,8 @@ def sstate_checkhashes(sq_data, d, siginfo=3DFalse, c= urrentcount=3D0, summary=3DTrue, if tasklist: nproc =3D min(int(d.getVar("BB_NUMBER_THREADS")), len(tasklist= )) =20 + ## thread-safe counter + cnt_tasks_done =3D itertools.count(start =3D 1) progress =3D len(tasklist) >=3D 100 if progress: msg =3D "Checking sstate mirror object availability" @@ -1025,13 +1075,13 @@ def sstate_checkhashes(sq_data, d, siginfo=3DFalse,= currentcount=3D0, summary=3DTrue, fetcherenv =3D bb.fetch2.get_fetcher_environment(d) with bb.utils.environment(**fetcherenv): bb.event.enable_threadlock() - pool =3D oe.utils.ThreadedPool(nproc, len(tasklist), - worker_init=3Dcheckstatus_init, worker_end=3Dcheck= status_end, - name=3D"sstate_checkhashes-") - for t in tasklist: - pool.add_task(checkstatus, t) - pool.start() - pool.wait_completion() + import concurrent.futures + from queue import Queue + connection_cache_pool =3D Queue(nproc) + checkstatus_init() + with concurrent.futures.ThreadPoolExecutor(max_workers=3Dn= proc) as executor: + executor.map(checkstatus, tasklist.copy()) + checkstatus_end() bb.event.disable_threadlock() =20 if progress: @@ -1065,7 +1115,7 @@ def sstate_checkhashes(sq_data, d, siginfo=3DFalse, c= urrentcount=3D0, summary=3DTrue, bb.parse.siggen.checkhashes(sq_data, missed, found, d) =20 return found -setscene_depvalid[vardepsexclude] =3D "SSTATE_EXCLUDEDEPS_SYSROOT" +setscene_depvalid[vardepsexclude] =3D "SSTATE_EXCLUDEDEPS_SYSROOT _SSTATE_= EXCLUDEDEPS_SYSROOT" =20 BB_SETSCENE_DEPVALID =3D "setscene_depvalid" =20 @@ -1084,7 +1134,7 @@ def setscene_depvalid(task, taskdependees, notneeded,= d, log=3DNone): =20 logit("Considering setscene task: %s" % (str(taskdependees[task])), lo= g) =20 - directtasks =3D ["do_populate_lic", "do_deploy_source_date_epoch", "do= _shared_workdir", "do_stash_locale", "do_gcc_stash_builddir", "do_create_sp= dx"] + directtasks =3D ["do_populate_lic", "do_deploy_source_date_epoch", "do= _shared_workdir", "do_stash_locale", "do_gcc_stash_builddir", "do_create_sp= dx", "do_deploy_archives"] =20 def isNativeCross(x): return x.endswith("-native") or "-cross-" in x or "-crosssdk" in x= or x.endswith("-cross") @@ -1120,11 +1170,6 @@ def setscene_depvalid(task, taskdependees, notneeded= , d, log=3DNone): if isNativeCross(taskdependees[dep][0]) and taskdependees[dep][1] = in ['do_package_write_deb', 'do_package_write_ipk', 'do_package_write_rpm',= 'do_packagedata', 'do_package', 'do_package_qa']: continue =20 - # This is due to the [depends] in useradd.bbclass complicating mat= ters - # The logic *is* reversed here due to the way hard setscene depend= encies are injected - if (taskdependees[task][1] =3D=3D 'do_package' or taskdependees[ta= sk][1] =3D=3D 'do_populate_sysroot') and taskdependees[dep][0].endswith(('s= hadow-native', 'shadow-sysroot', 'base-passwd', 'pseudo-native')) and taskd= ependees[dep][1] =3D=3D 'do_populate_sysroot': - continue - # Consider sysroot depending on sysroot tasks if taskdependees[task][1] =3D=3D 'do_populate_sysroot' and taskdep= endees[dep][1] =3D=3D 'do_populate_sysroot': # Allow excluding certain recursive dependencies. If a recipe = needs it should add a @@ -1187,16 +1232,7 @@ python sstate_eventhandler() { if not os.path.exists(siginfo): bb.siggen.dump_this_task(siginfo, d) else: - try: - os.utime(siginfo, None) - except PermissionError: - pass - except OSError as e: - # Handle read-only file systems gracefully - import errno - if e.errno !=3D errno.EROFS: - raise e - + oe.utils.touch(siginfo) } =20 SSTATE_PRUNE_OBSOLETEWORKDIR ?=3D "1" @@ -1278,6 +1314,7 @@ python sstate_eventhandler_reachablestamps() { lines.remove(r) removed =3D removed + 1 bb.event.fire(bb.event.ProcessProgress(msg, removed), d) + bb.event.check_for_interrupts(d) =20 bb.event.fire(bb.event.ProcessFinished(msg), d) =20 @@ -1347,6 +1384,7 @@ python sstate_eventhandler_stalesstate() { bb.utils.remove(stamp) removed =3D removed + 1 bb.event.fire(bb.event.ProcessProgress(msg, removed), d) + bb.event.check_for_interrupts(d) =20 bb.event.fire(bb.event.ProcessFinished(msg), d) } --=20 2.53.0 --=20 You received this message because you are subscribed to the Google Groups "= isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an e= mail to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/= 20260713142154.1547339-1-felix.moessbauer%40siemens.com.